Lazycoder

1Sep/060

Getting the job done…

(The actual title of this post is “Getting the job done vs. technical wanking”)

Compare and contrast these two posts. First Joel Spolsky.

Since we don’t want to program in VBScript or PHP4 or even PHP5 and we certainly don’t want to have to port everything to three target platforms, the best solution for us is a custom language that compiles to our target platforms.

Since we are not blub programmers, we like closures, active records, lambdas, embedded SQL a la LINQ, etc. etc. and so those are the kinds of features we put into Wasabi.

and Rob Howard

We’ve learned a lot in the last 2+ years building software at Telligent. One of the biggest lessons we’ve learned is one we didn’t really anticipate: a shift from caring less about the underlying technology to how our software solves the user’s problem. It’s a subtle change, but as an ISV this is probably one of the bigger “maturing” steps a software organization has to go through. You can tell when an ISV hasn’t made this transition yet: the literature and announcements about their releases focus 100% on the underlying technology instead of how the software solves a particular set of problems for the people that use it.

Which one sounds like they’ve learned more? You can ALWAYS make a technical case for pursuing a particular language or using a particular piece of technology. And there are many cases where man hours are saved later in the project by spending some time inventing something early on. But there is a difference between implementing routines to make the application more portable/stable/scalable/etc… and just wanking off writing some really complicated and “cool” code. I’ve seen people try to re-write databinding in .NET instead of using the built in databinding functionality. I’ve seen people add a script parser to a data entry application and write all of the data entry forms in their custom script rather than use the visual designer in VB6. And now I’ve seen a company write a compiler to output a single bug tracking application in multiple languages. Usually, the companies that take the time to do that sort of technical wanking are building shrinkwrap software. There’s just something about building a prodcut that you actually think people will buy (I think it has something to do with the arrogance required to think that YOU alone have defined the feature set for a given problem domain and no others can stand before your mighty application.) that brings out that kind of thinking.

In this specific case, Joel says it would take a talented programmer two months to write a compiler from scratch. And we all know that companies only hire the top 1% of all possible programmers right? How long does it take to hire a talented PHP or .NET programmer? How long does it take to train someone to use “Wasabi”? Does knowing that domain specific language translate well to other positions in the company? How about outside of the company?

I’ll tell you one thing, if an application told me during an interview that they had spent the last two years writing code in a custom programming language for an in-house compiler I’d say, “Damn man, sucks to be you. How did you keep your other programming skills current?”.

n.b. What’s really interesting to me is that both Rob Howard and Joel Spolsky are products of the same company, Microsoft. Although at different points in the companies history. Joel was there much earlier than Rob was and I’m sure the environment was very different.

Filed under: General Leave a comment