This post originated from an RSS feed registered with Agile Buzz
by James Robertson.
Original Post: Here's the problem
Feed Title: Cincom Smalltalk Blog - Smalltalk with Rants
Feed URL: http://www.cincomsmalltalk.com/rssBlog/rssBlogView.xml
Feed Description: James Robertson comments on Cincom Smalltalk, the Smalltalk development community, and IT trends and issues in general.
Depends on your performance goals. Uniform type systems are easy if your performance goals aren't real strict. In the java case, I wanted to be able to compile "a=b+c" into one instruction on almost all architectures with a reasonable compiler. The closest thing I've seen to accomplishing this is "Self" which gets close, except that the compiler is very complex and expensive, and it doesn't get nearly all the cases. I haven't read any of the squeak papers, so I can't comment on it.
Self and the Animorphic (Strongtalk) systems showed the way. The problem with his decision is that it gets the priorities exactly backwards. Most developers are not writing applications with hard constraints on numeric performance - if they were, VB wouldn't be so popular. Or PHP, or Python. Most people are writing "business" applications where time to market and correct behavior matter a lot more. What he did here is optimize for the infrequent case, at the cost of (expensive) developer time. It's a common mistake in this industry, and one that the curly brace crowd seems content to make over and over again. There are real costs associated with this choice, and the benefits are few. Heck, read this IBM white paper if you don't believe me. Yes, for the minority with real constraints, this is a benefit. But they aren't a big enough crowd to have driven this decision, IMHO.