1 名前:デフォルトの名無しさん mailto:sage [2009/11/14(土) 16:23:56 ] The Go Programming Language ttp://golang.org/
348 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 01:08:07 ] >>347 じゃ、縁がなかったということで
349 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 01:08:14 ] Lispは知らない奴ほど騙りたがる不思議な言語だな。 見ていて恥ずかしいから話題に上げるのを止めて欲しいわ。
350 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 01:08:53 ] >>348 え?
351 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 01:12:08 ] >>347 Goにこだわる事もないだろう。 Kenが書いたPlan9版のCなんかどうよ 無名構造体が使える
352 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 01:14:49 ] マイナー言語を使うメリットってなによ
353 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 01:15:15 ] 意味の分からない優越感
354 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 01:16:50 ] 趣味だよ
355 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 01:18:29 ] >>352 マイナーだからではない。 未開拓だからだ。
356 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 01:19:50 ] >>345 GCはIBMのこの技術を基に開発中だって ttp://www.research.ibm.com/people/d/dfb/papers.html
357 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 01:20:39 ] >>352 『言語の能力=プログラムの表現力の限界』だから、マイナーだろうとなんだろうと 色々使えた方が良い。
358 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 01:21:53 ] 一人で勝手にやるなら別にいいだろうけど…
359 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 01:23:22 ] もう何年も 達人プログラマーに書いてあった事を実践してるから 目に付いた言語は試してみるようにしてる
360 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 01:23:32 ] これ、LLVM版はやらないのかな?
361 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 01:24:03 ] >>352 VBなんか使えないのに雰囲気でわかるよねって仕事を根絶するために 最強の言語を流行させるための草の根活動の一環
362 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 01:28:42 ] ぶっちゃけ、最近の流行はJVMか.NETのバイトコードを吐ければ言語は何でもおk、なんじゃないの。 そこに加えて、C/C++の担ってきた仕事をGoが良い形でリプレースしてくれるならそれは普通に歓迎。
363 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 01:33:10 ] GoにC++の置き換えは無理 pythonの置き換えくらいが精一杯
364 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 01:37:25 ] >>360 公式はLLVMとかWindowsサポートする気ないようだから やるならオープンソースだし誰か勝手にやってってことだろう 上でゲームの話が出てるけどサーバ向けのようだから少し茨の道かも?
365 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 01:39:51 ] >>363 C++ の置き換えは無理だけど、C++ の領域を狭める事は出来る。 C が出来ても ASM は無くならなかったけど、確実に適用範囲が 狭まったのと同じ。
366 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 01:51:10 ] GC 付き言語でゲームなんか余程リアルタイム性が求められていないか ストップ・ザ・ワールドを楽しめる余裕のあるゲームなんだろうな
367 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 02:22:09 ] >>342 >* リフレクション。全ての型とチャネルに対してリフレクションが使える。 aClass methodDict とか Smalltalk allBehaviorsDo: [...] みたいなのと同じ事が出来るなら良かったんだけどな。 静的型付け言語には望むべくも無い事だが。
368 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 02:23:25 ] 何か上でメリットを並べているみたいだけど 他の言語でも出来ることだしむしろ他で出来てGoで出来ないことが多すぎ
369 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 02:25:22 ] Go++とかが出るんだろ
370 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 02:27:59 ] 確かに出来て当たり前のことを誇らしげに掲げている節があるよなGoって
371 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 02:37:11 ] どんな言語でもできることは一緒 問題はやりやすいかどうかだ
372 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 02:41:25 ] どう読んでもチューリング等価という話ではないと思われ
373 名前:デフォルトの名無しさん [2009/11/18(水) 02:51:24 ] ラムダ算法があればイスラム数字がなくてもWindowsをかける。 でもゲシュタルト心理学的には文字の見やすさも重要。
374 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 02:59:32 ] >>370 たとえば「オブジェクト指向対応」 という項目があったとして、 オブジェクト指向のための機能は最近の言語では持っているものも多いから 別段珍しいことではないけど、どうやって実現しているかというのはこの一文では分からない。 いかに使いやすく、抽象化しやすく作られているかが重要だと思うよ。 「できる」だけじゃないんだよ。
375 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 03:01:11 ] Goってそんなに作り易いの?
376 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 03:02:12 ] 何気にここ数年は C++ が人気だったりする。LLVM とか V8 とかも実装言語は C++ だし、 OpenOffice.org とか FireFox とか大きめのGUI アプリの多くは C++ で書かれている。 それらを Go で置き換えるのは、まぁ難しい。ウェブ系は Java と LL が染め上げているし、 Mac OS X や iPhone は Objective-C 一択。これらも Go が入り込む余地は少ない。 C++ を使うには大袈裟すぎるプログラムとか、C だと面倒くさいプログラムには Go は 良いだろうね。エディタとかメールクライアントを作るには丁度良さそう。
377 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 03:05:05 ] たぶんgoogleはGo限定でプログラミングコンテスト開催するぞ…しかもすごい賞金。お前らGoやっとけよ
378 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 03:23:58 ] >>331 gcc版じゃないほうでコンパイルして、GOMAXPROCS=1にしても遅い? 理由は以下。 ・Segmented Stackがgoroutineのスイッチ速度に効きそう ・コア2つ以上にするとコア間の通信のために遅くなる可能性がある (基本的な演算能力は上がるけども) ちなみにまだgo触ってない。
379 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 03:30:21 ] >>374 Objective-C, Smalltalk, Java みたいな壮大なクラスライブラリがある訳じゃないもんな。
380 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 03:37:16 ] googleの名前がなかったら見向きもされないレベル
381 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 08:42:24 ] 取り敢えず今日は Lisp について頓珍漢な事を書くのは控えてくれな。 イチイチ突っ込みは入れんけど、こんな所で知ったかぶりする必要は無いんだから。
382 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 08:43:11 ] これいけるのかw package main type 文字列型 string; func メッセージ表示(メッセージ 文字列型) { println(メッセージ); } func main() { メッセージ表示("This is 日本語"); }
383 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 08:57:50 ] >>382 今時できない処理系の方が少ないだろ。
384 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 08:57:55 ] 2ちゃんで知ったかぶりなくしたらレス数10分の1くらいだろ
385 名前:デフォルトの名無しさん mailto:これでいいですか? sage [2009/11/18(水) 11:14:47 ] >>382 すげーーーーーーーーー!!!
386 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 11:28:46 ] >>382 なでなでしこしことかもういらないんじゃねw
387 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 11:29:52 ] >>381 そんなに上から目線したいなら、せめてLispとgoがどう関係してる説明してくれないか?
388 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 11:35:46 ] どうせlispしか知らない昭和のおっさんなんだろ スルー推奨
389 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 11:36:54 ] あはれ
390 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 11:44:13 ] 関数型言語のかの字も知らない奴らがLispを語っているように見える
391 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 11:50:59 ] とりあえず博士号持ってるやつ以外は書き込むなw 紛らわしいわw
392 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 11:53:53 ] >>391 修士ですがだめで宇sか
393 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 11:55:48 ] >>390 で、その関数型言語とやらがGoとなにか関係してるんですか? たぶんすれ違いなのはあなたの方だと思いますよ。
394 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 11:56:52 ] 博士Go こういうことですか?わかりません><
395 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 12:04:58 ] >>379 言語仕様の巧みさとライブラリの大きさは関係ないよ。 ライブラリはやる気がある指導者がいれば勝手に大きくなる。
396 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 12:05:34 ] クロージャで少し関係ありそうだけど、クロージャはjava,c#とかjavascriptで普通に使われてるからな関数型言語の売りって感じじゃない。 カリー化とかハスケルっぽいなるならgoも少しは現代的な関数型言語と関係あるかもしれない。 前スレでD,C++と比べてるゆとりがいたけど、今回沸いてきたのはそれと同レベルのなんちゃってだろ。上から目線の昭和おっさんであることに間違いはないが。
397 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 12:07:09 ] クロージャなんて次のC++でも入るからどうでもいい
398 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 12:07:52 ] >>393 最近の理論的研究はほとんど関数型言語絡みなんだよ。 だから関数型言語に興味がある=プログラミング言語に詳しい、着眼点が良い人ということになる。
399 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 12:13:20 ] この世で最先端の言語はHaskellだもんなw 何しろHaskellは元々最先端技術を集めて作るのを目標にしていて、 人が集まってくると言語仕様が荒らされるからわざと目立たないように 使いやすさよりも研究用言語としての立ち位置を取ってきた言語なんだから。
400 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 12:17:15 ] プログラミングとは、理想美を追求することではなく、泥臭い作業を自動化することですよ。 そのための理論であり学問でしかありません。 goはmitやbellでなく一企業内の研究員が開発し、さらに学問のために開発したわけでもありません。 変な期待を抱かない方がいいと思いますし、これからは議論についていくためにもOOPとかちゃんと勉強しといた方が未のためですよ。
401 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 12:18:51 ] なんかよくわからん荒れ方してるな
402 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 12:19:08 ] >>400 プログラミング言語について詳しいと自称する奴がオブジェクト指向を知らないわけがないだろw
403 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 12:19:51 ] goは最近流行りの並列・平行処理をやりやすくした言語というだけだよ。
404 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 12:22:31 ] OOPってつくづく勉強するほど深いものじゃないよなぁと思う
405 名前:デフォルトの名無しさん [2009/11/18(水) 12:24:52 ] >>398 (x+y)^2 = 3/2 x^2 + 2 y^2 = 1 この連立が解けません。解法おながいします。
406 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 12:26:03 ] 関数型言語ってどの程度押さえておけばいいのん? なんか抽象度が高いから云々とか聞いたことあるが それって読みにくい言語ってことじゃないのか? LLのラムダ式とかよく使うけどしばらくたって読み直すと訳わからなくなるぞ
407 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 12:29:33 ] >>402 なら、GoとLispはどのあたりが関係あるんですか?
408 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 12:33:13 ] >>406 言語を利用する上では大して難しくないが、 ・高階関数 ・forループじゃなくて再帰ループ ・再代入禁止 ・リストを活用しよう(リストは関数型言語だけの特徴じゃないけど、関数型言語ではたいてい使いやすくなっている)
409 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 12:36:11 ] >>408 どう考えてもgc必須な資源食いまくり言語ですなw
410 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 12:39:01 ] >>406 関数型って言っても高階関数が扱える程度で関数型と名乗ってるのから本当の純粋関数型までいろいろあるぞ。 たとえばschemeなんかは純Lispの子孫だから関数型って言われるけど実際のところ本質は命令型と何ら変わらない。 Concurrent CleanやHuskell(とかその子孫のとかCurry)がどのようにして副作用をどのようにして隠蔽しているかを 知っておくのは無益なことではないだろう。 ラムダ式や高階関数なんての関数型から輸入してきた要素だけど、 最近の手続き型言語は大体持ってるから使えないのはまずいだろう 後で読めなくなるってのは書き方が汚いだけで別の問題
411 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 12:42:03 ] また馬鹿なLisperが暴れているのか
412 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 12:45:45 ] そのうちセクハラ(痴漢)で逮捕されるから放っとけw
413 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 12:46:54 ] 関数型言語もまともに扱えない低知能が何を言っているんだ
414 名前:デフォルトの名無しさん [2009/11/18(水) 12:47:43 ] >>410 そこまで「lisp命」になっちゃうのは何でですか?
415 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 12:47:49 ] >>409 関数型言語の関数呼び出しって内部的にはgotoと同じだから、 C言語の関数呼び出しとは根本的に違うんだよ。 だから再帰でもforと同等。 リストは言語仕様に組み込んでしまえば最適化しやすい。 高階関数はクロージャがあればどの言語でもできる。
416 名前:デフォルトの名無しさん [2009/11/18(水) 12:48:55 ] 低知能に使えない言語ってのは要らない気がするがw
417 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 12:49:04 ] OOとOOPを混在して書くからややこしい 考え方が違うのだからOOPもどのOOPか明示して書いてくれ >>396 Javaってクロージャなくない?
418 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 12:50:13 ] >>413 lispperの戯言はもうお腹いっぱい goのネタはないの?w
419 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 12:52:10 ] >>417 Javaにはネイティブクロージャがないから匿名オブジェクトで模倣する。C#と同じ。
420 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 12:52:38 ] >>415 でも肝心のLISTがヒープでしょ。 それじゃsentenceがgotoでも結局gc必須だよね…
421 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 12:53:01 ] 高階関数って引数に関数が取れるって理解でOK?
422 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 12:54:27 ] >>420 Haskellでは場合によってリストを配列に置き換える場合もあるみたいだね。 最適化次第で制御できないが。
423 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 12:54:37 ] C++でもHaskellでもなく Goを選択することが最適な研究分野を1つでも挙げてみて下さい まああなたたちレベルの理解度では無理でしょうけどね
424 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 12:56:09 ] >>419 馬鹿を晒し出してしまったな
425 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 12:57:09 ] >>423 だからARMなんだってばww
426 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 12:58:21 ] >>421 それだけだとC言語でもできるが、スコープを継承できなければ高階関数とは呼べない。
427 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 12:59:46 ] >>425 何故ARMにGoを選択することが最適だと考えていますか?
428 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 13:02:13 ] goの最大の特徴はgo文。 大量の鯖アクセスを並列でerlangより高速に捌くのが目的でしょ。
429 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 13:04:21 ] >>422 配列にするならヒープじゃなくてスタックでよく、結局C/C++系列の言語と何ら変わらない。 ヒープならjavascriptと同じなわけでこれまた構造化言語とおなじ。 つまり、旧来の関数型言語っていう枠組みが、もう構造化言語の一機能(言語機能)でしかないのよ。 ほとんどの関数型言語の機能はクロージャで代用できてしまう。 カリー化はコンパイラの話になるから少し違うけど、ここで吠えてるlisperは何でそんなに上から目線でいられるカワズ君なのかなって感じ。
430 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 13:04:45 ] >>428 他の言語でも同じことが出来ますが あえてGoを選択する理由は何ですか?
431 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 13:07:53 ] また今日も私が勝ってしまいました 2ちゃんねる程度では私と対等に議論出来る論客が存在しないことが残念でなりません
432 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 13:09:27 ] >>430 軽量プロセスを言語仕様レベルで実践している言語はgoのほかにerlangがあるが、 erlangとの決定的な違いはgoはネイティブで動くから速いということ。
433 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 13:12:06 ] >>432 あなたが考える並列処理を軽量プロセスで行うメリットとは何ですか?
434 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 13:12:45 ] >>433 >>428
435 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 13:13:57 ] これでは話しになりませんね
436 名前:デフォルトの名無しさん [2009/11/18(水) 13:14:03 ] JITも考えるとそうとも言えない。 ネイティブだと静的でしょ。 不変であり変化が多いそういう用途なら、いくらネイティブであれこれ頑張っても動的最適化には勝てないよ。
437 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 13:14:16 ] 地震だ 京大時計塔倒れた
438 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 13:15:45 ] >>436 erlangとCを比較してみな。 erlangはクソ遅いから。
439 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 13:16:08 ] lisperはみんな上から目線だよ
440 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 13:17:38 ] >>430 Elangとかよりは大抵の人には書きやすくて goするだけで並列に出来るからじゃない? 大抵の言語で出来るけど楽に書けるならそれにこしたことはない
441 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 13:19:13 ] そもそもこの流れで軽量プロセス軽量プロセスって唱えてる人は 軽量プロセスが何者なのか根本的なところが理解出来ていないと思う
442 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 13:20:31 ] じゃあ試しに軽量プロセスとスレッドの違いを説明してみろよ これがまともに出来る技術者なんてほんの一握り
443 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 13:22:22 ] >>441 お前はVMでしか軽量プロセスが実践できないと思い込んでいるんだろw
444 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 13:22:37 ] >>429 横槍で申し訳ない スタック or ヒープ → 構造化 の辺りがよく分からないのだけど
445 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 13:23:09 ] とりあえず、goでリングノードベンチマークでもしてもらおうか
446 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 13:24:28 ] >>429 Haskellでは、というより、GHCでは、と書かなかったのが誤解を生んでしまったようだ
447 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 13:27:20 ] みんな新しい言葉が好きなんだよ 既存の物も新しい言葉に置き換えれば違う物に見えてくる そんな誤った世の潮流の特異点に存在するのがGoという言語 これが真相
448 名前:デフォルトの名無しさん mailto:sage [2009/11/18(水) 13:28:21 ] IOってよりもプロセスやスレッド(OS)よりのネイティブ・システムに適した言語ってところのようだね。 限りなくソフトに近いから本来はbytecodeでかいてモジュール化しておけるんだけど、速度とかの効率を考えちゃうとハードにべったりだから結局ネイティブ・コードで書いちゃうってところに向いてるようだ。 javaならpublic void nativeのところ、rubyならそのシステムように実装し直した所とか、スレッドとかJITなんかの実装ようの言語なんだろうね。 ハード(ネイティブ)用言語ではあるが、Cとはやっぱり違うところがターゲットか。 gcがついたc99と考えられから汎用大衆向けでもあるが、これから言語仕様で言語依存(D,C++,C#)なのかライブラリ依存(Java,javascript)なのかによって形成されるコミュニティーがかわるだろう。 ただ、動的最適化には勝てないから所詮はjvm,cliよりさらにしたの下請け言語なのかなって思う(objcがあるよねって言う思いはあるが…)。