« 技術力の3つのタイプ - 使う、創る、動かす | メイン | SOAがなぜ流行らないか »

サンプルコードに反省

 先日の「JavaとLLをマッシュアップせよ from 丸レク」ですが「JavaのコードがCOOLでない」「Javaを意図的に貶めるのはいかがなものか」という言葉をいただきました。さくらばさんのコメントや、矢野さんのエントリとか。もう、おっしゃるとおりです。

 言い訳をすれば「わかりやすさ」を取ったというところで「Javaは手順重視」「LLは直感重視」というところを書いたのですが。せめてクロージャーの話でもすればよかったと思いつつも、そうすると説明長いし…みたいな。ま、比較するようなものではないのでしょう。


 ともかく個人的にはすごい反省材料。僕は「自らの言葉とコードで語る」というのは頑なに守っていて、なるべく自分が書いたアプリやコードをデモするようにしています。他人が作ったどっかのサイトみせて「すごいでしょ」っていうのはいかがなものかと。プログラマがデモやコードのないプレゼンをすべきではありません。
 その上でビジネスサイドがわかるであろう概念論(前回で言えばドラッカーとかトフラーとかそういうの)と組み合わせて話をしています。
 
 というわけで、ああいった"ゆるいコード"を提示してしまったことは深く反省しておりますです。Javaはさくらばさんの

import java.util.Arrays;
import java.util.List;

public class Sample {
  public static void main(String[] args) {
    int total = 0;
    List list = Arrays.asList(new Integer[]{1, 2, 3, 4, 5});
    for (int i = 0; i < list.size(); i++) {
      total += list.get(i);
    }
    System.out.println(total);
  }
}

が短いですかね。ちゃんとInteger使っているし。一方のGroovyは若干強引ですが、1行で書いて

println( (1..5).inject(0) {t,v -> t+v} )

こんな感じで。特徴はRangeとClosureを使っている点です。これはJavaには真似できませんし十分比較になりますね。

 ただ、もちろん、ここはJavaの主戦場ではありません。コンパイル言語の特徴は、型を通じて同時に多人数がコミュニケーションできるところです。LLの良さとは、まだ次元が違います。

 コードの書きやすさにおいて比較するというよりも、両方の特徴が見えるようにすればよかったなと反省です。

トラックバック

このエントリーのトラックバックURL:
http://www.arclamp.jp/mt33/mt-tracback.cgi/1851

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

About

2006年12月18日 23:52に投稿されたエントリーのページです。

ひとつ前の投稿は「技術力の3つのタイプ - 使う、創る、動かす」です。

次の投稿は「SOAがなぜ流行らないか」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Creative Commons License
このブログは、次のライセンスで保護されています。 クリエイティブ・コモンズ・ライセンス.
Powered by
Movable Type