Blog開発その他C言語に置き換わるか?現在はFacebookで開発されているD言語についてこんにちは。本日はジワジワと伸びているプログラミング言語についてのお話です。ように、既存の言語に限界を感じて新しい言語を作るというケースは非常に多いです。今回はその中から、ハードウェアレベルからアプリケーションまで扱えるシステムプログラミング言語として不動の地位を築いているC言語の後継という大きな目標を掲げて開発されているD言語について紹介させて頂きます。氏によって設計されたネイティブコードを出力するプログラミング言語です。コンパイラの開発などで知られています。年にD言語の開発を開始しました。C言語とソースコード互換性を持っているためC言語ユーザーがそのまま移行でき、多くのソフトウェア資産を活用できるというメリットがありますが、そのためC言語が持つデメリットも多く引き継いでしまっています。言語機能に含まれていない数多くの機能を含んでいます。D言語はそういった理想主義的なコンセプトで開発されていたため、非常に難産だった言語でもあります。社内ツール開発に採用されたことが発表されたり、次世代ゲーム機用ソフトでの開発で採用されるなど、徐々にメジャーな採用例が増えてきています。違って元になったC言語とのソースコード互換性は持っておらず、そのため開発から15年経過した現在では「C言語とは全く違う文法」も豊富に存在しています。そのため、ここではD言語の機能についてごく一部の主なものを紹介します。コンパイラとは別にプリプロセッサが存在しており、プリプロセスによるソースコードの書き換え→コンパイルという手順を踏みますが、D言語ではプリプロセッサ相当の機能が言語機能として含まれており、柔軟な構文かつ短いコンパイル時間に繋がっています。使って確かめる必要があります。言語仕様で定義されているので、これらを参照するコードが非常にスッキリとします。ユーザー定義のプロパティを作成することも可能です。最初からオブジェクト指向で設計された言語と比べ冗長な宣言が目立ちます。メソッドなど現代的なキーワードを用いて効率的にクラスを定義できます。暗黙的に呼び出し側スコープの同名メンバを上書きしないガーベージコレクションD言語はネイティブコードを出力する言語としては珍しく、ガーベージコレクション(以下GC)を搭載しています。採用したネイティブコード出力のプログラミング言語が増えていますが、D言語はその先駆けと言えるでしょう。搭載によって、連想配列のようにスクリプト言語やVM環境の言語でお馴染みの便利な機能をメモリ操作を気にせず安全に扱えます。逆に言うと、GCはメモリを自分で管理できないのでパフォーマンス上の問題で使いたくない方も居るかと思います。GCの自動実行を無効化すれば任意のタイミングでGCを実行できます。ように長さを指定して配列を作成すれば軽量な静的配列を定義できますし、静的配列に対して範囲外アクセスしようとするとコンパイル時にエラーとなるので実行時の安全も保たれます。型で参照型のクラスとは区別されています。あろうとアプリケーションであろうと、ソースコードのテストをやらないということは考えにくいと思います。ユニットテストを実行するためにはテストフレームワークを用意してテストをセットアップするという作業が必要なため、そんな事をしている暇が無いとテストをやっていない方も未だ多いのではないでしょうか。D言語の場合はフレームワークや標準ライブラリではなく、言語機能自体にユニットテストが組み込まれており、ソースコードの任意の位置にユニットテストを埋め込むことが可能です。掛け算をしたいのに足し算。エラーを解釈して例外を発生させます。実行し、例外の発生によってコンパイル自体が中止されます。D言語ではこのようにシンプルなユニットテストをコンパイラだけで実行することができ、よりリッチな機能を持つテストフレームワークの実装も勿論可能です。まとめD言語にはこの他にも数多くの言語機能があり、また今回は紹介できませんでしたが豊富な機能を持った標準ライブラリ群があります。C言語とのソースコード互換性はありませんが、基本型ではポインタを含めてバイナリレベルの互換性を持つため、枯れたC言語製のライブラリをリンクして実用的なアプリケーションを作成することも可能です。製ライブラリも同じく条件を満たせばD言語から利用することが可能です。本社を会場として去年から開催されています。今から覚えるのは...」という方は試しにD言語を触ってみてください。日本語訳の方には内容が古いものや未翻訳のページもありますので、基本的に英語公式サイトを参照することをお勧めします。2013TIPS・実装例が豊富に掲載されています。リポジトリに登録されているパッケージの一覧です。D現在日本で唯一販売されているD言語書籍です。アカウントでは、フェンリルプロダクトの最新情報などをつぶやいています。OSAKA」を開催しますチームでの開発を改善するのにピッタリの一冊!個人開発者が自分のプロダクトを世の中に広めるためにはどうすればいいか。