プログラミング言語 Rust 4

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2017/10/14(土) 17:38:14.04ID:uWD69LeP
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/
2017/12/05(火) 08:09:29.16ID:qtUVw02h
>>356 こういうことかhttps://play.rust-lang.org/?gist=2b7d7c7aa544cc2dde43c2aa06533c87&;version=stable
こんなの行けるんだな。doc見てもよう分からんかったありがとう
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.
2017/12/05(火) 18:20:02.95ID:zRXsR4tV
>>358
ソースどこだよデマ乙
歴史あるVCSがRustみたいなゴミつかうわけねえだろ
2017/12/05(火) 18:38:54.65ID:lkNfeWcr
>>358
なんでそれでpython残すんだ?
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で書き直すより先にやった方がいいんじゃないかと
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みたいな基地外君発狂しそう。
2017/12/05(火) 21:03:22.04ID:zRXsR4tV
ソースはRedditwwwwwwwww
ソースは2chよりひでえwwwwwwwwwwww
2017/12/05(火) 21:16:31.60ID:qtUVw02h
一次情報はmercurial oxideなんだけどこれが公式mercurialとどんな関係があるかがRedditのスレで言及されてるんだが
モジカス連呼基地外君は発狂中だとurlしか読めないのね
2017/12/05(火) 21:18:53.28ID:gT8tzSz1
>>360
mercurialにpythonで書かれた拡張機能がいっぱいあるからだろうかね
2017/12/05(火) 21:42:01.40ID:4Jhqan/B
HN見ないんだ?https://www.mercurial-scm.org/wiki/OxidationPlan#
ていうかモジカス君固定ハンドルつけてくれない?名声もつくよ
2017/12/05(火) 22:45:09.30ID:H7tXCLyD
言語が錆でプロダクト名が水銀だから、プロジェクト名が酸化ってのもうまいことつけたな
Python3化を優先しないのは、斜め読みした感じだと「hgコマンドをPythonスクリプトから(必要に応じてPythonインタプリタを埋め込んだ)バイナリにしたい」ってあったから、順番的には確かにそっちは後だな
2017/12/05(火) 22:52:10.21ID:H7tXCLyD
あとは、GILの性能自体はPython3で向上したとはいえ、GILそのものがなくなった訳ではないから、
それで得られる速度向上は並列化と比べてたいしたことないってのもあるんじゃね?

あとPython3はそもそも単純なベンチでは2より遅かった気がする
369デフォルトの名無しさん
垢版 |
2017/12/06(水) 00:11:41.11ID:aEHwTVhz
なるほどね。
個人的にはgitよりmercurialに頑張ってほしい
2017/12/06(水) 01:15:02.87ID:6LacDPiL
VCSは自身の機能や性能も大事だけどそれを使った開発プロセスの整備と提示が大切なんだなあとgithub見て思う
pijulにはちょっと期待してる
2017/12/06(水) 03:56:18.90ID:sNDBG4Pk
公式がマジで言ってんのかこれ。多分gitに負け続けて資金調達のためにモジラに泣きついた感じか。そこまで落ちぶれてたんか
けどまあwikiの他のNewFeature見てみた限り放置も多いみたいだし、これもそのまま忘れ去られる系だな
2017/12/06(水) 08:49:40.91ID:7Z4PG9ak
資金調達のためにモジラに泣きついた感じかキリッ
2017/12/06(水) 09:15:41.98ID:o9r2lFwR
Rustで大きなプログラムは書けない
→Firefoxにしか使われない
→Mozilla以外はまともなプロダクトでは使われない
→負け組プロジェクトしか使われない

進化を楽しみにしてるぞ
2017/12/06(水) 09:25:54.43ID:J6ceqlJH
>>373
上から目線で言ってるけど無能そう
2017/12/06(水) 09:28:53.95ID:dVNrL5aP
効いてるやん
2017/12/06(水) 11:24:37.38ID:g4tVD/U6
374 自体も上から目線でワロタ
2017/12/06(水) 11:48:39.53ID:F7bxA/jW
5chでマウント取りは当たり前だからな
2017/12/06(水) 13:03:02.39ID:C/GcjX4C
コンパイル通せない事がそこまで彼のプライドを傷つけるとは……

コンパイルエラーが発生したときに、自動で「大変申し訳ありませんが、」の文字列を追加表示する
コンパイラプラグインを誰か開発すべき
2017/12/06(水) 17:33:11.66ID:Zd+Z66A3
Rustつかって書き直すなんて、言うだけはタダだし、言ったことでモジラから金がもらえるなら言うだろうね、落ち目のプロジェクトなら
個人的にはgitより好みだったけどな

そもそも言語変えて書き直すとか非現実的なことできると思ってんのお前ら
チャットワークは記憶に新しいぞ
2017/12/06(水) 17:35:26.67ID:mFCLg4Qg
モジラから金がもらえる(キリッ
381デフォルトの名無しさん
垢版 |
2017/12/06(水) 18:02:57.09ID:CoVGsVpS
いい加減コテつけろガイジ
2017/12/06(水) 19:19:06.35ID:enrVe2xz
rust ならこういう問題は解決できんの?
https://qiita.com/i_yudai/items/3336a503079ac5749c35
2017/12/06(水) 19:34:24.15ID:LlbO+WJR
それを解決できるのはスレッドの類をGC対象にできる言語のみだろう
Ponyはできたような気がする
2017/12/07(木) 11:46:55.50ID:4fQhnjSw
ponyってあれか。スポンサー企業が一抜けしたやつか
385デフォルトの名無しさん
垢版 |
2017/12/07(木) 16:49:06.35ID:e6grhN6X
これからやるのにGUIでいいプログラム言語教えてください。Microsoftは無しで。
2017/12/07(木) 17:14:54.82ID:3Pu9MQ/V
なんでこのスレで聞く?
Java
2017/12/07(木) 18:42:24.96ID:wb2m4Sd2
>>385
おじいちゃん、GUIはブラウザってきまったでしょ?
2017/12/07(木) 18:57:24.40ID:DAqiucIC
実際マジで綺麗なGUI作ろうと思ったらブラウザ使った方が良かったりするからなあ
wasm/WebGLのみターゲットにしたGUIツールキットcrateを作る人も出てくるんじゃないかね
389デフォルトの名無しさん
垢版 |
2017/12/07(木) 19:10:54.37ID:aNywij93
VueとかReactが便利すぎる
2017/12/07(木) 20:40:39.18ID:hv/QEVwp
簡易なもんつくるなら react をてきとうにいじるのが一番覚えること少ない気がする。
2017/12/07(木) 20:40:53.05ID:Hyaivhp0
wasmって使えるのcoreライブラリだけ?
2017/12/07(木) 21:20:46.84ID:7uR0ShQv
しばらくreact+reduxやってから久しぶりにC#に触ったらやっぱり.NET楽だと思ったわ。
Webアプリ前提ならReact一択でいいけど、スタンドアロンでいいならわざわざ選ばんなぁ。
2017/12/07(木) 22:04:12.67ID:hv/QEVwp
.NET は何がどう依存してるかわかりずらくてデプロイするのが面倒じゃん。
2017/12/08(金) 18:13:41.90ID:wmniiGfA
Rustは何がどう依存してるかわかりずらくてプログラミングするのが不可能じゃん。
395デフォルトの名無しさん
垢版 |
2017/12/08(金) 19:09:50.20ID:eb9UBXrx
>>394
よ、クソモジラ君
2017/12/08(金) 21:32:53.09ID:Zo2thUux
>>394
> ずらく

お前はまず日本語を学ぼうな。
2017/12/08(金) 22:30:24.09ID:4nIOqmyr
>>393
>ずらく
ついでにお前もな
2017/12/08(金) 23:14:50.34ID:tq7RAj6Q
rust使う前に日本語を正しく習得しないとな
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ってやつはマルチスレッド以外でも使ったりします?
2017/12/09(土) 10:29:41.27ID:YwIpfF9w
日本語マニュアルなんてあるんだな。
相当本気なんだなRust。
Swiftなんて公式は未だに英語だけだぞ。
2017/12/09(土) 10:59:59.55ID:XSUSRhS+
日本語のやつは1.9時代のやつな?
2017/12/11(月) 22:26:30.27ID:6IPQBxXz
そういえばPEZYが自分とこのcpuでrust動かしてたな。
404デフォルトの名無しさん
垢版 |
2017/12/11(月) 22:32:24.37ID:s6/Bk6Rt
これ?
http://tanakh.jp/posts/2016-12-20-rust-pezy-sc.html
2017/12/12(火) 13:19:02.69ID:wxlBGx5A
Cの代替として使ってるみたいだけど、mutとかunsafeとかめんどくさすぎて話しにならないな
2017/12/12(火) 18:14:51.93ID:x1rOBdPo
やっぱRustは詐欺だな。詐欺会社同士モジラとは馬が合うんだろうな

普通の感覚持ってたら>>405と同じように使い物にならないって感想持てるよなあ
2017/12/12(火) 19:44:02.91ID:r7OHvt42
RustはSmallTalkと並び称されるべき言語
Rustは死んでも血脈は残り続けるだろう
2017/12/12(火) 19:50:08.37ID:guPPPE2T
死ぬのは決まってるのかよ草
2017/12/12(火) 19:50:40.56ID:r7OHvt42
>>405
主要部分丸々Unsafeにした挙句
インラインアセンブラを書いてやればいいですとか
なんでもなさそうに書いてあってわろw
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の得意なところじゃないんだから当たり前じゃん」としか言えない。
要約して一言で言うならば「論点がずれている」。

以上だ。何か反論はあるか?
長文失礼した。
2017/12/12(火) 20:49:42.49ID:r7OHvt42
ようわからん
unsafeでくるまれたところでデータ変な風にいじくられたら
結局上までおかしくなるんじゃないの?
2017/12/12(火) 20:57:21.36ID:yKSYAIcd
こういうの読む度にやっぱ大物専用だよなあと思う
2017/12/12(火) 21:00:36.03ID:gOiBnq4b
>>412
要件に合わせて方式選択できて、必要であればその範囲を狭めることができるのがメリットでは?
2017/12/12(火) 21:07:19.45ID:x1rOBdPo
>>411
詐欺師の長文は読むつもりもない
以上だ
2017/12/12(火) 21:13:22.11ID:x1rOBdPo
モジラも一緒に逮捕されればよかったのに
2017/12/12(火) 22:02:32.80ID:WKBp9cNB
404みたいに新しいCPUに移植して特殊な命令使うような話なら
C言語でもインラインアセンブラ使ったりするしかなかろう
2017/12/12(火) 23:28:17.37ID:WIgA/FGZ
>>412
別に上でおかしくならないことを保証してくれるとかではないよ。
単にメモリ保護違反とかが起こるなら必ずunsafe内で起こるってだけ。
それでもプログラム全域のどこで起こるか分からないCとかよりはましだろうってことかと。
2017/12/12(火) 23:46:23.16ID:w89eybus
>>411
rustのセールストークを真に受けちゃった人にしか見えない。
2017/12/13(水) 01:26:07.39ID:ppLrkL+I
>ゼロコスト抽象化
実際にはzero-costじゃなくてzero-overheadだよなrustって。
わかりづらいけど正当なコストはちゃんと払ってるし。

ところで、javaのクソ翻訳にauto boxing and unboxingを「ボックス化」と訳す
トンデモ訳が蔓延してるんだけど、リージョンでメモリ管理するrustだと
正真正銘のboxed valueがあって、この訳が「ボックス化」だから逆に紛らわしい。
2017/12/13(水) 02:03:31.96ID:SOXPTBso
で、結局はRustはbetter C++なの?
2017/12/13(水) 02:04:22.47ID:8wpVTjy4
Javaの方が先にあるのに後発が正真正銘だとかどういう了見だよ
2017/12/13(水) 05:05:47.72
>>416
Haskellマスターtanakhが逮捕されたと誤解を招く書き方辞めろ
2017/12/13(水) 06:22:58.05ID:4b7agDte
宣伝文句としてはbetter C++だけど、実際の使用例はbetter Cが多い
2017/12/13(水) 08:01:26.38ID:fAEH4Erl
既成ライブラリの中でメモリ保護例外を吐いた経験がある人ならRustのありがたみが判るはず
マルチスレッドアプリケーションでトレースバックが参考にならないような状態だともう泥縄
2017/12/13(水) 11:51:23.28ID:ctCEo+oJ
そんなコードが散乱してる現場でrustのボローイングに関して
まともに対応できるとは思えんが。
2017/12/13(水) 11:56:02.61ID:SyEPusRz
よしんばあったとして、Rustに頼るのは間違ってるだろ
不運続きの人間がカルトにはまるようなもんだ
2017/12/13(水) 17:17:09.03ID:wA2gfXD8
ここの人たちはまじでレベル低いよね
2017/12/13(水) 17:22:14.28ID:SrS6Tw/p
>>428
まあRustなんて有り難がってる時点でなあ
2017/12/13(水) 18:09:45.22ID:wA2gfXD8
>>429
いやそうじゃなくて、あんたみたいに知ったかぶってるやつが多い

そうじゃないのもいるけど
2017/12/13(水) 18:46:17.79ID:SrS6Tw/p
しったかぶってるか?

C(++)の後継うたってる割に、動くCコードの移植がチェッカーに阻まれて不可能
グラフのような自己再帰構造が書けない
そもそも開発元が悪名高いモジラで、言語機能の改善がまったくなされないのに何故か使ってると称する会社だけが謎のペースで増える(恐らく金が動いてる)
例のスパコン詐欺会社で運用されていたらしいという負の実績

事実並べただけでRustがいかにクソか分かるだろ
金が動いてる部分だけはソースないが他は全部ソースつきだ
2017/12/13(水) 19:01:44.96ID:lECrl9Kb
みんなランタイムエラーの方がコンパイルエラーより好きなわけ??
2017/12/13(水) 19:11:47.05ID:JQsIbvFA
んなこたないけどコンパイルエラー出なきゃいいっていう馬鹿が増えそうなのが心配。
434デフォルトの名無しさん
垢版 |
2017/12/13(水) 19:17:48.37ID:sjTFpswL
>>431
そのまま移植しようとしたらそりゃ難しいに決まってんだろ
435デフォルトの名無しさん
垢版 |
2017/12/13(水) 19:18:17.70ID:sjTFpswL
しかもあのスパコン会社技術力は確かに高いし
社長がうんこだっただけで
2017/12/13(水) 19:32:51.33ID:JQsIbvFA
これ見る限り、素直に c で書いた方が圧倒的に楽だろ。。
完全に話題集めのためだね。

ttp://tanakh.jp/posts/2016-12-20-rust-pezy-sc.html
2017/12/13(水) 19:36:42.74ID:lMuueXHh
まあ、アホほどいっぱい書き込むからそう見えるだけなんだけども。、
2017/12/13(水) 19:38:53.62ID:DaKrOXes
楽なのは書くことだけじゃん
439デフォルトの名無しさん
垢版 |
2017/12/13(水) 19:43:29.07ID:YreXArfE
[][][] [][][] [] [][][][] [][] [][][][][] [][] [][] [] [][][][][]
[] [][][][ [][][][][] [][ [][] [] [][][] [] [][][] []
[][][][] [] [] [][][][][][ [] [][][] [][] [][] []
2017/12/13(水) 19:49:19.41ID:1figGuPs
モジラ|提灯|信者|工作員|詐欺|ステマ
2017/12/13(水) 19:57:43.17ID:JQsIbvFA
>>437
dgemmみたいな行列演算をチューニングするとどうしてもああいうコードになるんだよ。
てか多分 c で書いたのを話題のために無理やりrustに書き換えたんだろうね。。
unsafeで囲むとかもうrustで書く意味ないだろそれ。。
2017/12/13(水) 20:18:14.75ID:4b7agDte
pezyの例には当てはまらないけど、Cに分けたモジュールリンクするぐらいなら、
unsafe丸囲みの方がビルドが単純になって意味がある。
2017/12/13(水) 20:31:13.73ID:lMuueXHh
ワッチョイつくまで加速していいよ
2017/12/13(水) 20:54:35.27ID:FrEBhkqx
この手のキチガイは荒らすことが目的だからワッチョイを付けてもいなくならないよ
445デフォルトの名無しさん
垢版 |
2017/12/13(水) 23:24:55.82ID:ovEDqqcU
unsafeで囲む意味が無いとかマジで言ってんの?
ここはunsafeだよって一目で分かる利点を理解していない?
2017/12/13(水) 23:32:58.46ID:HCqZ9sMc
NGしやすくなるだけでOK
2017/12/14(木) 00:04:22.83ID:huNKzx1I
ワッチョイもunsafeも同じように有用ってことだね
2017/12/14(木) 02:06:28.32ID:qcE0Inz8
ボローチェッカじゃなくてモジラに親を殺されたんだな、かわいそうに
悪名高きとか言われても知らんがな。悪い話もいい話も聞かんが
2017/12/14(木) 02:32:34.93ID:ImDQ9Tno
元々なんでか知らんがMozillaが嫌いだったところに、
コンパイル通すまでがちょっと難しい言語をリリースして、なんか世界的にそこそこバズって
それを自分で使えなかったことで、正気を保てる限界を越えた感じかね

突撃荒らしのバイタリティが妙に高いのも納得できる
2017/12/14(木) 02:36:48.61ID:ImDQ9Tno
>>445
例のブログみたいに、全部を囲ったらチェッカーの意味ないじゃんって話では
言語機能としてのunsafeの有用性は分かる

確かに全体をunsafeで囲うなら現状はまだCで書いた方がいいと思う
Rustからだけ使うなら難しい線だが
2017/12/14(木) 04:17:05.67ID:C5mtxm9E
unsafeブロック内のRustコンパイラによるチェックはCコンパイラに劣るということ?
2017/12/14(木) 04:41:03.96ID:FN0VuvQq
自前のstructのnewメソッドで外部crateのAWSクライアントを作って持たせて、インスタンスメソッドの中でそのクライアントを使いたいんだけど、
そのクライアントがgenerics使ってて実際に返ってくる型が分からない時にstructに持たせる方法ってないのかな

例えばこんな感じの。

[crate]
struct<A:Trait1, B:Trait2> Client<A, B>

[My code]
struct Hoge {
client: Client<?, ?>
}

ソース見たら更に別のバージョンが古めのcrateのモジュールがそこに入ってたりしてて、そうすると同じバージョンの依存crateをこっちでもexternして、それを自分のstructに書いたりしないといけないのかな?
2017/12/14(木) 13:12:01.23ID:+r9JdhqC
Hogeをgenericにしちゃいけないのか
2017/12/14(木) 15:01:05.06ID:FN0VuvQq
外から隠蔽したいかな
2017/12/14(木) 15:25:18.16ID:bx+g54aE
トレイトオブジェクトは?
2017/12/14(木) 15:37:10.49ID:FN0VuvQq
自分でラッパー的なトレイト作って該当の外部structに実装してbox化したら持てそうか
やってみる
■ このスレッドは過去ログ倉庫に格納されています