プログラミング言語 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
653デフォルトの名無しさん
垢版 |
2017/08/24(木) 10:02:40.03ID:N2QX0p2s
>>652
> よく分からんけど、週末カフェでテザリングしながら開発する分には全く困ったことないけどな

節子それはオンラインだ。
飛行機に乗ってる時とかはそれなりの時間オフラインになりそう。
2017/08/24(木) 10:56:17.70ID:yyGwhDVO
>>653
清太よ、>>649の「自宅ならともかくモバイルで開発しようとするとオンライン必須は迷惑 」へのレスだよ
この「モバイルで開発」はテザリングを指しているのではないのであれば、どういう環境のこと言ってるんだろうね
2017/08/24(木) 11:36:23.74ID:nec4MnrL
移動中という状態を除外したら移動体通信ではなくて只の無線通信
2017/08/24(木) 18:47:05.57ID:NSzs0jC1
個人的にはcargoが色々手を回しすぎなのが問題だと思うよ
ちょっと想定外だけど真っ当な使い方をしようとすると面倒が増えて、それをissueとして投げるしか無いからcargoがますます巨大になる
https://github.com/rust-lang/rust-roadmap/issues/12
↑でもちょっと出てるけど、今のcargoはインターフェイスとしてそれなりに使えるので、rustc以上cargo未満なツールを作ってくれるとありがたい
他のビルドツールとの連携とか今はかなり面倒。
2017/08/25(金) 06:54:52.63ID:fv88sy22
struct Node<T> {
data: T,
}
があって、

struct Container<T> {
nodes: Vec<Rc<RefCell<Node<T>>>>,
}
のようなContainerを定義して、このコンテナから&Tに直接アクセスするiteratorを作りたい
のですが、どうしたら出来るでしょうか?(そもそも出来るのでしょうか?)

雰囲気的には↓のような感じになると思うのですがライフタイムがよく分かりません。

https://play.rust-lang.org/?gist=fb73c80c4303adc14083d049de6ccf3e&;version=stable
2017/08/25(金) 12:13:31.91ID:wqoYH6g/
>>656
そういう公式ツールの増大は開発環境を複雑&巨大にするばかりだからやめて欲しい
cargoサブコマンドを公式rust libよろしく外部に吐き出してしまえば鬱陶しい文句も出なくなりそう
2017/08/25(金) 15:09:41.26ID:yTj1cv1p
>>657
この例ではRefCell::borrowが返すRef (owned)から<Ref as Deref>::derefによってRefからの借用として&Node<T>を得ているわけだけど、
<NodeIter as Iterator>::nextの末尾でRefがdropされているから借用は関数の外まで生き残らない

&Tを直接返す方法があるとは思えないけど、Ref<'a, T>を返すことはできる
https://play.rust-lang.org/?gist=5c4a7b0de00dcc6ec0612b8846dd6bfb&;version=stable
2017/08/25(金) 15:38:40.83ID:J7NBnr1n
>>659
Refを返すのは思いつきませんでした。
ありがとうございます。それでもよい気がするのでやってみます。
2017/08/26(土) 10:47:16.34ID:O+zDlIdw
このスレで話題にするのはアレかもしれないが、 Servo nightly build が
いつ試してみても盛大にぶっ壊れていて、開発順調なのか心配になる。

Rust で開発していると mutability で詰むことがあって、よーく考えてデータ構造なり
を変更すればうまく解決できることが多いし、コードもより良くなっていることが多い。
でもその変更って毎回異なった自明でないものだし、局所的なもので済まないこともある。
Servo くらい大規模なプログラムになったとき、もうどうしようもなく詰んだりしないんだろうか。
2017/08/26(土) 11:32:33.62ID:mrwT3sC4
やっぱブラウザ作るには向いてません
てなったら悲しいな
2017/08/26(土) 12:07:35.67ID:O+zDlIdw
気づいたら struct のメンバがほとんど RefCell になってるとかありそう。
2017/08/26(土) 12:14:24.38ID:3J5PaXHT
Rustに熟知してれば変更は自明であり、機能分解点を精査してれば変更は局所的なもので済むんでないかな
小規模なモノを無計画に作るにはRustは適さない言語だと心底思う

Servoは長いこと開発続けてるけどあんまり精力的に開発する気なさそうだよなぁ
Mozillaが営利団体として潰れそうだし・・・実際Mozilla Japanは潰れてるorz
2017/08/26(土) 12:48:20.45ID:qL+5xDF6
キノコ雲を見上げるsteveklabnikの画像がRust界隈でにわかにミーム化しつつあって笑う
2017/08/26(土) 16:16:56.49ID:1psTTOfA
servoで作ったモジュールがfirefoxに取り込まれていっているし、実験プロジェクトとしては成功なのでは
2017/08/26(土) 22:25:08.80ID:YYTb5WfA
Rustに限った話ではないですけど
・構文解析
・ハイライト
・オブジェクト追跡
・入力補完
などの機能を持ち高速に動作するテキストエディタってないですかね?
JavaやNode.jsを使った物は総じて動作が重いですし、Cなどで書かれてネイティブな物は機能性で劣る気がします
668デフォルトの名無しさん
垢版 |
2017/08/27(日) 01:57:19.50ID:OZ/i8G6F
>>667
Node.jsで作ったエディタが重いってそれVSCodeの前で言えるの?
2017/08/27(日) 02:04:39.75ID:mxFQINt9
ageるなアホ

VSCodeつーかAtomは実際重たいからな
あとスレッドぶん回すからノートPCで動かすとバッテリー消費がシャレにならん

JetBrainsのCLionにRust Plugin入れたらブレークポイントも貼れるし良いぞ
誰かJetBrainsから有料版出る前にブレークポイント貼れるようにするPR出さないかねぇ
地味に高いから購入する気にはならんのだよな
2017/08/27(日) 02:12:16.71ID:PbodRtd5
Rustプラグインを単体の製品にするとは思えんけどねえ
彼らは例えばScalaのプラグインとかも手がけているけど別に製品化している訳じゃないし
2017/08/27(日) 02:34:48.02ID:SDSllFYF
VSCode重たくて殺意生える
いちいちワンテンポ遅いんじゃ
2017/08/27(日) 04:11:59.30ID:y+D9Ax/7
Vimすらも重いことあるんだけど俺
2017/08/27(日) 07:38:59.45ID:mxFQINt9
vi使えよ、viの軽さに慣れたらvimはそりゃ重たいでしょ

>>670
Scalaなんて10年以上前に流行った言語のIDEを今更有料化しても売れないだろうからな
Rustは今現在流行ってる(?)言語だし売るんじゃねーのかね
2017/08/27(日) 10:25:11.28ID:y+D9Ax/7
viとか使ってるやついたのか
2017/08/27(日) 12:17:29.76ID:PbodRtd5
Xi使おうぜ
2017/08/27(日) 12:49:38.49ID:PVSAtTcW
Atom (Electron) が Blink から Servo に乗り換えれば軽くなるのだろうか?
2017/08/27(日) 19:27:41.18ID:gsqvcCn0
vscodeって重いよな?起動も動作も軽快とは言い難い
むしろvscodeが軽快に使えているという人がいるならどのような環境で使用しているのか聞きたいわ
SSDを乗せた標準電圧版Coreiモバイルノートでも結構もっさりだし
2017/08/27(日) 19:39:49.26ID:PbodRtd5
もっさりとかいう言葉じゃ意味不明だからせめて数値で言ってくれ
2017/08/27(日) 19:47:01.83ID:SLqFnPu1
何を妥協して「せめて」なのか分からんが数値あげてやろう

MacBookでIntelliJが6時間くらい保つ所が3時間くらいしか保たない程度に無駄処理多い
プロセス上の待機スレッド数も10〜20くらい違った覚えがある

待機中でもそんだけスレッド回してるから、コーディング中、ビルド中の負荷もでかくなるよね
VSCodeを愛用してるコーダーはemacs愛用してるコーダー並みにマゾだと思う(viユーザ感
2017/08/27(日) 19:49:16.80ID:SLqFnPu1
>>678
あ、レスするならついでに「せめて」で説明要求を妥協した点を教えてくれい
確認してる範囲であれば答えるよ
2017/08/27(日) 23:25:25.14ID:tvWh4D3N
好きなエディタを使ったらええ
2017/08/28(月) 09:34:01.20ID:A8OmMbPi
全くだ、重たいと事実を指摘されても発狂することなく
重たくても他に良い所があるから使ってるんだと言い切っていたemacs愛用者は良い人たち

>>675
バックエンドRust, フロントエンドSwift, 通信プロトコルJSON, プラグインサンプルPython
ごった煮過ぎて笑うわw
2017/08/30(水) 13:54:58.32ID:AB0hyKA3
rustってやっぱりスペックいいパソコンと高速なネット回線がないと厳しいですね
2017/08/31(木) 22:48:16.13ID:agJG8fpm
普通の言語だと処理の一部を関数に切り出すのとか簡単に出来るけどRustだと返り値の方が分からなくてそれが難しいことがあるよね
2017/09/01(金) 10:25:57.73ID:pDFuyP/L
let a: () = { ... };

でコンパイラがエラーとして正しい型を教えてくれるぞ。
2017/09/01(金) 13:32:10.36ID:PRuVKL7F
クロージャにすれば良い
なあに、きっと最適化で普通の関数と同じ扱いになるさ(適当)
2017/09/01(金) 20:19:45.83ID:Mxd80Z9N
Rustのスレあったんだね
2017/09/01(金) 20:51:46.56ID:d10AKhdK
おい、時報はどうしたんだ?
689デフォルトの名無しさん
垢版 |
2017/09/01(金) 23:41:11.07ID:62CxLGbq
unsafeだらけ
2017/09/01(金) 23:45:28.89ID:PRuVKL7F
Pijulで開発されているらしきcrateを発見してrepositoryリンクを辿ってみたらNot foundが返ってきた
https://crates.io/crates/futures-derive
2017/09/02(土) 00:14:47.90ID:aRnAy5mn
スクワット中なんじゃないの, 筋力ついたらリリースされるでしょ
2017/09/02(土) 00:45:15.54ID:Qzt2A3g3
Rustが最強のプログラミング言語である証明
https://hayato.io/2017/icfp-rust/

遂に証明されたか……
2017/09/02(土) 01:24:01.14ID:X2T/f4uE
Round 1の結果のみで語られてもねえ
2017/09/02(土) 01:50:33.08ID:cF7LUBE8
なんかnightlyにPythonのジェネレータ入ったとか聞いたんだけど誰得?
もうtokioつかFutureあるし。
2017/09/02(土) 08:16:03.50ID:oilxAadu
いつまでたってもスライスパターンが標準にならないのなんで?
ほかの関数型言語みたいな言語標準?のリストと、そのパターンマッチ、があればいいけど
そういうつもりもないんならスライスパターンをはよ強化&標準装備してほしいんだが
696デフォルトの名無しさん
垢版 |
2017/09/02(土) 08:35:22.00ID:zv/5K5Jn
私は最強のRust以外のプログラミング言語で書く気はありません
2017/09/02(土) 08:40:19.17ID:MacxmZWQ
Featureを駆使するので楽になるのはそうだが、
逐次処理的に書けるasync/awaitの方がさらに楽なので
それを実現するための要素としてgeneratorは必要

あとIteratorの実装も楽になる
2017/09/02(土) 08:40:57.03ID:MacxmZWQ
FeatureじゃなくてFuture
2017/09/02(土) 11:39:08.16ID:Nnknp9qO
>>692
なんていうか、自分のチームの優位性を示してドヤろうとしたけど決定的な証拠がなかったから自分に有利な調整をしたという感じだな
特定のチームへの非難をしつつそのチームの人間のツイートを自分の主張の補強に使っているのもいろいろアレ
まあ競技プログラミング界のゴタゴタはどうでも良いけどとりあえずRustを巻き込まないで欲しいわ
2017/09/02(土) 12:32:15.66ID:3cz+aWzV
>>692に対してちょこちょこマジレスがいるけど
正規化の文章の注釈[4]でウォーズマン理論とか引っ張り出してるからな
2017/09/02(土) 13:10:10.49ID:U8pYefIa
マヌケは見つかったようだな…ロクにリンク先も読めないのに批判する口だけの能無しが…
2017/09/02(土) 17:38:03.40ID:pn8ujE89
風情のないやつらだ
2017/09/02(土) 19:03:59.64ID:AHW4eZK5
ウォーズマン理論により各言語の普及率(PG人口比)でスコアを倍加すると
数の暴力が発揮されJavaが最強のプログラミング言語であることが証明される

とでも言えば風情があるのかね?
2017/09/02(土) 19:58:54.78ID:X2T/f4uE
風情駆動開発
2017/09/03(日) 01:23:29.76ID:KzrJfOQ0
ネタにマジレス以下の寒い話だな
706デフォルトの名無しさん
垢版 |
2017/09/03(日) 02:55:54.90ID:8KnlJyLG
ネタに対する模範解答って『やはりRust最強だな!』とか?
2017/09/03(日) 09:50:38.50ID:YZmIGy7N
>>705
風情の有無を話してるのであって、寒さ暑さを話してるんじゃないんだけど

>>706
まずはageないことから始めよう、な?
708デフォルトの名無しさん
垢版 |
2017/09/03(日) 11:35:08.63ID:CVrfF8Ix
>>702
わび・さび ですよね、わかります
I know. sorry & rust
2017/09/03(日) 12:50:33.18ID:E+2Ill1j
お前ら、associated constantsがstableになったってのにいつまで下らない話を続けているんだ
2017/09/03(日) 13:04:30.79ID:Zk5wiRrT
関連定数が乗ったなら、次は依存型だ!
2017/09/03(日) 13:07:07.67ID:9s1YDGRT
依存型はやり過ぎだ!高階型でいい!
2017/09/03(日) 14:56:28.19ID:3Ui33to1
impl Trait と トレイト境界の特殊化の実装が先だろ……
これのせいで書けないコードあるんだぞ
2017/09/03(日) 14:59:38.46ID:E+2Ill1j
きっとimpl periodのうちに全部実装してくれるよ(適当)
2017/09/03(日) 16:40:58.80ID:Sqyt1HzW
async を汎用的に実装するなら モナド ( M<T> ) 的な高階型が必要?
2017/09/03(日) 17:05:48.88ID:4Saw+NMi
emccなしでwasmれるって本当?
2017/09/03(日) 20:29:20.09ID:HVXRIsjy
linkerとしてemcc必要では
2017/09/04(月) 01:02:25.35ID:TiSfjsBP
そもそもwasmなんて誰が必要としてるんだという問題がある
実際現状wasm使うよりV8の方が速いだろ
2017/09/04(月) 02:18:35.33ID:yWQauj9l
実験的な機能に現時点での必要性を求められても……
2017/09/04(月) 03:38:50.42ID:B0/qvj/R
JSの分野でもRust使いたいじゃん
2017/09/04(月) 03:56:46.84ID:acsdbygY
asmjsが早いんだからランタイム側の対応が十分進めばwasmも早くなるでしょ
2017/09/04(月) 10:53:07.99ID:e2EV4sJ/
>>719
Rustなんて実用にならない言語未満使うくらいなら、クソとはいえ言語の体なしてるJS使うわクソ
2017/09/04(月) 12:07:05.02ID:Wptm5Fxj
好きな言語を使ったらええ
2017/09/04(月) 20:51:30.52ID:hGu6xlI4
お前らslackにまけとるやんけ
2017/09/04(月) 23:53:57.54ID:yWQauj9l
いつの間に戦っていたのか
2017/09/05(火) 02:01:35.76ID:a/Cb1ZW9
Hack&Slack
2017/09/05(火) 04:46:57.50ID:kj7TSLdS
@seanmonstarがMozillaを辞めるとか言いだして一瞬ギョッとしたけど、次の職場ではフルタイムでRustを使うと言っているからhyperの開発はむしろ加速しそう?
http://seanmonstar.com/post/164869651177/bye-mozilla-hello-bouyant
2017/09/05(火) 07:50:37.72ID:JsNUX7wh
rustってまだ俺の中で実験言語だけど
そろそろプロダクト作ってる人とか出てる?
2017/09/05(火) 10:31:25.11ID:Xe9ypjwu
>>727
噂では泥箱あたりが使い倒してるとか
ずっと前から言われてるけど未だにコードの一つも公開されてないからただの提灯持ちで実際は使われてないと見てるがね
2017/09/05(火) 10:34:56.85ID:Xe9ypjwu
Rustが1.0過ぎてから今に至るまで、Rust使ってるって主張する企業は
モジカス自身と個人情報おもらしの一件で何かしら話題とお金が欲しい泥箱しか見ないって時点で色々と察するべきなんだよ

お前らいい加減目を覚ませ
2017/09/05(火) 12:37:41.86ID:xNvKf2Ex
https://www.rust-lang.org/en-US/friends.html
2017/09/05(火) 13:37:05.48ID:Fbd5ldy5
見たことのないフレンズばかりだね
2017/09/05(火) 14:44:43.29ID:Xe9ypjwu
>>730
そのうちモジラのフロント企業じゃないのはいくつだい?
2017/09/05(火) 14:48:42.01ID:a/Cb1ZW9
ID:Xe9ypjwu
この異常者まだ居たのか
2017/09/05(火) 16:16:47.13ID:yjuOh0Qw
LINEはモジラのフロント企業
2017/09/05(火) 17:49:37.05ID:RCCGTejb
dropboxやsamsungもmozillaのフロント企業の可能性が・・・?
実はmozillaってすごい会社なんじゃね
2017/09/05(火) 19:27:40.10ID:JsNUX7wh
rustっていまいち売りがないよな。
ちょっとしたツールを作るっていうのには向いてない気がする。
Goくらいの適当言語がちょうどいい。
2017/09/05(火) 19:44:37.37ID:RqVBFvg5
ちょっとしたではなく、きちんとしたソフトウェアを書くための言語だよ
2017/09/05(火) 19:51:45.33ID:gLY7ZEwx
Rustは、型システムがきちんとしてないとイライラしてしまう人向けの言語だよ
2017/09/05(火) 23:06:17.75ID:iU8sfTGh
システムに近いところを触るバックエンドのデーモン等に向いた言語だよ
2017/09/06(水) 00:48:38.63ID:UIwOcimL
SIGSEGVに絶望したくない人のための言語
2017/09/06(水) 09:02:56.43ID:Sz3zXSu8
パッケージのインストールだけで長時間かかるのだけ何とか改善してくれる神様たちっていないんですかね
issueにそういう要望とか出ないものですかね
2017/09/06(水) 10:49:22.58ID:XzXTbCma
前にも出てたけど、CARGO_TARGET_DIRを設定すればさっきそれコンパイルしたじゃん!ってのが無くなる
まあコンパイルそのものは遅い方だからそれは我慢する
2017/09/06(水) 16:57:20.79ID:LVeCvIyg
Celeronの1コア、メモリ1GBなのでパッケージによっては5時間経ってもコンパイルが終了しないんですよね
例えばclippyとか。
パッケージのアップデート毎に結局更新されたものをコンパイルし直すからCARGO_TARGET_DIRの設定してもあまり変わらないような気もします
Core i7やryzen、メモリ8GBとかだともっと早く終わりますかね?
2017/09/06(水) 17:03:33.32ID:SQ4/Zkph
お前には Core 2 Duo がお似合いだ
2017/09/06(水) 18:26:50.13ID:n6C9v4DP
コンパイラ、コンパイラドライバ、パッケージマネージャをそれぞれ独立して利用しやすくして欲しい
ポストC/C++を目指しているはずなのに言語仕様と関係のない制約が増えるのは勘弁
2017/09/06(水) 18:51:54.27ID:l44s4mC+
https://github.com/mozilla/sccache
2017/09/06(水) 19:10:48.28ID:VuLMXPgk
>>745
java, phpが独立した3rd tools乱立でひどいことになったから
次世代は低レベルと高レベルの2レイヤーを公式に提供しようぜって現代の風潮でそれに沿ってると思うが
あいつら個々に独立したビルドシステム, テスター, パッケージマネージャー, ランチャーが乱立して辛い
rustやgoは公式で色んなものが利用しやすく整備されてて涙が出るよ, マジで

rustの公式ツールに不満があるなら3rd toolsを自分で作れば良いよ
誰も作るなとは言ってなくて、作ること自体は止められないはず、賛同する人がどれほどいるのか懐疑的だけど
2017/09/06(水) 19:12:16.98ID:VuLMXPgk
低レベル:rustc, 高レベル:cargo って意味な
2017/09/06(水) 19:37:16.90ID:n6C9v4DP
Rust=Cargoな感じになっているように思うのは俺だけなのか?とりあえずCargoを使え的な記事ばかりでrustcを活用する記事はほとんど見ない
ちょっと高度な事をしようとすると絶望的に情報がない。さらにrustcの不安定性(機能しないオプションがある)が追い打ちをかけるw
2017/09/06(水) 20:12:23.66ID:OeC1JAcK
まあ今のRustとmakeを組み合わせようとはちょっと思えないな
2017/09/06(水) 20:27:57.04ID:b9fzClHU
ビルドにcmakeを要求するのに、エラーメッセージが分かりづらくて
はっきりとcmakeの必要性が分からないcrateが結構ある

依存ライブラリ一つ一つまでreadme読まないし
2017/09/06(水) 20:57:11.59ID:58f4P28i
cargo3兄弟
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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