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/
探検
プログラミング言語 Rust 4
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2017/10/14(土) 17:38:14.04ID:uWD69LeP2017/11/03(金) 19:05:06.62ID:q9Q8QP2Y
>>63
Scalaも無かった気がする
Scalaも無かった気がする
2017/11/04(土) 09:52:47.01ID:ZfOcIIq3
Haskellで言うNun型クラスみたいな奴ってことか?
トレイトでやろうとすると要定義メソッド多すぎたり、
累乗みたいな計算の実装が遠回りになったりしそうできつそうに見えるな
トレイトでやろうとすると要定義メソッド多すぎたり、
累乗みたいな計算の実装が遠回りになったりしそうできつそうに見えるな
66デフォルトの名無しさん
2017/11/04(土) 10:16:41.16ID:sRI2IP6J Haskellは数値も抽象化してるせいでパフォーマンスにかなり影響与えてるしね…
2017/11/04(土) 11:00:10.28ID:ZfOcIIq3
s/Nun/Num/
Scalaはその辺を、暗黙の型変換でシームレスに扱おうとして闇を量産してるんだよな
Rustは今んとこ特になんもしてない感じか
Scalaはその辺を、暗黙の型変換でシームレスに扱おうとして闇を量産してるんだよな
Rustは今んとこ特になんもしてない感じか
2017/11/04(土) 11:30:17.70ID:I+CIRt80
numクレートじゃいかんの?
https://github.com/rust-num/num
https://github.com/rust-num/num
2017/11/05(日) 10:17:10.41ID:/rlXjeS/
numクレートが標準にないのが嫌なんだろうけど、std::timeみたいに標準サポートやーめたってなりそう
Into/From使えば別に困らんしと需要は少ないのではなかろうか
Into/From使えば別に困らんしと需要は少ないのではなかろうか
2017/11/07(火) 20:38:24.64ID:vWfvN4c5
https://ideone.com/XBh9VX
・AA treeを実装
・1.8.0で主に確認(ideoneは1.14.0)
・Rc<RefCell<Option<Node<T>>>>を中心に実装
・ふんだんにRc::clone()を乱発
・Tも<T: Copy>でコピーしちゃう
・肝心の木の操作部分は、wikipediaでの表現に近くなるように表現
・基本的によく分かってないので色々奇妙な事をしているかもしれない
昔からチラホラ「Rustで木構造は苦しい」と耳にしてて興味があったのと
最近ほかのスレで実装してた人がいたのをみて触発されたので書いた
最初はOption<Rc<Node<T>>>で書いてたけど
RcとRefCellの組み合わせを試してみたくなって方向転換
けっきょくどっちが正解だったのかは不明
・AA treeを実装
・1.8.0で主に確認(ideoneは1.14.0)
・Rc<RefCell<Option<Node<T>>>>を中心に実装
・ふんだんにRc::clone()を乱発
・Tも<T: Copy>でコピーしちゃう
・肝心の木の操作部分は、wikipediaでの表現に近くなるように表現
・基本的によく分かってないので色々奇妙な事をしているかもしれない
昔からチラホラ「Rustで木構造は苦しい」と耳にしてて興味があったのと
最近ほかのスレで実装してた人がいたのをみて触発されたので書いた
最初はOption<Rc<Node<T>>>で書いてたけど
RcとRefCellの組み合わせを試してみたくなって方向転換
けっきょくどっちが正解だったのかは不明
2017/11/07(火) 20:46:48.79ID:pha33qDk
ただのAA木に Rc なんて要らんだろ。Option<Box<Node<T>>> で済むだろ。
2017/11/08(水) 00:56:51.98ID:hd1pqs3m
AA木の削除操作はwikipediaのやつだとpred(自分より小さい値のうち一番大きいもの)とsucc(自分より大きい値のうち一番小さいもの)を
子ノードから取ってきた後に子ツリーに対して再帰的にdeleteをしてくってなってるけど、ノードの値がNoCopyだとRc使うかunsafe使うかしないと無駄なコピーが発生しない?
子ノードから取ってきた後に子ツリーに対して再帰的にdeleteをしてくってなってるけど、ノードの値がNoCopyだとRc使うかunsafe使うかしないと無駄なコピーが発生しない?
73デフォルトの名無しさん
2017/11/08(水) 01:15:10.36ID:T1vINdZw >>70
「他スレで実装してた人」って俺のことだな。
↓のスレのことだろ?
次世代言語Part7[Go Rust Swift Kotlin TypeScript]
https://mevius.5ch.net/test/read.cgi/tech/1508403098/
木構造は持ち主(親)が1つに限定されるはずのでRcもRefCellもいらないと思うよ。
実際 、自分はOption<Box<_>>という形で実装してるし。
RcとRefCellの練習するんならグラフ構造とかがいいじゃないかな。
グラフ構造ならRcとRefCellはほぼ必須になるんじゃないかな。
グラフ構造はRustどころかC, C++でも実装したことないから詳しくは分からんけども。
>>72
俺の実装では、Option型のtakeメソッドを使ってるぞ。
そしてtakeメソッドの中ではunsafeが使われてる。だからコピーもないはず。
そのことじゃないのか?俺のほうが何か勘違いしてる??
「他スレで実装してた人」って俺のことだな。
↓のスレのことだろ?
次世代言語Part7[Go Rust Swift Kotlin TypeScript]
https://mevius.5ch.net/test/read.cgi/tech/1508403098/
木構造は持ち主(親)が1つに限定されるはずのでRcもRefCellもいらないと思うよ。
実際 、自分はOption<Box<_>>という形で実装してるし。
RcとRefCellの練習するんならグラフ構造とかがいいじゃないかな。
グラフ構造ならRcとRefCellはほぼ必須になるんじゃないかな。
グラフ構造はRustどころかC, C++でも実装したことないから詳しくは分からんけども。
>>72
俺の実装では、Option型のtakeメソッドを使ってるぞ。
そしてtakeメソッドの中ではunsafeが使われてる。だからコピーもないはず。
そのことじゃないのか?俺のほうが何か勘違いしてる??
7470
2017/11/08(水) 20:27:30.89ID:iPjR8aCv https://ideone.com/4BnXSI
・AA treeを実装
・1.8.0で主に確認(ideoneは1.14.0)
・今回はOption<Box<Node<T>>>中心に実装
・Tも<T: Copy>でコピーしちゃう
・肝心の木の操作部分は、wikipediaでの表現に近くなるように表現
・前の奴>>70のコピペから開始してるから妙なとこ残ってるかも
>>72
wikipedia見ただけでそのへんに着目できたのってすごい
前回は実はそこで一旦あきらめてコピーとOption<T>の導入に踏み切った
今回もTのコピーうんぬんについては挑戦せずそのまんまコピーしてる
・AA treeを実装
・1.8.0で主に確認(ideoneは1.14.0)
・今回はOption<Box<Node<T>>>中心に実装
・Tも<T: Copy>でコピーしちゃう
・肝心の木の操作部分は、wikipediaでの表現に近くなるように表現
・前の奴>>70のコピペから開始してるから妙なとこ残ってるかも
>>72
wikipedia見ただけでそのへんに着目できたのってすごい
前回は実はそこで一旦あきらめてコピーとOption<T>の導入に踏み切った
今回もTのコピーうんぬんについては挑戦せずそのまんまコピーしてる
2017/11/09(木) 01:32:36.02ID:kYfp6pnU
>>73 Option::takeを使って子ノードのsuccかpredの値を取ってくるとすると、その子ノードの値はNothingになるよね?
wikipediaの例だとその後にdeleteを再帰的に行うことで(delete内で適宜skew&splitを呼んでる)バランスを保つよう処理してるけど、Nothingが入ってる時点でうまく動く保証が無い
そのスレで書いてくれたものは要素としてCopyであるi32を使ってるから問題が見えないんじゃないかと思う
>>74 自分も>>73の例を見る前に多相型でちょっと書いてみて、どうすんだこれって気付いたんで偉そうなこと言えないっす
Rust固有の問題じゃないような気がしてるよ。C++とかで多相型にしてみたとしても、「子ノードの値を自身の値にする」って部分でコピーが行われる気がしてならない
一瞬だけどAA木の中に同じ値を持つノードが発生しているから、AA木の実装を綺麗に書こうとしたらT:Copy or T:Cloneって制約は必須なんじゃないかと
wikipediaの例だとその後にdeleteを再帰的に行うことで(delete内で適宜skew&splitを呼んでる)バランスを保つよう処理してるけど、Nothingが入ってる時点でうまく動く保証が無い
そのスレで書いてくれたものは要素としてCopyであるi32を使ってるから問題が見えないんじゃないかと思う
>>74 自分も>>73の例を見る前に多相型でちょっと書いてみて、どうすんだこれって気付いたんで偉そうなこと言えないっす
Rust固有の問題じゃないような気がしてるよ。C++とかで多相型にしてみたとしても、「子ノードの値を自身の値にする」って部分でコピーが行われる気がしてならない
一瞬だけどAA木の中に同じ値を持つノードが発生しているから、AA木の実装を綺麗に書こうとしたらT:Copy or T:Cloneって制約は必須なんじゃないかと
76デフォルトの名無しさん
2017/11/09(木) 03:38:46.05ID:x23Vytiv >>75
ああ、なるほどね。
確かにi32の部分をTに置き換えると T: Copy か T: Clone が必須になるね。
これは確かに無駄なコピーが発生してるわ。
まぁ、この実装だとおそらく元になったwikipediaのコードの時点で
無駄なコピーが発生してることになるよね。
wikipediaの場合はi32(4byte)くらいならコピーしてもいいやってスタンスなのかな?
Tの場合は何byteになるか分からないからそういうわけにもいかないということかな?
これ以上は考えるのが面倒になってしまった。。。orz
ああ、なるほどね。
確かにi32の部分をTに置き換えると T: Copy か T: Clone が必須になるね。
これは確かに無駄なコピーが発生してるわ。
まぁ、この実装だとおそらく元になったwikipediaのコードの時点で
無駄なコピーが発生してることになるよね。
wikipediaの場合はi32(4byte)くらいならコピーしてもいいやってスタンスなのかな?
Tの場合は何byteになるか分からないからそういうわけにもいかないということかな?
これ以上は考えるのが面倒になってしまった。。。orz
7770
2017/11/09(木) 19:44:06.23ID:1u6Rcsa8 https://ideone.com/dFoFa9
・>>70の<T: Copy>を<T: Clone>に変更
・ついでにRc付きで運用してみて様子を観察
でっかい構造体の場合はこういうふうなのがマシなのかな
Clone運用してるとこに、さらにRcもってくると気持ちよすぎ
おかげで内部の操作に由来した余計な割り当ては無くなった
CloneトレイトとRcには敬意を表したい
>>75
そこんとこの苦悩はもうしゃあないのかな
それについてはもう思考停止します
・>>70の<T: Copy>を<T: Clone>に変更
・ついでにRc付きで運用してみて様子を観察
でっかい構造体の場合はこういうふうなのがマシなのかな
Clone運用してるとこに、さらにRcもってくると気持ちよすぎ
おかげで内部の操作に由来した余計な割り当ては無くなった
CloneトレイトとRcには敬意を表したい
>>75
そこんとこの苦悩はもうしゃあないのかな
それについてはもう思考停止します
7877
2017/11/09(木) 19:45:08.89ID:1u6Rcsa82017/11/09(木) 20:45:25.15ID:EdyTgEfO
rustのことはわからんけどコピーしないAA木は実装したことがあるので口を出させろください
「succかpredの値をnodeにコピーしてからsuccかpredを削除」しているわけなので
リンクを繋ぎ変えてsuccかpredとnodeをまるごと入れ替えるようにすれば、コピーは要らなくなりませんか
「succかpredの値をnodeにコピーしてからsuccかpredを削除」しているわけなので
リンクを繋ぎ変えてsuccかpredとnodeをまるごと入れ替えるようにすれば、コピーは要らなくなりませんか
2017/11/09(木) 22:34:40.35ID:kYfp6pnU
コピーしない実装も不可能じゃないと思うけど、削除時の再平衡をちゃんと理解してないから分からん
ちょっと勉強してみるわ
ちょっと勉強してみるわ
2017/11/10(金) 00:49:41.25ID:PhyVaKjz
データ構造,アルゴリズム,デザインパターン総合スレ 3c2ch.net
https://mevius.5ch.net/test/read.cgi/tech/1466315249/l50
https://mevius.5ch.net/test/read.cgi/tech/1466315249/l50
2017/11/10(金) 23:43:40.77ID:3DZB3Erk
num crateって昔標準じゃなかったっけ?rustc_privateだけだっけ?
2017/11/11(土) 03:49:20.94ID:x6IBdmnF
Rustの日本語書籍ってまだ出てないのですか?
84デフォルトの名無しさん
2017/11/11(土) 21:51:46.65ID:rbpvu0L22017/11/12(日) 00:57:30.78ID:pW30nUMy
>>84
ありがとうございます
ありがとうございます
2017/11/13(月) 15:07:53.78ID:paUmVqxY
言語は割といい感じなのに何でcargoはこんなにウンコなん(´・ω・`)
2017/11/13(月) 21:10:10.81ID:W6k1I/AE
cargoのどこが不満やねん
2017/11/13(月) 21:12:20.77ID:o8y42drl
ビルドとパッケージマネージャを一緒にしてcrates.io必須にして、他のビルドツールとの連携がつらいんでNIH症候群になりがちで、あんま好きになれないのがcargo
環境変数でビルド先のディレクトリが変わるけど、そこらへんのドキュメントも乏しいのが難点
環境変数でビルド先のディレクトリが変わるけど、そこらへんのドキュメントも乏しいのが難点
2017/11/14(火) 01:18:01.25ID:03b/WoCZ
戻り値の型をflow sensitiveに推論してくれなくて、rustcが推論間違えてそれに気付くのに一日潰れてしまった。
>>86,88
わかる。囲い込んでるのにcargo自身が大したこと出来なくて色々困るんだよね。
色々方針が変わるし。mvnと同じ問題起こしたnpmと同じことしてるし。
言語は良いんだよ。
>>86,88
わかる。囲い込んでるのにcargo自身が大したこと出来なくて色々困るんだよね。
色々方針が変わるし。mvnと同じ問題起こしたnpmと同じことしてるし。
言語は良いんだよ。
2017/11/14(火) 01:25:20.09ID:Meoq/IF/
rust製のOSSのウェブサーバーってないの?
2017/11/14(火) 01:50:40.15ID:xg4XyUK/
>>90
hyperかな Webフレームワークのironやnickelがhyperに依存してる
hyperかな Webフレームワークのironやnickelがhyperに依存してる
92デフォルトの名無しさん
2017/11/14(火) 17:05:10.90ID:RZwCC6tv >>90
ロケット
ロケット
2017/11/14(火) 17:57:48.10ID:Meoq/IF/
ウェブサーバーって書き方が悪かった
RocketやIronを使って実際に運営されてるウェブアプリはある?
小規模なTwitterクローンとかでいいんだけど
RocketやIronを使って実際に運営されてるウェブアプリはある?
小規模なTwitterクローンとかでいいんだけど
2017/11/14(火) 22:28:34.56ID:xFziBOix
server書いてます。フレームワーク書いてますは沢山あるけど運用例聞かないね、そう言えば。
2017/11/15(水) 01:12:59.55ID:Yh7CedoH
だってどこも使ってないもの
泥箱みたいなところはモジラから金もらって「使ってます」って提灯持ちしてるだけ
事例やソースが一切出てきてないのが証拠
いい加減Rustそのものがモジラのステマの産物だと認めろ。これはプログラミング言語ではない
泥箱みたいなところはモジラから金もらって「使ってます」って提灯持ちしてるだけ
事例やソースが一切出てきてないのが証拠
いい加減Rustそのものがモジラのステマの産物だと認めろ。これはプログラミング言語ではない
2017/11/15(水) 02:07:05.71ID:xYQYBhLn
プログラミング言語ではある
2017/11/15(水) 02:56:35.18ID:p5zaPhLE
ディスりにモジラ絡める時点で長いこと荒らしてるいつもの暇人だってすぐ分かるんだよなあ
自分から具体的な話ができないししてもすぐ反論されて終わるもんだから他人の愚痴に便乗するしかできなくなってる
ボローチェッカに自分のコード全否定されて頭がおかしくなった可哀想な子を生み出したRustの業は深い
自分から具体的な話ができないししてもすぐ反論されて終わるもんだから他人の愚痴に便乗するしかできなくなってる
ボローチェッカに自分のコード全否定されて頭がおかしくなった可哀想な子を生み出したRustの業は深い
2017/11/15(水) 03:08:53.86ID:xYQYBhLn
ボローチェッカにボローボローに否定されたんやなぁってやかましいわwww
2017/11/15(水) 06:53:08.67ID:nRwvVPky
つーかおまえらはrustで何書いてんの?
100デフォルトの名無しさん
2017/11/15(水) 10:20:38.06ID:QoaSbxja それな
まだ仕事で使ってる人はいないだろうし
まだ仕事で使ってる人はいないだろうし
101デフォルトの名無しさん
2017/11/15(水) 10:32:37.69ID:I7ANqDvy 仕事で使ってるけど、小さな会社なので、皆さんのご期待には沿えない。
102デフォルトの名無しさん
2017/11/15(水) 10:49:24.15ID:FBksKtwj >>97
せめてモジラの提灯持ち以外にまともにプロダクションで使ってる企業を出してから言えよ
せめてモジラの提灯持ち以外にまともにプロダクションで使ってる企業を出してから言えよ
103デフォルトの名無しさん
2017/11/15(水) 11:05:39.14ID:oyAT9Por 糖質は同じ言葉を繰り返すからすぐ分かる。
104デフォルトの名無しさん
2017/11/15(水) 11:45:28.60ID:FBksKtwj 反論できずに糖質認定か
105デフォルトの名無しさん
2017/11/15(水) 13:03:45.77ID:PSu/RMx1 クローズドソースのときって、どういうスタイルなの?
crateのパスを相対で書きまくるのか、巨大ctateをつくるのか
crateのパスを相対で書きまくるのか、巨大ctateをつくるのか
106デフォルトの名無しさん
2017/11/15(水) 13:27:56.09ID:p5zaPhLE https://www.rust-lang.org/en-US/friends.html
公式サイトのこのページくらいは見たことあるだろ?無いのか?無さそうだな。
まともな耳目がついててこのページ見てるならそんなレスできねえもんな
公式サイトのこのページくらいは見たことあるだろ?無いのか?無さそうだな。
まともな耳目がついててこのページ見てるならそんなレスできねえもんな
107デフォルトの名無しさん
2017/11/15(水) 14:07:55.37ID:FBksKtwj >>106
まさかソースといってモジラの大本営発表持ち出してくるとは思わんかったわ
そんなもんただの提灯で何の意味もない。使ってる根拠にはならない
せめてそういう企業がGithubで公開してるものがあるとかなら認めるがそうじゃねえだろ
まさかソースといってモジラの大本営発表持ち出してくるとは思わんかったわ
そんなもんただの提灯で何の意味もない。使ってる根拠にはならない
せめてそういう企業がGithubで公開してるものがあるとかなら認めるがそうじゃねえだろ
108デフォルトの名無しさん
2017/11/15(水) 14:16:38.25ID:MzdtAyc5 ちょっと前までのfirefoxをRust使って書けるわけない失敗すると言い張ってからの
この流れは笑える
この流れは笑える
109デフォルトの名無しさん
2017/11/15(水) 14:21:13.24ID:FBksKtwj110デフォルトの名無しさん
2017/11/15(水) 14:22:10.55ID:bBOLEH2G >>107
昔と比べるとだいぶオープンソースな時代にはなったが、
全てがオープンソースで開発されるような時代ではない。
公式の発表を信じずに何を信じろと?
「俺を信じろ」とでも言うつもりか?
「公式」と「お前」どちらのほうが信用度が高いのかまさか君にはわからないのか?
昔と比べるとだいぶオープンソースな時代にはなったが、
全てがオープンソースで開発されるような時代ではない。
公式の発表を信じずに何を信じろと?
「俺を信じろ」とでも言うつもりか?
「公式」と「お前」どちらのほうが信用度が高いのかまさか君にはわからないのか?
111デフォルトの名無しさん
2017/11/15(水) 14:22:39.30ID:bBOLEH2G まぁ、けど確かにここに載っているのは社内の一部の物好きな社員が
メンテの必要もないくらい簡単な社内ツールとかを作るのに
利用しているだけのような気はしているんだが、実際はどうなんだろうな?
メンテの必要もないくらい簡単な社内ツールとかを作るのに
利用しているだけのような気はしているんだが、実際はどうなんだろうな?
112デフォルトの名無しさん
2017/11/15(水) 14:25:51.46ID:FBksKtwj 少なくともブラウザから得た個人情報の横流しとステマで生計を立ててる非営利()組織の大本営発表は信じるに値しない
113デフォルトの名無しさん
2017/11/15(水) 14:35:48.33ID:MzdtAyc5 >>109
キミの笑いのセンスには脱帽だよ
キミの笑いのセンスには脱帽だよ
114デフォルトの名無しさん
2017/11/15(水) 14:36:17.78ID:bBOLEH2G >>109
それは設計の段階で従来のアドオンとの互換性の一部を捨てるように仕様変更したからだよ。
firefoxのアドオンは自由度が高すぎるが故に、セキュリティに問題を抱えやすかったし、
アドオン同士が衝突して落ちるとかも結構あったから、そこら辺をChromeと同レベルくらいに制限して、
セキュリティと安定性を取る方向に方針転換した。
仕様が変わってるんだから、Rustで書こうが他の言語で書こうがどっちにしろ従来のアドオンの一部は動かないよ。
それは設計の段階で従来のアドオンとの互換性の一部を捨てるように仕様変更したからだよ。
firefoxのアドオンは自由度が高すぎるが故に、セキュリティに問題を抱えやすかったし、
アドオン同士が衝突して落ちるとかも結構あったから、そこら辺をChromeと同レベルくらいに制限して、
セキュリティと安定性を取る方向に方針転換した。
仕様が変わってるんだから、Rustで書こうが他の言語で書こうがどっちにしろ従来のアドオンの一部は動かないよ。
115デフォルトの名無しさん
2017/11/15(水) 14:42:32.68ID:bBOLEH2G116デフォルトの名無しさん
2017/11/15(水) 14:49:29.35ID:p5zaPhLE こっちとしちゃ糖質クンに「自分は視野狭窄している馬鹿なんだ」って気付いてもらうんじゃなく
ただどっちが妥当な話をしているのか周りに伝わればいいんだわ。乙。
Redditで、自社の既存のシステムをRustで書き直したよって言う投稿をよく見かける
自分で触った感じでも、プロトタイピングや全く新しいシステム作るときは他の言語でやった方が楽な気がするけど、
試行錯誤もRustでやった方がはやいわってなるのかね?
ただどっちが妥当な話をしているのか周りに伝わればいいんだわ。乙。
Redditで、自社の既存のシステムをRustで書き直したよって言う投稿をよく見かける
自分で触った感じでも、プロトタイピングや全く新しいシステム作るときは他の言語でやった方が楽な気がするけど、
試行錯誤もRustでやった方がはやいわってなるのかね?
117デフォルトの名無しさん
2017/11/15(水) 14:49:41.95ID:FBksKtwj ネタなのは自殺したブラウザの方だろ
118デフォルトの名無しさん
2017/11/15(水) 15:32:16.99ID:bBOLEH2G119デフォルトの名無しさん
2017/11/15(水) 15:38:56.68ID:a1L9d6tA そういう大きな話じゃなくて、もっと身近な感じでrust使ってるかどうかを聞きたかったんだけど、ここまで>>101しか出てこないな
120デフォルトの名無しさん
2017/11/15(水) 17:13:53.76ID:QoaSbxja rustでチェスの対戦サイト(サーバー)作りましたとかないわけ?
goとかscalaではいくつかあるけど(もちろんphpも)
goとかscalaではいくつかあるけど(もちろんphpも)
121デフォルトの名無しさん
2017/11/15(水) 18:04:29.51ID:I7ANqDvy122デフォルトの名無しさん
2017/11/15(水) 18:07:27.47ID:lnZNl5oY123デフォルトの名無しさん
2017/11/15(水) 18:17:07.13ID:6qkyb6Qq Rustでコード書くのって意外と楽しいよね
クロージャもスッキリしてるし
そもそもあと実は俺はスネークケース文化が好き
map_or ←この時面がすき
mapOr ←こんな言語は(あるとしたら)嫌い
クロージャもスッキリしてるし
そもそもあと実は俺はスネークケース文化が好き
map_or ←この時面がすき
mapOr ←こんな言語は(あるとしたら)嫌い
124デフォルトの名無しさん
2017/11/15(水) 18:58:57.26ID:JXP4Zmpc ドワンゴがなんか作ってたね
125デフォルトの名無しさん
2017/11/15(水) 21:05:47.07ID:Kx4c/qA9 スクリプト言語を趣味でやってる俺ですが
firefoxの軽さに感動してrustに興味を持ちました
現在ネットでrustについて調べてる最中なんですが
c++の置き換えだとかっていう情報はよく書かれてますけど
実際c++を書いたことの無い自分にはいまいち掴めません
なんか他に特徴的なとこはあるんでしょうか?
マルチプラットフォームのguiアプリとか作ってみたいです
firefoxの軽さに感動してrustに興味を持ちました
現在ネットでrustについて調べてる最中なんですが
c++の置き換えだとかっていう情報はよく書かれてますけど
実際c++を書いたことの無い自分にはいまいち掴めません
なんか他に特徴的なとこはあるんでしょうか?
マルチプラットフォームのguiアプリとか作ってみたいです
126デフォルトの名無しさん
2017/11/15(水) 21:54:08.10ID:zsyPe7CY >>125
>なんか他に特徴的なとこはあるんでしょうか?
自分でガシガシ書く向けだよ。C++より綺麗に。JITなんざ頼らねぇ(れねぇ)、GC邪魔(やる余裕がない)って
領域向けに抽象度をある程度保ったまま書ける。メモリ管理にリージョン使うから解放タイミングが予測できるし、
組み込みもベアメタルもいける。nightlyは書式統一されたインラインアセンブラもある。
低レベル全部rustで書いてもいいし、ライブラリだけrustで書いてCから呼び出せばC++不要。
>firefoxの軽さに感動してrustに興味を持ちました
前にも言ったがfx57の速さにrustは関係ない。設計が根本的に変わった影響。
Servoにあるhtmlの並列トークナイズがfxに移植されたらさらに速くなる。
そんで、言語自体は遅いよ。コンパイラもまだ改善途中だし。
標準ライブラリのコードは速度のためにunsafeだらけで、
JIT/GCがある環境みたいにド直球で素直なコード書くもんじゃなくて、
速くなる部分はLLVMの部分だからコンパイラのバックエンドの違いでしかない。
tracing gcないから開放できないメモリがあるのは他と同じ。
>なんか他に特徴的なとこはあるんでしょうか?
自分でガシガシ書く向けだよ。C++より綺麗に。JITなんざ頼らねぇ(れねぇ)、GC邪魔(やる余裕がない)って
領域向けに抽象度をある程度保ったまま書ける。メモリ管理にリージョン使うから解放タイミングが予測できるし、
組み込みもベアメタルもいける。nightlyは書式統一されたインラインアセンブラもある。
低レベル全部rustで書いてもいいし、ライブラリだけrustで書いてCから呼び出せばC++不要。
>firefoxの軽さに感動してrustに興味を持ちました
前にも言ったがfx57の速さにrustは関係ない。設計が根本的に変わった影響。
Servoにあるhtmlの並列トークナイズがfxに移植されたらさらに速くなる。
そんで、言語自体は遅いよ。コンパイラもまだ改善途中だし。
標準ライブラリのコードは速度のためにunsafeだらけで、
JIT/GCがある環境みたいにド直球で素直なコード書くもんじゃなくて、
速くなる部分はLLVMの部分だからコンパイラのバックエンドの違いでしかない。
tracing gcないから開放できないメモリがあるのは他と同じ。
127デフォルトの名無しさん
2017/11/15(水) 22:03:43.52ID:rT1iYiCt >>119
会社で使うコマンドラインツールはほとんどRustで書いてる。
昔はPythonで書いたりしてたけど、使ってるうちにパフォーマンスが問題になったりすることが多くて
後で書き直したりするくらいなら最初からRustでいいや、と。
会社で使うコマンドラインツールはほとんどRustで書いてる。
昔はPythonで書いたりしてたけど、使ってるうちにパフォーマンスが問題になったりすることが多くて
後で書き直したりするくらいなら最初からRustでいいや、と。
128デフォルトの名無しさん
2017/11/15(水) 23:13:04.10ID:bBOLEH2G >>125
コマンドラインツールをRustでってのはときどき聞くんだけど、
GUIのアプリをRustでってのは聞いたことないな。
そもそもRust製のマルチプラットフォーム対応GUIフレームワークってのを聞いたことない。
Rust製のまともなGUIフレームワークとか存在してるの?
コマンドラインツールをRustでってのはときどき聞くんだけど、
GUIのアプリをRustでってのは聞いたことないな。
そもそもRust製のマルチプラットフォーム対応GUIフレームワークってのを聞いたことない。
Rust製のまともなGUIフレームワークとか存在してるの?
129デフォルトの名無しさん
2017/11/16(木) 00:51:52.06ID:81E2YZma なるほど、コマンドラインツールか。
rust に合ってる領域かもって初めて納得した。
rust に合ってる領域かもって初めて納得した。
130デフォルトの名無しさん
2017/11/16(木) 02:21:07.10ID:fZgVNMfR131デフォルトの名無しさん
2017/11/16(木) 02:27:03.23ID:fZgVNMfR132デフォルトの名無しさん
2017/11/16(木) 03:12:54.72ID:fiTPZdVA gnomeってrustで置き換えていくの?
rustの実用的なGUIってgtkぐらいだと思うけどqtもそろそろ実用段階だったりするのかね
rustの実用的なGUIってgtkぐらいだと思うけどqtもそろそろ実用段階だったりするのかね
133デフォルトの名無しさん
2017/11/16(木) 11:39:32.01ID:W2aOUAlV rustで書いてるosってrudoxだっけ?
あれってlinuxカーネルののrustによるリファクタリングって事でいいの?
l
あれってlinuxカーネルののrustによるリファクタリングって事でいいの?
l
134デフォルトの名無しさん
2017/11/16(木) 12:32:25.88ID:Uttk70vk >>133
んなわけねーだろ
んなわけねーだろ
135デフォルトの名無しさん
2017/11/16(木) 12:53:49.49ID:W2aOUAlV136デフォルトの名無しさん
2017/11/16(木) 13:34:34.31ID:Uttk70vk >>135
OSとしての実用は自己満レベルでも、コードベース資産としては価値あるんじゃねーの?知らんけど
世の中にはいくらでも自己満OSプロジェクトあるんだからそこは許してやれ
あのGNUですらHurdってOSを自己満で書いてんだ
OSとしての実用は自己満レベルでも、コードベース資産としては価値あるんじゃねーの?知らんけど
世の中にはいくらでも自己満OSプロジェクトあるんだからそこは許してやれ
あのGNUですらHurdってOSを自己満で書いてんだ
137デフォルトの名無しさん
2017/11/16(木) 13:34:41.95 Rust Essentials - Second Edition
がPacktから出版されましたね
がPacktから出版されましたね
138デフォルトの名無しさん
2017/11/16(木) 17:48:48.97ID:dSTVIPFJ linixこそ個人のお遊びプロジェクトだったんじゃないのか
139デフォルトの名無しさん
2017/11/16(木) 17:50:56.93ID:dSTVIPFJ オライリーはどうなってんの?
140デフォルトの名無しさん
2017/11/16(木) 18:55:22.46ID:Uttk70vk >>139
少なくとも自分はKonozamaくらってる
少なくとも自分はKonozamaくらってる
141デフォルトの名無しさん
2017/11/16(木) 20:07:31.98ID:v4h2PTyC >>140
発売してないよね?
発売してないよね?
142デフォルトの名無しさん
2017/11/16(木) 22:51:18.03ID:a7TN1Oxp143デフォルトの名無しさん
2017/11/17(金) 00:27:49.05ID:oCT+XqQK urxvtをrustで書き直して🙏
alacrittyはなしで🙅
alacrittyはなしで🙅
144デフォルトの名無しさん
2017/11/17(金) 01:16:04.93ID:r4qIw16A >>138
そうね。その頃にはオープンソースなunix osが無かったからみんな喜んだ。でも今はlinuxがあるわけで。
まぁでもマイクロカーネルらしいし
ドライバはlinuxのが使えるとかすれば、化けるのかな?
そうね。その頃にはオープンソースなunix osが無かったからみんな喜んだ。でも今はlinuxがあるわけで。
まぁでもマイクロカーネルらしいし
ドライバはlinuxのが使えるとかすれば、化けるのかな?
145デフォルトの名無しさん
2017/11/17(金) 01:29:54.30ID:AQwbboRb >>144
歴史の知識もOSの知識も無いなら変なこと言わないほうが良い
歴史の知識もOSの知識も無いなら変なこと言わないほうが良い
146デフォルトの名無しさん
2017/11/17(金) 01:36:37.62ID:pIVssbCG BSD系列全否定ワロタ
147デフォルトの名無しさん
2017/11/17(金) 01:43:43.14 茂みから鉞が跳んでくるぞ〜
148デフォルトの名無しさん
2017/11/17(金) 01:49:33.84ID:3GAWOghK BSDは訴訟がなければな。
あとminixも最初からライセンスが修正BSDだったらな。
あとminixも最初からライセンスが修正BSDだったらな。
149デフォルトの名無しさん
2017/11/17(金) 02:00:54.43ID:r4qIw16A linuxは未だにcで書かれてるわけだけど、
それがrustで書き直されたとしたらどうなるの?予想として。
メモリ使用量は減る?
バグは減るよね。
それがrustで書き直されたとしたらどうなるの?予想として。
メモリ使用量は減る?
バグは減るよね。
150デフォルトの名無しさん
2017/11/17(金) 04:58:41.34ID:Q8rdVBz+ ID:r4qIw16A
かまってちゃん
かまってちゃん
151デフォルトの名無しさん
2017/11/17(金) 05:02:58.63ID:n+fIjN+j 恐らくバグば減る、メモリ使用量は増える
C言語がサイズ減に全振りしているのをrustは安全側に振ってるからな
だがその前にLinusがブチ切れるだろ間違いない
C言語がサイズ減に全振りしているのをrustは安全側に振ってるからな
だがその前にLinusがブチ切れるだろ間違いない
152デフォルトの名無しさん
2017/11/17(金) 09:41:50.16ID:p03/6wS8 let foo = Foo {
c: f1(),
a: f2(),
b: f3(),
};
let bar = (f1(), f2(), f3());
構造体やタプル構築の時って、式の評価順序はソースに記述されてる順序で確定してるんだっけ?
ここでいうと f1 -> f2 -> f3 で
c: f1(),
a: f2(),
b: f3(),
};
let bar = (f1(), f2(), f3());
構造体やタプル構築の時って、式の評価順序はソースに記述されてる順序で確定してるんだっけ?
ここでいうと f1 -> f2 -> f3 で
153デフォルトの名無しさん
2017/11/17(金) 10:10:51.70ID:j/YEi+T5 そもそもgnuの成果物でもなんでもない不自由なコンパイラであるrustcでコード書くことを御大がよしとするわけねーだろっていう
GPLでrustc書き直してから出直してこい
GPLでrustc書き直してから出直してこい
154デフォルトの名無しさん
2017/11/17(金) 11:43:43.45ID:DHrRs5YV そんなあり得ない話どうでもいい
155デフォルトの名無しさん
2017/11/17(金) 13:35:22.27ID:Eetf/DNi BSD ← ボスドーって読むのですか?
156デフォルトの名無しさん
2017/11/17(金) 19:53:41.29ID:RD2my8vU >>131
確かに go でもいいのかもしれんが、rust で作るとしたら、
規模とかランタイム速度要求とか
良いところなんじゃないの?って気はしたよ。
少なくともOSやブラウザをこれで作るって話よりかよっぽど現実的な感じがする。
確かに go でもいいのかもしれんが、rust で作るとしたら、
規模とかランタイム速度要求とか
良いところなんじゃないの?って気はしたよ。
少なくともOSやブラウザをこれで作るって話よりかよっぽど現実的な感じがする。
157デフォルトの名無しさん
2017/11/17(金) 22:23:35.56ID:n+fIjN+j rustは明らかに大物を矛盾なく作り上げるの向きと思うんだけれどもな
小物なら正直メモリの心配なんかせずに「mallocの後にfree不要と(以下略)」式にOS任せにしても構わんし
小物なら正直メモリの心配なんかせずに「mallocの後にfree不要と(以下略)」式にOS任せにしても構わんし
158デフォルトの名無しさん
2017/11/18(土) 00:01:05.69ID:ptgryUw4 見解の相違としか言いようがないな。
大物をGCなしで作るとか、よっぽどのプロジェクトじゃないとありえん気がするよ。
大物をGCなしで作るとか、よっぽどのプロジェクトじゃないとありえん気がするよ。
159デフォルトの名無しさん
2017/11/18(土) 01:19:21.35ID:/UyFtFcG linuxをrustで書くとか
rustがcに勝る安全性の部分ではcではバグになりうる部分がrustではバグにならないということはあるだろうけど
移植にしろゼロから書き直すにしろ、これら以外のバグが新たに大量に発生するわけで(現行のcで書かれたものは長い間かけてそれらのバグを1つ1つ潰してきた結果であり)
rustがcに勝る安全性の部分ではcではバグになりうる部分がrustではバグにならないということはあるだろうけど
移植にしろゼロから書き直すにしろ、これら以外のバグが新たに大量に発生するわけで(現行のcで書かれたものは長い間かけてそれらのバグを1つ1つ潰してきた結果であり)
160デフォルトの名無しさん
2017/11/18(土) 01:51:07.07ID:Tj1Ciaix mozilla はそれやったんだよな(恐怖)
161デフォルトの名無しさん
2017/11/18(土) 01:59:12.51ID:ZQLxHiSg >>158
そもそもブラウザこそGC使いたくない大物の代表みたいなもんで、rustはそのために作られたわけで
そもそもブラウザこそGC使いたくない大物の代表みたいなもんで、rustはそのために作られたわけで
162デフォルトの名無しさん
2017/11/18(土) 12:58:34.70ID:TdFdr2wf >>159
そのうちAIを駆使してcからrustに理想的にTranslateする技術ができるよきっと
そのうちAIを駆使してcからrustに理想的にTranslateする技術ができるよきっと
163デフォルトの名無しさん
2017/11/18(土) 13:32:56.68ID:Tj1Ciaix AIは置いといて c2rust は同じく妄想した
ふと思ってググったら関数定義を rust で使えるようにするツールが引っ掛かった
c2rust.py
唐突な Python ワロタ
ふと思ってググったら関数定義を rust で使えるようにするツールが引っ掛かった
c2rust.py
唐突な Python ワロタ
■ このスレッドは過去ログ倉庫に格納されています
