In order to know what I'm talking about here you need to go look at slide two or three of this slideshow titled Introducing the Ceylon Project :: Why We're (Still) Fans of Java

. Near latter half of the slide I read this: "Java...[blah, blah, blah]...Static typing enables sophisticated tooling including automatic refactoring, code navigation, and code completion...this kind of tooling is simply not possible [ emphasis mine ] without static typing..."

Last time I checked, Perl was not a statically typed language (unless I missed the boat or something). However, we appear to have an IDE called Padre which, according to the features page claims to support code refactoring and visual editor effects like code hiding, etc.

I have not downloaded Padre or perused its codebase (yet) and I'm wondering if these are 'fake' features since (apparently) these things are impossible without static typing!

Celebrate Intellectual Diversity

  • Comment on What is simply not possible without static typing?

Replies are listed 'Best First'.
Re: What is simply not possible without static typing?
by chromatic (Archbishop) on Apr 14, 2011 at 22:18 UTC

    Users of the Smalltalk browser will be surprised to learn that Smalltalk has static typing.

    Then again, users of Eclipse may be surprised to learn that many of its features came from VisualAge for Smalltalk.

    On the gripping hand, anyone well-versed in programming language design won't be surprised to learn of the research (from Strongtalk, I believe) which suggests that at least 90% of a program written in a dynamic language is almost trivially statically decidable.

    The moral of the story is: distrust people who make sweeping pronouncements without having done their homework.

Re: What is simply not possible without static typing?
by educated_foo (Vicar) on Apr 15, 2011 at 16:13 UTC
    "Simply not possible" is too strong, but in a dynamically-typed (or "run-time typed") language, you need to do these things in a different way. With a statically-typed language, you can analyze the program text without running it to figure out all the identifiers' types. With a dynamically-typed language, you have to look at a running instance of the program. You *can* just look at the program text, but at that point you're just guessing.

      When you don’t have static typing, what you really miss the most is the ability to make data-type related assertions and to do so at compile time.   But there are many ways to implement that, which do not unduly restrict your flexibility in handling data at run time.

      At run time, the notion that “a piece of data is a self-describing object” really is convenient, and it really is efficient.   Sometimes much more convenient than the static-typing of the days of yore, when computers were much slower and smaller and “you did what you had to do in the very-tiny shoebox that you had.”

Re: What is simply not possible without static typing?
by JavaFan (Canon) on Apr 14, 2011 at 22:17 UTC
    I guess the authors of the slide show, and the authors of Padre have different views on the meanings of "support" and "code refactoring". (Note also that "code refactoring" doesn't have to be the same as "automatic refactoring").
Re: What is simply not possible without static typing?
by locked_user sundialsvc4 (Abbot) on Apr 15, 2011 at 13:43 UTC

    Or more simply:   “distrust people who make sweeping pronouncements.”   (Especially if they have the capacity to assign homework.)

    I also have learned to be skeptical about words like “automatic” in almost any computer related discussion.   The term implies “intelligence” or “reasoning,” when in fact the only process that a digital computer is capable of is the execution of an algorithm.   The actual, pragmatic usefulness of the notion is much less than what has been hyped.   (Pity.)

    Heh.   You’ve seen the joke, somewhere on YouTube I am sure ... first field-test of a bionic arm ... (insert Three Stooges clip here) ... “Let’s go.   No, wait!   Wait!   Wait!!   Aaargh!!   Turn it off!   Turn it off!!”

    :-D   Automation isn’t everything.

    It certainly is a useful concept.   I know it extremely well and am fond of it myself.   It greatly increases the capacity of the compiler to generate warning and error-messages at compile time.   But the hype is hyperbole.

Re: What is simply not possible without static typing?
by Anonymous Monk on Apr 29, 2011 at 17:02 UTC
    i have been using eclipse + epic plugin for my perl development. This does all wht u have mentioned. Even better than parde -bakki