スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

誰のためにソフトウエアを書くのか?(私がソフトウェア技術者でもありつづける理由から)

少し前にはてブを見ていたら、「私がソフトウェア技術者をやめた理由」というブクマがありました
私がソフトウェア技術者をやめた理由 (Rails で行こう!)
私の職業プログラマのとしての最大の欠点は、ソースコードに対して強い美意識を持たずにいられなかったところだろう。生来の生真面目な性格が災いし、私の基準で美しいとはいえないソースコードを敵視しすぎた。
簡単な例を挙げよう。
うるう年を計算するアルゴリズムを考えてみる。うるう年とは、「4で割り切れて、かつ100で割り切れない年。ただし、400で割り切れたら、やはりうるう年」である。
def leap_year?(y)
(y % 4 == 0) && ((y % 100 != 0) || (y % 400 == 0))
end
これを次のように計算している商用プロダクトのソースコードを目撃したことがある(オリジナルは Visual Basic 6 であった)。
def leap_year?(y)
if y == 1996
return true
elsif y == 2000
return true
elsif y == 2004
return true
elsif y == 2008
return true
elsif y == 2012
return true
elsif y == 2016
return true
elsif y == 2020
return true
elsif y == 2024
return true
elsif y == 2028
return true
end
return false
end

後者のようなコードを書く人っているよね。と激しく同意したのが数日前のこと。
で、昨日、このブログの批判?をみつけました

私がソフトウェア技術者でもありつづける理由 (404 Blog Not Found)
(Shift_JIS|EUC_JP|ISO-2022-JP)とUTF-8を変換するアルゴリズムを考えてみる。
問題がこうなったとたん、最も「美しい」実装も「見るに耐えられない」ものとなる。(Shift_JIS|EUC_JP|ISO-2022-JP)が元としているJIS X 0208をはじめとする「JIS X 02XX規格」とUTF-8が元としているUnicodeの間には、うるう年のような「美しい」変換規則などないからだ。よって変換テーブルを使うこととなる。何万文字もあるので、当然ソースコードも大きくなる。元記事の「美しくない」事例など、大便の前のフケひとかけらに過ぎないほど。

(中略)

ご愁傷さま。もうこの時点で間違っている。
ソフトウェア技術者というのは、まず誰より自分に対して報いる仕事なのだから。
自分に報いることが出来なくて、どうして人様に報いることが出来ようか。
私が一目置くソフトウェア技術者たちは、まず誰よりも自分に報いる人々であったし、あるし、これからもそうでありつづけるだろう。私自身、人に報いようと思ってやった仕事がうまく行った試しがない。たかがblogの記事一つでさえそうなのだ。
自分に報いるのであれば、どんな醜い仕事でも「はい、喜んで!」やれる。
世の中が美しいのは、そうやって自分に報いている人々が、その過程でゴミ拾いを続けて来た結果なのではないか。
なのだとしたら、ゴミを拾わぬ人に、美の何たるかを語って欲しくはないものだ。

引用が長くなりました。

小飼弾の批判は的外れと思います。
前者のブログでは、「スマートに実装できるはずなのに、能力不足で美しくない実装をするのが許せない」という内容です。
が、小飼弾は、それを「美しくない実装の否定」と勝手に読み替え、「時には美しくない実装が必要だ」と問題をすりかえています。

相手のブログの過去記事まで引用しての人格批判。
実名ブログでこれをやられたらたまりませんね。
小飼弾というひとは、自分にどれくらいの影響力があるのか分かっていないのでしょう。
怖い、怖い。


が、この議論の裏には、美しい・美しくないというのとは別の観点が含まれていると思います。
それは、プログラミングすることの見返りです。

おそらく前者のブログは商用プログラム。
ソースコードが表に出ることはなければ、他人によって再利用されることも無いと思われます。

一方小飼弾のUTF-8変換モジュールはオープンソース(GPL)です。
たとえ、泥臭いプログラムであっても、それ以外の解決法が無ければ賞賛を浴びることが出来ます。
「僕らの代わりに、便所掃除してくれてありがとう」と。

ブログにかかれている通り
>しかし、他のどんな成果よりもうれしかったのは、Perlコミュニティという、プログラマーのコミュニティの中では最も魅力的なコミュニティの一つの中で、かけがえのない地位を得たことだ。
というのが、オープンソースの偽らざる目的のはずです。

なので、
>ソフトウェア技術者というのは、まず誰より自分に対して報いる仕事なのだから。
というのは嘘でしょう。

成果に見合った見返りがあるのは当然のことだと思いますが、見返りを望んでいるのを隠そうとするのは邪(よこしま)だと思います。


小飼弾が過去に行った便所掃除が世の役にたっているのは確かです。
が、それを宣伝するために、他人の考えを否定するのは最低だとfocusligtsは思います。

コメント

Secret

プロフィール

focuslights

Author:focuslights

since 2007.4.29
誤りのご指摘は大歓迎ですが、考え方に対する抗議は一切お受けいたしません。
リンク確認等は不要です。

すべての文章は、法律並びに医学に対する資格を有さない、一個人の心情を吐露したものであり、法務もしくは治療法に関する情報提供を目的としたものではありません。

本ブログにはいわゆる見通情報(forward-looking statements)を含み、実質的にこれら見込みとは異なった現実的な結果に至ることがあり得ます。
本ブログはそれらを参照したことによって引き起こされる一切の結果に対して責任を負いません。
また、見通し情報に更新もしくは改正が望ましい場合であってもその義務を負いません。

批判的な文章を掲載する際には解決法の提示が望ましいと考えていますが、問題点を抽出整理して、広く知らしめることで、集合知により解決を図ることも重要と考えているため、対案の提示は必須とは考えていません。

オーストラリアのカンガルー虐殺反対活動を推進しています。

テンプレート「RotundityBlue」と「cfdn_12」を利用させていただいています
Ne me blâmez pas.

批判的なコメントを入力される時には、なるべく対象を明記してください(ブログ主への批判なのか、以前のコメントに対する批判なのか。など)

最近の記事
最近のコメント
リンク
カレンダー
06 | 2017/07 | 08
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 - - - - -
ブログ検索
ブロとも申請フォーム

この人とブロともになる

RSSフィード
By FC2ブログ

Powered By FC2ブログ
ブログやるならFC2ブログ

FC2カウンタ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。