[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 05/09 13:11 / Filesize : 178 KB / Number-of Response : 847
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

消えてなくなれよ >オブジェクト指向 part.3



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とか
名前空間の力は偉大だよ






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<178KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef