Tuesday, February 5, 2008

Thoughts on Haskell & Performance

So I'm trying to ease my way back into blogging and I thought I'd start with some thoughts I had that came from this.

Now, my current job involves analyzing performance bottlenecks for a decent sized software company & then working with the individual R&D teams to make improvements.

My point is that from my own experiences, the quality of your compiler isn't the bottleneck. It's your design.

I'm not even making the obvious point that "you choose stupid algorithms you get stupid performance". I mean that when I have found application level issues they generally have either been bugs or they have been cases where the semantics for that feature of the app aren't compatible with high performace, e.g. some screen will too eagerly load request data from the database, too aggressively do calculations that could be delayed till later in the UI, etc. I've worked this job for about a year and I haven't yet had a time when I've found that our choice of language, VB6, has been the major problem.

My conclusion is that for things that aren't numerical analysis or video games, for applications that are real "pay the bills" software, the fact that something like Haskell is slower than C just doesn't seem that relevant.

Although, now that I think about it I'm not sure if it matters for those other things either.


Andreas Krey said...

Haskell slower than C? Since when? :-)

With the current crop of machines it is for most purposes pretty damn irrelevant how efficient your language's implementation is; it shouldn't affect the O() of you program. Only sometimes you actually need the power of the machine up a order of magnitude, and very seldom you really want more than ninety percent of it.

Oh, I guess my point is: You're right! So use a language that makes you productive, and only incidentally your machine.

Antoine said...


Nice to see you getting back into blogging again!

I'm working on it slowly as well - I still haven't written up my experiences trying to write a MUMPS interpreter in Haskell.

Anonymous said...

Hello. This post is likeable, and your blog is very interesting, congratulations :-). I will add in my blogroll =). If possible gives a last there on my blog, it is about the Home Theater, I hope you enjoy. The address is http://home-theater-brasil.blogspot.com. A hug.