スレタイ以外の言語もok
前スレ
次世代言語21 Go Nim Rust Swift Kotlin TypeScript
https://mevius.5ch.net/test/read.cgi/tech/1587276362/
次世代言語22 Go Nim Rust Swift Kotlin TypeScript
■ このスレッドは過去ログ倉庫に格納されています
2021/08/22(日) 08:59:03.31ID:QorwbXcj
164デフォルトの名無しさん
2021/10/13(水) 13:28:21.94ID:V99uCirA165デフォルトの名無しさん
2021/10/13(水) 13:29:46.77ID:V99uCirA >>159
同じ理由でC++よりCの方が良いって言われてるね
同じ理由でC++よりCの方が良いって言われてるね
166デフォルトの名無しさん
2021/10/13(水) 17:06:10.92ID:+919yhfB >>163
for-inは普通にあるし、map/filter/fold/collectを使えと言う話は読み易さの問題はある。
いまでもrustスレは意識高い系が喧嘩してるようなもの、競技プログラミング的な書き方は
止めろだとか、初心者が書いたコードを貶す
for-inは普通にあるし、map/filter/fold/collectを使えと言う話は読み易さの問題はある。
いまでもrustスレは意識高い系が喧嘩してるようなもの、競技プログラミング的な書き方は
止めろだとか、初心者が書いたコードを貶す
167デフォルトの名無しさん
2021/10/13(水) 18:19:54.35ID:fXfbCLiK >>166
そんな喧嘩は起きていない
初心者が書いても同じになりイテレータをメソッドチェーンで回すかfor inで回すかの2通りしかない
競技プログラミングの件はどの言語でも同じだが速さだけ求めて汚いプログラミングするのは競プロ専用スレでやるべきなのだろう
そんな喧嘩は起きていない
初心者が書いても同じになりイテレータをメソッドチェーンで回すかfor inで回すかの2通りしかない
競技プログラミングの件はどの言語でも同じだが速さだけ求めて汚いプログラミングするのは競プロ専用スレでやるべきなのだろう
168デフォルトの名無しさん
2021/10/13(水) 19:35:38.13ID:VbHeyYt0 こんな奴ばっかり
169デフォルトの名無しさん
2021/10/13(水) 23:53:56.11ID:W/9iWpHx170デフォルトの名無しさん
2021/10/13(水) 23:57:31.98ID:wiC5i83X これが会話のドッジボールですか
171デフォルトの名無しさん
2021/10/15(金) 12:49:40.87ID:nPSdjqiL そう言う事を言ってるんじゃないのに、「統一されてますね」このにじみ出る性格の悪さとしつこさが嫌。
そりゃ他人から嫌がられるよお前は、一生ロンパーロンパーしとけよ
そりゃ他人から嫌がられるよお前は、一生ロンパーロンパーしとけよ
172デフォルトの名無しさん
2021/10/15(金) 13:35:11.51ID:TiF/o4Oy そして静かにC/C++が生き残る・・・とな
173デフォルトの名無しさん
2021/10/15(金) 14:08:53.65ID:8deGlJY8 ほんと進歩ないよな。。だから歴史って重要なわけよ。
174デフォルトの名無しさん
2021/10/15(金) 14:48:47.55ID:5sSC8oS1 歴史から長いものにはまかれろという以外にどんな教訓が学べるというのか
175デフォルトの名無しさん
2021/10/15(金) 15:16:58.35ID:8deGlJY8 機能ゴテゴテ盛り込んで失敗。くらいはそろそろ理解して欲しいもんだがね。
176デフォルトの名無しさん
2021/10/15(金) 16:31:03.08ID:XGfxQXO+ 無駄な機能が多すぎる言語は失敗してるよな
一方でRustとGoが成功したのは不要な機能を見極めて削ったことも大きい
どちらもclassすら無いしtry-throw-catchも無い
シンプルでわかりやすい言語となり成功した
一方でRustとGoが成功したのは不要な機能を見極めて削ったことも大きい
どちらもclassすら無いしtry-throw-catchも無い
シンプルでわかりやすい言語となり成功した
177デフォルトの名無しさん
2021/10/15(金) 17:14:22.04ID:5sSC8oS1 つかれたよ
178デフォルトの名無しさん
2021/10/15(金) 20:33:51.67ID:w61IhFeo まあ、テキストの塊で表現していることに変わり無いしな。
これからはビジュアルプログラミングだろう。
これからはビジュアルプログラミングだろう。
179デフォルトの名無しさん
2021/10/15(金) 20:40:41.27ID:w61IhFeo180デフォルトの名無しさん
2021/10/15(金) 20:46:36.53ID:XGfxQXO+181デフォルトの名無しさん
2021/10/15(金) 22:47:09.07ID:rb+Oscx7 Rustの学習コストが低いと思っているのはなかなかすごいな
メジャーな言語で、Rustより学習コストが高い言語挙げてみいよ
メジャーな言語で、Rustより学習コストが高い言語挙げてみいよ
182デフォルトの名無しさん
2021/10/15(金) 22:50:16.66ID:5sSC8oS1 Scala
183デフォルトの名無しさん
2021/10/15(金) 22:50:39.45ID:5sSC8oS1 Haskell
184デフォルトの名無しさん
2021/10/15(金) 22:50:55.08ID:5sSC8oS1 C++
185デフォルトの名無しさん
2021/10/15(金) 22:59:02.83ID:cXrj7rPD C++は最初にある程度かけるようになるまではそんなに大変じゃないけど
コンパイラの挙動が怪しいから言語仕様読んでどこかでUB踏んでないか調べる、みたいなとこまでいくと
Rustの方が簡単だったなぁ、と思う
コンパイラの挙動が怪しいから言語仕様読んでどこかでUB踏んでないか調べる、みたいなとこまでいくと
Rustの方が簡単だったなぁ、と思う
186デフォルトの名無しさん
2021/10/15(金) 23:54:26.80ID:awitBW+b そもそもの話
次世代言語って必要なの?
って最近疑問に思ってる
次世代言語って必要なの?
って最近疑問に思ってる
187デフォルトの名無しさん
2021/10/16(土) 00:14:02.74ID:dPfgeqZY >>186
ずっとFORTRANとCOBOLでも使ってろ
ずっとFORTRANとCOBOLでも使ってろ
188デフォルトの名無しさん
2021/10/16(土) 00:40:25.95ID:O4GIW+Mr >>187
それは流石に前世代なんでない?
現行世代の似たような言語が増えてってるだけで
その中から次世代を探そうとしても一長一短があるだけで
次世代って感じはどの言語からも感じられない
って個人的な疑問
それは流石に前世代なんでない?
現行世代の似たような言語が増えてってるだけで
その中から次世代を探そうとしても一長一短があるだけで
次世代って感じはどの言語からも感じられない
って個人的な疑問
189デフォルトの名無しさん
2021/10/16(土) 01:01:04.43ID:GQKUTzD/ いま次世代でも数年たてば時代遅れになる。
それならいつでも最新のC++にすれば良いのでは?
次世代ではないけれど。
それならいつでも最新のC++にすれば良いのでは?
次世代ではないけれど。
190デフォルトの名無しさん
2021/10/16(土) 01:33:55.93ID:0owCAudu191デフォルトの名無しさん
2021/10/16(土) 02:05:47.39ID:N8k1BZc2 Rust個人的には推しだけど確かに最近の5chは変な信者が多い
192デフォルトの名無しさん
2021/10/16(土) 02:49:28.47ID:MVC0A82Z193デフォルトの名無しさん
2021/10/16(土) 03:21:07.83ID:0owCAudu >>192
Rustはコンパイルが通ったらメモリ安全性を保証するが
C++はコンパイルが通ってもメモリ安全性を保証しない
そのためC++で書かれたものはメモリ安全に関するバグを産出してきてそれがセキュリティ脆弱性の7割を占めているとGoogleもMicrosoftも述べている現状
Rustはコンパイルが通ったらメモリ安全性を保証するが
C++はコンパイルが通ってもメモリ安全性を保証しない
そのためC++で書かれたものはメモリ安全に関するバグを産出してきてそれがセキュリティ脆弱性の7割を占めているとGoogleもMicrosoftも述べている現状
194デフォルトの名無しさん
2021/10/16(土) 12:10:44.93ID:MVC0A82Z だからGoogleもMicrosoftもどれだけ言語ダメにしてきたか、少し頭使って調べてみてくれ。
そのお題目がいかに名目だけか実際大規模でビルド体制整えて運用してみればよくわかるから。
そのお題目がいかに名目だけか実際大規模でビルド体制整えて運用してみればよくわかるから。
195デフォルトの名無しさん
2021/10/16(土) 12:33:30.03ID:vbkw9O81 >だからGoogleもMicrosoftもどれだけ言語ダメにしてきたか、少し頭使って調べてみてくれ。
GoogleやMicrosoftがダメにした言語ってなんだろう?
自分で作って結局普及しなくて捨てた言語ってことかな。
GoogleやMicrosoftがダメにした言語ってなんだろう?
自分で作って結局普及しなくて捨てた言語ってことかな。
196デフォルトの名無しさん
2021/10/16(土) 12:55:55.35ID:6WTAYzCY Googleが作った言語ってGoとDartだけ?だったらどっちもダメにしてないな
Minecraftは多そう
Minecraftは多そう
197デフォルトの名無しさん
2021/10/16(土) 12:56:41.58ID:6WTAYzCY >>196
予測変換ミス
予測変換ミス
198デフォルトの名無しさん
2021/10/16(土) 13:33:53.37ID:N8k1BZc2 >>194
大規模でビルド体制整えて運用してみて発生する問題って、技術によって解決すべき問題ではないんじゃね?
具体的な話を聞かないと何とも言えないけど、デマルコ本で言われるような社会学的側面の問題じゃなかろうか
大規模でビルド体制整えて運用してみて発生する問題って、技術によって解決すべき問題ではないんじゃね?
具体的な話を聞かないと何とも言えないけど、デマルコ本で言われるような社会学的側面の問題じゃなかろうか
199デフォルトの名無しさん
2021/10/16(土) 14:38:48.10ID:0owCAudu200デフォルトの名無しさん
2021/10/16(土) 17:59:55.50ID:5x+WFlZB >>191
分かるわ…、宗教のような気持ち悪さを感じる。rust推しだけど
分かるわ…、宗教のような気持ち悪さを感じる。rust推しだけど
201デフォルトの名無しさん
2021/10/16(土) 20:13:04.25ID:nF4n8/aE >>186
よくあるのは、CやRustのマクロは必要ないからマクロ無し言語が必要だというパターン
よくあるのは、CやRustのマクロは必要ないからマクロ無し言語が必要だというパターン
202デフォルトの名無しさん
2021/10/16(土) 22:43:22.32ID:MVC0A82Z >>199
mozillaがネットスケープも含めてどれだけ失敗したか理解してるか?
facebookで多く使われてるphpがそんな素晴らしいか?
amazonのc++コードの汚なさを理解してるか?
バカは何度でもブランド意識でくだらんことを広めたがる。そして忘れた頃に同じことを繰り返す。
そういうバカはもううんざりなんだよ。
mozillaがネットスケープも含めてどれだけ失敗したか理解してるか?
facebookで多く使われてるphpがそんな素晴らしいか?
amazonのc++コードの汚なさを理解してるか?
バカは何度でもブランド意識でくだらんことを広めたがる。そして忘れた頃に同じことを繰り返す。
そういうバカはもううんざりなんだよ。
203デフォルトの名無しさん
2021/10/16(土) 23:05:31.31ID:nF4n8/aE たとえばPythonとRustのような両極端なら同じことを繰り返してない感がある
両者の中間ぐらいを理想とすると変化に乏しいバカに見えるからやめたほうがいい
両者の中間ぐらいを理想とすると変化に乏しいバカに見えるからやめたほうがいい
204デフォルトの名無しさん
2021/10/16(土) 23:24:00.10ID:yuQVo/8c205デフォルトの名無しさん
2021/10/16(土) 23:28:51.24ID:N8k1BZc2 個人攻撃やめなー
206デフォルトの名無しさん
2021/10/17(日) 05:07:24.12ID:Aq3hRABL なんでRustって成功しているの?
MSもGoogleもAppleもダメだったのに、やっぱり少し不親切なぐらいの方がいいのかな・・・・
MSもGoogleもAppleもダメだったのに、やっぱり少し不親切なぐらいの方がいいのかな・・・・
207デフォルトの名無しさん
2021/10/17(日) 06:34:07.94ID:atjZW8su Kotlin もよろしく
208デフォルトの名無しさん
2021/10/17(日) 06:58:29.73ID:PnF0LE+q CとかJavaとかPythonみたいなメインストリーム言語であるような、
他の言語の経験がない人を対象にした、プログラミング自体をその言語使って学んでいく初学者向けの分かりやすい本ってRustにはないよね
どの本もプログラミング既学者向け
他の言語の経験がない人を対象にした、プログラミング自体をその言語使って学んでいく初学者向けの分かりやすい本ってRustにはないよね
どの本もプログラミング既学者向け
209デフォルトの名無しさん
2021/10/17(日) 08:11:41.68ID:y3veWc+v 本は無い
コミュ力で盗め
ってみんな割と本気で思ってそう
終わりだねこの力
コミュ力で盗め
ってみんな割と本気で思ってそう
終わりだねこの力
210デフォルトの名無しさん
2021/10/17(日) 11:05:04.81ID:MkgjpPUe >>180
classの基本は変数とそれを操作するメソッドを一体化して扱おうっていうことだから、
ハードウェアのアナロジーとして捉えればそれ自体はさほど難しい概念ではないけどね。
まぁ、C++もいささか肥大化しすぎた感じでもあるけれど(笑)
Rustはclassを廃止したけど、結局structだけでは無理だから
implやtraitを持ち込んだんだよね?
traitの段階でどこにimplされるのかが決まっていないから、どのstructの
メンバを参照するのかを探すのがちょいとうっとおしかったかな。
Cで、構造体に関数へのポインタを入れた時は第一引数に構造体自体への
ポインタを渡したりしたから、ソースコード上でも、「こいつはどこを見るつもり?」
というのはよく分かったけどRustじゃ&selfだから、一見すると、
「お前は誰だぁ!??」って感じで。
継承ができない・・・とかいっても、そもそもRustはオブジェクト指向言語って
わけじゃないから、そのあたりは割り引いて考えないといけないんだろうけど。
classの基本は変数とそれを操作するメソッドを一体化して扱おうっていうことだから、
ハードウェアのアナロジーとして捉えればそれ自体はさほど難しい概念ではないけどね。
まぁ、C++もいささか肥大化しすぎた感じでもあるけれど(笑)
Rustはclassを廃止したけど、結局structだけでは無理だから
implやtraitを持ち込んだんだよね?
traitの段階でどこにimplされるのかが決まっていないから、どのstructの
メンバを参照するのかを探すのがちょいとうっとおしかったかな。
Cで、構造体に関数へのポインタを入れた時は第一引数に構造体自体への
ポインタを渡したりしたから、ソースコード上でも、「こいつはどこを見るつもり?」
というのはよく分かったけどRustじゃ&selfだから、一見すると、
「お前は誰だぁ!??」って感じで。
継承ができない・・・とかいっても、そもそもRustはオブジェクト指向言語って
わけじゃないから、そのあたりは割り引いて考えないといけないんだろうけど。
211デフォルトの名無しさん
2021/10/17(日) 11:23:57.78ID:Lu+6ZGga 成功してると思い込みたいバカが持ち上げてるだけだろ。
それだけ学習すれば済むと思い込みたいバカがな。
それだけ学習すれば済むと思い込みたいバカがな。
212デフォルトの名無しさん
2021/10/17(日) 12:18:01.28ID:3vXZmfmW JAVAの良さは何かな
最初の頃は一度書いたらすべてのプラットフォームで動作すると宣伝していたのに
最初の頃は一度書いたらすべてのプラットフォームで動作すると宣伝していたのに
213デフォルトの名無しさん
2021/10/17(日) 13:50:04.06ID:y3veWc+v214デフォルトの名無しさん
2021/10/17(日) 14:16:08.94ID:6j2makCm Javaは次々に新しいフレームワークができて
バージョンアップも早い
動かすだけで一苦労
が何回も繰り返される
バージョンアップも早い
動かすだけで一苦労
が何回も繰り返される
215デフォルトの名無しさん
2021/10/17(日) 16:18:33.33ID:KyO3PKvk >>210
> Rustはclassを廃止したけど、
> 結局structだけでは無理だから
> implやtraitを持ち込んだんだよね?
その発想はオブジェクト指向プログラミングに毒されているかなと思います
むしろRustは関数型プログラミングの視点から見れば素直に理解しやすいです
まず代数的データ型としてRustでは
『直積』をC言語と同じstructで
『直和』はC言語のunionでは機能不足なので値付きenum (=タグ付きunion)で表しています
もちろんこれらstructとenumはジェネリックに定義されて0個以上の他の型から構成されます
それらの上での(Haskell等の)『型クラス』としての位置付けがRustのtraitです
つまりある一つの側面としては
RustはC言語に関数型言語の概念を持ち込んだ手続き型言語という捉え方をするとわかりやすいでしょう
加えてC言語系統では今まで実現できていなかったメモリ安全性の保証に成功したことが大きいですね
> Rustはclassを廃止したけど、
> 結局structだけでは無理だから
> implやtraitを持ち込んだんだよね?
その発想はオブジェクト指向プログラミングに毒されているかなと思います
むしろRustは関数型プログラミングの視点から見れば素直に理解しやすいです
まず代数的データ型としてRustでは
『直積』をC言語と同じstructで
『直和』はC言語のunionでは機能不足なので値付きenum (=タグ付きunion)で表しています
もちろんこれらstructとenumはジェネリックに定義されて0個以上の他の型から構成されます
それらの上での(Haskell等の)『型クラス』としての位置付けがRustのtraitです
つまりある一つの側面としては
RustはC言語に関数型言語の概念を持ち込んだ手続き型言語という捉え方をするとわかりやすいでしょう
加えてC言語系統では今まで実現できていなかったメモリ安全性の保証に成功したことが大きいですね
216デフォルトの名無しさん
2021/10/17(日) 18:28:05.52ID:ESmnvthu >>212
ちゃんとしたオブジェクト指向
ちゃんとしたオブジェクト指向
217デフォルトの名無しさん
2021/10/17(日) 18:33:14.43ID:YptL43pX classを廃止したとか笑うわw
218デフォルトの名無しさん
2021/10/17(日) 18:35:13.51ID:7+j7XRcJ >>196
Dartって一時期めっちゃ死にかけてなかった?
Dartって一時期めっちゃ死にかけてなかった?
219デフォルトの名無しさん
2021/10/17(日) 18:48:49.33ID:MaJoh28m >>218
各ブラウザにDartVM積んでJavaScriptを置き換えようとしてたけど断念し、選ぶ価値の無いAltJSと化した死に損ない
最近はFlutterで息を吹き返して、Dart単体でも多少は使えるようになってきたような
各ブラウザにDartVM積んでJavaScriptを置き換えようとしてたけど断念し、選ぶ価値の無いAltJSと化した死に損ない
最近はFlutterで息を吹き返して、Dart単体でも多少は使えるようになってきたような
220デフォルトの名無しさん
2021/10/17(日) 19:14:55.95ID:MkgjpPUe >>215
オブジェクトと実体が一体になるというのは、組み込み用途でもわかりやすい
アナロジーなんだよね。
Rustの「こいつは誰をいじってるの?」というのが宣言されている段階で
確定していないというのは読む側のことを考えていないからなぁ。
メモリ安全というけど、間違った構造体にimplしてしまうと、そちらのメンバを
壊すことになるわけで、そこはコンパイラも実行段階でも引っかからないしね。
違う型の構造体に同じ名前のメソッドが来るというのは割とよくある話なんで、
そのあたりの混乱というのか、コンタミネーションをしないように
ファイルを分割するなりして、記述の時点で気をつけないといけないかなぁ。
そのあたりを「書き方」で工夫してやらないといけない。
オブジェクトと実体が一体になるというのは、組み込み用途でもわかりやすい
アナロジーなんだよね。
Rustの「こいつは誰をいじってるの?」というのが宣言されている段階で
確定していないというのは読む側のことを考えていないからなぁ。
メモリ安全というけど、間違った構造体にimplしてしまうと、そちらのメンバを
壊すことになるわけで、そこはコンパイラも実行段階でも引っかからないしね。
違う型の構造体に同じ名前のメソッドが来るというのは割とよくある話なんで、
そのあたりの混乱というのか、コンタミネーションをしないように
ファイルを分割するなりして、記述の時点で気をつけないといけないかなぁ。
そのあたりを「書き方」で工夫してやらないといけない。
221デフォルトの名無しさん
2021/10/17(日) 19:26:32.07ID:QqhGhKAl そもそも実用レベルのプログラミングでリソースの確保解放でバグは出ない。
意味のない営業文句。
意味のない営業文句。
222デフォルトの名無しさん
2021/10/17(日) 19:51:35.57ID:uRTUEgiz >>220
> Rustの「こいつは誰をいじってるの?」というのが宣言されている段階で
> 確定していないというのは読む側のことを考えていないからなぁ。
その辺はOOPにおけるインターフェースと同じでは?
> メモリ安全というけど、間違った構造体にimplしてしまうと、そちらのメンバを
> 壊すことになるわけで、そこはコンパイラも実行段階でも引っかからないしね。
これどういうこと?
> Rustの「こいつは誰をいじってるの?」というのが宣言されている段階で
> 確定していないというのは読む側のことを考えていないからなぁ。
その辺はOOPにおけるインターフェースと同じでは?
> メモリ安全というけど、間違った構造体にimplしてしまうと、そちらのメンバを
> 壊すことになるわけで、そこはコンパイラも実行段階でも引っかからないしね。
これどういうこと?
223デフォルトの名無しさん
2021/10/17(日) 19:58:40.22ID:y3veWc+v ネットの無料の情報には意味のない営業文句などが大量に混ざっている
224デフォルトの名無しさん
2021/10/17(日) 20:43:02.47ID:QqhGhKAl 伸長するメモリー領域には素直にstd::vectorを使えば良い。
性能は順当に劣化するが、それで良いと思う。
性能は順当に劣化するが、それで良いと思う。
225デフォルトの名無しさん
2021/10/17(日) 23:37:29.30ID:QqhGhKAl 明日の朝は大阪で11度らしいのでコートを忘れずに。
226デフォルトの名無しさん
2021/10/17(日) 23:48:16.60ID:KyO3PKvk >>220
Rustではジェネリックな型から見ると様々なtraitを実装する(指定する)ということは次々と制約を課すことであり
対象はstructだけではなく全ての型であってenumでも数値でも文字列でも何に対しても共通です
その上で別視点から見るとある型に様々なtraitを実装していくということは様々なtraitの機能をサポートしていくことでもあるわけです
> 間違った構造体にimplしてしまうと、
> そちらのメンバを壊すことになるわけで、
そんなことは起こりえません
あるtraitをその構造体に実装(impl)できたのならば間違っていなかったわけです
そしてその実装は自分で行うのですからメンバを壊すという意味不明なことは起こりえません
おそらくプログラミングをしたことがなくて大きな勘違いをしていると思われます
Rustではジェネリックな型から見ると様々なtraitを実装する(指定する)ということは次々と制約を課すことであり
対象はstructだけではなく全ての型であってenumでも数値でも文字列でも何に対しても共通です
その上で別視点から見るとある型に様々なtraitを実装していくということは様々なtraitの機能をサポートしていくことでもあるわけです
> 間違った構造体にimplしてしまうと、
> そちらのメンバを壊すことになるわけで、
そんなことは起こりえません
あるtraitをその構造体に実装(impl)できたのならば間違っていなかったわけです
そしてその実装は自分で行うのですからメンバを壊すという意味不明なことは起こりえません
おそらくプログラミングをしたことがなくて大きな勘違いをしていると思われます
227デフォルトの名無しさん
2021/10/17(日) 23:50:24.15ID:QqhGhKAl 本当にそれでバグが無くなるなら良いが、見当違いのことを一生懸命してるように見えるぞ。
228デフォルトの名無しさん
2021/10/17(日) 23:53:18.81ID:Rod/beEv >>221
それは君が間違っている。
以下の記事引用の最後の段落を読んで現実を知ろう。
グーグルやマイクロソフトが「Rust」言語でOS開発、背景に国家による諜報活動の影
https://xtech.nikkei.com/atcl/nxt/column/18/00692/042700054/
1970年代初めにUNIXの開発にC言語が採用されて以来、OS開発はCやその後継であるC++の独壇場だった。グーグルはこれまでもAndroidの開発にJavaやKotlinを採用していたが、カーネルやデバイスドライバーなどOSの下位レイヤーの開発にはC/C++しか使ってこなかった。RustはC/C++と同様に下位レイヤーの開発に使用する。
グーグルは数千万行にも及ぶ既存のC/C++のコードを書き換えるのは不可能としており、新規のコードの開発にのみRustを適用する方針だ。それでもOS開発の常識が数十年ぶりに変わるのだけは間違いない。
RustはWebブラウザー「Firefox」を開発する米Mozilla Foundation(モジラ財団)が開発を主導するプログラミング言語だ。開発が始まったのは2006年で、安定版であるバージョン1がリリースされたのも2015年のことだ。まだ新しいプログラミング言語をグーグルやマイクロソフトがOS開発に採用する理由は、OSのセキュリティー強化にある。
Rustは、プログラムに必要なメモリーの確保や解放に関連するバグが生じない「メモリー安全」が保証されたプログラミング言語である。それに対してこれまでのOS開発に使われてきたC/C++は「大規模な開発においてメモリー安全なコードを記述することがほぼ不可能」(マイクロソフトのブログ「We need a safer systems programming language」より)なのだという。
【脆弱性の70%がメモリー管理バグに起因】
グーグルによればAndroidに存在した深刻なセキュリティー脆弱性の70%近くがメモリー安全に関するバグに起因するという。同様にマイクロソフトも、同社製品に存在したセキュリティー脆弱性の70%がメモリー安全に関するバグに起因すると述べている。C/C++を使う限りセキュリティー脆弱性を根絶するのは不可能と考えて、Rustを採用するに至ったというわけだ。
それは君が間違っている。
以下の記事引用の最後の段落を読んで現実を知ろう。
グーグルやマイクロソフトが「Rust」言語でOS開発、背景に国家による諜報活動の影
https://xtech.nikkei.com/atcl/nxt/column/18/00692/042700054/
1970年代初めにUNIXの開発にC言語が採用されて以来、OS開発はCやその後継であるC++の独壇場だった。グーグルはこれまでもAndroidの開発にJavaやKotlinを採用していたが、カーネルやデバイスドライバーなどOSの下位レイヤーの開発にはC/C++しか使ってこなかった。RustはC/C++と同様に下位レイヤーの開発に使用する。
グーグルは数千万行にも及ぶ既存のC/C++のコードを書き換えるのは不可能としており、新規のコードの開発にのみRustを適用する方針だ。それでもOS開発の常識が数十年ぶりに変わるのだけは間違いない。
RustはWebブラウザー「Firefox」を開発する米Mozilla Foundation(モジラ財団)が開発を主導するプログラミング言語だ。開発が始まったのは2006年で、安定版であるバージョン1がリリースされたのも2015年のことだ。まだ新しいプログラミング言語をグーグルやマイクロソフトがOS開発に採用する理由は、OSのセキュリティー強化にある。
Rustは、プログラムに必要なメモリーの確保や解放に関連するバグが生じない「メモリー安全」が保証されたプログラミング言語である。それに対してこれまでのOS開発に使われてきたC/C++は「大規模な開発においてメモリー安全なコードを記述することがほぼ不可能」(マイクロソフトのブログ「We need a safer systems programming language」より)なのだという。
【脆弱性の70%がメモリー管理バグに起因】
グーグルによればAndroidに存在した深刻なセキュリティー脆弱性の70%近くがメモリー安全に関するバグに起因するという。同様にマイクロソフトも、同社製品に存在したセキュリティー脆弱性の70%がメモリー安全に関するバグに起因すると述べている。C/C++を使う限りセキュリティー脆弱性を根絶するのは不可能と考えて、Rustを採用するに至ったというわけだ。
229デフォルトの名無しさん
2021/10/18(月) 00:00:05.81ID:U4M03mzh >>228
10年後にはまた別のことを言ってる。
再現性のないバグのほとんどすべてがメモリーに起因するのは間違いないが、メモリーの確保解放とはまた別の話。
Rustのやり方で上手くいかないことは、C++を使う者ならとうの昔に気付いている。
10年後にはまた別のことを言ってる。
再現性のないバグのほとんどすべてがメモリーに起因するのは間違いないが、メモリーの確保解放とはまた別の話。
Rustのやり方で上手くいかないことは、C++を使う者ならとうの昔に気付いている。
230デフォルトの名無しさん
2021/10/18(月) 00:03:14.89ID:U4M03mzh Haskellこそ救世主である。
231デフォルトの名無しさん
2021/10/18(月) 00:09:24.28ID:gU1bKDav232デフォルトの名無しさん
2021/10/18(月) 01:15:23.81ID:U4M03mzh Rustじゃ無理、Haskellこそ次世代言語。
233デフォルトの名無しさん
2021/10/18(月) 02:37:41.54ID:mrfOLNSK >>227
ほんそれ
ほんそれ
234デフォルトの名無しさん
2021/10/18(月) 02:39:28.50ID:mrfOLNSK >>225
温暖化ωですね判りますωω
温暖化ωですね判りますωω
236デフォルトの名無しさん
2021/10/18(月) 03:31:02.12ID:cK47AFx9 Rustがメモリ安全だって主張している人はRustのメモリ安全とは具体的に何なのかソースも添えて説明すべきでしょう。
そうしないとあの言語だってメモリ安全だとか俺ならC/C++でも十分メモリ安全に書けるからRust不要って言われちゃうよ。
俺の知っている限りではRustのメモリ安全にはメモリリークしないことは含まれていないのでリークする可能性があるらしい。
RustにはC++のようなデストラクタがあるので解放し忘れることはないらしいが
C++のstd::shared_ptrに相当するRc<T>はReference count方式なのでお互いに参照しあうとメモリが解放されない。
そうしないとあの言語だってメモリ安全だとか俺ならC/C++でも十分メモリ安全に書けるからRust不要って言われちゃうよ。
俺の知っている限りではRustのメモリ安全にはメモリリークしないことは含まれていないのでリークする可能性があるらしい。
RustにはC++のようなデストラクタがあるので解放し忘れることはないらしいが
C++のstd::shared_ptrに相当するRc<T>はReference count方式なのでお互いに参照しあうとメモリが解放されない。
237デフォルトの名無しさん
2021/10/18(月) 05:42:04.96ID:gU1bKDav >>235
GoogleとMicrosoftが嘘を言ってると主張??
その記事にあるようにAndroidやMS製品に存在した深刻なセキュリティー脆弱性の70%近くがメモリー安全に関するバグに起因するとGoogleとMicrosoftがそれぞれ同じ主張をしている
>>236
C++わかるなら話が早い
ご存知のようにC++のスマートポインタは使い方を間違えてもコンパイラは通してしまい気付くチャンスがない
つまりC++は人間によるチェックに依存しているためコードが複雑化するとどこかでメモリ安全性を壊すバグが生じてきた
Rustはその言語仕様からメモリ安全性を壊すコードをコンパイラが認識してコンパイルを通さない
そのためコンパイルが通ったコードはメモリ安全性が保証される初のプログラミング言語となった
そこでIT大手各社がRustを採用支持>>53するというプログラミング言語の歴史でも初の事態となった
GoogleとMicrosoftが嘘を言ってると主張??
その記事にあるようにAndroidやMS製品に存在した深刻なセキュリティー脆弱性の70%近くがメモリー安全に関するバグに起因するとGoogleとMicrosoftがそれぞれ同じ主張をしている
>>236
C++わかるなら話が早い
ご存知のようにC++のスマートポインタは使い方を間違えてもコンパイラは通してしまい気付くチャンスがない
つまりC++は人間によるチェックに依存しているためコードが複雑化するとどこかでメモリ安全性を壊すバグが生じてきた
Rustはその言語仕様からメモリ安全性を壊すコードをコンパイラが認識してコンパイルを通さない
そのためコンパイルが通ったコードはメモリ安全性が保証される初のプログラミング言語となった
そこでIT大手各社がRustを採用支持>>53するというプログラミング言語の歴史でも初の事態となった
238デフォルトの名無しさん
2021/10/18(月) 09:29:18.21ID:deQZOXkA239デフォルトの名無しさん
2021/10/18(月) 10:40:12.86ID:oPyph5kC 静的チェック万能論者は信用できんわな。
それで減るものも多いが、あいつらは嘘を信じ始めている。
それで減るものも多いが、あいつらは嘘を信じ始めている。
240デフォルトの名無しさん
2021/10/18(月) 11:26:29.68ID:CRhgpEvH これ四色定理でやったやつだ
証明が嘘ではないことと証明の可読性を両立するのをやめた
証明が万能だと信じるなら両立をあきらめられない
万能ではないと判断すれば可読性は捨てられる
証明が嘘ではないことと証明の可読性を両立するのをやめた
証明が万能だと信じるなら両立をあきらめられない
万能ではないと判断すれば可読性は捨てられる
241デフォルトの名無しさん
2021/10/18(月) 12:55:52.50ID:nWV7c8cM >>236
公式ドキュメントには確かにメモリ安全性をちゃんと定義した箇所って無いね
近いのはあるけど……
https://doc.rust-lang.org/nomicon/meet-safe-and-unsafe.html
> If all you do is write Safe Rust, you will never have to worry about type-safety or memory-safety. You will never endure a dangling pointer, a use-after-free, or any other kind of Undefined Behavior.
公式ドキュメントには確かにメモリ安全性をちゃんと定義した箇所って無いね
近いのはあるけど……
https://doc.rust-lang.org/nomicon/meet-safe-and-unsafe.html
> If all you do is write Safe Rust, you will never have to worry about type-safety or memory-safety. You will never endure a dangling pointer, a use-after-free, or any other kind of Undefined Behavior.
242デフォルトの名無しさん
2021/10/18(月) 13:49:45.64ID:4dXA0uuo ダングリングポインタを作らない、に尽きるんじゃないの
243デフォルトの名無しさん
2021/10/18(月) 14:15:47.57ID:CRhgpEvH 変数の寿命が有限になった原因は2種類ある
スタックとヒープ
一部の言語ではヒープの定義をライブラリに丸投げするから言語仕様で定義しない
あとはスタックを定義するだけ
スタックとヒープ
一部の言語ではヒープの定義をライブラリに丸投げするから言語仕様で定義しない
あとはスタックを定義するだけ
244デフォルトの名無しさん
2021/10/18(月) 15:25:39.78ID:fRkWn8Ak 237のような気持ち悪い信仰がとてつもなくrustの普及を阻んでいる。
245デフォルトの名無しさん
2021/10/18(月) 15:42:51.62ID:r9t2S6+p メモリ破壊やリークが絶対存在しないプログラムでも
データ次第ではいくらでも飛ばせる
データ次第ではいくらでも飛ばせる
246デフォルトの名無しさん
2021/10/18(月) 16:41:38.35ID:a937BLhH なんかずれていってんな。
誰も万能とか言ってないのに、あくまでも他言語と比較しての話なのに。
誰も万能とか言ってないのに、あくまでも他言語と比較しての話なのに。
247デフォルトの名無しさん
2021/10/18(月) 17:24:02.54ID:+nrbTxfF rustはgc使わずにメモリ解放できるから速くて安全ということなのだと思ってたけど、そういう単純な話でもないのかな
248デフォルトの名無しさん
2021/10/18(月) 17:55:52.34ID:sVAVzshE 奴隷はrust使ってくれた方が助かる
249デフォルトの名無しさん
2021/10/18(月) 18:18:29.34ID:W4UMdHtn 優秀な人からRustへ流れてるよな
C++が言語として完全敗北してしまったところが興味深い
C++が言語として完全敗北してしまったところが興味深い
250デフォルトの名無しさん
2021/10/18(月) 18:26:09.16ID:sw4A5qdT Rustのセールストークなどに惑わされず
Rustがやろうとしたことを冷静に理解しきってるのがC++erという
C++を知らなかったりニワカ知識だったりする人が騒いだり対立を煽って楽しんでる
Rustがやろうとしたことを冷静に理解しきってるのがC++erという
C++を知らなかったりニワカ知識だったりする人が騒いだり対立を煽って楽しんでる
251デフォルトの名無しさん
2021/10/18(月) 19:13:39.89ID:gU1bKDav252デフォルトの名無しさん
2021/10/18(月) 19:54:57.93ID:sw4A5qdT いたずらに否定したりせず
慈しみ、見守ってるってこと
慈しみ、見守ってるってこと
253デフォルトの名無しさん
2021/10/18(月) 20:29:15.76ID:CRhgpEvH トークがどれだけうまくなっても人の話を聞かない相手には効果がないよな
聞き方や読み方のレベルを上げた方が早い
聞き方や読み方のレベルを上げた方が早い
254デフォルトの名無しさん
2021/10/18(月) 20:40:39.51ID:9iPUXHWE C/C++理解してれば
Rustは不要ですよ
Rustは不要ですよ
255デフォルトの名無しさん
2021/10/18(月) 20:44:49.04ID:oPyph5kC むしろrustで問題解決とか言ってるやつのc++コードがどれだけひどいのか観て見たくなってきたわw
256デフォルトの名無しさん
2021/10/18(月) 21:28:21.41ID:CRhgpEvH 事実が見えるまで粘るより仮定した方が早い
257デフォルトの名無しさん
2021/10/18(月) 21:57:02.11ID:W4UMdHtn もしC++がRustに勝る点が一つでも残っていれば
C++しか書けない人がこれほど発狂することなかったろうに
C++しか書けない人がこれほど発狂することなかったろうに
258デフォルトの名無しさん
2021/10/18(月) 23:49:18.78ID:k0GYnhD+ 超次世代言語Dart
259デフォルトの名無しさん
2021/10/19(火) 01:27:04.57ID:PbORd8vw C/C++で完璧なコードかけるならどこいっても歓迎されると思うよ
それが誰もできないんだからrustに流れてるってことでしょ
それが誰もできないんだからrustに流れてるってことでしょ
260デフォルトの名無しさん
2021/10/19(火) 03:17:45.56ID:+8M5kAvN261デフォルトの名無しさん
2021/10/19(火) 05:43:42.06ID:mawS91w/262デフォルトの名無しさん
2021/10/19(火) 07:01:04.92ID:3gMaYVXy 俺はここの耄碌よりGAFAMを信じますけどね
263デフォルトの名無しさん
2021/10/19(火) 07:40:41.53ID:HngacVLx 自分で考えろ低能
■ このスレッドは過去ログ倉庫に格納されています
