読者です 読者をやめる 読者になる 読者になる

「LL言語が後退局面に差し掛かっている件」対してに的外れな事を言ってる連中が多すぎてヤバい

LL言語が後退局面に差し掛かっている件に対しての反応が的を外しすぎていて笑える。確かにIDEや生産性のくだりはゴミクズなんだけど、それにしてもみんなゴミの部分に反応しすぎである。

ということで、酒も飲んでるので勢いで色々書いておく。

LL言語が後退局面に差し掛かっている件」でも触れられている重要な技術動向

ゴミクズを取り除くと、まっとうな事が書いてある。

  • LLの成長に陰りが見え始めてきた。
    • ただしwebアプリケーション分野では今後も相当長く現役を続けるだろう。
  • 今現在、もっとも富を生み出すのは(ほぼリアルタイムな)超大規模データ解析。
    • Hadoopが何かを理解してない技術者はクソ。
    • テラが当たり前のように乱れ飛ぶ現場でLLが出来る事など無いに等しい。
  • JavaScriptだけ別格の扱いをせねばならない。
    • node.js(サーバサイドJavaScript)がWeb開発のメインストリームになりそう。
  • PythonはGAE、RubyRails)はSalesforce等があるので今後も重要。
  • 相対的にPerlPHPは影が薄くなる。

そもそも、プログラミング言語自体の流行りがLL(動的型付け言語)から、型推論付きの静的型付け言語とか関数型言語に移ってきてるよねーというのはありますね。

LL言語が後退局面に差し掛かっている件」への反論へのコメント

ゴミクズ部分への反論は捨ておくとして。

LLからHadoop使えばいいじゃん(Hadoop Streaming使えばいいじゃん)

悪くはないんだけど、選択肢としては微妙だと思う。Hadoop StreamingはJava MapReduceと比較してパフォーマンスが若干悪い。
Hadoopは分散処理フレームワークであり、サーバが何十、何百、何千・・・という台数を利用することではじめて存在価値が出てくる。どれだけ小さなクラスタでもサーバ4台くらいは必要かと思う。それより少ないとHadoopを使うメリットがない。
つまりどういうことかと言うと、Hadoop上で動かすプログラムが遅い分だけ余計にサーバ台数が必要になり、非常に不経済だということだ。EC2などを利用すれば安いのは確かなのだが、それでも無視し難いレベルで金銭的な負担が発生してしまう。

スタートアップは超大規模データを集められない、だから別にRDBでいいじゃないの

あながち間違ってはない。小さなサービスにはHadoopなんて不要である。
しかし、サービスが大きくなってしまってからRDBからHadoop(分散DB)への移行することは、アーキテクチャの大転換・データの大移動が必要になり、地獄の道になることは意識しておく必要がある。TwitterがCassandraへの移行を断念した事実は忘れてはならない。
また、Hadoop(分散DB)を使うシステムはRDBを使ったシステムとは違い、(いつ使うかはわからないけど)とりあえずデータを貯めまくる、むしろデータが多いこと自体に価値がある、ということを頭にいれてシステムを作る必要がある。「超大規模データ解析に価値がある」に繋がる話。

おまけ(Scalaについて)

Scalaは非常に良い言語なんだけど、現状はIDE環境作るのが楽じゃなかったり、scalacとfscとか初学者に言ってもわからんと思うし、そういう面でのユーザフレンドリーさがないと、所詮マニアック言語で留まっちゃうんだろうなーと思ってます。