Curlが好きなわけ

前回紹介したCurl Blogのエントリをひとつ紹介したいと思います。

Christopher Barberという、Curlの主にコンパイラ部分を担当している開発者兼アーキテクトによるポストで、プログラマにとってのCurlの特徴について述べられています。

Today, I thought I would start out by highlighting a few of the attributes of the Curl which most appeal to me as a programmer:

挙げられていたのは、immediacy, speed, markup, static/dynamic typing, extensibility, multiparadigmという6つのトピックです。
それぞれを簡単に紹介します。

immediacy

手軽さ?といったところでしょうか。とりあえず、Curl RTEとお気に入りのブラウザ、それにテキストエディタさえあればCurlアプレットを作って動かすことができる点を指しています。

speed

Curlの優れたパフォーマンスについて言及しています。Curlが(インタプリタ言語ではなく)コンパイラ言語であること、そして動的にコンパイルするパッケージはキャッシュされ、不要なリコンパイルが行われない仕組みなどについて説明されています。優れたパフォーマンスを実証する例として、CurlIDEそれ自体がすべてCurlで作られていることを挙げています。

markup

CurlがHTMLのようなマークアップ言語としての側面を持ち合わせていることを紹介しています。CurlのオンラインドキュメントもすべてCurlで記述されています。

static/dynamic typing

Curlが静的型言語/動的型言語のいずれとしてもプログラミングできることを説明しています。静的型言語としてコンパイル時の型エラーの発見や最適化の恩恵を受けることができる一方で、動的型言語のように型指定をせずにダックタイピングのような柔軟なプログラミングをすることも可能です。

extensibility

Curl言語の拡張性について。Curlが備えるマクロの仕組みは、新しい制御構文の定義や、頻出するイディオムに簡潔な別の文法を与えることなどを可能とします。また、型推論や条件付きコンパイルなどもマクロによって実現することができます。

multiparadigm

Curlがマルチプログラミングパラダイムをサポートする言語であること。既に出てきたマークアップ言語や、静的型/動的型言語としての特徴に加えて、オブジェクト指向や手続き型、関数型などのプログラミングスタイルも採用することができるということです。



ざっと紹介してみました。型推論とか関数型言語とかは全然詳しくないので文脈おかしかったらご勘弁。興味があって英語の分かる方はぜひ本文の方をご覧になってください。

Of course, there are many other aspects of the technology and specific features that I like, but I will leave those to future posts.

ということなので、また新しいエントリがあったら紹介したいと思います。