Intellisense and the psychology of typing

Robert C. Martin unclebob at objectmentor.com
Wed Jun 1 11:46:06 EDT 2005


On 26 May 2005 09:31:12 -0700, andrew.queisser at hp.com wrote:

>Yesterday I typed in some C++ code that called a function with two
>ints. Intellisense (auto-complete) helpfully told me that the first
>formal parameter was called "frontLight" and the second "ringLight". It
>occurred to me that I'm getting some semantic help here on top of the
>obvious type safety. It seems to me that the existance of this kind of
>support is tied to the static typing nature of  C++.
>
>I've always been interested in the psychology behind those heated
>"static" vs. "dynamic" (quotes to avoid another lengthy discussion
>about manifest, latent, explicit, ...) typing debates. So I googled
>"Intellisense static dynamic typing" and tried to get a view of the
>collective mental landscape of this subject. It appears that the
>threads that talk about Intellisense soon run dry. I'm wondering if
>this is because:
>
>1) Intellisense is really just another crutch that does more harm than
>good? There were a few hardcore defenders of this position but not
>many.
>
>2) Intellisense is really useful but hard to implement well in IDEs for
>dynamic languages? Can anyone comment on the status of
>Intellisense-like tools for dynamic-language IDEs?
>
>3) Users of dynamic languages are always developing/debugging running
>programs where the current type of a variable is known and hence
>Intellisense is possible again? My own limited experience with dynamic
>languages (Ruby) is limited to edit-run cycles.
>
>Any opinions?

Static typing is a strong enabler of certain intelisense functions;
but not all, nor even most.  A good IDE for a dynamically typed
language can make quite a few inferences to decide how to suggest
intellisense.  That said, statically typed languages will always have
better intellisense than dynamically typed languages.

Indeed, one of the reasons that I have not switched to Ruby as my
standard language is the wonderful tools available with "IntelliJ" for
Java and "ReSharper" for C#.


-----
Robert C. Martin (Uncle Bob)  | email: unclebob at objectmentor.com
Object Mentor Inc.            | blog:  www.butunclebob.com
The Agile Transition Experts  | web:   www.objectmentor.com
800-338-6716   


"The aim of science is not to open the door to infinite wisdom, 
 but to set a limit to infinite error."
    -- Bertolt Brecht, Life of Galileo



More information about the Python-list mailing list