development

Dynamic Languages - bloated?

May 9, 2003 15:29:29.911

Tim Bray attempts to denigrate dynamic languages as "big" and "bloated" when one uses them to deploy systems. Hmm. Maybe he can explain this. BottomFeeder is in the same neighborhood as the other tools out there in widespread use. So much for "fat". maybe he can explain why Netscape routinely chews more RAM on my desktop than do my running Smalltalk development environments, much less the deployed applications. Then there's the complaint that Ted comments on:

Secondly, and in the same spirit, there do remain performance issues. There are is some (small) number of people who have to write low-level webserver code, and if you've ever done this under the gun of a million-hits-a-day load, you quickly become a control freak with an insane desire to remove as many as possible of the layers which separate your code from the silicon.

Hmmm. Sure, you can get better math performance from Java or C++ than you can from Smalltalk. On the other hand, Strongtalk is comparable, and Lisp can be as fast or faster. The main reason Smalltalk environments don't optimize for math speed is that it's not very important for most business applications. Why are the C/C++/Java crowd always so obsessed with this? Get it working, get it optimized - in that order. The C language crowd invariably inverts this. Not to mention this - in my experience, the performance issues are invariably not where the developers thought they would be up front. Premature optimization is a poor development practice.

Comments

Optimization

[Dave Astels] May 9, 2003 15:45:14.749

The last part of Bill venners interview with Martin Fowler talks about optimization. Basically Martin says that the compiler & runtime are doing things you can't imagine in terms of optimization. As to why those folks are so obsessed about performance. Maybe it comes from using such low level languages... the compilers are limited in what they can do, and when you are used to thinking about bits & bytes, you naturally think about cycles and memory. Maybe? Use good tools, let them do the grunge work. Use a language in which it is easy to express yourself. jeez.. grow up folks! Granted, there is a limited set of purposes for which thinking about bytes & cycles is required.. for now anyway.. but it's the vast minority... and shrinking daily. Dave

Re: Dynamic Languages - bloated?

[Michael Lucas-Smith] May 10, 2003 0:44:28.501

Comment on Dynamic Languages - bloated? by Michael Lucas-Smith

Actually.. I'd like to take a moment to rant here as well. There is a reason why large programs become bloat and that's because they start to get complex. When you write a complex piece of software in something like C/C++ you begin to need new concepts to deal with issues of re-use and consistency. Lets take the simplest.. String. C++ gives you String's.. now lets take another.. List's. Array's don't cut it I'm afraid. Okay, lets take another bit step - Garbage Collection. Ah! Now we've got ourselves a pretty sophisticated large complex application that can scale. Not quite - you start yearning for dynamic dispatch using virtual functions. No worries! But before you know it you've coded up all the concepts that are delt with in Smalltalk. Problem!: You haven't spent 10-20 years making those concepts run really really really fast.. so instead you have a half backed implementation that works for you and you think is fast, but in reality you've made yourself a big bloated C/C++ application that can _never_ compete with Smalltalk. That's the crux of it - if you want those features in your product, use an environment that gives you them. Smalltalk has had them for a long time and has optimised the s*$t out of them. Use that, don't re-invent your own unless you intend to spend 10-20 years making it fast as well. (Funny thing about that, as soon as you start doing that you begin to re-do the sorts of things a Smalltalk VM does.. I should know, I've tried to do it 3 times :>)

 Share Tweet This
-->