Rust Part5

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2018/02/11(日) 20:07:24.54ID:ri7dLd1B
Mozilla発のRust言語のスレ

公式
https://www.rust-lang.org/
https://blog.rust-lang.org/
https://github.com/rust-lang/rust

Web上の実行環境
https://play.rust-lang.org

前スレ
https://mevius.5ch.net/test/read.cgi/tech/1507970294/
2018/02/18(日) 15:07:59.73ID:yl4ANYcz
Rustはプログラミング言語未満というのは >>8 の意見だと思うけどプログラミング言語の定義が曖昧すぎて反論のしようがないしそれで勝利宣言されてもね
2018/02/18(日) 16:22:00.83ID:29WPmCUu
>>16
書いたらモジラからお給金出るでしょ

>>17
意味のあるプログラム書こうとしたら
とたんに借用とかでコンパイル通らなくなってまともにプログラミング出来ないものがプログラミング言語と言えるのか?
まあMalbolgeやBrainfuckがプログラミング言語と呼べるキ◎ガイならRustもプログラミング言語かもね
2018/02/18(日) 16:23:51.22ID:29WPmCUu
あとその人か反論記事消したのも
本当はRustが使い物にならないことを察してしまったけど
それを言うと信者に突撃されるからぼかして消しただけでしょ
表向きの理由で全消しするのは不自然だから
2018/02/18(日) 17:02:55.71ID:AoWf7oui
ほんそれ
2018/02/18(日) 17:24:33.90ID:rbmqjGBD
あぁ、Rustのネガキャンするとお給料がでるのか……
2018/02/18(日) 17:25:09.88ID:Cm7UHG2I
提灯記事書いてモジラからお金もらうにはどうしたらよいのですか?
2018/02/18(日) 17:41:48.25ID:oGsannLj
「俺がコンパイル通せるコード書けないからRustは糞」って主張で首尾一貫してるところはすごい
2018/02/18(日) 17:44:53.63ID:oGsannLj
それとも世のRustで書かれてるアプリケーションは実はすべて別の言語で書かれているという主張だろうか
2018/02/18(日) 17:45:28.72ID:oGsannLj
はたまたRustで書かれてるものはどんなものであれまともなものとは認めないかな
2018/02/18(日) 18:02:38.46ID:29WPmCUu
2番目が正解だな
2018/02/18(日) 18:06:09.75ID:29WPmCUu
オープンソースでRustで書かれてるやつも
なんとかコンパイルだけ通したような
保守性も何もない個人が脳トレで書いたようなものばかり
まともな製品として書かれたコードはGithubにも見つからなかったぞ

ソースコード公開してるものがそうなんだから
企業がRust使ってると称するなにかは実際にはRustなんて使っておらず
適当な別の言語で書いてRust使ってると言えばモジラから金が出る
そういう仕組みと考えるのが自然な訳だ
28デフォルトの名無しさん
垢版 |
2018/02/18(日) 18:36:35.71ID:MGQ/Ou+a
で、このアーカイブ記事に対する論理的な反論はできないと。
あと、GitHubのまともなコードが見つからなかったって点も
どの辺がまともじゃないのかについてはコードでは示せないと。
それで自分の言葉に説得力があると思ってるのが不思議でならないんだが。
あと、俺にも「モジラからお金もらう方法」を教えて。
ホントにもらえるんだったら絶対に反論記事書いてあげるから。
2018/02/18(日) 18:45:26.87ID:rbmqjGBD
ぐぇ crate uuid のインターフェースが換わりよった
ParseError が std::error::Error を impl しなくなったのは何故だ……
2018/02/18(日) 18:52:54.71ID:29WPmCUu
>>28
なんで取り下げられた記事に反論しないといけないの?
取り下げたってことは「この記事は間違いだった」というメッセージでしょ

モジラから金貰う方法とか俺に聞くなよ
モジラのページにある自称Rust使ってる企業に聞いてくれよ
2018/02/18(日) 18:54:29.18ID:29WPmCUu
>>29
な。Rustなんて使うからそうなる
一貫したインターフェースを提供することすらできん言語だ
2018/02/18(日) 18:59:05.94ID:XQEgm6DO
取り下げた理由も書いてあるのに読まずに決めてかかってるのほんとブレねぇな
2018/02/18(日) 19:01:18.09ID:yl4ANYcz
まともな製品という言い方もそうだけどまともかどうかの判断基準は「俺が気に入るかどうか」以上のものがあるように読みとれなかったので議論にならない
論理的な会話ができてないのはどちらなんだか
2018/02/18(日) 19:03:55.06ID:rbmqjGBD
>>31
レスしてもらったのはありがたいが
俺はお前さんから見ればRust信者だわ すまん

元よりどんな言語使ってもインターフェース変更はある
今回は、追従する作業に五分も掛からんかった
後はテスト流して終わり

インターフェースの変更が出来ないのを理由に
開発が鈍化されるよりマシだと思うよ
2018/02/18(日) 19:04:52.12ID:29WPmCUu
クソな例挙げようと思ったが挙げるまでもなく>>29が素晴らしい例を出してくれたな

Nimの人のブログにもあったが、ロジックと関係ないスコープ切りが必要なせいでコードがスパゲッティになるとか、
ハッシュテーブルと所有権がコンフリクトして動的計画法が書けないとか
所有権のせいでそもそも循環グラフ書けないとか
いくらでもクソな所出してやれるが?
2018/02/18(日) 19:09:06.24ID:29WPmCUu
それ以上に、難解すぎてロジックと関係ないコード上の手入れが膨れ上がって
結果ロジックにバグが増えたりインターフェイスの非互換が発生したりするんだよ
だから致命的に壊れた言語って言ってる
2018/02/18(日) 19:16:07.43ID:29WPmCUu
>>32
だから信者からの突撃回避だろってそれ
2018/02/18(日) 19:35:38.35ID:1PPXAZA8
反論ブログの人が今でもRust書いてるのも、アイコンがRustのマスコットキャラなのも信者の突撃回避なのですね
Nimのブログ記事にブコメしてるのもみんな信者かMozillaの工作員なんですね
2018/02/18(日) 19:38:46.94ID:yl4ANYcz
コンパイラが理解できない所有権の問題がある場合はunsafeというescape hatchがあってプログラマの責任でコードが書けるようになっている
これはすごく実用的な割り切りだと思うんだけど>>35はまた意見が違いそう
2018/02/18(日) 19:44:23.34ID:yl4ANYcz
コンパイラが賢くあるべきなのか、コードを書く側が賢くあるべきかとい二つの考え方があって
>>35は後者、Rustは前者の立場をとっていて単純に趣味に合わないだけなんだと思うが
2018/02/18(日) 20:00:00.93ID:aEar2ian
比較対象にされてるNimはまともなプログラミング言語とのことで、まともな言語とはまともな製品を作れる言語とのことらしいが
そうなるとNimはRust以上に普及しててまともな製品がリリースされていないと矛盾しないか
2018/02/18(日) 20:06:17.02ID:29WPmCUu
>>41
個人で作ってる言語と
国際的詐欺会社がバックにいるのとじゃどうしても個人が負けるわ
2018/02/18(日) 20:10:47.25ID:yl4ANYcz
Mozillaが詐欺企業なんて聞いたことないけどどういう罪状があるのか詳しく教えて欲しい
2018/02/18(日) 20:28:16.57ID:FZoaWpvb
こんだけアンチが常駐する言語スレも珍しい
PHPより酷く感じる
2018/02/18(日) 20:33:28.85ID:DdrYOgdV
スレ人口少ないのもあるが常駐されたところで同じ主張繰り返すだけで特に実害がないからでは
別スレもあるし
2018/02/18(日) 20:38:05.10ID:yl4ANYcz
ほんとうにMozillaが金をばらまいてRustを普及させようとしているなら断る人もいるはずで
世界的にやっているにもかかわらずそのことに言及してるのがこのスレにいる一人だけという時点で信憑性も何もないというのがね
2018/02/18(日) 20:38:58.59ID:yl4ANYcz
言語について批判できるんだから変なMozilla批判は引っ込めたほうが説得力持たせられるのに
もったいない
2018/02/18(日) 20:55:59.22ID:29WPmCUu
札束でぶん殴られて断れないような、そういう相手を選んでるだろうしな
あのMercurialもGitにボロ負けしてるから、資金で殴れば下るだろうって狙われたんだろう
49デフォルトの名無しさん
垢版 |
2018/02/18(日) 21:07:21.89ID:MGQ/Ou+a
>>30
お前しか「モジラに金もらってる」なんて言ってる奴がいないんだからお前に聞くしかないだろ?
バカなの?脳味噌に草でも生えてんの?
あとGitHubの件はスルー?コード例はやっぱり出せないの?
動的計画法はRustじゃ書いたことないから分からんけども、書けないのはお前だけじゃないの?
「書けない部分を具体的にコード例で示して」毎回言ってるよね?
「同じことを何度も言わせるな」って注意されたことないの?今注意したからもう同じこと言わせないでね。
循環参照についてはRcとWeak使えば書ける。可変にしたければさらにRefCell使えばいい。
それも何度も言ってるよね?ボケてんの?草以外に花も咲いてそうだな。
RcやRefCellが気に入らんならお前とはスタイルが合わないってだけの話だ。去ね。
50デフォルトの名無しさん
垢版 |
2018/02/18(日) 21:18:37.37ID:MGQ/Ou+a
あと最悪、動的計画法や循環参照がお前に書けなかったとしても、
書けてるやつのライブラリを使えばいいだけの話では?
自分で書くよりまずライブラリを探す。今の時代はこれが常識だろ?
車輪の再開発は勉強するときだけやってればいいんだよ。
2018/02/18(日) 21:23:52.35ID:29WPmCUu
今まで触れずにおいてやったのにそこまで言われたから言うけど
「書けないもの」の「ソースコード用意しろ」ってひどい矛盾したこといってるの分かってます工作員さん?
2018/02/18(日) 21:27:56.00ID:yl4ANYcz
コンパイルが通らないソースコードなら書けるよね
2018/02/18(日) 21:28:34.77ID:yl4ANYcz
どうせ次はRustは触るのも汚らわしいから書かないとか言うんだろうな
54デフォルトの名無しさん
垢版 |
2018/02/18(日) 21:29:02.25ID:MGQ/Ou+a
Rustでコンパイルエラーしてるソースコードを
コンパイルエラーした状態のままでいいから見せろって言ってるの。
あと、「C(他言語でも可)だとこう書けるのに。。。」っていうソースも載ってればベスト。
分かってもらえます?
2018/02/18(日) 21:30:40.70ID:yl4ANYcz
borrow checkerについて文句言ってるんだからせめて型検査くらいは通ったソースにしてくださいね
2018/02/18(日) 21:39:58.74ID:29WPmCUu
http://play.integer32.com/?gist=a352230e08bc0a76fb5f116bd3c7abf4&;version=stable

これで満足?
2018/02/18(日) 21:49:04.52ID:yl4ANYcz
http://play.integer32.com/?gist=97a7043af5e6ae63f81bc41b2eccc945&;version=stable
2018/02/18(日) 21:50:32.62ID:yl4ANYcz
HashMapのエントリーへのポインタは新しいエントリー追加したらreallocなどが呼ばれて無効になるかもしれないので取り回すのがそもそも間違い
59デフォルトの名無しさん
垢版 |
2018/02/18(日) 21:52:54.02ID:MGQ/Ou+a
ちゃんとソースコード読みこんでないから何がしたいのよく理解してないけど
取り合えずコンパイル通すだけならすぐ出来たよ。
http://play.integer32.com/?gist=9333d5344adb9cdf5ef8292a20ec6c24&;version=stable
2018/02/18(日) 21:56:25.20ID:yl4ANYcz
NLL有効にしたら元のコードでも通った

http://play.integer32.com/?version=nightly&;mode=debug
2018/02/18(日) 21:57:12.95ID:rbmqjGBD
俺はスコープ切る方が好きかな〜
http://play.integer32.com/?gist=e73044b8a25fa1c2403ee1ccb74356f6&;version=stable
2018/02/18(日) 21:57:26.76ID:yl4ANYcz
URL間違えた
http://play.integer32.com/?gist=d9f081dd40e2e0d06e224dc0e20ee41c&;version=nightly
2018/02/18(日) 22:00:17.99ID:xYBf7ssj
瞬殺されてて草
2018/02/18(日) 22:21:47.77ID:xYBf7ssj
この流れ見ると、NLLはRustのハードルを思った以上に下げるのでは?と思わずにはいられない
65デフォルトの名無しさん
垢版 |
2018/02/18(日) 22:48:08.85ID:MGQ/Ou+a
その程度のエラーで投げるやつは少数派なんじゃ。。。とおれは思うけど。
まぁ、それでハードルが下がるのならそっちのほう良いとは思う。
けど、その程度で前に進めなくなるならすぐに別の問題にもぶち当たってやっぱり投げちゃうと思うよ。
そういう奴らはRustはともかく、多分C, C++でも自分で書いたバグに潰されると思う。
結局GC付きの言語でしか書けないんじゃない?
念のため言っておくけど、GC付きの言語を批判する意図はないよ。
おれTypeScript好きだし、Goも嫌いじゃない。
2018/02/18(日) 22:57:58.52ID:xYBf7ssj
確かにここが解決しても型合わせとかで匙投げそうだな……
型の方はScalaとかSwiftとか別の言語で似たようなのがあるから参考にできる文献多そうだけど
67デフォルトの名無しさん
垢版 |
2018/02/18(日) 23:36:51.46ID:MGQ/Ou+a
ジェネリックとトレイト境界の辺りとか最初は結構苦労した記憶がある。
特にfuturesクレートを初めて読んだときは?!??!?ってなった。
Rustは良い言語だけれど「難解」というところだけは否定できない。
そういえば、結局「モジラからお金もらう」方法教えてくれなかったなぁ。
お金欲しいのに
2018/02/19(月) 00:25:45.37ID:1MkUvafw
ちゃんとしたもの作れるわけないだろという主張してたのが昔は複数いたと思うが
Quantumが出たあたりで流石に取り下げたようだが
モジラは詐欺会社と言い張る一人だけが猛烈に頑張ってる
69デフォルトの名無しさん
垢版 |
2018/02/19(月) 01:40:11.21ID:Lpico4kN
>>68
モーレツに墓穴掘ってるけどね
70デフォルトの名無しさん
垢版 |
2018/02/19(月) 10:56:52.97ID:RCvG8f4a
安全性を最大限に気にしたい心配性な人向けの言語だよRust
そういう人たちはC/C++のコーディングで余計なことまで心配しすぎてストレスかかってるんだよ
かわいそうな人たちなんだよ
2018/02/19(月) 12:11:45.20ID:SrM6uAzC
心配しないと鼻から悪魔が出るのがC/C++なので心配しすぎということはない
72デフォルトの名無しさん
垢版 |
2018/02/19(月) 20:47:53.37ID:Lpico4kN
例のアンチだが動的計画法がどうだ循環参照がどうだって騒いでたから
てっきりhtml5everくらい複雑なコード組もうとして悩んでたのかと思ってたけど
まさかのフィボナッチ数列でつまづいていたとは予想外だったわ

そういえば今年のstackoverflowのアンケート結果っていつ出るんだろう?
そもそも毎年いつ頃出てるのか知らないんだよね
これでRustが愛され言語ランキング1位から順位落としてたら
また「ついにクソ言語未満のボロが出てきたな」とか騒ぎだすんだぜきっと
2018/02/19(月) 22:42:50.63ID:soT5kWv3
前スレで、別のランキングでRustの順位が10位圏内に入ってなかったことについて
「工作ブーストが切れたな」とか言ってたからそういう方向になるんじゃね
2018/02/20(火) 22:57:20.29ID:fTmZl11b
Rustが、コードのスタイルガイド「Rust Style Guide」と自動整形ツールを導入する理由。
コードをめぐる議論を省き、メンタルの負担を減らし、プログラマを参加しやすくする
http://www.publickey1.jp/blog/18/rustrust_style_guide.html
2018/02/21(水) 00:44:44.35ID:s9stOBAB
unsafe使えば書けるだろ
C++みたいに全部unsafeな言語よりは安全
2018/02/21(水) 13:18:06.33ID:/K+AUWe/
C++ならゲーム
C#ならWindowsフォームアプリケーション
PHPならWebアプリケーション
Pythonなら機械学習

Rustは?
2018/02/21(水) 19:19:52.15ID:ariB2x93
ここはアンチが立てたキチガイ隔離スレです。
キチガイ以外書き込まないでね
2018/02/21(水) 20:00:01.69ID:RN4nUagC
本スレが過疎ってレベルじゃないし実質こっちが本スレだろ
隔離()スレに勢いで負ける言語があるらしい
2018/02/21(水) 20:01:45.70ID:ariB2x93
まあそうなんだけどね
2018/02/21(水) 21:13:09.57ID:wTdoLSiT
ほんとID:yl4ANYczは戦犯
コンパイルできない厨が最後のコンテンツだったのに…
2018/02/22(木) 09:08:35.45ID:L3BN3Bsr
いわゆるnewtypeパターンをLLVM IRで見てみると
ごく単純なコードで使う分には中身の要素に最適化されてるけど、
それ使って配列を作っただけで最適化されなくなる
こんくらいでゼロコスト抽象化とか言ってるの?

typeでは新しい型作れないし、
結局新しい効率的な型を作る方法さえないんだな
2018/02/22(木) 09:11:43.41ID:3phG5Adg
私にも敵が視える
2018/02/22(木) 12:12:42.57ID:rPAqV5nw
Rustで書くと実行時のメモリ使用量が増える感じは確かにある
2018/02/22(木) 12:12:50.46ID:nEiXxHSj
>>81
トレイトの特殊化でも無理?
2018/02/22(木) 12:45:10.40ID:ETY6aWa8
バグかもしれないからissue立てたら
2018/02/22(木) 13:46:42.12ID:H839Tp+8
>>81
ゼロコスト抽象化はトレイトやジェネリクスを言っててnewtypeパターンは関係ないと思うゾ


Cに比べたらC++もRustもGoもランタイムの分だけメモリ使用量は増えるよね
C++にはランタイム存在しないとか大笑いなギャグを素で言う輩は知らん
2018/02/22(木) 17:36:33.79ID:z8mO3my1
その理屈で言うとlibcもランタイムになりそう
88デフォルトの名無しさん
垢版 |
2018/02/24(土) 01:22:38.50ID:it5yKGst
「Rust 1.24」リリース、コード整形ツール「rustfmt」をプレビュー導入 | OSDN Magazine
https://mag.osdn.jp/18/02/17/163000
> ビルドの速度は改善するが、出力されたバイナリの実行速度は少し遅くなるとしている。
2018/02/24(土) 05:12:18.52ID:sKnrWNZ+
むしろ今まで並列コンパイルをしていなかったのかという驚きがね...
型推論とかボローチェッカーとか大変だろうしと思ってたが、並列コンパイルで早くなるのは助かるよね
2018/02/24(土) 12:58:21.72ID:xVNPO9ZK
コンパイルを速くするためにプログラムの速度を犠牲にする
自称低級言語があるらしい
2018/02/24(土) 13:22:49.17ID:F+bRKUHR
言語じゃなくコンパイラの話だぞ
速度を求めたリリースビルドは並列なしに切り替えられる低級調製可能なコンパイラすごいよね(棒読み
2018/02/24(土) 14:20:25.52ID:Wx4opHQO
言語仕様には興味あるけど実装は興味ありませんって奇特な方には人気出そうな言語だね。
2018/02/24(土) 14:24:58.18ID:2/pmmfzJ
低レイヤ書く人は仕様より吐かれるバイトコードの方にしか興味ないから
完全にターゲティングに失敗してるよなこの言語
2018/02/24(土) 15:42:04.98ID:F+bRKUHR
むしろコンパイルを通すことが難しくても効率的で安全なマシンコードを出力して欲しい奇特な人向けだけどな
性能無視して生産効率だけを求めるならボローチェッカーとかunsafeとかトレイトとか面倒な言語仕様はマジ辛い

ただ緩く書きたいだけならSwiftとかGoの方が絶対良いよな
ランタイムが馬鹿でかかろうが、goroutineが冗長コストだろうが、言語仕様が楽なそれらは生産効率が断然良い
2018/02/24(土) 16:20:16.21ID:VjJ87j7v
安全はともかく、Rustが効率的なマシンコードを出力するというのは同意しかねる
2018/02/24(土) 22:13:15.47ID:Z3ajdh1I
やはりD言語が最強か
2018/02/27(火) 14:30:57.99ID:b6IHds+I
ソースとマシンコードが一対一になる言語は安心感あるな
98デフォルトの名無しさん
垢版 |
2018/02/27(火) 14:35:36.74ID:UR+NQY+Q
やはりアセンブラか
99デフォルトの名無しさん
垢版 |
2018/02/27(火) 14:36:01.06ID:MLnedvVc
【UFO】  山本太郎も横浜で遭遇  ≪W◇″型の発光体≫  世界にテレパシー放送  【大宣言】
http://rosie.5ch.net/test/read.cgi/liveplus/1519704223/l50
2018/03/01(木) 00:41:00.21
【お知らせ】Packt出版より Network Programming with Rust が発売されました。
101デフォルトの名無しさん
垢版 |
2018/03/05(月) 15:59:00.63ID:iGOVMObf
https://play.rust-lang.org/?gist=0bed0aa16c0679665fee05cc6bfda41f&;version=nightly
fn nanka() -> Option<u32>{
println!("nanka called");
None
}
fn nanka2() -> Option<u32>{
println!("nanka2 called");
None
}
fn nanka3() -> Option<u32>{
println!("nanka3 called");
None
}

fn main() {
match (nanka(), nanka2(), nanka3()){
(None, _, _) => println!("nanka ha None"),
(Some(_), Some(_), Some(_)) => println!("some"),
(_, _, _) => println!("else")
}
}

nanka2, nanka3が呼ばれなくて困る!って副作用があるパターンぐらいじゃないですか?
nanka1がNoneと判定した時点ですぐprintしてくれないものでしょうか
2018/03/05(月) 19:46:36.35ID:S3T8EfYp
println!("nanka2 called"); とか副作用あるよね
2018/03/05(月) 21:01:55.89ID:YH1rjFLX
まさに副作用あって呼ばれなきゃ困るパターン書いてて草
2018/03/05(月) 21:44:52.21ID:rDxXu9uq
遅延評価の言語ではないから言語仕様的に全部評価することが保証されてるからなぁ
副作用なくて同じcrate内に処理があるなら最適化で消えるのでは
105デフォルトの名無しさん
垢版 |
2018/03/07(水) 19:29:12.10ID:LRCrToXv
横着してたから気づかなかった…

>>104
https://play.rust-lang.org/?gist=548477e609761c03d062880ceebec28a&;version=stable
MIR見る限りあるっぽいです(これ副作用ないですよね?)
2018/03/07(水) 21:27:53.74ID:VXG6nm0Z
良く分からないけどReleaseにしてASM見ると消えてるみたい
MIRに対する最適化は現時点ではそれほどやられてなさそう
2018/03/07(水) 21:51:00.14ID:LRCrToXv
>>106
Debugなのを忘れた状態で見てcall nanka2があったので駄目かと思っていましたが
Releaseだと消えるようですね、すいません
2018/03/07(水) 22:06:37.97ID:5W30026P
言語仕様で消えるってどっか書いてある?探したけど見つからんかった
2018/03/07(水) 22:42:40.55ID:MkNIh69G
rust推進派のtanakhがrustのダメ出しを始めた

https://twitter.com/tanakh
2018/03/08(木) 07:35:45.52ID:VN6/Zkeb
会社大変だから許してあげよう
2018/03/08(木) 09:01:09.79ID:SDzhQ04b
>>108
最適化の話だから言語仕様では決められてないと思う
2018/03/08(木) 13:04:24.48ID:XQ95i3sC
あのtanakhですら擁護できなくなってきたRustとかいう何か
やっぱクソ言語じゃん
2018/03/08(木) 13:05:40.24ID:FYuhJ3+Z
逆にたなこふ氏が好きな言語って何だよ
Haskellくらいだろ
2018/03/08(木) 13:10:19.32ID:FYuhJ3+Z
ほら
https://twitter.com/tanakh/status/907645555467104256
2018/03/08(木) 13:42:39.37ID:XQ95i3sC
いくつか言語……?ってなるのが混じってるな
116デフォルトの名無しさん
垢版 |
2018/03/08(木) 17:46:17.85ID:3H4xAb5h
>>114
Rust評価高いくてGoは糞って評価だな。
■ このスレッドは過去ログ倉庫に格納されています