This post originated from an RSS feed registered with Agile Buzz
by James Robertson.
Original Post: Re: Them's Fight'n Words
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.
There is clearly a performance aspect to it. One possible solution would be to say, "There are no value types. All types are heap allocated. Now we have representational identity, and so we're done, right?" Except it performs like crap. We know that from Smalltalk systems that did it that way, so something better is needed.
Anders solution - make the language immensely complex for the truly small number of cases where any of this matters. Yes, there are people doing maths in software where they need that level of performance on a day to day basis. And no, most people aren't part of that club. For most people, applications look like this:
Pull data from the data store
Massage data for screen display
Allow user to modify data as needed
Push data back into data store
Like it or not, the vast majority of developers are working on an application that looks, in rough terms, like that. Most of us aren't doing matrix manipulations or fast fourier transforms - but to hear Anders speak of it, we have to optimize for those few because... well, because he hasn't thought that deeply about the problem, that's why. When we do come across parts of our system that we have to optimize for those cases, we can call out to C (etc) - and that work-around is typically a much lower effort than having to deal with the world Anders wants us to live in. I know there are applications that have such strict optimization needs that this strategy is impractical - and I also know that such applications are not what most of us are building.
Here's another thing - as Patrick says on his blog, 64 bit implementations will erode the number of cases where that stuff matters even more - so the development time suckage of .NET and Java will persist, long after the supposed "need" for it has expired. Bonus question - I wonder when the last time guys like Hejlsberg or Gosling actually had to work on a real project for a real customer, so that they could see what they've wrought? I'd guess it's been a long, long time. Actually, that topic is worthy of a post of its own - developers who have been cut off from end users too long, and how easy it is for them to wander off the reservation...