State Of The Art Languages

From ProgrammersRefuseToUseStateOfTheArt

Smalltalk is not state of the art. It was once state of the art, and it still has some very beautiful ideas. Many other language are significantly more usable than Smalltalk these days. Like any language, it will have its fans. Like good languages, learning it is a valuable experience. Given its environment requirments, the fact that the only good development collaboration tool (EnvyDeveloper) for it is dead, and it's image based making it hard to put into code control, it's not a great choice for actual products.

It's not like I want Smalltalk to be state of the art either, but there isn't anything better. FP languages are FP even if they allow OO. And don't even mention Java.

Self comes to mind. Cocoa comes to mind as a good platform (although you need to use ObjectiveCee correctly, or use NuLanguage or RubyCocoa or PyCocoa?). Cocoa also offers transparent persistance.

The reality is that Self only works for Macs and I'm not sure how much it works for them. Self over Linux is just incredibly buggy. Maybe that will change with future implementations but for now that's the way it is. And for that matter, isn't Cocoa strictly a Mac thing as well? I'd have no problem switching to a Mac since it seems to be a superior platform in every way. Every way except one, which is very dear to me, that of supplier independence. I'm not interested in locking myself into an architecture controlled by a single company. (And I greatly respected SUN for freeing its architecture.)

Although you've previously dissed Python and Ruby for not offering anything new; both provide programming models very similar to that of Smalltalk.

And then there's things like Dylan and Cecil.

What's the point of something so very similar to Smalltalk that's not Smalltalk? I'm not interested in joining the herd for the sake of saying Mooo. From what I can tell, Dylan is FP with possibly better OO features than other FP languages and C syntax. Again, what's to recommend it? What's to recommend it that would make me crawl over broken glass ^W^W^W^W adopt C syntax?

Widespread availability, mainly. Why does anyone else choose Python over Smalltalk? Because Python will run on anything, plays nice with the rest of the world, etc. Of course, another OO choice is ObjectiveCaml (which despite its ML heritage is a proper OO language, with a very powerful type system).

[Smalltalk's image-based metality is a huge pain in the ass when you have more than one developer. It is also very difficult to integrate into non-squeak windowing environments.]

Those aren't concerns. I only have one developer anyways. I love the image, especially compared to source files. In fact, dealing with source files would be another instance of crawling over broken glass. And while DolphinSmalltalk works very well with Windows, I'm writing a 3D UI so I can't even use the default context menus.

Of course, nobody is saying that you shouldn't use Smalltalk. If it works for your and makes you productive in your designs, go ahead and use it! Smalltalk is a fine language. Just understand that there are legitimate reasons that others prefer not to use it which have nothing to do with refusal to use state of the art.


EditText of this page (last edited October 11, 2009) or FindPage with title or text search