On 26 May 2005 09:31:12 -0700, [EMAIL PROTECTED] 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: [EMAIL PROTECTED] 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 -- http://mail.python.org/mailman/listinfo/python-list