Rust part18

■ このスレッドは過去ログ倉庫に格納されています
2022/12/10(土) 18:17:02.61ID:XSNoXTPt
公式
https://www.rust-lang.org/
https://blog.rust-lang.org/
https://github.com/rust-lang/rust

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 part17
https://mevius.5ch.net/test/read.cgi/tech/1665063793/
2023/01/01(日) 14:58:29.83ID:+lXIx03F
c#ってフロント組むための言語だよね?rustやc#とは用途が違うのでとっとと出てってください
2023/01/01(日) 14:59:02.35ID:+lXIx03F
間違えたrustとc/cpp
462デフォルトの名無しさん
垢版 |
2023/01/01(日) 15:14:11.17ID:qFCwFs0i
>>458-459
C++はゴミだと確信してたけどRustもゴミってことか
教えてくれてありがとう
2023/01/01(日) 15:17:51.36ID:8mQl/wdO
>>453
必修どころか常識やで
2023/01/01(日) 15:22:01.00ID:ZNJrRmgO
>>456
それGCどうやってるの?
2023/01/01(日) 15:27:38.23ID:BKjRVrWQ
大体C言語を碌に触らずにC++をCの上位互換言語を思ってるヤツがホント多い

Cでは**pは必須だけどC++ではそもそもC++で拡張された機能によってそもそも**pを使うべきじゃないし
物理アドレスを触るような場面ではそもそもC++を使うべきじゃない

そしてCの互換言語という点を差っ引いたらC++じゃなきゃいけないって場面は殆どない
2023/01/01(日) 15:34:44.56ID:ZNJrRmgO
お前さんの頓珍漢なべき論は要らんよw
2023/01/01(日) 15:35:56.13ID:MnJksM0+
C言語の開発資産しかない場合、次は上位互換であるC++に行くのが常道になるのが
自然の流れ

しかもRustは新興言語で実績もないから採用は不可
2023/01/01(日) 15:55:05.94ID:g9Gfx6Qg
>>465
なんでCもC++もよく知らんのに知ったふうな口きくん?
君はプログラマですらないやろ? ただのド素人やろ?
469デフォルトの名無しさん
垢版 |
2023/01/01(日) 15:59:31.54ID:c0wTdgdc
そりゃ技術評論社がLinux板から情弱連れてくるからだろう。
470デフォルトの名無しさん
垢版 |
2023/01/01(日) 16:00:58.69ID:c0wTdgdc
Haskell本が売れなくなったからRust売り込むことにしたんだろ。
迷惑な話よ。
471デフォルトの名無しさん
垢版 |
2023/01/01(日) 18:13:51.42ID:m2hNSU/p
C++の話になると途端に饒舌になる老害さん達
スレ間違ってますよww
2023/01/01(日) 18:21:28.05ID:ps54Dm7d
>>471
そう言うのは>>450,465に言った方がいいぞ
2023/01/01(日) 19:11:12.15ID:LWg4u5cF
>>450
>RustはそのCの代替と成りうる言語でなので
個人的にはそうは思えないけどな。
Rustは低レベルが扱いにくいから。
2023/01/01(日) 19:17:21.93ID:LWg4u5cF
>>473
[補足]
Cは、どういうコードが生成されるかとても分かり易いので安心感が有る。
それに対し、
(Rustは結構頑張って学ぼうとしたが)、Rustは抽象レベルでの意味論は書いて
あっても、最終的にどういうコードが生成されるか分からない(仕様が明確には
書いて無い)事が多い。
475デフォルトの名無しさん
垢版 |
2023/01/01(日) 19:20:49.98ID:LWg4u5cF
>>474
[補足]
Rustの場合、意味論は書いてあるのでどういう結果になるかは一応は分かるが、
結果的に何が行なわれるかは分かっても、どういうコードが生成されるかは
分からない事が多かった。それが分からないと高速化は難しい。
Cだと命令数やクロック数を数えることが出来たがRustでは出来ないと思った。
例えば、引数を渡す時に何回コピー動作が行なわれるかCやC++では分かるのに
対し、Rustでは分からないことが有るように思えた。
論理や意味は分かるが、途中にどういう中間工程が入るか分からないのだ。
2023/01/01(日) 19:24:18.90ID:LWg4u5cF
>>475;
Cではなくて、C++でも、
TYPE a = 5;
f(a);
と書いたとき、どういう動作がおきるか多くの場合はよく分かって、マシン語で
どういうコードになるかも分かる。コンストラクタがどこで呼び出されるか、
どこでコピー演算やムーブ演算が起きるのか、一応は分かる。
ところが、Rustでは分からない事が有った。
それでは問題を生じることが有る気がした。
2023/01/01(日) 19:32:28.31ID:J0mHLh9j
JScriptで書いていた支援ツールをRustで書き直そうかなぁ
そうすればwine/proton環境でも個別対応しなくて済むようになるし
2023/01/01(日) 19:34:34.15ID:g9Gfx6Qg
javascriptでツール書くとか猛者やなw
2023/01/01(日) 19:35:28.46ID:g9Gfx6Qg
あ、失礼JScriptってのが別にあるのね
知らなかったわ
2023/01/01(日) 19:36:40.86ID:cEMoHOhE
あーあ隙を見せちゃったな
2023/01/01(日) 19:39:07.32ID:LWg4u5cF
組み込みだと、「アドレスへの write アクセスが1回でなくてはならない」
場合がある。アクセスの回数によってハードウェアの動作が変わってくるから。
例えば、あるアドレスに 一回アクセスすると LED が点灯し、もう一回アクセス
すると LED が消灯する、などという動作がある場合がある。
場合によっては、音の PCM の振幅や、モーターの速度調整にそれを利用する可能性があるなど。
この場合、Rustではメモリーアクセスの回数が不明確になって、上手くプログラミングできない
かも。
2023/01/01(日) 19:41:37.18ID:LWg4u5cF
組み込みでは、
「最適化して後から後れてアクセスする」
「アクセスが時と場合によって省略される」
などが有っては駄目な場合がある。
Cだと結構上手く行く。
483デフォルトの名無しさん
垢版 |
2023/01/01(日) 19:58:47.06ID:v/m/qtfA
2年くらい前はHaskellが世界を席巻してたからな。
2023/01/01(日) 20:06:13.34ID:ps54Dm7d
>>482
> Cだと結構上手く行く。
アホの子なのかな?w
そもそも処理系の話だからCとかRustの話じゃないだろ
2023/01/01(日) 20:12:23.58ID:LWg4u5cF
>>484
でも、あなたにもC#で組み込みとか、Rubyで組み込みとかやっても難しいのは分かるよね。
それと似たようなことがRustでも起き得そうな気がするんだよ。
C#とかRubyでも、一応、atomicアクセス的な何かは用意されてるかも知れないけど、
そういう問題ではないおきるだろう。
2023/01/01(日) 20:19:06.23ID:t/WFYlqt
最適化に左右されたくないならちゃんとwrite_volatileとか使えばいいだけの話
memory mapped I/Oの制御なんて当然想定されてるよ
487デフォルトの名無しさん
垢版 |
2023/01/01(日) 20:21:02.90ID:v/m/qtfA
MCUがRustを考慮していないから無理。
それだけの話。
2023/01/01(日) 20:25:26.38ID:ps54Dm7d
>>485
気のせいとかいうレベルで語るなよ...
2023/01/01(日) 20:25:48.30ID:J0mHLh9j
C言語仕様はメモリアクセスの順序を保証しない。動いているのは
ただの偶然だしそのようなコードは仕様外の糞コードでFA
2023/01/01(日) 20:28:33.07ID:LWg4u5cF
Rustは高速化したいときにクロック数を数えにくいのも困る。
2023/01/01(日) 20:34:28.70ID:T0egek2q
>>483
どこの世界線の人かな
492デフォルトの名無しさん
垢版 |
2023/01/01(日) 20:35:45.62ID:v/m/qtfA
>>491
ステマ界に決まってるだろ。
2023/01/01(日) 20:50:47.69ID:k1WVbd3b
しかしCでいいと思ってるならわざわざこんなスレにトンチンカンな書き込みせずに黙って使ってればいいのに
Rustに置き換わって仕事なくなるかも的な心配で攻撃したいとかだろうか
そんな心配しなくても組み込みのCの仕事は当分なくならんよ
494デフォルトの名無しさん
垢版 |
2023/01/01(日) 20:58:20.82ID:v/m/qtfA
技術評論社が先に他言語スレへ侵攻を開始した。
495デフォルトの名無しさん
垢版 |
2023/01/01(日) 21:04:05.03ID:v/m/qtfA
既に5chあるいは国民と技術評論社の戦争に発展している。
2023/01/01(日) 22:40:47.03ID:hnV+fUB+
>>493
変な言語が流行って人類の負の遺産になる前の抑止効果。
2023/01/01(日) 22:44:49.52ID:Y6M2Pvqr
>>493
Rustはシステムプログラミングに向いてるってデマのせいじゃね
2023/01/01(日) 22:57:51.39ID:J0mHLh9j
組み込みでもRustを使えるならRust使うわ。Cは実装依存が多すぎる
正しいコードを書こうとしたらコーディングコストはRustより高くつく
499デフォルトの名無しさん
垢版 |
2023/01/01(日) 23:19:31.51ID:v/m/qtfA
実装に依存しない組み込みとか夢のようなことを言ってるな。
500デフォルトの名無しさん
垢版 |
2023/01/01(日) 23:20:05.95ID:v/m/qtfA
さすが技術評論社。
2023/01/01(日) 23:20:38.81ID:hnV+fUB+
>>498
組み込みは、メモリー関連エラーなんて起きないプログラムも多い。
というか保護モードも使ってないことも多いのでそれ以前の問題。
Lチカなんて、Rust不要。
2023/01/01(日) 23:21:05.99ID:hnV+fUB+
>>499
確かに。
2023/01/01(日) 23:25:26.99ID:O4Ho+Fsi
技術評論社からRustの本が出るだけであって技術評論社自体はRustと関係ない
いい加減に技術評論社発狂ガイジ出てけよ
2023/01/01(日) 23:26:26.18ID:hnV+fUB+
>>501
[補足]
組み込みの世界は「メモリー関連エラー」なんて言葉で語れるほど生易しいものではない。
一つ間違えればハードウェアがICが爆発したりモーターで人が死ぬような世界だったりする。
つまり、慎重に組む。
電線のつなぎ方を間違えれば部品が故障するが、それと同様にプログラムの間違いは
暴走や故障の現象になる。
だから、メモリー関連エラーで苦しむ程度の頭脳しか無いような人は組み込みに向いてない。
505デフォルトの名無しさん
垢版 |
2023/01/01(日) 23:29:45.04ID:v/m/qtfA
>>503
ステマしてるのが技術評論社では?
2023/01/01(日) 23:34:52.14ID:O4Ho+Fsi
>>505
おまえが技術評論社とかいうのをステマしなければいいだけ
RustスレでRustをステマすることのなにがいけないんだ?
2023/01/01(日) 23:35:46.35ID:O4Ho+Fsi
>>498
rustもlibc依存あるだろがいw
508デフォルトの名無しさん
垢版 |
2023/01/01(日) 23:40:06.46ID:v/m/qtfA
いや、もうダメだ。
技術評論社は、やりすぎた。
2023/01/01(日) 23:41:02.46ID:O4Ho+Fsi
あかん、ガイジだったか
構ってごめんね
2023/01/01(日) 23:42:13.87ID:J0mHLh9j
ttp://elm-chan.org/fsw/ff/00index_e.html
有名なマイコンや処理系で利用可能な高ポータビリティのCライブラリだが
このレベルのものを実際に書こうとしたらかなり高コスト
Rustのほうが楽かつ確実に動作する
511デフォルトの名無しさん
垢版 |
2023/01/01(日) 23:43:58.63ID:v/m/qtfA
MCUを替えたら、回路からすべて変わるのが当たり前なんだよ。
見苦しいな。
2023/01/01(日) 23:59:26.70ID:J0mHLh9j
組み込みでポータビリティを軽視している奴は昨今のマイコン不足で真っ先に退場するクチだろ
同じチップどころか同メーカーの互換チップすら調達出来ずに、メーカーから変えざるを得ない
こともあるご時世に、特定のハードと特定の処理系と特定のバージョンでなければダメみたいな
前時代的な考えでは話にならない
513デフォルトの名無しさん
垢版 |
2023/01/02(月) 00:00:24.79ID:/m9PT5PE
MCUメーカーがRustを考慮していない。
これが全て。
514デフォルトの名無しさん
垢版 |
2023/01/02(月) 00:01:23.42ID:/m9PT5PE
>>512
そうそう。
だから組み込みでRustを使ったらダメ。
C/C++一択。
2023/01/02(月) 00:01:42.41ID:7RCL5EAR
>>510
現実にC言語版があるんだから、C言語の方が便利だと思うのだが。
現時点でRust版は無いわけで。
2023/01/02(月) 00:04:21.03ID:7RCL5EAR
>>512
そんな簡単なもんじゃないと思うが。
そもそも論として、ピン番号が変わっただけでも、慎重に設計し直す
必要が出てくる。接続を間違えると大変なことになる。
現実にICが破裂したことがあり、目に入っていたら失明してた。
容易に全く別のICに交換することは出来ない。
517デフォルトの名無しさん
垢版 |
2023/01/02(月) 00:08:01.28ID:/m9PT5PE
そもそも、Rust推してる方がRustを使ったことなくて、否定的な方がRustを使い込んでる。
技術評論社の呼びかけでLinux板から来た連中はプログラミング自体したことが無いので、Rustは組み込みの互換性がCより高いとか言い出す。
2023/01/02(月) 00:19:21.42ID:7RCL5EAR
>>514
そういえば、「C言語ライクな言語」をサポートしているだけで、gccやclangに
対応して無いマイコンもあるから、Rustなんか到底無理なマイコンも多いな。
2023/01/02(月) 00:41:37.72ID:U4Kt6Q5r
組み込みやったことないけどメーカーサポートなんかいるんかね
ABIだけ指定してxargoでクロスコンパイルして終わりじゃないんか?
2023/01/02(月) 00:47:56.46ID:X+g/LIy1
このスレキショいな
2023/01/02(月) 00:50:40.14ID:Q+u3vnFA
cargo-c使えば何も問題無く組み込みに使えるのだが、、
2023/01/02(月) 01:01:37.89ID:YOUl3ux+
素人に毛が生えた程度のコーダーかエアプが知ったか煽りしているだけでしょ
2023/01/02(月) 01:02:43.28ID:7RCL5EAR
少なくともPICではRustは動かないようだし。
2023/01/02(月) 01:05:20.50ID:7RCL5EAR
AKI-H8 でも Rust は動かないようだ。
2023/01/02(月) 01:05:38.14ID:f/84eqys
Arduinoは行けるようだが
526デフォルトの名無しさん
垢版 |
2023/01/02(月) 01:06:42.39ID:/m9PT5PE
わざわざRustを使う意味が無い。
2023/01/02(月) 01:07:55.25ID:9S22MKkp
あんたら動かない動かないって知識足りなさすぎ
2023/01/02(月) 01:08:04.91ID:9S22MKkp
ちょっとは工夫しろよ
2023/01/02(月) 01:08:10.37ID:7RCL5EAR
そもそも、マイコンで、Rustがなくしたとする「メモリーエラー」で悩むことが無い。
2023/01/02(月) 01:09:08.65ID:7RCL5EAR
俺はずっとCやC++でプログラムしてきたが、メモリーエラーで悩んだことは
ほとんどない。
うそだと思うかもしれないが本当。
しかも、かなり複雑なシステムプログラムをしてきた。
531デフォルトの名無しさん
垢版 |
2023/01/02(月) 01:10:15.59ID:/m9PT5PE
ずっとやってるからでは?
2023/01/02(月) 01:10:28.23ID:mUnt8vIA
OSやモバイルアプリの開発も組み込みだよね マイコンだけじゃないよ
2023/01/02(月) 01:10:35.32ID:YOUl3ux+
ARMやRISC-Vはバックエンドあるし処理内容も高度化しがちで
Rustの高速性と安全性のメリットを享受しやすい

>>523-524
おじいちゃん。その辺はとっくに主力じゃないんですよw
2023/01/02(月) 01:11:00.49ID:7RCL5EAR
つまり、CやC++でメモリーエラーに悩まされて使いこなせない人は、
そもそも論として俺の脳のレベルにまで全く達して無い。
つまり、生まれつき俺はオマエラより遥かに頭がいいから、Rustを使う必要性が無い。
それだけの話。
2023/01/02(月) 01:12:02.90ID:7RCL5EAR
>>533
俺がお前より年食っていたとしても、生まれつきお前の脳の1000万倍優秀だから、
関係無い。
2023/01/02(月) 01:13:35.32ID:Jz3D7gL9
こちらでどうぞ
Rustアンチスレ
https://mevius.5ch.net/test/read.cgi/tech/1509028624/
2023/01/02(月) 01:14:42.16ID:7RCL5EAR
>>536
なお、悪いものを批判/非難することは公共の福祉や国益になる。
2023/01/02(月) 01:15:26.78ID:f/84eqys
>>530
ちゃんとしたコーディング規約を遵守してコード書いてればそうそうメモリエラーにはならんはな
2023/01/02(月) 01:18:38.28ID:wpREwZAU
そもそもRustはメモリ管理を強制するための規約的な言語だし笑
Cに制約をつけただけのドM言語
540デフォルトの名無しさん
垢版 |
2023/01/02(月) 01:19:02.22ID:/m9PT5PE
ステマは許可できんな。
2023/01/02(月) 01:20:17.30ID:gnmwHKvG
>>538
世の中にはそれすらできないお馬鹿さんたちがいるのです
諦めるしかないのだ
2023/01/02(月) 01:22:43.16ID:YOUl3ux+
Rust FoundationにARMをはじめ組み込み屋がいる時点でお察しだろ
2023/01/02(月) 01:24:30.62ID:l4/Jezsd
Rustは頭のいい人が頭のわるい人と一緒に仕事するために使うものだと思ってる
頭のわるい人にはC/C++よりRustを使わせたほうがマシなコードを返してくれる
それだけでもRustをプロジェクトに採用する価値が出てくる
2023/01/02(月) 01:27:04.29ID:l4/Jezsd
頭のいい人はRustを使わされてる
2023/01/02(月) 01:27:25.18ID:f/84eqys
>>543
いや、頭悪い人を間引いて同じ土俵に上げない為の言語だと思うが
敷居を下げ過ぎてJavaとか悲惨な事になってるじゃん
2023/01/02(月) 01:27:45.85ID:l4/Jezsd
マジでこの世が頭のいい人だけだったらRustなんて要らなかった
2023/01/02(月) 01:28:35.39ID:l4/Jezsd
>>545
rust使えないやつなんておるか?
2023/01/02(月) 01:30:00.39ID:f/84eqys
>>547
普通におるやろ
おらんと思ったん?
2023/01/02(月) 01:30:01.16ID:l4/Jezsd
Rustすら使えないやつなんてどんなコードも書けないよ
2023/01/02(月) 01:32:02.45ID:l4/Jezsd
>>545
JavaはGCあるからメモリ管理気にしなくていいやん
2023/01/02(月) 01:34:03.66ID:YOUl3ux+
PICやH8を引き合いに出している時点でプログラムの想定が違いすぎる
今どきの32bitマイコンのリソースはその辺と比べて1桁以上多い
処理するデータもマルチメディアデータだったりネットワークパケット等の
不安全なデータまで扱わなくちゃならない
もはや初期のWindowsPCに近い内容であり、注意すれば問題ないなど
全く無意味であることはセキュリティ事故が起きまくった歴史が証明している
2023/01/02(月) 01:34:11.63ID:7RCL5EAR
>>545
そもそも頭がよければ滅多にメモリーエラーに遭遇しないからRustを使う必要性
が無いし、Rustは記述量も多いし回りくどいので生産性が低いし、使えない
アルゴリズムも多い。
Rustの存在意義は、使えるアルゴリズムを制限して、記述も回りくどくして
コンパイラを頼りにしてやっと安全なプログラムを書けるような、凡人プログラマ
が生まれつき頭の良いプログラマに少し近付くためにある。
2023/01/02(月) 01:34:54.94ID:q+9Mkyzs
メモリ管理適当野郎共のC/C++出来ます詐欺はほんと酷いよね
2023/01/02(月) 01:35:13.17ID:f/84eqys
>>550
変な大企業が馬鹿みたいに人員投入して100人体制とかもっととかで開発やるもんだから出来上がったゴミがカオスコードになってるとかそういう話
2023/01/02(月) 01:37:36.65ID:l4/Jezsd
>>554
カオスコードでもGCでメモリリーク最小限で動くならいいのでは?
GC稼働を許す製品の話をしてるつもりはなかった
2023/01/02(月) 01:39:14.49ID:7RCL5EAR
>>554
GAFAMみたいな大企業は技術は無くても株価だけ高騰するから、金に任せて
大量の人員だけを頼りに出来るから、数百人がかりでバグだらけの使いにくい
巨大サイズのプログラムを作ってるね。
技術は無いが人だけ入る。凡人プログラマを大量に使って大量のCPUパワーを
使ってPC-9801時代のJG程度のOfficeを作って悦に浸ってる。
2023/01/02(月) 01:41:18.45ID:7RCL5EAR
>>553
ただ、俺はそれに該当しない。
そういう人も居るというだけの事。
2023/01/02(月) 01:43:49.06ID:YOUl3ux+
てかこういうのが日本の競争力を落としているんやなって
2023/01/02(月) 01:43:53.33ID:AzjsiFbw
ガベージコレクション使っていいならそら楽ちんですわ
どんな汚コードでも動けばいいんだから

ガベージコレクション無しだと例外処理の例外処理の例外処理を跨いだりして有り得ないところにメモリリーク起きてるなんてことがザラ、どんなに頭よくても絶対に気づけない
■ このスレッドは過去ログ倉庫に格納されています