Has Joel Spolsky Jumped the Shark?

He’s been wrong before, and he’ll be wrong again. A fool never changes his mind, but a wise man does so regularily.

Whats great about this Ruby debate is that it’s at least resulting in developers making informed choices, rather than blindly following 37 Signals down a path without considering it carefully. At least programmers are learning what trade offs they are making when they choose Rails (or any web framework for that matter).

As for Wasabi, who really gives a shit. It’s about as interesting to me, as knowing what coffee machine they use in FogCreek. I am pretty sure it works, and I am pretty sure it’s just an abstraction of a version of fogbugz, once they realised they were doing the same thing over and over.

Similar to what 37Signals did with Rails, except not public or free, not known about, and written to use retardo languages.

I’ll still continue to read his stuff, even when he is wrong he is entertaining, and half the fun sometimes is in coming up with counter arguments in my head. As for Jumping the Shark, either side of this Ruby stuff he had written 3 great management articles, and an impressive guide on people management (recruitment etc), so the quality is there, just ignore the posts that could be perceived as flamebait.

A lot of people including myself agree with his stance on exception handling.

There are many arguments on the subjects.

But the first point that needs to first be understood by all that there are EXCEPTIONS, i.e. stuff that should never happen, vs and that return value that indicate a ‘failure’ or an action not taken because of some reason that is totally reasonable and perhaps even frequent.

newbies are taugh to band return codes and use exception for everything, which is bad.

You do not know in what state the objects are with exceptions, have they done their proper cleanup? Were there in the middle of something? Was it an exception they got from a sub-object that they couldn’t handle? The complexity increases because it’s very hard to write GOOD exception-based code.
Also any change to that code can mean the exception handling will be different; you’ve lost the knowledge of exactly when the error occured.

All the examples above given are bogus, they only show how the calling code is ‘cleaner’.

Well these examples are not handling anything!

The exception may have more information in them, you have to write code to properly use that information!

You also have to structure your code in object in order to insure proper construction/cleanup.

These examples are strawman arguments written
like old C code, which isn’t viable in a non-trivial system. They do not demonstrate anything.

I’ve been a reader of Joel’s for years. And the reference to Wasabi bugged me for a different reason. He just finished a post on why his friend should not use any language for new development that had not been tested sufficiently in the field. He specifically said his friend should use asp or java over ruby because the latter hadn’t been battle tested. And then he brags about a language developed in-house. Gak!

Here’s raymond chen on the subject of exceptions:

http://blogs.msdn.com/oldnewthing/archive/2005/01/14/352949.aspx

@QuietGeek

I think it boils down to this: it’s fair enough to point out that Ruby is slow. This is true, verifiable, and part of consensus reality. The Ruby community is aware of this fact, and has long-term plans towards fixing this.

It’s quite another thing to talk about how you can’t write fast applications because dynamically-typed languages require a bunch of hash-table object-method hoo-ha, when your own flagship product (which is written in some kind of moonshine VBScript, natch) is compiled into PHP, a dynamically-typed language.

head asplode

Joel seems like a nice guy, so I guess our best hope at this point is to sit tight until his friends and family stage an intervention.

Wasabi sounds like the language/environment that I’ve been walking around in my mind with for a few months now.

I would develop it if I had the time and necessary brilliance.

So yeah, I was pretty excited to read about it, and pretty sad only so little was said. I didn’t regard the performance though, and I don’t much care about it. I want my developer time to go down while performing such repetitive tasks as writing web applications (dozens of similar-yet-different CRUD operations and access checks tend to dumb you down quite a bit).

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.

I agree with you, and I reluctantly agreed with Joel when he said he wasn’t in a rush to upgrade FogBugz to ASP.NET (in 2002) just because it was the Next Big Thing from Microsoft:

http://www.joelonsoftware.com/articles/Our.NetStrategy.html

I’m with you. I really am.

However, instead of upgrading to ASP.NET, they decided to… write their own proprietary language that compiles down to VBScript/PHP/JavaScript.

I just can’t get behind that. It’s a one-way ticket to crazytown. When was the last time you encountered a problem and thought to yourself, “Mmm. What I really need here is MY VERY OWN PROGRAMMING LANGUAGE.”

That said, of course it’s Joel’s business and he can do whatever the hell he wants. But part of his whole schtick was believing the man behind the curtain was following the same good advice he’s been giving people.

Clearly that isn’t the case.

Like most of you, I’ve found Joel’s recent posts a bit off track, but I think all this discussion about Wasabi, VBS, etc. just demonstrates an important point about the software business: most of the time, the technical details don’t matter.

They matter to us - those of us actually doing the development, but not to the customer. FogBugz is a pretty successful product because Joel listens to his customers and follows good business and management practices. I think had he chosen any other reasonable set of technologies, it would still be a success.

So while I think VBS sucks, and writing your own web development language is a bad idea, I still think Joel knows a lot more than me about creating a successful business and that’s why I read his stuff.

Notice all the posts on his new job board? And all this “controversy” over his recent posts certainly isn’t going to hurt that new business.

I’m shocked. Shocked I tell you! After years of reading Joels’ advice on good coding and how to interview and all of his other writings; I can’t believe that he has based his sofware on a homemade programming language that is similar to vb. VB Sucks!! SUCKS!! And who in their right mind creates a programming language? It kind of makes sense why we don’t see massive installs of FogBuz all over the planet.
Christ I told 3 people about Joelonsoftware.com today and a few last week as well. Now I want to track them all down and tell them that I’m am sorry for giving them bad advice.

So Joel has written his own programming language so he can automagically generate FogBugz code that runs in ASP/PHP/ASP.NET, depending on which environment the client prefers? What a “bad” business decision!

I know, I know. He should have written everything in RoR and all his problems would have been solved.

Who’s been drinking the KoolAid, guys?

That is too funny!

I can relate. I’ve long admired Joel - he is a fine writer; I have even laughed out loud at his posts. And when he’s in form, he obviously knows some very smart things about programming. Then he pulls a Wasabi or waxes poetic on Bill Gates’ programming abilities or sticks up for Visual Basic… retch!

This is what happens when you drink too much Kool-Aid, kiddies, even if you’re really smart. Look and learn.

I have enjoyed some of his writings (perhaps the older ones?). Tried out his software but didn’t buy it. The interns seemed to come up with a good product (what were the full-timers doing?), and for that credit must at least in part go to the interview process and working environment.

He spends a lot of time writing eloquently, but he may indeed have lost touch with certain realities.

While I’m at it, every one you readers that do not program Win32 apps in Delphi, at least in private, have jumped the shark already, as has anyone who by choice uses a case-sensitive language, or, who thinks AJAX is ready for prime time.

I can’t help but think a lot of this controversy is people who see “WROTE THEIR OWN LANGUAGE” and think Wasabi is this thing they spent thirty-thousand man-years on and is ready at any moment to shake free of the confines of Fog Creek and brutally compete with, say, PHP.

Rather than a project that I’d wager has got less than two man-years into it, admittedly two of their more valuable man-years by one of their better programmers, but probably by now, more than paid for itself.

Has no one taken a compilers class in the past 20 years? Writing a language that is described as “very VB-like” that “compiles” down to VB and PHP isn’t something I’d throw a high-school student at, but we’re not talking brain surgery here either! VB and PHP still do all the really hard parts of that problem.

Anybody who’s passed a compilers class ought to be able to write the basic shell of that well inside of a month from scratch with appropriate tools, less if you can find a convenient VB-like grammar already written for you, and from there, you’re off to the races incrementally implementing features over VB. The PHP backend would be harder, but since you’ve got control over the PHP you emit even that shouldn’t be that hard. (Taking in arbitrary PHP and trying to convert back to Wasabi, now that could be hard.)

How hard do all of you think this is?

Ervin: A perceived lack of portability is not a good reason to write your own damn programming language. Joel has written himself a Turing tar-pit (http://weblog.raganwald.com/2004/10/beware-of-turing-tar-pit.html).

But hey, it’s not like portability or “write-once, run-anywhere” technology has really been explored in depth, right? It’s a marvelous new frontier, and VBScript is the perfect starting point for such a bold exploration of the technology… of the fuuuuuture!

This is not surprising at all. If you take a look at the game industry most of them have their own scripting languages to drive the main game engine. Some of them are based of other languages, like Lua a super small scripting system or python but others are created by hand. Companies like Garagegames.com, IDSoftware and Unreal who have crafted their own or taken from an existing one and crafted it into something they needed. The concept of creating a mini or simple language to drive your core application or to generate code to compile or run on a larger system is not a new concept. It does make people worry about how to support PHP, VBscript and JavaScript but one would hope that you would only have to work in Wasabi to make the product meet your needs.

Yes. I think I, Cringley had his day, and now sadly Joel’s sun is starting to set. I think you are right, at one time, his blog was something of a touch-stone, but now again, sadly, the world has caught up to him and waved to him as we sped by. And what we see in the rear view mirror is simply nostaliga.

Goodbye Joel.

I don’t think they really wrote their own language as stated there.

It sounds more like a code generator/converter.

In other words, they wrote a YACC which is used to convert the code to another, existing language. One VBScript line could generate five line of PHP.

This is no different than using macros or a class library in C++ in order to have the code automagically written.

And there is nothing fundamentally wrong with it. sequence of high-level operations.

It allows one team to code with a small, controlled language, and another team, the porting team, to ‘map’ that language to the various architecture and langages. They do this by modifying the so-called ‘compiler’.

Coda: I tend to agree with ulric.

From a business point of view, I think it was a very good decision.

Actually, regardless of what you think of Wasabi or Joel, this is at least a pertinent innovation which suits his own purpose.

Just because its not innovation of a general purpose language or integrated with the rest of the world in an easily consumable way doesnt matter. He is free to experiment and is doing so to a much greater extent than many shops.

One of my laments about Java is not the language but the way the Java community has failed to provide useful supersets of Java functionality which truly aid application development.

How can you whine about Java APIs and then never wrap them behind something far superior?

Apache has tried on some level but their level isnt necessarily going to be right for everyone.
Tool vendors have tried and theres some good stuff but the language is going the way of the dodo.

Anyway I think its easy to assail someone who goes there own way but it shows a bit of cargo cult mentality which is why Ruby is ahead of Java on some fronts, because Java programmers stopped thinking altogether and just did struts until someone mentioned that struts isnt cool anymore and maybe never was that cool.