Friday, July 29, 2005

In my Inbox this morning

We provide the ointments you require at really reasonably priced.

Hmmm. Seems like the spammers are moving into haemoroid treatments.

The easter egg was the random text added to defeat the spam filters. This comprised a snippet of Hans Christian Anderson and two nibbles from Jane Austen's "Persuasion". I'm particularly taken with the phrase "all histories are against you" which from now on I shall regularly drop into arguments.

Tuesday, July 26, 2005

Programming: is it an art?

Ming Chow writes in his O'Reilly blog that a computer program is no different than a novel. Hmmm. Obviously both books and programs comprise words 1 whose organisation is governed by syntax; both are written. But as activities writing a novel and writing a program are completely different.

For a start novelists are writing a story to please themselves. Programmers, on the other hand, are writing a set of instructions for a machine to meet their users' requirements. Novelists work on their own. Programmers usually work as part of a team. This means their work has to conform to common standards and have a consistent presentation. The only writers who have to work like that are a bunch of Parisian surrealist poets playing the Exquistite Corpse game.

I would particularly take issue with this statement:

Source code should be read like a novel, and great programs should be planned so like any great novel.

I don't think source code should read like a novel. Even back in the days when I was writing COBOL the code was modular. In the modern world of object-oriented programs, loose coupling, configuration files and code re-use any resemblence to linear narrative has gone right out the window.

Furthermore, few novelists do plan their novels in any great detail. Rather they start off with an initial idea, invent a character or two and see what happens next. It's not unusual to hear a novelist say in an interview that they were surprised by what one of their characters said or did. Most have only the vaguest idea of how the plot will resolve itself until they get to the end of the book. Which, on reflection, does sound a lot like eXtreme Programming. That doesn't do lots of planning up front either.

As someone who studied history at university rather than a scientific discipline I'm alert to the possibilities of regarding programming as an art. Although there are some similarities some similarities with novel writing I would regard film-making as a much more analogous activity. There's teamwork, the studio system, the need to meet a budget, open source as a Woody Allen/Russ Meyer independent movie maker, etc. Indeed, watching Lost In La Mancha, a documentary about Terry Gilliam's failed attempt to film Don Quixote was just like watching a film about a computer project crashing. But writing software is primarily an engineering activity. I find I get much more insight from pondering the metaphorical implications of structural engineering, classical architecture and town planning. These all feel like activities that have a greater bearing on programming than reading a biography of Charles Dickens.

1. Except for languages like BF of course. (back)

Friday, July 22, 2005

OTN Forums: here we go again!

Oracle have updated the forum software underlying the Technet forums. Which means at the moment they are are frequently unavailable and currently wholly unreliable. This is the third time I have been on the receiving end of an upgrade to Oracle's forum software and every time it's been shambolic.

It's easy to mock Oracle's incompetence here, and I will. As someone who uses the OTN forums quite frequently (I am, after all, an ACE) I am on the receiving end of crashes, lost posts and general frustration. So mockery is my recompense.

I know JDeveloper promises "one click deployment" to iAS10g servers but we are supposed to test our code before clicking that button. The fact that the web site is falling apart at the moment - dodging formatting, missing pages, hideous Java error stacks and grindingly slow performance - is inexcusable. Whatever else I may think about Java and J2EE it is a language blessed with a plethora of cool testing tools. Still, at least when we do eventuially get to post stuff we have graphical emoticons instead of boring text ones :)

There is a more serious point: the forums are a public demonstration of Oracle's abilities in the web environment, and this is where Oracle want to make a big splash. So they ought to regard the forums as an advertisement for their abilities in this sphere. After all, if Oracle can't make an iAS10g site highly available and resilient what chance is there for the rest of us?

They certainly ought to make sure the site is stable before publicizing "an improved user experience overall" on the OTN homepage.

Tuesday, July 19, 2005

JDeveloper: Like Aretha Sang...

My mate Duncan Mills recently complained of the lack of respect shown towards him by some Java heads on account of his choice of IDE. Now Duncan is a good bloke and I'm sure he would still maintain that JDeveloper is the best Java programming environment even if he didn't work for Oracle Corporation. But scepticism is understandable: JDeveloper was always going to be a hard sell to the Java community.

Firstly, JDeveloper is not open-source, it's proprietary. Java heads tend to make a fetish of platform-independence, and so suspect anything that threatens to lock them into a single supplier. Of course, Java itself is proprietary: the IPR belongs to Sun, they just give the JDK away to all and sundry. To paraphrase the Free_Software_Foundation, Java is free as in free beer not free speech. But at least IDEs like Eclipse, by being open, allow everybody to get involved.

Secondly, JDeveloper is belong to Oracle. Famously, Oracle make an RDBMS. Java heads, by and large, loathe RDBMS. They may tolerate open source quasi-databases like MySQL but they utterly detest commercial big iron databases like Oracle. Partly this is because relational database design is orthogonal to object-oriented modelling. But also the concept of platform independence means that the persistence layer of any system can supposedly be a database or a flat file, so why sweat the details. Either way there is a general reluctance amongst Java programmers (and other OO practioners) to tangle with RDBMS. In its extreme this leads to half-baked ideas like Prevalyer or hand-rolled persistence packages. More common is the tendency to use dont-worry-about-the-database tools like Hibernate. In such a climate few people are going to look favourably upon a tool developed by an RDBMS vendor for the purpose of making it easier to build Java front-ends to database systems.

Like it or not, people will regard JDeveloper as a Java version of Forms, that is a tool for building front-ends to Oracle databases. The fact that it is genuinely platform independent, standards compliant, etc. will not sway them. I know people who switched from using JDeveloper to using Eclipse, simply because they thought using the de facto industry standard would look better on their CVs. As they are now ex-colleagues of mine I guess they bet the right way.

Of course, Duncan is correct to say people ought to be more respectful of other people's opinions but it ain't going to happen anytime soon. Probably the two largest demographic groups on the net (and certainly amongst the l33t h4x0rz who care deeply about IDEs) are
  • potty-mouthed teenagers; and
  • social inadequates who get on better with machines than with people.
These people pro-actively scorn everybody else (to avoided being scorned first). Expecting respect from them is like expecting cabbies and bicycle couriers to obey the Highway Code. Given that the web is a tool that provides an instantaneous conduit for insults, with a virtual guarantee of no meaningful comeback, the real wonder is that there civilised discourse at all.

Wednesday, July 13, 2005

Anti-symbols in public signage

Whilst travelling on holiday recently I noticed that airports and aeroplanes have added a new icon alongside the signs for Gents' and Ladies' toilets. It's an upside-down feeding bottle, indicating the location of a breastfeeding room..

I think this is actually an anti-symbol. Why? Simply because if you've got your baby's milk in a bottle you don't need to hide away in a room when you're feeding her. Of course, the icon has to be euphemistic: a literal representation would offend exactly the same people who are offended by the sight of mothers nursing in public.