1 名前:デフォルトの名無しさん [2009/11/24(火) 23:14:03 ] / ̄ ̄\ (⌒ヽ ヽ⌒) Google発の新言語go |:::: ̄  ̄l . |::: | The Go Programming Language |:::: (● ) (●)| ttp://golang.org/ .|::: (_人__) | ttp://go.shibu.jp/ |::: `⌒´ | |::: __ |_ グーグル、C/C++に代わる新言語「Go」をOSSで公開 |::: ノ__) |_) ttp://www.atmarkit.co.jp/news/200911/11/go.html |::: | 前スレ |::: | pc12.2ch.net/test/read.cgi/tech/1258183436/ \___、⌒i___ノ⌒ヽ 過去スレ (_ノ ヽ_ノ pc12.2ch.net/test/read.cgi/tech/1257920595/
322 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 18:19:39 ] いろいろできるねぇ。これでネイティブ吐くのが面白い。 package main import "fmt" func main() { add := func( a, b int ) int { return a + b }; fmt.Println( add( 1, 2 ) ); add2 := func( a int ) ( func( int ) int ) { return func( b int ) int { return a + b } }; fmt.Println( add2( 2 )( 2 ) ); }
323 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 18:27:09 ] 高階関数もできた package main import "fmt" func make( f func( int ) ( func( int ) int ) ) ( func( int ) int ) { return f( 1 ) } func main() { add := func( a, b int ) int { return a + b }; fmt.Println( add( 1, 2 ) ); add2 := func( a int ) ( func( int ) int ) { return func( b int ) int { return a + b } }; fmt.Println( add2( 2 )( 2 ) ); fmt.Printf( "%T\n", add2 ); fmt.Printf( "%T\n", add2( 1 ) ); inc := make( add2 ); fmt.Println( inc( 5 ) ); }
324 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 18:33:20 ] >>322 何が面白いのか分からない
325 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 18:35:21 ] じゃあ面黒い
326 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 18:37:35 ] pc12.2ch.net/test/read.cgi/tech/1257968644/ コード貼りたいひとはこちらで
327 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 18:45:32 ] RailsやCouchDBみたいなのが出てくるのはいつのことやら いや結構楽しみにしてるんだけど
328 名前:デフォルトの名無しさん [2009/11/28(土) 18:47:41 ] すぐにgoogle信者が作りそうな気はする
329 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 18:52:27 ] >>324 なんでGoスレ見てるの?
330 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 18:58:40 ] >>329 322のコードが普通過ぎて何が面白いのか分からないってだけなんだけど そのレスはどういう意味?
331 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 19:06:10 ] >>330 は鬱病
332 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 19:07:58 ] mod_go ttp://twitter.com/mako10z/statuses/5616636696
333 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 19:16:37 ] wordprogress.org/archives/643 wordprogress.org/archives/tag/go www.grj.jp/proactiv/
334 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 19:21:40 ] ttp://blog.livedoor.jp/aho1go/archives/51725863.html ttp://d.hatena.ne.jp/tora0091/20091112/1258028546 ttp://www.slideshare.net/jbking/can-a-python-go-beyond-the-python
335 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 19:23:53 ] こんにちは
336 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 19:25:36 ] >>330 あーいうコードを書けてネイティブを吐くのがGoの特徴だと思うんだけど それが面白くないならどうしてGoスレ見てるんだろうと思って聞いてみたの 例えばどんなのを期待してるの?
337 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 19:32:14 ] code.google.com/p/go-windows/
338 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 19:38:04 ] >>323 なんか括弧だらけだということはわかるけど 何をやってるのかさっぱりわからん
339 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 19:42:55 ] 純粋なあの頃は仕事で追い詰められて自殺なんて都市伝説だと思ってたけど 今じゃ知り合いの失踪も自殺も体験した
340 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 19:44:11 ] >>337 完成品?
341 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 19:45:11 ] addは単なるインライン関数 add2はカリー化。マニア向けなので別に知らなくてもいい inc/makeは関数を受け取って関数を返してる。高階関数。名前は難しそうだが簡単で便利 括弧が多いのはGoの文法がださいのでしょうがない
342 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 19:45:59 ] ネイティブコードなら lisp でもつくれるで。
343 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 19:55:27 ] テレ朝が、鳩山の支持率操作を、うっかり自白しました 鳩山首相 一生懸命「我々」も支持率下げないよう辛抱して支えてるのに・・・ ttp://www.youtube.com/watch?v=YbWdc6NrrNs#t=1m10s テレ朝が、鳩山の支持率操作を、うっかり自白しました ttp://www.youtube.com/watch?v=R22RrK1nH54
344 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 20:03:09 ] scalaスレで馬鹿Lisperが暴れてる どうにかしてくれ
345 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 20:31:44 ] >>341 goは括弧が少ないのが特徴じゃないのか
346 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 20:35:59 ] >>336 俺はCSPでどこまで行けるのかくらいかなぁ このスレの一部で評価が高いMSのAxumもCSP採用してるし クロージャ持っててネイティブ吐けるのはCっぽいのだけでもC++0x/Mythryl/Dとかあるし 最近のLLVMの台頭見てるともう珍しさはないんじゃないかと (仕様じゃないけどBlocks使えばCやObjective-Cでもクロージャ使えるので広まるの願ってたり)
347 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 20:39:39 ] >>345 Goってifとかの括弧はなくなったけど関数周りはCに比べて大抵括弧増えると思う
348 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 20:53:37 ] >>346 CSPについて詳しい説明してくだしあ ちなみにチャネルをちょっと使ってみたけど、Paralle.Forみたいなのも欲しいと思った
349 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 22:03:06 ] ActorとCSPとSTMの違いがわからない 誰か解説求む
350 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 22:50:51 ] STMは中身が全然違うだろ。 教えてやる前に自分がどこまで理解してるか示してくれ。 一から教えるのはパス
351 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 23:14:07 ] 関数値タイプ名とか適当に省略できないのかな? 関数を返す関数を返す関数を返す関数とかだとどうなるんだか
352 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 23:17:15 ] 関数で遊びたいなら関数型言語使えば?
353 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 23:47:36 ] 結局おもちゃとしてしか認識してないんだよな
354 名前:デフォルトの名無しさん mailto:sage [2009/11/28(土) 23:55:46 ] おもちゃ以外で使われるには時間がかかるよ
355 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 00:04:05 ] お前らにはおもちゃとしか扱えないってこと
356 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 00:04:49 ] おもちゃ程の価値しかないものを過大評価するのはどうかと思うね
357 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 00:06:58 ] 価値は使う側によって決まる
358 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 00:15:43 ] 高階関数とカリー化とクロージャ備えてるのか 立派な関数型言語じゃん
359 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 00:17:57 ] Go用途がはっきりしない。 GCがあるのでCの置き換えにはならない。 じゃあJavaやC#のポジション狙い? あるいはErlang?
360 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 00:18:36 ] それで関数型と認めちゃうんだw
361 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 00:19:07 ] >>358 関数型の本質を理解してないバカがまたここに。
362 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 00:25:35 ] またHaskell原理主義者か
363 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 00:26:45 ] それで関数型言語と呼べるなら、PythonやJavascriptのような 現代的な言語はみんな関数型だな
364 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 00:32:32 ] でもLispやMLが関数型言語の仲間なんだろ?
365 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 00:42:08 ] JavaScriptは関数型と呼んでも何の差しさわりもないような Pythonも然り JavaScriptで書いてるときは関数型の思考になります
366 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 00:59:17 ] 副作用のある言語は真の関数型言語とは呼べない HaskellやCleanこそが真の関数型言語である
367 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 01:03:46 ] でも副作用なしじゃファイルに含まれる文字の出現頻度さえO(N)で計算出来ないでしょ 実用的じゃないよ
368 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 01:04:53 ] >>362 えっと、プログラミング言語はすべて原理どおりに動作するので、原理主義上等なんですが・・・
369 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 01:07:33 ] >>366 そっちは純粋関数型言語と呼んでむしろ特別扱いされてるだろ。 λ計算ベースにしてたら関数型言語でいいじゃん。
370 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 01:08:32 ] >>369 チャーチ数採用している言語とかほとんど無いんじゃ…
371 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 01:11:12 ] JavaScriptやPythonは関数型言語なんて呼ばれてないだろ
372 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 01:12:03 ] >>370 どの程度までプリミティブで作りこむかによる。 別にチャーチ数をそのまんま使わないといけないなんてことはないし、 もしチャーチ数を使うならどうやって画面にhelloworld出すの?
373 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 01:15:37 ] >>370 チャーチ数持ち出すぐらいならわかってると思うけど 関数と、例えば整数の値に区別がないのが関数型言語の特徴なんだよ。
374 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 01:16:46 ] >>373 じゃあ副作用があるやつは全部だめだな
375 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 01:17:32 ] >>371 まあ、こんな記事もあるんだけどな JavaScript: 世界で最も誤解されたプログラミング言語 d.hatena.ne.jp/brazil/20050829/1125321936
376 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 01:20:39 ] おまいらそろそろGoの話に戻れ
377 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 01:33:49 ] Cygwinで出来ますか?
378 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 01:43:19 ] JavaScriptやPythonはランタイムの動き的に関数型言語でないと思ってるけど、 関数型言語の多くの特徴を備えてるって感じでは? LL言語って関数を実行時に定義してるわけだから関数型言語に近いことができる。
379 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 01:51:52 ] X11のライブラリ書き始めた人いるね
380 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 02:24:15 ] Qtとか使えるようになるの?
381 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 02:39:26 ] code.google.com/p/go-windows/
382 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 04:01:00 ] あんな型がルーズな言語がいいとかどんだけお遊びプログラミングなんだよ
383 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 04:22:57 ] 型がルーズというのは思い込みだと思うが
384 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 04:25:47 ] 思い込みって。ActionScriptですら改善されてるのに。
385 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 06:33:02 ] javascriptのはなしかよw
386 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 09:56:00 ] > LL言語って関数を実行時に定義してるわけだから関数型言語に近いことができる。 関数を実行時に「定義」できないと関数型言語でないなら、 Haskellなんか困るじゃないかw
387 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 10:20:40 ] >>382 動的言語って結構本格的なビジネスでも使われてるんだぜ? 知らなかった?
388 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 10:40:31 ] ビジネスチャンスの悪寒!!!
389 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 10:42:31 ] GoogleMap(笑)とかのこと?
390 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 11:25:52 ] >>387 知ってるがあれがつくりやすいって言ってる奴みたことない。
391 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 11:56:25 ] >>390 動的言語が作りやすいと言ってる奴ならいくらでも見たことあるんだけど
392 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 12:15:45 ] 型チェックが弱い言語の話じゃないの?
393 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 12:38:01 ] 動的言語って型チェックがない言語じゃないの?
394 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 12:44:25 ] >>389 このスレにGoogle Map以上の規模のビジネスアプリ作ってる奴が どの程度いるのやら
395 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 12:49:19 ] >>390 GoogleでGreasemonkey使ってるとか聞いたことあるが
396 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 13:20:39 ] 動的言語だって型チェックしてるだろ。目に見えないだけで
397 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 13:57:17 ] >>379 kwsk
398 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 13:57:31 ] コンパイル時にチェックしないとチェックが大変だろ
399 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 14:11:00 ] >>397 d.hatena.ne.jp/moriyoshi/20091125/1259175076
400 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 14:15:58 ] code.google.com/p/go/source/detail?r=4a3f8104324e switch c.buf[0] { case 0x02, 0x03: // Key press, key release. // BUG(nigeltao): Keycode to keysym mapping is not implemented. // The keycode is in c.buf[1], but as keymaps aren't implemented yet, we'll use the // space character as a placeholder. keysym := int(' '); // TODO(nigeltao): Should we send KeyboardChan ints for Shift/Ctrl/Alt? Should Shift-A send // the same int down the channel as the sent on just the A key? // TODO(nigeltao): How should IME events (e.g. key presses that should generate CJK text) work? Or // is that outside the scope of the draw.Context interface? if c.buf[0] == 0x03 { keysym = -keysym } c.kbd <- keysym; it's early development stage...
401 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 16:39:49 ] 今どきこんな古くさい言語使う人いるの? これなら普通にC++使ってた方がまし
402 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 16:46:53 ] お前定義で古臭い言われましても
403 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 17:00:36 ] グーグルの社員7人の意図するところは別にあるだろうけど メタプログラミングに馴れれないマ専用 Objective-C現代風味って感じ
404 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 17:03:56 ] UNIX Magazine 整理してたら 2001年の 9月号に Plan9
405 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 17:06:01 ] いつになったら何でも抽象化がいいわけじゃないってことに気づくのか
406 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 17:06:32 ] upload.wikimedia.org/wikipedia/he/5/5c/Plan9bunnywhite.jpg
407 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 17:07:40 ] www.noritsuna.com/images/server/plan9-boot02.PNG
408 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 17:08:41 ] >>405 頭の良い人間は抽象化が好きなんだよ。プログラミングに限らず
409 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 17:12:17 ] >>408 でプロジェクトがバグがでて人のせいにするわけですね。 自称頭がいい下っ端はいいな。
410 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 17:15:04 ] みなさん、大そう建設的なことですな
411 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 17:18:11 ] 高階関数が使えるのなら、実行時にメタプログラミング的なことはできる
412 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 17:22:11 ] 今の段階ではあきらかにメタプログラミング的な機能は欠如してるでしょ 今後ジェネリックスが付く予定らしいというようなことがFAQから読み取れるから 今後そういうところも強化されていくだろうね
413 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 17:24:05 ] >>409 何の話?
414 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 17:34:38 ] >>406 なにやら寂しげに見える
415 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 17:37:54 ] OOP嫌いなRobやKenもジェネリクスは大好きなんだよな。 Boostなんか10年以上かけても地雷ダンジョンにしかならんのに。
416 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 17:52:01 ] 特に目新しいものがない→誰でもすぐ覚えれる よってGoは流行りそう
417 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 17:54:57 ] 特に目新しいものがない→誰も覚える気にならない よってGoは流行らなそう
418 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 18:00:54 ] >>417 まだ覚えてないのかよw もう3スレ目だよw
419 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 18:21:06 ] ポインタとGCってどうやって共存してるの? 世代別GCにしたらコピーでアドレス変わるけど、どうするの?
420 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 19:03:19 ] >>419 go言語は世代別GCなの???
421 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 19:42:46 ] >>420 今は違う でもGCを速くするには世代別がきっと必要になる
422 名前:デフォルトの名無しさん mailto:sage [2009/11/29(日) 19:45:26 ] >>420 世代別の性能を数倍に高めた アルゴリズムを使うって言ってた