公式
https://www.rust-lang.org/
https://blog.rust-lang.org/
https://github.com/rust-lang/rust
公式ドキュメント
https://www.rust-lang.org/learn
Web上の実行環境
https://play.rust-lang.org
※Rustを学びたい人はまず最初に公式のThe Bookを読むこと
https://doc.rust-lang.org/book/
※Rustを学ぶ際に犯しがちな12の過ち
https://dystroy.org/blog/how-not-to-learn-rust
※Rustのasyncについて知りたければ「async-book」は必読
https://rust-lang.github.io/async-book/
※次スレは原則>>980が立てること
前スレ
Rust part21
https://mevius.5ch.net/test/read.cgi/tech/1692105879/
ワッチョイスレ
プログラミング言語 Rust 4【ワッチョイ】
https://mevius.2ch.net/test/read.cgi/tech/1514107621/
Rust part22
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2024/01/20(土) 23:21:40.08ID:wyzQTwgG758デフォルトの名無しさん
2024/02/14(水) 10:53:25.15ID:naKe/3pl759デフォルトの名無しさん
2024/02/14(水) 11:07:38.32ID:RfRsJx+N 使う側が気をつけるならC++も問題ないからな
760デフォルトの名無しさん
2024/02/14(水) 11:17:22.43ID:NjTyhCIW761デフォルトの名無しさん
2024/02/14(水) 11:23:15.20ID:FEB+PUkj762デフォルトの名無しさん
2024/02/14(水) 11:28:02.15ID:naKe/3pl ダメ人間の思想「使う側が気をつければ問題ない」によって
今まで数多のなかなか見つからないバグやセキュリティホールを生じてきたのがプログラミング言語の黒歴史
今後はそのような言語を用いてはいけない
今まで数多のなかなか見つからないバグやセキュリティホールを生じてきたのがプログラミング言語の黒歴史
今後はそのような言語を用いてはいけない
763デフォルトの名無しさん
2024/02/14(水) 11:51:49.92ID:L7EuZktb ここで>>9-20の流れを振り返ってみましょう
764デフォルトの名無しさん
2024/02/14(水) 11:52:42.46ID:3OoaoCBc C の後置 ++ 演算子のようなことをする Rust の関数が標準で有ったりしますか?
リファレンスマニュアルをざっとみた感じでは見つけられないのですが……。
具体的に言えば
fn increment(dest: &mut u32) -> u32 {
let t = *dest;
*dest += 1;
t
}
みたいなことをしたくて、いかにもよくありそうなパターンなので標準内にあってもよさそうなもんだと思った次第です。
リファレンスマニュアルをざっとみた感じでは見つけられないのですが……。
具体的に言えば
fn increment(dest: &mut u32) -> u32 {
let t = *dest;
*dest += 1;
t
}
みたいなことをしたくて、いかにもよくありそうなパターンなので標準内にあってもよさそうなもんだと思った次第です。
765デフォルトの名無しさん
2024/02/14(水) 12:13:59.14ID:s2Ev9A6j766デフォルトの名無しさん
2024/02/14(水) 12:19:27.37ID:Cdw7DngV767デフォルトの名無しさん
2024/02/14(水) 12:25:13.12ID:b46uhNiQ768デフォルトの名無しさん
2024/02/14(水) 12:29:23.30ID:naKe/3pl769デフォルトの名無しさん
2024/02/14(水) 12:49:07.16ID:b46uhNiQ770デフォルトの名無しさん
2024/02/14(水) 12:52:16.39ID:KpCwABm3 欠点がない言語なんて無いから言い争ってもね。
771デフォルトの名無しさん
2024/02/14(水) 12:57:57.69ID:p6Tfi6cJ そもそも人間自体が欠陥なんだからその人間の作った言語に欠陥があるのは自明
772デフォルトの名無しさん
2024/02/14(水) 13:07:28.33ID:L7EuZktb たし🦀
773デフォルトの名無しさん
2024/02/14(水) 13:09:31.24ID:aR1xhX8a おれたちは欠陥と共存してよりよいプログラミングスタイルを目指すべき
774デフォルトの名無しさん
2024/02/14(水) 13:16:05.40ID:eD+V22zq drawという名前のメソッドを作ったらそれらが全部ダックタイピングとして使われうることを想定しないといけないのきつすぎる
適当な名前つけたら想定外の使われ方をすることをケアしないといけないわけだ
適当な名前つけたら想定外の使われ方をすることをケアしないといけないわけだ
775デフォルトの名無しさん
2024/02/14(水) 13:33:10.33ID:Q08aEmFz 境界知能が可視化されてる
776デフォルトの名無しさん
2024/02/14(水) 13:53:52.28ID:Z6/Yikm0777デフォルトの名無しさん
2024/02/14(水) 13:55:32.21ID:eD+V22zq778デフォルトの名無しさん
2024/02/14(水) 13:57:04.55ID:s22bd+Hs >>775
お前のこと?
お前のこと?
779デフォルトの名無しさん
2024/02/14(水) 14:31:04.48ID:h4S8S2sP >>777
これな
これな
780デフォルトの名無しさん
2024/02/14(水) 14:41:15.13ID:3OoaoCBc781デフォルトの名無しさん
2024/02/14(水) 15:12:12.70ID:s2Ev9A6j782デフォルトの名無しさん
2024/02/14(水) 15:36:36.14ID:S2bQYQek >>764
Rustで++は排除されている
理由はたくさんあるようだが
例えば今回のそのCコードは*dst++では動かず(*dst)++とする必要があるようにミスが増えるとか
前置と後置の間違いミスも多いことに加えて
生ポインタはsafe Rustから排除されたため*ptr++の形が出て来ないことや
move/copy問題もあったかな
Rustで++は排除されている
理由はたくさんあるようだが
例えば今回のそのCコードは*dst++では動かず(*dst)++とする必要があるようにミスが増えるとか
前置と後置の間違いミスも多いことに加えて
生ポインタはsafe Rustから排除されたため*ptr++の形が出て来ないことや
move/copy問題もあったかな
783デフォルトの名無しさん
2024/02/14(水) 16:02:27.29ID:3OoaoCBc784デフォルトの名無しさん
2024/02/14(水) 16:29:39.74ID:ona7PgM1 >>783
おまえ質問してる分際でキチガイなのか?
そういう態度を改めないなら二度と教えてやらんぞ
fn increment(dest: &mut u32) -> u32 {
std::mem::replace(dest, *dest + 1)
}
おまえ質問してる分際でキチガイなのか?
そういう態度を改めないなら二度と教えてやらんぞ
fn increment(dest: &mut u32) -> u32 {
std::mem::replace(dest, *dest + 1)
}
785デフォルトの名無しさん
2024/02/14(水) 16:36:51.93ID:b+wxXawK 質問している人間相手なら関係ないことを書いて良いわけではない
786デフォルトの名無しさん
2024/02/14(水) 16:42:22.39ID:3OoaoCBc >>784
結果的に役に立たないことがあってもしょうがないですが、関係ないことをアンカーで書くのは正当化できない迷惑行為です。
質問者 (特に初心者?) には迷惑をかけてよいと考えているのだとしたらそれは改めるべき悪です。
結果的に役に立たないことがあってもしょうがないですが、関係ないことをアンカーで書くのは正当化できない迷惑行為です。
質問者 (特に初心者?) には迷惑をかけてよいと考えているのだとしたらそれは改めるべき悪です。
787デフォルトの名無しさん
2024/02/14(水) 16:46:13.61ID:L7EuZktb ついに存在しないCコードの幻覚が見えるようになってしまった複製おじさん……
788デフォルトの名無しさん
2024/02/14(水) 16:46:26.67ID:b+wxXawK 一方、質問文を誤読して解答してしまった人間に対して強く当たって良いわけでもない
789デフォルトの名無しさん
2024/02/14(水) 16:51:03.66ID:3OoaoCBc790デフォルトの名無しさん
2024/02/14(水) 17:05:32.23ID:ZK4bCcm/ 人間の注意力読解力は実際この程度なので、人間にC++を扱うことは難しい
791デフォルトの名無しさん
2024/02/14(水) 17:06:20.11ID:Q08aEmFz だから境界知能なんでしょ
792デフォルトの名無しさん
2024/02/14(水) 17:19:45.82ID:qgmjNVo3 腹立てるのもわからなくはないがそんなにキレてレスするようなことではないだろ
気に入らなかったらスルーする程度には心に余裕を持っておこう
気に入らなかったらスルーする程度には心に余裕を持っておこう
793デフォルトの名無しさん
2024/02/14(水) 17:26:03.70ID:h4S8S2sP tmuxよりscreen派だよ。
794デフォルトの名無しさん
2024/02/14(水) 17:50:47.59ID:6CXfQ6Kw 個人的には後置インクリメントだけを関数化するのは微妙に感じる
fetch_addとかは必要性を理解できるけど単純なpost_addやpost_incrementは一段階上の処理を関数化するので十分でそのほうが見通しがいいように思う
fetch_addとかは必要性を理解できるけど単純なpost_addやpost_incrementは一段階上の処理を関数化するので十分でそのほうが見通しがいいように思う
795デフォルトの名無しさん
2024/02/14(水) 19:51:05.67ID:7rKeAYke >>762
こういう偉そうなこと散々言ってたhaskellがなぜ流行らなかったのかすら理解できてないというのが愚かだよね。
こういう偉そうなこと散々言ってたhaskellがなぜ流行らなかったのかすら理解できてないというのが愚かだよね。
796デフォルトの名無しさん
2024/02/14(水) 19:57:21.78ID:b46uhNiQ797デフォルトの名無しさん
2024/02/14(水) 20:14:14.28ID:yh2p7tDo >>796
C++では機能の異なる同名メソッドを区別できないから欠陥品
C++では機能の異なる同名メソッドを区別できないから欠陥品
798デフォルトの名無しさん
2024/02/14(水) 20:52:10.35ID:b46uhNiQ >>797
引数・戻り値で区別できるだろ。
引数・戻り値で区別できるだろ。
799デフォルトの名無しさん
2024/02/14(水) 21:01:37.45ID:yh2p7tDo >>798
それに依存してしまうのがC++の限界
それに依存してしまうのがC++の限界
800デフォルトの名無しさん
2024/02/14(水) 21:18:41.79ID:b46uhNiQ >>799
名前も引数も戻り値も区別できないんだったら、ダックタイピングで呼び出す側はそもそも区別する必要あるんですかねぇ。
名前も引数も戻り値も区別できないんだったら、ダックタイピングで呼び出す側はそもそも区別する必要あるんですかねぇ。
801デフォルトの名無しさん
2024/02/14(水) 21:58:58.38ID:H5X+9PTs802デフォルトの名無しさん
2024/02/14(水) 22:13:29.10ID:uLd8jazY803デフォルトの名無しさん
2024/02/14(水) 22:26:20.82ID:8gvFvpJ5 traitのprovided methodのdefault実装で呼び出せるのはrequired methodと
trait境界がある場合はそのtraitのmethod
そしてそれらで構成された他のprovided methodのみ
って制限をC++でどうするんだろ
trait境界がある場合はそのtraitのmethod
そしてそれらで構成された他のprovided methodのみ
って制限をC++でどうするんだろ
804デフォルトの名無しさん
2024/02/14(水) 23:19:42.33ID:3OoaoCBc >>803
コンセプト。
コンセプト。
805デフォルトの名無しさん
2024/02/14(水) 23:20:56.22ID:3OoaoCBc >>792
毎度毎度のことで余裕を削られた最後だったんだよ。
毎度毎度のことで余裕を削られた最後だったんだよ。
806デフォルトの名無しさん
2024/02/15(木) 00:20:11.01ID:AyUC+mx+ 毎度毎度のことという認識を持っていながらなぜここに書き込むのか
807デフォルトの名無しさん
2024/02/15(木) 00:23:07.31ID:x2y7hFPc808デフォルトの名無しさん
2024/02/15(木) 07:06:08.60ID:13EQhuxe809デフォルトの名無しさん
2024/02/15(木) 07:43:10.62ID:j4EJcuA3 >>808
洗練されすぎてて「早すぎる最適化」がバンバン起きるけどな。
枯れた既存プログラムの置き換え用途が無難なところかと。
コード破棄前提のプロトタイピングはコスト的にキツイか。問題領域の知識がほとんど無い開発初期で使えるのは未来を予測できる天才ぐらいだろ。
洗練されすぎてて「早すぎる最適化」がバンバン起きるけどな。
枯れた既存プログラムの置き換え用途が無難なところかと。
コード破棄前提のプロトタイピングはコスト的にキツイか。問題領域の知識がほとんど無い開発初期で使えるのは未来を予測できる天才ぐらいだろ。
810デフォルトの名無しさん
2024/02/15(木) 07:55:56.64ID:hKdVOM0D811デフォルトの名無しさん
2024/02/15(木) 08:11:38.37ID:j4EJcuA3812デフォルトの名無しさん
2024/02/15(木) 08:17:50.82ID:Me0Wd39H [Why I Use Golang In 2024](https://www.youtube.com/watch?v=6gwF8mG3UUY)
813デフォルトの名無しさん
2024/02/15(木) 08:19:40.94ID:j4EJcuA3814デフォルトの名無しさん
2024/02/15(木) 08:48:36.69ID:UeUfm3Ct >>812
見た
ほとんどの話がプログラミング言語の比較よりももっと抽象的な話で中身が薄い
そして批判されてるのはなぜかTypeScrpt
Goについてはシンプルなのが好きでジェネリックが導入されてワクワク
Rustはifに括弧がないのたスネークケースが嫌いだけどGoもifに括弧がないよ
Rustの型システムはとても素晴らしいけど、
見た
ほとんどの話がプログラミング言語の比較よりももっと抽象的な話で中身が薄い
そして批判されてるのはなぜかTypeScrpt
Goについてはシンプルなのが好きでジェネリックが導入されてワクワク
Rustはifに括弧がないのたスネークケースが嫌いだけどGoもifに括弧がないよ
Rustの型システムはとても素晴らしいけど、
815デフォルトの名無しさん
2024/02/15(木) 09:52:51.93ID:x2y7hFPc >>808
過去のコードと矛盾しない形での後付けだからな。
C++ を根本から変えるような大革新なのに (ほとんど) 互換性を損なわないように出来ているという意味ではかなり気が利いた設計ではある。
簡単に互換性を切り捨てていると資産が蓄積されないし、かといって変わらないままでもいられないのは宿命というもんだよ。
Rust だって歴史が積み重なればいずれそうなる。
「綺麗なのは使われないもの」という格言を聞いたことないか?
Rust は C++ の歴史のグダグダから学んだ反省としてエディションという概念を導入したが、これがどれくらい上手く機能するかは現時点では未知数だ。
規格策定・処理系保守のリソースは無限なわけではないしな。
過去のコードと矛盾しない形での後付けだからな。
C++ を根本から変えるような大革新なのに (ほとんど) 互換性を損なわないように出来ているという意味ではかなり気が利いた設計ではある。
簡単に互換性を切り捨てていると資産が蓄積されないし、かといって変わらないままでもいられないのは宿命というもんだよ。
Rust だって歴史が積み重なればいずれそうなる。
「綺麗なのは使われないもの」という格言を聞いたことないか?
Rust は C++ の歴史のグダグダから学んだ反省としてエディションという概念を導入したが、これがどれくらい上手く機能するかは現時点では未知数だ。
規格策定・処理系保守のリソースは無限なわけではないしな。
816デフォルトの名無しさん
2024/02/15(木) 09:55:25.99ID:LYiZEs3M エディションはすでに複数あるけど
あっても無理とか問題起きるとか
実例あるの?
あっても無理とか問題起きるとか
実例あるの?
817デフォルトの名無しさん
2024/02/15(木) 10:07:56.04ID:x2y7hFPc >>816
問題が抑えられているのは問題がないように保守されているからで、
その体制を「ずっと」続けられるものかどうかはずっと続けてみないとわからない。
今問題があるとかそういう話じゃないから未知数と述べてる。
問題が抑えられているのは問題がないように保守されているからで、
その体制を「ずっと」続けられるものかどうかはずっと続けてみないとわからない。
今問題があるとかそういう話じゃないから未知数と述べてる。
818デフォルトの名無しさん
2024/02/15(木) 10:11:47.35ID:9MXGquuv C++は貧弱な家を土台に増築工事をしまくって部屋数は多いが使われていない部屋だらけ
C++プログラマーの多くが知らない部屋、見たことない部屋、たどり着けない部屋が多数あるまま、さらに増築工事が進んでいる
C++プログラマーの多くが知らない部屋、見たことない部屋、たどり着けない部屋が多数あるまま、さらに増築工事が進んでいる
819デフォルトの名無しさん
2024/02/15(木) 10:21:13.40ID:qaCOVcST まあいうてもRustも将来的には増築されたバケモノになるか途中で破壊的変更的なものを入れるかするかの選択になるのでは
Cから呼べてCを呼べる限りはどの言語を使っても良いとする立場であれば今一番使いたい言語はRustではある
Cから呼べてCを呼べる限りはどの言語を使っても良いとする立場であれば今一番使いたい言語はRustではある
820デフォルトの名無しさん
2024/02/15(木) 10:32:36.57ID:LYiZEs3M821デフォルトの名無しさん
2024/02/15(木) 10:37:24.02ID:x2y7hFPc 「出来る」ということを大前提として確信できて、
その上で「上手く出来る」ならより良いってのが産業的な考え方だ。
おおよその場合に上手く出来ても
ちょっとした想定外に直面したときに破綻するようでは使い物にならない。
現実の問題ってのは想定してないところから出てくるものだから
そういうことも乗り越えられることを証明するには
実績 (歴史) を重ねるしかしょうがないんだ。
C++ は上手くやったとは言えなくても、汚くても打てる手が有る道具として信頼を得た。
Rust は今の時点では実に使いやすいように見えるが、
本当の意味で現実の使用に耐えうるものなのかは現実に使い倒してみるまでわからない。
その上で「上手く出来る」ならより良いってのが産業的な考え方だ。
おおよその場合に上手く出来ても
ちょっとした想定外に直面したときに破綻するようでは使い物にならない。
現実の問題ってのは想定してないところから出てくるものだから
そういうことも乗り越えられることを証明するには
実績 (歴史) を重ねるしかしょうがないんだ。
C++ は上手くやったとは言えなくても、汚くても打てる手が有る道具として信頼を得た。
Rust は今の時点では実に使いやすいように見えるが、
本当の意味で現実の使用に耐えうるものなのかは現実に使い倒してみるまでわからない。
822デフォルトの名無しさん
2024/02/15(木) 10:38:37.60ID:TrooctNX 今の時点で使いやすければなんでもいいんだYO
823デフォルトの名無しさん
2024/02/15(木) 10:45:22.07ID:9MXGquuv C++コンパイラが諸問題を指摘してコンパイルエラーにしてくれる状況は来そうにない
これだけ増築工事を重ねてもまだ見込みが立たないまま
これだけ増築工事を重ねてもまだ見込みが立たないまま
824デフォルトの名無しさん
2024/02/15(木) 11:47:28.36ID:olqTmpaN C++の知識は大いに再利用されているので現実世界の変化は小さい
想定外かもしれないのは変化の大きさではなく
現実世界を定義できないことだ
定義できるのは理論だけ
想定外かもしれないのは変化の大きさではなく
現実世界を定義できないことだ
定義できるのは理論だけ
825デフォルトの名無しさん
2024/02/15(木) 12:02:34.79ID:oxTsPXaA826デフォルトの名無しさん
2024/02/15(木) 14:40:35.94ID:wvzNp0zm そりゃWeb系だとGoのほうが使いやすいに決まってるでしょ
パフォーマンスもスクリプト言語よりはめちゃくちゃ速いから十分
パフォーマンスもスクリプト言語よりはめちゃくちゃ速いから十分
827デフォルトの名無しさん
2024/02/15(木) 14:47:01.34ID:z+RD4XEG サーバーサイドは群雄割拠時代よね
Rust、Go、Java/Kotlin、C#いっぱいある
Rust、Go、Java/Kotlin、C#いっぱいある
828デフォルトの名無しさん
2024/02/15(木) 16:20:13.71ID:x2y7hFPc829デフォルトの名無しさん
2024/02/15(木) 16:46:19.25ID:606b12LT830デフォルトの名無しさん
2024/02/15(木) 16:50:52.01ID:olqTmpaN すべてを疑っても産業だけは疑いようがないって話なら
想定内と想定外の境界がどの辺にあるのかはなんとなくわかる
想定内と想定外の境界がどの辺にあるのかはなんとなくわかる
831デフォルトの名無しさん
2024/02/15(木) 17:21:54.77ID:SzbBTI0k832デフォルトの名無しさん
2024/02/15(木) 17:26:25.25ID:BHoNDVf7 Rustは非同期処理がC++より扱いやすいおかげでサーバー方面に進出したのは良い
さすがにフロントでRustは微妙そうだけど、このままどんどん多方面に普及してほしい
さすがにフロントでRustは微妙そうだけど、このままどんどん多方面に普及してほしい
833デフォルトの名無しさん
2024/02/15(木) 17:31:26.55ID:dtRRoOMy Ruby は、Go/Rust/Elixir の3大言語を超えた!
Rust の上昇は止まったか?
Stack Overflow 米国年収。2022 -> 2023
Ruby : 9.3 -> 9.9 万ドル
Elixir : 9.3 -> 9.6
Go : 8.9 -> 9.3
Rust : 8.7 -> 8.7
多くの言語 : 6.5〜7 -> 7.3〜7.8
PHP : 5 -> 5.9
Dart : 4.4 -> 5.6
Rust の上昇は止まったか?
Stack Overflow 米国年収。2022 -> 2023
Ruby : 9.3 -> 9.9 万ドル
Elixir : 9.3 -> 9.6
Go : 8.9 -> 9.3
Rust : 8.7 -> 8.7
多くの言語 : 6.5〜7 -> 7.3〜7.8
PHP : 5 -> 5.9
Dart : 4.4 -> 5.6
834デフォルトの名無しさん
2024/02/15(木) 17:35:21.87ID:eOw5Ad1t835デフォルトの名無しさん
2024/02/15(木) 17:41:41.98ID:wvzNp0zm >>812
流し聞きしたけど複雑だとかしょーもない構文の好き嫌いみたいな話しかしてなくて草
流し聞きしたけど複雑だとかしょーもない構文の好き嫌いみたいな話しかしてなくて草
836デフォルトの名無しさん
2024/02/15(木) 17:53:07.04ID:8jpdfcc8 >>835
Rustインフルエンサーの成れの果てですなw
Rustインフルエンサーの成れの果てですなw
837デフォルトの名無しさん
2024/02/15(木) 18:08:05.70ID:uSGIT3N+838デフォルトの名無しさん
2024/02/15(木) 18:08:23.00ID:giVh/goG Goは2年も続けられるだろうか
大分前に少し使ってみたけど例外投げずにResult(タプル)で返す言語設計を採用しながら
返されたResultを無視してもコンパイラが警告出さないからやめた
Cで戻り値のエラーをスルーする事案が多発したから後発言語で例外が作られたのに
↓を見て気持ち悪さを感じる人には向かない
file, err = os.Open(path) // ← fileと一緒にエラーの受け取りを強要される
os.Chdir(path) // ←エラーしか返さないから戻り値を無視して処理を継続できる
大分前に少し使ってみたけど例外投げずにResult(タプル)で返す言語設計を採用しながら
返されたResultを無視してもコンパイラが警告出さないからやめた
Cで戻り値のエラーをスルーする事案が多発したから後発言語で例外が作られたのに
↓を見て気持ち悪さを感じる人には向かない
file, err = os.Open(path) // ← fileと一緒にエラーの受け取りを強要される
os.Chdir(path) // ←エラーしか返さないから戻り値を無視して処理を継続できる
839デフォルトの名無しさん
2024/02/15(木) 18:11:15.85ID:x2y7hFPc >>829
情報が充分じゃない (から議論を始めることさえできない) ことが
リスクだという話をしているつもりなんだが、伝わってないのか?
どんな問題が起こるのか事前にわかれば苦労しないよ。
起きたことに対処し続けるしか仕方がないが
可能なら自分が対処する当事者にはなりたくない。
情報が充分じゃない (から議論を始めることさえできない) ことが
リスクだという話をしているつもりなんだが、伝わってないのか?
どんな問題が起こるのか事前にわかれば苦労しないよ。
起きたことに対処し続けるしか仕方がないが
可能なら自分が対処する当事者にはなりたくない。
840デフォルトの名無しさん
2024/02/15(木) 18:19:47.46ID:SZiIKMeC841デフォルトの名無しさん
2024/02/15(木) 18:24:55.60ID:x2y7hFPc >>838
悪いほうがよい (Worse is Better) 原則というものも知られている。
正しさと単純さを天秤にかけてどちらが良いかという点で Rust とは異なる重みづけをしたのが Go だと思う。
問題をコンパイラが検出できる設計はもちろんありがたいが、そのために持ち込む構造は人間が把握しやすいものだろうか。
正直言って Go が良いとは全然思わないが一貫した理念に基づく判断であって、不備でそうなってるわけではない。
悪いほうがよい (Worse is Better) 原則というものも知られている。
正しさと単純さを天秤にかけてどちらが良いかという点で Rust とは異なる重みづけをしたのが Go だと思う。
問題をコンパイラが検出できる設計はもちろんありがたいが、そのために持ち込む構造は人間が把握しやすいものだろうか。
正直言って Go が良いとは全然思わないが一貫した理念に基づく判断であって、不備でそうなってるわけではない。
842デフォルトの名無しさん
2024/02/15(木) 18:31:33.80ID:j4EJcuA3843デフォルトの名無しさん
2024/02/15(木) 18:34:16.56ID:3rKktGL8 >>817
これはごもっともな意見
50年後にRust 2072エディションがある状況で最新コンパイラが2015エディションをサポートし続けてるとは思えないからどこかでは切ることになる
それでもRustのモデルとC++のモデルとどちらのほうが相対的によさそうかという選択の問題
これはごもっともな意見
50年後にRust 2072エディションがある状況で最新コンパイラが2015エディションをサポートし続けてるとは思えないからどこかでは切ることになる
それでもRustのモデルとC++のモデルとどちらのほうが相対的によさそうかという選択の問題
844デフォルトの名無しさん
2024/02/15(木) 19:40:03.38ID:TrooctNX 50年後にC++23はサポートされているのだろうか
というかC++は50年後もアップデートしているのだろうか
というかC++は50年後もアップデートしているのだろうか
845デフォルトの名無しさん
2024/02/15(木) 19:52:43.98ID:flxKbqvK846デフォルトの名無しさん
2024/02/15(木) 20:00:49.77ID:nijJOd3e >>844
既にC++17とC++20で以前導入の機能の削除が大量に行われている
既にC++17とC++20で以前導入の機能の削除が大量に行われている
847デフォルトの名無しさん
2024/02/15(木) 20:11:12.94ID:Zy70aZMD じゃあもうRustで良いじゃん
848デフォルトの名無しさん
2024/02/15(木) 20:27:48.49ID:Y7OgkdHD CになかったC++の機能は削除してもチューリング完全が保証される
逆に、削除したらチューリング完全ではない保証をするならミニマリズムがベター
逆に、削除したらチューリング完全ではない保証をするならミニマリズムがベター
849デフォルトの名無しさん
2024/02/15(木) 22:27:00.96ID:MX4y8Eg+850デフォルトの名無しさん
2024/02/15(木) 22:56:46.83ID:x2y7hFPc C++ は欠陥報告という制度で過去の規格に遡って修正が加えられることがある。
たとえば C++11 発行当時の C++11 と今の C++11 は内容が異なるわけ。
基本的には過去の仕様に新機能を追加したりはしないが微妙な挙動の変なところを直すような保守は続いている。
実質的には Rust のエディションみたいなことにはなってるんだよなあ。
たとえば C++11 発行当時の C++11 と今の C++11 は内容が異なるわけ。
基本的には過去の仕様に新機能を追加したりはしないが微妙な挙動の変なところを直すような保守は続いている。
実質的には Rust のエディションみたいなことにはなってるんだよなあ。
851デフォルトの名無しさん
2024/02/15(木) 23:13:05.86ID:17JkefKn llvmも実装はc++だし。
852デフォルトの名無しさん
2024/02/15(木) 23:33:02.83ID:CqGYBNeH >>850
Rustは必ずeditionを明示しないといけないから
あるソースコードがどのeditionなら確実に動くのか明確にわかる
そしてそのeditionを指定してコンパイルも通り実行もできる
しかしC++は当初のC++11に従いコンパイルできて動いていたものが
今はC++11の機能のいくつかは削除されてしまっているために
Rustは必ずeditionを明示しないといけないから
あるソースコードがどのeditionなら確実に動くのか明確にわかる
そしてそのeditionを指定してコンパイルも通り実行もできる
しかしC++は当初のC++11に従いコンパイルできて動いていたものが
今はC++11の機能のいくつかは削除されてしまっているために
853デフォルトの名無しさん
2024/02/15(木) 23:44:16.83ID:x2y7hFPc >>852
C++11 は C++11 として存在し続けているので問題になってないという話をしてるんだが
C++11 は C++11 として存在し続けているので問題になってないという話をしてるんだが
854デフォルトの名無しさん
2024/02/15(木) 23:57:58.06ID:m2l7AKkd 一般人と同等の読解力を複オジに期待しないこと
855デフォルトの名無しさん
2024/02/16(金) 01:17:00.51ID:2uzjzXJf cppreference.comの下のほうにちょろっと書いてあるdefect reportってそういうことだったんだ
勉強になるわ〜
勉強になるわ〜
856デフォルトの名無しさん
2024/02/16(金) 02:58:58.82ID:T31Boec7 >>853
名前が同じならなんでも良い…… ってこと!?
名前が同じならなんでも良い…… ってこと!?
857デフォルトの名無しさん
2024/02/16(金) 05:29:44.45ID:VnZfCvN7■ このスレッドは過去ログ倉庫に格納されています
