Introduction

ブログ内検索

  • このサイトの記事を検索 by Google

おすすめの一冊!

無料ブログはココログ

« "Plone" って使えるの? | トップページ | Plone 本を買っちゃいました »

2005-03-17

D 言語

オングス 著 『D 言語パーフェクトガイド』『D 言語パーフェクトガイド』を読みました.
ひさびさにまともな本です.
新しい言語(1999年に考案されて現在も開発途中)の解説書です.
# Seaoak はハードウェア技術者なのに言語マニアの傾向が…

D 言語は,C と C++ と Java と C# と Eiffel の『いいとこ取り』です.
言語仕様の美しさ・先進性よりも,実用性を追求してます.
『これが無いから使えないんだよね~』とか言われるのがイヤみたい.
たとえば,こんな特徴があります.
  ・ガベージコレクションがある一方で,各種ポインタやメモリ解放操作もサポート.
  ・プリプロセッサは無いが,条件コンパイルなど必要な機能はサポート.
  ・多重継承は無し(Java と同様,interface は多重実装可).
  ・代表的なコンテナは言語仕様に含まれている(実行性能向上?).
  ・もちろん Generic 機能はサポート(Java は 1.5 でようやく…).
  ・インラインアセンブラもサポートしてるらしい(説明が見つからない…).
  ・不変表明などの Design By Contract (DBC) をサポート.
まぁ,既存の言語にある機能はひと通り揃ってます.
ただ,いいとこ取りしようとして微妙に破綻している気もしますが…

Seaoak の印象としては,
  C の適用範囲の広さと実行性能の高さを維持しつつ,
  複雑すぎてコンパイラを作るのも大変な C++ から機能を削り,
  おもちゃ感のある Java にプロ向けの機能を追加し,
  Eiffel 風の検証容易性をもちこみ,
  C# のシンタックス・シュガーを取り込んだ,
そんな言語でしょうか.

Seaoak が面白いと思ったのはこんなところです.
  ・パラメータの特殊化(lazy evaluation ができたらもっと…)
  ・auto 属性(かなり実装面を意識した機能ですね)
  ・typedef と alias の明確な区別(これは奇妙だけど面白い)
  ・Mix-in (これは Eiffel からかな?)
  ・関数デリゲート(これは便利かも)
  ・override 属性(どっかで聞いたことがあるけど便利)
いずれも脇役ですが,マニア的にはポイント高いです.

あと,この本について思ったこと:
  ・なんで "Eiffel" の名前が出てこないんでしょう?(DBC と言えば Eiffel では?)
  ・インラインアセンブラの説明はどこに書かれてるの?(言語比較表にしかない?)
  ・『なぜこの機能があるのか』みたいな言語仕様の背景(哲学)が書いてあると
   もっと面白そう(新しい言語の紹介本でもあるわけだし).
  ・付録 B 『コーディングスタイル』の最後の文には笑いました(大賛成!).
    > B.7  ハンガリアン記法
    > 変数名に変数の型を略号化して組み入れる,いわゆるハンガリアン記法は
    > 絶対に使ってはいけません.

最後にひとこと.
D言語の最大の問題は『C 言語の致命的な欠点』を受け継いでしまった点です.
つまり,
    名前が悪い
です.
詳しくは Lepton 先生のコラム『大きな欠点』をご参照くださいませ.
# 実際,Google に頼れないのは致命的かと思われ…

« "Plone" って使えるの? | トップページ | Plone 本を買っちゃいました »