There has been a lot of discussion recently about some posts Joel Spolsky made on his weblog over the past few weeks.
As for the Wasabi stuff (FogBugz being developed in a custom language called Wasabi), Coding Horror says:
Writing your own language is absolutely beyond the pale. It's a toxic decision that is so completely at odds with Joel's previous excellent and sane advice on software development that people literally thought he was joking. He had to write an entire follow-up post to explain that, no, he wasn't kidding.
I kind of agree with this statement, but I think this is a gray area, and Joel is just the other side of gray from me and most developers.
Lots of people write applications that may as well be in their own custom programming language.
If you:
- Have more than 100 lines of XML in a config file
- Write code that does reflection based on the contents of strings it got somewhere (config file, database - like DataBinder.Eval, or DataView.RowFilter, if you're a .NET developer)
- Write code that doesn't closely follow the business model you are working in (ex. you have classes named like "SessionEntityLayerManager" in an application that helps people sell used cars)
...then you have written an application in a custom programming language.
Never mind the semi-colons, curly braces, case sensitivity - that stuff is irrelevant. If I don't know what a SessionEntityLayerManager is, I don't know your language. If I have to look at a .config file to figure out what a program does, then the program must be in the config file. Guess what - "your config schema" isn't one of the programming languages listed on my resume. I will have to learn it to understand your program.
I bet Wasabi is actually almost the same as vb script, just with different keywords for doing loops or recursion or something like that. Macros. If Joel's team had implemented anonymous delegates or something functionally equivalent in VB Script, VB, C++, whatever, and put it in a method called "Fazooble" it would be more confusing than what Wasabi probably looks like. I can imagine what it would look like to put anonymous delegates in vb script. I would probably be able to guess what it did - it would be symbolic! I can't imagine what "Fazooble" does.
Wasabi is probably more like a code generator than lisp.
I think in the future, as more and more advances are made in topics like DSLs and light-weight scripting languages, we will see more and more people developing in things that kind of look like Wasabi. Or maybe not. Maybe DSLs are a fad. Who knows?
Source: Has Joel Spolsky Jumped the Shark?
Originally published on Tue, 12 Sep 2006 07:59:59 GMT