- 1 名前:デフォルトの名無しさん [2017/10/14(土) 17:38:14.04 ID:uWD69LeP.net]
- 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/
- 684 名前:デフォルトの名無しさん mailto:sage [2018/01/14(日) 11:57:24.04 ID:BkqToWZD.net]
- コーディングルールに関数作らないことって明記されてなかったら
べつにいいんじゃないか
- 685 名前:デフォルトの名無しさん mailto:sage [2018/01/14(日) 12:26:12.32 ID:ppap/O0M.net]
- いや関数ダメとか普通にどうかしてんだろ。。
これでブラックボックス化するからダメ言うんだったら何もできんわ。
- 686 名前:デフォルトの名無しさん [2018/01/14(日) 13:02:12.25 ID:8svLfVJD.net]
- そもそもプログラミングってきちんと正しく
ブラックボックス化(カプセル化)しましょうってものだろうに。。。
- 687 名前:デフォルトの名無しさん mailto:sage [2018/01/14(日) 13:39:57.15 ID:pZVQT//+.net]
- カプセル化はAPIと内部状態の分離であって
中のコードや仕様を隠蔽するのが目的じゃないんだが
- 688 名前:デフォルトの名無しさん mailto:sage [2018/01/14(日) 13:57:59.71 ID:jzH2L7UL.net]
- ID:pZVQT//+ は何かズレてんな。だから必死なのか。
- 689 名前:デフォルトの名無しさん mailto:sage [2018/01/14(日) 14:43:57.62 ID:b6ZBN6zi.net]
- Rustに限らないが、新しい言語ごり押しする奴や
コーディング規約ガン無視してコード書いたりする奴は、 結局そいつしかメンテできない領域を産み出すだけで、全く生産性に寄与しない ってことが言いたいだけだぞ
- 690 名前:デフォルトの名無しさん [2018/01/14(日) 14:45:29.84 ID:8svLfVJD.net]
- >>673
その「APIと内部状態の分離」をなぜ行いたいのかきちんと考えたことはあるのか? 車を運転するのに車の仕組みを知らなくても良いのと同じように、 プログラム(ソフトウェア)を使うのにそのプログラムの仕組みを知らなくても済むようにするため。 さらに言うと、プログラマが他人が書いたAPIを使うのに、そのアルゴリズムを知らなくても済むようにするためだ。 結局のところ、カプセル化の目的は「きちんと正しく」ブラックボックス化を行うことで 利用者側が内部の仕組みを知らなくても使い方を知るだけで済むようにすることだ。 「APIと内部状態の分離」を行うのはそのための手段として最も有用なものの1つというだけに過ぎない。 何の目的もなく「APIと内部状態の分離」を行えば、それは「中のコードや仕様を隠蔽する」のと大して変わらないよ。 もう少し本質をしっかりと考えよう。 君の言ってること自体は必ずしも間違っているわけではないし、言わんとしていることも分からんではないが、 なんというか、、、底が浅いと感じてしまう。
- 691 名前:デフォルトの名無しさん [2018/01/14(日) 14:56:16.89 ID:8svLfVJD.net]
- 一応補足。
かといってカプセル化した中身は汚くてもいいと言ってるわけじゃないよ。 大多数の人間はカプセル化した中のコードを読む必要性はないけど、 プログラムにバグがないことは絶対に保証できないのだし、 パフォーマンスの改善やらその他いろいろな理由で、 一部の他人は必ず中身のコードを読むことになるからね。
- 692 名前:デフォルトの名無しさん mailto:sage [2018/01/14(日) 14:56:20.26 ID:ptHdDqnU.net]
- >>667 勝手にブラックボックスを作るべきではない
>>668 ブラックボックスなどないではないか >>672 プログラミングとはそういうものだ >>667への反論として>>668はわかるが>>672はなんかずれてると思うがな。
- 693 名前:デフォルトの名無しさん [2018/01/14(日) 15:03:52.23 ID:8svLfVJD.net]
- >>678
「そもそも論」の話をしたからな。 ずれてるというか議論のすり替えが起こってるな。 悪かった。申し訳ない。
- 694 名前:デフォルトの名無しさん mailto:sage [2018/01/14(日) 17:34:15.38 ID:BkqToWZD.net]
- どうなんだろう
人と違うことやるときは 特に何も決まってなくても提案として言ったほうがいいの?
- 695 名前:デフォルトの名無しさん mailto:sage [2018/01/14(日) 19:43:43.81 ID:5kx72Xik.net]
- rustに関係ない話持ち込んじゃってゴメンね…
「関数書くな」って真顔で言われたときのショックを伝えたかったの Cから入った人間だから「プログラムを書く≒関数を書く」 だとどこか思い込んでたようなとこがあったのかなぁ 軽くパニックになったわ 関数書かないで何を書くんだろう…って 関数を書かないレベルの人に言葉を尽くすのは大変だったYO
- 696 名前:デフォルトの名無しさん mailto:sage [2018/01/15(月) 01:12:06.90 ID:TeZ6A4z4.net]
- 昔俺が入ったプロジェクトはJavaだったけど、1クラス1スタティックメソッドのみっていう縛りがあったよ
- 697 名前:デフォルトの名無しさん mailto:sage [2018/01/15(月) 10:25:31.75 ID:C2H3bXQJ.net]
- 嘱託の契約次第だろ。
まあ、無駄な時間を使わされるようだったら契約違反を盾に交渉するのは正しい。契約外だったら少なくとも追加費用を要求しないとな。
- 698 名前:デフォルトの名無しさん mailto:sage [2018/01/15(月) 12:02:33.62 ID:Sawl3Tst.net]
- 嘱託の人間に「こっちの方がいいから」って理由で
そいつにしかわからないプログラム書かれた側から言わせてもらうとまじでやめろ お前がどんなにクソだと思おうと言われたようにやれ 嘱託のお前にとっては書いたらおさらばでいいんだろうが、こっちはそれを半永久的にメンテするんだぞ こっちの形式指定はメンテするためにこっちが必要な条件なんだ
- 699 名前:デフォルトの名無しさん mailto:sage [2018/01/15(月) 12:05:18.28 ID:Sawl3Tst.net]
- だから「新しい言語のRust使います」だの「ナウでヤングなライブラリ使います」だの「イケてるツールのwebpack使います」だのは
お前がお前のために書くプログラムでやれ 嘱託先に納品する物で書くな。それはお前の物ではない
- 700 名前:デフォルトの名無しさん mailto:sage [2018/01/15(月) 12:09:10.97 ID:Sawl3Tst.net]
- 関数切るなって指示も、メンテナンス性考えたら自然とそうなるところもあるだろう
例えばコード上あっちこっち飛ばれたら追えなくなるメンテナもいるんだ そういう人にもメンテナンス業務させるためにそういう指定になるのは自然なこと さすがにうちではないけども、そんな奴を抱えてるSIer上流も当然あるだろう
- 701 名前:デフォルトの名無しさん mailto:sage [2018/01/15(月) 12:11:40.00 ID:9C6ITO5u.net]
- 人生楽しくなさそうだね
- 702 名前:デフォルトの名無しさん mailto:sage [2018/01/15(月) 12:31:52.75 ID:Cin8FKvr.net]
- 逆にどんどん使ってくれというところもあるし場所によるとしか
どちらのケースが多いかは知らない
- 703 名前:デフォルトの名無しさん [2018/01/15(月) 13:32:29.94 ID:w3dU/zjB.net]
- >>684, >>685, >>686
まぁ、正しいこと言ってるとは思うよ。 納品物に使う言語とかを独断(個人の趣味)で決める奴は確かにバカだと思う。 でも、関数使うんじゃないって強制する側も大概だからな。 従うのが社会的に正しいってだけで、情報工学的には明らかにおかしいこともまた事実。 それと、全部従っておけばいいってのもどうかと思う。 おかしいと思うのなら時間をかけて説得するのも一つの手。 話が極端すぎるんだよ。
- 704 名前:デフォルトの名無しさん mailto:sage [2018/01/15(月) 13:55:34.30 ID:plpGsHa9.net]
- 人間、数回の経験ですべてがそうであると錯覚しやすいからねー
特に失敗は記憶に残りやすい(将来に活かせるとは言ってない)
- 705 名前:デフォルトの名無しさん [2018/01/15(月) 14:29:56.48 ID:w3dU/zjB.net]
- ところで全く話変わるんだけど。
最近Rustの勉強をしてるんだけど、まだ慣れないし、C++もあまりやってこなかったので、 俺のバカな頭じゃ理解できないことがいっぱいあるから誰か教えて。 質問1 Rustってimmutable参照は複数持てるけど、mutable参照は1つしか持てない決まりになってるよね。 それってたぶんマルチスレッドのことを考えてそうなってるんだよね?(この時点ですでに勘違いしてる?) けどRustではSyncトレイトとSendトレイトを実装してない限り、スレッド間で変数の受け渡しできないんだよね? これって逆に言えばSyncとSendを実装してない場合はシングルスレッドなんだからmutable参照が複数あっても問題ないんじゃないの? なんでマルチスレッドを全く使わないコードを書いてる時でもmutable参照は1つだけしか使えないの? SyncトレイトとSendトレイトについてなんか勘違いしてる? 質問2 Rustで木構造やグラフ構造を定義する時に循環参照(子が親の参照を持ちたいとか)する時って、たぶんRcとWeakを使うことになるよね? そして木構造を可変にしたいときはさらにRc<RefCell<T>>って形になるよね? このRefCell使うとボローチェッカの制約をコンパイルエラーじゃなくて実行時にパニックするように変わるんだよね? こうするしかないのはRc<RefCell<T>>使わずに木構造を作ろうとして執行錯誤したけど無理だったからそうするしかないんだなと思って納得したんだけど、 RefCell使っちゃうとボローチェッカが効かなくなるからせっかくRustを使ってるメリットが無くなったような気がしてくるんだよね。 それでもRustを使うメリットって何? RefCell使ってるとこ以外はボローチェッカが効くんだからunsafeコードと同じようにラッパーで包んでやれば上位層に悪影響は出ないよねってこと? それともC++とかで同じように木構造を作ると、Rustだと単純にパニックするだけだけど、C++だとデバッグがメチャクチャ困難なバグになったりするの? たとえRefCellを使っていたとしてもRustを使うメリットはし
- 706 名前:チかりあるんだって思える明確な理由を誰か教えて。
この言語やってるともしかして俺ってすっげーバカなの?って不安になってくる。 長文すいませんが、誰か教えてください。 [] - [ここ壊れてます]
- 707 名前:デフォルトの名無しさん mailto:sage [2018/01/15(月) 14:49:21.64 ID:RpZewdhM.net]
- Rustなんて使った時点で騙されてる
その辺は言語設計が破綻してる証拠 悪いこと言わんからC++きちんと勉強してRustは忘れよう
- 708 名前:デフォルトの名無しさん [2018/01/15(月) 15:28:44.95 ID:w3dU/zjB.net]
- >>692
君ははた迷惑な例のアンチかな? 破綻している証拠とやらをその辺はとか適当な言葉で誤魔化してる時点で説得力がないよ。 てか、君には聞いていない。君以外に聞いてるんだ。
- 709 名前:デフォルトの名無しさん mailto:sage [2018/01/15(月) 16:35:55.57 ID:tRnPToa/.net]
- 木構造にRcは要らんだろ
各ノードは直接の親にしか所有されないんだから
- 710 名前:デフォルトの名無しさん mailto:sage [2018/01/15(月) 17:21:29.47 ID:pZIK1LNL.net]
- 質問1について分かりやすいのがforループだな
あるベクタをforループ中に、forの対象にしてるベクタそのものにpushするみたいな黒魔術操作を禁止するために forループを回してる間は回す対象の配列にイミュータブル参照を作ってる状態にしてコンパイラにチェックさせる
- 711 名前:デフォルトの名無しさん mailto:sage [2018/01/15(月) 17:44:57.62 ID:prlexpko.net]
- 質問1がそうなっている理由は、以下のようなケースで解放済みのVecにアクセスしてしまうことを防ぐというのもある
let mut foo = Some(vec![]); let foo_mut = &mut foo; let foo_ref = foo.as_ref().unwrap(); foo_mut = None; println!("{:?}", foo_ref); // drop 済みのVecへのアクセス
- 712 名前:デフォルトの名無しさん mailto:sage [2018/01/15(月) 19:10:45.82 ID:pZIK1LNL.net]
- 重箱の隅だが四行目は
*foo_mut = None だな
- 713 名前:デフォルトの名無しさん [2018/01/15(月) 20:48:46.10 ID:w3dU/zjB.net]
- >>695, >>696
なるほど。mutable参照が1つしか取れない理由はマルチスレッド以外にも理由があったのか。 単純なコードだけど実際に示されないと気が付けないな。(少なくとも俺は) やっぱりGC無しの言語はメモリ管理が難しいな。 そして、それをコンパイラがはじいてくれるのはやっぱり有難い。 納得のいく答えが得られた。教えてくれてありがとう。 >>694 それは木構造でも親から子を辿るだけで済む場合に限定されない?子から親を辿りたくなった場合だと無理じゃない? 子は複数いるんだからそれぞれの子が全て親のmutable参照を持つことはできないよね。 だって、mutable参照は1つしか作れないんだから。 そうするとRcとWeakとRefCellを使わざるを得なくなるよね?ならない?使わなくても済む方法があるの? ちなみにRcじゃなくてArenaっていう仕組みを使うって方法ならどっかのブログで見たんだけど、 その方法だと動的に追加していくことは出来るけど、動的に削除を行うことは出来ないよね。 例えばJavaScriptのDomツリーとかはparentNodeで子から親のNodeを辿れるようになってるし、 appendChildとかremoveChildとかでNodeを動的に追加したり削除したりももちろん出来るよね。 それと同じようなことをRustでもしたかったらRcとWeakとRefCellを使うしかないんじゃないかと思ってるんだけど。
- 714 名前:デフォルトの名無しさん mailto:sage [2018/01/15(月) 20:53:28.00 ID:Cin8FKvr.net]
- 双方向参照する場合はそう
RefCell使わなければならないケースでrustの方がうれしいのは、 実行時にはなってしまうが&mutのエイリアスがチェックされることかな C++だと領域破壊してもそれらしく動いてしまうとかあり得てバグの発見が遅れる
- 715 名前:デフォルトの名無しさん mailto:sage [2018/01/16(火) 05:17:55.44 ID:4jams3dQ.net]
- Rustで木を作ったぞ!
https://play.rust-lang.org/?gist=dc4c67944190cb7ab83b2e25e4fdd4e2&version=stable
- 716 名前:デフォルトの名無しさん mailto:sage [2018/01/16(火) 12:11:08.60 ID:JwS671kg.net]
- https://news.mynavi.jp/article/20180110-568199/
モジラ工作員ざまあ!!!wwwww いやー一年は工作でごまかせたかもしれないがさすがにメッキが剥げてきたね! これが現実!! 騙されてるやつはまだ間に合うぞ!
- 717 名前:デフォルトの名無しさん mailto:sage [2018/01/16(火) 12:21:19.07 ID:Tvp4qB7j.net]
- >>701 ……
https://qiita.com/kmizu/items/b07f1dcad63f104248c5
- 718 名前:デフォルトの名無しさん mailto:sage [2018/01/16(火) 13:02:13.48 ID:JwS671kg.net]
- >>702
どや顔で貼ったんだろうけど 記事内でリンクあるランキングでのRustの位置wwwwwwwwwwww Rustのゴ
- 719 名前:~さの補強にしかなってないwwwwww []
- [ここ壊れてます]
- 720 名前:デフォルトの名無しさん mailto:sage [2018/01/16(火) 13:03:09.51 ID:InRpqwJl.net]
- >>702
そいつはTIOBE IndexでScalaの順位が低いから 参考にならないの事にしたいだけのScala大好きマンだから 話半分以下で聞いとけ
- 721 名前:デフォルトの名無しさん [2018/01/16(火) 13:18:52.31 ID:4ikneXPL.net]
- そもそも、みんなが使ってる言語だから良い言語みたいな理論を持ち出せば、
PHPをとても良い言語だと認識しければならなくなるんだが。 その辺を>>701はどう考えてるんだ?たぶん何も考えてないんだろうけど。 それとも、もしかしてPHP最高!とか思ってる奴だったか。
- 722 名前:デフォルトの名無しさん mailto:sage [2018/01/16(火) 13:31:11.79 ID:JwS671kg.net]
- >>705
Rustは誰も見向きもしないクソ言語未満っていってるだけで みんなが使ってる言語は良い言語とは一言もいってないけど?
- 723 名前:デフォルトの名無しさん [2018/01/16(火) 13:37:29.94 ID:4ikneXPL.net]
- だれも見向きもしない言語ってのはつまり人気のない言語のことだろ。
人気のない言語はクソ言語ってことにすると、逆説的に、 人気のある言語は良い言語になっちゃうよね。
- 724 名前:デフォルトの名無しさん mailto:sage [2018/01/16(火) 13:39:54.74 ID:JwS671kg.net]
- 論理学できない人?
見向きもされないのは悪い言語 が真でも 見向きされる言語は良い言語 は真じゃないよ? 論理学できないからRustなんてもてはやすんだろうけど
- 725 名前:デフォルトの名無しさん mailto:sage [2018/01/16(火) 13:50:01.38 ID:0jSYVjYj.net]
- その理屈は論理学として正しいがそれを認めると
順位表では何が良い言語か一生懸命みてもわからんから意味なさそう
- 726 名前:デフォルトの名無しさん [2018/01/16(火) 14:05:58.36 ID:4ikneXPL.net]
- >>708
それは悪かった。 どうせ君は物事を1か0でしか考えられない人間だと思ってたから、 そういう思考回路の人間だと思って会話を進めようとしてしまった。 じゃあ、別の方向から突かせてもらうけど、 関数型言語って最近(最近というほどでもないか?)の流行りじゃん? でも、関数型言語の祖先ってLispとか言われてたりするよね。 で、そのLispはかなり昔から存在したわけだよね。 何で昔は一部の物好きだけが使ってて他は見向きもしなかったのに、 今更になって認められていろんな言語にラムダ式とかが採用されたの? 見向きもされない言語はクソ言語のはずなのになんで? (ちなみにこの理論は反論できる余地があります)
- 727 名前:デフォルトの名無しさん mailto:sage [2018/01/16(火) 14:40:03.83 ID:JwS671kg.net]
- Lispが関数型言語の祖先かと言われると副作用だらけだし違和感しかないな
別に最近の言語のラムダ式はラムダ計算を構文に持ち込んだだけで、LispのS式まわりの成果を持ち込んだわけでもなかろうに どちらかというとHaskellとかML系列の成果の方が主だろう RustがLisp的な立ち位置になると言いたいんだろうが、言語のお粗末な出来から言ってもそれはない
- 728 名前:デフォルトの名無しさん [2018/01/16(火) 14:45:36.44 ID:4ikneXPL.net]
- 別にLispに限定した話じゃないよ。
関数型言語って昔からあるよね。でも当時は誰も見向きもしなかったよね。 見向きもされない言語がクソ言語なら関数型言語が 今更になって認められるのはおかしいよね?ってだけ。
- 729 名前:デフォルトの名無しさん mailto:sage [2018/01/16(火) 16:31:38.96 ID:bxI2XEx+.net]
- 言語が変わらなくても時間の経過によって環境の方が変化して評価が変わることは十分に有り得る
プロセッサ負荷やメモリ使用量などの足枷がユルユルになって来たことで評価が高くなったのではないか 従って当時とか現在とかの時世を無視しては語れないこともある
- 730 名前:デフォルトの名無しさん mailto:sage [2018/01/16(火) 16:51:39.64 ID:JwS671kg.net]
- それを認めると将来Rustがクソではなかったと証明される余地があるってことで、
それは事実ではないから違うな 今評価されてるのはあくまでラムダ計算であってLispではない、と言えば分かるか?
- 731 名前:デフォルトの名無しさん [2018/01/16(火) 16:54:05.43 ID:4ikneXPL.net]
- >>713
Yes! That's correct!! 反論の余地とは時代等の外部環境の変化により評価も変化することだね。 なんか別のIDの人が答えちゃったけど。
- 732 名前:デフォルトの名無しさん mailto:sage [2018/01/16(火) 16:56:00.39 ID:6i0TmEx8.net]
- 木構造もインデックス使って書かないといけないのか
- 733 名前:デフォルトの名無しさん [2018/01/16(火) 17:19:58.51 ID:4ikneXPL.net]
- >>714
ワロタwww お前は未来人か? 未来人を肯定するならrustがクソ言語であることも認めよう。
- 734 名前:デフォルトの名無しさん mailto:sage [2018/01/16(火) 17:41:30.80 ID:O2dbzEJM.net]
- ここまで言語に粘着する精神が理解出来ない
- 735 名前:デフォルトの名無しさん mailto:sage [2018/01/16(火) 18:24:58.75 ID:IF1qR6jo.net]
- >>698
子→親のリンク無し縛りでも動的な追加削除はできると思うけど。 子からのリンクが必要なのは、各ノードへの参照をそのままイテレータとして見せて前後移動したい場合のみじゃね で、まあ、子からのリンクが絶対必要として、そのためにRc使って要らん参照カウンタと間接参照を各ノード毎に持たせるってすごい無駄に思える 諦めてraw pointerでいいんじゃないかなあ……
- 736 名前:デフォルトの名無しさん mailto:sage [2018/01/16(火) 21:10:33.64 ID:4jams3dQ.net]
- >>700
センスの無さを自分に感じる…Rust難しいな https://play.rust-lang.org/?gist=0d5f8e5d767ac5b2a0b32b272e8c3797&version=stable
- 737 名前:デフォルトの名無しさん mailto:sage [2018/01/16(火) 23:04:02.65 ID:oMs3dhar.net]
- 案外、未来でRustで書かれたプログラムが暴走して人類の危機だから、
現代にタイムリープしてきてRustを普及させまいとする工作員の可能性が微粒子レベルで存在……しないか
- 738 名前:デフォルトの名無しさん mailto:sage [2018/01/16(火) 23:45:58.12 ID:xhrqQ7lp.net]
- そうだったら5chみたいな辺境じゃなくてもっとちゃんとしたところで活動してるだろ
- 739 名前:デフォルトの名無しさん mailto:sage [2018/01/17(水) 00:18:50.74 ID:0/gSTs3q.net]
- >>720
木構造がどういう構造なのかを勉強したほうがいい
- 740 名前:デフォルトの名無しさん mailto:sage [2018/01/17(水) 01:17:11.33 ID:SxnML8zQ.net]
- >>721
これすき
- 741 名前:デフォルトの名無しさん mailto:sage [2018/01/17(水) 01:43:08.30 ID:YpnCuGck.net]
- スカイネットはRustで書かれていたか…
- 742 名前:デフォルトの名無しさん [2018/01/17(水) 14:46:11.61 ID:lavU9jAu.net]
- >>708からの>>714の流れで草生える
論理学できない人? ブーメランかな? wwwwwww
- 743 名前:デフォルトの名無しさん mailto:sage [2018/01/17(水) 18:26:41.06 ID:yaCIVqOg.net]
- 子供じみたレスばかり
- 744 名前:デフォルトの名無しさん mailto:sage [2018/01/17(水) 22:00:00.30 ID:jFkmgXk5.net]
- 言語オタクが喜びそうな機能を盛り込んだら本当に飛びつきやがったw
みたいな言語だよな。
- 745 名前:デフォルトの名無しさん mailto:sage [2018/01/17(水) 22:09:59.44 ID:L8tEPBaK.net]
- 飛び付いたオタクは無事モジラの養分となりましたとさ
- 746 名前:デフォルトの名無しさん mailto:sage [2018/01/18(木) 23:44:13.29 ID:dg9MpWjG.net]
- オッス!オラMozillaの養分!Rustいっちょやってみっか!
- 747 名前:デフォルトの名無しさん mailto:sage [2018/01/19(金) 10:54:19.44 ID:Oz2p1EAg.net]
- またrustfmtごたついてる?
- 748 名前:デフォルトの名無しさん mailto:sage [2018/01/19(金) 12:31:26.28 ID:Bq+piyrd.net]
- あれがごたついてなかったことが過去にあったか?
- 749 名前:デフォルトの名無しさん mailto:sage [2018/01/19(金) 12:47:00.76 ID:Oz2p1EAg.net]
- せやねw
昨日まではcomponentに残ってたんだけどなぁ また "rustup run nightly cargo install rustfmt-nightly -f" でいれるかー
- 750 名前:デフォルトの名無しさん mailto:sage [2018/01/19(金) 17:48:34.83 ID:8na6CAQi.net]
- stableのやつ使えば良いのでは
- 751 名前:デフォルトの名無しさん mailto:sage [2018/01/19(金) 20:17:30.04 ID:Oz2p1EAg.net]
- >>734
deprecated言われるんだよー
- 752 名前:デフォルトの名無しさん mailto:sage [2018/01/19(金) 22:14:56.98 ID:mTCJnuoL.net]
- ビルド速度がgo並になったら起こして
- 753 名前:デフォルトの名無しさん mailto:sage [2018/01/20(土) 00:14:19.48 ID:kiT7y7oh.net]
- Rustのビルドそんなに遅いか?
Scalaと比べたら誤差だろ
- 754 名前:デフォルトの名無しさん mailto:sage [2018/01/20(土) 04:07:03.70 ID:d0zmNqbj.net]
- 誤差が流行語か何かなの?
- 755 名前:デフォルトの名無しさん mailto:sage [2018/01/20(土) 11:11:11.19 ID:Ceherv8P.net]
- >>735
rustup component add rustfmt-preview --toolchain stable でインストールできるやつのつもりだった なぜかcargo-fmtは入ってないけど
- 756 名前:デフォルトの名無しさん mailto:sage [2018/01/20(土) 11:44:54.08 ID:3qVias3W.net]
- 代入の結果が () を返すのって一見不満なんだが…
#include <stdio.h> int main() { int a, b; a = b = 10; printf("%d, %d", a, b); // 10, 10 return 0; } a = b = 10 p [a, b] # [10, 10] let b = ref 0 in let a = b := 10 in Printf.printf "%b, %d\n" (a = ()) !b (* true, 10 *) fn main() { let (a, b); a = b = 10; println!("{:?}, {:?}", a, b); // (), 10 } 上から c, ruby, ocaml, rust の結果 所有権のこと考えるとこうなるしかないのかな
- 757 名前:デフォルトの名無しさん mailto:sage [2018/01/20(土) 12:30:50.40 ID:QK7u6cD2.net]
- >>739
うん そのcomponentが木曜日はあったのに 金曜日に無くなって 今見たら復活してた このままだと「月曜日に市場へ出かけ 火曜日にお風呂に入り 水曜日に力士でデビュー」ですよ そして確かにcargo fmt無くなってるね まぁ当面rustfmtが呼べればいいんだけど >>740 その辺りの差異は慣れるしかないかーとあんまり気にしてなかった 言われると確かにもやっとしますな
- 758 名前:デフォルトの名無しさん mailto:sage [2018/01/20(土) 18:49:44.85 ID:oxqYKpr1.net]
- >>740
VBAだと a = b = 10 は a = (b = 10) となり (b = 10)は比較演算になって aはBoolean型になるよ
- 759 名前:デフォルトの名無しさん mailto:sage [2018/01/21(日) 00:23:31.24 ID:zciK/NY/.net]
- >>546
君のRustは20倍遅い - 簡潔なQ qnighy.hatenablog.com/entry/2017/05/02/070000
- 760 名前:デフォルトの名無しさん mailto:sage [2018/01/23(火) 19:31:47.22 ID:DTlLuart.net]
- https://qiita.com/SatoshiTerasaki/items/5bd3ee78a60f9a02e0fc
juliaにすら速度で負ける自称低レベル言語があるらしい 別の意味で低レベルwwwwww
- 761 名前:デフォルトの名無しさん mailto:sage [2018/01/23(火) 20:25:24.96 ID:dAr3tjSO.net]
- 数値計算ならjuliaは最速でいいだろ
- 762 名前:デフォルトの名無しさん mailto:sage [2018/01/23(火) 20:28:32.79 ID:xDBTrEL/.net]
- 疑似乱数ライブラリの差ね
- 763 名前:デフォルトの名無しさん mailto:sage [2018/01/23(火) 20:37:51.11 ID:S1z+wM9L.net]
- 最適化のかかるリリースビルドしてない可能性は?
- 764 名前:デフォルトの名無しさん mailto:sage [2018/01/23(火) 21:02:12.15 ID:vM+Fbylb.net]
- >>744
Rust凄い!Pythonの1.45倍も速い! って書くと、逆に遅く感じる
- 765 名前:デフォルトの名無しさん mailto:sage [2018/01/23(火) 21:07:23.42 ID:dAr3tjSO.net]
- アンチスレのほうがアンチが話題ふってくれてRustに貢献してる感じする
- 766 名前:デフォルトの名無しさん mailto:sage [2018/01/23(火) 23:14:43.88 ID:mIozX/Eh.net]
- 俺の環境でも
Julia: 8.58sec Rust: 9.66sec で1秒遅いな。でも特にチューニングしてないコードで Julia にここまで迫るなら十分だな。
- 767 名前:デフォルトの名無しさん mailto:sage [2018/01/24(水) 00:30:05.97 ID:HGDwBfie.net]
- juliaってスクリプト言語なのに、
スクリプト言語に負けて十分な速度と言い張る低級言語wwwwww いやー信者ってすげえわwwwwww
- 768 名前:デフォルトの名無しさん mailto:sage [2018/01/24(水) 02:48:41.80 ID:0VEJNLN9.net]
- いやでもJuliaに勝とうと思えばIntel Fortran持ち出してくるか
Cで環境固有のattribute使いまくるぐらいしか無いぞ割りとまじで JuliaもバックエンドはLLVMではあるんだけどな
- 769 名前:デフォルトの名無しさん mailto:sage [2018/01/24(水) 05:34:41.30 ID:KYfXJC7V.net]
- 速い乱数ライブラリつかえばいいだけでは
- 770 名前:デフォルトの名無しさん mailto:sage [2018/01/24(水) 05:48:01.55 ID:Em3Ccg5v.net]
- 乱数生成のアルゴリズムが一致してないものを比べても言語の速さは比べられんだろう
Juliaの乱数生成のアルゴリズムが速度面で優れてるってことが分かっただけだ それでも動的言語でこの速度は確かにすごいと思うが あとC言語のベンチの結果が載ってないのも痛いな これじゃJuiliaが速いってことは分かってもRustが遅いかどうかは分からん でもJuiliaって数値計算特化の言語なんだろ だったら文字列処理とかは遅いんじゃないの? もう少しいろんな方面からパフォーマンス測ってみないとなんとも言えんな
- 771 名前:デフォルトの名無しさん mailto:sage [2018/01/24(水) 06:38:42.48 ID:EfrrCAID.net]
- ボトルネックの概念はどこいった
- 772 名前:デフォルトの名無しさん mailto:sage [2018/01/24(水) 07:51:23.43 ID:Ko1heN49.net]
- ***が速いと言われているので使ってみて言うほど速くなった試しはないな
実際に使うときはIO性能も重要だしよく使う言語の方が最適化手法を知っているというのもありそう
- 773 名前:デフォルトの名無しさん mailto:sage [2018/01/24(水) 09:29:26.67 ID:xzoUw+gH.net]
- Rustが将来どの分野で使われるようになるか分からないけど、
少なくとも科学技術計算の分野に食い込むのは無さそうね 過去の資産もない上に速度的な優位も無いんじゃねぇ
- 774 名前:デフォルトの名無しさん mailto:sage [2018/01/24(水) 10:25:57.27 ID:/aStfyAp.net]
- そもそも既存の資産を置き換えるほどの魅力がない
学習コストもばかにならない
- 775 名前:デフォルトの名無しさん mailto:sage [2018/01/24(水) 10:29:05.95 ID:t7u6g4uo.net]
- そもそもrustの魅力って何?
コンパイル通させてくれない言語って印象しかない
- 776 名前:デフォルトの名無しさん mailto:sage [2018/01/24(水) 12:02:46.02 ID:QyvetUd4.net]
- コンパイル通させてくれないのが魅力
- 777 名前:デフォルトの名無しさん mailto:sage [2018/01/24(水) 12:12:31.05 ID:U+b9l8FZ.net]
- スレッドプログラムが書きにくいのがうり
- 778 名前:デフォルトの名無しさん mailto:sage [2018/01/24(水) 12:43:30.69 ID:E4B4d2jG.net]
- コンパイラが手取り足取り教えてくれるから誰でも簡単に安全なコードが書けるよ
- 779 名前:デフォルトの名無しさん mailto:sage [2018/01/24(水) 13:08:56.48 ID:MMmENHs8.net]
- >>761
rustはスレッド書きやすいと思うんだけど 書きにくいって思う人が書きやすいと思うのはどんな言語?goみたいな? ネイティブと軽量スレッドの違いあるけど記述自体は殆ど変わらんと思うけど 軽量スレッドが言語に組込まれてないから?
- 780 名前:デフォルトの名無しさん mailto:sage [2018/01/24(水) 13:33:02.69 ID:t7u6g4uo.net]
- コンパイル通せないのが魅力って、つまり
malbolgeみたいな実用じゃなくて難解言語ネタの一種ってこと?
- 781 名前:デフォルトの名無しさん mailto:sage [2018/01/24(水) 14:10:35.06 ID:odqQ8MKT.net]
- アンチスレでマジになるなって
- 782 名前:デフォルトの名無しさん mailto:sage [2018/01/24(水) 17:06:47.36 ID:AZpyydI9.net]
- >>754
NimのベンチはCと変わんねーよ
- 783 名前:デフォルトの名無しさん mailto:sage [2018/01/24(水) 18:33:54.36 ID:EfrrCAID.net]
- 競プロだとRustが実行時間最速なケース結構あるから!
https://yukicoder.me/ranking/speeder
- 784 名前:デフォルトの名無しさん mailto:sage [2018/01/24(水) 18:55:55.94 ID:Ko1heN49.net]
- そもそも科学数値計算はマルチコア・マルチノードで並列で処理するような
|

|