"I have a mind like a steel... uh... thingy." Patrick Logan's weblog.

Search This Blog

Wednesday, October 31, 2007

Help Me. I've Fallen.

An often repeated erroneous assumption is that static type checking is necessary for all the good IDE features like code completion and refactoring. Well, no.

The first and still best refactoring tool is for Smalltalk. Lisp and Smalltalk have had code completion mechanisms for decades.

James Robertson feeds off the recent "dynamic languages are too something or not enough something else" brouhaha and provides a Smalltalk Daily on code completion.

7 comments:

Anonymous said...

"The first and still best refactoring tool is for Smalltalk."

I completely disagree based on experience. I use both Smalltalk environments (much love) and Eclipse (for work), and to be honest, the refactoring support in Eclipse blows the doors off of what the Smalltalk environments have to offer. As for the code completion, the Smalltalk environments always provide more target objects than what I really need.

Patrick Logan said...

Fair enough. Truth be told, I've only used Java and C# IDEs a wee bit, and progress must have been made since I last used them.

But at the end of the day the Smalltalk tools work with *Smalltalk* while the Eclipse users still have to program in Java, so the overall experience is significantly worse. No love there.

Anonymous said...

At the OOPSLA panel featuring Steele, Gosling, etc talking about Simula 67, Anders Hejlsberg went off on a tangent rant about how, while some features of dynamic languages might make it mainstream, dynamic languages never will because of insufficient tooling..."How can the environment give you method name completion?!" It was bizarrely vehement.

Patrick Logan said...

Hejlsberg did Turbo Pascal, and then carried that forward with Delphi, which was not much more complicated as far as I know.

Since joining Microsoft he's gone off the deep end with C# and all subsequent contraptions. So he's not really someone I pay attention to re: languages.

Another shrug.

Erik Onnen said...

Not sure what you mean by "the Smalltalk tools work with *Smalltalk* while the Eclipse users still have to program in Java". If that's a Java dig, fair enough. However, Java has now become by far, the most popular tooling language we've ever seen if you count all the uses it's been extended to.

The Eclipse downloads have now been segmented into Java, C++ and a monolithic installer. Eclipse isn't limited to Java any longer and based on some sessions I went to at OSCON this year, it's now popular for concurrent programming at the C/C++ level.

Add Jython, JRuby, Scala, and Java has far "eclipsed" Smalltalk in terms of applied usage on a day-to-day basis.

Patrick Logan said...

Erik -- yes, it was completely a dig at Java.

20 years ago the use of C far eclipsed that of Smalltalk.

15 years ago the use of C++ far eclipsed that of Smalltalk. (Although I advocated the use of Objective C rather than C++ if you wanted "C with objects".)

I am in no way surprised that Java usage far exceeds that of Smalltalk to day. I am also significantly happier using Java than C++ or C.

But Smalltalk remains far superior to any of these for the kinds of things I've been doing day in and day out. Period. You can't take that away from me. :-(

hughw said...

Agree. Common Lisp + Emacs + Slime has great code completion, "go to definition", and hyperlinked documentation.

Blog Archive

About Me

Portland, Oregon, United States
I'm usually writing from my favorite location on the planet, the pacific northwest of the u.s. I write for myself only and unless otherwise specified my posts here should not be taken as representing an official position of my employer. Contact me at my gee mail account, username patrickdlogan.