04 June, 2005

When you come to a fork in the road, take it

This is for the programming-savvy among you. You know who you are.

My formerly preferred programming language is Eiffel. The compiler I've been using is SmartEiffel. It was the only one I knew that worked for the Mac, although now I discover the aptly-named Eiffel for OS X.

Alas, version 2.x is not exactly compatible with SmartEiffel 1.x. Some of my code compiles; some doesn't. Supplied libraries have changed; formerly case-insensitive keywords (like FALSE and TRUE) are now case-sensitive (apparently — funny, I thought Eiffel itself was supposed to be case-insensitive); even the files that work generate warnings out the wazoo.

Trying to figure out what was going on, I visited the comp.lang.eiffel newsgroup, and began reading anything that might be there.

Hoo-boy. In the words of one frustrated writer:

No one could take their SE 1.x code and compile it with 2.x. Code that worked with ISE Eiffel 5.x, VE 4.x/5.x and SE 1.x doesn't work with SE 2.x.
Apparently the Eiffel language is forking. Someone wrote:
In that respect, we think that indeed ECMA Eiffel has forked from Eiffel. ECMA Eiffel is not Eiffel. ...SmartEiffel is not old Eiffel either, but it looks more like old Eiffel than ECMA Eiffel ever will.
In short: SmartEiffel isn't compatible with its former self, nor with the latest standard Eiffel. The latest standard Eiffel is also not compatible with the former Eiffel. (If I read things correctly.)

Thank God people waited to break things until after I completed my research, or I'd have been really forked.

But wait! there's more!

There's a rumor on C|Net that Apple is considering a switch from PowerPC to Intel chips. I refuse to link to it, but learning about a hardware fork on the heels of learning about a language fork doesn't thrill me one whit.

Look, World: you weren't supposed to take Yogi Berra's advice.

Back to Eiffel. What to do? I could port my code to the SmartEiffel 2.x codebase. This would put me outside the Eiffel mainstream. Of course, if the drums of doom on comp.lang.eiffel are correct (and no one is challenging these basic facts) the Eiffel mainstream will no longer be... ummm... mainstream.

I read a little further in the newsgroups, and one poster asks:
Is there a compiled, object-oriented language that actually would facilitate the production of reusable software and that would be a better choice than Eiffel?
The reply comes:
Funny. I had been thinking, Ada's looking better every day.

Now you know what kept me awake until 2.30am: reading all these sordid stories of programming language infidelity.


No comments: