- 1 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 01:09:54 ]
- プログラミング言語 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)
- 577 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 00:08:23 ]
- >>574
>やっぱり標準ライブラリ対応が自然だと思った。 >>560
- 578 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 00:10:15 ]
- >>575
というか、Win厨は相手に出来ないレベルの話をしてるんで、 お願いだからWin厨は出てこないで。
- 579 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 00:12:36 ]
- >>574
同一人物でしょ。>>550でK.Inaba氏に突っ込まれてるのと同じ人じゃないの。 Javaや.NETのようにcharがUnicode文字であるような言語は UTF-8環境でしか使えなくて当然、とでもいいたいのかね。 「現実的なプログラマのための、現実的な言語です」ってのも立派に 「理念」のウチ、なんだけどね。 >>570とかもう、アホかと。
- 580 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 00:15:34 ]
- >>560は極論だろ。「対応している環境において」まともに動くのであれば
さしあたり問題は無い。その環境が広ければ広いほど言うことはないが。 現状では、Linuxに対応しているとは言っているが、実際にはUTF-8ロケール でなければ明白な問題が生じるわけだ。 UTF-8ロケールにしろ、ってのは現実的な言語としては論外な選択肢。
- 581 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 00:18:48 ]
- >>577
すでに>563で突っ込んでるな (それに対して>565では説明放棄。説明する義務はないけど) >>579 > 「現実的なプログラマのための、現実的な言語です」ってのも立派に > 「理念」のウチ、なんだけどね。 意味はわかるけど、それ以上は言葉遊びになっちゃう危険が
- 582 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 00:25:47 ]
- >>579-581
頭悪いだろお前達(w
- 583 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 00:26:04 ]
- >ここの交通整理をするために、D言語はその言語仕様で「Unicodeです」と宣言してるんだから、
これはじめて聞いた
- 584 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 00:26:58 ]
- ただの煽り厨房か。
- 585 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 00:36:53 ]
- argvすら化ける言語/ライブラリなんてサービスレベル低すぎるっしょ?
使う気にならんでしょ? 皆が皆同じような変換コード書くのは馬鹿馬鹿しいでしょ? 標準ライブラリ側で吸収してくれれば皆が幸せになれるでしょ? 実際Javaとか.NETとかTclとかPythonとか、Unicode対応の言語は 皆そうやって変換してるでしょ? そこを「UTF-8環境なら動く、そうしなさい」ってのは、Walterタンが 述べている「現実的な〜」という「理念」に合致してますか? 彼は「世界はUTF-8になるべきだ。俺はUTF-8な世界しか相手にしない」 という「理念」でも語ったんですか? ってだけの話なんだけどね。
- 586 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 00:39:47 ]
- >>585
> 使う気にならんでしょ? は同意できない
- 587 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 00:53:47 ]
- 言語側で何もしたくないのなら、いっそ(エンコーディング面は)
Cと同じ仕様にしてくれたほうがなんぼかマシだったかも。
- 588 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 01:03:15 ]
- >>587
何もしたくないとかしなくて良いって言う話はしてない。 >>534での指摘を良く嫁。 標準ライブラリがやる必要は無いし、 サービスとして提供するにしても、WritefInする直前に変換するのが正しい。
- 589 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 01:11:34 ]
- >>534の指摘は、
> WritefInする直前に変換するのが正しい という理由や根拠の説明にまるでなっていないと思うのだが。 なぜ、それが正しい? 逆に言えば、プログラマに陽に変換することを強いない他の言語は、 間違っているとでも言うの? 少なくともプログラマが「陽に」変換するコードを書くスタイルは、I18N/L10Nと 真っ向から対立する。 そこで"iso-8859-1"などとエンコーディングを直接指定してしまえば、 もう他所へは持っていけないプログラムの出来上がりだ。 (無論、それが必要なことなら、そうすることも出来るべきだが) だから、Cのlocaleシステムでは、「実行環境の」LC_CTYPE環境変数 (Windowsの場合はコードページ)を見て、よきに計らうようなデザインに なっている。Javaも、同様のデザインがなされている。当然だろう。
- 590 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 01:13:13 ]
- >>589
よくもまぁ、そんな稚拙な意見を長々書けると思う。 長々書くから、なんか考えてるのかな?と思えばWin厨の意見だし。
- 591 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 01:14:13 ]
- D言語をUnicode原理で統一したい人にとっては
それが正しい言語周辺の設計なんだろ。 ただ、それが現実的じゃないだけで。
- 592 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 01:15:29 ]
- とりあえずここで無駄な論争する時間があるんだったら自分で作れよって思った。
- 593 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 01:16:48 ]
- 出力をSJISに変換したとしてバイト列で書き出すのに、C互換関数を使わなきゃならんのがなんとも
- 594 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 01:17:07 ]
- >>591
いや、実際に標準関数に自動変換は組み込まれてないわけで(w それは言語外の提供ライブラリで行うべき仕組みと考えてる訳で、 となると、WritefInする直前に変換するのが正しいありかたなんで(w 現実と向き合えば良いと思う。
- 595 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 01:21:06 ]
- >>593
試しにそれをなるべく移植性の高い方法で書いてみそ。 反吐が出そうになるから。 wcs系ルーチンが両可能なことを前提にするとしても、 Cのwchar_tのサイズは固定じゃないし。
- 596 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 01:24:03 ]
- Win厨的には_MBCS=D言語ならUTF-8と_UNICODEそれぞれのWin32APIを提供してくれればそれでいい。
ネームスペースとか有効に活用してさ。 あとtoUTF32メソッドがあれば嬉しい。普段、文字列属性チェックとかUTF16に変換してからやってるし。
- 597 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 01:28:25 ]
- >>594
論点ズレ杉。あるべき論の文脈として「正しい」かどうかの話を していたのに、 現状全肯定の上で「現状ではプログラマとしてこうするのが正しい」 ってなんだそら。
- 598 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 01:30:58 ]
- >>597
だから、有るべき論として、標準関数に頼るのは間違いという話をしてるんで。 Win厨のWin厨に取って便利という話を幾らされても困るわけ、何億回されても 聞けない。
- 599 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 01:31:54 ]
- お前がDじゃあるまいに。
- 600 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 01:32:11 ]
- >>597
と、言うか汎用機〜組み込みまで一通り組んだこと無いのに 議論に参加しようとすると、相手の言い分を理解できないと思うよ。
- 601 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 01:33:15 ]
- あからさまな偏見持ちとまともに取り合わないほうが良いんじゃないか?
- 602 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 01:35:18 ]
- 変換しないといけない箇所は、main()の引数と、コンソールの出力/入力だけだよね?
- 603 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 01:36:04 ]
- >>600
それ前提が間違ってるわ。 GCを採用し、内部コードをUTF-8に選んだ時点で、Dの実行環境って かなり限定的に仮定されてると見ていいでしょ。
- 604 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 01:36:39 ]
- 自分の意見を通したいがために印象操作に忙しいんだからほっとけ。
- 605 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 01:36:45 ]
- >>602
違う。実行環境の外部ライブラリ、システムコール、API等とテキストを やりとりするあらゆる場所。
- 606 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 01:37:47 ]
- >>601
というか、彼の振りして便乗で煽ってる人がいる気がしないでもない。
- 607 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 01:41:58 ]
- コードページ依存のデフォルト値はコードページ。
ここらへん基本はどのOSでも同じだと思うが違うのか? VC厨およびJava厨だからわかんないです><
- 608 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 01:51:02 ]
- >>607
日本語でおk
- 609 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 04:24:50 ]
- 内部ではうにでもいいけど
外部に繋げるときは簡単に処理できるようにしてちょ
- 610 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 06:14:46 ]
- >>605
俺は標準入出力だけ対応してくれればかまいませんが。 外部ライブラリやAPIなんて環境依存が前提の場所でない? あるいはtangoなりなんなりコミットして書いとけば済むことかと。
- 611 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 06:50:41 ]
- もう誰かパッチ投げるなり、ライブラリ書くなりすればいいのに・・
- 612 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 07:58:12 ]
- 相手をWin厨と決め付けたがる厨大活躍。
もういいよ、くだらん。
- 613 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 08:09:08 ]
- >>612
逃げるのか。まぁ今の君の選択としてはいいんじゃないかなそれで。 次に人に絡むときは、もうちょっと勉強してからにした方がいいよ。 でないと、また同じように敗走するだけだから。
- 614 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 08:23:34 ]
- >>610
んー。同じことだと思いますよ。 結局システムレベルの標準入出力をラップしてくれ、ちゃんと 変換してくれってことでしょう。 同様に、Dランタイムが特定のシステムコールなりAPIなりを 呼んでいる箇所では、ちゃんとエンコーディング変換を一貫して 行わないと、ユーザ側につけがまわることになります。 ユーザ側でtoMBSz()をかませば良い、と思われるかもしれませんが、現状の toMBSz()は(機能的にはWin32に限らず必要なものであるにも関わらず) Win32ベッタリの仕様であり、コードの移植性を保持するのが困難に なりますし、いかにも「一時しのぎ」的で、今後のバージョンでは それが不要になり、コードが新しいバージョンでは動かなくなる可能性も 大です。 char[]で受け取る関数にtoMBSz()で変換したホストエンコーディングの バイト列を渡すことにも問題があります。char[]をUTF-8文字列と定めている Dの仕様に反することですし、 例えばその関数の中で文字列を解析した上でシステムコールを呼んでいる かも知れません。実際に文字列の中身を見ている関数に、 UTF-8以外のエンコーディングの文字列を与えることは、明らかな 問題を引き起こします。 ガタガタなコアライブラリの上に何かを積み上げようとしても、砂上の楼閣に 過ぎません。土台が駄目ではどうしようもないのです。
- 615 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 09:19:30 ]
- char[]がUTF-8って定まってたっけ?
- 616 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 09:30:34 ]
- >>615
ttp://www.kmonos.net/alang/d/type.html を参照。
- 617 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 11:05:08 ]
- 初心者スレ、質問スレを除くとこのスレがこの板で一番盛り上がってるようだな
- 618 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 11:16:00 ]
- 昨日は約一名へんなひとが暴れまわってたからなw
- 619 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 12:24:07 ]
- >>614
argsの文字コードが環境依存することに気づいてげんなりしてきた
- 620 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 12:31:30 ]
- 伸びまくってて全然読んでないけど
コンパイラの方がおちついてPhobosを弄れる余裕ができれば おまいらが考えるようなことはWalterタンも気づくでしょ 内部と密接に絡んでるようなthread.dが微妙なとこを見ると、 あまりPhobosはテストされてないようだし そんなにすぐDを使いたかったらTangoを使えと
- 621 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 13:12:11 ]
- >コンパイラの方がおちついてPhobosを弄れる余裕ができれば
そんな日がおとづれるのだろうか?(反語)
- 622 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 13:46:56 ]
- >>621 そんなこと言うけどさ、結局はいつか落ち着くんじゃないかなぁ、現実的に。まぁそれに何年かかるか分からんけど
- 623 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 15:45:23 ]
- >>622
おれも数年前はそう思ってた… # 待つなら10年単位で覚悟して待て。待てないなら自分で動け
- 624 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 17:21:13 ]
- Dのエッセンスをパkゲフンゲフン受け継いだ言語を
どこか別の企業が出してくれるとか……。 Windowsアプリ開発がメインターゲットってことでGUIビルダも付けて。 というか、DigitalMarsが会社としてDをどう扱うつもりなのか、 いやそもそも、DigitalMarsがどういう会社なのかすら サパーリ分からんのは俺だけだろうか。
- 625 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 17:23:48 ]
- 後にプログラマーを悩ませる悪名高い変態言語D++が誕生するとは、このとき誰が想像し得ただろうか。
- 626 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 17:40:52 ]
- それがC++0xなわけでして
- 627 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 19:28:20 ]
- C++0xdになった時に、D言語の偉大さがようやく分かるのさっ
- 628 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 20:15:00 ]
- CやJavaで既にできてることがDで出来ないわけあるかっての
見るべき環境変数なりシステム情報なりをちゃんと見れば出来ること。
- 629 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 20:16:06 ]
- コルーチンまだ〜?
- 630 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 20:36:38 ]
- ほんとコルーチンほしいよな
- 631 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 20:47:35 ]
- 特に考えずにargvをwriteflnで出力してなんの問題の無かった人ですが
とりあえず文字列まわりのライブラリが揃うの待ってます
- 632 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 20:59:41 ]
- っTango
- 633 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 21:16:19 ]
- コルーチンじゃ柔軟性が低いから継続をください。
- 634 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 21:24:26 ]
- 継続は言語機能に加えただけで使わなくても実行速度が遅くなるから、無くていい
- 635 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 21:32:05 ]
- callcc相当を呼び出した時にスタックをコピーする方式にすれば未使用時の実行速度低下を避けれるんじゃね?
- 636 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 21:55:36 ]
- いっそ関数呼び出しとかの挙動をプログラム側で再実装できりゃ
いいんじゃなかろうか。どんな実行順序だろうがやりたい放題。
- 637 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 23:03:56 ]
- >>535
Rubyを馬鹿にするなーwww >>543 ABA氏のゲームは、国内より、むしろ海外で有名 >>630 こるーちんて実際何に使うの? ゲームでも微妙なのに
- 638 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 06:31:29 ]
- >>637
えっ、びみょうなのか? 結構つかってるんだが、 世はそういう判断なのか・・・
- 639 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 07:15:37 ]
- >>638
プログラミングが下手くそなんじゃない?
- 640 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 07:26:38 ]
- >>639
もうしわけない
- 641 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 13:44:13 ]
- >>638
いや、あっても、組み込みスクリプト言語レベルで実装されてりゃいいやって感じなんだけど、 使いどころある?
- 642 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 15:10:58 ]
- よく聞く利用法だと、シューティングゲームとかの各キャラクターの挙動で、
1フレーム分動かしてsuspend()とか? Stateパターンするには大げさだろー、とか思う時に欲しいことがある。 でも、言語組み込みせんとコルーチンて使えないの?
- 643 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 15:16:22 ]
- 静的変数とラベルで実現できないことはないが、
自分で状態管理する羽目になるから本末転倒だろ
- 644 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 16:10:47 ]
- 要するにシンタックスシュガーだから、簡単にかけないと意味がないってことか。
- 645 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 22:49:43 ]
- いざとなればスレッド+同期処理を纏めて、ユーザライブラリとして作れると思うが。
まぁ無駄なオーバーヘッドはかかるが、分野によっちゃどうでもいいだろうし。 もっと低レベルな実装だとWin32ならFiberが使えるけど、Linuxにはそういうのあるん?
- 646 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 23:01:49 ]
- TangoにFiberってなかったっけ
- 647 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 23:09:54 ]
- あ、ホントだ。
www.dsource.org/projects/tango/wiki/ChapterThreading 休日はじっくりtango探索でもしようか……
- 648 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 04:08:39 ]
- >>433 残念ながらなぜかDのexeにはupxが効かない
- 649 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 09:35:45 ]
- >>648
効いたよ。upxは最新版使ってる?
- 650 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 14:29:49 ]
- >>649 ギャフン
- 651 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 18:56:50 ]
- import pkg.*;
はガチで欲しい
- 652 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 11:26:05 ]
- そろそろDでも触ってみようと思っているのですが、
eclipse のプラグインとしての開発環境で、 現在も開発が続けられているものはないでしょうか?
- 653 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 11:47:34 ]
- >>652
www.kmonos.net/alang/wnd/devenv.ja.html#ide Descentはリアルタイムにコンパイルエラー表示してくれたりしたけど、やっぱまだまだ途上っぽ。 結局エディタ+コマンドラインに落ち着くことになるんじゃないかな……。
- 654 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 11:54:04 ]
- インテリセンス互換、参照コードへのジャンプ、そしてデバッガ
D言語が普及言語を名乗るならここへんが最低水準になってくるね 最大のライバルはVC6.0だから。
- 655 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 03:05:37 ]
- インテリセンスって未だに実現されないけどそんなに難しいのか
- 656 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 03:22:51 ]
- >>655
お前、本格的なGUIコンポーネントの類の開発やったことないだろ。 確かにただ作るだけならそれほど難しくはない。が、 インテリセンスのような類の機能はただ作るだけじゃそれこそ 無いほうがましだ!ぐらいの悪評を買うだけなんだよ。
- 657 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 08:06:57 ]
- ふーん、そういうもんかな
具体的には何が悪評を買わせるのか聞きたいな
- 658 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 08:35:32 ]
- ためしにEclipseでC++プログラミングしてみるといい
- 659 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 11:39:50 ]
- VC++にしたってncbファイルが結構なサイズになってるし。
情報集めるためにレスポンス遅くなったりするしな。(これは俺の環境がしょぼいせいかもわからんが)。
- 660 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 12:15:29 ]
- DFL 0.9.5.01 リリース
- 661 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 15:19:34 ]
- eclipse/javaやVC#おまけにDelphiあたりはレスポンスも十分早いこと考えると、
C++のは言語仕様の複雑さのせいって気がする。 インテリセンス作ろうと思ったら、 やっぱりコンパイラのソースから構文解析部分を引っこ抜いてくるのかな? だとしたら、言語仕様がコロコロ変わるのが一番の問題なのか?
- 662 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 18:31:14 ]
- finalとprivateを同時に付けるのってどんな意味あるの?
privateな時点である意味finalみたいなもんだと思ってたんだけど
- 663 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 18:48:23 ]
- final privateだとサブクラスでオーバーライド(ぽいこと)ができる?
- 664 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 19:19:38 ]
- >>662
www.kmonos.net/alang/d/function.html 多分finalは「決して仮想関数にならない」が保障される予感。 あとはクラス設計者の意思表示として、かなぁ。 個人的には、よほどの理由が無い限りメンバをfinalになんてして欲しくないが。
- 665 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 19:34:36 ]
- 俺はむしろ基本finalで
重要な一部分だけ仮想関数の方が挙動が読みやすいし好きだな。
- 666 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 21:02:18 ]
- >>665
C++の仕様か 関数名(と引数の型)の意味論を基準として実装を信用するか、 他者の実装を信用せず特定のクラスの実装のみを信用する、という差かと
- 667 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 21:05:16 ]
- 意図しない再実装をするのは他人なんだから、
そんな状況でfinalにしてあったら余計ひどいことになるような気が。
- 668 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 22:20:00 ]
- Tango 0.96 beta 2 リリース
- 669 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 01:52:27 ]
- ん? privateでもすでに「決して仮想関数ならない」ことになるのか。
そいや意思表示の点でも同じことだよな。 んじゃprivateにfinalを重ねるのは、ほぼ意味無しと言っていいのかも。 >>665 private+finalの話とはまた違う話で恐縮なのだけど。 経験的に、予期せぬオーバーライドを行いたいってニーズは結構あった。 派生やUnitTestなんて考慮されてない既存のクラスに対してUnitTest書きたいって時に、 DBアクセスするメソッドだけスタブに置き換えるとか。 基本finalだとそういうときに融通が利かなくなっちゃうんだよねぇ。 virtualとかで”オーバーライド考慮してます”ってマーク付けられるのは良い事だと思うけど。
- 670 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 01:58:42 ]
- そういやさ、メンバ変数にfinal付けてる人たまに居るけどさ、あれって意味あるの?
- 671 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 07:22:55 ]
- Java だと定数になるんだっけか
- 672 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 08:18:32 ]
- テンプレートで型の前にinとか付けるとコンパイラエラー出るけど仕様?gdc使ってる
- 673 名前:665 mailto:sage [2007/03/20(火) 12:58:46 ]
- >>669
オーバーライドを意識してないメソッドをオーバーライドって 元のコードを丹念に追いかけないと何が起こるか予測しきれないから恐くて自分は出来ない。 で、元のコードを追いかけるなら元のコードを, ついでに継承を意識した形に置き換えちゃうから結局基本finalでも自分は困らないんだよな。 自分の場合は元のコードを弄れる状況が多いからこういう持論になるけど、 こればっかは普段相手にするコードの種類によって考えもかわってくるんでしょうね。
- 674 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 00:28:05 ]
- >>670
サーセン、Javaの癖でconstと間違えました……
- 675 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 00:37:06 ]
- tangoてホントに根本から入れ替えちゃうんだなぁ……。
Objectクラスのインターフェースから変わってるとか、 ちょっとそーいう感覚は無かったからビックリ。 標準ライブラリを変えるというのが何を意味するのかなんて 深く考えてなかったんだなぁ俺。 Dを追っかけ始めてからなんか色々と、 普段気にしないような知識が身に付いてきた気がする……。
- 676 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 01:30:34 ]
- tangoってGCも変わるの?
- 677 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 02:27:07 ]
- 実行時のGC制御は、std.gc.disable()の代わりに
tango.core.Memoryをimportしてgc.disable()とかするらしい。 実装自体はパッと見、Phobosのをまんま流用してるように見える。 細かいところは違うのかもしれんけど。 標準として採用されて、パッケージ名の先頭のtango.取れんかな。 あとutil.以下の諸々も、util.外して一階層上げていい気が。
|

|