Has Joel Spolsky Jumped the Shark?

“If performance is so critically important in this section of the code, why wouldn’t Joel simply build that section of the code in a compiled language and call it from the other language?”

I thought the exact same thing when I read his anti-Rails rants.

It seems that it would be sensible to take a “best of both worlds” approach – write an app in Ruby or Python, to save developer cycles, measure performance, and then rewrite the worst areas in C.

I assume that most of the people reacting with “Writing a new language? How absurd!” do not realize that writing a programming language, especially one that translates one language into another (such as a pre-processor) is not difficult. A simple version can be written in a weekend (try it), and a more complete version can be written in weeks. These are internal tools, not shrink-wrapped dev tools.

At last count, after ten years in the industry and another 25 or so dorking with computers, I’ve written three preprocessors (to add things like special-purpose generics and O/R annotations to Java back in the 90s, for example), five compilers, and two interpreter/virtual machines for professional work. They all had basically the same purpose as Wasabi – I was going to be generating either 10kloc in my custom language, or 100k-1000mlocs in another language. Non-professionally, I’ve written about 10 languages, starting with an amazingly craptacular macro-assembler-crossed-with-fortran on my Atari 800.

Why is it that people jazz on about Lisp macros (which, honestly, were why I kept writing new languages, as I was aware of what Lisp and Smalltalk were able to do that would be difficult in c, c++, or Java) but get worked up over DSLs? They’re just another way to leverage software.

I think it’d be nearly impossible for Joel to hire the “great programmers” he’s always looking for if they had to spend their first year maintaining the feature parity between the php4, php5, and vb versions of his bug tracker.

In such a heated conversation and with so many replies, i doubt mine will even be read much if at all. I know this isn’t the point of the article but you said Joel believes “teaching new programmers Java is liable to poison their minds.” This is not at all what his article says. He says, as do MANY promenant programmers including at least one of the GoF, that teaching only java to new programmers is poisonous. It has turned the major of comp sci in many places into a java-only schools which do not teach flexable developing habits. Java is being taught as a trade. In academia, development should be taught as an adaptable skill. The difference is not small.

seriously, with the proliferation of pet programming languages in the open source world, why do you pick on Joel?

I’ve been considering making a language that has the sole purpose of ridding python of that stupid whitespace as syntax mindset.

—“It’s a BUG TRACKER. What could it possibly be doing? Why is it so complicated?”----

It’s got to add up all the bugs you’ve put into your program.

----“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.”—

Two months as has been pointed out before (though I suspect it will grow cruddy and take more time).

Even if you don’t care about Unix there are still problems with stuff done in .NET. For one thing you seem to need three versions (maybe sloppy application programming but still true).

Then there is the apparently huge footprint each .NET application takes. Look at how many megs of memory lookout takes (Outlook 2003 with Lookout and Spam Bayes takes up over 90MB on my machine.

I love reading Joel’s articles, but the bastard abandoned further development of CityDesk shortly after I bought it.

Customers will have to absorb a little pain
(install Mono or .NET, new version teething
pains) in exchange for a little sugar (nice new
features). I guess I’d have to balance the work
effort vs. the sales upside of a new,
rearchitected version of FogBugz.

I’m sorry, but that is much worse than the solution implemented by Joel. Have you tried FogBugz under windows? You just run an installer. That’s it. And, why, oh GOD why, do you want a new “rearchitected” version of FogBugz?

we could conceivably move to .NET by using the
Wasabi compiler to generate C#, and require our
customers to install Mono on Unix. (Still
requires Wasabi, but we would throw it away when
we were done with the last step).

I’ve heard mono’s UNIX support for C# and
ASP.NET is quite good.

So, you don’t really know.

Again, it’s your business. Not mine. But I think
that’s clearly the way to go. You’ll probably
have to refactor a lot of the generated C# code
to get it to look like code human beings would
write (or even a traditional ASP.NET app; not
sure if that’s a goal or even desirable in these
circumstances). But that’s still a heck of a
lot less work than a total rewrite in another
language. Which, based on the contents of your
prior posts, I’m 99.9% sure you would never
approve anyway.

But, why do you insist in a total rewrite? I really don’t understand that fixation in rewriting a perfectly good, working, revenue generating application.

At least with C#, new programmers’ heads are a
lot less likely to explode while working on
FogBugz. It might also open up some
extensibility points for community-written C#
plugins, etcetera.

Who are this programmers you are talking about? FogBugz users? They don’t need to modify anything, except one or two reports, and those are written either in PHP or VBScript. I’ve never heard of anybody’s head exploding for using them.

Anyways, I always enjoy your writings, but this time I think you haven’t quite understood the business decision made by Joel.

Ouch, please forgive my lousy grammar in my last post :frowning:

Didn’t 37signals take a similar stance as Joel, when they decided to build the RoR framewoek instead of just using a more accepted web-friendly language such as PHP or .NET.

I know it’s not quite the same as developing a full-blown lanugage/compiler, but I’m sure VBScript/Wasabi is just as similar for Joel and FogCreek, as Ruby/RoR was for 37signals. It’s a vision of keeping development time to a minimum, while meeting other goals … The main difference in those other goals are that Wasabi sounds like it has compromised on re-use across applications (it’s tailored to FogBugz) while supporting various frameworks/platforms, where as RoR has compromised on portability (without installing it’s framework) and run-time speed but is re-usable across many application types.

The key is that 37signals decided to let the framework/toolkit/language go open/mainstream, and since then it’s been adopted widely and hence is now becoming a popular, more mature framework. It would be pointless for Wasabi ever getting even out the door of FogCreek, since it’s tailored to developing 1 app.

To the Joel Naysayers and those who wonder why we pay such attention to him, I present: http://haacked.com/archive/2006/09/13/Id_Like_To_Be_In_Joels_Shoes.aspx

Where do you guys think languages come from anyway?

Some guy (Matz, Gosling, Wirth, van Rossum, etc.) decides to create his own language because he doesn’t like the existing ones.

Are we seeing the emergence of a framework: Wails on Wasabi?

I used to have Joel On Software as one of my daily favorites. Then Joel went on a long batch of posts that were basically advertisements for his software, and he lost me forever. It used to be that he would post interesting tech posts that developers could appreciate. Now his blog seems to be a marketing pitch that doesn’t grab my attention at all.

I don’t understand the aggressively of the posters and blog have toward Joel. I mean really! It’s like the guy killed your puppy! Why do you care so much that you need to crucify him for it?

The only thing I can think of that could trigger this is that the posters must be big fans of Ruby and all these web technologies, and writing a Yacc grammar must be some really scary “voodoo” thing. People must be really insecure with these basic tools and need other people to write all the tools for you.

As Art Taylor wrote above, lex/yacc really easy. Plenty of us do it. Converting code automatically makes sense and it’s safe.

I don’t see why you couldn’t vbscript to code that looks like it was written by a human. VBScript (not visual basic) has a some weird cases to be careful with but such converter doesn’t need to be totally generic and handle all the coding tricks in the world, only the ones needed by the company.

It’s already written in his article that the ‘compiler’ has no libraries and is not a VM. It’s just a converter. Don’t go ballistic based on speculations.

…and about Quake C. The goal of Quake C was to have a custom language for a particuliar audience, the mod makers, people who are not technically minded yet needed to write scripts that would run quickly, just to sequence calls of the API with basic logic. It was not to have a totally generic language, it was to have a CONTROLLED one, and one that has security built in.

Again, not all programmers think writing an interpreter is an unconceivable task that violates all common sense.

After that, as the requirement went up they gave up the scripting and switch to just using C++, which exclude a large class of users.

Lame. With your attitude, no new languages would ever be written. There’s nothing inherently wrong with Joel or anyone writing a new language, it all comes down to whether you think you can improve over what’s come before or not.

In such a heated conversation and with so many replies, i doubt mine will even be read much if at all. I know this isn’t the point of the article but you said Joel believes “teaching new programmers Java is liable to poison their minds.” This is not at all what his article says. He says, as do MANY promenant programmers including at least one of the GoF, that teaching only java to new programmers is poisonous. It has turned the major of comp sci in many places into a java-only schools which do not teach flexable developing habits. Java is being taught as a trade. In academia, development should be taught as an adaptable skill. The difference is not small.

Agreed, you need to correct this Jeff. What you said is plain untrue and anyone who follows that link will see that.

I just wanted to highlight this because I agree 100% with Joel’s view on this particular subject.

Most of the comments here make absolutely no sense to me. If Joel’s team developing their own language is such a bad idea, how can somebody deciding to write their own language (Ruby) be a good one?

I don’t see Wasabi being a bad thing, if it works the way Joel needs it to; it allows them to design and build their product, and their product apparently earns them considerable money. I mean, a recent article on JOS showed a picture of the staff at lunch, and I sure saw more than one person there.

There are lots of programming tasks that need to basically take input in one manner and produce output in another. ASP.NET itself takes code in one of several languages and produces HTML output.

I don’t see this as being any different from having to export data in multiple formats (XLS, XML, text, whatever). You don’t do that over and over again by hand, cutting and pasting back and forth, do you? No. You write your own proprietary application to do the work and produce the output. I don’t see Wasabi as being much different - you write the code in a VBScript-type language and it produces output as VBScript or PHP or whatever.

And for all of you criticizing Joel’s decision regarding Wasabi from a business standpoint - blow it out your ears. It isn’t anyone’s place to try and make business decisions other than the person responsible for that business itself.

And no, I’m not defending Joel. I don’t agree with everything he’s written, and he’s perfectly capable of defending himself. I just think that the majority of the comments here (and Jeff’s article itself) are ridiculous. (And Jeff - I read your site every day and usually agree with you; I even got the sticker. g)

I stopped reading at the first mention of the word Ruby. While skeptical, I was considering your POV, even after reading thru parts such as “…although I think Java is…” (who TF are you and why should I care what you think? it’s either objective or subjective, pick one and stick with it!). But once you mentioned Ruby, your ultimate motive for this attack, it was game over, your article became the digital equivalent of toilet paper.

it doesn’t appear that this can will get shut anytim e soon.