【プログラム言語】グーグル、C/C++に代わる新言語「Go」をOSSで公開

このエントリーをはてなブックマークに追加
904名無しさん@十周年:2009/11/16(月) 00:43:40 ID:lebLfEmn0
後藤
905名無しさん@十周年:2009/11/16(月) 00:44:18 ID:dY8Sc04OP
>>901
ifやfor、break、gotoがcallに落ちることってあるのか?
906名無しさん@十周年:2009/11/16(月) 00:47:42 ID:vt9FWdGg0
構造化が言われて久しいってのに、いまだに「有害なgoto有害論者」って居るんだなあw
907名無しさん@十周年:2009/11/16(月) 00:56:49 ID:Os6brtIx0
goto使わなかったらエラー処理どうすんの?
ある関数の中でたくさんnewしたりなにかをcreateしたりopenしたりする度に
エラーに出会ったらロールバックしないといけないだろ?
そのロールバック処理をエラーチェックがある度に書くのか?
普通はgotoで関数の最後に飛ばしてそこでロールバックさせる。だろ?
908名無しさん@十周年:2009/11/16(月) 01:12:57 ID:2XNWzqyt0
なんで?
newなりの成功処理ブロックの最後で一回だけすりゃいいんでは?
909名無しさん@十周年:2009/11/16(月) 01:17:54 ID:Os6brtIx0
なんで成功したときにdeleteすんだよw
わかってないなぁ。
if((a=new hoge)==null){return;}
if((b=new hoge)==null){delete a;return;}
if((c=new hoge)==null){delete a;delete b;return;}
って書くのか?って話だ。
910名無しさん@十周年:2009/11/16(月) 01:19:15 ID:zTDiORvp0
>>908
それやるとnewやopenするポインタ毎にフラグが必要にならんか?
処理に入る前にすべてnewしてしまえば別だが・・・。
911名無しさん@十周年:2009/11/16(月) 01:25:45 ID:UQT4k9JY0
>>905
ごめん、レス先をよく読んでなかった orz

>>907
手前味噌でなんだが、>>863-864だよね。
912名無しさん@十周年:2009/11/16(月) 01:28:25 ID:Os6brtIx0
>>911
いえーす
913名無しさん@十周年:2009/11/16(月) 01:40:38 ID:nZUgKZLoO
結局、gotoを使ってはいけない理由を誰も提示できていない時点で、結論は明らかなんだよな。

gotoの有害性を完全に自明の前提として、思考停止しちゃってる。
914名無しさん@十周年:2009/11/16(月) 01:45:37 ID:tWciXXUW0
>>909
その2,3行目はaの取得に成功した場合に実行する処理だろ?
delete aはその後にやれば1回で済む。無理に途中でreturnしようと
するからdelete aが複数回必要になるんでは?
915名無しさん@十周年:2009/11/16(月) 01:53:59 ID:FUmt3roy0
>>913
前提つけないと荒れるよ。
916名無しさん@十周年:2009/11/16(月) 01:57:35 ID:af/D90/S0
goto をなぜ使ってはいけないのかを理解できない人がいるから、
goto は一切駄目と教えている。
もちろん分かる人は、使っていい場面では使っていい。
917名無しさん@十周年:2009/11/16(月) 02:01:01 ID:qdwMYBwJ0
見ずれーから使うなって言ってんだよ
経験の少ない奴は頭でっかちで使えないバカばっかり
しねよ
918名無しさん@十周年:2009/11/16(月) 03:05:05 ID:/DQJhPPY0
結局、x86アセンブリ、C、C++、VC++が最強なんでしょ。
終了。
919名無しさん@十周年:2009/11/16(月) 03:09:21 ID:o24Z5eeS0
プログラムスレに紛れ込んだのかと思った
920名無しさん@十周年:2009/11/16(月) 03:13:02 ID:nuMXZwvA0
WindowsはWin32APIの互換が次期バージョンでヤヴァいから互換性の高い.NETフレームワークが最強
新macにも対応してるしな
921名無しさん@十周年:2009/11/16(月) 03:21:48 ID:Enb91H/00
>>920
それはない、Windowsは過去の資産のお陰で生きながらえてるようなものだからね
922名無しさん@十周年:2009/11/16(月) 05:45:32 ID:QPDVNXGH0
>>909
newの戻り値nullで見るなんてどんだけ新米だ
C++のやってはいけないコーディングベスト10に絶対入ってんぞw
923名無しさん@十周年:2009/11/16(月) 09:16:06 ID:ik/nv+jXP
高級言語が生まれてからいったい何十年経ってると思ってるんだ。
ヴィルトの『アルゴリズム+データ構造=プログラム』を読んでから出直してくれ。
924名無しさん@十周年:2009/11/16(月) 10:10:15 ID:iyaKrWu00
Pascal代入ほんと勘弁してください
ビルドが早いってのはいいね。動的リンクしかないなんてオチだったら笑えるが
925名無しさん@十周年:2009/11/16(月) 12:20:14 ID:eBSIkkx30
ttp://golang.org/doc/effective_go.html

一度くらい読んだ?Pascal代入じゃないよ。
:= は変数の初期化式でしかない。
926名無しさん@十周年:2009/11/16(月) 12:32:07 ID:nHOYaZVQ0
>>922
組み込み系だと例外使えないC++コンパイラが普通にある
927名無しさん@十周年:2009/11/16(月) 14:11:27 ID:wA8N5lzZ0
新しく作られた処理系が実用的なのか広く使われるかなどは別として
現状、処理系を作る敷居が物凄く低くなっている
だからポコポコ新言語が生まれるのと違う?
928名無しさん@十周年:2009/11/16(月) 14:21:40 ID:BFOvT0/x0
>>927
単に投資先になってるだけだろ。新言語→新製品 それだけのことだと思うぞ。
MSがOS作るのやめないようなもんだ。
バージョンアップだけじゃユーザが「今のままで間に合ってます」になるから
「新しいの作りました」で興味引くだけだわ。
929名無しさん@十周年:2009/11/16(月) 15:17:08 ID:3kjMGU6w0
"n"
930名無しさん@十周年:2009/11/16(月) 18:12:17 ID:q3c4MLz00
>>96
GooでグーだからGoならグだな。
931名無しさん@十周年:2009/11/16(月) 18:14:42 ID:NU/oKUfsO
「本物のプログラマは一生に一度はLispインタプリタを書く」
932名無しさん@十周年:2009/11/16(月) 19:18:22 ID:QPDVNXGH0
>>926
C++標準から外れてるコンパイラのことを言われてモナ
933名無しさん@十周年:2009/11/16(月) 19:23:24 ID:Ci5FRLvX0
おもしろ半分に言語を増やすな
934名無しさん@十周年:2009/11/16(月) 19:58:28 ID:t3OEs6I/0
ひろみGo
935名無しさん@十周年:2009/11/16(月) 20:06:07 ID:nHOYaZVQ0
>>932
綺麗な環境だけで開発できりゃ天国だぜ

WindowsCE 用のMSのC++コンパイラとか
ちょっと前のBREW用のARMコンパイラとか実装してなかった
他にも色々あるが、某社の日本製C++コンパイラは特に酷い
テンプレートもまともにコンパイルできねえ
936名無しさん@十周年:2009/11/16(月) 20:06:26 ID:3LcqiHbz0
>>1
並列プリミティブってなんぞ?
937名無しさん@十周年:2009/11/16(月) 20:14:29 ID:nHOYaZVQ0
並列処理用の型じゃないの?
今はマルチコアとか活用するには自分でゴリゴリ並列処理書くか、Cを特殊な拡張してやってるけど、
それを標準で持ってるって事でしょ
938名無しさん@十周年:2009/11/16(月) 21:20:30 ID:UQT4k9JY0
>>914
何を言ってるのか良く分からんのだが。

> delete aはその後にやれば1回で済む。無理に途中でreturnしようと

「なにかあったら、それまでに確保・作成したリソースを全部破棄してすぐに戻る」

事を要求される処理や場合なんか山ほどある事ぐらい想像できないか。
939名無しさん@十周年:2009/11/16(月) 21:49:18 ID:l9U673n40
>>938
まさか、これだと「すぐ戻る」ことができないから途中でreturnしなければ
ならないと思ってるとかw
if (a成功) {
if (b成功) {
if (c成功) {
処理本体
c後始末
}
b後始末
}
a後始末
}
940名無しさん@十周年:2009/11/16(月) 21:55:38 ID:UQT4k9JY0
>>939
まあお前の突っ込みは

・条件が2つや3つですむ
・aやbやcの間に、処理が何もない
・「後始末」以外にやることがない。
・elseでやることがない

・・・などなら正しい可能性があるね。
941名無しさん@十周年:2009/11/16(月) 22:16:37 ID:pH/vmHVDP
何の言語でもそうなんだけど、みんなどうやって覚えてるの?
88についてたBASIC位なら単純な命令覚えて組み合わせればいいけど、
最近の言語は命令も細分化されて、さらにその対象物(ウィンドウとかテキストエリアとか)も
細かく分かれてるんでしょ?リファレンスと首っ引きでゼロから探していくの?
942名無しさん@十周年:2009/11/16(月) 22:59:03 ID:Ohp5nWUX0
は?
命令は分かれてないぞ
対象物は引数で指定だろ
943名無しさん@十周年:2009/11/16(月) 23:10:01 ID:TBUUis0v0
>>941
何でもそうだが、作者と同じ立場ならどうするか考えながら覚える。
944名無しさん@十周年:2009/11/16(月) 23:10:31 ID:APMKVMhlP
goto論争してる人はDのscope exit文でも使ってればいいと思うよ
ttp://www.kmonos.net/alang/d/2.0/exception-safe.html
945名無しさん@十周年:2009/11/16(月) 23:15:06 ID:dqPQDzG80
なぜgotoが有害か結局言及できないのが+の限界
946名無しさん@十周年:2009/11/16(月) 23:17:58 ID:7umhmQnz0
なにか変わるんだろうか

if (a成功) {
なにか処理
if (b成功) {
なにか処理
if (c成功) {
処理本体
c後始末
}else{
c失敗時の処理
}
処理
b後始末
}else{
b失敗時の処理
}
処理
a後始末
}
947名無しさん@十周年:2009/11/16(月) 23:25:07 ID:UQT4k9JY0
>>946
お前のコードと下のコードを比較しようか。

a確保
if(a==失敗) goto finish;
なにか処理

b確保
if(b==失敗){
 b失敗時の処理
 goto finish;
}
なにか処理

c確保
if(c==失敗){
 c失敗時の処理
 goto finish;
};
何か処理

finish:
if(a有効) free(a);
if(b有効) unlink(b);
if(c有効) delete(c);


どっちが「間違いにくく」「読みやすく」「保守しやすい」ソースだと思うね?
948名無しさん@十周年:2009/11/16(月) 23:27:32 ID:Os6brtIx0
>>946
そもそもなんで一つの関数のなかでリソースの確保とそのリソースを使った処理とリソースの解放があるって前提にしか立てない?

リソースの確保だけをする関数の話だろ?そして一つでもリソースの確保に失敗したら全部戻してエラーを返すような関数の話だ。
949名無しさん@十周年:2009/11/16(月) 23:30:04 ID:BFOvT0/x0
>>945
gotoを使うのが自分だと思ってるか他人だと思ってるかの違いだよ。
バカにハサミを持たせなくない人間とハサミ持って喜んでる人間の違いだ。
950名無しさん@十周年:2009/11/16(月) 23:36:11 ID:9iSP+fK10
goto の使い方を教えればいいんじゃない?
MISRA-C++ みたいにさ
951名無しさん@十周年:2009/11/16(月) 23:37:14 ID:dqPQDzG80
もっと客観的に論じてよ。
ダイクストラにすら言及されてないし構造化プログラムがなぜ支持されたのかも論じられてない
952名無しさん@十周年:2009/11/16(月) 23:38:29 ID:UQT4k9JY0
>>949
> gotoを使うのが自分だと思ってるか他人だと思ってるかの違いだよ。
> バカにハサミを持たせなくない人間とハサミ持って喜んでる人間の違いだ。

少なくともgotoを使うなgotoは死ね派の論理はそんな話をしているようには全く見えないがな。
「gotoはこの世の最大の悪!抹殺すべし!使う奴を許すな!
 gotoがあるほうが便利なことがあるとすればそれ自体が悪だ!」
みたいな。
「読みづらくなりやすいからgoto使うな」という論理だったのが、
「このロジックは簡単そうに見えるが実は読みづらいんだよ。goto使ってるのがその証拠」
みたいな論理になるような人がたまにいる。

>>948
まあ、ひとつの関数の中でリソースを開放するような話もあるし、そうでないのもどちらもあるね。
953名無しさん@十周年
>>947
「なにかあったら、それまでに確保・作成したリソースを全部破棄してすぐに戻る」って話はどうなったの?