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
2022/03/04(金) 15:52:46.98ID:4zB49VIz
99デフォルトの名無しさん
2022/03/04(金) 16:07:29.53ID:wUg1CCTJ100デフォルトの名無しさん
2022/03/04(金) 16:41:14.71ID:2tyOtSaX101デフォルトの名無しさん
2022/03/04(金) 17:03:59.90ID:k6Ka/u1X102デフォルトの名無しさん
2022/03/04(金) 17:23:53.33ID:wUg1CCTJ 確かに、いい加減Goの話に戻そう。
103デフォルトの名無しさん
2022/03/04(金) 18:00:31.30ID:JMvj/uct104デフォルトの名無しさん
2022/03/04(金) 18:09:02.15ID:4zB49VIz105デフォルトの名無しさん
2022/03/04(金) 18:20:16.68ID:rY1xxy8+ そうだね
じゃあ 1.18 の話でもしよう
せっかく Generics が入るみたいのに、slice での Map、Reduce、Filter みたいなユーティリティが提供されないっぽいよね?
今はとりあえず準標準といえるものがこれ https://pkg.go.dev/golang.org/x/exp/slices
だと思うんだけど、そのうち増えるのかな?
例えばこんな感じの実装↓でいいと思うんだけど、本家でなんか議論されてるん? Go追いかけてるひとおせーて!
https://gotipplay.golang.org/p/Y2cpCCPjKqr
じゃあ 1.18 の話でもしよう
せっかく Generics が入るみたいのに、slice での Map、Reduce、Filter みたいなユーティリティが提供されないっぽいよね?
今はとりあえず準標準といえるものがこれ https://pkg.go.dev/golang.org/x/exp/slices
だと思うんだけど、そのうち増えるのかな?
例えばこんな感じの実装↓でいいと思うんだけど、本家でなんか議論されてるん? Go追いかけてるひとおせーて!
https://gotipplay.golang.org/p/Y2cpCCPjKqr
106デフォルトの名無しさん
2022/03/04(金) 18:21:39.81ID:rY1xxy8+ 他のインタフェースが検討されてるとしたら、メソッドチェーンできるようにしたい、とかかな?
107デフォルトの名無しさん
2022/03/04(金) 19:18:02.80ID:rpzx0HJl Rustに移行すべきでは?
108デフォルトの名無しさん
2022/03/04(金) 19:23:47.26ID:L8b5lnOt109デフォルトの名無しさん
2022/03/04(金) 19:26:20.71ID:gF7ObJcT GoスレでRustRust言う奴から得るもんは何もない
失せろ
失せろ
110デフォルトの名無しさん
2022/03/04(金) 19:27:58.27ID:2tyOtSaX111デフォルトの名無しさん
2022/03/04(金) 19:30:36.16ID:tHN8vl7V たしかに効率的にするならイテレータにしないとね
それで簡単に仕様が決まらんのかな
それで簡単に仕様が決まらんのかな
112デフォルトの名無しさん
2022/03/04(金) 19:41:10.06ID:aLx0Ek8o 今一番rustの話で盛り上がるのがこのスレだからな
113デフォルトの名無しさん
2022/03/04(金) 20:33:03.39ID:3r4UVkMf Rust スレはどうなっているんだw
114デフォルトの名無しさん
2022/03/04(金) 20:34:31.83ID:JMvj/uct NGword: Rust
なんでこれしないのか?
なんでこれしないのか?
115デフォルトの名無しさん
2022/03/04(金) 20:36:30.45ID:JMvj/uct116デフォルトの名無しさん
2022/03/04(金) 20:41:31.76ID:e8gLPWot >>110
それ7年前のRust 1.0公開時からサポートしてる機能だが
Rustはプル型にすることで無駄な動きをゼロにしつつメソッドチェーンの形になってもヒープを使わずスタック上のみで動く特徴がある
しかしGoでは受け入れられる方針なのだろうか?
一方でプッシュ型であるチャネルを使った実装だとプッシュ型にすることでのムダよりもgoroutineを使うオーバーヘッドが大きい
それ7年前のRust 1.0公開時からサポートしてる機能だが
Rustはプル型にすることで無駄な動きをゼロにしつつメソッドチェーンの形になってもヒープを使わずスタック上のみで動く特徴がある
しかしGoでは受け入れられる方針なのだろうか?
一方でプッシュ型であるチャネルを使った実装だとプッシュ型にすることでのムダよりもgoroutineを使うオーバーヘッドが大きい
117デフォルトの名無しさん
2022/03/06(日) 19:22:52.31ID:oq6skpEb >>40
そのとおり。
決定的なのは、goをRustで実装してしまえばいいw
それがすべてだろw逆にRustをgoで実装することは何万年立っても不可能なんだからw
なぜならgcのある言語でgcのない言語を実装できないから
そのとおり。
決定的なのは、goをRustで実装してしまえばいいw
それがすべてだろw逆にRustをgoで実装することは何万年立っても不可能なんだからw
なぜならgcのある言語でgcのない言語を実装できないから
118デフォルトの名無しさん
2022/03/06(日) 19:40:37.34ID:UDoFVzdd Istioがまさにそうだよ
> RustをGoで実装
> RustをGoで実装
119デフォルトの名無しさん
2022/03/06(日) 21:05:29.02ID:Rcp3w968 フリーランスだけど未経験OKのところに応募してみた。
採用されたらよろしくな。
採用されたらよろしくな。
120デフォルトの名無しさん
2022/03/06(日) 21:06:19.97ID:D8Ku8/qP121デフォルトの名無しさん
2022/03/06(日) 23:38:19.72ID:0i0EE3CI >>117
コンパイラの処理って何か知ってる?
コンパイラの処理って何か知ってる?
122デフォルトの名無しさん
2022/03/07(月) 00:39:41.57ID:kssBp/wX123デフォルトの名無しさん
2022/03/07(月) 00:44:33.34ID:otYxLRpr >>122
goでメモリ管理まで書くの?そしたら所有権とかの概念があるRustに軍配があがるだろ
goでメモリ管理まで書くの?そしたら所有権とかの概念があるRustに軍配があがるだろ
124デフォルトの名無しさん
2022/03/07(月) 08:43:53.50ID:s5yg+NZx125デフォルトの名無しさん
2022/03/07(月) 08:55:53.15ID:q3eUi8ps RustあげてるやつがRustの良さを何も理解できてないのがホント阿呆らしい
126デフォルトの名無しさん
2022/03/07(月) 09:07:37.44ID:MlZ6kc9H >>123
既にGoでGoのGC書いてるじゃん。
既にGoでGoのGC書いてるじゃん。
127デフォルトの名無しさん
2022/03/07(月) 10:35:08.70ID:otYxLRpr128デフォルトの名無しさん
2022/03/07(月) 11:00:36.82ID:s5yg+NZx >>127
Rustのメモリ管理の実現方式を理解出来てないと思う
コンパイル時に行われることと、コンパイルされた機械語が行うことの区別は出来てる?
Rustの所有権の処理はコンパイル時に行われるので、そのコンパイラがRustで書かれていようとGoで書かれていようと関係無い
Rustのメモリ管理の実現方式を理解出来てないと思う
コンパイル時に行われることと、コンパイルされた機械語が行うことの区別は出来てる?
Rustの所有権の処理はコンパイル時に行われるので、そのコンパイラがRustで書かれていようとGoで書かれていようと関係無い
129デフォルトの名無しさん
2022/03/07(月) 12:03:12.32ID:2hk0Nxfy130デフォルトの名無しさん
2022/03/07(月) 14:11:55.83ID:SxK5Ewlv >>123
どの言語に対するコンパイラもインタプリタも別のほとんどの言語で書ける
例えばプリミティブ以外は全てオブジェクト型になってしまうJavaScriptでもGoやRustのコンパイラを記述可能
もちろん記述可能性とは別の話として言語機能の強力さや高速性と省メモリ等の点から現存言語ではRustが最も有利であるだけにすぎない
どの言語に対するコンパイラもインタプリタも別のほとんどの言語で書ける
例えばプリミティブ以外は全てオブジェクト型になってしまうJavaScriptでもGoやRustのコンパイラを記述可能
もちろん記述可能性とは別の話として言語機能の強力さや高速性と省メモリ等の点から現存言語ではRustが最も有利であるだけにすぎない
131デフォルトの名無しさん
2022/03/07(月) 15:56:13.82ID:kssBp/wX133デフォルトの名無しさん
2022/03/07(月) 17:12:28.11ID:otYxLRpr134デフォルトの名無しさん
2022/03/07(月) 17:14:22.08ID:otYxLRpr135デフォルトの名無しさん
2022/03/07(月) 17:54:54.88ID:I/Rzn0lH コンパイラの仕事が何なのか知らない人がRustを推すのは流石に恥ずかしいからやめてくれ
Rust使ってる身としてはすごく迷惑
Rust使ってる身としてはすごく迷惑
136デフォルトの名無しさん
2022/03/07(月) 17:55:43.77ID:s5yg+NZx >>134
Rustの言語仕様の所有権による実行コードの安全性の保障は、コンパイラをRustで書いてもGoで書いても、同じように得られる
逆にRustでコンパイラ書いたとしても、それによってコンパイルされたコードがRustの所有権による安全性を得られるわけじゃない
Rustの言語仕様の所有権による実行コードの安全性の保障は、コンパイラをRustで書いてもGoで書いても、同じように得られる
逆にRustでコンパイラ書いたとしても、それによってコンパイルされたコードがRustの所有権による安全性を得られるわけじゃない
137デフォルトの名無しさん
2022/03/07(月) 18:08:24.58ID:kssBp/wX やはりおじさんはVM系言語しか使ったことがないようだな
会話が成立しない訳だ
会話が成立しない訳だ
138デフォルトの名無しさん
2022/03/07(月) 18:28:02.87ID:LwrKIEpB GoスレでマヌケなRust推しが暴れているという地獄
139デフォルトの名無しさん
2022/03/07(月) 19:04:12.73ID:SxK5Ewlv Rustの方が言語機能の強力さや高速性と省メモリ等の点から最も有利なだけにすぎないからね
ほとんどの言語でGoのコンパイラもRustのコンパイラも作ることが可能
この両者の区別ができないとね
ほとんどの言語でGoのコンパイラもRustのコンパイラも作ることが可能
この両者の区別ができないとね
140デフォルトの名無しさん
2022/03/07(月) 21:22:24.00ID:kssBp/wX いわゆるVM系の言語(Java、C#、JavaScript、Python、Rubyなど)はランタイム自体がインタプリタに含まれてるので意識しないんだろうな
なんか普通に恥ずかしいよね
コンパイルが何をしているのかも知らなかったなんて
最近のVM系言語でもJITしてるし理解してるものかと思ってた
JITはインタプリタのランタイムのスタックとマシンコードのスタックを引き継ぐ処理とか内部でやってる
そういうのもわからないんだ
rustだなんだという前に大学に編入してCSを勉強した方が良いのではないか
なんか普通に恥ずかしいよね
コンパイルが何をしているのかも知らなかったなんて
最近のVM系言語でもJITしてるし理解してるものかと思ってた
JITはインタプリタのランタイムのスタックとマシンコードのスタックを引き継ぐ処理とか内部でやってる
そういうのもわからないんだ
rustだなんだという前に大学に編入してCSを勉強した方が良いのではないか
141デフォルトの名無しさん
2022/03/08(火) 00:26:03.19ID:4ZhMXz51 なんでここまでボロが出る前にスッとROMに徹せられないんだろうね?
142デフォルトの名無しさん
2022/03/08(火) 02:39:31.07ID:59Y5NzBD >>140
そんなの知らなくていいよ
そんなの知らなくていいよ
143デフォルトの名無しさん
2022/03/08(火) 07:57:09.39ID:5mhqUY+j Rustのことは忘れて
スライスってよく考えたら中にサイズとキャパシティ持ってるだろうからlen(スライス)はそれを見てるだけなのか?
スライスってよく考えたら中にサイズとキャパシティ持ってるだろうからlen(スライス)はそれを見てるだけなのか?
144デフォルトの名無しさん
2022/03/08(火) 08:13:34.51ID:TkXU//aU >>143
おそらくそうだったと思うよ。
おそらくそうだったと思うよ。
145デフォルトの名無しさん
2022/03/08(火) 08:17:46.56ID:TkXU//aU146デフォルトの名無しさん
2022/03/08(火) 11:48:16.95ID:5mhqUY+j struct の中にスライスと長さを持たせてたよ…orz
147デフォルトの名無しさん
2022/03/09(水) 17:10:13.11ID:ZVLrsraT RustのVecだって同じじゃん...orz
148デフォルトの名無しさん
2022/03/09(水) 18:57:40.54ID:o8UVaHTv RustのスライスとGoのスライスは概念が異なる
Rustのスライスはポインタと長さの2点のみを持ち常に「参照」である
つまり「参照」ということは「本体」がある
本体は配列(=そのままだとスタック上で長さ固定)やVec(=ヒープ上で長さ可変)など
Rustのスライスはそれら本体の一部(もしくは全体)を指す「参照」という従属物
このように概念を整理して分離したことがGCのないRustの効率の良さに繋がっている
Rustのスライスはポインタと長さの2点のみを持ち常に「参照」である
つまり「参照」ということは「本体」がある
本体は配列(=そのままだとスタック上で長さ固定)やVec(=ヒープ上で長さ可変)など
Rustのスライスはそれら本体の一部(もしくは全体)を指す「参照」という従属物
このように概念を整理して分離したことがGCのないRustの効率の良さに繋がっている
149デフォルトの名無しさん
2022/03/09(水) 19:25:13.15ID:HVZ+1br4 まーた(ry
150デフォルトの名無しさん
2022/03/09(水) 19:26:23.08ID:BXzHKdLE >>148
Go のスライスの内部実装も知らない男の人って・・・
Go のスライスの内部実装も知らない男の人って・・・
151デフォルトの名無しさん
2022/03/09(水) 19:37:39.05ID:o8UVaHTv Goのスライスはうっかりデータ競合を起こしても自己責任
別変数に代入して各々に対して値を書き換えたりappendしたり可能だがもちろん互いに競合する
そして苦肉の策の結果としてappendでキャパシティを超えた時に両者がそこから分岐
一方でRustは言語仕様でデータ競合を起さないことを保証している
別変数に代入して各々に対して値を書き換えたりappendしたり可能だがもちろん互いに競合する
そして苦肉の策の結果としてappendでキャパシティを超えた時に両者がそこから分岐
一方でRustは言語仕様でデータ競合を起さないことを保証している
152デフォルトの名無しさん
2022/03/09(水) 19:52:31.32ID:2cDF56sN153デフォルトの名無しさん
2022/03/09(水) 23:07:53.69ID:JjWHIxM6 >>151
Goの欠点だな
Goの欠点だな
154デフォルトの名無しさん
2022/03/09(水) 23:15:13.75ID:kryzQ0zI Goのスライスは実質的には可変長配列として使うからね
155デフォルトの名無しさん
2022/03/09(水) 23:56:47.85ID:jIAUAwVH 嘘つきはRustの始まり。std::syncだって同期とが標準モジュールに入ってるし、atomic型だって同じ。並列操作ではgoは他の
言語に抜き出ている。goが競合を起こすのはgoroutine同士でデータを共有するような、”古い老人のような作り方”をしている
からでchannelを通さない、sync.Mutexを使ったこともないasync/awaitだけでRustライブラリの中がArc<Mutex<T>>に
なってる事も知らないド素人がイキがってるだけ。
スレ違いなので荒らすのは止めましょう
言語に抜き出ている。goが競合を起こすのはgoroutine同士でデータを共有するような、”古い老人のような作り方”をしている
からでchannelを通さない、sync.Mutexを使ったこともないasync/awaitだけでRustライブラリの中がArc<Mutex<T>>に
なってる事も知らないド素人がイキがってるだけ。
スレ違いなので荒らすのは止めましょう
156デフォルトの名無しさん
2022/03/10(木) 00:16:27.61ID:EmAP5Zv6 refrect.DeepEqual() って便利
だけど、単体テストでNG出たんで今日は寝ますね
(…どこが食い違ってるのか教えてはくれない)
だけど、単体テストでNG出たんで今日は寝ますね
(…どこが食い違ってるのか教えてはくれない)
157デフォルトの名無しさん
2022/03/10(木) 08:01:20.84ID:p2fYNkNX Javaやpythonからgoに来た人って絶対Rustにも行くよね?w
158デフォルトの名無しさん
2022/03/10(木) 08:05:56.68ID:EmAP5Zv6 皆さんストリンガーって保険のためにとか実装してる?
159デフォルトの名無しさん
2022/03/10(木) 08:06:54.36ID:EmAP5Zv6 別に行かない
160デフォルトの名無しさん
2022/03/10(木) 11:26:24.44ID:yulIAHTW 別にRustを使ってもデータ競合は防げるけど競合状態は防げないし、データ競合を防ぐ目的のために面倒なメモリ管理をやる気にはならないな
161デフォルトの名無しさん
2022/03/10(木) 14:34:23.63ID:oQD86hL5 JAVAから来ました
162デフォルトの名無しさん
2022/03/10(木) 23:25:33.20ID:mPwUhQcz163デフォルトの名無しさん
2022/03/11(金) 04:48:59.22ID:/mQhQdeo164デフォルトの名無しさん
2022/03/11(金) 10:28:51.56ID:MsCX3gC/ 今からGoですを勉強するのって意味ない?
rustとかいうやつのほうがいいの?
rustとかいうやつのほうがいいの?
165デフォルトの名無しさん
2022/03/11(金) 11:06:27.12ID:kr68tprG Goの採用はスタートアップなんかでも結構多いので意味無くはない
Rustは実際にはまだほとんど無い
とはいえGoをあえて勉強する必要があるかは微妙だな
こんなの経験なくてもチームに入ってからなんとなく空気読んで十分使えるし、
それができる程度に他言語の経験がないのであればGoはあまり意味のない言語だ
Rustは実際にはまだほとんど無い
とはいえGoをあえて勉強する必要があるかは微妙だな
こんなの経験なくてもチームに入ってからなんとなく空気読んで十分使えるし、
それができる程度に他言語の経験がないのであればGoはあまり意味のない言語だ
166デフォルトの名無しさん
2022/03/11(金) 11:39:54.49ID:H8qFXNfY >>164
「勉強」の意味による。
仕事につながる技術を身に着けたいなら、普及率が高くて求人も多いJavaやcのほうがいい。
学問としてプログラム言語を勉強したいなら、より原理的なlisp(scheme),haskell,cのほうがいい。
趣味でプログラムするのに勉強したいなら、手軽で教本も多いpythonあたりかね。
goやRustは中途半端なので、最初の選択肢にはならない。
「勉強」の意味による。
仕事につながる技術を身に着けたいなら、普及率が高くて求人も多いJavaやcのほうがいい。
学問としてプログラム言語を勉強したいなら、より原理的なlisp(scheme),haskell,cのほうがいい。
趣味でプログラムするのに勉強したいなら、手軽で教本も多いpythonあたりかね。
goやRustは中途半端なので、最初の選択肢にはならない。
167デフォルトの名無しさん
2022/03/11(金) 11:59:46.52ID:0bHD9k1s Goの戦場はニッチだからねぇ
汎用を求めるならJavaやC#
ハイエンドならC++
いっちょ大穴狙うならRust (次の次くらいに来るかも)
汎用を求めるならJavaやC#
ハイエンドならC++
いっちょ大穴狙うならRust (次の次くらいに来るかも)
168デフォルトの名無しさん
2022/03/11(金) 12:02:29.15ID:0bHD9k1s Java, C# は使えて当然、C++が分かるなら誉めてもらえる
169デフォルトの名無しさん
2022/03/11(金) 12:17:23.16ID:YhXLzsgi170デフォルトの名無しさん
2022/03/11(金) 12:19:29.55ID:YhXLzsgi goは言語自体はあまり面白くないからね
仕事で使う予定がないならもっと尖った言語の方が面白いだろう
仕事で使う予定がないならもっと尖った言語の方が面白いだろう
171デフォルトの名無しさん
2022/03/11(金) 12:42:59.72ID:MsCX3gC/ みなさんありがとうございます。
Javaとphpを仕事で使っていますが、Goの何でも自力で書く的なものに惹かれて将来的には仕事で使いたいと思いました。
Javaとphpを仕事で使っていますが、Goの何でも自力で書く的なものに惹かれて将来的には仕事で使いたいと思いました。
172デフォルトの名無しさん
2022/03/11(金) 13:38:23.24ID:XWreYn/x173デフォルトの名無しさん
2022/03/11(金) 13:49:54.80ID:uv7nfwNg174デフォルトの名無しさん
2022/03/11(金) 14:38:59.33ID:2kEBQcz7 Goは文法だけなら超簡単だけど
channelを使った並行プログラミングのパターンをしっかり身につけてないと使い物にはならない
channelを使った並行プログラミングのパターンをしっかり身につけてないと使い物にはならない
175デフォルトの名無しさん
2022/03/11(金) 14:45:54.90ID:laeBnhbM Dust信者暴れないでください
176デフォルトの名無しさん
2022/03/11(金) 14:48:37.14ID:H8qFXNfY177デフォルトの名無しさん
2022/03/11(金) 19:15:19.80ID:qrl8XqzC >>171
> Javaとphpを仕事で使っています (中略) 将来的には仕事で使いたい
どう考えてもJS一択。現在Javaメインで鯖周りだけPHPなら、明日から使える。
> 何でも自力で書く的なものに惹かれて
分野ごとに言語が違って一々勉強が必要なのはナンセンスじゃね?とは思うだろうが、
実際はJavaでも何でも出来るが、
例えばJavaでGUIやるよりは勉強の手間含んでも他言語の方がマシなのでみんなそうしてる。
Javaを既に普通に使いこなしているのなら、Goを『学ぶ』意味はない。方言程度で使えるはず。
引っかかるとしたらポインタだが、ポインタを学ぶならCの方がいい。
俺はパラダイム違いという意味でもJSだと思うけどね。関数ポインタ/クロージャを常用する言語をやった方がいい。
https://xn--97-273ae6a4irb6e2hsoiozc2g4b8082p.com/%E3%82%A8%E3%83%83%E3%82%BB%E3%82%A4/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E%E3%81%AF%E8%A4%87%E6%95%B0%E7%BF%92%E5%BE%97%E3%81%99%E3%81%B9%E3%81%8D/
> Javaとphpを仕事で使っています (中略) 将来的には仕事で使いたい
どう考えてもJS一択。現在Javaメインで鯖周りだけPHPなら、明日から使える。
> 何でも自力で書く的なものに惹かれて
分野ごとに言語が違って一々勉強が必要なのはナンセンスじゃね?とは思うだろうが、
実際はJavaでも何でも出来るが、
例えばJavaでGUIやるよりは勉強の手間含んでも他言語の方がマシなのでみんなそうしてる。
Javaを既に普通に使いこなしているのなら、Goを『学ぶ』意味はない。方言程度で使えるはず。
引っかかるとしたらポインタだが、ポインタを学ぶならCの方がいい。
俺はパラダイム違いという意味でもJSだと思うけどね。関数ポインタ/クロージャを常用する言語をやった方がいい。
https://xn--97-273ae6a4irb6e2hsoiozc2g4b8082p.com/%E3%82%A8%E3%83%83%E3%82%BB%E3%82%A4/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E%E3%81%AF%E8%A4%87%E6%95%B0%E7%BF%92%E5%BE%97%E3%81%99%E3%81%B9%E3%81%8D/
178デフォルトの名無しさん
2022/03/11(金) 20:08:22.23ID:o63L8Mvt179デフォルトの名無しさん
2022/03/11(金) 20:56:16.13ID:QqXcHrRr Cへの理解があればまあ何とかなるっしょ
180デフォルトの名無しさん
2022/03/11(金) 21:03:32.08ID:parWzd9L181デフォルトの名無しさん
2022/03/11(金) 21:17:23.70ID:o63L8Mvt >>180
C++は以前の「筋が悪いが代替がないから使う」から今は「避けることができる」言語
今となっては学ぶべきでない言語として大方のコンセンサスがあります
C→Rustと進むのが非常にわかりやすくてベスト
C++は以前の「筋が悪いが代替がないから使う」から今は「避けることができる」言語
今となっては学ぶべきでない言語として大方のコンセンサスがあります
C→Rustと進むのが非常にわかりやすくてベスト
182デフォルトの名無しさん
2022/03/11(金) 21:27:24.13ID:uv7nfwNg183デフォルトの名無しさん
2022/03/11(金) 21:36:55.19ID:o63L8Mvt184デフォルトの名無しさん
2022/03/11(金) 21:58:49.55ID:qrl8XqzC >>180
ただGoだと何も「新しくは」できなくね?
ガチ鯖はJavaで、ライト鯖はPHPで既に書けるなら、Goが他に活躍してる分野って何?
今時のデスクトップアプリはGUI無しとかあり得ないから、CLIアプリとか?ならJavaで全く問題ない。
Javaが動かせない貧弱環境(=非x86、非linux、つまり大体組み込み)ならC一択だし。
>>181
> C++は (中略) 今となっては学ぶべきでない言語として大方のコンセンサスがあります
これはない。お前の周りがトチ狂ってるだけ。Rust界隈はそうなのかもしれんが。
俺はRustは最終的に死ぬと思ってる。
C++とはコミュニティの規模が多分4桁違うし、FireFoxを殺したのはRustだし。
(まあ俺はGoも最終的に死ぬと思ってるんだが)
初心者は「全機能を使いこなす事が必要」だと思ってるみたいだが、これは明確な間違いで、
C++なんて全部入りなんだから全機能なんて使ってる奴は居ない。
(例えばインラインアセンブラも普通に出来るが、常用されても困るわけだし)
C++は元々「必要な機能を選んで使う」思想で、
初心者は「何が必要で何が不要か」判断出来ないから適切に使うのはかなり無理。
で、そういう奴は大体C++の悪口を言う事になるわけだが、ほぼ「肥大化してる」だけだろ。
それはお前が適切に取捨選択出来ないだけだ馬鹿タレ、でしかない。
ただGoだと何も「新しくは」できなくね?
ガチ鯖はJavaで、ライト鯖はPHPで既に書けるなら、Goが他に活躍してる分野って何?
今時のデスクトップアプリはGUI無しとかあり得ないから、CLIアプリとか?ならJavaで全く問題ない。
Javaが動かせない貧弱環境(=非x86、非linux、つまり大体組み込み)ならC一択だし。
>>181
> C++は (中略) 今となっては学ぶべきでない言語として大方のコンセンサスがあります
これはない。お前の周りがトチ狂ってるだけ。Rust界隈はそうなのかもしれんが。
俺はRustは最終的に死ぬと思ってる。
C++とはコミュニティの規模が多分4桁違うし、FireFoxを殺したのはRustだし。
(まあ俺はGoも最終的に死ぬと思ってるんだが)
初心者は「全機能を使いこなす事が必要」だと思ってるみたいだが、これは明確な間違いで、
C++なんて全部入りなんだから全機能なんて使ってる奴は居ない。
(例えばインラインアセンブラも普通に出来るが、常用されても困るわけだし)
C++は元々「必要な機能を選んで使う」思想で、
初心者は「何が必要で何が不要か」判断出来ないから適切に使うのはかなり無理。
で、そういう奴は大体C++の悪口を言う事になるわけだが、ほぼ「肥大化してる」だけだろ。
それはお前が適切に取捨選択出来ないだけだ馬鹿タレ、でしかない。
185デフォルトの名無しさん
2022/03/11(金) 22:23:28.57ID:wdcjWAJU >C++は元々「必要な機能を選んで使う」思想で、
>初心者は「何が必要で何が不要か」判断出来ないから適切に使うのはかなり無理。
一人で使う分には自分が理解したところから使えばいいんだがチーム開発だと悩ましいよな。
書いた本人以外理解が難しいコードなんてのも簡単に量産されるし。
>初心者は「何が必要で何が不要か」判断出来ないから適切に使うのはかなり無理。
一人で使う分には自分が理解したところから使えばいいんだがチーム開発だと悩ましいよな。
書いた本人以外理解が難しいコードなんてのも簡単に量産されるし。
186デフォルトの名無しさん
2022/03/11(金) 22:27:06.80ID:/JvA5shV >>184
そこは冷静になって純粋に言語機能をC++とRustで比べてみればいいんじゃないか
言語としてはC++が勝っている点がほぼなくC++の様々な欠点をRustが改善解消
だからこそ大手IT各社が揃って共同でRust foundationを起ち上げるなど垣根を超えて惚れ込んでいる
そこは冷静になって純粋に言語機能をC++とRustで比べてみればいいんじゃないか
言語としてはC++が勝っている点がほぼなくC++の様々な欠点をRustが改善解消
だからこそ大手IT各社が揃って共同でRust foundationを起ち上げるなど垣根を超えて惚れ込んでいる
187デフォルトの名無しさん
2022/03/11(金) 22:57:33.99ID:qrl8XqzC >>185
だから「コーディングルール」で切るんだよ。
つか、多分、C++とそれ例外では「コーディングルール」自体の意味が違う。
C++のは機能も使い方も制限する。Goとかだと見た目だけだろ。
(Goの場合は見た目もディレクトリ構成も画一だからもしかして何もない?
googleもC++/JS/PythonはあるがGoのはなさそう)
C++に問題があるとすれば、「難しいコードを書くことに何らブレーキがない」事で、
これをコーディングルールで補ってる。
C++以外の言語は「使うべきでない機能はそもそも入れない」で、これは正しいが、
後出しじゃんけんじゃないと無理。
>>186
言うてRustってC++で廃止されたauto_ptrを焼き直しただけだろ。
ヒープの生存期間をスタックと連動させるのはいいが、それはCでも書けるしCだと基本だった手法。(ただし手動)
だからRustで生成されるコードはC++でも書けてしまう。
そしてRustは境界チェックがある分だけ遅い。よって最終的に勝てる理由がない。
この点FireFoxの連中は大馬鹿もいいところで、スピード競争してるのに速度優位性がない言語を選んだ時点で自殺だった。
RustはCの代替になろうとしていて、勿論ネイティブバイナリを吐くわけだが、
これを潔く諦め、Cのコードを吐く(TS/JSの関係と同じ)だったら、覇権とれたかもとは思うけど。
この方法だと組み込み全分野に無理なく浸透していけるし。
(ただしこれだとC++の代替にしかならないから気に入らないのだろうけど)
RustでOS書こうとしてる馬鹿もいるだろ。誰も使わないよ。
Linuxより速くて小さい物を提供出来る技術的理由がないし、
仮にそれが出来てもCでも書けてしまうからLinuxももっと小さくなり、永久に追いつけない。
Rustには生き残る理由がない。
だから「コーディングルール」で切るんだよ。
つか、多分、C++とそれ例外では「コーディングルール」自体の意味が違う。
C++のは機能も使い方も制限する。Goとかだと見た目だけだろ。
(Goの場合は見た目もディレクトリ構成も画一だからもしかして何もない?
googleもC++/JS/PythonはあるがGoのはなさそう)
C++に問題があるとすれば、「難しいコードを書くことに何らブレーキがない」事で、
これをコーディングルールで補ってる。
C++以外の言語は「使うべきでない機能はそもそも入れない」で、これは正しいが、
後出しじゃんけんじゃないと無理。
>>186
言うてRustってC++で廃止されたauto_ptrを焼き直しただけだろ。
ヒープの生存期間をスタックと連動させるのはいいが、それはCでも書けるしCだと基本だった手法。(ただし手動)
だからRustで生成されるコードはC++でも書けてしまう。
そしてRustは境界チェックがある分だけ遅い。よって最終的に勝てる理由がない。
この点FireFoxの連中は大馬鹿もいいところで、スピード競争してるのに速度優位性がない言語を選んだ時点で自殺だった。
RustはCの代替になろうとしていて、勿論ネイティブバイナリを吐くわけだが、
これを潔く諦め、Cのコードを吐く(TS/JSの関係と同じ)だったら、覇権とれたかもとは思うけど。
この方法だと組み込み全分野に無理なく浸透していけるし。
(ただしこれだとC++の代替にしかならないから気に入らないのだろうけど)
RustでOS書こうとしてる馬鹿もいるだろ。誰も使わないよ。
Linuxより速くて小さい物を提供出来る技術的理由がないし、
仮にそれが出来てもCでも書けてしまうからLinuxももっと小さくなり、永久に追いつけない。
Rustには生き残る理由がない。
188デフォルトの名無しさん
2022/03/11(金) 23:09:09.74ID:egx2H9Pr このおっさん勢いあるスレならどこでも湧くな。そして偏った知識で見境なく喧嘩ふっかける。かまってちゃんが過ぎる。
189デフォルトの名無しさん
2022/03/11(金) 23:13:16.62ID:/JvA5shV190デフォルトの名無しさん
2022/03/11(金) 23:43:25.63ID:qrl8XqzC >>189
エコーチェンバーが欲しいのなら他言語スレに出てくるべきではないよ。
Rustが提供してる機能は結局のところ、プログラマの補助でしかない。
Rustで書かないと実現出来ないコードなんて存在しない。
元祖馬鹿向けCはJavaで、大ヒットして覇権を取った。
ただし関数ポインタが無かったのでGUIには全くフィットせず、そこは全滅してる。
とはいえ覇権言語であり、現在でも1/3はJavaだろ。
2代目馬鹿向けCがGoで、これもそこそこヒットしてる。(とはいえC/C++の規模からするとゴミだが)
RustなんてGo以下のゴミだし、そもそも人数は馬鹿>>>選ばれし勇者なんだから、
ずっとGoよりもゴミのままだと思うけど。
んで、元祖選ばれし勇者にはC/C++で十分だし。
俺はRustはC++のコーディングルールの一部になると見てるし、そうなる事を望んでる。
エコーチェンバーが欲しいのなら他言語スレに出てくるべきではないよ。
Rustが提供してる機能は結局のところ、プログラマの補助でしかない。
Rustで書かないと実現出来ないコードなんて存在しない。
元祖馬鹿向けCはJavaで、大ヒットして覇権を取った。
ただし関数ポインタが無かったのでGUIには全くフィットせず、そこは全滅してる。
とはいえ覇権言語であり、現在でも1/3はJavaだろ。
2代目馬鹿向けCがGoで、これもそこそこヒットしてる。(とはいえC/C++の規模からするとゴミだが)
RustなんてGo以下のゴミだし、そもそも人数は馬鹿>>>選ばれし勇者なんだから、
ずっとGoよりもゴミのままだと思うけど。
んで、元祖選ばれし勇者にはC/C++で十分だし。
俺はRustはC++のコーディングルールの一部になると見てるし、そうなる事を望んでる。
191デフォルトの名無しさん
2022/03/11(金) 23:50:45.41ID:/JvA5shV >>190
C/C++の欠点はメモリ安全性等の欠如により発生する欠陥の多さであるとグーグルとマイクロソフトが意見を同調している
そこへ現れたRustはコンパイルが通ればメモリ安全性やデータ競合ゼロを保証するため彼らにも歓迎され用いられている
C/C++の欠点はメモリ安全性等の欠如により発生する欠陥の多さであるとグーグルとマイクロソフトが意見を同調している
そこへ現れたRustはコンパイルが通ればメモリ安全性やデータ競合ゼロを保証するため彼らにも歓迎され用いられている
192デフォルトの名無しさん
2022/03/12(土) 00:13:31.67ID:JgaGU6xu >>191
C/C++の欠点は「馬鹿が『ひとりでも』混ざるとどうにもならない」事だよ。
ただ、静的解析で何とかなるものなら、「全部入り」のC++にもいずれは導入される。
現在C++は3周遅れ(9年遅れ)程度だから、
9年のうちに優勢になれば勝ちだが、これは多分無いでしょ。
C/C++の欠点は「馬鹿が『ひとりでも』混ざるとどうにもならない」事だよ。
ただ、静的解析で何とかなるものなら、「全部入り」のC++にもいずれは導入される。
現在C++は3周遅れ(9年遅れ)程度だから、
9年のうちに優勢になれば勝ちだが、これは多分無いでしょ。
193デフォルトの名無しさん
2022/03/12(土) 00:39:34.87ID:MeH0OP6r >>192
ところがC++には不可能
Rustには簡潔な借用ルールとライフタイムがあるために成立している
さらにRustにはunsafe操作の分離という導入もありこれが安全性の保証に大きく寄与している
ところがC++には不可能
Rustには簡潔な借用ルールとライフタイムがあるために成立している
さらにRustにはunsafe操作の分離という導入もありこれが安全性の保証に大きく寄与している
194デフォルトの名無しさん
2022/03/12(土) 01:12:13.25ID:jQJpzSFj Go の G の字もないなw
195デフォルトの名無しさん
2022/03/12(土) 01:23:48.74ID:SUJjbHcC 次スレまで待とうかと思ってたけど流石にワッチョイスレ作った方がいいか?
完全にスレが崩壊してる
完全にスレが崩壊してる
196デフォルトの名無しさん
2022/03/12(土) 01:28:54.16ID:JgaGU6xu >>193
> ところがC++には不可能
『今の』C++にはね。
ただ、C++の場合は少しでもその方がコード効率がよくなる、とされると採用される。(ので良い物はいつか採用される)
それが「全部入り」
> 安全性の保証
要するに補助輪でしかない。Rustのは全部これ。
> 簡潔な借用ルールとライフタイム
これは俺は筋が悪いと思ってるけど。
プログラマに生存期間をマニュアルで管理させてるだけ。(これはCと同じ)
そしてRustの場合はこれの整合性を静的に解析出来る。(これはC++にはない。が、コンパイラ側で対処出来る話。そのうち導入される)
だいたいそもそも「貸し借り」なんてやってる事自体、
一般的プログラミングにおいての生存期間と合致してないからであって、根本的に筋が悪い。
そもそもプログラマは管理したいとは思ってないから、GCの方が筋がいい。
GCだと駄目な件については、例えば以下なら、(このブログは有名なので色々言われてるようだが)
https://blog.discord.com/why-discord-is-switching-from-go-to-rust-a190bbca2b1f?gi=bd6f6b9c5be3
そもそも大量の生存オブジェクトが存在する場合はGCには不向きなので、
Goについてなら例えば「GC非対象の変数宣言」構文が用意出来れば済んだ話。
(この思想がGCとフィットしないから一般的に導入される事はないが、
VC++ならnew/gcnewでGCなし/ありを切り替えられるし、俺はこれで十分だと思うよ)
まあ心配しなくても、所有権の貸し借りが素晴らしいってことになれば、C++にも確実に導入される。
そのときRustは死ぬよ。その猶予が9年間。
> ところがC++には不可能
『今の』C++にはね。
ただ、C++の場合は少しでもその方がコード効率がよくなる、とされると採用される。(ので良い物はいつか採用される)
それが「全部入り」
> 安全性の保証
要するに補助輪でしかない。Rustのは全部これ。
> 簡潔な借用ルールとライフタイム
これは俺は筋が悪いと思ってるけど。
プログラマに生存期間をマニュアルで管理させてるだけ。(これはCと同じ)
そしてRustの場合はこれの整合性を静的に解析出来る。(これはC++にはない。が、コンパイラ側で対処出来る話。そのうち導入される)
だいたいそもそも「貸し借り」なんてやってる事自体、
一般的プログラミングにおいての生存期間と合致してないからであって、根本的に筋が悪い。
そもそもプログラマは管理したいとは思ってないから、GCの方が筋がいい。
GCだと駄目な件については、例えば以下なら、(このブログは有名なので色々言われてるようだが)
https://blog.discord.com/why-discord-is-switching-from-go-to-rust-a190bbca2b1f?gi=bd6f6b9c5be3
そもそも大量の生存オブジェクトが存在する場合はGCには不向きなので、
Goについてなら例えば「GC非対象の変数宣言」構文が用意出来れば済んだ話。
(この思想がGCとフィットしないから一般的に導入される事はないが、
VC++ならnew/gcnewでGCなし/ありを切り替えられるし、俺はこれで十分だと思うよ)
まあ心配しなくても、所有権の貸し借りが素晴らしいってことになれば、C++にも確実に導入される。
そのときRustは死ぬよ。その猶予が9年間。
197デフォルトの名無しさん
2022/03/12(土) 03:16:10.27ID:JxEFMwOe■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国「国連安保理の許可なしに日本攻撃可能」 Xで旧敵国条項に言及… ★12 [BFU★]
- 台湾有事での集団的自衛権行使に賛成48%、「反対」が44.2% [♪♪♪★]
- 中国・国連大使「日本側は反省せず、発言の撤回拒否」 書簡を国連事務総長に送る [♪♪♪★]
- 首相官邸前で「戦争あおるな」 台湾有事巡る答弁に抗議 ★3 [蚤の市★]
- 中国「国連安保理の許可なしに日本攻撃可能」 Xで旧敵国条項に言及… ★13 [BFU★]
- 【NHK】受信料の未払い督促を10倍に強化… 支払い拒否が続くと民事手続きも 「カーナビも受信料いただきます」方針 [冬月記者★]
- 【フジテレビ】2025 FORMULA 1【NEXT】Lap600
- 【DAZN】フォーミュラGP【F1 2 3 SF P】Lap1807
- 京都競馬4回5日目エリザベス女王杯★3
- 福島競馬3回5日目
- とらせん IP
- こいせん 全レス転載禁止
- 「暇空茜」名乗る男性、神奈川県警が追送検 投稿サイトで大学生侮辱の疑い😲 [861717324]
- 【実況】博衣こよりのえちえちゼルダの伝説 ムジュラの仮面🧪 ★4
- 日本人の48%覚悟完了… [819729701]
- 女の子、プチ整形で垢抜けまくってしまうwwwwwwwwwwwwwwwwwwwwwwww [329329848]
- 国民「コメが高くて買えないの助けて!」米卸「コメが高くて売れないの助けて!」農水相「価格はマーケット決めるものです🥴」 [817260143]
- 小野田大臣「それ正式なデータですか?報道ベースですよね」(10万いいね) [237216734]
