「ほっ」と。キャンペーン

とりとめのないことを書いております。
by tempurature
カテゴリ
全体
プログラミング
scheme
verilog
未分類
以前の記事
2016年 04月
2016年 03月
2016年 02月
2016年 01月
2015年 12月
2015年 11月
2015年 10月
2015年 09月
2015年 08月
2015年 07月
2015年 06月
2015年 03月
お気に入りブログ
PHPで競技プログラミング
メモ帳
最新のトラックバック
ライフログ
検索
タグ
人気ジャンル
ブログパーツ
最新の記事
情報処理技術者試験 お疲れ様..
at 2016-04-17 18:55
基本情報技術者試験 平成27..
at 2016-04-14 04:48
基本情報技術者試験 平成27..
at 2016-04-13 23:03
苦い薬(ハーブ、サプリメント..
at 2016-04-09 14:03
「おバカ度チェックリスト」を..
at 2016-03-24 09:54
外部リンク
ファン
記事ランキング
ブログジャンル
画像一覧
どうしてracketは流行らないのか?
私のより新しい意見はこちらになります。



racketは、PLTというグループが開発するlisp系言語です。racketはもともとPLT schemeという名前で、scheme実装の1つでしたが、schemeとCommon Lispを踏まえた新しいlispを作るという目標のもとに分化しました。

racketの1番の特徴は、windows, macOS, linuxで使えるGUIベースの開発環境 Dr. Racketであり、Common Lisp, Schemeではこれほど簡単に導入することができる環境は私の知る限りではないです。

とはいえ、日本ではracketはほとんど知られておらず、アメリカでもCommon Lisp, Schemeほどの人気はない言語です。

現在私が知る限りにおいて、なぜracketが流行っていないのかを考えてみます。


< 1 > racketの実装は実行速度が遅い

lispのコミュニティの中では、schemeに比べてracketの実行速度が遅いという評判です。実際そうなのか私自身把握しているわけでなないですが、そういう書き込みは見ています。

< 2 > 枯れた言語ではない

C, scheme, Common Lispなどは古い言語なので、ドキュメントやライブラリが充実しています。また、仕様変更が頻繁におこらないので、レガシー資産を使うことができ、また、自分の書いたコードを10年後にも使えるだろうという安心感もあります。

pythonやphpなどは人気のある言語ですが、現在も言語の仕様変更が行われているのでコードの寿命が短いという問題があります。racketも生まれたばかりの言語なので同様の問題が発生します。

< 3 > lispの慣用とは異なる

racketはschemeとほぼ同じような言語仕様ですが、scheme, Common Lispとは相容れないような違いがあります。

・識別子(identifier)は大文字と小文字を区別する

scheme, Common Lispでは大文字・小文字を区別しないので、lisperが大文字の名前と小文字の名前を使っているracketコードを見ると混乱します。

・文字コードはunicode

schemeやCommon Lispでは独特の文字列処理体系を持っていますが、racketではpythonやDに似たunicodeによる文字列処理を行っています。

これらの特徴は、lispを他の言語と併用しようと考えた場合には長所となります。racketはモダン言語の1つとしてのポテンシャルは持っていると思います。

< 4 > 実装の種類が少ない

scheme, Common Lispは商用、非商用の実装が多数あり、実行速度や拡張機能などのニーズで色々な実装を試すことができます。racketはPLTで配布している実装だけなので、素人向けではありますが、プロ向けではないのだと思います。



racketはscheme, Common Lispに比べて日本語の情報が少ないですが、導入の手軽さでは群を抜いており、GUI, webサーバー, 3Dグラフィックスのライブラリも一通り揃ってますので、趣味のプログラミング用途では一押しです。

racketが有用であるかどうかは難しいところですが、racketの日本語の情報を提供することで、多くの人が言語に関してより正しい選択ができるようにしていけたらと考えています。


[PR]
by tempurature | 2015-07-26 16:08 | scheme
<< 【恐怖】Dr. Racketの... 最強のプログラミング環境は? >>