Goについて扱うスレッドです。
GoはGoogleによって開発された言語です。
公式ドキュメント
http://golang.org/doc/
日本語訳
http://golang.jp
※前スレ
Go language part 2
https://mevius.5ch.net/test/read.cgi/tech/1510395926/
探検
Go language part 3
レス数が950を超えています。1000を超えると書き込みができなくなります。
2019/10/17(木) 21:38:04.78ID:wMsZ+t6y
892デフォルトの名無しさん
2020/11/04(水) 11:56:43.57ID:q9h9Yk1J >>887
参照カウントに対して、俺がどういう意図で話してるかわかってる?
一緒くたにしてるわけではなくて、参照カウントのメリットってのもきちんとあるんだよ。
勘違いが多すぎるのはお前の方だと思うよ。
グリーンスレッド知らなかったんだっけ?
グリーンスレッドの切り替えにはコストがかかるんだっけ?
全部スレッドの話だよな。
いちいち都合の悪いところをネグってレスつけるのやめろよ。
参照カウントに対して、俺がどういう意図で話してるかわかってる?
一緒くたにしてるわけではなくて、参照カウントのメリットってのもきちんとあるんだよ。
勘違いが多すぎるのはお前の方だと思うよ。
グリーンスレッド知らなかったんだっけ?
グリーンスレッドの切り替えにはコストがかかるんだっけ?
全部スレッドの話だよな。
いちいち都合の悪いところをネグってレスつけるのやめろよ。
893デフォルトの名無しさん
2020/11/04(水) 11:58:46.84ID:5Emk5REP Go vs Rust、じゃなくてむしろこの2つ以外が要らんのだけど
取り敢えずGoが分からないグリーンスレッド君がRustを理解出来るとは思えない(笑)
取り敢えずGoが分からないグリーンスレッド君がRustを理解出来るとは思えない(笑)
894デフォルトの名無しさん
2020/11/04(水) 12:03:20.78ID:q9h9Yk1J 参照カウント方式には結構なメリットがある。
別スレッドも必要ないし、速度も出る。ストップザ・ワールドも必要ない。
オブジェクトの開放が「かならず」「一定の場所」で行われてデストラクタの動作タイミングを保証できる。
弱参照がきっちりしてればそれこそ循環参照もそれほど恐れることはない。
組み合わせて使うのが良いと思うよ。俺的には。
だからこそ引き合いに出したんだが。
C++好きならshared_ptrあたりから理解が及びそうなもんなんだが。
別スレッドも必要ないし、速度も出る。ストップザ・ワールドも必要ない。
オブジェクトの開放が「かならず」「一定の場所」で行われてデストラクタの動作タイミングを保証できる。
弱参照がきっちりしてればそれこそ循環参照もそれほど恐れることはない。
組み合わせて使うのが良いと思うよ。俺的には。
だからこそ引き合いに出したんだが。
C++好きならshared_ptrあたりから理解が及びそうなもんなんだが。
895デフォルトの名無しさん
2020/11/04(水) 12:04:06.32ID:q9h9Yk1J896デフォルトの名無しさん
2020/11/04(水) 12:22:41.50ID:Q20JRtoy 循環参照検出付きの参照カウント方式は、GC?
897デフォルトの名無しさん
2020/11/04(水) 15:06:50.39ID:q9h9Yk1J >>896
自動的にメモリを開放してくれて、フラグメントを解消してくれる仕組みは、大雑把に言ってガベージコレクションの仲間に入れるもんじゃない?
自動的にメモリを開放してくれて、フラグメントを解消してくれる仕組みは、大雑把に言ってガベージコレクションの仲間に入れるもんじゃない?
898デフォルトの名無しさん
2020/11/04(水) 16:33:07.68ID:bB+A/rRK 誰かこの人形劇を止めてくれよ
899デフォルトの名無しさん
2020/11/04(水) 18:33:48.20ID:q9h9Yk1J とりあえずGoのリリースノートを全部読んでから話してほしいな。彼には。
1.14あたりでgoroutineのスケジューラちょっと変わってるし。
1.14あたりでgoroutineのスケジューラちょっと変わってるし。
900デフォルトの名無しさん
2020/11/04(水) 22:39:50.46ID:thexrnOY >>889
> 広義では参照カウンタもgcじゃん。
そう。俺も「参照カウンタのGC」とも言っている。
馬鹿は放置として、君も疑問のようだから回答しておくと、
参照カウンタ方式は「ユーザーが間違ってない」前提が必要で、「ユーザー補助」でしかない。
対してマーク&スイープは「ユーザーが間違ってても」GCが為されるから、「システム保護」なんだよ。
だから役割が全然違う。少なくとも真面目に24時間365日動作させるつもりなら、単純に交換は出来ない。
これが結局何だかんだでマーク&スイープから離れられない理由で、
JavaもC#もJSも、勿論Goもマーク&スイープしてる。
勿論それが重いのはみんな分かってるから、色々工夫してるけど、最終的にはやるしかないから。
だから参照カウンタ方式のGCでマーク&スイープと同様に「システム保護」を得る為には、
「ユーザーがどんな書き方をしても」解放されることが必要で、
例えば>>896のようなのが有ればいいけど、これで実装してる例ってあったっけ?
(なお循環参照の検出自体は簡単だが、適切に起動する為のイベントがないから、実装時に困るのはそこだと思うが)
> そうじゃなくて上のレイヤーの言語として使えばいい感じの言語だと思う。
そこは今どっかりとC#が根を下ろそうとしている。
C#は俺は良い言語だと思うけど、Javaに食われて死にそうなのがなあ、という見方だったが、
少なくとも俺の予想以上には大健闘していて、生き残るかもしれないなあ、とは思いつつある。
これまではC#もC++もWeb系が手薄だったけど、どっちもガチで整備し始めてるから、それが完了した時にどうなるかだね。
そしたら本当にGoを使う意味が全くなくなる。
逆にRustはCPU負荷無しで「システム保護」出来るわけだから、GC言語を皆殺しにかかってる。
そしてC並に速いのだから、確かに最終兵器ではあるんだよ。盛り上がる理由はそれ。
> 広義では参照カウンタもgcじゃん。
そう。俺も「参照カウンタのGC」とも言っている。
馬鹿は放置として、君も疑問のようだから回答しておくと、
参照カウンタ方式は「ユーザーが間違ってない」前提が必要で、「ユーザー補助」でしかない。
対してマーク&スイープは「ユーザーが間違ってても」GCが為されるから、「システム保護」なんだよ。
だから役割が全然違う。少なくとも真面目に24時間365日動作させるつもりなら、単純に交換は出来ない。
これが結局何だかんだでマーク&スイープから離れられない理由で、
JavaもC#もJSも、勿論Goもマーク&スイープしてる。
勿論それが重いのはみんな分かってるから、色々工夫してるけど、最終的にはやるしかないから。
だから参照カウンタ方式のGCでマーク&スイープと同様に「システム保護」を得る為には、
「ユーザーがどんな書き方をしても」解放されることが必要で、
例えば>>896のようなのが有ればいいけど、これで実装してる例ってあったっけ?
(なお循環参照の検出自体は簡単だが、適切に起動する為のイベントがないから、実装時に困るのはそこだと思うが)
> そうじゃなくて上のレイヤーの言語として使えばいい感じの言語だと思う。
そこは今どっかりとC#が根を下ろそうとしている。
C#は俺は良い言語だと思うけど、Javaに食われて死にそうなのがなあ、という見方だったが、
少なくとも俺の予想以上には大健闘していて、生き残るかもしれないなあ、とは思いつつある。
これまではC#もC++もWeb系が手薄だったけど、どっちもガチで整備し始めてるから、それが完了した時にどうなるかだね。
そしたら本当にGoを使う意味が全くなくなる。
逆にRustはCPU負荷無しで「システム保護」出来るわけだから、GC言語を皆殺しにかかってる。
そしてC並に速いのだから、確かに最終兵器ではあるんだよ。盛り上がる理由はそれ。
901デフォルトの名無しさん
2020/11/04(水) 23:37:57.93ID:7oWZmWjZ902デフォルトの名無しさん
2020/11/05(木) 00:53:39.27ID:iOSFoZGZ >>900
ユーザーが参照カウントを上げ下げすることなんてほぼないぞ
言語内の仕組みなんだから
C拡張とか書く場合もたいていスコープ抜けたら
それまでの一時変数は全解放するって書き方があるし
他のGCでもそれは同じ
だからほとんど中身の仕組みを意識しなくても良い
むしろそれができないなら実装がしょぼい
ユーザーが参照カウントを上げ下げすることなんてほぼないぞ
言語内の仕組みなんだから
C拡張とか書く場合もたいていスコープ抜けたら
それまでの一時変数は全解放するって書き方があるし
他のGCでもそれは同じ
だからほとんど中身の仕組みを意識しなくても良い
むしろそれができないなら実装がしょぼい
903デフォルトの名無しさん
2020/11/05(木) 01:09:47.48ID:dYXzTkiF Goが人気出た大きな理由の一つは、過不足がなく比較的高品質な標準ライブラリ
その点でいえばNodeも同じだが、Nodeと違って変なのを噛まさず標準ライブラリを素のまま普通に使うことを美徳とする文化があるのも効いてる
くだらない流行り廃りに惑わされずに決まったものをただ普通に使えばよいというのが近年の複雑化しすぎたWeb界には受けた
Rustはそのへんは全然ダメだね
その点でいえばNodeも同じだが、Nodeと違って変なのを噛まさず標準ライブラリを素のまま普通に使うことを美徳とする文化があるのも効いてる
くだらない流行り廃りに惑わされずに決まったものをただ普通に使えばよいというのが近年の複雑化しすぎたWeb界には受けた
Rustはそのへんは全然ダメだね
904デフォルトの名無しさん
2020/11/05(木) 01:17:10.50ID:x7P4NeVz またそんな煽りを…
まったくオマイラときたら変な輩を呼び寄せる呪文を唱える
才能に関しては天才的だな
まったくオマイラときたら変な輩を呼び寄せる呪文を唱える
才能に関しては天才的だな
905デフォルトの名無しさん
2020/11/05(木) 07:04:56.97ID:40Zkap5B >>900
それで実装してる例がPython
それで実装してる例がPython
906デフォルトの名無しさん
2020/11/05(木) 07:24:03.07ID:td0oky8W RustはRustでC++の標準ライブラリがゴテゴテと九龍城が如く聳え立ってきた反動でもあるので許してやれという気持ちがある
それにしたって初期の標準が貧弱で標準に取り込むまでの右往左往が長すぎるというのも分かるが
それにしたって初期の標準が貧弱で標準に取り込むまでの右往左往が長すぎるというのも分かるが
907デフォルトの名無しさん
2020/11/05(木) 09:00:41.20ID:/CgVmiK8908デフォルトの名無しさん
2020/11/05(木) 09:25:14.26ID:gkJnxR7E Rustは今でも面白いよ。標準ライブラリが貧弱でも大して困らんけ、並列ランタイムだけは標準に入れて欲しかった。
メジャーなtokioとasync-stdの両対応してる場合も有るけど、大抵枝分かれしてて共存も出来ないから無駄なんだよな。
メジャーなtokioとasync-stdの両対応してる場合も有るけど、大抵枝分かれしてて共存も出来ないから無駄なんだよな。
909デフォルトの名無しさん
2020/11/05(木) 10:34:46.60ID:/CgVmiK8910デフォルトの名無しさん
2020/11/05(木) 10:59:39.83ID:OMGYJi8L 参照カウントって、本当に「言語の仕組み」なの?
911デフォルトの名無しさん
2020/11/05(木) 11:05:21.21ID:x7P4NeVz912デフォルトの名無しさん
2020/11/05(木) 11:08:21.64ID:+m168BhN C#が充実したらGoが要らなくなる論は全然わからんな。
一体どういう理屈なんだろうか。
同じサーバサイドでもお互いに分担するエリア全然違うくないか?
というか、全然手薄でもなかったし。C#。
一体どういう理屈なんだろうか。
同じサーバサイドでもお互いに分担するエリア全然違うくないか?
というか、全然手薄でもなかったし。C#。
913デフォルトの名無しさん
2020/11/05(木) 11:27:44.88ID:pymKzIg5 ファットなランタイムに依存しながらも比較的デプロイ時の取り回しが良い
わりと固定されたツールセットで無難に迷わずに使える
まあ近いと言えば近いんじゃないかな
C#をバリバリ使ってるとこだとGoの出番はないだろうし
わりと固定されたツールセットで無難に迷わずに使える
まあ近いと言えば近いんじゃないかな
C#をバリバリ使ってるとこだとGoの出番はないだろうし
914デフォルトの名無しさん
2020/11/05(木) 11:59:24.87ID:/CgVmiK8 C#ならGUIもサービスも書けるし遅くもないから、Windowsアプリを書くなら鉄板の選択肢だよな
どうしても高速化したいとか解析されたくない時だけC++
ただ事前にランタイムのインストールが必要なんで、Linuxとかマルチプラットフォーム展開の敷居がちょっとあるんで、CLIツールとか書いてもGoに比べてデプロイが不便
充分に住み分けされてるからどっちを使う論争は不毛
どうしても高速化したいとか解析されたくない時だけC++
ただ事前にランタイムのインストールが必要なんで、Linuxとかマルチプラットフォーム展開の敷居がちょっとあるんで、CLIツールとか書いてもGoに比べてデプロイが不便
充分に住み分けされてるからどっちを使う論争は不毛
915デフォルトの名無しさん
2020/11/05(木) 12:39:02.69ID:+m168BhN Windowsアプリを作るときの鉄板に関しては異論はないが、C#のデプロイはガッカリ仕様だぞ。
.Net 5でも。
.Net 5でも。
916デフォルトの名無しさん
2020/11/05(木) 13:08:26.70ID:LX/aXWmP SCDも知らんのか
917デフォルトの名無しさん
2020/11/05(木) 13:22:01.75ID:+m168BhN >>916
SCDでデプロイしたことあるか?
むちゃくちゃファイル数多いぞ。
SingleBinaryが自己展開ではなく直接アセンブリをロードする形にやっと.Net5でなったけど、そのままだとSingleBinaryと言ってるくせに数ファイル漏れるので、
それも完全にSingleBinaryにするには結局自己展開ファイルにせざるを得ない。
ファイルサイズも結構でかくて、最近は使ってるメソッドのみと言う形でTrimできるようになったけど、誤爆もまだまだあって実用とは言えんし。
ホントにやってみ。期待してただけにすごくガッカリしたから。
SCDでデプロイしたことあるか?
むちゃくちゃファイル数多いぞ。
SingleBinaryが自己展開ではなく直接アセンブリをロードする形にやっと.Net5でなったけど、そのままだとSingleBinaryと言ってるくせに数ファイル漏れるので、
それも完全にSingleBinaryにするには結局自己展開ファイルにせざるを得ない。
ファイルサイズも結構でかくて、最近は使ってるメソッドのみと言う形でTrimできるようになったけど、誤爆もまだまだあって実用とは言えんし。
ホントにやってみ。期待してただけにすごくガッカリしたから。
918デフォルトの名無しさん
2020/11/05(木) 14:44:49.50ID:BWbga0la >>908
Rustは非同期まわりが不安だよな。
Rustは非同期まわりが不安だよな。
919デフォルトの名無しさん
2020/11/05(木) 17:50:15.36ID:goPbZhqC >>914
F#とかどうよ
https://qiita.com/cannorin/items/59d79cc9a3b64c761cd4#%E9%96%8B%E7%99%BA%E5%AE%9F%E8%A1%8C%E7%92%B0%E5%A2%83-net-core--vscode
高速な動作, 簡単な配布
・.NET Core は現状で最も高速な .NET 実装の1つで, ベンチマーク上では例えば Go とほぼ同等〜少し速い程度のパフォーマンスを発揮します.
・.NET Core は Go と似たようなスタンドアロンバイナリの生成をサポートしており23, .NET Core ランタイムがインストールされていない Windows / OS X / Linux 環境上で実行可能な状態で配布することができます.
F#とかどうよ
https://qiita.com/cannorin/items/59d79cc9a3b64c761cd4#%E9%96%8B%E7%99%BA%E5%AE%9F%E8%A1%8C%E7%92%B0%E5%A2%83-net-core--vscode
高速な動作, 簡単な配布
・.NET Core は現状で最も高速な .NET 実装の1つで, ベンチマーク上では例えば Go とほぼ同等〜少し速い程度のパフォーマンスを発揮します.
・.NET Core は Go と似たようなスタンドアロンバイナリの生成をサポートしており23, .NET Core ランタイムがインストールされていない Windows / OS X / Linux 環境上で実行可能な状態で配布することができます.
920デフォルトの名無しさん
2020/11/05(木) 17:54:16.33ID:/CgVmiK8 >>918
まあ、不安ったって迷走してる程度で、根本的にはCの代替として落ち着いていくでしょ
確かどっか大手がコンテナの記述用途でテコ入れするとか
対立煽りしたいらしい奴は、方向性がまるで違うんだからC++のスレにでも行けって感じ
まあ、不安ったって迷走してる程度で、根本的にはCの代替として落ち着いていくでしょ
確かどっか大手がコンテナの記述用途でテコ入れするとか
対立煽りしたいらしい奴は、方向性がまるで違うんだからC++のスレにでも行けって感じ
921デフォルトの名無しさん
2020/11/05(木) 20:03:23.12ID:LX/aXWmP >>917
あるに決まってるだろ
あるに決まってるだろ
922デフォルトの名無しさん
2020/11/05(木) 20:13:34.79ID:40Zkap5B923デフォルトの名無しさん
2020/11/05(木) 20:34:00.27ID:LX/aXWmP >>922
うん、めっちゃ楽
うん、めっちゃ楽
924デフォルトの名無しさん
2020/11/05(木) 21:13:05.05ID:rDKR4t8H >>901
>>905
俺が無知なのはさておき、GCを実装してる連中はそこら辺まで調査して選択してる。
Go含めて重鎮が地味にマーク&スイープを選択するのは、それなりに理由がある。
ただし、マーク&スイープは、「大量の生存オブジェクト」には不向きで、Discordの件はそれに該当する。
逆に言えばそれが不向きなだけで、「最小限の生存オブジェクトと大量のゴミ」という、
普通の使い方の場合には、マーク&スイープの方がいいと判断したからそっちを選択してるわけだ。
kotolin-nativeは多分新しいことを試してみたかったんだろうと思うが、
Pythonはおそらく判断をミスっていて、通常向けに最適化するべきだと思う。
(これがPythonが無駄に遅い理由の一つになっているかも)
ただしGC機構についてだけ言えば、Python型なら今回のDiscordみたいなことにはならなかったはずだ。
だからあれはより正確に言えば「『マーク&スイープ方式の』GCの限界」だな。
>>905
俺が無知なのはさておき、GCを実装してる連中はそこら辺まで調査して選択してる。
Go含めて重鎮が地味にマーク&スイープを選択するのは、それなりに理由がある。
ただし、マーク&スイープは、「大量の生存オブジェクト」には不向きで、Discordの件はそれに該当する。
逆に言えばそれが不向きなだけで、「最小限の生存オブジェクトと大量のゴミ」という、
普通の使い方の場合には、マーク&スイープの方がいいと判断したからそっちを選択してるわけだ。
kotolin-nativeは多分新しいことを試してみたかったんだろうと思うが、
Pythonはおそらく判断をミスっていて、通常向けに最適化するべきだと思う。
(これがPythonが無駄に遅い理由の一つになっているかも)
ただしGC機構についてだけ言えば、Python型なら今回のDiscordみたいなことにはならなかったはずだ。
だからあれはより正確に言えば「『マーク&スイープ方式の』GCの限界」だな。
925デフォルトの名無しさん
2020/11/05(木) 21:25:07.21ID:rDKR4t8H >>903
最後の部分
> 近年の複雑化しすぎたWeb界には受けた
以外には同意だ。
俺は「Web系は複雑化しないところがいい」と見ている。
Web系は馬鹿ばかり、と揶揄されつつも、それでもWebが回ってるのは馬鹿でも回せる構造になってるからだ。
それは水平分業がしっかりしていて、しかもそれを普通に選択する文化だと思う。
例えばPHP、3層構造にするのについて誰も文句言わないだろ。
対して今回のDiscord、あれは指摘されてるとおり、キャッシュサーバーを使っていれば発生しなかった問題だと思う。
そこをなまじ実装力があって自前で実装してしまうからこそ命中する。
実際キャッシュなんて100行程度で書けるから、
不必要な機能も付いてて遅く、さらにブラックボックス的な他ライブラリ等に頼るよりは、
自前で実装する方が気分が楽なんだよ。
(ソースが読めるとしても100行程度で書けるのだから書いた方がまし、という選択になる)
その辺Web系は実装力もないからさっさと外部ライブラリ/フレームワークに頼るのだけど、
結果的にはそれの方が正しいように俺には見えてる。
この文化だと「○○が欲しい」というリクエストも感謝も明確に出てくるのでライブラリも揃う。
C++だと「そんなゴミ要らん自分で書いた方がましじゃボケ」になるからね。
だから遅々として整備は進まないが、それでも徐々には進むから、最終的にはどうなるかだけどね。
Web系が複雑化しているように見えるのは、やたらフレームワーク/ライブラリが乱立するからだと思うが、
それは外部的に見えるから複雑化しているように感じるだけ。
C++等だと内部的にみんなやってるのが出てきてないだけで、確実に重複しまくってて再開発しまくってる。
だから乱立に見えるけども一応外部に出てきて重複開発しないWeb系の方がエコシステムとしては効率がいいと思うよ。
最後の部分
> 近年の複雑化しすぎたWeb界には受けた
以外には同意だ。
俺は「Web系は複雑化しないところがいい」と見ている。
Web系は馬鹿ばかり、と揶揄されつつも、それでもWebが回ってるのは馬鹿でも回せる構造になってるからだ。
それは水平分業がしっかりしていて、しかもそれを普通に選択する文化だと思う。
例えばPHP、3層構造にするのについて誰も文句言わないだろ。
対して今回のDiscord、あれは指摘されてるとおり、キャッシュサーバーを使っていれば発生しなかった問題だと思う。
そこをなまじ実装力があって自前で実装してしまうからこそ命中する。
実際キャッシュなんて100行程度で書けるから、
不必要な機能も付いてて遅く、さらにブラックボックス的な他ライブラリ等に頼るよりは、
自前で実装する方が気分が楽なんだよ。
(ソースが読めるとしても100行程度で書けるのだから書いた方がまし、という選択になる)
その辺Web系は実装力もないからさっさと外部ライブラリ/フレームワークに頼るのだけど、
結果的にはそれの方が正しいように俺には見えてる。
この文化だと「○○が欲しい」というリクエストも感謝も明確に出てくるのでライブラリも揃う。
C++だと「そんなゴミ要らん自分で書いた方がましじゃボケ」になるからね。
だから遅々として整備は進まないが、それでも徐々には進むから、最終的にはどうなるかだけどね。
Web系が複雑化しているように見えるのは、やたらフレームワーク/ライブラリが乱立するからだと思うが、
それは外部的に見えるから複雑化しているように感じるだけ。
C++等だと内部的にみんなやってるのが出てきてないだけで、確実に重複しまくってて再開発しまくってる。
だから乱立に見えるけども一応外部に出てきて重複開発しないWeb系の方がエコシステムとしては効率がいいと思うよ。
926デフォルトの名無しさん
2020/11/05(木) 21:34:05.29ID:rDKR4t8H ちなみにデプロイって何の話してるんだ?
サーバーサイドなら最低限ビルド出来る奴がセットアップするんだから問題なし。
WindowsへのC#のデプロイは何ら問題ない。
Linuxなんてど素人は使ってない。
残るはMacだけど、お前らMac向けにGoでツールとか書いてるの?
ちなみに俺が言ったのは、「楽に書けて、サクッと動いて、そこそこの性能」という事だよ。
君らの分析の方が技術的に真面目で、さらに当たってるからそれで問題はないけど、要は、
PHPだと超超超楽勝だがポンコツ、
(Pythonだと超楽勝だがPHPと同程度の速度しか出ないポンコツ、ただしPHPからは逃れられる)、
Nodeだと楽勝でそこそこ速い、
Go/C#だと楽勝でもないがまあ普通に速い、
それより速いのはC++/Rustだけどこいつらは非現実的、
と今は並ぶでしょ。速度/容易さで並ぶのはC#。
C#の方が断然巨人だから、色々環境は整ってる。
ただしWebではなくWindowsアプリを主眼にしていたから、Web周りは若干周回遅れになってる。
勿論ASP.NETは昔からあったけどね。
サーバサイドでなくとも、要は「中庸」のプログラミング言語が欲しい場合に何が来るかということ。
一応C#は過度に難しくならないように努力してるから、巨大化している割には肥大化してない。
その辺C++とかかなり最悪だし。
ただしそれは「最速」言語の宿命で、
こちらの方が少しでも速いケースがある、という場合にユーザーが最速記述出来ないのは問題だから、
どうしても仕様が肥大化してしまう。速度面で仕様に妥協が出来ないんだ。
だからほぼ確実にRustもこれから肥大化する。
ただGoではC#を馬鹿にするなんて出来ないよ。
お前らの眼中にないASP.NETの方がGoサーバーよりも100倍シェアがある。
https://w3techs.com/technologies/overview/programming_language
サーバーサイドなら最低限ビルド出来る奴がセットアップするんだから問題なし。
WindowsへのC#のデプロイは何ら問題ない。
Linuxなんてど素人は使ってない。
残るはMacだけど、お前らMac向けにGoでツールとか書いてるの?
ちなみに俺が言ったのは、「楽に書けて、サクッと動いて、そこそこの性能」という事だよ。
君らの分析の方が技術的に真面目で、さらに当たってるからそれで問題はないけど、要は、
PHPだと超超超楽勝だがポンコツ、
(Pythonだと超楽勝だがPHPと同程度の速度しか出ないポンコツ、ただしPHPからは逃れられる)、
Nodeだと楽勝でそこそこ速い、
Go/C#だと楽勝でもないがまあ普通に速い、
それより速いのはC++/Rustだけどこいつらは非現実的、
と今は並ぶでしょ。速度/容易さで並ぶのはC#。
C#の方が断然巨人だから、色々環境は整ってる。
ただしWebではなくWindowsアプリを主眼にしていたから、Web周りは若干周回遅れになってる。
勿論ASP.NETは昔からあったけどね。
サーバサイドでなくとも、要は「中庸」のプログラミング言語が欲しい場合に何が来るかということ。
一応C#は過度に難しくならないように努力してるから、巨大化している割には肥大化してない。
その辺C++とかかなり最悪だし。
ただしそれは「最速」言語の宿命で、
こちらの方が少しでも速いケースがある、という場合にユーザーが最速記述出来ないのは問題だから、
どうしても仕様が肥大化してしまう。速度面で仕様に妥協が出来ないんだ。
だからほぼ確実にRustもこれから肥大化する。
ただGoではC#を馬鹿にするなんて出来ないよ。
お前らの眼中にないASP.NETの方がGoサーバーよりも100倍シェアがある。
https://w3techs.com/technologies/overview/programming_language
927デフォルトの名無しさん
2020/11/05(木) 21:45:04.52ID:rDKR4t8H すまん100倍では済まずに 31,666倍(=9.5/0.0003)だった。
言語名を押せば各詳細が出る。
その他の面もC#は既に巨人だからC#からみればGoなんてゴミ同然で、相手されてないよ。
言語名を押せば各詳細が出る。
その他の面もC#は既に巨人だからC#からみればGoなんてゴミ同然で、相手されてないよ。
928デフォルトの名無しさん
2020/11/05(木) 22:10:29.26ID:40Zkap5B929デフォルトの名無しさん
2020/11/05(木) 22:12:14.15ID:40Zkap5B930デフォルトの名無しさん
2020/11/05(木) 22:16:08.14ID:40Zkap5B >>926
「サーバサイドはできる奴がセットアップするから問題なし、PHPのデプロイが簡単」とか言ってる時点で話についてこれてないから、ちょっと調べてからしっかり喋ってくれ。
少なくともPHPファイルをポン置きするような事は「デプロイ」とすら呼ばん。
C#が眼中に無いのではなくて、ここはGoのスレ。
「サーバサイドはできる奴がセットアップするから問題なし、PHPのデプロイが簡単」とか言ってる時点で話についてこれてないから、ちょっと調べてからしっかり喋ってくれ。
少なくともPHPファイルをポン置きするような事は「デプロイ」とすら呼ばん。
C#が眼中に無いのではなくて、ここはGoのスレ。
931デフォルトの名無しさん
2020/11/05(木) 22:41:27.37ID:BWbga0la932デフォルトの名無しさん
2020/11/05(木) 23:35:22.45ID:5bWXoO+B COBOLは歴史もあるし金融系で使われてたり実績も十分。
933デフォルトの名無しさん
2020/11/05(木) 23:47:46.08ID:/6Zmm2qe C#はビルド速度とNuGetが地味につらい
Goのビルド速度、シンプルな純正テスト環境は大きな利点に思う。小規模開発時には特に。
Goのビルド速度、シンプルな純正テスト環境は大きな利点に思う。小規模開発時には特に。
934デフォルトの名無しさん
2020/11/06(金) 00:13:18.80ID:5acjwhy7 YouTube で有名な雑食系エンジニア・KENTA は、
初心者が進む道を、サーバー側言語のRuby → Go を王道としてる
この2つ以外は、出てこない
GUI 系は、画面の手直しなどで、工数がかさむ。
C#, dot.net などのWindows 系は、いらない。
Java などの土方系も、いらない。
C/C++ などのポインタ系や、ハードウェアの仕組みなども、いらない。
Elixir, Rust は、普及へのchasm・溝を超えられなかった
初心者が進む道を、サーバー側言語のRuby → Go を王道としてる
この2つ以外は、出てこない
GUI 系は、画面の手直しなどで、工数がかさむ。
C#, dot.net などのWindows 系は、いらない。
Java などの土方系も、いらない。
C/C++ などのポインタ系や、ハードウェアの仕組みなども、いらない。
Elixir, Rust は、普及へのchasm・溝を超えられなかった
935デフォルトの名無しさん
2020/11/06(金) 11:27:45.34ID:kU46w3PV そういや Go ってジェネリック入ったの?
936デフォルトの名無しさん
2020/11/06(金) 13:43:45.59ID:4QwN1dUc なんのために?
937デフォルトの名無しさん
2020/11/06(金) 16:04:25.31ID:vuRZSDYg だれのために?
938デフォルトの名無しさん
2020/11/06(金) 16:41:08.49ID:VIMw9dW+ 「俺の考えた最強の型システム」合戦になって収集つかなくなって導入しないことが決定した
939デフォルトの名無しさん
2020/11/06(金) 17:16:52.08ID:t5Qz3yQt 医薬品
940デフォルトの名無しさん
2020/11/06(金) 17:40:20.04ID:RRtA6cm3 これがキャンセルされたってこと?
https://blog.golang.org/generics-next-step
https://blog.golang.org/generics-next-step
941デフォルトの名無しさん
2020/11/06(金) 20:14:23.58ID:DtEkLbzN sort書くときはジェネリクスと型推論効かせて簡潔に書きたくなる
942デフォルトの名無しさん
2020/11/07(土) 11:07:18.19ID:fULQIOig なにかというと interface{} が現れる今の状況をなんとかしてほしい。
943デフォルトの名無しさん
2020/11/07(土) 18:27:21.32ID:WaP+6xrD どこかのブログで「Goはイテレータを書くのに4つの全く異なる方法がある」って書いてあったけど、これマジ?
944デフォルトの名無しさん
2020/11/07(土) 19:50:01.55ID:alCltY04 変数宣言くらいひとつにして欲しかった
945デフォルトの名無しさん
2020/11/07(土) 21:53:29.96ID:sL9l9w2Z >>943
イテレータを書く
と言ってる意味がよく分からない
イテレーションはrange句を書くときだけを意味するが、配列もしくはスライス、文字列、マップ、チャネルでそれぞれ受けとるイテレーション変数に違いがあるんで、それで4種と言ってる?
イテレータを書く
と言ってる意味がよく分からない
イテレーションはrange句を書くときだけを意味するが、配列もしくはスライス、文字列、マップ、チャネルでそれぞれ受けとるイテレーション変数に違いがあるんで、それで4種と言ってる?
946デフォルトの名無しさん
2020/11/07(土) 22:24:39.29ID:alCltY04947デフォルトの名無しさん
2020/11/07(土) 22:35:37.85ID:sL9l9w2Z948デフォルトの名無しさん
2020/11/07(土) 23:59:31.34ID:WaP+6xrD ごめん 前に見たブログが全然見つからない……
けど同じように言及してるブログは見つけた。
3 ways to iterate in Go
https://blog.kowalczyk.info/article/1Bkr/3-ways-to-iterate-in-go.html
けど同じように言及してるブログは見つけた。
3 ways to iterate in Go
https://blog.kowalczyk.info/article/1Bkr/3-ways-to-iterate-in-go.html
949デフォルトの名無しさん
2020/11/08(日) 00:40:26.10ID:cr0qwrbo950デフォルトの名無しさん
2020/11/08(日) 22:36:26.97ID:aJEtBYMB951デフォルトの名無しさん
2020/11/11(水) 16:24:39.37ID:2YRRcyS5952デフォルトの名無しさん
2020/11/12(木) 15:55:37.84ID:x/dKav4D >>948
こんなことやってる奴って他にいる?
こんなことやってる奴って他にいる?
953デフォルトの名無しさん
2020/11/12(木) 16:06:34.24ID:ajQurm37 いや、Goに関わらずAPIの設計としては常識に近いよ
Iteratorデザインパターン
Iteratorデザインパターン
954デフォルトの名無しさん
2020/11/13(金) 09:51:20.25ID:PXZYfUWY Goではfor文がイテレータ
自分でイテレータみたいなものを実装する必要はない
自分でイテレータみたいなものを実装する必要はない
955デフォルトの名無しさん
2020/11/13(金) 12:01:55.68ID:1iElEYNS イテレータ知らんやつばっかりで草生える
956デフォルトの名無しさん
2020/11/13(金) 14:22:31.00ID:PXZYfUWY >>955
じゃあイテレータの定義説明して、どうぞ
じゃあイテレータの定義説明して、どうぞ
957デフォルトの名無しさん
2020/11/13(金) 14:38:40.75ID:/AMzz1sP イテレータは、既定の順序に従って移動できることと、値を逆参照できることが要件になるだろうな。
958デフォルトの名無しさん
2020/11/13(金) 15:13:39.60ID:9KKZC7Fr 意味不明。
はい次!
はい次!
959デフォルトの名無しさん
2020/11/13(金) 15:22:45.15ID:RWm0omqa 覚えたての言葉使って見たかった説に+1
960デフォルトの名無しさん
2020/11/13(金) 22:40:33.20ID:5mXtPG+h 連続した要素を一個ずつ舐めて処理することだよね?(´・ω・`)
961デフォルトの名無しさん
2020/11/13(金) 22:47:58.01ID:PGsPGVPV それはただの繰り返し、
for文の説明にしかなってない。
もう一段の抽象思考が必要。
for文の説明にしかなってない。
もう一段の抽象思考が必要。
962デフォルトの名無しさん
2020/11/13(金) 22:51:34.63ID:IGEbWGrX >>960
キンタマかよ
キンタマかよ
963デフォルトの名無しさん
2020/11/13(金) 22:59:31.91ID:YBOwt/E7 >>960
wikipediaの解説くらい読めよ……
イテレータ(英語: iterator)とは、プログラミング言語において配列やそれに類似する集合的データ構造(コレクションあるいはコンテナ)の各要素に対する繰り返し処理の抽象化である。
「連続した要素」である必要は無いし、「一個ずつ舐め」る必要も「処理する」必要も無いぞ。
wikipediaの解説くらい読めよ……
イテレータ(英語: iterator)とは、プログラミング言語において配列やそれに類似する集合的データ構造(コレクションあるいはコンテナ)の各要素に対する繰り返し処理の抽象化である。
「連続した要素」である必要は無いし、「一個ずつ舐め」る必要も「処理する」必要も無いぞ。
964デフォルトの名無しさん
2020/11/13(金) 23:02:04.54ID:5mXtPG+h965デフォルトの名無しさん
2020/11/13(金) 23:05:36.62ID:PGsPGVPV >>964
しゃぶれよ
しゃぶれよ
966デフォルトの名無しさん
2020/11/13(金) 23:05:54.91ID:PXZYfUWY 舐めるって何だよ(哲学)
967デフォルトの名無しさん
2020/11/14(土) 02:20:57.24ID:J1qSeya3 やっとレベルの高いスレになってきたな!
968デフォルトの名無しさん
2020/11/14(土) 02:41:25.39ID:OEj/Ps5D >>964
何Pするつもりだ
何Pするつもりだ
969デフォルトの名無しさん
2020/11/14(土) 04:48:04.59ID:hiKCjj1+ 一人が同時に何本の竿を処理できるのか
その答えを俺は知ってる
その答えを俺は知ってる
970デフォルトの名無しさん
2020/11/14(土) 09:58:05.81ID:lw/b63Rx GoFのを定義とするならhasNextとnextでラップして要素持ってるだけなんだよな
流石に古いだけあって些か貧弱
流石に古いだけあって些か貧弱
971デフォルトの名無しさん
2020/11/14(土) 10:52:40.49ID:AxEpuS5V イテレータにそれ以上の機能は何も無いだろ。
それ以上を求めると、ジェネレータとの釣り合いが取れなくなるんじゃないか?
連続したもなにもなく「次」の値を取り出していくものでしかない気がするが。
それ以上を求めると、ジェネレータとの釣り合いが取れなくなるんじゃないか?
連続したもなにもなく「次」の値を取り出していくものでしかない気がするが。
972デフォルトの名無しさん
2020/11/14(土) 12:45:38.46ID:O3AqtiwM デザイン「パターン」だぞ
それが理解できないならシステムエンジニア向いてないよ
それが理解できないならシステムエンジニア向いてないよ
973デフォルトの名無しさん
2020/11/14(土) 13:04:34.18ID:wV2mISWm974デフォルトの名無しさん
2020/11/14(土) 14:24:39.45ID:FDvjC4Tu975デフォルトの名無しさん
2020/11/14(土) 14:38:59.30ID:0QjfD/pU976デフォルトの名無しさん
2020/11/14(土) 15:41:11.60ID:PgJDZZ0r >>942
ほんまこれ
Go の何が駄目といって「われらがGoはXXは無くしてシンプルに美しい」
とかなんとか自画自賛してるが、実際はむりくりそのクソみたいな
単純機能を組みあわせてクソ面倒な色々なやりくりしないといけないという
まるで前世紀の遺物みたいなシロモノ
あと Go は名前がクソ
ほんまこれ
Go の何が駄目といって「われらがGoはXXは無くしてシンプルに美しい」
とかなんとか自画自賛してるが、実際はむりくりそのクソみたいな
単純機能を組みあわせてクソ面倒な色々なやりくりしないといけないという
まるで前世紀の遺物みたいなシロモノ
あと Go は名前がクソ
977デフォルトの名無しさん
2020/11/14(土) 15:50:35.31ID:QzputhfI >名前が糞
同意せざるを得ない
同意せざるを得ない
978デフォルトの名無しさん
2020/11/14(土) 16:11:45.05ID:AxEpuS5V うーん、全世紀の遺物から、複数の戻り値とか、deferとかみたいなので別方向に進化したものだと思うけどな。
面倒くさいなって思う事もそんなに無くなったが。
後出しジャンケンみたいなインターフェイスはなかなか便利だし他の言語には無いと思うぞ。
まあ名前はひどい。
面倒くさいなって思う事もそんなに無くなったが。
後出しジャンケンみたいなインターフェイスはなかなか便利だし他の言語には無いと思うぞ。
まあ名前はひどい。
979デフォルトの名無しさん
2020/11/14(土) 16:24:50.71ID:OsCdkw/B インターフェース自体はいいんだよ。
問題は void* のような型消去した interface{} を多用しないとならないところ。
問題は void* のような型消去した interface{} を多用しないとならないところ。
980デフォルトの名無しさん
2020/11/14(土) 16:48:02.38ID:DnZAmAgg981デフォルトの名無しさん
2020/11/14(土) 17:29:12.30ID:chyl+IG1 /\___/\
/ / ヽ ::: \
| (●), 、(●)、 | / ̄ ̄ ̄ ̄ ̄ ̄ ̄
| ,,ノ(、_, )ヽ、,, | < まーたはじまった
| ,;‐=‐ヽ .:::::| \_______
\ `ニニ´ .:::/
/`ー‐--‐‐—´´\
/ / ヽ ::: \
| (●), 、(●)、 | / ̄ ̄ ̄ ̄ ̄ ̄ ̄
| ,,ノ(、_, )ヽ、,, | < まーたはじまった
| ,;‐=‐ヽ .:::::| \_______
\ `ニニ´ .:::/
/`ー‐--‐‐—´´\
982デフォルトの名無しさん
2020/11/14(土) 19:22:52.14ID:O3AqtiwM 思い付きのまま検討とかしないで言うんだけど
interface{} と書くところで {} とできたらどうだろう
interface{} と書くところで {} とできたらどうだろう
983デフォルトの名無しさん
2020/11/14(土) 21:01:36.29ID:OsCdkw/B 長いのが嫌だと言ってるわけじゃなくてw
984デフォルトの名無しさん
2020/11/15(日) 03:57:17.44ID:oqZpf0kM また発作が始まったか
985デフォルトの名無しさん
2020/11/15(日) 08:38:13.89ID:QxfrfD5Z for {}
986デフォルトの名無しさん
2020/11/15(日) 13:27:59.77ID:TRv2gWKD987デフォルトの名無しさん
2020/11/15(日) 14:29:31.55ID:b8fPXan8 ハァ…ハァ… 池沼用言語……?
取り消せよ……!!! ハァ… 今の言葉……!!!
取り消せよ……!!! ハァ… 今の言葉……!!!
988デフォルトの名無しさん
2020/11/15(日) 16:13:52.21ID:h7nWKXR3 (´・ω・`) ふむふむ・・・なるほどなるほど・・・
/ `ヽ. お薬増やしておきますね
__/ ┃)) __i |
/ ヽ,,⌒)___(,,ノ\
-----
/ `ヽ. お薬増やしておきますね
__/ ┃)) __i |
/ ヽ,,⌒)___(,,ノ\
-----
989デフォルトの名無しさん
2020/11/15(日) 18:21:39.28ID:P3rs6EJY 重要なのは「その言語でどれだけ稼げるか」なンだわ
単価相場 | ITフリーエンジニアのための【レバテックフリーランス】
https://freelance.levtech.jp/project/marketprice/?det_type=512
単価相場 | ITフリーエンジニアのための【レバテックフリーランス】
https://freelance.levtech.jp/project/marketprice/?det_type=512
990デフォルトの名無しさん
2020/11/15(日) 19:05:53.09ID:uPufg4Im モダンな言語使ってる所だと単価云々より労働環境のメリットの方がデカい
エンジニアファーストだしフルリモート出来るし
単価高くても出社必須・クソスペPC・下請けみたいな所は論外
エンジニアファーストだしフルリモート出来るし
単価高くても出社必須・クソスペPC・下請けみたいな所は論外
991デフォルトの名無しさん
2020/11/15(日) 20:37:01.75ID:TRv2gWKD >>990
俺はJSを気に入ったから転職しようかとも思ったが、
求人見てデザイナの下請けばっかりだから止めた。(少なくともJSは、でも多分PHPも)
もしGoだとプログラマ主導が多数派なのなら、それはわざわざGoを選ぶ意味にもなり得る。
俺はJSを気に入ったから転職しようかとも思ったが、
求人見てデザイナの下請けばっかりだから止めた。(少なくともJSは、でも多分PHPも)
もしGoだとプログラマ主導が多数派なのなら、それはわざわざGoを選ぶ意味にもなり得る。
レス数が950を超えています。1000を超えると書き込みができなくなります。
ニュース
- 【速報】中国外務省報道官 高市首相発言撤回なければ「断固たる対抗措置」 ★2 [蚤の市★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★4 [ぐれ★]
- 【次の一手】台湾問題で小林よしのり氏が私見「まさに戦争前夜」「ただちに徴兵制を敷いて、高市支持者を最前線へ」… ★3 [BFU★]
- 中国、日本行き“50万人”キャンセル 渡航自粛でコロナ禍以来最大 [お断り★]
- 【速報】日本産牛肉の対中国輸出再開協議が中止 ★2 [おっさん友の会★]
- 毛寧(もう・ねい)報道官「中国に日本の水産品の市場は無い」 高市首相の国会答弁に「中国民衆の強い怒り」 [ぐれ★]
- 【高市悲報】北朝鮮🇰🇵、大人しすぎるwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww [573041775]
- 【速報】中国政府、ゲームを禁輸。原神やブルアカ、荒野行動が日本で影響 [347751896]
- 中国「私達が怒ってるのは日本の政治家に対してで、日本の観光客や日本企業はこれまで通り歓迎する。これこそが大国としての余裕」 [377482965]
- カナダ「ジャップさあ、ファンデーションの「標準色」ってなんなんだい?ひとの肌の色に「標準」があるとでもいうのかい?」 [377482965]
- 【速報】ドル156円突破wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww [527893826]
- 高市コイン、ガチで156円突入へwwwwwwwwww [246620176]
