昨日発生していたサイトログインできない不具合は修正されております(詳細はこちら)

D 言語仕様所感

自分が D といふプログラミング言語の仕様を見て抱いた感想です。
0
まじかんと @tnacigam

Java は値型と参照型が混ざってゐるやうに見えるが、int や double などのプリミティブ型を Integer や Double などのクラスと同一視すれば全部が参照型と見做せる。まだ分かりやすい。

2014-10-05 21:16:34
まじかんと @tnacigam

C# と D は値型と参照型の両方がある言語。代入演算子がどちらの動作をするかは、型を知らないと分からない。

2014-10-05 21:17:44
まじかんと @tnacigam

D、いくら f(x) と x.f が同じだからって sizeof(int) を int.sizeof と書くのは何か違ふと思ふんだ……。つか sizeof(int) って書くとむしろエラーになるし。

2014-10-06 01:14:48
まじかんと @tnacigam

D言語の標準ライブラリのドキュメンテーションのしょぼさ……

2014-10-08 23:40:34
まじかんと @tnacigam

Dの関数リテラル、書き方が多くて混乱する……

2014-10-11 23:57:55
まじかんと @tnacigam

function (int i) { return i; } と (int i) => i はどちらも恒等関数なのだがうっかり (int i) => { return i; } とか書くと別のものになる。

2014-10-12 00:07:24
まじかんと @tnacigam

Dは C++ よりも解析しづらさうな構文してるけど dmd はどんな解析器積んでるんだろ

2014-10-12 00:32:56
まじかんと @tnacigam

Dのデリゲートには型の反変性とかないんすか

2014-10-12 11:40:51
まじかんと @tnacigam

やったー! D で数独ソルバー書けたよー! \(^o^)/ github.com/magicant/sudok…

2014-10-12 13:42:55
まじかんと @tnacigam

--build=unittest-cov オプションを付けるだけでコードカバレッジが取れてしまふなんて dub さんマジ凄過ぎる

2014-10-12 18:27:32
まじかんと @tnacigam

assert(false) の行のために網羅率が落ちるのは地味に悲しいな

2014-10-12 18:28:44
まじかんと @tnacigam

ちなみにプログラムを動かすだけでこんな感じのテキストファイルが出力される。結果を見るために出力を解析ツールに突っ込んだりする必要はない。 pastebin.com/vFe1dJ4m

2014-10-12 18:39:36
まじかんと @tnacigam

Dのフロントエンド、不安定過ぎだろ……。古い型チェッカーで正しくエラー扱ひされてゐたコードが新しいので通ってしまふ。

2014-10-12 22:47:52
まじかんと @tnacigam

そもそもフロントエンドが DMD のしかないってのもなんだかなぁ。

2014-10-12 22:48:58
まじかんと @tnacigam

取り敢へず、自分で pure とか nothrow とか指定してると地雷を踏みやすい印象が。

2014-10-12 23:01:06
まじかんと @tnacigam

pure なメンバ関数があると invariant が書けないとかなかなかおもしろいギャグですよね。最新の DMD では直ってますけど。

2014-10-12 23:04:17
まじかんと @tnacigam

ちゃんと比較したわけではないけど、 GDC は DMD/LDC より二倍位コンパイル速度が遅い雰囲気。

2014-10-12 23:13:50
まじかんと @tnacigam

Sesh を D で書き直すためのレポジトリを作ってみたもののいまいちやる気が起きない

2014-10-18 14:23:15
まじかんと @tnacigam

まだ食はず嫌ひだが、D でテンプレートやミックスインを使ってメタプログラミングするくらゐなら C++ でやった方が増しだといふ印象がある。

2014-10-18 14:25:32
まじかんと @tnacigam

C++ のテンプレートが静的ダックタイピングであるのが欠点であるといふ主張をする人がゐる。では D ではそれを改善するためにテンプレートに型の様なものを導入するのかと思ひきやむしろ逆をやってのけた。

2014-10-18 14:28:37
まじかんと @tnacigam

Dのミックスインは、静的ダックタイピングであるどころか静的ダックコーディングであるといってよからう。

2014-10-18 14:30:18
まじかんと @tnacigam

しかし俺にはミックスインといふ機能の必要性が全く分からないのだ。コンパイル時に文字列を eval (スクリプト言語的な意味で) して、一体何が嬉しいのだらう。

2014-10-18 14:38:48
まじかんと @tnacigam

つか D のコンパイラフロントエンドが DMD のやつしかないのってどう考へてもミックスインのせゐだろ。

2014-10-18 14:41:26
まじかんと @tnacigam

あと D は演算子オーバーロードが複雑すぎて付いていく気になれない

2014-10-18 14:46:37
まじかんと @tnacigam

std.typecons.Unique なんかドット演算子をオーバーロードしてゐるからややこしい。もし後で Unique に別のメンバ関数等を足したら既存のコードの意味が変はってしまふこともあり得る。なぜ -> 演算子のオーバーロードにしておかなかったのか。

2014-10-18 14:54:08