Goについて扱うスレッドです。
GoはGoogleによって開発された言語です。
公式
https://golang.org
公式ドキュメント
https://golang.org/doc/
公式外パッケージドキュメント
https://godoc.org
ブラウザ上で試し書き
https://play.golang.org
※前スレ
Go language part 4
https://mevius.5ch.net/test/read.cgi/tech/1605467680/
探検
Go language part 5
■ このスレッドは過去ログ倉庫に格納されています
2022/02/27(日) 07:43:20.04ID:uWHjNeVw
758デフォルトの名無しさん
2024/04/03(水) 16:01:02.02ID:eNgZCM35 >>753
GoogleはGoにしたいのか、Rustにしたいのか
GoogleはGoにしたいのか、Rustにしたいのか
759デフォルトの名無しさん
2024/04/03(水) 16:23:26.97ID:V8E7QtS4 したいって現状用途が全然違うのに
760デフォルトの名無しさん
2024/04/03(水) 16:40:24.82ID:eNgZCM35761デフォルトの名無しさん
2024/04/03(水) 16:51:21.63ID:V8E7QtS4 goとrustじゃあ全然言語機能違いすぎるよ
goは言語自体くそシンプルでだからバックエンドのマイクロサービスみたいな
小さなサービス自体を実装するのに使われてる(用途)
goでそれ以上のことをやると死にかけると思う
GoとRustはC#とJavaみたいなにたもんじゃないと思う
goは言語自体くそシンプルでだからバックエンドのマイクロサービスみたいな
小さなサービス自体を実装するのに使われてる(用途)
goでそれ以上のことをやると死にかけると思う
GoとRustはC#とJavaみたいなにたもんじゃないと思う
762デフォルトの名無しさん
2024/04/03(水) 17:00:55.33ID:V8E7QtS4 逆にRustでバックエンドのWebサービス実装する
フレームワークあるけどコンパイル時間長すぎて
Webとか時間の流れ速い分野ではこれはこれで地獄だし
GoとRustは色々比較して別物だからな
用途も現状すみわけられてると思う
フレームワークあるけどコンパイル時間長すぎて
Webとか時間の流れ速い分野ではこれはこれで地獄だし
GoとRustは色々比較して別物だからな
用途も現状すみわけられてると思う
763デフォルトの名無しさん
2024/04/03(水) 17:16:01.43ID:V8E7QtS4 本来についてはどうなんだろうね
Goはシステム記述を最初から狙ってたの?
システム記述がどこを指すのかにもよるけど
Goはシステム記述を最初から狙ってたの?
システム記述がどこを指すのかにもよるけど
764デフォルトの名無しさん
2024/04/03(水) 17:37:49.09ID:iMBIpEa8 でも実際GoogleはGoで書かれたものもRustに移行してる
生産性は同程度だけど不具合の数が圧倒的に少なくなったらしくかなり前向きっぽい
生産性は同程度だけど不具合の数が圧倒的に少なくなったらしくかなり前向きっぽい
765デフォルトの名無しさん
2024/04/03(水) 19:14:38.98ID:IrOohhoZ RustはC/C++の代替言語なわけで結局メモリ管理のための記述が必要な低級言語なんだよ〜
ガベージコレクションの無い低級言語なんか触りたくないぽよぉ〜、Goしか勝たん!
ガベージコレクションの無い低級言語なんか触りたくないぽよぉ〜、Goしか勝たん!
766デフォルトの名無しさん
2024/04/03(水) 19:19:11.96ID:SPeUFyxp シンプルな言語機能でコードの保守性を高めることがGo言語の目的で、それはRustと真逆のような
767デフォルトの名無しさん
2024/04/03(水) 19:21:07.80ID:i4V1+m9a Rustが人気な理由は
完全にメモリ自動解放しかも必ず安全
を実現しつつC言語と同等の速さで動く点
完全にメモリ自動解放しかも必ず安全
を実現しつつC言語と同等の速さで動く点
768デフォルトの名無しさん
2024/04/04(木) 22:12:02.80ID:vlvoJs2w つかメモリ管理が~とか中級者まででしょ
普通の頭があれば25歳までに卒業してるわ
普通の頭があれば25歳までに卒業してるわ
769デフォルトの名無しさん
2024/04/04(木) 23:05:06.38ID:G0cwdLmq javaがウケたのもcがウケたのも
シンプルだったからなんやろねえ
実際のプログラミングってのはどうしたってクソみたいな
状態の山、依存の山みたいなもんに取り組んでいくわけで
余計な複雑さを持ち込まないでほしいってのは現場のリアルな声だと思う
もちろんgoも、それをわかってて、それを押さえてる
シンプルだったからなんやろねえ
実際のプログラミングってのはどうしたってクソみたいな
状態の山、依存の山みたいなもんに取り組んでいくわけで
余計な複雑さを持ち込まないでほしいってのは現場のリアルな声だと思う
もちろんgoも、それをわかってて、それを押さえてる
770デフォルトの名無しさん
2024/04/04(木) 23:26:31.09ID:Chhm4gg1 >>769
Cが受けたのは他が糞だったから。勿論Cの完成度は超高いにしても。
あとその当時はCPUが非力すぎて軽くないと話にならなかった。
Javaが受けたのはCで鬼門だったポインタを廃止してGCも導入し、馬鹿でもバグが出にくくなったから。
その後スクリプト言語が受けてるのは富豪プログラミングの方が断然楽だから。
ただ効率を考えたらポインタを直接扱える方が断然有利なので、Goは簡単な範囲でポインタを使える言語の位置づけだと思う。
Cが受けたのは他が糞だったから。勿論Cの完成度は超高いにしても。
あとその当時はCPUが非力すぎて軽くないと話にならなかった。
Javaが受けたのはCで鬼門だったポインタを廃止してGCも導入し、馬鹿でもバグが出にくくなったから。
その後スクリプト言語が受けてるのは富豪プログラミングの方が断然楽だから。
ただ効率を考えたらポインタを直接扱える方が断然有利なので、Goは簡単な範囲でポインタを使える言語の位置づけだと思う。
771デフォルトの名無しさん
2024/04/04(木) 23:40:17.98ID:vlvoJs2w ただしJavaは敷居を下げすぎて業界にバカが多数流入した
ポインタを取り扱える/扱えない がハードルとして機能していた
Go関係ない話ですまん
ポインタを取り扱える/扱えない がハードルとして機能していた
Go関係ない話ですまん
772デフォルトの名無しさん
2024/04/05(金) 00:59:31.65ID:wkA5bdgA773デフォルトの名無しさん
2024/04/27(土) 20:42:50.26ID:PtA3qgXN こんばんは
Goってネームバリューあるけどそんなに盛り上がってる感じじゃないよね
javaの後継になるかと思ってたけどそうでもないし
Goってネームバリューあるけどそんなに盛り上がってる感じじゃないよね
javaの後継になるかと思ってたけどそうでもないし
774デフォルトの名無しさん
2024/04/27(土) 21:13:07.86ID:K8Ze6DJO 言語仕様が簡素な点が特徴だけど
Javaのような大規模開発には向いてないかな
ガベージコレクションがあるからC/C++の分野も不向き
守備範囲が意外に狭い
Javaのような大規模開発には向いてないかな
ガベージコレクションがあるからC/C++の分野も不向き
守備範囲が意外に狭い
775デフォルトの名無しさん
2024/04/27(土) 23:58:02.43ID:9h9dlcQc Goはもう衰退傾向に入った
776デフォルトの名無しさん
2024/04/28(日) 10:43:50.01ID:ebtFAx8m777デフォルトの名無しさん
2024/04/28(日) 10:57:35.16ID:vYBqVrR0 javaの代わりにGo使うメリットってネイティブコード吐き出すことだと思うけど
処理速度が早くなればそれだけマシンのリソースが少なくて済む
処理速度が早くなればそれだけマシンのリソースが少なくて済む
778デフォルトの名無しさん
2024/04/28(日) 11:46:19.27ID:ebtFAx8m >>777
ああその点は完全に失念してた。
ただなんつーか、今時鯖代より人件費の方が高いので、Web鯖なんて物理で殴る方が安いというソリューションになってしまってる。
Javaも同様の状況だと思う。
Webに比べて製品寿命は長いので、状況異なるかもしれんが。
処理速度が絶対的に必要なのは物理で殴って逃げられないケースで、
これは例えばディスコードやFPS等のゲーム、つまりユーザー間でのデータのやりとりが大量にある状況で収容数を増やしたい場合で、
現在はRust/C++ということになっている。この分野でJavaを選択する奴は居ない。
Javaが使われてるのは大概インフラ、つまり銀行の送金システムや自治体の戸籍管理等だが、
負荷がかかって物理で殴って逃げられないのはDBであってJava記述部分ではないので、
最大でも精々2倍程度にしか速くならない現状で、Goに書き直す事はない。
それよりも書き直す際のバグを嫌うはず。
つまり、Rustが存在せず、鯖代が今の10倍くらい高ければ、JavaをGoに書き直す需要は発生してたはずだが、そうではなかった、ということ。
ああその点は完全に失念してた。
ただなんつーか、今時鯖代より人件費の方が高いので、Web鯖なんて物理で殴る方が安いというソリューションになってしまってる。
Javaも同様の状況だと思う。
Webに比べて製品寿命は長いので、状況異なるかもしれんが。
処理速度が絶対的に必要なのは物理で殴って逃げられないケースで、
これは例えばディスコードやFPS等のゲーム、つまりユーザー間でのデータのやりとりが大量にある状況で収容数を増やしたい場合で、
現在はRust/C++ということになっている。この分野でJavaを選択する奴は居ない。
Javaが使われてるのは大概インフラ、つまり銀行の送金システムや自治体の戸籍管理等だが、
負荷がかかって物理で殴って逃げられないのはDBであってJava記述部分ではないので、
最大でも精々2倍程度にしか速くならない現状で、Goに書き直す事はない。
それよりも書き直す際のバグを嫌うはず。
つまり、Rustが存在せず、鯖代が今の10倍くらい高ければ、JavaをGoに書き直す需要は発生してたはずだが、そうではなかった、ということ。
779デフォルトの名無しさん
2024/04/28(日) 13:33:28.92ID:PewOJWl2 3行で
780デフォルトの名無しさん
2024/04/28(日) 13:57:24.88ID:MN1XFv8I > Javaの連中はポインタが使えない(使わなくて済む)からJavaに行ったのだから、
アマチュアさんからはそう見えるんだね
職業マにとって言語なんて案件次第なんよ
アマチュアさんからはそう見えるんだね
職業マにとって言語なんて案件次第なんよ
781デフォルトの名無しさん
2024/04/28(日) 14:28:40.83ID:ebtFAx8m >>779
速度面も機能面も、GoはJavaの後継ではない
>>780
ゆとり乙
顧客次第というのなら、現時点でのJava案件は今後ともJava案件だろうよ
顧客は公務員かお堅いところで、「もし何かあったら誰が責任を取る?」しか考えない連中だから
C++しかなかった時代ならともなく、現時点でJavaを「安全」とする技術的意味はないが、
顧客はそれを理解出来ず、また、責任逃れの為に誰も先陣を切らない
ただオラクルが妙な動きを見せ始めてるから、その辺どうなるかだが、それでも公務員連中は金払って終わりだろうよ
所詮は税金であって、自分の金ではないから
そういえば三菱銀行は10-15年前にC++で書きました、Haskell使いました、とかやってたが、続報は聞かないね
速度面も機能面も、GoはJavaの後継ではない
>>780
ゆとり乙
顧客次第というのなら、現時点でのJava案件は今後ともJava案件だろうよ
顧客は公務員かお堅いところで、「もし何かあったら誰が責任を取る?」しか考えない連中だから
C++しかなかった時代ならともなく、現時点でJavaを「安全」とする技術的意味はないが、
顧客はそれを理解出来ず、また、責任逃れの為に誰も先陣を切らない
ただオラクルが妙な動きを見せ始めてるから、その辺どうなるかだが、それでも公務員連中は金払って終わりだろうよ
所詮は税金であって、自分の金ではないから
そういえば三菱銀行は10-15年前にC++で書きました、Haskell使いました、とかやってたが、続報は聞かないね
782デフォルトの名無しさん
2024/04/28(日) 14:52:46.56ID:MN1XFv8I 素人ならではの発想ほほえましい
783デフォルトの名無しさん
2024/04/28(日) 15:24:23.74ID:P9GmgsNY しょうもないマウント合戦
784デフォルトの名無しさん
2024/04/28(日) 15:26:16.67ID:ebtFAx8m >>782
ゆとり引きニート乙
>>773
一応捕捉しておくと、773がGoを「速いJava」と『個人的に』考えたのは間違いではない。
ただし『言語として』なら完全に間違いだ。
Javaはビルジョイが「Cでのバグの大半はポインタがらみで、ポインタ使用ケースの9割がStringだった。
だからStringを言語がサポートすればポインタをなくせると考えたんだ」とリーナスに語ったとおり、
ポインタを無くしてバグを減らす為の言語として作られてる。
そして実際、大受けして天下を取った。(なお「大半」と「9割」は逆だったかも)
ただ、速度チューンにはポインタでの効率化が必須で、この意味でGoは「速いJava」として『個人レベルでは』使える。
ただしJavaにはそもそもポインタがないのだから、
この発想、つまり「ポインタを使えば速くなる」とはJava使いは考えないし、実際、出来ない。
(個人レベルなら出来るのは混ざってるだろうが、Java流の開発方針だとチーム全員が出来ないと意味がなく、機能しない。
そしてポインタにまつわる問題をデタラメに吹聴してる震源はJava使いであって、具体的に言えば「メモリリークガー」だが、
C使いがメモリリークに悩まされる事はない。それはCの使い方を知らない馬鹿がデタラメやってて勝手にバグってるだけ。
この意味で ID:vlvoJs2w は正しい事を言ってる。なお俺は ID:Chhm4gg1)
ゆとり引きニート乙
>>773
一応捕捉しておくと、773がGoを「速いJava」と『個人的に』考えたのは間違いではない。
ただし『言語として』なら完全に間違いだ。
Javaはビルジョイが「Cでのバグの大半はポインタがらみで、ポインタ使用ケースの9割がStringだった。
だからStringを言語がサポートすればポインタをなくせると考えたんだ」とリーナスに語ったとおり、
ポインタを無くしてバグを減らす為の言語として作られてる。
そして実際、大受けして天下を取った。(なお「大半」と「9割」は逆だったかも)
ただ、速度チューンにはポインタでの効率化が必須で、この意味でGoは「速いJava」として『個人レベルでは』使える。
ただしJavaにはそもそもポインタがないのだから、
この発想、つまり「ポインタを使えば速くなる」とはJava使いは考えないし、実際、出来ない。
(個人レベルなら出来るのは混ざってるだろうが、Java流の開発方針だとチーム全員が出来ないと意味がなく、機能しない。
そしてポインタにまつわる問題をデタラメに吹聴してる震源はJava使いであって、具体的に言えば「メモリリークガー」だが、
C使いがメモリリークに悩まされる事はない。それはCの使い方を知らない馬鹿がデタラメやってて勝手にバグってるだけ。
この意味で ID:vlvoJs2w は正しい事を言ってる。なお俺は ID:Chhm4gg1)
785デフォルトの名無しさん
2024/04/28(日) 15:55:49.27ID:SU2rs0/X そのようにC/C++を自分は使いこなせると思い込んでいる多くの人たちによってセキュリティホールが生み出し続けられている
結局C/C++を使用禁止にするしか解決策はない
アメリカでは政府レベルで決断して声明を出したので日本も後を追うだろう
「ソフトウェアはメモリ安全でなければならない」との声明を発表、米ホワイトハウス:「C」「C++」よりも「Rust」などの言語を推奨
https://atmarkit.itmedia.co.jp/ait/articles/2403/18/news045.html
結局C/C++を使用禁止にするしか解決策はない
アメリカでは政府レベルで決断して声明を出したので日本も後を追うだろう
「ソフトウェアはメモリ安全でなければならない」との声明を発表、米ホワイトハウス:「C」「C++」よりも「Rust」などの言語を推奨
https://atmarkit.itmedia.co.jp/ait/articles/2403/18/news045.html
786デフォルトの名無しさん
2024/04/28(日) 18:01:20.89ID:cGfg508i AIによるコンパイラによってC/C++は復活する、コンパイル時にメモリ安全がAIによって保障されるのだ
さらにAIコンパイラがはくエラー&提案によって誰もがC/C++マスターとなる
つまりRustの人間にメモリ安全を強制する構文ルールは瞬く間に錆ついてしまうのさw
もちろんAIの恩恵はガベージコレクションにも及びGo、Pythonなどの実行速度も劇的に上がる
つまりRustはすぐに錆びついてしまうのさw AIという母なる海によってね
さらにAIコンパイラがはくエラー&提案によって誰もがC/C++マスターとなる
つまりRustの人間にメモリ安全を強制する構文ルールは瞬く間に錆ついてしまうのさw
もちろんAIの恩恵はガベージコレクションにも及びGo、Pythonなどの実行速度も劇的に上がる
つまりRustはすぐに錆びついてしまうのさw AIという母なる海によってね
787デフォルトの名無しさん
2024/04/28(日) 18:22:25.79ID:OBzO61ZB めちゃくちゃ頭の悪い妄想だな
788デフォルトの名無しさん
2024/04/28(日) 18:41:43.21ID:ebtFAx8m >>785
そう思う人がC/C++を使わなければ済むだけ。
> そのようにC/C++を自分は使いこなせると思い込んでいる多くの人たちによって
なお、これはただのコンプレックスで、
ポインタの概念を理解すら出来ない馬鹿はお引き取り下さいではあるが、
ポインタを理解できたがリークするのは、やり方を知らないだけ。
(そしてここはGoスレであり原則後者だから、前者は死ねでいい)
ただ問題は、Javaの連中が「メモリリークガー」とデタラメに吹聴してるのに騙され、
文法にて縛ってしまうRustに逃げてしまってる事。まあ初心者は文法しか見えないから致し方ないが、
実は定番の手法があり、踏襲すれば絶対にリークしないだけ。
賢いからリークしないわけではなく、知ってるか知らないか、守るか守らないか、でしかない。
そしてRustは実際はC->C++->Rustと来ないと意味もメリットも理解出来ず、
「RustのおかげでCを入門する奴が増え、現在RustよりCの入門者の方が多いじゃねえか!」とか2019頃に言われてた気が。
RustはCを駆逐したいようだが、間抜けな話だ。
そして、Javaが「安全」とされていたのは、
・ポインタにまつわる問題が無い
・配列の境界チェックあり (←これGoはどうだったっけ?忘れた)
・GCありなのでリークしない
・サンドボックス
だと思ったから、技術的に見れば確かにGoはJava+ポインタ=高速版Javaとしての側面はあるのだろうよ。
ただ、マーケティング的に(781)、また技術者リソース的に(784)、当面は無いが。
この意味では俺はRustの方が詰んでると思うよ。AIで出来るとは思って無いが、(>>786)
・動的な境界チェックをやってる限り、Cの速度に勝てない
・静的な境界チェックが出来るようになれば、C++にも導入されるだけ
で、出口が無い。
そして意味もなくマウントを取って来た780が言う様に、現在のJavaプログラマはポインタを扱えるのなら、
Java->Goへの大移動は起きるのかもしれんよ。この意味ではRustよりGoの方がワンチャンある。
(けどまあ、普段やってないことがいきなり出来るわけも無く、ゆとり引きニートの言い分なんてお察し、だが)
そう思う人がC/C++を使わなければ済むだけ。
> そのようにC/C++を自分は使いこなせると思い込んでいる多くの人たちによって
なお、これはただのコンプレックスで、
ポインタの概念を理解すら出来ない馬鹿はお引き取り下さいではあるが、
ポインタを理解できたがリークするのは、やり方を知らないだけ。
(そしてここはGoスレであり原則後者だから、前者は死ねでいい)
ただ問題は、Javaの連中が「メモリリークガー」とデタラメに吹聴してるのに騙され、
文法にて縛ってしまうRustに逃げてしまってる事。まあ初心者は文法しか見えないから致し方ないが、
実は定番の手法があり、踏襲すれば絶対にリークしないだけ。
賢いからリークしないわけではなく、知ってるか知らないか、守るか守らないか、でしかない。
そしてRustは実際はC->C++->Rustと来ないと意味もメリットも理解出来ず、
「RustのおかげでCを入門する奴が増え、現在RustよりCの入門者の方が多いじゃねえか!」とか2019頃に言われてた気が。
RustはCを駆逐したいようだが、間抜けな話だ。
そして、Javaが「安全」とされていたのは、
・ポインタにまつわる問題が無い
・配列の境界チェックあり (←これGoはどうだったっけ?忘れた)
・GCありなのでリークしない
・サンドボックス
だと思ったから、技術的に見れば確かにGoはJava+ポインタ=高速版Javaとしての側面はあるのだろうよ。
ただ、マーケティング的に(781)、また技術者リソース的に(784)、当面は無いが。
この意味では俺はRustの方が詰んでると思うよ。AIで出来るとは思って無いが、(>>786)
・動的な境界チェックをやってる限り、Cの速度に勝てない
・静的な境界チェックが出来るようになれば、C++にも導入されるだけ
で、出口が無い。
そして意味もなくマウントを取って来た780が言う様に、現在のJavaプログラマはポインタを扱えるのなら、
Java->Goへの大移動は起きるのかもしれんよ。この意味ではRustよりGoの方がワンチャンある。
(けどまあ、普段やってないことがいきなり出来るわけも無く、ゆとり引きニートの言い分なんてお察し、だが)
789デフォルトの名無しさん
2024/04/28(日) 20:18:11.49ID:MN1XFv8I 童貞が女の口説き方教えてくれてるような長文
790デフォルトの名無しさん
2024/04/28(日) 21:47:54.49ID:J0uaAvkZ 例え方がキモすぎる
791デフォルトの名無しさん
2024/04/28(日) 23:14:08.57ID:/3v3RYNX そんな心配しなくてもAIが進化すればGOもC/C++もRustもなくなって別の高級言語が生まれるよ、もう会話してればプログラムができちゃうような感じになる
792デフォルトの名無しさん
2024/04/28(日) 23:51:58.46ID:CS4j+YiY >>788
配列の境界チェックは任意に与えられたインデックス値に対してはC言語であろうとなかろうと境界チェック必須
一方で配列の内部であると確認されているなら不要(にすることができる)
例えば配列の内部であると確認されているならその配列内部へのポインタとして持ってしまえば
読み書きアクセスのたびに境界チェックは不要となる
よく使われる配列の全体もしくは一部分の範囲を順にシーケンシャルアクセスする場合もポインタにすれば境界チェックを不要にできる
なぜならその範囲の終端条件に達するまでは内部であると確認されてるため個別の境界チェックは不要
RustがC/C++と同じ速さで動くのもこの原理のため
配列の境界チェックは任意に与えられたインデックス値に対してはC言語であろうとなかろうと境界チェック必須
一方で配列の内部であると確認されているなら不要(にすることができる)
例えば配列の内部であると確認されているならその配列内部へのポインタとして持ってしまえば
読み書きアクセスのたびに境界チェックは不要となる
よく使われる配列の全体もしくは一部分の範囲を順にシーケンシャルアクセスする場合もポインタにすれば境界チェックを不要にできる
なぜならその範囲の終端条件に達するまでは内部であると確認されてるため個別の境界チェックは不要
RustがC/C++と同じ速さで動くのもこの原理のため
793デフォルトの名無しさん
2024/04/29(月) 00:43:52.99ID:Cj8RVhlf >>792
言ってる事は知ってるが、そうではなく、
> 任意に与えられたインデックス値に対して
の時に実際どうしてるか聞いてる。
C言語の場合は、境界チェックして無い。
Rustの場合はするらしい。だからこの部分でどうしてもCより遅くなる。
Javaは勿論やってる。だから馬鹿が書いて添字範囲をオーバーしたら、例外が返されたはず。
Goはどうだったっけ?という事。
で、Javaが792の手法でゴリゴリに高速化し、C比3倍遅かったのが1.8倍程度まで盛り返したのも知ってる。
そしてC#の方はJavaが6,7で留まってた際にも言語自体が進化してたので、高速化がまだJava程には至ってない。
あと、ついでに言うと、(別人かもしれんが)
> セキュリティホールが生み出し続けられている
> 結局C/C++を使用禁止にするしか解決策はない
これも間違いで、C/C++の場合は788に書いたとおり、
・(プログラマの技量により)バグを生みやすい
・ベアメタルなので問題があった場合に直撃する
だが、アプリとしてはバグが無い(上記上側がクリアされてる)、という前提なら、RustはC/C++と比べて安全ではなく、同程度でしかない。
セキュリティホールは設計上のバグだから、言語関係なく発生する。
(だからLinuxをRustで書きなおそうという馬鹿は居ないし、居てもポシャる。
そういえば10-15年程前はLinuxをC++で書き直そう、という連中が居たはずだが、消息聞かないところを見ると、完全にポシャったようだし)
ただ、Javaの場合はセキュリティホールを突いてもVMだから、さらにVMのセキュリティホールを突く必要があり、この意味では安全。
Goの場合はランタイムだから、VM程ではないにしても、ベアメタルよりはまし。ランタイムの実装によっては、VMと同等の堅牢さも確保できる。
ただ、言っちゃ悪いが、Rustの連中がやたら布教に熱心なのは、所詮はその程度の言語なんだと思うよ。
JavaScriptなんて悪口しか聞かないが、蔓延る一方だろ。プログラマに支持されてる言語はこうなるという例だよ。
Rustは精々ポリコレがんばってください。俺はRustは死ぬと予想してるし、そう望んでます。
言ってる事は知ってるが、そうではなく、
> 任意に与えられたインデックス値に対して
の時に実際どうしてるか聞いてる。
C言語の場合は、境界チェックして無い。
Rustの場合はするらしい。だからこの部分でどうしてもCより遅くなる。
Javaは勿論やってる。だから馬鹿が書いて添字範囲をオーバーしたら、例外が返されたはず。
Goはどうだったっけ?という事。
で、Javaが792の手法でゴリゴリに高速化し、C比3倍遅かったのが1.8倍程度まで盛り返したのも知ってる。
そしてC#の方はJavaが6,7で留まってた際にも言語自体が進化してたので、高速化がまだJava程には至ってない。
あと、ついでに言うと、(別人かもしれんが)
> セキュリティホールが生み出し続けられている
> 結局C/C++を使用禁止にするしか解決策はない
これも間違いで、C/C++の場合は788に書いたとおり、
・(プログラマの技量により)バグを生みやすい
・ベアメタルなので問題があった場合に直撃する
だが、アプリとしてはバグが無い(上記上側がクリアされてる)、という前提なら、RustはC/C++と比べて安全ではなく、同程度でしかない。
セキュリティホールは設計上のバグだから、言語関係なく発生する。
(だからLinuxをRustで書きなおそうという馬鹿は居ないし、居てもポシャる。
そういえば10-15年程前はLinuxをC++で書き直そう、という連中が居たはずだが、消息聞かないところを見ると、完全にポシャったようだし)
ただ、Javaの場合はセキュリティホールを突いてもVMだから、さらにVMのセキュリティホールを突く必要があり、この意味では安全。
Goの場合はランタイムだから、VM程ではないにしても、ベアメタルよりはまし。ランタイムの実装によっては、VMと同等の堅牢さも確保できる。
ただ、言っちゃ悪いが、Rustの連中がやたら布教に熱心なのは、所詮はその程度の言語なんだと思うよ。
JavaScriptなんて悪口しか聞かないが、蔓延る一方だろ。プログラマに支持されてる言語はこうなるという例だよ。
Rustは精々ポリコレがんばってください。俺はRustは死ぬと予想してるし、そう望んでます。
794デフォルトの名無しさん
2024/04/29(月) 01:08:13.38ID:ZxN+lFnq >>793
配列の境界チェックをしなければどんな言語でも範囲外アクセスで続行となり致命的な穴となります
だからC/C++以外はどんな言語でも境界チェックが行われています
C/C++でも自分で境界チェックを行わなければ致命的な穴となります
したがってそこで速度差は生じません
配列の境界チェックをしなければどんな言語でも範囲外アクセスで続行となり致命的な穴となります
だからC/C++以外はどんな言語でも境界チェックが行われています
C/C++でも自分で境界チェックを行わなければ致命的な穴となります
したがってそこで速度差は生じません
795デフォルトの名無しさん
2024/04/29(月) 05:43:48.04ID:OeTjgfob なんかスレが進んどる。半分は読んでない。
けど大規模開発になると些細なパフォーマンスは関係なくなることには同意した。
それを差し引いても自分はGoが好き。
けど大規模開発になると些細なパフォーマンスは関係なくなることには同意した。
それを差し引いても自分はGoが好き。
796デフォルトの名無しさん
2024/04/29(月) 08:46:16.16ID:Cj8RVhlf >>794
Cで境界チェックしてる奴なんて、世界中でも誰もいない。
境界オーバーは純粋にバグであり、プログラマの責任でデバッグしておけ、というのがCの文化。
そしてずっとそうやって来てる。
だから動的に境界チェックをしてる限り、RustはCよりも原理的に遅く、実際そう。
この意味ではRustは補助輪付きCであり、補助輪の分だけ遅い。
Rust=馬鹿向けC、といえば分かりやすいか。
そして、C/C++でなんら問題なかった連中からすると、
Rust?記述がウザくなるがリークがなくなって境界チェックしてくれる?
いやリークなんて元々しないし、デバッグもちゃんとやってるから間に合ってるよ、であり、
何もメリットが無いからRustなんて使わない。
Cで境界チェックしてる奴なんて、世界中でも誰もいない。
境界オーバーは純粋にバグであり、プログラマの責任でデバッグしておけ、というのがCの文化。
そしてずっとそうやって来てる。
だから動的に境界チェックをしてる限り、RustはCよりも原理的に遅く、実際そう。
この意味ではRustは補助輪付きCであり、補助輪の分だけ遅い。
Rust=馬鹿向けC、といえば分かりやすいか。
そして、C/C++でなんら問題なかった連中からすると、
Rust?記述がウザくなるがリークがなくなって境界チェックしてくれる?
いやリークなんて元々しないし、デバッグもちゃんとやってるから間に合ってるよ、であり、
何もメリットが無いからRustなんて使わない。
797デフォルトの名無しさん
2024/04/29(月) 08:47:08.70ID:Cj8RVhlf とはいえ数は力である。
Cの場合は「リークや境界オーバーするような馬鹿がコード書くな」であり、
コードを募る場合は中~上級者だけに対象を絞る大前提だが、
Cの場合は「リークや境界オーバーするような馬鹿がコード書くな」であり、
コードを募る場合は中~上級者だけに対象を絞る大前提だが、
798デフォルトの名無しさん
2024/04/29(月) 08:47:32.78ID:Cj8RVhlf Rustの場合は「文法に従ってさえすればリークは防げます、境界オーバーは動的チェックしてます」らしいので、
大多数の馬鹿からもコードを募れる。これが今の時代には向いているのも確か。
ただ、馬鹿向けCなら、Goの方が上だと思うよ。境界チェックしてたかは忘れたけど。
大多数の馬鹿からもコードを募れる。これが今の時代には向いているのも確か。
ただ、馬鹿向けCなら、Goの方が上だと思うよ。境界チェックしてたかは忘れたけど。
799デフォルトの名無しさん
2024/04/29(月) 09:45:04.56ID:yABvkw5a800デフォルトの名無しさん
2024/04/29(月) 11:03:19.56ID:Cj8RVhlf >>799
なら馬鹿向けCはやはりGoで決まりだな。
そして、「僕は馬鹿だから補助輪ください」か、
「俺はちゃんとデバッグするから補助輪なんてイラネエ、100%の速さをくれ」か選べる。
それでいいのでは。
(というかこの辺グダってるのはRustだけで、Go使う連中は最初から100%の速度なんて求めてない。
Rustが原理的にCより遅いのは回避しようも無い事実なのに、嘘ぶいてるからおかしなことになる。
そしてこの手のことを「選択肢を絞り、政治的に解決する」のがパヨクの常套手段で、典型的には>>785
パヨってるRustは当然嫌われてるだけ)
ただまあ、もう一度整理すると、Goは
・ポインタにまつわる問題はそれなりに対策されてる
・配列の境界チェックあり
・GCあり
・ランタイム
だから、経緯とか界隈の文化とか技術者の状況を無視して、単に純粋に言語の技術的側面だけを見ると、Goは
> javaの後継 (>>773)
は言えてるのかもしれんね。
そういえばJavaは「元祖馬鹿向けC」、Goは「2代目馬鹿向けC」と言われてたし、自然な発想なのかも。
ただ「安全」に関しては、一度保険をかけたら二度と戻れないものだから、Javaの連中がGoを「安全」と見なす事はなかなか無いとも思うが。
(ランタイムエラーを吐いてくれる環境で動いているソフトは、
ランタイムエラーで誤魔化せてるから動いているのか、
そもそもバグが無いからランタイムエラーは絶対にないのか、区別付かない。
だから、ランタイムエラーがある環境でどれだけ動かした実績があっても、『保険』をはずしてベアメタルに持って行くことは出来ない)
なら馬鹿向けCはやはりGoで決まりだな。
そして、「僕は馬鹿だから補助輪ください」か、
「俺はちゃんとデバッグするから補助輪なんてイラネエ、100%の速さをくれ」か選べる。
それでいいのでは。
(というかこの辺グダってるのはRustだけで、Go使う連中は最初から100%の速度なんて求めてない。
Rustが原理的にCより遅いのは回避しようも無い事実なのに、嘘ぶいてるからおかしなことになる。
そしてこの手のことを「選択肢を絞り、政治的に解決する」のがパヨクの常套手段で、典型的には>>785
パヨってるRustは当然嫌われてるだけ)
ただまあ、もう一度整理すると、Goは
・ポインタにまつわる問題はそれなりに対策されてる
・配列の境界チェックあり
・GCあり
・ランタイム
だから、経緯とか界隈の文化とか技術者の状況を無視して、単に純粋に言語の技術的側面だけを見ると、Goは
> javaの後継 (>>773)
は言えてるのかもしれんね。
そういえばJavaは「元祖馬鹿向けC」、Goは「2代目馬鹿向けC」と言われてたし、自然な発想なのかも。
ただ「安全」に関しては、一度保険をかけたら二度と戻れないものだから、Javaの連中がGoを「安全」と見なす事はなかなか無いとも思うが。
(ランタイムエラーを吐いてくれる環境で動いているソフトは、
ランタイムエラーで誤魔化せてるから動いているのか、
そもそもバグが無いからランタイムエラーは絶対にないのか、区別付かない。
だから、ランタイムエラーがある環境でどれだけ動かした実績があっても、『保険』をはずしてベアメタルに持って行くことは出来ない)
801デフォルトの名無しさん
2024/04/29(月) 11:07:50.34ID:2zp3j2iQ Cと違ってGoは賢い
str := "01234"
a := []byte(str)
fmt.Println(a[3]) // → 51 (3のascii code)
fmt.Println(a[3:5]) // → [51 52] (3と4のascii code)
fmt.Println(a[3:7]) // → [51 52 0 0] (範囲外の値は0になる)
fmt.Println(a[3:9]) // → panic: runtime error: slice bounds out of range [:9] with capacity 8
str := "01234"
a := []byte(str)
fmt.Println(a[3]) // → 51 (3のascii code)
fmt.Println(a[3:5]) // → [51 52] (3と4のascii code)
fmt.Println(a[3:7]) // → [51 52 0 0] (範囲外の値は0になる)
fmt.Println(a[3:9]) // → panic: runtime error: slice bounds out of range [:9] with capacity 8
802デフォルトの名無しさん
2024/04/29(月) 11:37:52.73ID:Cj8RVhlf803デフォルトの名無しさん
2024/04/29(月) 12:54:08.59ID:DB9NwYGr キータにでも行ってくれ
804デフォルトの名無しさん
2024/04/30(火) 23:59:10.31ID:QUZ1c+LP >>802
なぜ?
なぜ?
805デフォルトの名無しさん
2024/05/01(水) 08:22:11.43ID:0mD/sHeG >>804
動作の一貫性が無いから。
或いは
fmt.Println(a[3:9]) を [51 52 0 0 0 0 ] (範囲外の値は0になる)
でもいいが、べき論ならランタイムエラーに揃えるべき。
境界オーバーはプログラマ起因の単なるバグであり、修正することを期待されるので。
ランタイムエラーは本来
・メモリ不足
・DB開こうと思ったが応答が無い、或いは何らかの理由でDBに書き込みが出来ない
・ユーザー文字列をevalしようとしたが、エラーになる
等の、『プログラマのミスではない』問題に遭遇する可能性がある局面でtry-catchするものであって、
プログラマ起因のバグがあってもそれなりに動かす為の仕組みではない。
けどまあ、実際はお前のように後者だと勘違いしてる奴が多いのも事実。
だからJavaは基本的に低品質、というかCでは許されない品質のコードが大量に混入することになる。
これをもって「安全」とするのは本来は間違ってる。
(低品質のコードでもそれなりに動かせる環境自体は研究する価値があるのも事実だが、これは本来は明確に別件としてやるべき。
なおGoの場合はpanicから復旧する手段はなかったような気がするので、この点は多少ましかも)
動作の一貫性が無いから。
或いは
fmt.Println(a[3:9]) を [51 52 0 0 0 0 ] (範囲外の値は0になる)
でもいいが、べき論ならランタイムエラーに揃えるべき。
境界オーバーはプログラマ起因の単なるバグであり、修正することを期待されるので。
ランタイムエラーは本来
・メモリ不足
・DB開こうと思ったが応答が無い、或いは何らかの理由でDBに書き込みが出来ない
・ユーザー文字列をevalしようとしたが、エラーになる
等の、『プログラマのミスではない』問題に遭遇する可能性がある局面でtry-catchするものであって、
プログラマ起因のバグがあってもそれなりに動かす為の仕組みではない。
けどまあ、実際はお前のように後者だと勘違いしてる奴が多いのも事実。
だからJavaは基本的に低品質、というかCでは許されない品質のコードが大量に混入することになる。
これをもって「安全」とするのは本来は間違ってる。
(低品質のコードでもそれなりに動かせる環境自体は研究する価値があるのも事実だが、これは本来は明確に別件としてやるべき。
なおGoの場合はpanicから復旧する手段はなかったような気がするので、この点は多少ましかも)
806デフォルトの名無しさん
2024/05/07(火) 01:44:11.10ID:YTph46y4 んで、けっきょく今時点だとGoとRustはどっちがええねん
どうせ「用途による」とか玉虫色の回答しか言えないやろ
どうせ「用途による」とか玉虫色の回答しか言えないやろ
807デフォルトの名無しさん
2024/05/07(火) 04:24:12.21ID:Usgj6GuW808デフォルトの名無しさん
2024/05/07(火) 06:37:23.80ID:uUsSNCvM809デフォルトの名無しさん
2024/06/18(火) 21:17:45.07ID:thkKQsLJ tinygo 0.32.0きたね
810デフォルトの名無しさん
2024/06/19(水) 23:06:48.88ID:lxA6IPUt TinyGo 知らなくて、流行の組み込み用サブセットみたいなヤツかと思ってググってみたらそのとおりなんだけど
WebAssembly でも出力できるんだな
意外と良いかもしれない
WebAssembly でも出力できるんだな
意外と良いかもしれない
811デフォルトの名無しさん
2024/07/28(日) 18:50:53.82ID:VSMJ57p1 UTF-8をShift-JISにエラー無く文字コード変換したいんだけどググって出るサンプルは変換できない。
実例ないですか?
実例ないですか?
812デフォルトの名無しさん
2024/08/07(水) 05:15:10.47ID:b8ckcWsL TinyGo よいよね
813デフォルトの名無しさん
2024/10/06(日) 12:22:59.83ID:GjPRl5Ej WindowsでExec.Command()でPipe経由の
処理ってできるの? コマンド実行エラーになる
処理ってできるの? コマンド実行エラーになる
814デフォルトの名無しさん
2024/12/18(水) 11:16:14.03ID:Fcikaz4J 最も使うプログラミング言語、Python連覇 COBOL上昇
https://www.nikkei.com/article/DGXZQOUC045XF0U4A201C2000000/
https://www.nikkei.com/article/DGXZQOUC045XF0U4A201C2000000/
815デフォルトの名無しさん
2024/12/25(水) 08:07:30.27ID:GJM9sM3F 日時のシリアル値から
実際の日時に変換するには
どうしたらよいですか?
実際の日時に変換するには
どうしたらよいですか?
816デフォルトの名無しさん
2024/12/25(水) 23:28:06.92ID:GEl1btnw シリアル値って何?UNIX時刻?UNIX()あるよ
817デフォルトの名無しさん
2024/12/29(日) 14:52:44.20ID:zCgGYAuT シリコンバレーの1流のエンジニアがGoの入門書を書いた! みたいな本を見かけたから買ってみたわ。
買ったからには読むけど、20/100点ぐらいの本だろうな。
買ったからには読むけど、20/100点ぐらいの本だろうな。
818デフォルトの名無しさん
2024/12/29(日) 18:55:25.73ID:oYZ6o+kR 発売前からアマゾン1位jのやつだろ?
819デフォルトの名無しさん
2024/12/30(月) 00:21:57.66ID:k4D/bjHI 立ち読みしたけど至って普通だった
Goの本はレベル高いものが多いからそれに比べると普通に入門書レベル
Goの本はレベル高いものが多いからそれに比べると普通に入門書レベル
820デフォルトの名無しさん
2025/01/04(土) 13:31:21.68ID:WESXQo65 【IT】初心者が最初に学ぶプログラミング言語 3位「Python」、2位「C言語」、1位は?
https://egg.5ch.net/test/read.cgi/bizplus/1735924157/
https://egg.5ch.net/test/read.cgi/bizplus/1735924157/
821デフォルトの名無しさん
2025/01/04(土) 14:11:45.29ID:9AJmtK0P Rust
822!id:ignore
2025/01/18(土) 15:45:57.85ID:psWyJuAY ジジイは死んだんか?w
823デフォルトの名無しさん
2025/01/18(土) 17:34:58.21ID:GKVJYNVC Javaはメソッド呼び出し時の引数が
プリミティブの場合、コピー渡し
オブジェクトの場合、参照渡し
合理的
プリミティブの場合、コピー渡し
オブジェクトの場合、参照渡し
合理的
824デフォルトの名無しさん
2025/01/18(土) 17:35:50.07ID:GKVJYNVC GoにはもしかしてちゃんとしたHTMLパーサーがあるのでは
825デフォルトの名無しさん
2025/01/18(土) 22:02:52.51ID:ny4wzC1o826デフォルトの名無しさん
2025/01/18(土) 23:07:47.87ID:hsUpJ/OC そもそも前提が間違ってる
Javaには値渡ししかない
これ何十年も前から何度も何度も初心者に言って聞かせるやつ
「プリミティブ型の値渡し」「参照型変数の値渡し」これしかない
void foo(std::string s) { // c++ 値渡し
s = "foo"; // 呼び出し元に影響なし
}
void bar(std::string &s) { // c++ 参照渡し
s = "bar"; // 呼び出し元に代入される
}
void foo(String s) { // Java 値渡し
s = "foo"; // 呼び出し元に影響なし
}
このことってそんなに難しい?
なんで初心者はいつもここ間違うの?
Javaには値渡ししかない
これ何十年も前から何度も何度も初心者に言って聞かせるやつ
「プリミティブ型の値渡し」「参照型変数の値渡し」これしかない
void foo(std::string s) { // c++ 値渡し
s = "foo"; // 呼び出し元に影響なし
}
void bar(std::string &s) { // c++ 参照渡し
s = "bar"; // 呼び出し元に代入される
}
void foo(String s) { // Java 値渡し
s = "foo"; // 呼び出し元に影響なし
}
このことってそんなに難しい?
なんで初心者はいつもここ間違うの?
827デフォルトの名無しさん
2025/01/19(日) 07:54:07.72ID:ThZcQehm Javaは参照型について
参照値自体の値渡ししか出来ないの?
参照値が指してる先の値の値渡しが出来ないってこと?
効率悪いね
参照値自体の値渡ししか出来ないの?
参照値が指してる先の値の値渡しが出来ないってこと?
効率悪いね
828デフォルトの名無しさん
2025/01/19(日) 09:11:16.49ID:aE0XKMyP んなことはない
参照値自体の値渡し : 参照値をコピー→必要に応じて渡した先でデリファレンス
参照値が指してる先の実体の値渡し : デリファレンス→実体の値をコピー
ここで、一般に参照値のコピーは単なる64ビットの数値のコピーであるのに対して、実体の値は複合データであるため単なる参照値よりコピーのコストが大きい
従って、殆どのケースでは後者の方が非効率である
参照値自体の値渡し : 参照値をコピー→必要に応じて渡した先でデリファレンス
参照値が指してる先の実体の値渡し : デリファレンス→実体の値をコピー
ここで、一般に参照値のコピーは単なる64ビットの数値のコピーであるのに対して、実体の値は複合データであるため単なる参照値よりコピーのコストが大きい
従って、殆どのケースでは後者の方が非効率である
829デフォルトの名無しさん
2025/01/19(日) 09:57:03.41ID:ThZcQehm >>828
間違っている
関数への参照(アドレス)渡しはその先で実際の値があるメモリを読み込んでようやく値を得るから遅くなる
呼び出し元関数でも実値を何らか処理していることが多いので既にレジスタ上にあることが多い
したがって参照アドレス渡しではなく値をレジスタ渡しで関数を呼び出すのが速い
間違っている
関数への参照(アドレス)渡しはその先で実際の値があるメモリを読み込んでようやく値を得るから遅くなる
呼び出し元関数でも実値を何らか処理していることが多いので既にレジスタ上にあることが多い
したがって参照アドレス渡しではなく値をレジスタ渡しで関数を呼び出すのが速い
830デフォルトの名無しさん
2025/01/19(日) 16:14:51.30ID:sBZWn6/U もし一般的にその説が成り立つなら大きな構造体のコピーを避けることを目的とした参照渡しをする必要はないことになるが、そう主張したいのか?
831デフォルトの名無しさん
2025/01/19(日) 16:41:50.96ID:ThZcQehm >>830
常に参照を渡すばかりではなく適材適所で使い分けられることが重要という話だぞ
自分の関数でも処理をしているデータなら既にメモリから読み込んでレジスタ上にあるから遅くなるアドレス渡しの必要がないという話
もちろん関数にレジスタ渡しできるサイズは限りがありABIで定められている
例えば86系64bitでLinux等なら64bit✕6個まてはレジスタ渡しできる
常に参照を渡すばかりではなく適材適所で使い分けられることが重要という話だぞ
自分の関数でも処理をしているデータなら既にメモリから読み込んでレジスタ上にあるから遅くなるアドレス渡しの必要がないという話
もちろん関数にレジスタ渡しできるサイズは限りがありABIで定められている
例えば86系64bitでLinux等なら64bit✕6個まてはレジスタ渡しできる
832デフォルトの名無しさん
2025/01/19(日) 21:01:24.78ID:NFqklhON オブジェクトはコピーに時間と空間が必要なので参照渡し
合理的すぎる
合理的すぎる
833デフォルトの名無しさん
2025/01/19(日) 21:24:12.64ID:ThZcQehm834デフォルトの名無しさん
2025/01/19(日) 22:26:45.76ID:NRA+hS8C Goの場合は、
どうせコピーのコストが大きな問題になるようなオブジェクトはコレクションと文字列だけ
だからそいつらさえ常に参照(の値)渡しになるようにしときゃ構造体は基本的には値渡しで実用上問題ないだろう
という極めて雑というか実用主義的な判断のなされた仕様になっている
実際には参照渡しの方が効率的なケースも多いが、少々の効率を理由にポインタ渡しを選ぶことは好まれないのがGo流
どうせコピーのコストが大きな問題になるようなオブジェクトはコレクションと文字列だけ
だからそいつらさえ常に参照(の値)渡しになるようにしときゃ構造体は基本的には値渡しで実用上問題ないだろう
という極めて雑というか実用主義的な判断のなされた仕様になっている
実際には参照渡しの方が効率的なケースも多いが、少々の効率を理由にポインタ渡しを選ぶことは好まれないのがGo流
835デフォルトの名無しさん
2025/01/21(火) 16:27:44.96ID:ZMbV0RT+ Javaは目からウロコが落ちる出来事だった
836デフォルトの名無しさん
2025/01/21(火) 16:29:19.66ID:ZMbV0RT+ ちょっと聞いてよ私はハゲ
20世紀からのC/C++使い
20世紀からのC/C++使い
837デフォルトの名無しさん
2025/01/21(火) 20:51:56.00ID:5TvrHQ5p お呼びじゃない
カエレ!
カエレ!
838デフォルトの名無しさん
2025/01/22(水) 16:05:32.40ID:31zP0ljX だいたいGoって名前がダサすぎる
なんだよゴーってよ、ゴー!!ゴー!!ゴープログラミング!!ってかwwww昭和かよwwwwwwwwww
なんだよゴーってよ、ゴー!!ゴー!!ゴープログラミング!!ってかwwww昭和かよwwwwwwwwww
839デフォルトの名無しさん
2025/02/11(火) 23:43:29.84ID:Y9rsnGHI アセンブラを知らないから
どういうコードに落ちるか
想像つかないんだろな
どういうコードに落ちるか
想像つかないんだろな
840デフォルトの名無しさん
2025/02/11(火) 23:45:13.36ID:Y9rsnGHI 昔はレジスタに値をセットして割り込みかけるのがシステム呼び出しだったから
どんな言語使ってようがアセンブラは必須だった
どんな言語使ってようがアセンブラは必須だった
841デフォルトの名無しさん
2025/02/12(水) 10:56:43.50ID:WpGOIYcm ブブー
間違いです
間違いです
842デフォルトの名無しさん
2025/03/02(日) 23:09:02.68ID:XbVt9o5l Javaで参照渡したいとき配列で渡してたわ
843デフォルトの名無しさん
2025/05/15(木) 21:27:28.17ID:3mZF5L/S 【海外記事紹介】Go言語から離れる開発者が増えている?その理由とは
https://techfeed.io/entries/68250b69c4e1671f6888ca33
Go は 2007 年に Rob Pike、Ken Thompson、Robert Griesemer が開発し、クラウド・インフラ向け言語(“C of the Cloud”)として脚光を浴びた。しかし 2022 年頃から、早期採用者の間で「プロトタイピング専用言語」「入門用言語」として位置づけ直す声が増え始めた。背景にはエコシステムの限界や AI ワークフローとの相性の悪さがある。
Go から離脱する開発者が挙げる代表的な不満点は次のとおりだ。
エラー処理が冗長で、同じ if err != nil パターンが散在する。
goroutine は強力だが、競合状態や静かな失敗を招きやすく、テストが難しい。
“No frameworks” 文化により、共通機能を一から実装する負担が大きい。
Go エンジニアの母数が少なく、採用・オンボーディングコストが高い。
生成 AI が慣用的な Go コードを出力しづらく、Python などに比べ生産性が劣る。
一方で、パフォーマンスとシンプルさを兼ね備えた Zig、豊富なツールチェーンを持つ Kotlin、安全性と速度で評価される Rust などの新たな言語は、Go言語への不満を解消する選択肢として、開発者たちの関心を集めているという。
https://techfeed.io/entries/68250b69c4e1671f6888ca33
Go は 2007 年に Rob Pike、Ken Thompson、Robert Griesemer が開発し、クラウド・インフラ向け言語(“C of the Cloud”)として脚光を浴びた。しかし 2022 年頃から、早期採用者の間で「プロトタイピング専用言語」「入門用言語」として位置づけ直す声が増え始めた。背景にはエコシステムの限界や AI ワークフローとの相性の悪さがある。
Go から離脱する開発者が挙げる代表的な不満点は次のとおりだ。
エラー処理が冗長で、同じ if err != nil パターンが散在する。
goroutine は強力だが、競合状態や静かな失敗を招きやすく、テストが難しい。
“No frameworks” 文化により、共通機能を一から実装する負担が大きい。
Go エンジニアの母数が少なく、採用・オンボーディングコストが高い。
生成 AI が慣用的な Go コードを出力しづらく、Python などに比べ生産性が劣る。
一方で、パフォーマンスとシンプルさを兼ね備えた Zig、豊富なツールチェーンを持つ Kotlin、安全性と速度で評価される Rust などの新たな言語は、Go言語への不満を解消する選択肢として、開発者たちの関心を集めているという。
844デフォルトの名無しさん
2025/05/16(金) 10:08:38.99ID:0+k5rvu6 pythonよりAIの相性が悪い??動的言語なのにいいわけねーだろ笑
zigとRustとか流石にバカすぎるw 低レイヤ用の言語でIT土方は関わらない言語なのにw
そして書いてある欠点がないC#は無視されてて草
zigとRustとか流石にバカすぎるw 低レイヤ用の言語でIT土方は関わらない言語なのにw
そして書いてある欠点がないC#は無視されてて草
845デフォルトの名無しさん
2025/05/16(金) 12:17:23.65ID:lEpbiicE C#はLinuxと相性悪そうだからね。候補に挙げられない
846デフォルトの名無しさん
2025/05/16(金) 12:30:40.01ID:0+k5rvu6847デフォルトの名無しさん
2025/05/16(金) 12:32:36.26ID:lEpbiicE848デフォルトの名無しさん
2025/05/16(金) 12:34:31.04ID:lEpbiicE IDEはjetbrains製のか。VSがLinux来ないと
849デフォルトの名無しさん
2025/05/16(金) 12:55:52.74ID:0+k5rvu6 無知乙
2014から.NET Coreが出て完全にクロスプラットフォームだわ
Github ActionsとかC#で描かれてるし、stackoverflowもそう
開発PCはWindowsでサーバはLinuxを使えばいいだけ
Linux環境欲しいならWSL2を使えばいい
Macみたいなバカみたいな高いPC買う必要ないし会社でもメリットが多い
>>848
Goも同じだけど何言ってんだ?IDEはGolandしかないよね、LSPでVSCodeやneovimが使えるのはC#もGoも共通なんだが?
2014から.NET Coreが出て完全にクロスプラットフォームだわ
Github ActionsとかC#で描かれてるし、stackoverflowもそう
開発PCはWindowsでサーバはLinuxを使えばいいだけ
Linux環境欲しいならWSL2を使えばいい
Macみたいなバカみたいな高いPC買う必要ないし会社でもメリットが多い
>>848
Goも同じだけど何言ってんだ?IDEはGolandしかないよね、LSPでVSCodeやneovimが使えるのはC#もGoも共通なんだが?
850デフォルトの名無しさん
2025/05/16(金) 13:17:59.65ID:ZrzvRQZn IDEがないとビルドできないマンが量産されてるのか
Javaの二の舞
Javaの二の舞
851デフォルトの名無しさん
2025/05/16(金) 22:37:19.26ID:QkGxg+AB Goはルーン文字と同じ運命をたどりそうだな
紙が普及した時代に原始的な彫刻文字は流行らない
時代に合わせて形を変えないと
紙が普及した時代に原始的な彫刻文字は流行らない
時代に合わせて形を変えないと
852デフォルトの名無しさん
2025/05/17(土) 11:22:02.13ID:3jmwF1/p GC付きCとしては残るんじゃね?
言語の衰退期に入ったのは事実だろうが、それならJavaやPHPも同じ
個人的には死んで欲しいのはRust、理由は信者がウザイから
○○付きC、が乱立気味なのは、Cがやる気無さすぎなのと、C++が暴走してるから
ゆうて今後コア数はてんこ盛りになるようだし、goroutineが速ければワンチャンあるが…
https://qiita.com/kawasin73/items/3d2aa21f0b4bf05de1c6
言語の衰退期に入ったのは事実だろうが、それならJavaやPHPも同じ
個人的には死んで欲しいのはRust、理由は信者がウザイから
○○付きC、が乱立気味なのは、Cがやる気無さすぎなのと、C++が暴走してるから
ゆうて今後コア数はてんこ盛りになるようだし、goroutineが速ければワンチャンあるが…
https://qiita.com/kawasin73/items/3d2aa21f0b4bf05de1c6
853デフォルトの名無しさん
2025/05/17(土) 12:23:41.13ID:psW4ob0W854デフォルトの名無しさん
2025/05/17(土) 12:39:18.59ID:3jmwF1/p >>853
> 既に進んでいる
と思ってるのは信者だけ。まだ実際は「入った」事がニュースになる程度
まあ昨日話題になってたがマスゴミ的に「モームリが大盛況!!!」と同レベル
そして必ず信者が沸くのが本当にウザイ
> 既に進んでいる
と思ってるのは信者だけ。まだ実際は「入った」事がニュースになる程度
まあ昨日話題になってたがマスゴミ的に「モームリが大盛況!!!」と同レベル
そして必ず信者が沸くのが本当にウザイ
855デフォルトの名無しさん
2025/05/17(土) 12:49:46.67ID:psW4ob0W856デフォルトの名無しさん
2025/05/17(土) 13:06:04.46ID:3jmwF1/p はいはいすごいね
だけどそんな事を言ったら、C無しで出来る事って何もないのでは?
JavaやC#も同レベルだし
マジでRust信者は死んで欲しいし、殺す為に新言語を開発したいと思うよ
だけどそんな事を言ったら、C無しで出来る事って何もないのでは?
JavaやC#も同レベルだし
マジでRust信者は死んで欲しいし、殺す為に新言語を開発したいと思うよ
857デフォルトの名無しさん
2025/05/17(土) 13:12:54.63ID:nvkQ7OLi Rustスレでやってください…
858デフォルトの名無しさん
2025/05/17(土) 13:33:19.14ID:oMoLZOju C言語の役目を完全に置き換えることができるRustの出現はデカいよな
Goはシンプルな芸術的な反面で色々と中途半端な機能と立ち位置になってしまった気がする
>>856
Rustを置き換えることができる新言語の開発すばらしい!
C→Rustで43年間かかったらしいけど
今はまだ芽も発見されてないから早くて20年後かなあ
Goはシンプルな芸術的な反面で色々と中途半端な機能と立ち位置になってしまった気がする
>>856
Rustを置き換えることができる新言語の開発すばらしい!
C→Rustで43年間かかったらしいけど
今はまだ芽も発見されてないから早くて20年後かなあ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国国連大使「日本が中国に武力行使すると脅しをかけたのは初めて」 国連事務総長に書簡★5 [♪♪♪★]
- 【芸能】44歳・池脇千鶴、激変ぶりにネット衝撃 「まるで別人…」「変化が凄い!!」の声 [冬月記者★]
- 【🐼】パンダ、日本で会えなくなる? 中国との関係悪化で不安の声 ★2 [ぐれ★]
- なぜ立花孝志氏の言葉は信じられたのか…"異例の逮捕"が浮き彫りにした「SNSの危険な病理」 [ぐれ★]
- 高市首相告白「『なめられない服』を選ぶことに数時間を費やしました」「外交交渉でマウント取れる服、買わなくてはいかんかもなぁ」★4 [ぐれ★]
- 竹中平蔵氏、万博は大成功だったと持論 批判していた人々にチクリ「反省の弁の一つも聞きたい」 [バイト歴50年★]
- 『丸美屋 麻婆豆腐』を『Cook Do』並の味にするための、『追い調味料』ってないの?
- 定時で帰ろうとしたら上司に「男なんだろ?」って言われた
- 親の職業書く時あるじゃん?会社員とか会社役員とか あれ国会議員大臣だったらなんて書くの?
- 近所のスーパーで新米が全く売れてなくてワロタ。このままだと虫が湧きそうwww
- 俺「レジ袋気持ち多めで」店員「有料になります」俺「無料の奴」店員「有料です…」俺「生理用ナプキン入れる奴無料だろ」
- おーいもう朝だぞー太陽出る時間だぞー
