[表示 : 全て 最新50 1-99 101- 201- 301- 401- 2ch.scのread.cgiへ]
Update time : 03/23 08:38 / Filesize : 137 KB / Number-of Response : 454
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

結局C++とRustってどっちが良いの?



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で解決できることのほんの一部にすぎない
だから他は?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<137KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef