「C++の色々配慮してめんどくさい感じは好きだけど、実務になったらメモリ安全性とか考えて今後Rustに変わっていくんかな」
「うだうだ言ってないで仕事で必要なのをやればいいんだよ、趣味なら好きなのやればいい」
っていう雑談スレ。
前スレ: 結局C++とRustってどっちが良いの? 2traits
https://mevius.5ch.net/test/read.cgi/tech/1680363777/
関連スレ(マ板): Google&MS「バグの70%はC/C++。Rustにする」
https://medaka.5ch.net/test/read.cgi/prog/1619943288/
探検
結局C++とRustってどっちが良いの? 3traits
■ このスレッドは過去ログ倉庫に格納されています
2023/05/04(木) 07:49:56.33ID:z+qB+AKQ
363デフォルトの名無しさん
2023/05/13(土) 04:06:17.18ID:rghdYpRz >>351
それがrustだろ
それがrustだろ
364デフォルトの名無しさん
2023/05/13(土) 07:59:34.64ID:Mq7eAK7K 天下ねえ
天下って思われてると、むだに煽られるよねえ
C++サイコーwww(大好き)とは思ってるけど
天下って思われてると、むだに煽られるよねえ
C++サイコーwww(大好き)とは思ってるけど
365デフォルトの名無しさん
2023/05/13(土) 10:20:28.21ID:rDLT/gzF 何故プログラミング言語が変わるのか
まずハードが変わる、当然命令セットも変わる、さりとてハードが変わるたんびに新しい言語を覚える、既存のソフト移植する、など不可能なのでここで一個
ソフトサイドで新しい考え方が出てくる、既存の考え方ではバグ出やすい、効率悪い、こう考える方がいいという新しいプログラミングに関する知見が出れば言語そのものの刷新に向かう圧力が出る
ここで一個
大別すればこの2段やろな
①高級言語
━━━━━━
②繋ぎレイヤ
━━━━━━
③アセンブラ
①、③は必然的な刷新圧力に応じてどんどん変わっていく、③は必然的に新しいハードが出るたびに、①は絶対ではないけどBasic, Perl, Java, Ruby, Python などなど概ね5〜10年周期で変わってきた
しかし②のレイヤはほぼ半世紀近くC,C++の独壇場, MachとかObjectice Cとかあったけど結局消えていった
さてさてどうなるのか?
Windows, Linuxでは一部Rubyに置き換える試みがなされてるけどコレは本流の大きなにがれになるのか、あるいはやはりごく一時的なものでやはりC,C++の牙城は崩れないのか
まずハードが変わる、当然命令セットも変わる、さりとてハードが変わるたんびに新しい言語を覚える、既存のソフト移植する、など不可能なのでここで一個
ソフトサイドで新しい考え方が出てくる、既存の考え方ではバグ出やすい、効率悪い、こう考える方がいいという新しいプログラミングに関する知見が出れば言語そのものの刷新に向かう圧力が出る
ここで一個
大別すればこの2段やろな
①高級言語
━━━━━━
②繋ぎレイヤ
━━━━━━
③アセンブラ
①、③は必然的な刷新圧力に応じてどんどん変わっていく、③は必然的に新しいハードが出るたびに、①は絶対ではないけどBasic, Perl, Java, Ruby, Python などなど概ね5〜10年周期で変わってきた
しかし②のレイヤはほぼ半世紀近くC,C++の独壇場, MachとかObjectice Cとかあったけど結局消えていった
さてさてどうなるのか?
Windows, Linuxでは一部Rubyに置き換える試みがなされてるけどコレは本流の大きなにがれになるのか、あるいはやはりごく一時的なものでやはりC,C++の牙城は崩れないのか
366デフォルトの名無しさん
2023/05/13(土) 10:27:54.96ID:R1hDb7+8 >>365
Rustは③だよね?
Rustは③だよね?
367デフォルトの名無しさん
2023/05/13(土) 11:14:30.77ID:qbLWQV0Y たった今あるソリューションがRustだから、切迫した更新需要にはRustが入ると思う
もうちょっとゆとりのあるものは、improved C/C++ でいいかなって感じじゃないかな
自分もその位置
もうちょっとゆとりのあるものは、improved C/C++ でいいかなって感じじゃないかな
自分もその位置
368デフォルトの名無しさん
2023/05/13(土) 12:46:24.99ID:TFo/sDKR C++は倒れたままなのか?
死亡フラグ
死亡フラグ
369デフォルトの名無しさん
2023/05/13(土) 12:48:52.48ID:OKlDpUB8 倒れたと言いますと?
370デフォルトの名無しさん
2023/05/13(土) 13:37:03.03ID:0/cn7SoC >>365
頭悪過ぎ
頭悪過ぎ
371デフォルトの名無しさん
2023/05/13(土) 13:52:20.03ID:IGToM9iL >>362
make_unique知らないの? 知ってて黙ってる?
それとも知ってたけどunique_ptrに属さないから駄目だって言いたいの?
というかその差異を認めたとしても、スコープを抜けるとき/ムーブされるときに内容の後始末とヒープの解放を行うという重要な共通点が依然としてあるし、
その点を無視してunique_ptr<T>を任意の非Copy型と対応付けようとするほうがよっぽど無理があると思うけどね
make_unique知らないの? 知ってて黙ってる?
それとも知ってたけどunique_ptrに属さないから駄目だって言いたいの?
というかその差異を認めたとしても、スコープを抜けるとき/ムーブされるときに内容の後始末とヒープの解放を行うという重要な共通点が依然としてあるし、
その点を無視してunique_ptr<T>を任意の非Copy型と対応付けようとするほうがよっぽど無理があると思うけどね
372371
2023/05/13(土) 13:54:01.76ID:IGToM9iL あ、ムーブされるときは違うなすまん
373デフォルトの名無しさん
2023/05/13(土) 18:07:44.55ID:1P8OgH65 lifetime の &'static と
global の static で
同じ名前になってるのはセンス無いな
Rust 界にも static おじさんは息衝いている
global の static で
同じ名前になってるのはセンス無いな
Rust 界にも static おじさんは息衝いている
374デフォルトの名無しさん
2023/05/13(土) 18:08:15.66ID:Zeyov0xO なんかメチャクチャ書いたな
NeXT Stepとかはあくまで周辺プログラミング環境がobjective CだっただけでOS本体はMach kernelでそれはCとかでかかれてるから②のレイヤでC,C++に変わるものは四半世紀でてきていない
果たして本当にここにRustが食い込めるのかね、あるいは置き換わるなどということが本当に起こりうるものなのか
NeXT Stepとかはあくまで周辺プログラミング環境がobjective CだっただけでOS本体はMach kernelでそれはCとかでかかれてるから②のレイヤでC,C++に変わるものは四半世紀でてきていない
果たして本当にここにRustが食い込めるのかね、あるいは置き換わるなどということが本当に起こりうるものなのか
375デフォルトの名無しさん
2023/05/13(土) 19:38:25.85ID:rkpDrS5+376デフォルトの名無しさん
2023/05/13(土) 21:15:21.97ID:C/HTc2pJ >>371
make_uniqueは複合の合わせ技だから、
unique_ptrのコンストラクタを見た方がよいね
引き数はnewで確保したポインタなどだから、
unique_ptrの構築前に別途ヒープ領域を確保済
一方でBoxの構築時はまだヒープ領域を確保しておらず、Boxがヒープ領域を確保
だから両者は決定的に違うんじゃないかな
さらにunique_ptrは空っぽの状態、つまりヒープ領域を伴わない状態が許されるのに対して、
Boxは必ずヒープ領域を伴っていて、そこに値を必ず持っている、という重要な違いもあるね
スコープを抜けたときの処理や内部で持っているヒープ領域の解放については、
unique_ptrやBox以外でも行われる話だから、両者の共通点というよりもっと大きな範囲の共通点だね
make_uniqueは複合の合わせ技だから、
unique_ptrのコンストラクタを見た方がよいね
引き数はnewで確保したポインタなどだから、
unique_ptrの構築前に別途ヒープ領域を確保済
一方でBoxの構築時はまだヒープ領域を確保しておらず、Boxがヒープ領域を確保
だから両者は決定的に違うんじゃないかな
さらにunique_ptrは空っぽの状態、つまりヒープ領域を伴わない状態が許されるのに対して、
Boxは必ずヒープ領域を伴っていて、そこに値を必ず持っている、という重要な違いもあるね
スコープを抜けたときの処理や内部で持っているヒープ領域の解放については、
unique_ptrやBox以外でも行われる話だから、両者の共通点というよりもっと大きな範囲の共通点だね
377デフォルトの名無しさん
2023/05/13(土) 21:18:10.27ID:qbLWQV0Y378デフォルトの名無しさん
2023/05/13(土) 21:55:24.10ID:ps1U4+yC379デフォルトの名無しさん
2023/05/13(土) 22:14:54.43ID:ps1U4+yC Copy非実装型とBoxとどちらがunique_ptrに近いかと言えば大多数の人はBoxだと言うだろうな
まあ言語が変われば1対1で対応しない機能があるのが普通なので
無理に対応づけようとするよりもそれぞれの違いを学んだほうがいいよ
まあ言語が変われば1対1で対応しない機能があるのが普通なので
無理に対応づけようとするよりもそれぞれの違いを学んだほうがいいよ
380デフォルトの名無しさん
2023/05/13(土) 22:22:25.59ID:IGToM9iL >>376
> さらにunique_ptrは空っぽの状態、つまりヒープ領域を伴わない状態が許されるのに対して、
> Boxは必ずヒープ領域を伴っていて、そこに値を必ず持っている、という重要な違いもあるね
だからBoxとunique_ptrは対応しないってんなら、Arcとshared_ptrを対応させるのはもっと間違ってるぞ
> さらにunique_ptrは空っぽの状態、つまりヒープ領域を伴わない状態が許されるのに対して、
> Boxは必ずヒープ領域を伴っていて、そこに値を必ず持っている、という重要な違いもあるね
だからBoxとunique_ptrは対応しないってんなら、Arcとshared_ptrを対応させるのはもっと間違ってるぞ
381デフォルトの名無しさん
2023/05/13(土) 22:50:11.88ID:awcNL8zc Boxはボックス化つまりヒープに置くこと
C++で対応するのはnew
C++で対応するのはnew
382デフォルトの名無しさん
2023/05/13(土) 22:51:59.52ID:ps1U4+yC BoxもZero Sized Type(ZST)だとheapを伴わないよね
383デフォルトの名無しさん
2023/05/14(日) 02:32:01.76ID:WzlwealS >>377
Rustは凄いと言ってる奴は、自分はRust使ってないからな
Rustは凄いと言ってる奴は、自分はRust使ってないからな
384デフォルトの名無しさん
2023/05/14(日) 09:24:48.35ID:20ql+77K Javaが出てきたとき
Javaすげぇぇ他の言語は駆逐される
PHPが出てきたとき
PHPすげぇぇ他の言語は駆逐される
何か出るたびそれを信仰し同じコトを繰り返すんだな
Javaすげぇぇ他の言語は駆逐される
PHPが出てきたとき
PHPすげぇぇ他の言語は駆逐される
何か出るたびそれを信仰し同じコトを繰り返すんだな
385デフォルトの名無しさん
2023/05/14(日) 09:25:10.34ID:hi4Bq2pn >>383
使いどころがないからなw
使いどころがないからなw
386デフォルトの名無しさん
2023/05/14(日) 09:27:43.22ID:20ql+77K 自分で作るじゃなく他所で作られたものを自慢をするというね
こういう言語そうだそれ以外の物でもそうだし
こういう言語そうだそれ以外の物でもそうだし
387デフォルトの名無しさん
2023/05/14(日) 09:34:52.10ID:1jFVCpuN >>384
結局どうなったかっていうと、PHPはサーバサイドのDSLとして落ち着いた
JavaはOracleが接収? した
立ち位置が減少したのは多分Perlだが、いまPerl使ってるって言っても殴る人はいない
(以上、すべて個人の感想)
今回は、LLVMの成熟により、様々な言語が2.0化しようとしてるみたい
わりと何ででも、安全に、高効率なプログラミングができる時代になるのかもしれない
Rustは、新しいbetter C のような気がしてきた
…けど、記述法がどうしても見慣れない(w
結局どうなったかっていうと、PHPはサーバサイドのDSLとして落ち着いた
JavaはOracleが接収? した
立ち位置が減少したのは多分Perlだが、いまPerl使ってるって言っても殴る人はいない
(以上、すべて個人の感想)
今回は、LLVMの成熟により、様々な言語が2.0化しようとしてるみたい
わりと何ででも、安全に、高効率なプログラミングができる時代になるのかもしれない
Rustは、新しいbetter C のような気がしてきた
…けど、記述法がどうしても見慣れない(w
388デフォルトの名無しさん
2023/05/14(日) 10:27:30.61ID:pb1Dbmn7 javaはIT企業ではある意味他言語をを駆逐したと思うわ
特殊なケースだけc++、vb使う
webのDSLでtypescript
地元(田舎)の求人見ると
java,C++が使える人かjs使える人の求人が99%だから…
特殊なケースだけc++、vb使う
webのDSLでtypescript
地元(田舎)の求人見ると
java,C++が使える人かjs使える人の求人が99%だから…
389デフォルトの名無しさん
2023/05/14(日) 14:29:21.51ID:ePHWuoFt WindowsのカーネルもRustに移行するのか
390デフォルトの名無しさん
2023/05/14(日) 15:10:39.12ID:+xFqdUJk これでWindows、Linux、AndroidがRust採用かー
391デフォルトの名無しさん
2023/05/14(日) 19:44:19.16ID:JeiAQ+ra rubyは使ってると殴られる言語だが
pythonはまだ大丈夫だな
phpやvbは死んでいい
pythonはまだ大丈夫だな
phpやvbは死んでいい
392デフォルトの名無しさん
2023/05/14(日) 19:45:39.76ID:JeiAQ+ra393デフォルトの名無しさん
2023/05/14(日) 20:14:19.79ID:pJuPP/LG394デフォルトの名無しさん
2023/05/14(日) 20:36:25.87ID:QmAlZPFj 🐟::🐟::🐟::
395デフォルトの名無しさん
2023/05/14(日) 20:47:29.76ID:aUfiFIOV ::も<type>もC++と同じだから連続してもそれほど違和感ない
396デフォルトの名無しさん
2023/05/14(日) 20:57:09.57ID:pb1Dbmn7 goの配列の指定はいまだに慣れないと言うかなんじゃこれだけど
rustは&mutとかライフタイムの指定をもっと独自のものにして欲しかった
rustは&mutとかライフタイムの指定をもっと独自のものにして欲しかった
397デフォルトの名無しさん
2023/05/14(日) 20:59:37.48ID:oUsSKvxr C++構文定義上の最大の罪である山括弧ジェネリクスを引き継いでしまい
構文の曖昧性を無くすために苦肉の策で生まれたのがあの悲しきお魚ちゃんなのですよ
構文の曖昧性を無くすために苦肉の策で生まれたのがあの悲しきお魚ちゃんなのですよ
398デフォルトの名無しさん
2023/05/14(日) 21:00:38.00ID:QE+keqW6 >>392
関数型はマイナーだからな
関数型はマイナーだからな
399デフォルトの名無しさん
2023/05/14(日) 21:02:12.13ID:QE+keqW6400デフォルトの名無しさん
2023/05/14(日) 21:06:28.92ID:pb1Dbmn7 < >は解釈の時若干邪魔なのかとは思うけど
ヒマだからANTLRで構文解析器でも作ってみようか
ヒマだからANTLRで構文解析器でも作ってみようか
401デフォルトの名無しさん
2023/05/14(日) 21:08:03.75ID:pb1Dbmn7 cはtypedefとかの仕組みがクソ
402デフォルトの名無しさん
2023/05/14(日) 21:30:13.88ID:QE+keqW6 >>401
typedefかっけーやん
#include <iostream>
using namespace std;
struct Hoge {
void hage () const {cout << "hage" << '\n';}
};
int main () {
typedef void (Hoge::*Mage) () const;
Hoge hoge;
Mage mage {&Hoge::hage};
(hoge.*mage) ();
return 0;
}
typedefかっけーやん
#include <iostream>
using namespace std;
struct Hoge {
void hage () const {cout << "hage" << '\n';}
};
int main () {
typedef void (Hoge::*Mage) () const;
Hoge hoge;
Mage mage {&Hoge::hage};
(hoge.*mage) ();
return 0;
}
403デフォルトの名無しさん
2023/05/14(日) 22:05:58.43ID:RldwXebz 何かの言語でvector<vector<int>>の">>"の間にスペースが必要だった記憶があるけど
昔のC++だったかJavaだったか思い出せない
シフト演算子と相性悪いんだよね
どうやって解決したんだろ
昔のC++だったかJavaだったか思い出せない
シフト演算子と相性悪いんだよね
どうやって解決したんだろ
404デフォルトの名無しさん
2023/05/14(日) 22:07:54.16ID:QE+keqW6 >>403
昔のC++はそうだったよ
昔のC++はそうだったよ
405デフォルトの名無しさん
2023/05/14(日) 22:57:53.83ID:bfYFgiq9 次スレのスレタイはC++ Considered Harmfulにしよう
406デフォルトの名無しさん
2023/05/14(日) 23:23:04.77ID:pb1Dbmn7 >>402
頭が痛くなるからやめて
頭が痛くなるからやめて
407デフォルトの名無しさん
2023/05/14(日) 23:23:32.31ID:QE+keqW6 >>402をtypedefなしで書くと逝っとるよな
- Mage mage {&Hoge::hage};
+ void (Hoge::*mage) () const {&Hoge::hage};
何でこんな記法にしたんだろ?
- Mage mage {&Hoge::hage};
+ void (Hoge::*mage) () const {&Hoge::hage};
何でこんな記法にしたんだろ?
408デフォルトの名無しさん
2023/05/14(日) 23:26:10.97ID:pb1Dbmn7 作った人たちも失敗したと言ってるからな
409デフォルトの名無しさん
2023/05/14(日) 23:29:27.12ID:bfYFgiq9 変数宣言と構文を共有することでパーサの実装量節約に一役買っているのです
410デフォルトの名無しさん
2023/05/14(日) 23:34:59.36ID:QE+keqW6 俺は使える程には理解してるが人にはちょっと説明できん
411デフォルトの名無しさん
2023/05/14(日) 23:35:38.40ID:QE+keqW6 >>408
誰?
誰?
412デフォルトの名無しさん
2023/05/15(月) 00:00:45.30ID:wsaXJZjZ >>411
しばらく検索してみたけどソースが見当たらないので取り消します
しばらく検索してみたけどソースが見当たらないので取り消します
413デフォルトの名無しさん
2023/05/15(月) 00:06:48.33ID:I+wFjT19 >>412
お時間使わせてスミマセン
お時間使わせてスミマセン
414デフォルトの名無しさん
2023/05/15(月) 09:27:18.72ID:wFuQ/qib C/C++ は(関数ポインタのときを除いて)
hoge と &hoge と &&hoge と &&...&hoge は明確に区別されるけど
Rust だと区別されずにコンパイル通ってしまうケースもあるんだな
むしろ警告でも良いので出してくれればいいのに
hoge と &hoge と &&hoge と &&...&hoge は明確に区別されるけど
Rust だと区別されずにコンパイル通ってしまうケースもあるんだな
むしろ警告でも良いので出してくれればいいのに
415デフォルトの名無しさん
2023/05/15(月) 09:33:17.96ID:wFuQ/qib416デフォルトの名無しさん
2023/05/15(月) 09:37:02.63ID:wFuQ/qib >>411
ハゲ麦紐じゃなかった?
ハゲ麦紐じゃなかった?
417デフォルトの名無しさん
2023/05/15(月) 09:38:10.71ID:DhZrO8d7418デフォルトの名無しさん
2023/05/15(月) 11:36:55.02ID:ujHFmMNa >>414
Rustでも区別されてるけど場所によってはDeref Coercionが働くから
区別されてないように見えるというだけ
https://doc.rust-lang.org/book/ch15-02-deref.html
Rustでも区別されてるけど場所によってはDeref Coercionが働くから
区別されてないように見えるというだけ
https://doc.rust-lang.org/book/ch15-02-deref.html
419デフォルトの名無しさん
2023/05/15(月) 12:27:59.24ID:GXc9JAaS420デフォルトの名無しさん
2023/05/15(月) 12:36:46.16ID:HovYgrQ4 じゃあジェネリクスの記号を何にすればよかったのかの話は無いよね。
代替案が無いなら貶さない方がいいよ
代替案が無いなら貶さない方がいいよ
421デフォルトの名無しさん
2023/05/15(月) 12:58:13.92ID:s5edYhaR Box[T]
Box t
't box
(box t)
Box t
't box
(box t)
422デフォルトの名無しさん
2023/05/15(月) 13:30:47.16ID:s5edYhaR 今さら代替案を出したってもう広まってるから無理だし、本気でこれを変えて「改善」になるなんて思ってる人はいないだろうが
C++の山かっこがC++11で改善されるまで長いことクソクソ言われてたのになぜRustは……ってだけのただの冗談だよ
本気にさせちゃったようですまないね
C++の山かっこがC++11で改善されるまで長いことクソクソ言われてたのになぜRustは……ってだけのただの冗談だよ
本気にさせちゃったようですまないね
423デフォルトの名無しさん
2023/05/15(月) 13:45:50.28ID:I+wFjT19 Rustのジェネリックスの記法はこうこうこうだから美しい!マンセー!
って言わなきゃ話が続かないよ
って言わなきゃ話が続かないよ
424デフォルトの名無しさん
2023/05/15(月) 13:49:25.75ID:s5edYhaR http://www.kmonos.net/alang/d/templates-revisited.html
クソクソ言われていた時代にRustと似た動機で作られたD言語はBox!(T)だったんだね
みんないろいろ考えるんだね〜
クソクソ言われていた時代にRustと似た動機で作られたD言語はBox!(T)だったんだね
みんないろいろ考えるんだね〜
425デフォルトの名無しさん
2023/05/15(月) 14:23:03.39ID:1m/NLizK > C++構文定義上の最大の罪である山括弧ジェネリクス
> C++の山かっこがC++11で改善されるまで長いことクソクソ言われてた
完全にコイツはエアプ
当時そんなとこに文句言ってるやつ見たこと無い
みんな真顔で「> >」隙間開けてたわ
指がオートマチックでスペース叩いてるはず
仕事やってりゃ色々クソなことはあるが
それを言語に転嫁するようなザコはここにはいないよね?
> C++の山かっこがC++11で改善されるまで長いことクソクソ言われてた
完全にコイツはエアプ
当時そんなとこに文句言ってるやつ見たこと無い
みんな真顔で「> >」隙間開けてたわ
指がオートマチックでスペース叩いてるはず
仕事やってりゃ色々クソなことはあるが
それを言語に転嫁するようなザコはここにはいないよね?
426デフォルトの名無しさん
2023/05/15(月) 14:37:29.92ID:8jCFowEK C++11までそんなので頑張ってたんだねw
427デフォルトの名無しさん
2023/05/15(月) 14:44:13.08ID:HovYgrQ4 「もう広まってる」とは言うがRustがわざわざ山かっこ<>をジェネリクス用に選んだ経緯とかはあるのか?
本当に惰性と流れで<>にしたの?
Dみたくa!(b,c)にしなかったのはなんでだ?
やっぱりDのa!(b,c)なる記法は純粋に見映えがダサくて、C++的なa<b,c>なやつはなぜかイケてる、ていうだけのことだろ
本当に惰性と流れで<>にしたの?
Dみたくa!(b,c)にしなかったのはなんでだ?
やっぱりDのa!(b,c)なる記法は純粋に見映えがダサくて、C++的なa<b,c>なやつはなぜかイケてる、ていうだけのことだろ
428デフォルトの名無しさん
2023/05/15(月) 15:00:31.60ID:5sS8eRrw ()が増えるのは良くない
429デフォルトの名無しさん
2023/05/15(月) 15:09:20.65ID:s5edYhaR430デフォルトの名無しさん
2023/05/15(月) 15:11:35.81ID:ujHFmMNa https://soc.me/languages/stop-using-angle-brackets-for-generics.html
ここに書いてあることも一理あるけど
Goのようにsquare bracketでのインデックスアクセスを残したままFoo[T]にするのも微妙
unlimited look-aheadが必要だとしても実際にそんな長く先まで読む必要性なんてないので
読みやすさが勝るのならそれでいいと思う
ターボフィッシュはイケてないけど
ここに書いてあることも一理あるけど
Goのようにsquare bracketでのインデックスアクセスを残したままFoo[T]にするのも微妙
unlimited look-aheadが必要だとしても実際にそんな長く先まで読む必要性なんてないので
読みやすさが勝るのならそれでいいと思う
ターボフィッシュはイケてないけど
431デフォルトの名無しさん
2023/05/15(月) 15:21:53.58ID:gbsleJgn >>425
C++がだらしないから、こんだけRust勢に煽られてる、っては思ってるけどね
あまりに煽られて、一行もRust書いてないのに、併用する心の準備ができつつある
でもぜってえC++は捨てねえ、ぜってえにだwww > 煽り勢
C++がだらしないから、こんだけRust勢に煽られてる、っては思ってるけどね
あまりに煽られて、一行もRust書いてないのに、併用する心の準備ができつつある
でもぜってえC++は捨てねえ、ぜってえにだwww > 煽り勢
432デフォルトの名無しさん
2023/05/15(月) 15:44:34.72ID:YPCsGXtE 言語そのものを作ってるような人じゃなければ
あまり特定の言語に固執しないほうがいいよ
RustだろうがC++だろうがレゾンデートルに特定の言語を組み入れてる人は成長が止まりやすく老害化しやすいので自分が損するだけだから
所詮は使い分ける道具の一つ
あまり特定の言語に固執しないほうがいいよ
RustだろうがC++だろうがレゾンデートルに特定の言語を組み入れてる人は成長が止まりやすく老害化しやすいので自分が損するだけだから
所詮は使い分ける道具の一つ
433デフォルトの名無しさん
2023/05/15(月) 18:44:18.46ID:FgOHTeF5 プログラミング言語をただの道具と言うやつは大抵無能
434デフォルトの名無しさん
2023/05/15(月) 18:58:00.82ID:VaeCf5Jf435デフォルトの名無しさん
2023/05/15(月) 19:22:58.71ID:W6wSx7Ot 何か作るときに道具に拘る気持ちはめっちゃわかるけどなあ
436デフォルトの名無しさん
2023/05/15(月) 19:25:10.97ID:FgOHTeF5 道具によって成果物の品質が変わるのだからこだわるのは当たり前
ただの道具とか言うやつは安定してゴミを作るからそういう感覚がないのよ
ただの道具とか言うやつは安定してゴミを作るからそういう感覚がないのよ
437デフォルトの名無しさん
2023/05/15(月) 19:32:41.90ID:wsaXJZjZ ここからは理論無用でレスできるのでスレが進むのか?
438デフォルトの名無しさん
2023/05/15(月) 19:32:43.22ID:Zmr9JaW+ 作るものが複雑になると、普段から使ってよく理解している言語でないと
調べ物が多くなって効率が悪い。
調べ物が多くなって効率が悪い。
439デフォルトの名無しさん
2023/05/15(月) 19:34:27.68ID:fkhy8mxo 問題領域の濃度と文法の濃度を考えれば、全ての用途で便利に使える万能言語なんてありえない。
言語には必ず得意領域と不得意領域があるんだから、問題領域に合わせて言語を選択・作成するのが望ましい。
言語には必ず得意領域と不得意領域があるんだから、問題領域に合わせて言語を選択・作成するのが望ましい。
440デフォルトの名無しさん
2023/05/15(月) 19:38:48.81ID:s5edYhaR If all you have is a hammer, everything looks like a nail.
>>437
宗教上の理由でワッチョイスレに書けない人が荒れることを無限に書き込むから
>>437
宗教上の理由でワッチョイスレに書けない人が荒れることを無限に書き込むから
441デフォルトの名無しさん
2023/05/15(月) 19:42:25.96ID:LmW7vJqn ちょっとしたスクリプトを書く程度で済むケースは、シェルスクリプトやスクリプト言語を使えば済むから対象外として、
がっちりプログラミングするならば、実行速度やメモリ使用量などのリソース、可読性や保守性を含めた開発効率などで、プログラミング言語を選びたい。
慣れれば大した手間増加にならないのだから、CPUメモリリソースや時間を考えると、C++とRustが選ばれるべきシーンは多そう。
C++とRustが忌避される理由は他言語より「難しい」「面倒」だけど、慣れてしまえば他の言語と大した違いはないわけだから。
がっちりプログラミングするならば、実行速度やメモリ使用量などのリソース、可読性や保守性を含めた開発効率などで、プログラミング言語を選びたい。
慣れれば大した手間増加にならないのだから、CPUメモリリソースや時間を考えると、C++とRustが選ばれるべきシーンは多そう。
C++とRustが忌避される理由は他言語より「難しい」「面倒」だけど、慣れてしまえば他の言語と大した違いはないわけだから。
442デフォルトの名無しさん
2023/05/15(月) 19:47:06.01ID:wsaXJZjZ 目玉焼きに醤油を掛けるのかソースを掛けるのかマヨネーズ掛けるのか塩を掛けるのか
ぐらいのレベルがこの後30レスぐらい続くのかなあ?
ぐらいのレベルがこの後30レスぐらい続くのかなあ?
443デフォルトの名無しさん
2023/05/15(月) 20:18:45.40ID:Kl4uDN3z 塩だろ。俺は邪道のアジシオだな
どんなターゲットにも合う。最悪、スイカにすら合う。
Cもそんな感じ。
どんなターゲットにも合う。最悪、スイカにすら合う。
Cもそんな感じ。
444デフォルトの名無しさん
2023/05/15(月) 20:36:08.15ID:sS887eTb445デフォルトの名無しさん
2023/05/15(月) 21:11:38.66ID:FgOHTeF5 マンパワー依存の無能はさすがに苦笑
エンジニア向いてないよ笑
エンジニア向いてないよ笑
446デフォルトの名無しさん
2023/05/15(月) 22:00:39.87ID:Kl4uDN3z まあC++にもunsafe{ } は来てほしいけどね
統一的な方法がなかったので、今後Rustのやりかたが他言語にも波及するっしょ
統一的な方法がなかったので、今後Rustのやりかたが他言語にも波及するっしょ
447デフォルトの名無しさん
2023/05/16(火) 03:39:12.30ID:mxMgusoo >>446
global deleteを無くすのと、参照渡しのライフタイム保証があればいいよ。
global deleteを無くすのと、参照渡しのライフタイム保証があればいいよ。
448デフォルトの名無しさん
2023/05/16(火) 04:35:10.15ID:4S8kS8o+ 何か未知で不確実だとしてもただの道具ならその目的は既知だったりするでしょ
デストラクタの後で参照しないとか
デストラクタの後でデストラクタを呼ばないとか
だがメモリリークをあまり問題視しない件などは目的自体が変化してしまうから
ただの道具ではない
デストラクタの後で参照しないとか
デストラクタの後でデストラクタを呼ばないとか
だがメモリリークをあまり問題視しない件などは目的自体が変化してしまうから
ただの道具ではない
449デフォルトの名無しさん
2023/05/16(火) 05:49:36.67ID:LhFniP55 >>447
Rust勢が言っているのは、Rustで書いたものは安全といって納品できる、ということなので、
ガイドライン チェッカとかじゃなく、言語にちゃんとunsafe{ } があるというのはモダン
何をもってsafeとするかには議論があったが、Rustがデファクトスタンダードになるなら、それを取り込めばいい
ひとつの夜明けは近い
Rust勢が言っているのは、Rustで書いたものは安全といって納品できる、ということなので、
ガイドライン チェッカとかじゃなく、言語にちゃんとunsafe{ } があるというのはモダン
何をもってsafeとするかには議論があったが、Rustがデファクトスタンダードになるなら、それを取り込めばいい
ひとつの夜明けは近い
450デフォルトの名無しさん
2023/05/16(火) 10:02:16.98ID:dncY24o+ >成長が止まりやすく老害化しやすい
道具云々は↑これが図星で悔しかったんだろ
その後のレス見れば成長止まって老害化してる人だとよくわかる
道具云々は↑これが図星で悔しかったんだろ
その後のレス見れば成長止まって老害化してる人だとよくわかる
451デフォルトの名無しさん
2023/05/16(火) 10:57:49.38ID:4S8kS8o+ 当たり前だけど、攻撃力がレーゾンデートルになるよりは回避力か防御力のほうが
ダメージやストレスが少ない
ダメージやストレスが少ない
452デフォルトの名無しさん
2023/05/16(火) 11:13:49.28ID:afLAkRaY レーゾンデートルwww
453デフォルトの名無しさん
2023/05/16(火) 12:35:37.97ID:ALDBkD8o454デフォルトの名無しさん
2023/05/16(火) 13:33:35.88ID:d+qszQ7T インテリだなぁwおい
455デフォルトの名無しさん
2023/05/16(火) 13:41:37.03ID:spgQVWRA >>453
値を変更する時にそれが他から参照されてるかはRust以外でも多少は意識してるはずだし
変更可能な状態で共有することに意味があるならRefCellとかCellに入れて共有すればいい
面倒といっても安全のための規約レベルでしょ
(違反するとコンパイラに殴られるからある意味手間が省ける)
値を変更する時にそれが他から参照されてるかはRust以外でも多少は意識してるはずだし
変更可能な状態で共有することに意味があるならRefCellとかCellに入れて共有すればいい
面倒といっても安全のための規約レベルでしょ
(違反するとコンパイラに殴られるからある意味手間が省ける)
456デフォルトの名無しさん
2023/05/16(火) 15:40:22.92ID:HCiu7CXC >>453
正確にはshared NAND mutable
正確にはshared NAND mutable
457デフォルトの名無しさん
2023/05/16(火) 18:00:25.19ID:4S8kS8o+ 所有と参照を区別しない場合は
参照が一つもない値の存在は許されない (循環参照が許されないとは言ってない) ので
むしろxorが正確である場合もあるかも
参照が一つもない値の存在は許されない (循環参照が許されないとは言ってない) ので
むしろxorが正確である場合もあるかも
458デフォルトの名無しさん
2023/05/16(火) 22:00:57.33ID:LSAD/UZx459デフォルトの名無しさん
2023/05/16(火) 23:06:18.96ID:4S8kS8o+ ああ、C++では値と参照を区別するとかしないとか言うね
でも動詞を使いたくなったら「参照する」は正しいが「値する」はおかしい
だから値を所有する、値を参照するというのが良い
でも動詞を使いたくなったら「参照する」は正しいが「値する」はおかしい
だから値を所有する、値を参照するというのが良い
460デフォルトの名無しさん
2023/05/17(水) 06:30:13.75ID:u+07gdJ+ C/C++の値に所有なんてあるのか
参照なら実体側の所有が誰か問題になるかも知れんが
参照なら実体側の所有が誰か問題になるかも知れんが
461デフォルトの名無しさん
2023/05/17(水) 11:15:53.89ID:qIPYqCzM462デフォルトの名無しさん
2023/05/17(水) 12:05:12.66ID:jyReDlhf C++の参照がダングリングを引き起こす根本的原因は、
値の所有とその生存期間を参照に対してはっきりさせていないため?
値の所有とその生存期間を参照に対してはっきりさせていないため?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 [ぐれ★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★2 [BFU★]
- 【中国外務省】日中関係悪化は高市氏に責任と名指しで非難… ★3 [BFU★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★2 [BFU★]
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 [Hitzeschleier★]
- 政府、株式の配当など金融所得を高齢者の医療保険料や窓口負担に反映する方針を固めた [バイト歴50年★]
- 中国高官と話す外務省局長の表情、やばい ★2 [175344491]
- 偏差値35大臣「すぐに経済的威圧するところへの依存はリスク」 [834922174]
- 中国外務省「日中関係の悪化は高市早苗首相が原因」と名指しで強く非難。キタ━(゚∀゚)━! [153490809]
- 【朗報】高市、中国からの日本行き空路49万件キャンセルを達成🤩オーバーツーリズム対策の手腕が光る [359965264]
- 日本政府「高市総理の発言は問題ないと伝え、中国総領事のSNS投稿は問題があると中国に伝えました😊」 [931948549]
- 小野田経済安保相「すぐに経済的威圧するところへの依存はリスク」😲 [861717324]
