The Safety-in-Numbers School of Software Design

Joel's latest essay on writing big enterprisey apps boils down to two pieces of advice:

The safe answer, for the Big Enterprisy Thing where you have no interest in being on the cutting edge, is C#, Java, PHP, or Python, since there's so much evidence that when it comes right down to it zillions of people are building huge business-critical things in those languages and while they may have problems, they're not life-threatening problems.

That, and anything other than those four choices for a platform are "unsafe". So pick whichever one you are most familiar with, and run with it. And, if you really want to try Ruby on Rails, do it in your dorm room, where it doesn't matter when you fail to scale up.:-)

Of course, you know the drill by now. Insult Rails on a high profile blog, expect an immediate response from DHH pointing out exactly where your arguments are categorically wrong because, as we all know, Rails is the best thing ever done with a piece of software.:-)

For my money, both Joel and DHH miss the point entirely. It's not about picking the popular tools that the corporate developer lemmings have blessed as safe. It's not about taking throwing PhD's into a room, giving them Lisp, and expecting great things. And it's not about the war between static and dynamic languages, dumb vs. crafty frameworks, or convention vs. configuration.

It's about understanding the problem, understanding the tools, and building an appropriate solution.

If you take Joel's argument at face value (and that's all it is, a philosophical statement devoid of data or a provable hypothesis), and look back 10-15 years ago, you'll find you have an argument in favor of the status quo: large, mission critical apps running on DOS/Win3.11 + Netware, written in dBase, FoxPro, Clipper, or their ilk. These tools were simply not up to the job, yet as demonstrated by countless unnamed "enterprise" projects, they were suitable for any big enterprisey project.

Yet these were the worst kinds of tools for these jobs. Or, rather, these weren't the tools you really wanted to solve these problems, but they were the best that was available for the slow, underpowered machines of the day. And they sucked. And everyone knew they sucked.

What was the answer? Move away from DOS, move towards Windows (3.x), and client/server programming environments. Brand new and obviously better solutions like SQLWindows, PowerBuilder, Visual Basic, and I forget what else. (Even Smalltalk was a contender for a small number of projects as well.) And if you didn't want to risk an unproven language, an unproven RDBMS, an unproven vendor on a big important project, there was always C and C++ on big iron Unix boxes working with CORBA ORBs. Or, if you were really daring, C++ on Windows with COM (soon to be new and improved, once 32-bit Windows stabilizes).

But were any of those choices the answer? No, not a one of them. (Except VB, which, when adopted widely, wasn't the same language or environment as the anemic offering available for Windows 3.x.)

The lesson here is that the solution blessed by masses of corporate lemmings, isn't always the right one, and the obviously better pitched by Vendors Who Know isn't necessarily the right solution either.

It turns out that the right solution here was the web. And it took a decade to discover, adopt, figure out how to write webapps, and wait for the browsers to be debugged enough. Once everything was in place, we all could move away from the slow, buggy, kludgy, enterprisey development projects that really weren't as solid as they needed to be, and start talking about more fundemental problems, like how to model your data properly.

Sunday August 27, 2006

08:16 PM

You can't speed time

Peter Norvig gave a commencement speech at the Berkeley CS Commencement earlier this year. In his speech, the tells a story of a friend of his who, many years ago, attempted to isolate the chemical that makes aged whiskey taste so good. Given that isolate, it should be possible to add it to young whiskey, and skip oak aging entirely, yet still produce something drinkable.

This friend did isolate the compound. And, as expected, it made young whiskey taste good.

The next step? Scale up. Procure a 55-gallon drum of the special sauce and start making 5 year old whiskey in a few weeks.

But there was a slight flaw in their master plan. The vendor could not provide a 55 gallon drum of this special ingredient.
Why?

we regret that we can not fill your order because we are currently low on stock and, as I'm sure you know, to produce this chemical we need to age it in oak casks for five years.

Tuesday August 01, 2006

02:48 PM

The Tidal Wave Cometh!

Eighteen months ago, Audrey was looking for something challenging and started writing pugs in Haskell. After the first three weeks, were nearly every day brought a blog post like "Today was the most productive day of the pugs project ever! I doubled the number of features again!", lots of people started to notice. Not only notice Audrey and pugs, but also Haskell.

I noticed. Which is why when I was presented a project (for a previous employer) around the same time, for a parser with an unknown set of requirements and constraints, Haskell sounded like the way to go. Indeed, it was; once I got my bearings, my ability to modify the code outstripped the ability of managers to add/change/contradict requirements. In fact, it was not uncommon to spend 1-2 hours in a meeting with 3-8 people discussing a feature that took ~15 minutes to revise/implement.

Fast forward to last week, when I presented a tutorial at OSCon entitled Introduction to Haskell. Based on the feedback from attendees, it went over pretty well.

Fast forward to today, when Joel Spolsky writes about basic functional programming practices, using JavaScript for his examples. (Nothing that you haven't seen already in Dominus' HOP. What you don't have a copy? Why not?)

At this rate*, by 2010 (2015 at the latest), all programming languages that aren't functional will be obsolete; the only kinds of jobs that will be open will be for functional programming, and the only kinds of people in the market will also be functional programmers.

Functional Programming. Not just for eggheads anymore.

*: This is the same logic that noticed a sustained annual 10x increase in Perl monger groups by early 1999, and predicted that there would be more Perl mongers groups than people on the planet by 2006/2007.

Saturday July 22, 2006

07:24 PM

Best SF EVER!

The problem with this or any 100 best list is that the listing and ordering is totally random. Many of the books listed here are certainly among the 100 best SF books, but their relative rankings are totally out of whack. Some are darn good, but don't belong on a 100 best list. Others are classic SF, but not in the top 10, or much better than the lower 50.

All of which leads me to conclude that the world's best (and perhaps only) algorithm for creating a 100 best list is this: take a whole mess of candidates, throw them into a blender, do not put the top on, and see what sticks to the wall when you turn it on. Order the resulting mess from top to bottom, left to right.

End of an Era -- at Sun

Sun Microsystems said Monday that Scott G. McNealy, one of its founders, was stepping aside after 22 years as chief executive, an era in which Sun helped establish the dominance of the microprocessor chip in corporate computing.

They got their facts straight, but the hyperbole is way off. McNealy did a great deal for Sun and for corporate computing. But will he have "helped established the dominance of the microprocessor" etched on his gravestone? I think not. Cirque du Soleil is among the leaders in promotions of acrobatic performance art, but no one is praising the ticket taker or popcorn salesman as "helping establish the popularity of acrobatics" or any such nonsense.

Sure, praise the man. He deserves it. But don't claim he invented the internet, cured cancer, or solved the halting problem. Sheesh!

Congratulations,you have been selected as one of the lucky winners of the US VISA through our internet email extracting and screening machine,your application was applied and processed by our internet email extracting and screening machine which randomly extracts and scans millions of email adresses across the world.

This Special visa programme is new and was innovated by the US embassy in Kuala lumpur Malaysia last year november.The US Consulate in Chiang Mai launched the programme this year november,the programme is designed to be held every year ending.The aim and objectives of the programme is to give free visas to citizens of developing countries around the world to enable them travel to the US and start a new life and work.The Chiang Mai consulate released 12 visas in this regards and hopes to increase the visa number to 24 by late next year,you are among the 12 lucky people that won the visa and among the 5 foreigners that won the visa,7 visas were won by Thai nationals.

...

Just what I always wanted. A visa to visit the USA!

Wednesday April 12, 2006

11:19 AM

Rumors revisited

Scouring through my old journal entries, I found this interesting tidbit, via the ever-accurate and reliable MacRumors:

What about rumors of OS X on Intel?
Marklar is even more of a going concern than ever. Contrary to circulating rumors, it is not meant to be a Power PC exit strategy. Rather, it is intended to be offered to X86 users when Apple sees market conditions being fit for it. What it means by this is regarding Intel's Lagrande technology, and Microsoft's Palladium technology. Apple intends on releasing OS X on Intel, when consumer dissatisfaction falls to an all time low for Microsoft when users become restricted to what they can do on their PC's due to Lagrande and Palladium. Likely it will be released in the event that Microsoft chooses to stop developing for the Mac platform altogether.

Not an exit strategy. Waiting for Palladium and Lagrande. Massive amount of dissatisfaction directed towards Microsoft from the PC community. Waiting for Microsoft to leave the Mac platform. Hm.....

Pretty impressive batting average: 0 for 4. The only thing that was true in that rumor was that Marklar was a going concern.:-)

Wednesday March 22, 2006

01:41 PM

Chef's Shenanagans

Origami

It's 03.09.06 (in American terms at least), so it's time for Microsoft to unveil it's super-sekrit "Project Origami". All signs point to a new Newton, updated for the 21st Century -- a wireless Windows device the size of a DVD case that's both computer and general purpose media device.

Andy Brown, an analyst in London with IDC, a research firm, said "converged devices" like Samsung's Q1 faced an uphill battle to win over consumers, who are more likely to favor traditional laptops with keyboards or tiny MP3 players than dual-purpose machines.

"The growth prospects are not really strong," he said. "The main problem for most is that they fall in between what consumers are looking for."