板検索:
プログラミング言語 Rust 2 (617)
まとめビュー
1
デフォルトの名無しさん[sageteoff]   投稿日:2016/11/02 03:12:40  ID:MYQ7Ohex.net(6)
Mozillaがリリースした、プログラミング言語「Rust」について語るスレです。

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

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

◆前スレ
プログラミング言語 Rust


2
デフォルトの名無しさん[sage]   投稿日:2016/11/02 03:13:34  ID:MYQ7Ohex.net(6)
http://www.infoq.com/jp/news/2012/08/Interview-Rust
日本語版

作者Graydon Hoareへのインタビュー
http://www.infoq.com/news/2012/08/Interview-Rust

"it seems a long time ago when @sayrer and I agreed to invest in
@rustlang. But it was not, in Internet time."
https://twitter.com/BrendanEich/status/231566448017948672

3
デフォルトの名無しさん[sage]   投稿日:2016/11/02 03:15:35  ID:MYQ7Ohex.net(6)
2016年10月31日 11時17分00秒
Firefoxを爆速化させる次世代ウェブエンジン「Project Quantum」をMozillaが発表
http://gigazine.net/news/20161031-mozilla-quantum-project/
> Mozillaから発表されたProject Quantumは、
> 同社が独自開発しているプログラミング言語「Rust」と
> 並行処理型レンダリングエンジン「Servo」をベースとしたレンダリングエンジンです。

MozillaWikiで述べられているように主な目標は(並列処理を安全に書けるRustによる)並列化の推進だな
https://wiki.mozilla.org/Quantum
>Quantum will leverage the fearless concurrency of Rust and high-performance components of Servo to bring more parallelization and GPU offloading to Firefox.

4
デフォルトの名無しさん[sage]   投稿日:2016/11/02 03:18:58  ID:MYQ7Ohex.net(6)
Rust Language Service (RLS)
https://github.com/jonathandturner/rustls

Mozilla、Language Server Protocolを実装した「Rust Language Server」を発表
https://mag.osdn.jp/16/10/21/154500

5
デフォルトの名無しさん[sage]   投稿日:2016/11/02 03:20:31  ID:ttxNZg5R.net(3)
Why Rust?
http://www.oreilly.com/programming/free/why-rust.csp

Contributing to Rust ・ The Rust Programming Language
https://www.rust-lang.org/en-US/contribute.html

tokioはFutureパターンによる非同期IOのためのライブラリだよ(ざっくり
解説記事:https://medium.com/@carllerche/announcing-tokio-df6bb4ddb34
解説記事:http://aturon.github.io/blog/2016/08/26/tokio/
リポジトリ:https://github.com/tokio-rs/tokio

6
デフォルトの名無しさん[sage]   投稿日:2016/11/02 03:21:47  ID:ttxNZg5R.net(3)
Announcing Rust 1.12
https://blog.rust-lang.org/2016/09/29/Rust-1.12.html

エラーメッセージがカッコよくなってる
あとMIRが有効になって配列アクセスの境界チェックの最適化とかがより高度になってる
試してみた限りでは、get_unchecked()を使って手動で配列アクセスを最適化したりする意義がかなり薄れて来た印象

7
デフォルトの名無しさん[sage]   投稿日:2016/11/02 03:22:18  ID:ttxNZg5R.net(3)
Announcing Rust 1.12.1
https://blog.rust-lang.org/2016/10/20/Rust-1.12.1.html
安定版では初となるpoint release
MIR関連の問題の修正が主らしい
将来のpoint releaseの予行練習的意味合いもあるだとか

8
デフォルトの名無しさん[sage]   投稿日:2016/11/02 03:23:07  ID:FzlbzNie.net

9
デフォルトの名無しさん[sage]   投稿日:2016/11/02 03:27:18  ID:MYQ7Ohex.net(6)
LinuxのカーネルがRustで書かれればいいのに

カーネルより先に手を付けるべきとこあるからなぁ
待てない人はRedoxOS試してみたら?

まずはOpenSSLかLibreSSLのpure Rust実装からだな

TLS
https://github.com/ctz/rustls

RustってOS作れるほどのローレベル操作が出来るの?
それともC/C++みたいにアセンブルコード併記できるってだけ?

https://github.com/redox-os/redox/tree/master/kernel/asm
なんだ、アセンブルコード普通に書いてるだけか…全部Rustで作れるわけじゃないんだな
コメント3件


10
デフォルトの名無しさん[sage]   投稿日:2016/11/02 03:28:17  ID:MYQ7Ohex.net(6)
最後のリンク切れてたスマソ

11
デフォルトの名無しさん[sage]   投稿日:2016/11/02 05:47:26  ID:ydCUsA37.net
>9
それ言語の問題じゃなくデバイスドライバ関係の問題じゃないの?
OSはRustで書けるけどLinuxのデバドラ関係はハードウエア会社がCで供出してるのが多くない?

12
デフォルトの名無しさん[sage]   投稿日:2016/11/02 14:46:31  ID:db1quxwb.net
O2

13
デフォルトの名無しさん[sage]   投稿日:2016/11/02 22:26:01  ID:Q6z2ZaLV.net
-C opt-level=2

14
デフォルトの名無しさん[sage]   投稿日:2016/11/03 02:12:42  ID:uNlJqCt7.net
>9
https://github.com/redox-os/redox/search?l=nasm
アセンブルのコードがなくなったわけじゃないのか

15
デフォルトの名無しさん[sage]   投稿日:2016/11/06 21:21:20  ID:jd7v1+bJ.net
bootloaderとその次のモード切り替えとかページングを設定するところは、マジックだらけでアセンブリ以外で書くなんて逆に面倒だよ
intermezzOS書いてる人がそこら辺丁寧に説明してる
https://intermezzos.github.io/book/
3.1, 3.2, 4全部あたりの内容をrustで書けるようになればアセンブリはいらなくなる
けど読めば分かるけどアセンブリで書いた方が楽だし、自分の知る限りここらへんも楽に書ける高級言語なんてC含め存在しない

rustで書けるまでに必要なアセンブリとCで書けるまでに必要なアセンブリは同じじゃないか?
これがランタイムが必須な言語とかだともう少しかかるし、Cで環境整備する必要が出てくる、はず
コメント2件

16
デフォルトの名無しさん[sage]   投稿日:2016/11/07 01:10:24  ID:MDpsc3Qw.net
結局はC/C++コンパイラとはオサラバ出来ないってことだな
コメント1件

17
デフォルトの名無しさん[sage]   投稿日:2016/11/07 01:22:23  ID:R+xSUJD7.net(2)

18
デフォルトの名無しさん[sage]   投稿日:2016/11/07 04:18:50  ID:EaPQMBZD.net
おまいなんでこのスレにいるんだω

19
デフォルトの名無しさん[sage]   投稿日:2016/11/07 09:59:59  ID:VusNeGCl.net
最終的にはLLVMをRustで書き直す

20
デフォルトの名無しさん[sage]   投稿日:2016/11/07 15:05:06  ID:mwwnaA+N.net
cretonneかな?
コメント1件

21
デフォルトの名無しさん[sage]   投稿日:2016/11/07 16:35:38  ID:R+xSUJD7.net(2)
>20
へえ、こんなのあるのか。初めて知ったわ
てかSpiderMonkeyもoxidizeしようとしてんのか
https://github.com/stoklund/cretonne/
https://internals.rust-lang.org/t/possible-alternative-compiler-backend-creto...

22
デフォルトの名無しさん[sage]   投稿日:2016/11/07 19:10:26  ID:LSc5ar9N.net

23
デフォルトの名無しさん[]   投稿日:2016/11/16 02:47:56  ID:fzskfnoe.net
早漏おつ

24
デフォルトの名無しさん[sage]   投稿日:2016/11/16 09:12:58  ID:twfBKQax.net(2)
配列使ってるとコードが as usize まみれにならない?

25
デフォルトの名無しさん[sage]   投稿日:2016/11/16 15:32:07  ID:1Neovnoq.net
>997
YES
というかfeature-gatedな機能はみんなnightlyじゃないと使えないよ

26
デフォルトの名無しさん[sage]   投稿日:2016/11/16 20:03:41  ID:WS3xMITp.net
実はstableでもToSockeetAddrsを使うとlookup_hostと同じことが出来る

use std::net::ToSocketAddrs;

fn main() {
for host in "www.example.com:0".to_socket_addrs().unwrap() {
println!("{}", host);
}
}

個人的に使うプログラムなら普通にNightlyを使えばいいけど

27
デフォルトの名無しさん[sage]   投稿日:2016/11/16 23:59:43  ID:twfBKQax.net(2)
仕事でRust書いとる人いるの?
コメント1件

28
デフォルトの名無しさん[sage]   投稿日:2016/11/17 00:01:05  ID:q947Bjkq.net(5)

29
デフォルトの名無しさん[sage]   投稿日:2016/11/17 02:54:48  ID:x6fZSDmo.net
メジャーバージョンアップデートでもないのに
互換性のないアップデートが続く新興言語なんてどれも実務では使えないわ
まだ遊びでいじるに留めとけ
コメント1件

30
デフォルトの名無しさん[sage]   投稿日:2016/11/17 03:08:24  ID:q947Bjkq.net(5)
>29
>互換性のないアップデート
例えば何がある?
さすがに「forward-compatibleじゃない」とか言われると参っちゃうけどさ

31
デフォルトの名無しさん[sage]   投稿日:2016/11/17 03:53:37  ID:PG/Ol9T0.net
?演算子を使ったコードがrustc 1.12.1でコンパイルこけた! 互換性落ちたRust死ね!!!
何なんだよRust。
Stability as a Deliverableじゃねーのかよ。
昨日見事にコンパイルこけたわ。
どうすんだよ私code freeze出来ねーじゃねーか。
コードを書いてメンテしてcrates.ioにpublishしてPR送ってやるって言ってるのにRust teamは何が不満なんだ?
何がpick threeだよクソ。
コード書いたはいいけど希望通りに保守するのほぼ無理だからwって言っててコード書くやつなんかいねーよ。
デグレしてもいいしCoC破るのもどうでもいいから互換性上げろよ。
Servoで何百万行無駄に使ってんだよ。
ロゴの犬とかどうでもいいから互換性上げろよ。
有名なエンジニアに払う金あるなら互換性上げろよ。
どうすんだよコーディングやめなくちゃならねーだろ。
ふざけんなRust。
互換性上げられないならバージョン0.xにしろよ。
互換性も上げられないしmajor ver.も0に戻せないけどergonomicsなんとかしたいんだよねーってそんなムシのいい話あるかボケ。
Rust teamがコード書かせないでどうすんだよ。
金があればコード書くってやつがゴマンといるんだから取り敢えず金出すかコーディングにかかる費用全てを無償にしろよ。
デグレしたりCoC破ったりTRPL作ってるやつ見繕ってMozilla職員を半分位クビにすりゃ財源作れるだろ。
まじいい加減にしろRust。
コメント3件

32
デフォルトの名無しさん[sage]   投稿日:2016/11/17 04:29:22  ID:q947Bjkq.net(5)
何でCarol Nichols氏クビにするの!?

33
デフォルトの名無しさん[sage]   投稿日:2016/11/17 07:39:11  ID:gs7Dk9ts.net(2)
えっ後方互換守ってるならsemver的にも1.xだよ
前方互換だとライブラリにも言語にも何一つ追加出来ないじゃん

なんで ? 演算子を使ったコードを1.12.1でコンパイルする羽目になったんだろうね
外部ライブラリ? 早速移行してる奴があるのかな

34
デフォルトの名無しさん[sage]   投稿日:2016/11/17 07:41:12  ID:gs7Dk9ts.net(2)
バージョン指定してないならお前が悪い、minorバージョン上げずに?演算子導入してたらその作者が悪い

35
デフォルトの名無しさん[sage]   投稿日:2016/11/17 08:58:28  ID:lS45HIXq.net(3)
>31
これはネタじゃないの?
コメント1件

36
デフォルトの名無しさん[sage]   投稿日:2016/11/17 09:19:37  ID:TWtGx4vL.net
この前Rust開発チームを辞めた二人とも、AppleのSwiftチームに引き抜かれてたのか
この裏切り者めw
コメント1件

37
デフォルトの名無しさん[sage]   投稿日:2016/11/17 15:25:43
>31
保育園落ちた日本死ね!!!
何なんだよ日本。
一億総活躍社会じゃねーのかよ。
昨日見事に保育園落ちたわ。
どうすんだよ私活躍出来ねーじゃねーか。
子供を産んで子育てして社会に出て働いて税金納めてやるって言ってるのに日本は何が不満なんだ?
何が少子化だよクソ。
子供産んだはいいけど希望通りに保育園に預けるのほぼ無理だからwって言ってて子供産むやつなんかいねーよ。
不倫してもいいし賄賂受け取るのもどうでもいいから保育園増やせよ。
オリンピックで何百億円無駄に使ってんだよ。
エンブレムとかどうでもいいから保育園作れよ。
有名なデザイナーに払う金あるなら保育園作れよ。
どうすんだよ会社やめなくちゃならねーだろ。
ふざけんな日本。
保育園増やせないなら児童手当20万にしろよ。
保育園も増やせないし児童手当も数千円しか払えないけど少子化なんとかしたいんだよねーってそんなムシのいい話あるかよボケ。
国が子供産ませないでどうすんだよ。
金があれば子供産むってやつがゴマンといるんだから取り敢えず金出すか子供にかかる費用全てを無償にしろよ。
不倫したり賄賂受け取ったりウチワ作ってるやつ見繕って国会議員を半分位クビにすりゃ財源作れるだろ。
まじいい加減にしろ日本。

38
デフォルトの名無しさん[sage]   投稿日:2016/11/17 16:06:27  ID:A0HGbkef.net(2)
>35
ネタだという点を引いてもツッコミ所が……

39
デフォルトの名無しさん[sage]   投稿日:2016/11/17 16:08:52  ID:q947Bjkq.net(5)
>36
https://internals.rust-lang.org/t/rust-team-alumni/3784
>They got jobs that prevent them contributing.
迂遠な言い回しをなさることで
てかNomiconどうすんだろう? Beingessner氏がいなくなってから全然進んでないじゃん

40
デフォルトの名無しさん[sage]   投稿日:2016/11/17 16:34:09  ID:A0HGbkef.net(2)
今書かれてる新TRPL(rust-lang.github.io/book/)が完成してからとかになりそうだなー
ただクラブニク氏やゴルディング氏がその辺の記事書けるかどうか……
どちらも言語やライブラリの開発に関わってないし

41
デフォルトの名無しさん[sage]   投稿日:2016/11/17 18:55:40  ID:Drbt4+cn.net(2)
Rustに貢献することがAppleへの転職活動になるなら、
それを期待して気合い入れてやる人も増えるだろうし、
1ユーザー的には、よろしいんじゃございませんか

42
デフォルトの名無しさん[sage]   投稿日:2016/11/17 19:00:40  ID:Pl+03tlF.net
日本人は低レベル云々とか言い出すから良くないんだな
海外ではその辺まとめてシステムプログラミングと呼ぶことで平和になってる

43
デフォルトの名無しさん[sage]   投稿日:2016/11/17 20:24:03  ID:lS45HIXq.net(3)
外国人はシステムプログラミング云々とか言い出すから良くないんだな
国内ではその辺分けて低レベルと呼ぶことで考察/議論してる

44
デフォルトの名無しさん[sage]   投稿日:2016/11/17 20:25:33  ID:lS45HIXq.net(3)
テキトーなラベリングやグルーピングで海外ageとか欧米か

45
デフォルトの名無しさん[sage]   投稿日:2016/11/17 21:18:21
低レベルと言うとナイーブな人がショボいんだと勘違いしかねないので損な言い方だ

46
デフォルトの名無しさん[sage]   投稿日:2016/11/17 21:31:41  ID:Drbt4+cn.net(2)
下層プログラミング
ローレベルプログラミング

47
デフォルトの名無しさん[sage]   投稿日:2016/11/17 21:51:27
基幹レイヤーとか横文字混ぜつつそれっぽくすれば煙にまける

48
デフォルトの名無しさん[]   投稿日:2016/11/17 22:41:13  ID:TglxajGy.net
昔はREPLが公式のリポジトリに入ってたみたいだけどなんで消されたの?
https://github.com/murarth/rusti
なんかこれは開発止まってるみたいだし。
REPLあったら便利なのに。

49
デフォルトの名無しさん[sage]   投稿日:2016/11/17 22:53:18  ID:q947Bjkq.net(5)
Miriのreportでfuture projectとしてREPLの話が触れられているけど、今どうなってるのかは知らん

50
デフォルトの名無しさん[sage]   投稿日:2016/11/17 23:04:57  ID:Xpn3XiCU.net
一行毎にコードを累積していって毎回コンパイル・再実行するようなもので
まともに動く感じじゃなかったし
誰も使わずメンテもされず放置されて結局消された

51
デフォルトの名無しさん[]   投稿日:2016/11/18 00:19:24  ID:7Bhmrgzh.net
もうrustも頭打ちだな。資金力的にも限界か?
こりゃ早々にswiftに流れた方がいいんでない?
コメント1件

52
デフォルトの名無しさん[sage]   投稿日:2016/11/18 00:19:48  ID:8Vgx8rP9.net
おっ、ようやくマクロが#[macro_use]の代わりに普通にuse出来るようになるのか
コメント1件

53
デフォルトの名無しさん[sage]   投稿日:2016/11/18 00:29:13  ID:eBWh43b3.net

54
デフォルトの名無しさん[sage]   投稿日:2016/11/18 00:31:08  ID:oLAPaOst.net(3)

55
デフォルトの名無しさん[sage]   投稿日:2016/11/18 01:03:00  ID:E7bW9eot.net
>53
ぱっと見Rustユーザと共鳴するような要素がなさそうに見えるんだが
FAQを流し読んだだけだけど
コメント1件

56
デフォルトの名無しさん[sage]   投稿日:2016/11/18 01:14:06  ID:oLAPaOst.net(3)
>55
Ponyとかはどうだろう?
http://www.ponylang.org/
コメント1件

57
デフォルトの名無しさん[sage]   投稿日:2016/11/18 10:17:38  ID:t+31LzEv.net
AdventCalendarでtokio触ろうとしてる人居るけど、あれ12月までに安定するかねぇ
大幅な改造の途中なので厳しいかも

58
デフォルトの名無しさん[sage]   投稿日:2016/11/18 12:23:03  ID:Mjcgtpxv.net(2)
整数型の暗黙のアップキャストが無いのは不便じゃない?
前にも書いたけど、配列のインデックスで as usize を頻繁に書かされてつらい。

実行効率的には、同じ処理をC言語で書いた時も、size_tへの
暗黙のアップキャスト処理が入るのかな? 意識してなかったけど。

59
デフォルトの名無しさん[sage]   投稿日:2016/11/18 15:05:29  ID:ujW5dFKb.net(3)
移植性がRust的には問題なのかなぁ
as usize は環境によってはダウンキャストかもしれないじゃん
今の所明確なポリシーはないが、例えば usize == u8 という環境への移植性も考えて
impl From<u16> for usize が存在しなかったりするし (https://github.com/rust-lang/rfcs/issues/1748)

個人的にそんなにキャストが必要になった記憶は無いんだけど
対策するとしたら、こんな感じでVecのラッパを書くとか
https://play.rust-lang.org/?gist=17c0c0ab946046a5670d78a5ac821a73&;version=stable&backtrace=2

60
デフォルトの名無しさん[]   投稿日:2016/11/18 15:59:29  ID:vbdBJsNN.net
>31
firefoxをdisりたいならあっちで

61
デフォルトの名無しさん[sage]   投稿日:2016/11/18 17:11:13  ID:oLAPaOst.net(3)
'static [T; 0x100]の添え字としてu8を突っ込むことは割とよくあるから、そこだけでも暗黙の変換をして欲しいと思ったりする
impl<T,U,Idx> Index<T> for U where T: Into<Idx>, U: Index<Idx>
を公式に実装したら何か問題があるのだろうか?
過去に誰かしら議論してそうなもんだけど、それっぽいものが見つからない
コメント1件

62
デフォルトの名無しさん[sage]   投稿日:2016/11/18 18:48:56  ID:JDsTmOFu.net
定型処理用は演算子になるのか。
@演算子はどんな処理を担うのかしらん。

63
デフォルトの名無しさん[sage]   投稿日:2016/11/18 18:57:53  ID:ujW5dFKb.net(3)
どこかのスライドで &'static str とするべき所 'static str と書かれてたが
この'staticは参照に対するパラメータなんだよな、切るとすれば &'static / str

例えば [i32; 0x100] とか自体は [i32; 0x100]: 'static 以外のライフタイムを持たない
束縛した変数や借用に初めて寿命が付く

>61
今のRustだと追加できなさそう
(T: Into<T> なので、他の impl Index<某> for 何がし と衝突する)
それ以上にRustコミュニティの暗黙の変換の類に対する反感が大きいっぽいという問題があるけど

64
デフォルトの名無しさん[sage]   投稿日:2016/11/18 18:59:11  ID:ujW5dFKb.net(3)
T が非 'static のライフタイムパラメータを含まないなら T: 'static、で合ってるっけ

65
デフォルトの名無しさん[sage]   投稿日:2016/11/18 21:18:08  ID:Mjcgtpxv.net(2)
配列インデックスの件、ググってたらこれが理由とする書き込みがあったんだが、
正直、意味わからん。
ループカウンタがレジスタサイズと異なるとおかしい事になるって感じ?
https://gist.github.com/rygorous/e0f055bfb74e3d5f0af20690759de5a7

66
デフォルトの名無しさん[sage]   投稿日:2016/11/18 21:34:00  ID:aJxYJn23.net
>56
なんか思想的に、グリーンスレッドが存在したりしてた頃のRustみたいだな

67
デフォルトの名無しさん[sage]   投稿日:2016/11/21 10:14:06  ID:1EpFjc3X.net(2)
小さなツールを作ってみてJava版より数割遅かったんだけど、
プロファイラで調べてみたら、どうやらmalloc/freeに相当する処理が
遅いことが分かった
コメント1件

68
デフォルトの名無しさん[sage]   投稿日:2016/11/21 10:48:44  ID:kg262VVv.net
malloc/free実装者を断頭台へ!

69
デフォルトの名無しさん[sage]   投稿日:2016/11/21 10:53:20  ID:cW+sH+/p.net(5)

70
デフォルトの名無しさん[sage]   投稿日:2016/11/21 11:43:08  ID:0HSHfyI4.net(3)
JVMはひまにならないとfree処理しないから
なんか普通に負けそう

71
デフォルトの名無しさん[sage]   投稿日:2016/11/21 12:17:15  ID:goLgdzFN.net
足りなくなった時も free するから
常に忙しいときに限って free するハメになるのが実態
コメント1件

72
デフォルトの名無しさん[]   投稿日:2016/11/21 12:22:33  ID:gVIfBZaZ.net
おまいらの部屋と一緒だな
コメント1件

73
デフォルトの名無しさん[sage]   投稿日:2016/11/21 12:30:45  ID:cW+sH+/p.net(5)
ちっ……ちげえし……

74
デフォルトの名無しさん[sage]   投稿日:2016/11/21 12:32:42  ID:1EpFjc3X.net(2)
>67
少し補足すると、JITコンパイラが効き始める10ループ目ぐらいまでは
Rustの方が速かった

75
デフォルトの名無しさん[sage]   投稿日:2016/11/21 12:38:17  ID:0HSHfyI4.net(3)
>71
そりゃ設計悪いだろ
そういう時はランタイム(GC)特性を気遣って設計しろw

小さなツールならGC回りまくることもなかろう
そうなると常時free処理するGCなし言語の方が不利だわ

76
デフォルトの名無しさん[sage]   投稿日:2016/11/21 12:49:34  ID:cW+sH+/p.net(5)
小さなツールならVM起動のオーバーヘッドのあるJavaの方が何でもない
コメント1件

77
デフォルトの名無しさん[sage]   投稿日:2016/11/21 12:52:14  ID:2S9X8Lpw.net
>72
鋭すぎ

78
デフォルトの名無しさん[sage]   投稿日:2016/11/21 12:54:12  ID:h2bcMzRZ.net
突き刺さる

79
デフォルトの名無しさん[sage]   投稿日:2016/11/21 13:53:31  ID:cBdbCQ89.net(2)
>76
プログラムが小さいとVM起動のオーバーヘッドはほぼ無視できる

80
デフォルトの名無しさん[sage]   投稿日:2016/11/21 14:12:07  ID:0HSHfyI4.net(3)
逆でないか、JVM立ち上げでGCスレッド、メインスレッド等々の初期化で結構時間かかるぞ
ソフトウエア全体の処理が大きいと誤差に収まるけど
今回はalloc/freeがネックって言ってるから、そこは計測時間に入ってないと推測

ループ開始から終了までとSystem.gc呼んでの強制GCまでを計測したら、トントンないしRustのが早いってことになって欲しい(希望
それでもRustのが遅いなら断首台へ
コメント1件

81
デフォルトの名無しさん[sage]   投稿日:2016/11/21 16:38:54  ID:cBdbCQ89.net(2)
>80
逆ではない
プログラムが小さいとは書いたがプログラムの演算量が小さいとは言っていない
ツールが小さくてライブラリをあんまり読み込まなくていい時はJVMの初期化なんて誤差

82
デフォルトの名無しさん[sage]   投稿日:2016/11/21 16:49:33  ID:OhDwUouz.net
んん?
GCが回りまくらないような、演算量の小さなツールの話じゃなかったか?

83
デフォルトの名無しさん[sage]   投稿日:2016/11/21 16:54:29  ID:cW+sH+/p.net(5)
アレや、プログラムは小さいけど演算量が大きくてなおかつGCが回るほどヒープを消費しないアレや
例がパッと思いつかないけど、プリミティブ型ばかり処理してれば当てはまるんじゃない?
コメント1件

84
デフォルトの名無しさん[sage]   投稿日:2016/11/21 16:56:10  ID:cW+sH+/p.net(5)
>83
いや待て、自己レスになるけど、それじゃあRustでもfreeは発生しないわ

85
デフォルトの名無しさん[sage]   投稿日:2016/11/22 06:33:32  ID:vdf1OFJq.net
昨日、Rustの初心者向けイベントがあったらしいね。
検索してみると、100人ぐらい集まったみたい。
初心者向けのはずなのに何故か難しい、って感想の人が多い。
あと、拠点を作っても外人に襲撃されて奪われるらしい。

86
デフォルトの名無しさん[]   投稿日:2016/11/26 11:52:46  ID:S9oyLAu3.net
Mozillaってところが不安要因だな・・・

87
デフォルトの名無しさん[sage]   投稿日:2016/11/26 15:33:02  ID:T6V/AejO.net
crate logを使うと実行ファイルにビルド環境のフルパスが埋め込まれるのがモニョッとする
自分で使わなくても依存してるライブラリもあるし
専用のビルド環境作るか、そもそもソースで配布するかしないと
配布バイナリにユーザ名を埋め込んじゃうよぅ
コメント1件

88
デフォルトの名無しさん[sage]   投稿日:2016/11/26 15:53:47  ID:GTqt9DX8.net
PR出して直してくれ

89
デフォルトの名無しさん[sage]   投稿日:2016/11/28 23:43:32  ID:NwIkJeSB.net
>87
確認してみたけど、logで使われてるmodule_path!() はcargoディレクトリ以下の
相対パスしか入らないから、ユーザ名は入らない。

但し、logと無関係にデバッグ情報としてフルパスが入る場合はある。
Linux版はdebugビルドでのみフルパスが入る。
Windows(MSVC ABI)版は、releaseビルドでも.pdbファイルへのフルパスが入る。
stripすれば消えるんじゃない?
コメント1件

90
87[sage]   投稿日:2016/11/29 18:41:45  ID:8U8Bj8BQ.net(2)
>89
確認、ありがとう
調べ直したところcrate logのみに依存した場合、フルパスは存在せず
おっしゃるとおりlogは無罪 お騒がせしました

以下、環境は Linux / i686, x86_64 / stable 1.13.0 /

91
87[sage]   投稿日:2016/11/29 18:44:01  ID:8U8Bj8BQ.net(2)
途中で切れてしまったので再掲

以下、環境は Linux (i686, x86_64) stable 1.13.0 "cargo build --release"

調べたところlogの出力の為にenv_loggerとリンクしている場合、
依存しているaho_corasickやregexへの
${HOME}/.cargo/registry/src/git-****/***以下のフルパスが埋め込まれてました
これは"strip -s"でも消せず

はて? と思い aho_corasickのみに依存したプロジェクトを作成してみると
同様にフルパスの存在を確認
これがtoolchainによる差異なのか自分には判別できませんでした

以上、単なる状況報告ながら、一報まで 長文お目汚し失礼しました

92
デフォルトの名無しさん[sage]   投稿日:2016/11/29 20:05:45  ID:5ToPonfe.net
env_loggerでもやっぱりフルパスは入らないと思うけど、
それはともかく、env_loggerは依存ライブラリが多すぎて
リビルドが重くなるから嫌い。正規表現はオプション機能でいいのに。
コメント1件

93
デフォルトの名無しさん[sage]   投稿日:2016/11/29 21:38:40  ID:ejQm3rha.net
>92
regexはoptionalだからdefault-features = falseで外せるとは思うけど

94
デフォルトの名無しさん[sage]   投稿日:2016/12/01 23:59:57  ID:dyH4Mas/.net
これ見ると意外とRustのウェブフレームワークって重たいのなorz
https://www.techempower.com/benchmarks/#section=data-r13&hw=ph&test=plaintext

上位に上がってるのはガチで速度だけを追求したLightWeightなフレームワークだからなんだけど
Rust製の速度を突き詰めたフレームワークが欲しいと思った今日この頃
コメント3件

95
デフォルトの名無しさん[sage]   投稿日:2016/12/02 00:25:33  ID:MHSZZ/vj.net
現状のRust産フレームワークは非同期処理とかまともにできてないからなあ

96
デフォルトの名無しさん[sage]   投稿日:2016/12/02 00:37:52  ID:vsoRl3Y/.net(2)
その辺りはきっとtokioの五人が何とかしてくれるさ……
コメント1件

97
デフォルトの名無しさん[sage]   投稿日:2016/12/02 00:39:42  ID:hH98Vq+f.net(2)
per secでどれだけ捌けるかってレベルだから下手な非同期は足引っ張るだけじゃね?
Cとか並列でソケットを大量に保持/処理してるコードでもなかったぞ

98
デフォルトの名無しさん[sage]   投稿日:2016/12/02 00:44:29  ID:hH98Vq+f.net(2)
>96
tokioとか高レイヤー過ぎて無理だろw
と思ったけど、tokioの計測サンプルないから実はそこそこの性能出てる可能性はなくもないか

99
デフォルトの名無しさん[sage]   投稿日:2016/12/02 00:57:56  ID:vsoRl3Y/.net(2)
futures-rsで書かれたPoCなHTTPサーバで、Javaのrapidoidにちょっと勝ってるってレベルだから……>94と見比べる限り駄目っぽいね
http://aturon.github.io/blog/2016/08/11/futures/#zero-cost
これをtokioで書くともうちょっと速くなっただとかなんとか……はい
https://github.com/tokio-rs/tokio-minihttp/blob/c88742e2215eabd1...

100
デフォルトの名無しさん[sage]   投稿日:2016/12/02 01:17:22  ID:6QW+GvXS.net
Tokioの五人って誰だよ
@alexcrichtonと@carllercheと……@aturon?@seanmonstar?

101
デフォルトの名無しさん[sage]   投稿日:2016/12/02 11:47:17  ID:pDCpu3xK.net
そして@leader

102
デフォルトの名無しさん[]   投稿日:2016/12/03 01:53:06  ID:OSKmiXal.net
@nagase @matsuoka @yamaguchi @joshima @kokubun @kojima

だろ?

103
デフォルトの名無しさん[sage]   投稿日:2016/12/05 00:07:20  ID:YOh8FCdQ.net
Rustの短所って何がありますか?
言語を選択する上で短所を知っておきたいです。
コメント1件

104
デフォルトの名無しさん[sage]   投稿日:2016/12/05 03:16:51  ID:xGw5fwKi.net(3)
>103
妖怪ボローチェッカに邪魔されること

105
デフォルトの名無しさん[sage]   投稿日:2016/12/05 08:17:32  ID:EFquH9+I.net(2)
マクロで処置出来るけど、意外と文法精査が終わってない

106
デフォルトの名無しさん[sage]   投稿日:2016/12/05 14:32:28  ID:DNLmzaEu.net(2)
新興言語全般に言えるが、実績とノウハウと教材と開発環境とライブラリが少ないのが短所
上でも出てるけどボローチェッカに怒られることが多いし、データ構造でもあんまり気を抜けない

107
デフォルトの名無しさん[sage]   投稿日:2016/12/05 16:14:34  ID:xGw5fwKi.net(3)
イテレータっぽいオブジェクトから値を1個ずつ取り出すfor文の途中で
そのイテレータ自体に読み取りアクセスできない問題って、何か回避策あるの?

他言語でXmlReaderとかHogeParserとか使う時に、そういうシチュ有るよね?
標準ライブラリのイテレータ生成メソッドがことごとく変な独自structを
戻り値にしてるのと関係あるのかな。

108
デフォルトの名無しさん[]   投稿日:2016/12/05 16:24:10  ID:dF177W8B.net
途中で要素数変化してんじゃね

109
デフォルトの名無しさん[sage]   投稿日:2016/12/05 16:51:20  ID:EFquH9+I.net(2)
普通にボローチェッカがキレてそう
for構文が所有権持っててブロック内で所有は無理でないかね

110
デフォルトの名無しさん[sage]   投稿日:2016/12/05 16:54:43  ID:xGw5fwKi.net(3)
要素数は変更しないよ。
でも、現在のカーソル位置を読み取るとか、次に来る要素をpeek()とか
したい場合あるでしょ?

111
デフォルトの名無しさん[sage]   投稿日:2016/12/05 17:03:26  ID:DNLmzaEu.net(2)
whileとかloopを使うとか、peekの代わりに前の値を保持したりカウンタを用意するとか、不格好になるけど回避策はある
for文の中は真っ当な繰り返しだけっていう縛りがあると思えば気持ち悪さが低減できるかも

112
デフォルトの名無しさん[sage]   投稿日:2016/12/05 19:15:14  ID:3+VMIaiU.net
木構造も舐められるインターフェイスなんでカーソル位置みたいなのを
提供しないのは理に適ってる

113
デフォルトの名無しさん[sage]   投稿日:2016/12/05 22:50:17  ID:LCk8g+4Z.net
while let Some(item) = iter.next() {
}
なら中でpeek呼べるかと
itemがiterをborrowしてるとだめだが
コメント1件

114
デフォルトの名無しさん[sage]   投稿日:2016/12/05 22:50:53  ID:dPl+aGns.net(2)
while let便利やで

115
デフォルトの名無しさん[sage]   投稿日:2016/12/05 22:51:41  ID:dPl+aGns.net(2)
被ったwww
while let便利だよね

116
デフォルトの名無しさん[sage]   投稿日:2016/12/06 04:18:15  ID:LdzuyWCm.net
>113
while letは忘れてたわ。
でも、今回はまさにその、itemがiterをborrowしてるパターンだった。

117
デフォルトの名無しさん[sage]   投稿日:2016/12/07 01:56:30  ID:IiMNrJPA.net
Rustって、なんでも参照でゼロコピーを達成するのが偉い風潮だけど、
その効果って、どの程度だと思う?

大雑把なマイクロベンチをすると、&strでループを回してる関数を
Stringにあえて書き換えると、処理時間が約2倍程度になる。
桁数は変わらない。
コード書く時間は半分以下になる場合有りそう。

118
デフォルトの名無しさん[sage]   投稿日:2016/12/07 02:24:30  ID:DjbUzNNG.net
>94で同じくゼロコストを唱うgoにボロ負けしてるくらいの効果じゃね?
唱い文句に釣られて使って、全体的にへっぽこな書き方したら言うほどでもない的な意味で

119
デフォルトの名無しさん[]   投稿日:2016/12/09 15:00:34  ID:n+0GjpPi.net
>94のベンチマークでgoのフレームワークに大差をつけられてる原因って何?
hyperがhttp/2に対応してないからとか?
コメント1件

120
デフォルトの名無しさん[sage]   投稿日:2016/12/09 18:50:36  ID:JXyfLORs.net
>119
nettyが高ランクなのを見ても、普通に言語の速度を計ってるんじゃなくて、
並列処理性能を計ってるんでしょ。
同じサイトでSmalltalkが高ランクにいるグラフを見た気がするし。

121
デフォルトの名無しさん[sage]   投稿日:2016/12/09 18:57:53  ID:/TjG9z/N.net
prefork系は別として、ginとironの比較だとフレームワークのオーバーヘッド差分じゃない?
コード見てもそう特異なことをしてるようには見えず

122
デフォルトの名無しさん[sage]   投稿日:2016/12/17 07:52:38  ID:5jD7BRsE.net

123
デフォルトの名無しさん[sage]   投稿日:2016/12/18 03:17:03  ID:no0nc4ME.net(3)
以前は、opt: Option<T>について
if let Some(v) = opt { /* ... */ }
の代わりとして
for v in opt { /* ... */ }
を使うのは気持ち悪いと思ってたんだが、英語として読むとforの方が自然なんだよな
それに気づいてからはelse節が不要なときはforばかり使うようになった
コメント1件

124
デフォルトの名無しさん[sage]   投稿日:2016/12/18 04:02:19  ID:z0dqDzp7.net
Rust初心者質問させて
インストールしたけどcrate.ioからダウンロードできないみたいでcargoがこける
Githubでなんかするらしいけど何すればいいの?
コメント3件

125
デフォルトの名無しさん[sage]   投稿日:2016/12/18 04:08:36  ID:no0nc4ME.net(3)
>124
何を使ってインストールしようとしてる?
今なら↓を使うのが一番簡単だと思う
https://www.rustup.rs/

126
デフォルトの名無しさん[sage]   投稿日:2016/12/18 04:10:19  ID:no0nc4ME.net(3)
「何を使ってインストールしようとしてる?」じゃなくて「何を使ってRustをインストールした?」だわ

127
デフォルトの名無しさん[sage]   投稿日:2016/12/18 05:29:42  ID:ONLzCd75.net
>124
cargoのエラーを貼ってくれんと何も分からん (´・c_・`)

128
デフォルトの名無しさん[sage]   投稿日:2016/12/18 05:37:13  ID:1Hajl9YU.net
rustupはあまり関係なくね?
確かにそっちを使った方が確実ではあるだろうが

129
デフォルトの名無しさん[sage]   投稿日:2016/12/18 09:31:39  ID:NHfwgv45.net
>123
if let Some(a) = Some(1) と for a in Some(1) と Some(1).map(|a| {}) をrustc -Oでビルドしたらmapが一番バイナリ容量小さいか
英語的に云々はC言語の古き良き文化で気にする気ないけど、zero cost目指す的にはどれが一番良いの?
--emit=llvm-ir を読もうとしたけど数行の.rsですら読める気がしなかった:(
コメント1件

130
デフォルトの名無しさん[]   投稿日:2016/12/18 14:27:11  ID:VFzWAIXP.net
>124
会社とか学校とか?
だとしたらプロキシ設定が必要だった気がする。

131
デフォルトの名無しさん[sage]   投稿日:2016/12/19 03:58:18  ID:LzkIf2kw.net
>129
map() は遅延評価されるから、そこはforeach()だろって思ったら、
そんなメソッドは無かった。

132
デフォルトの名無しさん[sage]   投稿日:2016/12/19 04:02:10  ID:5+NGkOeZ.net
遅延評価されるのはIterator::mapであってOption::mapは先行評価
コメント1件


133
デフォルトの名無しさん[sage]   投稿日:2016/12/20 13:32:12  ID:TQft0DAu.net
>132
効率を考えればそれが正しいのかもしれないけど、統一されてないのはダサいね

134
デフォルトの名無しさん[sage]   投稿日:2016/12/20 13:40:08  ID:HD62Gbfy.net
mapにしてもforにしても、OptionとIteratorを視覚的に区別しづらいからそういう用途ではあまり使わない

135
デフォルトの名無しさん[sage]   投稿日:2016/12/20 15:40:54  ID:6JjvzXZF.net(2)
性能無視して見映えで選ぶ方がダサいと思った
forやmapがif letに比べて性能良いか知らんけど

136
デフォルトの名無しさん[sage]   投稿日:2016/12/20 16:08:30  ID:MHiDziMA.net
持続可能な開発

三ヶ月後に見直してうんざりしないコードを

137
デフォルトの名無しさん[sage]   投稿日:2016/12/20 16:38:33  ID:6JjvzXZF.net(2)
rustから3ヶ月離れて再開したらborrow checkerにウンザリした
forだのmapだのは使うなら常用するものだし、これで持続しないならPGやめるよ

138
デフォルトの名無しさん[sage]   投稿日:2016/12/20 22:05:49  ID:fp1/OlA8.net(2)
ここでmatch派が登場!

139
デフォルトの名無しさん[sage]   投稿日:2016/12/20 22:12:29  ID:CJ2gtWfF.net
ジャニオタか

140
デフォルトの名無しさん[sage]   投稿日:2016/12/20 22:16:09  ID:PYFsy3LE.net
少なくともコードベース内で統一されてないと気持ち悪い
多様性は悪だわ

141
デフォルトの名無しさん[sage]   投稿日:2016/12/20 23:57:06  ID:fp1/OlA8.net(2)
唐突に始まるRubyディス

142
デフォルトの名無しさん[sage]   投稿日:2016/12/21 00:26:43  ID:ej8UmSNF.net(3)
シンタクスが気に入っただけでRustでゲームを作るのは無謀?
もちろん2Dゲームエンジンはどこかから借りてくる
コメント1件

143
デフォルトの名無しさん[sage]   投稿日:2016/12/21 00:59:31  ID:C1GPbqLl.net(2)
>142
困難はあるけど それはC/C++と同じ程度で
無謀ってほどでもないんじゃないかな
設計を試行錯誤するのはRustのがC/C++より楽だと思う

自分は rustlang + OpenGL(GLES2.0/GLSL1.0) + SDL2 で3D書いた
http://i.imgur.com/SrBiFHe.gif
コメント2件

144
デフォルトの名無しさん[sage]   投稿日:2016/12/21 01:01:57  ID:DAWAuc9g.net
やっぱりGCなしはいいよねということでこんなのもあるよ
http://qiita.com/Pctg-x8/items/cbf8c8bb5e8825ba715a
コメント1件

145
デフォルトの名無しさん[sage]   投稿日:2016/12/21 02:05:19  ID:Pbl/pRNJ.net
Rust and the Future of Systems Programmingの動画シリーズ、初回は閲覧数2万越えてるのにしまいには1/10未満になってて笑う

146
142[sage]   投稿日:2016/12/21 12:27:04  ID:ej8UmSNF.net(3)
>143 どうもありがとう
ハイカラならやめとけと言われるかと思ったけど、
頑張ればなんとかなりそうね
3Dスゲーっす(!)

>144 ありがとう
やっている日本人もいるんだねぇ
コメント1件

147
デフォルトの名無しさん[sage]   投稿日:2016/12/21 12:40:43  ID:kCrlwcjM.net
>143
これのどこが3Dなんでしょう
コメント1件

148
デフォルトの名無しさん[sage]   投稿日:2016/12/21 14:53:32  ID:C1GPbqLl.net(2)
>146
Rust人口が増えて欲しいので ぜひやってみて

>147
『視差遮蔽マッピング/Parallax Occlusion Mapping』をやってる
子細はググって下さい

149
デフォルトの名無しさん[sage]   投稿日:2016/12/21 15:09:44  ID:wjBBiIkf.net
目が不自由だからかな
奥行が全く感じられない

150
デフォルトの名無しさん[sage]   投稿日:2016/12/21 18:13:34  ID:vaU6q8is.net
ゲームエンジン(ライブラリなのかな?)もあるしね

151
デフォルトの名無しさん[sage]   投稿日:2016/12/21 22:25:50  ID:ej8UmSNF.net(3)
C#風に
yield return someValue;
としたいんだけど、Rustのコルーチンはどうですか?
コメント1件

152
デフォルトの名無しさん[sage]   投稿日:2016/12/22 00:30:05  ID:qT53/Nxx.net(2)
>151
Option<Item>を返すようにして while let かな
Iteratorをderiveすれば for にも渡せます

https://play.rust-lang.org/?gist=a34273a2dac65be75e921efd34c6401c

153
デフォルトの名無しさん[sage]   投稿日:2016/12/22 00:42:28  ID:zFwIQNSP.net(2)
言語組み込みでは用意されていない
試してはないけど https://github.com/rustcc/coroutine-rs みたいなライブラリはある

154
デフォルトの名無しさん[sage]   投稿日:2016/12/22 01:50:14  ID:ORYJE8lc.net
Rust触ってみた感じいいなとは思ったんだけど型理論周辺がさっぱりで
って時はどの辺から始めればいいの?やっぱり型システム入門?

155
デフォルトの名無しさん[sage]   投稿日:2016/12/22 04:57:42  ID:zFwIQNSP.net(2)
http://bluss.github.io/rust/fun/2015/10/11/stuff-the-identity-functi...#rust-has-dedicated-syntax-for-this
目からウロコが落ちた
実際にこんなブレースの使い方をしているコードを見かけたら読みにくいと言ってブチギレると思うけど

156
デフォルトの名無しさん[]   投稿日:2016/12/22 13:02:02  ID:y+mdv7YD.net
tcl/tk 知らんの

157
デフォルトの名無しさん[sage]   投稿日:2016/12/22 13:16:30  ID:vR+H7QAs.net
rust/tkでも流行ってんのかとググったけどそんなことはなかった

158
デフォルトの名無しさん[sage]   投稿日:2016/12/22 15:25:02  ID:cRDgF52C.net
Rustって、こういう構造体を返す関数作れないんだね。

struct {
 file_content: String,
 header: &str, // 同じ構造体インスタンスのfile_contentのスライス
}
コメント2件

159
デフォルトの名無しさん[sage]   投稿日:2016/12/22 21:30:47  ID:qT53/Nxx.net(2)
>158
範囲情報をRangeで持っておいて、headerを関数にするのでは足りないかな?

https://play.rust-lang.org/?gist=4d511d2346cd32c4ef3b0348635b8910
コメント1件

160
デフォルトの名無しさん[sage]   投稿日:2016/12/23 00:33:16  ID:mdacHMN9.net(2)
Range.cloneは何とかならぬかと試行錯誤したけど
省略表記にした所でRangeを作るには変わりないから無駄な努力だった
https://play.rust-lang.org/?gist=f24e58d9a75d263fd75b0f651203a3b1

元の方も考えたけど、>158は所有者が2名になるから無理だよなぁ

161
デフォルトの名無しさん[sage]   投稿日:2016/12/23 06:17:00  ID:6bIGT6Sw.net(2)
Announcing Rust 1.14
https://blog.rust-lang.org/2016/12/22/Rust-1.14.html

WebAssemblyサポートですって奥さん

162
デフォルトの名無しさん[sage]   投稿日:2016/12/23 07:54:39  ID:D+0Lwjqy.net
>159
なるほど。
これをRustでも書けてると見るか、書けてないと見るかは微妙なところだな。

163
デフォルトの名無しさん[sage]   投稿日:2016/12/23 08:18:02  ID:mdacHMN9.net(2)
このインターフェース設計が生理的に気分悪いならrustは使わない方が良さそう
極標準的な手法だから、これがダメなら何も出来ないよ

164
デフォルトの名無しさん[sage]   投稿日:2016/12/23 15:10:42  ID:6bIGT6Sw.net(2)
ライブラリ設計において、何かの値を所有権付きで受け取って変換するような関数が失敗した場合にはErrで元の値の所有権を返すようにしておいた方が便利だよな
ただ、std::collections::HashMapとかは値を削除するときキーの所有権を返してくれないから、ある値を取り出して変換して返すような処理で失敗した時にキーの複製を用意しないといけないのが気持ち悪い
所有権を受け取る前に借用してバリデーションを走らせるという手もあるけど、それはそれでオーバーヘッドになるし

165
デフォルトの名無しさん[sage]   投稿日:2016/12/23 16:07:53  ID:LOFIUVE3.net
気にしすぎや

166
デフォルトの名無しさん[sage]   投稿日:2016/12/23 19:34:18  ID:efetRagZ.net
マシン語読めって話何だろうけど 所有権を手離す為のcloneって
copy on write的な最適化は期待出来ないんかね?

167
デフォルトの名無しさん[sage]   投稿日:2016/12/23 22:45:04  ID:oLVQTEs3.net
LLVM IRのことをマシン語と表現しているのか、それとも本当に機械語を読むつもりなのか

168
デフォルトの名無しさん[sage]   投稿日:2016/12/24 02:20:23  ID:/RBsJIky.net(5)
そもそも所有権を手放す為のcloneって何なんだ

169
デフォルトの名無しさん[sage]   投稿日:2016/12/24 12:04:03  ID:/RBsJIky.net(5)
OptionにもHashMapのor_insert_with()みたいな機能があれば良いのに

170
デフォルトの名無しさん[sage]   投稿日:2016/12/24 12:14:13  ID:XL3bxxKp.net
Optionとコレクションクラスとの統一感は無いね

171
デフォルトの名無しさん[sage]   投稿日:2016/12/24 16:20:09  ID:dDtDlNib.net(2)
Someだったらそのまま、Noneだったら指定のOptionを得る
ってんなら単にOption.or()でいいのではないかと

イマイチ何を実現したいのか分からんけど
コメント1件

172
デフォルトの名無しさん[sage]   投稿日:2016/12/24 16:25:11  ID:/RBsJIky.net(5)

173
デフォルトの名無しさん[sage]   投稿日:2016/12/24 16:29:36  ID:/RBsJIky.net(5)
あ、間違えた方を上げちまった
where T: Copyは無視してくれ

174
デフォルトの名無しさん[sage]   投稿日:2016/12/24 16:47:44  ID:dDtDlNib.net(2)
unwrapだと思ってたら実はas_refだったし
immutableな取り回しじゃなくmutableな取り回しだし、、、

immutableならOptionじゃ合わないわな
そこを諦めたら既存APIで十分な気がするけど、そこがこだわりならStruct新設から始まりそう
コメント1件

175
デフォルトの名無しさん[sage]   投稿日:2016/12/24 16:56:08  ID:dn0dwenj.net
unwrapのランタイムコストが気になるマン
コメント1件

176
デフォルトの名無しさん[sage]   投稿日:2016/12/24 16:59:11  ID:/RBsJIky.net(5)
>174
self: &mut _を受け取るメソッドでself.cache的な何かを扱いたいことってない?
まあ別に、その場で書こうと思えば簡単に書ける処理だから絶対に欲しいってわけではないけど……

>175
unsafe { mem::transmute::<_, &T>(self.as_ref()) }

177
デフォルトの名無しさん[]   投稿日:2016/12/25 01:33:20  ID:P0r3EIva.net(2)
ぶっちゃけ今のRustってC++14の機能積極的に使うのよりメリットある?

178
デフォルトの名無しさん[sage]   投稿日:2016/12/25 01:47:23  ID:jMjv2Bym.net
borrow checkerが凶悪な所がメリット
あとはcargoが標準で色々やってくれるから、全くメリットがないこともないと思う

業務ならC++11/14を使うべきなんだろうけどさ
頑張ればsmart pointerとmakeで大体のことはフォロー出来そう


179
デフォルトの名無しさん[sage]   投稿日:2016/12/25 04:20:17  ID:klev3clW.net
C++は何でもできるんだから、新興言語のおいしい機能を盗み取っちゃえばいいじゃん

180
デフォルトの名無しさん[sage]   投稿日:2016/12/25 07:43:09  ID:gfQaVVC2.net
コンセプトちゃんはどうなった?

181
デフォルトの名無しさん[sage]   投稿日:2016/12/25 20:33:17  ID:X66rp15o.net
qiitaで済まんが、↓を読むとモダンなC++を使いこなすよりもrust使う方がよっぽど楽なんじゃないか
http://qiita.com/yumetodo/items/e49a673afd9a3ecb81a8
よく、C++の機能を全部学ぶ必要は無いよ使うとこだけ理解すればいいよ、と言う人がいるけど、
コードは書くより読む方が大変なことを失念してるんじゃないかと思う
他人のコードの読解は困難を極めますよって自白してんじゃないかと
コメント1件

182
デフォルトの名無しさん[sage]   投稿日:2016/12/25 20:35:24  ID:OIpmFOQN.net
あれやろ、職場のコード規約で使用する機能を制限すれば読むのにも困らんやろ(白目)

183
デフォルトの名無しさん[sage]   投稿日:2016/12/25 20:50:48  ID:OHOD3vvf.net
理解できない人がいるのでジェネリクスとやらは使ってはいけません
コメント2件

184
デフォルトの名無しさん[]   投稿日:2016/12/25 23:52:57  ID:P0r3EIva.net(2)
>183
ジェネリクスだめならモダン言語は殆ど、ってかjavaすらダメじゃね?

185
デフォルトの名無しさん[sage]   投稿日:2016/12/26 00:01:48  ID:mhrTCx4U.net(3)
JavaのジェネリクスもModern Java(造語)な時期じゃないかね
C++でもboostで使われてた頃な気がする

>181をざっくり読んだけど、C++を仕事でやってたらこれくらいは別に問題ないと思うけどな
rustみたいに数ヵ月単位で言語仕様に仕変入る方がコードの解読に困難を極めないか?
古いバージョンで固定すればいいじゃんってんなら何も言うことない

186
デフォルトの名無しさん[sage]   投稿日:2016/12/26 01:02:26  ID:xO25f93t.net
C++は継ぎ接ぎだらけのズタボロ言語

187
デフォルトの名無しさん[sage]   投稿日:2016/12/26 01:32:03  ID:zGEIM/Ml.net(2)
>183
理解できない人をチームから外せばおk

188
デフォルトの名無しさん[sage]   投稿日:2016/12/26 02:42:52  ID:kYuQe4Wz.net
C++を貶すつもりは無いけど、ジェネリクスもコンパイル時計算もtemplate任せってのが傍から見てて怖い
templateの過剰使用のせいか、エラーメッセージが分かりにくい&バグを潰しにくいっていう印象がある

ML系言語の発展で、型システムを柔軟にすれば大抵のことは分かりやすく実現できるよって分かって、
それをつまみ食いしたrustは実はかなり分かりやすいし、勉強の資料も実は少なくない

あと、https://github.com/rust-lang/rust/blob/master/RELEASES.md
で、1.0.0からLanguageの項目がどれくらい変わったか見てくと、実はほとんど変わってないよ。
マクロが結構強化されたんで、マクロを定義しまくるcrateは影響があるかもしれんね。
ただ、そういうのは大抵DSLをマクロで!っていう特殊な事例が多いんで、何したって読みづらい
コメント2件

189
デフォルトの名無しさん[]   投稿日:2016/12/26 03:53:18  ID:o+MLW/qO.net
>188
コンパイル時計算はconstexprでいいだろ

190
デフォルトの名無しさん[sage]   投稿日:2016/12/26 07:04:10  ID:mhrTCx4U.net(3)
>188
お前がC++をよく知らないってことは分かった
使ってる言語を兎角推すのはまるでObjC信者のようだぁ
自身の言語が至上、他は総じてクソって見えるらしいな

191
デフォルトの名無しさん[sage]   投稿日:2016/12/26 07:45:24  ID:zGEIM/Ml.net(2)
ウィ ワント パースペクティブ。

192
デフォルトの名無しさん[sage]   投稿日:2016/12/26 07:59:25  ID:lZ2XshJp.net(2)
自分の使っている言語を押しまくるのはObjC信者に限ったことじゃないと思うんですが

193
デフォルトの名無しさん[]   投稿日:2016/12/26 10:11:15  ID:vXnTXx4r.net
Lispは神の言語

194
デフォルトの名無しさん[sage]   投稿日:2016/12/26 10:21:18  ID:y2AwbG3E.net(2)
S式は神の言語

195
デフォルトの名無しさん[sage]   投稿日:2016/12/26 11:42:54  ID:HAos+tGx.net(2)
C++は天動説
Rustは地動説

196
デフォルトの名無しさん[sage]   投稿日:2016/12/26 12:14:16  ID:kSu16y2+.net(2)
ocamlだってシンプルだったのが拡張につぐ拡張で最近は結構汚くなってるし
rustだって10年20年すれば汚くなるよ
奇麗なままでいられるのはユーザー数の少ない言語だけだ

197
デフォルトの名無しさん[]   投稿日:2016/12/26 12:16:41  ID:HAos+tGx.net(2)
Dはユーザー少ないけど汚い

198
デフォルトの名無しさん[sage]   投稿日:2016/12/26 13:57:45  ID:3l9yWhJs.net
言語仕様の拡張にRFCが必要な言語だから、無秩序に拡張できた過去の言語よりは綺麗な仕様になる圧力は高いと思う
コメント1件

199
デフォルトの名無しさん[sage]   投稿日:2016/12/26 13:58:25  ID:gUp/CjQ/.net
Rustで多態やるのはenum, trait, Boxを使い分ければいいの?
コメント1件

200
デフォルトの名無しさん[sage]   投稿日:2016/12/26 15:39:49  ID:kSu16y2+.net(2)
>198
C++のほうを見て同じことが言えるかな?

201
デフォルトの名無しさん[sage]   投稿日:2016/12/26 15:59:40  ID:y2AwbG3E.net(2)
Serdeがよく分からぬ

202
デフォルトの名無しさん[sage]   投稿日:2016/12/26 16:42:09  ID:stVLD6EM.net
>199
オブジェクト指向入門でよくある、哺乳類クラスとか、円や矩形クラスの
例(クラスツリー)を、Rustでどう表現するのか見てみたいな。
コメント1件

203
デフォルトの名無しさん[sage]   投稿日:2016/12/26 17:56:53  ID:R/Xz4XyC.net
>202
servoでDOM表現するためのコードでやっているけどなかなかえげつない実装らしい
この前あったrustのmeetupではほかの言語のやり方をそのままrustに持ち込むべきではないと言っていた

204
デフォルトの名無しさん[sage]   投稿日:2016/12/26 18:06:10  ID:lZ2XshJp.net(2)
そういえばクラスの継承がないのを不便に感じたことはないな

205
デフォルトの名無しさん[sage]   投稿日:2016/12/26 19:41:44  ID:ep/odFf8.net
ていうか、Rustで nominal subtyping を再発明する理由がない
型クラスはad hoc多相を実現する仕組みだがそもそもOOのためのもんじゃない
コメント1件

206
デフォルトの名無しさん[sage]   投稿日:2016/12/26 20:36:47  ID:mhrTCx4U.net(3)
バズワードだらけで言いたいことが分からんけど
Rustでクラス継承を実現するなら、traitをツリー継承して実装すればいいってことだな!

イマドキのオブジェクト指向はツリー継承を崇めてないから自分はやらないけど
コメント2件

207
デフォルトの名無しさん[sage]   投稿日:2016/12/26 20:51:12  ID:J++O7+r9.net
ツリーでない継承ってどんなん?

208
デフォルトの名無しさん[sage]   投稿日:2016/12/27 00:03:40  ID:z3Z5XFyz.net
バズワードって何?流行の若者言葉?
コメント1件

209
デフォルトの名無しさん[sage]   投稿日:2016/12/27 02:03:02  ID:SQsOUYP2.net
みんな知った風な口きくけど、誰一人としてその明確な定義を言えない言葉のこと
Web2.0とかセカイ系とか。『自分で吐いてる言葉の意味を自分で理解できていない』ような連中をのさばらせておくと発生してしまう
コメント1件

210
デフォルトの名無しさん[sage]   投稿日:2016/12/27 02:07:36  ID:4L8P6HZQ.net(4)
バズワード
buzzword
いかにも,もっともらしい専門用語。専門家や通人,仲間内が好んで用いるような言葉。

211
デフォルトの名無しさん[sage]   投稿日:2016/12/27 02:14:18  ID:M0D6LXD2.net(3)
結局、哺乳類クラスはどうすりゃいいわけ?
コメント1件

212
デフォルトの名無しさん[sage]   投稿日:2016/12/27 02:17:57  ID:/xy3dl1q.net(3)
哺乳類クラスなんてものを用いる設計が悪い
、というのは言い過ぎとしても、「哺乳類クラス」とかいう抽象的すぎる問題を持ってこられても議論のしようがなかったりする
現実の問題ではケースバイケースで適切な対処が異なるんだから
コメント2件

213
デフォルトの名無しさん[sage]   投稿日:2016/12/27 02:34:20  ID:M0D6LXD2.net(3)
>212
設計がクソなのはそうかもしれないけど、世の中がJavaっぽいクラスを前提に
動いてるんだから、それを素直にコードに落とせないのはまずいよ。

DOMやGUIライブラリ(のラッパー)はそうでしょ?
コメント1件

214
デフォルトの名無しさん[sage]   投稿日:2016/12/27 03:23:41  ID:VnAYfBLQ.net
オブジェクト指向な設計を、純関数型言語で実装できない!シネ!!みたいなね

traitとstructで無理矢理クラス継承を模倣すれば?
rustのお作法から外れて邪道感溢れるから出来るの分かっていても真面目に答えるヤツはここにはおらんよ(多分

215
デフォルトの名無しさん[sage]   投稿日:2016/12/27 03:28:37  ID:zWPkbd9P.net(2)
GObject、うっ、頭が……

216
デフォルトの名無しさん[sage]   投稿日:2016/12/27 04:14:04  ID:4L8P6HZQ.net(4)
>212>211が本当に「哺乳類クラス」を実装したいのか問うていただけだろうに、技術的観点で批判するのでなくシネとか何とか人格攻撃するのは違うでしょうに
>213が本当に哺乳類クラスを必要としていたのだって結果論に過ぎないのに

217
デフォルトの名無しさん[sage]   投稿日:2016/12/27 04:27:55  ID:P0uTzVTB.net
こんなのにいちいち突っかかってたらキリが無いだろ……
この程度の揶揄を無邪気に行う奴なんて世の中にはゴマンといる

218
デフォルトの名無しさん[sage]   投稿日:2016/12/27 06:29:43  ID:4L8P6HZQ.net(4)
error-chainはアプリケーションで使うには便利だけど、ライブラリで使うには微妙そうだな
・Errorオブジェクトがenumじゃないから直接マッチできない(kindメソッドを介す必要があり)
・Error型にattributeを設定できない(error_chain!が吐き出すドキュメントをそのまま使わざるを得ない。ErrorKindのvariantには設定できるけど)
・backtraceクレートが動く環境でしか動かない
ライブラリが外部に露出するエラー型はやはり手動で書くのが一番無難なのかねえ……
ドキュメントを書き換えるためにラッパ型を用意するのは本末転倒だろうし
コメント1件

219
デフォルトの名無しさん[sage]   投稿日:2016/12/27 07:26:24  ID:TsU75U35.net
error_chainについては以前チラ見した程度の知識しかないけど、何に使うものなのかよく分からんかったわ
println!("error: {}", e);
let mut e: &Error = &e;
while let Some(err) = e.cause() {
println!("caused by: {}", err);
e = err;
}
これじゃあかんのか?
コメント1件

220
デフォルトの名無しさん[sage]   投稿日:2016/12/27 07:55:36  ID:O+RLyrRL.net(2)
>218
backtraceはfearureでoffにできるから、ちゃんとCargo.toml書けばOK
ドキュメント生成できないのはissue立ってたからそのうちなんとかならないかと期待してる

>219
error-chainは複数種類のエラーをまとめて一つの型で表現するときのボイラープレートを書かなくてもよくすることが目的だから、
ソースコードが冗長になってもよいならば別に使わなくてもなんとかなる
あとは、勝手にbacktraceを作ってくれるからエラー発生時のデバッグが少し楽になるというのもある

221
デフォルトの名無しさん[sage]   投稿日:2016/12/27 09:20:55  ID:4L8P6HZQ.net(4)
backtraceオフにできるのか。いいことを聞いた

222
デフォルトの名無しさん[sage]   投稿日:2016/12/27 10:13:26  ID:alTKLSSw.net
公称部分型とかアド・ホック多相がバズワード扱いされてるってこと……?

223
デフォルトの名無しさん[sage]   投稿日:2016/12/27 10:18:17  ID:zWPkbd9P.net(2)
>209で主語の大きい表現がなされたせいで不穏な空気になってるだけで、実際にバズワード扱いしてるのは>206だけだろ
その>206もバズワードという言葉を正しく使えてるかは微妙だし

224
デフォルトの名無しさん[sage]   投稿日:2016/12/27 11:12:32  ID:sIydEYNy.net(3)
専門用語を使うのはいいとして>205は何が言いたいのか分からんよ

>208
むしろ死語かな
知らない世代がいるなら老がい用語

225
デフォルトの名無しさん[sage]   投稿日:2016/12/27 11:28:54  ID:O+RLyrRL.net(2)
rustでクラス階層表現する話はこの辺見るのがよいと思う
https://doc.servo.org/script/dom/

226
デフォルトの名無しさん[sage]   投稿日:2016/12/27 13:49:54  ID:/xy3dl1q.net(3)
どちらにせよerror_chainはインターフェースの独自色が強すぎて一般向けのライブラリで使うには向かないと思うけどな
使用例を見ても、アプリケーションではrustupとかいう輝かしい例があるけどライブラリではめぼしい例もないよな?

227
デフォルトの名無しさん[sage]   投稿日:2016/12/27 13:57:00  ID:GwCWTN18.net
今は有料になっちゃったけど、Learn C the Hard Wayっていうオンライン教材で、C言語でオブジェクト指向を作る講座を思い出す
構造体の最初のメンバに親クラスを定義すれば、キャストで親クラスになれるって手法だった
Rustでも親になる型の変数を用意して、適当なtrait、Asとか何とかを使えば作れるだろうとは思う

ただ、OOを使うべき場面ってのはダイナミックな用途に限られるんじゃないか
Trait Objectとかで大抵は事足りるはず
コメント2件

228
デフォルトの名無しさん[]   投稿日:2016/12/27 14:02:04  ID:b9lc87EM.net
OO好きねえ……

229
デフォルトの名無しさん[sage]   投稿日:2016/12/27 15:30:08  ID:/xy3dl1q.net(3)
>227
やってみた。汚い
Deref coercionとかは知らん
https://play.rust-lang.org/?gist=788c6c09719636cd28481db388caccc4
コメント1件

230
デフォルトの名無しさん[sage]   投稿日:2016/12/27 15:50:42  ID:sIydEYNy.net(3)
>229
汚くてワロタw

親構造体内包+Derefやってみたけどムリポ
メソッドオーバーロードを考えなきゃ良いんだろうけど、その場合の実用性はどうだろうね
https://play.rust-lang.org/?gist=43f8c19b64533a18262ce751d08b6d75

231
デフォルトの名無しさん[sage]   投稿日:2016/12/27 15:51:59  ID:sIydEYNy.net(3)
違う、オーバーロードじゃなくオーバーライドだ

232
デフォルトの名無しさん[sage]   投稿日:2016/12/27 16:04:44  ID:M0D6LXD2.net(3)
>227
ServoのDOMは、基本的にそのC言語でオブジェクト指向と同じみたいだね。
mem::transmute() を使ってる。
ただ、Castable#is()で判定できるから、それを忘れなければ、より安全って感じか。

このCastableを汎用的にしたやつがcrates.ioに有れば、便利かも。

233
デフォルトの名無しさん[]   投稿日:2016/12/28 00:45:05  ID:bvnjBJpz.net
関数型言語も狙うなら関数のオーバーロードあったほうがいいと思う。

234
デフォルトの名無しさん[sage]   投稿日:2016/12/28 10:22:40  ID:33G5Uz6K.net
traitじゃ駄目なの?
型推論がある言語で関数のオーバーロード(同名で型が異なる関数の定義)ができる言語なんて今のところ無いよ
オーバーライドはOOの意味合いだしなあ
コメント1件


235
デフォルトの名無しさん[]   投稿日:2016/12/28 10:33:00  ID:yWrP/m5t.net
>234
>型推論がある言語で関数のオーバーロード(同名で型が異なる関数の定義)ができる言語
え?あるよね?

236
デフォルトの名無しさん[sage]   投稿日:2016/12/28 10:49:12  ID:Pwrrr1Os.net
ライブラリを作るときは、依存してるクレートについてdefault-featuresを切っても問題ないなら切っといた方が良さそうだね
ライブラリ側が有効にしてるfeatureはユーザ側でオプトアウトできないけど、ライブラリがfeatureを無効にしていてもユーザ側でオプトインできるし

237
デフォルトの名無しさん[sage]   投稿日:2016/12/28 11:39:36  ID:j4SHG8/A.net
冬休みだからか、すっとぼけた質問や俺得提案が多いな

238
デフォルトの名無しさん[sage]   投稿日:2016/12/28 12:46:13  ID:zjOgRctZ.net
あると思うけど関数型言語をねらうのにオーバーロードがあった方がよいのは理由がよく分からない

239
デフォルトの名無しさん[]   投稿日:2016/12/28 13:05:53  ID:/YvbcywK.net(2)
オーバーロードよりも型クラス+カリー化の方が関数型っぽいな

240
デフォルトの名無しさん[sage]   投稿日:2016/12/28 13:17:11  ID:yxR21hjj.net
ErlangとかJuliaとか

241
デフォルトの名無しさん[]   投稿日:2016/12/28 13:34:40  ID:/YvbcywK.net(2)
Juliaは未だにGithubで「オーバーロードを採用してしまったから部分的用できない、ではどういう記法で部分的用を短く書くか」、って揉めてなかったか?

242
デフォルトの名無しさん[sage]   投稿日:2016/12/28 13:41:59  ID:SLz2RvoN.net
そういや、rustって、構文解析の邪魔になりそうなものは積極的に排除するイメージ。
文末のセミコロンを今時採用すると思わんかった。

243
デフォルトの名無しさん[]   投稿日:2016/12/28 14:12:42  ID:AaUHlvvb.net
rustって部分適用とかカリー化とか書きやすいの?

244
デフォルトの名無しさん[sage]   投稿日:2016/12/28 14:27:58  ID:9y3G1esR.net
Rustのセミコロンは式を文にして返り値をユニット型にする演算子だからそりゃ必要だろう
コメント1件

245
デフォルトの名無しさん[sage]   投稿日:2016/12/28 22:54:23  ID:tiZ71Spt.net
ifやmatchが式なおかげで「if if let」とか「while match」とか書けるね
記述量は減るけど慣れてないとビックリしそう

あと「いふいふれっと」ってずっと言ってると
ちょっと「みこみこなーす」っぽい

246
デフォルトの名無しさん[sage]   投稿日:2016/12/28 23:02:02  ID:6NcUzOVy.net
ぽくはない

247
デフォルトの名無しさん[sage]   投稿日:2016/12/28 23:57:43  ID:bDO+6moT.net
>244
蝉転んで区切るってやつか

248
デフォルトの名無しさん[sage]   投稿日:2016/12/29 00:08:37  ID:pmAxOvWh.net(2)
審議拒否

249
デフォルトの名無しさん[sage]   投稿日:2016/12/29 18:19:20  ID:7bfuEKFU.net
セミコロンなくても if if let は構文解析出来るだろうけど面倒だったんだろうな
開発始めた頃はまだ末尾セミコロン死ねな風潮でもなかったろうし

250
デフォルトの名無しさん[sage]   投稿日:2016/12/29 19:05:08  ID:pmAxOvWh.net(2)
ま、まあECMAScriptのautomatic semicolon insertionみたいなことになるよりはマシだから……

251
デフォルトの名無しさん[sage]   投稿日:2016/12/30 06:51:41  ID:a1QfaOpy.net
「行末セミコロン死ねな風潮」は行末セミコロン自動挿入のクソ言語のせいなんだから
「行末セミコロン死ね! だからRustも行末セミコロン自動挿入すべき!」とか意味不明の極致だろ

252
デフォルトの名無しさん[sage]   投稿日:2016/12/30 09:15:43  ID:BAOxkPJ/.net
唐突なPythonディスに俺がブチキレ

253
デフォルトの名無しさん[sage]   投稿日:2016/12/30 12:52:44  ID:gA9NnhXP.net
セミコロンあり無しそんなに重要か?

254
デフォルトの名無しさん[sage]   投稿日:2016/12/30 14:09:34  ID:STL3vH6g.net
行末セミコロンはフリーフォーマットには欠かせない必要不可欠なもの

255
デフォルトの名無しさん[sage]   投稿日:2016/12/30 14:14:16  ID:+0G7T/E5.net(2)
なくてもなんとかなる場合もあるけど、有り無しで設計/実装の難易度はダンチよな、超重要

人間様にとっては

256
デフォルトの名無しさん[sage]   投稿日:2016/12/30 14:14:52  ID:+0G7T/E5.net(2)
なくてもなんとかなる場合もあるけど、有り無しで設計/実装の難易度はダンチよな、超重要

人間様にとってはASCII文字以外を変数名に使えるかどうかくらいの問題か

257
デフォルトの名無しさん[sage]   投稿日:2016/12/30 15:45:32  ID:1LhwiS9W.net
セミコロンを忌み嫌う人はそもそもrustのborrowとかmoveとかめんどくさがって使えなさそう

258
デフォルトの名無しさん[sage]   投稿日:2016/12/30 16:25:30  ID:Q3tvxZdg.net
;はOKだけど
PASCALやErlangみたいに
;と,と.の使い分けになったら嫌

259
デフォルトの名無しさん[sage]   投稿日:2016/12/31 08:20:02  ID:evZQ8uAx.net
エディタで\n\rを;に表示すればいいんだ!

260
デフォルトの名無しさん[sage]   投稿日:2016/12/31 12:20:17  ID:H5rV9I3r.net
fn main() {;
println!("hello");
};

261
デフォルトの名無しさん[sage]   投稿日:2016/12/31 12:28:55  ID:Sym7Bg1E.net
error: expected item, found `;`
--> <anon>:3:2
|
3 | };
| ^

error: aborting due to previous error

262
デフォルトの名無しさん[sage]   投稿日:2017/01/02 10:01:31  ID:1m/cK6rN.net
セミコロンに飛びついてるのは
他のことについて語れないくらいバカな奴だけだろ。

263
デフォルトの名無しさん[sage]   投稿日:2017/01/02 21:18:31  ID:ichN9xlo.net
唐突な人格攻撃に困惑

264
デフォルトの名無しさん[sage]   投稿日:2017/01/03 11:38:39  ID:xKIwkl8n.net
rustc: Stabilize the `proc_macro` feature by alexcrichton · Pull Request #38783 · rust-lang/rust
https://github.com/rust-lang/rust/pull/38783

Macros 1.1がstabilizeされるってよ

265
デフォルトの名無しさん[sage]   投稿日:2017/01/03 12:02:32  ID:3o9M4oho.net
きたか…!!

  ( ゚д゚ )
  .r   ヾ
  |_|  |_|
   | | |
   しノ

___ / ̄ ̄ ̄/_
  \/    /

266
デフォルトの名無しさん[]   投稿日:2017/01/03 13:08:42  ID:ZKRmSAM8.net
マクロのそ?轤

267
デフォルトの名無しさん[]   投稿日:2017/01/03 18:29:20  ID:4ChvZkkB.net
どこの超時空要塞?

268
デフォルトの名無しさん[sage]   投稿日:2017/01/03 20:40:08  ID:wuUskEpB.net
RFCをざっくり読んでも具体的に何が効率的になるのか分からん
try!が?になるくらいのシンプルな例を誰か頼む

269
デフォルトの名無しさん[sage]   投稿日:2017/01/03 20:58:17  ID:r8LUHXKe.net
> we're shooting for macros 2.0 stable in the far future
ref. 1681-macros-1.1.md

要は便利機能は2.0待ってろってことか、先は長いな

270
デフォルトの名無しさん[sage]   投稿日:2017/01/03 21:50:34  ID:OFYBDDbH.net
分かってると思うけど2.0ってのはrustc 2.0じゃなくてMacros 2.0だからな

271
デフォルトの名無しさん[sage]   投稿日:2017/01/05 00:29:08  ID:ZD27oJ5u.net
Serdeって何故デシリアライズされる型とdeserializeメソッドがセットになってるんだろう
MapVisitor::visit_valueでカスタムのdeserializeメソッドを使いたい場合はラッパ型を用意してDeserializeをimplするしかない?

272
デフォルトの名無しさん[sage]   投稿日:2017/01/05 22:10:05  ID:NKDpP9qZ.net
discriminant_valueはいつになったらstabilizeされるんだ?
variantを比べるためだけにmatchして云々とかいう冗長で非効率な実装はなるべくしたくないのじゃ

273
デフォルトの名無しさん[sage]   投稿日:2017/01/06 00:11:35  ID:Fz5LbEfZ.net(2)
https://github.com/rust-lang/rust/issues/24263

Some things to nail down before stabilization:

- [x] prototype implementation
- [ ] signature needs to have a <T:Reflect> bound
- [ ] documentation should reflect the inherent instability in this value and describe valid uses
- [ ] perhaps signature should require input T to actually be an enum instance?
- [ ] do we want to adjust the return type in any way to enforce the above rules?

274
デフォルトの名無しさん[sage]   投稿日:2017/01/06 01:12:22  ID:FrG2KJ61.net
これってコンパイラのバグ?
https://is. gd/jWTzHJ

275
デフォルトの名無しさん[sage]   投稿日:2017/01/06 01:34:14  ID:Fz5LbEfZ.net(2)
どんな振る舞いを期待していたのかは知らないけど、とりあえず^は指数関数じゃなくてXORだよ

276
デフォルトの名無しさん[sage]   投稿日:2017/01/06 08:55:49  ID:RoJjSRcN.net
Rustでもビット/シフト演算子の優先度は四則演算子よりも低いんだっけか
期待動作が分からんのでprintじゃなくassertで頼む

277
デフォルトの名無しさん[sage]   投稿日:2017/01/07 06:27:18  ID:ZgzC+Fa4.net(2)
256と3のXORとか謎すぎるし、^の意味を履き違えてるだけの線が濃厚な気が……

278
デフォルトの名無しさん[sage]   投稿日:2017/01/07 15:58:55  ID:0PjiZvlV.net
うん。近年まれに見るバカだ。

279
デフォルトの名無しさん[sage]   投稿日:2017/01/07 16:04:59  ID:ZgzC+Fa4.net(2)
寝ぼけてた

280
デフォルトの名無しさん[sage]   投稿日:2017/01/07 16:57:17  ID:xEA8lk8b.net
ワロタ

281
デフォルトの名無しさん[sage]   投稿日:2017/01/07 21:42:06  ID:n2yomPvZ.net
pythonとかocamlとかjuliaとかcommon lispとか、Exploratory programmingに適した言語とrustを開発の両輪にしたいけど、
何かおすすめある?
コメント2件

282
デフォルトの名無しさん[]   投稿日:2017/01/08 01:03:37  ID:kfDqfkDn.net
>281
forth

283
デフォルトの名無しさん[sage]   投稿日:2017/01/08 01:05:56  ID:PddBs9sQ.net
Exploratory programmingのために新たな言語を学び始め、開発が全く進まない未来を予知した

284
デフォルトの名無しさん[sage]   投稿日:2017/01/08 07:57:00  ID:0mVP2hZ6.net
Erlang

285
デフォルトの名無しさん[sage]   投稿日:2017/01/08 08:35:33  ID:23/7dWy/.net
Rust

286
デフォルトの名無しさん[sage]   投稿日:2017/01/10 19:06:19  ID:f/pmyPVx.net
>281
>Exploratory programming

プロトタイプ作って試行錯誤、って話ならHaskellが一番使いやすいと思う
小規模のものなら、再発明が面倒になってHaskellのプロトタイプを改善してそれでよしとする未来まで見える

遅延評価絡みでオーダーのトラップがあるのが難点だけどな

287
デフォルトの名無しさん[sage]   投稿日:2017/01/11 14:21:39  ID:XBWH8SeE.net(7)
ゲームしつつ片手前にドキュメントを眺める・・・Rust1時間目

let ほほう型推論か・・・コンパイラで型推論は最近の流れ?
mut ミュータブル・・・これつけないと定数ってことじゃろかよーわからん・・・
String::new() あえてnewっていうメソッドにせんでも・・・とにかく静的らしい・・・

ほほう・・・

288
デフォルトの名無しさん[sage]   投稿日:2017/01/11 15:07:47  ID:7uyPKRK3.net
Rustと言えばゲームだね!

289
デフォルトの名無しさん[sage]   投稿日:2017/01/11 15:22:46  ID:XBWH8SeE.net(7)
2時間目・・・

エラーハンドリングの仕方がちょっと特殊だな・・・例外だらけの汚いコードにはならないのだろうか・・・
loopとはわかりやすいキーワードだ・・・もしかしてrustはとりあえず全部無限ループさせるのか?なわけないよな・・・
matchとはなんぞ・・・これはとても便利そうだ・・・
parse()って何に?letに型指定すればそれにってことだろうか?parseIntとかじゃなくてシンプルだな・・・

ふむふむ・・・

290
デフォルトの名無しさん[sage]   投稿日:2017/01/11 16:06:44  ID:/IZ7nDq3.net(3)
チラ裏

291
デフォルトの名無しさん[sage]   投稿日:2017/01/11 16:53:57  ID:5OhI584z.net(2)
むしろTwitter、なぜここでツィートしてるのかは不明
コテつけといて、NG入れるから

292
デフォルトの名無しさん[sage]   投稿日:2017/01/11 19:03:44  ID:XBWH8SeE.net(7)
触らなければよかったのに触っちゃったね
よーし今日から荒らしていくからよろしくwwwwwww

293
デフォルトの名無しさん[sage]   投稿日:2017/01/11 19:04:54  ID:XBWH8SeE.net(7)
まぁこんなゴミ言語よりはGoのほうがよいわな
こんなん使うのはSwiftしか使えない池沼だけ

294
デフォルトの名無しさん[]   投稿日:2017/01/11 19:06:19  ID:AM+tjFEn.net
歌舞伎座.tech#13「Elixir 勉強会」
2017/01/11(水) 開場:18:57 開演:19:00  ニコニコ生放送
lv286846512

295
デフォルトの名無しさん[sage]   投稿日:2017/01/11 19:07:09  ID:XBWH8SeE.net(7)
ふぁーーーwww
見に行くしかないwww

296
デフォルトの名無しさん[sage]   投稿日:2017/01/11 19:17:33  ID:XBWH8SeE.net(7)
LL以外どこの言語にもあるスレッドがご自慢のクソ言語
劣化Scala ふぁーwww

297
デフォルトの名無しさん[sage]   投稿日:2017/01/11 19:43:29  ID:PvND63zB.net
キチガイだ

298
デフォルトの名無しさん[sage]   投稿日:2017/01/11 19:43:37  ID:5OhI584z.net(2)
borrow checkerに挫折したか
学習曲線の改善は難敵よね

299
デフォルトの名無しさん[sage]   投稿日:2017/01/11 19:44:33  ID:/IZ7nDq3.net(3)
const fn tracking issue (RFC 911) #24111
https://github.com/rust-lang/rust/issues/24111#issuecomment-227612305
でたった今話し合われてるけど、const fnがstabilizeされたら関数にconstをいちいちくっつける作業が発生して面倒くさそう
constじゃない関数をmut fnみたいにする案もあるけどそれはそれで互換性の問題があるしなあ……

300
デフォルトの名無しさん[sage]   投稿日:2017/01/11 19:56:50  ID:Dbl5XF86.net
Rust 2を待つしかないと
コメント2件

301
デフォルトの名無しさん[sage]   投稿日:2017/01/11 20:08:37  ID:XBWH8SeE.net(7)
出来損ない言語の末路だな
独裁者のいない寄り合い所じゃこんなもんだろwww

302
デフォルトの名無しさん[sage]   投稿日:2017/01/11 20:15:03  ID:/IZ7nDq3.net(3)
>300
そう単純な問題でもないみたいで、constをくっつけるのはnon-breaking changeだけどその逆はbreakingだからconstの方をデフォルトにするのは宜しくないのでは、という議論もある
derive(Copy)とかと同様の問題。だから-W missing_copy_implementationsと同じようにopt-inなlintだけに留めるべきではとも言われている

303
デフォルトの名無しさん[sage]   投稿日:2017/01/15 16:47:20  ID:Ib7guha6.net
>300はrust 2でbreaking change待ちって意見だろうよ
breaking changeせずに適用したいから云々って話なんだろうけど

どう転がるにせよwarningレベルで対応を要求してくるだろうからノンビリ待とうかね

304
デフォルトの名無しさん[sage]   投稿日:2017/01/15 20:39:38  ID:SlBKEDAf.net
マクロやプラグインでやってたことの一部がconst fnで出来るようになるんだよね、これ?
bookであったローマ数字をrn!(X)でコンパイル時に10にするようなのを、rn("X")とかに出来るってことなら嬉しい
マクロ苦手なんだ

305
デフォルトの名無しさん[sage]   投稿日:2017/01/15 21:12:15  ID:8SgEfBB1.net
const fnは普通のfnのサブセットみたいなものだからマクロの代わりとしては微妙なような
const fn内で関数を宣言できるわけでもないし、外部スコープの変数を直接参照したりreturnできるわけでもないからなあ

306
デフォルトの名無しさん[sage]   投稿日:2017/01/16 01:06:39  ID:3MjcRRh6.net
すべてのmacroの代替になるわけではないけど、macroやらpluginやらで無理して実現してたことの一部が楽にはなるはず
それぞれ適した用途で使えばよい

307
デフォルトの名無しさん[sage]   投稿日:2017/01/16 11:01:09  ID:YCpRkRk0.net
inlineとmacroとpluginとconst fnと
適材適所をまとめた情報ってどこかないかね

308
デフォルトの名無しさん[sage]   投稿日:2017/01/18 19:26:40  ID:0/He/nuF.net
const fnからpanic!出来ない仕様ってstabilizeされてからもそのままなのかな
コメント2件

309
デフォルトの名無しさん[sage]   投稿日:2017/01/19 05:46:59  ID:ff1dOA50.net
>308
そうだと思うけど
const fnからpanic!呼びたいって要求は
#[cfg(...)]みたいなattributesに置き換えられないかな
なんか考えが足りてなかったら申し訳ない

310
デフォルトの名無しさん[sage]   投稿日:2017/01/19 06:12:01  ID:nSqYy0BF.net
attributesじゃitem単位での条件コンパイルくらいしかできないだろうから無理じゃね?
コンパイルタイムとランタイムを区別するのは現時点でのattributesの領分を越えてるでしょ
>308の期待する動作がはっきりとは分からんが、恐らく下の擬似コードみたいなのに対応しなければならないんだろうし
これを実現するには言語仕様(あるいはプラグイン)の追加で対応するしかないんじゃないかねえ

fn main() {
const A = f(0); // expecting compile-time error
let x = f(std::env::args().skip(1).first().unwrap().parse().unwrap()); // expecting runtime panic
println!("{}, {}", A, x);
}

const fn f(n: i32) -> ! {
panic!();
}

311
デフォルトの名無しさん[sage]   投稿日:2017/01/19 17:50:45  ID:KP9WuCCK.net
そもそもその手の機能ってC++やDですら実現されてないんじゃ……

312
デフォルトの名無しさん[sage]   投稿日:2017/01/22 02:14:54  ID:meHWinYv.net
https://crates.io/categories/games
>If Rust the video game were implemented in Rust the programming language, it would belong in this category.
クソワロタ

313
デフォルトの名無しさん[sage]   投稿日:2017/01/22 15:32:04  ID:He1ERbj9.net
最近はRustで検索するとゲームの方より言語の方が上位に来るようになったぞ!
コメント1件

314
デフォルトの名無しさん[sage]   投稿日:2017/01/22 15:36:25  ID:Yl4nAGke.net
RustってポストC/C++になれる言語ですか?
コメント2件

315
デフォルトの名無しさん[sage]   投稿日:2017/01/22 16:37:35  ID:C/30dEKV.net
単にお前さんのGoogleアカウントの検索の履歴からRust言語に重み付けされた結果が出てるだけだから
アカウント変えるとゲームの方が先にくる場合もままあるよ

> Displaying 0-0 of 0 total results
これは、、、言い出しっぺの法則やな?

316
デフォルトの名無しさん[]   投稿日:2017/01/22 19:28:06  ID:eyLJuWmg.net
>314
ポテンシャルはある。

317
デフォルトの名無しさん[sage]   投稿日:2017/01/22 19:40:20  ID:Dd1b/Mlb.net
https://github.com/Wilfred/remacs
A community-driven port of Emacs to Rust.

318
デフォルトの名無しさん[sage]   投稿日:2017/01/24 19:29:16  ID:igHP4a7v.net
>314
寝言は寝て言え。現状からみてD言語ルートだ。

319
デフォルトの名無しさん[sage]   投稿日:2017/01/24 19:53:42  ID:pU9ER4NI.net
Mozillaが本気ならD言語よりはマシなんじゃね
コメント1件

320
デフォルトの名無しさん[sage]   投稿日:2017/01/24 20:42:28  ID:VnBtkYVE.net
Quantumに着手してる時点で本気でないはずがない

321
デフォルトの名無しさん[sage]   投稿日:2017/01/24 21:24:09  ID:dNkKf7mt.net
個人的なツールでちょっと使い始めたところだけど
C++テンプレート初期のエラーメッセージ地獄にくらべるとRustさん親切すぎて天使かよって感じなのでがんばってほしい
けどもうひと押し(偉いひと説得材料的な)なんかほしい気はする
コメント1件

322
デフォルトの名無しさん[sage]   投稿日:2017/01/24 23:34:50  ID:iJ0FMzkO.net
>319
Mozillaが本気出してこの程度ならD言語未満のHaskellレベルじゃね?
コメント1件

323
デフォルトの名無しさん[sage]   投稿日:2017/01/24 23:46:14  ID:rMS2+V/T.net
>313
あっちはまだアーリーアクセスだから…

324
デフォルトの名無しさん[]   投稿日:2017/01/25 00:43:42  ID:uVLYflKb.net
rustとc++14ならどっちが学習コスト高いかな?
コメント1件

325
デフォルトの名無しさん[sage]   投稿日:2017/01/25 01:06:25  ID:icd2X49v.net(2)
>324
(高コスト)C++闇の軍団>proc macroを書くRust>テンプレートを書くC++≧ビルドプラグインを書くRust>Rustさわり>C++さわり(低コスト)
現状こんなもん?

326
デフォルトの名無しさん[sage]   投稿日:2017/01/25 08:00:44  ID:wJvgwWCY.net(2)
国際規格みたいなのができるとしても複数の実装の事を考えると
プラグインは仕様からは外れるかなーとは思う

327
デフォルトの名無しさん[sage]   投稿日:2017/01/25 09:57:43  ID:+ZiK5CtY.net(2)
>321
zero costで性能良いって売りが事実になれば...
上で上がってたウェブサービスのベンチマークが意外とガッカリ性能だったのが萎える

328
デフォルトの名無しさん[sage]   投稿日:2017/01/25 11:09:39  ID:wJvgwWCY.net(2)
ウェブサービスのベンチマークなんてコンパイラ云々よりも構成のほうが影響強いって上でも言われてるじゃん
とはいえアセンブリレベルでは機能制限されたC++でしかないからrustで速くできるならC++だともっと速くできるわけで
労力もC++のほうがかかるだろうけど

329
デフォルトの名無しさん[sage]   投稿日:2017/01/25 16:34:12  ID:82yMOZoe.net
言語仕様なんだからプラグインが外れるのはむしろ当たり前かと

330
デフォルトの名無しさん[sage]   投稿日:2017/01/25 16:42:20  ID:vaJn6hA3.net
>322
ん、今さりげなくHaskell馬鹿にした?

331
デフォルトの名無しさん[sage]   投稿日:2017/01/25 17:46:06  ID:G/yiP9yt.net
C++だと安全にするためにコピーしてた箇所をrustだとガンガンmoveにできるとかで、
普通に書いたらC++より早いとかあってもおかしくないとは思う

332
デフォルトの名無しさん[sage]   投稿日:2017/01/25 17:55:56  ID:GF1+cyEf.net
C/C++は危険でも関係なくガンガンコピーするから速い
開発者が明示的にコードで安全にするか
言語が暗黙的に安全にするかの違いがあるだけで
安全なコードが吐かれてたらその分は遅くなるよ
コメント1件

333
デフォルトの名無しさん[sage]   投稿日:2017/01/25 19:05:12  ID:+ZiK5CtY.net(2)
偉い人説得のために言語仕様だけ推すわけでもなく
rustupのビルドツールセットの管理性や、cargoのビルド環境の利便性や、3rd party crateの性能なんかをまとめて
だからrustは良いんですよってプレゼンするんだよぉ

んで、公式に唱ってるわりに足引っ張ってる3rd party crateの性能が気になる
言語仕様は安全なマルチスレッドを言語文法でもうちょっと便利にして欲しいけど、グリーンスレッドに先祖帰りされても困るしのう

334
デフォルトの名無しさん[sage]   投稿日:2017/01/25 20:46:32  ID:o52BqWk7.net
>332
そうなんだあ
Rustって遅いんですね


335
デフォルトの名無しさん[sage]   投稿日:2017/01/25 21:10:53  ID:G3Sy5RF2.net
コピーするから速い……?

336
デフォルトの名無しさん[sage]   投稿日:2017/01/25 22:08:50  ID:9B/zRGmW.net
週刊誌並の偏った切り取り方

337
デフォルトの名無しさん[sage]   投稿日:2017/01/25 22:16:22  ID:vvheTSCl.net
せやで
dereferenceは高コストな操作だからstructだろうが何だろうが参照渡しより値渡しの方が高速なんやで

338
デフォルトの名無しさん[sage]   投稿日:2017/01/25 22:31:03  ID:rhF3V2Xc.net
めっちゃデカイ構造体コピーしたろ!

339
デフォルトの名無しさん[sage]   投稿日:2017/01/25 22:51:07  ID:icd2X49v.net(2)
そもそもRustで「めっちゃでかい構造体」を作るのって、どっかで設計間違ってる気がしなくもない。

340
デフォルトの名無しさん[sage]   投稿日:2017/01/26 01:26:45  ID:QpF8cABc.net
それは作るプログラムの性質であってRust関係ないしお前が設計の良し悪しを決めるものではない

341
デフォルトの名無しさん[]   投稿日:2017/01/26 01:43:10  ID:2yUJ7U50.net
Rustと言う名前のゲームがあるそうですが
それはプログラミング言語のRustで作られているのですか?
コメント1件

342
デフォルトの名無しさん[sage]   投稿日:2017/01/26 07:47:28  ID:2BnY2tIN.net
>341
その同名のゲームとは関係ない

343
デフォルトの名無しさん[sage]   投稿日:2017/01/26 22:36:48  ID:CV+F+02K.net
コピーのコストは構造体のサイズもあるがヒープ使ってるか否かも関係するのでは

344
デフォルトの名無しさん[sage]   投稿日:2017/01/27 05:06:53  ID:ZptWLHtZ.net
32bit時代のC#のドキュメントには、16バイトまでなら参照よりコピーした方がいい
って目安が書いてあったけど、今どきはどんなもんだろ。

345
デフォルトの名無しさん[]   投稿日:2017/01/29 05:44:52  ID:OhLobWwB.net
Rustは何が新しいのか(基本的な言語機能の紹介) - いもす研 (imos laboratory)
http://imoz.jp/note/rust-functions.html


こんな記事見つけた

346
デフォルトの名無しさん[sage]   投稿日:2017/01/29 06:53:26  ID:96Ypx+6J.net
Rustは何が新しくないのか、とセットで
http://lyrical-logical.hatenablog.com/entry/2017/01/28/213539

347
デフォルトの名無しさん[sage]   投稿日:2017/01/29 08:24:52  ID:95TVWg7i.net
つまりRustで出来てC++で出来ないことはないけど、C++で出来てRustで(コンパイラが通してくれないせいで)出来ないことはある、と。

C++でいいじゃん。Rustいらないね。

348
デフォルトの名無しさん[]   投稿日:2017/01/29 08:34:25  ID:uQxwW8BY.net
何でも出来た方がいいのはチーム全員が信頼出来る場合だけだな

349
デフォルトの名無しさん[sage]   投稿日:2017/01/29 09:19:49  ID:MpcYD/ky.net(3)
自分自信すら信用できず、実際自業自得でバグを産むから、他人の信用なんか真っ平ごめんだ

350
デフォルトの名無しさん[sage]   投稿日:2017/01/29 11:26:25  ID:qAZTn4yt.net
Mozilla(というかブラウザ)のメモリ関連のミスは影響がヤバいからわざわざRustまで作ってるだけで
メモリ関連ミスってもどうということはない程度のプログラムならC++でもいいんじゃない

351
デフォルトの名無しさん[sage]   投稿日:2017/01/29 11:29:34  ID:HeP1z5CV.net
メモリ関連というよりはもっと一般的なuse-after-freeの対策も含んでると思うけどな
最近のSerde 0.9のリリースなんかはまさにそれだし

352
デフォルトの名無しさん[sage]   投稿日:2017/01/29 15:04:54  ID:3OY0Puum.net
C++書けない無能のための言語なのに、学習曲線が断崖絶壁の無能に使えない言語に落ち着くRust。

353
デフォルトの名無しさん[sage]   投稿日:2017/01/29 15:12:56  ID:MpcYD/ky.net(3)
swiftスレで相手してくれる人がいなくなったからrustスレに遊びに来たのな
あっちで遊んでやんよ、お前も使ったことないrustよりまだ使えるswiftのがいいだろ?

354
デフォルトの名無しさん[sage]   投稿日:2017/01/29 16:05:51  ID:LzV9/FyF.net
大規模なC++プログラムメンテナンスするコストに比べればrustの学習曲線なんて平原みたいなものでは

355
デフォルトの名無しさん[sage]   投稿日:2017/01/29 16:06:01  ID:SmTDa/S0.net
自分の脳みそを完全に信用できるならな

356
デフォルトの名無しさん[sage]   投稿日:2017/01/29 18:28:56  ID:MpcYD/ky.net(3)
いや信用できないからrustが良いのだ
rustはエコシステムが他言語に比べてめっちゃスマートだよな
goもまぁ悪くはないけどソースファイルの置き場とか依存ライブラリの管理とかイマイチ
C/C++やSwiftはそれぞれ別の理由で論外だし

357
デフォルトの名無しさん[sage]   投稿日:2017/01/29 22:47:53  ID:Ocx7v7z5.net
書くための敷居が低いけど、書く能力がモロにメンテナンスコストに反映されるC++と
書くための敷居が多少高いけど、だいたいはコンパイラが面倒見てくれるRust

C++で血ヘド吐いた人ほど後の方を重視して、メンテコストを軽く見る人ほど前の方を見てRust叩く印象。

358
デフォルトの名無しさん[sage]   投稿日:2017/01/29 23:15:06  ID:NDmTx4oh.net
書くための敷居というか、入門の敷居では
慣れれば書くことに苦労することはあまりないように感じる

359
デフォルトの名無しさん[sage]   投稿日:2017/01/30 00:51:03  ID:eF+mclkT.net
https://crates.io/
そろそろ Crate は、ジャンルごとに階層化したりタグ付けできたりソートできたりしないと発見率が糞になるかと。
コメント1件

360
デフォルトの名無しさん[sage]   投稿日:2017/01/30 02:43:56  ID:YhRMpmBj.net
敷居が高いは不義理をしてあわせる顔がない時に使う

361
デフォルトの名無しさん[sage]   投稿日:2017/01/30 03:24:58  ID:OQRcOPPf.net
へえ、ものしりだねー

362
デフォルトの名無しさん[sage]   投稿日:2017/01/30 07:58:57  ID:nWNAE5Le.net(2)
>359
2000年頃のyahooみたいに?
ツリー検索をこの時代に復活させるのはないわー

363
デフォルトの名無しさん[sage]   投稿日:2017/01/30 19:07:27  ID:bQnpSDhS.net
いくら言語を誉めたところで、この言語で書かれたまともなプロダクトも、この言語の本も出てないことが、この言語のダメさを物語っている。
コメント1件

364
デフォルトの名無しさん[sage]   投稿日:2017/01/30 19:11:49  ID:rVcDTRet.net
Facebookがmercurial hgをポーティングしたって話の裏は取れたんだっけ?

365
デフォルトの名無しさん[sage]   投稿日:2017/01/30 19:36:00  ID:nWNAE5Le.net(2)
>363
つ ripgrep
煽るには知識が足りてない

366
デフォルトの名無しさん[sage]   投稿日:2017/01/30 19:43:25  ID:ako8vkN5.net
ライブラリの話ならともかく、エンドユーザ向けのプロダクトが多くないことと(エンジニアにとっての)言語の良さって関係あるの?
個々人のプロジェクトで役に立ってるのならそれで十分でしょ

367
デフォルトの名無しさん[sage]   投稿日:2017/01/30 21:56:25  ID:7WMFgwOL.net
それ以前に仕様が固まってないじゃん。Rust
AppleのSwiftが流行らないのと同じ。
今は実験段階なんだからプロダクト数だけで言語の良し悪しは測れない。

368
デフォルトの名無しさん[sage]   投稿日:2017/01/30 22:33:48  ID:BdTPiSFU.net
>368
1.14にもなって言語仕様固まってないのも問題のような気がしなくもないが……
Goはまだ(?)1.7だけどももうほぼ言語仕様Fixと言っていいレベルで固まってるし。

プロダクトって面で言ったら上で出てるripgrepもそうだが、
まずFirefoxのコアに使われてる時点で「まともなプロダクトがない」って口が裂けても言えないだろ。

369
デフォルトの名無しさん[sage]   投稿日:2017/01/30 23:13:49  ID:qF4ARhTt.net
const_fn、conservative_impl_trait、never_type、associated_consts……この話はやめよう

370
デフォルトの名無しさん[sage]   投稿日:2017/01/31 00:42:51  ID:E22d6Q0u.net
固まるの意味が分からないがstableな機能ではまだ足りないと言っている?

371
デフォルトの名無しさん[]   投稿日:2017/01/31 01:08:37  ID:lkTuVnqH.net
言語仕様に変更があったら後方互換性があってもダメというなら殆どの言語使えないよね。
何ならOKなんだ?というレベル
コメント1件

372
デフォルトの名無しさん[sage]   投稿日:2017/01/31 01:18:23  ID:w/stZREj.net
C++センパイの進化について

373
デフォルトの名無しさん[sage]   投稿日:2017/01/31 01:57:41  ID:TmvDy1Hy.net
C/C++のようにOSでもカーネルでもデバドラでも組み込みでも何にでも使える言語が良い
ユーザレイヤでしか触れない言語は価値が低い
コメント1件

374
デフォルトの名無しさん[sage]   投稿日:2017/01/31 02:04:11  ID:EAnQTfF2.net
いったい何を批判しようとしてるんだ?

375
デフォルトの名無しさん[sage]   投稿日:2017/01/31 04:21:00  ID:J6yoEKAE.net
c++でデカイプロジェクトゴリゴリ書いてた人ほどrustいいんだろうな

376
デフォルトの名無しさん[sage]   投稿日:2017/01/31 05:03:19  ID:IQXv4KrI.net
C++はヘッダファイルに分かれてたりするのが嫌い。

Rustもモジュール周りはちょっと嫌い。
modといいつつ、実質includeが基本みたいだけど、なんだか古めかしい。

377
デフォルトの名無しさん[sage]   投稿日:2017/01/31 05:14:32  ID:iAIegLum.net(2)
可視性と階層構造を持つincludeとかもはやincludeじゃないよそれ

378
デフォルトの名無しさん[sage]   投稿日:2017/01/31 11:32:06  ID:x8DMpHTc.net
>371
単純に機能が足りてない。
conservative_impl_traitがないとアンボックス化したクロージャ返せないとか。

379
デフォルトの名無しさん[]   投稿日:2017/01/31 11:44:51  ID:sCWKIGbu.net(2)
下記のような処理で forの中で繰り返し毎にvecの変更内容を確認したかったのですが、
closureにvがmutable borrowされてるためにエラーになってしまいました。
こういうのは何か回避する方法はあるんでしょうか?

fn main() {
let mut v = vec![1, 2, 3];
{
let mut takes_nums = |x| v[0] += x;
for i in 1..3 {
takes_nums(i);
// println!("{:?}", v[0]); // ここで一時的にvの値を確認したい
}
}
println!("{:?}", v);
}
コメント2件

380
デフォルトの名無しさん[sage]   投稿日:2017/01/31 12:08:39  ID:7hNNIgfe.net
モジュールもMLとかと比べてしまうと見劣りはするな
確かにC++よりはマシだけど

381
デフォルトの名無しさん[sage]   投稿日:2017/01/31 12:33:39  ID:yyJuX8zg.net
>379
takes_numsからきちんと返す とか
https://play.rust-lang.org/?gist=12884b1ee4ef3196c70d52f5defacf70

382
デフォルトの名無しさん[sage]   投稿日:2017/01/31 14:03:31  ID:sCWKIGbu.net(2)
>> 381
なるほど。そうすると確かにいけますね。

383
デフォルトの名無しさん[sage]   投稿日:2017/01/31 15:01:08  ID:16SeH9xy.net

384
デフォルトの名無しさん[sage]   投稿日:2017/01/31 17:27:00  ID:19P3vDy6.net
スライスパターンまだ?

385
デフォルトの名無しさん[sage]   投稿日:2017/01/31 19:31:33  ID:FHFaV7L7.net(2)
intrinsicsって何?
永遠にunstableとか書いてあるんだけど

386
デフォルトの名無しさん[sage]   投稿日:2017/01/31 19:50:54  ID:iAIegLum.net(2)
普通は直接触らない(libstdのstableなインターフェイスを通して使う)ものだから知らなくて良い
どうしても知る必要があるのならまずcompiler intrinsicsでググって一般的なintrinsicsについて調べてからcore::intrinsicsのドキュメントに戻ると良い

387
デフォルトの名無しさん[sage]   投稿日:2017/01/31 22:25:40  ID:FHFaV7L7.net(2)
コンパイラ方面の単語なのね
thx

388
デフォルトの名無しさん[sage]   投稿日:2017/02/01 16:47:26  ID:t+0AKFTt.net
>373
javaとかに喧嘩売ると荒れるからやめろや

389
デフォルトの名無しさん[sage]   投稿日:2017/02/01 18:13:30  ID:UXwydrfk.net
言語に貴賤なし。プログラマに貴賤大有り

390
デフォルトの名無しさん[sage]   投稿日:2017/02/01 18:18:40  ID:A+dqSgkk.net
無理やり荒れさすなや

391
デフォルトの名無しさん[sage]   投稿日:2017/02/01 22:27:21  ID:swnG7r4K.net
Rcって1つのオブジェクトを色んな所から参照したいけど複数にmoveさせられない
って時にRcで包んでcloneして複数に増やして使う
内部ではcloneされてかつ生き残ってる参照の数を保持していて
0になったらリソースを解放

GC云々言われるのは一般的にこのアルゴリズムがGCでも使われているから

って認識であってる?

392
デフォルトの名無しさん[sage]   投稿日:2017/02/01 23:10:00  ID:vXBX0LGU.net
大体合ってるよ
Weakポインターは解放の判断時にカウントされないこともお忘れなく

393
デフォルトの名無しさん[sage]   投稿日:2017/02/03 03:50:46  ID:o3QjYKDf.net(3)
Announcing Rust 1.15 - The Rust Programming Language Blog
https://blog.rust-lang.org/2017/02/02/Rust-1.15.html
ご存知の通りcustom deriveがstableに
それと、rustc自体のビルドシステムがRustで書き直されたとのこと
1.17からはMakefileを完全に廃止する予定で、それによってrustcを書くのにcrate.ioのパッケージを直接使えるようするための道筋か整うんだと

394
デフォルトの名無しさん[sage]   投稿日:2017/02/03 03:52:31  ID:o3QjYKDf.net(3)
crate .ioじゃなくてcrates.ioだわ

395
デフォルトの名無しさん[sage]   投稿日:2017/02/03 22:09:00  ID:TA0AL/qz.net
お前らこんなめでたい日だってのに静かだな
豆でも撒いてんのか?

396
デフォルトの名無しさん[sage]   投稿日:2017/02/03 22:45:31  ID:o3QjYKDf.net(3)
#[derive(Throwable)]
struct Soybean;

397
デフォルトの名無しさん[sage]   投稿日:2017/02/03 23:15:20  ID:MzXAEQdU.net
カスタムderiveは良いよね、夢広がりんぐ。

所で Rust 2.0 へのロードマップとか無いのか? 何に至れば 2.0 になるんだ?

398
デフォルトの名無しさん[sage]   投稿日:2017/02/04 03:35:44  ID:Lsw0X+V5.net
破壊的変更をするのが2.0だけど、今のところ破壊的変更をしてまで入れたいものはあまりなさそう

399
デフォルトの名無しさん[sage]   投稿日:2017/02/04 04:51:36  ID:KgCacN16.net(2)
Incremental Compilation Beta - compiler - Rust Internals
https://internals.rust-lang.org/t/incremental-compilation-beta/4721

Incremental compilationがbeta段階に達したらしい
Nightlyユーザはcargoの実行時に以下のようにしてオプトインできる:
$ CARGO_INCREMENTAL=1 cargo <command>
またはrustcを直接呼ぶ場合:
$ rustc -Zincremental=<path> <other arguments>

400
デフォルトの名無しさん[sage]   投稿日:2017/02/04 14:50:05  ID:HGLYAiwq.net
知り合いがRust使ってサーバー書いてたんだけど、グレースフルシャットダウン?すらできないからクソだって言ってたな。
そこんところどうなってるんだろう。この言語そもそもサーバー書く言語じゃなかったりする?

401
デフォルトの名無しさん[sage]   投稿日:2017/02/04 18:13:59  ID:bWVhQOn0.net
言語じゃなくライブラリの問題で適当なライブラリがないなら自分で書くものだ
それを自分で書けないのは自分がクソと言ってるも同義だと思うけど
そんな難しいロジックが必要でもなかろうよ > graceful shutdown
コメント1件

402
デフォルトの名無しさん[sage]   投稿日:2017/02/04 18:37:54  ID:KgCacN16.net(2)
ドキュメントを読むと、Hyper v0.11(未リリース)からgraceful shutdownに対応してる風の記述が見られる
詳細は知らん

403
デフォルトの名無しさん[sage]   投稿日:2017/02/04 22:15:04  ID:maiRrllE.net
>401
やっぱり言語の問題じゃないよな。
これで心置きなく発言者に甘えんなアホって言えるわサンクス。

404
デフォルトの名無しさん[sage]   投稿日:2017/02/05 12:21:31  ID:39kPthL5.net
ところでこのRustとかいう言語、いつになったら全部のシンタックスがStableになるんだい?
それまではC++使ってるからその時になったら起こしてくれ。
コメント1件

405
デフォルトの名無しさん[sage]   投稿日:2017/02/05 13:47:47  ID:yZbwod3C.net
おうC++17の策定あくしろよ

406
デフォルトの名無しさん[sage]   投稿日:2017/02/05 13:52:10  ID:1zIopPJZ.net
P0292R2のstabilizeマダー

407
デフォルトの名無しさん[sage]   投稿日:2017/02/05 13:57:36  ID:u0uQCFq0.net
>404が永眠してしまった、天国に行けるといいね

408
デフォルトの名無しさん[sage]   投稿日:2017/02/05 19:55:33  ID:5xwhf5r6.net
C++0x → C++11
C++1x → C++14
C++1y → C++17
だと思ってたら違った。1xは欠番か

409
デフォルトの名無しさん[sage]   投稿日:2017/02/08 18:40:35  ID:lAOVscE3.net
いまだにHashMapを扱う度にborrow checkerと格闘してcloneや一時変数、unwrapだらけになって辛い
自分の技術不足が恨めしい

410
デフォルトの名無しさん[sage]   投稿日:2017/02/09 10:17:09  ID:X3gAJ9Ta.net
それはお前の技術不足じゃなくて言語の欠陥だろ。気にすんな。

411
デフォルトの名無しさん[sage]   投稿日:2017/02/09 11:56:02  ID:LJBL065x.net
荒し乙

412
デフォルトの名無しさん[sage]   投稿日:2017/02/10 05:58:09  ID:jFfrPWyu.net
まあマップ関連はretainの実装も放置されてる状況だしねえ(issue #1338)

ところでstableのマイナーアップデートが来てる
Announcing Rust 1.15.1 - The Rust Programming Language Blog
https://blog.rust-lang.org/2017/02/09/Rust-1.15.1.html

413
デフォルトの名無しさん[]   投稿日:2017/02/10 17:59:28  ID:XNSQcvUK.net
RustでJVMやFlashPlayer作り直せばJavaAppletやFlashが復活するー?

414
デフォルトの名無しさん[sage]   投稿日:2017/02/10 18:00:49  ID:hHNUUpqe.net
しなくていい

415
デフォルトの名無しさん[sage]   投稿日:2017/02/10 18:19:20  ID:3fWDw1w5.net
現状のHashMapを普通に使って、他の言語よりmemcpyの量増える?

416
デフォルトの名無しさん[sage]   投稿日:2017/02/10 18:19:25  ID:rXluJnty.net
しない。
それらは言語の問題ではなく、政治的な理由で消えたから。
(犯人はMSとApple)

417
デフォルトの名無しさん[sage]   投稿日:2017/02/10 19:00:45  ID:Q2EFSTbD.net
普通に使うの定義がさっぱり分からんけど
要素操作のために、必要以上にcloneしないといけない設計/実装してるなら増えるんじゃね

cloneしなくて済むスマートな実装手法を自然に書けるようになりたい
(書けないからいつも推敲してる)

418
デフォルトの名無しさん[sage]   投稿日:2017/02/13 10:28:11  ID:zwnL86Oa.net(4)
とうとう火狐がRustなしではビルドできなくなるカウントダウン始まったな。
で、結局Rustはモジカスのオナニー以上でも以下でもなかった件について

419
デフォルトの名無しさん[sage]   投稿日:2017/02/13 10:41:16  ID:wHhLxWjt.net
狂気丸出しのレスだな。

420
デフォルトの名無しさん[sage]   投稿日:2017/02/13 11:06:35  ID:7X0vvEjV.net(3)
オナニーレスに触るなよ悦んじゃうだろ

421
デフォルトの名無しさん[sage]   投稿日:2017/02/13 11:14:21  ID:l/JrB4B7.net
assert!(!(Rust >= モジカスのオナニー));
assert!(!(Rust <= モジカスのオナニー));
assert!(Rust.is_nan() || モジカスのオナニー.is_nan());

422
デフォルトの名無しさん[sage]   投稿日:2017/02/13 11:31:22  ID:7X0vvEjV.net(3)
let cum_amt = mozilla.masturbate()
.to(Some(rust))
.duration(Duration::from_secs(30))
.finish();

423
デフォルトの名無しさん[sage]   投稿日:2017/02/13 11:49:18  ID:zwnL86Oa.net(4)
実際モジカスのオナニーを超える範囲で使われてるならその事例教えてくれよ。
火狐みたいなオナニーブラウザの自作自演以外でよ。

424
デフォルトの名無しさん[sage]   投稿日:2017/02/13 11:49:18  ID:zwnL86Oa.net(4)
2重書き込みのため表示しません 内容を確認する

425
デフォルトの名無しさん[sage]   投稿日:2017/02/13 11:56:22  ID:VFoQx1wb.net
キチガイはすぐファビョって連投を始める

426
デフォルトの名無しさん[sage]   投稿日:2017/02/13 13:51:05  ID:THrV6nDM.net
ドユコト?
やっぱりD言語の方がいいってこと?

427
デフォルトの名無しさん[sage]   投稿日:2017/02/13 14:39:04  ID:zwnL86Oa.net(4)
他が良いとかじゃなくてこの言語の実用性がないっていう単純な話なんだが。
これ使うくらいならC++の方が(Rustの謳い文句に反して)はるかに使いやすいしちゃんとものができる。
だからモジカスのオナニーでしかないって話。

428
デフォルトの名無しさん[sage]   投稿日:2017/02/13 18:36:27  ID:3XLU4PQN.net
あなたに何の魅力も無いのに、あなたの主観的な評価に意味を見出だせない
実際に触ったことがあるなら「Mozillaが開発している&関係が深い」ことを評価の基、あるいはレッテル貼りに使うなんて的外れなことはしない
もっとまともな批判なら相手する人もいるだろうよ

429
デフォルトの名無しさん[sage]   投稿日:2017/02/13 21:28:32  ID:7X0vvEjV.net(3)
ID:zwnL86OaがいくらRustを嫌おうがお前にとってのRustの有用性が変わるわけでもないんだからほっとけよ

430
デフォルトの名無しさん[sage]   投稿日:2017/02/13 22:11:11  ID:2CyLjYwO.net
C++はツギハギだらけでダメだろ

431
デフォルトの名無しさん[]   投稿日:2017/02/13 23:19:53  ID:8+uLQ/Rs.net
ひとまずRustで安全なJavaVMを作って><

432
デフォルトの名無しさん[sage]   投稿日:2017/02/13 23:51:37  ID:g/I/A31s.net
実際Rustに不満がないわけではないが、せめてどこを改善すべきかくらい言えんのか……
個人的にはライブラリ周りがコミュニティ頼り過ぎるのもうちょい公式主導で整備できんもんかねと思う。

433
デフォルトの名無しさん[sage]   投稿日:2017/02/14 00:44:04  ID:qahXd/u8.net(3)
chronoの作者とかもついに音を上げちゃったしなあ
ああいうのも本来は公式が主導してしかるべきものだわな(rust-lang-deprecated/timeの代わりとして)

434
デフォルトの名無しさん[sage]   投稿日:2017/02/14 07:37:19  ID:W2b/azRY.net(2)
主要なものすら外部にブン投げるスタイル、面白くて好き
chronoがダメなら次が出るだろうよ

435
デフォルトの名無しさん[sage]   投稿日:2017/02/14 08:11:42  ID:JAgDzlFN.net(3)
音を上げたっていうののソースは?
https://users.rust-lang.org/t/chrono-0-3-released-and-the-future/9340/7
ここ見るとまだまだやる気に見えるが。
一人でやるの限界だからコミュニティ化したいとは書いてあるけど。

436
デフォルトの名無しさん[sage]   投稿日:2017/02/14 08:21:59  ID:s4KAVx3x.net
世間ではそれだけで音を上げたという。
ちょっとヘルプ求めただけでも。

437
デフォルトの名無しさん[sage]   投稿日:2017/02/14 08:24:38  ID:w7iikRzO.net
I had significant energy depletion that has prevented me to do *anything* that is not a daily jobって相当やで
実際しばらくはmerge commitばかりやってたわけだし

438
デフォルトの名無しさん[sage]   投稿日:2017/02/14 08:38:47  ID:JAgDzlFN.net(3)
音を上げたっていうからてっきりunmaintainedになったもんだと。

というか時刻系ライブラリまで外注とかRust流行らせる気あんのか?

439
デフォルトの名無しさん[sage]   投稿日:2017/02/14 08:41:04  ID:JAgDzlFN.net(3)
いや、言語のコンセプト考えるとそこはlibc叩いてなんとかせいって感じか。

440
デフォルトの名無しさん[]   投稿日:2017/02/14 09:01:28  ID:MfKEp5BT.net
libcの時間系の関数ってシステム時刻の変更が影響あるものしかなくて足りなく無い?
結局clock_getimeとか環境依存のが必要になる感じ

441
デフォルトの名無しさん[sage]   投稿日:2017/02/14 09:29:23  ID:he6YB8dM.net
きっとうるう秒が悪い

442
デフォルトの名無しさん[sage]   投稿日:2017/02/14 10:17:09  ID:gRGlEM3t.net
Goがなんだかんだ受け入れられたのってこの手のライブラリをほとんど公式で提供してるのもでかい気がした。
コメント1件

443
デフォルトの名無しさん[sage]   投稿日:2017/02/14 10:29:11  ID:DOzUz97u.net
Rust's 2017 roadmap
https://blog.rust-lang.org/2017/02/06/roadmap.html
> Rust should have 1.0-level crates for essential tasks


公式もやる気を見せてるしがんばってほしいね

444
デフォルトの名無しさん[sage]   投稿日:2017/02/14 13:02:14  ID:yamMgOVS.net
D言語ももう少し根性見せろや

445
デフォルトの名無しさん[sage]   投稿日:2017/02/14 13:37:21  ID:EX/xGDf7.net(2)
純粋な疑問なんだが今のRustがDに勝ててる点ってケツモチ企業がいること以外になんかあったっけ。
コミュニティ規模的にはそこまで差はないよね?

446
デフォルトの名無しさん[sage]   投稿日:2017/02/14 13:46:33  ID:W2b/azRY.net(2)
いつもの謎のD言語推し
何がお前をそうさせるのか

447
デフォルトの名無しさん[]   投稿日:2017/02/14 15:50:24  ID:ze+N1Rxh.net
githubでfork数10倍差があるんだけどコミュニティ規模に差がないって何基準?

448
デフォルトの名無しさん[sage]   投稿日:2017/02/14 17:25:27  ID:EX/xGDf7.net(2)
Stackoverflowの質問数から、Rustの言語自体の難解性差っぴいてだいたい同じくらい

449
デフォルトの名無しさん[sage]   投稿日:2017/02/14 17:37:38  ID:qahXd/u8.net(3)
https://github.com/search?q=language%3ARust
>Repositories 6,413
https://github.com/search?q=language%3AD
>Repositories 5,754

先発の言語でこれな時点でねえ

450
デフォルトの名無しさん[sage]   投稿日:2017/02/14 18:24:47  ID:tJceDBsJ.net
新しい言語ほど、時刻とか日付とかは鬼門だよ
ナノ秒まで扱わせろとか元号に変換させろとかうるさい注文が来るんだから

451
デフォルトの名無しさん[]   投稿日:2017/02/14 18:26:17  ID:uwayiWk9.net
Dのtimeは混乱してるようにみえる

452
デフォルトの名無しさん[sage]   投稿日:2017/02/14 18:56:33  ID:qahXd/u8.net(3)
let ymd = (date.year(), date.month(), date.day());
let era = if ymd >= (1989, 1, 8) {
'H'
} else if ymd >= (1926, 12, 25) {
'S'
} else if ymd >= (1912, 7, 30) {
'T'
} else if ymd >= (1868, 1, 25) {
'M'
} else {
'?'
};

453
デフォルトの名無しさん[]   投稿日:2017/02/15 08:45:00  ID:nJh54DV/.net
日本の元号を標準ライブラリに入れろなんてバカ存在するの?
コメント1件

454
デフォルトの名無しさん[sage]   投稿日:2017/02/15 10:42:25  ID:9ZjtEPYx.net
日本のIT人材水準のゴミクズ加減からするとあり得んとも言い切れんのだよな。

455
デフォルトの名無しさん[]   投稿日:2017/02/15 11:05:55  ID:N3aAX75A.net
>453
TimeZoneサポートしてる言語で元号入ってるのあったんじゃね

456
デフォルトの名無しさん[sage]   投稿日:2017/02/15 11:40:15  ID:Eq8lnkGd.net(3)
>error[E0008]: cannot bind by-move into a pattern guard
あああああ! guard内ではborrowしかしてねえだろ殺すぞ!


457
デフォルトの名無しさん[sage]   投稿日:2017/02/15 12:24:37  ID:er7cKMeE.net(3)
ちょっとワロタ、コード切り出して張り付けてみ?
考えてやんよ

458
デフォルトの名無しさん[sage]   投稿日:2017/02/15 12:58:26  ID:Eq8lnkGd.net(3)
当初書きたかった奴がこんな流れ
guard内ではCopyをimplしているs.xしか使用していないから本来moveの必要はないはず
https://play.rust-lang.org/?gist=c2c1e71a7579c10edfe2e9ceea98f9fc

こうしたらコンパイルが通ったけど、elseあたりがとてもキモい
https://play.rust-lang.org/?gist=12985ffd8cef76c41dd6f3790afa0b42

まあ既にコンパイルは通ってるから直せなくても別に困らないんだけど、なんかキモい

459
デフォルトの名無しさん[sage]   投稿日:2017/02/15 13:39:24  ID:JsTxjjGi.net(2)
あんま笑い事じゃないな…自分の手には余るわ。

460
デフォルトの名無しさん[sage]   投稿日:2017/02/15 14:48:20  ID:kyvGdeQY.net(2)
Rustが実用に耐えない欠陥言語であることがまた一つ示された

461
デフォルトの名無しさん[sage]   投稿日:2017/02/15 15:04:13  ID:er7cKMeE.net(3)
こんなんでどうだろう
https://play.rust-lang.org/?gist=22ace15b6d140db6d0c3b007ea155e8b&;version=stable&backtrace=0

無用にCopy/Cloneしてんじゃねーよとは思わなくはないけど、多分COWで最適化されて実際はその動きをしない...と思いたい
if elseの気持ち悪さはなくなるから、derive宣言が許されるならこれで回避したい所存
コメント1件

462
デフォルトの名無しさん[sage]   投稿日:2017/02/15 15:11:30  ID:er7cKMeE.net(3)
あ、Enum::Vがテスト用に書き換えたままだ
そこは無視してくれい

463
デフォルトの名無しさん[sage]   投稿日:2017/02/15 15:56:56  ID:JsTxjjGi.net(2)
一応、RFCにも入ってて実装待ちになってはいるんだな
https://github.com/bluss/rfcs/blob/master/text/0107-pattern-guar...

馬鹿なことをしない限りは問題無さそうなんだけど、Cell::setとか使われると厄介かも
コメント1件

464
デフォルトの名無しさん[sage]   投稿日:2017/02/15 16:16:51  ID:8li9lRMw.net
noneのelseは確かに消したい衝動に駆られざるをえない

465
デフォルトの名無しさん[sage]   投稿日:2017/02/15 16:24:22  ID:kyvGdeQY.net(2)
キモい書き方でしか書けない言語って実用性もお察し。

466
デフォルトの名無しさん[sage]   投稿日:2017/02/15 16:31:16  ID:Eq8lnkGd.net(3)
実装待ちか……本当に実装待ちの機能多いよね。改善の予定すらないよりはよほどマシだけど

>461
実際のコードではSに相当するstructがsize_ofで50バイト以上あるようなものだから最適化に賭けてcloneしまくるのも怖いんだよなあ
ただ、将来的に>463が実装される予定なら一時的なworkaroundとしてそうするのもありかな……
みんな助言サンクスです

467
デフォルトの名無しさん[sage]   投稿日:2017/02/15 17:13:01  ID:k6zWy9I5.net
あれれーおかしいぞー、RFC通ったのが一年以上前に見えるんだが……

468
デフォルトの名無しさん[sage]   投稿日:2017/02/16 10:31:03  ID:Ql+ZhAJA.net
機能に欠陥がある言語というのもさることながら、
その欠陥に当てるパッチすら一年以上放置。
本当この言語おわってんな。

Cを置き換えるとか腹が痛くなるわ。

469
デフォルトの名無しさん[sage]   投稿日:2017/02/16 11:24:08  ID:JPLcUbCW.net
なにかしら貢献しようってのはないの?

470
デフォルトの名無しさん[sage]   投稿日:2017/02/16 12:09:50  ID:QxzW1FU8.net(2)
触んな触んな

471
デフォルトの名無しさん[sage]   投稿日:2017/02/16 12:10:46  ID:AljdSsft.net
平和なRustスレに粘着アンチが出る程メジャーになったか。

472
デフォルトの名無しさん[sage]   投稿日:2017/02/16 18:35:45  ID:jxTm1qP3.net
この言語じゃなくても、そろそろ流石にC/C++の後継言語は出てきて欲しいぞな

473
デフォルトの名無しさん[sage]   投稿日:2017/02/16 18:40:43  ID:RfRD56xR.net(2)
サーバサイドにはgoが、iOS/macOSにはswiftがいるじゃん
マルチOSのコアライブラリという残りのパイでrustは芽を出すといいなぁ
nimよりはマシではないかと思っている

474
デフォルトの名無しさん[sage]   投稿日:2017/02/16 20:59:32  ID:VUboIYs6.net
C/C++の後継を考えると変数宣言はType val形式じゃないと受け入れられないでしょ。
Rustはvar val:Type形式だし
コメント2件

475
デフォルトの名無しさん[sage]   投稿日:2017/02/16 21:05:18  ID:dGmRkXVH.net
そんな些細なことに拘る奴おらんで。

476
デフォルトの名無しさん[sage]   投稿日:2017/02/16 21:18:32  ID:RfRD56xR.net(2)
>474
ワロタ、生ポインタがーならまだしもそんな所を突っ込むかw

477
デフォルトの名無しさん[sage]   投稿日:2017/02/16 21:30:01  ID:WlZ7N49H.net
システムプログラミングってもなあ
その下のハードウェアAPIがまずC/C++だしunsafeまみれになるくらいならC++で別に... となりがちな予感

478
デフォルトの名無しさん[sage]   投稿日:2017/02/16 21:48:54  ID:kTImIXI/.net
お前、rustでシステムプログラミングしたことないだろ
下層レイヤーをunsafeでラップして中層以上はrustだけで書くからunsafeだらけにはならないよ
unsafeだらけになるような書き方する奴がC/C++で書いたら生ポインタ弄り回したり、独自macroで汚したりする予感

479
デフォルトの名無しさん[sage]   投稿日:2017/02/16 21:50:51  ID:QxzW1FU8.net(2)
-sys crateは良い文化

480
デフォルトの名無しさん[sage]   投稿日:2017/02/16 22:52:06  ID:kEY1d4Ow.net
c++ の後継は c++ 自身だろ。
おれはもう別言語にしろと言いたいけど。

481
デフォルトの名無しさん[sage]   投稿日:2017/02/16 23:16:50  ID:Ctthh1M5.net
rustcにCやC++が残ってる限りrustがC/C++の後継に成りきれない何かがある

482
デフォルトの名無しさん[sage]   投稿日:2017/02/16 23:20:52  ID:DGgcs6h7.net
>474 val: Typeの方が文法的に良いのよ。
Type val単体だとそう弊害は無いんだけど、例えばジェネリクス<>を使うことにするとA<B> x; っていう文が宣言なのか比較演算してるのかパーサが分かりにくいとか、
キャストを(Type)xっていう文法にしたら x + (A) (y)っていう式はyをAにキャストしてるのかA(y)という関数なのかが分からないとか、
パーサに型やらシンボルの種類とかいう文脈を保持させる必要が出てくる。
おかげでCもC++もJavaもまともにパースしようとすると手で書いた方が良いってくらい面倒になってる。

483
デフォルトの名無しさん[sage]   投稿日:2017/02/17 00:33:46  ID:yhaDaC8E.net
llvmをrustで書き直そう
コメント1件

484
デフォルトの名無しさん[sage]   投稿日:2017/02/17 00:53:54  ID:sPCLdDuU.net(2)
そもそも変数の宣言を型名で表す文法と型推論の相性が悪すぎるでしょ

485
デフォルトの名無しさん[sage]   投稿日:2017/02/17 01:13:10  ID:9N3wqPif.net
とりあえず2017年のロードマップ完遂したらC++の後継候補くらいには正式になれそうな感じがする。

486
デフォルトの名無しさん[]   投稿日:2017/02/17 05:44:50  ID:ICuCz4ej.net
ゲームエンジンをパフォーマンスそのままでRustで書き直せたら後継といっていいんじゃなかろうか

487
デフォルトの名無しさん[sage]   投稿日:2017/02/17 08:06:47  ID:nCBINic8.net
>483
SQLiteをRustで書き直そう

488
デフォルトの名無しさん[sage]   投稿日:2017/02/17 10:52:00  ID:jHhPXKUT.net(2)
linuxをRusuxにすればcの後継
コメント1件

489
デフォルトの名無しさん[sage]   投稿日:2017/02/17 11:12:03  ID:3FtIr36J.net

490
デフォルトの名無しさん[sage]   投稿日:2017/02/17 14:07:26  ID:eFr6pWHl.net
>15

491
デフォルトの名無しさん[sage]   投稿日:2017/02/17 18:21:18  ID:5sY5yHIi.net
FireFoxをRustで書き直そう
コメント1件

492
デフォルトの名無しさん[sage]   投稿日:2017/02/17 18:59:34  ID:ZDBavghI.net
Servo

493
デフォルトの名無しさん[sage]   投稿日:2017/02/17 19:18:49  ID:sPCLdDuU.net(2)
ServoをRustで書き直そう

494
デフォルトの名無しさん[sage]   投稿日:2017/02/17 20:52:51  ID:jHhPXKUT.net(2)
アセンブリ部分が残ってもんなもんどーでもいいんだよ
Cで書いてる部分をrustに置き換えたら十分って話
アセンブリ言語部分を置き換えたいなんて一言も言ってない
コメント1件

495
デフォルトの名無しさん[sage]   投稿日:2017/02/17 21:22:35  ID:krcZKPEA.net
先ずはlibcompiler-rtから

496
デフォルトの名無しさん[]   投稿日:2017/02/17 22:06:03  ID:y4+T5net.net
>442
だな

497
デフォルトの名無しさん[sage]   投稿日:2017/02/18 09:19:54  ID:PNO7DmhT.net
>494
>15

同じ話を何度されてもなw
LinuxをRustで書き換えればーの話はよほど変な角度から攻めないと無理
コメント1件

498
デフォルトの名無しさん[sage]   投稿日:2017/02/18 10:17:07  ID:bUHmqYrs.net
>491
それは既に部分的にやってるんだっけ

>497


499
デフォルトの名無しさん[sage]   投稿日:2017/02/18 12:01:36  ID:xPVYVI1A.net
Cow使うとライフタイムパラメータがstructの最上位まで伝搬してしまうのですが
これはそういうものとして受け入れるしかないですか?

500
デフォルトの名無しさん[sage]   投稿日:2017/02/18 20:39:36  ID:Ul87se3O.net
Cow<'static, T>なら伝播しないけど、'staticを必須にしたい場面は少ないよねえ……

501
デフォルトの名無しさん[sage]   投稿日:2017/02/19 01:05:13  ID:s3EB+fhT.net
後継言語は名前からしてD言語じゃないと

502
デフォルトの名無しさん[sage]   投稿日:2017/02/19 06:50:46  ID:v/sHJsoq.net(2)
名前だけは後継

503
デフォルトの名無しさん[sage]   投稿日:2017/02/19 08:30:58  ID:2oS2o7no.net
ライフタイムは上に伝搬しないとコンパイラ的にもプログラマ的にも困ると思うの

504
デフォルトの名無しさん[sage]   投稿日:2017/02/19 08:34:53  ID:v/sHJsoq.net(2)
実際にはelisionでCow<T>と書けることも多いしな

505
デフォルトの名無しさん[sage]   投稿日:2017/02/20 18:49:57  ID:ehHRa0XE.net(2)
こんな書き方できたのか!!!
fn x((a, b): (u32, u32)) {}
コメント1件

506
デフォルトの名無しさん[sage]   投稿日:2017/02/20 22:04:29  ID:97wV3Rfs.net
別にそんな書き方出来なくてもいいよ

507
デフォルトの名無しさん[sage]   投稿日:2017/02/20 23:14:15  ID:mI2RJMjC.net
単なるタプルを引数にした関数で、呼び出しもタプルだよなぁ・・・

と思って試したら、やっぱり呼び出しも
x((1, 1));
で書く必要があった!!!

どういうケースで使うんだよ、このタプル引数の関数

508
デフォルトの名無しさん[sage]   投稿日:2017/02/20 23:38:34  ID:ehHRa0XE.net(2)
fn foo(Foo(a, b): Foo) {}
コメント2件

509
デフォルトの名無しさん[sage]   投稿日:2017/02/21 08:08:29  ID:KVrlVIJb.net(2)
落ち着けただの構造化束縛だ。
https://play.rust-lang.org/?gist=c66f3f420befbdc37090ec793ebb9735&;version=nightly&backtrace=0

510
デフォルトの名無しさん[sage]   投稿日:2017/02/21 08:12:10  ID:KVrlVIJb.net(2)
structural matchするの忘れたけどパターンマッチも構造化束縛も両方パターンだよ。

511
デフォルトの名無しさん[sage]   投稿日:2017/02/21 08:20:55  ID:eTJT09tJ.net
ああ、そういうことか
>508の言いたい事を理解しようと首を傾げてたけどfn fのtypoなんだろうな
それとタプル引数関数の関係性は分からんけど、それはもう考えまい
コメント1件

512
デフォルトの名無しさん[sage]   投稿日:2017/02/21 08:24:42  ID:9Kn0UuQq.net
>505の時点で「関数引数でパターンマッチ出来たのか」ということを言っていたんじゃない?

513
デフォルトの名無しさん[sage]   投稿日:2017/02/22 01:07:33  ID:s4CGuq4I.net
>511
>508のfooは関数名でFoo(a, b)はtuple structに対する構造化束縛で
右辺のFooは引数リストの1つめの仮引数への型注釈だよ。

静的言語だからパターンが現れるとたまたまLHSと型注釈の両方に型名が出てくるの。
これがもし動的言語ならLHSに型名はでてこない。

// js
function foo([a,b]){}

ちなみにa,bは分解された束縛。

514
デフォルトの名無しさん[sage]   投稿日:2017/02/22 11:24:58  ID:IzdwqWc0.net
https://www.reddit.com/r/rust/comments/5vbr31/nonlexical_lifetimes_u...
もっとborrow checkerが賢くなってくれたら嬉しい。個人的にはimpl Traitよりもありがたい

515
デフォルトの名無しさん[sage]   投稿日:2017/02/22 11:25:33  ID:dczNCglp.net
crates.ioのダウンロード数のグラフがすっげえ見づらくなってる

516
デフォルトの名無しさん[sage]   投稿日:2017/02/23 09:04:21  ID:zngwxGAX.net(6)
Rust Project Developersが直々に乗り込んでコード書いて、Rustが一番早いぜとか言い出す姿勢ほんとすこ
http://benchmarksgame.alioth.debian.org/u64q/performance.php?test=knucleotide

517
デフォルトの名無しさん[sage]   投稿日:2017/02/23 09:41:00  ID:dRZrz+vD.net
ワロタwww
しかし、流石にC言語勢がプライドかけて1位奪取に走ると思う

518
デフォルトの名無しさん[sage]   投稿日:2017/02/23 10:36:58  ID:IXi6HShy.net
コストかけるとこほんとそこじゃねえんだよ。
こりゃ某S系質問サイトで人気トップなのもステマだろうな
ステマで人気を膨らましてその実実用にもならないクソ言語
クソモジラがケツモチしてるんだからステマで人気水増ししてるのも当然の帰結と言えるか

519
デフォルトの名無しさん[sage]   投稿日:2017/02/23 13:08:05  ID:H4R0mXRf.net
人気水増ししたら何かいいことあるの?
ステマするほどの価値があるようにも思えないが。
コメント2件

520
デフォルトの名無しさん[sage]   投稿日:2017/02/23 13:16:02  ID:LSEhsWdS.net(11)
>519
自分もこんなゴミステマしても虚しいだけだと思うんだが、
どうやらモジラにとってはこの言語が流行ってくれないと困るらしい
だから「これからはRustの時代!」みたいな工作をStack某とか上のベンチマークとかでやってんだろう。

最近ロゴ変えたことといい、どうもクソモジラはOSS界の電通目指してるくさいな。

521
デフォルトの名無しさん[sage]   投稿日:2017/02/23 13:25:43  ID:U3ebhjnw.net(2)
Rustが流行る
=> Rustで実装されたServoの完成度が上がり流行る
=> ServoがWebkitの代わりに使われる
=> Servo組み込みサポート費用がMozillaに払われる

随分と迂遠なMozillaの経営改善計画だったんだよ!と頑張ってみる
ステマされて困る人はパイを奪われるWebkit関係者かな?
コメント1件

522
デフォルトの名無しさん[sage]   投稿日:2017/02/23 13:30:47  ID:zngwxGAX.net(6)
競争相手はWebKitでもEdgeHTMLでもなくBlinkやろとマジレス

523
デフォルトの名無しさん[]   投稿日:2017/02/23 13:44:41  ID:LSEhsWdS.net(11)
>521
それ本気で言ってるとしたら中の人乙としか言いようがないな。

524
デフォルトの名無しさん[sage]   投稿日:2017/02/23 14:32:01  ID:eozO90Y3.net
クソ連呼厨ってID変えられるのかよ
コメント1件

525
デフォルトの名無しさん[sage]   投稿日:2017/02/23 14:51:38  ID:zngwxGAX.net(6)
nixを始めとする一部のRust関係プロジェクトのプルリクエストを管理している@Homuとかいうbot、あれって誰の趣味であんな風になったんだ……?
コメント1件

526
デフォルトの名無しさん[sage]   投稿日:2017/02/23 14:51:48  ID:LSEhsWdS.net(11)
>524
別に理由もなくクソ連呼してるわけでもないんだがな。
CやC++で簡単に書けることもコンパイラに弾かれて書けないわ
そもそもシンタックスが未完成だわ
ライブラリも貧弱で、かつCライブラリ使うためのラッパも
unsafe層とRust層の二層無駄に必要だわ
これを実用言語としてごり押しするクソモジラの良識のなさが一周回って笑える
もともとモジラに良識なんてないけどさ。

527
デフォルトの名無しさん[sage]   投稿日:2017/02/23 14:56:46  ID:yq/Deji1.net
危険な操作をコンパイル時点で弾いてくれるのがRustの売りなのにそこで文句を言ってるのは根本的にミスマッチしているとしか
コメント1件

528
デフォルトの名無しさん[sage]   投稿日:2017/02/23 15:07:19  ID:LSEhsWdS.net(11)
>527
危険な操作とか言い出す判定がクソすぎて明らかに安全なパターンもはじいて来るだろ。
おかげでボイラープレートなコードが増えること増えること。
そこをなんとかごまかすための文法拡張の導入は機能に関係ないとかで後回し
ついでに型もうるさい上にドキュメント見ても返り値の型がわからんで型合わせが総当たり

確かに物が何一つ作れないという意味では安全だわな。危険なものも含めて一切できないから。
コメント1件

529
デフォルトの名無しさん[sage]   投稿日:2017/02/23 15:11:18  ID:U3ebhjnw.net(2)
そろそろD言語推しが参戦しそう
swiftスレの荒しが波に乗らなくて遊びにきたんだろうから、少し待てばまたあっちに戻ると思うよ

530
デフォルトの名無しさん[sage]   投稿日:2017/02/23 19:22:05  ID:cQa0oJ+5.net
>528
どうせクソコードなんだろう
無能のクセに文句だけは一流
コメント1件

531
デフォルトの名無しさん[]   投稿日:2017/02/23 19:36:29  ID:9wlFqT9C.net(3)
>519
>人気水増ししたら何かいいことあるの?
Rustライブラリの開発者が増える→ライブラリが充実する

532
デフォルトの名無しさん[sage]   投稿日:2017/02/23 20:03:57  ID:cNXolJMY.net(2)
Rust勉強したら何が作れんの?
C#とJSで何でも作れるご時世で

533
デフォルトの名無しさん[sage]   投稿日:2017/02/23 20:11:53  ID:eZ3ictl+.net(3)
「言語Aで何でも作れること」と、「言語Bで作れるもの」に
どういう関係があるのか

534
デフォルトの名無しさん[sage]   投稿日:2017/02/23 20:15:09  ID:zngwxGAX.net(6)
実際にお前らが何を作ってるのかは気になるな
crate公開したりしてんの?
コメント1件

535
デフォルトの名無しさん[sage]   投稿日:2017/02/23 20:25:56  ID:LSEhsWdS.net(11)
>530
そういう、Rustコンパイラ通らなきゃクソコードって思い込みが一番腹立つんだよ
コメント1件

536
デフォルトの名無しさん[sage]   投稿日:2017/02/23 20:42:34  ID:oSrrQwof.net
>535
でもそうなんでしょ?
コメント1件

537
デフォルトの名無しさん[sage]   投稿日:2017/02/23 21:00:48  ID:LSEhsWdS.net(11)
>536
Cでバグなく動いてたコードが移植できない時点でな。

538
デフォルトの名無しさん[sage]   投稿日:2017/02/23 21:06:08  ID:SG08isVj.net(2)
動いてるだけで、そのコードバグ有るんやで。
お前には分からんのだろうが

539
デフォルトの名無しさん[sage]   投稿日:2017/02/23 21:06:35  ID:FuQeN9Oq.net
へえバグないんだ良かったじゃんわざわざRust使わなくても済むね

>534
人に尋ねるときはまず自分から晒すのが礼儀やで

540
デフォルトの名無しさん[sage]   投稿日:2017/02/23 21:11:35  ID:LSEhsWdS.net(11)
そうだよ。だからずーっとRustは使う必要ない、つーかそもそも言語として欠陥品、クソモジラのステマで流行ってるように見えてるだけだ
っつってんのに、誰一人まともに聞きやしねえ。
まあこんなスレで称賛してるあたりステマ部隊なんだろうが。

541
デフォルトの名無しさん[sage]   投稿日:2017/02/23 21:15:20  ID:vAxbMLg6.net
ID:LSEhsWdS
今日の患者さんはなかなか元気だな。

542
デフォルトの名無しさん[sage]   投稿日:2017/02/23 21:15:27  ID:eZ3ictl+.net(3)
どうせRustがスタンダードになることは無いんだから
嫌なら使わないで済ませられないの?
周りに熱心な布教野郎がいて迷惑してるのか
コメント1件

543
デフォルトの名無しさん[sage]   投稿日:2017/02/23 21:17:02  ID:kHt4tzR1.net(2)
Rustの美しさを一つあげたい
それはクロージャの記述

// rust
let f = |x| x + 1; // 美しい
f(123); // 美しい
g(|x| x + 1); // 美しい

# ruby
f = lambda {|x| x + 1} # 汚い
f = ->(x) {x + 1} # おぞましい
f.call(123) # 汚い
f.(456) # 見苦しいドット
f[789] # 悲しい
g {|x| x + 1} # 見苦しい中括弧

// javascript
var f = x => x + 1; // 見苦しい矢印
f(123); // 美しい

// c++
auto f = [](int x) -> int {return x + 1;}; // もはや悲惨
f(123); // 美しい
コメント1件

544
デフォルトの名無しさん[]   投稿日:2017/02/23 21:19:45  ID:sZtROie8.net(3)
C++の -> int は省略できるやろ

545
デフォルトの名無しさん[sage]   投稿日:2017/02/23 21:30:27  ID:LSEhsWdS.net(11)
>542
周りっつーか上司が誰に吹き込まれたのか既存のC資産をRustに書き換えろとかふざけた話を下ろしてきた。
チーム全員現在進行形でぶちギレてて今度上司の上司と話つける予定よ。
コメント2件

546
デフォルトの名無しさん[]   投稿日:2017/02/23 21:35:29  ID:sZtROie8.net(3)
>545
なにそれ、Rust使ったことなくてスレ見てるだけだから別の言語覚えながらリファクタリングとかむしろ羨ましいんだけど。
コメント1件

547
デフォルトの名無しさん[sage]   投稿日:2017/02/23 21:36:35  ID:eZ3ictl+.net(3)
>545
あぁ、マジで実害あるのか…
でも上司だってこのスレ見て決めたわけじゃない、ここで憂さ晴らししてもしょうがないだろ
まあ大変だろうが頑張ってくれ

548
デフォルトの名無しさん[sage]   投稿日:2017/02/23 21:37:38  ID:LSEhsWdS.net(11)
>546
なんだ使ったことないのに称賛してたのか。
関数一つ移植するのに半日とかザラで発狂しそうになるぞ。
悪いことは言わんから本当にやめとけ。
コメント1件

549
デフォルトの名無しさん[]   投稿日:2017/02/23 21:38:33  ID:sZtROie8.net(3)
>548
え?称賛なんかしてないけど?
コメント1件

550
デフォルトの名無しさん[sage]   投稿日:2017/02/23 21:41:45  ID:LSEhsWdS.net(11)
>549
うらやましいとか言われたからRust好きでたまらんのかと思ったわ。

551
デフォルトの名無しさん[sage]   投稿日:2017/02/23 21:48:04  ID:DPtsYYmf.net(2)
LSEhsWdSはプログラミングセンス無いからこの業界辞めた方がいい
コメント1件

552
デフォルトの名無しさん[sage]   投稿日:2017/02/23 21:49:23  ID:TLItgOP3.net(4)
元コードにバグがないと仮定して、CコードがRustに移植できない例考えてみたが、
グローバル変数にバッファプール置いてるとかだと確かにストレートな移植はできなさそうだな。
コメント1件

553
デフォルトの名無しさん[sage]   投稿日:2017/02/23 21:54:24  ID:LSEhsWdS.net(11)
>551
Rust基準でプログラミングセンス語るクソモジラ信者乙。

554
デフォルトの名無しさん[sage]   投稿日:2017/02/23 21:58:31  ID:zngwxGAX.net(6)
合わない現場で無理やり使わされてるってことなら災難だね
分かったからここで鬱憤を晴らすのはやめてくれ

555
デフォルトの名無しさん[sage]   投稿日:2017/02/23 22:04:06  ID:TLItgOP3.net(4)
LSEhsWdSがブチギレてることは伝わったが、その怒りは言語じゃなくて上司に向けるべきなんじゃねーかな。
コメント1件

556
デフォルトの名無しさん[sage]   投稿日:2017/02/23 22:05:57  ID:NuCuZGCr.net
マ板でやれ

557
デフォルトの名無しさん[sage]   投稿日:2017/02/23 22:08:46  ID:SG08isVj.net(2)
>555
ID:LSEhsWdS にそれが出来たら、こんなところで暴れてないんだよなあ。

558
デフォルトの名無しさん[sage]   投稿日:2017/02/23 22:09:53  ID:cNXolJMY.net(2)
Rustのどのへんがぶちギレポイントなのか詳しく
それなら少しは有意義やろ?
コメント1件

559
デフォルトの名無しさん[sage]   投稿日:2017/02/23 22:14:46  ID:X5Zb9v7q.net
>525
homuの作者

560
543[sage]   投稿日:2017/02/23 22:17:35  ID:kHt4tzR1.net(2)
もいっちょRustのいいところ
foldの自然さ

// rust
let a = [1, 2, 3].iter().fold(100, |acc, x| acc + x); // 美しい

# ruby
a = [1, 2, 3].inject(100, :+) # 文句は無い
b = [1, 2, 3].inject(200) {|acc, x| acc + x} # 初期値とブロックを離して書くのが寂しい

(* OCaml *)
let a = List.fold_left (+) 100 [1; 2; 3];; (* 文句は無い *)
let b = List.fold_left (fun acc x -> acc + x) 200 [1; 2; 3];; (* funと->がやっぱり気になる *)
コメント1件

561
デフォルトの名無しさん[sage]   投稿日:2017/02/23 22:32:19  ID:K3Cm2dtr.net
>552
ノード間のリンク構造が頻出してると、移植できなくはないが、Rust初心者はコンパイルできなくて詰む
あと、変数を強引にキャストしまくってるようなやつは、移植初心者にはつらそう

562
デフォルトの名無しさん[sage]   投稿日:2017/02/23 22:43:51  ID:8gwVa+zN.net
syntax気にするだけならsmalltalkやるよろしアル

563
デフォルトの名無しさん[sage]   投稿日:2017/02/23 22:49:52  ID:rTUbWHRo.net
>558
borrow checkerにマジでキレる5秒前
なんかrustコーディングしてるとあいつとアームレスリングしてる気分だよ

564
デフォルトの名無しさん[sage]   投稿日:2017/02/23 23:12:24  ID:ItvUsJzd.net
グラフ構造とか他のメンバ変数への参照をメンバ変数に持ってる構造体とか
あと、borrow checkerに怒られる場合にその箇所の修正だけで済むのか根本的に間違ってるのか分からないことが多くて困ることが多い

565
デフォルトの名無しさん[sage]   投稿日:2017/02/23 23:26:16  ID:TLItgOP3.net(4)
確かに構造体の中に何らかのデータの借用持ってるとだいたい頭がおかしくなって死ぬな。

566
デフォルトの名無しさん[sage]   投稿日:2017/02/23 23:27:05  ID:9wlFqT9C.net(3)
>560
JavaScript
var a = [1,2,3].reduce((acc,x)=>acc+x, 100);

567
デフォルトの名無しさん[sage]   投稿日:2017/02/23 23:28:39  ID:zngwxGAX.net(6)
Rustの良さは徹夜明けに書いたコードでもSEGVらない安心感()

568
デフォルトの名無しさん[sage]   投稿日:2017/02/23 23:33:26  ID:JrwuNkgj.net
移植だけなら全部unsafeにすればわりと機械的に出来るような気も。
そのあとリファクタリングでunsafe取っていくかそのまま放置かは状況次第だけど。

569
デフォルトの名無しさん[sage]   投稿日:2017/02/23 23:35:46  ID:9wlFqT9C.net(3)
nullチェック機構がどれだけ強固になろうともそれを回避する手段が容易であれば糞プログラマを排除しないかぎり糞コードは量産される

570
デフォルトの名無しさん[sage]   投稿日:2017/02/23 23:42:42  ID:UGVUxePL.net
JavaScriptなんて使うくらいならいっそCとEmscriptenで書きたいわ
コメント1件

571
デフォルトの名無しさん[sage]   投稿日:2017/02/23 23:45:15  ID:TLItgOP3.net(4)
>570
ところでRustとEmscriptenでWebasm吐くって出来るんですよね。

572
デフォルトの名無しさん[sage]   投稿日:2017/02/23 23:58:21  ID:DPtsYYmf.net(2)
その言語にはその言語の書き方考え方というのがある
高級言語使いが低級言語を使えない言語扱いしてるのと同レベルの幼稚な文句
ただひとつ言えるのはこいつは無能でセンスもゼロ

573
デフォルトの名無しさん[sage]   投稿日:2017/02/24 01:32:47  ID:/cLlv/nZ.net
>543
> // rust
> let f = |x| x + 1; // 美しい

この |x| x + 1 のどこが美しいか理解不能
この後で悲惨と書いてるC++のと50歩100歩のアドホックな書き方

Schemeなどの (lambda (x) (+ x 1)) のほうが遥かに構文が統一的で美しい
コメント1件

574
デフォルトの名無しさん[sage]   投稿日:2017/02/24 08:44:12  ID:F/TDaiUX.net
rustってJavaからJNIでCを呼び出すのと何が違うのっと
コメント1件

575
デフォルトの名無しさん[sage]   投稿日:2017/02/24 08:46:52  ID:VQegiGIK.net
何を煽りたいのっと

576
デフォルトの名無しさん[sage]   投稿日:2017/02/24 10:20:37  ID:Lvwt6BNZ.net
>574
1. Rustはネイティブコードにコンパイルされる
2. Rustの構文制約はJavaと比べ物にならないほどキツい(良し悪しはともかく)
3. Javaのほうが圧倒的に過去資産がある
こんなもんか

577
デフォルトの名無しさん[sage]   投稿日:2017/02/24 11:20:14  ID:Eio5IVQ5.net(2)
|x|は単純に?ってなるよな
なんでここだけRubyなんだと。他はC系かML系風味なのに。激しく浮いてる
C++ですらunified(笑)とか言って普通の関数とクロージャを近付けようとしているのに

それとは別に、開き括弧と閉じ括弧が同じなのも後々困らねーかと思ってしまう
コメント1件

578
デフォルトの名無しさん[sage]   投稿日:2017/02/24 14:20:48  ID:fnwYTLZ/.net
構文はもっとMLに寄せてほしいなあ
{ } とか見たくない

579
デフォルトの名無しさん[sage]   投稿日:2017/02/24 17:22:18  ID:sBRqP5fz.net
do end よりは {} のほうがマシ (個人的に)

580
デフォルトの名無しさん[sage]   投稿日:2017/02/24 17:24:16  ID:t5bNNBCg.net
シンタックスの話をしだすと結局好みの問題に落ち着く

581
デフォルトの名無しさん[sage]   投稿日:2017/02/24 18:23:00  ID:Eio5IVQ5.net(2)
C++がtemplateと<< >>演算子で散々苦労しているのを見た後で
わざわざそれを踏襲したりするのは悪い方の好みじゃね?

582
543[sage]   投稿日:2017/02/24 18:39:46  ID:zaWF9UZ/.net
手のひら返し:クロージャの表現はやっぱML系のほうが優れてる可能性
クロージャを返すクロージャというふうに、連なったときの表現を見る

(* OCaml ウルトラスムーズ。呼び出し部分もシンプル *)
let f = fun x -> fun y -> fun z -> x + y + z;;
print_int (f 1 2 3);;

// rust move無しで書けたならよかった?
// |x| |y| |z| x + y + z; ←うーん?
let f = |x| move |y| move |z| x + y + z;
println!("{}", f(1)(2)(3));

# ruby こうして見ると意外な統一感を感じなくも無い
f = lambda {|x| lambda {|y| lambda {|z| x + y + z}}}
p f.(1).(2).(3)

>573
rustのが断然シンプルだと思うけど(構文の統一感とやらについてはさておき)
あとlisp系言語の中でSchemeだけがクロージャの扱いが自然なんだっけ?
ちなみにまったく理解してないし、しかも聞きかじりで、多分記憶違いだけど

>577
そもそもはSmalltalkのブロックの中の縦線なのかなぁ

583
デフォルトの名無しさん[sage]   投稿日:2017/02/24 23:22:20  ID:yM4uvxXG.net
>> 582
> そもそもはSmalltalkのブロックの中の縦線なのかなぁ
それならこうした方が自然。

let f = :arg1 :arg2 arg1 + arg2;
let f = :arg1 :arg2 { arg1 + arg2 };

それよりこっちの方が良い

let f = (a, b) -> a + b;

`-> T`が戻り値の型の宣言だからこれはないだろう。

こうもならないだろうね。

let f = [ :a :b | a + b ];

無名関数の引数が:arg1で空白区切りは発狂するやつが出る。

matzがなぜ無名関数の引数リストにSmalltalkのブロックの引数リストの構文じゃなくて
一時変数の宣言の構文を使ったかはわからん。

584
デフォルトの名無しさん[sage]   投稿日:2017/02/25 00:07:58  ID:jGQ3Wak9.net
`:arg1` は型注釈と混同する
ラムダ計算風に `let f = \x y. x + y` はどうかな

585
デフォルトの名無しさん[sage]   投稿日:2017/02/25 01:20:07  ID:hUBRL+mA.net
パラレルワールドのrust文法を議論してて草生える
お前らは何年前に分岐した世界線にいるんだw

586
デフォルトの名無しさん[sage]   投稿日:2017/02/25 04:54:52  ID:nJl4hm2p.net
何で新しい言語が創られるかといえば、それはもう、C++コードのメンテから解放されたいという宿願のためでしょ

587
デフォルトの名無しさん[sage]   投稿日:2017/02/25 19:53:48  ID:jxiHI5n5.net(3)
しかし名前が良くないなこの言語は
なんでまたこんな名前にしたんだろうか

588
デフォルトの名無しさん[sage]   投稿日:2017/02/25 20:15:31  ID:FTYjcOZq.net(6)
俺は名前は好き
四文字でさえあればいいと思ってる
それよりも嫌なのはifの波括弧

短く書きたいときCなら
if (cond) foo(); else bar();
で、目に優しい

if cond {foo();} else {bar();}
これはたまらなく苦痛
C方式に戻してもらうか三項演算子の導入をしてほすい
コメント1件

589
デフォルトの名無しさん[sage]   投稿日:2017/02/25 20:19:33  ID:FTYjcOZq.net(6)
https://doc.rust-lang.org/book/if.html
let y = if x == 5 { 10 } else { 15 }; // y: i32
↑これよりはやっぱ↓
let y = x == 5 ? 10 : 15;

590
デフォルトの名無しさん[]   投稿日:2017/02/25 20:37:24  ID:gF7KaGBm.net(4)
>588
それがC言語でどれだけのバグを生み出してきたか考えたら有り得ないと思うのだが。
”俺は間違わない?” だったらC使ってればいいんじゃね?
コメント1件

591
デフォルトの名無しさん[sage]   投稿日:2017/02/25 20:39:21  ID:FTYjcOZq.net(6)
>590
どれだけのバグを生み出してきたの?
コメント1件

592
デフォルトの名無しさん[]   投稿日:2017/02/25 20:42:35  ID:gF7KaGBm.net(4)

593
デフォルトの名無しさん[sage]   投稿日:2017/02/25 20:43:00  ID:AAACSty6.net(3)
適用の順序が一見して分からないケースがあってクソ

594
デフォルトの名無しさん[sage]   投稿日:2017/02/25 20:48:49  ID:FTYjcOZq.net(6)
>592
ほえー
あーifに波括弧大事、これがあるからやっぱ波括弧大事だなぁ
波括弧ないからこそこんなことになっちゃうんだなぁ
波括弧さえあればこれ避けられたのになぁ
波括弧無しのifなんてあり得ないよなぁ
ってこと?

あとはどれだけのバグを生み出してきたの?
コメント1件

595
デフォルトの名無しさん[sage]   投稿日:2017/02/25 20:58:23  ID:AAACSty6.net(3)
>592を一般化した
if (cond)
  foo();
  bar();
の形式(ただし全角スペースはインデントの代わり)のバグはAppleの例に限らず普遍的なものだろ

596
デフォルトの名無しさん[]   投稿日:2017/02/25 21:03:09  ID:gF7KaGBm.net(4)
>594
多くのコーディング規約で禁止されてる。(例えばGoogle C++ Style Guideとか)。
わざわざそういう項目がある理由は、まぁ言わなくても解るよね?
コメント1件

597
デフォルトの名無しさん[sage]   投稿日:2017/02/25 21:04:36  ID:OjMnqw5o.net(2)
僕はそんなコード絶対に書かないしレビューでも見落とさないんですうううううう!!!!!
万一紛れ込んでもテストで拾うしっ!!!!!!!!!!

598
デフォルトの名無しさん[sage]   投稿日:2017/02/25 21:08:17  ID:FTYjcOZq.net(6)
>596
ちょっと茶化したけど、理屈は分からないというわけではないよ

実際にrustのifがこうなってる経緯は知らないけど
現状について少なくともそういう視点で支持する意見があるのは正直驚いた
勉強になりました

599
デフォルトの名無しさん[sage]   投稿日:2017/02/25 21:11:22  ID:ihKm/PIs.net
ifのやらかしは有名なプロジェクトでもあったりするよね

600
デフォルトの名無しさん[sage]   投稿日:2017/02/25 21:16:11  ID:oY1Z/R8w.net(2)
別に見づらくないじゃんって意見のほうが多数な気がするけど
https://github.com/rust-lang/rust/issues/1698

601
デフォルトの名無しさん[sage]   投稿日:2017/02/25 21:17:27  ID:A0aZ5Z9S.net
ブレインファックじゃないんだから、人間に読めるコードとなる言語仕様が必要

602
デフォルトの名無しさん[sage]   投稿日:2017/02/25 21:20:30  ID:AAACSty6.net(3)
まあ実際のコードでは無理に一行にまとめず5行に分けろってことだな
let x = if cond {
f()
} else {
g()
};

もしf(cond ? g() : h())みたいな形で使おうと思っていたのなら、そもそもそれ読みづらいから一旦バインドしてからその結果を使おう
let x = if cond {
g()
} else {
h()
};
f(x);
コメント1件

603
デフォルトの名無しさん[sage]   投稿日:2017/02/25 21:22:26  ID:oY1Z/R8w.net(2)
あと波括弧外せるようにする提案はここにあるから+1しとけ
https://github.com/rust-lang/rfcs/issues/1616
めっちゃ劣勢だけど

604
デフォルトの名無しさん[sage]   投稿日:2017/02/25 21:30:13  ID:FTYjcOZq.net(6)
>602
一点だけ

let x = if cond {
g()
} else {
h()
};
f(x);

↑これよりやっぱ↓これが読みやすい(個人の感想です)

f(cond ? g() : h())
コメント1件

605
デフォルトの名無しさん[]   投稿日:2017/02/25 21:51:13  ID:gF7KaGBm.net(4)
f(cond ? g() : h() ? q() : r() )
と書く奴が現れるデメリットの方がでかいと思うわ

606
デフォルトの名無しさん[sage]   投稿日:2017/02/25 21:53:07  ID:OjMnqw5o.net(2)
そしてfだのgだのが本当にただの関数呼び出しであるケースは少ないという

607
デフォルトの名無しさん[sage]   投稿日:2017/02/25 22:40:54  ID:Cjys9ebm.net
波括弧外せなくてもいい派だけど、
三項演算子は何かいい感じのやつを追加してくれ

608
デフォルトの名無しさん[sage]   投稿日:2017/02/25 22:48:27  ID:jxiHI5n5.net(3)
if式なら三項演算子はいらないよ

609
デフォルトの名無しさん[sage]   投稿日:2017/02/25 23:00:24  ID:BrkcZ5hg.net
if-elseの波括弧外したらtype ascriptionが曖昧になる。

610
デフォルトの名無しさん[]   投稿日:2017/02/25 23:54:27  ID:+Hmh+RyZ.net
>604
ioでも使ってろ

611
デフォルトの名無しさん[sage]   投稿日:2017/02/25 23:57:17  ID:jxiHI5n5.net(3)
f( if cond { g() } else { h() } )

612
デフォルトの名無しさん[sage]   投稿日:2017/02/25 23:58:32  ID:0X9bWbPB.net
3項演算子とか、関数型の基本のif式(if文じゃないよ)なんだけど、サポートしてねえのかよ

613
デフォルトの名無しさん[sage]   投稿日:2017/02/26 02:13:52  ID:Xq2/OYkK.net
三項演算子なんてifが文になってる言語でようやく存在を許されるものじゃねえか
波括弧をダサいというのは分かる

614
デフォルトの名無しさん[sage]   投稿日:2017/02/26 02:26:37  ID:kIbkRe9i.net(2)
if x > 0 { x } else { -x }
if (x > 0) x else -x
個人的にはブレースなしだとelseの前後1トークンの範囲の視認性が低く感じる

615
デフォルトの名無しさん[]   投稿日:2017/02/26 02:27:19  ID:hKGUofZ0.net
if文はSwiftやGoとの差別化をしたいってこと?

616
デフォルトの名無しさん[sage]   投稿日:2017/02/26 11:17:28  ID:dRlELnWs.net
波括弧省略はLinuxカーネルの連中が使い続けてる。
奴ら頭良いからあれでも上手く回ってるんだろうな。

逆に、波括弧省略するなって言われてる奴らは信用されてないってことなんだよ。

617
デフォルトの名無しさん[sage]   投稿日:2017/02/26 11:28:50  ID:kIbkRe9i.net(2)
そうだね
俺は当然ながら、例えばGoogleの人たちなんかよりよっぽど頭が悪いからブレースは省略しないよ
更新情報
・スレッド一覧ページで過去ログのタイトル検索・一覧表示ができるようになりました(2016/1/20)
NGワード登録
登録する
スレッド内検索

プログラム板 タイトル検索

このスレッドが人気です(実況系)
アッコにおまかせ!★2 (503)TBS実況
NHKのど自慢〜沖縄県嘉手納町で枠その1 (673)NHK実況
東京マラソン2017〜世界選手権代表選考レース〜★9 反省会 (688)NTV実況
ビートたけしのTVタックル ★1 (357)テレ朝実況
サンデー・ジャポン★3 (846)TBS実況
帰れまサンデー #20 ☆2 (535)テレ朝実況
ワイドナショー ★9 (516)フジ実況
サンデーモーニング 5 (969)TBS実況
このスレッドが人気です(ニュース系)
【森友学園】安倍夫人、名誉校長辞任 安倍首相「寄付を募る紙を見て私も驚愕した。断っているのに名前を使われ遺憾だ」★56 (698)ニュー速+
【国際】トランプ米大統領「不法移民の在米コリアン17万人を全員強制送還する」★3 (644)ニュー速+
【森友学園】安倍夫人、名誉校長辞任 安倍首相「寄付を募る紙を見て私も驚愕した。断っているのに名前を使われ遺憾だ」★55 (1000)ニュー速+
【国際】トランプ米大統領「不法移民の在米コリアン17万人を全員強制送還する」★2 (1001)ニュー速+
【森友学園】安倍夫人、名誉校長辞任 安倍首相「寄付を募る紙を見て私も驚愕した。断っているのに名前を使われ遺憾だ」★54 (1000)ニュー速+
【社会】結婚への焦りが……。結婚したい独身女性の実態とは★2 (822)ニュー速+
【森友学園】安倍夫人、名誉校長辞任 安倍首相「寄付を募る紙を見て私も驚愕した。断っているのに名前を使われ遺憾だ」★53 (1001)ニュー速+
【嵐】熱愛報道の櫻井翔 小川彩佳アナの自宅ベランダで姿を確認 (794)音楽・芸能ニュース
プログラム板の人気スレ
スレ立てるまでもない質問はここで 146匹目 (464)
次世代言語議論スレ【Go Rust Haskell Scala Erlang Elixir】 第二世代 (700)
Excel VBA 質問スレ Part46 (310)
【統計分析】機械学習・データマイニング13 (271)
ねねっちと一緒にプログラムを勉強するスレ (632)
くだすれPython(超初心者用) その32 (336)
C言語なら俺に聞け 138 (1000)
Swift part10 (79)
ふらっと C#,C♯,C#(初心者用) Part126 (783)
C++相談室 part129 (490)
Androidプログラミング質問スレ revision52 (1000)
【PHP】下らねぇ質問はここに書き込みやがれ 7 (903)
Xamarin Part3 (496)
Visual Studio 2015 Part8 (332)
プログラミング言語の難易度ランク作りました ご覧ください (75)
C#, C♯, C#相談室 Part92 (212)
HSP総合スレ【part 10】 (102)
HSP総合スレ【part 10】 [無断転載禁止](c)2ch.net (106)
クラス名・変数名に迷ったら書き込むスレ。Part27 (877)
推薦図書/必読書のためのスレッド 81 (169)
Java入門・初心者質問スレ Part.2 (639)
Pythonのお勉強 Part52 (306)
Ruby 初心者スレッド Part 59 (713)
Visual Studio 2017 (79)
プログラミング言語 Rust 2 (617)
☆★Java質問・相談スレッド179★★ (735)
このサイトについて
このサイトは2ちゃんねるからデータを取得し、表示するサービスです。
画像のインライン表示機能について
画像のURLの後ろにある[画像をインライン表示]をクリックすると、URLの下に表示します。
表示される画像は横幅100pxに縮小されていて、クリックすると原寸で表示します。
このサイトの特徴
1)スレッド内検索ができます
2)レス(「>>1」など)のポップアップができます
3)不適切な言葉を含む投稿を表示しません
4)ページ内で画像を直接表示できます
5)2ch他スレッドへのリンクはタイトル・板名つきでリンクします
6)すっきりとしたデザインで表示します
7)最新スレや前スレをチェック・一覧表示します
8)NGワード機能の搭載でイヤな言葉が目に入りません
9)荒らしを自動チェックします
10)スレッド内・同一IDの書き込みだけ表示できます
11)レスの返事をレスされた発言の下に表示する「まとめビュー」が利用できます
12)シリーズ化したスレッドの一覧を表示します
13)最新のスレッドがある場合はお知らせします
削除について
こちらをご覧ください
機能要望について
現在機能要望受付中です。
問い合わせについて
こちらのページからどうぞ
Amazon


このサイトは2ch.scからデータを取得・表示しています。削除などについてはこちらをご覧ください。 アクセスモード:差分取得 - 正常取得 - 33件 - 取得完了