トップページ⇒tech
854コメント333KB

オブジェクト指向は戦場では必要無し その3

■ このスレッドは過去ログ倉庫に格納されています
0001うつつつつNGNG
前スレがめでたく止まったようなので、その3
引き続きOO厨とアンチOO厨の血で知を笑う戦いきぼ。

その1 http://pc.2ch.net/test/read.cgi/tech/1011997945/
その2 http://pc.2ch.net/test/read.cgi/tech/1013266554/

0655644NGNG
>>654
 色々かな。

 デバッグが終ったソースで弄るのがメンドクサイ時はアセンブラソース吐かせて、
 スタックフレーム弄ってコルーチンにしてる。
  つまりクラス内にスタック用のエリアを取っておいて、BP/SPをそっちに切替えておく
 で、PutDataとかのメソッド内で これをもう一度切替えるというか交換するようにする
 でも、API呼び出しがメソッド内であるとダメね

未デバックだとそんなこと毎回やってられないから なんとか書き換えるけど
0656デフォルトの名無しさんNGNG
再利用ねー。
再利用なら昔からしてるよ。ライブラリとかいう形でね。
あとはパターンだね。考え方、テクニックの再利用。
ソースコードの再利用は考えないほうがヨシ
XPとかの本でも、そう言ってるし。
0657デフォルトの名無しさんNGNG
>>644
http://www.eiffel.com/doc/manuals/technology/concurrency/CONCURRENCY.html
0658デフォルトの名無しさんNGNG
マイクロソフトはOOで再利用できんかったから
新しいOSリリースするたびに一から作り直してたんじゃないのか?
0659デフォルトの名無しさんNGNG
>>658
> 新しいOSリリースするたびに一から作り直してたんじゃないのか?
Windows NT 3.x, NT 4.x, 2000, XP と全部スクラッチから書いたっつーことは
あるまい。
0660デフォルトの名無しさんNGNG
OSは基本的なデータ構造はあんまり変らないから
フルスクラッチなんてことはあるわけない。
0661デフォルトの名無しさんNGNG
.NET周りはフルスクラッチだろうけどね
0662デフォルトの名無しさんNGNG
JVMを流用してんじゃないの?
0663デフォルトの名無しさんNGNG
だとするとベンチマークは激速だな(藁
0664 NGNG
オブジェクト指向が登場するまで、プログラマーは再利用と言う事を知らず、
プログラムを組むたびに1から作りなおしていたのです。
オブジェクト指向の登場で初めてプログラムの部品化、再利用が可能となりました。

0665デフォルトの名無しさんNGNG
>>664 そんな夢を見たんですね?
0666664の続きNGNG
プログラマーをオブジェクト指向に移行させようとすると大抵の場合
素直に受け入れてくれません。
多くのプログラマーは具体例で示しても
「そういう事は今の言語でもできる」などと躊躇して技術を学ぶ姿勢を
見せません。
何故こういう事態になるのでしょうか?
それは旧来タイプのプログラマーは職人気質の人が多く、
ソフトウエアの生産性・再利用には無関心だからです。
オブジェクト指向はやる気のある人間の居る会社でしか受け入れられないという
壁に突き当たっています。
日本のソフトウエア産業の振興の為にもこうした壁を取り払わなければ
なりません。



てな事をOO初期のセミナー屋は言っていた。
詐欺だつうの。
0667デフォルトの名無しさんNGNG
フレームワークを利用する事を再利用と呼んでないか?
それなら clibを利用する事も再利用だぞ
0668 NGNG
>>667
再利用で生産性上がってないの。
FWは商売になってないし。
0669デフォルトの名無しさんNGNG
>668
思いっきりなってんだろ
FW自体が無料と商売になってないはまったく別だぞ
0670デフォルトの名無しさんNGNG
>>666
本当の理由
1.既にシステムを作る方法を一つ手に入れていて、それを使えば
困らないのに、今更新しいものを覚えるのが面倒くさいから。
2.胡散臭いから

1はともかくとして、2は、今まで実務の実績も経験もないくせに
偉そうにOOを語っていた詐欺師紛いのエバンジェリストなヤツラ
の責任だよな。金だけ湯水の如く請求するくせに、コストパフォー
マンス悪すぎなヤツラ。さらに、成果が出ないのを客の能力の
せいにするアフォ。そんなのばっかり。
0671 NGNG
引っかかるのはあの程度の嘘が見ぬけないアフォばかり。
0672デフォルトの名無しさんNGNG
アセンブラは大変というけど アセンブラもマクロを使ってライブラリをしっかり整備してれば
今の高級言語並の生産性はあった。 ただし熟練者ご用達って事。
0673デフォルトの名無しさんNGNG
ポータビリチーはどうすんだ?
0674デフォルトの名無しさんNGNG
>>873 ホントだよね クラスライブラリに依存してるOOPLでどうするんだろ
0675デフォルトの名無しさんNGNG
プッ
0676デフォルトの名無しさんNGNG
>>674
煽りにしても頭悪すぎ。
0677デフォルトの名無しさんNGNG
>>675-676

歩調乱すなよ!
もうちょっと我慢したらもっと大物が釣れたのにぃ。
0678デフォルトの名無しさんNGNG
>>672
>今の高級言語並の生産性はあった。
ネタ?
0679デフォルトの名無しさんNGNG
>>672
ライブラリをしっかり整備しないといけなくて、
なおかつ熟練者じゃないといけない
って生産性悪いって言わないか。
0680デフォルトの名無しさんNGNG
アセンブラ下<アセンブラ中<<<java下<=アセンブラ上<<java中<java上
こんな感じといいたいんだろう。
人数の分布は・・・・
0681デフォルトの名無しさんNGNG
OOの方が型からクラスと、考える対象の粒度が大きくなった分
考えやすくなったのでは?
あとOOならではテクニックあるし。

ライブラリに関しては昔も今も変わらずって感じがする
0682デフォルトの名無しさんNGNG
>>680
ありえない。
汗でhellowold書いてみればわかる。
汗のみでソフトウェア開発は無理。
特にx86は死ぬ。
0683デフォルトの名無しさんNGNG
汗でもマクロでごまかせる部分があるからじゃない?
でも上じゃないとねー
0684デフォルトの名無しさんNGNG
アセンブラでマクロを書いたら高級言語になりました。
0685 NGNG
そう言えばアセンブラは最初から隠蔽、カプセル化をサポートしてたね。>public
0686デフォルトの名無しさんNGNG
>>682
x86、asmでソフトウェア開発してます。但しwin32 + masm。
Cで書くのと殆ど差は無いです。
0687デフォルトの名無しさんNGNG
>>682
BIOS に文字列へのポインタ渡すだけだよ?
0688デフォルトの名無しさんNGNG
>>686
それは「私はCが苦手です」と言っているのと同じ事では?
0689デフォルトの名無しさんNGNG
>>688
ヒューレットパッカのスタック電卓って知ってる? 1+1を 1 ent 1 + って入力するやつ
会社の先輩にあれでなければ電卓使えない人がいるよ
Cのa=b+cで書くより アセンブラで考えた方が楽な人もいるって考えたらいいんじゃない?

アセンブラなら 上で出てる メインーサブルーチン関係に縛られない書き方も自由だしね
0690686NGNG
>>688
どれ位で苦手って言うのか知らないけど、win32プログラムは
基本的にAPI叩くだけだから言語は何でもあまり関係無いのでは。
特にmasmはあまりにマクロが強力で、Cで書くのと差は殆ど感じないよ。

まあC++は苦手だけどね。
0691デフォルトの名無しさんNGNG

>689
私もその一人、逆ポーランドというの。forthなんて言語も同じね。
実は慣れると、(1+2)*(3+4)みたいな演算が、読んだとおりに入れればいいのよ(1に2足して3に4足したものをかける-> 1 ent 2 + 3 ent 4 + *)。実に楽。

「アセンブラで考えたほうが楽」とは別の話。あなたがHPの電卓の背景にある体系を知らないだけ。

>688
そもそもCは高級アセンブラっていうぐらいだから、基本的には素養は同じ。
アセンブラも高級言語化してるしね。逆にアセンブラもかけないCプログラマのほうが問題じゃないの。
ただ、Intel系の場合、レジスタの個性を知る必要があるので、その意味では大きく違うが。
0692デフォルトの名無しさんNGNG
スレ違いっぽいけど、どっかのホームページで見つけてきたもののコピペ。

「プログラミング言語でみる性格判断」

* C

他人のプログラムは決して信じない。ライブラリは自分でつくるものだと思っている。

* C++

自己主張がなく、まわりに流されやすい。

* Java

俗物。熱しやすく、冷めやすい。

* BASIC

間違った基礎教育を受けた。もうやり直しがきかない。

* Perl

おたく。変態。奇才。

* AWK

詩人。夢想化。複雑な仕事には向かない。

* SmallTalk

理想主義者。現実を認めようとせず、箱庭に楽しみを求める。

* Prolog

論理主義者。哲学者。地に足がついていない。

* LISP

変人。協調性がなく、常に自分が正しいと思っている。

* COBOL

がんこで融通がきかない事務屋。すぐ昔話をする。時代に取り残されていることに気がついているが、自分ではどうすることもできない。

* FORTRAN

実験派の研究者。数学的・物理的な美しさは求めるが、プログラミングの美しさは求めない。

* FORTH

人間的な美しさよりも、機械的な美しさを求める。



0693デフォルトの名無しさんNGNG
>>692
CもC++もJavaもPerlもAwkもPrologも使う漏れって・・・
0694デフォルトの名無しさんNGNG
* C#  よらば大樹の陰
* Delphi 独立独歩
0695デフォルトの名無しさんNGNG
>>693
他人のプログラムは決して信じずまわりに流されやすい俗物。おたく、変態で地に足がついていない。
0696デフォルトの名無しさんNGNG
>>693
他人のプログラムは決して信じず、まわりに流されやすい俗物。
複雑な仕事には向かず、おたく、変態で地に足がついていない。

awkが入ってなかったヨ。
0697デフォルトの名無しさんNGNG
というか 全てのコンパイラは アセンブラの高級マクロだ
0698 NGNG
C# 一発狙いの詐欺師だが、時代を読む能がない。
0699デフォルトの名無しさんNGNG
* DQN C#を「C#」と全角英数で書いてしまう。
0700デフォルトの名無しさんNGNG
>* BASIC
>
>間違った基礎教育を受けた。もうやり直しがきかない。

これは性格診断か?(w
0701デフォルトの名無しさんNGNG
* 妄想君 どうでも良い事を既成のルールだと主張してしまう。
0702デフォルトの名無しさんNGNG
* 顔が真っ赤なDQN 「DQN」と全角で書いて欲しかったらしい。
0703デフォルトの名無しさんNGNG
>>692-702
asmが無いYO!
0704デフォルトの名無しさんNGNG
>>692
ここがマ板とム板に別れた頃にそんなスレッドあったよ。
0705デフォルトの名無しさんNGNG
asm
すべてを把握しないと気がすまない超管理主義者。付き合う人間は一苦労。
0706デフォルトの名無しさんNGNG
>>705
俺アセンブラ使いだけどOO的設計 管理が面倒だから
行き当たりばったりで思いついたところからかけるアセンブラが好き
0707デフォルトの名無しさんNGNG
>>706
>行き当たりばったりで思いついたところからかける

アセンブラなら許されるってもんじゃないと思うぞ。
OOPLだって行き当たりばったりにクラスを書くことは出来る。
0708デフォルトの名無しさんNGNG
行き当たりばったりプログラミングといえばXPだな。
0709デフォルトの名無しさんNGNG
その分テストファーストを徹底しますが、何か?
0710デフォルトの名無しさんNGNG
テストファーストを盾に行き当たりばったりを正当化されちゃったあ
0711デフォルトの名無しさんNGNG
リファクタリングも当然やりますが、何か?
0712デフォルトの名無しさんNGNG
テストファースト・リファクタリングを盾に行き当たりばったりを正当化されちゃったあ
0713デフォルトの名無しさんNGNG
過不足の無いプログラムが出来上がりますが、何か?
0714デフォルトの名無しさんNGNG
糞仕様でサッパリ使えないオナニー丸出しの
るーちん・くらす・こんぽーねんと
がでてきたあ
0715デフォルトの名無しさんNGNG
過不足の無いプログラムを盾に行き当たりばったりを正当化されちゃったあ… あら??
0716デフォルトの名無しさんNGNG
>>714
方法論ばっかやってる連中にありがちだねえ。
俺も一度見たことあるけど、全部捨てさせた。
0717デフォルトの名無しさんNGNG
>>715
藁
0718デフォルトの名無しさんNGNG
プロが一人でやったいきあがりばったりは なかなかバカに出来ませんて

最悪なのは複数人とか クロス開発でテスト環境がしっかりしてないとかで
 「この部分をブラックボックスとして」 
いきあたりばったりでやった場合だね。
0719デフォルトの名無しさんNGNG
二人で作業してくれとプログラム依頼されて、
一人がチンタラとクラス設計してるうちに俺がコーディング
始めて、結局おれがクラス設計が終わってないうちに
100%コーディングを済ませたことがある。
0720デフォルトの名無しさんNGNG
>>719

相方は719が作ったコードのクラス設計を理解した?
0721デフォルトの名無しさんNGNG
>>720
漏れのはクラスじゃない。
数千行程度のプログラムならサクサク書いたほうが
早いってことよ。
0722デフォルトの名無しさんNGNG
714の心配が現実のものになったわけか
0723デフォルトの名無しさんNGNG
>>721

今はそれで良くても仕様変更があったら719しかそのコードいじれなくなるよ。
そんなにサクサク作れるスキルがあるならペアプロとまでは言わないけど、相方に
設計を説明しながら作ればよかったのに。
0724デフォルトの名無しさんNGNG
>>721みたいなのは、ちょっとした使い捨てのツールを作らすのに、社内に1人くらい
いると便利。けど、よそ様にはお見せ出来ない。
作ってる暇があったら、先に仕様書書けゴルァ。
0725デフォルトの名無しさんNGNG
>>723 そんなもん仕様変更があったらまたサクサク作ればいいだろ?
  俺はこれ作ればそれで終わり。
  管理まで頼まれてねえや
0726デフォルトの名無しさんNGNG
>>692
SmallTalkじゃなくてSmalltalkね。

ところでSmalltalkもCもJavaもやる俺の場合は一体
俗物なのか理想主義者なのか、はっきりしてくれい。
0727デフォルトの名無しさんNGNG
>>726
> ところでSmalltalkもCもJavaもやる
ふつー、多言語を使う。
0728デフォルトの名無しさんNGNG
>>725

ところで、719がサクサクと作ってるのはどんな分野のプログラム?
0729デフォルトの名無しさんNGNG
SmalltalkとCとLispをやる俺は…
ただのプログラミング言語好きなだけじゃん
0730デフォルトの名無しさんNGNG
お答えします。
>>726
他人のプログラムは決して信じない俗物。
現実を認めようとせず、箱庭に楽しみを求める。

>>729
他人のプログラムは決して信じない変人。
協調性がなく、箱庭に楽しみを求める。
0731デフォルトの名無しさんNGNG
んで719が作るプログラムと同じように719自身も使い捨てられると。
0732デフォルトの名無しさんNGNG
一般的には731に同意。ちょっとましなマネージャなら使わないからね。
ただ、昔ファミコンのころのゲームのプログラムなんかは(今は知らないが)
売っちまったら二度と手入れられないので、中身はめちゃくちゃ。
とにかく納期に間に合わせてパッチ当てまくればよかった。
その時代なら719も生きる場所があったかも。
ちなみに開発はアセンブラ。
0733デフォルトの名無しさんNGNG
719じゃないけど、
まあ内容にもよるけど数千行ならクラス設計してやるような規模じゃないと思うが?

普通に構造化設計しながらコメント入れてはサクサクコード書いていけば
数千行ならデバックしながら7日もあれば書けるよ。
もちろんOOPL使えば構造化設計としてクラスも作るけどさ
0734デフォルトの名無しさんNGNG
行数だけでカタってる時点でアウト。
0735デフォルトの名無しさんNGNG
>>732
今だとプログラムの規模がでかくなっていて、プログラマだけでも最低 3 人、
多いと二桁って世界になってるから、

 中身めちゃくちゃ
 本人も把握してない

だと話にならんよ。
0736デフォルトの名無しさんNGNG
hello, worldを作るときに設計から始める奴はいないように、
数千行程度の小さなプログラムで設計をするのはどうかと思う。

まぁ新人ならば数千行程度の小さなプログラムでも
設計しといた方がいいと思うけど

0737デフォルトの名無しさんNGNG
>>733
数千行を仮に 5 千行としておくが、それで 7 日? 内容にもよるが、一日に
間違いのないコードを 700 行きっちり書き連ねていくのは、かなり辛いぞ。

設計を適当にすませるってことは、ある程度の行き戻りは覚悟することに
なるから、実質的に書くコードはもっと増えるし。

> 行数だけでカタってる時点でアウト。
全くその通りなんだが、まぁ、おおざっぱな話をするときには使える指標では
あるよな。(勤務評定で使ってはダメだが)

アプリケーションよりのコードで、同期やらなにやらが込み入ってない部分だ
と、俺は平均して一日 300 行(コメント、空行込み、修正や削減分は差し引い
て)ぐらいだよ。これがスレッドの同期が絡んだり、ハードウェアよりのプログラ
ムだと、さらに少なくなる。
0738デフォルトの名無しさんNGNG
>>733の「普通に構造化設計しながら」には、あるていど納得できる。
だけど、>>719のやり方とは、大きな差があると思う。
0739デフォルトの名無しさんNGNG
設計しないでダラダラ書いたら数千行になっちゃったプログラムと、
さらっとでも、しっかりした設計が出来てるから、数千行でコンパクトに
収まったプログラムの差、くらい大きな差かも。
0740733NGNG
まあ5千行だと7日は厳しいな。
千〜9千って事だから√(1000*9999) でおよそ3千行程度を考えてたよ

俺の場合は1日に、だいたい2千行くらい書いて、3/4捨てるような感じかな
関数・クラス単位にデバックして、動かなかったらさっさと捨てては作り直してるし
0741733NGNG
あ! でも俺の場合 1日って労働時間15〜6時間だった・・・鬱
0742737NGNG
>>741
納期直前はともかく、私は基本的に1日8時間しかコードは書かないなぁ。
それ以上は集中力が続かなくて、1 時間よけいにコードを書くと、翌日に
2 時間デバックする羽目になる(w

あまった時間は集中力のいらない書類整理とか、Web やメールを読んで
技術動向をチェック、なんて方に回してます。

> 関数・クラス単位にデバックして、動かなかったらさっさと捨てては作り直してるし
何が問題なのかをつきとめないと、また同じミスを繰り返すぞ。人が書いた
コードを回収しているような場合には

 「腐ったモジュールは丸ごと捨てて、作り直しちまえ」

とすることはあるが、自分が書いたコードではさすがに無いよ。
0743デフォルトの名無しさんNGNG
>>742
> 私は基本的に1日8時間しかコードは書かないなぁ。
え?デバッグする時間は?
コードを書く時間ってそんなに必要ないでしょう。

プログラムを書く場合に必要な時間って多くの場合、
設計とデバッグ。
0744737NGNG
>>743
ああ、設計・実装・テスト・デバッグ含めての時間だよ。

最近は実装・テスト・デバッグはスパイラルにやってるから、個々の時間は
記録に残してないです。
0745デフォルトの名無しさんNGNG
1分で5行しかタイプしないとして 300行 は1時間もあれば
書けるんだから、そんなもんじゃないの?
0746デフォルトの名無しさんNGNG
まあ色んな方法があるよな 他人の仕事みてたらさ

デバッカで延々トレースしたり悩んでるの見たら さっさと作り直した方が楽だろうにと思うし
こんだけ動いてるなら作り直すよりデバックした方が速いだろうにと思うし
0747デフォルトの名無しさんNGNG
あ、おれ、腐ってなくても捨てるコード、いっぱいあるなぁ。
でも、捨てる前に、ちゃんと動作することを確認してるけど。
0748デフォルトの名無しさんNGNG
抽象度の低い言語=アセンブラに近いほど デバックするよりコメント残して再構成する方が効率良くなるな

0749デフォルトの名無しさんNGNG
>>748
データフローを中心に考えるプログラムならば再構成でなんとかなる。
で、短いプログラムにはデータフロー中心で考えるものが多い。
0750デフォルトの名無しさんNGNG
>>745
実際にプログラミングして、作業記録をつけてみ。
0751デフォルトの名無しさんNGNG
>>745
タイピストとプログラマの仕事をごっちゃにしてないか?
0752デフォルトの名無しさんNGNG
漏れはアセンブラである程度の大きさの関数書くときは、途中で一息ついて
そこまでの条件書くようにしてる。たとえば、
# ここまででax,bxはフリー cxは処理済みのビット数 es:[di-1]までは処理済み
# ds:[si+bx]は全ビット処理済みでないことに注意
とか。
で、書きなおすときは、一息ごと(w にやるようにしてる。
0753デフォルトの名無しさんNGNG
> で、書きなおすときは、一息ごと(w にやるようにしてる。
その感覚は同感。

俺の場合は1日かけて完成できないクラスは
なんか間違っているということで、破棄することにしている。
0754デフォルトの名無しさんNGNG
俺は、インラインでないアセンブラで書く時はマクロで書くから、マクロ単位に一挙に書いてるな
■ このスレッドは過去ログ倉庫に格納されています