09/11/14 16:23:56
The Go Programming Language
URLリンク(golang.org)
2:デフォルトの名無しさん
09/11/14 16:24:39
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。
アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。
京都大学霊長類研究所
3:デフォルトの名無しさん
09/11/14 16:25:03
次スレのテンプレ
/ ̄ ̄\
(⌒ヽ ヽ⌒)
|:::: ̄  ̄l Google発の新言語go
. |::: |
|:::: (● ) (●)| The Go Programming Language
.|::: (_人__) | URLリンク(golang.org)
|::: `⌒´ |
|::: __ |_ グーグル、C/C++に代わる新言語「Go」をOSSで公開
|::: ノ__) |_) URLリンク(www.atmarkit.co.jp)
|::: |
|::: | 前スレ
\___、⌒i___ノ⌒ヽ スレリンク(tech板)
(_ノ ヽ_ノ
4:デフォルトの名無しさん
09/11/14 16:26:58
988って動くの?
5:デフォルトの名無しさん
09/11/14 16:30:03
>>1 乙
Go
URLリンク(issuenine.com)
Tutorial
URLリンク(golang.org)
Effective Go
URLリンク(golang.org)
関連スレ
Go の宿題片付けます
スレリンク(tech板)
【プログラム】グーグル、C/C++に代わる新言語「Go」をOSSで公開:超高速なコンパイル、GC、並列プリミティブ [09/11/11]
スレリンク(bizplus板)
6:デフォルトの名無しさん
09/11/14 16:31:05
>>5
>Go
>URLリンク(issuenine.com)
www
7:デフォルトの名無しさん
09/11/14 17:17:32
並列処理が遅いのですが?
8:デフォルトの名無しさん
09/11/14 17:20:31
勢いありすぎ
9:デフォルトの名無しさん
09/11/14 17:22:58
で、クロージャとかどうでもいいんだけど、ゴルーチンでなんか面白いことできないの?
10:デフォルトの名無しさん
09/11/14 18:16:27
>>9
ゴールーチンかコルーチンかはっきりしれ
11:デフォルトの名無しさん
09/11/14 18:17:24
新しい言語だからって、並列処理が早くなるとは思えないのですが
12:デフォルトの名無しさん
09/11/14 18:18:11
>>10
チンコー
13:デフォルトの名無しさん
09/11/14 18:19:40
>>11
それはそうだな。
最終的にはどっちも、機械語になるわけで、
同じ機械語が生成されれば、どっちも速度は同じ。
14:デフォルトの名無しさん
09/11/14 18:24:36
並列処理の記述が楽になるとか、CPU 数に合わせて並列度を自動で調整してくれるとか、
アトミック操作を広範に利用しているとか、トランザクションメモリを実装しているとか、
ウェイトフリーアルゴリズムを使ってるとか、そういうの無いの?
15:デフォルトの名無しさん
09/11/14 18:26:54
カーネルのお仕事のような気がする
16:デフォルトの名無しさん
09/11/14 18:28:02
全然ユーザランドの範囲だよ
17:デフォルトの名無しさん
09/11/14 18:32:47
>>14
> 並列処理の記述が楽になる
これはMPIとかよりは楽なんじゃね
MPI_Send()とかMPI_Recv()とか書かずに
<- とかなわけだから
残りはシラネ。VMじゃないからランタイムが頑張ってるんだろうけど実装詳細?
ただのスレッドではなくコルーチンとのあわせ技らしいけどね
18:デフォルトの名無しさん
09/11/14 18:38:30
並列処理が遅いのですが
19:デフォルトの名無しさん
09/11/14 18:38:35
そろそろWindowsを卒業してOSを変えようと思うけどどのOSがいいかな?
20:デフォルトの名無しさん
09/11/14 18:39:43
>>19
SOLARISかFreeBSD
21:デフォルトの名無しさん
09/11/14 18:46:27
もうpart2か。けっこう流れ速いな。
みんなそれだけ期待と不安と萌えと萎えが入り混じってグチョグチョなんだな。
22:デフォルトの名無しさん
09/11/14 18:49:11
>>21
かつてのD言語スレを見てるようだ
23:デフォルトの名無しさん
09/11/14 18:51:19
VS2010とC#4、.net4ってデスクトップに再注目を促すくらいのリッチさだよな
対比がおもしろい
24:デフォルトの名無しさん
09/11/14 18:53:12
FreeBSDは日本語どうなりました?
2009年現在でも相変わらずkonとかでcannnaとかなんですか?
25:デフォルトの名無しさん
09/11/14 19:05:33
しりません。誰か使っている人探して聞いてください。
26:デフォルトの名無しさん
09/11/14 19:06:50
スレリンク(unix板)
スレリンク(unix板)
27:デフォルトの名無しさん
09/11/14 19:14:51
だれかObjective-C 2.0も思い出してあげてね
28:デフォルトの名無しさん
09/11/14 19:20:08
ソラリスってどうなんですか?
日本だとあまり日本語の情報がないんですけど…ダメなんですか?
29:デフォルトの名無しさん
09/11/14 19:23:30
>>28
来年からOracle専用OSになるよ
30:デフォルトの名無しさん
09/11/14 19:24:31
Objective-Cは今はiPhoneの影響で注目されてるけど
Appleが横暴な性格のままなら
そのうちデベロッパーに嫌われてiPhoneがAndroidに市場くわれて
Obejective-Cは忘れ去られたものになりそうだ
31:デフォルトの名無しさん
09/11/14 19:28:16
注目されてるか?
なんでこんな言語使わないといけないんだよ!って
文句言われながら使われている気がするw
32:デフォルトの名無しさん
09/11/14 19:30:07
今迄からすれば注目されてるじゃん
それにObjective-Cは言語の設計もいいし
まぁAppleでしか使い道ないような言語を使う気ないが
33:デフォルトの名無しさん
09/11/14 19:34:39
アップルの傲慢は良く分かるが、現実的にはシステムとしてはobjcが全てにおいて万能だと思う。
34:デフォルトの名無しさん
09/11/14 19:36:21
.NET APIぐらいの機能がある
Objective-Cがあれば最強
35:デフォルトの名無しさん
09/11/14 19:38:41
しかし Go はGCを専らにしてるけど ObjC の GC って使ってる奴いるのかね?
36:デフォルトの名無しさん
09/11/14 19:40:47
PSP Goと同じ運命と辿る
37:デフォルトの名無しさん
09/11/14 19:44:24
PSP Goは個人的にいいと思うんだけどね
Discないからロードもはやそうだし、軽いうえに電力消費も少ない
ゲーム好きだったら絶対買ってる
38:デフォルトの名無しさん
09/11/14 19:54:23
string周り調べてるけど、Runeが良くわからん。
魔法を実装してるのか?定義はどこだ。
39:デフォルトの名無しさん
09/11/14 19:57:26
>>38
URLリンク(golang.org)
This package calls a Unicode character a rune for brevity.
40:デフォルトの名無しさん
09/11/14 19:57:31
PSP Goは既存の社会基盤へ与える影響が甚大だから忌み嫌われているんだろ
Google Book Searchと一緒だな
41:デフォルトの名無しさん
09/11/14 20:00:09
むかしのFreeBSDのマルチバイトサポートがmbruneとかいう名前だった
今はシラネ
42:デフォルトの名無しさん
09/11/14 20:05:32
>>39
サンクス。
何かあるかと思ったら、型はただのintなのね。
URLリンク(golang.org)
43:デフォルトの名無しさん
09/11/14 20:10:49
>>41
man 3 mbruneで出てきた。なるほどね。
44:デフォルトの名無しさん
09/11/14 20:12:16
>>43
もとはPlan9由来らしいですね4.4BSDのは
それにしても
URLリンク(deztec.jp)
ユニコードにはルーン文字まであるんだ!
すごい!
45:デフォルトの名無しさん
09/11/14 20:13:49
objcとかjavaとか、windows環境じゃ関係ないけどな
46:デフォルトの名無しさん
09/11/14 20:14:07
>>44
ガチで?
中二な俺は即フォントインストだ
47:デフォルトの名無しさん
09/11/14 20:21:31
GCあってポインタがないのに
「Cのようにシステム記述に適した」プログラミング言語なのか?
どちらも扱えるDのが柔軟でマシな気がするけど
48:デフォルトの名無しさん
09/11/14 20:25:44
Dを使ってシステム記述してるって基地外プロジェクトなんかあるの?w
49:デフォルトの名無しさん
09/11/14 20:25:50
ポインタなんてなくてもシステム記述はできるしOSも作れる
50:デフォルトの名無しさん
09/11/14 20:25:53
Windowsオンリーだとみんな怒り出すのにLinuxオンリーだと誰も何も言わない不思議
51:デフォルトの名無しさん
09/11/14 20:26:40
>>47
細かい用語法を抜きにすればGoにもポインタはあるよ
ただポインタ演算 p++ みたいなのは出来ない
そのポインタはアクセスできるリミットを知ってるから
バッファオーバーフローも起こらない(たぶん)
52:デフォルトの名無しさん
09/11/14 20:27:27
Max OS Xも対応してるよ
それに文句いってる人もいるしね
53:デフォルトの名無しさん
09/11/14 20:29:19
一応こんなのもある
URLリンク(golang.org)
54:デフォルトの名無しさん
09/11/14 20:35:02
モナド作れないぞなんとかしろ
55:デフォルトの名無しさん
09/11/14 20:41:04
GCなしのnew deleteなことはできる?
56:デフォルトの名無しさん
09/11/14 20:47:22
もう新言語なんてまともなIDEついてなきゃ試す気にもなれない。
PowerShellですら高機能なエディタついてんのに。
57:デフォルトの名無しさん
09/11/14 20:48:02
俺は!
イデよりも!
りぷるが欲しい!
58:デフォルトの名無しさん
09/11/14 20:50:45
そろそろFizzBuzzは解けたかね
59:デフォルトの名無しさん
09/11/14 20:51:51
馬鹿避けだろ
emacsのモードは付いてるんだから問題ない
windows無視も同じ戦略
60:デフォルトの名無しさん
09/11/14 20:52:01
>>48
MonaOS
61:デフォルトの名無しさん
09/11/14 20:54:53
悪いけどemacsとかviとか死ねよって感じ。
現代的なIDE使ったことあるなら当然そう感じるだろうね。
emacsで10万行とかどこが生産的なんだかw
あり得んだろ。
62:デフォルトの名無しさん
09/11/14 20:56:30
VIMはちょっとした作業するときに役に立つけど
Emacsはないな
63:デフォルトの名無しさん
09/11/14 20:57:03
ま、ema糞対応が一番コストが低いからな。
やる気のない言語はそれだけに対応して終わる。
64:デフォルトの名無しさん
09/11/14 21:00:40
馬鹿避けなんだってばw
ide欲しいよおおおなんてのは要らないだろ
初期は特にね
65:デフォルトの名無しさん
09/11/14 21:00:49
>>60
現代のMINIXって感じか…
大昔と違って今じゃ書籍や技法(さらにGCとか手厚い言語サポート)が確立してるからそんなに凄いってほどじゃない。
ちゃんと動くものを作ったというヤマト根性は認めるが。
66:デフォルトの名無しさん
09/11/14 21:02:38
>>60
Linuxと違って時代の要請があったわけでもUnix互換でもないし
完全に新しいOSだから開発者も集まらないし
厳しいわな
67:デフォルトの名無しさん
09/11/14 21:03:51
>>65
だまされるなC++だ
68:デフォルトの名無しさん
09/11/14 21:04:33
>>66
C++なんで念のため
69:デフォルトの名無しさん
09/11/14 21:09:51
完全に独立してるってのがいいとは思うよ。
とくにlinuxとかストールマンとか宗教臭いしがらみがないよね。
今ならPS3とかpspで動くようにハックすると完全にマイ・システムの完成(ソフト的なものは全てjvmにまかせて)になるんじゃないか?
進路としてはvmwareみたいなアプローチで仮想マシンというより汎用仮想OS(カーネル部)ってところには需要があるかも。
OS作成とかまったく知らないけど、そういう活用ならすぐ思い浮かぶ。
70:デフォルトの名無しさん
09/11/14 21:15:33
>>56
言語には新機能はライブラリに回すわけでいらな新機能なんかいらないし、まして高機能エディタなんてまったくいらないと思うよ。
71:デフォルトの名無しさん
09/11/14 21:17:08
>>56
俺もPowerShell2.0使いたいんだけどVistaはいつ対応してくれるんだろ?
72:デフォルトの名無しさん
09/11/14 21:20:58
対応してんじゃん
73:デフォルトの名無しさん
09/11/14 21:28:21
>>58
package main
import fmt "fmt"
func main() {
for i := 0; i < 100; i++ {
if i % 3 == 0 && i % 5 == 0 {
fmt.Printf("%2d FizzBuzz\n", i);
} else if i % 3 == 0 {
fmt.Printf("%2d Fizz\n", i);
} else if i % 5 == 0 {
fmt.Printf("%2d Buzz\n", i)
} else {
fmt.Printf("%2d\n", i)
}
}
}
74:デフォルトの名無しさん
09/11/14 21:31:17
goroutineつかえよ
75:デフォルトの名無しさん
09/11/14 21:41:02
>>74
言われると思ったw まだよくわかってないけどやってみる
76:デフォルトの名無しさん
09/11/14 21:43:40
>>72
あんがとインストしてきた
77:デフォルトの名無しさん
09/11/14 21:45:22
翻訳プロジェクトはじまった
URLリンク(go.shibu.jp)
78:デフォルトの名無しさん
09/11/14 21:45:41
IDEがないと新言語触れません
79:デフォルトの名無しさん
09/11/14 21:46:50
こんなん言うのもあれだけど
翻訳読まにゃダメなひとは
情報少ない新言語なんか使えんだろ
80:デフォルトの名無しさん
09/11/14 21:47:17
>>78
google面接担当「帰っていいよ」
81:デフォルトの名無しさん
09/11/14 21:49:55
翻訳が揃っててIDEが対応してて便利なライブラリが揃ってないと新言語触れません
82:デフォルトの名無しさん
09/11/14 21:54:08
並列処理遅いです
早くなんとかしてください
83:デフォルトの名無しさん
09/11/14 21:55:12
要望はコミュニティーで出そうぜ
でできたばっかなんだし
聞いてもらえる可能性もあるんだし
84:デフォルトの名無しさん
09/11/14 21:57:10
>>81
ハローワーク職員「帰っていいよ」
85:デフォルトの名無しさん
09/11/14 22:01:03
IDEのオペレータに堕ちたら終わりだな確かに
86:デフォルトの名無しさん
09/11/14 22:03:39
>>47
「Cみたいなポインタ演算がない」だけであってポインタはあるみたいよ。
URLリンク(sourceforge.jp)
87:デフォルトの名無しさん
09/11/14 22:05:45
泥仕事はこれでやるようだね
URLリンク(golang.org)
88:デフォルトの名無しさん
09/11/14 22:06:01
emacs使いになってもide使いの方が給料(報酬)が良かったりする今日この頃
89:デフォルトの名無しさん
09/11/14 22:09:00
新言語のキーワードはgo++とか亜種のことも考えると
func -> functional
chan -> channeling
と現代風にするべきかと
90:デフォルトの名無しさん
09/11/14 22:09:57
チャネリング (英: channeling, channelling) とは、常識的な通信手段では情報をやりとりできないような相手(何か高次の存在・神・死者(霊界人)・未来人・宇宙人など)から、特別な能力によって情報を交信すること。
91:デフォルトの名無しさん
09/11/14 22:12:07
未来人って何?w
92:デフォルトの名無しさん
09/11/14 22:12:53
禁則事項らしいよ
93:デフォルトの名無しさん
09/11/14 22:13:10
>>90
URLリンク(ja.wikipedia.org)
94:デフォルトの名無しさん
09/11/14 22:15:02
つうかチャネリングって昔流行語になったよなw
元ネタ覚えてないけど
若いヤツは知らないのか・・・
95:デフォルトの名無しさん
09/11/14 22:15:27
こういうネタについてこれるのか・・・・・(笑)スイーツ
96:デフォルトの名無しさん
09/11/14 22:22:44
しらんけど「僕の地球を守って」だっけ
97:デフォルトの名無しさん
09/11/14 22:27:18
チャタリングなら知ってる
98:デフォルトの名無しさん
09/11/14 23:09:52
正式Go
URLリンク(headlines.yahoo.co.jp)
99:デフォルトの名無しさん
09/11/14 23:13:50
いつの間にか2スレ目になってたのか
前スレで何か生産的な会話あったん?
100:デフォルトの名無しさん
09/11/14 23:13:56
ハードタブが気に入らないんだけど
101:デフォルトの名無しさん
09/11/14 23:22:04
>>99
生産性を求めるなら2chに来てはならない。
102:デフォルトの名無しさん
09/11/14 23:34:09
libgoがビルドでこける
103:デフォルトの名無しさん
09/11/14 23:54:37
>>99
非生産的な議論があった
104:デフォルトの名無しさん
09/11/14 23:58:39
生産性も止めるなら
要望が受け入れてもらえるかもしれない公式コミュに行けばいい
まぁ大差ないだろうけど
105:デフォルトの名無しさん
09/11/15 00:02:05
>>104
カスが公式コミュで暴れて生産性が止まるってかwww
106:デフォルトの名無しさん
09/11/15 00:05:29
暴れてるところを見てみたい
107:デフォルトの名無しさん
09/11/15 00:27:39
goroutineで0から99まで生成した(する)値を
チャンネル経由で一つずつ読んでは出力するコードを書いたんだけど
実行すると何も出力せず単に終了してしまう
どこが悪いか教えてちょ
package main
import fmt "fmt"
func genInt(dest chan int) {
for i := 0; i < 100; i++ { dest <- i; }
}
func foo(src chan int) {
for {
i := <- src;
fmt.Printf("%d\n", i);
}
}
func main() {
ch := make(chan int);
go genInt(ch);
go foo(ch);
}
108:デフォルトの名無しさん
09/11/15 00:37:56
>>107
何か出力するより先にmainの終わりに達してしまうからだろ
109:デフォルトの名無しさん
09/11/15 00:46:31
>func genInt(dest chan int) {
ファンキーなゲニントはデストちゃんとインドなんですか?
110:デフォルトの名無しさん
09/11/15 00:51:42
goのコードを一目見てとってもなつかしい感じがした。
C++やJavaにうんざりし、LispやHaskellのほうがすごいと
思っていた自分がはずかしい。これでいいのだ。
111:デフォルトの名無しさん
09/11/15 01:02:27
でも obj.foo() って書きたい...
112:デフォルトの名無しさん
09/11/15 01:05:13
誰かも言ってたけど REPL が欲しい
113:デフォルトの名無しさん
09/11/15 01:10:16
cygwinにインストールするには
どのようにすればよいですか?
114:デフォルトの名無しさん
09/11/15 01:19:47
cygwinは、まだpatch待ち
URLリンク(code.google.com)
FreeBSDは、パッチがあるようだ。
URLリンク(code.google.com)
115:107
09/11/15 01:29:52
>>108
サンクス。mainの最後にSleep置いたら99まで出力してくれた
116:デフォルトの名無しさん
09/11/15 01:32:42
fooのgo外すだけでいいんじゃない?
空のforは無限ループかな。fallthroughといいエッチな機能満載だな
117:デフォルトの名無しさん
09/11/15 01:47:16
>>113-114
javascriptとか
javaappletで
web上で試せる環境
誰か作らないかな
118:デフォルトの名無しさん
09/11/15 01:51:36
はやくHMDとかコンタクトレンズ型ディスプレイが普及して
ディバイスの小型化が進んでほしい
119:デフォルトの名無しさん
09/11/15 02:21:55
AndLinux って初めて聞いた。coLinux を使ってるのか。
こういう時に Windows しか無い人は色々と大変だな。
120:デフォルトの名無しさん
09/11/15 02:23:30
どんなOSでもVM上でさっと動かせる時代に何を言ってるんだ
121:デフォルトの名無しさん
09/11/15 02:30:48
>>120
イチイチ仮想環境を用意するのマンドクセって事じゃないの。
手順がどうとかじゃなくて、普通は余計な事はしたくないもんでしょ。
俺は Mac ユーザだから、こういうマイナー言語は何もしなくても
サポートリストに入ってる事が殆どだけどね。
122:デフォルトの名無しさん
09/11/15 02:37:37
>>116
go genInt(ch);
// go foo(ch);
foo(ch);
にしてコンパイルして実行したところ出力が
[...]
98
99
throw: all goroutines are asleep - deadlock!
panic PC=0xbfc01ebc
throw+0x46 /home/name/go/src/pkg/runtime/runtime.c:74
[...]
どうやってgoroutineの終了を待てばいいんだろ
うまいパターンがあるのかwaitやjoin相当の機能でもあるのか
123:デフォルトの名無しさん
09/11/15 02:55:25
>>122
コンパイルしてないけどたぶんこんな感じじゃね
func genInt() <-chan int {
ch := make(chan int);
go func {
for i := 0; i < 100; i++ { ch <- i; }
close(ch);
}();
return ch;
}
func foo(src <-chan int) {
for !closed(src) {
i := <-src;
fmt.Printf("%d\n", i);
}
}
func main() {
foo(genInt());
}
124:デフォルトの名無しさん
09/11/15 02:56:21
>>122
そりゃdeadlockするよ、fooのループで来ないメッセージを待ち続けてるんだから
チャネルの送信側は送信が終わったらclose(c)、受信側は<-の前にclosed(c)でチェックとかするんじゃないのかな
wait, join相当のものはそれこそチャネルで実現出来るよね
125:デフォルトの名無しさん
09/11/15 03:01:41
>>123
[main] ch <- 99;
[sub] closed(src);
[main] close(ch);
[sub] <-src;
こういう順番で実行されるとデッドロックするな。
goroutineがファイバーで実装されてるなら起こらないが、スレッドだとこうなる可能性がある。
ファイバーだとしてもチャネルの読み書き以外でコンテキストスイッチが起きると怖いが
126:デフォルトの名無しさん
09/11/15 03:15:18
手元に何もないから試せないけど
ch <- ... ってデフォでブロックするんじゃなかったっけ?
確かmakeの第二引数に1以上を指定すると非同期になるとか仕様書に書いてあったような
標準ライブラリではイテレータとしてチャネルを>>123っぽく使ってた気がするから多分大丈夫かと
127:デフォルトの名無しさん
09/11/15 03:29:37
そりゃ、closedをチェックしてからrecvするまでに割り込まれたり、
最後の要素をsendしてからcloseするまでに割り込まれたりすると
やっかいなことが起きるわな。
128:デフォルトの名無しさん
09/11/15 03:48:11
既にcloseされたチャネルを読むのは合法なの?
129:デフォルトの名無しさん
09/11/15 07:05:38
>>121
Windowsでも簡単に試せる環境用意しようか?
130:デフォルトの名無しさん
09/11/15 07:20:15
おながいしまつ
131:デフォルトの名無しさん
09/11/15 07:32:06
返り値を複数返せない言語は糞だ
132:デフォルトの名無しさん
09/11/15 08:30:57
プログラミング言語 Go ドキュメント
URLリンク(go.shibu.jp)
133:デフォルトの名無しさん
09/11/15 08:46:50
deadlock検出すると例外出すのか
かっけーな
134:デフォルトの名無しさん
09/11/15 10:22:32
言語の歴史
------------------------
Fortran
Lisp
C
C++
Perl
Prolog
COBOL
Java
Python
Ruby
JavaScript
C#
PHP
Scheme
Haskel
Erlang
Ocaml
F#
Clojure
Scala
Noop
Go
最近は関数型言語が注目されて、
いままであった関数型言語と
新しい言語をつくってしまえっていう流れがあるな
135:デフォルトの名無しさん
09/11/15 10:32:49
関数型言語の機能、概念を
手続き型、オブジェクト指向に取り入れだしている。
純粋な関数型言語は人間の思考にあわない。
人間の思考は手続き的。
136:デフォルトの名無しさん
09/11/15 10:56:34
プログラマーが新しい言語・技術を待ちわびてる
古い言語で業界や職場をしきっているやつらをだしぬいて、体制や地位をひっくりかえせるからな
プログラマーの世界は技術次第だから、いつまでも古い技術にしがみついている上司を見限って
一旗あげようという気心がうずまいてる
逆に一定に地位についているやつらはその言語を使い続けるしかない。そこは強みであるが、逆に弱みでもある
137:デフォルトの名無しさん
09/11/15 11:07:19
99%のレスがマ板かN速で事足りるな
無内容なのになぜか上から目線w
138:デフォルトの名無しさん
09/11/15 11:10:20
VIPで流行の兆しがあるな
139:デフォルトの名無しさん
09/11/15 11:18:24
>>137
ありえないくらい読解力がないなw
140:デフォルトの名無しさん
09/11/15 11:28:21
なるほどclose, closed あたりを使うのか
チュートリアル以外のコードも読も
あと>>123を試してみた。コンパイルは
// go func {
go func() {
にするだけで通った。実行結果は
$ ./8.out
0
1
[...]
98
99
0 # ママ
$
0 ってなんだろ
genint の closed0 の返り値が 0 で、それを foo が受信して出力してるとしても
>>123からはそうなるようには読めない・・・
141:デフォルトの名無しさん
09/11/15 11:28:54
並列処理が遅いのですが
142:デフォルトの名無しさん
09/11/15 11:34:58
並列処理指向で作られた言語って遅いのばっかだよな
Erlangも遅いんじゃなかったか。Scalaくらいだな。
143:デフォルトの名無しさん
09/11/15 11:37:42
Scalaはめっちゃ速い
Goは糞すぎるScalaの半分も出ない
フィボナッチ数列計算するのにErlangよりやや速いぐらいだぞw
144:デフォルトの名無しさん
09/11/15 11:40:23
フィボナッチ数列を生成するgeneratorをgoで書いてみてください
145:デフォルトの名無しさん
09/11/15 11:51:58
>>143
Cの10%~20%遅いくらいなら
流石にそれはないんじゃね?
146:デフォルトの名無しさん
09/11/15 12:40:16
>>145
遅いからやってみてよw
147:デフォルトの名無しさん
09/11/15 12:42:36
比較に使ったコード貼って
148:123
09/11/15 13:15:29
>>140
サンクス。
たぶん>125の問題かもしれん。
close済みのchan intを読んだら0が帰ってくるんだろう
149:デフォルトの名無しさん
09/11/15 13:35:33
URLリンク(golang.org)
URLリンク(golang.org)
URLリンク(golang.org)
読んだ?
150:デフォルトの名無しさん
09/11/15 13:46:41
C (4) の置き換えを狙ったから、go (5) って、つけたの?
151:デフォルトの名無しさん
09/11/15 13:56:06
>>149
ありがとう。いま読んだ。
でも、chanから帰ってくる最後の0がsendされた値なのかそうでないかを判別する方法がわからない
152:デフォルトの名無しさん
09/11/15 14:04:29
そのためのclosed
153:デフォルトの名無しさん
09/11/15 14:26:33
>>152
closedを見たときにはまだ閉じられてないけど、
その直後にreceiveしたときには既に閉じられているということが起こりうるんだよ。
154:デフォルトの名無しさん
09/11/15 14:30:22
>>150
前スレで外出
155:デフォルトの名無しさん
09/11/15 14:34:34
受信した後にさらにclosedを見ればいいんじゃね
156:デフォルトの名無しさん
09/11/15 15:00:16
>>153
というよりreceiveしないとclosedかどうかわからんということだろう。
feof()と同じ感じじゃないかな。
Close and closed
For a channel c, the predefined function close(c) marks the channel as
unable to accept more values through a send operation. After any
previously sent values have been received, receive operations will
return the zero value for the channel's type. After at least one such
zero value has been received, closed(c) returns true.
157:デフォルトの名無しさん
09/11/15 15:09:16
>>156
ああ、それそういう意味なのか。ちょっと誤読してた
x, ok := <-ch;
とすれば読めたかどうかがブーリアンでとれるみたいだが、
non-blockingになってしまってなんの意味もない
158:デフォルトの名無しさん
09/11/15 19:27:50
Windows用コンパイラのバイナリ提供は明日ですか?
159:デフォルトの名無しさん
09/11/15 20:29:23
コンパイラを移植するのは楽だろうな。
ライブラリの対応がめんどうなだけで
160:デフォルトの名無しさん
09/11/15 21:20:58
他パッケージのクラスにかってにメソッド追加とかはできないのか
161:デフォルトの名無しさん
09/11/15 21:44:10
>>160
出来ない
そもそもクラスはない
162:デフォルトの名無しさん
09/11/15 21:46:22
とするとOOPはどうやるつもりなんだろう…
163:デフォルトの名無しさん
09/11/15 21:51:36
こんなのどうだろ
import "fmt"
type R struct {
value int ;
eos bool;
}
func genInt(start int, stop int, dest chan R) {
for i := start; i < stop; i++ {
dest <- R{i, false};
}
dest <- R{0, true};
}
func main() {
ch := make(chan R);
go genInt(1, 20, ch);
for r := <- ch; !r.eos; r = <- ch {
fmt.Printf("%d\n", r.value);
}
}
164:デフォルトの名無しさん
09/11/15 21:55:52
字面に慣れたら生産性上がりそう?
165:デフォルトの名無しさん
09/11/15 22:02:49
OOP的な仕組みはあるけど用語がわからん
166:デフォルトの名無しさん
09/11/15 22:04:23
ファイル分割するときはどうするの?
package hoge
とかして、使いたいところで
import "hoge"
ってやればいいだけ?
167:デフォルトの名無しさん
09/11/15 22:06:38
>>163
そのコード、OOP関係ない。
従来からあるただのCの手続きコードと同じ。
168:デフォルトの名無しさん
09/11/15 22:10:18
>>162
実装を継承することは出来ない
インターフェイスは共有できる
169:デフォルトの名無しさん
09/11/15 22:15:21
>>167
ごめん端折りすぎた
>>163は上でやってたGoroutineの終了を
チャンネルの向こうにいる受信側にどう通知するかって話
170:デフォルトの名無しさん
09/11/15 22:20:17
>>168
実装の継承、出来ますよ
kwskは仕様書のSelectorの項目に書いてあったはず
型情報の継承は出来ませんが、
かわりにinterfaceを使えばいいことなので、OOPに求められる要素は全て揃っていると思われます
171:デフォルトの名無しさん
09/11/15 22:24:30
昨日うpしたOOPの機能を使った例:
URLリンク(seiga.nicovideo.jp)
もしよかったらみんなのデスクトップも見せてね!
172:デフォルトの名無しさん
09/11/15 22:27:11
>>169
OOPなのができるとは、計算終了の通知をどうするかじゃなくて、その場合は相互のmessagingを言語としてはどう表現するかですよ。
計算終了ならなにも並列じゃなくwaitでいいわけでして。
OOPは並列計算とかlisp的な考え方とはまったく関係ないんでこの際OOP概念を勉強してみてはどうですか。
173:デフォルトの名無しさん
09/11/15 22:28:17
Kenがついにスペルミス直したぞ
hg log -r3956 -p
174:デフォルトの名無しさん
09/11/15 22:39:46
>>163
closed()かrangeを使えばいいんでわ
import "fmt"
func genInt(start int, stop int) chan int {
c := make(chan int);
go func() {
for i := start; i < stop; i++ {
c <- i;
}
close(c);
}();
return c;
}
func main() {
c := genInt(1, 20);
for {
i := <-c;
if closed(c) {
break;
}
fmt.Printf("%d\n", i);
}
// もしくわ
for i := range genInt(1, 20) {
fmt.Printf("%d\n", i);
}
}
175:デフォルトの名無しさん
09/11/15 22:51:11
>>170
これ?
URLリンク(golang.org)
176:デフォルトの名無しさん
09/11/15 22:56:45
>>174
ああそうか、>>123のように
1. closedか確認する
2. 1でclosedでなければチャンネルから読む
だと、1と2の間にclosedされた場合に問題が起きるけど、
1. ひとつ読む
2. closedか確認して閉じてたらもうrecvせずに抜ける
ならclosedされたチャンネルから0を読み込むようなことが起こらないわけだ
>>124,125他で指摘されてたことがようやく飲み込めた。どうもありがとう
177:デフォルトの名無しさん
09/11/15 23:04:39
OOPすら関係ねーじゃん。
おまえが構造化プログラムを一度も書いたことも無いってのが露見しただけw
178:デフォルトの名無しさん
09/11/15 23:15:50
>>177
>>163が>>162氏へのレスになっていると勘違いされているのでは?
>>176氏の文脈は>>107から続いているもので、OOPの話題とは関係ないように見えますが(参照:>>169)
179:デフォルトの名無しさん
09/11/15 23:16:06
OO=クラスだと思ってるアホが暴れてますね
180:デフォルトの名無しさん
09/11/15 23:18:28
>>176
goを使うには修行が足らん
まずはCからやれ
181:デフォルトの名無しさん
09/11/15 23:40:27
ニコ動久しぶりに見たけど見るまでの手続き色々面倒なのに変わってるね
182:デフォルトの名無しさん
09/11/15 23:51:10
ごめん。>>111 は普通に出来た。
183:デフォルトの名無しさん
09/11/15 23:59:19
GC とクロージャがあって、 OOP が出来て、ネイティブコンパイルできて
コンパイル速度が暴速の C だと思えば割と良いもんじゃん。
184:デフォルトの名無しさん
09/11/16 00:05:00
並列処理が遅くて看板に偽り大有りです
食品なら食品偽装レベル
電化製品なら製造物責任法で書類送検レベルの大問題です
185:デフォルトの名無しさん
09/11/16 00:08:49
なんで for each にしなかったんだろう
186:デフォルトの名無しさん
09/11/16 00:09:06
cythonよりpsycoの方が速いんか
187:デフォルトの名無しさん
09/11/16 00:57:50
クラスが無いからC++系ライブラリをそのまま流用出来ないんですけど
188:デフォルトの名無しさん
09/11/16 01:15:23
逆に考えるんだ。クラスが無いから恥ずかしくない。
クラスがあるのに流用出来なかったら最悪だろ。
189:デフォルトの名無しさん
09/11/16 01:19:25
斬新な発想の転換だな。
190:デフォルトの名無しさん
09/11/16 04:09:22
やっぱ派生クラス100個あったらswitch文とかで100個 new class CXXX(); とかしないとダメなのかな。
簡単に言うとコンストラクタをオーバーライドしたい。
191:デフォルトの名無しさん
09/11/16 06:42:02
MacOSX で試してるんだが、UniversalBinaryは吐けないのかな?
192:デフォルトの名無しさん
09/11/16 07:48:37
「Emacsは馬鹿避けのためにある」ってホント名言だったなw
193:デフォルトの名無しさん
09/11/16 07:54:49
隔離ソフトwww
194:デフォルトの名無しさん
09/11/16 10:26:52
visualstudio系はともかくなぜかeclipseと自己同一化してるヤツはなんかひどいの多いな
「車に乗ると性格が変わるヤツ」というか、IDEのパワーと自分のパワーをごっちゃにして威張るw
「新言語を評価する」の類のイレギュラーな事象に対応可能にしておくためにIDE依存度をあまり上げすぎないようにするくらいの知見もなく、
IDEのオペレーション自体は「技術」の範疇じゃなくて、入れれば誰でも使えるアプリの一つでしかないのに
195:デフォルトの名無しさん
09/11/16 11:14:09
>>191
たぶんGoogle内部的にPPC(笑)だと思われ
10.6的な意味で
でもそれとは別にGoがPPC環境でどれくらいの早さで動くかは興味ある
バックエンドgccのgccgoならその筋の人がいろいろいじればなんとかなりそうだったり?
196:デフォルトの名無しさん
09/11/16 13:19:00
週末暴れてた人はアク禁喰らったのか?
197:デフォルトの名無しさん
09/11/16 13:25:29
visualstudioとeclipseを区別す理由がいまいち不明だな
198:デフォルトの名無しさん
09/11/16 14:52:17
>>194
セルシオとかポルシェとか運転したことあってそういうこといってるの?
おれは幾人かの友達が持ってるから運転させてもらったことあるけど。
それと同じで、君は偉そうなことをいっちょまえにいうけどそれぞれのIDEを使いこなせるようになってるわけでもないでしょ。
199:デフォルトの名無しさん
09/11/16 15:08:38
自分のクルマじゃないトコがかわいくてワロタw
200:デフォルトの名無しさん
09/11/16 15:17:39
いいね
package main
import "fmt"
func main() {
a := 1;
f := func() int { return a };
fmt.Println( f() );
a = 2;
fmt.Println( f() );
}
201:デフォルトの名無しさん
09/11/16 15:50:44
>>200
最近の言語なら普通じゃない?
202:デフォルトの名無しさん
09/11/16 15:51:24
>>173
あれはジョークだと思ってたから(間違えるはずがない)
直したことに違和感がw
203:デフォルトの名無しさん
09/11/16 15:56:58
>>202
さらなるジョーク
204:デフォルトの名無しさん
09/11/16 20:29:36
まるで静的型付けの JavaScript みたいだな
これが普及すると嬉しいな
2,000 行未満の小さなプログラムを書くには
もってこいの言語だと思う
205:デフォルトの名無しさん
09/11/16 20:38:18
ネイティブ言語だから実際はあまり普及しないよ。
それにどちらかといえばCと同じく関数型言語の延長で、lispに制御構造をくっつけたような設計だし、並列用途でこの言語をベースとし亜種の言語は出てくるんじゃないか?
組み込み用の小型プログラムやIOのところとかバリバリネイティブなら必要なんだろうな。
x86(x64)は既に大規模だしide(gui)あるし、java,dotnetのvmで会話するって感じなんだろう。
つまりこれからはx86じゃなくてARMなのかなって思う。googleがwebのプラットフォームをどこまで考えてるかによる。
206:デフォルトの名無しさん
09/11/16 20:40:52
どこから突っ込んでいいか分からんなw
207:デフォルトの名無しさん
09/11/16 20:43:41
>>206
>>205に対して?
208:デフォルトの名無しさん
09/11/16 20:47:57
うん
209:デフォルトの名無しさん
09/11/16 20:50:01
>>195
x86 x64 のユニバーサルは吐きたいと思うのよ
GUIをどうするか悩むよりは、Javaから呼び出して使いたいなぁ・・・
210:デフォルトの名無しさん
09/11/16 20:59:04
Javaみたいに活躍の場を見つけるまでが大変かもな
Javaも最初の発表とは全然違うエンタープライズ分野に居場所を見つけて定着したし
211:デフォルトの名無しさん
09/11/16 21:03:52
ほんとにそうだね
Cの置き換えとか狙ってたら
中の人が中の人だし面白いんだけどなー
212:デフォルトの名無しさん
09/11/16 21:04:30
このスレを見ている少年少女の為に一応正しておくけど、
Lisp には制御構造は沢山あるからね。もし興味があったら
ここら辺を読んでみてください。
URLリンク(www.lispworks.com)
URLリンク(www.lispworks.com)
URLリンク(www.cs.cmu.edu)
URLリンク(www.cs.cmu.edu)
Lisp は Go とは傾向の全然違う言語なのであしからず。
213:デフォルトの名無しさん
09/11/16 21:07:37
evalがあるのがふしぎ
214:デフォルトの名無しさん
09/11/16 21:08:20
>>212
そりゃマクロでいくらでも作れる<lisp
215:デフォルトの名無しさん
09/11/16 21:15:39
マクロでどうとかじゃなく、規格上の話だよ
216:デフォルトの名無しさん
09/11/16 21:21:57
Common LispとりあげてLispには制御構文がたくさんあるとか言われても
217:デフォルトの名無しさん
09/11/16 21:23:15
>>210
Java は最初から仕事で使える事を強く意識して作られていたから
途中色々あったけど、自ずと道が開けてきた感がある
218:デフォルトの名無しさん
09/11/16 21:27:25
>>216
ちゃんと理由を言わないと誰も賛同しないよ?
219:デフォルトの名無しさん
09/11/16 21:29:37
それと、C は関数型言語じゃないから気をつけて
220:デフォルトの名無しさん
09/11/16 21:30:18
やっぱ、google凄いなぁ。反応が沢山ある。
221:214
09/11/16 21:35:17
>>216
common lisp の制御構造って、実際的にはマクロで記述されているんじゃないのかな。lisp のマクロって強力だからね。
common lisp を取り上げてlispには制御構文がたくさんあるといわれてもねえ。
222:デフォルトの名無しさん
09/11/16 21:36:03
無理するなよw
223:デフォルトの名無しさん
09/11/16 21:43:56
>>214=>>205か?
正直
>それにどちらかといえばCと同じく関数型言語の延長で
が面白すぎて後は目が滑ってしまったw
224:デフォルトの名無しさん
09/11/16 21:44:00
ここで見栄はっても仕方ないのに
225:デフォルトの名無しさん
09/11/16 21:44:51
>>221
Lispは史上最強の言語だ。知らないなら勉強する価値はあるよ
ただ、一生仕事で使う事はないだろうからどうでもいいが
そんなことより、Goは規格化しないのかなISO標準とかに
PythonやRubyと違って明らかにGoogle社の所有物な言語って怖くもある
226:デフォルトの名無しさん
09/11/16 21:53:03
>>225
オープンソースだから所有に関してはRubyとかと大差ないんじゃないか
227:デフォルトの名無しさん
09/11/16 22:00:02
>>223
ちゃいます。ちっぽけなlispインタープリタなら読んだことあります。
228:デフォルトの名無しさん
09/11/16 22:04:20
>>227
>>212 にはマクロで実装される物とそうでない物がきちんと分類されてるよ
229:214, 227
09/11/16 22:23:41
>>228
んー、cond もマクロかいな。前に読んだのは c で書いてあったなあ。
いやね、lisp のプリミティブな制御構造って少ないと思ってるんですよ。ただそれだけ。
230:デフォルトの名無しさん
09/11/16 22:25:27
Ubuntuのリポジトリに入ったら本気出す
231:デフォルトの名無しさん
09/11/16 22:29:32
>>229
実際は色々ある事が分かったでしょ。
そもそもマクロで実装されていたところで何の問題も無い訳だし、
おかしな事は何も無い。
232:229
09/11/16 22:44:33
>>231
まあ、そうですね。
233:デフォルトの名無しさん
09/11/16 22:45:01
NTRも悪くないと思う
234:デフォルトの名無しさん
09/11/16 22:48:00
ライブラリをがんばって欲しいなぁ
リッチな標準ライブラリがあるならCでも構わない
235:デフォルトの名無しさん
09/11/16 22:52:51
そういう意味ではやっぱり GUI かな
C でオブジェクト指向するのが嫌で VALA とか作っちゃう様な事が必要なくなれば
嬉しい人はそれなりに多そうだ
236:デフォルトの名無しさん
09/11/16 23:47:36
>>220
Googleの名前とあの製作陣を見たら、やはり心ときめく
237:デフォルトの名無しさん
09/11/16 23:52:44
ちょっと親しみ易くした Limbo なんだよな
238:デフォルトの名無しさん
09/11/17 00:00:27
こんな仕様じゃ大規模なものが作れないという苦情に対して
「設計が悪いから、バベルの塔を作る羽目になってるだけじゃないの?」と
ロブ・パイクは答えるんだろうな。
結局、BSDソケット や X をいつまで前提してるんですかという話になる。
Goは Plan9 の入口にすぎんのであって、後者が布教されれば本懐。
Go自体が多機能のてんこ盛りになる「進化」は望んでいないだろう。
239:デフォルトの名無しさん
09/11/17 00:01:02
>>237
URLリンク(ja.wikipedia.org)
名前だけは知ってたけど
特徴を見るとGoといっしょだね
中の人もかぶってるし
240:デフォルトの名無しさん
09/11/17 00:10:37
Limboオセェし糞言語だったろw
241:デフォルトの名無しさん
09/11/17 00:25:42
なにかが足りないと思ったらacmeだったか
242:デフォルトの名無しさん
09/11/17 01:08:00
>>240
Limboっての自体知らなかったけど遅いの?
知ってるだけ偉いと思った。
243:デフォルトの名無しさん
09/11/17 01:18:17
LimboはInferno上で使うのね。調べたら比較があった。
URLリンク(redgenes.com)
単純なコードは(JITありでも)倍ぐらい遅いけど、ネット系はやや速いとなってる。
まあでもJIT系はオーバーヘッドあるから、ベンチ以上に遅く感じることはあるかもね。
244:デフォルトの名無しさん
09/11/17 01:42:34
Microsoft Visual StudioがVisual Goを開発しないと初心者は使わないよ^^;
文系の授業でもあるようなC言語のプログラミングに置き換わるなんてまず無理
245:デフォルトの名無しさん
09/11/17 01:45:23
>>244
んなことない
そこまでMS系統でもないだろ今の時代
GoでAndroidアプリを作れるようにするという最終兵器がGoogleにはあるからな....
Objective-C市場がiPhoneがどれだけのびたかを考えるとあり得るシナリオだと思う
246:デフォルトの名無しさん
09/11/17 02:06:35
自演にしか見えない
247:デフォルトの名無しさん
09/11/17 02:07:28
見る目ないな
248:デフォルトの名無しさん
09/11/17 02:21:30
今のGoの日本語のまともな解説サイトを作ったら結構広告料貰えるんじゃね
関連書籍とかまだまだでしょ
249:デフォルトの名無しさん
09/11/17 02:52:02
golang.jpがうさんくさい件
翻訳はもうやってる人がいる
-users.jpはまだだな
250:デフォルトの名無しさん
09/11/17 03:56:14
クラスじゃなくてもいいけど、
プロパティに当たる物が無いのはちょっと・・・
251:デフォルトの名無しさん
09/11/17 04:21:22
いちお貼っとくか
winでmakeしてみたい人はここ
URLリンク(code.google.com)
GOOS は mingw
ただ thread まわりとかまだ移植されてなさそう
252:デフォルトの名無しさん
09/11/17 04:52:16
∧∧
( ・ω・) 完全になったら起こしてくれ
_| ⊃/(___
/ └-(____/
 ̄ ̄ ̄ ̄ ̄ ̄ ̄
<⌒/ヽ-、___
/<_/____/
253:デフォルトの名無しさん
09/11/17 06:01:42
永眠することになりそうだな
254:デフォルトの名無しさん
09/11/17 08:20:59
ちょこっと見てみたけど、キモい言語だな。
だめだわこりゃ。
てか、Pikeは自分の名前付けたPike言語の失敗反省してないなwww
センス無さ過ぎわろすwww
255:デフォルトの名無しさん
09/11/17 08:44:35
戦う君の歌を戦わない者たちが笑うだろう
256:デフォルトの名無しさん
09/11/17 08:49:30
ふつう、何か頂けそうでも辞退する(考える)ところだが、褒章はふつうではないため、すぐに返事をした
257:デフォルトの名無しさん
09/11/17 09:42:16
>>254
Pikeは北欧系のマルチパラダイム言語。Robともベル研とも関係ない。
もっとも、Robはアレフというもっとキモい名前の言語を作ってるが。
258:デフォルトの名無しさん
09/11/17 10:50:06
aleph自体は何もキモくねーよ
259:デフォルトの名無しさん
09/11/17 12:35:07
アレフ?毒ガスをまきそうな名前だな
260:デフォルトの名無しさん
09/11/17 12:53:09
どうもlisp信者がいるようだけど、マクロがあれば何でもアリって言うのは時代遅れ。
261:デフォルトの名無しさん
09/11/17 12:59:31
>>258
Alefだよ
URLリンク(en.wikipedia.org)
262:デフォルトの名無しさん
09/11/17 13:00:15
いまlispが再評価されてるのは、30年前のハードが対象だったのに強引にgcを搭載し、クロージャを実現してる(scheme)ってことだけ。
lispで10万行のプログラミングなんか絶対無理だから。
263:デフォルトの名無しさん
09/11/17 13:27:38
Lispの思想は、VMの上に好きな言語を乗せられると考える.NETに似てる。
仕様変更は上の層だけで発生するからVMは歪みねぇと思い込んでる。
現実は、VMの更に下にあるCが歪みない地位を確立してるんだが。
264:デフォルトの名無しさん
09/11/17 13:32:41
>>260
無内容な長文書くおっさんを召喚するのはやめてくれ
265:デフォルトの名無しさん
09/11/17 14:04:13
lispはfortrunと同じで原始人が使うツールだからな。
2009年現在で通用している概念や言葉が通じるわけがない。
そういうおっさんは脳みそとか汗臭そうだし。
266:デフォルトの名無しさん
09/11/17 15:03:56
>>262
関数型言語に行数なんて無意味だと何度言ったら・・・
267:デフォルトの名無しさん
09/11/17 16:24:15
LISPとFORTRAN?
時には昔から存在する言語も思い出してあげてください
268:デフォルトの名無しさん
09/11/17 16:38:33
LISPちゃんと勉強したら原始人がつかうツールなんて批判がでるわけないと思うんだが
269:デフォルトの名無しさん
09/11/17 16:46:04
Goの話しようぜ
270:デフォルトの名無しさん
09/11/17 17:38:07
Cに勝つには並列化しかないよな
271:デフォルトの名無しさん
09/11/17 17:42:24
速度が要求されるロジック部分をサクッとマルチコア対応しつつ記述して
スクリプトからコール出来ればいいのかもしれないな。
so, dll化をアホみたいに簡単にしてくれよ。
272:デフォルトの名無しさん
09/11/17 19:34:26
また10万行かw
10万行はjavaとideにまかせるわw
273:デフォルトの名無しさん
09/11/17 19:50:29
10万アクセスならgoの勝ち
274:デフォルトの名無しさん
09/11/17 20:12:59
>>271
彼らはsoとかdll化はしないと思うけど
275:デフォルトの名無しさん
09/11/17 20:19:43
依存な
いっそ常に全コンとかでもいいんじゃねえかとも思う
結局サードのライブラリのソースツリーも手元にあるし
常に実行ファイルが一個できるだけ、みたいな
276:デフォルトの名無しさん
09/11/17 20:30:12
そもそもコンピュータに要求される仕事の種類ってそんなに多いか?って話。
ツール類が直交的に提供されてれば、/usr/lib にディレクトリが何十個もあったり
その1つ1つのバージョンの相違が云々って話にはそもそもならんだろ
と古いUNIX屋は考える
277:デフォルトの名無しさん
09/11/17 21:13:00
>>276
> ツール類が直交的に
現代の悲劇はフレームワークが並行的に乱立。
278:デフォルトの名無しさん
09/11/17 21:27:07
>>276
それを理解できるようになるには、mac,windowsなどのGUI環境で開発してないとリソースの概念とかも含めて理解できないだろうね。
少なくともjavaを使いこなしIDEをバリバリ使いこなせるなら、そういう「同じものはいくつも必要ないだろう』みたいな不信感は生じないとおもうよ。
279:デフォルトの名無しさん
09/11/17 21:30:17
>>276はよく出来たちっさなツールを組み合わせて梃子の原理で云々て話かとおもた
280:デフォルトの名無しさん
09/11/17 21:32:24
UNIXの場合はパイプという馬鹿でも理解しやすい
かつ設計に異論も出にくい単純なものがフレームワークとして存在したからな
新しい時代のそういう糊のようなものがまだ確立できてないんだろう
281:デフォルトの名無しさん
09/11/17 21:36:50
話はずれるけどGoのチャンネルってほとんどパイプだよ
UNIX使ってる人は触ってみれば気に入りそうな気がする
282:デフォルトの名無しさん
09/11/17 21:36:56
>>278
だから何でもGUI、何でもオブジェクト指向は不生産的だというのが第1。
第2に、Javaも含めて、GUIはAPIがやたら多すぎだから幾何級数的に複雑さが増している。
もし標準入出力だけでGUIを作れたら、驚くほどスッキリするんじゃないか。
もしかして、それは実在するかもしれない・・・
283:デフォルトの名無しさん
09/11/17 21:40:45
psしたらすごいことになりそう
284:デフォルトの名無しさん
09/11/17 21:43:58
>>279-280
どうもGUIとかイベントとかOOPの開発とそこで要求されている概念を理解できてないようだね。
すくなくともemacsとlispとか原始時代の開発環境がデフォならIDEで開発とか現代的な開発手法を速攻で身につけた方がいいよ。
今の時代、ゆとり世代のバカ専門学校卒業ですらcuiっぽいパイプの有用性を説明できないとしてもOOPとかなら普通に理解してることだから。
285:デフォルトの名無しさん
09/11/17 21:45:27
またお前か
286:デフォルトの名無しさん
09/11/17 21:48:24
>>282
何を言いたいかいまいち意味不明だけど、それって君が頭弱いってだけじゃないのか?w
287:デフォルトの名無しさん
09/11/17 21:51:25
Goの話しようぜ
288:デフォルトの名無しさん
09/11/17 22:00:47
で、結局名称はどうなったの
289:デフォルトの名無しさん
09/11/17 22:06:10
LuLuから本が出たぐらいのマイナー言語にいちいちつきあってられませんで終了だろ
ネタだよ
290:デフォルトの名無しさん
09/11/17 22:18:36
>>288
一時ずつずらして
hp
になりました。
291:デフォルトの名無しさん
09/11/17 22:20:11
ありそうでなかった画期的な名称だな
292:デフォルトの名無しさん
09/11/17 22:33:09
10万行w
293:デフォルトの名無しさん
09/11/17 23:08:37
emacs+lispな古くさい汗オヤジは速く死ねってことだな
294:デフォルトの名無しさん
09/11/17 23:10:58
OOPと唱えるだけで遠くにいける。
そう考えていた時代がありました。
295:デフォルトの名無しさん
09/11/17 23:11:39
クロージャのメリットって何?
なくても問題ないと思うんだけど。
296:デフォルトの名無しさん
09/11/17 23:19:56
変数をバインド
297:デフォルトの名無しさん
09/11/17 23:19:59
>>295
マシン語で書いとけ
298:デフォルトの名無しさん
09/11/17 23:22:41
>>295
クロージャのおかげで高階関数を実現できる
299:デフォルトの名無しさん
09/11/17 23:24:28
goにgoto文はちゃんとあるんだね。
300:デフォルトの名無しさん
09/11/17 23:26:52
高階関数は関数型にはあったじゃん。
でもみんなC/C++/Java使ってたよ?
301:デフォルトの名無しさん
09/11/17 23:29:36
新しいものが良いものとも限らんわな
302:デフォルトの名無しさん
09/11/17 23:30:58
歴史的な経緯じゃね?
高階関数っぽいことも出来無いわけじゃないしな
変なだけで
303:デフォルトの名無しさん
09/11/17 23:31:59
高階関数のメリットはなんですか?
304:デフォルトの名無しさん
09/11/17 23:37:20
C/C++の置き換えとか言われてるだけにクロージャすら知らないやつもやってくるんだな
LLか関数型言語を一個やるといいよ
305:デフォルトの名無しさん
09/11/17 23:39:50
オブジェクト指向と同じ道を辿りそうだな、ちょっと不安になったわ
306:デフォルトの名無しさん
09/11/17 23:42:54
そろそろ、ひろみGOの話にもどらないの?
307:デフォルトの名無しさん
09/11/17 23:49:30
アップルが並列化の道具としてクロージャーを持ちだしたが
Goも同じ選択をしたというのが興味深いね。
308:デフォルトの名無しさん
09/11/17 23:52:53
いや、だから違うんだって。
来年になると明かになるけど、そもそもターゲットはアームなんだよ。
309:デフォルトの名無しさん
09/11/17 23:54:51
>>304
とはいうけど、OOPとは何か人に説明できるようにしといたほうがいいよ。
どうせ君、クロージャすら説明できないんでしょw
310:デフォルトの名無しさん
09/11/18 00:01:48
>>304
C++の関数オブジェクトみたいなのでしょ or 十分
って言うよね
クロージャの無い言語しかやったこと無い人は
でもlisp経験者に言われた事もあるな
311:デフォルトの名無しさん
09/11/18 00:02:43
クロージャはオマケ。Goのキモはチャンネルだ。
簡明なインターフェイスによる 入 出 力 が基本だ。
なぜなら実用のための言語だから。
312:デフォルトの名無しさん
09/11/18 00:03:56
でクロージャのメリットはなんですか?
313:デフォルトの名無しさん
09/11/18 00:05:37
チャンネルといえば
URLリンク(golang.org)
ちと難しいけどこれ分からないとだめぽ
314:デフォルトの名無しさん
09/11/18 00:05:58
英語的にはチャネルだと思うけど、チャンネルでもいいのかな。
どっちにしてもJavaと同じで英語の情報しか提供されないんだろうからどうでもいいけど。
315:デフォルトの名無しさん
09/11/18 00:06:35
興味深いって理解してないのかお前w
316:デフォルトの名無しさん
09/11/18 00:08:26
>>312
ローカル変数を、インスタンス変数みたいな感覚で使える
317:デフォルトの名無しさん
09/11/18 00:08:48
2チャネルって馬鹿ばっかだね
318:デフォルトの名無しさん
09/11/18 00:09:20
>>316
それのメリットって何?
319:デフォルトの名無しさん
09/11/18 00:10:14
>>317
2ちゃねる乙
320:デフォルトの名無しさん
09/11/18 00:11:23
前スレ逃したorz
せっかくのCSPベースの並列記述書ける言語のスレなのに
Occamが廃れてからずっと待ってた(limboも普及しなかった)これでようやっとmany coreマシンの時代?
321:デフォルトの名無しさん
09/11/18 00:14:10
>>282
displaypostscript
322:デフォルトの名無しさん
09/11/18 00:14:17
>>320
>これでようやっとmany coreマシンの時代?
VSのマルチコアサポートの方が40倍くらい現実的だろ
323:デフォルトの名無しさん
09/11/18 00:15:41
お前がわかる=現実的
324:デフォルトの名無しさん
09/11/18 00:16:31
>>318
ネストが少なくなるかな
classで囲まなくていいし、obj.fooと書かずにfooと書ける
325:デフォルトの名無しさん
09/11/18 00:16:40
VSの全部入りすげえ高そうじゃんw
326:デフォルトの名無しさん
09/11/18 00:21:36
並列化は興味あるんだけどこれGCなしもあり?
ゲームだとGCは扱いにくくて
327:デフォルトの名無しさん
09/11/18 00:26:23
GCは外せない。いついかなる時もチャネルが使えるから。
ミドル寄りのシステムプログラミング言語だね
328:デフォルトの名無しさん
09/11/18 00:27:11
いまどきのゲーム作成は、GCと仲良く付き合っていきながら作るものだと思うよ。
ファミコンのスーパーマリオレベルなら、マップとか全リソース込みで3-10MB程度newしてプールしてれば済む話だし。
ましてGCの起動がゲームに影響があるようなら、設計から見直し他方がいいだろうけどスレ違い。
329:デフォルトの名無しさん
09/11/18 00:27:49
GCあるお
>>320
公式の文書でちょくちょくCSPって出てくる
そういうのから触ってきた人はGoも楽しいだろうなー
330:デフォルトの名無しさん
09/11/18 00:31:27
unreal scriptとかもGCありでしょ
つうかあっちも試しておきたいんだけど
今月はすげえな
若かったら鼻血出てたよ
331:デフォルトの名無しさん
09/11/18 00:34:13
郷のCSPって全然速くないじゃん
眉唾もいいところじゃん
老害爺共が集まって懐古技術で
遊んでるだけだろ
332:デフォルトの名無しさん
09/11/18 00:34:22
>>328
GCのタイミングの制御はともかく有限メモリのシステムでGC使うほうが面倒。
333:デフォルトの名無しさん
09/11/18 00:37:22
Streamsも遅かったしな。
でも今回はベル研じゃなくてグーグルだ。
V8エンジンを書いたスピードマニアも参加してるから期待しよう
334:デフォルトの名無しさん
09/11/18 00:41:56
v8とかchromeとか市場シェアどのくらいか知ってるの?w
335:デフォルトの名無しさん
09/11/18 00:42:37
その頑張り方がちょっと良くわからない
336:デフォルトの名無しさん
09/11/18 00:43:47
10万行w
337:デフォルトの名無しさん
09/11/18 00:45:27
いまどき、OOPだのGCだの関数型だの、とりあえず全部扱えて当然だろう。
状況に応じて最適な言語を使えばいいだけの話で、
一つの言語に執着して他の選択肢を排撃する姿勢ほどばかばかしいものはないと、
最近特に思うようになった。
というわけで、まともに関数型で組んだ経験もない拙者は切腹してくるでござる。
338:デフォルトの名無しさん
09/11/18 00:46:40
使いやすくて市場シェアを占めてくれるなら使いたい
339:デフォルトの名無しさん
09/11/18 00:46:53
青春のすべてをjava&eclipseに賭けたんだ
自発的にFUDもするさ
まだまだ大丈夫だと思うけどなあ
本人にとっては違うんだろうな
340:デフォルトの名無しさん
09/11/18 00:49:48
>>322
一度もCSPの論文よんでないと言うのは凄くもったいないぞ
341:デフォルトの名無しさん
09/11/18 00:51:04
>>337
とりあえずemacs + common lispはなしな。
それもIDEすら使えないイマクシスト(emacsist)なんかだと、周りから白い目で見られるよ。かなり。
342:デフォルトの名無しさん
09/11/18 00:51:07
InfoQ: Googleの実験、新しい言語Go
URLリンク(www.infoq.com)
この言語の作者によれば、Goの目標のいくつかは以下の通りである。
* 静的言語の効率性と動的言語の記述しやすさを組み合わせること。事実、開発者は静的にするか動的にするかを選択することが可能である。
* 安全性。Goは型安全であり、暗黙のキャストを許容せず、明示的なキャストのみを許容する。
また、ポインタ演算を提供せず、ガベージコレクションを提供するため、メモリ安全である。
* 並行性と通信に対する優れたサポートの提供。
* 効率的で遅延のないガベージコレクションを持つこと。
* 高速なコンパイル。
次のような興味深い特徴を持っている。
* ポインタを持っているが、ポインタ演算はない。
* インターフェースを持つ。
* 同期チャネルを持つ。このチャネルはスレッド間の通信に使われ、並行処理の基礎となっている。
Goはそれをやりとりすることでメモリの共有を促進するが、共有メモリを通じて通信はしない。ある時点ではただ1つのスレッドだけが共有値に対するアクセスを持つことができ、チャネルを通じてスレッド間でのその値の受け渡しが行われる。
* ゴールーチン(Goroutines)。これは並行処理のために利用されるもう1つの構造である。
ゴールーチンは単に“go”キーワードを接頭辞として持つ関数あるいはメソッドである。ゴールーチンはスレッドと結びついていて、チャネルを通じて別のゴールーチンと通信する。
* 並列化。ゴールーチンとチャネルは計算を複数のCPU上で動かすために利用することができる。
* リフレクション。全ての型とチャネルに対してリフレクションが使える。
* エンベッディング(Embedding)。シンプルな継承の仕組みである。
343:デフォルトの名無しさん
09/11/18 00:54:11
>>339
Java&Eclipseがメインだが、普通にGoには期待してるぞ。
やりたいことを最適にサポートしてくれるなら、道具はなんでもいい。
344:デフォルトの名無しさん
09/11/18 00:56:06
>>341
slimeはいいもんだろw
あれについてはjava、eclipseが見習って欲しいくらいだw
345:デフォルトの名無しさん
09/11/18 01:02:09
>>342
>gccgoはガベージコレクタを持っていない。
あ、そうなんだ
>>326はむしろ喜びそうだな
346:デフォルトの名無しさん
09/11/18 01:02:57
どちらかといえば、javaをやってる方が長かったからnetbeansの方が好み
347:デフォルトの名無しさん
09/11/18 01:04:28
>>345
選択できるべきだと思うんだよね
348:デフォルトの名無しさん
09/11/18 01:08:07
>>347
じゃ、縁がなかったということで
349:デフォルトの名無しさん
09/11/18 01:08:14
Lispは知らない奴ほど騙りたがる不思議な言語だな。
見ていて恥ずかしいから話題に上げるのを止めて欲しいわ。
350:デフォルトの名無しさん
09/11/18 01:08:53
>>348
え?
351:デフォルトの名無しさん
09/11/18 01:12:08
>>347
Goにこだわる事もないだろう。
Kenが書いたPlan9版のCなんかどうよ
無名構造体が使える
352:デフォルトの名無しさん
09/11/18 01:14:49
マイナー言語を使うメリットってなによ
353:デフォルトの名無しさん
09/11/18 01:15:15
意味の分からない優越感
354:デフォルトの名無しさん
09/11/18 01:16:50
趣味だよ
355:デフォルトの名無しさん
09/11/18 01:18:29
>>352
マイナーだからではない。
未開拓だからだ。
356:デフォルトの名無しさん
09/11/18 01:19:50
>>345
GCはIBMのこの技術を基に開発中だって
URLリンク(www.research.ibm.com)
357:デフォルトの名無しさん
09/11/18 01:20:39
>>352
『言語の能力=プログラムの表現力の限界』だから、マイナーだろうとなんだろうと
色々使えた方が良い。
358:デフォルトの名無しさん
09/11/18 01:21:53
一人で勝手にやるなら別にいいだろうけど…
359:デフォルトの名無しさん
09/11/18 01:23:22
もう何年も
達人プログラマーに書いてあった事を実践してるから
目に付いた言語は試してみるようにしてる
360:デフォルトの名無しさん
09/11/18 01:23:32
これ、LLVM版はやらないのかな?
361:デフォルトの名無しさん
09/11/18 01:24:03
>>352
VBなんか使えないのに雰囲気でわかるよねって仕事を根絶するために
最強の言語を流行させるための草の根活動の一環
362:デフォルトの名無しさん
09/11/18 01:28:42
ぶっちゃけ、最近の流行はJVMか.NETのバイトコードを吐ければ言語は何でもおk、なんじゃないの。
そこに加えて、C/C++の担ってきた仕事をGoが良い形でリプレースしてくれるならそれは普通に歓迎。
363:デフォルトの名無しさん
09/11/18 01:33:10
GoにC++の置き換えは無理
pythonの置き換えくらいが精一杯
364:デフォルトの名無しさん
09/11/18 01:37:25
>>360
公式はLLVMとかWindowsサポートする気ないようだから
やるならオープンソースだし誰か勝手にやってってことだろう
上でゲームの話が出てるけどサーバ向けのようだから少し茨の道かも?
365:デフォルトの名無しさん
09/11/18 01:39:51
>>363
C++ の置き換えは無理だけど、C++ の領域を狭める事は出来る。
C が出来ても ASM は無くならなかったけど、確実に適用範囲が
狭まったのと同じ。
366:デフォルトの名無しさん
09/11/18 01:51:10
GC 付き言語でゲームなんか余程リアルタイム性が求められていないか
ストップ・ザ・ワールドを楽しめる余裕のあるゲームなんだろうな
367:デフォルトの名無しさん
09/11/18 02:22:09
>>342
>* リフレクション。全ての型とチャネルに対してリフレクションが使える。
aClass methodDict とか Smalltalk allBehaviorsDo: [...]
みたいなのと同じ事が出来るなら良かったんだけどな。
静的型付け言語には望むべくも無い事だが。
368:デフォルトの名無しさん
09/11/18 02:23:25
何か上でメリットを並べているみたいだけど
他の言語でも出来ることだしむしろ他で出来てGoで出来ないことが多すぎ
369:デフォルトの名無しさん
09/11/18 02:25:22
Go++とかが出るんだろ
370:デフォルトの名無しさん
09/11/18 02:27:59
確かに出来て当たり前のことを誇らしげに掲げている節があるよなGoって
371:デフォルトの名無しさん
09/11/18 02:37:11
どんな言語でもできることは一緒
問題はやりやすいかどうかだ
372:デフォルトの名無しさん
09/11/18 02:41:25
どう読んでもチューリング等価という話ではないと思われ
373:デフォルトの名無しさん
09/11/18 02:51:24
ラムダ算法があればイスラム数字がなくてもWindowsをかける。
でもゲシュタルト心理学的には文字の見やすさも重要。
374:デフォルトの名無しさん
09/11/18 02:59:32
>>370
たとえば「オブジェクト指向対応」
という項目があったとして、
オブジェクト指向のための機能は最近の言語では持っているものも多いから
別段珍しいことではないけど、どうやって実現しているかというのはこの一文では分からない。
いかに使いやすく、抽象化しやすく作られているかが重要だと思うよ。
「できる」だけじゃないんだよ。
375:デフォルトの名無しさん
09/11/18 03:01:11
Goってそんなに作り易いの?
376:デフォルトの名無しさん
09/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:デフォルトの名無しさん
09/11/18 03:05:05
たぶんgoogleはGo限定でプログラミングコンテスト開催するぞ…しかもすごい賞金。お前らGoやっとけよ
378:デフォルトの名無しさん
09/11/18 03:23:58
>>331
gcc版じゃないほうでコンパイルして、GOMAXPROCS=1にしても遅い?
理由は以下。
・Segmented Stackがgoroutineのスイッチ速度に効きそう
・コア2つ以上にするとコア間の通信のために遅くなる可能性がある
(基本的な演算能力は上がるけども)
ちなみにまだgo触ってない。
379:デフォルトの名無しさん
09/11/18 03:30:21
>>374
Objective-C, Smalltalk, Java みたいな壮大なクラスライブラリがある訳じゃないもんな。
380:デフォルトの名無しさん
09/11/18 03:37:16
googleの名前がなかったら見向きもされないレベル
381:デフォルトの名無しさん
09/11/18 08:42:24
取り敢えず今日は Lisp について頓珍漢な事を書くのは控えてくれな。
イチイチ突っ込みは入れんけど、こんな所で知ったかぶりする必要は無いんだから。
382:デフォルトの名無しさん
09/11/18 08:43:11
これいけるのかw
package main
type 文字列型 string;
func メッセージ表示(メッセージ 文字列型) { println(メッセージ); }
func main() { メッセージ表示("This is 日本語"); }
383:デフォルトの名無しさん
09/11/18 08:57:50
>>382
今時できない処理系の方が少ないだろ。
384:デフォルトの名無しさん
09/11/18 08:57:55
2ちゃんで知ったかぶりなくしたらレス数10分の1くらいだろ
385:デフォルトの名無しさん
09/11/18 11:14:47
>>382
すげーーーーーーーーー!!!
386:デフォルトの名無しさん
09/11/18 11:28:46
>>382
なでなでしこしことかもういらないんじゃねw
387:デフォルトの名無しさん
09/11/18 11:29:52
>>381
そんなに上から目線したいなら、せめてLispとgoがどう関係してる説明してくれないか?
388:デフォルトの名無しさん
09/11/18 11:35:46
どうせlispしか知らない昭和のおっさんなんだろ
スルー推奨
389:デフォルトの名無しさん
09/11/18 11:36:54
あはれ
390:デフォルトの名無しさん
09/11/18 11:44:13
関数型言語のかの字も知らない奴らがLispを語っているように見える
391:デフォルトの名無しさん
09/11/18 11:50:59
とりあえず博士号持ってるやつ以外は書き込むなw
紛らわしいわw
392:デフォルトの名無しさん
09/11/18 11:53:53
>>391
修士ですがだめで宇sか
393:デフォルトの名無しさん
09/11/18 11:55:48
>>390
で、その関数型言語とやらがGoとなにか関係してるんですか?
たぶんすれ違いなのはあなたの方だと思いますよ。
394:デフォルトの名無しさん
09/11/18 11:56:52
博士Go
こういうことですか?わかりません><
395:デフォルトの名無しさん
09/11/18 12:04:58
>>379
言語仕様の巧みさとライブラリの大きさは関係ないよ。
ライブラリはやる気がある指導者がいれば勝手に大きくなる。
396:デフォルトの名無しさん
09/11/18 12:05:34
クロージャで少し関係ありそうだけど、クロージャはjava,c#とかjavascriptで普通に使われてるからな関数型言語の売りって感じじゃない。
カリー化とかハスケルっぽいなるならgoも少しは現代的な関数型言語と関係あるかもしれない。
前スレでD,C++と比べてるゆとりがいたけど、今回沸いてきたのはそれと同レベルのなんちゃってだろ。上から目線の昭和おっさんであることに間違いはないが。
397:デフォルトの名無しさん
09/11/18 12:07:09
クロージャなんて次のC++でも入るからどうでもいい
398:デフォルトの名無しさん
09/11/18 12:07:52
>>393
最近の理論的研究はほとんど関数型言語絡みなんだよ。
だから関数型言語に興味がある=プログラミング言語に詳しい、着眼点が良い人ということになる。
399:デフォルトの名無しさん
09/11/18 12:13:20
この世で最先端の言語はHaskellだもんなw
何しろHaskellは元々最先端技術を集めて作るのを目標にしていて、
人が集まってくると言語仕様が荒らされるからわざと目立たないように
使いやすさよりも研究用言語としての立ち位置を取ってきた言語なんだから。
400:デフォルトの名無しさん
09/11/18 12:17:15
プログラミングとは、理想美を追求することではなく、泥臭い作業を自動化することですよ。
そのための理論であり学問でしかありません。
goはmitやbellでなく一企業内の研究員が開発し、さらに学問のために開発したわけでもありません。
変な期待を抱かない方がいいと思いますし、これからは議論についていくためにもOOPとかちゃんと勉強しといた方が未のためですよ。
401:デフォルトの名無しさん
09/11/18 12:18:51
なんかよくわからん荒れ方してるな
402:デフォルトの名無しさん
09/11/18 12:19:08
>>400
プログラミング言語について詳しいと自称する奴がオブジェクト指向を知らないわけがないだろw
403:デフォルトの名無しさん
09/11/18 12:19:51
goは最近流行りの並列・平行処理をやりやすくした言語というだけだよ。
404:デフォルトの名無しさん
09/11/18 12:22:31
OOPってつくづく勉強するほど深いものじゃないよなぁと思う
405:デフォルトの名無しさん
09/11/18 12:24:52
>>398
(x+y)^2 = 3/2
x^2 + 2 y^2 = 1
この連立が解けません。解法おながいします。
406:デフォルトの名無しさん
09/11/18 12:26:03
関数型言語ってどの程度押さえておけばいいのん?
なんか抽象度が高いから云々とか聞いたことあるが
それって読みにくい言語ってことじゃないのか?
LLのラムダ式とかよく使うけどしばらくたって読み直すと訳わからなくなるぞ
407:デフォルトの名無しさん
09/11/18 12:29:33
>>402
なら、GoとLispはどのあたりが関係あるんですか?
408:デフォルトの名無しさん
09/11/18 12:33:13
>>406
言語を利用する上では大して難しくないが、
・高階関数
・forループじゃなくて再帰ループ
・再代入禁止
・リストを活用しよう(リストは関数型言語だけの特徴じゃないけど、関数型言語ではたいてい使いやすくなっている)
409:デフォルトの名無しさん
09/11/18 12:36:11
>>408
どう考えてもgc必須な資源食いまくり言語ですなw
410:デフォルトの名無しさん
09/11/18 12:39:01
>>406
関数型って言っても高階関数が扱える程度で関数型と名乗ってるのから本当の純粋関数型までいろいろあるぞ。
たとえばschemeなんかは純Lispの子孫だから関数型って言われるけど実際のところ本質は命令型と何ら変わらない。
Concurrent CleanやHuskell(とかその子孫のとかCurry)がどのようにして副作用をどのようにして隠蔽しているかを
知っておくのは無益なことではないだろう。
ラムダ式や高階関数なんての関数型から輸入してきた要素だけど、
最近の手続き型言語は大体持ってるから使えないのはまずいだろう
後で読めなくなるってのは書き方が汚いだけで別の問題
411:デフォルトの名無しさん
09/11/18 12:42:03
また馬鹿なLisperが暴れているのか
412:デフォルトの名無しさん
09/11/18 12:45:45
そのうちセクハラ(痴漢)で逮捕されるから放っとけw
413:デフォルトの名無しさん
09/11/18 12:46:54
関数型言語もまともに扱えない低知能が何を言っているんだ
414:デフォルトの名無しさん
09/11/18 12:47:43
>>410
そこまで「lisp命」になっちゃうのは何でですか?
415:デフォルトの名無しさん
09/11/18 12:47:49
>>409
関数型言語の関数呼び出しって内部的にはgotoと同じだから、
C言語の関数呼び出しとは根本的に違うんだよ。
だから再帰でもforと同等。
リストは言語仕様に組み込んでしまえば最適化しやすい。
高階関数はクロージャがあればどの言語でもできる。
416:デフォルトの名無しさん
09/11/18 12:48:55
低知能に使えない言語ってのは要らない気がするがw
417:デフォルトの名無しさん
09/11/18 12:49:04
OOとOOPを混在して書くからややこしい
考え方が違うのだからOOPもどのOOPか明示して書いてくれ
>>396
Javaってクロージャなくない?
418:デフォルトの名無しさん
09/11/18 12:50:13
>>413
lispperの戯言はもうお腹いっぱい
goのネタはないの?w
419:デフォルトの名無しさん
09/11/18 12:52:10
>>417
Javaにはネイティブクロージャがないから匿名オブジェクトで模倣する。C#と同じ。
420:デフォルトの名無しさん
09/11/18 12:52:38
>>415
でも肝心のLISTがヒープでしょ。
それじゃsentenceがgotoでも結局gc必須だよね…
421:デフォルトの名無しさん
09/11/18 12:53:01
高階関数って引数に関数が取れるって理解でOK?
422:デフォルトの名無しさん
09/11/18 12:54:27
>>420
Haskellでは場合によってリストを配列に置き換える場合もあるみたいだね。
最適化次第で制御できないが。
423:デフォルトの名無しさん
09/11/18 12:54:37
C++でもHaskellでもなく
Goを選択することが最適な研究分野を1つでも挙げてみて下さい
まああなたたちレベルの理解度では無理でしょうけどね
424:デフォルトの名無しさん
09/11/18 12:56:09
>>419
馬鹿を晒し出してしまったな
425:デフォルトの名無しさん
09/11/18 12:57:09
>>423
だからARMなんだってばww
426:デフォルトの名無しさん
09/11/18 12:58:21
>>421
それだけだとC言語でもできるが、スコープを継承できなければ高階関数とは呼べない。
427:デフォルトの名無しさん
09/11/18 12:59:46
>>425
何故ARMにGoを選択することが最適だと考えていますか?
428:デフォルトの名無しさん
09/11/18 13:02:13
goの最大の特徴はgo文。
大量の鯖アクセスを並列でerlangより高速に捌くのが目的でしょ。
429:デフォルトの名無しさん
09/11/18 13:04:21
>>422
配列にするならヒープじゃなくてスタックでよく、結局C/C++系列の言語と何ら変わらない。
ヒープならjavascriptと同じなわけでこれまた構造化言語とおなじ。
つまり、旧来の関数型言語っていう枠組みが、もう構造化言語の一機能(言語機能)でしかないのよ。
ほとんどの関数型言語の機能はクロージャで代用できてしまう。
カリー化はコンパイラの話になるから少し違うけど、ここで吠えてるlisperは何でそんなに上から目線でいられるカワズ君なのかなって感じ。
430:デフォルトの名無しさん
09/11/18 13:04:45
>>428
他の言語でも同じことが出来ますが
あえてGoを選択する理由は何ですか?
431:デフォルトの名無しさん
09/11/18 13:07:53
また今日も私が勝ってしまいました
2ちゃんねる程度では私と対等に議論出来る論客が存在しないことが残念でなりません
432:デフォルトの名無しさん
09/11/18 13:09:27
>>430
軽量プロセスを言語仕様レベルで実践している言語はgoのほかにerlangがあるが、
erlangとの決定的な違いはgoはネイティブで動くから速いということ。
433:デフォルトの名無しさん
09/11/18 13:12:06
>>432
あなたが考える並列処理を軽量プロセスで行うメリットとは何ですか?
434:デフォルトの名無しさん
09/11/18 13:12:45
>>433
>>428
435:デフォルトの名無しさん
09/11/18 13:13:57
これでは話しになりませんね
436:デフォルトの名無しさん
09/11/18 13:14:03
JITも考えるとそうとも言えない。
ネイティブだと静的でしょ。
不変であり変化が多いそういう用途なら、いくらネイティブであれこれ頑張っても動的最適化には勝てないよ。
437:デフォルトの名無しさん
09/11/18 13:14:16
地震だ
京大時計塔倒れた
438:デフォルトの名無しさん
09/11/18 13:15:45
>>436
erlangとCを比較してみな。
erlangはクソ遅いから。
439:デフォルトの名無しさん
09/11/18 13:16:08
lisperはみんな上から目線だよ
440:デフォルトの名無しさん
09/11/18 13:17:38
>>430
Elangとかよりは大抵の人には書きやすくて
goするだけで並列に出来るからじゃない?
大抵の言語で出来るけど楽に書けるならそれにこしたことはない
441:デフォルトの名無しさん
09/11/18 13:19:13
そもそもこの流れで軽量プロセス軽量プロセスって唱えてる人は
軽量プロセスが何者なのか根本的なところが理解出来ていないと思う
442:デフォルトの名無しさん
09/11/18 13:20:31
じゃあ試しに軽量プロセスとスレッドの違いを説明してみろよ
これがまともに出来る技術者なんてほんの一握り
443:デフォルトの名無しさん
09/11/18 13:22:22
>>441
お前はVMでしか軽量プロセスが実践できないと思い込んでいるんだろw
444:デフォルトの名無しさん
09/11/18 13:22:37
>>429
横槍で申し訳ない
スタック or ヒープ → 構造化
の辺りがよく分からないのだけど
445:デフォルトの名無しさん
09/11/18 13:23:09
とりあえず、goでリングノードベンチマークでもしてもらおうか
446:デフォルトの名無しさん
09/11/18 13:24:28
>>429
Haskellでは、というより、GHCでは、と書かなかったのが誤解を生んでしまったようだ
447:デフォルトの名無しさん
09/11/18 13:27:20
みんな新しい言葉が好きなんだよ
既存の物も新しい言葉に置き換えれば違う物に見えてくる
そんな誤った世の潮流の特異点に存在するのがGoという言語 これが真相
448:デフォルトの名無しさん
09/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があるよねって言う思いはあるが…)。
449:デフォルトの名無しさん
09/11/18 13:28:59
虚像企業Googleが生み出した幻想
450:デフォルトの名無しさん
09/11/18 13:30:03
軽量プロセスっていうかcoroutineってLisperが大好きなSICPでも載ってなかったっけ。
SICPがいま手元にないから確認できないけど。
451:デフォルトの名無しさん
09/11/18 13:33:01
質問です
N個のノードを作り、1番目のノードに送られたメッセージは2番目のノードに、
2番目のノードに送られたメッセージは3番目のノードに、・・・、
N番目のノードに送られたメッセージは1番目のノードに送られるようにリングを形成し、
そのリング上を一つのメッセージがM回まわるのにかかる時間を計測してください。
452:デフォルトの名無しさん
09/11/18 13:33:09
Lisper呼ぶな
453:デフォルトの名無しさん
09/11/18 13:33:35
>>444
jsを引き合いに出したんだから、スロットといった方が通じたか。
これで理解出来ないなら根本的なところから分かってないってこと。
454:デフォルトの名無しさん
09/11/18 13:34:29
馬鹿が唐突に質問してるぞ
誰か答えてやれ
455:デフォルトの名無しさん
09/11/18 13:34:43
>>444
そりゃ関数型言語も構造化言語だけど何か?
ちなみにオブジェクト指向言語も構造化言語だけど何か?
456:デフォルトの名無しさん
09/11/18 13:36:48
関数型だのオブジェクトだの、そんな言葉の違いに意味は無いと知るのに10年かかった。
457:デフォルトの名無しさん
09/11/18 13:43:27
>>454
いいからお前も手を動かせw
458:デフォルトの名無しさん
09/11/18 13:44:11
cygwinでインストールして失敗した奴多すぎワロタ
459:デフォルトの名無しさん
09/11/18 13:45:44
>>451
で、これをネットワーク上でやるんだよな
P2Pじゃないけど、昔流行ったWebRingみたいにGoのプログラムでリングつくって
パケットをただ回すだけってのはやってみたいな。
460:451
09/11/18 13:49:12
>>459
ネットワークでも良いですが、今回は並行処理だけで実現してみてください。
元々はリングノードベンチマークっていうerlangの優位性を誇示するためのベンチマークなんです。
461:デフォルトの名無しさん
09/11/18 13:51:17
>>460
自分の手を動かせボケ
462:デフォルトの名無しさん
09/11/18 13:52:50
>>460
誌ねカス
463:デフォルトの名無しさん
09/11/18 13:54:34
>>460
Erlang使いなら自分でやったほうがたぶん早いぞ
このスレでコードが載るのは稀だ
あとなぜErlang版のコードを示さない
464:デフォルトの名無しさん
09/11/18 13:55:38
>>458
そんなに顔真っ赤にして自己紹介しなくいいからw
465:デフォルトの名無しさん
09/11/18 14:03:55
>>453
ごめんそれで更に分からなくなった
JSのスロットってオブジェクトを表現するための方法じゃない?
>>455
いやそれは分かってる
ただそれがスタック/ヒープとどう関係あるのかが分からないだけ
466:デフォルトの名無しさん
09/11/18 14:04:32
どいつもこいつも口先だけだな
並列処理が簡単に書けるとか抽象的な表現で優位性を印象付けているだけ
実は何も証明出来ていない
467:デフォルトの名無しさん
09/11/18 14:08:31
>>466
証明って?
468:デフォルトの名無しさん
09/11/18 14:09:44
馬鹿を相手にするな
469:デフォルトの名無しさん
09/11/18 14:10:16
>>466
それがグーグルの本性ですよ。
実際にグーグルがやってることはただの著作権侵害のその抽象化ですし。
470:デフォルトの名無しさん
09/11/18 14:20:01
>>439
471:デフォルトの名無しさん
09/11/18 14:24:54
ErlangやっているLisperって
心当たりがあるのだが
472:デフォルトの名無しさん
09/11/18 14:31:22
>>407
473:デフォルトの名無しさん
09/11/18 14:39:04
>>465
バカ乙
474:デフォルトの名無しさん
09/11/18 14:39:58
>>471
たくさんいそうなんだが・・・
475:デフォルトの名無しさん
09/11/18 14:43:40
たくさんいるけどどいつこいつも上から目線なんだよな
476:デフォルトの名無しさん
09/11/18 14:50:07
>>405
x = ±(√6)/3
y = ±(√6)/6
477:デフォルトの名無しさん
09/11/18 14:53:59
>>451
宿題は宿題スレへ
スレリンク(tech板)
478:デフォルトの名無しさん
09/11/18 14:54:10
いまどきの関数型言語やっている連中はLispなんて相手にしてないよ
479:デフォルトの名無しさん
09/11/18 14:57:45
なら、GOといまどきの関数型言語とはどの辺が関係あるんですか?
480:デフォルトの名無しさん
09/11/18 15:01:57
ねーよ
481:デフォルトの名無しさん
09/11/18 15:04:53
>>476
欲しいのは答えじゃなくて解法ですよ
問題文をよく読まないとダメじゃないですか!
この板的には「アルゴ」なんっていったりしますが
482:デフォルトの名無しさん
09/11/18 15:05:53
学校にでもいけよ
483:デフォルトの名無しさん
09/11/18 15:11:59
>>405
(x+y)^2 = 3/2 ... (1)
x^2 + 2y^2 = 1 ... (2)
(1) を展開 2x^2 + 4xy + 2y^2 = 3 ... (1')
(1') - (2) x^2 + 4xy = 2 ... (3)
(3) を y について解くと y = (2 - x^2)/4x ... (3')
(3') を (1) に代入 (x + (2-x^2)/4x)^2 = 3/2 ... (4)
(4) を x について解くと
9x^4 - 12x^2 + 4 = 0
(3x^2 - 2)^2 = 0
x = ±(√6)/3 ... (4')
(4') を (3') に代入すると
y = ±(√6)/6
484:デフォルトの名無しさん
09/11/18 15:14:09
>>483
ありがとうございました
485:デフォルトの名無しさん
09/11/18 15:15:12
>>483
ありがとうございました!
やっぱGO!ってすごいですね
486:デフォルトの名無しさん
09/11/18 15:47:32
>>483
Goさん、やっぱあんたすげえわ
487:デフォルトの名無しさん
09/11/18 17:38:49
>>483-486
2元2次連立なんて基本だろ
行列以前の問題だな
中学からやり直せ
488:デフォルトの名無しさん
09/11/18 17:49:17
いや、その、ちょっとGoさんの擬人化してくれる人がいたらいいな、と思って
キャラつくってしまいました・・・
489:デフォルトの名無しさん
09/11/18 19:13:59
ところで君たちは何で真っ昼間から2ちゃんで盛り上がれるんだ?
学校はもう冬休みに入ったのか?
それだけ時間があるなら関数型言語に付いてもう少し見識を深める事もできるだろうに。
490:デフォルトの名無しさん
09/11/18 19:21:20
それを余計なお世話と言う。時間が無くても覚えておいた方が良いよ
491:デフォルトの名無しさん
09/11/18 19:22:48
go言語がWebアプリがWEBアプリを高速化できるという理由を説明せよ.
いや,してください!
492:デフォルトの名無しさん
09/11/18 19:30:17
塩化ナトリウムのことか
493:デフォルトの名無しさん
09/11/18 19:32:35
>>491
これを読むときっと面白いよ。
URLリンク(groups.google.com)
それと、ウェブアプリと言っても色々あるから一概に速くなるとは言えないよ。
494:デフォルトの名無しさん
09/11/18 20:14:39
言語名がかぶってる問題はいつ決着が付くの
issue9てのも謎っぽくて悪くないと思うが
495:デフォルトの名無しさん
09/11/18 22:05:49
おい、コンパイルに時間かかるぞ バイナリ用意しろ
496:デフォルトの名無しさん
09/11/18 22:14:28
バイナリ()
497:デフォルトの名無しさん
09/11/18 22:15:46
ビルド自体は長くてもせいぜい5分だろ
そんなこと言ったらgccgoなんか悪夢だぞ
時間かかる上に環境揃えてもビルド失敗しやがるし・・・
498:デフォルトの名無しさん
09/11/18 22:19:05
>>497
ごめん、俺が言ってるのはgccgoのこと。
8gとか8lとかコンパイラとリンカを別々に実行しなきゃいけないところとか普通じゃないので、
gccチックに使える方が良いかなぁと。
499:デフォルトの名無しさん
09/11/18 22:21:44
>>494
狙いすぎだってば
とりあえず数字いれるなら、大人しく入れて欲しいもんだ
例えば8gじゃなくてgo8とかで良かっただろうに、何を考えてるんだ
いろいろ狙いすぎで、本気のネタ言語にしか見えん
500:デフォルトの名無しさん
09/11/18 22:23:13
8cにあわせるためなんだからgo8じゃ意味ないだろ
501:デフォルトの名無しさん
09/11/18 22:28:27
それじゃ6gではなんのことかわからんじゃないか。いや、わかるのか?
502:デフォルトの名無しさん
09/11/18 22:36:53
6goでもいいと思うが短い名前がほしかったんだろ
503:デフォルトの名無しさん
09/11/18 22:49:23
>>498
>8gとか8lとかコンパイラとリンカを別々に実行しなきゃいけないところとか普通じゃないので、
普通だろ?
504:デフォルトの名無しさん
09/11/18 22:49:44
普通だな
505:デフォルトの名無しさん
09/11/18 22:54:42
日本はでは未踏とかいう税金使い放題の
ところでLispの亜種開発してるんだっけ?
506:デフォルトの名無しさん
09/11/18 22:55:51
報告書いっぱい書かないといけないから未踏やりたくないー
507:デフォルトの名無しさん
09/11/18 23:02:44
>>498
新手の釣りか・・・?
javacとかと比べるなら分かるが・・・gccだろ・・・
508:デフォルトの名無しさん
09/11/18 23:02:49
>>498
コンパイラドライバ無いんだ…
509:デフォルトの名無しさん
09/11/18 23:08:42
make使うだろjk
510:デフォルトの名無しさん
09/11/18 23:08:57
8g hoge.go && 8l hoge.8 するだけのスクリプトを書けばいいとか
そういう問題じゃないのか
511:デフォルトの名無しさん
09/11/18 23:09:51
そういう問題じゃないと思うが…
512:デフォルトの名無しさん
09/11/18 23:12:59
8g hoge.go で出たエラーをぶっちぎって8lまで行くのが気持ち悪いとかそういう問題かもな
ちなみにその感覚は正しいと思う
513:デフォルトの名無しさん
09/11/18 23:15:15
gccgoをビルドすれば
514:デフォルトの名無しさん
09/11/18 23:20:24
そうだな
515:デフォルトの名無しさん
09/11/18 23:27:17
>>512
コンパイルでエラー出たらそこで止まるだろ……
516:デフォルトの名無しさん
09/11/18 23:27:31
そもそも検索し辛いから名称変更しろってのが発端なのに
Issueとか意味のある単語にするとか本末転倒もいいところだろ
悪のりしている一部の馬鹿が本来の目的を忘れて暴走しているとしか思えない
CやD言語が検索する上で問題がないのにそれでも変更したいなら
Googleで検索して1件も出てこないような8文字以上のデタラメな文字列にでもしない限り意味がない