- 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/
- 45 名前:タ際のところ生産性ってどうなん?
GUIプログラムとかにも向いてる? いい感じのGUIフレームワークがあったとして。 [] - [ここ壊れてます]
- 46 名前:デフォルトの名無しさん mailto:sage [2017/10/28(土) 19:33:23.13 ID:2Kf4Kqfh.net]
- >>39
何がしたいの? いろいろ出来るけど
- 47 名前:デフォルトの名無しさん mailto:sage [2017/10/28(土) 19:58:15.36 ID:sEZMTm/T.net]
- >>43
pythonでいえば foo[1:2] = [True] * 2 みたいなことです (1..3).for_each(|x| foo[x] = true); といちいち書くのが面倒(な上処理が重そう)だったので伺いました 実装したいのはアトキンの篩です
- 48 名前:デフォルトの名無しさん mailto:sage [2017/10/28(土) 20:29:56.20 ID:2Kf4Kqfh.net]
- >>44
効率が悪いってのはindexアクセスを二回やるとこのこと? ここは過疎ってるからまじめに聞きたければSlack行くとよいよ
- 49 名前:デフォルトの名無しさん mailto:sage [2017/10/28(土) 20:41:41.30 ID:2kkil0pQ.net]
- let mut foo = vec![false; 20];
println!("{:?}", foo); foo.get_mut(1..3).unwrap().iter_mut().for_each(|v| *v = true); println!("{:?}", foo);
- 50 名前:デフォルトの名無しさん mailto:sage [2017/10/28(土) 20:43:42.54 ID:2kkil0pQ.net]
- コスト気にしてるみたいだけど、release でコンパイルすれば、結局
foo[1] = true; foo[2] = true; したのと変わらん結果になるんちゃうか?
- 51 名前:デフォルトの名無しさん mailto:sage [2017/10/28(土) 21:55:42.13 ID:sEZMTm/T.net]
- >>45,47
そうなんでしょうか(LLVM IRも読めない) それで進めようと思います ありがとうございました アトキンの篩は他の言語だとどれもヒープ 確保してforループでヒープ操作という感じですが 横着して同じような実装をRustで書くとas usizeばっかだしで一目でダメとわかるコードに…
- 52 名前:デフォルトの名無しさん mailto:sage [2017/10/29(日) 00:23:56.31 ID:BVtm7xd8.net]
- Atkinの篩、実装を見てみたが(察し)
https://phillip-h.github.io/reikna/docs/reikna/prime/fn.atkin.html https://github.com/FrogBomb/prime_sieve
- 53 名前:デフォルトの名無しさん mailto:sage [2017/10/29(日) 09:47:38.74 ID:femXOKq6.net]
- Kotlinのスコープ関数みたいなことができるcrateってありますか?
- 54 名前:デフォルトの名無しさん mailto:sage [2017/10/29(日) 11:47:41.30 ID:SkqxwfAQ.net]
- 'a type と 'a + type の違いが分からん.
- 55 名前:デフォルトの名無しさん mailto:sage [2017/10/29(日) 11:48:57.06 ID:UFBW+HOq.net]
- obj.method(args) って形はマクロを使っても崩せないんじゃないかなあ
動作的にwithみたいなのは一関数でできるんじゃない? 無理すればメソッドとして実装することもできるかと https://play.rust-lang.org/?gist=2133c56a393f15a3ff5d059016ed3b11&version=undefined 便利か?と言われたらそうでもないかも
- 56 名前:デフォルトの名無しさん mailto:sage [2017/10/29(日) 11:50:41.46 ID:UFBW+HOq.net]
- >>51 'a + typeじゃなくて'a + Traitじゃない?
- 57 名前:デフォルトの名無しさん mailto:sage [2017/10/29(日) 12:23:33.14 ID:femXOKq6.net]
- >>52
なるほど! 最近Kotlin書くことが多くてスコープ関数使ってみたら、いちいち変数に入れなくてよかったり(変数名を考えなくていい)レシーバを指定しなくてよかったりして楽に感じたので、Rustでも同じようなことできるcrate公開されてないかなと思っていたところです!
- 58 名前:デフォルトの名無しさん mailto:sage [2017/10/29(日) 12:31:27.29 ID:SkqxwfAQ.net]
- >>53
おお、その通りだ。分かってなさすぎるな…。 fn hoge<'a, T: 'a + Trait>( x: &'a T ); &'a T が参照先オブジェクトの寿命を表しているのはいいとして、 'a + Trait の 'a の意味がよく分からない。
- 59 名前:デフォルトの名無しさん mailto:sage [2017/10/29(日) 17:07:16.08 ID:UFBW+HOq.net]
- >>55 自分もよく分かってないし、見覚えの無い使われ方があったときにそれを指す言葉を知らなくて時間がかかるんだけど、
https://doc.rust-lang.org/book/second-edition/ch19-02-advanced-lifetimes.html ↑にあるように、<>の中ではlifetimeや総称型を使うよ、と宣言するのと、T: Traitとやって型の境界(bound)を指定するのの2つの意味があって、 T: 'a + Traitってのは型TがTraitをimplしていることと、もし参照型だったりlifetimeを持つ型だったりしたときは'aより長生きなものに限りますって意味になる、らしい 意味は分かる。けど、hoge(v)としたとき、lifetime関連のエラーを吐く具体的な値vの例が思いつかない
- 60 名前:デフォルトの名無しさん mailto:sage [2017/10/29(日) 18:50:42.32 ID:DMNR4JpH.net]
- whereで書いたほうがわかりやすいね
- 61 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 21:06:32.26 ID:4dqnj7Aj.net]
- >>35
まず、そのままのコードでは new() の返り値が move されるときに &x のアドレスが変わってしまう(実際には最適化で move されない だろうけど言語仕様的には)ので、そのコードがエラーになるのは正当。 なので x か Foo 全体を box 化する必要がある。ただ box 化すれば コンパイルが通るかというと、 box を deref して得られる参照は box の中身の寿命ではなく box 自身の寿命になるので、 transmute で チートする必要がある。 fn new() -> Self { let mut foo = Box:new(Foo { x: 32, x_ref: unsafe { mem::uninitialized() }, }); foo.x_ref = unsafe{ mem::transmute::<_, &'static _>(&foo.x) }; foo }
- 62 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 21:26:14.87 ID:4dqnj7Aj.net]
- 失礼。コンパイル通らないコードを貼り付けてしまった。
fn new() -> Box<Self> { let mut foo = Box::new(Foo { x: 32, x_ref: unsafe { mem::uninitialized() }, }); foo.x_ref = unsafe { mem::transmute(&foo.x) }; foo }
- 63 名前:デフォルトの名無しさん mailto:sage [2017/10/30(月) 22:54:07.55 ID:nDqoZaw+.net]
- ありがとう。
move するとアドレスが変わるというのは無理矢理実験したときに気付いたけれど、 実際はこんな感じで Box 化された構造体の特定の変数への参照が欲しかったので、 >>38が言った前スレの>>507-514辺りを見て、こんな感じで解決してました。 use std::mem; struct Bar(i32); struct Foo { x: Box<Bar>, x_ref: &'static i32, } impl Foo { fn new() -> Self { let mut foo = Foo { x: Box::new(Bar(10)), x_ref: unsafe { mem::uninitialized() }, }; let dummy = mem::replace(&mut foo.x_ref, unsafe { mem::transmute(&foo.x.0) } ); mem::forget(dummy); foo } }
- 64 名前:デフォルトの名無しさん mailto:sage [2017/10/31(火) 00:31:43.31 ID:pbuN/n26.net]
- >>60
ああ、確かにリファレンスとはいえ forget() しとくべきだね。 このコードについては↓でも問題ないけど、まあ実際の初期化はもっと他にも 処理があるだろうから、一般にはこううまくは行かなかいか。 struct Foo<'a> { x: Box<Bar>, x_ref: &'a i32, } impl<'a> Foo<'a> { fn new() -> Self { let x = Box::new(Bar(10)); Foo { x_ref: unsafe { mem::transmute(&x.0) }, x: x, } } }
- 65 名前:デフォルトの名無しさん mailto:sage [2017/10/31(火) 18:55:06.66 ID:xO8W0Vv5.net]
- Rcって何のためにあるんですか? 所有権? 借用じゃダメなん?
所有権持ってる変数のライフタイムを超えて借用できないからRc? 色んなコンテナや、色んなデータ構造に渡って持たせたいときはRc? https://ideone.com/IP9Jk4 書いてみたらなんとなく納得行ったような気がする
- 66 名前:デフォルトの名無しさん mailto:sage [2017/11/03(金) 08:56:29.78 ID:Z6QhTX43.net]
- 標準に整数型のトレイトがないの意味わかんねぇ
std::net以上に需要あるでしょ
- 67 名前:デフォルトの名無しさん mailto:sage [2017/11/03(金) 19:05:06.62 ID:q9Q8QP2Y.net]
- >>63
Scalaも無かった気がする
- 68 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 09:52:47.01 ID:ZfOcIIq3.net]
- Haskellで言うNun型クラスみたいな奴ってことか?
トレイトでやろうとすると要定義メソッド多すぎたり、 累乗みたいな計算の実装が遠回りになったりしそうできつそうに見えるな
- 69 名前:デフォルトの名無しさん [2017/11/04(土) 10:16:41.16 ID:sRI2IP6J.net]
- Haskellは数値も抽象化してるせいでパフォーマンスにかなり影響与えてるしね…
- 70 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 11:00:10.28 ID:ZfOcIIq3.net]
- s/Nun/Num/
Scalaはその辺を、暗黙の型変換でシームレスに扱おうとして闇を量産してるんだよな Rustは今んとこ特になんもしてない感じか
- 71 名前:デフォルトの名無しさん mailto:sage [2017/11/04(土) 11:30:17.70 ID:I+CIRt80.net]
- numクレートじゃいかんの?
https://github.com/rust-num/num
- 72 名前:デフォルトの名無しさん mailto:sage [2017/11/05(日) 10:17:10.41 ID:/rlXjeS/.net]
- numクレートが標準にないのが嫌なんだろうけど、std::timeみたいに標準サポートやーめたってなりそう
Into/From使えば別に困らんしと需要は少ないのではなかろうか
- 73 名前:デフォルトの名無しさん mailto:sage [2017/11/07(火) 20:38:24.64 ID:vWfvN4c5.net]
- 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の組み合わせを試してみたくなって方向転換 けっきょくどっちが正解だったのかは不明
- 74 名前:デフォルトの名無しさん mailto:sage [2017/11/07(火) 20:46:48.79 ID:pha33qDk.net]
- ただのAA木に Rc なんて要らんだろ。Option<Box<Node<T>>> で済むだろ。
- 75 名前:デフォルトの名無しさん mailto:sage [2017/11/08(水) 00:56:51.98 ID:hd1pqs3m.net]
- AA木の削除操作はwikipediaのやつだとpred(自分より小さい値のうち一番大きいもの)とsucc(自分より大きい値のうち一番小さいもの)を
子ノードから取ってきた後に子ツリーに対して再帰的にdeleteをしてくってなってるけど、ノードの値がNoCopyだとRc使うかunsafe使うかしないと無駄なコピーが発生しない?
- 76 名前:デフォルトの名無しさん [2017/11/08(水) 01:15:10.36 ID:T1vINdZw.net]
- >>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が使われてる。だからコピーもないはず。 そのことじゃないのか?俺のほうが何か勘違いしてる??
- 77 名前:70 mailto:sage [2017/11/08(水) 20:27:30.89 ID:iPjR8aCv.net]
- 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のコピーうんぬんについては挑戦せずそのまんまコピーし
- 78 名前:トる []
- [ここ壊れてます]
- 79 名前:デフォルトの名無しさん mailto:sage [2017/11/09(木) 01:32:36.02 ID:kYfp6pnU.net]
- >>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って制約は必須なんじゃないかと
- 80 名前:デフォルトの名無しさん [2017/11/09(木) 03:38:46.05 ID:x23Vytiv.net]
- >>75
ああ、なるほどね。 確かにi32の部分をTに置き換えると T: Copy か T: Clone が必須になるね。 これは確かに無駄なコピーが発生してるわ。 まぁ、この実装だとおそらく元になったwikipediaのコードの時点で 無駄なコピーが発生してることになるよね。 wikipediaの場合はi32(4byte)くらいならコピーしてもいいやってスタンスなのかな? Tの場合は何byteになるか分からないからそういうわけにもいかないということかな? これ以上は考えるのが面倒になってしまった。。。orz
- 81 名前:70 mailto:sage [2017/11/09(木) 19:44:06.23 ID:1u6Rcsa8.net]
- https://ideone.com/dFoFa9
・>>70の<T: Copy>を<T: Clone>に変更 ・ついでにRc付きで運用してみて様子を観察 でっかい構造体の場合はこういうふうなのがマシなのかな Clone運用してるとこに、さらにRcもってくると気持ちよすぎ おかげで内部の操作に由来した余計な割り当ては無くなった CloneトレイトとRcには敬意を表したい >>75 そこんとこの苦悩はもうしゃあないのかな それについてはもう思考停止します
- 82 名前:77 mailto:sage [2017/11/09(木) 19:45:08.89 ID:1u6Rcsa8.net]
- ×・>>70の<T: Copy>を<T: Clone>に変更
○・>>74の<T: Copy>を<T: Clone>に変更
- 83 名前:デフォルトの名無しさん mailto:sage [2017/11/09(木) 20:45:25.15 ID:EdyTgEfO.net]
- rustのことはわからんけどコピーしないAA木は実装したことがあるので口を出させろください
「succかpredの値をnodeにコピーしてからsuccかpredを削除」しているわけなので リンクを繋ぎ変えてsuccかpredとnodeをまるごと入れ替えるようにすれば、コピーは要らなくなりませんか
- 84 名前:デフォルトの名無しさん mailto:sage [2017/11/09(木) 22:34:40.35 ID:kYfp6pnU.net]
- コピーしない実装も不可能じゃないと思うけど、削除時の再平衡をちゃんと理解してないから分からん
ちょっと勉強してみるわ
- 85 名前:デフォルトの名無しさん mailto:sage [2017/11/10(金) 00:49:41.25 ID:PhyVaKjz.net]
- データ構造,アルゴリズム,デザインパターン総合スレ 3c2ch.net
https://mevius.5ch.net/test/read.cgi/tech/1466315249/l50
- 86 名前:デフォルトの名無しさん mailto:sage [2017/11/10(金) 23:43:40.77 ID:3DZB3Erk.net]
- num crateって昔標準じゃなかったっけ?rustc_privateだけだっけ?
- 87 名前:デフォルトの名無しさん mailto:sage [2017/11/11(土) 03:49:20.94 ID:x6IBdmnF.net]
- Rustの日本語書籍ってまだ出てないのですか?
- 88 名前:デフォルトの名無しさん [2017/11/11(土) 21:51:46.65 ID:rbpvu0L2.net]
- >>83
https://rust-lang-ja.github.io/the-rust-programming-language-ja/1.6/book/
- 89 名前:デフォルトの名無しさん mailto:sage [2017/11/12(日) 00:57:30.78 ID:pW30nUMy.net]
- >>84
ありがとうございます
- 90 名前:デフォルトの名無しさん mailto:sage [2017/11/13(月) 15:07:53.78 ID:paUmVqxY.net]
- 言語は割といい感じなのに何でcargoはこんなにウンコなん(´・ω・`)
- 91 名前:デフォルトの名無しさん mailto:sage [2017/11/13(月) 21:10:10.81 ID:W6k1I/AE.net]
- cargoのどこが不満やねん
- 92 名前:デフォルトの名無しさん mailto:sage [2017/11/13(月) 21:12:20.77 ID:o8y42drl.net]
- ビルドとパッケージマネージャを一緒にしてcrates.io必須にして、他のビルドツールとの連携がつらいんでNIH症候群になりがちで、あんま好きになれないのがcargo
環境変数でビルド先のディレクトリが変わるけど、そこらへんのドキュメントも乏しいのが難点
- 93 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 01:18:01.25 ID:03b/WoCZ.net]
- 戻り値の型をflow sensitiveに推論してくれなくて、rustcが推論間違えてそれに気付くのに一日潰れてしまった。
>>86,88 わかる。囲い込んでるのにcargo自身が大したこと出来なくて色々困るんだよね。 色々方針が変わるし。mvnと同じ問題起こしたnpmと同じことしてるし。 言語は良いんだよ。
- 94 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 01:25:20.09 ID:Meoq/IF/.net]
- rust製のOSSのウェブサーバーってないの?
- 95 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 01:50:40.15 ID:xg4XyUK/.net]
- >>90
hyperかな Webフレームワークのironやnickelがhyperに依存してる
- 96 名前:デフォルトの名無しさん [2017/11/14(火) 17:05:10.90 ID:RZwCC6tv.net]
- >>90
ロケット
- 97 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 17:57:48.10 ID:Meoq/IF/.net]
- ウェブサーバーって書き方が悪かった
RocketやIronを使って実際に運営されてるウェブアプリはある? 小規模なTwitterクローンとかでいいんだけど
- 98 名前:デフォルトの名無しさん mailto:sage [2017/11/14(火) 22:28:34.56 ID:xFziBOix.net]
- server書いてます。フレームワーク書いてますは沢山あるけど運用例聞かないね、そう言えば。
- 99 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 01:12:59.55 ID:Yh7CedoH.net]
- だってどこも使ってないもの
泥箱みたいなところはモジラから金もらって「使ってます」って提灯持ちしてるだけ 事例やソースが一切出てきてないのが証拠 いい加減Rustそのものがモジラのステマの産物だと認めろ。これはプログラミング言語ではない
- 100 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 02:07:05.71 ID:xYQYBhLn.net]
- プログラミング言語ではある
- 101 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 02:56:35.18 ID:p5zaPhLE.net]
- ディスりにモジラ絡める時点で長いこと荒らしてるいつもの暇人だってすぐ分かるんだよなあ
自分から具体的な話ができないししてもすぐ反論されて終わるもんだから他人の愚痴に便乗するしかできなくなってる ボローチェッカに自分のコード全否定されて頭がおかしくなった可哀想な子を生み出したRustの業は深い
- 102 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 03:08:53.86 ID:xYQYBhLn.net]
- ボローチェッカにボローボローに否定されたんやなぁってやかましいわwww
- 103 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 06:53:08.67 ID:nRwvVPky.net]
- つーかおまえらはrustで何書いてんの?
- 104 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 10:20:38.06 ID:QoaSbxja.net]
- それな
まだ仕事で使ってる人はいないだろうし
- 105 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 10:32:37.69 ID:I7ANqDvy.net]
- 仕事で使ってるけど、小さな会社なので、皆さんのご期待には沿えない。
- 106 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 10:49:24.15 ID:FBksKtwj.net]
- >>97
せめてモジラの提灯持ち以外にまともにプロダクションで使ってる企業を出してから言えよ
- 107 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 11:05:39.14 ID:oyAT9Por.net]
- 糖質は同じ言葉を繰り返すからすぐ分かる。
- 108 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 11:45:28.60 ID:FBksKtwj.net]
- 反論できずに糖質認定か
- 109 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 13:03:45.77 ID:PSu/RMx1.net]
- クローズドソースのときって、どういうスタイルなの?
crateのパスを相対で書きまくるのか、巨大ctateをつくるのか
- 110 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 13:27:56.09 ID:p5zaPhLE.net]
- https://www.rust-lang.org/en-US/friends.html
公式サイトのこのページくらいは見たことあるだろ?無いのか?無さそうだな。 まともな耳目がついててこのページ見てるならそんなレスできねえもんな
- 111 名前:デフォルトの名無しさん mailto:sag [2017/11/15(水) 14:07:55.37 ID:FBksKtwj.net]
- >>106
まさかソースといってモジラの大本営発表持ち出してくるとは思わんかったわ そんなもんただの提灯で何の意味もない。使ってる根拠にはならない せめてそういう企業がGithubで公開してるものがあるとかなら認めるがそうじゃねえだろ
- 112 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 14:16:38.25 ID:MzdtAyc5.net]
- ちょっと前までのfirefoxをRust使って書けるわけない失敗すると言い張ってからの
この流れは笑える
- 113 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 14:21:13.24 ID:FBksKtwj.net]
- >>108
失敗してるやん Rustなんかで書き直したせいでアドオン全滅してる
- 114 名前:デフォルトの名無しさん [2017/11/15(水) 14:22:10.55 ID:bBOLEH2G.net]
- >>107
昔と比べるとだいぶオープンソースな時代にはなったが、 全てがオープンソースで開発されるような時代ではない。 公式の発表を信じずに何を信じろと? 「俺を信じろ」とでも言うつもりか? 「公式」と「お前」どちらのほうが信用度が高いのかまさか君にはわからないのか?
- 115 名前:デフォルトの名無しさん [2017/11/15(水) 14:22:39.30 ID:bBOLEH2G.net]
- まぁ、けど確かにここに載っているのは社内の一部の物好きな社員が
メンテの必要もないくらい簡単な社内ツールとかを作るのに 利用しているだけのような気はしているんだが、実際はどうなんだろうな?
- 116 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 14:25:51.46 ID:FBksKtwj.net]
- 少なくともブラウザから得た個人情報の横流しとステマで生計を立ててる非営利()組織の大本営発表は信じるに値しない
- 117 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 14:35:48.33 ID:MzdtAyc5.net]
- >>109
キミの笑いのセンスには脱帽だよ
- 118 名前:デフォルトの名無しさん [2017/11/15(水) 14:36:17.78 ID:bBOLEH2G.net]
- >>109
それは設計の段階で従来のアドオンとの互換性の一部を捨てるように仕様変更したからだよ。 firefoxのアドオンは自由度が高すぎるが故に、セキュリティに問題を抱えやすかったし、 アドオン同士が衝突して落ちるとかも結構あったから、そこら辺をChromeと同レベルくらいに制限して、 セキュリティと安定性を取る方向に方針転換した。 仕様が変わってるんだから、Rustで書こうが他の言語で書こうがどっちにしろ従来のアドオンの一部は動かないよ。
- 119 名前:デフォルトの名無しさん [2017/11/15(水) 14:42:32.68 ID:bBOLEH2G.net]
- >>113
あ、これネタだったの? 気づかずにマジレスしてしまったわ。すまん。
- 120 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 14:49:29.35 ID:p5zaPhLE.net]
- こっちとしちゃ糖質クンに「自分は視野狭窄している馬鹿なんだ」って気付いてもらうんじゃなく
ただどっちが妥当な話をしているのか周りに伝わればいいんだわ。乙。 Redditで、自社の既存のシステムをRustで書き直したよって言う投稿をよく見かける 自分で触った感じでも、プロトタイピングや全く新しいシステム作るときは他の言語でやった方が楽な気がするけど、 試行錯誤もRustでやった方がはやいわってなるのかね?
- 121 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 14:49:41.95 ID:FBksKtwj.net]
- ネタなのは自殺したブラウザの方だろ
- 122 名前:デフォルトの名無しさん [2017/11/15(水) 15:32:16.99 ID:bBOLEH2G.net]
- >>112
どちらが信用度が高いのか本当に分からなかったようだ。。。 君には呆れを通り越して憐れみを覚えるよ。
- 123 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 15:38:56.68 ID:a1L9d6tA.net]
- そういう大きな話じゃなくて、もっと身近な感じでrust使ってるかどうかを聞きたかったんだけど、ここまで>>101しか出てこないな
- 124 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 17:13:53.76 ID:QoaSbxja.net]
- rustでチェスの対戦サイト(サーバー)作りましたとかないわけ?
goとかscalaではいくつかあるけど(もちろんphpも)
- 125 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 18:04:29.51 ID:I7ANqDvy.net]
- 今まで「担当者の趣味でなんとなく」C, Go, Python, Rubyで書かれていたツールをRustで書いて
おー速いやんとニヤニヤしてる段階 >>105 crateのパスは相対
- 126 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 18:07:27.47 ID:lnZNl5oY.net]
- >>121
やっぱ細かく分けてるの? っていうほど巨大なプロジェクトじゃないかな?
- 127 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 18:17:07.13 ID:6qkyb6Qq.net]
- Rustでコード書くのって意外と楽しいよね
クロージャもスッキリしてるし そもそもあと実は俺はスネークケース文化が好き map_or ←この時面がすき mapOr ←こんな言語は(あるとしたら)嫌い
- 128 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 18:58:57.26 ID:JXP4Zmpc.net]
- ドワンゴがなんか作ってたね
- 129 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 21:05:47.07 ID:Kx4c/qA9.net]
- スクリプト言語を趣味でやってる俺ですが
firefoxの軽さに感動してrustに興味を持ちました 現在ネットでrustについて調べてる最中なんですが c++の置き換えだとかっていう情報はよく書かれてますけど 実際c++を書いたことの無い自分にはいまいち掴めません なんか他に特徴的なとこはあるんでしょうか? マルチプラットフォームのguiアプリとか作ってみたいです
- 130 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 21:54:08.10 ID:zsyPe7CY.net]
- >>125
>なんか他に特徴的なとこはあるんでしょうか? 自分でガシガシ書く向けだよ。C++より綺麗に。JITなんざ頼らねぇ(れねぇ)、GC邪魔(やる余裕がない)って 領域向けに抽象度をある程度保ったまま書ける。メモリ管理にリージョン使うから解放タイミングが予測できるし、 組み込みもベアメタルもいける。nightlyは書式統一されたインラインアセンブラもある。 低レベル全部rustで書いてもいいし、ライブラリだけrustで書いてCから呼び出せばC++不要。 >firefoxの軽さに感動してrustに興味を持ちました 前にも言ったがfx57の速さにrustは関係ない。設計が根本的に変わった影響。 Servoにあるhtmlの並列トークナイズがfxに移植されたらさらに速くなる。 そんで、言語自体は遅いよ。コンパイラもまだ改善途中だし。 標準ライブラリのコードは速度のためにunsafeだらけで、 JIT/GCがある環境みたいにド直球で素直なコード書くもんじゃなくて、 速くなる部分はLLVMの部分だからコンパイラのバックエンドの違いでしかない。 tracing gcないから開放できないメモリがあるのは他と同じ。
- 131 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 22:03:43.52 ID:rT1iYiCt.net]
- >>119
会社で使うコマンドラインツールはほとんどRustで書いてる。 昔はPythonで書いたりしてたけど、使ってるうちにパフォーマンスが問題になったりすることが多くて 後で書き直したりするくらいなら最初からRustでいいや、と。
- 132 名前:デフォルトの名無しさん mailto:sage [2017/11/15(水) 23:13:04.10 ID:bBOLEH2G.net]
- >>125
コマンドラインツールをRustでってのはときどき聞くんだけど、 GUIのアプリをRustでってのは聞いたことないな。 そもそもRust製のマルチプラットフォーム対応GUIフレームワークってのを聞いたことない。 Rust製のまともなGUIフレームワークとか存在してるの?
- 133 名前:デフォルトの名無しさん mailto:sage [2017/11/16(木) 00:51:52.06 ID:81E2YZma.net]
- なるほど、コマンドラインツールか。
rust に合ってる領域かもって初めて納得した。
- 134 名前:デフォルトの名無しさん mailto:sage [2017/11/16(木) 02:21:07.10 ID:fZgVNMfR.net]
- >>128
gnomeは積極的にRustに寄っていってたはず 他は知らん
- 135 名前:デフォルトの名無しさん mailto:sage [2017/11/16(木) 02:27:03.23 ID:fZgVNMfR.net]
- >>129
pecoとか見てるとコマンドラインツールをカジュアルに作るならgoのが向いてる気もするが…… rustにもrgあるし一概にどっちが優れてるとは言えんが
- 136 名前:デフォルトの名無しさん mailto:sage [2017/11/16(木) 03:12:54
]
- [ここ壊れてます]
- 137 名前:.72 ID:fiTPZdVA.net mailto: gnomeってrustで置き換えていくの?
rustの実用的なGUIってgtkぐらいだと思うけどqtもそろそろ実用段階だったりするのかね [] - [ここ壊れてます]
- 138 名前:デフォルトの名無しさん mailto:sage [2017/11/16(木) 11:39:32.01 ID:W2aOUAlV.net]
- rustで書いてるosってrudoxだっけ?
あれってlinuxカーネルののrustによるリファクタリングって事でいいの? l
- 139 名前:デフォルトの名無しさん mailto:sage [2017/11/16(木) 12:32:25.88 ID:Uttk70vk.net]
- >>133
んなわけねーだろ
- 140 名前:デフォルトの名無しさん mailto:sage [2017/11/16(木) 12:53:49.49 ID:W2aOUAlV.net]
- >>134
完全な新しいos? じゃあlinuxにかなうわけねーじゃん。ただの自己満プロジェクトかぁ
- 141 名前:デフォルトの名無しさん mailto:sage [2017/11/16(木) 13:34:34.31 ID:Uttk70vk.net]
- >>135
OSとしての実用は自己満レベルでも、コードベース資産としては価値あるんじゃねーの?知らんけど 世の中にはいくらでも自己満OSプロジェクトあるんだからそこは許してやれ あのGNUですらHurdってOSを自己満で書いてんだ
- 142 名前:デフォルトの名無しさん mailto:sage [2017/11/16(木) 13:34:41.95 .net]
- Rust Essentials - Second Edition
がPacktから出版されましたね
- 143 名前:デフォルトの名無しさん mailto:sage [2017/11/16(木) 17:48:48.97 ID:dSTVIPFJ.net]
- linixこそ個人のお遊びプロジェクトだったんじゃないのか
- 144 名前:デフォルトの名無しさん mailto:sage [2017/11/16(木) 17:50:56.93 ID:dSTVIPFJ.net]
- オライリーはどうなってんの?
- 145 名前:デフォルトの名無しさん mailto:sage [2017/11/16(木) 18:55:22.46 ID:Uttk70vk.net]
- >>139
少なくとも自分はKonozamaくらってる
|

|