development

Joel Gets Hammered

September 1, 2006 11:06:57.971

Via Less is Better, David Heinemeir Hansson gets the Board of Education out for Joel Spolsky - read the whole thing, it's well worth it. I love his summary:

So Joel and friends invented their own language, which has to reasonably compile to three and a half different ones. Yes, they're building their Serious Business Stuff application on a 1-off, closed language. So please do as I say, not as I do, dammit. And pick something mainstream and "safe".
I swear I couldn't make this stuff up even if I tried. Joel, you're my new hero of irony. And as soon as you start selling those t-shirts with "Serious Business Stuff", I got green ready to flow. Short of that, I'd take a red teddy bear with the embroidering "Someone is Going to Get Fired".

Oh, and let me address something that I wasn't specific about in my post on this - his FUD on Smalltalk (and Lisp, Ruby, etc)

Last summer when we had a group of interns build Copilot, we had to decide what language to use for new code. I know that typically on new projects there's a long evaluation period where you decide what technology to use, along with lots of debates that include some crazy person actually wasting quite a lot of time evaluating Squeak and Lisp and OCaml and lots of other languages which are totally, truly brilliant programming languages worthy of great praise, but just don't have the gigantic ecosystem you need around them if you want to develop web software.

So let me get this straight, Joel: having one of your developers build a custom language (bus count: 1) is a better idea (with a bigger "ecosystem") than using Smalltalk? Or Lisp? Or Ruby? Sheesh, I'd call that stupid, but I'd be insulting all the stupid people that way. This goes down from stupid, straight into stoooopid.

Let me know how things work out on that when your Wasabi guy moves on to the next great opportunity.

Technorati Tags:

Comments

The difference is the lang compiles down to languages with a 'gigantic ecosystem'

[[|]] September 1, 2006 11:46:29.628

The difference here is that the dsl they created compiles down to languages with a 'gigantic ecosystem'. So my thought is that if the dsl was developed correctly, they kept in hooks or ways to integrate with already existing libraries/frameworks available from the languages which they are targetting. So it isn't exactly the same.

Generated code...

[ James Robertson] September 1, 2006 12:58:05.173

Comment by James Robertson

Customizing generated code tends to lead you into all sorts of hard to maintain scenarios.

[Tom Sattler] September 1, 2006 13:21:33.848

Let me know how things work out on that when your Wasabi guy moves on to the next great opportunity.

No, you're all missing it.  His Wasabi guy has NO next great opportunity.  What kind of opportunities are there for a guy who built a language that only one company uses?  His ONLY opportunity is in that company.  He is a Joel-owned guy now.

 

Re: His Wasabi guy has NO next great opportunity

[[|]] September 1, 2006 14:02:24.076

Sure he does... DSL's/compilers/etc. are everywhere and lots of companies need them. There's tons of opportunities.. sure other companies don't need Wasabi, but they do need someone with the knowledge to create something like it, somewhere else, for a completely different set of constraints.

Re: Joel Gets Hammered

[ Troy Brumley] September 1, 2006 14:02:37.134

Comment by Troy Brumley

I don't follow Joel regularly, but I took his piece as satire. That said, a couple of things come to mind.

First, my coworker Bob is trying to crack open one of those web development ecosystems to see how we can deploy our tools over an Ajaxy web interface. Admittedly, we're not Java stack managers (and I'm talking about software stacks, not call stacks), but we're all experienced in doing development on multiple platforms with odd configuration management. That ecosystem looks like a complete mess so far.

DHH and his Ruby on Rail's mantra of "convention, not configuration" makes even more sense now after seeing the mess of WAR files and whatnot.

Second, I do think that what we used to call data driven or table driven code (ie, metadata) has a place, and in some domains it makes sense to use it. Our metadata is descriptive, not imperative. I wouldn't want to write a new programming language for a specific domain, but I'm quite willing to design and create metadata to inform and direct my code.

Hmmm...

[Hmmm...] September 2, 2006 12:59:13.720

Generated code should not be even generated because by definition it is redundant. If you can express the rules to generate the code in a code generator, then you can also express the rules that the generated code is expressing as compactly as in your generator.  In other words, write it once and only once: build a framework to deal with all the repetition and save yourself the issues of generated code maintenance.