Has Joel Spolsky Jumped the Shark?

When you're starting out as a technical blogger, you'll inevitably stumble across Joel on Software. He's been blogging since the year 2000, when computers were hand-carved of wood and the internet transmitted data via carrier pigeon. He has his own software development company, a few books under his belt, and he's an outstanding and entertaining writer by any measure. In many ways, Joel is a legend.


This is a companion discussion topic for the original blog entry at: http://www.codinghorror.com/blog/2006/09/has-joel-spolsky-jumped-the-shark.html

Funny, but I wrote a post on this very topic today as well!

http://haacked.com/archive/2006/09/12/Joel_On_Ruby_Performance.aspx

I found this interesting discussion that shows that the slowness with Ruby is not the fault of dynamic languages - http://smallthought.com/avi/?p=16 but that Ruby’s implementation of method dispatching is a bit naive. Just a sign of Ruby’s youthfulness at this point.

Somehow, i suspect this latest series of posts is just an internal Fog Creek argument bubbling to the surface.
Which doesn’t make it any less sad, but i think gives a little more understanding of the Ruby-hating: Joel doesn’t want The World At Large to not use Ruby, he wants his own team to do so…

And speaking of poisoning programmers… VBS?

What, you mean the guy who thought web applications had no future?

I’ve never been impressed with Joel’s technical acumen. He’s a great writer, and good at understanding and explaining the people side of software. But the technical side…not so much.

It is a sad thing to say, but I think he did. You have a good point about writing performance sensative parts in compiled language. In this case people use extensions written in C. “duck-typed function call”, huh?

At the risk of being rude, Joel is a pompous ass and hasn’t said anything interesting for years. He’s now also plainly gone completely insane, and the poor old dear should be taken out and shot…

From the look of things, VBScript (and weird VBScript derivatives which compile to PHP) have a far greater mind altering effect than Java.

  1. Wasabi: it does seem a little much to develop your own compiler for a single web application. BUT, presuming he has plans for future web projects using this same homegrown language, this strategy begins to make sense. Shrinkrwap for the web? Think about it.

So wait two years and check back and see if anything turns up.

  1. Classic ASP performance - you’ve made the assumption that all their heavy calculations run inside the ASP page*. I’ll make the equally-plausible assumption that they aren’t running any heavy calculations in VBScript. Who’s right?

*I know what the P in ASP means, sorry for any pain I’ve caused you

I think for some subjective reasons, he doesn’t like Ruby and he’s grasping at objective straws to put it down.

Poor Joel, what a sad end for a beautiful mind… :slight_smile:

Anyway, he MAY be right with Ruby’s slowness (I’ve always suspected that Ruby may be… inappropriate for heavy-duty business apps), but WHY, for the sake of effing baby jesus, would you choose to develop your own pet language.

And it’s based on one of the worst pieces of CRAP in the programming world…

But wait…

Oh, I get it! It has a cool name: Wasabi!!! Thake that, Matz!

Jeez.

What killed me was this:
"In FogBugz 6 there’s one place where we need to do literally millions of calculations to display a single chart on a single web page…"
Assuming that by “calculations” he means “discrete logical steps” (as opposed to assembly instructions) that has to be one of the dumbest things I’ve heard. It begs the question: WHY? Why does it take “literally millions” of steps to display a single chart on a single page? It’s a BUG TRACKER. What could it possibly be doing? Why is it so complicated?

“BUT, presuming he has plans for future web projects using this same homegrown language, this strategy begins to make sense.”

FogBugz is at least four years old. The only other thing to come out of FogCreek was written by interns over one summer. How much longer do we have to wait?

Hmm, the more I read the latest Spolsky, the more I feel like firing on the Red Cross.

"In C/C++/Java style languages one way you can handle errors is to use the real return value for a result status, and if you have anything you want to return, use an OUT parameter to do that. This has the unfortunate side effect of making it impossible to nest function calls, so result = f(g(x)) must become:

T tmp;
if (ERROR == g(x, tmp))
     errorhandling;
if (ERROR == f(tmp, result))
     errorhandling;

This is ugly and annoying but it’s better than getting magic unexpected gotos sprinkled throughout your code at unpredictable places."

Amen brother. It’s good to hear a refreshing “no sh**” response.

Joel’s koolaid is way too sweet.

“[…]writing performance sensative parts in compiled language. In this case people use extensions written in C. “duck-typed function call”, huh?”

That expression doesn’t means duck tape, and it isn’t derogatory, it relates to dynamic typing http://en.wikipedia.org/wiki/Duck_typing

The guy is certifiably loony. The past few weeks of posts could be headlines on TheDailyWTF.com.

I feel more sorry for his developers who has to explain why they don’t know PHP / ASP.NET / Java / Ruby, etc. at their next interview.

I want to defend Joel. He is running a business, making money, and treating his employees the way that we want to be treated. He has the freedom to choose whatever environment that makes sense for his business.

Sometimes what makes sense for business does not make sense to the new tech hyped geek. The death of COBOL has been proclaimed for over 20 years now, but it is still going because it makes business sense. My company is currently coding in Assembler, COBOL, VBScript, C++, VB, VB.NET, and C#. Many times an older technology is a better business decision. While most alpha geeks would not be caught dead coding in COBOL, I have code that I wrote in 1990 running today with little modification in the past 16 years.

In the end, a professional application programmer has to create a product that meets business requirements, even if it is not in the hippest new language or environment.

Take note: You refute very little of what he said, instead just calling him nuts.

I don’t agree with Wasabi but I see where he’s coming from. He’s making it as easy as possible to use FogBugz. Doesn’t matter what kind of setup you have, he has a FogBugz for it. That does give you a slight edge over everyone else.

By reducing performance needs he, again, has access to a larger possible install base. Not every company upgrades their servers every 6 months.

He made his trade-offs, he’s living with them, and, more importantly, continuing to succeed.

I think you guys are coming off pretty dickish. I hope Joel keeps writing high-quality blog posts because I still like to read them.