1 名前:デフォルトの名無しさん mailto:sage [2009/06/01(月) 12:30:25 ] 前スレ pc12.2ch.net/test/read.cgi/tech/1237672679
511 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 18:09:12 ] 土方がOOなんて意識しなくて済むように、OO使ってフレームワーク作る。 今までそう思っていたが、土方のレベルは想像以上に低いことに気が付いた。 DSLでも作って、そこだけ書かせたほうが良いんじゃないかと思い始めている。 土方使わないのが、ベストだけどね。
512 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 18:12:46 ] 土方OO
513 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 18:27:13 ] おれがMayerだ
514 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 18:58:57 ] >>511 土方にDSL使わせる? DSLを理解するのに時間かかる上に、 自分の無能力をDSLのせいにするだけ。
515 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 19:05:59 ] 土方に特化したのがVBScript やっぱ考えなくていいのは楽でいいなぁ
516 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 19:07:38 ] >>511 これだからプログラミング脳は困る。実装する事しか頭に無いとはね。 土方を教育するフレームワークを作れば済むこと。
517 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 19:12:00 ] >>516 今まで社内教育フレームワークで土方を量産してきただろ。 そしてその品質の低さに>>507 がダメ出ししてるわけだが?
518 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 19:13:20 ] そんなに言うなら>>517 がもっとまともな教育フレームワークとやらを作ればいいよ
519 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 19:14:32 ] だから教育フレームワークという考え方そのものがダメだということに なぜ気付かないのだろうか・・・
520 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 19:18:46 ] 馬鹿は馬鹿として放って置くのが一番 馬鹿が張り切って仕事しても碌なことにならに無い 昔から言うだろ、触らぬ神に祟りなしって
521 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 19:20:21 ] >>515 それはお前がVBScriptであれば考えなくていいレベルだから。 土方にどんな言語をあてがっても上手く行くはずがない。
522 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 19:31:39 ] VBScriptで頭を使わなければならない場面が想像出来ないのですが... クラスは有っても、クラスを使う場面が無いのがVBScript オブジェクトの利用は出来ても、オブジェクトの定義が出来ないのがVBScript それで一体何処で頭を使えと...
523 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 19:46:36 ] これVBScriptでできるの?っていう仕様変更が来たとき。
524 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 20:07:01 ] >>523 VBScriptで出来ないことを上げるほうが難しくね?
525 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 20:19:40 ] VBscriptってVB6のサブセットじゃねえの
526 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 21:36:49 ] いまいちつまらない話が続いてるな。 スレタイから言うと、どうすれば現場からOOを消せるかという問題を話し合いたい。 「消せるか」という問題なので、始めからCOBOLやFORTRANしか使ってないような 現場は無視します。OOしない事を端的にどの言語を使うかという面から見ると、 1. C言語メインで。 2. HaskellもしくはOCaml(without object)メインで。 3. Lisp, Schemeメインで。 という選択肢が考えられる。perlは最近はOO言語になり下がっているので候補外。他には?
527 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 21:52:47 ] 4.bashscript メインで
528 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 22:01:02 ] 自作のクラス作らないで、継承もしないなら、 オブジェクト指向開発じゃないってことでいいんじゃないの? それなら、CのFILE*みたいなもので、 便利なモジュール(ライブラリ)というだけだ。 だから、そういう意味ではPerlもあり。 C++でも、メンバ関数作らないで、継承もしないならありだ。 逆に、GNOMEのGObjectとかはダメ。
529 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 22:04:21 ] OCamlがOKで、perlがだめだという理由が分からない。 オブジェクト指向を使わずに組めるんだから。
530 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 22:14:06 ] >>529 イケメンとブサメンの理論で考えれば自明
531 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 22:25:28 ] クラスを作る必要がなく、クラスを作っても継承できないのにオブジェクト指向なVBScript! OOP!OOP!
532 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 22:28:34 ] Prolog
533 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 22:34:25 ] 文字列とかウィンドウとか、具体的なものを オブジェクトにしている分にはいいんだよ。 つまり、誰にも明らかなモデル化ならいい。 ところが、何から何までオブジェクトにして設計しようとすると、 どこかに変なところが出てくる。 そういう一部分から、全体に混乱が広がっていく。
534 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 22:34:49 ] 2013年だかに国が策定する 調達規約だとOOあるものは 製品として採用できないはずだけどな
535 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 22:37:40 ] >>534 そんな、OSごと否定する仕組み作る気かよwwww
536 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 22:37:41 ] >>533 オブジェクトにするとムリがあるものってたとえばどういうの?
537 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 22:42:25 ] もうADTにしようぜ。 ja.wikipedia.org/wiki/%E6%8A%BD%E8%B1%A1%E3%83%87%E3%83%BC%E3%82%BF%E5%9E%8B
538 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 23:07:35 ] >>536 ソフトウェアの機能をオブジェクトに分解しようとすると、 どこかに入れなきゃいけないけど、どこに入れてもなんかしっくりしない みたいな機能が出てきたりする。 つまり、その機能を、どのオブジェクトにやらせるのか。
539 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 23:23:36 ] なんとかUtilとか、なんとかHelperってクラスが至るところにあったり
540 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 23:42:22 ] 現場からOOを消したいなら、まずどんな現場を想定しているのか?から提示しないとな。
541 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 23:45:32 ] 体育会系
542 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 23:58:05 ] >>538 何処に入れてもしっくり来ないなら、そのものをオブジェクトにすべきなんじゃない?
543 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 01:18:31 ] >>538 足りないのは君の経験。精進しなさい。
544 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 03:36:51 ] >541 そういや、どこぞのサイトに「COBOLは体育会系言語」って書かれてたような
545 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 11:04:43 ] >>542 んなことするならクラスメソッドじゃなくて普通に関数として 用意した方が直観的だったりする。 java じゃ仕方ないけど。
546 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 11:39:03 ] >>545 全てをオブジェクトとして扱うと言うのを 全てをクラスorプロトタイプとして扱うなんて考えたら駄目だろう 変数も、関数も、クラスも、プロトタイプも、定数も、全てをオブジェクトとして捉えろよ 全てをオブジェクトとして捉えることが出来るようになれば、 "定数は名付けろ、マジックナンバーを使うな" って意味が理解できるようになる
547 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 12:05:41 ] オブジェクトとは何ぞや
548 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 12:16:35 ] 究極的にはプログラミングにおける全ての要素、だろうね。 数値、参照、配列、コード、識別子、関数、クラス… ただ、どこかで折り合いは付ける必要があるんだが。
549 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 13:04:03 ] C#はその辺の妥協の仕方が上手い。
550 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 13:27:33 ] オブジェクトって、プログラミングにおける全ての要素じゃなく プログラムの実行時に影響を与えるもの全てだろ
551 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 13:40:10 ] Math.sin(x) とか。Flashも。
552 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 14:23:05 ] >550 実行時に影響を与えないものの例って何かある?
553 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 15:06:03 ] >>548 その中で「参照」だけはあんまりオブジェクトとして とらえたくはないな。
554 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 15:15:59 ] 元はシミュ用だったことを考えるとプログラム内の部品をオブジェクトとかおいちゃうのって 仕様をクラスに落とす便利さをコーダーの勝手な理屈で排除してない? 仕様書から落としてきたクラスと コードレベルの都合でできちゃったレベルのクラスが 同列の扱いになってしまってるようなソースってのは大抵馬鹿の書いたソース
555 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 15:24:21 ] >>554 冗談は染んでから言えよw 関数と構造体だけで正しくプログラムは書ける 仕様書も作成可能だ
556 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 15:31:37 ] >>552 コメント
557 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 15:33:14 ] >>555 俺のレスにその内容のレスって意味わかんない
558 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 15:34:25 ] コードレベルの都合でクラスなんか作らないって事だろ
559 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 15:37:53 ] Haskell とはクイックソートが1行で書けるくらい(HQ9+のようなズルなしで)軽量な関数型言語です。 Haskell が真の能力を発揮するのは、複雑で巨大なシステムを書くときです。 一般に、プログラムは実現したいシステムが複雑になるにつれて、可読性はどんどん落ちていきます。 しかし、Haskellは違います。記述の簡潔さ、モジュールによって提供される名前のスコープの管理、関数合成による直接な記述など、他の言語に比べて機能は強力です。 何よりも型を自由にかつ厳密に書くことがすばらしい。これにより、コメントはほぼ必要なくなります。 ちろん、プログラムにコメントを付け加えておけば、それは HTML に自動的に翻訳され、そのままドキュメントになります。
560 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 15:38:55 ] >>559 haskellとか興味ない マイナーなの広めようと必死なのわかるけど やめてくれない?
561 名前:デフォルトの名無しさん [2009/06/14(日) 15:44:24 ] ハスケルは良い言語だとおもいますよ。 でもほとんどのプログラマーはマイクロソフトに影響されて頭がbasic脳なんで 糞言語しか理解できないんです。 だから斬新な言語ほどマイナーになってしまうんでしょうね。
562 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 15:47:58 ] >>561 いいかどうかは関係ない haskellとか興味ないから
563 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 16:05:54 ] >>559 簡潔に書くことに労力を取られ、肝心のシステム構築に支障が出る予感wwww
564 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 16:31:27 ] Haskellはマイナーじゃないだろ……
565 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 16:50:04 ] 関数型言語って、GUI(非同期的イベント処理)よりも バッチ処理に向いてそうだけど、どうなんだろう?
566 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 16:54:53 ] 再帰定義データに対する処理にうまく帰着できれば綺麗に書ける上に並列化とか 色々拡張するのも自由自在だけど、 そういうのができないような構造だと非常に面倒な事になる
567 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 17:38:27 ] GUIはイベントハンドラが書きやすい言語なら何でもいいんじゃない? そういや、以前はオブジェクト指向言語の紹介をするのに、 死ぬほど引数並べてウィンドウを構築するCのコードと、 シンプルなコンストラクタ+プロパティいじりたいところだけアクセッサ 呼び出しするオブジェクト指向言語を対比してみせるのが流行ってたな。
568 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 19:14:07 ] まあだからマルチパラダイムだよなー 関数型のエッセンスを取り入れたマルチパラダイム pythonかlisp(系)か でも大規模開発にもっていこうと思えば、 例えばCだと三項演算子は使わないこと(読めない人が居るから)、とか 一関数一ファイル(管理しやすいから)、とか なんか連番の機能ID(SKJD001020みたいな)だかなんだかをソースファイル名とか関数名とかに使う なんて規約作っちゃったりしてスポイルされてしまうのは目に見えてるw
569 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 19:19:48 ] 大規模開発だと1関数5行以内が 国際ルールだろ
570 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 20:17:15 ] >>569 1関数5行以内を遵守してる大規模オープンソースプログラムを教えくれよ。 俺が読んだ限りでは、apache httpdもopensslもそんな事にはなってないぞ。 国際ルールなんだろ?
571 名前:デフォルトの名無しさん [2009/06/14(日) 20:19:36 ] >>567 > GUIはイベントハンドラが書きやすい言語なら何でもいいんじゃない? 継続
572 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 20:28:51 ] >>569 脳内乙
573 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 20:31:17 ] 五行以内だとムリヤリすぎて、ぜってー読みにくくなる予感w
574 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 20:34:02 ] この後に及んでHaskellやOCamlに興味がないソフトウェア技術者がいるのは残念です。 VisualStudio2010にはOCamlの改造版であるF#が標準搭載されます。 Windowsをメインターゲットに開発している技術者なら、注目に値するはずです。 Software Design 2009年04月号ではHaskellでWebアプリを作る特集がありました。 Haskellの記述力の高さと安全さと並列性は、Webアプリ開発者としての責任を果たすなら 「知らなかった」では済まされません。 そもそも関数型言語の特徴(特にクロージャーやバリアント)などは次々にOOPLに取り込ま れています。それらがなぜ取り込まれたのか、その元を知っておきたくはありませんか?
575 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 20:36:57 ] Hashkellってなんであんなにカッコとかに煩いの?
576 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 20:49:05 ] fxp.hp.infoseek.co.jp/arti/prag/ HaskellでGUI作ったという話。 この例だと、結局、状態変数作って共有してる。 これなら、OOPのほうが素直。
577 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 01:04:11 ] >>576 つうか電卓の機能本体をみろよw こういうのをオペレータクラスだのなんだのゾロっと揃えて書くことになるんだろ
578 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 01:09:05 ] python の tk でもつかってごりごりつくりゃいいじゃんと 思ってしまうんだが。
579 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 01:19:45 ] >>577 Calculatorクラスつくって、そこに入力を放り込むってとこじゃね?
580 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 01:25:40 ] >>579 まあそりゃそうか 数式処理と勘違いしたw
581 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 01:31:54 ] どんな考え方でかいても、ちゃんと動くならいいんじゃないの。 それこそlogoでも。
582 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 05:48:59 ] >556 なるほど、それはあんまりオブジェクトとして扱いたくないなw
583 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 10:26:30 ] コメントで、バイナリファイルが大きくなるって事か。 未だに改修コメントとか残しているバカどもを説得する材料にはなるかもな。
584 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 10:40:28 ] それ以前にそんな言語使いたくない
585 名前:デフォルトの名無しさん [2009/06/15(月) 11:09:53 ] 「プログラムの再利用」のためには、エディタでプログラムの一部をコピーして 使えばいいのではないか。いまどきのエディタは、かなり高度な編集機能を持つので コピーや改変は容易である。そうすれば、継承などのプログラム言語の機能は何も 習得せずに、プログラムの再利用が出来て便利である。
586 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 11:15:30 ] コードの品質を基準やメトリクスで保証しようという発想がもうダメダメ。 できる奴が書いたコードは長ヒョロくてもしっかり考えて書いてあるし、 アフォが書いたコードは短かく切ってあっても余計トレーサビリティ落とすだけ。 結局は書いた奴の能力で全て決まるんだよ。 あとは、優れた能力を持つ技術者がその能力を生かせる言語を選ぶだけ。 これならOOの糞宗教も不要だし、土方のせいでOOの評価を落とされることもない。 みんな幸せになれるんじゃないの、優秀なら。
587 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 11:47:25 ] スレタイの「消えてなくれ」っていうのが厨っぽくて好きだよ
588 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 11:50:25 ] エターナルフォースブリザード
589 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 11:54:41 ] エターナルフォースブリザード 一瞬で相手の周囲の大気ごと氷結させる 相手は死ぬ V ∧_∧ ( ´・ω・`) ∧_∧ / \ (´Д` ) .__| | .| |_ / ヽ ||\  ̄ ̄ ̄ ̄ / .| | | ||\..∧_∧ (⌒\|__./ ./ ||. ( ) ~\_____ノ| ∧_∧ / ヽ \| ( ) | ヽ \/ ヽ. | |ヽ、二⌒) / .| | | .| ヽ \∧_∧ (⌒\|__./ /
590 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 12:08:37 ] 彡 。・ 彡 ・゚・ 。・゚・。・゚・。・。・゚・。・゚・。・゚・。・゚・ 。。・ 。・゚・彡。・゚・゚・。・゚・ ,.。 ο ・゚・。・゚・ 。。・゚・。・゚・ 。・゚・彡゚・。・゚。 0 o *彡 ・゚・ 。・゚・ 。・ ,.。 ο 彡 彡 0 ∧_∧ 。・゚・彡。・゚・ 。・ ・。・ 。・゚・ 。・゚・。・゚・゚・。・ . . 。 0 o彡 。・゚・。・゚・ o 彡 ( ´・ω・`) ∧_∧ 。・゚・。・゚・ 彡 。・ ,.。 ο ゚。・彡゚・。 / \ (´Д` ) ・ 。・゚・ 。・゚・。・゚・ ゚。.__| | .| |_ / OO ヽ 。 ο ,.。 ο ||\  ̄ ̄ ̄ ̄ / .|指向| | 。・ 彡 。・゚・。・゚・ 。・゚・。・゚・ 。・゚・ 。・゚・ 彡 ||\..∧_∧ (⌒\|__./ ./ 。・ 。・゚・。。・゚・。・゚・。・゚・。・゚・。彡・゚・゚ ・。・゚・。・゚ ||. ( ) ~\_____ノ| ∧_∧ 。・゚・。・゚・。・゚・。・゚・。・゚・ 。・゚・。・゚・。・ / 関 ヽ \| ( ) 彡・。・゚・。・゚・。・゚゚・。・゚・。・゚・ 。・゚・ | 数 ヽ \/ 手 ヽ. ・。・゚・。・゚・。・゚゚・。・゚・。・゚・ 。・゚・。 ;:''`'';"| 型 |ヽ、二⌒) / .| 続 | | ' '';;:' ''゚;:;:''"'';"'' :"' '゚ ''゚;:;:'"; .| ヽ \∧_∧ (⌒\|_き./ / ・゚・。・゚・。・゚・。・゚・ 。・゚・。・゚・。・ ・゚・。・゚・。・゚・。・゚・ 。・゚・。・゚・。・
591 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 12:10:29 ] ____ ∧_∧ /___/| ( ´・ω・`) .| ∧_∧ !/! / \ |(´Д` ) |/| .__| |____| |______..| OO/ヽ|/| ||\/___/| /| .| 指向 | | _____ ||\|..∧_∧ .|/.| (⌒\|__./ ./ |/|/____/.| ||. | ( ) |/.| ~\_____ノ |.| || ∧_∧ |/| |/ 関//|/.| \|.!/ !!( )... | /.| || 数/ ..|/.| \.!/ /手 ヽl/ | || 型// | |二⌒) /|.|...|続/ | ll/| |.|// .| | ヽ\∧_∧ (⌒\|_き./ /.!
592 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 12:26:23 ] >>585 >エディタでプログラムの一部をコピーして使えばいいのではないか。 エディタがコピペの履歴を覚えていて、コピー元のコードを書き換える とコピー先も書き換えてくれるようなリファクタリングを実現している のであれば考えても良い。
593 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 13:17:52 ] >>592 いつ他人に書き換えられるか分からんようなもの誰が使うのだ。
594 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 13:33:00 ] >>593 同様の修正を施すべき場所が分散して管理できなくなることをなぜ恐れないのか
595 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 13:52:58 ] おまいら何釣られてるんだよ。釣り針が大きすぎるだろうが
596 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 19:08:34 ] >>593 それはバージョン管理システムを使って解決すべきでは
597 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 00:29:48 ] コメントもオントロジー管理すりゃいいのに。
598 名前:デフォルトの名無しさん [2009/06/16(火) 00:31:17 ] そもそもコードをエディタでコピペして作るためにオブジェクト指向プログラミングが 存在するんだよ。
599 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 01:12:59 ] >590-591 OO指向の片方のOは何の略なんだ
600 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 05:14:37 ] おっぱい
601 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 13:56:23 ] おおきな おっぱい ぱぱのもの 思考
602 名前:名無し@18歳未満の入場禁止 mailto:sage [2009/06/16(火) 15:33:38 ] おっさん
603 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 19:00:04 ] よくこんなスレタイで盛り上がれるな
604 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 19:18:18 ] そろそろADT(Abstract Data Type)の優位性について語ろうか。いや、語ってください。
605 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 19:36:18 ] とりあえず、ADTとは次の内容によって構成されるもの。TAPL page 368. 1. 型の名前A 2. 型の具体的な表現T 3. 型Tに対する操作の実装 4. 型の表現や操作を包み込む抽象化 OOと違って明確な定義がある。
606 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 19:40:34 ] カウンターを(OCamlの)ADTで実装すると、こう。 module Counter : sig type t val make : unit -> t val inc : t -> t val get : t -> int end = struct type t = int let make () = 0 let inc x = x + 1 let get x = x end;;
607 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 20:47:23 ] ADTもOO同様、文脈によっていろんな意味を持つからね。 リスコフ(手続きとデータのセット。原義。広義)なのか、 ストラウストラップ(ユーザー定義型。クラスとほぼ同義)なのか、 クック(型による抽象化。手続きはデータに内包させない(つまりクラスはNG)。狭義)なのか くらいははっきりさせとかないと。
608 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 20:50:56 ] あとはソート代数とか、ADTは関係あるよなないような、ってのが多い罠
609 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 20:56:07 ] >>607 クックでよろ。
610 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 21:00:56 ] とりあえず、これを読んでおこうか。 ttp://www.cs.utexas.edu/users/wcook/papers/OOPvsADT/CookOOPvsADT90.pdf
611 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 21:02:15 ] >>610 無理読めない和訳してね
612 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 21:04:41 ] Modula-3のOpaque型もADTに情報隠蔽を加えたようなものだが。
613 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 21:13:30 ] >>605 = >>606 = >>609 ? >>606 の定義はCookのADTでは無いが。
614 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 21:27:20 ] >>613 え?違うの?違いが分かりません。 型と操作が含まれていて、それらを抽象化できるんじゃないの?
615 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 22:34:48 ] >>614 > クック(型による抽象化。手続きはデータに内包させない(つまりクラスはNG)。 モジュールに手続きを内包させるのは違うんでないの?
616 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 23:07:53 ] >>615 >>610 ではADTによる型と操作を分けたlistの実装やそのシグネチャーが言及されています。 それに、複数ヶ所でMLの抽象データ型にも触れられており、 cookのADTは>>605 ,>>606 と捉えて問題ないように(私には)見えます。
617 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 23:16:38 ] >>616 これはADTと呼べないの?>>606 と同じことを実現してるんだが。 Counterが型だからそれだけでアウト? template <typename T> struct Counter { T t; T make() = 0; void inc(T& t) {t += 1;} int get(T& t) {return t;} };
618 名前:617 mailto:sage [2009/06/16(火) 23:29:49 ] すまん>>617 は忘れてくれ。寝ぼけていたようだ。 クラスが駄目なのは分かったが、Cで以下のようなコードをCounter.cという モジュールにしたら、それはADTと呼べない? ただ、Counterは例えとして良くないな。 typedef some_type Counter; Counter c; Counter * make() {return malloc(sizeof(Counter));} void inc(Counter *c) {*c += 1;} Counter get(Counter *c) {return *c;}
619 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 23:32:44 ] >>617 Counterが型だからという理由ではなく、>>605 の2(型の表現)や4(型や操作の抽象化)が ないので、ADTの定義からは外れると思います。 型を抽象化したのではなくパラメータ化したと言う方が正しいかと。
620 名前:617 mailto:sage [2009/06/16(火) 23:43:08 ] >>610 を読んでみると、 Simula and C++ support both ADTs and PDA in the same framework; ... とあるからC++でもADTを表現出来ると思うんだが、純粋なADTじゃないから 駄目なのか?
621 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 23:57:56 ] >>620 すみません、C++には詳しくなくて分かりません。 でもたぶん、typeid演算子を使えばできるぜというくらいの意味じゃないでしょうか。
622 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 00:06:12 ] >>621 >>610 の論文は1990年頃に出たと思うんだが、当時のC++にtypeidは無かった気がする。
623 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 00:52:52 ] ここにもADTの定義が書いてある。真ん中よりちょっと上。4つの特徴で定義してある。 ttp://gd.tuwien.ac.at/languages/c/c++oop-pmueller/node4.html やっぱり型と操作の分離や外部への抽象化がポイント。
624 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 02:52:13 ] >>623 だからリスコフとストラウストラップとクックのADTくらいはさくっと見分けがつく程度にはしておこうよ。 そうであれば、たとえば623のリンク先はストラウストラップの流れのADT(OOのサブセット)とすぐ分かるから。 publications.csail.mit.edu/lcs/pubs/pdf/MIT-LCS-TR-561.pdf www.research.att.com/~bs/whatis.pdf www.cs.utexas.edu/users/wcook/papers/OOPvsADT/CookOOPvsADT90.pdf
625 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 04:42:10 ] しかしADTもOO並にカオスだな いくつも同名の別定義を作るくらいなら別名にすればいいのに
626 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 09:53:16 ] >>625 dateが、今日の日付を表すのか、単なる日付を表すのか、彼女といちゃつく日を表すのか それを文脈から読み取れるようにしようとしているだけだろ 空気の読めないプログラマに、空気を読むプログラムをするように言ってるようなもんだからなぁ
627 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 17:24:20 ] 先生分かりにくいです
628 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 18:36:39 ] 下手なアナロジーが余計に物事を分かりにくくするという典型例だな
629 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 19:10:32 ] 人が嫌がりそうなことを言っときたい人ってのだけはわかるw
630 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 19:55:41 ] なんかこのスレは勉強になるなぁ ところで、MLのモジュールシステムってのはどうなの?OOより使いやすいの? クラスベースと違って型は型として組み合せて作れるので、 その点は見やすくていいかなと思ってる
631 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 20:13:58 ] > MLのモジュールシステムってのは 出来上がったシステムとは何の関係もない 使ってうまくものが動けば正解なんだと思う 問題領域に最適な手法を使うのが正しい道だろ? 俺的には、信号処理とかだとOOなデザインするより、 伝達関数とか状態方程式が飛び交ってくれた方が 分かりやすい
632 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 20:28:21 ] >>624 まだADTが良くわからん。>>620 にあるように、CookのOOPvsADTnの論文で C++でもADTが実現可能とあるけど、誰かC++でCookの言うADTを表現してみてよ。
633 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 20:52:21 ] >>630 www.research.att.com/~bs/whatis.pdf の6ページにOOの方が有効な一例が載ってる。
634 名前:633 mailto:sage [2009/06/17(水) 20:54:07 ] 途中送信してしまった。 当然のことだが、どちらが有効かは場合によるから臨機応変に選択すればよい。
635 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 21:10:51 ] >>633 6ページ目の話はなんだかexpression problemの事を言っているように見える まー、1991年だし、バリアントを加えるのにはOO有利ってことか。
636 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 00:03:55 ] ちなみに、2009年には多相バリアントという便利な代物があるから expression problemがモジュールシステムの弱点とは言えないと思う。
637 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 00:20:08 ] expression problemの定義は?
638 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 00:39:08 ] >>636 ちなみに6ページ目の例をpolymorphic variantsで実装するとどうなるの?
639 名前:デフォルトの名無しさん [2009/06/18(木) 07:40:57 ] そもそもオブジェクト指向と関係無いような気がする
640 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 07:54:17 ] >>637 定義 ttp://www.daimi.au.dk/~madst/tool/papers/expression.txt >>638 その解法など ttp://www.math.nagoya-u.ac.jp/~garrigue/code/ocaml.html ttp://d.hatena.ne.jp/osiire/20090516#1242456737
641 名前:デフォルトの名無しさん [2009/06/18(木) 18:00:29 ] 全文リンクレスは著作権的にNGだろ 自分の言葉で語れよ
642 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 18:10:12 ] 直リン厳禁です><
643 名前:デフォルトの名無しさん [2009/06/18(木) 18:27:59 ] 少なくともリンクがレスのメインになったらアウトだろ
644 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 18:31:21 ] 直リンて懐かしいなw またキチガイが無駄な屁理屈こねてんのか
645 名前:638 mailto:sage [2009/06/18(木) 18:34:24 ] >>640 やはりそれが定義だったのか。ググってすぐに出てきたのがそれだったから。 polymorphic variantsで継承&仮想関数オーバーライドとほぼ同様のことが 出来るのは分かった。ただ少し記述が面倒だな。あと拡張したモジュール名を 使う必要があるのも面倒というか。 どちらにもそれなりの良さがあるから一概にどちらが良いとは言えないが。
646 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 19:00:48 ] リンクだけレスは著作権法の引用の範囲をぶっちぎりで破ってる >自分のオリジナルな文章が主(量的にも質的にも)であり、引用部分が従であること (ちなみにこの文は法律なのでおk) つまり、リンクだけレスは著作権法違反
647 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 19:03:34 ] アホがいる
648 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 19:06:40 ] OOやADTの形式論を議論している場で、 引用と参照の違いが理解できない人がいるのは、 とても滑稽だと思った。
649 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 19:21:32 ] >>647 どうした? かかってこいよ
650 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 19:25:37 ] グーグルみたいに巨大になれば法律を捻じ曲げる力が持てるぞ 人の作った法なんて巨大になって捻じ曲げようぜ
651 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 20:51:30 ] >>645 >polymorphic variantsで継承&仮想関数オーバーライドとほぼ同様のことが出来るのは分かった。 気持ちは分かるけど、オブジェクト指向の枠組で捉え直そうという試みは 理解を助けるための最初の一歩だけにしておいた方がいいですね。 もっと素直に書くと、expression problemを解決する鍵は、 - polymorphic variantsは複数の型になり得る(多相)ので、 基の型と拡張後の型の両方に属すことができる - モジュールシステムは元々操作を拡張することができる という二点で成り立っている訳です。
652 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 21:33:50 ] >>651 気持ちの問題は関係なくて、元々の話はStroustrapの6ページ目の例を polymorphic variantsでどう解決できるかを聞いていたのであって、 だからこそ継承&仮想関数による表現がどのように対応するのかを確認したわけ。 > - モジュールシステムは元々操作を拡張することができる これは具体的にどういう意味?当然の話だと思うけれど。
653 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 21:45:41 ] >>641 単なるリンクは、引用じゃありません。 リンクは、文献参照と同じです。 著作権的にはまったく問題ありません。 問題あるというのなら、判例か何かを出してください。
654 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 21:47:13 ] >>653 土方は放置すればいいだろ
655 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 22:01:28 ] >>653 勝手な介錯だな
656 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 22:03:57 ] 切腹ー
657 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 22:15:32 ] >>652 あぁ、誤解していました。すみません。 OOでは継承と仮想関数によって「種類を増やす」事をしていた訳ですので、 polymorphic variantsが同様の役割を担っているのはおっしゃる通りです。 あと、 >モジュールシステムは元々操作を拡張することができる というのは、"新しい操作を加えることができる"の間違いでした。 OOではこれをやろうとすると、visitorパターンを使わなきゃいけなくなります。 で、visitorパターンを使うと今度は種類を増やせなくなる。 つまり、expression problemはC++やJavaでは解決できません。
658 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 22:25:23 ] Javaでexpression problemを解決しようと頑張ってみた例↓ ttp://www.graco.c.u-tokyo.ac.jp/~nishi/semi/tm.2004-02-18.xhtml これと比べれば、polymorphic variantsによる解法が如何に簡潔か分かると思う。
659 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 22:39:20 ] OOがゴミということは最初からなんとなく判ってたんだ 途中から総称型がもてはやされた時点で確信に変わった 次第にOOはどんどん隅に追いやられ、やがて名前だけの存在になった つまりOOは、OOであることをやめてしまったのだ
660 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 00:56:11 ] OOPLにはなんでタプルとバリアントが無いの?バカなの?死ぬの?
661 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 01:01:09 ] どったん?死ぬん?
662 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 01:19:17 ] アメリカでOOP禁止になるかもな
663 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 02:05:57 ] >>660 その文体飽きちゃった
664 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 11:01:28 ] >>632 template <typename T, typename C> class stack { typedef T value_type; typedef C container_type; public: virtual value_type top(void) = 0; virtual void pop(void) = 0; virtual void push(value_type) = 0; private: container_type _container; }
665 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 00:05:37 ] PythonにはタプルあるしVB系にはバリアントあるけど…
666 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 04:08:07 ] C++はboostのtupleが使えるから特に問題無いな。実装は汚いが。
667 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 08:29:23 ] >>665 バリアントの意味が違う どの型でも代入できる変数なんてキモいやつの事じゃないからね
668 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 09:48:29 ] いわゆる代数的データ型だな
669 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 10:30:47 ] 代数的データ型といえば、コンパイルは通るのに実行時にパターンマッチ失敗して どこが間違ってるのか探すのが面倒で、静的型の意味がないと思った記憶がある
670 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 10:31:11 ] バリアントあれば継承いらねえことに気づいた
671 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 10:54:32 ] >>670 おまえ全然分かってないな
672 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 10:55:07 ] >>670 それは、継承の使い方を間違っているだけじゃないの?
673 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 11:23:44 ] >>670 「いらないこともある」だな。 継承あった方が便利って時もある。
674 名前:デフォルトの名無しさん [2009/06/20(土) 12:51:11 ] 変数に型があるからオブジェクト指向が考えにくいのかもしれん。 Lispみたいに変数の型を無くして値に型を持たせたらいいかもな。
675 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 13:03:22 ] practical-scheme.net/trans/noop-j.html > 個人的には、オブジェクト指向抽象化が必要だと思ったことは一度もない。 Common Lispは > 恐ろしいほど強力なオブジェクトシステムを持っているが、私は一度もそれを使ったことがないん > だ。ハッシュテーブルにクロージャを詰め込むとか、弱い言語だったらオブジェクト指向テクニッ > クが必要だっただろうと思えることはたくさんやってきたけれど、CLOSを使う必要に迫られたこ > とは無かった。
676 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 13:37:55 ] >>673 それで設計変わっちゃうのってどうよ?
677 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 13:59:46 ] >>670 も>>673 もおまいらみんな土方だろ 継承の代わりになり得るのはバリアントじゃなくて多相バリアントだ
678 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 14:08:00 ] >>675 要約すると 「LISPのOOはCLOSがあるけど結局クセが強すぎて怖くて使わなかった 考えてみたらおりゃのやる範囲じゃOOいらなかった」
679 名前:デフォルトの名無しさん mailto:sage [2009/06/20(土) 14:12:51 ] CLOSが変態なのはCLOS屋も認めるところだからなあw
680 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 10:27:22 ] >>669 それ、exhaustive checkの警告を華麗にスルーしてるだろww
681 名前:デフォルトの名無しさん [2009/06/21(日) 11:16:47 ] やっぱり、無制限に新しい型を作れるオブジェクト指向と、 静的型システムとは相性が悪いんだよ。 Objective-C みたいに、別々に存在してるほうがいいんじゃないの。
682 名前:デフォルトの名無しさん [2009/06/21(日) 18:09:22 ] まぁ臨機応変に
683 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 21:32:03 ] >>681 >やっぱり、無制限に新しい型を作れるオブジェクト指向と、 >静的型システムとは相性が悪いんだよ。 相性以前に、型なんて何にも考えずに作った構文やセマンティクスの上に おまけで型を入れようとするから、静的にならないんじゃないかな。
684 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 22:29:23 ] 型システムをおまけとして分離すると再利用しやすくなる。 例えば型システムの古いバージョンと新しいバージョンを連携させることもできる。
685 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 23:47:28 ] >>684 >型システムをおまけとして分離する 型安全とか型推論ってその言語で定義される値や構文の上に定義されるものだから、 分離すること自体が困難そうにみえるのだけど。 型システムをおまけとして扱う関連情報源ありますか?
686 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 00:55:42 ] >>685 Objective-Cの話だと思うが 動的型付けが気に入らないなら、C++/CLIとか調べてみれば
687 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 08:19:34 ] >>685 アノテーション使うヤツなら太古の昔から色々提案されてるだろ。
688 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 19:37:19 ] >>674 それって python じゃね? まあスピードもメモリも気にしないってことなら いいんじゃないかと思うが。
689 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 19:50:59 ] あんな括弧もないような言語は捨てちまえ
690 名前:デフォルトの名無しさん [2009/06/22(月) 19:52:51 ] >>689 誉めてつかわす
691 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 20:00:33 ] lisperキモ
692 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 20:19:36 ] lisperは巣にカエレ!!!
693 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 21:07:36 ] lisper lisperささやいて〜
694 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 22:21:36 ] 動的型のOOPLは、自分が書くときには最高のパフォーマンスを発揮する。 物によっては、基底クラスやオブジェクト自身の型さえ変えられる。 でも、他人のソースを読むときは、まさにカオス。
695 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 23:16:48 ] だからケント・ベックは他人が読みやすいコードの重要性にSmalltalkで気付いたのかな。
696 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 00:13:55 ] 動的型のOOPLのソースコード、引き継ぎたくねー。
697 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 01:01:18 ] じゃあrubyとか最悪ですね
698 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 02:45:55 ] うちの会社じゃ、Rubyのコーディング規約として、publicなものには型を コメントとして書く事にしてるよ。
699 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 05:27:32 ] それ最低だな。 静的型の型検査も、動的型のフレキシブルな記述も、両方とも捨ててる。
700 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 09:04:49 ] >>699 なにその一見同意しそうで、いやちょっとまてよ?ん?となる文章は。
701 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 09:07:37 ] 型を意識するだけでなく、コメントとして書くぐらいなら 型シグネチャが必要な言語でいいじゃんって思うけど 強い静的型のLLなんてない(強いていうならHaskell?)現実
702 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 09:30:48 ] せめてLLを定義してから言えよ
703 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 09:31:09 ] 静的型+型推論が一番かなぁ。コンパイル言語になっちゃうが。
704 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 11:28:49 ] 別に今のLLだって最初に全体をプリコンパイルしてるの多いし そうでなくても全体をパースしちゃうのも多いから 純粋なインタプリタなんて今や希少種じゃね?
705 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 11:46:47 ] /bin/shさいこおおおおおおお
706 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 12:31:30 ] >701 スクリプトモードののScalaとか? Rubyで、コメントにアノテーションとして型を明示する書法無いの? なんかのライブラリのHTMLドキュメント見た時に書いてあったから、 そういうツールが出回ってるのかと思い込んでたけど。
707 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 13:27:32 ] >705 ああ、シェルスクリプトやバッチファイルはそうだっけ。
708 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 13:54:25 ] >>704 具体的に言語名は? ruby,pythonなんか遅いからそんなことやってないと思うが。
709 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 13:58:32 ] >708 RubyもPythonも最初に全体をパースしてなかったっけ?
710 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 14:03:54 ] ファイル全体を一気にパースしたらコンパイル言語というのは少し御幣があるな。 抽象構文木を解釈しながら実行するなら、インタプリタと呼ぶべきかと。 PythonなんかだとJITコンパイルをする実装もあるが。
711 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 14:16:08 ] いや、俺(>704)は「コンパイル言語」とは言ってないよ。 ただ、どっちにしても全体を最初に見るワケだから 「静的型+型推論」をするのにコンパイル言語である必要は無いんじゃないのか?と言いたかった。 言葉足らず過ぎてすまん。
712 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 14:30:20 ] >>708 > ruby,pythonなんか遅いからそんなことやってないと思うが。 ${PYTHON}/Doc/glossary.rst bytecode Python source code is compiled into bytecode, the internal representation of a Python program in the interpreter. The bytecode is also cached in ``.pyc`` and ``.pyo`` files so that executing the same file is faster the second time (recompilation from source to bytecode can be avoided). This "intermediate language" is said to run on a :term:`virtual machine` that executes the machine code corresponding to each bytecode.
713 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 17:24:08 ] >>704 >別に今のLLだって最初に全体をプリコンパイルしてるの多いし ここに反応してレスしたんだ。多いのだったらいくらでも例をあげられるだろう。 ruby,pythonをあげるととたんにパースしているはないだろう。 もしそういうのがあれば使ってみたい。 >>712 マシン語にならないのにプリコンパイルと言われても他の言語になっているだけ。
714 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 17:33:18 ] >>713 > マシン語にならないのにプリコンパイルと言われても >>704 はこの考え方が古いって言っているんだよね。 中間言語へコンパイルしてさえいないのはいまや希少。 > もしそういうのがあれば使ってみたい。 v8 javascript engine 構文木からいきなりx86に変換して実行。 eval関数がある言語なのに。 REPLでも同じようにx86に変換して実行する。
715 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 17:35:50 ] 実行中に型推論うごかすのかよw
716 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 18:10:55 ] 大抵はインクリメンタルにやればすぐ終わるよ そのまま動かす方がオーバーヘッドが大きい
717 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 18:13:04 ] >>714 > eval関数がある言語なのに。 lisp 系は昔から native 吐くやつざらにあるじゃん
718 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 18:50:43 ] >>714 V8のソースを少し見てみたが、本当に抽象構文木Tから直接マシン語を 出力してるな。アセンブリ言語に近い中間言語に落として最適化を かけてからコード生成というアプローチだとレイテンシー等の問題が 出るってこと?
719 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 20:01:37 ] >>717 ほとんど全てのLispはインタープリタも持ってるでしょ。 (Scheme実装のStarlinみたいな処理系もあるけど) だからS式のまま実行できる。 v8はインタープリタはない。そこが違う。 >>718 二度手間だって事でしょ。 WebではJavascriptのコードはソースで提供されるわけで、 PythonみたいにILを外部ファイルに持っておけるわけじゃない。 だったらJIT一発で実行した方がいい。 それからプロパティアクセスを高速化するためにはJIT必須という考え方。 Cの構造体フィールドアクセスと同じコードになってる。 「コンパイラ・スクリプトエンジン」相談室スレに移動した方がいいかな?
720 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 20:03:30 ] つまりnativeで実行できない言語はゴミ
721 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 20:36:25 ] native実行していてもゴミ同然の言語あるよねw
722 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 20:41:37 ] >>719 IR無しだと最適化が二度手間になると思うんだが、ターゲットCPUが x86, x86_64, ARMだけだから何とかなっているのかもしれん。 というかLLVMなどを使うより高速なコード生成が出来るなら やっぱりGoogleは凄いってことだな。
723 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 20:43:32 ] v8はデータフロー解析みたいな最適化は一切やってないんだわ。 ピープホール的な事をちょっとやってるだけで。
724 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 00:00:59 ] 民主党が政権とると OOPは規制対象になるね税金の無駄遣いだし
725 名前:デフォルトの名無しさん [2009/06/24(水) 03:21:05 ] 民主党が政権とるとOOPを使えないってこと? 自民党だと派遣マンセーでjavaを強制的に使わされそうだし この際OOP規制で良いや
726 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 14:12:33 ] 今朝がたの会話 俺 「そんなやりかたじゃ規格が満たせません」 某SE「今までこの方法で動かなかったものはないんだからこれでいいんだ」 … … … 規格書の読み方も知らんのか? > OO できる SE
727 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 15:04:52 ] OO関係ないやん。
728 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 18:34:56 ] 上司「その規格書さ、間違ってるから」 よくあることである
729 名前:726 mailto:sage [2009/06/27(土) 20:14:14 ] >>728 某SE「OO的に書けないんだからその MP4 の規格書間違ってる」ってか
730 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 20:57:13 ] 理解力の無さから察するに >>726 の方が間違ってそう
731 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 21:04:35 ] 今日、次期政権担当政党で IT詳しい人に聞いたがやっぱり OOPは禁止だと言ってた それってレガシーなんでしょって言ってたよ
732 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 22:45:16 ] w
733 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 10:09:49 ] >>731
734 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 14:16:49 ] オブジェクト指向って、せっかくまとまっているグローバル変数を あっちこっちに散らかしてわかりにくくしたものなのですね と言ってみる
735 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 16:14:11 ] 流石にグローバル変数を持ち出されるとコボラ乙としか言えない
736 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 16:15:24 ] オブジェクト指向なんかPhotoshopで言えばレイヤーみたいなもん あって当然使えて当然 ただ使えるだけで威張ってるのは馬鹿 「レイヤーを使わないと絵が描けません」と威張る言語も馬鹿
737 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 19:47:19 ] 使えませんと言って威張ってるのはもっと馬鹿
738 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 00:44:29 ] アメリカでもEUでもOOP規制の動きが 出始めてる。ソフトウェア産業に害しか及ぼさないということで 原則使用禁止を国レベルで採択する方向が強まってるね
739 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 00:46:19 ] つまんね
740 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 10:39:35 ] >>738 何言ってんのお前 若年性認知症か?
741 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 22:53:57 ] >>740 >>740 >>740 >>740
742 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 23:46:22 ] 「OOを使わない」と「OOを使えない」の差は大きいね。
743 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 00:03:01 ] この際使えなくていいよ。もう使わないから。
744 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 06:53:06 ] 私も C++ Ver1 のころはOOはいいと思ってました。
745 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 11:14:11 ] C++ はそれ以外に問題が大杉だw
746 名前:デフォルトの名無しさん [2009/07/02(木) 13:40:09 ] lisp属の()が可愛く見えるほど 変態構文だらけになってしまったもんなぁ > C++
747 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 13:55:39 ] たとえばどんな? あるいはとくにどれが?
748 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 15:19:33 ] テンプレートとか今度入ってくるラムダとかのことじゃねぇの
749 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 19:17:27 ] boostなんかだと演算子をオーバーロードしまくってるから とてもC++とは思えないコードになるからな。
750 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 19:21:29 ] 日本を代表するc++ハッカーのやねうらお氏もlispが来ると言ってるね d.hatena.ne.jp/yaneurao/20090701
751 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 19:27:31 ] こねぇwww
752 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 19:53:26 ] ぶろっがーの間でははやるんじゃね?
753 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 20:18:19 ] やねうらってLISP知ってたのか 組み込み寄りの人かと思った
754 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 20:30:46 ] HSPerとLISPerってどっちが馬鹿なの?
755 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 21:09:13 ] あくまでも、Lispは実験言語だな。 でも、実験言語としては非常に優れている。 プログラムとデータが渾然一体としているから、 どんな革新的な機能でも追加できる。 ただし、文法がS式なことだけ我慢すれば。
756 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 21:16:31 ] S式は抽象構文木として使えばいいのであって、 具象構文は普通にパーサ書けばいいだけ。 LISPは元々は自然言語処理のために開発されたことを忘れないで><
757 名前:デフォルトの名無しさん [2009/07/02(木) 22:12:54 ] まぁ、何だかんだ言っても馬鹿にはLispは使えませんよ
758 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 23:27:19 ] だからって、Lispを練習しても馬鹿が直る訳じゃないんだが、 時々それを勘違いしてる奴が居る。
759 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 23:34:50 ] >>756 が新しい言語を作るそうです
760 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 00:13:04 ] guile ctax なんてものもあったけど、使われてないね。
761 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 01:09:08 ] 他人のオナニー見ても気持ちよくないからね
762 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 14:56:07 ] >>756 今時RLISPかよ
763 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 15:26:45 ] 見事にLISPスレ的な流れになったな
764 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 16:07:14 ] LISP語るならCLOSについて話せよ
765 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 16:26:12 ] モノを完成させてからオブジェクト指向で書き直すなんて二度手間です><
766 名前:デフォルトの名無しさん [2009/07/03(金) 23:15:27 ] >>758 が「馬鹿はLispが使えない」ことを証明しますた。
767 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 23:31:13 ] 別にわざわざLisp使う意味がわからないな C言語でいいじゃん
768 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 23:51:48 ] >>767 使いなれてしまうと日常的にCを使いたくなくなるな つか、俺にとってはCは未だに高級アセンブラ、C++は超高級マクロアセンブラ なんでスペシャル変数を導入しないんだろ >C++
769 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 00:02:52 ] 最近、C言語で地味に堅く組むのがマイブーム
770 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 00:43:46 ] 高級アセンブラと思ったことはないけど、Cは十分に高級言語なので たいていのことはこなせる。 Cより複雑なことをしたい場合は、PerlとかRubyとかのスクリプト言語にするよ
771 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 05:10:49 ] スペシャル変数www それがプログラミング言語設計一般で使われる概念名称だと思ってるのかwww ひさしぶりに腹かかえたwwwww
772 名前:デフォルトの名無しさん [2009/07/04(土) 07:44:15 ] なれるとLispはCやC++よりプログラムを考えるのが楽チン
773 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 08:25:34 ] むかしLISPを勉強しようと思ってMSDOS用のXLISPを入手した。 これが使用中にしょっちゅう落ちる。でメンテしてめったに落ちなくしてついでに いろんな関数を作って高級アセンブラ並にしたんだが結局Cを使った方が楽で使わ なかった。LISPはおれにとって楽チンどころか苦痛を与えるためにあるようんもんだ。
774 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 09:12:52 ] マジOOは思想ごとこの世から消えて欲しい。 CやVBでさえまだ満足に使えてないのに、 周りがどんどんOOに進んでいくので、落ちこぼれ感が半端ない。 技術的というより、精神的に追い詰められる。
775 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 09:34:28 ] 相手を追い詰めることで自分が進んでいると思えるって、ひどい相対主義だな
776 名前:デフォルトの名無しさん [2009/07/04(土) 09:39:41 ] 追い詰めると言うよりは、置き去りですな。 もしくは、怠慢でついて来れないだけ。
777 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 09:43:58 ] DOSのLispっておもちゃだったからなあ。
778 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 10:18:36 ] OOを捨てることは何時だって出来るのに これだけ普及&定着しまくってるんだから 何かしら捨てられない理由でもあるんでしょう
779 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 10:28:50 ] GUI 関連ならそりゃ普及してるけど、 それ以外で無理に使う必要あるか?
780 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 10:30:56 ] OOPはこれから規制対象になるんだけどねぇ 品質が上がらない要因といわれている
781 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 11:00:56 ] 一定以上複雑なプログラムには有効な整理方法だよ 単純なプログラムには必要ないね
782 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 11:04:44 ] LinuxカーネルもWindows7のカーネルも すごい複雑だけど1行もOOP使ってないけどね
783 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 11:12:27 ] WindowsにOOPが使われてないとは初耳だなぁ...
784 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 11:21:38 ] >>783 VistaはカーネルのコードC++で書いて 失敗した。だから全部Cで書き直したよ
785 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 11:59:26 ] カーネルは複雑じゃないから OOP は必要ないだろうね
786 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 12:06:50 ] なぜそこにOOPをつっこもうとする
787 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 12:13:00 ] パフォーマンス問題がクリティカルな分野でOOPなんてやるわけねーだろ そんなん言ったら大半の組み込みプログラムが非OOPだわ
788 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 12:13:19 ] >>782 嘘言うなよ LinuxはVFS周りのコードがOOPだ
789 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 12:25:43 ] >>788 ソースみたけど全部Cで書いてあるけど?
790 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 12:27:16 ] >>789 CでのOOPに決まってるだろ
791 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 12:34:06 ] GObject…
792 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 12:40:47 ] >>790 CにOOPなんてねーだろ バカなのアホなの?
793 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 12:52:43 ] お前本当に頭悪いな GObjectが何か調べてから物を言えよカスが
794 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 12:58:34 ] >792 お前はまずOOPとは何かを学んだほうが良いぞ OOPLはOOPをしやすくした言語であってOOPLじゃないとOOPができないワケじゃない
795 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 13:17:00 ] カーネルプログラミングでGObject(汗
796 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 13:27:35 ] じゃばばんばぁは言語にOOPがないとOOPができないとおもってるからなぁ
797 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 14:21:06 ] LinusがC++嫌ってるからしかたなくCで書いたんだろ
798 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 14:25:09 ] 手動メソッドディスパッチ…
799 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 14:32:23 ] >>797 LinusがC++嫌いなのはその通りだけど、そんな簡単なものでもない。 www.tux.org/lkml/index.html#s15-3
800 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 14:38:58 ] LinusどころかOOPLユーザの過半数がC++を嫌っているという現実
801 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 14:41:08 ] C++は糞これはガチ
802 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 15:48:38 ] >>794 そう言って、Cでオブジェクト指向プログラミングができるって テクニックを公開しているやつをなんども見てるけど、つかえそう なのって、カプセル化、抽象データ型くらいで、継承とか多態 までいくと「おいおい、それはムリがあるだろ」って感じのばっかり だな。 ああいうの真に受けるやつがいるから、広めるのやめてほしい。
803 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 15:55:45 ] C++ を糞だと思うのは自由だが、OOP と GP の直交が醸す広大な抽象空間を 知らずに人生を終えるのはちょっともったいないと思うよ。
804 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 15:56:37 ] 多態なんて関数ポインタ使えれば誰でも考え付くこと。
805 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 16:03:17 ] >>803 GPって何?ゴールドポイント?
806 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 16:07:17 ] >805 グレートプログラム
807 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 16:23:57 ] >>803 C++ のジェネリックプログラミング: アイデアは全部よその言語のパクリ, あの変態構文を除けば… … …
808 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 17:02:27 ] グランプリ
809 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 17:07:01 ] GenericProgramingをGPと略すのはどうなんだろう GPといったら普通は遺伝的プログラミング(genetic programming)の方かと
810 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 17:09:08 ] Giant Penis
811 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 17:10:36 ] 紛らわしいシリーズとしては generative programmingってのもある
812 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 17:18:56 ] GP = Generic Programming のこと。C との互換性と GP によって、C++ は今後も戦力外通告されない「潰しの効く」言語の一つたりえる。Bjarne Stroustrup は C++ の原作者として、プログラマが言語学習に投資した 時間を無駄にするような言語仕様の変更を加えないよう、絶妙のバランス 感覚で手綱をしめてる。C++ は次の改訂でさらに初心者にやさしい使い やすい言語になるよ。
813 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 17:21:37 ] >>804 それは多態じゃなくて高階関数な。
814 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 17:27:26 ] OOと関係ない方向で性徴
815 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 17:38:06 ] Generic ProgrammingやりたきゃC++なんかよりSMLやHaskellのほうがずっといい。
816 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 17:48:03 ] scrap your boilerplate
817 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 18:43:29 ] C++は組み込み分野では利用禁止が定着しつつある 一般開発では既に利用禁止が大半となっている
818 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 18:47:51 ] ま、C++でまともにコードかけるやつがめったにいないしな。
819 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 20:19:45 ] >>817 w
820 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 20:21:23 ] まともにかける奴がいない = かける俺が偉い というオナニーなんだろうが lispに比べればはるかに多いだろ lispが使われて無いのはかける奴がいないからに他ならないわけで
821 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 21:56:18 ] >>817 電子回路設計ではSystemCとかいうC言語の亜種が出てるのにな
822 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 22:04:31 ] 組み込みの分野で使われてるのってluaとか? あれも、オブジェクト指向はなしで、 関数型を取り入れたって感じだな
823 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 22:09:56 ] 組み込みってハードに近いあれの話だろ? C言語の変な仕様バージョンが圧倒的に多い みためC言語だけどC言語仕様にはそってないの なんちゃって?C言語?っての?
824 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 22:27:49 ] qsortの無いやつもあるしな
825 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 22:33:28 ] そもそも標準ライブラリなんてほとんど使わん
826 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 22:47:45 ] C++は、現実の問題に対処できるように何でもできる言語を目指しているが、 何でもできることで、かえって現実のプログラマの集団を うまく統制できない言語になってしまった。 言語機能の一部を使用禁止する命令とか作ったほうがいいんじゃないか?
827 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 22:53:18 ] >>826 実際構文解析・チェックツール使って スタイルに合ってないヤツを書き直させてる現場もあるよ
828 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 22:53:51 ] >>826 いやだからEUでC++0xの仕様採択中止になったしょ? ほらEUだとソフトウェアのレベル計測する基準とかあるだろ あれで軒並みC++は該当外になっている。
829 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 23:05:50 ] >>828 へーそうなんだ。ソースどこ?
830 名前:デフォルトの名無しさん mailto:sage [2009/07/04(土) 23:36:50 ] 脳内
831 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 00:03:58 ] オブジェクト指向のクソなところをまた一つ発見した。 予約語が増える。
832 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 00:57:59 ] SKI!!SKI!!
833 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 01:45:33 ] >823-824 こういう感じのやつ? ja.wikipedia.org/wiki/ フリースタンディング環境
834 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 06:51:21 ] >>831 SmalltalkよりもCのほうが桁違いに予約語が多いのだが?
835 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 07:03:12 ] SmalltalkはifTrueなんかも予約語じゃないのではなかったか?
836 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 07:10:35 ] ifTrueやwhileTrueもメソッド名だね < Smalltalk
837 名前:デフォルトの名無しさん [2009/07/05(日) 07:54:31 ] 予約語が増えるくらいどうということないじゃん。 もともとCやC++はオペレータの数が少ないんだし Lispなんてオペレータが多すぎて訳ワカメやぞ。
838 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 07:57:05 ] 釣り、、、だよな、、、、?
839 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 08:07:29 ] $から変数名はじめればいいだけ
840 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 11:19:32 ] 予約語が多いというとCOBOLを思い浮かべるが…
841 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 11:33:29 ] エディタがハイライトしてくれるから、予約語の数なんて大した問題じゃないだろ
842 名前:デフォルトの名無しさん mailto:sage [2009/07/05(日) 11:41:19 ] 新しい概念なんだから予約語が増えるのは当然 似て非なる言語仕様が乱立するほうがよっぽど怖いぜ
843 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 00:44:35 ] 20,30くらいの予約語ならいいが、 100を超えるのはあほだろ。
844 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 00:59:21 ] 予約語の数がどうの言う奴は馬鹿 それよりCのように名前空間が無い言語を使ってシンボル名が衝突する方が問題
845 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 02:52:55 ] COBOLは酷いよな…ライブラリまるごと予約語にするから予約語の数がおかしなことになってる
846 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 08:16:05 ] emacs lispは酷いよな… hoge-moge-hage-sage-pとか 名前空間の力は偉大だよ