消えてなくなれよ >オブジェクト指向 part.2
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2009/03/22(日) 06:57:59http://pc11.2ch.net/test/read.cgi/tech/1198822420/
0002,,・´∀`・,,)っ-○◎●
2009/03/22(日) 06:58:280003デフォルトの名無しさん
2009/03/22(日) 07:06:540004デフォルトの名無しさん
2009/03/22(日) 08:30:330005デフォルトの名無しさん
2009/03/22(日) 09:39:230006デフォルトの名無しさん
2009/03/22(日) 11:03:38C言語での見積もりの10分の1?w
0007デフォルトの名無しさん
2009/03/22(日) 11:13:30具体的な例を示すことは出来んが。
0008デフォルトの名無しさん
2009/03/22(日) 11:21:41漢キター!
「ボクはC++なので工数は3分の1でかまいません!キリ」
言ってみろお前w
0009デフォルトの名無しさん
2009/03/22(日) 12:02:34それって、オブジェクト指向>クロージャ って意味になるよ。
0010 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄V ̄ ̄ ̄ ̄ ̄ ̄ ̄
2009/03/22(日) 12:03:58/ \ /\ キリッ
/ (ー) (ー)\
/ ⌒(__人__)⌒ \
| |r┬-| |
\ `ー'´ /
ノ \
/´ ヽ
___
/ \
/ノ \ u. \ !?
/ (●) (●) \
| (__人__) u. | クスクス>
\ u.` ⌒´ /
ノ \
/´ ヽ
____
<クスクス / \!??
/ u ノ \
/ u (●) \
| (__人__)|
\ u .` ⌒/
ノ \
/´ ヽ
0011デフォルトの名無しさん
2009/03/22(日) 12:05:330012デフォルトの名無しさん
2009/03/22(日) 13:18:51Cの工数と同じでいいんでないの?
0013デフォルトの名無しさん
2009/03/22(日) 13:23:05それはC++が工数に対してなんのメリットもないことを意味するけどいいの?
って話(俺は無いと思ってるけど)
0014デフォルトの名無しさん
2009/03/22(日) 14:25:460015デフォルトの名無しさん
2009/03/22(日) 14:52:080016デフォルトの名無しさん
2009/03/22(日) 15:24:37工数なんて古い頭の経営者の言葉なんだよ。
0017デフォルトの名無しさん
2009/03/22(日) 15:26:27結局、何人月という数字に落とさないと、人を売る商売としては受注できない。
0018デフォルトの名無しさん
2009/03/22(日) 16:06:310019デフォルトの名無しさん
2009/03/22(日) 16:13:340020デフォルトの名無しさん
2009/03/22(日) 16:35:14普通、技術力が低くてもある程度のコミュニケーション能力があればもうちょっとマシな職場でも採用してもらえるだろうに。
0021デフォルトの名無しさん
2009/03/22(日) 16:37:25はぁ?じゃどういう数字で仕事してるの?
正直、プログラマの単価がクズ過ぎて工数勝負のジリ貧状態じゃん
仕様を握ってる奴は強いけどソースしかもってない奴は明らかに弱いね
日本の開発会社なんてマジで吹けば飛ぶぐらい弱い
ああ、じゃ、明日からインド人か中国人に倍の人数使ってやらせますからいいですよ
っていわれたらそこでENDなぐらい弱い
どんな付加価値もたせたら工数計算(=人件費)の呪縛脱出できるのかマジで聞いてみたい
0022デフォルトの名無しさん
2009/03/22(日) 16:40:17腐っても一部上場企業だが、事情は大して変わらんよ。
>>21
中国の人件費と動員力は半端じゃないからな。技術力もある奴はあるし。
とっとと豊かになって人件費も上がってくれという切実な願いww
0023デフォルトの名無しさん
2009/03/22(日) 16:40:56C++が使える人の単価が45万だったら
全部のソースをC言語で組みなおせといいたい
C++で組むことは付加価値にはならねーよ
まったく同じ単価で
C++で組むと保守とか・・・〜・・・で結局C++で組んだほうが安いんですよ
なんて誰が信じるか馬鹿
常識で考えろよ
っていうか会社で仕事やってから書き込んでくれマジで
0024デフォルトの名無しさん
2009/03/22(日) 16:44:17その場合、Cなら45MM、C++なら40MMとかの見積もりになるんじゃないの?
0025デフォルトの名無しさん
2009/03/22(日) 16:47:24算数もできないの?
0026,,・´∀`・,,)っ-○◎●
2009/03/22(日) 16:50:340027デフォルトの名無しさん
2009/03/22(日) 16:51:40OOはむしろ保守の工数で効いてくる。
0028デフォルトの名無しさん
2009/03/22(日) 16:56:41MMって何か知ってるか?
>>27
まともに実装されなかったOOの悲劇もすごいよー。
0029,,・´∀`・,,)っ-○◎●
2009/03/22(日) 16:58:340030デフォルトの名無しさん
2009/03/22(日) 17:00:48正解!
0031デフォルトの名無しさん
2009/03/22(日) 17:02:490032デフォルトの名無しさん
2009/03/22(日) 17:20:05俺はSEだが、人材管理からなにから何まで任せてもらってるよ。
金金うるさく言わずにお友達みたいに楽しくやってる。
0033デフォルトの名無しさん
2009/03/22(日) 17:23:050034デフォルトの名無しさん
2009/03/22(日) 18:38:31自分の恵まれた状況が他でも通用すると考えますか?
0035デフォルトの名無しさん
2009/03/22(日) 19:21:31俺が技術者として経営者を育てたからこそ今の状況があるわけで、
技術者だからといって経営に口を挟まずにおとなしくしていたら余計に悪い状況になるってことだよ。
0036デフォルトの名無しさん
2009/03/22(日) 19:39:13社内政治か。
気弱な俺には無理w
0037デフォルトの名無しさん
2009/03/22(日) 21:17:33ユーザ企業のSEか?
それなら社内の予算だからどうにでもなるだろうが。
ところでそれ、事実上SEよりちょっと上の役職じゃね?
0038デフォルトの名無しさん
2009/03/22(日) 22:26:27つまり技術者が好き勝手できるようになり、給料もたっぷりもらえるようになるには
技術で頑張るより経営者を育てたほうがいいということですね。参考になります。
0039デフォルトの名無しさん
2009/03/22(日) 23:01:380040デフォルトの名無しさん
2009/03/22(日) 23:20:240041デフォルトの名無しさん
2009/03/22(日) 23:55:58別に不思議なことじゃないだろ。
モノ売りは技術あってこその商売なんだから。
0042デフォルトの名無しさん
2009/03/23(月) 00:03:54モノを売ることを担当している責任者というだけだ。
社長とかいうポジションを作ってる古臭い日本の会社じゃ技術者がないがしろにされるのも無理はない。
事実上、経営責任者=社長であって、社長が技術者を傘下に置く形になるから、
技術者は対等に話をすることが出来ない。
0043デフォルトの名無しさん
2009/03/23(月) 00:13:12経営を担当してるに決まってるだろ。
営業しかやらない社長ってなんだそれww
0044デフォルトの名無しさん
2009/03/23(月) 01:13:06技術者の視野が狭すぎて話ができない
0045デフォルトの名無しさん
2009/03/23(月) 01:40:140046デフォルトの名無しさん
2009/03/23(月) 04:07:55昔はあったけどね
0047デフォルトの名無しさん
2009/03/23(月) 15:09:16糞みたいな話はマ板でやれ。
0048デフォルトの名無しさん
2009/03/23(月) 15:13:53前スレの終わりの流れこそ、今のこの流れとお見受けするが。
0049デフォルトの名無しさん
2009/03/23(月) 16:50:41700台の後ろから800台の後ろまで。うち7割程度。
0050デフォルトの名無しさん
2009/03/23(月) 17:03:23お前が良い流れと呼んでいるのもそうでないと思っている流れも全部俺が作った流れです。
0051デフォルトの名無しさん
2009/03/23(月) 17:26:200052デフォルトの名無しさん
2009/03/25(水) 01:42:020053デフォルトの名無しさん
2009/03/28(土) 04:53:32(オナニー回路発動)
0054デフォルトの名無しさん
2009/03/29(日) 19:05:24火病、全レスで、スレを埋めただけでは。
0055デフォルトの名無しさん
2009/04/05(日) 22:39:39だが、大事なことがあえて黙殺されている。
それは、アマチュア避け、馬鹿避けとしての役割だ。
ど素人でも馬鹿でも、コマンド並べればプログラミングできるなら
何かしら作れてしまう。
例えば、GNU Awkはawkの分際でソケット通信ができたりするので、
素人でもなんちゃってネットワークプログラミングができる。
Tcl/Tkを使えば簡単にGUIプログラミングができる。
そういった言語が少数派なのは、素人や馬鹿に玄人と同じ物を作れてはムカつくし
玄人の多くが仕事を失うからだ。
非OOのスクリプト言語で100行以内で書ける物でも、OOで長々と書けば金が取れる。
それこそがプログラマにとっての理想なのだ。
0056デフォルトの名無しさん
2009/04/05(日) 22:45:510057デフォルトの名無しさん
2009/04/05(日) 23:23:32プロのお前らからしたら腹立つのもわかる。
でもOOはいらんw
0058,,・´∀`・,,)っ-○◎●
2009/04/05(日) 23:37:48BSD Socket自体、クラス化されたもんじゃないし
0059デフォルトの名無しさん
2009/04/05(日) 23:41:34BEGIN {
httpsrv = "/inet/tcp/12345/0/0"
RS = ORS = "\r\n"
while (1) {
if ((httpsrv |& getline) > 0) {
print "HTTP/1.x 200 OK" |& httpsrv
print "Content-type: text/html" |& httpsrv
print "" |& httpsrv
print "HELLO" |& httpsrv
}
close(httpsrv)
}
}
# "HELLO"と表示するだけのオモチャだが、
# 他の言語だったらもっと苦労するはず
# こんなに簡単で許されるのか?
# 必死で勉強してるプロが見たらキレるのも無理はない
0060デフォルトの名無しさん
2009/04/05(日) 23:46:550061,,・´∀`・,,)っ-○◎●
2009/04/05(日) 23:49:28require 'webrick'
srv = WEBrick::HTTPServer.new({:DocumentRoot => '/home/dango/public_html/',
:BindAddress => '127.0.0.1',
:Port => 10080})
srv.mount('/hoge.pl', WEBrick::HTTPServlet::CGIHandler, 'hanami_dango_umeee.rb')
srv.start
# GAWK(笑)
# 非オブジェクト指向言語はとろくさすぎんだろww
0062デフォルトの名無しさん
2009/04/05(日) 23:56:04そもそもプロと張り合ってないから。
俺はまったくの素人だし。
動きゃ何でもいいなら、素人でも作れるって例を示しただけの話なんでね。
ぶっちゃけ、「こんなんで金取るなよ」って思うような、
俺でもちょいと苦労すれば作れる程度のボログラムで金取ってる奴が許せんのさ。
何で動いてるか、どう作られたか、なんて普通の人にはどうでも良くて、
安くてちゃんと動けば良いわけ。
一般人が自力で作れる道具があれば、無駄金払わなくてすむし、
ゴミ作って金取る連中を抹殺できるわけ。
それが来るべき超情報社会の理想。
0063,,・´∀`・,,)っ-○◎●
2009/04/05(日) 23:57:23# の間違いですな
# ちょっと書き換えるだけでちゃんとDocumentRootのHTMLファイルを表示させることも可能ですし
# ApacheのRewrite-Engine相当(静的HTMLに偽装)のこともできます。
0064デフォルトの名無しさん
2009/04/05(日) 23:59:54webrick反則だろwww
>>62
そのセリフは>>61と同等のHTTPサーバをgawkで「ちょいと苦労して」
動かしてから言ってみよう。安くたってちゃんと動かないと意味無いよ。
0065,,・´∀`・,,)っ-○◎●
2009/04/06(月) 00:00:57WebまわりでCやC++を使ってるのはみたことがない
いや、いっぺん昔の上司にゴリ押しでCでCGIを作らされたが(俺はせめてPerlにしてくれと言った)
なにげに似非Ajaxにも対応した。めちゃしんどかった。
0066デフォルトの名無しさん
2009/04/06(月) 00:01:16inetd叩けばシェルスクリプトでも出来っけどな
0067,,・´∀`・,,)っ-○◎●
2009/04/06(月) 00:05:27CもCGIならソケット触る必要ないよ。
0068,,・´∀`・,,)っ-○◎●
2009/04/06(月) 00:06:270069デフォルトの名無しさん
2009/04/06(月) 00:12:26通信できます。管理できます。検索できます。集計できます、って類だろ。
勘定系だのだと簡単に済ませられんだろうけど、
普通の会社で業務管理やる場合に必要なのは
単純にそういった類なわけ。
文字列をチョコマカやり取りするだけのサバクラシステムだったらそれこそ
ダサいgawkでもできてしまうし、
管理できます、検索できます、集計できますという類も、
シェルスクリプトやらRDMSやらを組み合わせて使えば何となくできるわけ。
美しいかどうか、最新理論に基づいているかどうか、
そんなことはどうでもいいわけ。
結果が同じなら安くて簡単なほうがいい。
一般の人を骨抜きにして、そういった程度のことすらできない人だらけにしてしまったのは、
結果としてゴミ作ってる人の生活を保証する意味しかないだろ。
0070デフォルトの名無しさん
2009/04/06(月) 00:13:26未だにボッタ屋に外注してるのは何なんだろうな。
新人一年間勉強させて保守任せたら発注3割になった。
確実に効果ある。
まぁ研究所で保守専門ってのもアレだけど。
0071,,・´∀`・,,)っ-○◎○
2009/04/06(月) 00:25:220072デフォルトの名無しさん
2009/04/06(月) 00:34:53時々awk使い人来るけど、同じ人?
とりあえずHTTPヘッダ手作りしている時点でそのノリで
作っていたら安くなるものも安くならないだろと思った。
単に例えだと言うのであれば、例が悪い。HTTP周りの
ライブラリを持つ言語に手軽さで勝てるわけがない。
0073デフォルトの名無しさん
2009/04/06(月) 00:37:16今回変るのはグラフィック部だけだから、わりと移行は楽なんじゃないの?
GPUなんて元々超並列処理なんだし、遅延処理とか並列レンダリングみたいな、メニーコア向けにそのまま使えそうな技術もすでにある。
あ、epicがCellも絶賛してたっていうのなら話しは別。
0074デフォルトの名無しさん
2009/04/06(月) 00:37:420075,,・´∀`・,,)っ-○◎●
2009/04/06(月) 00:39:22RailsならMongrelのほうがいいけど。
たぶんRuby最大の敵は言語仕様を気分でコロコロ変えてしまう
まつもとゆきひろ
0076,,・´∀`・,,)っ-○◎●
2009/04/06(月) 00:48:13gehanikaere
0077デフォルトの名無しさん
2009/04/06(月) 01:29:520078,,・´∀`・,,)っ-○◎●
2009/04/06(月) 01:49:220079デフォルトの名無しさん
2009/04/06(月) 03:36:140080デフォルトの名無しさん
2009/04/06(月) 06:51:13どうしてHSPみたいなのが素人に受けるのか理解できないんだろうね
0081デフォルトの名無しさん
2009/04/06(月) 08:58:00勉強してないと、rubyはよくわからん単語とコロンの羅列にしか見えない。
0082デフォルトの名無しさん
2009/04/06(月) 09:18:580083デフォルトの名無しさん
2009/04/06(月) 09:35:18俺の自慢のawk!
OOPって何だかは知らないが不要!
awkで何だって出来てしまう、たぶんね!
OOPなんて威張ってるだけ、たぶんね!
おまいら俺をさっさと褒めれ!
0084デフォルトの名無しさん
2009/04/06(月) 09:43:43独特の作法や世界観を学習しなくちゃならんからでそ。
構造化パラダイムまでなら、公式丸暗記して
数式並べるだけの受験数学と変わらないけど。
0085デフォルトの名無しさん
2009/04/06(月) 11:11:02> 独特の作法や世界観を学習しなくちゃならんからでそ。
「lambda あれば解決なのに、なんで無名クラス作って...」とかか?
0086デフォルトの名無しさん
2009/04/06(月) 11:34:010087デフォルトの名無しさん
2009/04/06(月) 11:54:350088デフォルトの名無しさん
2009/04/06(月) 11:57:09まさかBrainfuckとか言うなよ。
極端なことを言うやつは誰からも信用されないぜ。
0089デフォルトの名無しさん
2009/04/06(月) 12:18:12ストレスなく書けるだの、驚き最小限だのとのたまってる
はてな辺りのRubiest(笑)と同じにしか聞こえんな。
0090デフォルトの名無しさん
2009/04/06(月) 12:36:09はてな辺りのRubiest批判kwsk
0091デフォルトの名無しさん
2009/04/06(月) 12:51:33何でCやjsみたいな難解な言語が入門向けに使われるんだろう。
0092デフォルトの名無しさん
2009/04/06(月) 12:58:040093デフォルトの名無しさん
2009/04/06(月) 13:34:38> なにを以って単純というのかと小一時間。
実用言語としての仕様書の分厚さ
0094デフォルトの名無しさん
2009/04/06(月) 13:40:410095デフォルトの名無しさん
2009/04/06(月) 14:25:45実際の所、標準添付ライブラリのソースは読みづらい部類。
理由は知らん。
0096デフォルトの名無しさん
2009/04/06(月) 15:16:14Haskellのほうが俺には直感的だった。
0097デフォルトの名無しさん
2009/04/06(月) 15:39:51少数派が良く使ういい訳
0098デフォルトの名無しさん
2009/04/06(月) 15:47:270099デフォルトの名無しさん
2009/04/06(月) 19:05:38liftやらunsafePerformIOだらけ、またはポイントフリーにこだわりすぎてわけわかんなくなってる状態のHaskell
を直感的に理解できるとはすごいですね。
0100デフォルトの名無しさん
2009/04/06(月) 19:26:59(Haskellにもストリームという言葉はありますが、ここでは別の意味です)
でのプログラミングスタイルを理解すればデータ処理をしたいときとかはかなりシームレスに書けるよ。
0101デフォルトの名無しさん
2009/04/06(月) 19:32:050102デフォルトの名無しさん
2009/04/06(月) 19:47:46シームレスとは
1. 一貫性がある
2. ハードルが低く、初心者でも違和感なく取り組める
0103デフォルトの名無しさん
2009/04/06(月) 19:50:54じゃあとりあえずParsecの中身をシームレスに説明してみてくんない?
導出方法とかはいいから、GenParserとかの定義の直感的な解釈とか、
それをモナドで組み合わせる時のParsecの中身がどう展開されるかについての直感的な説明とか。
0104デフォルトの名無しさん
2009/04/06(月) 19:54:38もっとわかりやすい題材があるんじゃないの
0105デフォルトの名無しさん
2009/04/06(月) 19:55:26http://web.archive.org/web/20010602030602/www.geocities.co.jp/Bookend-Soseki/5561/
【日本語】
この状況を打破するためには早急に対策要員を選出し、その人たちができるだけ
緻密な議論を行って行く必要がある。鈴木君をプロジェクト・リーダーとして以後、
この件についての方針を模索しよう。私も状況を追いながら関わろう。
【御殿山語】
これを break threw するためには ASAPでtask fourceの team make をして、
in detail で effective な議論を go on するのが must だ。鈴木君を
Handler としてこの issue について discuss しましょう。私も keep in touch
するから。
0106デフォルトの名無しさん
2009/04/06(月) 19:55:30俺って優しいなぁw
0107デフォルトの名無しさん
2009/04/06(月) 20:02:51>モナド+遅延評価を基盤としたストリームモデル
>データ処理
おまえがいうそのデータ処理の一例がParsecだろwモナド+遅延評価を基盤としたストリームモデルのw
あれ、わかりやすいんじゃないの?シームレスなんじゃないの?
ちなみにHaskellは俺も好きだよ。ただ直感的だとは全く思わないけどね。
まあとりあえずここにいるみんなが直感的にわかるように説明希望。
ちなみに俺には直感的な説明はできない自身があるよ。
0108デフォルトの名無しさん
2009/04/06(月) 20:05:060109デフォルトの名無しさん
2009/04/06(月) 20:28:160110デフォルトの名無しさん
2009/04/06(月) 20:28:46> ちなみにHaskellは俺も好きだよ。ただ直感的だとは全く思わないけどね。
批判したいだけのやつがよく使うフレーズw
自分は理解したうえで批判しているんだってことを証明したいからそういうフレーズを使うんだろうけど、
嘘だってバレバレですからw
0111デフォルトの名無しさん
2009/04/06(月) 20:56:45BASIC
HSP
Ruby
Python
Perl
C
C++
Java
Lisp
Prolog
この中でどれを簡単だと答えるだろう?
俺はBASICやHSPだと思う。
はい代入、ほれ表示、ここで計算しよう・・・
ってな感じで、省略がなく流れが完全にわかり、
それでいて動的型だから変数で頭を悩ませなくて済むから。
それに対し、Rubyとかは簡潔というよりも省略されすぎで
単なる記号の羅列にしか見えないだろう。
「Rubyは簡単」という人のいう「簡単」と、
アマチュア、ホビイストのいう「簡単」は意味が違うのさ。
万人に使える言語を選ぶとすれば、OOは不合格にならざるを得ない。
0112デフォルトの名無しさん
2009/04/06(月) 21:22:37BASICがカンタンつってもさ。
それは解く問題が小さいからであって、
その小ささのほうが要因なんじゃないか?
大きいものを書こうとすると、
BASICよりRubyのほうがカンタンだし、
場合によってはJavaのほうがカンタンだ。
OOPLは抽象度を高めるし、
静的型もやはりメリットをもたらしてる。
小さい問題に特化してBASICを持ち上げても、
ちょっと複雑な問題になったときに、
他の言語がすぐ頼もしく映ってしまうはず。
万人に使える言語っていうのが、
どのていどの問題を想定してるのかしらんが。
0113デフォルトの名無しさん
2009/04/06(月) 22:03:3010 URL="http://quote.yahoo.co.jp/"
20 S=Socket(tcp, 0, URL, 80)
30 PRINT "GET ", URL => S
40 WHILE (S => INPUT) > 0)
50 PRINT $0
60 WEND
70 CLOSE(S)
80 END
これを分かりやすいと見るか、分かりにくいと見るか。
それが問題だ。
0114デフォルトの名無しさん
2009/04/06(月) 22:06:21という概念が俺には難しすぎて昔挫折した覚えがある
C言語で復活した
0115デフォルトの名無しさん
2009/04/06(月) 22:10:11だから行番号BASICやHSPは論外
0116デフォルトの名無しさん
2009/04/06(月) 22:17:44ただのオナニーだ
0117デフォルトの名無しさん
2009/04/06(月) 22:29:34どの言語が簡単かどうかなんてナンセンスだお(;^ω^)。
だってさ、それが何の役に立つ?
構造化もなくて何が出来る?
0118デフォルトの名無しさん
2009/04/06(月) 22:32:09Copyright 1979 (C) by Microsoft
OK
LOAD "消えてなくなれよ >オブジェクト指向 part.2"
FOUND:消えてなくなれよ >オブジェクト指向 part.2
OK
RUN
Syntax Error in 117
OK
0119デフォルトの名無しさん
2009/04/06(月) 22:51:34「1つの入り口と1つの出口を持つようなプログラムは、
「順次・反復・分岐」の3つの基本的な論理構造によって記述できる」
これって当たり前じゃん。
反復1(条件)
処理1
処理2
反復1終わり
分岐(条件)
処理3
(条件を満たさない場合)
処理4
こういう感じに書くなんて馬鹿でもできる。
しかし、オブジェクト指向は説明しにくい。
犬だ猫だ、車クラスに属するカローラの燃料とナンバーがどうしたとか、
馬鹿じゃねーの?
そんな説明でわかったつもりになる奴は頭が悪い。
0120デフォルトの名無しさん
2009/04/06(月) 22:57:18小さなサンプルが云々じゃなく、プログラムそのものを小さく作れるのがBASICの魅力だろ
0121デフォルトの名無しさん
2009/04/06(月) 23:01:52STGだったら自機、敵、弾クラスを作るのがオブジェクト指向だ
別に難しくもなんともねーじゃん
0122デフォルトの名無しさん
2009/04/06(月) 23:02:50それはC言語とBASIC当たりで同じ内容のもんを書き並べて主張しろよ
大して変わらないはず
0123デフォルトの名無しさん
2009/04/06(月) 23:08:180124デフォルトの名無しさん
2009/04/06(月) 23:23:19君の意見には賛同しかねる
BASICとCを比べるのは、小便器と大便器を比べるようなもんだ
小便器でウンコする方法を考える事は無駄だろう
だからといって、大便器で小便できるから、全てを大便器でなんて事をしたら、帰省、行楽期間の高速道路は破滅する
0125デフォルトの名無しさん
2009/04/06(月) 23:29:410126デフォルトの名無しさん
2009/04/06(月) 23:31:28何が主張したいんだよw
0127デフォルトの名無しさん
2009/04/06(月) 23:34:53つまり、年齢と共に、羞恥心を捨て去っていった勇者達のお陰で高速道路の女子トイレは破滅から救われていると...
0128デフォルトの名無しさん
2009/04/06(月) 23:41:05どうした?
yourfilehostの盗撮動画でも見すぎたか?
0129デフォルトの名無しさん
2009/04/06(月) 23:48:54元気だな、エロもほどほどにしなよ
0130デフォルトの名無しさん
2009/04/07(火) 00:16:020131デフォルトの名無しさん
2009/04/07(火) 01:13:39せっかく呆けてるんだから、ちゃんと突っ込めよ
これだから、お前の作ったプログラムは使えないんだよ
0132デフォルトの名無しさん
2009/04/07(火) 01:15:560133デフォルトの名無しさん
2009/04/07(火) 03:36:18>それに対し、Rubyとかは簡潔というよりも省略されすぎで
>単なる記号の羅列にしか見えないだろう。
Rubyって何が省略されているかな?正直よく判らない。
0134デフォルトの名無しさん
2009/04/07(火) 03:37:570135デフォルトの名無しさん
2009/04/07(火) 03:48:110136デフォルトの名無しさん
2009/04/07(火) 04:34:56Rubyの入門書を読む → 「イイ! これに比べりゃ、Perlはカスだね!」
Rubyで自分のツールを書いてみる → 「そろそろRubyの時代か」
で、他人が書いたライブラリのソースを読んでみる
↓
「なんだこりゃ、Perl並に読みづらくて意味不明……」
こんな感じ。
0137デフォルトの名無しさん
2009/04/07(火) 04:45:50↓
「よし、俺がきれいに書き直してやる」
↓
「できた! さすが俺。おまいら俺のソースを参考にしていいぞ」
こんな感じ。
0138デフォルトの名無しさん
2009/04/07(火) 04:50:30ってか、RubyってPerl経由して入る奴多いから
リアル過ぎて笑えねーな・・・。
0139,,・´∀`・,,)っ-○◎●
2009/04/07(火) 07:00:450140デフォルトの名無しさん
2009/04/07(火) 08:47:410141デフォルトの名無しさん
2009/04/07(火) 10:19:460142デフォルトの名無しさん
2009/04/07(火) 10:25:570143デフォルトの名無しさん
2009/04/07(火) 11:34:39OOPが有効な場面だけ使えばいい。
有効だと判断できる人間だけ使えばいい。
無理強いしても最悪の結果になる。
0144デフォルトの名無しさん
2009/04/07(火) 11:37:480145デフォルトの名無しさん
2009/04/07(火) 11:47:43OOの必要性とかわからんだろうしなぁ。
なので入門としてBASICやPHPってのはわかるが。
0146デフォルトの名無しさん
2009/04/07(火) 12:12:49BASICは流行らないよ。
こんな初心者っぽい言語使えるかよ、
っていう初心者が多いから。
0147デフォルトの名無しさん
2009/04/07(火) 13:15:140148デフォルトの名無しさん
2009/04/07(火) 13:20:56やっぱただの荒らしかw
「Haskell理解できる俺スゲー」って言いたかったのはわかるけどw
みっともないからやめたほうがいいよ。実際よくわかってないみたいだしw
0149デフォルトの名無しさん
2009/04/07(火) 13:41:13そんな必死に自分のほうが上だって主張しなくてもw
0150デフォルトの名無しさん
2009/04/07(火) 13:43:010151デフォルトの名無しさん
2009/04/07(火) 13:58:17OOPの説明で使われる犬猫の例えがしばしば評判悪いように、異なる
アイデアに基づくものを説明するには良いたとえ話や説明の方法が
必要だと思うので。
0152デフォルトの名無しさん
2009/04/07(火) 14:02:30ベルトコンベア=遅延リスト
加工ロボット=関数
材料=要素
0153デフォルトの名無しさん
2009/04/07(火) 14:13:22だから全然主張なんてしてないよ。
俺の主張はただ、「Haskellは直感的だとは思わない」という事。
もし直感的に理解できるんだとしたらその説明をしてくれ、という事だよ。
君の言ったモデルに完全に合致してるParsecを例にしてね。
0154デフォルトの名無しさん
2009/04/07(火) 14:25:30そして、プログラマに空気の読める奴なんて居やしない
つまりは、そういう事だ
0155デフォルトの名無しさん
2009/04/07(火) 14:39:180156デフォルトの名無しさん
2009/04/07(火) 14:45:38> みっともないからやめたほうがいいよ。実際よくわかってないみたいだしw
(意訳)
お前よりHaskellに詳しい俺がお前をテストしてやろうと思って
ちょっと面倒くさい問題を出したら答えられないでやんのwだせぇ
もちろん俺は答えを知ってるけどね。
↑お前が書けよw
0157デフォルトの名無しさん
2009/04/07(火) 14:48:10>ちなみに俺には直感的な説明はできない自身があるよ。
ここは読めてないのw?
0158デフォルトの名無しさん
2009/04/07(火) 14:48:48何様ww
0159デフォルトの名無しさん
2009/04/07(火) 14:52:170160デフォルトの名無しさん
2009/04/07(火) 14:52:45>お前よりHaskellに詳しい俺がお前をテストしてやろうと思って
こんな奴なら
>ちなみに俺には直感的な説明はできない自身があるよ。
こんなこと書かないんじゃね?
0161デフォルトの名無しさん
2009/04/07(火) 14:58:39じゃあこうか?
(意訳)
お前よりHaskellに詳しい俺がお前をテストしてやろうと思って
ちょっと面倒くさい問題を出したら答えられないでやんのwだせぇ
Haskellに詳しい俺に出来ないことがお前に出来るわけないんだよ。
0162デフォルトの名無しさん
2009/04/07(火) 15:06:56そういうのはいいからはやくParsecの説明聞かせてくれよ。
0164デフォルトの名無しさん
2009/04/07(火) 15:11:390165デフォルトの名無しさん
2009/04/07(火) 15:13:40Haskell知ってるなら誰でも知ってると思うよw別にすごくもなんともない。
それにそういうのはもういいからはやく直感的でシームレスな説明してよw
0166デフォルトの名無しさん
2009/04/07(火) 15:43:35俺はParsec以上のことを知ってるからその程度のことしか知らないやつよりスゲーんだよ、なめなんなよ
ってな感じですかね
0167デフォルトの名無しさん
2009/04/07(火) 15:44:54ひょっとして面白いって思ってる?
0168デフォルトの名無しさん
2009/04/07(火) 15:47:13とりあえず頭冷やしてから戻っておいで。
顔真っ赤なやつの質問にはまともに答える気になれない。
0169デフォルトの名無しさん
2009/04/07(火) 15:47:41>顔真っ赤なやつ
それは自分のことだと思うがw。
0170デフォルトの名無しさん
2009/04/07(火) 16:12:230171デフォルトの名無しさん
2009/04/07(火) 17:23:050172デフォルトの名無しさん
2009/04/07(火) 17:24:07中学生以上は帰れ
0173デフォルトの名無しさん
2009/04/07(火) 17:30:240174デフォルトの名無しさん
2009/04/07(火) 17:53:240175デフォルトの名無しさん
2009/04/07(火) 17:55:41Parsecのわかりやすい解説マダー
0176デフォルトの名無しさん
2009/04/07(火) 17:59:47> じゃあとりあえずParsecの中身をシームレスに説明してみてくんない?
> 導出方法とかはいいから、GenParserとかの定義の直感的な解釈とか、
> それをモナドで組み合わせる時のParsecの中身がどう展開されるかについての直感的な説明とか。
人に聞きたいことがあるときは、もうちょっと謙って言うものじゃないかなぁ。
聞かれたほうが答えたくなるような質問の仕方とか身についてないのかねぇ。
ほんとに、社会人だったら当然出来なきゃおかしいコミュニケーションが出来ないと見える。
0177デフォルトの名無しさん
2009/04/07(火) 18:07:01ttp://ja.uncyclopedia.info/wiki/%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E6%8C%87%E5%90%91
0178デフォルトの名無しさん
2009/04/07(火) 18:39:130179デフォルトの名無しさん
2009/04/07(火) 18:44:58>質問の仕方
べつに質問してないよw。
ただ直感的な説明ができますか?って言ってるだけ。
勝手に質問だと思っちゃうきみのほうがコミュニケーション能力(笑)に問題あると思うのだが。
0180デフォルトの名無しさん
2009/04/07(火) 18:45:58直感的とまで言うのなら、
一言でスッと答えが出てくるものかと期待してた。
0181デフォルトの名無しさん
2009/04/07(火) 19:37:05「直感」って言葉で説明できるものではないと思うのですが。
0182デフォルトの名無しさん
2009/04/07(火) 20:20:220183デフォルトの名無しさん
2009/04/07(火) 22:16:40入門できなさそう
0184デフォルトの名無しさん
2009/04/07(火) 22:19:04はみ出してますよ
0185デフォルトの名無しさん
2009/04/07(火) 22:37:00どのへんがわからないか書けば誰かが直感的に説明してくれるかもよ?
0186デフォルトの名無しさん
2009/04/08(水) 02:30:50結局副作用だらけだとモナドだらけになって
そこでバグ入りまくりhaskellは悪くありません。
って解釈でいいの?
0187デフォルトの名無しさん
2009/04/08(水) 02:56:290188デフォルトの名無しさん
2009/04/08(水) 03:49:140189デフォルトの名無しさん
2009/04/08(水) 06:32:13俺は直感的な説明はできないしHaskellが直感的だとは思わないけど、
IOモナドだらけになって副作用関連のバグがでてもそれは
他の言語と同様にプログラマが悪いってことになるよ。
「Haskellは純粋関数型言語だから副作用関連のバグは出ない」みたいに言うエセHaskell信者は多いけどねw。
0190デフォルトの名無しさん
2009/04/08(水) 15:26:140191デフォルトの名無しさん
2009/04/08(水) 15:43:03ちょっとどういう状況かわからないから具体的なソースを出してもらえませんか?
0192デフォルトの名無しさん
2009/04/08(水) 15:58:01ドッカン
m ドッカン
=====) )) ☆
∧_∧ | | / / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( )| |_____ ∧_∧ < おらっ!>>103 出てこいよ
「 ⌒ ̄ | | || (´Д` ) \___________
| /  ̄ | |/ 「 \
| | | | || || /\\
| | | | | へ//| | | |
| | | ロ|ロ |/,へ \| | | |
| ∧ | | | |/ \ / ( )
| | | |〈 | | | |
/ / / / | / | 〈| | |
/ / / / | | || | |
/ / / / =-----=-------- | |
0194デフォルトの名無しさん
2009/04/08(水) 16:07:01ドッカン
m ドッカン
=====) )) ☆
∧_∧ | | / / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( )| |_____ ∧_∧ < おらっ!>>100 出てこいよ
「 ⌒ ̄ | | || (´Д` ) \___________
| /  ̄ | |/ 「 \
| | | | || || /\\
| | | | | へ//| | | |
| | | ロ|ロ |/,へ \| | | |
| ∧ | | | |/ \ / ( )
| | | |〈 | | | |
/ / / / | / | 〈| | |
/ / / / | | || | |
/ / / / =-----=-------- | |
0195デフォルトの名無しさん
2009/04/08(水) 16:55:57うるせえ 帰れ
0196デフォルトの名無しさん
2009/04/09(木) 11:15:400197デフォルトの名無しさん
2009/04/09(木) 11:33:46だって。オブジェクト群でシステムを構築するってのは自然だとは思える一方、
最近の関数型の流行をみているとそれだけで上手くいくってのは安直だとも思えてくる。
http://clojure.googlegroups.com/web/ClojureConcurrencyTalk.pdf?gda=o4QTWEwAAAC2LrkjeC7f10uHiY7GOiyxd8S1xIZIP7EwK5jKxASn0y1I1OtZCnFmn_w8aWW3nzHB8Gzz9WpxuUbp_zNxpCdh_Vpvmo5s1aABVJRO3P3wLQ
0198デフォルトの名無しさん
2009/04/09(木) 11:40:39オブジェクト指向が自然だ〜と思ってるのはUMLみたいに図で描きやすいからだろ?
0199デフォルトの名無しさん
2009/04/09(木) 11:44:050200デフォルトの名無しさん
2009/04/09(木) 11:54:350201デフォルトの名無しさん
2009/04/09(木) 17:58:330202デフォルトの名無しさん
2009/04/09(木) 18:07:11むしろちゃんとUMLの全機能使って描いてるやつがいたら、UML厨(笑)とか思ってしまう
0203デフォルトの名無しさん
2009/04/09(木) 20:41:100204デフォルトの名無しさん
2009/04/09(木) 21:14:30両方だろ
どっちも有益な情報出してない
0205デフォルトの名無しさん
2009/04/24(金) 14:30:280206デフォルトの名無しさん
2009/04/25(土) 21:38:54http://pw.tech-arts.co.jp/news/index.html#pwnews200904201820
0207デフォルトの名無しさん
2009/05/04(月) 16:32:51/ \ /\ キリッ
. / (ー) (ー)\
/ ⌒(__人__)⌒ \ Haskellは偉大、理解できない奴は池沼
| |r┬-| |
\ `ー'´ /
ノ \
/´ ヽ
| l \
ヽ -一''''''"~~``'ー--、 -一'''''''ー-、.
ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒))
0208デフォルトの名無しさん
2009/05/07(木) 18:59:38微分方程式の一つもたてられないような低能が
やたら OO って言いたがるのは事実だ Ww
0209デフォルトの名無しさん
2009/05/07(木) 20:40:51数学分野ならまだしも。
0210デフォルトの名無しさん
2009/05/07(木) 21:39:520211デフォルトの名無しさん
2009/05/07(木) 21:59:45数学なんて因数分解すら覚えてねえぞ!
0212デフォルトの名無しさん
2009/05/07(木) 22:09:110213デフォルトの名無しさん
2009/05/07(木) 22:15:260214デフォルトの名無しさん
2009/05/08(金) 00:32:21実装する方は死ぬ思いする。
それがオブジェクト指向。
0215デフォルトの名無しさん
2009/05/08(金) 11:57:050216デフォルトの名無しさん
2009/05/08(金) 12:00:18一見どんな素人でもすぐに現場に投入できそうにみえるオブジェクト指向言語なんかは間違いの元だよ。
0217デフォルトの名無しさん
2009/05/08(金) 12:01:050218デフォルトの名無しさん
2009/05/08(金) 18:29:140219デフォルトの名無しさん
2009/05/08(金) 22:26:20つ ルンゲ=クッタ
0220デフォルトの名無しさん
2009/05/10(日) 00:08:36シェルスクリプトなんて書く必要ない、
AWKなんて前世紀の遺物、
とかいう意見をよく耳にする。
だが、そういうプロに味噌糞言われる言語ほど
なぜかアマチュアに人気がある。
別の見方をすれば、
プロに糞呼ばわりされる言語を普及させれば
エンドユーザ・プログラミングが流行るはずなのだ。
それが良いか悪いかは別にして。
0221デフォルトの名無しさん
2009/05/10(日) 00:19:03オブジェクト指向ブームが来る前に
勉強しちゃおうぜ
翔泳社の独習UMLいいね
UMTPの資格も、いい本が出てる。
がんばってね
0222デフォルトの名無しさん
2009/05/10(日) 00:24:15そんなの科学技術計算用の本に載ってるだろ
一般プログラマには関係ない
0223デフォルトの名無しさん
2009/05/10(日) 00:31:510224デフォルトの名無しさん
2009/05/10(日) 00:34:23HSPはともかくシェルスクリプトもawkも普通に使われていると
思うけどな。適材適所で。
0225デフォルトの名無しさん
2009/05/10(日) 00:47:54そりゃアマチュアは微妙な要求してくる客がいないからな
かゆいところに手が届かなくても文句いうやついねーし
0226デフォルトの名無しさん
2009/05/10(日) 01:04:48プロとして作る場合は技術的な判断なんて二の次で、客の要望が優先だからな。
0227デフォルトの名無しさん
2009/05/10(日) 02:02:550228デフォルトの名無しさん
2009/05/10(日) 02:17:29そういう会社に勤めてる奴は本気でかわいそうに思えるよ。
技術を売ってる会社っていうのはそうじゃないしね。
0229デフォルトの名無しさん
2009/05/10(日) 02:22:150230デフォルトの名無しさん
2009/05/10(日) 02:38:09awkで開発したりはしないと思う。
0231デフォルトの名無しさん
2009/05/10(日) 02:53:330232デフォルトの名無しさん
2009/05/10(日) 02:56:23HSPはその辺がんばってる
言語仕様は文法が簡単ならOOでもそうでなくてもいいと思う
0233デフォルトの名無しさん
2009/05/10(日) 03:13:28っていうか、可哀想も糞も会社の仕事だとみんなそうだろ
まず客の要望があるんだからかゆいところに手が届かないような
ツールじゃ駄目なんだよ
0234デフォルトの名無しさん
2009/05/10(日) 03:42:07まずそこが違う。
客に合わせて作るんじゃなくて、作ったものをほしがってる客を探すんだよ。
0235デフォルトの名無しさん
2009/05/10(日) 05:43:590236デフォルトの名無しさん
2009/05/10(日) 07:21:47客がほしがるように、よりエロくするのですね。
0237デフォルトの名無しさん
2009/05/10(日) 11:16:10我々プロのプログラマはOOPLを平然と選ぶ。
不便なものを選択する理由は無いからだ。
0238デフォルトの名無しさん
2009/05/10(日) 12:03:53わらうw
ttp://awk.info/?doc/dsl/awkplusplus.html
object_variable = class_name.new[(optional parameters)]
object_variable.method_name(parameters)
object_variable.delete
0239デフォルトの名無しさん
2009/05/10(日) 12:23:00awkは普通に便利だけどな。
それだけで何でもやろうとすると
不便になるだけで。
0240デフォルトの名無しさん
2009/05/10(日) 17:55:18そんなことしてる会社長くないだろw
それってだって新規開拓の瞬間ぐらいじゃね?
ほらほらうちの商品こんなんですけどどない?
って売るじゃん?
でも売った後って次は「ここをこうしてほしいな〜」とかいう要望を聞いて
それを金にしていくじゃん?
少なくとも新規開拓のコストや手間考えたらおいしい商売じゃん
っていうかそうやって商品や会社の信頼ってものをあげていくのが仕事じゃん?
あの会社ツール売るだけ売ってなんもサポートないよね?って思われるのってメリットないじゃん?
っていうか一度売りつけたら今度はいつまでも続くサポート地獄で儲けるのは
この業界の鉄則っていうか唯一のうまみじゃん?
例えば「○○アプリに〜って機能があるけど、これをbatファイルで設定して
連続で動作できるようにしてほしい」とか「んなもん手で100回やれよ常考」とか
切り捨てるわけにはいかないじゃん?せっかくこんな糞作業で金くれるって言ってるのに
0241デフォルトの名無しさん
2009/05/10(日) 18:12:28煽りに非常に既視感を感じるんだが。
0242デフォルトの名無しさん
2009/05/10(日) 18:24:19〜じゃん?
まで読んだ
0243デフォルトの名無しさん
2009/05/10(日) 18:25:11まぁカナヅチしか持っていない奴は、
見るものすべてが釘に見えてしまい、何でも叩こうとするってことだね
0244デフォルトの名無しさん
2009/05/10(日) 18:27:400245デフォルトの名無しさん
2009/05/10(日) 18:28:20俺たちはナイフで肉を切る。
0246デフォルトの名無しさん
2009/05/10(日) 19:10:33テーブルマナーとしてもエレガント。
「用に足りる」とかいって何でもawkな人はいわば学校給食の
先割れスプーンみたいなものかな。
0247デフォルトの名無しさん
2009/05/10(日) 20:08:46AWK使う人ってシェルスクリプトとかSQLもやってるイメージがあるんだけど。
UNIX管理者やデータベース屋なら使えて当然じゃない?
あまり使わないとしても、
あの程度使えないと恥でしょ。
0248デフォルトの名無しさん
2009/05/10(日) 20:14:46掛け算の七の段が得意と自称する少年がそれを連呼するように。
それを見守る周囲の人間は、ほほえましく思ってる。
0249デフォルトの名無しさん
2009/05/10(日) 20:20:37過去スレにいたんだよ。社内システムをawkで内製してますawkで
いいじゃん外注してOOPなんて馬鹿でね? と騒ぎまくった人が。
Perlとawkでコード比較したりTCP80番叩いて「Webも出来る」って
豪語したりと非常に楽しいキャラクターであった。
過去形なのが残念だが。
0250デフォルトの名無しさん
2009/05/10(日) 21:11:34sql()
{
mysql --user=root --password=password -e "USE jinji_kanri; $1"
}
o=$(sql "
SELECT
*
FROM
tbl_employee
WHERE
dpt_code <> 10;
")
echo "$o" | awk '$1 ~ /^104/{print}'
0251250
2009/05/10(日) 21:29:25毎度どうも。
楽しいキャラでごぜえやす。
他にも中途半端ながらCやらPerlやら使いやすんで
ご期待に反してAWK至上主義者ではごぜえやせん。
所詮素人でごぜえやすから
249の先生にはかないやせんが。
あっしは別にOOPがいらねえとは思いやせんぜ。
アマとプロの技術的解離を大きくした一因だと思ってるだけでやす。
0252デフォルトの名無しさん
2009/05/10(日) 21:35:460253デフォルトの名無しさん
2009/05/10(日) 21:57:000254デフォルトの名無しさん
2009/05/10(日) 21:58:000255デフォルトの名無しさん
2009/05/10(日) 21:58:410256デフォルトの名無しさん
2009/05/10(日) 23:34:28いや、仕事使うとその無意味さに気づく
>>253
でもこれが無意味だって気づくことでプログラミング能力は格段に上がると思う
0257デフォルトの名無しさん
2009/05/11(月) 01:53:45なぜ無意味だと思うんだい?
0258デフォルトの名無しさん
2009/05/11(月) 02:15:18オブジェクト指向でプログラミングしても効率よくなるなんて言葉が嘘だったことに気づくからさ
0259デフォルトの名無しさん
2009/05/11(月) 02:54:33#!/usr/bin/ruby
require "dbi"
DBI.connect("dbi:Mysql:test:localhost", "root", "password") do |dbh|
dbh.execute("SELECT * FROM tbl_employee WHERE dpt_code <> 10") do |sth|
puts sth.fetch_all.select{|row| row[0] == 104}.join("¥n")
end
end
0260デフォルトの名無しさん
2009/05/11(月) 05:13:37おもちゃ?
0261デフォルトの名無しさん
2009/05/11(月) 05:38:04劇的に全てのことが幸せに変わるものではない、ってことだ
0262デフォルトの名無しさん
2009/05/11(月) 06:06:56そうそう
仮にオブジェクト指向なら工数○分の1にできる?とか考えてみれば
仕様の項目から実装時間テスト時間を考えたときにオブジェクト指向にしたところで
1Hだって減らせないことに気づく
これではビジネスとしてまったく意味がない
0263デフォルトの名無しさん
2009/05/11(月) 06:36:320264デフォルトの名無しさん
2009/05/11(月) 08:08:500265デフォルトの名無しさん
2009/05/11(月) 13:24:40はっきりさせようぜ。
0266デフォルトの名無しさん
2009/05/11(月) 13:33:22はい、その通りです
てか、業界全体がだまされた
0267デフォルトの名無しさん
2009/05/11(月) 13:34:42両方だろ、馬鹿。
だが、設計技法を発展させて一般化すればErlangにも応用可能かもな。
0268デフォルトの名無しさん
2009/05/11(月) 18:07:490269デフォルトの名無しさん
2009/05/11(月) 20:05:04#!/usr/bin/bash
mysql --user=root --password=password -e "USE jinji_kanri; SELECT * FROM tbl_employee WHERE dpt_code <> 10;" | awk '$1 ~ /^104/{print}'
0270デフォルトの名無しさん
2009/05/11(月) 20:06:58「〜かもね」=誰かやれよ
0271269
2009/05/11(月) 20:11:53>>250でawk使ってるからそれに合わせた。
短く書こうとすれば結構短くなるもんだ。
Rubyでももう少し簡潔にできるのでは?
0272デフォルトの名無しさん
2009/05/11(月) 20:32:55db側でやっちまったほうが手っ取り早く見えるが。
mysqlはwhere句の中で正規表現使えないのか?
postgresqlなら and foo ~ '^104'と書く。
クエリが複雑になったらRubyで書くとカンタンやね。
sshと組み合わせてリモートで処理させるときは、
シェルスクリプトでやっちゃったほうがマシなときもある。
0273デフォルトの名無しさん
2009/05/11(月) 20:45:15そのほうが簡単だろうけど
0274272
2009/05/11(月) 21:24:39> なんで | awk '$1 ~ /^104/{print}' なんて書いてるの?
部分はそもそもの発端である>>250にむけてのレス。
0275デフォルトの名無しさん
2009/05/11(月) 21:28:47オブジェクト指向の効率が悪いっていう証明をしてくれよ
0276デフォルトの名無しさん
2009/05/11(月) 21:34:40>>250を見ると関数を定義してるから、
sql "SQL文"
で済むみたいだけど。
ruby使うともっと簡単になるの?
もし、単にSQL文並べるだけよりも楽になるなら便利だよね。
0277デフォルトの名無しさん
2009/05/11(月) 22:41:39じゃあ、C言語+構造化で組むと3ヶ月でできる仕事を
C++とオブジェクト指向で組んだら何ヶ月でできる?
仕事って数字出せなきゃ駄目なんだよね・・・
0278デフォルトの名無しさん
2009/05/11(月) 23:11:11おまえのところは、
アセンブラで組んだら3ヶ月でできる仕事だから、
C言語使ったら何ヶ月かかるか見積もってね
という仕事を請けてるの?
0279デフォルトの名無しさん
2009/05/11(月) 23:13:59は?
お前がオブジェクト指向云々の話がしたいっていうから
比較対象でC言語出しただけだよ
好きなのでいいよこだわりねーし
オブジェクト指向でやると工数がどうにかなんじゃなかったの?
0280デフォルトの名無しさん
2009/05/12(火) 01:21:38猿猿合戦の火蓋は切って落とされたのであった
0281デフォルトの名無しさん
2009/05/12(火) 04:12:27Ruby含めてDBライブラリを持つ言語を使わないとトランザクション
とかエラー処理周りを書くのにえらい苦労すると思う。
検索専門だったりデータをガツンと丸ごとインポートする程度なら
シェルスクリプト+αもありだし実際使うけど、エラーも考慮して
継続的にデータを出し入れする「ちゃんとした」DBアプリを作るの
であればawk云々の出る幕はないと思うんだがなぁ。
とりあえず>>250はクエリで複数行を引っ張ってきてから手元で
絞り込みをかける奇妙さといい、そもそも何で正規表現使っている
のかなとか例としては謎が多すぎる。
0282デフォルトの名無しさん
2009/05/12(火) 09:57:10得意満面で余計なことをAWKでしてる、という話。
0283デフォルトの名無しさん
2009/05/12(火) 10:07:45いいえw
てか何でAWK?
俺はHaskell派なんだけど・・
0284デフォルトの名無しさん
2009/05/12(火) 10:18:59お前じゃねーよw
>>249-251を見れw
0285デフォルトの名無しさん
2009/05/12(火) 11:50:27客に言われるがまま新しいコードを作るのにOOPなんてやってたら何時までも終わるわけがない
OOPの必要性が分かるまで、潰れないだけで、飛躍も無いけどな
0286デフォルトの名無しさん
2009/05/12(火) 12:12:570287デフォルトの名無しさん
2009/05/12(火) 21:37:490288デフォルトの名無しさん
2009/05/12(火) 22:41:02OO使える(と思っている)やつが、OOのメリットを明確に示せないからしかたないね。
0289デフォルトの名無しさん
2009/05/12(火) 23:07:05まったくアプローチが違うっていうのと一緒。
プログラミングできない人は「プログラミングしなくても、Excelあれば十分じゃん」言うし、
プログラミングできる人は「awkで処理すればすぐできるのに」と思う。
0290デフォルトの名無しさん
2009/05/12(火) 23:22:530291デフォルトの名無しさん
2009/05/12(火) 23:28:17定義に費やして、ファイル末尾三行ぐらいでnewしてメソッド呼び出し、終了って
のを、時々見かけるけど、あのOOPは何かの役に立ってるんだろうか?
0292デフォルトの名無しさん
2009/05/12(火) 23:31:26ただ、彼らは学習に時間と金をかけられないから
何をやるにもシェルスクリプトオンリーとかawkオンリーになるわけだ。
たとえ面倒でも、他人に頼らずに目的を達することができるなら、
それはそれでアリだろう。
何でも同じ包丁で調理するのは我々から見ればナンセンスだが
彼らの立場では合理的選択なのさ。
0293デフォルトの名無しさん
2009/05/13(水) 05:35:27役に立っていないと思うよ。
トップレベルの名前空間を汚したくないからクラスに隔離している
だけだと思う。今のところRubyではこれが一番簡単な方法。
グローバル変数とかの類は気分的に気持ち悪い人も多いかと。
書き捨てならともかく再利用したり他人の目に触れる可能性がある
プログラムならなおさらね。
0294デフォルトの名無しさん
2009/05/13(水) 05:35:27役に立っていないと思うよ。
トップレベルの名前空間を汚したくないからクラスに隔離している
だけだと思う。今のところRubyではこれが一番簡単な方法。
グローバル変数とかの類は気分的に気持ち悪い人も多いかと。
書き捨てならともかく再利用したり他人の目に触れる可能性がある
プログラムならなおさらね。
0295デフォルトの名無しさん
2009/05/13(水) 07:30:23馬の耳に念仏って言葉、知ってるか?
0296デフォルトの名無しさん
2009/05/13(水) 09:22:590297デフォルトの名無しさん
2009/05/13(水) 10:26:370298デフォルトの名無しさん
2009/05/13(水) 11:44:050299デフォルトの名無しさん
2009/05/13(水) 18:38:55たとえば、関数型の高階関数をOOでどうやってやるんだって考えてたら
抽象メソッドを継承するって思いついた。
0300デフォルトの名無しさん
2009/05/13(水) 20:16:080301デフォルトの名無しさん
2009/05/13(水) 21:26:56関数型言語やったことねぇだろwwww
0302デフォルトの名無しさん
2009/05/14(木) 20:20:560303デフォルトの名無しさん
2009/05/14(木) 23:30:06関数型なら引数に関数を取れる、で一発
0304デフォルトの名無しさん
2009/05/15(金) 02:35:470305デフォルトの名無しさん
2009/05/15(金) 02:38:37だからOOPLは手続き型言語の一種
0306デフォルトの名無しさん
2009/05/15(金) 03:31:360307,,・´∀`・,,)っ-○○○
2009/05/15(金) 07:32:560308デフォルトの名無しさん
2009/05/15(金) 07:59:55現代的な言語に絞っても、Haskellにも型クラスの継承関係あるし
PrologにもOO拡張が存在するし
0309デフォルトの名無しさん
2009/05/15(金) 08:07:330310デフォルトの名無しさん
2009/05/15(金) 08:30:080311デフォルトの名無しさん
2009/05/15(金) 09:14:310312デフォルトの名無しさん
2009/05/15(金) 14:04:110313デフォルトの名無しさん
2009/05/15(金) 15:33:08禿が言ってる
0314デフォルトの名無しさん
2009/05/15(金) 15:36:14∧_∧
ミ ゚Д゚ 彡
∪ ∪
し―J
誰がハゲにゃねんっ!
( ⌒ )
| | /
γ⌒`ヽ ぷんぷん
⊂ミ,,゚Д゚彡
/ ノ∪
し―J ‖|
ペシッ!!
_) ∧_∧ (_
⌒) (⌒
γ⌒`ヽ
ミ ゚Д゚ 彡
∪ ∪
し―J
0315デフォルトの名無しさん
2009/05/16(土) 21:06:310316デフォルトの名無しさん
2009/05/17(日) 13:39:390317デフォルトの名無しさん
2009/05/18(月) 20:48:28OO分析とかOOデザインとか言ってる奴等にかぎって役に立たないのはなぜ???
0318デフォルトの名無しさん
2009/05/18(月) 21:03:27理解できない子はとりあえず取り替えないとチームが成立しない
0319デフォルトの名無しさん
2009/05/18(月) 21:08:51その昔
「アホでも使えるようになるからOO分析とかOOデザインをやれ」
って聞いたぞwW
0320デフォルトの名無しさん
2009/05/18(月) 21:13:20なんかでも作りこみすぎはダメてなことが載ってる。
時代的にまた一回りしてきたってとこかね。
0321デフォルトの名無しさん
2009/05/18(月) 21:55:13まぁね、UML とか言っても、まだハード屋が使ってるビヘイビア記述に
追いついてないような気がするし、記述方法とかを理解できる奴の範囲
が限られるし…
ソフト畑って、未だにベース部分のばらつきが大きすぎるんだと思うよ
ゆとりとか何とか言ったって、ハード屋の方が粒がそろってるように見える
0322デフォルトの名無しさん
2009/05/18(月) 22:25:34それを無能世代の別の言い方にしてしまったのは団塊世代なんだぞ。
ゆとり教育世代を批判しまくって人材を安く買いたたくためでしかない。
未だにゆとりがどうのこうの言ってるやつはそろそろ団塊世代に踊らされていたことに気づけ。
んで、当の団塊世代が定年などで一線から退いたら、今度は手のひらを返したように「今の若い人は優秀で自分たちがいかにボンクラだったか思い知らされる」
などと言っている訳なんだよ。
結局、優秀なやつは優秀で無能なやつは無能というだけ。
その数に世代は関係ないみたいだね。
0323デフォルトの名無しさん
2009/05/18(月) 23:15:36文系なのにハード屋ってのはまだ少数派だろう。
0324デフォルトの名無しさん
2009/05/18(月) 23:52:09OOライブラリを使わせるだけならそうだろうけど
使うだけの側のプログラマーって現実的にはありえないし
0325デフォルトの名無しさん
2009/05/19(火) 00:23:05生産効率下がるじゃん
0326デフォルトの名無しさん
2009/05/19(火) 01:02:390327デフォルトの名無しさん
2009/05/19(火) 02:26:040328デフォルトの名無しさん
2009/05/19(火) 04:45:23でもオブジェクト指向の本来はインスタンス指向なのに
巷ではすっかりクラス指向になってしまった
せっかくの良いアイディアが腐ってしまった
元を質せばC++がOOと相性の悪い静的型付けマンセーだからだ
つまり禿が悪い
0329デフォルトの名無しさん
2009/05/19(火) 05:04:58それだけのためにクラスを使っている。
他の面倒な機能は使っていない。
0330デフォルトの名無しさん
2009/05/19(火) 05:12:19消えてなくなれよ->オブジェクト指向(2);
0331デフォルトの名無しさん
2009/05/19(火) 08:05:17Scalaみたいなやつ?
0332デフォルトの名無しさん
2009/05/19(火) 08:52:57何言っているんだ?
インスタンス指向とクラス指向って何がどう違うんだ?
俺にはどちらも同じに感じるのだが
0333デフォルトの名無しさん
2009/05/19(火) 11:12:20クラス指向っていうのは多分、すっぽすっぽ先生の抽象型によるOOのこと
あと一つなんかあった気がするけど忘れた
0334デフォルトの名無しさん
2009/05/19(火) 12:25:31だからイマイチ流行らねんだ。
0335デフォルトの名無しさん
2009/05/19(火) 13:13:31そいつの説明を聞いても、単なる言い方の違いとしか思えないのだが...
0336デフォルトの名無しさん
2009/05/19(火) 13:16:19無いわー
JavaやC#やってた人がJavascriptに違和感なく入れるっていう人くらい詐欺話だわー
0337デフォルトの名無しさん
2009/05/19(火) 14:51:09Javaやってる人がC#に違和感無く入れるって?
0338デフォルトの名無しさん
2009/05/19(火) 16:49:590339デフォルトの名無しさん
2009/05/19(火) 17:58:38クラスはコンパイル時に静的に決定される。
0340デフォルトの名無しさん
2009/05/19(火) 19:30:01それは静的型付けクラスベースの場合だけ。
0341デフォルトの名無しさん
2009/05/19(火) 20:20:29静的とか動的と言う言葉の定義がわからん
0342デフォルトの名無しさん
2009/05/19(火) 21:33:33静的だろうが動的だろうがどうでもいい
今時、最低点の型推論もしないような糞コンパイラは捨てろよ
高級言語名乗る資格なし >> ほとんどの C++
# C は高級アセンブラなので許す
0343デフォルトの名無しさん
2009/05/19(火) 22:06:49クラスを持つものだけがオブジェクトという糞設計で改悪どころではないんだよ
メッセージ通信による弱い結合で柔軟に記述できるはずが
継承を繰り返して親クラスの親クラスの..とあちらこちらに依存しているという
情けないことになってしまった
Smalltalkにあったクロージャやダックタイピングというオブジェクト指向の
重要な機構は無断でどこかに捨ててしまったくせに
オブジェクト指向という名前だけちゃっかり借用してるんだ
しまいにテンプレートだジェネリクスだとマクロの変種を持ち出し
例外処理という名のGOTO文やシングルトンと呼ばれるグローバル変数を乱用し
一体どこまで悪くすれば気が済むんだか
消えてなくなるべきは紛い物のオブジェクト指向もどきだよ
0344デフォルトの名無しさん
2009/05/19(火) 22:12:320345デフォルトの名無しさん
2009/05/19(火) 22:15:04「ピュアピュアリスプ
計算なんかはできないの」
ってのと、おんなじ
0346デフォルトの名無しさん
2009/05/19(火) 22:21:03純血オブジェクト指向じゃ組みにくいよ
ジェネリクス・例外処理は便利
0347デフォルトの名無しさん
2009/05/19(火) 22:26:38プロトタイプベースは動的バインディングでないと無理だと思う。
0348デフォルトの名無しさん
2009/05/19(火) 22:45:05組みにくいなら海外でRubyがうけたりしないよ
生産性の高さ"だけ"ならRuby最強だと思ってる
Smalltalkの変態構文のこと言ってるんでしょうけどね
0349デフォルトの名無しさん
2009/05/19(火) 22:56:51Rubyにbegin rescueあるだろ。
動的型付けだからジェネリクスはないが。
Rubyの生産性が高いのは認める。
0350デフォルトの名無しさん
2009/05/19(火) 23:27:04ダックタイピングで思い出したが、Scalaの静的ダックタイピングが超便利。
0351デフォルトの名無しさん
2009/05/20(水) 00:02:12勿論、実行時にしかわからない動的な処理を行うなら
例外機構が必要なのは分かってるが
単にエラーコードを戻せばすむようなケースまで
乱用されるようになってしまったのは禿げがキチンと
説明しなかったせいじゃないかと思ってる
自分はあんまりraiseしないで使えてるし
0352デフォルトの名無しさん
2009/05/20(水) 08:33:56> 例外処理という名のGOTO文やシングルトンと呼ばれるグローバル変数を乱用し
Smalltalk否定ですか。
例外処理は例外がエスケープしなければ構造化を壊さないし、
Singletonを禁じ手にしたらSmalltalkのMetaclassをどう定義しますか?
0353デフォルトの名無しさん
2009/05/20(水) 08:49:33例外を嫌う理由がわからん。
メソッド呼び出しの深いところでエラーが発生したら、
いちいちエラー処理するレベルまで呼び出しを逆にたどって
エラーコードを戻すのってうっとしくないか?
0354デフォルトの名無しさん
2009/05/20(水) 08:55:28大抵わかんねーし
馬鹿に限ってドキュメントかかねーし
普通にFALSE返せばいいようなのを例外で返ってくるようなのもあるしね
0355デフォルトの名無しさん
2009/05/20(水) 12:11:24それぞれの関数でエラー処理するだけだろ。
関数作るときに、それがどのくらいの深さで呼ばれてるとか
意識するべきではないし。
0356デフォルトの名無しさん
2009/05/20(水) 12:36:07のは例外も関数内でのエラー処理も一緒だと思うけど。
0357デフォルトの名無しさん
2009/05/20(水) 12:42:540358デフォルトの名無しさん
2009/05/20(水) 12:44:03エラー処理の実装を関数側に書きたくない事って多いと思うけど。
コンソールに吐きたいとかログに吐きたいとかダイアログ出したい
とか見ないふりして先に進みたいとか、呼び出し側で決めたいこと
は少なく無いと思う。
関数内で確保したリソースの解放とか、関数内で出来る後始末だけ
してもらって後はさっさと例外投げてもらった方が使い勝手が良い
し再利用性も高いと思うけど。
0359デフォルトの名無しさん
2009/05/20(水) 12:47:56エラーを関数内で処理してしまうつくりは良くないとかなんとか。
0360デフォルトの名無しさん
2009/05/20(水) 12:56:49>関数作るときに、それがどのくらいの深さで呼ばれてるとか
>意識するべきではないし。
だから例外処理がいいんだろ。
それぞれの関数でエラー処理ってそらないわ、358の言うとおり。
0361355
2009/05/20(水) 15:01:11エラーコード返すくらいだけど?
エラーコードをどう処理するかは呼び出し側の関数で決めればいいこと。
0362デフォルトの名無しさん
2009/05/20(水) 15:42:34355は直接呼び出したメソッドでエラー処理しているらしいことはわかった
おれは同じようなエラー処理をあちこちに書きたくないから例外を使う
0363デフォルトの名無しさん
2009/05/20(水) 17:22:38呼び出し関係が深くなっていった場合を考えよう。
それぞれの呼び出し側でエラーを認識して、そのまた呼び出し側にそのエラーを正しく伝えなければならない。
そんなことするぐらいなら、例外で1つのハンドラで包んだほうが構造として正しいと思わないか?
0364デフォルトの名無しさん
2009/05/20(水) 20:08:53Rubyってクラス指向でしょ。
クラスとインスタンスは明確に区別されている。
0365デフォルトの名無しさん
2009/05/20(水) 21:24:47C++はSimulaゆずりのクラス中心の言語なのに対して、
Rubyはインスタンス中心の言語にみえる。
もともとC++やSimulaは、抽象データ型言語であっても
オブジェクト指向言語とは言われてなかった。誰かが故意に
オブジェクト指向の意味を拡大解釈したんだろうね
>>313 のマルチパラダイム指向言語ならまだ許せる
0366デフォルトの名無しさん
2009/05/20(水) 21:50:38うほっScala知らなかったよ。禿が無断で削除した重要な機能が全部カムバックしとるw
関数はオブジェエクトだし、ジェネリクスはあるけどまともに型を認識する
C++のグチャグチャなエラー吐くマクロもどきはなくなってるじゃん
0367デフォルトの名無しさん
2009/05/20(水) 21:54:52365の言うインスタンス中心の言語って何だよ
おれはインスタンス指向といえばJavaScriptをイメージした。
C++とRubyは静的型付けか、動的型付けかの違い。
0368デフォルトの名無しさん
2009/05/20(水) 22:34:34俺は>>355とは違う人だけど
呼び出し側でそんなことする意味あんの?
仮に100回その関数を記述したら100箇所で同じ処理書くってことでしょ?
エラーはあくまで関数内で処理を決めるべきだと思う
そうしないと上記手間が増えるし、呼び出し側で正しいエラー対処をしないと・・・ってのがなんか気になる
だったら関数内でしかるべき処理しろよって思う
俺の理想は関数はあくまで成功したか失敗したかを呼び出し側に通知して
詳細なエラー処理はあくまでテメーでなんとかしろってのが俺流
もし、その関数の失敗の仕方が仕様に関わってくるならそれはもう
その関数は失敗していないんじゃないかと俺は思う(意味わかるかな?)
0369デフォルトの名無しさん
2009/05/20(水) 22:44:15C++はまずクラスを作りそれを型紙としてインスタンスを生成する
Rubyはまずインスタンスを作りメンバーを追加する
書式を似せて同じように見せているが中身が全く違う
Rubyのクラスというのはデフォルト実装の指定であって
動的型付け言語というより型の無い言語と考えるべき
C++に後からメンバ関数を追加する簡単な方法はない
0370デフォルトの名無しさん
2009/05/20(水) 23:11:160371デフォルトの名無しさん
2009/05/20(水) 23:29:19俺は>>363とは違う人だけど
>呼び出し側でそんなことする意味あんの?
そんなこっとってエラー処理だよね
>呼び出し側に通知して
>詳細なエラー処理はあくまでテメーでなんとかしろって
これって呼び出し側でエラー処理しろってことだよね
言ってることがよくわからん。
0372デフォルトの名無しさん
2009/05/20(水) 23:54:37違うってだから例外で色々キャッチさせるだろ?
こっちが例外を全部処理しなきゃいけないみたいによ
でも実際に必要なのは
BOOL transXXXX()
これ↑このBOOLだけじゃん
詳細な情報ってのは関数の中でやればいいじゃん
(だって決まったエラー対応してほしいんでしょ?)
0373デフォルトの名無しさん
2009/05/21(木) 00:09:55簡単に言うと、RubyではクラスCのインスタンスaとbがあったとして、aにのみ実行中にメソッド(メンバ関数)を追加できる。
Javascriptと同様にインスタンス指向の言語と呼べると思う。
0374デフォルトの名無しさん
2009/05/21(木) 00:14:28関数内でエラーが発生したら戻り値をfalseにするというのはわかった。
例えば通信用の送信関数でBOOL SendMessage(string message);
て感じのものがあって、呼び出し側SetupDeviceは何回かSendMessageを呼ぶとする
エラーリターンの場合は
int SetupDevice() {
if (!SendMessage("Init")) return false;
if (!SendMessage("Set1")) return false;
if (!SendMessage("Set2")) return false;
return true
}
void main() {
if (!SetupDevice()) printf("通信エラー");
//後続処理
}
0375デフォルトの名無しさん
2009/05/21(木) 00:14:44わざとなのかもしれんが意味不明で滑ってる
0376デフォルトの名無しさん
2009/05/21(木) 00:18:18void SetupDevice() {
SendMessage("Init");
SendMessage("Set1");
SendMessage("Set2");
}
void main() {
try {
SetupDevice();
//後続処理
} catch() { //通信の例外が発生
printf("通信エラー");
}
}
で、楽だと思う
0377デフォルトの名無しさん
2009/05/21(木) 00:19:55詳細な対応をしたいときはどうする?
0378デフォルトの名無しさん
2009/05/21(木) 00:22:56ありえない(俺の経験上)
それは結局他の呼び出し箇所でもやらなければいけない内容であって
関数の中でやれと思う
0379デフォルトの名無しさん
2009/05/21(木) 00:24:260380デフォルトの名無しさん
2009/05/21(木) 00:25:00処理を変えることが必要であるなら
そもそもこの関数はfalseを返してはいけない
この関数がfalseを返すときは出力のすべてが無効のときでなければならない・・・はず
0381デフォルトの名無しさん
2009/05/21(木) 00:27:43了解、特異メソッドはインスタンス指向だと思う
objectのインスタンスに特異メソッドを追加するだけの方法で
プログラミングできるとも思う。
自分はあまり特異メソッドを使っていない。
クラス指向で組んでいる。
rubyはどちらにもなると言うことか
0382デフォルトの名無しさん
2009/05/21(木) 00:27:53SetupDeviceが例外を吐いてくれるかどうかはそのソースのどこで判断するの?
後続処理のどれかが吐いてる例外かもしれないんでしょ?
0383デフォルトの名無しさん
2009/05/21(木) 00:41:17だから後続処理で通信エラーが発生しても例外処理が1つで済むんだよ
SetupDeviceだけ通信エラーをトラップしたいなら
void SetupDevice()
{
0384デフォルトの名無しさん
2009/05/21(木) 00:43:27そんなこと聞いてないよ
初見でみた人がSetupDeviceが例外を返す仕様かどうかをどうやって判断するか聞いてるんだよ
0385デフォルトの名無しさん
2009/05/21(木) 00:46:39だから後続処理で通信エラーが発生しても例外処理が1つで済むんだよ
そんなニーズはあまりないが、あえてSetupDeviceだけ通信エラーをトラップしたいなら
例外処理をmainからSetupDeviceに移して
void SetupDevice()
{
try {
SendMessage("Init");
SendMessage("Set1");
SendMessage("Set2");
} catch() { //通信エラー
printf("通信エラー");
}
}
0386デフォルトの名無しさん
2009/05/21(木) 00:47:59さっきから勝手に質問を曲解してうぜぇけど
誰もそんなこと聞いてねぇよ
0387デフォルトの名無しさん
2009/05/21(木) 00:49:37ドキュメント
0388デフォルトの名無しさん
2009/05/21(木) 00:52:43アフォだな
確実にセンスのねぇクラスとメソッドだな
if(!SetupDevice()){
//エラー
}
こう書いてあったほうが何倍も読みやすいじゃねーか
例外かいて仮にこれが省略できたとしても
この仕様でソース書き続けたらクラス使ってあるたびに
元のソースかドキュメント確認して例外かえすかどうか確認しなくちゃいけないんだぞ
超面倒くせぇセンスねぇ時間ばかり使ってぇなにも産まねぇw
0389デフォルトの名無しさん
2009/05/21(木) 00:58:21初見でみた人がSetupDeviceの戻り値が成否を返す仕様かどうかをどうやって判断する?
0390デフォルトの名無しさん
2009/05/21(木) 00:59:22Win32APIってそういう形式だよね
0391デフォルトの名無しさん
2009/05/21(木) 01:02:34成功のときが0で失敗のときがエラーコードのときもあるから
結局仕様を確認しないといけないから手間かかるけどな。
あげくにBOOL型を返しつつ
BOOLの中身が0と負数と正数の三種類の値を返すときもあるから
型も信用できない
0392デフォルトの名無しさん
2009/05/21(木) 01:17:50俺もそのスタイルの方が、だんぜんにエラー処理がやりやすい。
結局、マジメにエラー処理をしたいかどうか、の違いだと思う。
例外ってエラー処理をマジメにやらないで済ませるためのものなんだよね。
エラー時の処理が全部同じならまとめてしまえ、っというのが例外の狙い。
だから、例外の種別ごとに処理しよう、とかマジメにやろうとすると
基本設計と矛盾しちゃうのでかえって分けの分からないことになってしまう
0393デフォルトの名無しさん
2009/05/21(木) 01:32:02普通、関数のコメントに書くだろ。doxgen形式か何かで。
0394デフォルトの名無しさん
2009/05/21(木) 01:33:32どういう例外を投げるかの仕様もまた同じことだろうね。
0395デフォルトの名無しさん
2009/05/21(木) 01:39:310396デフォルトの名無しさん
2009/05/21(木) 01:39:43SetupDeviceが使っているSendMessageが呼び出す関数が例外を投げるように
なるかもしれないというのはある。
0397デフォルトの名無しさん
2009/05/21(木) 03:44:54しれない、なんて一種の暗黙知というか風習の類。
そうではない場合も少なからずあるし、結局例外にせよ返値に
せよ、どちらもドキュメントやコメント読まないと意味がない。
ただ言語によって異なるけどJavaなんかだと文法的に例外処理を
強制しているので、どのような例外が投げられるか把握して
いないとそもそもコンパイルが通らない。
なので最低限メソッドがどんな例外クラスを投げるかの情報は
コンパイラのエラー出力を読めば分かるし、メソッドのシグネチャ
にも明記してある点では分かりやすい。
0398デフォルトの名無しさん
2009/05/21(木) 03:50:01>成功のときが0で失敗のときがエラーコードのときもあるから
横だが
俺いつもそれで困る。
0がエラーだったら
if(!DoHoge())の!がびっくりした感じでなんとなくエラーっぽい外観でわかりやすいんだけど
この表記が成功だったり失敗だったりで紛らわしい。
同じ関数内で混在すると特に。
0が成功だと
if(DoFoo())のあとにエラー処理書くのがなんとなく気持ち悪い。
>>388の例みたいに
//エラー処理
って冒頭に書けばいいだけかもしれんけど
0399デフォルトの名無しさん
2009/05/21(木) 04:12:43SetupDeviceがSetupDevice1を、SetupDevice1がSetupDevice2を、と深く呼び出していって、
SetupDevice10が実際にデバイスとIOしているとしよう。
おまえの書き方だと、SetupDevice1からSetupDevice9の定義は
int SetupDevice1(void) {
code =SetupDevice2()
if (code) {
do_other_initialization1();
}
return code;
}
みたいになって、9箇所でエラー処理部分と正常処理部分を切り分けなきゃならない。
そして、どのレベルでどのようなエラー回復がされるのかが見えなくなる。
例外処理を使ってかけば、エラー処理は実際にハンドラを定義している部分だけで
余計なif (code)は不要になるし、ハンドリングしている箇所を追いかけるのも、
IDEがちゃんとしていれば指定された例外をハンドラ定義している部分を簡単に見つけられる。
if (code)では一般のif文だからそうはいかない。1つ1つ関数を読んで確認しなければならない。
0400デフォルトの名無しさん
2009/05/21(木) 06:06:21つ longjmp
てのはおいておいて、状況によるんじゃないの?
何らかの言語のソースをパースしているときの EOF の扱いとかだと,
EOF を読み出す状況(ソース中の位置に)よって対応が変化するので
try {
if ((token = read_token(...)) == EOF) {
eof の処理
}
} catch (io_error e) {
エラーの処理
}
の, 形で書けた方が直感的.
java みたく EOFException で返されるとソース読みにくい
慣れの問題なのかも知れないが...
0401デフォルトの名無しさん
2009/05/21(木) 06:10:27はぁ?何を心配してるのかさっぱりわからない
SetupDeviceの中身なんて関係ねーんだよ
呼び出し側優先で考えて作ってくれよ
0402デフォルトの名無しさん
2009/05/21(木) 07:32:50それ最悪だよね
マジでなにを確認したらいいのかわからなくなる
SetupDeviceの仕様もドキュメントも変わってないのにある日突然よくわからないタイミングで例外降ってくるよね
0403デフォルトの名無しさん
2009/05/21(木) 07:34:230404デフォルトの名無しさん
2009/05/21(木) 07:35:52下手な書き方だな。
0405デフォルトの名無しさん
2009/05/21(木) 07:50:06関数の外に例外を投げることは極力やらないようにしてる。
関数外に例外を投げるのは、例外を出す関数と例外を処理する関数が密接に関連してて、
どういうケースでどういう例外が出て、どう処理すればいいのかをそれらの関数全体で
設計するときくらいかな。
0406デフォルトの名無しさん
2009/05/21(木) 07:57:31じゃなくてそんなことしないほうがいいんじゃないの?
0407405
2009/05/21(木) 08:04:580408デフォルトの名無しさん
2009/05/21(木) 08:22:01それでは済まない場合、例えばデータベースの処理でロールバックしなきゃいけないなど、
そんなときだけ途中レベルで例外処理して、例外を再送出している。
例外使っててドキュメントが増えて難儀するなんてことはない。
>>402
396のSendMessageが呼び出す関数で例外が発生するようになるというのは仕様変更
関数の仕様変更に呼び出し側が対応するのは例外・エラーリターンどちらでも同じ
0409デフォルトの名無しさん
2009/05/21(木) 08:25:48志しでいい場合は例外でもいいかもね
0410デフォルトの名無しさん
2009/05/21(木) 08:32:31エラー起きても終わらせたくないときは途中レベルで例外処理
エラー処理を荒くもできるし細かくもできる
0411デフォルトの名無しさん
2009/05/21(木) 08:34:42ScalaのOption、HaskellのMaybeみたいな奴だろ。C#のNullableも近い。
0412デフォルトの名無しさん
2009/05/21(木) 08:35:39それは、エラーハンドリングしなくていいプログラムの場合だろ?
SendMessageのような通信もののばあい、エラーが起きたらそのコマンド
再送するけど、数回繰り返してだめだったら最初からリトライする。
というようなわりとめんどうなエラーハンドリングしないといけないことがおおい。
0413デフォルトの名無しさん
2009/05/21(木) 09:02:45お互いに、「そうじゃない、例外処理は場合による」なんて言ってたらまとまる訳無いじゃん
0414デフォルトの名無しさん
2009/05/21(木) 09:07:51前提の整理がされてないから当然の流れ
0415デフォルトの名無しさん
2009/05/21(木) 09:49:36「インスタンスを作って」って言ってるけどさ、処理の内容はソースで書くじゃない
動的な配列の確保と違って、その場限りって事は無いだろ
0416デフォルトの名無しさん
2009/05/21(木) 09:59:500417デフォルトの名無しさん
2009/05/21(木) 10:09:350418デフォルトの名無しさん
2009/05/21(木) 10:11:350419デフォルトの名無しさん
2009/05/21(木) 10:32:58俺は、プログラムが異常終了しないようにする保険みたいなものと考えてるけど
0420デフォルトの名無しさん
2009/05/21(木) 12:24:500421デフォルトの名無しさん
2009/05/21(木) 15:23:45結果を戻す方法に返値と例外の2ラインがあるだけでも使い勝手が
あると思うけど。
例えば正常な返値としてnull等々も返しうる関数で、しかも時には
エラーも返したい、という場合はどう書くのかな。
0422デフォルトの名無しさん
2009/05/21(木) 17:47:16> SetupDeviceの中身なんて関係ねーんだよ
> 呼び出し側優先で考えて作ってくれよ
>>399の例で言えば
SetupDevice1からSetupDevice9まで
全部「呼び出し側」なことに気付けカス
0423デフォルトの名無しさん
2009/05/21(木) 17:49:18例外を投げるように作っておけば、
エラーコードを返すほうのバージョンは簡単にラッパーで書ける。
0424デフォルトの名無しさん
2009/05/21(木) 17:56:56はぁ?
なんで関数の中までみないといけないの?
この時点でおかしいじゃん
馬鹿なんじゃない?
0425デフォルトの名無しさん
2009/05/21(木) 18:00:57ほしいかなぁ。
チェーンの途中でnullとか出力されるとヌルポが怖くて使えん。
0426デフォルトの名無しさん
2009/05/21(木) 18:20:06>>424は関数の内部の実装なんか知ったこっちゃねぇ、ただ
APIとしてユーザに公開される関数に関しては例外を投げるな、
エラーコードで戻せ、と言いたいんじゃ無いのかな。
気持ちとしては分からないでもない。
でもどちらが良いかは実際の関数の使われ方によるんじゃないのかな。
例外で投げてもらった方が使い勝手が良い場合もあるし。
0427デフォルトの名無しさん
2009/05/21(木) 19:22:45使われ方?はぁ?
言葉に気をつけろよ
1回潜ったら100回潜っていく必要があることと等価だろ?
関数が呼んでる関数の中で呼んでる関数の仕様に翻弄されてちゃ
いつまでたっても完成なんかしないよ
0428デフォルトの名無しさん
2009/05/21(木) 19:51:42Javaもその点が残念すぎる
0429デフォルトの名無しさん
2009/05/21(木) 20:40:57ヌルポも立派な例外だろ。
0430デフォルトの名無しさん
2009/05/21(木) 23:10:09例外処理は重いというのは良くみるけれど、今ひとつぴんとこない。
従来の関数の戻り値を見るやり方に比べて重いのは、例外発生時に例外オブジェクトを
newするという点だけだと思うんだけど間違ってる?
0431デフォルトの名無しさん
2009/05/21(木) 23:26:51かまうな
レスをつけるな
0432デフォルトの名無しさん
2009/05/21(木) 23:33:350433デフォルトの名無しさん
2009/05/21(木) 23:46:16拾い溢しを防ぐような使い方がいい
先にアプリケーションがあって、ライブラリが後から実装みたいな開発の仕方なら
例外中心のほうがいいけど
0434デフォルトの名無しさん
2009/05/22(金) 00:00:11Javaの場合スタックトレース(呼び出し階層)を生成するから遅いよ。
復帰可能かつ精度が求められない演算(たとえばストリーミングで動画再生とか)での
エラー処理って言うのは、わざわざスタックトレース生成せずにそのブロックだけ
空の値を返すとか前回の演算結果をそのまま返すとかしたほうがいい。
結局はエラー処理をどう扱うかなんてケースバイケースなんだけど、
そのケースの要件とか許容範囲を精査せずに実装すると切ないことになる。
0435デフォルトの名無しさん
2009/05/22(金) 00:11:19誰もそんなこと聞いてねぇよ
消えろよ馬鹿
0436デフォルトの名無しさん
2009/05/22(金) 00:14:480437デフォルトの名無しさん
2009/05/22(金) 00:42:47時代遅れ
0438デフォルトの名無しさん
2009/05/22(金) 00:46:130439デフォルトの名無しさん
2009/05/22(金) 05:26:49自分の失敗を例外処理のせいにしてヤツアタリしている、
ということで了解。
0440デフォルトの名無しさん
2009/05/22(金) 06:15:39は?
日本語読めないクズは黙ってろよ
0441デフォルトの名無しさん
2009/05/22(金) 06:18:580442デフォルトの名無しさん
2009/05/22(金) 07:20:250443デフォルトの名無しさん
2009/05/22(金) 07:47:06アフォだねえ
> if(!SetupDevice()){
> //エラー
> }
エラーは一種類しかないのかいw
> この仕様でソース書き続けたらクラス使ってあるたびに
> 元のソースかドキュメント確認して例外かえすかどうか確認しなくちゃいけないんだぞ
どんなポンコツIDE使ってんだよ。
どのメソッドがどんな例外をthrowするかなんてIDEがチェックできるだろ。
そのためのthrows句だ、カス。
そもそも、エラー返す場合のほうがどの関数がどんなエラーコードを返すか、
元のソースかドキュメント確認しなきゃならないだろ。
> 超面倒くせぇセンスねぇ時間ばかり使ってぇなにも産まねぇw
その言葉、そっくり
> if(!SetupDevice()){
> //エラー
> }
こういうアフォなことやる底辺PGに返してやるよ。
0444デフォルトの名無しさん
2009/05/22(金) 07:55:160445デフォルトの名無しさん
2009/05/22(金) 08:06:05JavaのEOFや、VB6のCollectionのキーのない要素にアクセスしたときの例外は
例外の乱用だと思う。
0446デフォルトの名無しさん
2009/05/22(金) 08:06:120447デフォルトの名無しさん
2009/05/22(金) 08:35:46下手にNullなんぞ返されるより、例外を上げてもらったほうがナンボかマシだなあ。
0448デフォルトの名無しさん
2009/05/22(金) 08:36:19一連のレスを読めばその辺の返答は全部書いてあるんだけど?
0449デフォルトの名無しさん
2009/05/22(金) 08:41:07そのことごとくが的外れであることが指摘されているわけだが?
0450デフォルトの名無しさん
2009/05/22(金) 08:50:36一方は、「例外を使う必要が有るところで例外を使おう」
お前ら馬鹿だろ?
0451デフォルトの名無しさん
2009/05/22(金) 08:53:240452デフォルトの名無しさん
2009/05/22(金) 08:57:15例外についても見直せて良かったんじゃない?
やっぱりおれは例外使うけど
0453デフォルトの名無しさん
2009/05/22(金) 10:19:040454デフォルトの名無しさん
2009/05/22(金) 10:58:24その前に、OOの話をしていて唐突に例外に話題が移る時点で。
0455デフォルトの名無しさん
2009/05/22(金) 11:04:28> どのメソッドがどんな例外をthrowするかなんてIDEがチェックできるだろ。
> そのためのthrows句だ、カス。
どの関数が throwするかじゃなくて、実行時にどの関数が実行されるかが問題。
0456デフォルトの名無しさん
2009/05/22(金) 11:27:08インスタンスが分からない人たちだからしょうがないね
0457デフォルトの名無しさん
2009/05/22(金) 11:39:29言語境界とかOS境界を越えて同じバイナリを使うのが困難すぎる
0458デフォルトの名無しさん
2009/05/22(金) 12:02:34メソッドの実装を変更すると、投げられる可能性のある例外が変わる。
その例外を垂れ流せばインタフェースが変わってしまう。
でも、インタフェースが実装に依存するのはよくないから、
全ての例外をメソッドの内部でcatchしておくべき。
問題は、何かのミスで例外が外に漏れ出したりしないことを保証できるかどうか。
0459デフォルトの名無しさん
2009/05/22(金) 12:15:48何番のレス?
>問題は、何かのミスで例外が外に漏れ出したりしないことを保証できるかどうか。
全ての例外を握りつぶすことは簡単、例外が発生したらreturn falseするのも簡単
} catch {
return false;
}
0460デフォルトの名無しさん
2009/05/22(金) 12:27:15処理系にもよるだろうけど、
中でスレッド起こしてたら、例外は別ルート通っていってキャッチできなくね?
0461デフォルトの名無しさん
2009/05/22(金) 12:36:13例外ってスレッドで独立してないか?
呼び出したルーチンに例外は漏れんと思うが
0462デフォルトの名無しさん
2009/05/22(金) 12:45:310463デフォルトの名無しさん
2009/05/22(金) 12:51:05だから、処理系によると書いた。
少なくとも、g++では別スレッドからの例外はキャッチできずにプログラム自体が落ちた経験がある。
0464デフォルトの名無しさん
2009/05/22(金) 12:51:090465デフォルトの名無しさん
2009/05/22(金) 12:57:12メソッドがどんな例外を投げるか
っていうのは、インタフェースに関わることで、
インタフェースはオブジェクト指向の本質と言っても過言ではない。
0466デフォルトの名無しさん
2009/05/22(金) 12:57:160467デフォルトの名無しさん
2009/05/22(金) 13:00:50> インタフェースはオブジェクト指向の本質と言っても過言ではない。
なぜか、オマイのことだけは信用していい気がした。
0468デフォルトの名無しさん
2009/05/22(金) 13:05:03C++やLispでCLOSを使ってると出て来ないよね?
0469デフォルトの名無しさん
2009/05/22(金) 13:10:35例外は例外的な事態が発生した時に発生させるものなので、
基本的にパフォーマンスは問題にならない。
もそパフォーマンスが問題になるほど頻繁に例外を発生させてるのなら、
例外の使い方が間違ってる。
0470デフォルトの名無しさん
2009/05/22(金) 13:18:000471デフォルトの名無しさん
2009/05/22(金) 13:24:35速度重視で真偽値を返す奴との2通り用意してある事が多いでしょ。
0472デフォルトの名無しさん
2009/05/22(金) 13:31:39予測可能な例外って意味わかんないよ!
0473デフォルトの名無しさん
2009/05/22(金) 13:38:00いや、ifを書くとコードがごちゃごちゃするから、例外でまとめてキャッチするという手段を使うと良い場合もあるんだよ。
0474デフォルトの名無しさん
2009/05/22(金) 13:39:46ってやった方がシンプルで安全な場合もある。
0475デフォルトの名無しさん
2009/05/22(金) 13:56:53ifが嫌ならswitchを使うといいwww
0476デフォルトの名無しさん
2009/05/22(金) 13:58:43根本解決になってない
0477デフォルトの名無しさん
2009/05/22(金) 13:59:07ま、キレイに書きたい気持ちは分かるけど…
本当にそれは例外じゃないとだめなの?
0478デフォルトの名無しさん
2009/05/22(金) 14:03:52お前に言われたくないが、
ErlangスタイルでC++とかでプログラミングするなら例外を使うときれいにまとまるな。
0479デフォルトの名無しさん
2009/05/22(金) 14:11:19例外がどこから飛んできたのかわかりにくくなる。
全然関係ない場所から偶然同じ型の例外が飛んできたら嫌じゃん
0480デフォルトの名無しさん
2009/05/22(金) 14:23:07必要があれば部分的に例外処理、荒くも細かくもできる
0481デフォルトの名無しさん
2009/05/22(金) 14:23:23例外が投げられた場所に応じた細かい対応を記述したいの
なら狭い範囲を囲めばいいじゃん。
広い範囲を囲むのは、その範囲内で投げられた例外に対して
同じ処理で対応出来る時。
所詮書き分けで対応出来る話でしょ。
0482デフォルトの名無しさん
2009/05/22(金) 14:34:350483デフォルトの名無しさん
2009/05/22(金) 14:39:53BadArgumentExceptionとかするのはいかがなものか。
0484デフォルトの名無しさん
2009/05/22(金) 14:41:50そりゃ例外云々じゃなくてGOTOだからダサいんでしょ。
関数呼び出しのたびにIF書いてGOTO飛ばしたらもっとダサくなる。
>>483
素敵だと思うけど。
0485デフォルトの名無しさん
2009/05/22(金) 14:56:42ON ERROR GOTOは、GOTOと書かれてるからダサいんじゃない、エラー処理の本質がGOTOだって事を嫌でも思い知らされるからダサいんだよ
0486デフォルトの名無しさん
2009/05/22(金) 15:06:02オブジェクト プロバイダのガイダンス
例外を、単なる別のエラー処理技法のように扱ってはいけません。
エラーコードを返したり、グローバル変数の設定したりすることと同レベルだと思ってはいけません。
例外は、それを取り巻くコードの構造と意味を、根底から覆します。
例外は、プログラムの実行時セマンティックを一時的に繋ぎ変え、通常実行しているコードを迂回し、
こういう状況でなければ決して実行されないコードを動作させます。
例外は、エラー状態を認知させ、プログラムの死という罰則を用いてその状態を改めようとします。
このように、例外には単純なエラー処理を超えた特性があります。
これらの特性を必要としない、理解しない、あるいは文書化したくないなら、例外をスローしてはいけません。
例外以外のエラー処理技法を探してください。
スローすることに決めたなら、すべての因果関係を理解してください。
あなたの設計が、あなたのコードを使用する他のユーザーに、潜在的に多大な影響を与えることを承知していてください。
例外はインターフェイス契約の一部なのです。
どの種類の例外をインターフェイスからスローするのか、どのような場合に例外をスローするのか、
なぜスローするのか、これらを完全に文書化しなければなりません。
そして、その文書を例外仕様として、コードの中に記述することを十分考えてください。
0487デフォルトの名無しさん
2009/05/22(金) 15:10:190488デフォルトの名無しさん
2009/05/22(金) 15:11:54ですね
わかります
0489デフォルトの名無しさん
2009/05/22(金) 15:12:14エラーの発生した処理と遠く離れたところにcatchがあるのは
現代のスパゲティプログラムといえるね
0490デフォルトの名無しさん
2009/05/22(金) 15:16:01こうも書いてあるね
>例外をスローすべき十分な理由があるなら、進んでその例外をスローして、
>それを文書化すればよいのです。例外をスローするのが当然の場面で、
>例外のスローを回避する方法を発明する必要はありません。
0491デフォルトの名無しさん
2009/05/22(金) 15:47:41仕様、仕様とあるように、例外を投げる仕様と、
投げなくて問題があれば単にnullを返す仕様。
どちらが当然か、という話になるのか?
そういう話じゃないのか?
0492デフォルトの名無しさん
2009/05/22(金) 16:03:49引数で「例外ファクトリ」を指定する仕様にすればスローするのが当然だよね
0493デフォルトの名無しさん
2009/05/22(金) 18:13:48まあ、そうじゃねぇと邪魔でしょうがねぇよな
0494デフォルトの名無しさん
2009/05/22(金) 19:39:15このスレの例外議論を終了したいと思います。2009年5月22日(金)
0495デフォルトの名無しさん
2009/05/22(金) 19:52:020496デフォルトの名無しさん
2009/05/22(金) 21:35:470497デフォルトの名無しさん
2009/05/22(金) 21:37:450498デフォルトの名無しさん
2009/05/22(金) 21:37:490499デフォルトの名無しさん
2009/05/22(金) 21:55:130500デフォルトの名無しさん
2009/05/22(金) 22:03:550501デフォルトの名無しさん
2009/05/22(金) 22:10:28エラーになるかもなんていっていたら何もできやしない。
俺はエラー処理なんて一度も書いたことねぇ。
やれるって信じたら絶対できる。
0502デフォルトの名無しさん
2009/05/22(金) 22:20:200503デフォルトの名無しさん
2009/05/22(金) 22:30:20投げる側では「ある条件のとき例外を投げる」
として、普通におもっくそ想定を置いている。
例外でもなんでもない。
ゼロで割る? ファイルがない? 数値化できる文字列じゃない?
んなもん事前に調べれ。
0504デフォルトの名無しさん
2009/05/22(金) 23:18:44そんな機能があったことも忘れたよw
0505デフォルトの名無しさん
2009/05/22(金) 23:30:10ファイルの存在を確認してから
開くまでの間に消されるかもしれないじゃないか。
そんなのどうやって事前に調べるんだよ
0506デフォルトの名無しさん
2009/05/22(金) 23:31:26受け手がいなくて死んだりする
リンクのミスとかで他の不具合も出る
投げないにこしたことない
0507デフォルトの名無しさん
2009/05/22(金) 23:32:390508デフォルトの名無しさん
2009/05/22(金) 23:37:36それは「ファイルを消すな」という問題じゃね?
プログラムが責任を持つのはせいぜい、
プログラム内での排他処理でよくね?
OSレベルのことで困れば、
オチてプログラム呼び出し側で責任取らせればよくね?
呼び出し元の事情を気にするのは、
よくない設計じゃね?
0509デフォルトの名無しさん
2009/05/22(金) 23:45:480510デフォルトの名無しさん
2009/05/23(土) 03:37:44malloc()の返り値のNULLチェックをやっているのやら。
0511デフォルトの名無しさん
2009/05/23(土) 04:13:00> ゼロで割る? ファイルがない? 数値化できる文字列じゃない?
> んなもん事前に調べれ。
文句言うまえに、そんな糞パラメータ送ったおまえが調べろよ。
0512デフォルトの名無しさん
2009/05/23(土) 04:47:38a();
v = f();
b();
c(v);
一見正しくみえるが、f()が例外を飛ばすのを忘れていると
例外自体は他でキャッチするのでテストはキチンと失敗するにも関わらず
f()が失敗したのに誤ってa()したり、誤ってb()しなかったりする
OO的に
Any f() {
if (!hoge()) reterun new Error("Can't hoge!");
return fuga();
}
のように正常な経路でメッセージを戻せばその種の不整合問題は発生しづらい
エラー処理を忘れたらc(v)の内部でとまるので原因はすぐわかる
実際はc(v)内部で引数のチェックくらいするからエラーを記録して何もしないという選択もできる
例外投げたらそこで終了だよ
0513デフォルトの名無しさん
2009/05/23(土) 05:33:56Javaの場合、トラップするべき例外をトラップしていなければ
コンパイラがそれを指摘してくれますが何か?
返り値でエラーコードを返す場合にはそうはいきませんなあ。
で、君はmalloc()するたびにちゃんとNULLチェックしてるの?
0514デフォルトの名無しさん
2009/05/23(土) 05:38:46おまえ、本当にマか?
> Any f() {
> if (!hoge()) reterun new Error("Can't hoge!");
> return fuga();
> }
コンパイラさんからreterunって何?って叱られるぞw
> のように正常な経路でメッセージを戻せばその種の不整合問題は発生しづらい
f()の返り値がおかしいかどうかちゃんとチェックしていなければ、
原因をトレースするのが厄介になるぞ。c(v)が悪いのかf()が悪いのかa()が悪いのか
ワケワカラン状態になるのがオチだ。
例外を使えばちゃんとスタック保存してくれているから原因は一目瞭然。
> 実際はc(v)内部で引数のチェックくらいするからエラーを記録して何もしないという選択もできる
空のハンドラ渡すのと何が違うの?
0515デフォルトの名無しさん
2009/05/23(土) 05:41:47>f()が例外を飛ばすのを忘れていると
処理に失敗したのにも関わらず例外を投げ忘れたf()は、返値
として一体何を返すの?
>if (!hoge()) reterun new Error("Can't hoge!");
ここでエラーを返すか例外を投げるか、それだけの違いでは。
if (!hoge())をチェックすべきことが分かっているか否か、大切
なのはその事であって、この事に気づいていればエラーを返す
とか例外投げるとかは単に実装の違いに過ぎないと思う。
>f()が失敗したのに誤ってa()したり、
関数の呼び出し順が間違っているのでは。a()の実行の前提と
してf()の成功が必要なら、f()の後にa()呼ぶでしょ。
これは例外とか返値云々とは無関係な、因果律の問題。
>誤ってb()しなかったりする
何のためにensureやfinallyがあると思っているんだ。
>c(v)の内部でとまるので原因はすぐわかる
止まったときには結局例外が投げられるんじゃない?
>Any f() {
言語にもよるけど、静的型付けの言語の場合には結果と
詳細なエラー情報を共に返値で返すとなると返値の型や
セマンティクスで悩むことは少なく無いと思う。
Anyですか。そうですか。
0516デフォルトの名無しさん
2009/05/23(土) 05:50:56> 言語にもよるけど、静的型付けの言語の場合には結果と
> 詳細なエラー情報を共に返値で返すとなると返値の型や
> セマンティクスで悩むことは少なく無いと思う。
そうそう。存在しないキーでハッシュマップ引いた時に
例外を投げずにNullを返しちゃったりしたら、
ハッシュマップで対応する値がNullだったのか、
ハッシュマップで対応する値がなかったのか、
判別つかないんだよな。
その判別をするための特殊なクラスをつくると、
とたんに返り値の型が問題になる。
Objectとかにしたら、今度は使う側でナローキャスト
してやらなきゃならなくなって静的型のメリットがなくなるし。
0517デフォルトの名無しさん
2009/05/23(土) 06:27:10f()が例外を返すことを書いた時は覚えていた
その例外は別の階層でトラップされるから正しい記述である
が翌日忘れてあるいは別人が修正したとするそんな感じのバグが生まれる話
言語仕様が関数が例外を投げると宣言することを強制しても
例外を戻す関数が他にあれば紛れてしまうでしょ
a()の位置が違うのは分かってワザとそこに書いたの
v=f()のところにエラー処理の記述があればレビューの時に誰か気付くんだよ
0518デフォルトの名無しさん
2009/05/23(土) 07:33:56C#の場合だが例外を発生させないためにTryGetValueがある。
bool result = dictionary.TryGetValue(key,out val);
キーのない値をひくのは通常処理の場合が往々にしてあるからこれも必要と思う
0519デフォルトの名無しさん
2009/05/23(土) 08:49:42「ドキュメントやコメントをちゃんと書きやがれ」
って次元の問題じゃん
0520デフォルトの名無しさん
2009/05/23(土) 09:50:340521デフォルトの名無しさん
2009/05/23(土) 09:52:13GetValueは例外、FindはNo Such Keyを表す何かを返す。
0522デフォルトの名無しさん
2009/05/23(土) 10:23:07もうオブジェクト指向が無くなれとか言う問題じゃなくなってるwww
0523デフォルトの名無しさん
2009/05/23(土) 10:40:46outがなければ例外を投げればいいじゃない(キリッ
0524デフォルトの名無しさん
2009/05/23(土) 11:30:50ライブラリが例外を返すようなコードを書くな。書くならそのリスクを覚悟しろってことだ
0525デフォルトの名無しさん
2009/05/23(土) 12:49:19486のリンク先は言ってることが良く分からない。
内容が有益であるのなら、だれか要点をまとめてくれない?
# だらだらした文書である上、罰則だの精神とかの妙な単語が頻出していて
# 頭のおかしなやつが書いたようにしか見えなかった…
# (ソースのインデントの仕方も一番ダメだと思っているスタイルだったし…)
0526デフォルトの名無しさん
2009/05/23(土) 13:00:45実際例外使わないバージョンを書くときにその手の事前チェックの
関数と実処理の関数に分けることは常套だけど、前提もある。
一つはそのハッシュがスレッド間で共有されてたり、データが実は
ネット上にあってそれを参照しに行くような実装ではないこと。
チェックしてから実処理するまでの間にハッシュの内部状態が変わる
可能性があるからね。
もう一つは事前チェックが非破壊的に、しかも低コストで行える事。
例えばXML等のパース。事前に「パース可能か」なんて確認しよう
と思ったら、その後のパース本番と併せて2度XML文書をスキャン
する事になる。
つまり何時でも使える手ではないし、それを回避するために色々工夫
するよりは(ハッシュのロックを取得する関数を追加したり、パース後
にエラーを 取得する関数を追加したり)サクッと例外を投げる仕様に
した方が見た目も使い勝手もシンプルになるケースもある。
0527デフォルトの名無しさん
2009/05/23(土) 13:23:27しっかり読んだうえでまだなにかあるなら
正規OS買ってMSにメールだせよw
だいたいあの程度の文章理解できないってありえないだろ
英文なわけでもないし
捻った表現してるわけでもない
0528デフォルトの名無しさん
2009/05/23(土) 13:24:11結局のところは>>450って事だろ
0529デフォルトの名無しさん
2009/05/23(土) 13:25:17全然違うよ
読んでないなら無理やりレスをつけるな
0530デフォルトの名無しさん
2009/05/23(土) 13:26:13そんな細かいこと気にしてるから禿げるんだよ!!!
ってこった
0531デフォルトの名無しさん
2009/05/23(土) 14:34:01> GetValueは例外、FindはNo Such Keyを表す何かを返す。
そしてFindはGetValueを使って実装されている。
例えばPythonなんかはそういう実装。
0532デフォルトの名無しさん
2009/05/23(土) 14:58:560533デフォルトの名無しさん
2009/05/23(土) 15:38:21日本語でおk
0534デフォルトの名無しさん
2009/05/23(土) 16:58:12throws NumberFormatException
パラメータ:
s - 構文解析対象の int 表現を含む String
戻り値:
10 進数の引数で表される整数値
例外:
NumberFormatException - 文字列が構文解析可能な整数型を含まない場合
こういうときは例外のほうが素直な気がするね。
intでどうのこうのやりくりしたりするよりは。
0535デフォルトの名無しさん
2009/05/23(土) 17:14:35文字列の数値変換なら、変換不能な場合は素直に0を返したほうが良くね?
例外にする意味が分からん...
エラーとして扱うにしても、エラーにする意味も分からん...
0536デフォルトの名無しさん
2009/05/23(土) 17:18:37解析不能は0として扱うでいい場合もあるけど。
0537デフォルトの名無しさん
2009/05/23(土) 17:27:37まあ現実的にはWin32APIみたく戻り型をBOOLにして
引数側で結果を受け取れば問題ないね
0538デフォルトの名無しさん
2009/05/23(土) 17:29:16そういうのは、Javaなら参照型のInteger、C#ならNullable型とかの抜け道があるし。
0539デフォルトの名無しさん
2009/05/23(土) 17:33:01既に消えてしまったようだ
0540デフォルトの名無しさん
2009/05/23(土) 18:47:32間にobjectのnewとかdeleteが入るとまずいってんでthrow catchにしたわけですよ。
例外を使いたくない奴は使わない、使いたい奴は使うということでいいんじゃないの?
でもthrowした奴は投げっぱなしじゃなくて責任持ってcatchしろよな ボケ!
0541デフォルトの名無しさん
2009/05/23(土) 18:58:11例外を返したければインデクサをそのまま使えばよい
C#では2種類用意されていると言うこと
>outがなければ例外を投げればいいじゃない(キリッ
キーが存在して、値がnullの場合があるからそれじゃダメなんだよ
516も読んでるか?
0542デフォルトの名無しさん
2009/05/23(土) 19:03:11BASICのON ERROR GOTOが先じゃね?
0543デフォルトの名無しさん
2009/05/23(土) 19:04:37受け側はノードが返ったら値を得る
見つからなかったらNULLでいいじゃない
特殊なクラスだとか、おまえら頭悪すぎですよ
0544デフォルトの名無しさん
2009/05/23(土) 19:08:24ちょっとした工夫だな。でも、それでいいと思う。
メソッドの返り値がすべてその仕組みになってたら、
nullか否かで全部扱えるのにな。例外なく。
0545デフォルトの名無しさん
2009/05/23(土) 19:29:26自己紹介乙
0546デフォルトの名無しさん
2009/05/23(土) 19:31:13ノードそのものを渡してしまうと、ちんたらしている間に
ノードの中身を他スレッドとかに書き換えられる恐れも
あるんだよね。
1) Node node = map.getNode(key);
2) if(node != null){
3) chintara();
4) chintara();
5) chintara();
6) chintara();
7) return func(node.value);
8) }else
9) return ERROR;
ちんたらするんじゃね〜とも言いたくなるけど、3〜6の間に
node.valueの値が書き換えられたりnode自体がmapから
removeされていても、文句は言えん。
仮にmap自身が自前で排他制御して複数スレッドのアクセスを
認めるマルチクライアントな実装になっていても、これでは
殆ど意味がない。結局node.valueを取得するまでmapをロック
するコードを毎度クライアント側で書く必要がある。
nodeへの参照ではなくコピーを返すのも一つの手だけど、
それだと処理値をエラーコード付きの構造体でラップして
返すのと大差無いような気もする。
0547デフォルトの名無しさん
2009/05/23(土) 19:39:320548デフォルトの名無しさん
2009/05/23(土) 19:39:360549デフォルトの名無しさん
2009/05/23(土) 19:43:50楽楽マルチインスタンス
継承はまああってもいいんじゃない?
0550デフォルトの名無しさん
2009/05/23(土) 20:21:51そんな構造にしてるやつはアフォ
そうしないといけない構造はこの世にない
0551デフォルトの名無しさん
2009/05/23(土) 20:47:41例外の話ではない。
> 結局node.valueを取得するまでmapをロック
> するコードを毎度クライアント側で書く必要がある。
あくまでそういう処理ならば、そう書くしかないのでは。
0552デフォルトの名無しさん
2009/05/23(土) 21:30:18その通り。だからノードを渡す、という動作は値を渡す、という
動作をそのまま置き換えるものではない、ということ。
ノードを渡すことによって確かに例外いらずになるかもしれない。
でも異なるものを渡す以上別のところで振る舞いが変わってくる
可能性もあって、例えばスレッドが絡んできた場合などがその一例
ということ。
0553デフォルトの名無しさん
2009/05/23(土) 21:48:44消えてなくなれー
0554デフォルトの名無しさん
2009/05/23(土) 21:50:050555デフォルトの名無しさん
2009/05/23(土) 21:54:010556デフォルトの名無しさん
2009/05/23(土) 21:58:33抽象は多くのものをひとくくりにする技術だから、
結局のところ多くの実体を仮定しているのと同じことなんだよ。
0557デフォルトの名無しさん
2009/05/23(土) 22:00:550558デフォルトの名無しさん
2009/05/23(土) 22:11:45データは現実の有り方のひとつの象徴だし、プログラムによる操作は、現実を象徴化した
モデルの操作なんだよ!
0559デフォルトの名無しさん
2009/05/23(土) 22:25:39どんなけメス会話してるんだよ...
0560デフォルトの名無しさん
2009/05/23(土) 22:30:28抽象だろうが馬鹿が
0561デフォルトの名無しさん
2009/05/23(土) 22:46:25余計な意味を加えて
これは抽象化、モデル化、象徴化なんだよ!
っていうのが怪しい。
0562デフォルトの名無しさん
2009/05/23(土) 22:47:33大差なくね?
というか一般層が考える抽象の意味よりは象徴の方がまだ意味が近い気がする。
まぁ真の意図は>>558に聞かんとわからんが
0563デフォルトの名無しさん
2009/05/23(土) 23:00:49学が無さ過ぎだろ。
抽象と象徴は日本語でも英語でも意味が違うし、具象と対をなす概念だ。
象徴の対義語は具象ではない。しっかり自分で調べてこい。
0564デフォルトの名無しさん
2009/05/23(土) 23:26:38一般層の話な。
0565デフォルトの名無しさん
2009/05/23(土) 23:32:06大抵、いい加減とかそういう意味に取られる。
いい加減自体の意味も厳密に言い出すとキリがないが…
0566デフォルトの名無しさん
2009/05/23(土) 23:38:43っていうか仕様どおりであってその辺の仕様があいまいなのを
プログラムに押し付けること自体すでに間違いだろ
何をいってるのかさっぱりわからない
頭悪いのにえらそうにしてるやつはずかしいから発言やめろ
0567デフォルトの名無しさん
2009/05/23(土) 23:46:14>まぁプログラマ以外に抽象を説明するときは困るな。
ちょっと理解しがたいシチュエーションだな。
>>564 の必死な弁解に付き合う必要はないと思うが。
0568デフォルトの名無しさん
2009/05/23(土) 23:53:16俺の会社だが
0569デフォルトの名無しさん
2009/05/24(日) 06:57:02> ハッシュとかの場合はノードそのものを返すようにするんだよ
毎回ノードをインスタンス生成しますか?
それともハッシュマップ中のノードをそのまま返して、
どっかのアフォがノードの中身を書き替えて、
滅茶苦茶トレースしにくいバグを作り込む元をつくりますか?
0570デフォルトの名無しさん
2009/05/24(日) 06:58:23longjumpは例外というより継続なのだが。
まあ継続で例外を実装することは可能だけど、
例外の元になったのがlongjumpかと言われると
それは間違いと答えるしかない。
0571デフォルトの名無しさん
2009/05/24(日) 10:31:21アクセスと切るまで他の人間はアクセス不能(もしくは読み取り専用)
っていうか仕様はどうなってるの?
0572デフォルトの名無しさん
2009/05/24(日) 10:40:010573デフォルトの名無しさん
2009/05/24(日) 10:41:57大抵は仕様が決まってないことが問題でオブジェクト指向とはなんの関係もないよね?
問題の切り分けもできない人が現場で報告もせずに勝手に騒ぎ立てるとか結構多い
0574デフォルトの名無しさん
2009/05/24(日) 11:29:32仕様を抽象的にすることは
両立できるのか? という話だな。
まず厳密さだけ考えて、後でリファクタリングするとか。
0575デフォルトの名無しさん
2009/05/24(日) 12:16:21>いいわけに使うやつがいるけど
幸いにして、そこまでの莫迦は見たことがない。
>オブジェクト指向とはなんの関係もないよね?
肯。
0576デフォルトの名無しさん
2009/05/24(日) 12:21:10マルチスレッドで思い出したけど、最近は並行処理にはオブジェクト指向的な
解決法より関数型言語のやり方の方がうまくいくって風潮じゃない?
オブジェクト定義するにしても可能な限りimmutableにしたりして、従来とは
ちょと違うよね。
0577デフォルトの名無しさん
2009/05/24(日) 12:39:17そういう風になることは10年以上前から予測済み。
オブジェクト指向に期待したことなんて今まで一度もなかった。
単にセミナー屋が騒いでるな ぐらいにしか思わなかったからな。
0578デフォルトの名無しさん
2009/05/24(日) 12:52:02当時はVBとC++とfortran、pascal、機械語、あとはlisp 2とprologぐらいしか知らなかったので
仕方なくVC6を使って未完成のC++と腐ったOOPの狭間で藻掻いてた
でもlisp 2やprologの存在を知っててSchemeやMLとかMirrandaにまで至らなかったのは俺のミスだ…
0579デフォルトの名無しさん
2009/05/24(日) 12:58:49そこが英語が得意な奴と苦手な奴の差
0580デフォルトの名無しさん
2009/05/24(日) 14:00:53Mirrandaなんかに騙されたのか?かわいそうな奴だ。
俺はちゃんとMirandaを使ってたぞ。
0581デフォルトの名無しさん
2009/05/24(日) 16:03:08あとどんくらい実用的なアプリ作ってた?
0582デフォルトの名無しさん
2009/05/24(日) 16:36:27学校がサイトライセンス持ってた。
それで関数型言語の処理系を書いた。
0583デフォルトの名無しさん
2009/05/24(日) 16:48:46俺みたいな趣味の人はMirandaなんてHaskellが有名になってきてから初めて知ったわ。
0584デフォルトの名無しさん
2009/05/24(日) 16:51:58Haskellは院時代に講義で使ったけど、なんでHaskellが一般人に流行ったのか
分からん。そういう俺はOCaml使い。
0585デフォルトの名無しさん
2009/05/24(日) 16:53:35Haskellも有名じゃないと思うんだが・・
どっちかというとOCamlの方が有名じゃないか
0586デフォルトの名無しさん
2009/05/24(日) 17:01:090587デフォルトの名無しさん
2009/05/24(日) 17:05:29むしろ東大がOCamlをで講義に使ってるから東大生の間では有名に見えちゃうだけじゃないすか?
プログラミング言語の講義で最初にPrologやったら「ああ、みんなPrologでソフト作ってるんだなー、へー」
みたいに思っちゃうのと同じ。
一般的に満たらHaskellのほうが全然有名だと思うなー。
http://www.google.com/trends?q=Haskell%2COCaml&ctab=0&geo=all&date=all&sort=0
と思ってみたらやっぱHaskell圧勝ですたw
0588デフォルトの名無しさん
2009/05/24(日) 17:14:02おまえ頭悪いな。
Haskellは地名や人名でありふれているから、そんなものは全く比較にならないぞ。
0589デフォルトの名無しさん
2009/05/24(日) 17:57:59じゃあどうやって比較すればいいか示してみろよ。
すぐ「おまえ頭悪いな。」とか言っちゃう所がアレだよねw
0590デフォルトの名無しさん
2009/05/24(日) 18:03:17全くアテにならないってことはないと思うよ。
0591デフォルトの名無しさん
2009/05/24(日) 18:06:10人に責任転嫁するな。お前が勝手に比較しようとしたんだろうが。
俺は比較しろなんて一言も言っていない。
何も考えずにGoogle Trends使ってデータを出して、確認もせずに
「と思ってみたらやっぱHaskell圧勝ですたw」
なんて言うような奴は頭が悪いとしか言いように無いだろうが。
0592デフォルトの名無しさん
2009/05/24(日) 18:10:28wがついてるからある程度シャレなわけだが。
別に厳密に比較する方法なんて無いことは最初から分かってるわけだし、
>お前が勝手に比較しようとしたんだろうが。
>>585氏の
>どっちかというとOCamlの方が有名じゃないか
こういう発言をうけて試しにGoogle trendで比較してみただけなんだが。
なんかOCamlのほうが有名じゃなきゃ困るのw?
0593デフォルトの名無しさん
2009/05/24(日) 18:11:52Google TrendsはPageRankを使っているわけではない。
そもそもノイズレベルがどの程度か分からなければデータをアテに出来るわけないだろ。
0594デフォルトの名無しさん
2009/05/24(日) 18:12:47実際にOCaml使って開発している会社は知ってるけどHaskellで開発してる会社は知らないぞ。
0595デフォルトの名無しさん
2009/05/24(日) 18:15:06俺はシャレのつもりで>>587を書いたからべつにアテにしたくなかったらしなきゃいいじゃんw
一般的に見たらHaskellのほうが全然有名だとは思ってるけど、こんなの調査する方法ないでしょ。
なんでそこまで本気なのよ?
否定したいならOCamlのほうが有名だと思うなーとか書いてみればいいだけじゃない?
0596デフォルトの名無しさん
2009/05/24(日) 18:15:15お前のようにwを使う奴が低能だということは分かった。
> なんかOCamlのほうが有名じゃなきゃ困るのw?
誰がそんなことを言ったんだ?妄想も大概にしておけ。
0597デフォルトの名無しさん
2009/05/24(日) 18:16:52君は結局何がしたかったの?
ただgoogle trendを出した俺を叩きたかっただけかな?
それとも何か主張があったの?
0598デフォルトの名無しさん
2009/05/24(日) 18:18:27シャレで言った割に随分と偉そうなレスをする奴だな
0599デフォルトの名無しさん
2009/05/24(日) 18:20:24だっていきなり「おまえ頭悪いな。」とか喧嘩売ってくる奴何なのって感じじゃないすか?
何かそんなに相手を怒らせるようなことしたか?
0600デフォルトの名無しさん
2009/05/24(日) 18:20:49頭の悪いレスをする奴を叩きたかっただけだよ。
シャレと言いながら本当に必死にレスする奴だな。
0601デフォルトの名無しさん
2009/05/24(日) 18:22:37俺は東大生じゃないけど、俺へのレスでなんで東大生に限定して言うのかね?
このスレはむしろ東大以外の奴の方が多いんじゃないか。
もしかして、あまり論定的思考に慣れていない方ですか?
0602デフォルトの名無しさん
2009/05/24(日) 18:23:47|| ̄ Λ_Λ
||_(Д`; ) 「なに?このスレ・・・」
\⊂´ )
( ┳'
0603デフォルトの名無しさん
2009/05/24(日) 18:23:51だから頭悪いって言われて血が昇ってるんだよ
0604デフォルトの名無しさん
2009/05/24(日) 18:25:190605デフォルトの名無しさん
2009/05/24(日) 18:30:19なんだwwwそれを聞いて安心したよwww
>>601
こういうスレの雑談で論定的思考とか言ってる人って普通に雑談することできなそうだな。
俺はOCamlの存在を東大の人から聞いて知ったんだ。Haskellはその前から知ってたけど。
そいつはOCamlのほうが関数型言語として有名だ、と言ってた。そんな感じかと思っただけ。
>>603
違いますよw
0606デフォルトの名無しさん
2009/05/24(日) 18:33:26「2chでは批判することに価値がある」
0607デフォルトの名無しさん
2009/05/24(日) 18:35:440608デフォルトの名無しさん
2009/05/24(日) 18:38:50誰もそんな足を使った調査していないから、記事にして売り込めるぞ
0609デフォルトの名無しさん
2009/05/24(日) 18:39:590610デフォルトの名無しさん
2009/05/24(日) 18:41:55最悪の場合はオブジェクト指向で実装すればいいという保険が付いているからHaskellより安心できるよね。
0611デフォルトの名無しさん
2009/05/24(日) 22:53:160612デフォルトの名無しさん
2009/05/24(日) 23:34:08要するに保険が重要だからOCaml使ってる奴が多いんだろ
0613デフォルトの名無しさん
2009/05/25(月) 05:19:05何倍も聞く気がする。
ただ、InfoQにちょっと前に掲載されてたHaskellのえらい人のインタビューでは
Haskellもメインストリーム狙いで行くぜ!って言ってた。
まあ、このスレ見てるような人達は、ScalaとF#の発展に期待した方が
いい気がする。
0614デフォルトの名無しさん
2009/05/25(月) 08:35:490615デフォルトの名無しさん
2009/05/25(月) 11:54:240616デフォルトの名無しさん
2009/05/25(月) 12:02:590617デフォルトの名無しさん
2009/05/26(火) 07:29:02プログラムを組んだ経験がない人だと思う。
0618デフォルトの名無しさん
2009/05/26(火) 07:38:27簡易アセンブラなんて言う人は見たこともない件について。
0619デフォルトの名無しさん
2009/05/26(火) 07:40:46おまえスレ違いだぞ
0620デフォルトの名無しさん
2009/05/26(火) 08:15:53オブジェクト指向だろうが関数型言語だろうが、
それぞれのプログラミングパラダイムには、それぞれの長所と欠点がある。
本物のハカーはどれか1つに固執したり毛嫌いしたりしない。
適材適所で使うものだ。
これは例外処理でも同じこと。ソフトウェア開発に銀の弾丸はない。
0621デフォルトの名無しさん
2009/05/26(火) 08:20:12そんなこと分かった上で色々議論していると思うんだが。
オレオレ結論をわざわざここに書くなよ。
0622デフォルトの名無しさん
2009/05/26(火) 08:43:09>>577
> そういう風になることは10年以上前から予測済み。
> オブジェクト指向に期待したことなんて今まで一度もなかった。
> 単にセミナー屋が騒いでるな ぐらいにしか思わなかったからな。
0623デフォルトの名無しさん
2009/05/26(火) 19:26:14結局は自分に合ってるかどうかだろうが
オブジェクト指向が合わない奴にとってはどのような局面においてもオブジェクト指向は不要
0624デフォルトの名無しさん
2009/05/26(火) 19:35:370625デフォルトの名無しさん
2009/05/26(火) 19:38:11いかにオブジェクト指向がハッタリ設計思想かわかるよ
工数は1Hも削れない
0626デフォルトの名無しさん
2009/05/26(火) 19:41:52個人の問題じゃないんだよ
0627デフォルトの名無しさん
2009/05/26(火) 19:42:43それは、設計が下手だから。
0628デフォルトの名無しさん
2009/05/26(火) 19:45:21おまいら潜伏してたんだな( ´ー`)y─┛~~
0629デフォルトの名無しさん
2009/05/26(火) 20:15:43落ち着いて考えればわかるけど
設計によって仕様が消えることはないよ
0630デフォルトの名無しさん
2009/05/26(火) 21:20:49が、まともにそれをやると面倒臭くて仕方がない
0631デフォルトの名無しさん
2009/05/26(火) 22:08:190632デフォルトの名無しさん
2009/05/26(火) 23:08:37最近プログラミング始めたけど、はるか前に学んでた人たちは
ビルド→実行をひたすら繰り返してたんだよな。
何て忍耐強いんだって思う。皮肉じゃなくて
0633デフォルトの名無しさん
2009/05/26(火) 23:28:48そんなことはない。BASICというものが何十年も前から存在しているからな。
0634デフォルトの名無しさん
2009/05/27(水) 01:46:22うん、ちょっとしたプログラムのビルドに
15分とか、かかってた。
0635デフォルトの名無しさん
2009/05/27(水) 07:34:37これも適材適所、どこが適所かわからない奴は才能ないから転職汁、で終了だろ。
0636デフォルトの名無しさん
2009/05/27(水) 08:53:380637デフォルトの名無しさん
2009/05/27(水) 10:28:05オブジェクト指向も無かったんだぜ
あれは幸せな時代だった
0638デフォルトの名無しさん
2009/05/27(水) 10:33:330639デフォルトの名無しさん
2009/05/27(水) 10:48:37書くのが悪いわけではない。
0640デフォルトの名無しさん
2009/05/27(水) 11:08:49どう考えても逆だろ
0641デフォルトの名無しさん
2009/05/27(水) 11:16:36逆な理由をきっちりと説明してもらおうか。
オブジェクト指向分析なんてほとんど詐欺じゃないか。
そんなことを謳ってる会社ってろくでも無いことがほとんどだろ。
0642デフォルトの名無しさん
2009/05/27(水) 11:34:28かつてソフトウェアの設計において体系化された数少ない設計技法の一つ。
これはソフトウェア工学の資産だよ。
でもオブジェクト指向プログラミングはいまいちパッとしないね。
クラスがあって、クラスの中の変数をクラスの中の関数で弄って・・ってあまり洗練されているようには思えない。
メッセージを送るんじゃなくて、それはただの関数呼び出しだからw
「継承」もイマイチだね。
オブジェクト自体が単独で動いているわけじゃないから違和感があるんだろうね。
Erlangみたいにプロセスで平行して動いているなら本当のオブジェクトっぽいんだろうけど。
0643デフォルトの名無しさん
2009/05/27(水) 11:48:01何が飛び出てくるか全く予測がつかない
0644デフォルトの名無しさん
2009/05/27(水) 11:53:41意味不明
0645デフォルトの名無しさん
2009/05/27(水) 11:55:030646デフォルトの名無しさん
2009/05/27(水) 12:00:48> かつてソフトウェアの設計において体系化された数少ない設計技法の一つ。
有用そうなものを掻き集めて見ました。
うまく組み合わせれば、それなりに使えるかも知れません。
てな、感じにしか見えないぞ
0647デフォルトの名無しさん
2009/05/27(水) 12:05:28もっと良い設計手法を知っているなら教えてください
0648デフォルトの名無しさん
2009/05/27(水) 12:34:40みたいな構成はできるんだろうけど、そういう考え方が未だに一般に知られない時点で
綺麗な構造を作る事に関しては絶望的なんだろうなぁ
0649デフォルトの名無しさん
2009/05/27(水) 12:45:50つ Actor
0650デフォルトの名無しさん
2009/05/27(水) 12:50:340651デフォルトの名無しさん
2009/05/27(水) 12:51:30それ、OOつーよりERDだろ。
0652デフォルトの名無しさん
2009/05/27(水) 13:02:04数学的に書き下すことと、それを現場が使える設計手法として
ブレイクダウンするまでの間には結構距離があるんだな。
「一般に知られていない」なんて嘆いているヒマがあれば何故
一般には知られていないのかどうすれば広く知られるように
なるのか考えてみると面白いのでは。
0653デフォルトの名無しさん
2009/05/27(水) 13:13:370654デフォルトの名無しさん
2009/05/27(水) 18:19:09明日役に立たない物はゴミなんだよ
0655デフォルトの名無しさん
2009/05/27(水) 18:46:13そうだろう、そうだろう。
数学的に書き下したものを仕様書の中に含めたら、
「意味がわからん!!! 書き直せ!!!」
と大いばりで言う自称 SE が良くいるもんな
0656デフォルトの名無しさん
2009/05/27(水) 18:56:55気持ちはわかる。
今の時代、何が飛び出てくるかを
追いかけるのは、もう量的に無理に
なってきているから、そういうものを
気にしない OO で行こうってことなんだろう。
0657デフォルトの名無しさん
2009/05/27(水) 18:57:36あのな、お前らコーダーがSEの仕事に口を出すから「意味がわからん書き直せ」なんて言われるんだよ。
お前がSEになれば良いだけのことだろ。
コーダーはプログラムを書くのが仕事。
0658デフォルトの名無しさん
2009/05/27(水) 20:26:37一人で設計&コーディングやればいいだけの話なんだが。だから日本は駄目なんだ。
0659デフォルトの名無しさん
2009/05/27(水) 20:37:32もちろんSEもプログラムは書くけど、コーダーはもっと細かいところを書く印象だな。
0660デフォルトの名無しさん
2009/05/27(水) 20:57:57それなら結構まともかもね。コーディング出来ないSEとかいるしな。
0661デフォルトの名無しさん
2009/05/27(水) 21:04:13そんな中小企業はどうでもいいです
0662デフォルトの名無しさん
2009/05/27(水) 21:41:45東証一部上場企業の話だぞ。聞いた話であって実際見たわけじゃないが。
企業規模だけでしか物を見れない奴って本当に低能だな。
0663デフォルトの名無しさん
2009/05/27(水) 22:02:58めくそハナクソですよね
0664デフォルトの名無しさん
2009/05/27(水) 22:08:230665デフォルトの名無しさん
2009/05/27(水) 22:19:55査定に引っかからないなら立ち回りが上手いんだろうそのSEは
0666デフォルトの名無しさん
2009/05/27(水) 22:36:250667デフォルトの名無しさん
2009/05/27(水) 22:39:34結局、最後は数字
これは俺の陰謀じゃなくて上が求めてくるものね
俺も会社も遊びで付き合ってるわけじゃないからなぁ・・・
0668デフォルトの名無しさん
2009/05/27(水) 22:40:21設計だけやってコーディングは子会社丸投げということだ。
立ち回りがどうこうではなく組織の問題。
0669デフォルトの名無しさん
2009/05/27(水) 22:41:21給与を抑えるためにコーダーとSEを分離したのが悲劇の始まり。
0670デフォルトの名無しさん
2009/05/27(水) 22:42:56というよりOOで設計出来る奴が少なすぎるのが問題ってことだろ。
みんながOOで設計出来れば工数関係無しにそれなりに使われているはず。
0671デフォルトの名無しさん
2009/05/27(水) 22:48:10いや、工数を削減する能力がないだけ。
0672デフォルトの名無しさん
2009/05/28(木) 00:13:47PGの単価なんて削ってどうしようっていうのか?
ただでさえ安いもの削る必要なんかない
OO使って組んだら理解できる人間が少なくなるならそれは単に非効率なだけだろ
>>671
いや、物理的にありえない
だって工数って何で決まるよ?
仕様の数や内容じゃねぇのけ?
OOって単なる実現手段で工数決める場に出てこないし
ってことは使っても使わなくてもなんもお金に影響ないってことだよね
0673デフォルトの名無しさん
2009/05/28(木) 00:14:35プログラム書けないのも当り前だよ
仕様も理解できないから工数とかも客の言いなりになってる奴も結構いるよ
0674デフォルトの名無しさん
2009/05/28(木) 00:24:380675デフォルトの名無しさん
2009/05/28(木) 00:30:49だから少なくならないって
仕様を箇条書きで書き出して一つ一つOOで工数が削れるものをピックアップしてみろ
おそらく1つもないはず
0676デフォルトの名無しさん
2009/05/28(木) 00:31:26お前安価間違えてないか?
OO設計とプログラミングを混同してる奴って・・・
論点をずらすなよ
0677デフォルトの名無しさん
2009/05/28(木) 00:34:19俺はOOはどうせ使うなら仕様書で見える概念を
ソースにまでクラスって形でもっていけるのが唯一の利点だと思ってるから
同じだと思うし同じでないとメリットないと思うけど
君は違うの?
違うってことはソースと仕様書に大きく乖離があるってことだから多分君は設計が下手糞なんじゃないかな?
0678デフォルトの名無しさん
2009/05/28(木) 00:46:59> ソースにまでクラスって形でもっていけるのが唯一の利点だと思ってるから
> 同じだと思うし同じでないとメリットないと思うけど
本気でそう思ってるならもう一度勉強し直してこい。
0679デフォルトの名無しさん
2009/05/28(木) 00:52:35> OOって単なる実現手段で工数決める場に出てこないし
そりゃそうだ。
> ってことは使っても使わなくてもなんもお金に影響ないってことだよね
同じお金もらえるんなら、工数少なくてすむ実現方法の方がいいよね。
0680デフォルトの名無しさん
2009/05/28(木) 00:55:20設計に失敗して、火を吹いてるプロジェクトは結構見かけるが。
0681680
2009/05/28(木) 01:01:58設計するのならOOは有効な設計ガイドラインだと思うよ。
0682デフォルトの名無しさん
2009/05/28(木) 01:12:13人類の負の遺産だわ。不良債権処理しなきゃ。
0683神と言われたヲトコ ◆vBOFA0jTOg
2009/05/28(木) 01:28:510684デフォルトの名無しさん
2009/05/28(木) 01:37:441億ステップのスパゲッティコードにバグ一つ入らん
0685デフォルトの名無しさん
2009/05/28(木) 01:50:52人力車が現れたときの駕籠かき、タクシーが現れたときの車夫。
酸っぱい葡萄だよ。
0686デフォルトの名無しさん
2009/05/28(木) 03:10:32お前はOOなんて使わなくても今まで業界でやってきて見積り精度にも
自信があるんだろうが、お前の下についた若いプログラマは
「プロジェクト仕切ってる上司が時代遅れすぎてありえねぇ。無駄な作業多すぎて鬱」
って2ちゃんねるで愚痴ってるかもしれないぞ。
0687デフォルトの名無しさん
2009/05/28(木) 03:53:50おれ無職だから説得力あるよね
0688デフォルトの名無しさん
2009/05/28(木) 04:29:43設計することと理解することは全く別。
今時OOで書かれたプログラムを読んで理解出来ない奴を雇っていることこそが
非効率の元凶であってOOが問題ではない。
0689デフォルトの名無しさん
2009/05/28(木) 07:47:18> OO使って組んだら理解できる人間が少なくなるならそれは単に非効率なだけだろ
逆だ。クズPGを排除することで効率化が実現される。
プロジェクト管理の肝は、できないPGが足を引っ張るのに対してどう対処するかにある。
できないマネージャーはできないPGを教育しようとしたり、できないなりの仕事をさせる。
一方で、できるマネージャーはチーム内からできないPGを排除する。
すると、マネージャーもできるPGも快適に作業を進めることができる。
0690デフォルトの名無しさん
2009/05/28(木) 09:22:33>クズPGを排除することで
そして誰もいなくなった、的な。
0691デフォルトの名無しさん
2009/05/28(木) 09:28:28> ソースにまでクラスって形でもっていけるのが唯一の利点だと思ってるから
このパターンだよな。この手の人が気軽にOO批判する。
0692デフォルトの名無しさん
2009/05/28(木) 09:47:42まずオブジェクト指向が何なのか説明汁 ボケ!
0693デフォルトの名無しさん
2009/05/28(木) 09:51:31( ゚ω゚ ) >>692お断りします
_(__つ/ ̄ ̄ ̄/_
\/ /
0694デフォルトの名無しさん
2009/05/28(木) 10:36:15ググレカス
0695デフォルトの名無しさん
2009/05/28(木) 10:40:41いるいる。チームから気に入らないPGを排除して自分勝手に進めるやつ
プロジェクトが成功すればいいけど、失敗したら何も残らない…
0696デフォルトの名無しさん
2009/05/28(木) 11:27:51どんな言語使ってる?
0697デフォルトの名無しさん
2009/05/28(木) 11:33:25単価の安いPGなんて、そんなのばっかりだろ。
出来る人にベースを作らせて、クズPGにはooとか意識させずに「この手順でやってください」
手順を明示しても出来ないクズは流石に切った方がいい
0698デフォルトの名無しさん
2009/05/28(木) 12:18:07というような変な分業体制作っちゃったから日本の技術力が落ちたんだけどね。
0699デフォルトの名無しさん
2009/05/28(木) 12:39:50何でだ?
0700デフォルトの名無しさん
2009/05/28(木) 13:03:35コーディングしやすさを考えて設計したら駄目
と思ってんじゃねーの
0701デフォルトの名無しさん
2009/05/28(木) 15:04:13プログラミングにおいて設計変更は日常茶飯事だからな。
一部金融系なんかの仕様書ガチガチな業務システムを除いては
設計しながらコーディングというのがあるべき姿であって、
分離する事自体が間違い。
つーか日本のブルーカラーの勤勉さは世界一と言っても過言じゃないぞ。
その代わり給料もそれなりにもらってるがな。
0702デフォルトの名無しさん
2009/05/28(木) 15:06:190703デフォルトの名無しさん
2009/05/28(木) 15:24:250704デフォルトの名無しさん
2009/05/28(木) 15:27:310705デフォルトの名無しさん
2009/05/28(木) 17:52:17お前ら本当に"オブジェクト指向"をちゃんと定義できるの?
俺が今まで見た中で一番マトモなオブジェクト指向の定義はこれだが
ttp://practical-scheme.net/trans/reesoo-j.html
はっきり言ってこんなの未定義と不定と実装依存を足して3で割ったようなもんだと思う
もっと見事な定義ができるとか、ググればマトモな定義が見つかるっていうなら
是非見せてもらいたい。
0706デフォルトの名無しさん
2009/05/28(木) 18:00:58それよりよほどましな定義
http://e-words.jp/w/E382AAE38396E382B8E382A7E382AFE38388E68C87E59091.html
0707デフォルトの名無しさん
2009/05/28(木) 18:01:23/ \ ___
/ノし u; \ ;/(>)^ ヽ\;
| ⌒ ) ;/ (_ (<) \;
| 、 );/ /rェヾ__)⌒::: ヾ; はっきり言ってこんなの
| ^ | i `⌒´-'´ u; ノ;; 未定義と不定と実装依存を足して
| | \ヽ 、 , /; 3で割ったようなもんだと思うお
| ;j |/ \-^^n ∠ ヾ、
\ / ! 、 / ̄~ノ __/ i;
/ ⌒ヽ ヽ二) /(⌒ ノ
/ r、 \ / ./  ̄ ̄ ̄/
0708デフォルトの名無しさん
2009/05/28(木) 18:09:28その定義はC++やJavaなどに毒されているんじゃないか
オブジェクトに対するメッソッドじゃなくて
オブジェクト間のメッセージが本流だろ
0709デフォルトの名無しさん
2009/05/28(木) 18:19:33http://d.hatena.ne.jp/sumim/20040525/p1
0710デフォルトの名無しさん
2009/05/28(木) 18:28:37毒されているのが良く分かるな。
0711デフォルトの名無しさん
2009/05/28(木) 18:35:370712デフォルトの名無しさん
2009/05/28(木) 18:52:15逆だろw >>642がイメージしているのはKay的OOとは正反対だ。
0713デフォルトの名無しさん
2009/05/28(木) 19:05:10オブジェクト指向:ツリー型
0714デフォルトの名無しさん
2009/05/28(木) 19:12:34それはまったく違うぞ。
>>642の脳内での「オブジェクト指向」の定義はKay的OOだが、
オブジェクト指向「プログラミング」はC++的なものだと思ってるってことだ。
0715デフォルトの名無しさん
2009/05/28(木) 20:31:550716デフォルトの名無しさん
2009/05/28(木) 20:37:050717デフォルトの名無しさん
2009/05/28(木) 21:09:35> "メッセージ"とかご大層なもののように言うけど、単に遅延束縛だろ。
うんにゃ、メッセージってのは、「ノイズも含めて」ただの信号だ
信号処理系をどうデザインするかは、手法によって変わるんだろうけど
少なくともOOAとかOODって言ってる奴等は
「ノイズも信号のうち」
って、当たり前の事実が分かってない
0718デフォルトの名無しさん
2009/05/28(木) 21:11:260719デフォルトの名無しさん
2009/05/28(木) 21:14:03単なる関数呼び出し。Objective Cのコードとか見てみろって。
0720デフォルトの名無しさん
2009/05/28(木) 21:14:27うけねらい?それともOO信者お得意のメタファー?
ネタなら、ごめん。意味分からん。
たとえ話なら、そんなのいいからプログラミングの機能の話がしたい。
0721デフォルトの名無しさん
2009/05/28(木) 21:22:30OO信者というより、通信理論や信号処理をかじった奴が能書き垂れてるだけだろ。
とんだお笑いものだがな。
0722717
2009/05/28(木) 21:24:39いや、厳然たる事実
OOA とか OOD とかやってる連中って、やたら例外を作る
「ノイズも信号のうち」と考えてデザインすると
物事はもっと簡単になったりする
# もとハード屋のつぶやきだ
0723デフォルトの名無しさん
2009/05/28(木) 21:36:16じゃあどう簡単になるのか設計の具体例を挙げてみてよ
0724デフォルトの名無しさん
2009/05/28(木) 21:57:14nullで例外出さないでNullableで演算を最後まで通してしまうとかかな
0725717
2009/05/28(木) 22:38:47ソフト的に考えたらそうなんだろうけど
ノイズそのものも評価対象にいれるってゆうか…
ハードつくる場合って例外事象への対応はとってもコストが
かかるんで、伝達関数書くときに外乱を意味する変数を作って、
それも一緒に処理の中に含めるってゆうか…
外乱とかノイズとかも最初から入力の一つの要素として扱う
ってのが、賢いハード屋
0726デフォルトの名無しさん
2009/05/28(木) 22:52:03だからソフトウェア開発でお前の言った方法論が適用出来る具体例を挙げろよ
0727717
2009/05/28(木) 22:54:55例外扱いしなきゃいいって
0728デフォルトの名無しさん
2009/05/28(木) 22:57:51具体的に何を例外扱いせずにどう処理するんだよ
0729717
2009/05/28(木) 23:08:14例外事象も入力のうちって捕らえたら
out = f (in, exception-case)
の関数だよな. 内部の状態は適当に隠蔽するとして…
後はカリー化して1入力-1出力の関数になるだろ?
0730デフォルトの名無しさん
2009/05/28(木) 23:09:03製造業や建設業における設計が、ソフトウェアでは設計+実装に当たるから。
ソフトウェア産業での「製造工程」ってのは、ビルドフェーズになる。
つまり、既に自動化されている。
0731デフォルトの名無しさん
2009/05/28(木) 23:10:420732デフォルトの名無しさん
2009/05/28(木) 23:30:300733デフォルトの名無しさん
2009/05/28(木) 23:37:200734デフォルトの名無しさん
2009/05/28(木) 23:53:16だから入力がfで処理できないようなものだったらどうするのか、ってことなんだが。
0735デフォルトの名無しさん
2009/05/29(金) 00:06:34C#だとNullableがあってもRoundなどNullable用のメソッドがないから
自分で作っていたが
もしかしてMaybeモナドってそんなことしなくてすむようになるんかな
だとしたらHaskellすごい
0736デフォルトの名無しさん
2009/05/29(金) 00:06:38で、それがオブジェクト指向とどう関わりがあるんだ?
0737デフォルトの名無しさん
2009/05/29(金) 00:11:44カプセル化?データ構造や内部関数の隠蔽ならMLのモジュールでもできるよ。
逆にデータ構造と手続きを分離できないから、visitorパターンなんていうばかばかしい
テクニックを使わなきゃいけなくなる。
データと手続きを一緒にする意義ってあるの?正直ナンセンスだよ。
0738デフォルトの名無しさん
2009/05/29(金) 00:20:18サブルーチンのカタマリにしてくってことですか?
0739デフォルトの名無しさん
2009/05/29(金) 00:23:32カプセル化だけがOOだと思ってるなら勉強不足にも程がある
0740デフォルトの名無しさん
2009/05/29(金) 00:25:13おっと、こんな時間にだれかk(ry
0741デフォルトの名無しさん
2009/05/29(金) 00:25:57データと手続きを分離した場合、無制限に操作を許すと
「システムとして有り得ない状態」を作り出しやすいんだよね。
もしくは、状態を多数つくって管理が破綻するとか。
敢えて制限をかけることで制御のし易さを得ることができるというわけ。
0742デフォルトの名無しさん
2009/05/29(金) 00:26:33OOの方がいいと思うけど。OOから入った人は、OOが当たり前に有るから。
その欠点しか見えないかもしれないね。これもゆとりの・・・
0743デフォルトの名無しさん
2009/05/29(金) 00:26:47OO信者最強の武器「勉強不足」www
0744デフォルトの名無しさん
2009/05/29(金) 00:27:47ジェネリックプログラミングは型の型による制約で分離しつつもそれを防いでいる
0745デフォルトの名無しさん
2009/05/29(金) 00:30:13アホか?信者じゃねーぞ
批判するならOOを知った上でないと>>737みたいな勘違い批判になるってことだ
0746デフォルトの名無しさん
2009/05/29(金) 00:34:040747デフォルトの名無しさん
2009/05/29(金) 00:37:59737は勘違いなのか?データと手続きは分離したままで、「システムとして有り得ない状態」
が出ないように隠蔽できるというMLの型システム(モジュール)を知っての上での批判だと思うが。
0748デフォルトの名無しさん
2009/05/29(金) 00:38:22ジェネリックプログラミングとOOは排他的な概念じゃなかろうもん。
0749デフォルトの名無しさん
2009/05/29(金) 00:43:41その意味ではコンストラクタとデストラクタ間で制約を設けられるような類のOO言語の方が有利な場合もある
0750デフォルトの名無しさん
2009/05/29(金) 00:45:50そんなことは言っていないぞ。
MLのモジュールシステムは基本的に関数やデータタイプを個別の名前空間に閉じ込める
だけだから、「システムとして有り得ない状態」を防げるわけではない。
> データと手続きを一緒にする意義ってあるの?正直ナンセンスだよ。
なんて言う時点で勘違い。
0751デフォルトの名無しさん
2009/05/29(金) 00:48:52力不足というのは同位
>コンストラクタとデストラクタ間で制約を設けられるような類のOO言語の方が有利
ここ、もちょっとkwsk
0752デフォルトの名無しさん
2009/05/29(金) 00:52:39>MLのモジュールシステムは基本的に関数やデータタイプを個別の名前空間に閉じ込める
>だけだから、「システムとして有り得ない状態」を防げるわけではない。
そこまで知ってるなら、なぜシグネチャーを知らない?
0753デフォルトの名無しさん
2009/05/29(金) 01:15:35当然知ってるが。シグネチャは結局モジュールの受け付ける型を制限するだけで
あって、静的型チェックはC++やJavaでもやってること。
0754デフォルトの名無しさん
2009/05/29(金) 01:29:43http://www.geocities.jp/m_hiroi/func/ocaml09.html
「シグネチャとデータ抽象」あたりを読むべし。
0755デフォルトの名無しさん
2009/05/29(金) 01:40:41何が言いたいんだ?3行で説明してみろよ。
0756デフォルトの名無しさん
2009/05/29(金) 01:53:37せめて引用したい部分だけでも貼れって思う
仮に
>>754
http://www.ntv.co.jp/sekaju/student/20050115/03_0201.html
とかやったら俺のいうことを理解できるまで上記リンクを最後まで読むんだろか?w
0757デフォルトの名無しさん
2009/05/29(金) 04:46:280758デフォルトの名無しさん
2009/05/29(金) 05:04:48違いを具体的に説明出来ないのなら、それは理解していないのと何ら変わりない。
0759デフォルトの名無しさん
2009/05/29(金) 05:13:29違いはinclusion polymorphismだ。あとは自分で調べろカス
0760デフォルトの名無しさん
2009/05/29(金) 05:25:46結局説明できないんだな。知ったかのクズが
0761デフォルトの名無しさん
2009/05/29(金) 07:18:410762デフォルトの名無しさん
2009/05/29(金) 07:32:24曖昧さのないように3行で説明してみろやボケが
0763デフォルトの名無しさん
2009/05/29(金) 08:35:29人にモノを訊くときにはまず自分で調べてからにしろ。クズ。
0764デフォルトの名無しさん
2009/05/29(金) 08:59:42ここまで渋るとは、お前は本当に説明出来ないんだな。
だったら最初から偉そうな物言いをするなよ。
人の名前や述語を挙げて後は調べろで煙に巻くような輩に碌な人間はいないな。
0765デフォルトの名無しさん
2009/05/29(金) 09:02:34最低限の知識を踏まえていない人間が議論で相手にされるとでも?
0766デフォルトの名無しさん
2009/05/29(金) 09:17:07するのならその根拠を説明するのは当然だろうが。そんなことも理解できないのか?
0767デフォルトの名無しさん
2009/05/29(金) 09:23:03もう>>757は嘘ということで終わりな
0768デフォルトの名無しさん
2009/05/29(金) 09:23:400769デフォルトの名無しさん
2009/05/29(金) 09:45:54称される機構は、ちょっと回りくどい関数呼び出しに過ぎないですよ。それは Smalltalk も同じ。
Smalltalkはあくまで暫定的な仕様のシステムだったのだけれども、いろいろあって途中で変化を
やめてしまった。にも関わらず、それを完成された形と勘違いした多くの言語作者が
この関数のことをメソッドだとかその呼び出しをメッセージ送信だとか、ひそみに倣い
はじめたからおかしな事になったわけです。
ただやっかいなことに、しくみは古いままでも、それをメッセージングだと見なしてプログラミングしたり
そうした思考や行為をサポートする主にメタな機構・ツール・環境を充実させてみると、(領域によっては)
目を見張る生産性を発揮することも分かった。暫定ダイナブックOSとしてのSmalltalkはその実証でもあるわけです。
20年以上再起動することなしに動き、拡張され続けているシステムって、メッセージングのアイデアの
源でもあるインターネットシステムを除けば、Smalltalkの他にないのではないでしょうか。
そんなケイが「メッセージング」を介して本来目指したものや、Smalltalkによって得られた成果についての
ケイ自身の総括みたいなものはここで読めます。
http://metatoys.org/oxymoron/oxymoron.html
以上、長くなりましたがケイの「メッセージングのOO」の参考まで。
0770デフォルトの名無しさん
2009/05/29(金) 10:06:100771デフォルトの名無しさん
2009/05/29(金) 10:14:06リンク先にもきちんと書いてあるだろ?
元々 well-defined じゃない。
0772デフォルトの名無しさん
2009/05/29(金) 13:46:010773デフォルトの名無しさん
2009/05/29(金) 17:53:530774デフォルトの名無しさん
2009/05/29(金) 18:44:54メッセージングの違いとかinclusion polymorphismの話題を含むやつを具体的に
0775デフォルトの名無しさん
2009/05/29(金) 18:52:360776デフォルトの名無しさん
2009/05/29(金) 19:29:22『作った後で要求がガンガン変わる』という事例にまで頭が回っていないように見える。
0777デフォルトの名無しさん
2009/05/29(金) 20:35:28http://www.ntv.co.jp/sekaju/student/20050115/03_0201.html
0778デフォルトの名無しさん
2009/05/29(金) 20:52:400779デフォルトの名無しさん
2009/05/29(金) 20:52:550780デフォルトの名無しさん
2009/05/29(金) 21:48:23あれは、メッセージングの仕組みはオブジェクトの責任分担について一方面しか切り出せず、
横断的な関心事に無力であり、その不便を解消したいという問題意識と捉えると、メッセージ
ングの本質的な弱点を指摘していると思う。
0781デフォルトの名無しさん
2009/05/29(金) 22:29:59アスベスト?
0782デフォルトの名無しさん
2009/05/29(金) 22:53:450783デフォルトの名無しさん
2009/05/30(土) 00:13:04純粋サイエンスのまま実用的になった技術って正規表現くらいじゃね?
0784デフォルトの名無しさん
2009/05/30(土) 00:29:04あれはただの技術ですよ。
0785デフォルトの名無しさん
2009/05/30(土) 00:32:010786デフォルトの名無しさん
2009/05/30(土) 00:42:01再利用性云々の話は眉唾に聞こえてきてしまう
型エラーにならなけりゃとにかく使いまわせる関数型アプローチにはそういう意味ではかなわないなと
0787デフォルトの名無しさん
2009/05/30(土) 00:44:05お前ネタで言ってるのか?
正規表現は数学者Kleeneが数学用のツールとして考案したものだ。
0788デフォルトの名無しさん
2009/05/30(土) 00:49:01サイエンスまでいかなくても、まっとうな議論ができる土台でコンピューター技術に
応用されているものをぱっと思い付きで挙げると、
λ計算、オートマトン、関係代数、述語論理、π計算、圏論、グラフ理論
0789デフォルトの名無しさん
2009/05/30(土) 00:53:560790デフォルトの名無しさん
2009/05/30(土) 00:59:32> ツール
科学じゃねーじゃん
0791デフォルトの名無しさん
2009/05/30(土) 01:01:39それそれ。
メッセージングだとか多態性だとかカプセル化だとか、本質的にはオブジェクトを物とみなしてだとか、
OOは全然サイエンス的な議論ができないじゃん。だから嫌い。
0792デフォルトの名無しさん
2009/05/30(土) 01:03:260793デフォルトの名無しさん
2009/05/30(土) 01:04:570794デフォルトの名無しさん
2009/05/30(土) 01:28:20馬鹿か?Kleeneの論文読んでこい。
0795デフォルトの名無しさん
2009/05/30(土) 01:35:17科学っていうのは解き明かすことが重要なの。
0796デフォルトの名無しさん
2009/05/30(土) 01:41:17そうか、だからOOはなんとなく宗教チックなんだ。言うことがいちいち大袈裟だし。
長年のもやもやがスッキリした。
0797デフォルトの名無しさん
2009/05/30(土) 01:46:19お前が言っていることは、数学は科学で無い、と同じ位荒唐無稽な主張だ。
正則表現の定義から導き出される数々の定理を知った上で言っているのか?
0798デフォルトの名無しさん
2009/05/30(土) 01:49:03まぁエンジニアリング上の問題だからな。
どうしても人間による認識が入ってくるのは仕方ない。
0799デフォルトの名無しさん
2009/05/30(土) 01:49:57> 正則表現の定義から導き出される数々の定理を知った上で言っているのか?
知らないので教えてくださいw
0800デフォルトの名無しさん
2009/05/30(土) 01:50:54OOはベースになる理論が弱すぎるからな。
あと、いい加減なことを言う商売人が多すぎるのも問題。
その点、関数型は理論に裏打ちされていて良い。
0801デフォルトの名無しさん
2009/05/30(土) 01:56:52正則表現と有限オートマトンの等価性
Pumping Lemma
0802デフォルトの名無しさん
2009/05/30(土) 03:02:31OOにベースとなる理論なんてあるの?
基本的に経験則から導き出されたノウハウ的なものだと捉えてるんだけど?
0803デフォルトの名無しさん
2009/05/30(土) 03:13:01大した成果が出てないっていうか。研究するには筋の悪い分野だな。
0804デフォルトの名無しさん
2009/05/30(土) 05:25:21Kleeneのどの論文か言わないとCardelli厨と同一判定されますよw
0805デフォルトの名無しさん
2009/05/30(土) 07:46:37土台にきちっとした議論ができるから好き。
0806デフォルトの名無しさん
2009/05/30(土) 07:49:43突拍子もない主張ではないのだからCardelli厨と一緒にするのはやめてくれ。
これが当該の論文だ。わざわざpdfのリンクまで貼ってやったのだから
>>790はこれを読んで荒唐無稽な主張を取り下げること。
KLEENE, S.C.
Representation of events in nerve nets and finite automata.
In Automata Studies, C. E. Shannon, and J. McCarthy, Eds,
Princeton University Press, 1956, pp. 341.
http://www.soe.ucsc.edu/classes/cmps130/Spring09/Papers/kleene_1956.pdf
0807デフォルトの名無しさん
2009/05/30(土) 08:58:150808デフォルトの名無しさん
2009/05/30(土) 09:10:37ほぼOKだけど、文脈による。
ケイのOO(メッセージング指向のOO)やプロトタイプベースのOOでははなから関係ない。
クラスを含め、あってもいいが、無くても成り立つ。
http://www.purl.org/stefan_ram/pub/doc_kay_oop_en
ストラウストラップのOO(クラス指向のOO)では当初中核をなす概念だったが、クックらの指摘で
クラス継承だけでは型安全性が確保できないことが知られるようになってからは
インターフェイス継承や、委譲に軸足が移っている。
http://www.research.att.com/~bs/whatis.pdf
http://ctp.di.fct.unl.pt/mei/talmp/docs/InheritanceIsNotSubtyping.pdf
0809デフォルトの名無しさん
2009/05/30(土) 10:03:16確かにそうだけど、そこまで理解している人となら何について話しても
論理的な議論が出来そうだな。
0810デフォルトの名無しさん
2009/05/30(土) 10:24:000811デフォルトの名無しさん
2009/05/30(土) 10:30:55また馬鹿が湧いたのか?
0812デフォルトの名無しさん
2009/05/30(土) 10:35:12OOの定義にしがみついているやつらときたら不毛な論争ばかり。
いい加減気づけよ。
0813デフォルトの名無しさん
2009/05/30(土) 10:41:56そもそもラムダ計算でどうやってOOの意味を探るんだ?
> 議論の余地がないから論理的って言うんですよ
一体>>809のどの部分に対して言っているんだ?
0814デフォルトの名無しさん
2009/05/30(土) 11:10:42正解を導く理論を知らないだけだという考え方がある。
前者の立場では、非論理的な部分こそが議論のテーマになるってことかな。
0815デフォルトの名無しさん
2009/05/30(土) 11:41:01正解を導く理論を知ろうとしないから前者の立場になるのでは?
0816デフォルトの名無しさん
2009/05/30(土) 12:49:54まあ、型システムの整合性とかはよく型付きラムダ計算で論じられるけどね。
ともあれ、抽象データ型タイプのOOについてはそれこそカーデリのシグマ計算、
メッセージングについては方向性が変わってしまうけれどアクター理論とかパイ計算がある
ってあたりで勘弁してくれよ。
0817デフォルトの名無しさん
2009/05/30(土) 13:16:06型付きラムダ計算もそカーデリのシグマ計算もアクター理論もパイ計算も
*知らない*のはなぜ?
0818デフォルトの名無しさん
2009/05/30(土) 13:18:58本流の計算科学を勉強しなくてもいい製品が作れる方法を
という目的の元育ってきたという側面もあるから
0819デフォルトの名無しさん
2009/05/30(土) 13:19:00学問としての技術のちがい?
みたいな?
0820デフォルトの名無しさん
2009/05/30(土) 13:19:17つまり、情報系の学科出てない奴等がOOを異常に信奉してるんだろ。
0821デフォルトの名無しさん
2009/05/30(土) 13:22:17そんな感じがするね。
自分にも最新の技術がわかる→計算機科学なんて大したことないw
と思ってる奴が多すぎる気がする
0822デフォルトの名無しさん
2009/05/30(土) 13:25:36おれ自動車の運転上手いって奴にかぎって古典的なニュートン力学も
燃焼工学も制御理論も知らないのは何故?って説いても無意味でしょ。
その制御理論を知る人に対して、何で数多の制御デバイスを実装する
半導体物性論も知らないの?と聞くのもまた無意味。世の中分業だし。
なので知っている人はそういう数学的な理屈を上手くラップして
そういうものを知らない人でも広くOOを利用出来るようにデザイン
してあげると良いんじゃないのかな。それが工学ってものでしょ。
0823デフォルトの名無しさん
2009/05/30(土) 13:27:04> おれ自動車の運転上手いって奴にかぎって古典的なニュートン力学も
> 燃焼工学も制御理論も知らないのは何故?
全然話が違う
0824デフォルトの名無しさん
2009/05/30(土) 13:28:050825デフォルトの名無しさん
2009/05/30(土) 13:28:25どう違う?
0826デフォルトの名無しさん
2009/05/30(土) 13:29:10そうだよな、うまく載れてないもんな
0827デフォルトの名無しさん
2009/05/30(土) 13:29:36たとえが全く違う。的外れ。
0828デフォルトの名無しさん
2009/05/30(土) 13:31:17あと職人って言うような類の人でも理論的な事も勉強してる人は多い
表向きは「勘でやってる」とか言ってるような旋盤工のおっさんでも、
本棚にはボロボロになるまで使われた金属学の専門書があったりする
0829デフォルトの名無しさん
2009/05/30(土) 13:31:42だからどういう文脈で的を外しているのか、それを聞きたいのだが。
0830デフォルトの名無しさん
2009/05/30(土) 13:31:44型付きラムダ計算やらカーデリのシグマ計算やらが出来たら
もっと上手くOOPできるようになんの?
0831デフォルトの名無しさん
2009/05/30(土) 13:34:15そういう手法を自分で構築できるようになる、それを他人に教えることもできる
0832デフォルトの名無しさん
2009/05/30(土) 13:36:40時間の無駄ってことだけは言えそうだな。
0833デフォルトの名無しさん
2009/05/30(土) 13:39:14実装をラクにするために、柔軟に組んでいけるように、設計を工夫するんだろ。
肝心の実装を人任せにするんなら、設計はもはや他人事。
実際に実装で悶々しながら設計し、
実装で手ごたえを感じてまた設計に反映させる。
これが一番おいしいOOPじゃないかな。
非OOPでももちろん設計と実装の関係は同じことが言えるけど、
OOPならそこから先にまだちょっと伸びしろがあり、そこが醍醐味。
0834デフォルトの名無しさん
2009/05/30(土) 13:41:13まず、OOPを支持すること自体が無学の証というわけなんだよ。
全然形式化されていない手法を支持するって怖くないの?
形式化されていないということはその先の発展性が無いんだよ、OOPは。
0835デフォルトの名無しさん
2009/05/30(土) 13:41:30世間で言われてるようなOOPが出来ないってことは
既存のOOP言語使えなくなるんと違うの?
0836デフォルトの名無しさん
2009/05/30(土) 13:44:260837デフォルトの名無しさん
2009/05/30(土) 13:46:30>全然形式化されていない手法を支持するって怖くないの?
全然。
>形式化されていないということはその先の発展性が無い
形式化されていないこととその後の発展性の因果がよく
分からない。
そもそも何をもって「発展」とするのか、形式的な定義が
与えられていないのでよく分からない。
0838デフォルトの名無しさん
2009/05/30(土) 13:48:49楽できるのに。
0839デフォルトの名無しさん
2009/05/30(土) 13:49:22「形式化」という言葉も理解できていない様子ですね。
0840デフォルトの名無しさん
2009/05/30(土) 13:51:37というのはセミナー屋のプロパガンダに過ぎないね。
どうも洗脳されている奴が多すぎて困る。
ちゃんと計算機科学を勉強して博士号を取得した奴以外喋るなよ。
0841デフォルトの名無しさん
2009/05/30(土) 13:51:510842デフォルトの名無しさん
2009/05/30(土) 13:53:26そうそう、セミナー屋とか似非コンサルタントに騙されてる奴等多すぎ。
まあこのスレがどの板にあるのか考えたら仕方ないのかもな。
0843デフォルトの名無しさん
2009/05/30(土) 13:55:22流行って全部セミナー屋が作ってるようなもんだし。
今度は関数型言語が食い物にされるのか・・ ウザ
0844デフォルトの名無しさん
2009/05/30(土) 13:57:00うん。説明してみて。
0845デフォルトの名無しさん
2009/05/30(土) 13:59:50大学院行って勉強してこい
0846デフォルトの名無しさん
2009/05/30(土) 14:01:13それは高等教育を受けた者の姿勢としては負けだと思うな。
理解しているのなら、説明できるでしょ。
0847デフォルトの名無しさん
2009/05/30(土) 14:03:31じゃあググれ
ここで書けるぐらいのことならググった方が早い
ここで書けないぐらいのことなら大学院で勉強しろ
以上
0848デフォルトの名無しさん
2009/05/30(土) 14:04:58食い物にされる可能性は高いだろうね
0849デフォルトの名無しさん
2009/05/30(土) 14:05:260850デフォルトの名無しさん
2009/05/30(土) 14:06:43で、それによって誰がどういう原理で困るんだよ。困らないのか?
0851デフォルトの名無しさん
2009/05/30(土) 14:11:47ケチだなぁ。お薦めのポインタすら貼らないとは。
学んだことを社会に還元できなくっては、国が高等教育に予算を
注ぐ意義も無くってよ?
>>848
WadlerやFokkingaとか知っているとどうして食い物にならないの?
0852デフォルトの名無しさん
2009/05/30(土) 14:11:53プロパガンダで信者を増やす→信者が信者を増やす→セミナー屋がっぽり
0853デフォルトの名無しさん
2009/05/30(土) 14:16:310854デフォルトの名無しさん
2009/05/30(土) 14:18:10形式化されてないと嫌だってのは、ナイーブに過ぎるな。
それと、形式化されている手法を使ったとしても
いいプログラムが書けるとは限らないことも知っておこう。
0855デフォルトの名無しさん
2009/05/30(土) 14:19:41"勉強してこい"って言っている人は、学問的には通じるのかも知れないが、エンタープライズアプリにはきっと誰も耳をかしてくれない。想像力を働かせて簡潔な説明がないと普及しない。
0856デフォルトの名無しさん
2009/05/30(土) 14:32:51> エンタープライズアプリ
の現場が、破綻してるからこんなにスレが延びてるんちゃうの?
0857デフォルトの名無しさん
2009/05/30(土) 14:36:52同意
0858デフォルトの名無しさん
2009/05/30(土) 14:37:35計算の可能性に興味があって金儲けには全く興味なし。
0859デフォルトの名無しさん
2009/05/30(土) 14:38:57そういう貴方にスレの大半の住民は興味なし。
0860デフォルトの名無しさん
2009/05/30(土) 14:41:54それは違うぞ、きっと………
OO やりたい奴は、意地でも OO したいらしい
ある FX がらみのシステムで数学的にちゃんとしたバックグラウンドが
あって、発注側から実現するために必要な要素がほとんどすべて、数式
で与えられたのにもかかわらず、OO 分析しますとか言ってる奴もいるから
0861デフォルトの名無しさん
2009/05/30(土) 14:42:06正則表現を技術だなんて言うくらいなんだから、理論的な話をしても無駄。
0862デフォルトの名無しさん
2009/05/30(土) 14:47:28理論を実践に応用する議論をする気も皆無だろうから、現場的な話をしても無駄。
0863デフォルトの名無しさん
2009/05/30(土) 14:48:41証明で背理法使えば楽なのに意地でも使わないで証明するのと似ている
自分の慣れた理解しやすい世界で処理した方がわかりやすいからなるべくそうしたい
ってのは誰にでも、どんな世界にでもある傾向だよ
0864デフォルトの名無しさん
2009/05/30(土) 14:48:55数式計算を実装するのと、システムを設計するのはまったく別の話しであることがわからないの?
0865デフォルトの名無しさん
2009/05/30(土) 14:53:19形式化は計算機科学の進歩の要であって非常に重要なことだぞ。
というのも、なぜ形式化をするかというと、要はプログラムのデバッグを自動化したり、
プログラム自体を自動的に生成したりしたいからなんだよ。
金儲け主義のプログラマさんだってバグ探しとか大変でしょ?
バグ探しにしてもプログラムの解析が必要だけど、
もし形式化されていなかったらプログラム自体を解析するプログラムをどうやって作ればいいのかわからないよね。
0866デフォルトの名無しさん
2009/05/30(土) 14:53:59言っとくけど、数値計算的な意味での数式じゃないからな
顧客が要求する、システムの振る舞いが数式出来ていされているのに
それを OO 分析してなんか意味があるの?
「お前らはこれを実装しろ」と、顧客は言ってるのに
知恵たらずの OO 分析溶かしても意味ないじゃん
0867デフォルトの名無しさん
2009/05/30(土) 14:56:31ポイントフリーで書けないHaskellプログラマは頭が悪いと見なされて差別の対象になります
0868デフォルトの名無しさん
2009/05/30(土) 15:01:53例えば、建築デザインの手法について議論する場で、
「そんな理論的裏付けの貧弱な手法より、この建築構造の方が理論として優れている」
と言われても、切り込み方がおかしいとしか思えないのと同じだな。
0869デフォルトの名無しさん
2009/05/30(土) 15:02:58させろというツッコミが多かったが、形式さんも何の形式化の事を
話しているのかはっきりして欲しい。
0870デフォルトの名無しさん
2009/05/30(土) 15:04:47オブジェクト指向の数学的モデル化
0871デフォルトの名無しさん
2009/05/30(土) 15:05:390872デフォルトの名無しさん
2009/05/30(土) 15:06:12関数も、変数も、定数も、なんもかんも全部オブジェクトなんじゃないの?
0873デフォルトの名無しさん
2009/05/30(土) 15:06:51オブジェクト(物体)なら触れるはず
つまりオブジェクトなんて最初から無かったんだよ!
0874デフォルトの名無しさん
2009/05/30(土) 15:07:46その「数学的にモデル化されたオブジェクト指向」とやらで設計された
プログラムが本当に用件から見て正しいのか、どう確認すればよいのか。
0875デフォルトの名無しさん
2009/05/30(土) 15:07:57どうぞ屏風からOOを追い出してください。
0876デフォルトの名無しさん
2009/05/30(土) 15:08:38コピペはお断りします。
0877デフォルトの名無しさん
2009/05/30(土) 15:09:35物体なんて捉えてたら、理屈が通らないと思うのだけれども
0878デフォルトの名無しさん
2009/05/30(土) 15:10:36要件 ね。
要件自体を形式的に定義できる手法が存在する。
その要件とプログラムに整合性があるかどうかを検証するプログラムを使えばいい。
でもオブジェクト指向だとどんな風にそんなプログラムを作ればいいのかまだ誰も解らない。
0879デフォルトの名無しさん
2009/05/30(土) 15:12:220880878
2009/05/30(土) 15:14:060881878
2009/05/30(土) 15:14:480882デフォルトの名無しさん
2009/05/30(土) 15:15:39オブジェクトは多くの場合クラスまたはインスタンスを指す曖昧な言葉
mayerのOOSCの最初の7章あたりの議論にその辺の問題に関するmayerの見解が詳しく載っている
0883デフォルトの名無しさん
2009/05/30(土) 15:17:34ひょっとしてProlog使って実装したシステム?
0884デフォルトの名無しさん
2009/05/30(土) 15:18:49そうそう
0885デフォルトの名無しさん
2009/05/30(土) 15:21:00要件だね。
>要件自体を形式的に定義できる手法が存在する。
うん。なので聞いた。どこの形式化を指しているのか。
でも、この仕組みで行くと要件自体が形式化されていないと
「数学的にモデル化されたオブジェクト指向」とやらには現場的
にはまるで意味が無いじゃない。移行コストが面倒なだけで。
鶏と卵でいけば要件はソフトウェアを作る上であからさまに鶏
なので、そっちにも積極的にツッコミを入れないと。
ただ現場で使われている方法論を叩いたところで賛同は殆ど得ら
れないと思う。実益無いんだもん。
0886デフォルトの名無しさん
2009/05/30(土) 15:22:31だから、鋳造という言葉なんでしょ?
鋳造という言葉だけでは、鋳型の作成なのか、鋳造物なのか、鋳造物を作る工程なのかさっぱり解らないでしょ
0887デフォルトの名無しさん
2009/05/30(土) 15:22:32古い話みたいだけど、その開発手法が何故普及しなかったか
分析とかは無いの?
0888デフォルトの名無しさん
2009/05/30(土) 15:23:170889デフォルトの名無しさん
2009/05/30(土) 15:26:33実益はある。
曖昧な仕様で開発を始めると仕様バグに悩まされることになるぞ。
仕様バグだけでなくプログラムのバグに関しても、
変なところで無限ループしていたり、デッドロックしていたり、いろいろあるけど
そういうバグの解析にも形式的モデル化が役に立つね。
0890デフォルトの名無しさん
2009/05/30(土) 15:27:15失われた10年
0891デフォルトの名無しさん
2009/05/30(土) 15:28:110892デフォルトの名無しさん
2009/05/30(土) 15:30:51原因は一つ。
SEが無学な文系だったということ。
0893デフォルトの名無しさん
2009/05/30(土) 15:32:03そりゃ方法論以前の状態だな
0894デフォルトの名無しさん
2009/05/30(土) 15:32:17かりに、今抱えてる案件でなおかつ今の俺では力足らなくてもだ
0895デフォルトの名無しさん
2009/05/30(土) 15:33:580896デフォルトの名無しさん
2009/05/30(土) 15:34:31OOにしろFMにしろ、否定する奴はバズワードふり回して
「こんなのはバズワードだ」とトートロジーかます奴が多い。
その手の輩が20年前に現われていたら構造化を否定していただろう。
0897デフォルトの名無しさん
2009/05/30(土) 15:35:25全く矛盾しないどころか、現代的な形式的手法の多くにはOO拡張が存在する。
0898デフォルトの名無しさん
2009/05/30(土) 15:35:26オブジェクト指向が形式的にモデル化できていない現状では何ともいえない。
関数型言語は明確にモデル化されている。
0899デフォルトの名無しさん
2009/05/30(土) 15:36:270900デフォルトの名無しさん
2009/05/30(土) 15:39:200901デフォルトの名無しさん
2009/05/30(土) 15:39:560902デフォルトの名無しさん
2009/05/30(土) 15:41:50構造化⊆オブジェクト指向
0903デフォルトの名無しさん
2009/05/30(土) 15:42:27仕様→実装 (笑)
型が仕様でコードは証明(笑)
0904デフォルトの名無しさん
2009/05/30(土) 15:43:120905デフォルトの名無しさん
2009/05/30(土) 15:44:47う〜ん、実績があるにせよOO云々を駆逐するほど普及しないのには
何か見えないコストや難点があるんでないの?
人材コストっていう説明でもよい。その場合の解決策は教育システム
と言うことになるから。一体何なんだろう。
0906デフォルトの名無しさん
2009/05/30(土) 15:46:11ふだんどんなプログラム作ってんの?
HaskellとかでOSSのアプリ作ってる人達ばっかなの?
0907デフォルトの名無しさん
2009/05/30(土) 15:46:38> 何か見えないコストや難点があるんでないの?
あるよ。
ただ単純に、仕様記述言語の書き方が理解できる奴が少ないってこと。
仕様記述そのものがプログラムに見えなくもない。
0908デフォルトの名無しさん
2009/05/30(土) 15:53:500909デフォルトの名無しさん
2009/05/30(土) 15:55:28Haskellは使うけど、型クラスは使わないんだろうなw
0910デフォルトの名無しさん
2009/05/30(土) 15:56:58って言われてNが2以上にできたら勇者だよね
0911デフォルトの名無しさん
2009/05/30(土) 15:58:400912デフォルトの名無しさん
2009/05/30(土) 15:58:50人材も揃わないような技術は使い難いなぁ。正直サイズの合わない
ネジみたいなものじゃん。
あと「理解出来る奴が少ない」と言うのは単にマイナーだから?
あるいは高度な訓練や素養が必要だから?
前者なら単に教育のマスを増やせば解決するけど、後者だとすると
なかなか人材コストが下がらないから結局普及は難しいような。
0913デフォルトの名無しさん
2009/05/30(土) 15:59:34開発工数は言語や方法論よろもまず技術者の質がモノを言う。と答える。
0914デフォルトの名無しさん
2009/05/30(土) 16:07:59グダグダな設計を、OO的にまともなものに変更してメンテナンス工数を1/5にしたことならあるよ
0915デフォルトの名無しさん
2009/05/30(土) 16:40:42それは OO を使わなくても可能な範疇だろ?
実質的には OOA とか OOD とかって全然こなれてないじゃん
OOP は使いどころによっては結構役に立つけど, C++ とか Java みたく
関数がファーストクラスじゃない言語だと, あちこち不細工になるじゃん
0916デフォルトの名無しさん
2009/05/30(土) 16:46:19OO的ではないがまともな設計に直してたら1/6になってたりして。
いずれにしても工数が減らせるかどうか説得力のある説明をするのって
難しいよね。
(過去の事例からデータを取るのも難しいし、実験するにもコスト、時間がかかりすぎる。)
0917デフォルトの名無しさん
2009/05/30(土) 16:49:00OO的ではないがまともな設計に直してたら1/6になってたりして。
いずれにしても工数が減らせるかどうか説得力のある説明をするのって
難しいよね。
(過去の事例からデータを取るのも難しいし、実験するにもコスト、時間がかかりすぎる。)
0918デフォルトの名無しさん
2009/05/30(土) 16:49:310919デフォルトの名無しさん
2009/05/30(土) 17:15:07以前動いていたシステムの設計を変更して、その後でもちゃんと動くかどうか保証できるのか?
0920914
2009/05/30(土) 17:23:23設計変更するついでに既存コードにあるバグもけっこう見つかったけどな。
0921デフォルトの名無しさん
2009/05/30(土) 17:35:130922デフォルトの名無しさん
2009/05/30(土) 17:36:26じゃ、次からは工数5分の1でやってもらうからw
あ、給料はそのままねw
なんて未来しか見えないから激しくどうでもいい
0923デフォルトの名無しさん
2009/05/30(土) 17:36:50> OO的ではないがまともな設計に直してたら1/6になってたりして。
今さら仮定の話を持ち出しても。。。
> いずれにしても工数が減らせるかどうか説得力のある説明をするのって
> 難しいよね。
実績を示した人に対して仮定の話を持ち出して揶揄する人がいるから
じゃないかな。
0924デフォルトの名無しさん
2009/05/30(土) 17:53:51工数がそのまま給与に反映されるとか、どんだけ零細なところで働いてるんだよ?
0925デフォルトの名無しさん
2009/05/30(土) 17:56:59たとえばなぜ銀行のシステムが未だにCOBOLを抜け出せないのか解らないのか?
0926デフォルトの名無しさん
2009/05/30(土) 17:59:20だから反映されないだろw
5倍働いても給料はそのままだよw
0927デフォルトの名無しさん
2009/05/30(土) 18:07:50どうせ8時間は拘束時間だし
0928デフォルトの名無しさん
2009/05/30(土) 18:08:050929デフォルトの名無しさん
2009/05/30(土) 21:39:50アムロもカミーユもニュータイプでエースパイロットだが
その前は自前でロボット作ってたって話だよ
0930デフォルトの名無しさん
2009/05/30(土) 22:09:210931デフォルトの名無しさん
2009/05/30(土) 22:14:01UMLみたいな設計の図解方法はあるの?
0932デフォルトの名無しさん
2009/05/30(土) 22:24:59しかもカミーユは後にZガンダムの設計までやってる
素質としてはカミーユの方が数段上かもしれない
こんな奴等が、他人の作った機体をコロコロ乗り換えるだけのシャアや
雑魚をけしかけて遠くから眺めるだけのシロッコに負けるわけがないだろう
オブジェクト指向を使うってことは、足がなくても100%だとか主観で
格付けする整備士の戯言を真に受けるようなものだ
0933デフォルトの名無しさん
2009/05/30(土) 22:44:06マイナー言語でライブラリ書く奴が少なかろうが
何の問題もないからな。
0934デフォルトの名無しさん
2009/05/30(土) 22:53:17はっきり言う。気に入らんな
0935デフォルトの名無しさん
2009/05/30(土) 22:55:51関数型言語を使うってことは、足がなくても100%だとか主観で
格付けする整備士の戯言を真に受けるようなものだ
0936デフォルトの名無しさん
2009/05/30(土) 23:06:500937デフォルトの名無しさん
2009/05/30(土) 23:10:54関数型言語は数学的な裏付けがあるから例えとしては合わないのでは。
0938デフォルトの名無しさん
2009/05/30(土) 23:17:40> フローチャート
無駄なものの筆頭
> UMLみたいな設計の図解方法
ハード屋が使ってる似たような図にはバックグランドに
それなりの理屈はあるが、UML の図って奴等が理屈を
視覚化するための使ってる図の、見た目だけの劣化コピー
実質的に、まともに使えてシステムを表現してるのは
ステートダイアグラム程度じゃねぇの
0939デフォルトの名無しさん
2009/05/30(土) 23:19:59自前で処理系作る話だ。
ベーパーウェアでは話にならん。
0941デフォルトの名無しさん
2009/05/31(日) 00:00:39いるいらないも判断せずにこういうの一生懸命作っちゃうやつってすげー嫌い
フローも業務フローはいるけどソースのフローはいらねぇよなw
UMLも仕様に近いもんならほしいけどクラスを機械的にかいたもんはお断りしたいw
0942デフォルトの名無しさん
2009/05/31(日) 00:08:41ようなツールをセミナー屋や商社代理店がよく宣伝してたが、実際に今でも
使ってる奴っているのか?そして実際にどれ程効果があるのか教えてほしい。
0943デフォルトの名無しさん
2009/05/31(日) 00:13:18あー役にたつっちゃやくにたつし、たたないっちゃたたない
本質的にどうモデル化するかの方が大事で、その部分は全く経験則の塊
ゴミ突っ込みゃゴミが出てくる
0944デフォルトの名無しさん
2009/05/31(日) 00:14:20全体の作業量には殆んど影響しないのでむしろ効率が落ちるという…
0945デフォルトの名無しさん
2009/05/31(日) 00:17:570946デフォルトの名無しさん
2009/05/31(日) 00:18:01図とソースで整合性が合わなくなったときの面倒臭さは異常
ただでさえ忙しいのにそんなのかまってらんねー
0947デフォルトの名無しさん
2009/05/31(日) 00:21:37> ネジにもいろんな種類がある
当然その中には OO で作れないネジもある事も理解して言ってるんだよな?
0948デフォルトの名無しさん
2009/05/31(日) 00:22:56ネジはどんな形でもネジだと言う事も知らないらしい...
0949デフォルトの名無しさん
2009/05/31(日) 00:23:41ほう・・・
じゃあ、工数いくつ削れるの?
0950デフォルトの名無しさん
2009/05/31(日) 00:27:40どうせこの業界でのセミナーなんて役に立たないのはわかってるんだし。
0951デフォルトの名無しさん
2009/05/31(日) 00:30:390952デフォルトの名無しさん
2009/05/31(日) 00:31:51はぁ?
0953デフォルトの名無しさん
2009/05/31(日) 00:33:34として使えるメリットはあるよね>UML
0954デフォルトの名無しさん
2009/05/31(日) 00:35:51ベンダーや代理店が多すぎること、そしてそれにすぐ騙される奴が多いから
OO自体胡散が臭く思われる。
0955デフォルトの名無しさん
2009/05/31(日) 00:36:09ないならUMLなんて書いてる場合じゃないんだよ
0956デフォルトの名無しさん
2009/05/31(日) 00:37:17ホントだ
詐欺ばっかりだったよなー
100万近くもするクズツール平気で売りつけるヤツとかホント酷い
0957デフォルトの名無しさん
2009/05/31(日) 00:37:18シーケンス図: さらに出来の悪いタイミングチャート
状態遷移図: まぁ、許してやろう
他になんかあったっけ?
0958デフォルトの名無しさん
2009/05/31(日) 00:38:46その仕様に関してどうすればいいかを議論する場だよ。
0959デフォルトの名無しさん
2009/05/31(日) 00:38:56セミナー屋云々の話がいまいちよく分からない。
0960デフォルトの名無しさん
2009/05/31(日) 00:46:51オブジェクト指向関連のセミナーにいっては駄目とだけ覚えておけ
0961デフォルトの名無しさん
2009/05/31(日) 00:49:11会社が金払って一日寝ててもいいって言うてくれるんだから絶対に行くw
0962デフォルトの名無しさん
2009/05/31(日) 00:58:41考えを整理するときにコピーの裏に思い切りインフォーマルなやつをちょこちょこと書くぐらい
0963デフォルトの名無しさん
2009/05/31(日) 01:10:07違うね。セミナー屋のやり口はそれだけじゃない。
派遣やら本書きやら大学・専門学校での講義や資格セミナーや有名人を取り込んでブログや本書きなどで宣伝させたり、あの手この手でプロパガンダを広めていくのがセミナー屋の恐ろしいところ。
0964デフォルトの名無しさん
2009/05/31(日) 01:11:080965デフォルトの名無しさん
2009/05/31(日) 01:57:41「で?工数はいくら削れるんです?」とか具体的な質問してくるといいよ
だってこんなのビジネスの席で用意してねーほうが悪いんだから
積極的に聞いて良し(これでまともな答えを返せるやつがいたらそのセミナー参加してみたい)
0966デフォルトの名無しさん
2009/05/31(日) 02:02:470967デフォルトの名無しさん
2009/05/31(日) 02:07:56そんなこと言っても、大抵は、
「システム稼働までの工数削減だけでなくメンテナンスフェーズまで考えた
トータルでの効率化を実現するものです。お客様がご所望のシステムを分析
しないと細かく見積りは出来兼ねますが総工数が1/nになった事例もあります。」
とか適当に煙に巻き続けるだけだろ。口だけは上手いからな。
0968デフォルトの名無しさん
2009/05/31(日) 02:32:08逆に、君が推奨する方法を採用すれば、採用していないときと比べて
工数がどれだけ減るのか聞きたい。
0969デフォルトの名無しさん
2009/05/31(日) 02:57:01俺が推奨する方法?
普通に組むの一択だろ
もう末端PGは汎用化なんて気にしなくていいんだよ
逆に気にすることで工数が無駄にかかってしまっている
何もするなといいたい
ひたすらベタで書け
0970デフォルトの名無しさん
2009/05/31(日) 03:13:49おおかた高いツールを買わされたはいいが、きっと能力不足で使いこなせなかったんだろうな。
0971デフォルトの名無しさん
2009/05/31(日) 03:27:360972デフォルトの名無しさん
2009/05/31(日) 03:47:550973デフォルトの名無しさん
2009/05/31(日) 06:14:16君さあ、関数型言語は数学的裏付けがあるなんて呑気に言ってるけど、
型推論はNP完全だということが証明されている件についてはガン無視ですか?
0974デフォルトの名無しさん
2009/05/31(日) 10:43:16デジタル人間は他人を認めることが出来ない
0975デフォルトの名無しさん
2009/05/31(日) 11:02:27末端PGが担当範囲内で勝手に汎用化とか始めたら目も当てられないからな
気づいたときには手遅れ、同じようだがしかし微妙に違う関数がいたるところに出現w
0976デフォルトの名無しさん
2009/05/31(日) 11:33:41認める価値がない人間を認める必要はない
0977デフォルトの名無しさん
2009/05/31(日) 11:40:02デジタル人間にアナログな判断は出来ない
0978デフォルトの名無しさん
2009/05/31(日) 11:44:17お前は日本語がわかっていない
0979デフォルトの名無しさん
2009/05/31(日) 12:06:17そうなるぐらいだったらしかるべきところに
ちゃんと仕様を満たす記述をしっかり書いたほうがよっぽどいいよね
どこでそんなに汎用化しなければならない強迫観念を植え付けられたのか知らないけど
仕様の再利用はいいけどコードの再利用は絶対に役に立たないといいたい
0980デフォルトの名無しさん
2009/05/31(日) 12:24:37> 同じようだがしかし微妙に違う関数がいたるところに出現w
その担当範囲内で使うために作るのなら、別にかまわんとおもうよ。
嫌なら「こういう共通関数用意してるから、これつかえ」って指示すべき。
0981デフォルトの名無しさん
2009/05/31(日) 12:31:21そういう考えでプログラム作ってると、1000行越えるような関数作っても平気になるんじゃね?
0982デフォルトの名無しさん
2009/05/31(日) 13:21:06あらかじめ被りそうな関数を全て定義しておけるほど世の中甘くない
0983デフォルトの名無しさん
2009/05/31(日) 13:36:13そのあたりの話については、今月のCommunication of ACMにおもしろい記事が出ていた。
0984デフォルトの名無しさん
2009/05/31(日) 13:37:400985デフォルトの名無しさん
2009/05/31(日) 13:46:38むしろパラメトリック多相やインクルージョン多相でそ。
0986デフォルトの名無しさん
2009/05/31(日) 14:23:56記事のタイトル教えてくれ
0987デフォルトの名無しさん
2009/05/31(日) 15:03:260988デフォルトの名無しさん
2009/05/31(日) 16:04:57API Design Matters
0989デフォルトの名無しさん
2009/05/31(日) 20:26:35構造化プログラミング以前は、それなりに有効だった。
教育や説明には図解も有効な手段。
数学的なセンスがないと使えないのでは、関数型も敷居が高い。
0990デフォルトの名無しさん
2009/05/31(日) 20:41:35おいおい
0991デフォルトの名無しさん
2009/05/31(日) 21:07:55関数型使うのに必要なのって普通に慣れとかそういう物でしょw。
Yコンビネータ?おまえらそんなの本当に使ってんの?
概念として知ってるのはいい事だと思うけど、本当にプログラム中で使ってるなら設計見なおした方がいいよww
0992デフォルトの名無しさん
2009/05/31(日) 21:13:32敷居を上げていると。
0993デフォルトの名無しさん
2009/05/31(日) 21:34:03無秩序に汎用化しては無駄に工数が掛かると思うが
汎用化のアイデアを末端からマネージャにフィードバックすればよいのでは?
末端PGでやったときはフィードバックして採用されたものもあるし
不採用で自分の範囲内で使っただけのものもある
初期段階で洗い出さないと手戻りが発生するが
0994デフォルトの名無しさん
2009/05/31(日) 21:45:53どうして分からないのかと思うぐらい分からないもん。
0995デフォルトの名無しさん
2009/05/31(日) 21:49:18経験上、それは「慣れ」によって克服できます。
別に数学的センスがあろうがなかろうが最終的に理解できない物ではありません。
0996デフォルトの名無しさん
2009/05/31(日) 21:52:39ひたすらコード書いて慣れるのを待つしかないのかと。
0997デフォルトの名無しさん
2009/05/31(日) 21:56:46プログラム内部での具体的な動作とか、なんの役に立つのとか
気になることが次々でてきて自分で使えるようになるまで時間がかかった
0998デフォルトの名無しさん
2009/05/31(日) 22:07:310999デフォルトの名無しさん
2009/05/31(日) 22:07:58これで身につかなかった新人はいない
1000デフォルトの名無しさん
2009/05/31(日) 22:08:1910011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。