- 1 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 10:10:24 ]
- プログラミング言語 D について語るスレッドです。
過去スレは >>2 ■本家 ttp://www.digitalmars.com/d/ ttp://www.kmonos.net/alang/d/ (和訳) ■コンパイラ ttp://www.digitalmars.com/d/dcompiler.html (DMD, 本家) ttp://dgcc.sourceforge.net/ (GDC, gccフロントエンド) ttp://gdcmac.sourceforge.net/ (GDCのmac用バイナリ) ■参考URL ttp://f17.aaa.livedoor.jp/~labamba/ (D言語研究) ttp://dsource.org/ (dsource) ttp://www.sun-inet.or.jp/~yaneurao/dlang/ ttp://wisdom.sakura.ne.jp/programming/d/
- 254 名前:デフォルトの名無しさん mailto:sage [2007/08/11(土) 19:28:40 ]
- 個人的には入出力関係はTangoの方が好きかなぁ
コンテナ(コレクション)についてもTangoがほしいね あと、ゆくゆくはTangoでXMLもいじれるようになりそう
- 255 名前:デフォルトの名無しさん mailto:sage [2007/08/11(土) 19:31:31 ]
- ようやくTango1.0が出そうかなっていうときにもうD2.0だもんなぁ・・・・
- 256 名前:デフォルトの名無しさん mailto:sage [2007/08/11(土) 19:47:39 ]
- D2.0ってなにそれはおいしいの?
と思う俺とForeachRangeStatementが2.0だけってことはそろそろ対応お願いしますという Walterタンの無言の意思表示なのではと思う俺と…
- 257 名前:デフォルトの名無しさん mailto:sage [2007/08/11(土) 21:09:52 ]
- もうv1はバグフィックスだけだろ。
美味しい機能《えさ》はv2にしか提供されない。
- 258 名前:デフォルトの名無しさん mailto:sage [2007/08/11(土) 21:52:10 ]
- そもそもTangoが標準になるって発言元はどこなんだぜ?
- 259 名前:デフォルトの名無しさん mailto:sage [2007/08/11(土) 22:17:02 ]
- >>258
Tango製作陣からじゃないの
- 260 名前:デフォルトの名無しさん mailto:sage [2007/08/11(土) 23:43:00 ]
- まぁTangoのほうがモノが良いなら自然に置き換わっていくんじゃね?
- 261 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 00:04:50 ]
- どっちかが完全に上位互換ならうれしいんだけどね。
混在できたっけ?
- 262 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 00:23:12 ]
- >>261
無理じゃなかったっけ。前に似た話出てた気がする。 もともと置換を目的に作られてるしなあ。 つか本当に>>255に同意。 なんでここで互換性ないバージョンとか出して既存ライブラリぶっちぎれるのかと。 Phobosお話になんねー、みたいな声はウォルたんに届いてないんだろうか。
- 263 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 00:51:04 ]
- ウォルタ「いや、他にやりたいことあるし…」
- 264 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 01:17:57 ]
- ウォルタ「ライブラリのためにDを止めたくないのくらいわかってくれるだろ」
- 265 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 01:29:21 ]
- ウォルタ「ライブラリが追随すればいいだろwwwww更新おせーんだよwwww」
- 266 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 01:41:46 ]
- ウォルタ「俺の勝手だろwwwwwwwwwwef9swccnj3」
- 267 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 01:44:39 ]
- 普遍条件にinvariant()って括弧がいるのはどうにかならんかなあ。
見た目が悪すぐる
- 268 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 08:36:17 ]
- >>267
気にしすぎじゃね? >>240あたりの理由で()付じゃないとダメだという可能性は?
- 269 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 11:03:23 ]
- ウ「本来のあるべき姿を追い求めた結果だから仕方ないだろ」
- 270 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 11:19:19 ]
- まぁdmd2.0のFinal Const Invariantの導入があるから整合性のために仕方がないよ。
struct{ final {int final_hoge = 0;} const {int const_hoge = 0;} invariant{int invariant_hoge = 0;} } これでinvariantだけ定数の宣言じゃなくて不変条件になると違和感が漂いすぎるし。
- 271 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 12:25:29 ]
- unittestにあわせて、ちょっと長いけどinvarianttestとかにしてくれりゃいいのに。
- 272 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 19:05:21 ]
- ちょっとD触ってみたんだけど試してみたいことがあってサンプルコード探して動かしてみようとしたら動かない、とかデフォ?
メッセージボックスに日本語出力するだけですげー時間かかって泣きそうだったわ あとみんなは開発環境何使ってるの? Eclipse+Descentでやってたらソースにエラーの赤線引いてあるけど見た目どこも問題ないしコンパイル通るし動作するしで微妙だった
- 273 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 19:11:49 ]
- >>272 D2.0系だとサンプルコードってほとんどないんじゃないかな
今公開されてるサンプルコードって大半がD1.0時代のものだと思う(しかも今のD1.0系で動くとも限らない) 少なくとも日本語の文書においては
- 274 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 19:22:34 ]
- >>272
まだまともなIDEはないから、俺は普通のテキストエディタで書いて、コマンドラインからビルドしとるよ。
- 275 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 19:24:11 ]
- 俺も>>274と同じくコマンドライン(というかバッチファイル作ってダブルクリック)
ポセイドンとかどうなんだろ?
- 276 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 19:47:28 ]
- >>273
そーなんか とりあえず1.0系インスコしたんだけどみんな2.0系使ってるの? 2.0系って正式リリースされてないよね? >>274-275 そーかー Code::BlocksとPoseidonも使ってみるよ コード補完がないとソース書いててだるい気がするしね
- 277 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 20:00:11 ]
- >>276
正式リリースなんて飾り。
- 278 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 20:09:37 ]
- >>276
バージョンが0.001増えるだけで、大幅な書き直しを余儀なくさせられる言語。それがD
- 279 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 20:31:15 ]
- バージョンアップしたらHello, woldさえコンパイル通らなくなったときは泣きそうになった
- 280 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 20:31:53 ]
- 書きまつがえた
- 281 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 21:54:14 ]
- >>276
予約語以外までまともにコード補完できるIDEなんてまだないかと >>279 これのことかな s/stdout/dout/g import std.cstream; void main() { stdout.writefln("Hello, world!"); // 古いコード } 歴史は繰り返す(Tango) Cout(Hello, world!").newline;
- 282 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 22:15:35 ]
- cout << "Hello, World!" << endl;
とC++みたいに出力できるのを作ったことがあるがマニピュレータ周りでモチベーションが切れて終了
- 283 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 22:24:48 ]
- coutなんて飾りです
- 284 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 22:46:27 ]
- doutとかs(td)outとかじゃないのか
- 285 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 23:12:09 ]
- >>282
C++のストリームの記法が便利だと思ったことは一度も無いな
- 286 名前:デフォルトの名無しさん mailto:sage [2007/08/12(日) 23:28:32 ]
- つかC++形式の利点って何なの?
たぶんCのprintfが非型安全だから作られたんだと思うんだが、Dだと型安全な可変個引数関数が作れるわけで。
- 287 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 00:18:06 ]
- 型安全、拡張可能、フォーマット文字列の解析が不要ってとこか
その代償として、寄せ、桁、精度、基数等の指定が必要な場合の 記述が面倒くさすぎ ぶっちゃけ拡張可能性という面でもstreambufが継承可能であることが 重要で、入出力演算子なんてただのオモチャだと思ってる
- 288 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 00:32:35 ]
- tangoの方間違ってたらすまん
phobosのwriteflnの方がピンと来るのは俺だけ? tangoのはどうなんだこれ CoutとStdoutの使い分けとか必要なのか? string hoge = "hoge", HOGE = "HOGE"; int a = 10, b = 20; //phobos writefln(hoge, a, "[%s%d]", HOGE, b); //tango Cout(hoge)(a)("[")(HOGE)(b)("]").newline; Stdout.formatln("{}{}[{}{}]", hoge, a, HOGE, b);
- 289 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 05:32:21 ]
- Coutキタナッ
- 290 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 06:20:23 ]
- tx好きー。
- 291 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 06:44:43 ]
- Code:Blocks使ってみた
入力補完させよーとするとC++かなんかの予約語を補完してくださった Poseidon使ってみた 日本語表示もできるし予約語の補完もできるし自分で書いたメソッドの入力補完もできるっぽい ちょっと幸せ でもエディタの挙動とか配色がキモい たぶん変更できるんだろうけどまだあんまし触ってない
- 292 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 07:24:56 ]
- writefln で十分だな。
- 293 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 08:07:31 ]
- printfで十分だ
- 294 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 08:33:23 ]
- うむ
C++ ライクな入出力ストリーム表記はどうにも好きになれん
- 295 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 09:13:18 ]
- 型安全であることと、色んなもんに出力できるという点は評価できるが、
printf ライクにそれを行うことも可能なわけで。
- 296 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 15:42:56 ]
- >>288
tangoはこれならstd::coutのほうがましだな
- 297 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 18:23:02 ]
- 正直、これ位の簡易な実装で俺は良いんだけどなぁ。
void main(){ println(2,' ',3,' ',4); } static import std.string,std.stdio; alias std.string.toString toString; string toString(string x){return x;} string toString(Object o){return o.toString;} //構造体とか配列とか連想配列とかも同じノリで定義 void println(T...)(T x){ foreach(v;x){ string r = toString(v); std.stdio.fwrite(r.ptr,1,r.length,std.stdio.stdout); } std.stdio.putc('\n',std.stdio.stdout); }
- 298 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 18:26:37 ]
- 結局型安全にした printf ライクなものが一番だよね。
- 299 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 19:43:44 ]
- writeflnに慣れすぎて手放せなくなってる
- 300 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 21:48:15 ]
- 誰かD1.0を擬人化してみてくれ
- 301 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 21:52:16 ]
- >>300
pc11.2ch.net/test/read.cgi/tech/1098953121/
- 302 名前:デフォルトの名無しさん mailto:sage [2007/08/13(月) 22:08:16 ]
- >>297
それでprintf("%08X", n); とかはどうやりますか?
- 303 名前:デフォルトの名無しさん mailto:sage [2007/08/14(火) 00:20:21 ]
- >>300
1.0限定かよ
|

|