lang

プログラミング言語の速度とアプリケーションの速度がいかに関係ないかがわかるグラフ

まずは次の表をご覧あれ。これはプログラミング言語のベンチマークとして有名な Computer Language Benchmarks Game のベンチマーク結果。上にいくほど高速で、下に行くほど遅い言語になる。これを見れば、最速な言語は C/C++ であり、Java や Haskell や OC…

Facebook はなぜ HipHop を開発したかを考える

もとのエントリでも触れたけど、Facebook は PHP を C++ に変換して実行する仕組みを開発し、これを HipHop for PHP という名前で公開している。知っての通り、Facebook は世界最大の SNS であり、PHP を中心に構築されている。サーバの数も膨大で、その数約…

グーグル、C/C++に代わる新言語「Go」をOSSで公開

Google が新しい言語を発表。Noop涙目。 Goはグーグルの社員7人が「20%の自由時間」を利用して開発した。設計・実装を行っているのが分散OS「Plan 9」の創案者であるロブ・パイク氏や、Unix、Cの生みの親、ケン・トンプソン氏、Google ChromeのV8エンジンを…

アセンブラを吐くためのライブラリ

ところで JIT を使うのが一般的になると、アセンブラを吐くためのライブラリが重要になるはず。ちょうど Java では bytecode manipulator (generator) として Javassist とか ASM があるけど、アセンブラ用のはあんまり聞かない。探してみたけど、あんまりな…

TraceMonkey とか V8 とか SquirrelFish とか、速さも大事だけどさ…

TraceMonkey (SlideShare) Mozilla が開発中の次世代 JS エンジンについてのプレゼン資料 (via オレンジニュース)。たいへんよくまとまっている。書いた人グッジョブです。 TraceMonkey に限らず、Google Chrome の V8 とか Safari (WebKit) の SquirrelFish…

Lispのパワーユーザーは世界で100人

小飼氏は「LispがJavaScriptたりえないのはコミュニティが存在しないせい。世界レベルでも100人くらいしかパワーユーザがいない」と,コミュニティとテクノロジーの発展との関係を指摘します。 Web開発者の未来は明るいか?─「Webデベロッパの祭典@東京」開…

Linus、C++ をこき下ろす

On Wed, 5 Sep 2007, Dmitry Kakurin wrote: > > Git のソースコードを最初に見たとき、ヘンだと思ったこと: > 1. C++ じゃなくてただの C を使ってる。理由は謎。移植性がどうとか言わないで、 > そんなのウソに決まってるから。 *あんた* のほうこそ大ウソ…

「言語戦争」から「VM戦争」へ

Erlang VMのBEAMがホストする言語が増加している。Python/Rubyに似たスクリプティング言語のReiaとLisp Flavoured Erlangが先ごろリリースされた。Debasish Ghosh氏はこの傾向について思案しているが、他の制作者らはRubyやHaskellからヒントを得て、その他…

続:ゲーム開発現場で多くのオレオレ言語が生まれるのはなぜ?

吉里吉里の作者の方からトラックバックをいただきました。わざわざありがとうございます。 今気づいたんですが、MacOS X のことえりには「吉里吉里」が辞書登録されていますね。吉里吉里すげえ。 スクリプターという職の人にluaでシナリオスクリプト(KAGにお…

ゲーム開発現場で多くのオレオレ言語が生まれるのはなぜ?

日本だけなのかどうか知らないけど、ゲーム開発をしている現場では、結構な数のオレオレ言語 (つまりゲーム専用言語) が開発されているみたい。 【「MGS4」のスクリプト言語】 「MGS4」で使われていたKONAMI独自開発のスクリプト言語「GCL」は、実は植…

Java は近代の言語、Ruby は現代の言語、Curl は未来の言語

タイトルは釣りでもなんでもなくて、大まじめ。Curl というのは、MIT の人たちが作ったリッチクライアント用言語。もともと軍隊で兵士につけるデバイス用のアプリを作るために開発されたらしい。だから少ないリソースでも高速に動作し、バカでも分かるGUIを…

ソースコードを対象にしたデータマイニング

ソースコードを対象にしたデータマイニングってないかな。 コードの重複や、同じパターンが頻出するのを自動的に調べてくれるようなの。これが出来ると、初心者でもリファクタリングしやすくなるよね。 あるいは、例えばこのパターンは Rails で何件、tDiary…

PHPの次に勉強する言語は何か?

マジレスすると、HTTP。 Webアプリケーション作っているのに、PHPの知識はあってもHTTPプロトコルの知識がさっぱりな人が多くね? 他の言語を勉強する前に、GETとPOSTがどう違うのかぐらい勉強しようよ。 それでもあえて PHP ユーザが次の「言語」を選ぶなら…

キーワード引数のかわりに fluent interface (流れるようなインターフェース) を使う

Pythonでは、キーワード引数が使える。これは、引数の種類が多い場合は非常に便利である。 理由は、可読性が高いことと、引数の順番を気にしなくていいということ。 ## Pythonによるキーワード引数の例 rows = Query.find_all('stocks', where='price >= 100…

exact GC と conservative GC

祝 Matz 日記復活。 exactなGCの方が性能的にやや有利だが、 一方、拡張ライブラリの書きやすさは 保守的GCの方がずっと楽である。たとえば、Rubiniusはexact GCを採用しているため yieldを呼ぶメソッドをCで記述できない Cメソッド実行中のオブジェクトは自…

「怠慢はプログラマの美徳」というけれど

Java屋Java信者とスクリプト言語屋の間には、「めんどくさい」と感じるセンスについて超えられない壁が存在している。 本質的でない事柄に関する記述があったときに、スクリプト言語屋は「めんどくさい」と感じ、Java屋Java信者はそれを感じないか、または「…

Mark and Sweep GC より Reference count GC のほうがプログラミングが簡単になる

Python を使って驚いたことのひとつに、open したファイルを close しなくていいということがある。正確に言うと、close 自体は必要なのであるが、Python が勝手に close してくれるのでプログラマーが明示的に close しなくてもよい、ということである。 1:…

「読みやすさ」には静的な型よりも名前のほうが重要

『名前重要』というのは Ruby でよく言われるけど、これは Ruby に限らずどのプログラミング言語でもいえること。ただ、スクリプト言語では変数の型がないので、Java や C に比べてより名前が重要になってくる。たとえば、次のような Ruby プログラムがあっ…

老師曰く、「そんなものもあったかのぉ」:まとめ

老師曰く、「そんなものもあったかのぉ」:プログラミング言語編 Lisp の場合 弟子:「老師、Lisp はカッコが多くてわかりづらいです!」老師:「カッコ? おお、そういえばそんなものもあったかのぉ」 Java の場合 弟子:「老師、getter や setter のアクセッ…

Ruby や Python が使いやすいのは動的だからではない

Java とは逆になるけど、Ruby や Python が使いやすいのは動的言語だからではない。単に言語設計者のセンスが良かったから。ただそれだけ。OCaml や Haskell は、静的言語だけど使いやすいと評判である。これも言語設計者のセンスが良かったのだろう。ただし…

型安全、動的/静的な型付け、強い/弱い型付け

ohai日記: 「型」に関して たいへん分かりやすい説明。要約するとこんな感じか。 型安全な言語 型の食い違いによる「意味のない」「正しくない」操作を全て検出できる言語。例: Ruby や Java は実行時エラーがでるので型安全、C はキャストがあるので型安全…

「Python コード添削道場」を添削する

Python Workshop the Edge 2007: Pythonコード添削道場 どう書く?.org登場のきっかけとなったプレゼンで、内容はるびまの「あなたの Ruby コードを添削します」の Python 版。初心者にぜひ見てほしいプレゼンなのだが、残念ながら駆け足でのプレゼンなので、…

スクリプト言語の起動時間を調べてみた

実行してみると分かるが、Rubinius の起動は実に遅い。どのくらい遅いかというと、間違って Java を起動したんじゃないかと思うほど遅い。あまりに遅いので、Ruby と Rubinius の起動時間を調べてみた。ついでに、他のスクリプト言語の起動時間も計測してみ…

フレームワークや言語における思想の違い

これだけだと単なる Java 批判と取られるだろうから、そうじゃないことをアピールしてみる。 私の個人的な意見としては、一部の人(例えばアーキテクト)だけ、フレームワーク全体を把握していて、残りのメンバーは「限定されたことだけやっとけ」みたいなこと…