Page Top

訳文 anchor.png


この文書は、 The Case for D の (1ページ目の) 和訳です。

翻訳者: 三浦 雅弘 (echochamber at gmail dot com)


The Case for D

高レベルなシステムプログラミング言語

By Andrei Alexandrescu, Dr. Dobb's Journal Jun 15, 2009 URL:http://www.ddj.com/hpc-high-performance-computing/217801225

Andrei Alexandrescuは Modern C++ DesignとThe D Programming Languageの著者です。彼のサイトは ernadi.org/ です。

この記事では、なぜD言語に本格的に注目する価値があるのかを説明します。

読者のみなさんを納得させるのが簡単な仕事でないことは分かっています。 我々プログラマというものは、言語の好き嫌いについては一風変わった習性を持っています。 本屋で「プログラミング言語XYZ」といった本を見かけても、「わかってるよ、30秒もあれば、XYZで気に入らない所が何か見つかるさ」と反射的に思ってしまうのです。 プログラミング言語をマスターするまでには多大な時間と手間がかかり、その達成感も不確かな形で遅れてやってきます。 そのような努力をしない理由をさっさと見つけることが生存本能となっています。 つまり、そのような努力は賭け金の高い危険な投資であるので、否定的な決断を早目に下せば大いに安心できるというわけです。

とはいえ、プログラミング言語を学んで使うことは楽しいものです。 ある言語でコーディングしていて楽しい時というのはたいてい、コーディングする人が重視している原則にその言語がよく合っています。 ここがズレると、プログラマは、その言語はいい加減で不安になるとか、独善的で退屈だなどと思うようになります。 人々の要望や好みはしばしば相反するものであり、一つの言語がそれらを同時に満たすことはできません。 このため、様々なプログラミング言語が広がりを見せる風景のなかで、言語はその居場所を注意深く定める必要があります。

ではDの場合はどうでしょう? もう聞いたことがあるかもしれません − 名前のダジャレがやり過ぎな言語。 他の言語の専用ニュースグループでときどき話題になり、オフトピックな話題に厳しい人達が怒って止めさせるまで鬱陶しい。 友人に熱狂的なファンがいる。 あるいは単に、暇潰しに「この広いインターネットには、Dという名前の言語を作った馬鹿がいるに違いない」と検索してみた結果、「ああ、やっぱりいた!」

この記事では、概略を紹介するにとどめます。 そのため、直観的に理解しやすい概念や機能については、厳密な定義はしないこととします。

Dの基本的な機能をいくつかざっと見ていきましょう。 Dの機能や制限の中には、それが意味する範囲がどこまでなのかはっきりしない物がたくさんある点に注意してください。 読み進めていくうちに気に入らない事に出会っても、心配しすぎないようお願いします。 すぐ次の文に、心配を解消してくれる事が書いてあるかもしれません。 例えば、「Dにはガーベジコレクションがある」という文を読んで背筋に寒気が走り、 「幸運のお守りを身につけて、こいつには近付かないようにしよう」という緊急警報が脳内に鳴り響いたとします。 ちょっと読み進めれば、Dにはコンストラクタとデストラクタがあり、これを使えば生存期間のはっきりしたオブジェクトを実装できることが分かります。

本題に入る前に...

本題に入る前に、知っておいてほしいことがあります。 まず何といっても、あなたがDについて詳しく調べてみようかと思ったならば、今はアーリーアダプタに利点のある非常によい時期だと言えます。 Dの進化は猛烈に速いのですが、そのことは意外と知られていません。 素晴らしい改良点がたくさんあって、それが今まさに世の中に広まろうという時期なのです。 この記事も、そのきっかけの一つとなるでしょう。 現時点で、私の本 The D Programming Language は40%ほど書き上がっており、Amazonで予約受付が始まっています。 Safariの購読サービスであるRough Cutsでは、内容を先に 読むことができます

D言語にはメジャーバージョンが2つあります。 D1D2 です。 この記事ではD2だけを扱います。 D1は安定版で、バグフィクス以外の変更は入りません。 新バージョンであるD2は、言語の一貫性が向上し、CPUの多コア化やジェネリック・プログラミングに関する重要な機能がいくつか追加されており、そのため後方互換性が若干犠牲になっています。 この進化のため、D言語は以前より複雑なものになりましたが、実際に使われている言語が小さくなるという事はありませんので、これはむしろ良い兆候です。 「小さくて美しい」ことを目標に開発が始まった言語でも、実際に使われているうちに仕様が大きくなっていくものです。 (Lispでさえそうでしたね。やれやれ。) プログラマは小さくシンプルな言語という理想を夢見ますが、夢から醒めると結局、モデル化する力がもっと強い言語を使いたがるようです。 Dは過渡期にあるので、それを紹介する記事を書くというのは気の進まない面もあります。 本稿の内容が早々と陳腐化してしまわないようにするため、じれったいのですが、実装がまだだったり不完全だったりする機能についても触れることにしました。

公式の Dコンパイラ は、主要なデスクトップ・プラットフォーム (WindowsとMacとLinux) 向けにフリーのものが digitalmars.com から入手できます。 他の処理系も作業が進んでおり、中でも .NET 向けの移植と、LLVMをバックエンドに使ったものが代表的です。 Dのライブラリには主要なものが2つあり、一つは公式の Phobos、 もう一つはコミュニティベースで開発されている Tango です。 TangoはD1用に設計されたものですがD2への移植が進んでいます。 Phobosは、D1用のころはその小ささと風変わりさがもどかしい位でしたが、D2の能力を最大限に活かすべく大規模な変更と機能追加がされている所です。 (どちらのライブラリが優れているかという論争や口論も当然ながらそれなりに起こりますが、両者とも競争があるおかげで改良が進んでいるようです。)

最後に、これも重要なことですが、2つのGUIライブラリによって、Dで出来ることが見事に広がります。 DWT は熟成の進んだライブラリで、JavaのSWTを直接移植したものです。 最近の出来事としては、非常に人気のある Qt Software のGUIライブラリ用のDバインディングがリリースされました (現時点でαです)。 Qtは、ポータブルなGUIアプリケーションを作るための素晴らしいライブラリなので (最高のライブラリだという人もいます)、これは決して軽視できないニュースです。 この2つのライブラリが、Dを「GUI番目の次元」へと押し進めます。


Page Top

投票とコメント anchor.png

Choices Vote
大変参考になった1  
参考になった1  
あまり参考にならなかった0  
まったく参考にならなかった0  

No comment. コメント​/Articles​/The Case for D​/1Edit

Name:

Front page   Freeze Diff Backup Copy Rename ReloadPrint View   New Page Page list Search Recent changes   Help   RSS of recent changes (RSS 1.0) RSS of recent changes (RSS 2.0) RSS of recent changes (RSS Atom) Powered by xpWiki
Counter: 1152, today: 1, yesterday: 1
Princeps date: 2009-06-18 (Thu) 17:42:06
Last-modified: 2009-06-18 (Thu) 17:42:06 (JST) (3939d) by SHOO
メインメニュー

ログイン

ユーザー名:


パスワード:





パスワード紛失  |新規登録

Menu