1 名前:デフォルトの名無しさん [2023/02/25(土) 09:49:46.74 ID:VRyB88xR.net] C++の色々配慮してめんどくさい感じは好きだけど、実務になったらメモリ安全性とか考えて今後Rustに変わっていくんかな?
159 名前:デフォルトの名無しさん mailto:sage [2023/03/06(月) 20:09:02.49 ID:BPh5rEIJ.net] >>158 mutとconstは逆さまの働きみたいだから、どっちで行くかは言語設計者の自由と 思われがちだけど、constな構造体のメンバは勝手に全てconst扱いになるという 単純な論理に出来るけど、mut方式の場合は、constキーワードも別に必要になりそう。
160 名前:デフォルトの名無しさん mailto:sage [2023/03/06(月) 21:18:31.55 ID:HKTArltY.net] >>157 他の言語と同じでsetter相当をなくしてgetterだけにすればいい 専用のラッパーを作る方法もあるができて当然の機能なので誰もやらないだろうね
161 名前:デフォルトの名無しさん mailto:sage [2023/03/06(月) 21:44:09.47 ID:l1NoBYC6.net] >>159 C++でconstを誤用しているのとは異なり Rustではconstを正しく定数の意味で使っているので注意 つまりconstは定数でありコンパイル時に静的に定まる もちろんconstとは別の概念としてmutableとimmutableがあり、これらは可変性の有無を表す さらにそれらと別の概念として所有権があり、所有権を持っていればimmutableであろうと関係なくmutableな変数へ移すことで可変性を得られる 一方で所有権を持たないimmutableな参照からは可変性を得られない
162 名前:デフォルトの名無しさん mailto:sage [2023/03/06(月) 21:51:25.41 ID:1935XsNt.net] >>161 >C++でconstを誤用しているのとは異なり 誤用なの?
163 名前:デフォルトの名無しさん mailto:sage [2023/03/06(月) 22:01:32.22 ID:l1NoBYC6.net] >>162 そうだよ 実行するたびにあるいは関数を呼ぶたびに値が変わりうる変数(=静的に値が定まらず変わりうること)に対して、 変数がimmutableであることを間違えてconstと付けてしまった そのためC++では定数(=静的に値が定まること)の場合は苦肉の策でconstexprと変な名前を付けることになった
164 名前:デフォルトの名無しさん mailto:sage [2023/03/06(月) 22:21:12.53 ID:1935XsNt.net] >>163 C++では単に値が`constant'って意味で使っただけではないのかな? それを誤用とは言わんと思う ところで何でconstexprではないconst変数は 静的に定まらないことになってるの?
165 名前:デフォルトの名無しさん mailto:sage [2023/03/06(月) 22:37:19.16 ID:l1NoBYC6.net] >>164 もちろんC++は整数などに限ればconstで静的な定数となるが それ以外C++のconstは定数ではなく静的にコンパイル時に定まらない そのため真のconstを表すためにconstexprというキーワードを新たに用意する本末転倒な状況となった
166 名前:デフォルトの名無しさん mailto:sage [2023/03/06(月) 22:52:19.69 ID:1935XsNt.net] 以下の2つは矛盾してないかい? >>163 >実行するたびにあるいは関数を呼ぶたびに値が変わりうる変数(=静的に値が定まらず変わりうること)に対して、 >変数がimmutableであることを間違えてconstと付けてしまった >>164 >もちろんC++は整数などに限ればconstで静的な定数となるが 2つ目はなるんだっけ?
167 名前:デフォルトの名無しさん mailto:sage [2023/03/06(月) 22:53:11.95 ID:1935XsNt.net] >>165 >そのため真のconstを表すためにconstexprというキーワードを新たに用意する本末転倒な状況となった 「本末転倒」とは違うと思うよ
168 名前:デフォルトの名無しさん mailto:sage [2023/03/06(月) 23:09:16.19 ID:h8dbx3na.net] >>166 C++で何らかのクラスのインスタンスを作ってconstに入れることを考えてみるとわかりやすいよ もちろんこのconstのインスタンスはコンストラクタの引き数の値によって変わるから静的な定数じゃないよね つまり単なるimmutableな変数に過ぎないわけだけどC++はそれに対してconstと間違えて名付けちゃった だから本当の定数に対してconstexprと名付けることになった有名な話だよ
169 名前:デフォルトの名無しさん mailto:sage [2023/03/06(月) 23:20:34.22 ID:1935XsNt.net] >>168 >つまり単なるimmutableな変数に過ぎないわけだけどC++はそれに対してconstと間違えて名付けちゃった C++のconstは単なる`constant'の意味で 静的な定数という意味でないというだけなのでは? 本当に「間違えて」名付けたのかな? 俺にはC++のconstにあなたが「間違えて」静的な定数という意味を 期待しているだけに見えるのだが?
170 名前:デフォルトの名無しさん mailto:sage [2023/03/06(月) 23:31:32.57 ID:l1NoBYC6.net] >>169 環境によって実行毎に、または、関数の引き数によって関数が呼ばれるごとに、>>168 の示してる例だと値が変わりうる その変わりうるものに対して、C++がconstと付けたのは失敗としか言いようがないのではないか そしてC++は本当にconstantなものに対して、後からconstexprと付けざるをえなかったことが、C++の失敗を誰の目にも明らかにしている
171 名前:デフォルトの名無しさん mailto:sage [2023/03/06(月) 23:33:40.69 ID:1935XsNt.net] >>170 >環境によって実行毎に、または、関数の引き数によって関数が呼ばれるごとに、>>168 の示してる例だと値が変わりうる これはどいう状況か分かりにくい? ソースで書いてみて
172 名前:デフォルトの名無しさん mailto:sage [2023/03/06(月) 23:42:46.60 ID:l1NoBYC6.net] >>171 関数に渡ってきた毎回変わりうる引き数を使ってそれを渡してインスタンス作成してconstに突っ込む場合でもよい あるいは環境変数やargv使ってインスタンス作成でもよい いずれも毎回インスタンスの値が変わりうるため定数ではないがC++ではconstと付けてしまった そして本当の定数にconstexprと付けた
173 名前:デフォルトの名無しさん mailto:sage [2023/03/06(月) 23:47:46.47 ID:1935XsNt.net] >>172 曖昧さを避けたいのでソースで書いて 反論する
174 名前:デフォルトの名無しさん mailto:sage [2023/03/06(月) 23:52:15.11 ID:p7JhiTtQ.net] ただし*const Tのconstだけはコンパイル時定数の意ではなく、C++と同じで書き換えを行えないという意味です 一貫性がありませんね
175 名前:デフォルトの名無しさん mailto:sage [2023/03/06(月) 23:56:33.22 ID:h8dbx3na.net] >>169 数字でも物理でも定数は静的に定まるものだよ でもC++はconstをimmutableの意味で間違えて名付けてしまいました そして定数を表すためにconstを使えなくなりconstexprと名付けたという誰でも知ってる有名な話だよ
176 名前:デフォルトの名無しさん mailto:sage [2023/03/07(火) 00:01:46.05 ID:gZ1LpnCS.net] >>175 >でもC++はconstをimmutableの意味で間違えて名付けてしまいました とあなたが思っているだけではないかな? C++のconstにあなたなが「間違えて」静的に定まるものを期待しているだけでは?
177 名前:デフォルトの名無しさん mailto:sage [2023/03/07(火) 00:09:47.95 ID:6eBCzRN0.net] 言われてみれば数字や物理で定数は静的に定まる値だな どうせC++で静的に定まる値を示すキーワードも必要となるんだから素直にそれをconstにしておくべきだったか 設計ミスだな
178 名前:デフォルトの名無しさん mailto:sage [2023/03/07(火) 00:57:00.01 ID:UNnBBHt0.net] >>175 >>177 の頭が設計ミス
179 名前:デフォルトの名無しさん [2023/03/07(火) 01:08:45.38 ID:gZ1LpnCS.net] >>177 >言われてみれば www
180 名前:デフォルトの名無しさん mailto:sage [2023/03/07(火) 01:27:52.75 ID:phr7A4jU.net] immutableとconstantの違いを区別できていない人がimmutableに対してconstと命名してしまったのかな そのためconstantに対してconstと命名できなくなってconstexprと命名したと
181 名前:デフォルトの名無しさん mailto:sage [2023/03/07(火) 01:31:47.04 ID:CjRtBzJ1.net] 同じ言葉や字句でも言語ごとにその概念が指すものは異なる 相対主義的に考えなさい 相手の価値観を理解しなければ説得力は生まれません
182 名前:デフォルトの名無しさん mailto:sage [2023/03/07(火) 02:21:18.68 ID:oSHTm7sl.net] ・y = ax (a=10である) aをimmutableと呼ぶかconstantと呼ぶか ・y=f(a) (a=10である) f(a)をconstantと呼ぶかconstant expressionと呼ぶか まあ考え方次第だよな
183 名前:デフォルトの名無しさん mailto:sage [2023/03/07(火) 02:29:20.82 ID:phr7A4jU.net] >>182 上はxが実行時に値がわかる変数なんでしょ? それならconstantには成りえないんじゃない?
184 名前:デフォルトの名無しさん mailto:sage [2023/03/07(火) 08:05:58.19 ID:oSHTm7sl.net] >>183 かかるaについてなんと呼ぶかって話だから別にxについて気にする必要は無いよ
185 名前:デフォルトの名無しさん mailto:sage [2023/03/07(火) 08:10:06.41 ID:X5urLXgj.net] >>182 理解できていなさ過ぎだろw
186 名前:デフォルトの名無しさん mailto:sage [2023/03/07(火) 08:16:15.53 ID:X5urLXgj.net] >>182 あと例を出すにしても 整数は特殊でconstexprでなくconstでも静的定数になる例外だから例として最も不適切
187 名前:デフォルトの名無しさん mailto:sage [2023/03/07(火) 09:21:06.13 ID:hj+ftEk+.net] 自演してRustゴリ推し他言語叩きをしてるのは 複製おじさんと呼ばれてるRustスレでは有名な荒らし しかもそいつが「RustJP公式 」の中の人で間違いなさそうって話だから手に負えない
188 名前:デフォルトの名無しさん mailto:sage [2023/03/07(火) 10:27:35.30 ID:QCj9HjAv.net] >>187 「RustJP自称公式 」なのでなんの問題もない
189 名前:デフォルトの名無しさん [2023/03/07(火) 11:40:31.33 ID:gZ1LpnCS.net] >>180 それはお前用語なんじゃね?
190 名前:デフォルトの名無しさん mailto:sage [2023/03/07(火) 11:55:27.75 ID:CdvGJ9oA.net] y = ax y も a も x も変数としか言いようがない
191 名前:デフォルトの名無しさん mailto:sage [2023/03/07(火) 12:47:12.28 ID:CHI/c7S+.net] aを10としたときにコンパイル時 最適化してしまうかaという入れ物残しとくか更にはf(a)も計算して結果だけ使うか
192 名前:デフォルトの名無しさん mailto:sage [2023/03/07(火) 21:59:54.08 ID:6AJw5hNk.net] 整数はconstやconstexprの有無に関係なくコンパイル時に最適化されるから整数を持ち出して来ても意味がない C++ならクラスのインスタンスを生成する場合などを考えるとわかりやすい コンパイル時点でそのインスタンスを定数化できる時にconstexprを使い静的に定数となる そうでなく実行時にならないと値が定まらない変数となる時はconstexprを使えない その変数がimmutableつまり生成以降は値を変更できない時はconstを使う
193 名前:182 mailto:sage [2023/03/07(火) 22:28:59.56 ID:oSHTm7sl.net] constというものの表現を語るうえで言語依存しない形で書いただけなので 少数でも文字列でも適当に読み替えてね
194 名前:デフォルトの名無しさん mailto:sage [2023/03/08(水) 00:26:55.95 ID:Ax/TB2dR.net] >>192 C++の命名ミスだな 定数にconstと命名すべきであり immutableな変数にconstと命名すべきでなかった
195 名前:デフォルトの名無しさん mailto:sage [2023/03/08(水) 00:36:06.87 ID:o1WhyvRq.net] 壊れたテープレコーダは生まれてくるべきでなかった
196 名前:デフォルトの名無しさん mailto:sage [2023/03/08(水) 00:46:11.75 ID:+ZMcnEdg.net] 事後諸葛亮
197 名前:デフォルトの名無しさん mailto:sage [2023/03/08(水) 01:01:29.10 ID:qkb67oYH.net] 同じ事しか書けない命名君はGC連呼厨なのか
198 名前:デフォルトの名無しさん mailto:sage [2023/03/08(水) 01:22:37.49 ID:9h+oJZcX.net] 結果的に後からみればC++の命名ミスなんだろうが歴史的経緯で仕方ないだろ 昔はimmutableとconstantの概念の区別が曖昧だった
199 名前:デフォルトの名無しさん mailto:sage [2023/03/08(水) 01:53:12.26 ID:CbNEQcSB.net] どうしても`immutable'を使いたければマクロ定義すれば? #define immutable const
200 名前:デフォルトの名無しさん mailto:sage [2023/03/08(水) 02:01:56.79 ID:3vDDzLqz.net] Rustはconstをimmutableとcompile-time constantの両方の意味で使うので一貫性が無い >>174
201 名前:デフォルトの名無しさん mailto:sage [2023/03/08(水) 07:29:50.16 ID:OMAPV4fU.net] >>200 Rustでconstは常に静的な定数を表す *constはconstとは全く別のものであり予約語を最小限にするための使い回し組み合わせ 両者は種別も異なるため混乱することもない constは定数の定義なのでこの位置に来る let foo: i32 = 12345; const FOO: i32 = 12345; *constは生ポインタの型を示すのでこの位置に来る const BAR: &i32 = &FOO; const BAZ: *const i32 = &FOO; このように両者は全く別物で出現位置も異なり共存もでき混乱することもない この生ポインタはunsafe Rustでしか使わないため通常は出て来ない そのために新たな予約語を消費するのは馬鹿げているため既存の組み合わせという合理的な選択をした
202 名前:デフォルトの名無しさん mailto:sage [2023/03/08(水) 07:30:57.28 ID:/qygPgTx.net] constはCからの流れだしな。 元々Cがシステムプログラミング向けだったことを思えば、「リードオンリーセクションに置け」っていうくらいのつもりだったんだろ。 定数は#defineで指定しろって感じかな。
203 名前:デフォルトの名無しさん mailto:sage [2023/03/08(水) 08:49:19.07 ID:w2ee/I/N.net] >>201 > この生ポインタはunsafe Rustでしか使わないため通常は出て来ない safeの範囲で普通に使うけど 参照の同一性比較とか書いたことないの?
204 名前:デフォルトの名無しさん mailto:sage [2023/03/08(水) 09:00:01.62 ID:OMAPV4fU.net] >>203 参照の比較は生ポインタ直接比較ではなくstd::ptr::eqを使うのが行儀良いマナー 参照を渡せば*constに自動でcoerceされるためコードに*constを記述する必要はない
205 名前:デフォルトの名無しさん mailto:sage [2023/03/09(木) 14:43:18.74 ID:lc0skjdv.net] 本題に戻ろう
206 名前:デフォルトの名無しさん [2023/03/09(木) 19:02:01.89 ID:33ubz+zP.net] Rustは優秀なんだろうけど、言語仕様が難解なのと、「〜の分野ならRust」と言えるものがないから広がりにくいんだろうね
207 名前:デフォルトの名無しさん mailto:sage [2023/03/11(土) 11:27:51.97 ID:E47xdjIQ.net] それにRustは左翼的な弱者救済的な雰囲気が漂う。 VBも同じ理由で使ってるだけで駄目プログラマとみなされていったから、 同じようにRustを使ってるだけで駄目プログラマ決定されてしまう気がする。
208 名前:デフォルトの名無しさん mailto:sage [2023/03/11(土) 11:29:57.74 ID:E47xdjIQ.net] Excelもそうだ。Excelを使ってるだけで弱者扱いされてしまうようになっている。 VBもそうなったから、中味はそう変わってないのに名前を変えてC#にされた。 しかし、だんだんと、C#もVBと同じように馬鹿プログラマ専用言語とみなされる ようになってきてる。 Rustもきっとそうなるだろう。
209 名前:デフォルトの名無しさん mailto:sage [2023/03/11(土) 14:27:01.34 ID:lvldJuuV.net] Rustも悪くないけど日本語のドキュメントが酷すぎるかなあ。 たとえば第七章のパッケージとグレートの話とかでも ------- 最初に学ぶモジュールシステムの要素は、パッケージとクレートです。 クレートはバイナリかライブラリのどちらかです。 クレートルート (crate root) とは、Rustコンパイラの開始点となり、クレートのルートモジュールを作るソースファイルのことです -------- 英文の方は版が新しいこともあってか The first parts of the module system we’ll cover are packages and crates. A crate is the smallest amount of code that the Rust compiler considers at a time. Even if you run rustc rather than cargo and pass a single source code file (as we did all the way back in the “Writing and Running a Rust Program” section of Chapter 1), the compiler considers that file to be a crate. と、いう具合で以下だいぶ丁寧に解説してる。 パッケージにはa library crateとあるから一つだけなの?とChatGPTに尋ねたら複数入ることもあると断言されたけど。
210 名前:デフォルトの名無しさん mailto:sage [2023/03/11(土) 14:31:08.67 ID:+PZMhSrI.net] 面倒ならとりあえずDeepLに掛ければ良いのにね > モジュールシステムで最初に取り上げるのは、パッケージとクレートです。 > > クレートは、Rustコンパイラが一度に考慮する最小のコード量です。cargoで > はなくrustcを実行し、1つのソースコードファイルを渡したとしても(第1章 > の「Rustプログラムの作成と実行」でやったように)、コンパイラはそのファ > イルをクレートと見なします。
211 名前:デフォルトの名無しさん mailto:sage [2023/03/11(土) 16:27:23.47 ID:BtFFfdHV.net] >>209 ひどすぎるのには同意するが それはボランティアによる非公式な翻訳で 識者による監修や査読がされてないから 質が低いのは当然といえば当然 一部専門用語を除くと機械翻訳のほうが それよりはマシな訳になることが多いので 多少英語が苦手でも公式を見たほうが断然効率がいいよ
212 名前:デフォルトの名無しさん mailto:sage [2023/03/11(土) 16:39:48.49 ID:47WJOH0Y.net] >>209 7章の最初のページ見ればそれぞれどういう関係なのか一目瞭然 単数形複数形の違いを丁寧に訳してなければ重要な意味が日本語訳では消えてるかもね ・Packages: A Cargo feature that lets you build, test, and share crates ・Crates: A tree of modules that produces a library or executable ・Modules and use: Let you control the organization, scope, and privacy of paths ・Paths: A way of naming an item, such as a struct, function, or module
213 名前:デフォルトの名無しさん mailto:sage [2023/03/11(土) 17:28:34.44 ID:/GMTezZ0.net] >>209 そのページは原文の2年半以上前の状態止まってる 日々改善されてるOSSで数年単位の遅れがあると全く役に立たないから 現状はRustの日本語ドキュメントは無いものと思っておいたほうがいい
214 名前:デフォルトの名無しさん mailto:sage [2023/03/11(土) 18:00:56.32 ID:bkYlWMhE.net] >>213 原文のいつの状態を反映した訳なのか全然管理できてないらしいからね アップデートは望み薄
215 名前:デフォルトの名無しさん mailto:sage [2023/03/11(土) 19:45:03.63 ID:+PZMhSrI.net] 規格がないので二流感が拭えない かと言ってC++が登場したときのように 今はプログラミング言語の実装が いくつも出てくる状況でもないのかな?
216 名前:デフォルトの名無しさん mailto:sage [2023/03/11(土) 22:12:18.37 ID:GtLfWJGz.net] >>215 C++での混乱と失敗を繰り返さないことが重要
217 名前:デフォルトの名無しさん [2023/03/11(土) 22:59:17.84 ID:+PZMhSrI.net] 実装は複数あった方がメリットが大きいよ
218 名前:デフォルトの名無しさん mailto:sage [2023/03/11(土) 23:05:20.16 ID:2/rFH0pr.net] >>214 マジかよw たかだか100個程度のファイルが管理できないってどんだけよ
219 名前:デフォルトの名無しさん mailto:sage [2023/03/11(土) 23:19:14.88 ID:ChsfUoNW.net] 実装が複数あることはメリットもあるがデメリットも多くユーザを混乱させてきた 一方で言語仕様とその実現方法が確定して枯れた時は複数実装のメリットが上回る Rustについては更なる理想の言語に向けて公開todoリストも多くまだ発展段階なので複数実装は向いていない もちろん従来的な使い方ならば現状のRustで既に十分に利用できる
220 名前:デフォルトの名無しさん mailto:sage [2023/03/11(土) 23:24:45.49 ID:uRw385pv.net] >>218 ユーザーフォーラムのしかもたった二人の回答を「公式コミュニティの見解」にしてしまうオツムの人達だからさ一般常識があると思ったら大間違い
221 名前:デフォルトの名無しさん mailto:sage [2023/03/11(土) 23:30:52.30 ID:+PZMhSrI.net] >>219 3行目は全否定しておく CやC++に複数の実装があった第一の要因は開発ツールが売れたという背景がある Rustに限らず開発ツールは最早ビジネスとしては成り立たなくなってしまった
222 名前:デフォルトの名無しさん mailto:sage [2023/03/11(土) 23:34:33.13 ID:2T5UBlcf.net] >>220 あれ痛いよね でもピン留めして晒し上げるのはさすがにどうかと思うわ
223 名前:デフォルトの名無しさん mailto:sage [2023/03/11(土) 23:39:25.95 ID:ChsfUoNW.net] Rustは公式が提供するcargoやrust-analyzerで開発環境は十分だもんな もちろんrust-analyzerはLSPなのでVScodeなどの既存の統合開発環境で使える
224 名前:デフォルトの名無しさん mailto:sage [2023/03/11(土) 23:51:17.37 ID:3ENT9RfU.net] >>220 Rustユーザーの大半は英語のドキュメントを直接見てるからな 同じRustユーザーというだけであのリテラシーレベルと同類扱いされるのは誠に遺憾
225 名前:デフォルトの名無しさん mailto:sage [2023/03/12(日) 06:07:53.91 ID:b0Zzr0Fl.net] >>212 一目瞭然ってことはないよ。 わかってるやつにはわかるっていうレベル。 特にmodule and use以下で戸惑うと思うよ。 Rustはプログラミング言語としてはCとかで神経使っていたところで楽させてくれる感じだけど、新人を呼び込むにはドキュメントがまずいかなあ。
226 名前:デフォルトの名無しさん mailto:sage [2023/03/12(日) 09:19:37.91 ID:XJpeOWKz.net] 前にもこれどこかで同じレスしたことあるけど Javascriptってドキュメントすっごい充実してるよな 2000年以前はHTMLとJavascript一緒になった解説本の最後の方に申し訳程度に乗ってたくらいで あとは某とほほサイト見るくらいしかなかったけど 最近ちらっとみたらすごいのな https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/find これは適当にクリックした特に選んでない一例だけど ちょっと過剰なくらい説明と例が乗っててスゴイと思ったわ Rustにここまでを要求したほうがいいとも思わんけど いつかみんなが使う言語になったときはそうなってるのかもしれん
227 名前:デフォルトの名無しさん [2023/03/13(月) 09:18:51.45 ID:65XUJIc/.net] udemyからrust勉強すれば良いと思う
228 名前:デフォルトの名無しさん [2023/03/13(月) 11:30:57.14 ID:QpsvkUdl.net] C++は既に意味不明な域に来ていて、誰も新規に習得しようとはしないだろう
229 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 12:04:07.60 ID:wwEuDEVq.net] >>226 ほんと。自分もノーマークだったけどすごいね。 Rustも「英文ドキュメント読め」みたいに突っぱねいようにしなくちゃね。 Rustのサイトで各国語にトランスレートされたもののリンク先の更新日付を眺めてると、中国語版に負けてる感じだね。
230 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 12:11:38.79 ID:CJ8zcgHs.net] 中国なんてどうでもいい
231 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 12:13:17.03 ID:bP2+YJD9.net] MDNもMDNで英語読まないとやってられない記事はちょいちょいあるけどね CSSのpositionとか
232 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 14:43:06.35 ID:wwEuDEVq.net] 少なくとも手解き用として、TheBookの日本語版ではねえ。 で、メモリ安全ってことだけをひたすらリピートするだけでは、新しい人は来ないでくださいと言ってるようなもん。 まあ、その方がチンケな優越感に浸れて良いのかもしれないけど。
233 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 15:10:59.37 ID:cwbZasxH.net] >>231 Wasmのところも日本語版は古い情報のままなので肝心なAPIが足りていなくて英語版を見ないと致命的 リンク先が訳せてなくて英語版を指しているのは次善策としてまだマシ 英語版 https://developer.mozilla.org/en-US/docs/WebAssembly#api_reference 日本語版 https://developer.mozilla.org/ja/docs/WebAssembly#api_%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9
234 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 15:27:59.03 ID:kyo182dJ.net] メモリ安全ってのは個人が始める動機としては弱い スマートポインタで充分なんだし チームで書くときにメモリ管理が怪しい奴が混ざり得るときに Rustで書くことを強制されるってシチュエーションはありえるかもね
235 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 15:42:51.26 ID:sbzZb6rB.net] >>234 両方書いてると差は歴然 Rustは可読性もよいし開発効率もよく 特に実行時デバッグが激減するのも大きい やむをえない場合を除いてC++を使い続けるメリットはない
236 名前:デフォルトの名無しさん [2023/03/13(月) 15:54:03.52 ID:kyo182dJ.net] >>235 >Rustは可読性もよいし開発効率もよく そんなのは人によるとしか言えない 所有権に割と馴染みがあるC++プログラマはともかく 他の言語からだと文法の解離に抵抗はあるだろうね これからプログラミングを始めようという人は 特にRustだからという抵抗はないだろう 実績が増えればRustからって人が増えるかもね
237 名前:デフォルトの名無しさん [2023/03/13(月) 16:03:04.23 ID:UI2Ct8M3.net] C++はコンパイラ買う時にデバッグツールもあって、そこでメモリリーク含む大体の解析が出来ることが多いから、今の所メモリ安全で困ったことはないな。 それよりもRustはまだ新しいから、何かしら思わぬ脆弱性が潜んでいることも考えて、まだ弄りながら様子見って感じ
238 名前:デフォルトの名無しさん [2023/03/13(月) 18:05:23.37 ID:QpsvkUdl.net] C++の有料コンパイラってそんなすげえのか?
239 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 18:37:31.12 ID:cwbZasxH.net] >>236 初心者や素人はC++でもRustでもなくBASICやPythonをやっていればいい C++もRustも書きこなせる人なら自明なようにRustがはるかに効率いい
240 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 19:04:23.67 ID:sbzZb6rB.net] >>237 デバッグツールを持ち出さなくてもRustはコンパイル時点でほとんど解決する点で圧倒的に優れている Rustはメモリ安全性だけでなくデータ競合がないことがコンパイル時点で保証される ポインタ以外の汎用的なヌル安全とエラー処理忘れ防止もRustは標準ライブラリ全体でOptionとResult利用により保証される C++と比べて開発効率が段違いに良くなる
241 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 19:17:45.07 ID:9XZC5W3h.net] C/C++のメモリリークと隣合わせなスリルがいいんだよ Rustなんて補助輪付きの言語はプロのプログラマッには温すぎる コーディングに自信がない奴や素人向けだな、Rustは
242 名前:デフォルトの名無しさん [2023/03/13(月) 19:49:16.47 ID:zhi7FkgJ.net] >>241 C/C++はプログラマとして成長させてくれるよね
243 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 19:51:01.09 ID:cwbZasxH.net] >>241 C++はデバッグ時間のムダ
244 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 20:02:48.32 ID:lNJwESa5.net] 別にスマートポインタでええがな
245 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 20:04:22.18 ID:lNJwESa5.net] Rustは規格が出てからだな
246 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 20:07:14.22 ID:4NzLTP/2.net] マ板でやれバカども
247 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 20:22:48.71 ID:4VuAJC20.net] >>239 変わった言語なので まず初めに学んだほうが先入観がなく覚えられるよ そのためにも日本語のドキュメントは 整備したほうが良い
248 名前:デフォルトの名無しさん [2023/03/13(月) 20:39:22.66 ID:RfKK3GLn.net] トラ枝 5月号 Rust 特集
249 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 20:45:38.95 ID:sbzZb6rB.net] >>243 その通りでC++は無駄なデバッグ時間が必要となるけど テストで発見できなかった分はデバッグもされず実行時のセキュリティ含めたバグとして残ってしまう Rustならばコンパイル時点ですべて排除できる >>244 勉強不足すぎだ C++のスマポで解決できることはRustで解決できることのほんの一部にすぎない
250 名前:デフォルトの名無しさん [2023/03/13(月) 21:04:50.75 ID:kyo182dJ.net] >>249 >勉強不足すぎだ >C++のスマポで解決できることはRustで解決できることのほんの一部にすぎない 他は?
251 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 21:41:54.90 ID:Lx/25M/K.net] >>250 そんなことも知らずにこのスレで書き込み続けているのかよ 他の人たちの書き込みを読んでないのかよ
252 名前:デフォルトの名無しさん [2023/03/13(月) 21:46:41.78 ID:kyo182dJ.net] >>251 他は? GCしか書けない人なのかな?
253 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 22:00:51.65 ID:sbzZb6rB.net] >>250 既にたくさん書いて伝えた 理解できなかったのか?
254 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 22:16:19.15 ID:P8sbSRo2.net] 絵に描いたような負け犬のセリフw
255 名前:デフォルトの名無しさん [2023/03/13(月) 22:35:49.32 ID:kyo182dJ.net] >>253 本当にGCしか知らないんだな >>249 >勉強不足すぎだ 熨斗をつけてそのままお返ししよう
256 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 22:38:39.16 ID:Lx/25M/K.net] >>252 C++もRustもGC無いぞ
257 名前:デフォルトの名無しさん [2023/03/13(月) 22:43:20.72 ID:kyo182dJ.net] >>256 んなことぁ誰でも分かってる
258 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 23:26:56.50 ID:sbzZb6rB.net] >>255 GC言語も使うしC/C++/Rustも使う 速さと省メモリの点でGC言語は不利だから使い分ける
259 名前:デフォルトの名無しさん [2023/03/13(月) 23:40:00.84 ID:kyo182dJ.net] >>249 >勉強不足すぎだ >C++のスマポで解決できることはRustで解決できることのほんの一部にすぎない だから他は?