Hole In The Wall

カリフォルニア州サンノゼ在のソフトウェアエンジニア。

Can Your Programming Language Do This?

http://www.joelonsoftware.com/items/2006/08/01.html
いつもいつも鋭い指摘をわかりやすく説明してくれるJoel on Software、今回のエントリーもMuppet ShowのSwedish Chefを起用してとってもわかりやすい。ただ一つ気になる点が。

    // A trivial example:
    
    alert("I'd like some Spaghetti!");
    alert("I'd like some Chocolate Moose!");

These examples happen to be in JavaScript, but even if you don't know JavaScript, you should be able to follow along.

The repeated code looks wrong, of course, so you create a function:

    function SwedishChef( food )
    {
        alert("I'd like some " + food + "!");
    }
	
    SwedishChef("Spaghetti");
    SwedishChef("Chocolate Moose");

OK, it's a trivial example, but you can imagine a more substantial example. This is better code for many reasons, all of which you've heard a million times. Maintainability, Readability, Abstraction = Good!

国際化・地域化をやったことのある人ならわかると思うけれど、その観点からすれば下のコードの方が悪いコードである。このコードはローカリゼーション泣かせである。
Joel Spolsky、ここに書いたように、Unicodeやキャラクタセットには理解があるようだけれど、そういう人が書くコードとしてはちょっとなんだかなぁと思った次第である。エントリーが煩雑になるんであえてこうしたのかも知れないが、そうならそうと書いても良いんじゃないかな。今度出版されるUnicode 5.0の本にはJoel on SoftwareからUnicodeについて言及してる部分が引用されるかも知れないのに。。。
逆に考えるとこうだからこそ我々の仕事が無くならないのかも知れないが。