C vs C++ vs Rust Part.3

■ このスレッドは過去ログ倉庫に格納されています
2022/01/27(木) 22:19:47.56ID:avZQ9Wm7
闘え
※前スレ
C++ vs Rust
https://mevius.5ch.net/test/read.cgi/tech/1619219089/
C vs C++ vs Rust Part.2
https://mevius.5ch.net/test/read.cgi/tech/1639539350/
2022/02/20(日) 13:40:02.09ID:QnKhevyf
>>249
組み込み以外にミドルウェアらへんでも使われるようになると思う
OS、RDBMS、Webサーバとか

ミドルウェアよりも上位レイヤーのアプリケーションだけで見ると、GCがある言語でもだいたい十分そうだし、Rustは目立たなそう
2022/02/20(日) 13:49:36.22ID:NF24OHT2
rustはc++よりbetter cしてるから徐々に市民権得るだろうな
2022/02/20(日) 14:01:22.11ID:uUEkIMOM
>>251
> 他社のウエブサービスより圧倒的に早くセキュアなのはずばりRustをつかってるから。
おお、なるほど

> その前はLispを使ってた。
ズコーッw

作り話はもっとうまく作れ
2022/02/20(日) 14:21:18.20ID:xQDNRCh/
Rustってクロージャの再代入できない?
null許容することになるから出来ないようにしてる?
2022/02/20(日) 14:31:26.55ID:Q+YkyZIv
型が同じなら再代入可能だけどクロージャはそれぞれ別の型を持つので単純には代入どきない
Box<dyn Fn()>などに変換すればできる
261デフォルトの名無しさん
垢版 |
2022/02/20(日) 16:38:17.59ID:xcGmkjoA
>>249
ゲーム系のWASMとか
2022/02/20(日) 18:49:49.78ID:xQDNRCh/
>>260
ふーんそうなの
Box調べてみるわ
263デフォルトの名無しさん
垢版 |
2022/02/20(日) 19:16:43.92ID:eM0QoFz6
Lispってセキュアなコード書くのPythonより難しくないか
2022/02/20(日) 22:26:50.09ID:uSEnVnLU
こちらのまわりではスクリプト言語で書かれていた物の高速化でRustへ移行が多いな
レスポンスの意味での高速化もあればリソースとしてのCPUタイム激減もある
使用メモリも激減するためクラウドでもオンプレでも費用支出が激減し桁が変わる場合もある
2022/02/21(月) 08:03:12.70ID:J/Dh0skf
>>255
さすがにc++03とかと比較されても……
266デフォルトの名無しさん
垢版 |
2022/02/21(月) 08:27:27.48ID:JVbzDyQT
よく知らんのだけど、カーネル書くのに抽象化って必要なの?
もしいらないんだとしたらC++がカーネル書くのになんのメリットもないと考える気持ちもわかる気がする
Rustの場合は安全性がついてくるので抽象化がなくても使う価値がある
2022/02/21(月) 08:42:47.98ID:OCv9XetQ
Rustのオブジェクトシステムって実際C++のそれと比べたら遥かにわかりやすいよな
traitって概念ほんまありがてえわ
2022/02/21(月) 08:51:29.17ID:NpsKB2au
>>265
元ネタはコレ
https://developers.slashdot.org/story/21/04/17/009241/linus-torvalds-says-rust-closer-for-linux-kernel-development-calls-c-a-crap-language
2022/02/21(月) 08:57:14.48ID:qHKOEqJY
>>266
パッと思い浮かぶのはファイルシステムと仮想ボリュームぐらいだけど、C++がメリットになるとは思えんな
2022/02/21(月) 12:01:24.19ID:L89iNs1x
>>264
DiscordがGoで作られてたバックエンドの一部をRustで書き直したらめちゃくちゃコスト下がったってニュースあったな
C++がRustに置き換わるってよりスクリプト言語やGC言語で作られたものが置き換わっていくのがまず先だろう
2022/02/21(月) 12:15:00.96ID:NpsKB2au
どうでもいいけど、このスレ個人の思い込みと間違いだらけに見えるな
2022/02/21(月) 12:25:54.59ID:R0Wvqlvm
>>270
それは今でも粛々と置き換わってるだろう
Rustが使われるのは、スクリプトやGC言語ではパフォーマンスなどが得られない分野なんだろうと思う
2022/02/21(月) 12:29:39.29ID:/1Q8PAGZ
DiscordがRustに移行した当時のGoは大分ウンコだったけど、今ではわりとマシになっちゃったよ
2022/02/21(月) 12:50:01.46ID:hkBHJMBS
Goってもうジェネリック入った?
2022/02/21(月) 12:51:46.86ID:Vy+crfrM
>>271
隔離スレに多くを求めすぎ
2022/02/21(月) 13:09:04.30ID:NpsKB2au
なんでこうなっちゃったんだろうね。一部の馬鹿が日本をどんどんダメにしてる気がする。もっとちゃんと比較できるよう上手く使えばいいのに。
2022/02/21(月) 13:20:49.36ID:/1Q8PAGZ
>>274
ああ、おれが言いたかったのはGCの停止時間がマシになったよ、ってことだけだよ
言語機能は大して変わってない
でもGenericsは今月中のリリースが予定されてる1.18に載るはず
2022/02/21(月) 13:41:53.53ID:Jx3FjySw
昔マイコンBASICって雑誌があってだな
2022/02/21(月) 14:41:23.11ID:RtL8dE4+
GCがある言語のパフォーマンスが悪いというのは思い込み
280デフォルトの名無しさん
垢版 |
2022/02/21(月) 15:52:49.19ID:8WYOAA82
>>279
トータルのパフォーマンスが問題じゃないんだ、予期せず処理が詰まったり急に負荷があがったりするのが問題なんだ。
まぁ今時のGCはストップザワールドは起きないだろうけど。
2022/02/21(月) 17:02:58.71ID:RtL8dE4+
>>280
GCが動いて困る場合は、現状でもC++かCなどで実装されているはず
なので、パフォーマンスを向上させる目的でGCあり言語をRustで置き換えるというのは、あまりないと思われる
2022/02/21(月) 17:03:00.28ID:dkDp5UUZ
>>278
俺はIO派。その前は月間マイコン。
2022/02/21(月) 17:06:01.87ID:dkDp5UUZ
>>281
あるよ。いま、うちがやってる移植プロジェクトはその案件。
他社がそんな考えだから今の所引く手あまた。一社独占。大阪にもう1社あるってうわさだけど。。。
客が数十件待ってる状態。年収軽く3本いくわw
2022/02/21(月) 17:10:20.58ID:RtL8dE4+
まぁ、GCの弊害がわからず採用して実稼働に入って困ったような技術要素選定バグの場合は、言語置き換え対象としてRustが選ばれるケースはあると思う
2022/02/21(月) 17:12:56.49ID:RtL8dE4+
>>283
GCの問題じゃなくてパフォーマンスの問題でリプレースなの?
元言語何?
2022/02/21(月) 17:16:52.14ID:RtL8dE4+
年収3本って3000万ってことか?
内容から、フリーランスでRustへのリプレースを専門でやってる感じだが、個人特定されかねないぞw
2022/02/21(月) 17:17:29.45ID:k9jZTatR
>>283
レアだから現在のcobolみたいなもんか
2022/02/21(月) 17:18:15.19ID:Gf4lGfIx
聞いてもない年収語るような奴の相手すんなよ…
2022/02/21(月) 17:46:13.57ID:hWQuQvUr
Rustに置き換える理由はパフォーマンスより保守性とか堅牢性だと思う
開発者が少ない現状だと単純に保守性向上のためだけに外注するようなケースは少なそうだけど
今のシステムが不安定で改修もままならないからRustで作り直すってケースなら結構ありそう
2022/02/21(月) 17:56:15.16ID:9wSZ8YP/
トヨタなんかの車載システムはCとRustで開発してるとか聞いたことあるが
2022/02/21(月) 17:58:36.91ID:H7trbIGN
車でストップザワールドはまずいわな
2022/02/21(月) 18:02:07.18ID:LC1rF3os
>>281
今までGCありスクリプト言語をRustへ置き換えたり置き換えつつある
GCの有無は条件ではないのだけど速さ省メモリに安全性と書きやすさ等でRustとなった
2022/02/21(月) 18:07:56.53ID:NpsKB2au
9割嘘
2022/02/21(月) 18:30:22.78ID:Vy+crfrM
>>284
サービスの立ち上げ期にGC影響も見越してカリカリにチューニングするってのは早すぎる最適化なんじゃないのかね
rustで他の言語と同じくらいの早さでサービス作れる人材がそろってるなら良いが
2022/02/21(月) 18:32:07.53ID:kwaQcaho
スクリプトからの置き換えとして、VMを配布したくない(JVM/.NETが除外)、それなりに言語機能が欲しい(Goが除外)となるとRustくらいしか残らんのだよな
逆にそれらを許容できるなら別にRustじゃなくていいんだが
2022/02/21(月) 18:34:26.10ID:shT+MRih
Firefoxがいまだに勝てないのに速さとか言われてもな、省メモリならEdgeだし、自分たちがしたいだけでしょ
2022/02/21(月) 18:43:26.39ID:NpsKB2au
VMとかgoとかスレ違い
なんでC/C++/RustでGCとか出てきてんだよ
ム板ならGCの話をするならスレ立てて簡易実装くらい出して、有無の差異、モデルの差異、各言語の比較をしてほしい
前提の違う話を複数絡めて盛りすぎ
※明らかな嘘は論外
2022/02/21(月) 18:50:49.00ID:lBTJyZA6
うちはNode.jsからの移行先がRustになった
JavaScriptよりプログラミングしやすくなった
2022/02/21(月) 22:12:40.35ID:TSmsigpa
C vs C++ vs RustなんてRust圧勝で勝負ついてるんだから話すことなくない?
2022/02/21(月) 22:17:05.24ID:Gf4lGfIx
だったら黙ってれば?
2022/02/22(火) 00:25:06.07ID:5VMYN97O
>>300
なんだよ偉そうに
2022/02/22(火) 07:36:54.62ID:3cXa2TFM
>>299
言語機能としては圧勝なんだが、人やソフトなどの開発環境が惨敗だから困るんだよな
2022/02/22(火) 09:09:32.46ID:5VMYN97O
>>302
今一人勝ちのJavaだってそうなるまでに20年かかったんだから今判断しても意味なくね?
2022/02/22(火) 10:17:05.86ID:5VMYN97O
>>258
Lispとかいたらズコーってされたけど適材適所だと思うぞ
ルンバがLispで書かれているのは知ってるよね?
強力なメタプログラミング機能とインタラクティブな開発が必要なら採用してみてもいいのでは?
2022/02/22(火) 10:34:56.38ID:AiPUeoxY
>>304
セキュアなWebサービスはどうしたんだよw
2022/02/22(火) 11:24:36.79ID:FcgRLtLU
rustに置き換えようとして担当が逃げ出したプロジェクトがかなりあるわ。。これからその地獄がはじまる。
2022/02/22(火) 11:47:19.90ID:5VMYN97O
>>306
うちにもってきてよ。やってあげる。
308デフォルトの名無しさん
垢版 |
2022/02/22(火) 12:20:08.49ID:kvixU8HR
どうしたらLispでセキュアなwebサービス作れるん
2022/02/22(火) 12:37:25.61ID:5VMYN97O
>>308
作れないからRustにしたんだよ
2022/02/22(火) 12:41:08.18ID:fFHtSmjB
Lispだろうと多言語だろうと新しめの通信とかSSLとかのライブラリを探すとこからスタートじゃない?
311デフォルトの名無しさん
垢版 |
2022/02/22(火) 13:10:26.52ID:gqoJFVcX
Javaは言語登場から10年くらいで多くの人が利用してたし開発環境も続々でとような。
2022/02/22(火) 13:12:29.23ID:G6nBeheJ
明らかな嘘だけになったなw
2022/02/22(火) 13:38:49.42ID:FcgRLtLU
>>307
好きなの、残らず持ってってええぞ
ttps://jp.indeed.com/Rust%E9%96%A2%E9%80%A3%E3%81%AE%E6%B1%82%E4%BA%BA
2022/02/22(火) 21:22:01.94ID:y2qiytj8
>>306
置き換え元のコードが酷かったんじゃね。C++のコードとかだいたい酷いし。
2022/02/22(火) 21:38:20.03ID:Uj7UhjXB
現役プロダクトのコードを別言語に置き換えるのってrustに限らず大変なのでは
全面的な置き換えはプロダクト全体の再開発に等しい
特定の担当に押しつけるのではなくチーム全体で徐々に新規部分から置き換えた方が成功率高そう
2022/02/22(火) 21:54:32.13ID:B2H8wIkZ
>>314
> C++のコードとかだいたい酷いし。

×だいたい酷い
○すべてが酷い
◎すべてがゲロ以下に酷い
2022/02/22(火) 21:55:58.40ID:WirMN8li
一般的にコードを『置き換える』という気構えだと失敗
少なくとも移植先の言語に合わせて何らかの内部設計のし直しからが最低限のスタート
目的が効率アップにあるなら並行や並列が設計として入ってくるだろうし
目的がGC無くしてメモリ省力化だけであってもデータ構造の見直しは必須など
2022/02/22(火) 22:33:06.33ID:dVa/srT8
ねえねえ
ベクタの特定のターゲットの添え字を返すfind(v, target)を作ったとして、
ターゲットが見つからなかった場合のエラー処理はどうするのが良いと思う?
C/C++だと返り値を整数にして-1だったら見つからなかった、と言う感じが多いと思うんだけど
Result<usize, &str>とかにしてエラー内容を表す文字列を返しちゃう?
2022/02/22(火) 22:36:39.92ID:Uj7UhjXB
>>318
標準ライブラリの関数を使う
2022/02/22(火) 23:06:43.66ID:WirMN8li
>>318
まずRustではそういうのはベクタに対して実装せずにスライスに対して実装する
次にRustではそういったものにはResultではなくOptionを返す
最後にそのような機能は標準ライブラリを使えば色んな意味で間違いがない
2022/02/23(水) 00:15:24.41ID:3kJCLKpV
>>319
>>318
あ〜Optionなんてのがあるのね・・・
2022/02/23(水) 09:54:11.97ID:vCUIsgzX
usize, &strってすでにRustだろ
https://doc.rust-lang.org/std/string/struct.String.html#method.find
https://cpprefjp.github.io/reference/string/basic_string/find.html
どうでもいい
2022/02/23(水) 10:10:32.07ID:kNrPH1ZT
>>98
しかしC言語技術者は求人市場では圧倒的に不足していると言われてる
どこにいるんだか
2022/02/23(水) 12:37:36.24ID:a0AIymqn
「CやRustが他の言語よりもエネルギー効率に優れていることに驚きはない。衝撃的なのは、その違いの大きさだ。CとRustを広範に採用すれば、控えめに見積もってもコンピュートに使用されるエネルギーの量を50%削減できる可能性がある」とMiller氏は述べ、その根拠として、C、GoogleのGo、Lua、Python、Ruby、Fortranなどをはじめとする複数の言語のエネルギー効率を相対的に示した研究結果を紹介している。
https://news.yahoo.co.jp/articles/399e10841c9a9b776ac5ac3e8402f75da93d17ef
2022/02/23(水) 12:44:28.80ID:vCUIsgzX
>>324
同記事の引用
『プログラムをRustで書き換えることで、サービスは10倍速くなり、レイテンシーも大幅に短縮された。サーバーの数を減らすことができたので、結果的にエネルギー消費量も減少した。

 「エネルギー効率の高い言語はRustだけではなく、昔からあるC言語もエネルギー効率は高い。しかしRustは安全性を犠牲にすることなく、省エネ化を実現した初めてのメインストリームのプログラミング言語だ。CやC++で書かれたプログラムが抱える深刻なセキュリティ脆弱性の70%は、メモリー安全性の問題に起因している。それに対して、Rustは安全性の問題を抱えていると感じることなく、エネルギー効率を高められる」とMiller氏は言う。

 しかし、Rustにも習得の難しさをはじめとする課題はある。

 経験豊富なエンジニアでも、Rustを使いこなすまでには、この分野に詳しい専門家のサポートを受けながら、3〜6カ月の学習期間が必要だとMiller氏とLerche氏は言う。「Rustの習得を、野菜嫌いの克服に例えるエンジニアもいる。使いこなせるようになれば好きになる人が多いが、多くのエンジニアはそうなる前に見切りをつけたり、あきらめたりする。Rustは持続可能性とセキュリティに影響する可能性があるが、その力を発揮するためにはまず、ブロッコリーをブラウニーに変えなければならない』
326デフォルトの名無しさん
垢版 |
2022/02/23(水) 14:27:22.03ID:1qABUjpC
コンピューターのエネルギー効率が高い代わりに人間の効率が下がるんですがそれは
2022/02/23(水) 14:41:11.80ID:lP5I9oG+
コンパイル時にめっちゃエネルギー使ってる
Tier 1のプラットフォームの最新数バージョンくらいはバイナリ配布する仕組みがcargoに必要
2022/02/23(水) 14:42:22.66ID:0x8HcgAm
>>326
まぁ作ったあとの稼働と運用考えたら総じてプラスになるでしょ。ならない?
2022/02/23(水) 15:38:19.82ID:5Q12euAa
>>326
一定規模超えたら一気に効率上がるぞ
2022/02/23(水) 16:55:23.95ID:+3d31FNr
>>326
これよく言われるけど言語による生産性の差って定量的にデータ集められてるのかな
331デフォルトの名無しさん
垢版 |
2022/02/23(水) 17:27:51.83ID:1qABUjpC
メンテナンスフェーズに入ったとしても、人件費より電気代の方が高くなるようなことってなかなかなくね?
そんな大成功を納めたサービスってどれくらいあるんだろうな
2022/02/23(水) 17:29:51.77ID:Q7pYnx45
>>329
そうそう。
昔はJavaでやろうとしても人材不足でリプレースできなかったけど今は余裕で集められるもんな
2022/02/23(水) 17:41:24.45ID:lwKqHuPf
>>331
それはユーザー数によるとしか
めちゃくちゃ大量のメッセージを捌きまくらないといけないサービスの場合はほんのちょっとしたパフォーマンス改善でも物凄くコスト下がったりするし
334デフォルトの名無しさん
垢版 |
2022/02/23(水) 17:45:28.95ID:1qABUjpC
>>333
ユーザー数によることはわかってて、そんな事態がどれくらいあるのかと言ってるレスに対してユーザー数によることを指摘するのか……
2022/02/23(水) 18:24:51.09ID:Gy4l851c
世の中ウェブサービスだけじゃない

例えば携帯電話のベースバンドチップの消費電力が
半減とかできて表のニュースにはならないし
2022/02/23(水) 18:29:47.83ID:kNrPH1ZT
>>328
ただ作った後の効率に対してプログラマーは報酬を貰えないからな
作った後の効率がいいから、作る費用が上がっても構わないという判断をしてくれるかどうか
2022/02/23(水) 18:46:55.85ID:wKfqGXJ0
Ruby などは可読性が高いから、保守できる。
C/C++ は10年やっても、Ruby on Rails を1年勉強した人にも勝てない

経験は、10年とか時間じゃなく、内容。
例えば10年の内、ポインターに9年使ったとか、人生の無駄

Railsでは、初心者の1年の内容が、
Docker, Linux, データベースなど、ほぼシステムとサービス内容

例えば、Homebrew もRuby製。Cに置き換えるのに、10年掛かった。
SASS もRuby製。C++に置き換えるのに、数年掛かった。
最近では保守できずに、Dart製に変わった

Rubyの女神・池澤あやかが、Ruby以外で開発者を募集しても集まらないから、
結局、Railsで作る事になったと言ってた

最近は、宇宙開発などの組み込み用でも、mruby を使う。
人工衛星イザナギ・イザナミで使っている。
Cで可読性が悪い、文字列処理の部分などを、mrubyで書く

本も出た

Webで使えるmrubyシステムプログラミング入門、近藤宇智朗、2020/11

宇宙開発などの組み込み用、MicroPython, Lua, Squirrel の代替になる。
Ubuntu 18.04, C99 対応
338デフォルトの名無しさん
垢版 |
2022/02/23(水) 18:51:10.94ID:PMTzrERY
>>325で明らかにサービスの話してるのに突然携帯のチップとか言い始める奴w
2022/02/23(水) 19:57:40.25ID:5Q12euAa
Rubyしかやってないやつのコード読みにくすぎて震える
2022/02/23(水) 20:04:08.39ID:Lu1aogHC
言語を1つしかわからんやつなんてそもそも初心者しかいなくね
2022/02/23(水) 21:26:07.56ID:vnuj+wMr
HomebrewがCに置き換わったってどこ情報?
2022/02/23(水) 21:30:43.83ID:YI1xwHaU
ポインタに9年使うってどういうこと
2022/02/23(水) 21:40:29.46ID:EqZ7VJsi
>>326
C C++ Rust全て経験しているとわかる
Rustはプログラミングの生産性も優れている
人間にとっても効率が良い言語
344デフォルトの名無しさん
垢版 |
2022/02/23(水) 21:41:50.11ID:dFCEAhYP
rustの改善のしどころは無いのか?
2022/02/23(水) 21:57:31.33ID:hfe0Ou5T
Rustは保守性も良いね
例えば機能追加や改善などで変更時もコンパイルが通ると安全性が崩れていないと保証される点
これは開発時もそうだがそれらの実行時の無駄なデバッグが不要となった点
346337
垢版 |
2022/02/23(水) 22:01:48.42ID:wKfqGXJ0
>>341
Homebrew
https://brew.sh/index_ja

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

install.sh だから、もうRuby スクリプトじゃない。
中を見ていないけど、C か何かのバイナリをインストールするのじゃないの?

よく知らないけど
347デフォルトの名無しさん
垢版 |
2022/02/23(水) 22:19:18.74ID:1qABUjpC
>>343
C C++と比べたら生産性高いのは同意するし、型まわりのお陰で言語仕様が生産性高くなりそうなのも同意するけど、やたらライブラリが充実しているスクリプト言語とかGoと比べるとまだ人間にとっての生産性では勝てなそう
この辺りのライブラリ生産する人間をGoに吸われている感じがあるのでサービスにRust使うのが本格化する日は来るんだろうかって感じ
2022/02/23(水) 22:20:48.72ID:vCUIsgzX
shellで書かれたインストールスクリプトも分からない男の人って・・・
349デフォルトの名無しさん
垢版 |
2022/02/23(水) 22:27:11.67ID:PMTzrERY
>install.sh だから、もうRuby スクリプトじゃない。
>中を見ていないけど、C か何かのバイナリをインストールするのじゃないの?

一文も理解出来んかったんだが……
2022/02/23(水) 22:34:57.03ID:ek+gncWL
>>346
そうなんだ、すごいね!
351337
垢版 |
2022/02/23(水) 22:47:13.28ID:wKfqGXJ0
よく覚えてないけど、
ちょっと前は、Ruby スクリプトを実行するような感じだった

/bin/ruby -e "$(curl -fsSL URL〜/install.rb)"
2022/02/23(水) 22:56:55.36ID:Lu1aogHC
>>351
昔のmacにはRubyが標準で入ってたけど、Rubyが同梱されなくなったから、RubyがなくてもインストールできるようにHomebrewのインストーラがBashで書き直されただけだよ
いまでもHomebrewの本体はRubyで実装されてる
2022/02/23(水) 23:36:06.18ID:vCUIsgzX
linuxも考慮されてるのかもね
2022/02/23(水) 23:54:17.80ID:lP5I9oG+
>>352
今はまだ同梱されてるよ
次の12.3からpythonだけ削除
rubyとperlは残ってる
2022/02/23(水) 23:59:10.49ID:hfe0Ou5T
>>347
Goには勝てる
あとは時間の問題
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況