Mozilla発のプログラミング言語「Rust」のスレです
公式
https://www.rust-lang.org/
https://blog.rust-lang.org/
https://github.com/rust-lang/rust
前スレ
プログラミング言語 Rust 3
https://mevius.5ch.net/test/read.cgi/tech/1495343069/
プログラミング言語 Rust 4
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2017/10/14(土) 17:38:14.04ID:uWD69LeP328デフォルトの名無しさん
2017/11/29(水) 12:04:01.36ID:TbD0G3jq try catchみたいな構文検討されていたような
329デフォルトの名無しさん
2017/11/29(水) 19:35:23.16ID:PZaIONIl Rustを叩いている奴ってミラーレスカメラを叩いている一眼レフカメラ信奉者と同類に見える
大抵の場合は合理的な方が最終的に選択されるけどな
大抵の場合は合理的な方が最終的に選択されるけどな
330デフォルトの名無しさん
2017/11/29(水) 20:42:06.07ID:FCGUeU3g mutable変数扱うなバーカ、というメッセージだと思ってる
必要なら再宣言させるようにして人為バグを減らそうという魂胆は分かるぞ(Javaのfinal教徒感
必要なら再宣言させるようにして人為バグを減らそうという魂胆は分かるぞ(Javaのfinal教徒感
331デフォルトの名無しさん
2017/11/29(水) 20:50:40.91ID:wq9Dycsx BufReaderとかReadするStringとかにもmut必要何だからmut禁止とか無理じゃね?
不要なmutだったらワーニング出るでし、必要だったらコンパイルエラーになるでしょ
必要な形で使えば良いだけなのに一体何を議論してるんだ?
ミュータブルが気に入らないならhaskellおすすめ
不要なmutだったらワーニング出るでし、必要だったらコンパイルエラーになるでしょ
必要な形で使えば良いだけなのに一体何を議論してるんだ?
ミュータブルが気に入らないならhaskellおすすめ
332デフォルトの名無しさん
2017/11/29(水) 22:01:09.26ID:pXSSowmn Readした結果はmutableでいいのにlet mutと書かなければならんの面倒
人によってはletで再宣言するのかな
人によってはletで再宣言するのかな
333デフォルトの名無しさん
2017/11/30(木) 01:36:34.69ID:zpCxrqzF 例えばさ
mutな変数1つ宣言してそこに足し上げていくのと、
非mutな計算結果同士を足して新しい非mutな計算結果を作るのと
素朴に考えれば前者の方が省リソースだよな
別にその程度コンパイラの最適化やレジスタ割り当てでどうとでもなるだろうとも思うが
mutな変数1つ宣言してそこに足し上げていくのと、
非mutな計算結果同士を足して新しい非mutな計算結果を作るのと
素朴に考えれば前者の方が省リソースだよな
別にその程度コンパイラの最適化やレジスタ割り当てでどうとでもなるだろうとも思うが
334デフォルトの名無しさん
2017/11/30(木) 02:16:29.28ID:ypA28Khv https://qiita.com/koji_mats/items/62e85a87cc580e225796
これ見たんだけど、なんでwinがlet mut winじゃないんだろうって不思議に思った。
let win = gtk::ApplicationWindow::new(&app);
win.set_title("Vanilla Text");
で、コードを調べてみたら、こんな感じにFFIを呼んでるだけだから、
概念的にはオブジェクトを変更してるけどRust的にはmutが要らないという仕組みらしい。
ちょっと違和感無い?
fn set_title(&self, title: &str) {
unsafe {
ffi::gtk_window_set_title(self.to_glib_none().0, title.to_glib_none().0);
}
}
これ見たんだけど、なんでwinがlet mut winじゃないんだろうって不思議に思った。
let win = gtk::ApplicationWindow::new(&app);
win.set_title("Vanilla Text");
で、コードを調べてみたら、こんな感じにFFIを呼んでるだけだから、
概念的にはオブジェクトを変更してるけどRust的にはmutが要らないという仕組みらしい。
ちょっと違和感無い?
fn set_title(&self, title: &str) {
unsafe {
ffi::gtk_window_set_title(self.to_glib_none().0, title.to_glib_none().0);
}
}
335デフォルトの名無しさん
2017/11/30(木) 02:51:13.41ID:AHSKxIeg ポインタの先がどう変更されようが、ポインタを持ってるだけの側は不変。
336デフォルトの名無しさん
2017/11/30(木) 03:27:18.42ID:NyMSxVXi gtkはgoのほうが簡単
337デフォルトの名無しさん
2017/11/30(木) 07:37:17.88ID:YOUdxrbO Cellもしらんのか
338デフォルトの名無しさん
2017/11/30(木) 13:33:26.57ID:2d5TEUTF Rust的な設計の指針というかコツみたいのって無いですかね…
勉強のつもりで外部のCのライブラリとの間に入るちっちゃなFFIのラッパーを書いてみたんですが、Cの感覚で書く->コンパイラに怒られてあーなるほど修正ってのを繰り返してとりあえずは動くようになったんだけど
何をするにも
let foo = xxx ;
{
let bar = foo.xxx() ;
bar.yyy() ;
}
{
let baz = foo.zzz() ;
baz.www() ;
}
{
let bar = foo.xxx() ;
bar.yyy() ;
}
みたいに書かないといけなくて書いた本人でも「何やねんこのウンコ!」ってなってる(´・ω・`)
(Rustがって意味じゃなくて自分の書いたものがって意味で)
勉強のつもりで外部のCのライブラリとの間に入るちっちゃなFFIのラッパーを書いてみたんですが、Cの感覚で書く->コンパイラに怒られてあーなるほど修正ってのを繰り返してとりあえずは動くようになったんだけど
何をするにも
let foo = xxx ;
{
let bar = foo.xxx() ;
bar.yyy() ;
}
{
let baz = foo.zzz() ;
baz.www() ;
}
{
let bar = foo.xxx() ;
bar.yyy() ;
}
みたいに書かないといけなくて書いた本人でも「何やねんこのウンコ!」ってなってる(´・ω・`)
(Rustがって意味じゃなくて自分の書いたものがって意味で)
339デフォルトの名無しさん
2017/11/30(木) 15:21:22.37ID:AHSKxIeg どんなエラー出してそんな醜いコード書いてるのかを説明してくれないと。
340デフォルトの名無しさん
2017/11/30(木) 19:20:57.05ID:dqSyxXgg >>338
RustがRustで書かれてるのだからRustのリポジトリのコードを読んで参考にすれば勉強になるのでは?
https://github.com/rust-lang/rust/search?l=rust
RustがRustで書かれてるのだからRustのリポジトリのコードを読んで参考にすれば勉強になるのでは?
https://github.com/rust-lang/rust/search?l=rust
341デフォルトの名無しさん
2017/11/30(木) 19:27:22.21ID:uu2PxLG/342デフォルトの名無しさん
2017/12/01(金) 00:02:21.38ID:9zBEgLMI Rustに限らず他言語で書かれたライブラリを利用するときは呼び出し元言語の作法に適合するように改修しないと使いにくいことが多いような
343デフォルトの名無しさん
2017/12/01(金) 00:53:10.98ID:+mBQRpP6344デフォルトの名無しさん
2017/12/01(金) 18:20:32.47ID:MEq6f57k >>338 見た感じFoo::xxx : &mut Self -> BarとかFoo::zzz: &mut Self -> bazとなっているのでbarやbazが生きてるとfooにアクセスできないのが直近の原因だと思うけど、
xxxやzzzが本当にFooの変更を伴わないといけないのかを考えないといけない
CellやRefCellを使ってinterior mutabilityを導入したらFoo::xxx: &Self -> Barというメソッドにできる可能性がある
まあ実際のソースがどんなもんなのか知らないから適当だけど
xxxやzzzが本当にFooの変更を伴わないといけないのかを考えないといけない
CellやRefCellを使ってinterior mutabilityを導入したらFoo::xxx: &Self -> Barというメソッドにできる可能性がある
まあ実際のソースがどんなもんなのか知らないから適当だけど
345デフォルトの名無しさん
2017/12/02(土) 18:50:17.68ID:LUcOy7p3346デフォルトの名無しさん
2017/12/02(土) 19:17:25.64ID:XMmE+FVV トーキョー、サムライ、ハラキリ、ゲイシャ!
347デフォルトの名無しさん
2017/12/02(土) 21:21:37.22ID:nhUA9ni6 >>345
公式Twitterアカウントをフォローしてみれば、リツイートに含まれるアニメ画像の多さで分かるだろ
公式Twitterアカウントをフォローしてみれば、リツイートに含まれるアニメ画像の多さで分かるだろ
348デフォルトの名無しさん
2017/12/02(土) 21:26:24.08 ジャパニメーション
349デフォルトの名無しさん
2017/12/02(土) 23:06:36.11ID:LUcOy7p3 プログラマ=アニメオタクの構図は海外でもデフォか
350デフォルトの名無しさん
2017/12/02(土) 23:25:28.54ID:IvGxcnlE アニメに限らずエンジニアのオタク率は高い
351デフォルトの名無しさん
2017/12/03(日) 02:23:51.05ID:o8sHMMD+ そもそもエンジニアの時点でPCオタみたいなもんだろ
352デフォルトの名無しさん
2017/12/03(日) 15:14:02.84ID:nF9LHZwo 標準ライブラリAPIリファレンス見てるけど難しいなぁ。
353デフォルトの名無しさん
2017/12/04(月) 20:49:12.68ID:Guj0xD4V map: HashMap<String, usize>をメンバーに持つ構造体Fooを作りHashMap::getをラップするメソッドを定義したいんだけど、
型表記をどう書けばStringとstrの両方を受け取れるようになれるの?
型表記をどう書けばStringとstrの両方を受け取れるようになれるの?
354デフォルトの名無しさん
2017/12/04(月) 20:51:25.15ID:Guj0xD4V 自己解決。AsRef<str>を使えば良かった
355デフォルトの名無しさん
2017/12/05(火) 00:26:24.15ID:9T1+J47W panic!で終わらすのでなくErr()を返してエラー時の挙動は呼び出し側に任せる・・・?
356デフォルトの名無しさん
2017/12/05(火) 01:46:51.82ID:Z65eXqg0 get で使うなら AsRef じゃなくて Borrow
357デフォルトの名無しさん
2017/12/05(火) 08:09:29.16ID:qtUVw02h >>356 こういうことかhttps://play.rust-lang.org/?gist=2b7d7c7aa544cc2dde43c2aa06533c87&version=stable
こんなの行けるんだな。doc見てもよう分からんかったありがとう
こんなの行けるんだな。doc見てもよう分からんかったありがとう
358デフォルトの名無しさん
2017/12/05(火) 09:27:16.18ID:hHacdpPt Mercurialも、Python/CからRust/Pythonに切り替えるのか
> Python is also hindering us because it is a dynamic programming language.
> Python is also hindering us because it is a dynamic programming language.
359デフォルトの名無しさん
2017/12/05(火) 18:20:02.95ID:zRXsR4tV360デフォルトの名無しさん
2017/12/05(火) 18:38:54.65ID:lkNfeWcr >>358
なんでそれでpython残すんだ?
なんでそれでpython残すんだ?
361デフォルトの名無しさん
2017/12/05(火) 19:47:27.34ID:qtUVw02h https://www.reddit.com/r/programming/comments/7hesom/mercurial_oxidation_plan/
・hg本体がpythonなんで起動時のラグが気になる、特にスクリプトからhg呼び出す場合に重いからネイティブにしたい
・python2.7のGILのおかげで高速化のための並列化が面倒
・メモリ安全と並列化をCや古めのC++でやるのはキツい
何故まずpython3に移行しないのかは分からんかった。Rustで書き直すより先にやった方がいいんじゃないかと
・hg本体がpythonなんで起動時のラグが気になる、特にスクリプトからhg呼び出す場合に重いからネイティブにしたい
・python2.7のGILのおかげで高速化のための並列化が面倒
・メモリ安全と並列化をCや古めのC++でやるのはキツい
何故まずpython3に移行しないのかは分からんかった。Rustで書き直すより先にやった方がいいんじゃないかと
362デフォルトの名無しさん
2017/12/05(火) 20:16:52.30ID:Z65eXqg0 > For Mercurial, Rust is all around a better C.
> It is much safer, about the same speed, and has a usable standard library and modules system for easily pulling in 3rd party code.
>>359みたいな基地外君発狂しそう。
> It is much safer, about the same speed, and has a usable standard library and modules system for easily pulling in 3rd party code.
>>359みたいな基地外君発狂しそう。
363デフォルトの名無しさん
2017/12/05(火) 21:03:22.04ID:zRXsR4tV ソースはRedditwwwwwwwww
ソースは2chよりひでえwwwwwwwwwwww
ソースは2chよりひでえwwwwwwwwwwww
364デフォルトの名無しさん
2017/12/05(火) 21:16:31.60ID:qtUVw02h 一次情報はmercurial oxideなんだけどこれが公式mercurialとどんな関係があるかがRedditのスレで言及されてるんだが
モジカス連呼基地外君は発狂中だとurlしか読めないのね
モジカス連呼基地外君は発狂中だとurlしか読めないのね
365デフォルトの名無しさん
2017/12/05(火) 21:18:53.28ID:gT8tzSz1 >>360
mercurialにpythonで書かれた拡張機能がいっぱいあるからだろうかね
mercurialにpythonで書かれた拡張機能がいっぱいあるからだろうかね
366デフォルトの名無しさん
2017/12/05(火) 21:42:01.40ID:4Jhqan/B HN見ないんだ?https://www.mercurial-scm.org/wiki/OxidationPlan#
ていうかモジカス君固定ハンドルつけてくれない?名声もつくよ
ていうかモジカス君固定ハンドルつけてくれない?名声もつくよ
367デフォルトの名無しさん
2017/12/05(火) 22:45:09.30ID:H7tXCLyD 言語が錆でプロダクト名が水銀だから、プロジェクト名が酸化ってのもうまいことつけたな
Python3化を優先しないのは、斜め読みした感じだと「hgコマンドをPythonスクリプトから(必要に応じてPythonインタプリタを埋め込んだ)バイナリにしたい」ってあったから、順番的には確かにそっちは後だな
Python3化を優先しないのは、斜め読みした感じだと「hgコマンドをPythonスクリプトから(必要に応じてPythonインタプリタを埋め込んだ)バイナリにしたい」ってあったから、順番的には確かにそっちは後だな
368デフォルトの名無しさん
2017/12/05(火) 22:52:10.21ID:H7tXCLyD あとは、GILの性能自体はPython3で向上したとはいえ、GILそのものがなくなった訳ではないから、
それで得られる速度向上は並列化と比べてたいしたことないってのもあるんじゃね?
あとPython3はそもそも単純なベンチでは2より遅かった気がする
それで得られる速度向上は並列化と比べてたいしたことないってのもあるんじゃね?
あとPython3はそもそも単純なベンチでは2より遅かった気がする
369デフォルトの名無しさん
2017/12/06(水) 00:11:41.11ID:aEHwTVhz なるほどね。
個人的にはgitよりmercurialに頑張ってほしい
個人的にはgitよりmercurialに頑張ってほしい
370デフォルトの名無しさん
2017/12/06(水) 01:15:02.87ID:6LacDPiL VCSは自身の機能や性能も大事だけどそれを使った開発プロセスの整備と提示が大切なんだなあとgithub見て思う
pijulにはちょっと期待してる
pijulにはちょっと期待してる
371デフォルトの名無しさん
2017/12/06(水) 03:56:18.90ID:sNDBG4Pk 公式がマジで言ってんのかこれ。多分gitに負け続けて資金調達のためにモジラに泣きついた感じか。そこまで落ちぶれてたんか
けどまあwikiの他のNewFeature見てみた限り放置も多いみたいだし、これもそのまま忘れ去られる系だな
けどまあwikiの他のNewFeature見てみた限り放置も多いみたいだし、これもそのまま忘れ去られる系だな
372デフォルトの名無しさん
2017/12/06(水) 08:49:40.91ID:7Z4PG9ak 資金調達のためにモジラに泣きついた感じかキリッ
373デフォルトの名無しさん
2017/12/06(水) 09:15:41.98ID:o9r2lFwR Rustで大きなプログラムは書けない
→Firefoxにしか使われない
→Mozilla以外はまともなプロダクトでは使われない
→負け組プロジェクトしか使われない
進化を楽しみにしてるぞ
→Firefoxにしか使われない
→Mozilla以外はまともなプロダクトでは使われない
→負け組プロジェクトしか使われない
進化を楽しみにしてるぞ
374デフォルトの名無しさん
2017/12/06(水) 09:25:54.43ID:J6ceqlJH >>373
上から目線で言ってるけど無能そう
上から目線で言ってるけど無能そう
375デフォルトの名無しさん
2017/12/06(水) 09:28:53.95ID:dVNrL5aP 効いてるやん
376デフォルトの名無しさん
2017/12/06(水) 11:24:37.38ID:g4tVD/U6 374 自体も上から目線でワロタ
377デフォルトの名無しさん
2017/12/06(水) 11:48:39.53ID:F7bxA/jW 5chでマウント取りは当たり前だからな
378デフォルトの名無しさん
2017/12/06(水) 13:03:02.39ID:C/GcjX4C コンパイル通せない事がそこまで彼のプライドを傷つけるとは……
コンパイルエラーが発生したときに、自動で「大変申し訳ありませんが、」の文字列を追加表示する
コンパイラプラグインを誰か開発すべき
コンパイルエラーが発生したときに、自動で「大変申し訳ありませんが、」の文字列を追加表示する
コンパイラプラグインを誰か開発すべき
379デフォルトの名無しさん
2017/12/06(水) 17:33:11.66ID:Zd+Z66A3 Rustつかって書き直すなんて、言うだけはタダだし、言ったことでモジラから金がもらえるなら言うだろうね、落ち目のプロジェクトなら
個人的にはgitより好みだったけどな
そもそも言語変えて書き直すとか非現実的なことできると思ってんのお前ら
チャットワークは記憶に新しいぞ
個人的にはgitより好みだったけどな
そもそも言語変えて書き直すとか非現実的なことできると思ってんのお前ら
チャットワークは記憶に新しいぞ
380デフォルトの名無しさん
2017/12/06(水) 17:35:26.67ID:mFCLg4Qg モジラから金がもらえる(キリッ
381デフォルトの名無しさん
2017/12/06(水) 18:02:57.09ID:CoVGsVpS いい加減コテつけろガイジ
382デフォルトの名無しさん
2017/12/06(水) 19:19:06.35ID:enrVe2xz rust ならこういう問題は解決できんの?
https://qiita.com/i_yudai/items/3336a503079ac5749c35
https://qiita.com/i_yudai/items/3336a503079ac5749c35
383デフォルトの名無しさん
2017/12/06(水) 19:34:24.15ID:LlbO+WJR それを解決できるのはスレッドの類をGC対象にできる言語のみだろう
Ponyはできたような気がする
Ponyはできたような気がする
384デフォルトの名無しさん
2017/12/07(木) 11:46:55.50ID:4fQhnjSw ponyってあれか。スポンサー企業が一抜けしたやつか
385デフォルトの名無しさん
2017/12/07(木) 16:49:06.35ID:e6grhN6X これからやるのにGUIでいいプログラム言語教えてください。Microsoftは無しで。
386デフォルトの名無しさん
2017/12/07(木) 17:14:54.82ID:3Pu9MQ/V なんでこのスレで聞く?
Java
Java
387デフォルトの名無しさん
2017/12/07(木) 18:42:24.96ID:wb2m4Sd2 >>385
おじいちゃん、GUIはブラウザってきまったでしょ?
おじいちゃん、GUIはブラウザってきまったでしょ?
388デフォルトの名無しさん
2017/12/07(木) 18:57:24.40ID:DAqiucIC 実際マジで綺麗なGUI作ろうと思ったらブラウザ使った方が良かったりするからなあ
wasm/WebGLのみターゲットにしたGUIツールキットcrateを作る人も出てくるんじゃないかね
wasm/WebGLのみターゲットにしたGUIツールキットcrateを作る人も出てくるんじゃないかね
389デフォルトの名無しさん
2017/12/07(木) 19:10:54.37ID:aNywij93 VueとかReactが便利すぎる
390デフォルトの名無しさん
2017/12/07(木) 20:40:39.18ID:hv/QEVwp 簡易なもんつくるなら react をてきとうにいじるのが一番覚えること少ない気がする。
391デフォルトの名無しさん
2017/12/07(木) 20:40:53.05ID:Hyaivhp0 wasmって使えるのcoreライブラリだけ?
392デフォルトの名無しさん
2017/12/07(木) 21:20:46.84ID:7uR0ShQv しばらくreact+reduxやってから久しぶりにC#に触ったらやっぱり.NET楽だと思ったわ。
Webアプリ前提ならReact一択でいいけど、スタンドアロンでいいならわざわざ選ばんなぁ。
Webアプリ前提ならReact一択でいいけど、スタンドアロンでいいならわざわざ選ばんなぁ。
393デフォルトの名無しさん
2017/12/07(木) 22:04:12.67ID:hv/QEVwp .NET は何がどう依存してるかわかりずらくてデプロイするのが面倒じゃん。
394デフォルトの名無しさん
2017/12/08(金) 18:13:41.90ID:wmniiGfA Rustは何がどう依存してるかわかりずらくてプログラミングするのが不可能じゃん。
395デフォルトの名無しさん
2017/12/08(金) 19:09:50.20ID:eb9UBXrx >>394
よ、クソモジラ君
よ、クソモジラ君
396デフォルトの名無しさん
2017/12/08(金) 21:32:53.09ID:Zo2thUux397デフォルトの名無しさん
2017/12/08(金) 22:30:24.09ID:4nIOqmyr398デフォルトの名無しさん
2017/12/08(金) 23:14:50.34ID:tq7RAj6Q rust使う前に日本語を正しく習得しないとな
399デフォルトの名無しさん
2017/12/09(土) 00:27:43.89 英語やった方がいいと思う
400デフォルトの名無しさん
2017/12/09(土) 05:14:49.50ID:GA23pAhd https://rust-lang-ja.github.io/the-rust-programming-language-ja/1.6/book/dining-philosophers.html
このArcってやつはマルチスレッド以外でも使ったりします?
このArcってやつはマルチスレッド以外でも使ったりします?
401デフォルトの名無しさん
2017/12/09(土) 10:29:41.27ID:YwIpfF9w 日本語マニュアルなんてあるんだな。
相当本気なんだなRust。
Swiftなんて公式は未だに英語だけだぞ。
相当本気なんだなRust。
Swiftなんて公式は未だに英語だけだぞ。
402デフォルトの名無しさん
2017/12/09(土) 10:59:59.55ID:XSUSRhS+ 日本語のやつは1.9時代のやつな?
403デフォルトの名無しさん
2017/12/11(月) 22:26:30.27ID:6IPQBxXz そういえばPEZYが自分とこのcpuでrust動かしてたな。
404デフォルトの名無しさん
2017/12/11(月) 22:32:24.37ID:s6/Bk6Rt405デフォルトの名無しさん
2017/12/12(火) 13:19:02.69ID:wxlBGx5A Cの代替として使ってるみたいだけど、mutとかunsafeとかめんどくさすぎて話しにならないな
406デフォルトの名無しさん
2017/12/12(火) 18:14:51.93ID:x1rOBdPo407デフォルトの名無しさん
2017/12/12(火) 19:44:02.91ID:r7OHvt42 RustはSmallTalkと並び称されるべき言語
Rustは死んでも血脈は残り続けるだろう
Rustは死んでも血脈は残り続けるだろう
408デフォルトの名無しさん
2017/12/12(火) 19:50:08.37ID:guPPPE2T 死ぬのは決まってるのかよ草
409デフォルトの名無しさん
2017/12/12(火) 19:50:40.56ID:r7OHvt42410デフォルトの名無しさん
2017/12/12(火) 19:53:48.14ID:QKUZj3QB プログラミングに限らず安全はタダで得られるはずがないのだが理解出来ない日本人は多い
411デフォルトの名無しさん
2017/12/12(火) 20:36:13.29ID:jqGL6fhm >>406
なぜRustの苦手分野で語ろうとするのか?
これはJava等の高級言語では絶対に出来ないこともRustなら不格好にはなるものの
可能だということを示しているのであってRustで書いた全てのコードがこうなるわけではない。
低級なことをするときはこういう書き方が必要になるというだけだ。
Rustのいいところは低級なところをすべてunsafeでラップすることで、
それより上位層のコードに低級な部分を持ち込まなくて済むようになることだ。
そして、Rustの最大の特徴は高度な型システムとゼロコスト抽象化等の機能であり、
C++, Java以上の賢い抽象化の仕組みを実現しつつC++並みの実行速度で実現できる点である。
unsafeに関しては、あくまでC++の後継を狙っているので低級なコードを書く手段も用意しているというだけに過ぎない。
CやC++にRust程の抽象化や型安全、メモリ安全を保証する機能はあるだろうか?
「そうまでして安全性や抽象化を追求する必要があるのか?」と問われればそれは作るシステムや個人の趣向にもよるだろう。
欲しいと思う人もいるし、それはやりすぎだと思う人もいる。
Rustが苦手としている部分をとりあげて「ほらダメじゃん」とか言われても、
「Rustの得意なところじゃないんだから当たり前じゃん」としか言えない。
要約して一言で言うならば「論点がずれている」。
以上だ。何か反論はあるか?
長文失礼した。
なぜRustの苦手分野で語ろうとするのか?
これはJava等の高級言語では絶対に出来ないこともRustなら不格好にはなるものの
可能だということを示しているのであってRustで書いた全てのコードがこうなるわけではない。
低級なことをするときはこういう書き方が必要になるというだけだ。
Rustのいいところは低級なところをすべてunsafeでラップすることで、
それより上位層のコードに低級な部分を持ち込まなくて済むようになることだ。
そして、Rustの最大の特徴は高度な型システムとゼロコスト抽象化等の機能であり、
C++, Java以上の賢い抽象化の仕組みを実現しつつC++並みの実行速度で実現できる点である。
unsafeに関しては、あくまでC++の後継を狙っているので低級なコードを書く手段も用意しているというだけに過ぎない。
CやC++にRust程の抽象化や型安全、メモリ安全を保証する機能はあるだろうか?
「そうまでして安全性や抽象化を追求する必要があるのか?」と問われればそれは作るシステムや個人の趣向にもよるだろう。
欲しいと思う人もいるし、それはやりすぎだと思う人もいる。
Rustが苦手としている部分をとりあげて「ほらダメじゃん」とか言われても、
「Rustの得意なところじゃないんだから当たり前じゃん」としか言えない。
要約して一言で言うならば「論点がずれている」。
以上だ。何か反論はあるか?
長文失礼した。
412デフォルトの名無しさん
2017/12/12(火) 20:49:42.49ID:r7OHvt42 ようわからん
unsafeでくるまれたところでデータ変な風にいじくられたら
結局上までおかしくなるんじゃないの?
unsafeでくるまれたところでデータ変な風にいじくられたら
結局上までおかしくなるんじゃないの?
413デフォルトの名無しさん
2017/12/12(火) 20:57:21.36ID:yKSYAIcd こういうの読む度にやっぱ大物専用だよなあと思う
414デフォルトの名無しさん
2017/12/12(火) 21:00:36.03ID:gOiBnq4b >>412
要件に合わせて方式選択できて、必要であればその範囲を狭めることができるのがメリットでは?
要件に合わせて方式選択できて、必要であればその範囲を狭めることができるのがメリットでは?
415デフォルトの名無しさん
2017/12/12(火) 21:07:19.45ID:x1rOBdPo416デフォルトの名無しさん
2017/12/12(火) 21:13:22.11ID:x1rOBdPo モジラも一緒に逮捕されればよかったのに
417デフォルトの名無しさん
2017/12/12(火) 22:02:32.80ID:WKBp9cNB 404みたいに新しいCPUに移植して特殊な命令使うような話なら
C言語でもインラインアセンブラ使ったりするしかなかろう
C言語でもインラインアセンブラ使ったりするしかなかろう
418デフォルトの名無しさん
2017/12/12(火) 23:28:17.37ID:WIgA/FGZ >>412
別に上でおかしくならないことを保証してくれるとかではないよ。
単にメモリ保護違反とかが起こるなら必ずunsafe内で起こるってだけ。
それでもプログラム全域のどこで起こるか分からないCとかよりはましだろうってことかと。
別に上でおかしくならないことを保証してくれるとかではないよ。
単にメモリ保護違反とかが起こるなら必ずunsafe内で起こるってだけ。
それでもプログラム全域のどこで起こるか分からないCとかよりはましだろうってことかと。
419デフォルトの名無しさん
2017/12/12(火) 23:46:23.16ID:w89eybus >>411
rustのセールストークを真に受けちゃった人にしか見えない。
rustのセールストークを真に受けちゃった人にしか見えない。
420デフォルトの名無しさん
2017/12/13(水) 01:26:07.39ID:ppLrkL+I >ゼロコスト抽象化
実際にはzero-costじゃなくてzero-overheadだよなrustって。
わかりづらいけど正当なコストはちゃんと払ってるし。
ところで、javaのクソ翻訳にauto boxing and unboxingを「ボックス化」と訳す
トンデモ訳が蔓延してるんだけど、リージョンでメモリ管理するrustだと
正真正銘のboxed valueがあって、この訳が「ボックス化」だから逆に紛らわしい。
実際にはzero-costじゃなくてzero-overheadだよなrustって。
わかりづらいけど正当なコストはちゃんと払ってるし。
ところで、javaのクソ翻訳にauto boxing and unboxingを「ボックス化」と訳す
トンデモ訳が蔓延してるんだけど、リージョンでメモリ管理するrustだと
正真正銘のboxed valueがあって、この訳が「ボックス化」だから逆に紛らわしい。
421デフォルトの名無しさん
2017/12/13(水) 02:03:31.96ID:SOXPTBso で、結局はRustはbetter C++なの?
422デフォルトの名無しさん
2017/12/13(水) 02:04:22.47ID:8wpVTjy4 Javaの方が先にあるのに後発が正真正銘だとかどういう了見だよ
423デフォルトの名無しさん
2017/12/13(水) 05:05:47.72 >>416
Haskellマスターtanakhが逮捕されたと誤解を招く書き方辞めろ
Haskellマスターtanakhが逮捕されたと誤解を招く書き方辞めろ
424デフォルトの名無しさん
2017/12/13(水) 06:22:58.05ID:4b7agDte 宣伝文句としてはbetter C++だけど、実際の使用例はbetter Cが多い
425デフォルトの名無しさん
2017/12/13(水) 08:01:26.38ID:fAEH4Erl 既成ライブラリの中でメモリ保護例外を吐いた経験がある人ならRustのありがたみが判るはず
マルチスレッドアプリケーションでトレースバックが参考にならないような状態だともう泥縄
マルチスレッドアプリケーションでトレースバックが参考にならないような状態だともう泥縄
426デフォルトの名無しさん
2017/12/13(水) 11:51:23.28ID:ctCEo+oJ そんなコードが散乱してる現場でrustのボローイングに関して
まともに対応できるとは思えんが。
まともに対応できるとは思えんが。
427デフォルトの名無しさん
2017/12/13(水) 11:56:02.61ID:SyEPusRz よしんばあったとして、Rustに頼るのは間違ってるだろ
不運続きの人間がカルトにはまるようなもんだ
不運続きの人間がカルトにはまるようなもんだ
428デフォルトの名無しさん
2017/12/13(水) 17:17:09.03ID:wA2gfXD8 ここの人たちはまじでレベル低いよね
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- ミス・ユニバース フィンランド代表の「つり目」写真が波紋… 本人釈明も批判やまず 協会謝罪「徹底的に検証」へ [冬月記者★]
- 自民・麻生太郎副総裁 石破政権の1年は「どよーん」 高市政権発足で「何となく明るくなった」「世の中のことが決まり動いている」★2 [Hitzeschleier★]
- 【おこめ券】鈴木憲和農相 小泉前農相の備蓄米放出を“反省”「備蓄の円滑な運営を図ってまいります」 [Hitzeschleier★]
- 1人3千円の食品高騰対策、何に使える? あいまいなまま衆院通過 [蚤の市★]
- ゆたぼん 二重手術を報告「めちゃくちゃ気に入っています」 [muffin★]
- 【山形】クマ駆除で誤射した猟友会隊員に町が1663万円請求へ...弾当たり男性大けが2023年 小国町 [nita★]
- トランプ、G7に代わるcore 5を発表 [805596214]
- ローソン セブン ファミマ どこ行くべき?
- 【悲報】新米、全く売れなくて倉庫が満杯になってしまうwwwwwwwwwwwwwwwwwwww [802034645]
- 中国人、ガチ超正論。「日本人がアイヌに対してやったことを『問題ない』とするなら、中国が日本人に同じことをしても文句ないだろう?」 [314039747]
- 木曜日のんなっしょい❗(・o・🍬)仕放題スレ🏡
- 【悲報】日本共産党、ツイッター速報にブチギレ法的措置WWWWWWWWWWWWWWWWWWWWWWWWWWWW [935793931]
