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