[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 02/26 16:35 / Filesize : 259 KB / Number-of Response : 1020
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


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

Rust part21



1 名前:デフォルトの名無しさん [2023/08/15(火) 22:24:39.45 ID:xzxy4cgp.net]
公式
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 part20
https://mevius.2ch.net/test/read.cgi/tech/1677771928/

ワッチョイスレ
プログラミング言語 Rust 4【ワッチョイ】
https://mevius.2ch.net/test/read.cgi/tech/1514107621/

201 名前:デフォルトの名無しさん mailto:sage [2023/09/13(水) 22:09:57.35 ID:JQEDxoJN.net]
CNCF系はya

202 名前:ml好きだからね
それはさておき、言語固有のリポジトリマネージャはOSとは独立じゃないとディストリビュータもライブラリ管理者も辛いという必要性があって生み出されたもの
今後もなくなる事は無いでしょう。CPANあたりが元祖ですかね
[]
[ここ壊れてます]

203 名前:デフォルトの名無しさん mailto:sage [2023/09/13(水) 23:41:57.05 ID:ljzzNVbD.net]
tomlがEBCDICで描かれてたら絶望しかない

204 名前:デフォルトの名無しさん mailto:sage [2023/09/14(木) 10:03:14.07 ID:CfWv79JE.net]
さすがにcpanなんかもう使われてないよ

205 名前:デフォルトの名無しさん mailto:sage [2023/09/14(木) 10:31:50.25 ID:JeXpXyyi.net]
tomlとRustって直接関係あるの?
単に採用が多いってだけ?

206 名前:デフォルトの名無しさん mailto:sage [2023/09/14(木) 10:45:04.55 ID:hWZaPMNq.net]
明確に関係を規定しているわけではないが
開発ツールチェインで採用している以上は馴染みやすいし、
習慣的に toml が普通という感じ

207 名前:デフォルトの名無しさん [2023/09/14(木) 18:18:10.36 ID:uElhXa+m.net]
JetBrains から RustRover 出たね。まだプレビュー版だけど。その代わり無料だ。

208 名前:デフォルトの名無しさん [2023/09/14(木) 18:20:11.06 ID:uElhXa+m.net]
ぜひとも IntelliJ IDEA のように無料のcommunity版も出して欲しい。

209 名前:デフォルトの名無しさん [2023/09/15(金) 11:42:38.55 ID:FLL155po.net]
的を射ている
https://wolfbash.hateblo.jp/entry/2017/07/30/193412



210 名前:デフォルトの名無しさん mailto:sage [2023/09/15(金) 12:00:21.56 ID:FSCF79pL.net]
めちゃペラいな
初めて3日くらいの感想ぽい

211 名前:デフォルトの名無しさん mailto:sage [2023/09/15(金) 12:00:26.41 ID:LQyUZKSg.net]
しょーもな...

212 名前:デフォルトの名無しさん mailto:sage [2023/09/15(金) 12:03:53.15 ID:xQfsfFQS.net]
しっかりやってる人の意見
https://kerkour.com/should-i-rust-or-should-i-go

Goと比較した場合のRust一番大きいメリットはエラー処理やバグ検知だけどasyncのデメリットが大きいのも確か

213 名前:デフォルトの名無しさん mailto:sage [2023/09/15(金) 12:13:34.28 ID:LoLA89os.net]
むしろNimのネガキャンにしかなってないって話題になってた記憶が

214 名前:デフォルトの名無しさん mailto:sage [2023/09/15(金) 12:13:50.38 ID:+YuTSIf8.net]
>>205
Rustの一番の課題が絶壁の学習曲線なんだから、3日目の感想は重要だろ。
それを無視するならHaskell化待ったなしだな。

215 名前:デフォルトの名無しさん [2023/09/15(金) 12:52:21.36 ID:FLL155po.net]
情報密度が違っててワロス
https://www.ossnews.jp/compare/Rust/Nim

216 名前:デフォルトの名無しさん mailto:sage [2023/09/15(金) 12:58:36.85 ID:FqVl8L26.net]
>>207
むしろasyncが容易かつ効率的なことがRustの利点だよ
そして軽い非同期タスクを大量にマルチスレッド上でいわゆるM:Nスケジューリングできるのは、
RustとGoしかないためその両者の比較になるのはその通りだが出来る範囲はRustが広くきめ細かい
もちろん非同期以外の言語仕様も同様でGoは貧弱すぎる

217 名前:デフォルトの名無しさん mailto:sage [2023/09/15(金) 13:33:46.47 ID:yoJlOour.net]
Go は貧弱だが Go くらいで十分な範囲をカバーできるだろ……という割り切りで設計されているように見える。

218 名前:デフォルトの名無しさん mailto:sage [2023/09/15(金) 14:58:25.08 ID:3ICKgtSW.net]
Goは構文が簡素なのは割り切りとしていいと思うんだけど
参照周りの扱いとかCの頃から進歩してなくて
「こんなこと今どき人間が気をつけて書くの?」という気持ちにはなる

219 名前:デフォルトの名無しさん mailto:sage [2023/09/15(金) 16:57:51.41 ID:fC9P09S6.net]
>>210
こういう役に立たない一般論に比べれば>>204のような薄っぺらい個人の感想のほうが実践知なのでまだ価値がある



220 名前:デフォルトの名無しさん mailto:sage [2023/09/15(金) 19:05:24.10 ID:BkBNFquN.net]
>>210
スマホからは何も見えない……
なんかあるの?

221 名前:デフォルトの名無しさん mailto:sage [2023/09/15(金) 19:11:49.50 ID:wdMffZ4Q.net]
>>215
RustとNimを比較してるサイト

222 名前:デフォルトの名無しさん [2023/09/15(金) 20:05:41.52 ID:pQw5TxEC.net]
Goは構文簡素にしてても内部のGCとかは複雑にしてるイメージ。

223 名前:デフォルトの名無しさん mailto:sage [2023/09/15(金) 20:39:40.02 ID:zdZpv9AJ.net]
>>214
どちらのページも意味のある情報がなにもない
くだらない揚げ足取り

>>215
PCからしか内容が見えないダメサイト
内容に意味はないため見る必要ない

224 名前:デフォルトの名無しさん mailto:sage [2023/09/15(金) 22:34:16.16 ID:qrlNPDKn.net]
そのRust批判を書いてる人もそうだが
意味のあるプログラミング経験の少ない人はmutを毛嫌いしてるよな

言語に関係なくミュータブルか否かの区別がある方が好ましく
ミュータブルの使用は必要最小限が好ましい
という当たり前のことに沿う仕様なのに理解できなくて批判

225 名前:デフォルトの名無しさん [2023/09/15(金) 23:11:51.65 ID:UUFGnjcv.net]
>>219
ミュータブルか否かの区別があるのは煩雑になるだけで好ましくない。WindowsやLinuxのソースコードに
Rustが採用されたと言ってもごく一部でメモリ安全性が特に重視される部分だけ。全部をRustで書くなんて
煩雑な作業には人間はとても耐えられない。

226 名前:デフォルトの名無しさん mailto:sage [2023/09/15(金) 23:17:03.67 ID:/YAD597I.net]
>>219
>ミュータブルか否かの区別がある方が好ましく
当たり前では

mojo調べでlet/var区別が好ましいと決着ついた
https://docs.modular.com/mojo/manual/basics/index.html#variables

rust mutが好まれてないだけ

>>220
let/varだと区別がありつつ煩雑じゃない、という事ですね

227 名前:デフォルトの名無しさん mailto:sage [2023/09/15(金) 23:24:01.30 ID:/YAD597I.net]
それと
>>220
Linuxカーネル本体は当分Cのままで
デバイスドライバをrustで書く準備が出来た、だけですよ

228 名前:デフォルトの名無しさん mailto:sage [2023/09/15(金) 23:26:04.83 ID:6F2DK256.net]
>>220
mutableとimmutableの区別は必須
それを煩雑という者は初心者のみ

>>221
色んなプログラミング言語をやってきてる者にとってそんな些細な記述方法を問題にするやつはいない
参照のある言語でmutableを区別するならばmut付加方式が合理的
例) let mut x: &mut Type = ...

229 名前:デフォルトの名無しさん mailto:sage [2023/09/15(金) 23:28:27.24 ID:/YAD597I.net]
あと前スレで出ていたcurlですが
rust TLS backendを使う選択肢があるのに配布用には採用されてませんね

$ curl -V
... libcurl/8.3.0 OpenSSL/3.1.2 (Schannel) zlib/1.3 brotli/1.1.0 zstd/1.5.5 libidn2/2.3.4 libpsl/0.21.2 (+libidn2/2.3.3) libssh2/1.11.0 nghttp2/1.56.0
Release-Date: 2023-09-13



230 名前:デフォルトの名無しさん mailto:sage [2023/09/15(金) 23:30:46.42 ID:Mq8zEA1a.net]
letの後に識別子しか書けないならlet/varでいいんじゃね
パターンが書けるならlet/varよりlet/let mutの方が合理的な気がする

231 名前:デフォルトの名無しさん mailto:sage [2023/09/15(金) 23:31:04.61 ID:ksZUfg69.net]
ここはRustのスレ
的外れなRust叩きをしているバカはアンチスレへ移動しろ

232 名前:デフォルトの名無しさん mailto:sage [2023/09/15(金) 23:35:09.11 ID:/YAD597I.net]
sudo-rsも v0.2.0でstableと言い切って知らないdistributionに
ねじ込んだようですがその後どうなるのか要チェックです

233 名前:デフォルトの名無しさん mailto:sage [2023/09/15(金) 23:43:02.23 ID:4Db3FasG.net]
mojoの所有権周りの構文ってRustより重い感じなんだな
これPython書きたいような人に受け入れられるんだろうか…

234 名前:デフォルトの名無しさん mailto:sage [2023/09/15(金) 23:44:55.11 ID:/YAD597I.net]
>>225
>パターンが書けるならlet/varよりlet/let mutの方が合理的な気がする
気がする、ではなく
合理的だという説明が聞きたい

235 名前:デフォルトの名無しさん mailto:sage [2023/09/15(金) 23:47:42.54 ID:cnhK/Rr/.net]
>>221
たとえばRustでよくあるこういうパターンはmojoでどうするんだろう
let (tx, mut rx) = channel(100);
そもそも可変参照はどう区別するんだろうね
あと関数の引数変数のmutable性はどうやって表すんだろう
Rustのmutを添える方式が自由度が高くてわかりやすいよね

236 名前:デフォルトの名無しさん mailto:sage [2023/09/15(金) 23:48:06.93 ID:/YAD597I.net]
>>228
どの辺りが重い感じ?

237 名前:デフォルトの名無しさん mailto:sage [2023/09/15(金) 23:52:51.61 ID:4Db3FasG.net]
>>231
borrowed, inout, owenedって全部キーワード指定だし結構長くない?
自分はRustみたいに明示的なのが好きだから多少長くてもいいけど
Python好きな人だとどうなんだろうって

238 名前:デフォルトの名無しさん mailto:sage [2023/09/15(金) 23:54:33.01 ID:Mq8zEA1a.net]
パターンマッチの場合束縛する変数が複数になり得るので、それぞれの変数に対して異なるmutabilityを宣言できる

あと、Rustは変数への束縛にmove/refの区別もあることも関係してるかもね
letやvarのように別構文を用意するなら、それぞれに対してmove版、ref版が必要になってしまう

239 名前:デフォルトの名無しさん mailto:sage [2023/09/15(金) 23:59:25.63 ID:cnhK/Rr/.net]
let (foo, ref mut bar) = とかよく使うもんね
mutやrefが分離キーワードになっているRustが便利



240 名前:デフォルトの名無しさん mailto:sage [2023/09/15(金) 23:59:43.71 ID:/YAD597I.net]
>>230
なるほどね
mojoでunpackがどうなるのか知らないけど
unpack用のlet/varシンタックスはあった方が良いね

let/var方式の他の言語を参考にするんだろうな

241 名前:デフォルトの名無しさん mailto:sage [2023/09/16(土) 00:02:44.62 ID:A/Og/XEu.net]
>>234
>mutやrefが分離キーワードになっているRustが便利

これを突き詰めるとponyになるって5chで聞いたよw

242 名前:デフォルトの名無しさん mailto:sage [2023/09/16(土) 00:03:10.36 ID:e71CP5Wp.net]
>>234
いや、今となってはrefはほとんど使わん

243 名前:デフォルトの名無しさん mailto:sage [2023/09/16(土) 00:26:11.63 ID:h6vfr2ug.net]
TauriとTauri Mobileが別々の実装として統合されないの悪手だと思うんだがな
せっかくRustでロジック書けてネイティブ呼び出しまで簡単で手頃なフロントエンド実装で期待してたのにわざわざコミュニティ分断する必要あるんか?
なんかXamarinみたいな結末迎えそうで残念だわ

244 名前:デフォルトの名無しさん [2023/09/16(土) 09:10:27.83 ID:FQ6fYHli.net]
T,o,k(迷惑という方は←をあぼーんしてください。)

更に家族に教えて加えて¥4000×人数をGET。
https://i.imgur.com/p75gBok.jpg

245 名前:デフォルトの名無しさん [2023/09/16(土) 09:55:59.18 ID:ZJLR+eYH.net]
>>238
無理に一つにしようとすると条件分岐増えてごちゃごちゃしてわかりにくくなる、というのはありそう。知らんけど。

246 名前:デフォルトの名無しさん mailto:sage [2023/09/16(土) 10:40:22.96 ID:FZJflFW6.net]
>>239
もう現金化してアンインスコしてる

247 名前:デフォルトの名無しさん [2023/09/16(土) 11:27:20.46 ID:8u+hT5wA.net]
RustRoverを試してみる
https://zenn.dev/helloyuki/scraps/a0241df49b2556

248 名前:デフォルトの名無しさん mailto:sage [2023/09/16(土) 11:55:36.71 ID:jG7brSLe.net]
ウェブ系の奴らがやけにJetBrains推してくるけどAndroid Studio使ったら如何にゴミIDEなのかよくわかった
しかも個人使用でも買い切り数百ドルもしたのに今はサブスク月額1300円とかぼったくりもいいところ
VSCodeがあって本当によかったVSもCEならデバッガに制限あるけど無料だしこれほどMSに感謝したことはないね

249 名前:デフォルトの名無しさん mailto:sage [2023/09/16(土) 12:20:19.81 ID:E7jGhtqP.net]
mut よりもShared XOR Mutableの方が難しいだろ。



250 名前:デフォルトの名無しさん [2023/09/16(土) 12:41:23.41 ID:8u+hT5wA.net]
>>243
Android Studio は IntelliJ IDEA がベースになっていて無料の community 版があるが?
ていうか Android Studio の方は最初から無料じゃなかったか? 金取るやつあるの?

251 名前:デフォルトの名無しさん [2023/09/16(土) 12:57:41.63 ID:RATZO/gi.net]
>>223
let x: &mut Type = ...
でよくね?

252 名前:デフォルトの名無しさん mailto:sage [2023/09/16(土) 13:00:07.59 ID:XaZSJ/up.net]
>>244
lifetimeが難しいというのも大体がshared xor mutableの話だしな

253 名前:デフォルトの名無しさん mailto:sage [2023/09/16(土) 13:07:54.84 ID:2emM+tnC.net]
>>246
それだとimmutableとなり変数値を書き換えできないから根本から違う

254 名前:デフォルトの名無しさん [2023/09/16(土) 13:23:53.43 ID:RATZO/gi.net]
描き替え出来るから問題無い

255 名前:デフォルトの名無しさん mailto:sage [2023/09/16(土) 13:57:40.01 ID:2emM+tnC.net]
>>249
ポインタ値の書き換えと
ポインタが指す先の書き換えの
区別がついていないのはCでも初心者レベル

256 名前:デフォルトの名無しさん [2023/09/16(土) 14:05:34.65 ID:RATZO/gi.net]
うん
だから付ける必要無い所まで描く必要無いよね

257 名前:デフォルトの名無しさん mailto:sage [2023/09/16(土) 14:06:34.42 ID:XaZSJ/up.net]
refとmoveの区別がある言語とそうでない言語の構文比較しても仕方なかろう

258 名前:デフォルトの名無しさん mailto:sage [2023/09/16(土) 14:10:34.38 ID:nUKpqsu7.net]
>>246
ダメです
全く異なります
let mut x: &mut Type = ... ←xの値を書き換えられる
let x: &mut Type = ... ←xの値を書き換えられない

259 名前:デフォルトの名無しさん [2023/09/16(土) 14:24:43.82 ID:RATZO/gi.net]
>>253
だから付ける必要無い所まで描く必要無いよね



260 名前:デフォルトの名無しさん mailto:sage [2023/09/16(土) 14:32:47.40 ID:F5t5l7vC.net]
>>239
絶対に試すべきだね。

261 名前:デフォルトの名無しさん mailto:sage [2023/09/16(土) 14:37:19.47 ID:nUKpqsu7.net]
>>254
mutabilityを必要とする分に応じてmutを付ける必覧vがあります
そのため以下4種類がコードに応じて使い分けされています
let mut x: &mut Type = ...
let x: &mut Type = ...
let mut x: &Type = ...
let x: &Type = ...
前者のmutは変数xの値を更新するならば不可欠です
後者のmutはType型の可変参照で参照先の値を更新するならば不可欠です
それぞれの値を更新するためにはそれぞれのmutを欠くことはできません

262 名前:デフォルトの名無しさん mailto:sage [2023/09/16(土) 14:43:13.66 ID:BFCePFCu.net]
ほんまジャップはアホやな
しょーもない重箱の隅をつつきあって知識自慢のマウント合戦
そして出来上がった成果物は誰も使わないクソゴミ
ジャップがオナニーしてる間にソフトウェアは中国に30年遅れているという現実
お前ら見てるとマジで日本人がソフトウェアで土人の未開レベルな理由がよーくわかる

263 名前:デフォルトの名無しさん [2023/09/16(土) 17:08:24.37 ID:DWW8ClN4.net]
まともなプログラミング言語ならばそれら四つの区別がある
例えばC/C++ではこのように対応する

// 変数値は不変で参照先も不変
Rust: let p1: &i32 = ...
C/C++: const int* const p1 = ...

// 変数値は可変で参照先は不変
Rust: let mut p2: &i32 = ...
C/C++: const int* p2 = ...

// 変数値は不変で参照先は可変
Rust: let p3: &mut i32 = ...
C/C++: int* const p3 = ...

// 変数値は可変で参照先も可変
Rust: let mut p4: &mut i32 =...
C/C++: int* p4 = ...

つまり可変な時にmutを付けるか
不変な時にconstを付けるかの些細な違いにすぎない

264 名前:デフォルトの名無しさん mailto:sage [2023/09/16(土) 17:14:29.95 ID:AP//fjNl.net]
参照の可変性という概念を持つ言語がそもそも少ない

265 名前:デフォルトの名無しさん mailto:sage [2023/09/16(土) 17:15:13.87 ID:AP//fjNl.net]
概念が異なるのに構文の話だけをしても仕方ない

266 名前:デフォルトの名無しさん mailto:sage [2023/09/16(土) 17:34:04.75 ID:nlb2ovML.net]
参照先の値がread onlyかwritableかはプログラミングで極めて重要だよね
間違えて意図せず書き換えてしまっていたバグなどの減少にも繋がるから必要な機能じゃないかな

267 名前:デフォルトの名無しさん mailto:sage [2023/09/16(土) 17:37:07.29 ID:sqsrY/cP.net]
>>258
2番目と4番目はRustだとsmellyなのでリファクタリング検討候

268 名前: []
[ここ壊れてます]

269 名前:デフォルトの名無しさん mailto:sage [2023/09/16(土) 19:41:48.63 ID:OLEDwioO.net]
>>204が言ってるのはmutの区別が不要じゃなくて
良く使うmutable側でタイプさせんなってことでしょ



270 名前:デフォルトの名無しさん mailto:sage [2023/09/16(土) 20:04:56.12 ID:DWW8ClN4.net]
ほとんどのプログラムではmutと記述すべきところが少ない
もしmutが多いならレアケースを除いてコードを改善すべき可能性が高い

271 名前:デフォルトの名無しさん [2023/09/16(土) 20:10:22.45 ID:TlXhcaWs.net]
>>263
>良く使うmutable側でタイプさせんなってことでしょ

お前、それプログラミングのセンス無いわ。
あ、もしかして使い捨てのコードしか書いたこと無い?

272 名前:デフォルトの名無しさん mailto:sage [2023/09/16(土) 20:12:22.58 ID:b0KnMHZf.net]
>>263
慣れてきたらmutあんま使わなくて書けるようになるよw
関数型言語やってるとmut相当のもんなんて基本使わんのだし

273 名前:デフォルトの名無しさん mailto:sage [2023/09/16(土) 20:31:44.89 ID:/CtnFWfv.net]
>>266
その代償としてイミュータブルをコピーしまくってメモリ浪費して関数型言語遅いじゃん

mut祭りで読みづらい代わりに高速でメモリ効率が良いのがRustの売りでしょ

274 名前:デフォルトの名無しさん mailto:sage [2023/09/16(土) 20:37:59.24 ID:EG7NJZsJ.net]
多い少ないの話したいなら定量的な根拠持ってきてくれ
根拠ないなら断言するのはやめて

275 名前:デフォルトの名無しさん mailto:sage [2023/09/16(土) 20:45:23.05 ID:DWW8ClN4.net]
>>267
それは関係ない
まずRustのほとんどのプログラムでmut祭りになることはなくmutの出現は少ない
その上でRustはCとほぼ同じ程度速い

276 名前:デフォルトの名無しさん mailto:sage [2023/09/16(土) 20:50:47.30 ID:bcC3Efve.net]
どちらがより目立つべきかを考えたら
mutable なほうが目立つべきだし
目立って欲しい方に指定をつける文法が自然だ。

良く使うほうが短く書けるべきという視点だって
もちろん間違いではないし、評価軸は無数にある。

定量化したところでそれぞれの重みをどう捉えるかは
感性の問題だろ。

277 名前:デフォルトの名無しさん mailto:sage [2023/09/17(日) 12:16:37.26 ID:ju6VviWZ.net]
>>211
Goでできない非同期処理って何?
channelとselectとgoroutineとsyncパッケージでなんでもできるけど

278 名前:デフォルトの名無しさん mailto:sage [2023/09/17(日) 13:48:53.24 ID:4koi4/xu.net]
>>271
例えばベアメタル環境での非同期とか?
まぁ大抵の環境でだいたい上手く行くってのがGoのいいところだから
別に悪くはないと思うけど

279 名前:デフォルトの名無しさん mailto:sega [2023/09/17(日) 17:36:59.55 ID:FEktRC8x.net]
毎日ちょっとずつ課題でてそれを解いていくようなRust勉強サイトってないの?
ナンプレ毎日1問クリアしていく感じなやつ



280 名前:デフォルトの名無しさん mailto:sage [2023/09/18(月) 01:48:58.76 ID:u21D7vuy.net]
>>273
exercism.org どうかな

281 名前:デフォルトの名無しさん [2023/09/18(月) 10:51:29.83 ID:+ud3D/1q.net]
>>267
>その代償としてイミュータブルをコピーしまくってメモリ浪費して関数型言語遅いじゃん

Rustのことなら#[derive(Copy)]とか.clone()とか描いちゃだめだよ絶対

282 名前:デフォルトの名無しさん mailto:sage [2023/09/18(月) 12:04:31.40 ID:X+wkGtcX.net]
>>267
エイリアス解析がやりやすくなって本質的に同じものなのか
複製が必須なのか自動で判断して最適化される。
プログラマが判断するよりたぶん賢い。

mut を付けるかどうかは性能じゃなくてロジック的な妥当さで決めるもんだよ。

283 名前:デフォルトの名無しさん mailto:sage [2023/09/18(月) 12:15:08.64 ID:eKGbn4o/.net]
techempowerベンチ見るとrustと比較してgoがしょぼいけど
こんなものなの?

284 名前:デフォルトの名無しさん mailto:sage [2023/09/18(月) 12:28:49.50 ID:X+wkGtcX.net]
つよつよプログラマがチューニングすれば際限なく性能を挙げられるという意味での性能の良さと
非プログラマがテキトーに書いても及第点程度の性能が出るというのは言語として両立しにくい。

仮にしょぼいのが本当だとしてもトレードオフになる何かがあったりするから
総合的な使用感は実際に使ってみないとよくわからん。

285 名前:デフォルトの名無しさん mailto:sage [2023/09/18(月) 12:39:00.83 ID:b4Z9xD4H.net]
>>277
GoはGC内蔵言語だから本質的に遅い
GC内蔵言語はGCするから遅いわけではなくGCのためにヒープメインにならざるをえないため遅い

286 名前:デフォルトの名無しさん mailto:sage [2023/09/18(月) 12:44:14.37 ID:AWdb6cD0.net]
なんでもイミュータブルじゃなくて必要な時にミュータブルにしつつ安全性をコンパイラが保証してくれるのがいいんだよなぁ。

287 名前:デフォルトの名無しさん mailto:sage [2023/09/18(月) 13:13:11.65 ID:eKGbn4o/.net]
そもそも、goはc#にすら負けてね?
1番高速じゃなくても2番目あたりでいいかなと思ってるんだけど
どれがいいのかなと

ななやむぐらいならわかりやすい1番にしとけばいいのか?

288 名前:デフォルトの名無しさん mailto:sage [2023/09/18(月) 13:16:25.44 ID:eKGbn4o/.net]
goのgc調べてみましたが参照カウントとかじゃないのか

289 名前:デフォルトの名無しさん mailto:sage [2023/09/18(月) 13:54:07.10 ID:1tuWbz8L.net]
Rustは見た目が汚いのが困る
もういっそCの方がきれいで安全で保守性が高いまである



290 名前:デフォルトの名無しさん mailto:sage [2023/09/18(月) 14:01:16.96 ID:6k3cBrAf.net]
Cは大きなプロジェクトが汚すぎる
モジュールで名前空間分けられないから

291 名前:デフォルトの名無しさん mailto:sage [2023/09/18(月) 14:04:02.95 ID:DByXMqbY.net]
C言語は"安全装置のない銃"に徹しているからな
シンプルなだけに危険いっぱいだ

292 名前:デフォルトの名無しさん mailto:sage [2023/09/18(月) 14:43:26.49 ID:EhgpbTsZ.net]
C#はunsafeやSpanがあるので頑張れば結構速い
ネイティブコンパイルもできるようになってきたからとにかく速度を求めるようなアプリじゃなければ十分

293 名前:デフォルトの名無しさん [2023/09/18(月) 15:27:10.56 ID:orcKBY2S.net]
Rustもcrateのダウンロード数に応じて
crate開発者が課金される時代か
メシウマじゃなかった胸熱

294 名前:デフォルトの名無しさん mailto:sage [2023/09/18(月) 15:57:52.35 ID:qN+5vY8o.net]
何の話かと思えばunityか

295 名前:デフォルトの名無しさん mailto:sage [2023/09/18(月) 16:04:36.29 ID:2MGtTYvZ.net]
とりあえずミュータブルの話をするならshared xor mutable に触れなきゃ意味ないし、それなら元ネタのトランザクション分離レベルぐらいは勉強しとかんといかん。

296 名前:デフォルトの名無しさん mailto:sage [2023/09/18(月) 16:05:47.88 ID:7BUJ27i/.net]
>>285
C(C++含む)の真のヤバさはそれが周知されていないことだと思う
セキュリティ、セキュリティ吠えながら妄信的にC/C++使っているところとか普通にあるし

297 名前:デフォルトの名無しさん [2023/09/18(月) 17:52:28.36 ID:yZdHYJJu.net]
>>283
>もういっそCの方がきれいで

前置宣言だからそれは無い。

298 名前:デフォルトの名無しさん mailto:sage [2023/09/18(月) 22:02:21.17 ID:1tuWbz8L.net]
>>291
前置宣言だから綺麗に書けるまである

299 名前:デフォルトの名無しさん mailto:sage [2023/09/18(月) 22:29:41.23 ID:b4Z9xD4H.net]
>>283
Rustは普通というか見た目キレイ側



300 名前:デフォルトの名無しさん mailto:sage [2023/09/18(月) 23:41:51.16 ID:X+wkGtcX.net]
>>290
ロジックが正しくてもバイナリレベルでは脆弱性になることがある。
分かりやすい例では、言語の理屈では寿命を終えたはずのオブジェクトでも再利用される機会がなくて内容が残り続けるとかね。
そういうときにでもどうにかする知見が C/C++ では積み上がってる。

普通に書いて脆弱性が発生しにくいに越したことはないが、脆弱性が発生していることがわかったときに直せる確信があるというのはセキュリティが重要な場面で C/C++ を使う理由になる。
C/C++ が「自分の足を撃つ」ことになるなんてのは百も二百も承知の上で、「自分の足を撃つことも出来る」ことに価値を見いだしてるんだよ。
もともと自分の足を撃つというのは戦争に行かなくて済むようにわざと撃つことがあるというのを下敷きにした言い回しで、危険であると同時にそれが必要なこともあるというニュアンスを含んでいる。






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

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

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