1 :
デフォルトの名無しさん :
2007/12/28(金) 15:13:40 closure で十分じゃんよ
2 :
デフォルトの名無しさん :2007/12/28(金) 15:17:54
オブジェクト指向⊃クロージャ
TMで十分、コンビネータで十分と言ってるのと変わらん。 なんでもできるのはいいことじゃない。 人はときには縛ってあげないと間違った道を選んでしまうんじゃよ。
てst
そんな貴方にアスペルガー指向プログラミング。
クロージャでクラスを模す事は出来るけど、一々それをコーディング するのは面倒だし、出来たコードはコンパイラの支援も受けられず 非効率的。事前にクラスシステムをクロージャで用意しておくので あれば、それはオブジェクト指向言語と変わらん。
>>1 はオブジェクト指向がコーディングスタイルの一種だと
勘違いしている。
>>1 ではないが
>>9 > オブジェクト指向がコーディングスタイルの一種
ではない理由を説明してくれ。
>>9 ではないが、
コーディングスタイルは言語仕様が確定された上で、どのように表現するかの問題で、
オブジェクト指向は言語仕様の中にあるものだから、明確にコーディングスタイルとは異なる。
単なるコーディングスタイルならOOPLなんて言葉存在しとらんだろしな 場面を絞れば制約のための工夫/広義のコーディングスタイルでも十分な設計できる事もあるからな OOP慣れたらOOPLでなくてもカプセル化や似非private表現したりとかデザパタどこまでそれっぽく表現できるかとかやり始める馬鹿もいるし。いるっていうか、お
>>9 じゃないけど
Lisp系の言語にとってはOOなんて只のコーディングスタイル
の問題なんだが…
まあ C++ もコーディングスタイルの問題に済ませることもできるな。 でも、オブジェクト指向を仮定するといろいろな手法が導けるので、 コーディングというレベルでなくて、システム設計とかのレベルで考えるとメリット、デメリットがあるよな。 要するにチーム全員がオブジェクト指向を理解できるという仮定でシステム設計をするメリット。 ただ逆に、オブジェクト指向を理解できないプログラマというのが存在することを 考慮できるか否かが問題だとおもう。 構造型プログラミングの理解できないプログラマは排除できるのだが、オブジェクト指向を理解できない プログラマを排除できないのが今の世の中。
>>13 それこそまさに
>>12 が
> OOP慣れたらOOPLでなくてもカプセル化や似非private表現したりとかデザパタどこまでそれっぽく表現できるかとかやり始める
の典型例と思われ。
17 :
デフォルトの名無しさん :2008/01/19(土) 14:02:19
そう言えばさ、オブジェクト指向って現場で役に立ってる? オレオレオブジェクトまかり通ってて実質的には足枷になってる ケースの方多い気がするんだけど… つか、思ったことない? 「アフォはクラス設計するんじゃねぇ!!!」
>>17 > 「アフォはクラス設計するんじゃねぇ!!!」
このセリフには、本来オブジェクト指向は現場で役に立つという前提があるように思えるのだが。
JavaだろうがC#だろうが全然オブジェクト指向じゃないコードは書けるよ ていうか書く人がいる
>>18 「そのように考えていたときが俺にもありました」って、過去形な
>>20 ならば、「アフォはクラス設計するんじゃねえ!!!」のかわりに
「クラス設計するんじゃねえ!!!」と言うべきじゃないかな。
効率の良いクラス設計の方法論って無いの?
>>19 いるねー。ほとんどのメソッドがstaticな人とか。
万能クラスを作ってしまうってのが一番多いな
>>24 本当に万能なクラスなら、ぜひソース公開してほすいw
かなり万能ですよ ただし必要に応じて中にコードを追加するので成長し続けます
ときどき癌化するんだよな
28 :
デフォルトの名無しさん :2008/01/21(月) 01:20:57
>>25 神様クラスのことだろ
クラスは全部これを継承しろっていう
しかし、その神々しさに畏怖して誰も使わない罠。
万能クラスと万能ネギはどっちがより万能ですか?
概念的には万能クラスの方が万能だが、 それで飯をジェネレートできねーなら俺は万能ネギとりますねぇ。 あ、でも万能クラス一個あれば仕事全部やってくれんのかな。 揺らぐなぁ。
××があればほとんど全ての問題は解決する。 というキャッチフレーズに乗せられた人の如何に多いことか。 さあ、君も××に当てはめる言葉を考えて遊んでみよう!
お金があればほとんど全ての問題は解決する。
時間があればほとんど全ての問題は解決する。
真実の愛があればほとんど全ての問題は解決する。
愛>金 飯>愛 金>飯
推移律が定義できないので順序構造が成り立たない件
・飯は食べないと何もできなくなるし病気とか治らない ただし大金を掛ける必要はない。 ・お金があればほとんど全ての問題は解決する。 ・時間があればほとんど全ての問題は解決する。 だが効率が悪ければ十分な金は得られない。 効率良く真実の愛を得る方法もない。 ・真実の愛があればほとんど全ての問題は解決する。 ・お金があれば、ほとんどの真実の愛についての問題は解決する。 ただし、金で買えない愛もある。 また、効率を重視し過ぎると真実の愛と立ち向かえない。 以上の過程から重み付けを線形に評価すると、 金≦真実の愛(妥協含む)>時間>飯(ただし必須であることには変わりがない) 試みとしてはこんな程度だろうか。当然まだtransitibityを網羅できてる訳じゃなく、要素考察の礎に過ぎないが。
41 :
デフォルトの名無しさん :2008/03/07(金) 21:23:50
>>34 , 35
無限大の金と時間があれば, 物理法則に抵触しない限り
何だって解決出来ると思うんだよもん
# 心の問題は別かもしれんが...
無限の性能を持った仮想のマシンを使って 無限の時間をかけて計算するってことなら 昔の数学者がやってたが どうせなら無限の金より無限の才能が欲しい気がしなくも無い
「消えてなくなれ」というフレーズがジャンプの漫画みたいで恥ずかしい
ハ,,ハ ( ゚ω゚ ) 男割します / \ ((⊂ ) ノ\つ)) (_⌒ヽ ヽ ヘ } ε≡Ξ ノノ `J
45 :
デフォルトの名無しさん :2008/03/10(月) 23:12:45
ごめん聞いていい? javascriptってオブジェクト指向?
var HogeClass={ fuga:function(){ }, hage:function(){ } }; constructor/destructorが使えるのかどうかは不明 ああこれはstaticmethodだけか
var hoge = {};
と
var hoge = new Object();
が等価
function が関数オブジェクトで引数を取れ、クラス代わりに使える
var hogeclass = function(a, b) {
this.a = a;
this.b = b;
};
var c = "hoge", d;
var hogeobj = new hogeclass(c, d);
//alert(hogeobj.a); //=> "hoge"
>>48 > ああこれはstaticmethodだけか
ちと違うような。
50 :
デフォルトの名無しさん :2008/04/19(土) 23:08:10
OO = クラスが無限増殖するだけの糞手法
フロー制御やコーディング手法というのは、構造化プログラミングの話だろ
オブジェクト指向は、ライブラリ構築手法だと思うんだが
それはともかく
>>4 が、マゾであることは、火を見るより明らかなんだ
なんせ、縛って欲しい人なんだぜ
>>48 はクラスとグローバルオブジェクトの違いがわかっていないアフォ
オブジェクト指向的に美しいプログラムとか、 オブジェクト指向的に正しい記法とか、 それで生産効率が下がったら目も当てられないよなぁ
OCPとかLSPとかを忠実に守ると、 爆発的にクラスは増えるし、ウザいことこの上ないな 適度にグローバル変数とか使ったほうが、生産効率上がることが多い
釣るなよ
オブジェクト指向って、プログラマの半分は理解してないでしょ?
理解していない奴? 95〜98%くらいだと思うけど。
なんだその程度か
理解できてる人間なんて世界中に100人も居るだろうか? って最近思うよ。 俺はもちろん理解できていないが、他人が理解できているかどうかは分かるつもり。 OOという言葉と概念を知って20年近く経つけど、 「この人はOOが理解できている」なんて思わせる人間には一度もあったことないよ。
>>60 まずは、近所のコンビニまで出かけることに挑戦しよう。
そしたら次は駅前まで買い物だ。
こうやって順に慣らしていくことで君もヒキコモリを卒業できる。
>>60 少し違う。OO自体には宗派(笑)が少なくとも三つある。教祖が三人以上いるつうことだ.
そしてそれぞれの宗派の理解度は層を成して存在する。
当然ながら、それぞれの最上位の理解者は教祖様(笑)だよ。
宗派は何ですか?
>宗派は何ですか? えーと、スンニ派(多数派)はどれなんでしょうか?
いったいどの宗派を信じればメシアが救ってくれるのだろう。 エッ、自力本願だから自分で努力するしかないの?そんなあ・・・(w
禅宗系だと、OO知れば知るほど何も判らなくなっていくんだろうな 色即是空 空即是色 一生悩み続ける運命
>>65 で、頓悟するわけですよ。「OOとは結局、糞コンサルと糞教祖の金脈でしかないのだ」とね。
迷えるプログラマ達よ。あなたはOOを信じますか?
OOは宗教か技術かと問われれば、俺は宗教だと答えるね。
OOは企業の陰謀だよ 企業の陰謀にちょうどよかったから利用されたのさ
オブジェクト指向は必要ないと? んなー
必要なところだけ使えばいい。
OOはどの経典を読んでもわかるようでわからない。 いくら説明されても空の意味がわからないのと同じようなものかもしれない。 しかし、空の意味がわからないと悟れないのでわかるしかない。 同じようにOOがわからないとプログラマは救われないのである。 修行するぞ、修行するぞ・・・・・・・・
経典やら宗派によって概念が違うみたいだからね。
言葉では説明できない。だから本読んだだけでは駄目。 OOは教えることはなく、各人がOOを学び得ることを目的とする。 ・・・やはり宗教だね。
>>75 まさに自分で修行して悟らなければいけない小乗仏教の世界だなあ?
すると創始者のアラン・ケイは釈迦か?(w
じゃあ、また写経(サンプルプログラムを打ち込む)でも始めるか?
心が落ち着くなあ・・・・落ちつかねえよ(w
なんかまたSmallTalkの本が出てたけど、変わりばえしないね。 あいかわらず宗教臭いし著者が出してるライブラリの宣伝っぽい。 立ち読みだけでパスした。
ぶっちゃけ、そんなに難しくはない
良かったね。で、それを周りの人間全員に教えることは出来るのかい?。
たこ焼きの鉄板を使って、 材料を入れて たこ焼きを作る こんな感じ つまり、鉄板をクラスで作り引数材料を加工してたこ焼きインスタンスの出来上がりだよね。 こんな感じの説明する人いるけど、混乱するでしょ。 はあ? って。
>>80 その説明でよくわかるぞ。
たこ焼きの作り方が・・・(w
タイ焼きで説明した例は目にしたことあるよ 重要なのはオブジェクト指向の設計であって オブジェクト指向のコーディングじゃないよ オブジェクト指向のコーディングをオブジェクト指向の設計だと 勘違いしてる人をたまに見かけるけど最悪だよね
形にばかりこだわって本質に目を向けないものは真の悟りを得られないと φ(・_・”)メモメモ えーと・・・・・どこの宗派かな?
オブジェクト指向をキッチリ理解していないと、 オブジェクト指向のコーディングなんてできん。 ってことですよ
オブジェクト指向って、オブジェクト指向の設計を肉付けしながら、 コーディングしてるから、コーディングも設計も同時進行なのであった。
オブジェクト指向言語の文法をしっかり記憶してオブジェクト指向を理解した気になる。 長いこと記憶重視の受験勉強していればそういうことになるよな。 だれか「試験にでるオブジェクト指向」とか「ここだけ押さえれば大丈夫。オブジェクト指向の傾向と対策」とかいう 本をだしてやってくれ(笑)
>>85 それは・・・オブジェクト指向の目標の一つであったかと思うが。
本当にそれが実現しているのかい?
「自分だけ」という状況でも立派なもんだが。
利用する側から作るので、クラスやプロパティやメソッドが先に列挙され、インプリメントが後から埋まるよ 前者を設計、後者をコーディングと呼んでるよ 名前も重要だよね IOPtrって何を担当するクラス? 想像しやすいネーミングにしようよ
>>77 黒くて厚い本?スモールトークの真髄というわりにはライブラリを使った話ばかり。
文章もなんだか無理に分量を稼いでるかんじだし。同じぐらいの厚さのスクイークの
白い本のほうがいいと思った。
消えて無くなれ? 魔法か何かで本当にオブジェクト指向消すことができたらどうなるのかなあ? オブジェクト指向が無くなればオブジェクト指向で開発したプログラムは存在しなくなるから 世の大半のプログラムは無くなるなあ? そりゃあえらいこっちゃ・・・・・・・
>>90 > 世の大半のプログラムは無くなるなあ?
組み込み舐めんなVC++厨。
組み込みって、スイッチのオンオフに毛が生えた程度でしょ?
毛がボーボーで元のスイッチが見えません
エーンベデッド エンベーデッド エンーベデッドおおー
スイッチのオンオフに毛が生えていないノイマン型コンピューターは全滅した! 「ぐふふ、これで勝ったと思うなよ。ぐふっ」 いんてる の しにがお は やすらか だった……。
あ、ノイマン型ではないってことか。 もめん。
98 :
デフォルトの名無しさん :2008/08/29(金) 22:53:22
消えてなくなれよ>オブジェクト指向わからない奴
99 :
デフォルトの名無しさん :2008/11/09(日) 18:24:28
>>98 激しく同意! (←セリフ古いなw)
オブジェクト指向のメリットとして重要なものに、SE/PGテロの撲滅がある。
意図的に難読化、スパゲッティ化したプログラムで利権維持と工数水増しを図ろうとする
部落団体に支援されている派遣請負SE/PGの追放。
これは、クライアント企業の担当者や経営幹部、更には派遣元会社にも設計ドキュメントや
ソースコードが理解困難になる仕組みを悪用して寄生し、正規社員も苦虫を噛むテロ行為。
オブジェクト指向による高度な抽象化を行えば、上流から下流へは粒度だけの違いになり、
役員や幹部にも判りやすい記述になるので、従来のSE/PGのテロ行為が無力になるという
とても大きなメリットがある。
100 :
デフォルトの名無しさん :2008/11/09(日) 19:55:27
101 :
デフォルトの名無しさん :2008/11/09(日) 20:56:24
まあ俺みたいな天才じゃないとオブジェクト指向を使うのは難しい
102 :
デフォルトの名無しさん :2008/11/09(日) 21:05:10
>>99 お前マじゃないし、しかもかなりできの悪い人間と見た。
底辺より悪いんじゃないか?
先生、ネタにそういう反応は無粋です
>>99 作為的にソースを理解困難にする事とオブジェクト指向とは何の関係もないよ
ソースにコメントを記述するだけで実際動作しているコードが読みにくくなるだろ
105 :
デフォルトの名無しさん :2008/11/09(日) 21:22:48
>>104 はははw、確かに偽コメントは「マ」にとって最高のオナニーだし威力あるだろうなw
ソースを保存し終えた途端に不敵な笑みを浮かべ、「グフフ・・・」と笑ってる「マ」の
姿は不気味で異様w 他人事として見るなら面白い。
OOで実装するのはいいと思うが、 OOで設計するのはどうかと思う。 レベルが低い奴にやらせると、抽象化が不十分なモデルを組んできて、 しかも仕事の流れ上、それに逆らえなくなってしまう…。
なんか手順が違うな 要件が不足してるから不十分なモノができるんだろ?
>>106 そうそう。「実現不可能な実装のやりかけ」を設計と称して押しつけてくるw
オブジェクト指向は悪の枢軸
マルチパラダイム言語で使用可能な道具の一つ って程度でいいよ 無くなれとまでは言わんけどOOが全てっていうのはちょっと
わざわざクラスにしなくていいものまで クラスにしなければいけないキモさが嫌だ かといってオブジェクト指向コードとそうでないコードが 混在してるのも読みづらくて仕方ない つまりオブジェクト指向そのものが生理的に受け付けない
112 :
デフォルトの名無しさん :2008/11/10(月) 22:54:15
>>111 おまえオブジェクト指向理解してないだろ
C++で構造体の配列をつかわず、 クラスのvectorつかうって普通?
C++では配列は要素数固定なので それで困る場合は vector 使うのが当然だろう。
Javaみたいな"融通の効かない"OOPLだと デリゲートがなくてちょっとした亜種でも派生する必要がある 無駄なクラス増殖はいずれDRY原則の破綻を招く プログラミングの入り口がJavaの人って、どんな言語でも無駄にクラス作りまくる傾向があってウザい JavaのOO思想をOOのあるべき姿として布教されてるうちは「OOは生産的」論には賛同しねえ よく見るJavaOO脳のミス ・安易に継承しまくってクラス増殖→仕様変更に弱くなる(熟練でもよくある) ・特殊な状況でも無理矢理デザパタを馬鹿正直にあてはめる(慣れてきた人によくある)
>>115 過剰継承もオープンプロテクトの一技法なんですね、わかります。
オブジェクト指向って元々は、基本的に同じ性質を持つ複数の実体を個別に扱う ことを容易にするという発想から発展してきたんだけどなー。多数の個人情報とか 多数の契約書とか、多数の図形とか。。。 クラス定義はそのオブジェクト指向を表記するための便宜上の概念なんだけど、 オブジェクト指向の情報源は真っ先にクラス、継承などから説明して混乱を与えて いるよな。
>>116 お前の世界だけの造語使われても意味がわからん…
>>115 >JavaのOO思想をOOのあるべき姿として布教
そんなこと言ってる脳足りんがいるんですか?
>>119 いくらでもいるだろ…
新人教育やってる奴に目を向けてみろ
C++やOcaml的な使える所だけOOというのがあるべき姿…と
>>121 どこにそんなことが書いてあるのか小一時間(ry
小一時間お茶しますか?
OOって結局コンパイラ様に重要なことを任せて 思考停止してるだけだよな
マクロって結局コンパイラ様に重要なことを任せて 思考停止してるだけだよな
マクロの挙動は定義を見れば分かるが、 テンプレートだの多重継承だの多用した結果 コンパイラ様が出すコードを想像するなど変態の技だ だいたい、STLをまともにコンパイルできるコンパイラ なんてないんじゃね?(笑)
STLやるぐらいなら 自分で言語作るわ
STLとオブジェクト指向の関係って?
OOPLとしても使用可能なC++の標準ライブラリの、さらに一部。 …関係ないと言えよう。
もうC++はOOPもできるテンプレート志向言語とか公言して良いんじゃないか
リレー回路はオブジェクト指向だよね
全然。
>>133 メッセージを伝えたら、バルブの開け閉めやら、過電流保護やら、照明やらしてくれるんだぞ
ハードウェアすべてが該当する件について
要はfacadeとかinterfaceというものなんだろうけど それってOOPなの?
>>135 テレビの電源スイッチは、テレビの電源スイッチとしてしか使えない
分解して取り出せば別の用途に使えるが、取り外されたスイッチは既にテレビの電源スイッチじゃない
リレー回路のスイッチは、ポンプだろうがバルブだろうが関係ないONとOFFを制御するだけ
なんというgenericity…
>>137 >テレビの電源スイッチは、テレビの電源スイッチとしてしか使えない
ラジオの電源スイッチにも使えますね。
>>139 それは、ラジオの電源スイッチで、テレビの電源スイッチじゃない
仮に、テレビとラジオの機能を持った機械のスイッチだとすれば、それは、テレビの電源スイッチとは言えない
ラジオ機能付きテレビ(もしくは、テレビ機能付きラジオ)の電源スイッチだ
リモコンそのものはインスタンス。 Sharpのテレビを買ってきたら、付属するリモコンはその機種にしか使えない。 Sonyのコンポを買ってきたら、それに付属のリモコンはそれにしか使えない。 リモコンという抽象があって、リモコン付きの機械という抽象がある。 こういう考え方はどうでしょう?
>>141 抽象度が甘い気がする
むしろ、アンプやスピーカーなどバラバラに買ってくるコンポとか
AVシステムの方がオブジェクト指向だよね
現実の物引っ張ってきてオブジェクト指向だって言い張るのと、 それをオブジェクトモデルとして捉える(捉えられる)ことは違うんじゃないかな
リモコンはユーザインターフェースだけにインタフェースだね(そのまんま ところで甘いっていうのはどういう程度を指すの 論理学の言葉を使えば弱いとか強いとかあるよね ベン図で考えると狭い、広いとも言える さて抽象度が甘いというのは 1.適用できる範囲が広すぎる 2.さらに汎化できる余地がある どちらを指すのでしょうか?
リレー回路は、インターフェイスを継承して新しいインターフェイスも作れるし 動作内容も変更できるよ そもそも、ハードワイヤードなプログラムだから
>>142 それはコンポーネント指向っていうんだお
>>137 あのな, on/off を伝えるメッセージ発信源としてかんがえるんだ
つか、オブジェクト指向ってハード屋がやってきたことの
*****劣化コピー*****
以外の何者でもない!!!
オブジェクト指向の利点は仕様をそのままクラスに反映できるってただそんだけだと思うな ひねった抽象化したりしたらその時点で詭弁を使いだすイカレタ同僚と変わらないわけで 抽象化すればするほど利点が消えていくと思う 情報の共有化っていうの? 自分は他の誰かと仕事してるって感覚を身につけないと 一生わからんままテンプレート弄ってるC++厨房と同じ道たどると思う
すっぽすっぽ先生の論文読んでから出直してください
あれだ、100%理解しないといけないと思ってるやつが駄目だ。
なんかへん
OO原理主義というか、シミュレーション主義なやつらがクソ。 現実世界をコード化、みたいなことに固執するやつら。 すなおにOOPしてればいいのに。
現実世界はどうでもいいから 仕様書とクラスが1対1になっていればいいよ サブのクラスはサブでコメント書いておきゃいいけど とりあえず仕様書とプログラムがまったく一致してないような設計はダメだ 仕様書に書いてある物体ぐらいはオブジェクトにしてないと オブジェクト指向の意味がまったくない
156 :
デフォルトの名無しさん :2009/02/28(土) 02:59:49
ようは入力の受付窓口と出力の出口の形を明確にする方法だろ? と入門2ヶ月の俺が知ったかぶってみる
157 :
デフォルトの名無しさん :2009/02/28(土) 05:42:15
158 :
デフォルトの名無しさん :2009/02/28(土) 05:44:11
オブジェクト指向を徹底すると可読性が著しく下がる件
160 :
デフォルトの名無しさん :2009/02/28(土) 10:47:55
オブジェクト指向の最大の功績は・・・ 素人をプログラミングから遠ざけたこと。 OOPLだと、思いつくまま適当に書けばそれなりに動くプログラムが書きにくい。 だから、昔だったら自分でプログラムしたであろうような事でも プロに依頼して、金を恵んでくれる。 そう考えると、シェルスクリプトで何でもかんでもできてしまう UNIX/Linuxは職業プログラマの敵なのだ。
自称オブジェクト指向マスターって 引数中心で考えることを避ける人が多いような感じがする しかもそういう人は「そこで発生させるべきでない副作用」をあちこちに散りばめる
副作用はCの文化だろw
ミスリード工作乙
>>161 それ、ただ単にOOが体得できてない「自称」OOマスターでしょ。
オブジェクト指向をもう少し機能や適用を限定させればいいんじゃないかな。 なんでもかんでもクラスにしないでこれはクラスにしなければダメだというものだけクラスにする。
おもしろいよね。 一人でプログラム組んでるときはC++の何でもできるってすごくうれしいのに チームでプログラム組むことになるとマルチパラダイムの弊害が猛烈な勢いで襲い掛かってくる。
>>166 あのさ、class ってのが良くない
他人が作った class はドキュメントさえしっかりしてれば一応使えるけど,
現実には, ドキュメントはないわ, 抽象はでたらめだわ… で, どうしろとorz
Unix 系の C ライブラリの方が遥かにかわええわ!!!
「ええわ」でなく、「かわええわ」なのがふいんき(なry)でてる 70点
>>164 検討違いなツッコミどうも。
その自称オブジェクト指向マスターを沢山産んだのはオブジェクト指向自身なんだよ
カプセル化を言い訳に利用者の意図しない副作用を埋め込む奴多すぎ
本来意図されていた意味と違うとはいえ、カプセル化という言葉を広めてしまったオブジェクト指向の罪は重い
TDDがBDDに生まれ変わったように、オブジェクト指向も新しい何かに生まれ変わるべきだろう
>>169 > カプセル化を言い訳に利用者の意図しない副作用を埋め込む奴多すぎ
んだんだ!!!
オブジェクト内変数は呈の良いグローバル変数以外の何者でもない
get* とか set* の * にオブジェクト内変数名が使われているような
メソッドを大量に書く奴は、クラスを抽象化する時点で敗北してる
オブジェクトを現実世界のメタファーとして抽象する奴等は
*死* *ね* *ば* *い* *い* と思うよ
なるほど、そのへっぽこって君のことだったわけか。そりゃ見当が外れてた。 余計な副作用を残すのって、OO初心者がよくやる間違いだよね。 それを称してOOの罪というところがマヌケっつーか、、、、アホ?
>>170 で、そのオブジェクトはグローバルに参照できるの?www
174 :
173 :2009/03/01(日) 10:53:50
>>172 >>170 ではないけど
>で、そのオブジェクトはグローバルに参照できるの?www
それはできないけど
メンバを大量に作るとグローバル変数と変わらない動作をするってのは俺はわかる
1クラスが異常にでかいソースにあたったときに苦労した
void setEdit()
{
transXXUnkoUnko(m_Bom);
}
void setEdit(int bom)
{
transXXUnkoUnko(bom);
}
単純に書くとこんな違いになるんだけど前者は追えるけど
後者はまったく追うことができない
>>175 しかし参照による相互作用はオブジェクト内におさまるよね?
プログラム全体がグローバル変数でガチガチに結合されるのと、
一応はオブジェクト単位に分離できるのとで、どっちがマシだと思う?
>>175 > void setEdit()
セッターがこのシグネチャってのは全く理解できないんですが。
> void setEdit(int bom)
1つのセッターで1つのメンバ変数にアクセスすることのどこが「大量」なのかサパーリ。
>>172 グローバルに参照したいから get* とか set* なんてアクセッサ作ってるんだろ
じっさいに名前空間切り替えることもせずに無節操にアクセスしてるしwW
>>176 そりゃたしかにグローバルにしてしまうよりはいい
でも、そういうダメなものとどっちが・・・って議論をしたいんじゃなくて
そもそもこれってどーなのよ?
って言いたい
181 :
デフォルトの名無しさん :2009/03/01(日) 17:35:03
182 :
デフォルトの名無しさん :2009/03/01(日) 17:45:53
昔、4つか5つの処理があれば何でもできると聞いたが、 オブジェクトはなんでこんなにややこしいの?
>>182 オブジェクトがややこしいんじゃなくて、
君の脳細胞が未分化なだけ。
>>180 それがわかれば、あとはオブジェクトの粒度を適切に設定すればいいんだ、ということに気付くはずだが?
つぶどってなんなんだぜ
>>184 粒度の問題なのか?と問いたい
だったらグローバル変数・関数だって小さいうちはアクセスしやすいし便利なだけだろ?
ただ、そのプロジェクトでの増加量を誰も予測できないから
やっぱりおかしくなってしまうわけで
俺がどう考えてるかというと
基本的にはメンバ変数ってのはダメなんだと思う
!?
クラスとインスタンスの違いが分かってない子の気配。
>>171 一人でコード書いてりゃいいニートと一緒にしないでくれよ
仕事でプログラム組む時は複数人でやるのが当たり前
お前の理想は現実とはかけはなれてる。そこわかってる?
>>184 他人が書いたコードも君は全て責任持って修正できる?
>>184 そこに明確な基準は無いよね
重要な部分を個々の考えに任せる時点でダメ
メンバ変数が追えないというヤツは関数内やファイルスコープ内の静的変数にもハマるだろう。
>>186 メンバ変数とグローバル変数とは全然違うぞ...
クラス内では、まるでグローバル変数のように見えるけどな
オブジェクトがたった一つなら、名前空間内のグローバル変数だけど、複数あったら事情が違うが。
>>191 個々の考えと言ってるうちは、何も理解してない
ということになってしまう。
だけど実際はクラスは大きくなってしまうわけで そうなるとグローバル変数と変わらない動きをする グローバル変数も管理できていれば問題はおきないってのは一緒なんだよね でかいだけじゃなくて、1つのクラスを3つぐらいの使い方ができたり、 呼ぶ場所によって挙動を変えてるようなのもかなり複雑でまずい
>>196 int a, b;
としたとき、aとbの数値は連動するの?
a = 1;
としたら、bも1になってるの?
巨大化するクラスは、何かがおかしいと思うの...
俺みたいなニートなプログラマが気まぐれで作っているならともかく、プロが仕事で作っているのに1つのクラスが巨大化したら駄目でしょう
>>195 明文化された明確な基準のソースを示した人でなきゃそのセリフは吐けないはずだけど…
そうでないのに何コレ
グローバル変数と変わらないって言ってる意味が全く分からん アクセサ経由でメンバ変数にどこからでも参照できるから、みたいなアホな意見?
staticか非staticかに関わらず複数メソッドから直接見える変数が存在することがダメって話…かと思いきや 違うのか ちがわなければ同意
>>199 違うんだよ
1つのクラス内の関数同士の話
>>199 メイン関数まで内包してるような
超巨大クラスを想像しろ
メソッド同士が呼び出しあって動作する
ローカル変数もスコープ内のどこでも使えるから一緒ですか分かりません
オブジェクト指向を知らないまま、オブジェクト指向した末の惨劇ですね
信者共はあえてアホレスのみを捕まえて袋叩きにしたあと、 痛いとこついてるレスまでついでにまとめて 理解できない奴が悪いで済ませようとしてるけど それでオブジェクト指向の暗黒面が消え去るわけじゃないだろ…
>>204 同じようになるよ
超長い関数で一番上でまとめて宣言されると
どこで使ってるかマジで不明
使う場所で適切に用意→破棄してくれと言いたい
でもC言語だとダメなんだっけ?
っていうかその前に長い関数作るなよと言いたい
ラッパークラスなんか超長い関数と同じ 生成期間も無駄に長い
ループカウンタとかどこで定義しようが何も問題無いだろ
忘れっぽいからさ。 使うところの近所で定義してもらわないと型とかあっさり忘れるんだわ。 老化が始まると全部関数の頭で定義なんてマジしんどい。
結局、メンバ変数を叩いてる人は、自分がプログラミング初心者ですと告白している、ということでFA?
>>212 俺はMiranda, Gofer, SML, HaskellとFPやってきたが、
>>211 に同意だ。
OOを叩いている側の人間に明らかな技量不足が見える。
毎回アンチをひとまとめにして叩いてるあなたが言っても 自演にしか見えにゃーど
>>213 自由変数&mutableベッタベタだったのか…
>>214 技量不足以前に妄想性人格障害か。お大事に。
気軽にOOPを持ち込もうとして混乱する者どもの存在は分かった。
>>215 へー、Mirandaでどうやってmutableを実現するのか、説明してよwww
このスレには 他人のクラスの粒度どころかライセンス的に修正不可なソースまで修正できる自称スーパープログラマ(笑) が沢山いるみたいだな BREWとかどうすんのマジで
>>218 できないから移行(挫折)したんだろ?w
メンバ変数ってまでに広げたら、それこそ状態量を持つオブジェクトすべて指すようになってしまうな 流石にそれは極論だと思うので、もう少し範囲を狭めて考えてみる。 「グローバル変数と同じ」という性質を「何処で誰が触っているかわからない」ということだと仮定すれば 恐らくパブリックフィールドの事を叩いてたんじゃないかなと考えている。
>>221 だとしても、そのオブジェクト自体がグローバルに参照されていなければ
メンバ自体がpublicでも「何処で誰が触っているかわからない」状態にはならないよね。
>>221 > 恐らくパブリックフィールドの事を叩いてたんじゃないかなと考えている。
じゃなくて、もっとひどい。
>>201 > 1つのクラス内の関数同士の話
↑このように、クラス、という静的な単位で困っている様子。
食べることが悪いんじゃない。
食べ過ぎることが悪いんだ。
メンバ変数が悪いんじゃない。
メンバ変数が多すぎたり、
クラス内の関数が多すぎたりでかすぎたりするのが悪いんだ。
そうか、全然読めてなかったよ 折角クラス内だけにスコープを止めても、そのクラス内がカオスだったら 人間が把握できない程度に複雑になる可能性があるという点ではグローバル変数と同じ と解釈した 「とりあえずクラスにすりゃなんとかなるじゃんw」っていうような安直なOOPに対する批判なのかな?
逆にアンチOOPに訊きたいのは、 プログラム全体が1つのクラスになってしまうような巨大クラスは問題だ、という主張なんだよな? まあ、それはそれでいいけど、 (1) そもそもクラスにしないで関数や手続きとして実装しても同じ問題になるし、 関数や手続きとして実装してうまくいくのなら、それをそのままクラスにしても、 それなりにうまくいくのでは? (2) その巨大クラスのインスタンスは何個できるの? もしインスタンスが多数できるのなら、参照関係の複雑さも多少は整理されているのでは? ぜひ答えてほしい。
多少複雑さが軽減されるからといって、 把握できないぐらいのものが把握できないぐらいのものに変わっても意味ないよね。 OOPを使って複雑なものを人間が把握できる程度まで落し込めるような使い方じゃないと、 同じどころかOOAのコストの分だけ損になると思うよ。 こんな考え方でもアンチOOPになるんですか?
アンチはしらんが、どっちで実装しても同じならわざわざ手間のかかる 手段をとらなくていいのでは?
>>227 手間かけていないから巨大クラスになるんじゃねーの?
巨大クラスを作るってのは、オブジェクト指向が必要だとか不要だとか言う前に 構造化プログラムとは何かから始めないと駄目だと思うの
>>229 > 構造化プログラム
以前の問題で、
「自分が何をしなければならないか?」
の、分析ができてないんとちゃうん?
「作らんとあかん物の分析をやってない」
としか思えんのよ
つまりほとんどのプログラマはOO以前に構造化すら満足に出来てないと。
やはり構造化よりオブジェクト指向の方が頼りにされていたクライアんトとの戦いで おれは納期に遅れてしまったんだがちょうどマネージャがわきはじめたみたいでなんとか耐えているみたいだった おれは家にいたので急いだところがアワレにもCプログラマがくずれそうになっているっぽいのが携帯で叫んでいた どうやらプログラマがたよりないらしく「はやくきて〜はやくきて〜」と泣き叫んでいるチームメンバーのために俺はオブジェクト指向を使って普通ならまだ出来ない時間できょうきょプログラミングすると 「もう出来たのか!」「はやい!」「きた!オブジェクトきた!」「メインプログラマきた!」「これで勝つる!」と大歓迎状態だった
クラス勉強し始めた初心者ですが、正直何でFunctionだけじゃダメなのか分かりません。 ・Functionだけでも資産は後に再利用できる ・1ページの表示で同じクラスオブジェクトを複数作成する必要がない ・いちいちオブジェクトを生成するのが面倒 それでもオブジェクトの方が便利と言う方・・お話聞かせて頂けませんか?
234 :
デフォルトの名無しさん :2009/03/02(月) 23:20:41
235 :
デフォルトの名無しさん :2009/03/02(月) 23:22:06
>>233 そのコメントみてるとたぶんwebやってるんだろうけど
それくらいならオブジェクト導入してもしなくても良かろう
クラスが巨大になりすぎるからとかいってるやつって、 関数が巨大になりすぎたり、グローバル変数をポコポコ作ったりするやつでそ
>>233 メンドイ。
とりあえず憂鬱なプログラマのためのオブジェクト指向開発講座を読んで、
なじまないと感じたなら以後はオブジェクト指向言語を避けろ
オブジェクト指向言語で無理に関数だけでプログラム組んでも馴染まないしな
言語の思想にあった手法を取るのが一番
避けようのない状況ならご愁傷様
>>236 > 関数が巨大になりすぎたり、グローバル変数をポコポコ作ったりするやつ
が、OO したつもりになると
「クラスが巨大になりすぎるので OOって意味ねぇ!!!」
言ってるじゃね?
コボラーのように罵られる存在になりたくないから皆必死にOOを守ろう
とりあえず比較的年配の方々で、やたら「オブジェクト指向」連発する人間は 信用できない。
>>235 ,
>>237 アドバイスありがとうございました。
ActionScriptもいつの間にかClassが使用され
周りの言語は、全部オブジェクト指向を取り入れて行っているような気がしてなんだか焦りますね。
そのうち、オブジェクト指向出来ない人は、ハイさようならになりそう。
「憂鬱なプログラマのためのオブジェクト指向開発講座」もちょっと読んでみることにします。
その他、効率の良いクラスの設計の仕方など、参考になる本はありますでしょうか?
>ActionScriptもいつの間にかClassが使用され 昔というか最初からClassだったよ 直接見えなかっただけで
今も昔もプロトタイプベースだよね>AS クラスベースちっくに書いたりパフォーマンスを得るために 文法とか内部実装とか工夫しているだけであって。
>そのうち、オブジェクト指向出来ない人は、ハイさようならになりそう。 っつーか良く出来たフレームワークは オブジェクト指向を特に意識しなくても だれでも使える構成になってたりするが
あー使う側の立場だけ考えるとそうだけど作る側ならあれだね
>>242 ,
>>243 ああ・・・そういえば、インスタンスを作成するって昔からありましたね。>AS
クラスを意識させない方向だっただけなんですね。
>>246 インスタンスを生成するのはクラスベースの専売特許ではない。
プロトタイプベースでもインスタンスは生成できる。
>>247 一個目のリンク先、わりと意欲的な文章だと思う。
OOPが分からない人々に対して、まず最初に、
インスタンスについて強調するのは大事だと思う。
>>246 , 248
というかそもそもAS1、AS2にクラスなんてあったのか。
AS2のclass宣言はprototype云々を書く手間を省くだけの
省略記法程度のものだと思っていたんだが。
>>248 インスタンスの無いプログラミング言語なんて無いだろう...
>>251 primitive typeの値は普通インスタンスとは呼ばない。
え゛?
>>251 Cには、オブジェクトはあるがインスタンスはない。
>>255 インスタンスは意識してプログラムしないと碌な事がないよ
特にC言語の場合...
schemaとinstance、classとobject、typeとvalue、他にもあるかな。 定義無しでインスタンスという単語を使いたいのであれば、ざっくり いって上記の組の右の単語を「インスタンス」の一言で括った程度 のものではないかと。 単語の使い方としての慣用は確かにあるけれども、きちんとした 定義無しに言語内での有無を論じられるようなものではないよ。
メモリ上の具体的な「オブジェクト」と、OOの「オブジェクト」は意味が違うだろ 後者は前者を内包することはあるが、一緒にして語ってる時点でおかしい
インスタンスとエンティティの違いについて教えてくだされ
classとentity
>>257 >きちんとした
>定義無し
だからこそ
>言語内での有無
は「言語仕様にあるか、ないか」しか言えない。
あれだ、「Javaにもポインタがある」つってる奴と一緒。
インスタンスって、オブジェクト指向云々に関わらず メモリ上で実行されているプログラムそのものの事を言うもんだと思っていたが
エンティティってなに?
オブジェクト指向をコーディングだけにあてはめようとする奴と、 分析・設計からを理解してる奴が話すと 当然ながら噛み合わないな
分析・設計から理解してると 普及するのは自然な事だと納得できるし、受け入れやすいんだがなあ
266 :
デフォルトの名無しさん :2009/03/03(火) 22:06:19
北大路欣也
1つの機能に関するファンクションを パッケージにできるだけでもありがたいのにな。 忌み嫌うわけが逆にわからん。
>>267 それはただのモジュール化との違いを説明できんのか
機能と状態をセットでパッケージ化できるわけで。
オブジェクト指向は、ウェブページだと利点を生かし切れない場合も多い気がする
構造化プログラミングの体質のままオブジェクト指向を導入すると、 必要とは思えないのは当たり前だ。 ジジババがネットの必要性を感じないのと同じ。
Webページのオブジェクト指向ってなんだ?Webプログラミングのことか?
>>268 検索機能なんかを考えればわかるのでは?
単純にモジュール化しても、ただの関数の集まりとしてしか扱えない上に、肝心な検索結果を保持する場所は人任せになる
クラス等を利用すれば、検索結果を中心に関数をモジュール化でき、検索結果の保存場所をどうするのか利用者が気にする必要が無くなる
>>273 それはただの抽象データ型でしょ
あとクラス使わないと出来ないなんてことはない。
例えば C言語のストリーム入出力だってファイルアクセスの関数を
モジュール化でき、ファイル管理データ(FILE型構造体)の保存場所を
どうするのかを利用者が気にする必要がなくなってる。
>>272 ホームページ作成でPHP等でオブジェクト指向を取り入れること
>>274 さらに付け加えれば、非標準ながら
fdopenやfmemopenによって多態性も実現できていると言える。
オブジェクト指向の必要性なんて、「IntelliSenceしやすくなる」で十分すぎるだろ。
あまりオブジェクト指向関係ないと思うよ。 型付けが静的か動的かの違いの方がでかいでしょ。
>>270 一番の原因は毎回接続しなおしてること
実際はCookieでごまかしてるが
httpのプロトコルが糞で
オブジェクト指向の普及を妨げてる
PL上の概念としての「インスタンス」の話をしているときに分析設計での「インスタンス」を持ち出されてもw
いや〜、HTTPをクソ呼ばわりするのは結構蛮勇が必要だと思うな。 何に対して憤っているかよく判らないけど。ステートレスなところ?
>>280 ひょっとしてHTTPリクエストを出す度にsynパケットが飛んでると思ってる?
285 :
デフォルトの名無しさん :2009/03/04(水) 11:17:39
Cでもできる系の話は聞き飽きた。 そりゃ、できるだろうよ。 C++の最初の実装はC Frontなんだし。 大事なのは、俺様ルールでバラバラな実装をするのか、 言語仕様による統一的ルールでやるのかということだ。
>>274 ファイルを扱うためには、少なくともFILE型が必要である
FILE型を扱うためには、専用の関数が必要である
それらの関数をFILE型に閉じ込めておければ便利だと思わないか?
file++とか、file--とか、file + nとかで、ファイルポインタを制御し
*fileでファイルポインタの位置にアクセス出来きたりした方が便利な気がしないか?
まあ、*をオーバーロードしちゃ美味くないけどな
>>273 >>286 は根本的にオブジェクト指向が分かっていない
コンポーネントにどういう責務を持たせるかが重要なのであって、
「ユーティリティクラスみたいなのがあれば便利だよね」、
とか言いだすのはインターフェースの切り出しができない奴の典型
>>287 何を言っているのか判らない...
検索オブジェクトが検索結果を持たないのが責務って事?
ファイルオブジェクトは、ファイルを扱わないのが責務って事?
出た! それでは、
根本的にオブジェクト指向が分かっている
>>287 さんに色々語ってもらいましょう。
phpって、元々classを使うことを前提に作られてない点がJavaなんかとは違うよね? こういうスクリプト言語が大普及しているから、オブジェクト指向使わない・・や 必要性を感じない人が多いんだと思う。
emacs lispなんてもうね…
ひどいオブジェクト指向の例なら、Perl 5に勝てるものはいないだろ。
>>290 単にカジュアルプログラマへの動機付けの問題であればそれも
答えとしては十分なんだけど。
設計論に対する意見の違いもあるし、プログラマの世代差とか
属人的な要素も絡んで実際はそこそこ根深い話だと思う。
1980年代だったか月刊ASCIIでオブジェクト指向を取り上げた
記事を読んだときには今でいうちょっと前のWeb2.0とかクラウド
みたいな胡散臭さをプンプン感じた記憶がある。
「次の波はこれ!ソフトウェア危機もこれで一発解決」みたいな。
オブジェクト指向って別に効率的じゃないじゃん。
かつて、「オブジェクト指向」という単語は「再利用」という単語と強く結びついていた。 特に出版界で。
>>294 効率的だし再利用によってプログラミングの生産性は劇的に向上する、
と「期待されていた」んだよ。
「21世紀には社会で必要とされるプログラマ数が世界人口を超える」
そんな危機意識が語られていた時代もありました。
オブジェクト指向の話題では、大別すると2つの内容になる ひとつはここにも多数存在する、言語うんぬんの話 もうひとつはオブジェクト指向根幹の分析・設計の話 オブジェクト指向の最大の利点は、 分析から設計、コーディングまでの設計外観を統一できるということ 分析や設計にオブジェクト指向を利用してこそ、 オブジェクト指向対応の言語を使うメリットがある そういうことを理解してない奴が、言語うんぬん言いだす 一番の問題は、分析者・設計者がオブジェクト指向を利用していないくせに、 要件定義の時点でなぜかオブジェクト指向言語を採用してること
オブジェクト指向って一つの作業を一つ又はいくつかのオブジェクトだけを使って行えるようにする為のもんだろ。 だからある程度の汎用性を持たせられるインターフェース、実装を考えれば使いまわしができる。 そうすると長期的な生産性が上がるってことだったと思うんだが。 だから適当に作ったり下手くそな設計だと逆に使いにくくて当然。
>>297 > 分析から設計、コーディングまでの設計外観を統一できるということ
できねぇよ
少なくとも, 時系列のデータを扱う場合、単純に、
「お前らが言うオブジェクト設計」
を、やったら負けだと思う
関わった中では、とろくて使いもんにならんものが………
ハード屋よろしく
「ブロック図書いて、各ブロックの機能要素求めて、タイミングチャート
書いて、デッドロック要素見つける」
程度の事前検証ゐしないと、納期までにまともな動作は期待できない
ものによったら、伝達関数とかまで出てくる現場ではあるんだが
>>298 インターフェースの設計が分かってないだろ
ある程度の汎用性を持つインターフェース、ってなんだそりゃ?
コンポーネント間でどうしても必要な場合に、
やり取りとしてインターフェースが存在するんだぞ
指向とは言うけど何が指向性を持っているかが不明
>>300 やり取りする為以外にインターフェース存在するのかよ。
今やりたいことを達成すればいい設計にするのか、
それとも今は必要無いかもしれんけど、この先使いまわす時に必要になる事も考慮するのかって事だよ。
OOAとOODとOOPをごっちゃにして放言しているから収拾がつかない。
根本の考え方は、プログラムの生産性をより高めていこうってことで 言語の発展の流れとしてはごく当たり前で受け入れやすいと思うのに まず「オブジェクト指向」って翻訳が悪い気がする かといって良い言い方も思いつかないが
>>286 274は「Cでできるからオブジェクト指向言語なんて不要」と言っているようには見えないのだが。
>>302 拡張性の話とインターフェースの話を一緒にするから突っ込まれてることに気がつけよ
なんか、「JavaやってるんでOO理解してます」ってな奴が多すぎ
オブジェクト指向の真の意味を理解しているのは俺様だけだな、 っつーやつばかりだな。
てか、レベルの低いやつほど 『オブジェクト指向を馬鹿にしているやつは「Cでできるからオブジェクト指向言語なんて不要」なんて言っているから馬鹿なんだ』 なんて言うんだよな・・・ 関数型言語とかもっと違う方向には目が向かないのかね、こういう輩は。 大体ソフトウェアの世界なんてまだまだ混沌としていて何が正しくて何が正しくないのか誰もわからないんだから、 あまり人が言っていることを馬鹿にしないほうがいいよ。 どうせまだ誰も正しいことなんてわかりっこないんだから。 少なくとも歴史が長い物理学よりはずっとやってることが原始的。
そこでわざわざ物理学を出すのはどうかと思う。 物理学に失礼すぎる。
>>310 そこの部分は、
>>309 の話の中で、彼の発言の趣旨から外れた一番どうでもいい部分。
何故そこを拾って取り上げようとするのかな? もっと全体像をとらえようよ
>>311 自分だってどうでもいいと思ったから取り上げた。
そんなこと蛇足にすぎない、書かないほうがよかったぞという思いを込めて。
>>309 >てか、レベルの低いやつほど
>『オブジェクト指向を馬鹿にしているやつは「Cでできるからオブジェクト
>指向言語なんて不要」なんて言っているから馬鹿なんだ』
>なんて言うんだよな・・・
ここと、
>関数型言語とかもっと違う方向には目が向かないのかね、こういう輩は。
ここの話の繋がりを分かりやすく教えて下さい偉い人。
俺にはさっぱりだ。
>>314 岡村って知らないんだけど、何やってる人?
芸人長いことやってる
318 :
デフォルトの名無しさん :2009/03/05(木) 19:36:57
カモノハシ本たけーよ。
オブジェクト化すると責任の所在がハッキリするよね
オブジェクト指向も設計実装の道具のはずなんだけど 理解が難しいのが問題では? 使いづらい道具は人は使わないですし本来道具は使いやすさが 重要だとおもうのですが
定義が曖昧なのも問題
オブジェクト指向ですら難しいという人はプログラマ向いてない。
オブジェクト指向の考え方は何となくわかるが、小さいプログラムだと今までのやりかたの方が簡単に組める。 どうしても必要にならないと本気で使おうと思わないんだよね。 高速に動かしたいところはやっぱりCになっちゃうし。 ま、確かに俺はプログラマ向いてないと思う。
オブジェクト指向は、必要なければ使わなくても良いんじゃないかな? そういう人のために、オブジェクト指向使わなくても利用できる言語やスクリプトあるわけだし… ま・・俺もむいてないけど、適度に出来る程度で十分な案件だけやってるw・・・全部一人でwww
オブジェクト指向は、必要なければ使わなくても良い
オブジェクト指向は、仕事に困らないのであれば使わなくても良い
ぶっちゃけC++やC#使えればよくて オブジェクト指向を使う必要はない
まあ、stlやboost使える程度に知識があれば 厳密の意味でのオブジェクト指向なんて別にいらんよな。
オブジェクト指向ははったりで使う 仕事でそれ以上の意味はない
会議で黙らせる時に使う
最初にオブジェクト指向から入った人には オブジェクト指向が普通で、そうじゃない物を使う人が変に見えるだろうな 意外とこういう人多いんじゃ無かろうか それと、分業させるのがOOだと楽ってのもあるんだろうな
そうでもないみたいだよ
ここで言ってるOOって、結局は手続き型ベースのOOPLばっかりで、 関数型ベースや論理型ベースについては皆さん無知ってことで。
道楽じゃないんでね。
ほんとに、昨今のオブジェクト指向だけが正義みたいな風潮やめてほしいなぁ。
抽象化の手法はOOP派生のアプローチだけじゃないのは確かだけど、 現在主流となってる言語でできるのは大概それぐらいしか無いから仕方ないね
>>336 Haskellとかは全く違うスタイルなんだけど。
てか、F#とか最近流行ってるやん。 あれは関数型言語だからオブジェクト指向スタイルじゃないよね。
HaskellとかF#の案件がperlとかCとかJavaの案件以上にないと主流とは言えません
Haskellにもclassあるけどな。
341 :
デフォルトの名無しさん :2009/03/06(金) 13:03:02
340 :デフォルトの名無しさん [↓] :2009/03/06(金) 13:00:40 Haskellにもclassあるけどな。
342 :
デフォルトの名無しさん :2009/03/06(金) 13:03:53
340 :デフォルトの名無しさん [↓] :2009/03/06(金) 13:00:40 Haskellにもclassあるけどな。
343 :
デフォルトの名無しさん :2009/03/06(金) 13:04:55
340 :デフォルトの名無しさん [↓] :2009/03/06(金) 13:00:40 Haskellにもclassあるけどな。
ん?haskellにもtype classがあるだろ。class typeじゃないけどw
世の中の案件が全て消えてなくなればデジドカも消滅するしOOPも要らなくなる
プログラミング系の学校では、OOはどのくらいの行程で勉強し始めるのかな 学校ではやはりOOは重要みたいな教え方なんだろうか
わんわんにゃーにゃー共通化 名詞抽出 デザパタを覚えてそれを雛形にして当てはめましょう
349 :
デフォルトの名無しさん :2009/03/06(金) 14:02:13
>>347 それどころじゃない。
教科書(それも低レベル過ぎるやつ)
を入力させて教えた気になってる。
●馬の高●にある●ューティーの隣。
また言語論争か OOは言語とは関係ないとあれほど
>>350 関係ないわけがない。
オブジェクト指向でプログラミングするために作られた言語はオブジェクト指向でプログラミングしたほうが自然にかける。
○○するために作られた言語は○○につかうのが一番自然なんだよ。
当たり前のこと。
人の作った「当たり前」は疑うべし
当たり前のことが出来ない言語は出来損ないの言語
プログラマとかってガンダムOOみても 「あ、オブジェクト指向」とか反射的に思っちゃうわけ?
javaやrubyなんて明かに意識して作られてるし C++は斜め上だけど
C++だって20年くらい前はCにクラスがついただけのような素朴な言語だったぞ。
おれもはじめは 「オブジェクト指向」 ってヤツになかなか慣れなかった。 C言語にまだ 「プロトタイプ」 やら 「void」 が無かったころの人間なんで・・・ 「オブジェクト指向」 の何が嫌いかって、それはだな、 他人の書いたソースコードを追いかけるのに、上を見たり下を見たり あっちこっち飛ばなきゃならんってこと。 プリンター用紙に印刷して赤ペンで印を付けながら卓上デバッグすんだぜ。 すんげ〜〜〜大変だよ。 今はすぐれた統合開発環境IDEがあるから、キーボードのファンクションキーを押すだけで ソースコードのあっちこっちへ飛ぶことができて楽に追っかけられるようになったが。 そうでも無けりゃやってられないよ、オブジェクト指向なんて。 言語単体だけじゃダメだ。オブジェクト指向言語は統合開発環境とセットで評価すべき。 そう思た。
358 :
デフォルトの名無しさん :2009/03/06(金) 16:12:03
なんで赤の他人が作った仕様書も残ってないクラスを解析するとか言う トンデモな世界を当たり前のように語っているんだ?
コードが仕様書です(キリッ!!
362 :
デフォルトの名無しさん :2009/03/06(金) 16:47:59
>>358 オブジェクト指向と言いつつ、なんやかんやで
結局、そのクラスがどう言う実装してるかまで追いかけないと、
発生した障害が解決しないんだよね・・・
中身を意識させないためのカプセル化(笑なのに見る必要性がでてくるという本末転倒な せめて明確な事前条件、事後条件、不変条件ぐらいは確立させてドキュメント化しておくべきなんだけど そういう事に言及している解説書の少ないこと
>>362 幸せになりたいなら、他人のコードを追いかけないこと。
多少処理が重複して無駄が出来ても気にするな。
いいな、殿様ショウバイは。うらやましいよ。
>>357 規模が大きいと自分で書いたものまで分からなくなりますからw
結局、何で書こうと人間の頭で把握できなくなったらそこで終わりだしね。
ここにいる奴に存在するのか聞きたいんだけど、 UML書けない奴ってどれぐらいいるの? 必要・不必要論は抜きとして。
ただのお絵かきにご大層な名前つけなくてもいいのに。
>>361 というのがまるっきり理解できない莫迦ほど
>>357 みたいなトンチキな批判を繰り返すんでしょ。
普通に考えてUMLのかけない奴なんていくらでもいるだろ 描く必要の無い人間の数と同じくらいいる
372 :
デフォルトの名無しさん :2009/03/06(金) 20:48:06
いや、Cは一ヵ所見ればいい。 単純な関数()+1とかでも底が見えないのがC++なのは事実。
UMLって別に大げさに考えるほどのものでもないけど、 必要なら描き方を覚えるぐらい誰でも出来るんじゃないの?
ここにいる奴に存在するのか聞きたいんだけど、 フローチャート書けない奴ってどれぐらいいるの? 必要・不必要論は抜きとして。
>>374 何も見ないでは正確に書けないけど。
四角と矢印ぐらいならかける。
ここにいる奴に存在するのか聞きたいんだけど、 風呂に一週間以上入ってない奴ってどれぐらいいるの? 必要・不必要論は抜きとして。
オブジェクト指向だけだと、Object-Oriented って形容詞句だから意味が定まらないよね OOP か OOD か OOA か(まだある?)
ここにいる奴に存在するのか聞きたいんだけど、 86系のマシン語すら理解してない奴ってどれくらい居るの? 必要・不必要論は抜きとして。
>>368 ここにUML書ける奴どころか読める奴すらいないようだな
どいつもこいつも言語の話に終始
UMLでアクティビティやコンポーネントを見た上で、
インターフェースを設計してるなら言語の話なんかする必要ないからな
設計のままクラスとインターフェース作ればいいんだから
UMLどころかデザパタすらシラネ
ここにいる奴に存在するのか聞きたいんだけど、 Z読み書きできる奴どれくらい居るの? 必要・不必要論は抜きとして。
UML書ける出来る、と言ってるヤツの設計のまま作ると、
なぜか
>>362 とかみたいになるのだよ。
本当にオブジェクト指向で作ると安全で保守しやすいモノが出来るのか?
>>380 いや、そんな読めるとか読めないとか低レベルなことを気にしてるのはお前ぐらいのものだろw
UMLもデザパタも知らないけど
>>362 みたいにならないから設計の違いだと思われ
>>383 それは設計者の能力不足の問題であって、オブジェクト指向の問題ではないよな
オブジェクト指向はプログラマーよりも、むしろ分析者・設計者が学ぶべきことなんだよ
>>384 そんな低レベルなことを言われないようにお前はもっと学習しろ
カプセル化を今日Wikipediaみて再理解した で、どうも府に落ちないことがあって、カプセル化と抽象化の違いをうまく説明できない だれか恐ろしくわかりやすく文章化できるやついる?
抽象化=インターフェース抽出 カプセル化=利用する側から見えないこと
>>378 別に理解はしてないな。
マニュアル見れば使えはするが。
ここにいる奴に存在するのか聞きたいんだけど、 地図が読めない奴ってどれぐらいいるの? たとえば、この記号。ちゃんとわかる? \ / \_ | _/ 彡彡彡 ミミミミ ミミミミ ノ σ ヽ / / ゚ヽ ヽ / //\\ \ ( ( ) .) \ \\// / ` \/ ' \ *←──この記号 \_____/\_____/
結局は機械語で書くのが一番
次代のポストコボラの諸君 せいぜい頑張って我を信奉するがいい
気象予報士って13歳でも受かるんだな
JavaでOOPしようとするのは、Windowsのメモ帳つかってプログラミングするくらい頭悪いわけだよ なんでプリミティブ型があるんだよバカだろ オートボクシングは便利だけど、本来それ自体が必要ないものなんだ どんだけJavaが糞なのかみんなもっと理解すべき その面倒な分だけスキルが上がった奴もいるのだろうけど、それ以上に糞コードが蔓延して、たくさんの人間が不幸になったわけだ さっさと純粋OOPLが政治的、ビジネス的に普及してくれれば全部解決だろjk
業務系やオープン系のような「仕事」のプログラミングだと 結局保守性の良いコードってのは value class と strategy に分ける形式になっていく気がするんだが、 それならオブジェクト指向でなくていいんじゃねーの?っていう。
オブジェクト指向とかあんまり関係なくてさ、 要は情報隠蔽してインタフェース駆動のプログラミングをしましょう ってだけじゃね? private な field と public な accessor を分けることで value class の情報隠蔽を実現して、 interface と implement を分けることで strategy の情報隠蔽を実現する だけでいいんじゃないのかと。 データと振る舞いを一緒にカプセル化するっていうのは、 発想として面白いけど正直プログラミングモデルとしては複雑性を増してるだけな気がする
ここにいる奴に存在するのか聞きたいんだけど、 いちいち他人様を馬鹿にしないと気がすまない奴ってどれぐらいいるの? 必要・不必要論は抜きとして。
オブジェクト志向をいっさいつかわないということは1クラスに10万行くらい書いて納品するということ? 分担作業やりづれーよ ていうかムリ
例えばJavaなら全部ユーティリティクラスにしてpublic staticなメソッド だけで書けば分担作業出来るじゃん。
>>397 振る舞いを含めないのなら、カプセル化する意味ないんしゃない?
つまりゲッターとセッターの存在理由がないじゃん
コード量を5倍に増やしてるだけ
Step数的に必要?w
strategyパターンって何?それなんて高階関数?
>>395 Integer.toString(5);
とか馬鹿すぎ糞すぎアホ過ぎ
>>404 カプセル化 = 英語表音を取り入れたハイカラな呼び方
抽象化 = 漢語表記にした東アジア的呼び方
カプセル化 = データ抽象 = 抽象データ型 = ユーザーによるデータ型定義
>>404 抽象はAbstractionの訳として用いられるから、
カプセル化と抽象化をイコールで結ぶのは違和感がある。
カプセル化と抽象化は直交する概念だろ
カプセルか・・・ カプセルか・・・ カプセル怪獣!
カプセル化=インタフェースとその実装との関係での話。 抽象化=インタフェース設計での話。
抽象化 = いくつかの事物に共通なものを抜き出して、それを一般化して考えること カプセル化 = 要約化, 簡約化すること
なんでもかんでもクラスにしようとする香具師は死ねばいいのに
カプセル化の目的は抽象化だけではないし、 抽象化はカプセル化以外にもたくさんある。
415 :
デフォルトの名無しさん :2009/03/07(土) 16:31:42
[1] 授業単元:オブジェクト指向講座 [2] 問題文(含コード&リンク): 1から9までの数字を縦横方向に同じものが並ばないように下記の例のように並べる 並べ方が全部で何通りあるかとその並びをすべて列挙する [3] 環境:オブジェクト指向で解決すること [4] 期限: 明日まで [5] その他の制限: 例 534681297 685293714 948367125 153472869 426538971 261759483 817945632 379126548 792814356
はいはい未解決未解決
417 :
デフォルトの名無しさん :2009/03/07(土) 17:10:01
私は素人なんですが、一言。 プロの人でもよく分かってないことが多いのなら、 ホビイストとか日曜プログラマと呼ばれる層にとっては OOは邪魔なだけになりやすいですよね? 昨今はオブジェクト指向じゃないと自然に書けない・・・というか オブジェクト指向を半ば強要するような仕様の言語が多いですけど、 ダイクストラ流の構造化だけしか要求しない言語だったら、 「HSPも中途半端にしかできない」、「シェルスクリプトしか組めない」、 「わしは昔BASICで色んなもんを作ったんじゃよ」なんていう 素人でもそれなりの物を作れるはずです。 ところが、今日では計算機技術全般がプロ用になってしまっているため ワードやエクセルで適当にやってみて、それでダメだとすぐ自力解決を諦めてしまう。 その結果、そのまま泣き寝入りするか、プロに無駄金払う人が増えています。 やろうと思えば自分でできるはずのことだったとしても。
418 :
デフォルトの名無しさん :2009/03/07(土) 17:15:41
オブジェクト思考は天才 オブジェクト思考は天才
>>417 > プロの人でもよく分かってないことが多いのなら、
> ホビイストとか日曜プログラマと呼ばれる層にとっては
> OOは邪魔なだけになりやすいですよね?
あなたはプロで、現場のことを良く知っている、という前提ですか?
それともソースは2chだけという にわかさん ですか?
後者なら、2chでオブジェクト指向がよく分からないと発言している人が素人だと私は言いますよ。
420 :
417 :2009/03/07(土) 17:18:09
さらに言いますと、 プロの方にとってもOOが弊害になる場合が多々あるのではありませんか? 私の社内にいる情報系の人がC++で作ったプログラムを見て、 「何でこの程度のことをC++で書くんだろうか?」と疑問に思ってしまいました。 黙っている方が賢明だったかもしれませんが、見るに見かねて無駄を指摘し、 目の前でそのプログラムと同じことを、Bashの一行野郎でやってみせたら不機嫌そうでした。 何でもOOでやるのが当たり前、と考えるのは簡単なことを複雑にし、 普通の人の自己解決を妨げると同時に、プロにまで無駄を強いるのではありませんか?
>>419 いえ、OOが悪いと言ってるんじゃないですよ。
ただ、時と場合によるはずなのに、
「OOこそ専ら正義」であり、「それができない者もしくは好まない者は
プログラミングから排除されて当然」という風潮が変だと申し上げているだけです。
422 :
デフォルトの名無しさん :2009/03/07(土) 17:26:48
> 「それができない者もしくは好まない者は > プログラミングから排除されて当然」という風潮 プログラミングから排除ってw そんな風潮あるの? 申し上げましょうか。 OOPのメリットを知るには非OOPの苦痛を知らなければなりません。 そのためには、非OOPの業務経験が必要だと考えられます。 OOPがいつでも役立つなどと言うものは、 おそらくOOPを理解していません。 同時に、OOPを理解するものは、 OOPを理解しないものを排除したりはしないでしょうが、 代わりに、経験不足を見て取ります。
>>413 だけど、
> OOPがいつでも役立つなどと言うものは、
> おそらくOOPを理解していません。
激しく同意
ほんと死ねばいいのにね
>>421 とりあえずOOPとOODやOOAは区別して話すべきだと思うけど。
OOPに関しては、開発インフラと言うのも無視できないと思う。
例えば案件がJavaでのWebアプリ開発だったとして、Javaという
言語はもちろん周辺のライブラリやフレームワークも一応OOPに
乗っ取ったデザインになっている。
結果として開発するにしてもOOPの流儀に則るのが一番楽だし、
そこを無理に外すとかえって大変だったりあとから保守する人が
面倒を被ったりする。
イチからスクラッチで開発するのならともかく、実際はそうした既存
のライブラリやフレームワークといったインフラの上で開発する場合
も多いのだから、こうしたインフラが現在ますますOOPに基づいて
整備されている以上OOPを理解しないと仕事では辛くなるのでは?
と思う事はあります。
425 :
デフォルトの名無しさん :2009/03/07(土) 17:52:10
>>422 たまたま私の周りにいる人たちが変なだけかも知れませんね。
私の会社は医療サービス業なので、直接的にはプログラミングと関係ありません。
しかし、今時いかなる業種であろうともコンピュータと無縁ということは許されませんので、
いわゆるプログラマやシステムエンジニアと呼ばれる人々ともある程度関わらざるを得ないわけです。
現場サイドだけで使うCSV形式のデータベースを処理するごく簡単なシステムを
社内の情報系職員に依頼したら、「できません」と断られました。
開発に手間がかかりすぎるので外部に依頼すべきというのです。
ようするに面倒くさいから逃げただけなのでしょう。
で、とある業者に見積りを出させたら、開発に十数万円、保守が月数千円ということでした。
バカらしくなってしまったので、WindowsのインストールされたPCに
GNU BashとGawkを入れて、自分で作りました。
本当はUNIXやLinuxでやるほうがスマートなのですが、社内になかったので・・・
私はプログラミングなんてできませんが、たまたまシェルスクリプトをかじったことがあるので
こんな方法で解決できましたが、そうでなければプロにボッタくられるところでした。
大規模なプログラムを設計するには便利な技術であろうとも、それをあらゆる場面で強要するのは
我々普通の人にとって迷惑でしかありません。
いや、迷惑をかけられていることすら気づかずに、本当は自己解決できる程度のことに
大金を払い、感謝すらするのです。
でっかい釣り針が何本もみえるスレだなw
>>425 なんてオブジェクト指向となんの関係もない話じゃん。あほくさ。
>>425 自分で出来る事をプロに頼むのが間違い
証明写真をプロに撮って貰うのか、3分間写真で撮るのかってのと同じ問題だ
ぼくはぷろぐらむがかけるんだぞ そとにいたくしたらなんじゅうまんえんもするしごとができるんだぞ すごいでしょ ほめてよ あっそ
「クラスのオブジェクトのプロパティがメソッドでインスタンスだからぁ〜 ポリモーフィズムのインヘリタンスがカプセル化でぇ〜」 とか語ってる暇があったら、非OO言語でゴリゴリ書いたほうがマシなことは沢山あるけどな。 素人さんたちが、それすらやらなくなったのは確かに退化だと思う。 その原因の一つが「プログラミングは普通の人には難しすぎる」という刷り込みで、 さらにその原因の一つがオブジェクト指向なのは間違えてないだろう。 だからと言ってオブジェクト指向を目の敵にするのは変だけどな。
>>425 というかCSV形式のデータをゴリゴリやるのに今更awkというチョイスが
よく判らない。趣味?
perlでもpythonでもrubyでも、CSVをComma-Separated Valuesとして
扱ってくれるライブラリを持っている言語を使って書いた方が書く人も
使う人もあとで読まされる人も楽だと思うけど。
別にライブラリだけ使ってその後は手続き的に書いても良いわけだし。
BASICだろうがCだろうがコードを書いてる間に関数レベルで抽象化はするし どうせ、抽象化するならオブジェクト指向に対応した言語を使ったほうが楽じゃん
なんかちょっとする時はRubyの一択だな。
>>425 もcygwin入れてもっとラクしたらいい。
>>415 (define (oremove o l)
(if (pair? l)
(if (eq? o (car l))
(cdr l)
(cons (car l) (oremove o (cdr l))))
l))
(define (perm s)
(define n 0)
(define (perml f l y)
(if (pair? l)
(for-each (lambda(x) (perml f (oremove x l) (cons x y))) l)
(f (reverse y))))
(perml (lambda (y) (display (list->string y)) (newline) (set! n (+ n 1))) (string->list s) '())
n)
(perm "123456789")
123456789
123456798
略
987654312
987654321
=>362880
(* 1 2 3 4 5 6 7 8 9)
=>362880
434 :
425 :2009/03/07(土) 18:36:47
>>430 それはプロ的な発想でしょう。
私はプログラミングの素養などありません。
単純にコマンド並べて動くものしか理解できません。
だから、他の言語で書いたほうが楽だとおっしゃられても
私には楽ではありません。
後でソースを読む人なんているのでしょうか?
プロとおぼしき人といえば、
別の部署にあてにならないシステム管理者がいるだけです。
私の部署にはプログラムを組める人なんて皆無ですし。
そんな状況でお金をかけずに解決するには、bashとawkくらいしか思いつかなかったんですよ。
awkは古いとお思いでしょうが、perlより覚えることは少なく、単純なプログラムなら
可読性も高いでしょう。
素人にはうってつけではないでしょうか?
フレームワークつかっててさ。 えれー使いにくいAPIと、えれー使いやすいAPIってあるじゃん。 そては何でか?ってのを、自分なりに考えてみれば 見えてくるものもあるんじゃないかと。
他人がOOPで書いたプログラムは迷惑で、プログラムを作ってくれる業者はぼったくりで 自分はOOを覚える気はないので目の届く範囲に持ってこないでください ってこと?何が言いたいの?
>>434 は自分を基準としてものを考えるな。
別に変なことを言っているとは思わないから。
>>434 とりあえず総論としては「勉強すれば?」といったところですが。
>それはプロ的な発想でしょう。
でしょうね。実際にCSVをゴリゴリいじった経験のある人は、多分最初に
CSVには色々方言がある事について考えると思います。
単純なパーサーでは読み込めたCSVファイルが、誰かがExcel等の
ツールでちょっと編集した途端に扱えなくなる事は良くある事です。
そういう経験のある人はトラブルの可能性を先読みしてお馬鹿なパーサー
を手作りする前に既存の良い実装を探して再利用すると思います。
>後でソースを読む人なんているのでしょうか?
あなたが退職したり異動した場合は?
>素人にはうってつけではないでしょうか?
今さら感がプンプンです。テキストファイルを切り貼りする程度であれば
学習する手間に大差はないと思います。
個人的な範囲ではsedはともかくawkは使う機会が駆逐されたな〜。
ワンライナーもまずはruby、たまにsedぐらいなもので。
>>425 その時間に本来あなたがするはずであった業務は誰かが代わりをしてくれたのですか?
そうでなければあなたが自分の業務をさぼった時間で物を作った訳ですから全く評価されません
もしその時間とその成果物に見合うだけの追加費用をあなたが受け取ったのであれば
それはそれで結構なことですがそれは結局業者に払う金額と同じくらいであるべきだとは思いませんか?
気象予報士って13歳でも受かるんだな
442 :
デフォルトの名無しさん :2009/03/07(土) 19:29:46
「perlとawkの違い」 perlは簡潔明解で可読性が高い 初心者でも使いこなせる だから、perlが普及するとプロの仕事が減ってしまう #!/usr/bin/perl $\ = "\n"; while (<>) { chomp; if (/^hoge.*/) { print $_; } } -------------------------------- #!/usr/bin/awk -f /^hoge.*/{ print }
#!/usr/bin/awk -f /^hoge/
grep使えって。
445 :
デフォルトの名無しさん :2009/03/07(土) 20:03:08
#!/usr/bin/perl
$\ = "\n";
while (<>) {
($Fld1,$Fld2,$Fld3) = split(' ', $_, -1);
if (/^hoge/) {
print $Fld3;
}
}
--------------------------------
#!/usr/bin/awk -f
/^hoge/{ print $3}
>>444 特定のフィールドを扱う処理だったらgrep使わんでしょ、普通
にしても・・・perlなんてワンライナーで使いたくねぇw
446 :
デフォルトの名無しさん :2009/03/07(土) 20:15:18
#!/usr/bin/perl $[ = 1; $, = ' '; $\ = "\n"; while (<>) { chomp; # strip record separator @Fld = split(' ', $_, -1); for ($i = 1; $i <= $#Fld; $i = $i + 1) { $sum = $sum + $Fld[$i]; } } print $sum; ---------------------------------------- #!/usr/bin/awk -f { for (i = 1; i <= NF; i = i + 1) sum = sum + $i } END{ print sum } awkに比べてperlのなんとシンプルでエレガントなことかw
>>445 >特定のフィールドを扱う処理だったらgrep使わんでしょ、普通
だから
>>442 の作業だって。これなら何も考えずにgrep使う。
特定のフィールドを使うのであれば自分はruby使う。
ruby -ne 'puts $_.split[2] if $_ =~ /^hoge.*/'
ただ
>>442 の作業後に特定のフィールドを使いたくなったら、
流れ的にgrepとの合わせ技を使っていると思う。
grep "^hoge.*" | ruby -ne 'puts $_.split[2]'
>>446 ruby -ne 'print $_.split.join'
perlのオブジェクト指向の機能って、 無理やりとって付けたような感じで 変態的だよな
なんか話がオブジェクト指向から離れてきているようなキガス まぁ、ワンライナーだったらAWKもありなんじゃね? 古かろうと新しかろうと使える道具が良い道具だから 本題に戻ろう。 昔大量に生息していたBASICオタみたいな種族が減少したのは厳然たる事実。 原因は良いアプリケーションがドッサリあるから、というだけではなさそう。 プログラミングできればそのほうが便利なこと自体、今も昔も変わりないのだから。 プログラミングが難しくなったから、と言えば身も蓋もないが、 バッチファイルすら書こうとしない、もしくは書けないのだらけなのは一体何だろうね? 粘着してたヤシは、よーするにオブジェクト指向のせいだ!って言いたいわけだろ? さて、実際のところどうなんだろうね。
Smalltalk以外のOOは似非OOだろ
要するにSmalltalkの話はスレ違いってことか
452 :
デフォルトの名無しさん :2009/03/07(土) 22:09:49
>>448 >perlのオブジェクト指向の機能って、
>無理やりとって付けたような感じで
「感じ」じゃないです
無理やりとって付けたんです
>変態的だよな
「変態的」じゃないです
変態です
>>449 1.金にならんから
2.他人にやらせる(利益は自分がとる)
という風潮が広まったせい
プログラミングに限らないよ
世の中全部が(ry
サンデープログラマの人口統計なんてあるのかね。 パソコンユーザー全体に占める「割合」は明らかに小さくなったと思うけど、 絶対数が減ったかというと確信は持てない。
>>449 エンドユーザー言語とか簡易言語とかいう言葉があるけど、
実を言うとそんなのは存在していない。
正真正銘のエンドユーザーには使いこなせないものばかりだから。
エンドユーザーにとっての正義とは
1. 覚えることが少ない
2. とりあえず動く
3. 早い
4. 安い
ということだ。
プログラミングの諸技術の発展は、意図するか否かに関わらず
それと矛盾する方向に進んでいる。
その意味ではOOはエンドユーザーを無能化したと言っても間違えていない。
確かにOOは覚える価値はありそうだとは思うんだけどな。 最初に良く勉強しないと、良さを生かせないクラスがいっぱい出来て 後で泣く事になりそう。 個人的には、どこまで継承させて書くべきなのか… 別々のクラスとして書くべきなのかが分からん また、どれをスーパークラスにするべきか・・等 この辺の考え方は、相違がありそう
>>456 >最初に良く勉強しないと、良さを生かせないクラスがいっぱい出来て
>後で泣く事になりそう。
OOに限らず大抵のプログラミング技術はこの手のトライアンドエラー
から学ぶ事って少なくないと思う。
実践無しに理論や文法・設計論等々を座学で学んで、いざコードを
書き始めたらいきなりスーパープログラマー、なんて例はあまり見た
事は無い。
あまりというか、そんなのはプログラム界の歴史に名が残る級の 真の天才でもなければ不可能じゃないの?
>>457 良いこと言うなぁ
高級言語使う限りパソコンが壊れる事なんてないし、適当にやってみるのが一番だよな
アセンブラで適当にやっちゃうとやばいけど...
>>459 いやいや、アセンブラで適当にやっても今時のパソコンならOSが守ってくれるぜ。
OOをプログラミング技術とか言ってる奴が大杉 OOは設計手法なんだよ OOPは結局、言語仕様の話で終わるだろ 分析設計は機能分割の旧来手法なのに、 製造はOOPでするからメリットを享受できないんだよ 勘違いしてる奴がいるが、 OOを正しく活用するのであれば、 インターフェースとかクラスは設計段階ですでに決まってるわけで、 製造に入ってから考えるものでは無い ここを分かってない奴がOOの話題になるとすぐ言語仕様の話をする
まーた得意げなお馬鹿さんだな。 わかってない奴ってお前さんのことじゃんw 仮にOOを「設計手法」と呼ぶとして、 どう考えても設計手法もプログラミング技術の一部だろう。
確かにOOについて論じるには 高いレベルでの話で考えなきゃならないけど、 実装時のアプローチについての話を完全に無視できるほど高いレベルの概念ではないね
>>462 設計手法がプログラミング技術の一部って、どんだけ新入社員だよw
それをいうならソフトウエア工学だろw
っていうか、このスレの意義を否定するようだが(っていってもネタスレだと思うけどw) かつての構造化プログラミングがそうだったように、オブジェクト指向なんて 具体的実践はともかく概念そのものはたいして難しいわけでも量的に膨大なものでも なく、普通の知能があれば誰でも理解できる程度のものだから、 あまり熱く語るのも傍目に恥ずかしいぞ。
大学生同士の罵りあいはもう見飽きました。 習いたてのことを言いたくてしょうがないのはわかるけど、 いい加減小学生みたいな真似はやめろよ。 もうほとんど大人なんだろ?
>>464 そういう無意味な分類学に意味があると錯覚しているのは
君が本質をわかってないからだろう。
まあいいやじゃあ何が「プログラミング技術」で何が「設計手法」で
何が「ソフトウェア工学」か定義できる?
>>468 しょうがない馬鹿だな。
じゃあ読んでしんぜるから具体的に誰の書いたなんて本にそれらが定義されてるの?
それなんてゆとり?
471 :
デフォルトの名無しさん :2009/03/08(日) 02:26:54
>>425 > とある業者に見積りを出させたら、開発に十数万円、保守が月数千円ということでした。
まぁまぁ妥当な金額だな。工数としては数人日ってところか。
ぼったくりなんてとんでもない。
プログラミングは簡単だろうけど、425の頭の中だけにある必要なシステムというものを ヒアリングして要件と仕様を確定させてというのが一番時間かかるだろうね。
473 :
デフォルトの名無しさん :2009/03/08(日) 03:06:09
>>472 そんなことに金を取るのか!そんなこと営業活動の中に含まれるだろ!
そんなのに、金を出せるわけないだろ!
・・・何度、客にそんなこと言われて見積りでモメたことか・・・
見積り無料という言葉さえあるのに、そういう客がいるんだよねぇ。
無料だからってそれをやらずに進めると納品後にもめる罠 客はそれを予め狙ってるのかも知れない
そ、曖昧に済ましたところは後でたいてい揉める。全部文書にして残しておかないと結局やらされるはめになる。 しかもタダで。これはつらいよ。頼むほうは自分が理解できて頭の中では簡単だと思ってるから プログラムも簡単にできると思ってる。あんたの頭の中のことなんか言ってもらわなきゃわかりませんて。
>>471 インターネット、メール、ワープロ、表計算以外は全て
「プロの人、お願い!」って時代だ。
エンドユーザ・コンピューティングなんて号令だけで、
実際には全然発展していない。
そこいらの普通のリーマンが「統計処理ならS言語だよね!」とか
「ネットから必要な情報だけを定期的に自動で取得させるシェルスクリプト組まなきゃ」
とか語ってるならエンドユーザ・コンピューティングが十分に浸透していると言える。
でも、現実はそうなってない。
簡単なことは自分でやれば良いのだが、いざとなると
どうやれば良いのか見当がつかず、嫌々業者に頼むことになる。
それで「ぼったくり」と感じる面はあろう。
>そんなことに金を取るのか!そんなこと営業活動の中に含まれるだろ! >そんなのに、金を出せるわけないだろ! そういう馬鹿は完成した後も金払い悪いんだよな
>>477 プロが仕事なくなって困らないように
客を馬鹿のままにしておきたいのが
見え見えですよね
道具が便利になるとそれを使うだけの人間のレベルは堕ちていくのは当然 そうならないために道具を不便なままにしておくという選択もあるんだよ
ないない
MSの場合バージョンアップとかで金とるために わざと改良をゆっくり進めてるという噂はある
うわさっつーかそりゃ彼らのビジネスモデルだろ
他所の会社のを朴ってばかり しかも機能はオリジナルより劣る 稼ぎは一番ウハウハですな
>>482 そんな事はない
奴らがやっているのは、十分利用できる旧バージョンをサポートしないという強硬手段で役に立たない新バージョンを売りつけるというビジネスモデルだ
時々何のスレか忘れるわ
サンデープログラマがOOは糞だというのは、 日曜大工で戸棚をつくってるオヤジが 50階建ての高層ビルの工法を理解できないからといって 「こんなのは作り方を難しくしているだけだ、ぷんすかぷん」 と喚いているだけだと思えばある意味微笑ましい。
そのとおり。それが全て。
>>487 Java で開発してる現場で,
「今のニューヨークの時間を求めろ(本当に必要だった)」
って, 言ったら (JST - UTC) + (UTC - EST) の差分しか
考えないアフォが大量にいるんだが…
こんな連中を何とかしてもらえませんかね?
OO 以前の知識がなさすぎwW >現場のアフォども
Java使ってる時点でお察しください
>>489 なんか、いけ好かない野郎臭がする
人を馬鹿にするのなら、人に頼まず自分で作れば良いのでは?
>>493 wwwwwwwwwwwwwwwwwww
プロならググって適切なサンプルコード見つけてコピペするのが基本。 自分で考えて作るなんて素人がやること。 趣味で楽しんでヤルなら、それでいいのだけど、 自分達で考えて作るなんて怖いこと、プロはやっちゃダメ。 プロなら、正しく動くものを組み合わせて、確実に動くものを作る。 それが、オブジェクト指向の極意だろ?
仕様は命題でソースコードはその証明っていうのが関数型の極意
最後の行で台無し
>>495 何?
それは、鶏と卵の話?
コピペ元のサンプルコードは誰が作るの?
>>498 言語設計者・ライブラリ開発者・フレームワーク提供者。
その周りのコミュニティ。
なのでドキュメンテーションが半端なライブラリ等はプロジェクトに
持ち込むべきじゃないし、ドキュメンテーション活動が活発なところ
からチョイスした方が楽が出来る。
>>499 そんなプログラムの作成法なんて、言うなれば残飯処理じゃん
美味しいところは、全部喰われた後じゃないか
>>500 料理人が良い食材を安定して供給してくれる漁師や農家を探すような
もの、と言ってくれ。
釣りや家庭菜園の楽しさは知っているが、それは本業じゃないんだ。
レシピもまずは基本に忠実に、その上での発想の妙だと思うぞ。
創作料理でも本当に美味い料理と単に珍妙な料理があるだろう?
というのは理想論で、大抵は卸された食材をルーティン通りに処理して
供する場末の定食屋である事が大抵な訳だが。
>>501 食器工場の作業員と陶芸家ってかwwww
俺だったら、陶芸家を目指したいねぇ
503 :
デフォルトの名無しさん :2009/03/08(日) 18:22:50
> 正しく動くものを組み合わせて、確実に動くものを作る。 確実に動くけど、正しく動くとは限らない罠w
>>502 理想は高いけど。厳しいぞ。
一応食器工場の作業員はたいていの人が目指せばなれるし海外に
押されていない限りは一応食える。でも陶芸家人生は、賭でしょ。
あと料理人が市販の素材が不満だとか言って田舎に店を構えて自ら
生産を始めるパターンも多いけど、大抵は品質でもプロの農家には
かなわず、ただ変なプライドや宗教じみた哲学等々がまとわりついた
トンデモ料理店に墜ちるケースが実に多い。
あるいは口八丁で「注文の多い料理店」を目指すところとか。
>>504 んなこたぁ判ってる
しかし、それが今の日本のソフトメーカーに足りないところだ
この特に分野はソフトウェアを無料だと思ってる 馬鹿の声がでかくなってるから、作業員ですら まともな報酬を手に入れるのが難しい 陶芸家なんか成立しないよ
特にこの
>>495 そうやってソフトウェア作成を組み立て工場とみなしてしてしまったことが、
日本のソフトウェア産業が外国に勝てない原因だと思うよ。
組み立て工場の工員が何人集まっても、設計技術を持ってる国には勝てないんだよ。
>>490 めんどくも何もない! 何のための zone info だか…
>>492 いけすかんだろうよ.
今回は, コード書かせる側で関わってるんだから
>>496 > 仕様は命題
命題を命題として提出できない設計屋がどれだけ多いんだ?
>>502 ,504
> 理想は高い
OO を標榜している現場にいないぞ! 特に上の連中
# 去年の夏当りに今年の正月直前に入った閏秒が問題になるシステムの件で
# 「秒の定義を変えればいい!!!」と, のたまわった方もorz
要するに構造問題。 ちょっと前に毒吐いていたOOAD屋さんには、是非この構造を 分析してUML等々に落としていただきたい。ネタで。
ここむいはんですねわかります
あんまり作業量が減った感が無いのは気のせいだろうか? まあ、GUI扱うのは楽になったが。
>>506 そりゃあんた、コピペに金払う奴が何処にいるんだ?
「ソフトはただと思っている連中が」と言うけれど、そんな人たちでも、買わなきゃ行けないソフトは買ってるでしょ
>>513 コピペに金払えとは言っていない。
コピペする能力に金払えと言っているんだ。
適切なコピペネタを探し出して取捨選択し、適切な場所に張り付ける。
しかも貼り合わせた周辺とのすりあわせも忘れない。
これはなかなかに高度なスキルだ。
フルスクラッチを有り難がる発想こそ日本人的だと思う。
>>512 減ってないと思う。つか、むしろ増えてる。
特に出来の悪いクラスライブラリを与えられた場合…
プログラミングは免許制にすべき
Javaは言語全体が出来の悪いクラスライブラリ
>>516 免許制というか資格制だな
資格独占職種にしないとだめだ
「業務独占資格」 だったorz
>>514 どんなに出来が良くても、コピペは所詮コピペなんだって
>>516 更新が面倒くさそうだなぁ。
おでこにもみじマークを貼り付けておいたら少しは周りも気を
配ってくれるかな?
>>519 医師も資格制にする前は下に見られていたが、資格制にしたとたん社会的地位が上がった。
>>520 おう。出来が良ければ、万々歳、クライアントも大喜びだ。
発注側もプロに頼むべきコピペとそうでないコピペの区別が
はっきりしていないんじゃないか?
それを一概にコピペだからタダみたいな発想だったら自分で
自分の首を絞めているな。
医者だって自分が作ったわけでもない薬を渡して医療行為とか言って金もらってるじゃん。
てか医者のほうがやってること簡単だろ。 プログラマだってもっと簡単な仕事で金もらってもいいんじゃね?
>>525 ソフトはタダ論と同じ構造だな。自戒を込めて。
外から見ていると中ではどれだけ面倒な事をしているか見えにくい
から思わず簡単だろとかタダでも良いとか考えちゃうんだよ。
実際はそうでもないわけで。
>>523 本質が見えてない
コピペで作る事を知っているから、安く買い叩かれるって事だ
>サンタフェ鉄道はシステム開発にMAPPERを使った。
>これは4GLを使ったソフトウェアプロトタイピングであり、
>エンドユーザーによるプログラム開発プロジェクトの例である。
>この場合の考え方は、鉄道の専門家にMAPPERの使い方を習得させる方が、
>プログラマに「鉄道操作の複雑な事情」を教えるよりも簡単だ、というものであった。
出典
http://ja.wikipedia.org/wiki/4GL エンドユーザーが自分である程度やるようになったら
ヘッポコプログラマなんて要らなくなるだろうね。
>>526 > 外から見ていると中ではどれだけ面倒な事をしているか見えにくい
それ俺も思うわ
日頃は数式飛びまくりの仕事してるんだけど、たまに EC 系とか手伝うと…
『使ってる側から「めんどくさいからボタンとかやめてコマンド打たせろ」
って言ってくるとか、思んの?』とか………
>>528 エンドユーザがやらなくても必要ないと思う >ヘッポコプログラマ
531 :
デフォルトの名無しさん :2009/03/08(日) 21:33:29
>>512 簡単な作業は誰でもできるから、競争力つけるには安く売るしかない。
↓
安い作業で売り上げを増やすには、大量の仕事をこなすしか無い。
ってこと。
サンタフェといえば宮沢りえ 当時は衝撃的だった
>>528 1980年代から繰り返し言われてきた事だ。
エンドユーザープログラミング技術の死屍累々の歴史を知らないのか。
その結果現状Excelの数式程度しか残らなかった顛末の歴史を。
SUNやMSは自社フレームワークに付随するいろんな作業量を増やして 「このフレームワーク使えるSeは希少価値がありますよ」 と思わせるのが昔からの伝統だからな。 しかくやセミナーで小金を稼ぐのも昔から。
足りたとして、それができれば楽になるのか?
#!/bin/bash while : do echo '( ´_ゝ`)フーン' done
使える人間が増える ↓ 需要がある(と錯覚する) ↓ 価値がある(と錯覚する) 正気ではこんなことできない
まぁ、近い将来、昔ながらのソフトウェアの受注開発の形態は、 ビジネスモデルとして崩壊すると思うよ。
>>536 その昔, Sun3 全盛時代(Sun3-260とかか???)
某大学の研究室で
C「定期メンテに来ました」
D「〇〇、お茶いれてこい」
C 作業を開始しようとする
D「今、止められないプログラムが動いているから、ちょっと待って…」
C 「はぁ、そうですか………」
〇お茶持ってくる
C D 〇 世間話をしていると数時間たつ
C 「まだ、終わらないんですか?」
D 「うぅむ、思った以上に時間がかかるな… 今日はもういいからまたにしろ」
C 帰る
D 「〇〇、こうやって奴等には指一本触れさせるんじゃないぞ!」
出演
D: 某大学研究室教授
C: CTC メンテナンスエンジニア
ってな話があったことを〇〇先輩から聞いたのを思い出した
>医者だって自分が作ったわけでもない薬を渡して医療行為とか言って金もらってるじゃん。 やべww 超ツボにはまったwwwww
つまり薬剤師とか調剤師の待遇を改善しろって言ってるってことになるのか? SIer=医者だとするとSE=薬剤師でPG=看護士なのか? それとも製薬会社の研究者が一番エロいのか?
OOから激しく、そして望んで脱線中なお前ら 分からないなら分からないと言え
>>524 薬渡すくらい簡単な作業だったらどんだけ楽か・・・
OOにしてそんな簡単に行くならいいんだけどね。
わかってるのは自分だけと思いたいやつがいるようだが 別に難しくも無い概念、みんなわかってるよ。 Cのポインタと同じで難しいイメージを浸透させたくて みんなわかってないフリしてるだけだよな。
分かってない奴にありがちな発言。 > 別に難しくも無い概念、みんなわかってるよ。
私はオブジェクト指向設計技法がとりわけ大好きというわけでもありませんが、 最新の技術というわけでもないので昔ほど興味を持ってもいません。 ただ、現在ソフトウェア開発の現場にようやく浸透しつつあり、 構造化設計技法よりはマシなので消えてなくなったら困ります。 最近はlambda-calculusあるいはpi-calculusベースの設計技法の研究をする人が増えてきて、 関数型言語がずいぶん幅を利かせつつあります。 少しずつよりよいものにシフトして行けばよいでしょう。 でもまだオブジェクト指向が消えてなくなるべき段階ではないと思いますよ。
>>548 みんな分かってると思ってて実は理解していないという現実。
定数定義するためにinterface使ってるようなあほなコードを何度見てきたことか。。
変数一つごとにインタフェース用意してクラスにします(^q^)
まだ残ってた、このスレvwW
>>550 > 構造化設計技法よりはマシなので消えてなくなったら困ります。
何か勘違いしてないか???
最低でも、構造化設計技法使えない奴が
OOD 出来るとは思えないんだが…
現状では、
「OO 行けます! デザインでも…」
って言ってる連中って、設計以前のシステム
分析が甘すぎだろ wWW
OO 言語ができる前から、出来のいい C 言語
ライブラリは OO なデザインしてあった
>>> 構造化設計技法よりはマシなので とかいうのは違和感あるね なにか特定のモノ(例えばNSチャート)をイコール構造化設計技法と 思い込んでるんじゃないかね
特に違和感ないけど? お前らのスキルが足りないだけじゃね?
>>550 の文脈だとOOは構造化と相反するように見えるが、
もしその通りの意図で書いてるなら
>>550 の認識には誤りがある。
オブジェクト指向は構造化の一種なんだから。
少なくとも、ラムダ計算(lambda-calculus)などのLISPやHaskellはこのスレに全く関係ない。
>>550 >最近はlambda-calculusあるいはpi-calculusベースの設計技法の
>研究をする人が増えてきて、
>関数型言語がずいぶん幅を利かせつつあります。
例えば「pi-calculusベースの設計スゲ〜」から関数型言語が流行って
いるのかな。
後者は前者によってドライブされているわけじゃないと思う。
OOADのオルタナティブとなる手法として「lambda-calculusあるいは
pi-calculusベースの設計技法」なるものが研究されているとしても
(良い論文等あればポインタ希望)、自分には未だマイナーだと思うし、
少なくとも昨今関数型言語がはやっている文脈からは随分明後日の
方向だと思う。
とりあえずは関係がイマイチ自明でない関係ないトピックをくっつけた
だけの文章としか読めなかった。
>>556 CLOSもスレ違いなのか?
Haskellのtype classは継承もあるけどスレ違い?
559 :
デフォルトの名無しさん :2009/03/10(火) 10:49:57
ここはOOと関数型の関係について議論するスレじゃないのか。
2chで議論なんてできるわけがない
俺はけっこう勉強になってるけどな。雑音は全部スルーするけど。
ウーパールーパーのヌイグルミ持ってたw
プログラミング初心者レベルから抜けられない理由 プログラミングが苦手だという人がいる。 その人は、決して理解力が劣っているわけではない。 むしろ、ループや条件分岐、関数の作り方といった、 プログラミング言語の文法に関しては、 普通の人より速く理解できたりする。 入門書の章末に載っていような簡単な練習問題に対しては ちゃんと正解を出すことができる。 しかし、ある程度の規模があって複雑な処理をするプログラムを書こうとすると、 どこから手を付けていいのか分からず、とたんに手が止まってしまう。 プログラミングの上手な友人に聞いてみると、 「問題を分割すればいいんだよ」と言われるが、 じゃあその「分割」とは一体何を指しているのかが分からない。 お気付きだと思うが、これはちょっと前までの自分の状態だった。 恥ずかしながら、情報系の学科に所属しているのにもかかわらず、 僕はつい最近までプログラミングというものに苦手意識を持っていた。 最近になって、ようやくその苦手意識が薄れてきて、 以前の自分がどんなところでつまづいていたのかが分かりかけてきたので、 まとめておくことにする。それは 「自分が何を分かっていないのかが分かっていない」 ということだ。 言い換えると、「問題そのもの」と「その問題を解く手段」を混同しているということ。
もう少し言うなら、
文法
ライブラリの使い方
アルゴリズム
問題そのもの
自分のやりたいこと
の5つのうち、1〜3までが「問題を解く手段」で残り2つが「問題そのもの」だ。
特に初心者のうちはこれらがごちゃごちゃに入りくんでいて、混乱してしまいがち。
また、3番目くらいまでの情報はネットにも溢れているけど、
4、5番目あたりをどう整理するかはその場その場で考えるしかない。
問題そのものが分かっていないのか、あるいは問題を解く手法(ライブラリの使い方であったり、
アルゴリズムであったり)を知らないだけなのか、自分の経験を振りかえってみても、
また周りのプログラミングが苦手という人を見ても、これをきっちりと分けることができていないように思う。
プログラミングがどうも苦手だ、という人はこれを常に意識して問題を考えるようにすると、
上達速度が変わるだろう。
以上、初心者++くらいの人間の戯言でした。
ttp://d.hatena.ne.jp/tencube/20080418/1208535514
ライトついてますか?
問題発見の人間学 ワインバーグ
セコムしてますか?
本来UTF-8の文字列がCP932として処理されて文字化けしてしまっているのですが これをオブジェクト指向で元のUTF-8に直すことは出来ますか?
>>569 8086 のバイナリを 6800 に食わせたら…
ってのと, 同列の不毛な争いはやめれ
ストリームに流し込めばいいんじゃね?
なるほど
いつになったら世界が1つの文字コードに統一されて、 文字化けがなんたらコード変換がどうのこうのってのに 悩まされないですむようになるのか・・・
バベルの塔が破壊される以前は統一されていた
自然言語でもエスペラント流行らんしなぁ
OO を否定する気はないが, カプセル化前提ってのが… つか、何で必要なんだ、カプセル化? 結局、カプセル解かないとメンテ出来ねぇのに………
>>576 それはお前のとこのインターフェースが腐ってるからだろ
カプセル化が無かったら外部からデータに直接アクセスされてあたりがでかい
こんなことも分からん
>>576 みたいな奴がデスマ起こして迷惑かけやがる
自分の無知をやつあたりするとか理解できんわ
>>577 外部からデータに直接アクセスなんてのは、コーディングしてる現場
の運用だけの問題だろ?
インターフェース以前のモデルが腐ってる場合の方が多いんだが…
与えられた要求を表面的にモデル化してるだけだと、後付け条件が出て
きた時にモデル全体がアボンすることもある
腐ったモデルを、なんとかしようと思ったらカプセル化はじゃま!!!
よくあるんだわ、ユーザの本当にやりたいことを分析せずに、その場で
言われたことだけモデル化してて、「実は違ってました!」ってのがwW
>>578 それはメンテナーの設計が下手なだけじゃ?
Smalltalk でも Self でも ECMAScript でも、アクセス制限無く OO を表現・実装していますよ。 C++/Java よりは、テストファーストやリファクタリングが広がってる世界だけど。
そもそも, C++ とか Java の隠蔽機能なんてたいして訳に立たない よく言われることだが、デッキとメディアをカプセル化したとして ヘッドとメディアのインターフェースを公開する必要はないじゃん C++ あたりだと、「そのためにネームスペースが…」とか言われ そうだが、本質的にそんな問題じゃねぇだろ
「カプセル化を解かないとメンテ出来ない」って既存のクラスに パッチを当てるのに継承とか使っちゃうって事なんだろうか。
オブジェクト指向って別に大して役に立ちませんよね、って言ったら先生に怒られました
>581 >よく言われることだが、デッキとメディアをカプセル化したとして >ヘッドとメディアのインターフェースを公開する必要はないじゃん 聞いたことねえな デッキ、メディア、ヘッドってなんのことだ?
社内の別部署から、業務管理のための小規模なシステムを作ってほしいとの依頼があった。 真面目にOOで設計しプログラミングしてたら、依頼元の奴がシェルスクリプトを使って自力で作りやがった。 「てめーで出来るなら最初から頼むな」と激怒したら 「OOなんか使ってるから遅いんだよ。動きゃいんだから、適当にゴリゴリ書けよ」 と反論されてマジでキレた。 おかげで俺は「素人にも負けるプログラマ」と馬鹿にされ、評価ガタ落ち。
>>581 カセットテープの事か?
カセットテープの事を言ってるのか?
年寄りめ...(判る俺も年寄りか...orz)
>>585 それってOOPへのあてつけ?
OOPを責めるのは筋違いってもんだ
よく言われることだが(笑)
590 :
デフォルトの名無しさん :2009/03/11(水) 23:26:57
OOさえなければこんな仕事とっくに終わってるのに、 と思うことはあるな。
Railsは普通に生産性高いし C++が泥臭すぎるんじゃね? 俺はどっちも好きだけど
自分ができないことをOOにやつあたり
そこでpythonですよ
OOに限らず、きれいな設計で作ろうとすると初動がのろくなってしまうのは仕方ない。 一度作ってしまえばあとは修正なども楽なんだが。
設計がどれくらい修正を想定してるか、ってのに依存する話なんだよね。 想定外の仕様変更が来ると全然ダメで、結局一から作り直しになったりする。 ほとんど変更前と同じコードを一通り書き直してると、OOPって再利用性低いな、とか感じる。
597 :
デフォルトの名無しさん :2009/03/12(木) 03:00:35
>>540 昔ながらのソフトウェアの受注開発形態って具体的にどういうヤツ?
再利用性で言うなら関数を値として扱える関数型言語のほうがはるかに再利用性の高い関数が作れるよね
何で?
>>596 それ、おまえがヘッポコなだけ。
OOに文句を言うのは、リファクタリングツールを自作するぐらいしてからにしろ。
class hoge{ int i; public: int getI(){ return i; } setI(int n) { i = n; } } こういうのってiをpublicにしちゃダメなの? 隠す意味がわからない。
別にオブジェクト指向ならではというわけではないけれど、 関数に閉じ込めておけば、値の範囲を確認したり、 void setI(int n) { if (n < 0 || n > 1000) throw std::out_of_range("hoge::setl"); i = n; } 後の実装の変更の影響を最小限に留めたりできるというのが一般論。 class hoge { foo f; public: int getI() { return f.getI(){; } setI(int n) { f.setI(n); } }
まぁ、殆どの場合杞憂に終わるし、リファクタリングツールも有るしで なんだかなぁでは有るが、よそのライブラリがプロパティには対応してるけど フィールドには対応してないとか最近ありがち。
実用的な効能としては、デバッグが楽になる。 セットしてる値をログに吐き出したり、デバッガでブレークポイント張ったりとかできるので。
>>596 アプリケーションロジック全部書き直しというような無茶な仕様変更が
きたとしても、ロジック部以外の周辺コードはたいてい使いまわしが
効くだろ。
特殊な理由かも知れないけど、一般的にフィールド値をpublicに してしまうとそのクラスをスレッドセーフにするのが難しくなる。
あたりまえ。 javaならpublic finalとかすればいい
またOOが分からない連中による言語仕様論争がはじまった
またOOごときでプログラミングをマスターした気になっている奴が来た
どでもいいけど, 「Smalltalk とか CLOS とかの OO とC++ とか Java とかやってる 連中の OO ってのは, 言語じゃなくて、Object の捉え方が違う ので, 同じ土俵で語っても仕方がない」 ってな事は理解できた
基本的にImmutableにすればいいよ
本物のオブジェクト指向でスゴイはずなのに、 まったく流行らないSmalltalk・・・なんで?
>>612 そこらのエンジニアとかプログラマが、
手続き型言語から抜け出せないから
614 :
デフォルトの名無しさん :2009/03/12(木) 20:19:56
OOが普及してからお手軽言語が少なくなった。 PerlやらRubyやらPythonやらがあるではないか、という声も聞こえてきそうだが その程度で解決するほど生易しい問題ではない。 簡単に試して簡単に結果を得られる、そんな恩恵を広範なエンドユーザーが受けられる言語なんてほとんどない。 要求される学習量が大きくなることで、エンドユーザーはプログラミングを諦め、 PCはアプリを走らせるだけの道具としての意味しかなくなる。 いわばPCのWii化、プレステ化だ。 ニョキニョキとスクリプト言語・簡易言語が出ては消えて行くが、最近ではそれら全てがOO実装で、 それがエンドユーザー・コンピューティングの障害となっている。 やはり、言語もプロ用だけでなく、プロアマの別なく使えるものが必要なのだが、 道具としての言語を作る側がプロであるために、「今時の言語ならOOは当然」ということになってしまう。 エンドユーザー言語なら用途は広くなくていい。 言語と呼ぶのも恥ずかしいほど単純なもの、プログラマブルなツール程度でいいのだ。 OOが有用な道具であることは疑う余地もない。 だが、OOの本当の問題点はその押し付けがましさにあるのだ。 あらゆる言語、あらゆるプログラムをOOの色に染めようなどという陰謀は潰さなければならない。
>>613 smalltalkも手続き型言語じゃん
>>614 君、カラオケではマイク握って話さないタイプでしょ?w
自己陶酔型って奴だな
>>614 >ニョキニョキとスクリプト言語・簡易言語が出ては消えて行くが、最近ではそれら全てがOO実装で、
>それがエンドユーザー・コンピューティングの障害となっている。
たいていの言語はオブジェクト指向でプログラミングしなくても良いようになっているはずだよ。
(クラスを使うことがオブジェクト指向プログラミングではない)
>>617 UNIXのシェルや昔のROM BASICみたいに、「電源入れれば顔なじみ」で
「興味に任せてコマンド打てば何となく動く」環境ではないことも関係あるだろう。
だが、OOの影響は否定できない。
OO実装の言語の入門書のほとんどはOOについて触れている。
「読み飛ばせばいい」というのは簡単だが、エンドユーザーにその判断をするのは難しい。
また、OOらしくないプログラミングだけをしたとしても、端々にOOの影響がにじみ出る。
OOに適した言語で無理やり非OOをするのは、エンドユーザーには難しいのだ。
>>614 シェルスクリプトでいいやん。
Windows的にはバッチファイル?
それに、コンピュータをネットワークの向こうに追いやろうって言ってるのに
エンドユーザコンピューティングなんて今更はやらないし。
>>619 winのバッチ。
ありゃダメだろ。
貧相過ぎる。
俺はあれでアドベンチャーゲームやアクセスカウンター作って遊んだことがあるけどな。
単なる暇つぶしとして。
OOなんてそのへんのものに指示を与えればいいだけやん。 どこが難しいんかわからん。 昔プログラミングとかかじっとったおっちゃんが 「最近のプログラミングはややこしい」って言ってるだけにしか見えん。
>>621 今の人ならOOのほうが理解しやすいかどうか。
おそらくNOだろうな。
おっちゃん「最近のプログラミングはややこしい」
若者「クラスのオブジェクトにプロパティーとメッソッドが・・とか言ってんの、ウゼー」
こういうことになるだけ。
> 言語と呼ぶのも恥ずかしいほど単純なもの、プログラマブルなツール程度 仕事ならVBA、遊びならHSPでFA 異論は認める
>>615 イマイチ手続き型じゃないんだよな
関数型でもないんだけど…
>>622 原始人がマンモスを狩るのに、石ぶつけて殺せばいいじゃん、槍なんか作るのめんどくせぇ、
と言っているの似ているね。
エンドユーザ・プログラミングの普及率は UNIX >= Linux > Windows だろうね。 同じ「エンドユーザー」と呼ばれる人々でも、UNIXやLinuxのほうがWindowsよりも 平均してハイレベルだから。 勤勉な人はシェルスクリプト程度でも使わないより使った方が 比較にならないほど便利であることを知っている。 労力を惜しまなければTeXのほうがWordよりも美しく仕上げられることを理解している。 愚者ほど「便利」という言葉を「学習しなくても直感的に使えること」と定義したがる。
>>625 そりゃ極端だ。
パンクしたら自分で修理。
壁に棚を取り付ける。
ふすまの張替え。
そういったことすら自分でできなかったら不便だろ。
それと同じこと。
プレストレストコンクリートがどうだとか、そんなことは知らなくてもいいが
日常を便利にする技術は必要だ。
PCの世界ではそれすら廃れているから困る。
手続き型が好きな人は昔のBASICをGOSUB無しで使えばいいんじゃね? OOに留まらず構造化チックな事は一切出来なくなるぞ。 FOR文ぐらいは使うのは許してあげる。
関数使おうが手続きは手続き
手続き型と構造化っていつから矛盾する概念になったの?
>>628 OO も普通に立派に手続き型なんだがwWW
Java/C++ 関数をデータとして使えないので屑
C++0x で lambda が全うに使えるようになったら
し腰だけ認めて上げよう >C++
手続き型言語って破壊的代入を許す言語のことじゃないの?
>>631 〇 し腰だけ認めて上げよう >C++
× 少しだけ認めて上げよう >C++
>>632 一番でかいのは関数をデータとして扱えないところだと思う
>>634 ファーストクラスファンクションを認める言語でも破壊的代入(あるいは副作用)がある言語はいくらでもあるよ。
オブジェクト指向はオブジェクトとオブジェクトの通信によって成り立つものだよね。 それを包含する概念っていえばpi-calculusだね。
オブジェクト指向をもっと一般的に捉らえるべきじゃない? それがオブジェクト指向の次の段階だと思う。 その一つの選択肢としてpi-calculusというのがあるわけで。
>>635 そだよ! つか、そこまでピュアな関数言語ってそんなにないし…
どこのクラスから使われるかも知れないけど、この引数をもった関数を
渡したい場合は山ほどあるし、その関数が引数見てディスパッチしてく
れたら、幸せになれる局面はたくさんあるんだが…
そんなことすら出来ない、C++[1]/Java は屑
[1] ここで boost の lamda 出さないように
boostのlambdaって偽lambdaじゃん。
先生、C++0xのラムダは挙げていいですか?
a
λλλλλ....
うつむいた人が、トボトボ歩いてく・・・ まるで壊れたプログラマの列のようだ・・・
death☆march〜死の行進〜
λで歩いてたら占い師に声掛けられた
>>633 「し腰」であってるなら訂正しなくても。
647 :
デフォルトの名無しさん :2009/03/13(金) 23:42:26
もうだめかもわからんね
経済危機を脱する処方箋はすでに解っている。量的緩和だ。 なのに日銀はかたくなにその実行を拒否している何故か? 不況を脱出する政策もすでに解っている。給付金だ。(ただし額が足りない。今の100倍は必要。 それを毎年やることだ) なのに国民にはきわめて評判が悪い。何故か? 今の日本(いや世界は)は生産力余りまくり。足りないのは需要。未来はIT化とロボット導入が ますます進み、失業者は増加する。 金は、配ればよい。その裏付けとなる生産力はあるのだから。 なのに、「働かざる者食うべからず」「モラルハザードだ」という旧来の道徳・価値観が これらの人類の次のステージを邪魔している。 この道徳教育は糞。これを推進すれば、未来の日本人は人類の中でもっとも割をくうだろう。 そして、予言しておく。アメリカは消費大国として復活する。 「人間は、労働から解放されつつあるし、そうあるべきだ」この新時代の真理に 気づくべきだ。
650 :
デフォルトの名無しさん :2009/03/14(土) 22:35:46
素人が普通にPC使うのに、CもJavaもまるで必要ないんだよなぁ。 プログラムなんて所詮、自己満足のゲーム作るぐらいしか用途ない。
釣りにしてもあまりに無知すぎてかわいそうになる 目に見えないからって、電気なんて必要ないと言ってるようなもんだぞ
>>651 多分解釈が違うんじゃなかろうか
>>650 は恐らく普通の人がパソコンを使う限りにおいて、直接コードを叩くことはないと言いたいんだと推測される
>>650 つ便所の壁
んで困ったときは何もできずに人に委託するんだよな そうやってパソコンのトラブル解決屋っていう需要を生み出せるならいいんだけどね
サーバー管理者なんかはほとんどコード書かないんじゃね? 社内ネット環境の構築とかPCの設定ばっかりで。
( ゚д゚)
>>654 釣りにしてもあまりに無知すぎてかわいそうになる
バックドアしかけたりとか色々あるだろ。
>>654 シェルとperl書けなきゃ鯖缶なんて勤まらんぞ。
659 :
デフォルトの名無しさん :2009/03/15(日) 09:19:58
パソコンなんてまだまだ発展途上なわけで、ウマウマとか赤ちゃん言葉で話しかけないと反応しないだけだ。
コンピュータは進化してるがパソコンは退化してる
661 :
デフォルトの名無しさん :2009/03/15(日) 11:13:29
ワシのようにサーバー管理者の管理者になると、シェルもperlも 書かなくなるな。C言語はわすれかけとるが、代わりに趣味のスペイン語は だいぶ上達した。
Es maravilloso.
オブジェクト指向が消えたら、OSが全滅しちゃうじゃん
鯖管なのにcoreダンプ解析してた俺。 障害発生したのはうちのプログラムが原因だということを突きつけないと 開発部隊が動かなかったからな。
それはいわゆるコミュニケーションスキルという奴が君に足らないからでは?
開発部体は海の向こうで英語喋ってる連中だし、 ただの鯖缶の俺と開発の連中の間には四人くらいマネージャがいたし まぁそういうこともあってコミュニケーションに問題があったことは確かだな。
この業界はアカデミックな人達のレベルが低いから、 彼らが次々に発表する「新しい」ものを疑うことから始めないと駄目だね。
ん〜、例えば最近ではどういう「新しい」もの? 具体例を2・3個ヨロ。
この業界にアカデミックな人なんてほとんどいないじゃん。
どの業界だよ
このスレは知ったかぶりさん達のレベルが低いから、 彼らが次々に書き込む「もっともらしい」ことを疑うことから始めないと駄目だね。
現場で人手が足りなかったら必要なスクリプトでも何でも書いてやらないと仕事にならないだろうけど でもそれはオブジェクト指向でなくてもできることだから、あんま関係ないよね。 661さんみたいに現場から離れるとさらに関係なくなるし。
現場から離れてプログラミングへの興味を失ってスペイン語の勉強してるような奴がこんなスレに来るわけ無いだろ。
>>668 具体的なネタは2chには書かないよ
そういう書き込みで情報のタダ取りを狙うのはよく訓練されたネラーだけどね
Hasta la vista
>>658 シェルスクリプトは書くが, シェルを書くほど暇じゃねぇぞ
>>674 知らないなら最初っから「見てきたようなウソ」書くなよ。
>>668 オブジェクト指向 ajax クラウドコンピューティング
クラウドというとどうしてもKuraudさんを連想してしまって駄目だ
オブジェクト指向なんて約40年も古い技術なのだが?
>>682 ajaxだってjavascriptがIEに乗った当初からコンセプトはありました。
だからいつ考えられたかじゃなくていつ流行ったかが重要です。
OOが最近の流行だと思ってる時点でダメだろ。
最近はなにが流行ってるの?
んなもんウォーターフローに決まってんだろ
うさんくせーのは アジャイル 関数型言語
>>689 うさんくさいどころか、確実にダメなのが、おまえw
>>689 アジャイルは単なるライフハック
関数型言語は別に何のことは無いものだが、たいていはセットで数学がついてまわる。
言語を使う分には関係ないけどね。
圏論とかか。 なんか料理を作るのに包丁鍛冶の修行始めましたぐらいの 遠回り感があるんだが、出来の良い包丁やレシピが揃うのを 待っていては結局町の定食屋にしかなれんのかね。
>>692 > なんか料理を作るのに包丁鍛冶の修行始めました
料理を作るのに栄養学の勉強を始めました
の方が近そう
言語勉強する前にCPUの勉強からはじめるようなもんか
せいぜいポインタを理解する為にComet2触る程度だろう そんなに遠回りな気はしない
圏論の本って、特に日本語の本はたとえ話のネタとして群論とか 環の論理を持ち出すようなのばっかりだから。 数学未満の算数どまりの俺様には遠回りしようとしたら冬の雪山、 右も左も分からずそのまま遭難って感じ。 春山登山のシーズンになったら恐らく雪の中から見つかるので その時はよろしく。
>>694 クンパイラ技術が発達していなかった当時の、
データフローマシンとかは「CPUの勉強」って言うより
「CPU アーキテクチャに合わせるにはどんな言語が必要???」
ってなことは、あった
オブジェクト指向を学ぶんならSmalltalkやるのが一番の近道
いいえσ計算です
>>697 言語に合わせてCPUアーキテクチャを作っちゃう、そんな時代も
ありました。
>>694 素晴らしく正しい勉強方法に見えるのは気のせいか?
That's right.
>>661 スペイン語はやめとけ。イカデビルになるぞ。
>>701 学生なら正しいけど、社会人は時間がないから無理だろうね。
CPUってそんなに難しいか? 言語勉強する前に知っておいた方が良いCPUの勉強なんて 言語入門の最初の日の午前中だけで終わるだろ
言語とか目的とかによるでしょ。
基本的に物理ポインタ隠蔽されててガベージコレクタ持っている
昨今の高級言語であればそもそも言語を学び始めるのにCPUの
勉強が必要だとは思わない。
他方組み込みとかだと必要だし午前中じゃまず終わらん。
想像するに
>>694 は「Javaを使うのにまずJavaVMの仕様から」系
の回り道を想定しているのではないかと。
ポインタが隠蔽されてても、リファレンスとか言いつつ概念は表に出てくる Javaなんかの整数値は値コピーで、オブジェクトはリファレンスで引き回す ような仕様って、CPUのレジスタのイメージが無いとよくわからないじゃないかね まる覚えで疑問覚えない人もいるだろうけど
>>708 だって仮想マシンですから。
JavaVMってようするにOOP用の仮想CPUエミュレータでしょ?
710 :
デフォルトの名無しさん :2009/03/17(火) 08:00:29
javaは文字列まわりの壮絶なクソさ加減をどうにかしてほしいよね 結局ポインタ理解してないと困るじゃんな 誤魔化しもいいとこだよね
>>705 社会人だろうが学生だろうが一緒w
基礎が出来てない奴ほど学習能力が低くて役に立たない。
>>706 CPUを作ってから言え。
理解したなら作れるだろ。
>作ってから 東大行ってISに進めということですねわか(ry
CPU実験は伝統だよなw
基情で出題されるレベルのCPUの説明程度じゃぜんぜん実感わかないと思うけどねぇ。 CPUをFPGAで作って、そのCPU用のMLコンパイラまで作って、初めてCPUを理解したと感じたんだよなぁ。 まぁ、あの時作ったCPUはふざけて変な命令まで仕込んだけど若気の至りって事でw
情報系の学部ならたいていやってるだろ > CPU作成
オレジェクト指向は未来永劫不滅ですか?
>>721 ああ、それ買ったけど、あまり実用的な知識は載ってないよ。
コンピュータとも言えないような代物を74シリーズで作ってみようっていう話。
CPUの効率化・高速化の話には微塵も触れてない。
> CPUの効率化・高速化の話には微塵も触れてない。 その辺は、基礎的なものを自分で作れるようになってからだな。
そう言えば、 unisysになる以前のバロースなんてB5000とかB1700とか 滅茶苦茶おもしろそうなCPU作ってたのな
726 :
デフォルトの名無しさん :2009/03/17(火) 20:04:07
宣伝乙としか
>>713 低レベルのレイヤーが基礎とは限らない。
729 :
デフォルトの名無しさん :2009/03/17(火) 22:13:54
本当に素朴な疑問。 今まで生きててオブシコによってコードが再利用されたのを見た試しがないんだが どこでどうやって「オブシコはコードの再利用性を向上させる」という都市伝説が生まれたのだろう…
>>728 間違いなく基礎。
仮にHaskellのように高度に抽象化された関数型言語であっても
CPUがどういう風に処理するのか分からなければ効率的なアルゴリズムは考えられない。
基礎って学問における「共通事項」のことなんだよね。 言語が違おうがパラダイムが違おうがCPUの構造は共通事項だ。
ということは圏論は基礎か
アセンブラ知ってる奴が、時間を無駄にしたって思いたくないだけだろ。
俺も流行に乗じて圏論を勉強したが、 圏論は共通事項なのか・・? Haskellは単に圏論"っぽい"概念を持ち込んだだけで、圏論で抽象化しているわけじゃないし、 言語の重要な要素というわけでもない。
たとえばCの入門書を一通りやったやつが、次にどっちを読んだらいいですか? って、 アセンブラの本と基礎的なアルゴリズムの本をみせたら、アルゴリズムのほうを薦める。 (別に両方やってもいいけど) これからそいつがやりたいことにもよるけど、そんなに優先度高くはないわな。
>>729 別に自分の書いたコードを再利用する必要なんてどこにもない。
標準だったりそうでないけど有名なものを引っ張ってくるだけのこと。
やりたいことをやるのは結構だけど、 作ったものがどういう仕組みで動いているの?っていうのも自然に沸いてくる興味だと思うよ。 そういうことを追求していると基礎に帰着するんだよね。 自分で作ったものがどういう仕組みで動いているのかって意外と知らない人がいると思う。 動いてるんだから良いじゃないか、っていう人が定年35歳の人だろうね。
>>734 ただ単に自分の知っている事なら何でも基礎だと言い回りたい
奴が張り付いているだけじゃね?CPU云々も一体どのレイヤー
のことを含んで基礎といいたいのかハッキリさせないし。
圏論も全然基礎だとは思わない。
>>732 も疑問系だし。
個人的には基礎だと言えるほど計算機屋さんが学べるインフラ
も特に日本語ではまだまだ整っていないと思う。
>>729 オーバーライドしてる時点で再利用してる。
「基礎」も階層構造になっているようです
>>737 物事を始めるに当たっての基礎と実現技術としての基盤は区別しようぜ。
でないとプログラムを学ぶ前に井戸型ポテンシャルとかバンドギャップから
勉強し始めることになる。
基礎なんてやりたい事やってるうちに覚えるくらいでいい
>>741 「共通事項」を見出す能力の問題。
極論を言う奴は単に逆らいたいだけの中二病なんだろうなぁ。
極論は説得力が無いし、もし分かってて書いているなら誤魔化しで書いてるだけなんだろうなぁ。
自分に自信がないんだろうなぁ。
>>742 まぁ、やりたいことだけやってれば良い人はそれで良いだろうけどね。
それってニート?w
まともな意味で再利用されることなんてまずない でも、再利用してコストを下げます、っていうと上の方には受けがいい それだけ
再利用したいコードも再利用できないこんな世の中じゃ オブジェクト
中途半端に勉強するのが一番育たない
>>729 GUIライブラリを使ったことないのかね。
>>733 マジレス
比較的若い世代のアセンブラ使いはRubyとかの高級なOOPL嫌いな人はあんまり居ない
>>729 オブジェクト指向の売りとして「継承による差分プログラミング」が喧伝された時代があった。
この継承による差分プログラミングを指して再利用と言っていた。
この主張は現代では絶賛否定中。
他のパラダイムと比べて、オブジェクト指向のコードは再利用しやすいと言う主張は古い、と思う。
変わりに、デザインの再利用ならデザインパターンの頃から強調されている。
最近はもっと新しい主張があるかも。
再利用するためのコードを書きやすい、位ならあるかもね。 フレームワークとか作るのは便利。
生産性の向上という言葉にみんな騙されてたわけやね まあいつの時代もバカの一つ覚えみたいにそう謳ってるわけだが
とはいえ、構造化よりはオブジェクト指向のほうがモジュールの独立性があがるから まともに作ればテスト、デバッグ、保守、仕様変更はしやすいんだけどね。 まともに作らなければ酷いことになるけど。
まともなオブシコ設計を考えられる奴は100人中1人いるかいないかだけどね。
オブジェクト指向は最先端の主張が結構変化するからね。 もうちょっとこなれてくるといいんだけど。 あと、まともな構造化を考えられる奴も実はあまりいないね。
>>750 継承を用いた場合の利点って、実装工数を下げるということよりも
ポリモーフィズムを用いて結合度の低いきれいな設計ができるってことだよね。
まぁ要するにインタフェースなんだけどね。
いまどきはwebのuriがAPIでオブジェクト指向を標榜しているところがありますね
>750 >「継承による差分プログラミング」が喧伝された時代 その時代は、かなり長かった気がするなぁ。
今は インスタンス生成による省略プログラミング とか インターフェースやファクトリによる差分プログラミング が主流だな
アウトソースで
>>736 > 別に自分の書いたコードを再利用する必要なんてどこにもない。
> 標準だったりそうでないけど有名なものを引っ張ってくるだけのこと。
>>748 > GUIライブラリを使ったことないのかね。
それらはオブジェクト指向じゃなくても元々出来ていたことだから
オブジェクト指向でコードの再利用性が向上したとは言えない
OOによる再利用はよくライブラリの再利用で議論されるが、 逆にライブラリを使う側のコードの再利用のほうに効果があると思う。 ライブラリ側の変更のインパクトがクライアント側に及びにくい。
>>762 俺、オブジェクト指向じゃない言語なんてあんま知らないんだけど、
配列やテキストボックスを継承してちょっと拡張したりってのは
Cとかでも出来たってこと?
普通に出来るだろ。
おー知らなかった。Thx。 なんだ継承ってのはOOP特有でもなんでもないのか。
>>766 OOPってのはプログラム構造であって、
言語によって (サポートがない分) 煩雑にはなるが
できないわけではないし、やっている例もある。
(例えば、Motif のボタンはラベルから派生している)
…つか、「OOPL で書いたら OOP だ」と思ってるタイプか。
C++出始めの頃は、C++をCに変換するコンバータがあったし。
>>769 C++ は, 最初は C のマクロパッケージだったんじゃないか?
>>771 マクロじゃなくて、プリプロセッサとして実装されていた。
>>764 出来ないとすると...
SDKでどうやってプログラムするんだ?
>>764 Cならたいていのことはできるけど、C全盛の頃は配列は配列としてそのまま使うのが普通だったな。
わざわざ配列を継承して差分だけ書くなんてことしたことない。
そういうことが考えられるようになったのはオブジェクトや継承の概念が浸透してからのことだと思う。
当時の頭でCを使って書くのと、今Cを使ってオブジェクト風に書くのを比べたらだいぶ違うソースになるだろう。
結局のところ
>>760 90年代前半のCマガジンとか見れば普通に出てくるはず。
後半でものってそう。DDJJとかもかな。
設計とかよりも、実装方法に主眼が置かれていたのが特徴。
今でも売ってる本なら「憂鬱なプログラマのためのオブジェクト指向開発」なんかが
そんな感じじゃなかったか。(記憶あいまい)
出た当初はいい本だと思ったが、後年よんだとき酷かった覚えがある。
そういえばオブジェクト指向アセンブラとかあったな。 どんなものか知らないが、興味あるなあ。
>>764 できるけどやらない。
そんなまねをする奴は道具の使い方を間違っている。
バイナリエディタさえあればどんなプログラムでも書ける! みたいな主張は嘘じゃないけどさ。
>>778 マクロ使って構造化アセンブラ作って、ピープヒールオプティマイズ
するあたりまでは、普通の病人なんだが
> オブジェクト指向アセンブラ
って、どこで見かけた???
C++出始めのころは、オブジェクト指向といえば Smalltalk のことで C++は抽象データ型言語、ぐらいの位置づけだったのにな
>>781 10年ちょっと前のTASMにそんなコピーがついてた。
Delphi付属だったかな?
>>777 いや、ごめん、現在絶賛否定中のほうのソースね。
>>784 その辺のオブジェクト指向の本を読めば、
実装の継承って普通に忌避されてないか?
具体例だと「オブジェクト指向のこころ」とか
>>785 いや、別にそんなの見かけないけど、具体的にどの本に書いてあったのを見たの?
>>785 酒入ってるんではずしてたらごめん
# 話の流れについていけてないかも知れない
X の toolkit あたりは普通に継承してるんだが…
ITProにはこんなことが書いてあった。 でもそれは実装の継承を忌避するというよりも、 「実装の継承もいいけどインターフェースももっと使おうね」 という意味だと思うけど。 > オブジェクト指向開発におけるクラス継承の位置付けも, > 昔と今では開発者の間での認識が少し異なる。 > 昔は,継承と言えばまず実装(コード)の再利用を思い浮かべる人が多かったはずだ。 > 確かに,オブジェクト指向になじみがない人にとって, > 実装の再利用が最も分かりやすいメリットなのは間違いない。 > しかし,現在では実装の継承よりも,多態性を利用するためのインタフェースの継承のほうが重要だ > という認識が広まっている。「継承は多態性のための手段に過ぎない」とまで言われることもあるほどだ。
790 :
デフォルトの名無しさん :2009/03/18(水) 21:19:53
実装の継承が有効なコードって、GUIのように結構限られてるからな。 インタフェースの継承はもっと一般的に使える。
>>788 インターフェースって、はっきり言ってC++系の言語が錯誤に陥ってる最低の部分だ罠
C++もJavaもC#もSmalltakとかCLOSあたりの考え方採り入れるべきだと思う
つか、あのpublicやらprotectedやらprivateなんて隠蔽って全然意味がないし
流行りのデザインパターンだって、ほとんどSmalltalkからのぱくりじゃん
別に○○がいいよ、とか言われたって場合によって違うんだから、本になにが書いてあろうと関係ない。 昔のオカルト本みたいなもんだよ。 根拠のない神秘主義、ばかばかしい。 便利だと思った構造を使えば良い。 どうせ剣道や柔道の型みたいなものは無いんだから。 あるとしてもせいぜいGOFのデザインパターン?ってやつ? 胡散臭いけど。
>>792 禿同
いま必要なのはオカルトよりも科学。
プログラミングには体系的な形式化が必要だと確信している。
C++に関しては、Cと同等の自由度と速度を維持するのが使命だから仕方ない面はあると思ってる。
>>793 一口に科学っていっても、経済学みたいなのもあるよ
796 :
チラ裏 :2009/03/18(水) 21:35:53
MSDNライブラリとかJava APIドキュメントとか見てつくづく思うんだが、 多くの人に再利用してもらえるようなコンポーネントやライブラリを作る・メンテナンスするのって 本当に難しいよね。時間が経てば経つほど過去バージョンとの互換性維持が難しくなっていくし、 新しい技術にも対応しなきゃいけないし……とかやってると、あっという間にコード規模が膨れあがるしで。 そういった問題を解決するために、「継承による差分プログラミングで実装工数を低減」だの 「ポリモーフィズムによる結合度の低いきれいな設計で拡張性と保守性を向上」だのとオブジェクト指向の特徴が 一時期もてはやされ、今は下火になって残念感が漂ってるけど、それ自体はすごく有用だし効果があると俺は思うよ。 ただ、オブジェクト指向だけでは解決できないほど問題が複雑すぎた……っていうか、問題の大きさの前に、 オブジェクト指向だけでは非力だったんだとも思う。結果、プログラマや設計者に多くの知識や経験を求めないと 現場で実践できない難解なパラダイムになってしまったんではないかと。 ってことで、俺的には「オブジェクト指向は基礎技術としては有用・必要だが、現場の人間が使うシロモノじゃない」 と思ってる。消えて無くなるのは非常に困るけど、銀の弾丸じゃないと割り切ったから期待もしてないって感じかな。
現場の人間でも普通に使える技術だが?
>>795 だよなあ・・・無理に、より学問らしくしようと数学使ったりもしてるし
もちろん、これはっていうアイディアも多々あるけど
結局のとこ人口が多い国が強かったり、資源あるとこが強かったり。
「金融工学」なんて胡散臭いことこの上ない。
>>796 問題なのは
「要求分析から設計からコーディングまですべてオブジェクトにすればいい」
って、風潮だろ?
俺的には、業務系でオブジェクト分析とか言ってる奴等が一番信用できない
本音:
「なんで、大昔からあんな巨大な工業プラントが OO の考えを必要とせず
動作してるんだよ?」
要らないじゃね? 上流工程の OO
>>796 問題が複雑過ぎたっつーより、何でもかんでも.NETやJava標準APIでやろうとしすぎなんだよ。
>>787 ここで言ってるのは、「既存のクラスと似たクラスが欲しくなったときに、
そのクラスを継承して気に入らないところだけオーバーライドすることにより、
既存のコードに触れることなく、機能を変更できる(=既存のクラスを再利用できる=生産性が高い)」
という主張のこと。
今日では、こんな継承関係が無茶苦茶になる上にクラスが密に結合するアプローチが
だめなのは自明なので、「だめです。」と明言している本は、言われてみればあまりないかも。
>>785 で挙げた本にしても、クラス間の結合度を疎にしましょう、とかそんな言い方になってるし。
toolkitはソースを見たわけじゃないけど、ちゃんと設計して実装の継承をするのは当然あり。
GoFのパターンにもテンプレートメソッドパターンとかあるしね。
>>792 デザインパターン以降くらいからは一般の趣味プログラマが読むような本でも、
まっとうに進歩してると思う。少なくとも腑に落ちる。
>>799 たまに業務系の作業手伝うと、もっと効率化したらいいのにと思えることはたくさんあるよ。
別にOOである必要は無いけど、OO入れれば今よりは効率化できるんじゃね?とおもう。
>>803 業務系の場合、習熟度の低い要員を大量に投入せざるを得ないから、
効率が悪くても、分かりやすいほうが好まれるとおもう。
きれいな設計にしても維持できる体制がない場合が多いし。
>>791 C++はCLOSの影響が凄く強い。
マルチディスパッチの汎関数。特殊化。
Lisp→CLOS ∽ C→C++と考えていいくらい。
現場というときはどんな現場にいるのか前提がわからんとなんともいえない。 ゲーム系、組み込みマイコン系、Winアプリ系、サーバ系、勘定系、数理系などぜんぶひっくるめて 同列で語れるわけがない。
>>791 クラスを作る人(=比較的高レベル)と使う人(=比較的高レベル)に分かれている
Javaとかの方が、使う人だけ大量に動員すればよい業務系には向いているとおもう。
>>803 そっちはそれ以前の問題だろ?
OO 設計できますとか言ってる連中って、まとも機能切り分けのしてある
ブロックチャート書けない奴の方が多いんだもん
システム設計って言うのはどこからどうゆう入力が入ってくるかを分析して
どこに何を出力しなきゃいけないかを決めることだろ?
当然、入力の中にはエラーとか外乱ってものも考慮されてなきゃいけない
はずなんだが、要求分析のクラス図書いてる時点でエラー分析とか外乱要因
切り捨ててるんだからまともに動くはずがないと思う
そもそも(エラーも含めた)入出力に関してはシーケンス図や状態遷移図を書くべきであって、 クラス図で表すものじゃないだろ。
>>808 > システム設計って言うのはどこからどうゆう入力が入ってくるかを分析して
> どこに何を出力しなきゃいけないかを決めることだろ?
ちょww
それは古すぎるような…
伊東へ行くならハトヤ鳩屋に決めた
>>809 > 入出力に関してはシーケンス図や状態遷移図
だから、
「こんな入力(たぶん、この辺でエラーがあるし外乱もあるはずなんだが…………)
をこんな出力にするためにはどんな機能が必要か?」
を、考えなくて
「わたくしは、``OO 分析/設計'' が出来ます!!!」
って、のたまわる奴が多すぎだって言ってる
>>810 なんで?
素粒子から生物や人工物に至るまで、すべて
「入力に対して何を出力するかの状態機械」
と見做すことが可能だぞ?
>>813 > 「入力に対して何を出力するかの状態機械」
> と見做すことが可能だぞ?
Blackboxかよw
こりゃ設計も糞もないな。
>>814 だから、どんな入力があるのかも分析しない奴が多すぎだって言ってる
まぁ、俺は、元がハード屋なんで
データ: メモリ or レジスタ
メソッド: ロジックパーツ
メッセージ: 伝送線路
として、信号処理系の一形態として分析してしまう悪い癖はあるが、
伝送線路に外乱が入るとかエラーが発生するとか考えないやつ多いぞ
クラス構成考えてるときに、いちいちエラーまで入れた状態遷移を考えてないのはその通り。 でも、エラーまで入れた状態遷移を考えてるときにそれをどう実現しようかまで考えて無いのも事実。 入出力の設計ができたとしても、中身を考える力がなければぐちゃぐちゃなコードができるだけ。 入力されたものを、出力に変換するためにぐちゃぐちゃなコードを弄ってるのは時間の無駄じゃね? それよりOOとか使って綺麗に設計されたコードを弄ってる方がよくね?って話。
>>816 あぁ、なるほどね、C++/Java 系の OO になじめない理由が分かったような気がする
メッセージ(信号)が主役かクラス(パーツ)が主役かの差だわ
y = f(x) で、定義域 x と、値域 y が厳密に決定されれば中の手法は問う必要は
感じないが、関数 f が巨大だと分割するじゃん。
で、f -> g.h に分割された g と h の入出力をきちんときめられない奴が多い
ありゃ? これはもしかして, インターフェース設計できない奴多すぎって話だな
で、これって俺的には OO でも何でもないんだがw
きちんと設計されれば、gとhは疎結合だからね。 細々した入出力を決めないといけないという時点でダメダメ。
>>817 Javaは例外をインターフェイスとして宣言させるようになってるんだが、
きっとそう思ったやつがいるんだろうな。その後どうなったかはご存じの通りだ。
後発の言語も完全に無視してるしな
>>817 惜しい!
そこまで機能分割してインターフェイス設計までできたら、後は個々の機能を実行するオブジェクトを作って
メッセージ投げたらそれに反応して動くようにすればオブジェクト指向になる。
>>817 C++/JavaがOOってのは、OOブームに乗っただけだしね。
クラスが定義できればOO言語だと思い込んでる奴が多そう
OOだと、メッセージもオブジェクトとしてとらえるのが普通だな。
>>821 静的かどうかより、オブジェクト指向かどうか、じゃない?
C++がOO言語だとする場合、「メンバ関数の呼び出し」=「オブジェクトにメッセージを送る」
ってことだけど、実際C++プログラマがメッセージを送るアナロジーで考えてるとは思えない
>>817 それは関数型言語の設計に近いね。
だから彼らは凄く汎関数指向への愛着が高い。
隅々まで良く知られた関数を使えば、
手書きした関数を一つ一つ検証する必要がないから。
コンポーネント指向が非常に強い。
汎関数の組み合わせで書ければ、少々パズル的になることも厭わない。
SICPの序文にも、
> Lispプログラムにおいては、
> 関数の有用性が当初の目的である応用に収まらないため、
> ライブラリが膨張していくのである。
とある。
>>824 > オブジェクト指向かどうか、じゃない?
こういう切り口は言葉遊びになりがちなのでやめませんか?
>>824 最近のオブジェクト指向のデザインの本なんかを読むと、
オブジェクトにメッセージを送る、なんて表現しているものは見ないのだが、
なにかいい本あるかい?
>>791 CLOSの影響があったほうが扱いやすいわな。 総称関数とクラスに分けたほうが、取り扱いが楽だしね。
C++/JAVAのようなOOって構造上カオティックなシステムを作ってしまいやすいし、簡潔に出来ないからね。
>>805 にも書いたが、
C++はCLOSの影響が凄く強い。
CLOSの影響をもっとも強く受けた言語といっても過言じゃない。
>>829 C++はCLOSの表層機能を取り込んで、一番大切な魂を捨てた言語だな。
C++のダメダメなところ 他の言語のいいところをぱくろうとして、言語仕様を拡張すればするほど、 シンタックスが変態的になっていくところ
>>796 > ただ、オブジェクト指向だけでは解決できないほど問題が複雑すぎた……っていうか、
> 問題の大きさの前に、 オブジェクト指向だけでは非力だったんだとも思う。
最近、けっこうこれに同意できるようになった。
るびまで紹介されていたプログラマさんが
「いままで読んだ中で最も美しいソースコードは?」との質問に、
「うん。大きなソースコードは必然的にあまりきれいにならないと信じてる。」
と答えてた。
これを読んだ当時は、そんなわけないだろう、
きれいになることもあるだろう、と漠然と思ってた。
今では、諦めてる。
それと、「銀の弾丸が無い」というより、
「モンスターが闇夜に行進してくるのが見えてない」という感じ。
833 :
デフォルトの名無しさん :2009/03/19(木) 10:52:05
Railsが吐くコード見て吐いた
自動生成されたコードなんて人間が見るものじゃないよな!
なんで?わりと綺麗なほうじゃん Rubyはバグでも無い動作までマイナーチェンジの度に変更しないで欲しいんだが
だれも綺麗でないとは言っていない
>>829 おっしゃるようにジェネリック関数のところにCLOSの影響を感じるけど、気の毒なことにlispは型宣言は後づけになってるから
C++みたいなコンプリケイトな文法にはならなかった。
CLOS的なプログラミングも出来る反面、クラスに関数など全てをもたせるために、複雑怪奇になってるんだよな。オブジェクト
指向でもCLOSは別世界の印象は強いよな。だから、影響はあるかもしれないけど、c++/java系の感覚でしようとすると
理解できないところが多いって印象もある。もっと緩やかなんだよな。CLOSって。ただし、Lispは関数オブジェクトや関数ポイン
タみたいなことは普通にやってる<ファーストクラスの関数だし>から、オブジェクト指向が無くても困らないんだよな。
シミュレーションをするときには便利だけどね。
>>837 > クラスに関数など全てをもたせるために
C++全然知らないのね。
>>838 ああ?、better Cって印象でも使ってたけど。オブ脳の人ってすべてメンバ関数にするんじゃないの? オブ脳の連中の思考は知らんけどな。
俺自分のプログラムで構造体に関数ポインタとかよく使うんだけどな Cなのに foo->func(a, b); みたいな記述がちらほらwww
関数ポインタにあるクラスのインスタンスのメソッドのポインタを代入できますか
>>842 できませんw
それは誰もが通る道。
スタティックなメンバ関数のポインタは代入できる。
メンバ関数へのポインタと、
普通の関数へのポインタは扱いが違う。
あ、それと言っとくが俺はにわか!
くわしいことはプロに聞け!
>>842 ・関数ポインタに
・あるクラスのインスタンスのメソッド(へ)のポインタ
を代入できますか
という構文解析でOK?
>>843 > できませんw
強引にやれば出来る。
なにがしかの値は代入出来るかも知れないが、それをどう 呼び出すかが問題だ。 例えばC++ってメソッドとレシーバのポインタを別々に渡して、 受け側で動的にがちゃこんと結びつけて呼び出すような 事って出来ましたっけ?
メソッドのある場所はレシーバのポインタからのオフセットで決まる?
そういうの気にしなくてよくするために COMがあるんじゃないのか
>>842 C++と仮定すると、関数オブジェクト使えば似たようなことはできる。
>>847 コンパイラの実装にもよるだろうけど、
一般的にインスタンス内にメンバ関数のアドレスは持ってなかった気がする。
(一般的にvirtualがつく関数は vtableに入るんだったっけ?)
束縛と高階関数とカリー化があればいらなくね??オブジェクト指向
いらなくなるかも知れないけど、どっちが良いかはまた別問題。 特に普及を考えた理解のしやすさという点では。 高階関数を使ったときは、OOPでありがちなanimal, dog, catの 例に対応するような説明例はどんなものになるのだろう。
852 :
デフォルトの名無しさん :2009/03/19(木) 19:59:36
>>851 function dog(){
// dogging...
}
function animal(f){
// animal nature
}
animal(dog);
結果:
アニマルとしての犬っぽい挙動
アリスとボブ
またかって感じだけど
なんかよよくわからんが、OOなプログラムと OOな分析とOOな設計を一緒にはなしてないか? o OO な分析 昔からハードやがやってたこととどこが違うの? 場合によるが、普通、まともな設計にたどり行かない ものが動くときの本質を見誤ってる 端的な例は「名詞を探そう!!!」 名詞探してもものが動く分けじゃない o OO な設計 昔からハードやがやってたこととどこが違うの? 再利用なんて、オブジェクトサイズがでかくなると 役に立たない だったら、コンポーネント化 だけど、まともなコンポーネント作るには、賢い 奴等が少なすぎ o OOなプログラム: 場合によってはとても有用
(;´Д`)oOO(OOAとかOODって結局あまり流行らなかったね)
OOoOOOoooOってお前ら幽霊語でも話してるのか?
OOな設計=トランザムで通常の9倍性能うめぇwww
862 :
デフォルトの名無しさん :2009/03/19(木) 23:32:09
oops
OOのアプローチでもまだ属人性が高すぎるんだよね 例えば凝集度を高めつつ、結合度を低くするっていう原則があっても それらのパラメータを形式的に定義できないとかさ 結局良し悪しを判断するのは人間じゃ駄目だよなー
客観的な測定方法がない
OOって結局、人間の観点からコードを概念の固まりとして設計する道具で あえてそれ以上定義しないことで設計パターン発明の流動性を高めてるんだから 突き詰めれば人間の感覚に依存する手法なのは仕方ない。 そこらへんが形式化される(客観的評価が出来る)時って、 プログラマが必要なくなる時にかなり近いと思うが。
形式化されまくってるRDBMS+画面+帳票の世界でもPGが大量に使われてるんだから大丈夫だろ。
オブジェクト指向できちんと設計できるやつって 全体の何割よ? 2割もいねえよな
中途半端に技術がある奴だと、設計なしでも力技でプログラム作れるからねぇ。 逆に技術的には大したことない奴が、教科書的な綺麗なOO設計してる例は何度か見た。
何その自分擁護
870 :
デフォルトの名無しさん :2009/03/20(金) 00:34:26
結局規模が問題になるだけなんだと思うんだが 一人で数十行書けば済むコードならOOもへったくれもないし 数十万行ともなればどんなパラダイムであれそれなりのルールは必要
そうなんだけど、OOが生まれてきた背景には、既存の構造化プログラミングで作った 数十万行ものプログラムをきちんと作って保守していくのが大変だからじゃなかったかな。 OOでうまく継承したクラスがあればコード量が少なくなり、メッセージパシングでやりとりすれば 結合度が緩くなって、個々のオブジェクトをいじってもメッセージとその振る舞いさえ変えなければ 他に影響が及ばないということで、グループ開発も容易になるということだったと思う。 そこで「じゃあやってみっか」という流れになったと思う。
で だめだったと
「だめな子は何をやってもだめ」を証明した、という当然のことを証明したわけだ。
SI業界なんて石器時代かそれ以前
コンピュータ言語の世界で偉大だった発明は関数だけか
関数よりスタックが偉大だった
878 :
デフォルトの名無しさん :2009/03/20(金) 12:16:49
このスレ読んでみたけど、何が正しい意見なのか、全くわかんね。 ある意見が出るとまず前提の否定の応酬が続いて、 それ以上遡れなくなると、結局とかつまりとかのネタレスという流れの連続。 マ一年生のおいらには難しすぎる流れだわ。 カレー食ってくる。
プログラムの部品化なんてシグマプロジェクトでも崩壊したしな
シグマプロジェクトの発想そのものはよかったし、プロジェクトの目指したところは 今現在のインターネットとLinuxをはじめとするOSSによって実現されてると思っていい。 ただ、国レベルでやってしまったので草の根レベルの開発者を巻き込めなかったのと、 予算獲得に群がるベンダーを制御できなかったのが敗因。
>予算獲得に群がるベンダー 国がやると大抵そうなってしまうのはなんでだろうね なんのための補助金なんだか
>>881 > 予算獲得に群がるベンダーを制御できなかったのが敗因。
これが霞が関方面の目的ですからw
あのくらいの予算のプロジェクトなら今も無数に行われていて、
あれはUNIXがらみだったから世間にも名前が知られただけ。
>>884 つーか、揉めたことをつつみ隠さずバラしちゃうオッサンがいたから、というのが真相。
886 :
884 :2009/03/20(金) 14:43:59
そうねw 向こうの人からみれば「お前は何を言っているのだ」だろうけど
>>872 OO語るんならSmalltalkくらい触っとけよ
とりあえず年功序列はやめろ。 50のジジイより俺のほうが仕事が出来る。
で、50をすぎると既得権益を守るジジイになると。
50過ぎて新規開拓とか冒険出来る人を尊敬します
ジジイは新しいことが出来ないから必然的に若者よりも無能になるくせに、 サボる技ばかり磨いてほんとに使えない。 特に団塊世代は無能ぞろい。
ま、そのじじぃ達がいたから今きみらの仕事があるんだがな
ジジイが作ったものの保守とかじゃないよ。 新規開発。
確かに初等教育はジジィから受けたが、既にもらった知識より自分で学んだ知識のほうがはるかに多いし、 教育された分の借りは既に返してる。 何も偉そうにされるいわれは無い。
若者が活躍できる会社です、なんて書いているのはちょっと年取ったら使い捨てってことでも あるしな。そういうのを強調している会社はどこか怪しい、やはり無理してる。 889みたいに素朴な世代間対立みたいなのを信じちゃうのがいるからだろうけど、自分も結局 は歳を取るわけで。 ある程度の年功序列がちゃんと機能する会社や仕事じゃないと、永続しないでしょ、なんて考 え出した俺も歳を取ったということか。
>>896 ジジイはジジイで自分たちにしか出来ないことを見つけて会社作ればいいし、
若者も年取ったらそういう会社に転職すればいい。
終身雇用とか年功序列とかクソだろ。
転職すりゃいいじゃん。
だいたい、歳をとったら新しいことに興味が無くなる、っていうのは迷信。 同じ仕事ばっかりしてたら何かに興味を持つ気持ちなんて沸いてくるわけがない。 時々転職とかしてリフレッシュしないとダメなんだよ。 年寄りだってまだまだ十分働けるところ見せてください。
でも転職が多い人間には厳しいのも現実
そういう会社に転職すればいい、という理屈は自分にも跳ね返ってくるよな。 若いならなおさら、「そういう会社に転職すればいい」のでは? 年寄りに出てってよ、なんて2ちゃんに書いている段階でダメでしょ。 ご自分の高い実力があれば、そういう会社からも引く手あまたなのでは?
>>893 がんばったのは団塊よりちょっと前の世代のひとたちだよ
団塊はバブルでおかしくなったひとたち
彼らがいなくなる5年〜10年先までこの不景気は続く
糞談義はマ板でやれ
マ板向けネタが出てくるとは、もうネタ切れってことなんでしょうなあ
この程度の奴らが、「C++は駄目だ」、「OOは役に立たない」とか言ってても何の説得力も無い
実際金にならないなら役に立たないだろ。
>>904 「C++は(使えないから俺は)駄目だ」
「OO(も理解できない俺)は役に立たない」
じじぃがつかえねぇからおれが活躍できねぇってやつは、 じじぃがいなくても活躍できない。
まぁ、じじぃにもなってまだプログラム言語がどうのこうの と言ってソースコードをシコシコ書いてるヤツは、 技術者と言うよりも人間として無能だろ? 日本の会社じゃぁ、30歳くらいになってエラくなってきたら、 普通、もうプログラムなんて書かない。
>>906 ねえ?これまでこのスレで何を見てきたの?
なんでOOが要らないと思う奴の意見を尊重できないの?w
尊重するに値しなければ尊重できない。
>>910 尊重してたら仕事にならない。
サンデープログラマなら一人で好きにやってくれてよし。
でもC++のメリットって説明できる奴いないよね 具体的な数字で語れる奴っていないのな 特に頭の悪い奴ほどC言語とC++とで同じことやるソースを比較したことがねぇもん だからテキトーなこというから怖い 現実としてC++にしたからといって組まなくていい仕様ができるわけではない 仕様書に書いてあることはC言語でもC++でもどちらの場合も 実装しなくてはならない つまり、この時点で大した違いはほとんどないと言っていいんだけど 仕事にならないまで言っちゃうってのはなんかこれ以上に大事な要素があるということだろうか?
STL使えないと面倒だねぇ。boostの一部も。
>>914 それって自分で関数作れば似たような仕組みできね?
仕組みだけならvoid*だっていいわけだし
いずれにしても工数に影響でるほどじゃないよね?
仮にそれが使える仕事だったとして
C言語の人が見積もった工数に対してどのくらい減らした工数で見積もることが可能なの?
WebKit見るだけで、C++がどれほど有益な言語かよく分かる。 ただしIT土方向きの言語でないのは議論の余地がない。
自分で作った関数なんて、怖くて使えない
コードよりもコードを導き出す過程により大きな差があるんじゃないかな 言語やそれにより使用可能なライブラリによって考え方が決まるとかそういうやつ コードの比較もいいけど、そこに「何故このようなコードになるか」という説明もあるといいと思う
で?どのくらいの工数で見積もることができるの? 数字だせないでしょ? 仕事にならないとかいっちゃうぐらいだから1.5〜2倍速ぐらいでできるの?
>>915 C++がどうのこうのいう以前に、頭が悪すぎて話にならない。自作てw
優れた良く使われているライブラリを使う効用が分からない時点で馬鹿丸出し。
>>920 でもそれは今求められてないよね?
今、求められてるのは工数の短縮の話
C++だと保証できるものってのは会社が求めてもいない安全性(?)でも追求してるのかな?
ちょっと的外れなんだよね
見積もり金額は変わらないと思うが、粗利は上がるwww
うちの会社のCOBLerと同じこというんだな。 「ソースは半自動で生成できるし、口数の見積もりも簡単。 まぁ時代の流れだからオープン系にならざるを得ないんだろうけど、 俺に言わせればCコンパイラの吐く機械語はキモい」
>>921 え?バグ含んでる可能性のあるコード作るより、
安全なライブラリ使った方が実工数少なくなるのは当たり前だろ?
「バグ作るかもしれないリスク」なんて項目は見積もりには入れないけどさ。
>>923 粗利が上がらない=給料が出ない
wwww
>>925 そんなのテストで見つけていくらでも修正すればいいんだから
お前が心配することじゃないんだよ
不変条件を使って一部のテストの過程を吹き飛ばしたりできます 場合によっちゃ10倍どころの話ではなくなる
工数の世界の人はC++使わない方がいいぞ。 実際工数の世界からまともなC++アプリ、ライブラリが出てきた試しがない。
10倍ねw じゃC言語の人が見積もった工程の10分の1でできますとお前そういえるの? そりゃすげーやw やってみろやw
>>927 末端PG的にははバグ改修が増えた方が残業代増えてウハウハだけどね。
なにおまいら盛り上がっちゃってるのw
だいたいさ できるっていうほどに給料下がっていくじゃん 主張しないほうがいいんじゃない?w
去年から社内システムの開発プロジェクトを Common Lisp ベースで やってるんだけど、C++/Java より、はるかに開発効率いい。 C++ と C の開発効率はそんなに違わないって印象があったので、 最初は Java で試してたんだけど、こっちも今一だった。 CLOS の機能もそれなりに使ってはいるが、実質的には、クロージャ とか高階関数の方が役に立ってる。 どうシステム化するかあたりから、手探り状態で始めたんだが、 ・ プロトタイプが成長して使い物になるシステムが出来上がる ・ 大きな要求仕様の変更があっても、バグが出てもシステム止めなくていい ってのが、何よりありがたいw
工数を少なく見積もる意味が無いwww 工数は多く見積もり、少なく仕上げる物www
>>934 昔からプロトタイプに向いている言語って言われていたからね。
それから高階関数ベースに再利用を進めるから、
> 実質的には、クロージャとか高階関数の方が役に立ってる。
ということになる。SICPの序文でも、
「Lispプログラミングでは有用で汎用性の高い関数がどんどんたまっていく」
と書いてある。
>>937 C++なら10倍速でできますと不穏な発言をする隣のチームを疑い深い目で眺めるとあるチームのリーダー
>>940 工数少なく見積もって出すようなら、今すぐリーダーを辞めろ。
会社のためにならねぇ。
>>940 よっ!!!デスマーチビルダー!!!
憎まれてるよ!!!
wwwww
C++でWebKitを使ってブラウザ作る CでWebKit相当のものを作りながらブラウザ作る 10倍程度で済むの? 1万倍くらい? 後者なんて完成しないだろ。
>>943 ブラウザ? そんなもんどっかから買ってきて組み込むだろ?
別にC言語だってライブラリぐらいは呼ぶぐらいはいいだろ 呼ぶ箇所がちょっとC++だからC++使ってる!とか言い張るほど馬鹿なら話にはならないけど
>>915 なんか絶対STL相当のコードなんて書けないよ。
文章から頭の悪さがにじみ出ているもの。
>>900 何か勘違いしているようだが、俺一人が得をすれば良いわけではない。
全国民にとって社会システムが平等に幸せを享受できるものでなければならないという考えに基づいて
社会システムにどういうルールを取り込めばそうなるのか、ということを考えているんだよ。
ゲーム理論っていうの?
>>947 は?そういう無意味な議論したいならdll組んでそれ呼ぶわ
ハイ、終了
Cでもできる、Cで充分と強弁しちゃう輩は、 OOPLとOOPを軽視しているのではなくて、 それ以前に、何についても何一つ分かってはいない。
dll作るの?めんどくせ。
>>951 で?工数はどのくらい変わるの?
C言語での見積もりの10分の1?w
>>953 よっ、デスマーチ職人!!!
怨まれてるよ!!!
>>942 ていうか発言内容がさっぱりわからない
なんで
>>940 のレスでそれなの?
会話が成立しねぇじゃん
頭悪いの?
大域変数を使わないっていう方法論に対して 「なんで?大域変数使った場合と、使わなかった場合でそんなに違いがあるの?」 って言ってるのと変わらんなぁ。
オブジェクト指向ってC++に限定されないパラダイムだからな。 今では C++以外でもJavaや Python, C#, JavaScriptなど主要な言語で (サポートの幅の差はあるにしても)使われている考え方なわけで。 それをスマートに表現できないCは使いにくい。 Cで書かれてるプログラムを Lispで書くくらいに、違和感がある。
工数とかウンコ語使うなよ
大体、ソフトウェア開発に工数なんて言葉は使うな。
なんでここIDでないんだろ
>>961 Unix 系の OS のカーネルは C で書いてあるけど、Solaris とか *BSD の
ソース読むと、そこらの OO プログラマが屑に見えるくらい、きれいに
OO 的な設計をしてあって、コードもそれなりにスマートに表現されている。
OO 言語を使う/使わない以前にどんな風に抽象化するかが問題だと思う………
>>963 行数とかよりは適切な指標だと思うけど?
コストとかにすればおk?
ソフトウェアは工業品でなく芸術です 時間とかコストとかは無意味!
押して駄目なら引いてみろってか
∧_∧ ♪PG同士で争うなよ ( ´∀`) ♪仲間じゃないか〜♪ ⊂(⌒) つ ♪ ∪ ノ ランランラ〜ン♪ Y⌒Y⌒ ∪
socket関連のソースはいつ見ても汚くみえる
そうだね
そんなことよりCLispベースでの開発で効率upってのが気になって仕方ない。 そういう話はよく目にするんだが、具体的な例を見ないんだよな。 そういうフレームワークや関数群のサンプル的なものを 公開しているところはないかな?
>>965 それとこれとは直行した問題なのでは。
何を使っても優劣の差はあるというのは当たり前の話。
アセンブラでさえ美しいプログラムは美しい。
アセンブラのマクロで
976 :
934 :2009/03/21(土) 19:54:18
>>972 > そういうフレームワークや関数群のサンプル的なものを
そんなもんは作ればいいし、扱う問題によってはよそで作った物が
使えるとも限らない。
関数ベースで書くから副作用を心配することはほとんどないんで、
動かしながらでも関数の再定義やったりとか、遅いと言われれば
実システムでプロファイルとってチューニングとかやってる。
取りあえず最小構成を作って公開して、実際に使う側の意見を聞き
ながら作り込みをやってる状態。
実運用やりながらだから、予期せぬエラーとかも早くつぶれる。
何度かクラス構成の変更とかする羽目になったが、その時でもシス
テムは停止させなかった。
update-instance-for-redefined-class って、長い名前の関数のおかげだw
若干、余分な手間は発生するけど、大きな手戻りは発生しない。
ただし、このやり方だと、どうしても少数精鋭になってしまう
システム規模はそこそこでかいけど C++ とかだと 20 人がかり程度
の規模を 3 人でやってる。
あんま、人と金かけられないって事情もあるけど………
977 :
. :2009/03/21(土) 21:02:54
ume
梅の季節
桜
きも
Rubyおわったな
Common LISPってOOなのか?
iseg = ARGF.read iseg = iseg. gsub(']', 'end;'). gsub('[', 'while dseg[dx] != 0;'). gsub('+', 'dseg[dx] += 1;'). gsub('-', 'dseg[dx] -= 1;'). gsub('.', 'print dseg[dx].chr;'). gsub(',', 'dseg[dx] = $stdin.getc;'). gsub('>', 'dx += 1;'). gsub('<', 'dx -= 1;') eval(<<INIT + iseg) dseg = Array.new(32768, 0) pc = 0 dx = 0 INIT puts ''
この舌ったらずめが
>システム規模はそこそこでかいけど C++ とかだと 20 人がかり程度 >の規模を 3 人でやってる。 嘘くせえな。 というか、自己申告だから実際にみてみたらショボイプロジェクトってオチじゃないかな?
20人だろうが3人だろうが一緒 一人で十分
SchemeでJavaのソースも生成したとかいう話とか見ると、 正直、うさんくせーとか思うけど、どうも嘘じゃないらしい。 といって、この手の話には必ずモノが存在していない。 ネットで聞いてみても「そういう風に書けばいかようにでも」的な回答しかない。 くやしい!でも…Gauche入れてみちゃう。
つmosh gaucheでc++のコード生成してます
結論:closureでOK
で?工数はどのくらい変わるの? C言語での見積もりの10分の1?w
だから工数など無意味だとなんどいわせれば
ソフトウェアは工業製品ではないので工数なんて無意味なんです。 バカですか?
なんでそこで全角Cが出てくるんだよ。
全角数字に漢数字、まるでセンスねえな。 CだろうがC++だろうがJavaだろうが まともに使いこなせないだろコイツじゃ。 ↓ > 20人だろうが3人だろうが一緒 > 一人で十分
花粉しねよ
で?工数はどのくらい変わるの? C言語での見積もりの10分の1?w
末尾再帰とか多用するプログラムなのかな?
で?工数はどのくらい変わるの? C言語での見積もりの999分の1?w
CLOSやCLISPの生産性が高いのって、 関数型言語だからじゃなくて、単に動的型付け言語だから という要因が大きいんじゃないかな。
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。