
Has Joel Spolsky Jumped the Shark? (2006) - shawndumas
http://www.codinghorror.com/blog/2006/09/has-joel-spolsky-jumped-the-shark.html/#
======
nilkn
Spolsky himself left a comment buried in the discussion on that article:

> Let's put it this way. You have these constraints:

> (1) Six years of code already written in VBScript

> (2) Needs to run on customers' Windows and Unix servers

> (3) Minimize tech support costs

> (4) Many customers refuse to install new runtimes on their servers, either
> because of IT policies or out of stubborness

> What would be your solution?

Anyway, whether it was a good solution or not, I don't quite understand the
need that some people had to pick on someone so harshly. I never really
followed Spolsky's blog but as far as I can tell it was pretty tame and
respectful. Am I missing something?

Edit: Also, a compiler from one high level language to another is not the
hardest thing in the world to write. We've got college kids these days writing
new languages that compile to JavaScript. Maybe this was viewed as more of an
extraordinary engineering feat back then or something.

~~~
akavi
Creating a new language is trivial (Hell, I've made one). Creating a robust,
well-designed, full-featured, peformant language is very much not.

And that totally ignores the absolutely _massive_ benefit of having a
community around your language of choice. Libraries, bug fixes, googleability,
a pool of programmers to hire from, etc, etc, etc.

~~~
nilkn
I agree completely, but I am curious what your answer to his question would
be. What would you have done in that situation?

------
DenisM
Spolsky has been pumping out great, engaging content in his blog for years; I
remember spending countless hours with my friends arguing over it. Then he
wrote a couple of mediocre posts and stopped blogging altogether. Had it ended
there, it would have been merely an astounding feat of self-awareness.

But it didn't end there. Joel had then converted his entire audience to seed
Stack Overflow - _the_ one invention that had the biggest impact on the
programmer productivity in the 21st century. That's one hell of way to jump
the shark, a gold-medal level performance. We would be lucky beyond measure if
that sort of "disaster" happened to us every four years, or even each decade.
But we're not so lucky.

Hats off to Joel Spolsky.

~~~
lubos
I hope you are aware Stackoverflow was actually created by Jeff Atwood. Joel
just gave the initial idea something along the line like "let's make something
like ExpertsExchange but less evil"

Not to mention, Stackoverflow was seeded initially by Atwood's audience (since
he was the developer of the project to start with). I know because I was one
of the first users back in private beta.

~~~
DenisM
Ok. I still think its one of he best ways to jump the blogging shark - donate
your audience to where it matters the most.

~~~
lubos
Joel didn't donate anything. Donations are given without return consideration
which is hardly the case here since Stackoverflow was his business.

~~~
jessaustin
So does Spolsky get credit for SO or not? You can't have it both ways.

------
cllns
For reference: Jeff Atwood and Joel Spolsky founded Stackoverflow two years
later.

[1] [http://www.codinghorror.com/blog/2008/04/introducing-
stackov...](http://www.codinghorror.com/blog/2008/04/introducing-
stackoverflow-com.html)

------
spolsky
Wow, ancient history, but this later became a standing joke, and Jeff mostly
recanted. See [http://pvm-
professionalengineering.blogspot.com/2010/05/jump...](http://pvm-
professionalengineering.blogspot.com/2010/05/jump-shark.html) (although why
that site exists, I cannot say.)

------
JPKab
From the comments on the article: "However, _instead_ of upgrading to ASP.NET,
they decided to.. write their own proprietary language that compiles down to
VBScript/PHP/JavaScript."

Atwood then goes on to call it "crazy town."

Am I the only one who thinks that this decision might've paid off down the
road for them? It sounds like he was just trying to code his app in a way that
it would work in multiple types of server stacks, rather than trusting that MS
wouldn't break their backwards compatibility again after doing so with
ASP.net.

Maybe I'm wrong. I'm curious what the people who know way more than me think
about this. I knew next to nothing about web apps in 2006, other than dabbling
in PHP as a side note in a MySQL class.

~~~
spolsky
By way of background -- at the time that we created Wasabi's predecessor,
Thistle, we had a large code base in VBScript that only ran on Windows, and
almost no developers. Thistle was done by a summer intern in eight weeks and
got us PHP FogBugz running on Unix for 8 weeks work, which almost doubled our
potential market.

At the time, Fog Creek consisted of three people and one summer intern. We
couldn't afford to rewrite all of FogBugz in some other language... even if
there was a language (in 2003) that was reasonably portable between Windows
and Unix, which there wasn't. (Yes, we considered PHP. That would still have
been a full rewrite, and PHP on Windows was crappy and increased the system
requirements in a way that our customers wouldn't have liked).

Yeah, a Lexus is better than a Camry, but not everyone can afford Lexuses. So
saying "you idiot, why are you driving that crappy car, it's obviously crappy"
is not particularly insightful... the question is, if you can get 90% of the
bang for 10% of the bucks, that's a pretty good decision as a startup, even if
it seems strange.

What's more interesting about the reaction is that so many average programmers
seem to think that writing a compiler is intrinsically "hard," or, as Jeff
wrote in 2006, "Writing your own language is absolutely beyond the pale." To
me this sounds like the typical cook at Olive Garden who cannot possibly
believe that any chef in a restaurant could ever do something other than
opening a bag from the freezer and dumping the contents into the deep fryer.
Cooking? With ingredients? From scratch! Absolutely beyond the pale! Compilers
aren't some strange magic black art that only godlike programmers are allowed
to practice. They're something you learn how to create in one semester in
college and you can knock out a simple one in a few weeks. Whatever you think
about whether it's the right thing or not, if you think that a compiler is too
hard to do as a part of your day job, you may want to invest some time in
professional development and learning more about your craft.

~~~
taproot
I think you and Jeff absolutely deserve each other, and are both equally
fucking mental. (btw, stopped reading both of your blogs years ago
specifically because of trite shit like this)

> We had a large code base in VBScript that only ran on Windows, and almost no
> developers.

So you roll your own language to improve things?

> Yes, we considered PHP.

I don't think you did.

> That would still have been a full rewrite, and PHP on Windows was crappy and
> increased the system requirements in a way that our customers wouldn't have
> liked.

Full rewrite into a cross platform language which only went on to improve and
would have been far more backwards compatible [with a small eventual migration
to php5]. I'm sorry but the fact you can't write a decent install script or
manual to get your system working in different environments is not reason
enough to roll your own language. Yes developing the compiler didn't take long
but now you have a zero'd recruiting pool, a slower debug loop and an eventual
fragmented maintenance nightmare. Oh and by the way, saying "PHP on Windows
was crappy" is not particularly insightful...

> Cooking? With ingredients? From scratch! Absolutely beyond the pale!

It is when you're working at McD's though, and that is what Jeff everyone else
was trying to tell you.

> What's more interesting about the reaction is that so many average
> programmers seem to think that writing a compiler is intrinsically "hard,"

We didn't react because we're average and think writing a compiler is hard, we
reacted because you went against every common sense principal of software
development there is. Any idiot who completes a degree can build a compiler /
code generator, that doesn't mean its a good idea for your next web app. But
go ahead, call us "average" delude yourself more, everyone who doubts you is
just stupid because, well you're just such a godlike programmer.

I don't get it, its obvious, you're an MS flake, because of that you didn't
want to use the logical choice, PHP, so you did something stupid. And now you
can't just own it, instead you going around insulting everyone who calls you
out. The best developers own their mistakes and learn from them, the bad ones
flail around, blame the language, system, or other people.

~~~
bandushrew
Ive just downvoted you. Agree or disagree with Joel's decision - reasonable
people do differ, but either way, your post was just plain rude.

Please dont write posts like that on HN.

~~~
taproot
Thats ok re the downvote, I know it was pretty on the nose. Post still stands
though, kind of interested to see what Joel has to say.

------
lnanek2
If customers prefer to run bug tracking software internally, then you are
giving up a lot of customers by only offering external hosted solutions. If
customers prefer one stack to another for internal solutions, then you are
giving up a lot of customers by saying you only work on PHP or some other
stack. If you just look at Joel's decision to write in something compiled to
different stacks that can be run internally from a technical perspective,
yeah, it sucks. But if it doubles the number of people who will buy your
solution, then it may not suck from a business perspective.

Software is all about spending a fixed amount to produce it and then selling
it over and over and over. If you double that fixed amount and double the over
and over and over, you doubled your profits. Writing once and compiling to two
things is less work than writing the same product in two different code bases
as well. That sounds good and ignores things like buying a magazine ad becomes
more efficient because more people who see the ad are potential customers.

As an engineer, I sure as hell wouldn't want to work on a system written in
Wasabi. But as a business person, or an employee getting equity or options, it
might make sense.

------
olalonde
Does anyone know if FogBugz's codebase is still in Wasabi?

edit: Apparently it is, as of 2010.
[http://fogbugz.stackexchange.com/questions/210/is-
fogbugz-7-...](http://fogbugz.stackexchange.com/questions/210/is-
fogbugz-7-written-in-net-or-still-wasab). Also, a 2011 Quora answer by
Spolsky: "Much of the FogBugz code is still in Wasabi but a lot of it is in C#
now." [http://www.quora.com/Joel-Spolsky-Are-you-still-using-
Wasabi...](http://www.quora.com/Joel-Spolsky-Are-you-still-using-Wasabi-for-
building-FogBugz-and-what-would-you-pick-today-if-you-were-starting-from-
scratch)

~~~
gecko
FogBugz' core is still in Wasabi, but nearly all new code, including one hell
of a release coming out soon, is in C#. The Wasabi core is gradually dwindling
into an API shell, which will itself probably disappear at some point in the
future. If you prefer to think of it this way: on any given FogBugz page load,
you'll hit Wasabi, but the time spent in Wasabi will be increasingly tiny.

Kiln is pure C#/Python, Trello is pure CoffeeScript, and so on. Wasabi solved
a porting issue. It wasn't designed for and isn't used for new stuff.

------
andrewvc
FogBugz in general is terrible. I use it everyday, and it's remarkable insofar
as how amazingly bad the UI is. I was shocked to finally use software by Joel,
who's essays I'd been reading for years, and discover that it was terrible.

~~~
gnosis
_"I was shocked to finally use software by Joel, who's essays I'd been reading
for years, and discover that it was terrible."_

Spolsky's writings have always seemed to me to be completely vapid and
obvious, at best.

To see what a great reputation he has among pointy-headed bosses and
developers alike is a sad comment on the state of the industry.

That his company writes crappy software should surprise no one.

~~~
andrewvc
Well, I guess I'm just an idiot and a fool. You must be great to work with.

~~~
dandelany
I'm surprised that _you're_ surprised that your incredibly negative comment
yielded an incredibly negative response.

------
shawndumas
Here is some detail on the kind of stuff Wasabi does:

"[H]ow to translate [this bit of VBScript] a(1), which could mean "look up the
2nd element of array a" or "call the default method of the object a passing
the argument 1" depending on what type a contains at runtime? This really
matters, because we use arrays, and because we use the built-in class
RecordSet all over the place, doing things like rs(1) which is short for
rs.Item(1).Value, and since VBScript is latebound there is no way to know what
code to generate in PHP until runtime, and that's too late! The only correct
thing to do in PHP would be to generate code that checks the type of a, and
decides, at runtime, whether to do an array lookup or a method call. This is
messy and slow and would suck big rocks in the kinds of tight loops where you
tend to be using arrays.

How did we fix it? Well, thanks to Hungarian notation, so callously dissed by
developers who do would not recognize a superb coding convention if it walked
up to them on the Shanghai Maglev train and shook their pants leg, every
recordset at Fog Creek starts with the letters "rs". And Thistle looks for the
rs and say, "ah, this is a recordset, you're not looking for an array value,
you're calling the default method," and generates fast code. Based on your age
you will either call this an evil hack (if you're young) or an elegant hack
(if you're old); in either case it's a huge optimization made possible by the
fact that Thistle only has one program to compile. Outside of Fog Creek it
wouldn't work. All hail Hungarian notation!"

<http://www.joelonsoftware.com/articles/FogBugzIII.html>

~~~
mikeash
I like how making it so that variable names determine whether or not the
compiler generates correct code is labeled an "elegant hack". To borrow his
phrasing, this makes me wonder if Joel would recognize an elegant hack if it
walked up to him on the Shanghai Maglev and shook his pants leg.

~~~
cpressey
I would barely call this a hack at all; it's only a hack under the view that
it feels icky to evolve a programming convention into a language construct.
Languages have been treating (parts of) variable names as part of the type
system for ages: Fortran, BASIC, Perl, ...

------
nhashem
Reading the entirety of Spolsky's post was especially interesting for me to to
read:

<http://www.joelonsoftware.com/items/2006/09/01.html>

Interesting to see Joel's comments on web stacks built with Python and Ruby
back in 2006, and even taking a snipe at Lisp. I really can't decide whether
web development has fundamentally advanced in every way in the past 5-8 years,
or whether it's essentially the same.

~~~
spolsky
Keep in mind Ruby on Rails had been out for less than a year at the time I
wrote that, and the only thing I said about it was that brand new frameworks
are not the kind of thing that enterprises like to bet the farm on.

~~~
reinhardt
As opposed to things like, say, brand new languages that compile down to
VBScript.

The whole Wasabi story sounds eerily similar to this classic Daily WTF:
<http://thedailywtf.com/Articles/Classic-WTF-We-Use-BobX.aspx>

~~~
tptacek
A good reason not to do anything interesting with programming languages in
your company: because if word gets out that you did, you'll never, ever hear
the end of the snarky comments about it.

~~~
zem
well said. i was actually quite impressed that they were willing to pay the
up-front cost for developer productivity by writing a targeted dsl for their
app.

------
danpalmer
Having read the linked post by Jeff, the post first mentioning Wasabi by Joel,
and the follow up to it, I'm not sure I can see what all the fuss is about?

There are a few things that I think sound wrong, things like performance
comparisons with Ruby, although I wasn't doing web development in 2006, and
I'm sure it was a very different time.

However I don't think Jeff was entirely fair to Wasabi. He picked on it
compiling to VBScript, but I think Joel explained clearly that it was only one
of the possibilities, and in fact PHP5 would have been a perfectly good target
to compile to.

I think we have a lot more choice now for web applications, and therefore I
don't think it's justified to write your own compiler and language in-house
anymore for something like this. However at the time, I think what Fog Creek
did with Wasabi was a good decision, and actually quite inspiring.

------
loumf
Here's more of the back-story to why they created the ASP->PHP compiler in the
first place: <http://www.joelonsoftware.com/articles/FogBugzIII.html>

------
wglb
And he was so convinced that Joel had jumped the shark that he went into
business with him.

------
c3d
At Taodyne, we also developed our own language. That lets us do that:
<http://www.youtube.com/watch?v=9vv18SFljzA>. No other language fits the bill.

Try that in Javascript or PHP and see if you can fit the whole thing in 15
minutes (the YouTube upload limit)

Sometimes designing your own language is just the right thing to do.

------
metaphorm
i'm asking in advance for a little indulgence as I trot out my language
snobbery:

I had to check that the blogpost wasn't an April 1st submission because the
entire premise of writing a toolchain to get cross-platform compatibility out
of Visual Basic has get to be April Fool's material. The fact that the
language is interpreted from VB into other languages that might generously be
described as "partially good" (like JavaScript and PHP) just takes this whole
thing over the top.

in other words my mind is blow (as per Atwood's comment) that the goal of
cross-platform compatibility wasn't achieved in a sane way, like just using
Java or Python.

------
xer0x
Gold. Thank-you for posting this. I missed this.

