«前の日記(2007年08月19日) 最新 次の日記(2007年08月21日)» 編集

Matzにっき

<< 2007/08/ 1 1. [言語] 連載:C# 2.0入門 第3回 新しい繰り返しのスタイル − yield return文とForEachメソッド − @IT
2. [Ruby] Shoes, a Tiny Toolkit for Making Browser-like Things
2 1. [OSS] Download Hadoop at OSCON (Yahoo! Developer Network blog)
2. ウェブキャリアでWebエンジニアとしてのキャリアを磨こう 株式会社ウェブキャリア
3. 先達の業界に学ぶプロジェクトマネジメント 第1回 20年は遅れているITプロマネ:ITpro
4. 横浜
3 1. [OSS] 特別講演:「オープンソース・ソフトウェア開発思想とリアルな地域ネットワークの連
2. [Ruby] トークセッション-5:「世界に広がるオブジェクト指向スクリプト言語 Rubyの可能性」
3. 夕食: 中華街
4. [言語] Rubyの浮動小数点数リテラルの扱いは正しいのか
5. 今こそ問われるプログラミング雑誌の価値:ITpro
4 1. [言語] LL魂 〜 LL Spirit
2. [Ruby] The Ruby VM: Episode V
5 1. [教会] 第一日曜日
6 1. [言語] uehajの日記 - Groovyの奇妙な演算子(その1)
2. [言語] Tenjin
3. [言語] HAL - CNRS
4. Dr. Dobb's | Lock-free Interprocess Communication
5. [言語] Parallel Python
6. Googleは人材を飲み込むブラックホールか − @IT
7 1. [Ruby] Lazy Collectionへの第一歩
2. 蛙男商会からの報告・連絡・相談 祝・開星高校甲子園出場!
3. [言語] CSS、YAML、XML、JSONのいいとこ取り? 新データフォーマット「RSD」提案 | マイコミジャーナル
4. [言語] LL魂レポート
5. 仙石浩明CTO の日記: 面接FAQ: Tech総研「転職体験談」の取材を受けました
6. [Ruby] InfoQ: Gemstone OODB to support JRuby, Rubinius
7. [言語] Static Typers vs Dynamic Typers
8. asahi.com:ゲゲゲの「ぬりかべ」、こんな姿? 江戸期の絵巻に登場 - 文化・芸能
8 1. 上京・取材
2. 楽天ミーティング
3. [言語] ユメのチカラ: LL魂
4. livedoorの開発体制 - livedoor ディレクター Blog
9 1. [Ruby] MySQLカンファレンス
2. [OSS] symfonyで開発日記 : symfonyのソースコードの値段
3. [Ruby] [動画]オープンな開発プロセスとオープンな開発言語 − @IT情報マネジメント
4. [Ruby] davidflanagan.com: Changes between Ruby 1.8 and Ruby 1.9
5. 開発合宿のススメ Web Service:@nifty
10 1. [OSS] The Origin of XEmacs
2. コミュニティ活動以上に面白い会社にしたい − @IT自分戦略研究所
3. [Ruby] Tor Norbye's Weblog: Ruby Screenshot of the Week #15: More Hints and Quick Fixes!
4. [言語] Opening Python Classes | Ian Bicking: a blog
5. [言語] PHP and ActiveRecord
6. [言語] Martin Fowler's Bliki in Japanese - ひとつの言語
7. 【コラム】気ままにスイートフォト (4) ピンホールカメラを作ってみる | 家電 | マイコミジャーナル
11 1. 帰省・山口へ
12 1. [教会] 山口
2. 4931450601
13 1. 買い物・従姉妹
14 1. 帰宅
2. [Ruby] masuidrive on rails >> Blog Archive >> PHPユーザの為のRuby/Rails入門
15 1. [Ruby] Rubyist Magazine - Rubyist Magazine 0020 号
2. [言語] Object Arts | Future development of Dolphin discontinued.
3. [言語] syx - Google Code
4. [言語] SScript: enhancing JavaScript's expressive power << Noumena
5. [言語] Nu?
6. [言語] NYC LOCAL: Tuesday 14 August 2007 Lisp NYC: Perry Metzger on Otter, the new salty slick whiskered snow-bellying programming system - comp.lang.lisp
7. [Ruby] Making Rails Better - Fixing Architecture Flaws in Active Record
8. [Ruby] Erlang Message Passing - Ruby point of view
16 1. [Ruby] Rubyの技術者認定試験が10月開始,2008年には世界に向け英語版も:ITpro
2. [Ruby] ITmedia エンタープライズ:矛盾を抱えつつ進化する“Java”−−黒船となったRuby on Rails
3. [Ruby] Headius: NetBeans Ruby Support is the BOMB
4. [言語] Nine Javascript Gotchas
17 1. Hash functions.
2. [Ruby] Being John…uhm…Bader >> Blog Archive >> Ruby faster than Python and Perl!
3. Software Progress
18 1. IPA未踏ソフトウェア創造事業2006年度下期千葉PM採択プロジェクト最終成果報告会
2. [言語] The rantings of Clinton Forbes: The D Programming Language versus a Datsun 240Z
3. The Multicore Kerfuffle and a Dose of Reality at Mark Nelson
19 1. [教会] ビショップ不在
20 1. アンカテ(Uncategorizable Blog) - 日本が世界に誇るまつもとゆきひろ氏の大きな穴
2. [言語] Karsten Wagner's Blog: Better exception handling
3. [言語] A lack of productivity is killing Smalltalk.
4. The Most Excellent and Lamentable Tragedy of Richard Stallman − Edward O’Connor
21 1. 車故障
2. [言語] Introduction to Perl6
3. [言語] 5 Things a Ruby developer needs to know about Scala - CircleShare Blog
4. [言語] InfoQ: Erlang's Mnesia - a distributed DBMS for highly scalable apps
5. Tilera、デュアルコアXeonより10倍高速な64コアCPU「TILE64」
22 1. [Ruby] Sony講演会
2. [OSS] Microsoft vs. Google - the open source shame | Reg Developer
3. [言語] New Python Bugtracker
4. [言語] Interoperability with Java is not a good thing.
23 1. U-20 プロコン
2. [Ruby] Ruby Business Commons設立総会レポート
24 1. [Ruby] 山陰中央新報 - 「ルビー」活用の産業振興検討
2. [Ruby] 一方、鳥取・米子では
25 1. [言語] bbum’s weblog-o-mat >> Blog Archive >> Python: di
2. [Ruby] Performance benchmarks << evan.musing
3. [Ruby] InfoQ: Ruby 1.9 adds Fibers for lightweight concurrency
4. The Better String Library
5. [OSS] Can open source be giving comfort to the enemy? - DIY Drones
26 1. [教会] 聖霊の賜物
27 1. ねたミシュラン 千葉県マジで?!
2. [言語] Useless Factor: The R5.97RS Unicode library is broken
3. [言語] Pupeno’s web site >> Blog Archive >> The problem with Lisp
4. [OSS] Slashdot | Court Ruling Clouds Open Source Licensing
28 2. カンファレンスコール
3. NHK取材
4. [言語] sumim’s smalltalking-tos - なぜかくも人は Smalltalk を殺したがるのか?
5. [言語] 初歩の「Perl」「Python」「Ruby」 − @IT情報マネジメント
29 1. 東京出張
2. 「まわりが“天才だらけ”の中で、どう生き延びる?」 (“アンチ天才”のボトムズ流仕事術):NBonline(日経ビジネス オンライン)
3. [OSS] google-sparsehash - Google Code
4. [言語] [r6rs-discuss] Unicode issues
5. 楽天ミーティングで学んだこと
6. ソフトウェア開発者は製造業のことを知った方がよい
30 1. [Ruby] M17Nミーティング
2. [言語] Rebel Science News: The Seven Deadly Sins of Erlang
3. lucille development blog >> Blog Archive >> Xorshift RNGs
31 1. 有機化学美術館・分館:ナノチューブを溶かす意外なもの - livedoor Blog(ブログ)
2. [Ruby] 思っているよりもずっとずっと人生は短い。- Rubyバブル
3. [Ruby] Superators Add New Operators to Ruby
4. [Ruby] err.the_blog.find_by_title('Full of Ambition')
5. [Ruby] ITmedia エンタープライズ:EMEA地域でRuby on RailsとC#の利用が拡大
>>

2007年08月20日 [長年日記]

_ アンカテ(Uncategorizable Blog) - 日本が世界に誇るまつもとゆきひろ氏の大きな穴

えーと、要するに「いびつなことはいいことだ」ということなのかな?

私が日本を代表してるような表現は正直こっぱずかしいのだが、 「Windowsのことがわからないおっさん」という表現は 実はあんまりはずれてないかも。

ただし、わからないのは主にWindowsプログラミングであって、 日常的な操作や設定くらいは(人より回り道することはあっても)なんとかできる。

でも、ワードやエクセルやパワーポイントは今でも使えない。

_ [言語] Karsten Wagner's Blog: Better exception handling

Javaは明示的に宣言してない例外がハンドルされていないと コンパイル時にエラーになる。これはこれで素晴らしい機能だけど、 結果としてプログラムコードを繁雑にしてしまう(ことがある)。

元々は以下のようにシンプルなコードだったのだが、

String readData(File file) {
  BufferedReader in = new BufferedReader(new FileReader(file));
  String data = in.readLine();
  in.close();
  return data;
}

コンパイルできるためには例外を捕捉しなければならない。

String readData(File file, String default_value) {
  String data;
  BufferedReader in = null;
  try {
    in = new BufferedReader(new FileReader(file));
    data = in.readLine();
    in.close();
  }
  catch(FileNotFoundException e) {
    return default_value;
  }
  return data;
}

しかし、これでもまだダメだ。close()がIOExceptionを出すかもしれない。 で、最終版はこんな感じ。

String readData(File file, String default_value) {
  String data = default_value;
  BufferedReader in = null;
  try {
    in = new BufferedReader(new FileReader(file));
    data = in.readLine();
  }
  catch(IOException e) {}
  finally {
    if (in != null) {
      try {
        in.close();
      }
      catch(IOException e) {}
    }
  }
  return data;
}

例外の捕捉漏れを検出して、正しいコードを書かせようという言語機能が むしろコードを繁雑にして、「元々やりたいこと」を例外処理に埋没させてしまう危険性がある。 また、こんなに繁雑だとそもそも例外なんか使いたくない(Cみたいにエラーコードにしちゃう) という気にさせられてしまうんじゃないかなあ。それだとむしろ退化を促進しちゃう。

まあ、こんなことするくらいなら上にIOExceptionを投げちゃえばいいのかもしれないけど。

一方、Rubyではこうなる。

def read_data(file)
  begin
    file.readline
  ensure
    file.close
  end
end

でも、これは例外をそのままスルーしてるんで、 上記のJavaコード(最終版)と比較するのは反則かもしれない。

_ [言語] A lack of productivity is killing Smalltalk.

Dolphon開発終了にインスパイアされたエントリふたたび。 「Smalltalkが生産性に欠ける」というのは、 またずいぶん大胆なエントリタイトルだと思う。

が、ここでは「言語としてははるかに劣るJavaが、 その言語としてのなじみやすさや クラスライブラリの蓄積によって 『普通のプログラマ』の生産性を向上させることにより、 Smalltalkエキスパートよりも低コストでのソフトウェア開発を可能にした」という ことが重視されている。

数少ない「選ばれた人」の生産性がいくら高くても、 圧倒的に多い「普通の人」の(安い)生産性にはかなわない、 という視点か。

完全に同意はしないものの、「普通の人に優しい」というのは、 Rubyが唯一LispやSmalltalkに勝っている点だけに、 個人的にはアリな視点だと思う。

_ The Most Excellent and Lamentable Tragedy of Richard Stallman − Edward O’Connor

Stallmanの欠点は他人の感情を理解しない点だと思う、という話。

StallmanはEmacsのある機能を修正することを、 EmacsメンテナのStefan Monnierに依頼した。 しかし、Stefanには娘が産まれたばかりなので、時間が取れなかった。

Stallmanの返答は

I am sorry to hear it. Unless someone else can figure these things out, I guess the release has to wait until you have time.

それは残念だ。ほかの誰かが対処できなければリリースは延期しなければならないな。

他の人がStepanに「おめでとう」を言う中、Stallmanは追い打ちをかけた。

It doesn't take special talents to reproduce -- even plants can do it. On the other hand, contributing to a program like Emacs takes real skill. That is really something to be proud of.

It helps more people, too.

子孫を作るってのには大した才能は要らない。植物でさえできることだ。 それに比べてEmacsのようなプログラムに貢献するのは誇るに足る本当の才能だ。

もっとたくさんの人を助けることになるしね。

いや、そりゃそうなんだけど、ねぇ。


«前の日記(2007年08月19日) 最新 次の日記(2007年08月21日)» 編集