プログラミング言語 Rust 3 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2017/05/21(日) 14:04:29.55ID:9L9dm7b/
Mozillaがリリースした、プログラミング言語「Rust」について語るスレです。

http://www.rust-lang.org/
https://github.com/rust-lang/rust

Servo
https://servo.org/
https://github.com/servo/servo

◆前スレ
プログラミング言語 Rust 2
http://echo.2ch.net/test/read.cgi/tech/1478023960
2017/07/05(水) 19:35:34.06ID:oPOjLgnt
>>150
コンパイラだってバカ正直にMap構造体を用意してそこにクロージャをそのままぶち込むようなコードは生成しないんやで
2017/07/05(水) 19:42:23.78ID:LLvZvDtb
>>251
>IteratorやMapを抽象化できないのか?
まあ確かにHKTが欲しいと思わないこともないな
2017/07/05(水) 19:43:35.74ID:oPOjLgnt
>>252
安価は>>250の間違い
2017/07/05(水) 20:12:29.34ID:kX6rHoUh
>>249
GTKはまともに使えるっぽいけどそれじゃだめなの?
俺はgtkあんま好きじゃないからいやなんだけど
2017/07/06(木) 11:00:33.73ID:tRC1mrQq
>>247
>コストがゴリゴリ上がってくのは分かった
何を突然ファビョってるんだか
タスクごとのヒープアロケーション数はΘ(1)に抑えられているだろ
2017/07/06(木) 20:30:03.81ID:kH42VxHy
最近の公式の動きを見ていると、WebフレームワークはRocketを推していく方針に見えるな
2017/07/07(金) 07:02:47.03ID:vPLSgrbk
>>257
何でよりによってnightlyを要求するRocketなん?
2017/07/10(月) 13:13:29.86ID:Y8I/wQdo
>>256
タスク数に合わせてO(n)になってると思うんだけどそれは度外視なのかな?
260デフォルトの名無しさん
垢版 |
2017/07/10(月) 13:58:50.67ID:mQ3pGq+a
オラクルがrustでコンテナランタイム作っとるってよ
261デフォルトの名無しさん
垢版 |
2017/07/10(月) 19:18:17.66ID:l6mkv8ve
Building a Container Runtime in Rust | Oracle Developers Blog
https://blogs.oracle.com/developers/building-a-container-runtime-in-rust
> almost all container utilities are in c or go.
> (中略)
> Rust sits at a perfect intersection of these two languages
2017/07/11(火) 13:53:59.15ID:5tKo2E+W
オラクルの時点でお察し案件じゃん
まあオラクルとモジラは業界のゴロ同士仲がよろしいんですなあ
2017/07/14(金) 04:46:26.78ID:TKiI+WcD
google という名前のcrateが上がってて、
説明文が "Google is evil"
バージョン番号が "6.6.6"
2017/07/14(金) 20:21:33.28ID:8a1VCaPH
Googleが悪とかやっぱモジカスだわ
2017/07/15(土) 17:00:03.78ID:U+uVxSdX
Rust公式がTwitterで"Rocketの新バージョンがリリースされたぜ"とか呟いてて、それに対して"Ironの何が悪いんだ"的なクソリプが付いてるの笑う
2017/07/15(土) 23:27:50.25ID:RjDGp9te
RustのSlackでmame氏にCでポインタとか触ったことありますか?って聞いてるやついてワロタ
2017/07/16(日) 13:32:06.66ID:FJgd8SG/
箸が転がったから笑った
2017/07/16(日) 13:33:12.21ID:JEFmdVs4
膝がワロタ
2017/07/17(月) 22:50:00.44ID:8lRCTnOP
関連型ってさなんでいるの?
CeylonやC#みたいにgenericsのin/outで実現できない?
2017/07/18(火) 13:42:50.01ID:NOYbJ+oD
>>261
ライブラリの問題とかそういう回避方法はないのかと考察したけど、goroutineの仕様上無理ぽって結論なのか
rustが最適な言語かどうかは懐疑的だけど、go以外の使える新興言語ってのは他にないし仕方ないのかねぇ
2017/07/19(水) 19:13:52.48ID:23uwxygM
>>269 in/outの方が劇的に良かったりするの?MSDNとか読んでもすぐに理解できなかった
2017/07/19(水) 22:47:17.03ID:UyJFKTdP
>>271
良くなったりするわけじゃなくて全く同じもの。
単にrustのジェネリックスに制限があるだけ。
in/outや+/-なのはjavaの境界ワイルドカード型の定義が
長いから短くなったものでキーワードにするかシギルにするかの好みの違い。
2017/07/20(木) 00:56:51.60ID:k7oT/owf
C#とか知らないから適当なことを言うけど、in/outって要は型パラメータの反/共変性を指定する構文ってこと?
Rustはクラスがないからあまり関係ないような気が
そもそも関連型と型パラメータは全く別物だし
2017/07/21(金) 01:30:42.74ID:K3J9c6vN
Announcing Rust 1.19 - The Rust Programming Language Blog
https://blog.rust-lang.org/2017/07/20/Rust-1.19.html
・C互換な(untagged) unionの導入
・loopのbreakで値を返せるようになった
・値をキャプチャしないクロージャを関数ポインタ(impl Fnでなくてfn型)として扱えるようになった
275デフォルトの名無しさん
垢版 |
2017/07/21(金) 03:20:29.74ID:kfdWC1ug
新しい言語は早い段階から使い始めれば
バージョンアップ時は変更点だけ覚えればいいけど
バージョンアップが重なったあとから始めようとすると覚えることいっぱいすぎ
Rustよ
もっとシンプルに
2017/07/21(金) 08:32:20.79ID:aL8S5b5t
-Zオプションが時報に無視されててワロタ
2017/07/21(金) 12:38:58.44ID:qDRT3Ece
Cargoがhigh level過ぎでrustcがlow level過ぎな課題はいつ解決するんかな
他のビルドツールを使ったプロジェクトにrustを入れるのが今は面倒
2017/07/21(金) 19:27:14.18ID:juJaC8N3
ていうか時報の反応速度が高くて笑う
まさかリリースの度に待機してるのか?
2017/07/22(土) 07:37:27.49ID:m9up21PD
> ・loopのbreakで値を返せるようになった

遂に来たか。
2017/07/22(土) 14:32:40.69ID:IwEFmDCG
時報であることに使命を感じて全力待機してそう, 機械の鑑だよホント
281デフォルトの名無しさん
垢版 |
2017/07/22(土) 16:14:42.22ID:Jfa6LaZA
誉め言葉として受け取っておく
2017/07/22(土) 16:20:13.34ID:rGyFmqNE
>>281
誰だお前
2017/07/22(土) 16:39:57.41ID:WZvf35Ul
なお、バグった機械の模様
2017/07/22(土) 17:02:38.46ID:vk3cyWgj
雑談の種になるよう頑張ってるんだよ、そんなあげつらうことないでしょ
2017/07/22(土) 17:04:33.13ID:vk3cyWgj
というかどこに行けばRustの話をしていいのか分からない。英語ならRedditがあるけど
2017/07/22(土) 17:05:27.55ID:lf8sQzDC
あれ、associated constsはstabilizeされたんじゃなかったのか
2017/07/22(土) 17:10:48.08ID:rGyFmqNE
>>286
現行のbetaではfeature gateが外れているから次のstableに乗るはず
2017/07/22(土) 17:42:07.41ID:Oi7t7NSG
rust-jpのSlackとか?
ところでLLしか触ったことなかった俺も最近Rust使い始めてみたんだけど、有識者から見てRustで1番理解が大変なの(あるいは抑えておかなきゃならないとこ…)はどのあたりなのか教えて欲しい。
2017/07/22(土) 18:20:40.76ID:RlMkEmCd
>>288
トレイト
ムーブ
参照(borrowing)

Javaも触ったことないならトレイトは最初難しそう
2017/07/22(土) 20:18:18.76ID:s9rnd8yr
slackの質問に対するリアクションありすぎてこわい
2017/07/22(土) 20:29:54.52ID:Oi7t7NSG
>>289
ありがとう
公式のチュートリアルみたいなやつ進めてるんだけど今のところトレイトオブジェクトらへんでちょっと理解に苦しんでる
2017/07/24(月) 12:10:36.01ID:1TXRI9Gx
rustって現場で使われ始めてるの?
メモリ管理周りのメンタルモデルって他の言語に応用利いたりする?
コードがきれいになるとか?
始めるモチベが欲しい。
2017/07/24(月) 12:28:38.82ID:zGGIqffP
C++ほど辛くない
2017/07/24(月) 14:12:02.33ID:K7WDOtB+
>>292

1.クソコードをコンパイルさせてくれない
2.コンパイル通すの少し大変だけど実行時エラーが本当に出ない
3. 速い
4.パッケージマネージャーがよくできてる

1は本当に大きくて、自分のコードとコンパイラが喧嘩になると大抵自分のアーキテクチャが悪く、直すとちゃんと正しい実装になって感動する。つまり正しいコードが書けるようになる
2017/07/24(月) 14:19:11.38ID:1TXRI9Gx
>>294
もう一つ。仕事で使ってたりする?
goのcliツールはよく見るんだけど
rust製って何が有名なのかね?
ブラウザ以外で
2017/07/24(月) 16:50:51.12ID:emVJufwa
仕事で使ってるかは別としてcliツールは作りやすい印象
2017/07/24(月) 17:05:29.37ID:gGn38L0V
ripgrepしか紹介できないんだがなんかないのか
2017/07/24(月) 17:19:06.22ID:5AMOakOe
redoxosのシェルやエディタはunix用としてもビルドできるし
有名かは別として
2017/07/24(月) 18:24:11.57ID:v7SfrUaR
ripgrepはもちろんだが、tokeiも便利だよ
ion-shellもよく出来てる
2017/07/24(月) 18:47:46.45ID:xH7iVUfu
https://github.com/rust-unofficial/awesome-rust
2017/07/24(月) 19:32:19.52ID:TrXPl61y
tokei のレポジトリにある使用例

https://asciinema.org/a/d14m9g1d2cyo7wvrxh0z4ck6o

を見てみたら、F* と Ur/Web がカウントされていたので「あっ(察し」事案だった
2017/07/24(月) 23:36:39.90ID:mh/Tz+0K
確かにcliは書きやすくて社内で使ってるサポートツール類はほとんどRust製。
小さいツールだと関係者も少なくて説得しやすいし。

https://www.rust-lang.org/ja-JP/friends.html

こことか見ててもそういうパターンが多いように見える。
さすがに大規模なプロダクションコードをいきなり
置き換えとか無理だろうし。
2017/07/24(月) 23:43:54.02ID:Dtg+FNV7
Rustである旨味なさそうだけど学習用?
2017/07/25(火) 06:07:27.53ID:5XPEt11J
おお、色々情報ありがとう。
今のところgoのcliツールのほうが目立ってるのは、単純に1.0のリリース時期の違いによるものなのかな。


redox は気になるなー。rustのメモリ管理の仕組みからいってバグが少ないosになるのかな。ちょっと試してみたいかも。reduxと名前が似てるのがなんかやだけど
2017/07/25(火) 10:59:30.41ID:ULTUdplU
goのツールをパクって速いのを作ればいいのか?
goのツールは何があるの?
2017/07/25(火) 11:37:29.68ID:5XPEt11J
俺が知ってるのは
peco、ghq 辺りかな。
ghqは常用してるけど最近重くなってきてるからぜひrustで軽くなるならして欲しい。
多分gitにアクセスしてる部分がボトルネックな気がするけど。
2017/07/25(火) 11:45:28.60ID:5XPEt11J
あとgitをrustで書き直したらはやくなるとかないかね。
ライナスに喧嘩売ることになるかもだけど。
それをきっかけにlinuxをcにこだわるのをやめてくれるかもw
2017/07/25(火) 12:39:25.58ID:fQ81IbD6
pecoもghqもすでにrust版あるよ
2017/07/25(火) 13:18:07.15ID:E8ESHMbJ
wasmがもっと成熟すれば...
2017/07/25(火) 14:21:47.66ID:5XPEt11J
>>308
へー。リンク下さい
2017/07/25(火) 16:53:49.81ID:qEbQGi9S
>>310
https://crates.io/crates/rhq
https://crates.io/crates/skim
2017/07/25(火) 17:33:21.29ID:CUwpfKAw
skimええやん
2017/07/25(火) 17:38:52.31ID:qu0St3oz
>>307
Facebookが社内向けにMercurial(Python + C)をRustで一部?書き直したら速かったらしい

俺も、社内向けツールを前任者がgoで書いたのを幾つかRustに移植してる
ただの練習素材として移植してたけど、2〜3倍速くなったよ
2017/07/25(火) 19:00:41.47ID:FbhHJVqk
「Rust 1.19」リリース。union(共用体)をサポート
http://www.publickey1.jp/blog/17/rust_119union.html
2017/07/25(火) 20:32:46.37ID:5XPEt11J
>>313
おおー。魅力的な話だね。
メモリの使用量もrustだと減るようなきがするんだけどそのへんどうかな。
2017/07/25(火) 21:45:29.88ID:7Ef69C7C
rustは今の日本だと凄腕のプログラマが使ってるところはちょいちょい見かけるな。
もっとwebの人たちがたくさん布教すればいいんだろうけど、やっぱrust自体が難しいのかね。
C++とよくセットで名前が出てくるから、ビビる人が多いのかなーとも思う
2017/07/25(火) 22:11:08.39ID:FfK5LQFv
最近真面目に勉強し始めたけど潜在的に難解なバグを生み出す汚いコードを平気で書く人だと
コンパイルが通らないので辛いと思う。
若干煽り気味に言えばPHPやRailsだけやってプログラミングを分かった気になってちゃんと勉強してない人には無理。
2017/07/25(火) 22:21:26.92ID:5XPEt11J
ios -> objc, swift
android -> kotlin,java
web frontend -> typescript, javascript
web backend -> go,ruby,php
ってイメージだがrustはどこに入るの?
2017/07/25(火) 23:01:36.50ID:w/P80i1O
webassemblyの今後の成熟具合によっては、
web frontendに食い込んでいくかも
2017/07/26(水) 02:52:39.50ID:mSfCdN7l
>>318
希望的観測で言えば、
今までC/C++で書かれていたようなもの全てと、今goで書かれているものの半分 -> rust

WebAssemblyをほんとに必要としてるのは、ごく一部の人だと思う
2017/07/26(水) 08:56:45.29ID:ENBFGRGX
>>320
例えばc++ でUE4って書かれてるけど
そこをrustでってのはあるのかな?
ゲームエンジンとかはc++ってイメージだけどそれがrustでどうなるのか興味あるなー。
c++よりバグが少なくなってメモリ使用量も減るなら
家庭用ゲーム機とかの性能向上に役立ちそうだけど。
2017/07/26(水) 10:26:21.34ID:ENBFGRGX
https://rust-lang-ja.github.io/the-rust-programming-language-ja/1.6/book/dining-philosophers.html
このチュートリアルもうちょいなんとかならないのか
クロージャー周りの説明が抜けてるからなんだかふわっと触って終了みたいな感じになるんだけども。シンタックスの方から学んだほうがしっくりする。
2017/07/26(水) 12:59:44.03ID:TL1HhZT+
>>321
ゲームエンジンそのものがRustで書かれているのでなければ移行はないと思ってる
自分は据え置き開発だけど、ライブラリやツールやアセットパイプライン含めてC++ならそのまま利用する方が楽だし、ゲーム会社ならC++の資産やノウハウも蓄積されてる
324デフォルトの名無しさん
垢版 |
2017/07/26(水) 16:21:03.85ID:G2QlGkU/
>>323
環境的にc++14使うくらいは許されてるの?
2017/07/26(水) 18:20:47.88ID:1Yp0AYo7
>>324
基本C++11かな
部分的に14の機能も使えるかも
そのうち使えるようになると思われる
2017/07/26(水) 18:36:05.35ID:0VRUk0dC
>>320はゲームエンジンそのものがrustにならんかのーって話じゃないの
その上っ面はC++のままで良いんでない
2017/07/26(水) 19:49:44.76ID:FgKZS4eT
>>322
最新ではその項無くなったよ
2017/07/27(木) 00:05:30.43ID:YcR0VV5Q
>>327
なんややっぱりそうなんだ。
やっててあんまり面白いとも思えなかったしね。
今シンタックスのところを読んでるけど、goより学習コストは高いなーと思った。
メモリ管理のメンタルモデルは学習を避けることができないから、尚の事学習コストは高いよね。
使い始めに関してはc++より難しいんと違う?
2017/07/27(木) 00:15:56.27ID:YcR0VV5Q
goを学習するモチベーションとなったのはgoroutineで並列処理を簡単に書けるからだったんだよね。
phpのバッチ処理を学習期間は2,3日で
goで並列処理を書けるようになった。

まぁ書けたってだけでgoの流儀って独特だから、その後の深淵に結構はまっていったんだけど。


深層学習の為のpython。
iosのためのswift。
みたくrustの始めるきっかけとなる分野ってなんかないのかな?

rustを書きはじめる皆さんのきっかけを教えてください。
2017/07/27(木) 08:45:36.82ID:alz7xNNS
>>329
社内でのC++開発に疲れて代替を探して。
ブライベートで使って、社内もこれにしたいと妄想する。そして誰も社内でRust使えない。
2017/07/27(木) 09:07:26.49ID:alz7xNNS
>>313
Rustにしちゃって、あなたの後任が困るとか、そういうことはないの?
社内でもRust認められてる?
332デフォルトの名無しさん
垢版 |
2017/07/27(木) 10:08:19.56ID:JZl+5b/l
コードに問題があればcargo runでエラーが出ますけど
ビルドせずチェックだけを行う方法ないですか?

あと定番のlintツールも教えてください
2017/07/27(木) 11:54:01.80ID:NVUZFqS5
cargo check
clippy
2017/07/27(木) 12:47:34.70ID:tmRnr4Iu
>>331
前任者も認められてたからgo使ったわけじゃなく、goがもっとマイナーだった頃に勝手に使ってただけだし
俺も存在するかどうかわからない後任者など気にしてない
うちは大きな会社じゃないので、何を採用するかはプロジェクトリーダー次第
2017/07/27(木) 14:28:39.09ID:MedrFN4m
是非rust使ってレポートしてほしい
2017/07/27(木) 21:27:35.77ID:YcR0VV5Q
rustって課題を解いていく感じの学習サイトってないすかね?
goとかjsだとあるんだけど、、、
2017/07/28(金) 00:41:42.43ID:eqr+g7ZD
rusr by example 本家
https://rustbyexample.com

日本語訳
http://rust-lang-ja.org/rust-by-example/
2017/07/28(金) 08:34:02.73ID:O7VztC89
>>337
わぉ。ありがとうございます。普通にあってよかった
2017/07/28(金) 10:12:39.22ID:APGd6g7o
nightlyって頻繁に更新ありますか?
モバイルに接続してるのであんまり通信したくないからstable選んだんですけど
clippyがnightlyでしかインストールできないのつらい
2017/07/28(金) 13:36:38.25ID:IiZPJKRx
てすと
2017/07/28(金) 17:20:05.54ID:HRHd+c6j
cargo checkだと全てのrsファイルをチェックするので
cargo check hoge.rsみたいに特定のファイルを指定してチェックする方法ありませんか?
2017/07/28(金) 17:54:04.02ID:ABEdHekZ
Stableでは無理
Incremental compilationの安定化を待ちなされ
2017/07/28(金) 18:24:34.83ID:cPwtoBYF
>>342
あ、そのモジュールが他のモジュールに全く依存していない場合はrustc hoge.rs --crate-type=lib --emit=metadataが一応使えるんだった
ただしこれはカレントディレクトリにゴミをまき散らすからあまりおすすめできない
2017/07/28(金) 21:55:20.59ID:3/dxxKLW
REPLが欲しいんですが安定したやつないかな
2017/07/28(金) 22:25:19.67ID:kWrQnfQi
目の前の便利な箱で調べること出来ない教えて君は
実はRustで作った人工知能試験で動作試験してるんじゃなかろうな
2017/07/28(金) 22:36:44.17ID:GOfdf3yM
いまbookやってるんですけど
fn main() {
let x = 1;
println!("Hello")
}
これ1回目buildすると
warning: unused variable: `x`
--> src/main.rs:2:9
|
2 | let x = 1;
| ^
|
= note: #[warn(unused_variables)] on by default
って出るのですが、2回目buildするとこの警告が出なくなる
なんででしょうか?
2017/07/28(金) 22:40:19.95ID:jE9FvNjp
コンパイルの結果がキャッシュされているから
2017/07/29(土) 00:47:07.63ID:DIZfrj77
rustってまだ安定してない感じ?
開発環境は何がおすすめなんです?
vscodeを試したけどあんまりrustに対応してない感が
2017/07/29(土) 02:31:25.76ID:ZD4o/AdV
>>348
俺はIntelliJ派だから
2017/07/29(土) 02:34:36.68ID:7woiJ3eO
そうですか
2017/07/29(土) 10:51:47.46ID:Xgmp5DuD
Rustについて調べているのですが2点ほど質問です
・所有権、借用権ってどのようなケースを想定した機能なのか?
 並行処理を行うコードを書く時には同期ミスによる破壊を防止できて便利そうだけど上手い活用ケースを想像できない
・OS無しで動かすコードを書くケースでRustが謳うメリットはどの程度いかせるのか?
 メモリマップドレジスタへアクセスするためにunsafeと生ポインタを多用することになる
 このようなケースでコンパイル時の安全性の検査条件などはカスタマイズできたりするのか
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況