[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 06/23 14:13 / Filesize : 233 KB / Number-of Response : 1025
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

プログラミング言語 Rust 2



1 名前:デフォルトの名無しさん mailto:sageteoff [2016/11/02(水) 03:12:40.30 ID:MYQ7Ohex.net]
Mozillaがリリースした、プログラミング言語「Rust」について語るスレです。

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

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

◆前スレ
プログラミング言語 Rust
echo.2ch.net/test/read.cgi/tech/1327489549/

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

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

152 名前:デフォルトの名無しさん mailto:sage [2016/12/21(水) 15:09:44.32 ID:wjBBiIkf.net]
目が不自由だからかな
奥行が全く感じられない

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

154 名前:デフォルトの名無しさん mailto:sage [2016/12/21(水) 22:25:50.83 ID:ej8UmSNF.net]
C#風に
yield return someValue;
としたいんだけど、Rustのコルーチンはどうですか?

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

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

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

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

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

159 名前:デフォルトの名無しさん [2016/12/22(木) 13:02:02.41 ID:y+mdv7YD.net]
tcl/tk 知らんの



160 名前:デフォルトの名無しさん mailto:sage [2016/12/22(木) 13:16:30.31 ID:vR+H7QAs.net]
rust/tkでも流行ってんのかとググったけどそんなことはなかった

161 名前:デフォルトの名無しさん mailto:sage [2016/12/22(木) 15:25:02.24 ID:cRDgF52C.net]
Rustって、こういう構造体を返す関数作れないんだね。

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

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

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

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

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

164 名前:デフォルトの名無しさん mailto:sage [2016/12/23(金) 06:17:00.54 ID:6bIGT6Sw.net]
Announcing Rust 1.14
https://blog.rust-lang.org/2016/12/22/Rust-1.14.html

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

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

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

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

168 名前:デフォルトの名無しさん mailto:sage [2016/12/23(金) 16:07:53.79 ID:LOFIUVE3.net]
気にしすぎや

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



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

171 名前:デフォルトの名無しさん mailto:sage [2016/12/24(土) 02:20:23.19 ID:/RBsJIky.net]
そもそも所有権を手放す為のcloneって何なんだ

172 名前:デフォルトの名無しさん mailto:sage [2016/12/24(土) 12:04:03.69 ID:/RBsJIky.net]
OptionにもHashMapのor_insert_with()みたいな機能があれば良いのに

173 名前:デフォルトの名無しさん mailto:sage [2016/12/24(土) 12:14:13.23 ID:XL3bxxKp.net]
Optionとコレクションクラスとの統一感は無いね

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

イマイチ何を実現したいのか分からんけど

175 名前:デフォルトの名無しさん mailto:sage [2016/12/24(土) 16:25:11.60 ID:/RBsJIky.net]
>>171
つまりこういうことがしたい
https://play.rust-lang.org/?gist=2efdceaaaa385ea7ee2486342ca415e4

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

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

immutableならOptionじゃ合わないわな
そこを諦めたら既存APIで十分な気がするけど、そこがこだ

178 名前:わりならStruct新設から始まりそう []
[ここ壊れてます]

179 名前:デフォルトの名無しさん mailto:sage [2016/12/24(土) 16:56:08.78 ID:dn0dwenj.net]
unwrapのランタイムコストが気になるマン



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

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

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

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

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

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

184 名前:デフォルトの名無しさん mailto:sage [2016/12/25(日) 07:43:09.19 ID:gfQaVVC2.net]
コンセプトちゃんはどうなった?

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

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

187 名前:デフォルトの名無しさん mailto:sage [2016/12/25(日) 20:50:48.74 ID:OHOD3vvf.net]
理解できない人がいるのでジェネリクスとやらは使ってはいけません

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

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

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



190 名前:デフォルトの名無しさん mailto:sage [2016/12/26(月) 01:02:26.94 ID:xO25f93t.net]
C++は継ぎ接ぎだらけのズタボロ言語

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

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

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

あと、https://github.com/rust-lang/rust/blob/master/RELEASES.md
で、1.0.0からLanguageの項目がどれくらい変わったか見てくと、実はほ

193 名前:とんど変わってないよ。
マクロが結構強化されたんで、マクロを定義しまくるcrateは影響があるかもしれんね。
ただ、そういうのは大抵DSLをマクロで!っていう特殊な事例が多いんで、何したって読みづらい
[]
[ここ壊れてます]

194 名前:デフォルトの名無しさん [2016/12/26(月) 03:53:18.15 ID:o+MLW/qO.net]
>>188
コンパイル時計算はconstexprでいいだろ

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

196 名前:デフォルトの名無しさん mailto:sage [2016/12/26(月) 07:45:24.49 ID:zGEIM/Ml.net]
ウィ ワント パースペクティブ。

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

198 名前:デフォルトの名無しさん [2016/12/26(月) 10:11:15.89 ID:vXnTXx4r.net]
Lispは神の言語

199 名前:デフォルトの名無しさん mailto:sage [2016/12/26(月) 10:21:18.47 ID:y2AwbG3E.net]
S式は神の言語



200 名前:デフォルトの名無しさん mailto:sage [2016/12/26(月) 11:42:54.85 ID:HAos+tGx.net]
C++は天動説
Rustは地動説

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

202 名前:デフォルトの名無しさん [2016/12/26(月) 12:16:41.00 ID:HAos+tGx.net]
Dはユーザー少ないけど汚い

203 名前:デフォルトの名無しさん mailto:sage [2016/12/26(月) 13:57:45.03 ID:3l9yWhJs.net]
言語仕様の拡張にRFCが必要な言語だから、無秩序に拡張できた過去の言語よりは綺麗な仕様になる圧力は高いと思う

204 名前:デフォルトの名無しさん mailto:sage [2016/12/26(月) 13:58:25.74 ID:gUp/CjQ/.net]
Rustで多態やるのはenum, trait, Boxを使い分ければいいの?

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

206 名前:デフォルトの名無しさん mailto:sage [2016/12/26(月) 15:59:40.77 ID:y2AwbG3E.net]
Serdeがよく分からぬ

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

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

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



210 名前:デフォルトの名無しさん mailto:sage [2016/12/26(月) 19:41:44.19 ID:ep/odFf8.net]
ていうか、Rustで nominal subtyping を再発明する理由がない
型クラスはad hoc多相を実現する仕組みだがそもそもOOのためのもんじゃない

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

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

212 名前:デフォルトの名無しさん mailto:sage [2016/12/26(月) 20:51:12.09 ID:J++O7+r9.net]
ツリーでない継承ってどんなん?

213 名前:デフォルトの名無しさん mailto:sage [2016/12/27(火) 00:03:40.08 ID:z3Z5XFyz.net]
バズワードって何?流行の若者言葉?

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

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

216 名前:デフォルトの名無しさん mailto:sage [2016/12/27(火) 02:14:18.61 ID:M0D6LXD2.net]
結局、哺乳類クラスはどうすりゃいいわけ?

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

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

DOMやGUIライブラリ(のラッパー)はそうでしょ?

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

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



220 名前:デフォルトの名無しさん mailto:sage [2016/12/27(火) 03:28:37.64 ID:zWPkbd9P.net]
GObject、うっ、頭が……

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

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

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

224 名前:デフォルトの名無しさん mailto:sage [2016/12/27(火) 07:26:24.51 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;
}
これじゃあかんのか?

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

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

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

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

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

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

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



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

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

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

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

233 名前:デフォルトの名無しさん [2016/12/27(火) 14:02:04.36 ID:b9lc87EM.net]
OO好きねえ……

234 名前:デフォルトの名無しさん mailto:sage [2016/12/27(火) 15:30:08.41 ID:/xy3dl1q.net]
>>227
やってみた。汚い
Deref coercionとかは知らん
https://play.rust-lang.org/?gist=788c6c09719636cd28481db388caccc4

235 名前:デフォルトの名無しさん mailto:sage [2016/12/27(火) 15:50:42.37 ID:sIydEYNy.net]
>>229
汚くてワロタw

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

236 名前:デフォルトの名無しさん mailto:sage [2016/12/27(火) 15:51:59.79 ID:sIydEYNy.net]
違う、オーバーロードじゃなくオーバーライドだ

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

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

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

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



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

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

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

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

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

245 名前:デフォルトの名無しさん mailto:sage [2016/12/28(水) 13:17:11.06 ID:yxR21hjj.net]
ErlangとかJuliaとか

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

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

248 名前:デフォルトの名無しさん [2016/12/28(水) 14:12:42.94 ID:AaUHlvvb.net]
rustって部分適用とかカリー化とか書きやすいの?

249 名前:デフォルトの名無しさん mailto:sage [2016/12/28(水) 14:27:58.88 ID:9y3G1esR.net]
Rustのセミコロンは式を文にして返り値をユニット型にする演算子だからそりゃ必要だろう



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

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

251 名前:デフォルトの名無しさん mailto:sage [2016/12/28(水) 23:02:02.12 ID:6NcUzOVy.net]
ぽくはない

252 名前:デフォルトの名無しさん mailto:sage [2016/12/28(水) 23:57:43.05 ID:bDO+6moT.net]
>>244
蝉転んで区切るってやつか

253 名前:デフォルトの名無しさん mailto:sage [2016/12/29(木) 00:08:37.19 ID:pmAxOvWh.net]
審議拒否

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

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

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

257 名前:デフォルトの名無しさん mailto:sage [2016/12/30(金) 09:15:43.02 ID:BAOxkPJ/.net]
唐突なPythonディスに俺がブチキレ

258 名前:デフォルトの名無しさん mailto:sage [2016/12/30(金) 12:52:44.59 ID:gA9NnhXP.net]
セミコロンあり無しそんなに重要か?

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



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

人間様にとっては

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

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

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

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

264 名前:デフォルトの名無しさん mailto:sage [2016/12/31(土) 08:20:02.34 ID:evZQ8uAx.net]
エディタで\n\rを;に表示すればいいんだ!

265 名前:デフォルトの名無しさん mailto:sage [2016/12/31(土) 12:20:17.73 ID:H5rV9I3r.net]
fn main() {;
println!("hello");
};

266 名前:デフォルトの名無しさん mailto:sage [2016/12/31(土) 12:28:55.47 ID:Sym7Bg1 ]
[ここ壊れてます]

267 名前:E.net mailto: error: expected item, found `;`
--> <anon>:3:2
|
3 | };
| ^

error: aborting due to previous error
[]
[ここ壊れてます]

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

269 名前:デフォルトの名無しさん mailto:sage [2017/01/02(月) 21:18:31.68 ID:ichN9xlo.net]
唐突な人格攻撃に困惑



270 名前:デフォルトの名無しさん mailto:sage [2017/01/03(火) 11:38:39.79 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されるってよ

271 名前:デフォルトの名無しさん mailto:sage [2017/01/03(火) 12:02:32.26 ID:3o9M4oho.net]
きたか…!!

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

___ / ̄ ̄ ̄/_
  \/    /

272 名前:デフォルトの名無しさん [2017/01/03(火) 13:08:42.00 ID:ZKRmSAM8.net]
マクロのそらを

273 名前:デフォルトの名無しさん [2017/01/03(火) 18:29:20.46 ID:4ChvZkkB.net]
どこの超時空要塞?

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

275 名前:デフォルトの名無しさん mailto:sage [2017/01/03(火) 20:58:17.39 ID:r8LUHXKe.net]
> we're shooting for macros 2.0 stable in the far future
ref. 1681-macros-1.1.md

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

276 名前:デフォルトの名無しさん mailto:sage [2017/01/03(火) 21:50:34.44 ID:OFYBDDbH.net]
分かってると思うけど2.0ってのはrustc 2.0じゃなくてMacros 2.0だからな

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

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

279 名前:デフォルトの名無しさん mailto:sage [2017/01/06(金) 00:11:35.37 ID:Fz5LbEfZ.net]
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?



280 名前:デフォルトの名無しさん mailto:sage [2017/01/06(金) 01:12:22.50 ID:FrG2KJ61.net]
これってコンパイラのバグ?
https://is. gd/jWTzHJ

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

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

283 名前:デフォルトの名無しさん mailto:sage [2017/01/07(土) 06:27:18.42 ID:ZgzC+Fa4.net]
256と3のXORとか謎すぎるし、^の意味を履き違えてるだけの線が

284 名前:Z厚な気が…… []
[ここ壊れてます]

285 名前:デフォルトの名無しさん mailto:sage [2017/01/07(土) 15:58:55.81 ID:0PjiZvlV.net]
うん。近年まれに見るバカだ。

286 名前:デフォルトの名無しさん mailto:sage [2017/01/07(土) 16:04:59.75 ID:ZgzC+Fa4.net]
寝ぼけてた

287 名前:デフォルトの名無しさん mailto:sage [2017/01/07(土) 16:57:17.26 ID:xEA8lk8b.net]
ワロタ

288 名前:デフォルトの名無しさん mailto:sage [2017/01/07(土) 21:42:06.91 ID:n2yomPvZ.net]
pythonとかocamlとかjuliaとかcommon lispとか、Exploratory programmingに適した言語とrustを開発の両輪にしたいけど、
何かおすすめある?

289 名前:デフォルトの名無しさん [2017/01/08(日) 01:03:37.13 ID:kfDqfkDn.net]
>>281
forth



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

291 名前:デフォルトの名無しさん mailto:sage [2017/01/08(日) 07:57:00.85 ID:0mVP2hZ6.net]
Erlang

292 名前:デフォルトの名無しさん mailto:sage [2017/01/08(日) 08:35:33.23 ID:23/7dWy/.net]
Rust

293 名前:デフォルトの名無しさん mailto:sage [2017/01/10(火) 19:06:19.84 ID:f/pmyPVx.net]
>>281
>Exploratory programming

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

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

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

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

ほほう・・・

295 名前:デフォルトの名無しさん mailto:sage [2017/01/11(水) 15:07:47.36 ID:7uyPKRK3.net]
Rustと言えばゲームだね!

296 名前:デフォルトの名無しさん mailto:sage [2017/01/11(水) 15:22:46.07 ID:XBWH8SeE.net]
2時間目・・・

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

ふむふむ・・・

297 名前:デフォルトの名無しさん mailto:sage [2017/01/11(水) 16:06:44.87 ID:/IZ7nDq3.net]
チラ裏

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

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



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

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

302 名前:デフォルトの名無しさん mailto:sage [2017/01/11(水) 19:07:09.79 ID:XBWH8SeE.net]
ふぁーーーwww
見に行くしかないwww

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

304 名前:デフォルトの名無しさん mailto:sage [2017/01/11(水) 19:43:29.93 ID:PvND63zB.net]
キチガイだ

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

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

307 名前:デフォルトの名無しさん mailto:sage [2017/01/11(水) 19:56:50.41 ID:Dbl5XF86.net]
Rust 2を待つしかないと

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

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



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

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

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

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

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

314 名前:デフォルトの名無しさん mailto:sage [2017/01/16(月) 11:01:09.92 ID:YCpRkRk0.net]
inlineとmacroとpluginとconst fnと
適材適所をまとめた情報ってどこかないかね

315 名前:デフォルトの名無しさん mailto:sage [2017/01/18(水) 19:26:40.80 ID:0/He/nuF.net]
const fnからpanic!出来ない仕様ってstabilizeされてからもそのままなのかな

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

317 名前:デフォルトの名無しさん mailto:sage [2017/01/19(木) 06:12:01.34 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!();
}

318 名前:デフォルトの名無しさん mailto:sage [2017/01/19(木) 17:50:45.29 ID:KP9WuCCK.net]
そもそもその手の機能ってC++やDですら実現されてないんじゃ……

319 名前:デフォルトの名無しさん mailto:sage [2017/01/22(日) 02:14:54.25 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.
クソワロタ



320 名前:デフォルトの名無しさん mailto:sage [2017/01/22(日) 15:32:04.47 ID:He1ERbj9.net]
最近はRustで検索するとゲームの方より言語の方が上位に来るようになったぞ!

321 名前:デフォルトの名無しさん mailto:sage [2017/01/22(日) 15:36:25.38 ID:Yl4nAGke.net]
RustってポストC/C++になれる言語ですか?

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

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

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

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

325 名前:デフォルトの名無しさん mailto:sage [2017/01/24(火) 19:29:16.39 ID:igHP4a7v.net]
>>314
寝言は寝て言え。現状からみてD言語ルートだ。

326 名前:デフォルトの名無しさん mailto:sage [2017/01/24(火) 19:53:42.15 ID:pU9ER4NI.net]
Mozillaが本気ならD言語よりはマシなんじゃね

327 名前:デフォルトの名無しさん mailto:sage [2017/01/24(火) 20:42:28.51 ID:VnBtkYVE.net]
Quantumに着手してる時点で本気でないはずがない

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

329 名前:デフォルトの名無しさん mailto:sage [2017/01/24(火) 23:34:50.03 ID:iJ0FMzkO.net]
>>319
Mozillaが本気出してこの程度ならD言語未満のHaskellレベルじゃね?



330 名前:デフォルトの名無しさん mailto:sage [2017/01/24(火) 23:46:14.74 ID:rMS2+V/T.net]
>>313
あっちはまだアーリーアクセスだから…

331 名前:デフォルトの名無しさん [2017/01/25(水) 00:43:42.66 ID:uVLYflKb.net]
rustとc++14ならどっちが学習コスト高いかな?

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

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

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

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

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

337 名前:デフォルトの名無しさん mailto:sage [2017/01/25(水) 16:42:20.24 ID:vaJn6hA3.net]
>>322
ん、今さりげなくHaskell馬鹿にした?

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

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



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

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

341 名前:デフォルトの名無しさん mailto:sage [2017/01/25(水) 20:46:32.79 ID:o52BqWk7.net]
>>332
そうなんだあ
Rustって遅いんですね

342 名前:デフォルトの名無しさん mailto:sage [2017/01/25(水) 21:10:53.58 ID:G3Sy5RF2.net]
コピーするから速い……?

343 名前:デフォルトの名無しさん mailto:sage [2017/01/25(水) 22:08:50.44 ID:9B/zRGmW.net]
週刊誌並の偏った切り取り方

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

345 名前:デフォルトの名無しさん mailto:sage [2017/01/25(水) 22:31:03.09 ID:rhF3V2Xc.net]
めっちゃデカイ構造体コピーしたろ!

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

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

348 名前:デフォルトの名無しさん [2017/01/26(木) 01:43:10.61 ID:2yUJ7U50.net]
Rustと言う名前のゲームがあるそうですが
それはプログラミング言語のRustで作られているのですか?

349 名前:デフォルトの名無しさん mailto:sage [2017/01/26(木) 07:47:28.82 ID:2BnY2tIN.net]
>>341
その同名のゲームとは関係ない



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

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

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


こんな記事見つけた

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

367 名前:デフォルトの名無しさん mailto:sage [2017/01/30(月) 02:43:56.69 ID:YhRMpmBj.net]
敷居が高いは不義理をしてあわせる顔がない時に使う

368 名前:デフォルトの名無しさん mailto:sage [2017/01/30(月) 03:24:58.17 ID:OQRcOPPf.net]
へえ、ものしりだねー

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



370 名前:デフォルトの名無しさん mailto:sage [2017/01/30(月) 19:07:27.99 ID:bQnpSDhS.net]
いくら言語を誉めたところで、この言語で書かれたまともなプロダクトも、この言語の本も出てないことが、この言語のダメさを物語っている。

371 名前:デフォルトの名無しさん mailto:sage [2017/01/30(月) 19:11:49.38 ID:rVcDTRet.net]
Facebookがmercurial hgをポーティングしたって話の裏は取れたんだっけ?

372 名前:デフォルトの名無しさん mailto:sage [2017/01/30(月) 19:36:00.65 ID:nWNAE5Le.net]
>>363
つ ripgrep
煽るには知識が足りてない

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

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

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

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

376 名前:デフォルトの名無しさん mailto:sage [2017/01/30(月) 23:13:49.09 ID:qF4ARhTt.net]
const_fn、conservative_impl_trait、never_type、associated_consts……この話はやめよう

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

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

379 名前:デフォルトの名無しさん mailto:sage [2017/01/31(火) 01:18:23.09 ID:w/stZREj.net]
C++センパイの進化について



380 名前:デフォルトの名無しさん mailto:sage [2017/01/31(火) 01:57:41.10 ID:TmvDy1Hy.net]
C/C++のようにOSでもカーネルでもデバドラでも組み込みでも何にでも使える言語が良い
ユーザレイヤでしか触れない言語は価値が低い

381 名前:デフォルトの名無しさん mailto:sage [2017/01/31(火) 02:04:11.12 ID:EAnQTfF2.net]
いったい何を批判しようとしてるんだ?

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

383 名前:デフォルトの名無しさん mailto:sage [2017/01/31(火) 05:03:19.87 ID:IQXv4KrI.net]
C++はヘッダファイルに分かれてたりするのが嫌い。

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

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

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

386 名前:デフォルトの名無しさん [2017/01/31(火) 11:44:51.26 ID:sCWKIGbu.net]
下記のような処理で 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);
}

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

388 名前:デフォルトの名無しさん mailto:sage [2017/01/31(火) 12:33:39.17 ID:yyJuX8zg.net]
>>379
takes_numsからきちんと返す とか
https://play.rust-lang.org/?gist=12884b1ee4ef3196c70d52f5defacf70

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



390 名前:デフォルトの名無しさん mailto:sage [2017/01/31(火) 15:01:08.68 ID:16SeH9xy.net]
>>379
こんなこともできる
https://fraserblog.codewise.org/sneaking-a-peek-at-private-data-for-testing-in-rust/

391 名前:デフォルトの名無しさん mailto:sage [2017/01/31(火) 17:27:00.00 ID:19P3vDy6.net]
スライスパターンまだ?

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

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

394 名前:デフォルトの名無しさん mailto:sage [2017/01/31(火) 22:25:40.67 ID:FHFaV7L7.net]
コンパイラ方面の単語なのね
thx

395 名前:デフォルトの名無しさん mailto:sage [2017/02/01(水) 16:47:26.59 ID:t+0AKFTt.net]
>>373
javaとかに喧嘩売ると荒れるからやめろや

396 名前:デフォルトの名無しさん mailto:sage [2017/02/01(水) 18:13:30.15 ID:UXwydrfk.net]
言語に貴賤なし。プログラマに貴賤大有り

397 名前:デフォルトの名無しさん mailto:sage [2017/02/01(水) 18:18:40.81 ID:A+dqSgkk.net]
無理やり荒れさすなや

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

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

って認識であってる?

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



400 名前:デフォルトの名無しさん mailto:sage [2017/02/03(金) 03:50:46.78 ID:o3QjYKDf.net]
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のパッケージを直接使えるようするための道筋か整うんだと

401 名前:デフォルトの名無しさん mailto:sage [2017/02/03(金) 03:52:31.61 ID:o3QjYKDf.net]
crate .ioじゃなくてcrates.ioだわ

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

403 名前:デフォルトの名無しさん mailto:sage [2017/02/03(金) 22:45:31.22 ID:o3QjYKDf.net]
#[derive(Throwable)]
struct Soybean;

404 名前:デフォルトの名無しさん mailto:sage [2017/02/03(金) 23:15:20.66 ID:MzXAEQdU.net]
カスタムderiveは良いよね、夢広がりんぐ。

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

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

406 名前:デフォルトの名無しさん mailto:sage [2017/02/04(土) 04:51:36.32 ID:KgCacN16.net]
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>

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

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

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



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

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

412 名前: []
[ここ壊れてます]

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

414 名前:デフォルトの名無しさん mailto:sage [2017/02/05(日) 13:52:10.30 ID:1zIopPJZ.net]
P0292R2のstabilizeマダー

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

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

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

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

419 名前:デフォルトの名無しさん mailto:sage [2017/02/09(木) 11:56:02.46 ID:LJBL065x.net]
荒し乙



420 名前:デフォルトの名無しさん mailto:sage [2017/02/10(金) 05:58:09.39 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

421 名前:デフォルトの名無しさん [2017/02/10(金) 17:59:28.97 ID:XNSQcvUK.net]
RustでJVMやFlashPlayer作り直せばJavaAppletやFlashが復活するー?

422 名前:デフォルトの名無しさん mailto:sage [2017/02/10(金) 18:00:49.21 ID:hHNUUpqe.net]
しなくていい

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

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

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

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

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

427 名前:デフォルトの名無しさん mailto:sage [2017/02/13(月) 10:41:16.81 ID:wHhLxWjt.net]
狂気丸出しのレスだな。

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

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



430 名前:デフォルトの名無しさん mailto:sage [2017/02/13(月) 11:31:22.65 ID:7X0vvEjV.net]
let cum_amt = mozilla.masturbate()
.to(Some(rust))
.duration(Duration::from_secs(30))
.finish();

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

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

433 名前:デフォルトの名無しさん mailto:sage [2017/02/13(月) 11:56:22.97 ID:VFoQx1wb.net]
キチガイはすぐファビョって連投を始める

434 名前:デフォルトの名無しさん mailto:sage [2017/02/13(月) 13:51:05.15 ID:THrV6nDM.net]
ドユコト?
やっぱりD言語の方がいいってこと?

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

436 名前:デフォルトの名無しさん mailto:sage [2017/02/13(月) 18:36:27.18 ID:3XLU4PQN.net]
あなたに何の魅力も無いのに、あなたの主観的な評価に意味を見出だせない
実際に触ったことがある

437 名前:ネら「Mozillaが開発している&関係が深い」ことを評価の基、あるいはレッテル貼りに使うなんて的外れなことはしない
もっとまともな批判なら相手する人もいるだろうよ
[]
[ここ壊れてます]

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

439 名前:デフォルトの名無しさん mailto:sage [2017/02/13(月) 22:11:11.49 ID:2CyLjYwO.net]
C++はツギハギだらけでダメだろ



440 名前:デフォルトの名無しさん [2017/02/13(月) 23:19:53.96 ID:8+uLQ/Rs.net]
ひとまずRustで安全なJavaVMを作って><

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

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

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

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

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

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

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

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

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

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



450 名前:デフォルトの名無しさん mailto:sage [2017/02/14(火) 09:29:23.11 ID:he6YB8dM.net]
きっとうるう秒が悪い

451 名前:デフォルトの名無しさん mailto:sage [2017/02/14(火) 10:17:09.44 ID:gRGlEM3t.net]
Goがなんだかんだ受け入れられたのってこの手のライブラリをほとんど公式で提供してるのもでかい気がした。

452 名前:デフォルトの名無しさん mailto:sage [2017/02/14(火) 10:29:11.59 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


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

453 名前:デフォルトの名無しさん mailto:sage [2017/02/14(火) 13:02:14.37 ID:yamMgOVS.net]
D言語ももう少し根性見せろや

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

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

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

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

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

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

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



460 名前:デフォルトの名無しさん [2017/02/14(火) 18:26:17.87 ID:uwayiWk9.net]
Dのtimeは混乱してるようにみえる

461 名前:デフォルトの名無しさん mailto:sage [2017/02/14(火) 18:56:33.55 ID:qahXd/u8.net]
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 {
'?'
};

462 名前:デフォルトの名無しさん [2017/02/15(水) 08:45:00.92 ID:nJh54DV/.net]
日本の元号を標準ライブラリに入れろなんてバカ存在するの?

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

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

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

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

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

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

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

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

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



470 名前:デフォルトの名無しさん mailto:sage [2017/02/15(水) 15:04:13.32 ID:er7cKMeE.net]
こんなんでどうだろう
ttps://play.rust-lang.org/?gist=22ace15b6d140db6d0c3b007ea155e8b&version=stable&backtrace=0

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

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

472 名前:デフォルトの名無しさん mailto:sage [2017/02/15(水) 15:56:56.27 ID:JsTxjjGi.net]
一応、RFCにも入ってて実装待ちになってはいるんだな
https://github.com/bluss/rfcs/blob/master/text/0107-pattern-guards-with-bind-by-move.md

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

473 名前:デフォルトの名無しさん mailto:sage [2017/02/15(水) 16:16:51.99 ID:8li9lRMw.net]
noneのelseは確かに消したい衝動に駆られざるをえない

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

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

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

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

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

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

478 名前:デフォルトの名無しさん mailto:sage [2017/02/16(木) 11:24:08.77 ID:JPLcUbCW.net]
なにかしら貢献しようってのはないの?

479 名前:デフォルトの名無しさん mailto:sage [2017/02/16(木) 12:09:50.46 ID:QxzW1FU8.net]
触んな触んな



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

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

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

483 名前:デフォルトの名無しさん mailto:sage [2017/02/16(木) 20:59:32.12 ID:VUboIYs6.net]
C/C++の後継を考えると変数宣言はType val形式じゃないと受け入れられないでしょ。
Rustはvar val:Type形式だし

484 名前:デフォルトの名無しさん mailto:sage [2017/02/16(木) 21:05:18.40 ID:dGmRkXVH.net]
そんな些細なことに拘る奴おらんで。

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

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

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

488 名前:デフォルトの名無しさん mailto:sage [2017/02/16(木) 21:50:51.71 ID:QxzW1FU8.net]
-sys crateは良い文化

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



490 名前:デフォルトの名無しさん mailto:sage [2017/02/16(木) 23:16:50.76 ID:Ctthh1M5.net]
rustcにCやC++が残ってる限りrustがC/C++の後継に成りきれない何かがある

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

492 名前:デフォルトの名無しさん mailto:sage [2017/02/17(金) 00:33:46.93 ID:yhaDaC8E.net]
llvmをrustで書き直そう

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

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

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

496 名前:デフォルトの名無しさん mailto:sage [2017/02/17(金) 08:06:47.24 ID:nCBINic8.net]
>>483
SQLiteをRustで書き直そう

497 名前:デフォルトの名無しさん mailto:sage [2017/02/17(金) 10:52:00.95 ID:jHhPXKUT.net]
linuxをRusuxにすればcの後継

498 名前:デフォルトの名無しさん mailto:sage [2017/02/17(金) 11:12:03.68 ID:3FtIr36J.net]
>>488
>>9

499 名前:デフォルトの名無しさん mailto:sage [2017/02/17(金) 14:07:26.39 ID:eFr6pWHl.net]
>>15



500 名前:デフォルトの名無しさん mailto:sage [2017/02/17(金) 18:21:18.09 ID:5sY5yHIi.net]
FireFoxをRustで書き直そう

501 名前:デフォルトの名無しさん mailto:sage [2017/02/17(金) 18:59:34.73 ID:ZDBavghI.net]
Servo

502 名前:デフォルトの名無しさん mailto:sage [2017/02/17(金) 19:18:49.28 ID:sPCLdDuU.net]
ServoをRustで書き直そう

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

504 名前:デフォルトの名無しさん mailto:sage [2017/02/17(金) 21:22:35.36 ID:krcZKPEA.net]
先ずはlibcompiler-rtから

505 名前:デフォルトの名無しさん [2017/02/17(金) 22:06:03.85 ID:y4+T5net.net]
>>442
だな

506 名前:デフォルトの名無しさん mailto:sage [2017/02/18(土) 09:19:54.20 ID:PNO7DmhT.net]
>>494
>>15

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

507 名前:デフォルトの名無しさん mailto:sage [2017/02/18(土) 10:17:07.05 ID:bUHmqYrs.net]
>>491
それは既に部分的にやってるんだっけ

>>497


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

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



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

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

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

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

514 名前:デフォルトの名無しさん mailto:sage [2017/02/20(月) 18:49:57.67 ID:ehHRa0XE.net]
こんな書き方できたのか!!!
fn x((a, b): (u32, u32)) {}

515 名前:デフォルトの名無しさん mailto:sage [2017/02/20(月) 22:04:29.62 ID:97wV3Rfs.net]
別にそんな書き方出来なくてもいいよ

516 名前:デフォルトの名無しさん mailto:sage [2017/02/20(月) 23:14:15.09 ID:mI2RJMjC.net]
単なるタプルを引数にした関数で、呼び出しもタプルだよなぁ・・・

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

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

517 名前:デフォルトの名無しさん mailto:sage [2017/02/20(月) 23:38:34.63 ID:ehHRa0XE.net]
fn foo(Foo(a, b): Foo) {}

518 名前:デフォルトの名無しさん mailto:sage [2017/02/21(火) 08:08:29.59 ID:KVrlVIJb.net]
落ち着けただの構造化束縛だ。
ttps://play.rust-lang.org/?gist=c66f3f420befbdc37090ec793ebb9735&version=nightly&backtrace=0

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



520 名前:デフォルトの名無しさん mailto:sage [2017/02/21(火) 08:20:55.82 ID:eTJT09tJ.net]


521 名前:ああ、そういうことか
>>508の言いたい事を理解しようと首を傾げてたけどfn fのtypoなんだろうな
それとタプル引数関数の関係性は分からんけど、それはもう考えまい
[]
[ここ壊れてます]

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

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

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

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

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

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

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

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

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

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

529 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 13:08:05.53 ID:H4R0mXRf.net]
人気水増ししたら何かいいことあるの?
ステマするほどの価値があるようにも思えないが。



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

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

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

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

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

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

534 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 14:32:01.45 ID:eozO90Y3.net]
クソ連呼厨ってID変えられるのかよ

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

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

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

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

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

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



540 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 19:22:05.86 ID:cQa0oJ+5.net]
>>528
どうせクソコードなんだろう
無能のクセに文句だけは一流

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

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

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

544 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 20:15:09.50 ID:zngwxGAX.net]
実際にお前らが何を作ってるのかは気になるな
crate公開したりしてんの?

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

546 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 20:42:34.44 ID:oSrrQwof.net]
>>535
でもそうなんでしょ?

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

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

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

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



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

551 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 21:15:20.74 ID:vAxbMLg6.net]
ID:LSEhsWdS
今日の患者さんはなかなか元気だな。

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

553 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 21:17:02.17 ID:kHt4tzR1.net]
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); // 美しい

554 名前:デフォルトの名無しさん [2017/02/23(木) 21:19:45.77 ID:sZtROie8.net]
C++の -> int は省略できるやろ

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

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

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

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

559 名前:デフォルトの名無しさん [2017/02/23(木) 21:38:33.89 ID:sZtROie8.net]
>>548
え?称賛なんかしてないけど?



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

561 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 21:48:04.84 ID:DPtsYYmf.net]
LSEhsWdSはプログラミングセンス無いからこの業界辞めた方がいい

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

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

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

565 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 22:04:06.85 ID:TLItgOP3.net]
LSEhsWdSがブチギレてることは伝わったが、その怒りは言語じゃなくて上司に向けるべきなんじゃねーかな。

566 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 22:05:57.88 ID:NuCuZGCr.net]
マ板でやれ

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

568 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 22:09:53.57 ID:cNXolJMY.net]
Rustのどのへんがぶちギレポイントなのか詳しく
それなら少しは有意義やろ?

569 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 22:14:46.67 ID:X5Zb9v7q.net]
>>525
homuの作者



570 名前:543 mailto:sage [2017/02/23(木) 22:17:35.80 ID:kHt4tzR1.net]
もいっちょ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と->がやっぱり気になる *)

571 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 22:32:19.67 ID:K3Cm2dt ]
[ここ壊れてます]

572 名前:r.net mailto: >>552
ノード間のリンク構造が頻出してると、移植できなくはないが、Rust初心者はコンパイルできなくて詰む
あと、変数を強引にキャストしまくってるようなやつは、移植初心者にはつらそう
[]
[ここ壊れてます]

573 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 22:43:51.07 ID:8gwVa+zN.net]
syntax気にするだけならsmalltalkやるよろしアル

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

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

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

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

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

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



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

581 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 23:42:42.37 ID:UGVUxePL.net]
JavaScriptなんて使うくらいならいっそCとEmscriptenで書きたいわ

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

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

584 名前:デフォルトの名無しさん mailto:sage [2017/02/24(金) 01:32:47.64 ID:/cLlv/nZ.net]
>>543
> // rust
> let f = |x| x + 1; // 美しい

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

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

585 名前:デフォルトの名無しさん mailto:sage [2017/02/24(金) 08:44:12.21 ID:F/TDaiUX.net]
rustってJavaからJNIでCを呼び出すのと何が違うのっと

586 名前:デフォルトの名無しさん mailto:sage [2017/02/24(金) 08:46:52.43 ID:VQegiGIK.net]
何を煽りたいのっと

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

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

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

589 名前:デフォルトの名無しさん mailto:sage [2017/02/24(金) 14:20:48.79 ID:fnwYTLZ/.net]
構文はもっとMLに寄せてほしいなあ




590 名前:{ } とか見たくない []
[ここ壊れてます]

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

592 名前:デフォルトの名無しさん mailto:sage [2017/02/24(金) 17:24:16.93 ID:t5bNNBCg.net]
シンタックスの話をしだすと結局好みの問題に落ち着く

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

594 名前:543 mailto:sage [2017/02/24(金) 18:39:46.43 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のブロックの中の縦線なのかなぁ

595 名前:デフォルトの名無しさん mailto:sage [2017/02/24(金) 23:22:20.10 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のブロックの引数リストの構文じゃなくて
一時変数の宣言の構文を使ったかはわからん。

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

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

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

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



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

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

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

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

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

603 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 20:39:21.20 ID:FTYjcOZq.net]
>>590
どれだけのバグを生み出してきたの?

604 名前:デフォルトの名無しさん [2017/02/25(土) 20:42:35.76 ID:gF7KaGBm.net]
>>591
qiita.com/tomohisaota/items/e6995e89b843e1295c08

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

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

あとはどれだけのバグを生み出してきたの?

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

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

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



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

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

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

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

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

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

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

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

616 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 21:30:13.94 ID:FTYjcOZq.net]
>>602
一点だけ

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

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

f(cond ? g() : h())

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

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

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



620 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 22:48:27.45 ID:jxiHI5n5.net]
if式なら三項演算子はいらないよ

621 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 23:00:24.91 ID:BrkcZ5hg.net]
if-elseの波括弧外したらtype ascriptionが曖昧になる。

622 名前:デフォルトの名無しさん [2017/02/25(土) 23:54:27.38 ID:+Hmh+RyZ.net]
>>604
ioでも使ってろ

623 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 23:57:17.74 ID:jxiHI5n5.net]
f( if cond { g() } else { h() } )

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

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

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

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

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

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

629 名前:デフォルトの名無しさん mailto:sage [2017/02/26(日) 11:28:50.68 ID:kIbkRe9i.net]
そうだね
俺は当然ながら、例えばGoogleの人たちなんかよりよっぽど頭が悪いからブレースは省略しないよ



630 名前:デフォルトの名無しさん mailto:sage [2017/02/26(日) 12:56:41.32 ID:ilyf8Ugu.net]
自覚があるのはよろしい
頭の悪い人は無理に波括弧省略しなくていいんだぞ
だれもそれを咎めはしないし止めもしない

631 名前:デフォルトの名無しさん mailto:sage [2017/02/26(日) 13:14:04.69 ID:j+1S0ikr.net]
ソース管理がしっかり運用されてると
空の波括弧さんありがとう!!と感謝する機会が多くなる

632 名前:デフォルトの名無しさん mailto:sage [2017/02/26(日) 13:42:37.90 ID:n9+kiTzj.net]
if文の波括弧は例え1行でも省略すべきではないな

633 名前:デフォルトの名無しさん [2017/02/26(日) 13:57:31.18 ID:AijJH6kn.net]
>>616
残念だけど常に付ける派だが省略するななんて言われたこと無いからそんな煽り無駄
それに自分だけじゃないんだよ。信頼出来るメンバーだけで開発するならRustを使う必要なんてない。

634 名前:デフォルトの名無しさん mailto:sage [2017/02/27(月) 14:37:50.15 ID:8fV4SlqM.net]
>>588
激しく同意

635 名前:デフォルトの名無しさん mailto:sage [2017/02/27(月) 14:55:00.32 ID:IwI2aqEg.net]
ifの波括弧強制は多いに賛成
Rustは設計思想からして堅牢性が重視する言語なので
むしろ波括弧無しは設計思想に反する構文

636 名前:デフォルトの名無しさん mailto:sage [2017/02/27(月) 18:31:01.83 ID:3oI2dcr0.net]
SwiftもGoもモダンな言語のifは{}必須だからRustもそうなんだろう

637 名前:デフォルトの名無しさん mailto:sage [2017/02/27(月) 19:58:29.36 ID:LZ77JUIB.net]
ちなみにOCamlだと
ttps://ocaml.org/learn/tutorials/if_statements_loops_and_recursion.ja.html#beginend
let max a b = if a > b then a else b;;
でありウルトラシンプル

複数にしたいときは丸カッコかbegin-end
if 1 = 0 then
print_endline "THEN"
else begin
print_endline "ELSE";
failwith "else clause"
end;;
if 1 = 0 then
print_endline "THEN"
else (
print_endline "ELSE";
failwith "else clause"
);;
こういう世界だと波括弧よりもbegin-endがシックリきてるように見えなくもない

638 名前:デフォルトの名無しさん mailto:sage [2017/02/27(月) 20:06:13.47 ID:zLpKV4Hz.net]
英数字が多過ぎて慣れてないと通常の識別子と瞬時に弁別できない

639 名前:デフォルトの名無しさん mailto:sage [2017/02/27(月) 21:47:19.08 ID:C84dJOXo.net]
慣れ慣れ
冷静に考えてみ?中括弧だって別に見やすい記号じゃない



640 名前:デフォルトの名無しさん mailto:sage [2017/02/27(月) 23:55:54.57 ID:/1/jo1+J.net]
シンタックスハイライトの有無で全然違う

641 名前:デフォルトの名無しさん mailto:sage [2017/02/28(火) 00:02:16.49 ID:JC90/ck5.net]
>>627
俺も慣れだと思う
括弧あった方が統一性があって俺はむしろ見やすい

642 名前:デフォルトの名無しさん mailto:sage [2017/02/28(火) 00:20:31.68 ID:hQ8vIQRp.net]
wwwww

643 名前:デフォルトの名無しさん mailto:sage [2017/03/01(水) 13:27:14.36 ID:dbhoX2Op.net]
今の日本のRust界隈って、LT会を開いて100人は集まるくらいの規模なのか
https://rust.connpass.com/event/48826/

644 名前:デフォルトの名無しさん mailto:sage [2017/03/01(水) 14:13:16.39 ID:SH8mWFxK.net]
>>631
そういうのに集まるのって、入門が趣味の人でしょ

645 名前:デフォルトの名無しさん [2017/03/01(水) 22:45:28.30 ID:gWF4n/wu.net]
誰だって最初は入門から始まる。
臆するな、前へ進めよ。

646 名前:デフォルトの名無しさん mailto:sage [2017/03/02(木) 17:47:06.67 ID:5xdornxH.net]
Rust Language Server alpha 2がリリース。かなりインストールしやすくなってる
https://github.com/rust-lang-nursery/rls

647 名前:デフォルトの名無しさん mailto:sage [2017/03/02(木) 18:10:52.07 ID:io4sIXyE.net]
C++とかから来た人はrustでも波括弧使わせられるの?やだーwのイメージ

648 名前:デフォルトの名無しさん mailto:sage [2017/03/02(木) 19:04:04.08 ID:u/9aEmwY.net]
sever-clientモデルのコンパイラってどうなんだろうね
一周回ってクライアントモデルが良いなってことにならなければ良いけどと心配してる

649 名前:デフォルトの名無しさん mailto:sage [2017/03/02(木) 19:24:21.19 ID:dGAZp2xa.net]
文字セットが貧弱でCのトライグラフ使ってた時代を思い出せ、とか



650 名前:デフォルトの名無しさん mailto:sage [2017/03/02(木) 22:21:45.15 ID:TuErB/Pj.net]
>>636
language server protocolはコンパイラじゃない。
rustだけのものじゃないし。

651 名前:デフォルトの名無しさん mailto:sage [2017/03/02(木) 23:53:09.94 ID:unB1K5KY.net]
ビルドツールって言い回しでもいいけど、結局そういうモノが使えるのかという疑問なんだが
MSが切った規格っぽいけど、MSは使ってて流行ってるのかねぇ

652 名前:デフォルトの名無しさん mailto:sage [2017/03/02(木) 23:58:57.23 ID:5xdornxH.net]
流行るかどうかは知らんが、使って見た感想としては、racerで不十分だったエラーチェックやgo to definitionとかもあってそれなりに快適
不満があるとすれば、初期化に時間がかかる(ただし2回目以降は少し速い)のと入力の度の解析に少し時間がかかる(ただしcargo checkよりは速い)のとキャッシュがクソでかいところかな

653 名前:デフォルトの名無しさん [2017/03/03(金) 02:48:30.02 ID:NOi6E2uI.net]
Rust(錆)
流行ることなく誰にも使われず錆びていくプログラミング言語、それがRust
ルストハリケーン

654 名前:デフォルトの名無しさん [2017/03/03(金) 02:50:44.93 ID:8SEA7Mtt.net]
language server protocolはビルドツールでもない。
エディタでコード補完とかフォーマットとか(VisualStudioのIntellisenseのようなもの)を実現するためのプロトコル。
エディタの機能拡張のためのものだよ。

655 名前:デフォルトの名無しさん mailto:sage [2017/03/03(金) 05:22:56.35 ID:Mo/AGisi.net]
Ryzenなら、rustcも爆速になる?
https://twitter.com/FuAnTaJi/status/837313090190467072

656 名前:デフォルトの名無しさん mailto:sage [2017/03/03(金) 05:26:52.91 ID:bMgzQydB.net]
Rustスレで語るほどの話題でもないな

657 名前:デフォルトの名無しさん mailto:sage [2017/03/03(金) 05:46:13.37 ID:Dlw1K2JE.net]
>>642
話がズレてんぞ
「Rust Language Server」(ソフトウェア)の利便性/実用性を問うているのであって
「language server protocol」(プロトコル)の利便性/実用性を問うているんじゃない

>>640
ああ、キャッシュはクソでかいのか...
元コードや依存crateに比例するだろうけど多少の利便性のために使って良いものか微妙なのかなぁ

658 名前:デフォルトの名無しさん mailto:sage [2017/03/03(金) 06:25:02.22 ID:bMgzQydB.net]
まあクソでかいと言ってもdebug buildのキャッシュに少し欠けるくらいだけどね
逆にいえばdebug buildと同等のオーダーで容量を食うということだが

659 名前:デフォルトの名無しさん [2017/03/03(金) 08:53:13.29 ID:8SEA7Mtt.net]
>>645
ビルドツールとかいって何に使うものかも解ってない >>639 みたいなのが居たから書いたのに話がずれてるって…



660 名前:デフォルトの名無しさん mailto:sage [2017/03/03(金) 09:37:43.14 ID:NTvASRIg.net]
それでもその程度(debugビルド)か
提供体系変えたからってそれ以上は減らないだろうから
結局は、サーバクライアントモデルにメリットがあればって所なのな, 情報thx

661 名前:デフォルトの名無しさん mailto:sage [2017/03/03(金) 10:21:19.53 ID:Ufz5V5uO.net]
LSPをサポートしてれば、エディタ/IDEそれぞれに特化したプラグインを作らなくていいところが良い
まあracerもそうだけど。後は非同期的なのも重い処理にはいいかもね

662 名前:デフォルトの名無しさん mailto:sage [2017/03/03(金) 18:34:23.36 ID:NTvASRIg.net]
IntelliJのRustプラグインはRLS対応メンドイから当分見送りな!とか言ってるんだよねぇ
エディタ/IDEのフロントエンドは作り込み必要だし、LSP共通でできることって結構薄いレイヤーなんだろうな

663 名前:デフォルトの名無しさん mailto:sage [2017/03/03(金) 23:51:37.58 ID:JBnTbtYi.net]
Rainicorn開発して自前でon the fly error checkやってたRustDTが
LSPが発表された途端にRustLSP開発始めたのにRLSがでてきて完全に沈黙中。
(´・ω・)カワイソス

LSPはリファクタに使える問い合わせもできるから
RLSとIDE側が対応すればrustのツールで初めてのリファクタ機能が現れるかも。

664 名前:デフォルトの名無しさん [2017/03/08(水) 03:21:51.70 ID:DeDFMxZF.net]
i.imgur.com/WTFdXwM.png

Rustのメモリ管理が良く分からないので
脳内整理してみたけどよく分からない

665 名前:デフォルトの名無しさん mailto:sage [2017/03/08(水) 07:03:46.86 ID:jgMpoXzS.net]
このごちゃごちゃで整理とか笑える。

666 名前:デフォルトの名無しさん mailto:sage [2017/03/08(水) 07:23:54.02 ID:CjJNAnlh.net]
コメ返してるのウケる

667 名前:デフォルトの名無しさん mailto:sage [2017/03/08(水) 07:26:21.29 ID:fOyT060n.net]
こ、コメ

668 名前:デフォルトの名無しさん mailto:sage [2017/03/08(水) 10:47:45.16 ID:6Gp+/qzY.net]
よく分かってないから脳内整理もぐちゃぐちゃになってるのではなかろうか
rustはマルチスレッドに影響受けることはないし、他にも理解が出来てない所が多そう

公式ドキュメントが分かりやすいからきちんと読み直したら?
https://doc.rust-lang.org/book/

>>654
ワロタ

669 名前:デフォルトの名無しさん mailto:sage [2017/03/08(水) 13:45:42.21 ID:68sDUGxJ.net]
何が分からないのか分からない状態。borrowじゃなくてownershipが分からないのか、スタックとヒープが分からないのか。



670 名前:デフォルトの名無しさん mailto:sage [2017/03/08(水) 13:59:22.48 ID:jMX+hATM.net]
>>652
java臭い

671 名前:デフォルトの名無しさん mailto:sage [2017/03/10(金) 08:50:25.22 ID:mPQwWGXM.net]
>>455
JavaにはJapanese Eraあるな

672 名前:デフォルトの名無しさん [2017/03/11(土) 03:15:58.35 ID:ls0F4O8F.net]
Rustで作ったプログラムを公開するとき

Rust自身のライセンス文書と
crateで含めた各パッケージのライセンスと各パッケージが依存するパッケージのライセンスを
含める必要があると思うんですが

それらのライセンス文書をかき集めるcargoのコマンド等あったりしますか?
( ~/.cargo/registry/src/ 下にパッケージのソースファイルやライセンスファイルがあるのは分かってるんですが手動で集めるのは面倒なので・・・)

673 名前:デフォルトの名無しさん mailto:sage [2017/03/11(土) 08:13:55.49 ID:kL5whW8F.net]
HyperのTokio化が間近まで迫っているわけだが、かなり仕組みが変わってて対応が面倒臭い

674 名前:デフォルトの名無しさん mailto:sage [2017/03/11(土) 08:15:11.10 ID:x2OoeTeG.net]
DASH言語

675 名前:デフォルトの名無しさん mailto:sage [2017/03/11(土) 08:16:44.20 ID:hkT0qMWn.net]
そういえばhyperってcharsetから自動でデコードしてくれないのかな

676 名前:デフォルトの名無しさん mailto:sage [2017/03/11(土) 08:19:31.82 ID:qKzUYLvE.net]
>>662
まずは言語を動かすプロセッサーを作るための半導体から調達するのかな

677 名前:デフォルトの名無しさん mailto:sage [2017/03/11(土) 08:24:05.78 ID:kL5whW8F.net]
Charsetはhyperの領分からはかなりかけ離れてるんじゃないかねえ。reqwestですら対応しなさそう

678 名前:デフォルトの名無しさん mailto:sage [2017/03/11(土) 08:46:49.37 ID:qKzUYLvE.net]
charsetは別に良いけど、Content-Encodingは対応してくれないのかなぁ

679 名前:デフォルトの名無しさん mailto:sage [2017/03/11(土) 09:04:48.56 ID:kL5whW8F.net]
>>666
gzipに関してはreqwestのupstreamで既に対応している
https://github.com/seanmonstar/reqwest/pull/61
いつリリースされるのかは分からん



680 名前:デフォルトの名無しさん mailto:sage [2017/03/11(土) 12:10:28.94 ID:nSjuwCRc.net]
reqwestにモリモリとFeature Request投げつけて肥大化したライブラリにすればいいんじゃないかなぁ!

それを横目に、reqwestに代わる極最低限の機能をピックアップできるライブラリの登場を期待したい
tomlのoptionalで切れるのでもいいんだろうけど、crate分けてくれた方がrustらしい気がする

681 名前:デフォルトの名無しさん mailto:sage [2017/03/12(日) 13:51:15.74 ID:oPHiMgG4.net]
Rayonの1.0 milestoneが残すところドキュメント関連のみとなって1.0が秒読みという感じでとてもよろしい
SerdeだのHyperだのRayonだのという目玉crateが軒並みpre-1.0なままなのは気持ち悪いからなあ

682 名前:デフォルトの名無しさん mailto:sage [2017/03/12(日) 15:37:08.34 ID:O3/Gyy1q.net]
Windows版はVisual C++ 2015 Build Toolsをインストールする必要があるってことだけど、
これのライセンスってどうなってるの?
Communityと同じだったらうちの会社じゃあ使えないことになるけど、はっきり書いてある
ところが見つからない。

683 名前:デフォルトの名無しさん [2017/03/12(日) 15:41:23.49 ID:U4Jjwa7O.net]
>>670
インストーラーが表示しないの?

684 名前:デフォルトの名無しさん mailto:sage [2017/03/12(日) 17:13:31.76 ID:O3/Gyy1q.net]
なるほど。ライセンス条項を表示して「同意する」にチェックを入れさせるいつもの奴じゃないから
スルーしそうになったけど、いちおうリンクが見つかった。ありがとう。

685 名前:デフォルトの名無しさん mailto:sage [2017/03/14(火) 00:27:55.78 ID:olV+TTff.net]
#[allow(unuseed_variables)]
じゃなくgolangみたいに
let _ = hoge;
とプレースホルダでコンパイル通したりする?

686 名前:デフォルトの名無しさん mailto:sage [2017/03/14(火) 00:32:20.78 ID:UwSzXh4Z.net]
>>673
それでも良いし、let _piyo = hoge;でも良い

687 名前:デフォルトの名無しさん mailto:sage [2017/03/14(火) 22:39:18.78 ID:pGPNuxtq.net]
ていうかallow(unuseed_variables)とプレースホルダはぜんぜん違うぞ

688 名前:デフォルトの名無しさん mailto:sega [2017/03/14(火) 22:54:53.45 ID:UwSzXh4Z.net]
まあ確かに、unuseed_variablesなんてlintはないしな

689 名前:デフォルトの名無しさん mailto:sage [2017/03/15(水) 09:52:08.89 ID:65dLeHL5.net]
うぬ種(unuseed)、、、これには深い秘密が

unused_variablesとプレースホルダ、ワーニングを消すために使うなら同じバイナリ出力するがな
traitのインターフェース切る時はプレースホルダ使ってる



690 名前:デフォルトの名無しさん mailto:sage [2017/03/16(木) 22:41:36.30 ID:KeMWtB7g.net]
そういえばC++だとリリースビルドで消える変数はmaybe_unusedいるんだよな。rustかしこい!

691 名前:デフォルトの名無しさん mailto:sage [2017/03/17(金) 03:23:47.24 ID:bRwtX1Af.net]
Announcing Rust 1.16
https://blog.rust-lang.org/2017/03/16/Rust-1.16.html

・staticとconstのlifetimeがデフォルトで'staticになった(RFC 1623)
// つまりこれが
const ENC: &'static [u8] = b"0123456789ABCDEF";
// こう書ける
const ENC: &[u8] = b"0123456789ABCDEF";

・consider using an explicit lifetime的なメッセージを廃止(不正確な内容を吐くことがあるから。将来安定すれば復活の可能性あり)

・cargo checkが追加(実際にコンパイルせずにコンパイルが通るかの検査だけを行う。cargo buildより時間の短縮が見込める)

・Cargo.tomlのpackage.categoriesがstableでも有効に

692 名前:デフォルトの名無しさん mailto:sage [2017/03/17(金) 21:17:58.70 ID:OBbyZsQw.net]
b‘\x0a‘を”a”に一発で変換する関数ってライブラリにある?自分で書かないと無理?

693 名前:デフォルトの名無しさん mailto:sage [2017/03/17(金) 21:33:20.90 ID:bRwtX1Af.net]
format!("{:x}", b'\x0a')

694 名前:デフォルトの名無しさん mailto:sage [2017/03/17(金) 22:53:52.43 ID:OBbyZsQw.net]
>>681
マジでありがとう
こういうときはformatなのね

695 名前:デフォルトの名無しさん mailto:sage [2017/03/18(土) 00:10:31.46 ID:c1jSzzlC.net]
cargo checkサブコマンド、エラー内容によっては挙動がおかしいんだよね。
cargo test --no-runなら完走する。それかrustcは問題ないから直接rustc叩く。

infinite typeが循環してるとrustcが止まらないのと組み合わさると
rustcがcargoに制御返さない→cargoが無言決め込むになって何が起こってるのかわからなかった。

>>682
自前で弱い動的型付け言語並みのto_string()実装しても良いんだぜ?

696 名前:デフォルトの名無しさん mailto:sage [2017/03/18(土) 01:29:52.32 ID:ZU/olwx/.net]
標準ライブラリでは任意の記数法(62進数とか)を扱えないから自前でフォーマッタを定義してちょいちょいする羽目になることがある
std::fmt::fmt_radixは1.9で消えちゃったから、この手のものを公式で提供する気はなさそうだし

697 名前:デフォルトの名無しさん [2017/03/18(土) 02:04:48.97 ID:sCZDN2Pv.net]
Hideyuki Tanakaさんのツイート: "https://t.co/EoxWy8cSvV 多くのベンチでRustがC++より高速なコードになってきたみたい。"
https://twitter.com/tanakh/status/842326121647505408?p=p

698 名前:デフォルトの名無しさん [2017/03/18(土) 10:03:15.93 ID:cTWPUp3Z.net]
>>685
いいね

699 名前:デフォルトの名無しさん mailto:sage [2017/03/18(土) 10:48:58.61 ID:HHPgXzoi.net]
vec![“data”,“chou-data” ...みたいなのがあって
出現する要素の数をカウントする一番賢い方法ってなんじゃろ?



700 名前:デフォルトの名無しさん mailto:sage [2017/03/18(土) 10:53:52.98 ID:ZU/olwx/.net]
vec.iter().filter(|&&s| s == "predicate").count()
とか?

701 名前:デフォルトの名無しさん mailto:sage [2017/03/18(土) 11:13:48.52 ID:HHPgXzoi.net]
要素全てのカウントで
“data”は3回 “chou-data”は20回という情報が欲しいです
mutなHashMapでシコシコカウントですかね?

702 名前:デフォルトの名無しさん mailto:sage [2017/03/18(土) 11:26:04.35 ID:G5NG4rX0.net]
multisetは使えない? 外部クリートを使うことになるけど

703 名前:デフォルトの名無しさん mailto:sage [2017/03/18(土) 11:36:10.64 ID:Y4C9s3ir.net]
てかそもそもどういう操作にどのくらいの計算量を要求しているのか言ってくれないと答え損にしかならないというか

704 名前:デフォルトの名無しさん mailto:sage [2017/03/18(土) 11:40:29.03 ID:DBFuVmGN.net]
要素→int のマップを用意して、配列の頭から走査して行って出現ごとにインクリメントが正道じゃね。

705 名前:デフォルトの名無しさん mailto:sage [2017/03/18(土) 11:49:38.08 ID:HHPgXzoi.net]
ありがとうございます
とりあえずmultisetのソース見て勉強してきます

706 名前:デフォルトの名無しさん mailto:sage [2017/03/18(土) 18:38:07.11 ID:zyxHQlVL.net]
“data”と“chou-data”の2種類しかないなら一方だけ数えて全体の要素数から引けば両方求められるんじゃね

707 名前:デフォルトの名無しさん mailto:sage [2017/03/18(土) 19:49:33.18 ID:PBtATWqK.net]
ゲームとか作るのにはまだつらい感じ?

708 名前:デフォルトの名無しさん mailto:sage [2017/03/18(土) 22:51:11.48 ID:kQkqB4BZ.net]
ss

709 名前:デフォルトの名無しさん mailto:sage [2017/03/18(土) 23:36:17.52 ID:Cy4FObwW.net]
そういえばコレクション操作で統計用の述語足りてないよね。
他にもあらゆる標準ライブラリ的なものが足りてないからそういうライブラリばかり作られてるんだけど。

>>695
pistonに一通りある。



710 名前:デフォルトの名無しさん mailto:sage [2017/03/19(日) 06:16:46.07 ID:Q49RXSlY.net]
Nightlyでcargo updateをしようとしたら
thread 'main' panicked at 'called `Option::unwrap()`
云々とか出てきて何事かと思ったら、どうやらRust TeamがGitの操作をミスってnightlyが壊れてたらしい
https://github.com/rust-lang/rust/pull/40625

711 名前:デフォルトの名無しさん mailto:sage [2017/03/21(火) 23:01:00.46 ID:hxyeHBes.net]
高階関数に渡す述語のinline属性の指定にかかわらず
そこだけ必ずインライン化するか必ずインライン化しないか指定する方法ない?

Option::map_or_elseに渡すdefault引数とf引数がinline属性付いてるけどインライン化させたくないんだけど。

712 名前:デフォルトの名無しさん mailto:sage [2017/03/24(金) 07:34:18.46 ID:yNGhLANb.net]
Stack Overflowの調査でまたしてもRustが最も好まれている言語になった
https://stackoverflow.com/insights/survey/2017#technology-most-loved-dreaded-and-wanted-languages

が、エンタープライズでの採用例が少ないのだからユーザのうち好んで使っている人の割合が高まるのは当然っちゃ当然だわな

713 名前:デフォルトの名無しさん mailto:sage [2017/03/24(金) 08:53:30.74 ID:mOA6Vf99.net]
みなさんfloatのベクタのソートについてどう思ってるの?

714 名前:デフォルトの名無しさん mailto:sage [2017/03/24(金) 14:35:58.01 ID:pHNq00OZ.net]
>>683
こば?

715 名前:デフォルトの名無しさん mailto:sage [2017/03/24(金) 19:39:57.65 ID:YSCc9yI+.net]
>>700
良い言語なんだけどまだ安定感が足りない感じなんだよなぁ、web系だとclojureがイミフな位安定感あるのと違って
rustはもっと期待されている分バージョン間の差違に敏感な用途が多いからじゃないのかと思うけど。

716 名前:デフォルトの名無しさん mailto:sage [2017/03/25(土) 03:50:37.57 ID:BrrX4e7P.net]
Tokio-minihttp is number 4 in TechEmpower Round 14 Preview : rust
https://redd.it/615sjf

717 名前:デフォルトの名無しさん mailto:sage [2017/03/30(木) 16:59:39.44 ID:mKbsz9A+.net]
// 例1
if let Some(ref mut x) = self.x {
&nbsp;&nbsp;// ...
&nbsp;&nbsp;if x.is_hoge() {
&nbsp;&nbsp;&nbsp;&nbsp;self.x = None; // borrowck激おこ
&nbsp;&nbsp;}
&nbsp;&nbsp;foo
} else {
&nbsp;&nbsp;// ...
&nbsp;&nbsp;bar
}

// 例2
let ret;
if let Some(ref mut x) = self.x {
&nbsp;&nbsp;// ...
&nbsp;&nbsp;ret = foo;
&nbsp;&nbsp;if ! x.is_hoge() {
&nbsp;&nbsp;&nbsp;&nbsp;return ret;
&nbsp;&nbsp;}
} else {
&nbsp;&nbsp;// ...
&nbsp;&nbsp;return bar;
}

self.x = None; // おこらない
ret

718 名前:デフォルトの名無しさん mailto:sage [2017/03/30(木) 17:03:13.41 ID:mKbsz9A+.net]
>>705ミス

// 例1
if let Some(ref mut x) = self.x {
  // ...
  if x.is_hoge() {
    self.x = None; // borrowck激おこ
  }
  foo
} else {
  // ...
  bar
}

// 例2
let ret;
if let Some(ref mut x) = self.x {
  // ...
  ret = foo;
  if ! x.is_hoge() {
    return ret;
  }
} else {
  // ...
  return bar;
}

self.x = None; // おこらない
ret

719 名前:デフォルトの名無しさん [2017/03/30(木) 18:52:42.70 ID:mCoqxFE9.net]
え?それが何だというの?



720 名前:デフォルトの名無しさん mailto:sage [2017/03/30(木) 19:02:31.30 ID:VKjElo3D.net]
ボローチェッカーのせいで読みづらいコードを書かされるって話じゃね?
てかこんな風に書けるのか。今までunwrapで無理矢理対応してたわ

721 名前:デフォルトの名無しさん mailto:sage [2017/03/30(木) 19:45:59.94 ID:Gp+R1RG2.net]
>>708
borrowckなしの状態よりむしろ危険になってて悲しい

722 名前:デフォルトの名無しさん mailto:sage [2017/03/30(木) 21:09:15.78 ID:JBiI28RD.net]
C++だとprivateにしてアクセサ付けろって言われるのに
rustだと必要なときだけ、って感じなのってなぜ?

723 名前:デフォルトの名無しさん [2017/03/30(木) 22:29:46.32 ID:s+CP+YQd.net]
>>710
C++でも言われないよそんな事

724 名前:デフォルトの名無しさん mailto:sage [2017/03/30(木) 23:51:37.90 ID:UVGuKdEr.net]
>>710
大昔:public/privateの概念なく、どこからでも何でもアクセスあり
一昔前:public/privateで公開域を超強力に限定(極端に縛る文化
最近:public/privateはそこそこにね(極端に走りすぎてやりすぎたと反省

どの言語も最近は必ずしもpublic/privateなどの公開域を指定する修飾詞をつけないといけないって感じではなくなってるよ
怠慢 => 厳格 => 適度 って時代の流れよな

>>712がそういう時代の流れが知らないのか、あえて無視してるのか知らんけど

727 名前:デフォルトの名無しさん mailto:sage [2017/03/31(金) 08:03:04.47 ID:kyVktr8w.net]
www.textdrop.net/google-styleguide-ja/cppguide.xml?showone=%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E5%88%B6%E5%BE%A1#%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E5%88%B6%E5%BE%A1
https://google.github.io/styleguide/cppguide.html#Access_Control

これとかは一昔前ということ?

728 名前:デフォルトの名無しさん mailto:sage [2017/03/31(金) 08:31:32.16 ID:kyVktr8w.net]
c++スレで聞けって感じだね

ここの住民のように最近の言語しらんのだ。ありがとう

729 名前:デフォルトの名無しさん mailto:sage [2017/03/31(金) 09:35:15.35 ID:CFLp8HcF.net]
>>710
rustのラッパー系が持ってるget_ref/get_mut/into_innerはアクセサとは目的が違うよ。
それと、他言語のprivateなフィールドはrustだとinterior mutabilityになるけどこれは必要だから。

>>713
>大昔:public/privateの概念なく、どこからでも何でもアクセスあり
俗にカプセル化の一言で説明される全ての隠蔽は60年代〜70年代からあるよ。

>>714
C++はストラウストラップのオブジェクト指向の聖遺物。rustは宗教(パラダイムと設計思想)が違うし、
「ストラウストラップのクラス嫌やねん」が今の主流派だからそれに属するrustを見てC++の流儀が古いかどうかは言えない。
たとえば、最近のJVM言語がフィールド定義すればアクセサ自動定義するのは「メソッド記法面倒くさい」と
「C++系の流儀のjavaとシームレスに通信するため」の二点を同時に満たせるからであって、
こういうJVM言語はイマドキな考え方とC++系の昔からある考え方を両方備えてるからまだ古くなってない。



730 名前:デフォルトの名無しさん mailto:sage [2017/03/31(金) 12:21:13.04 ID:8wrz3vyb.net]
>>714
言語自体はもう新興言語というほど新しくもないC++やJavaは修飾詞つけるのが正義なんじゃない
それ自体は別に文句ないし、自分もそれらの言語を使う時は率先して付けてる

rust, go, swift, nim, kotlinみたいな最近隆盛してる言語は付けないのが文化だと思う
デフォルトのアクセス権限がprivateだったりするヤツもいるから複合的な理由だけど

731 名前:デフォルトの名無しさん mailto:sage [2017/04/01(土) 09:03:12.10 ID:xsH2QUDo.net]
コンパイル通すのに必死で、最適化まで考える余裕がない

732 名前:デフォルトの名無しさん mailto:sage [2017/04/01(土) 11:27:53.05 ID:xsH2QUDo.net]
xml parseしたいけどserde使えばよい?

733 名前:デフォルトの名無しさん mailto:sage [2017/04/01(土) 11:37:09.88 ID:yqxqzJbW.net]
serdeってDOMじゃなかったっけ
DOMでいいならserde一択だとは思うけど

734 名前:デフォルトの名無しさん mailto:sage [2017/04/01(土) 13:13:16.49 ID:dZXDeDc3.net]
serde_xmlってあまり活発に開発されてる感じはしないよなあ。いまだにserde 0.8に依存してるし
まあ、DOMツリーを得たりstructに読み込んだりするにはserde_xml、ストリームを扱うのならxml-rsってところじゃないかねえ

735 名前:デフォルトの名無しさん mailto:sage [2017/04/01(土) 13:25:53.82 ID:ShBKdKpe.net]
domでおけ <

736 名前:デフォルトの名無しさん mailto:sage [2017/04/01(土) 14:14:43.48 ID:yqxqzJbW.net]
Issues読んでたら、serde 0.9はこっちで対応してるからいいんじゃねって雰囲気でワロス
ttps://github.com/RReverser/serde-xml-rs

737 名前:デフォルトの名無しさん mailto:sage [2017/04/01(土) 20:06:49.50 ID:xsH2QUDo.net]
やっぱ現代的言語としては標準ライブラリが弱すぎじゃない?
C++よかましだろうけど

738 名前:デフォルトの名無しさん mailto:sage [2017/04/01(土) 20:35:17.04 ID:/2Cak4ys.net]
探せばあるけど野良クレート頼りな感ある
C++よかましだけど

739 名前:デフォルトの名無しさん mailto:sage [2017/04/01(土) 21:26:19.10 ID:xsH2QUDo.net]
雰囲気的にnodeとかに近い感じかなぁ



740 名前:デフォルトの名無しさん mailto:sage [2017/04/01(土) 22:33:38.44 ID:cPS3ohZQ.net]
標準ライブラリは最大公約数的な最小限のパーツに押さえるというポリシーだしcrates.ioの使用が前提になってる

741 名前:デフォルトの名無しさん mailto:sage [2017/04/01(土) 22:45:09.77 ID:dZXDeDc3.net]
0.x時代はnumもrandもlogもstdの一部だったしね。こっちの方が破壊的変更がしやすいとかなんとか
今のstdですら、@alexcrichtonがio::Cursorの実装を後悔していたりするし(↓)
https://github.com/carllerche/bytes/issues/75#issuecomment-287145718

742 名前:デフォルトの名無しさん mailto:sage [2017/04/02(日) 00:14:26.80 ID:4ErkdvW9.net]
>>724
弱すぎるけど既存の標準ライブラリの設計も実装も結構ひどいところがある。
だけど、rustはcoreライブラリ書くのに向いてるから結局必要なら自分で実装しちゃう。

ネイティブスレッド一々作らせずにthread poolくらい標準で用意しろと思うけど。

>>727,728
cargoで一番センス悪いのがcrates.io前提とalexcrichtonだと思う。

743 名前:デフォルトの名無しさん mailto:sage [2017/04/02(日) 00:47:10.72 ID:YQEfEn7s.net]
Alex Crichtonになんの恨みがあるんだwww

744 名前:デフォルトの名無しさん mailto:sage [2017/04/02(日) 08:00:17.30 ID:GW9gqzFE.net]
no_stdをデフォルトにしようという極右派もにいてそうw
標準を強化しろってのも、標準は要らないってのも宗教だから無宗教の日本人らしく遠目に眺めてる

745 名前:デフォルトの名無しさん mailto:sage [2017/04/02(日) 10:12:44.61 ID:PP0pKPr+.net]
>>730
TOKIOの名を騙った恨み

746 名前:デフォルトの名無しさん mailto:sage [2017/04/02(日) 10:23:41.85 ID:wHW/bvWX.net]
> cargoで一番センス悪いのがcrates.io前提
自前のcrate作る時は名前の競合とか考えるの面倒だから
[dependencies]
hoge = { git = "https://github.com/hoge/hage.git" }
で済ましてるわ
今時、crates.io前提だけで組み上げる輩もおるまい

747 名前:デフォルトの名無しさん mailto:sage [2017/04/02(日) 23:14:29.59 ID:SJJzQWRj.net]
>>733
マルチプロジェクトで依存crateの数が多いとか、
他言語にも依存するとか、ローカルにしか無いcrateとオンライン上に
あるcrateの両方に依存するとか、
他エコシステムとの協調苦手(他エコシステムと連携するadhocで泥臭いcrate書いて
cargoでラップする構造にして隠蔽する必要がある)とかあるからそれだけじゃ上手くいかんよ。

実際にServoが色々壁にぶつかってissue投げまくってそっち優先で対処してるからServoはなんとか出来てる感じ。

言語は良いのに他がダメだから自分で対処できる人以外置いてきぼりで学習コスト高いと言われるんだと思う。
言語仕様もextnt,region,effect,zone(arena)とか一切説明なしに全部の文脈でlifetimeとかいう謎の語を使ってるしね。

748 名前:デフォルトの名無しさん mailto:sage [2017/04/03(月) 01:00:40.90 ID:JUppntkg.net]
他エコシステムとうまく連携できる言語見たことない

749 名前:デフォルトの名無しさん mailto:sage [2017/04/03(月) 01:23:46.19 ID:UPf59owC.net]
言語ごとのエコシステムなんて、OSのパッケージマネージャの邪魔しかしてねーだろ
ユーザーから見たら迷惑千万



750 名前:デフォルトの名無しさん mailto:sage [2017/04/03(月) 05:55: ]
[ここ壊れてます]

751 名前:44.20 ID:u5wlFHfm.net mailto: ディストリ毎に異なるパッケージマネージャーがあるのに無体なことを言うユーザ(笑)もいるもんだなw
ユーザはビルド済みのバイナリだけ使えばいいじゃんね

servoチームに魔改造受けたbindgenを使いこなせるようになりたい
と思ったら最近upstreamがservoチームのものについに切り替わったのか
これは大手ふって使わねば
[]
[ここ壊れてます]

752 名前:デフォルトの名無しさん mailto:sage [2017/04/03(月) 10:11:16.31 ID:8UfIZmop.net]
>>735
build.rsに他エコシステムと連携するプラグイン書けるrustはマシな方よな
Javaのgradleも頑張ってる方だけど言語公式じゃないし、gradleの本質はJavaじゃなくgroovyだし

753 名前:デフォルトの名無しさん mailto:sage [2017/04/06(木) 22:50:56.99 ID:optS43ym.net]
Libs teamが何かissueを投げまくってる
https://github.com/search?q=%22Library+evaluation+tracking+issue%22&type=Issues

754 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 11:31:26.42 ID:mTwYWLsL.net]
Rustはライブラリ戦略で失敗、2.0を迎えずにUbuntuのUnityと同じ運命を辿ると断言しよう。

755 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 11:40:03.17 ID:GbqpuLIm.net]
そうですか

756 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 12:53:41.18 ID:R3xK1J5N.net]
mozillaってのが心配すぎる

757 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 12:59:38.91 ID:8ssaps+e.net]
クソモジラはブランドにならないと思ったら容赦なく捨てるからな。

758 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 13:40:25.63 ID:ZW/CIt37.net]
FirefoxOSは命名の時点で失敗が見えていた
かといってよりマシな名前も思いつかない

759 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 14:37:09.60 ID:59elDVKi.net]
GoogleだとMITやApacheに譲渡するし、Appleだと何事もなかったように切り捨てるけどな
Mozilla Thunderbirdみたいに迷走した後にまた統合するんじゃないのw

個人的にはコミュニティベースのOSSで生き残ればどうでもいいわ
Apacheは斜陽だからあそこへの譲渡はちょっとなぁと思う



760 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 14:42:54.10 ID:GbqpuLIm.net]
クソ言語くん最近見かけなかったから心配してたけど、健在なようでなんか安心したわ

761 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 15:18:48.99 ID:59elDVKi.net]
そうですか

762 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 16:24:57.82 ID:1hxGv39C.net]
低級言語として発展してくれる事を願う

763 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 16:35:35.04 ID:GbqpuLIm.net]
WebAssembly向け言語としても推しているみたいだしその辺も期待できそう
既にCに慣れ親しんだシステムプログラマと比べて、Webのフロントエンジニアの方が訴求しやすそうだし

764 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 16:35:48.93 ID:Ay5kOBNO.net]
ぶっちゃけシステムプログラミングでも組込でもなく
wasm向け言語として定着しそうな感ある>Rust

765 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 17:04:37.50 ID:mTwYWLsL.net]
Rust以外の"新興言語"でwasmをまともにサポートできてる言語ってあるの?

766 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 17:06:01.24 ID:mTwYWLsL.net]
げ、ID被った
アウアウカーなのかよお前!!!

767 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 19:23:15.91 ID:R3xK1J5N.net]
ここまで出来てればコミュニティーベースでもいけるのかなぁ。
お金ないとオープンソースなんて無力なイメージなんだが

768 名前:デフォルトの名無しさん mailto:sage [2017/04/09(日) 00:35:44.07 ID:C+4/Iu4N.net]
趣味で使ってる人はRustで何作ってるの

769 名前:デフォルトの名無しさん mailto:sage [2017/04/09(日) 01:13:01.86 ID:yAkJU/wS.net]
>>754
トランプ52枚を4人に配るってのを作りたかった
乱数生成で挫折した



770 名前:デフォルトの名無しさん mailto:sage [2017/04/09(日) 01:34:48.16 ID:+eXxcQKg.net]
メルセンヌツイスタが有名

771 名前:デフォルトの名無しさん mailto:sage [2017/04/09(日) 01:49:57.91 ID:+k4JWPSD.net]
えっそっから作るの

772 名前:デフォルトの名無しさん mailto:sage [2017/04/09(日) 09:24:07.59 ID:Q8Fz6A4a.net]
>>754
某Web APIを叩いてる

773 名前:デフォルトの名無しさん mailto:sage [2017/04/09(日) 09:43:37.83 ID:T4S+/aed.net]
mscgenをrustで作り直し、、、たかった
画像扱うライブラリで良い感じのものがなくて停滞なう

774 名前:デフォルトの名無しさん mailto:sage [2017/04/09(日) 18:08:30.92 ID:DtNkLoh6.net]
結局でかい口叩いといて誰もRustでまともなもの書けてねえんだろ?
欠陥言語であることの証明だな

775 名前:デフォルトの名無しさん mailto:sage [2017/04/09(日) 19:05:47.56 ID:4Oj8Cnsa.net]
iOS, Androidの共通ライブラリに使ってるわ
Cはイマイチだし、C++じゃ機能不十分で、他新興言語は動きます程度で使えん

776 名前:デフォルトの名無しさん mailto:sage [2017/04/10(月) 08:59:38.76 ID:GDyCY+n8.net]
#[doc(hidden)]をprotectedの代用とする因習

777 名前:デフォルトの名無しさん mailto:sage [2017/04/10(月) 16:20:24.40 ID:RqOHyrbz.net]
pub(restricted)で代用できないのか

778 名前:デフォルトの名無しさん mailto:sage [2017/04/11(火) 02:06:18.61 ID:hFdmRMY+.net]
Rustの萌えマスコットキャラはまだかい?

779 名前:デフォルトの名無しさん mailto:sage [2017/04/11(火) 05:26:24.28 ID:YGNFjvB7.net]
Ferrisがいるじゃない
www.rustacean.net/assets/rustacean-orig-noshadow.png



780 名前:デフォルトの名無しさん mailto:sage [2017/04/11(火) 18:18:05.18 ID:XPIrDgkS.net]
カニなのには意味あるの?

781 名前:デフォルトの名無しさん mailto:sage [2017/04/11(火) 18:21:50.61 ID:XPIrDgkS.net]
crustacianか

782 名前:デフォルトの名無しさん mailto:sage [2017/04/11(火) 21:57:25.49 ID:yg0Uq9Gu.net]
tree構造作るのがほんと厄介なんだけど、どうにかやりようあるの?

https://github.com/SimonSapin/rust-forest
https://github.com/saschagrunert/indextree

783 名前:デフォルトの名無しさん mailto:sage [2017/04/12(水) 06:31:23.82 ID:zsOpQD26.net]
厄介なりにできてるんならやりようは存在してるんでないの
個人的にはDOM(Tree Object)は所有権を複数者に要求するRustに合わない構造だと思ってるから使わないけど

784 名前:デフォルトの名無しさん mailto:sage [2017/04/12(水) 16:58:14.00 ID:JkQ01euR.net]
物理的にツリーなものでもデータ構造はツリーにしなきゃいいのかなぁ

785 名前:デフォルトの名無しさん mailto:sage [2017/04/12(水) 20:11:46.82 ID:UgFGccH2.net]
Servoの中の人みたいにDOMでないと色々困るならDOMを作るけど、JSON, XMLをパースして操作するだけならツリーは辛い
ツリー操作に適した他言語を使う方が幸せじゃないかな、DOM操作は苦行だけど他のメリットを鑑みてRustを使うのも良いよね

786 名前:デフォルトの名無しさん mailto:sage [2017/04/13(木) 13:41:01.33 ID:eTJjP5LI.net]
先生、rustが使いたいです、、

787 名前:デフォルトの名無しさん [2017/04/13(木) 23:00:29.13 ID:DmaD3ZLh.net]
>>768
ツリーさわるのに直接、arenaとancestor意識しないといけないのか。
まあ、俺もこんなんだけど。
最近、tracing gc使ったら簡単なんじゃないかと思ってる。

stntax treeみたいに事前に全部の構造わからないとrustはつらいね。

788 名前:デフォルトの名無しさん mailto:sage [2017/04/14(金) 18:06:23.00 ID:4vbREvue.net]
一応日本のコミュニティーらしきものあるんだね

789 名前:デフォルトの名無しさん mailto:sage [2017/04/14(金) 23:18:47.00 ID:l3/xlJJH.net]
英語話せない原人特有文化



790 名前:デフォルトの名無しさん mailto:sage [2017/04/15(土) 11:23:25.59 ID:7FkW2H/i.net]
あなたも原人なんでしょ?

791 名前:デフォルトの名無しさん mailto:sage [2017/04/17(月) 10:19:07.90 ID:Vk3u//l+.net]
Rustなんてクソステマ言語使ってる時点でみんな等しく原人だから安心しろ

792 名前:デフォルトの名無しさん mailto:sage [2017/04/17(月) 12:47:03.78 ID:2mekMRo4.net]
>>777
それはおかしい。
>>775>>776は英語を話せない人という文脈で原人という語を用いている。
したがって、rust使用者であることと原人であることの間に関連はない。

793 名前:デフォルトの名無しさん mailto:sage [2017/04/17(月) 13:27:03.58 ID:Vk3u//l+.net]
俺から見ればクソステマ言語Rust使ってる時点で原人なの。
原人同士が英語喋れるかどうかで原人認定(原人視点)してるのが滑稽なの。
おーけー?

794 名前:デフォルトの名無しさん mailto:sage [2017/04/17(月) 13:45:45.69 ID:kHe1qBP+.net]
完全に基地外でワロタ

795 名前:デフォルトの名無しさん mailto:sage [2017/04/17(月) 14:00:48.95 ID:NJsGU ]
[ここ壊れてます]

796 名前:HFQ.net mailto: まあ>>775の"原人"の定義を採用しないとするのなら論理的に妥当っちゃ妥当 []
[ここ壊れてます]

797 名前:デフォルトの名無しさん [2017/04/17(月) 21:43:12.25 ID:5RBrgFiu.net]
昔pc原人てゲームあったよな?

798 名前:デフォルトの名無しさん mailto:sage [2017/04/18(火) 14:25:16.72 ID:avtppHhA.net]
RLS now available on nightly
www.jonathanturner.org/2017/04/rls-now-in-nightly.md.html

799 名前:デフォルトの名無しさん mailto:sage [2017/04/18(火) 23:28:49.61 ID:isZ+RH85.net]
リリースニュースをコピペする奴がずっといるけど、それをどうしたいのか・・・
わざわざ過疎スレに貼らなくても、知りたい奴は普通に一次情報を追ってると思うよ



800 名前:デフォルトの名無しさん mailto:sage [2017/04/19(水) 06:39:40.15 ID:iVXI/rsk.net]
>>784
お前のコメントよりは役に立つ

801 名前:デフォルトの名無しさん mailto:sage [2017/04/19(水) 17:45:36.14 ID:T5JpYnfb.net]
一次情報追ってるやつからすると単純にマルチポストなんだよな
使った感想があるわけでもなし、タイトルとURLじゃなんの役にも立たん

802 名前:デフォルトの名無しさん mailto:sage [2017/04/19(水) 18:55:17.11 ID:6t85zhKK.net]
Twitterの@rustlangとか雑多な情報が多いから、めぼしい情報を並べてくれるだけども十分

803 名前:デフォルトの名無しさん mailto:sage [2017/04/19(水) 23:28:25.20 ID:QKWiY+xs.net]
1次情報追ってる奴よりそうじゃない奴の方が多いんだからいいんじゃね
何も書き込み無いスレだとユーザ居ない様に見えるし

ここ2chだよ?

804 名前:デフォルトの名無しさん mailto:sage [2017/04/20(木) 00:46:43.55 ID:Vb04xDKl.net]
ここtwitterじゃないよ?

805 名前:デフォルトの名無しさん mailto:sage [2017/04/20(木) 08:56:40.43 ID:Cjpsv+ZG.net]
>>784
しね

806 名前:デフォルトの名無しさん mailto:sage [2017/04/20(木) 09:02:46.45 ID:5tsEknBd.net]
>>782
高橋せんせい、20年遅れのステマですか?

807 名前:デフォルトの名無しさん mailto:sage [2017/04/20(木) 16:14:47.79 ID:zhxiAG0o.net]
>>768-773
ツリーとグラフを作る記事があった。

グラフとアリーナ型メモリアロケータ
hazama1616.blogspot.jp/2016/03/crust-11.html
Rust でグラフ構造や木構造を作る
agtn.hatenablog.com/entry/2017/01/16/151745

808 名前:デフォルトの名無しさん mailto:sage [2017/04/21(金) 08:10:49.54 ID:OiVWjQVQ.net]
いつの間にかSerdeが1.0になっててビビる
Lifetimeを用いたzero-copy deserializingとか胸が熱いな
https://github.com/serde-rs/serde/releases/tag/v1.0.0

809 名前:デフォルトの名無しさん mailto:sage [2017/04/23(日) 17:11:05.67 ID:H4akHqoq.net]
この言語, 普及すると思いますか?
自分は Scala と C++ やってたんですが、そういうバックグラウンドがない人がすぐ理解できるとは思えないのですが。



810 名前:デフォルトの名無しさん mailto:sage [2017/04/24(月) 00:17:32.58 ID:7O6+7hGx.net]
>>792
arena使うとarena解放するまでnode残るから無駄にメモリ使うのよ。

811 名前:デフォルトの名無しさん [2017/04/24(月) 00:32:48.88 ID:6h5JoTUe.net]
>>794
キラーアプリが出ればねぇ。
ちなみに俺は力不足・勉強不足でrustは使えない。
それこそ広まってからもっと真面目に勉強しようかなぁってところ。
でもほんと期待はしてる。

812 名前:デフォルトの名無しさん mailto:sage [2017/04/24(月) 01:17:18.29 ID:iqgOzto7.net]
Firefoxがキラーアプリなんじゃないの?

813 名前:デフォルトの名無しさん mailto:sage [2017/04/24(月) 02:32:17.00 ID:Uhs7fpwP.net]
ripgrepって高速grepがあるぞ
なお、早い理由のrust正規表現の中の人はGoogle製C++ Libの模様

dockerがgoで出来てても別段当時流行なかったし、rust適所を求めたい所存

814 名前:デフォルトの名無しさん mailto:sage [2017/04/24(月) 10:05:04.89 ID:Ce/YXV/H.net]
grepがキラーアプリ…

815 名前:デフォルトの名無しさん [2017/04/24(月) 10:45:03.83 ID:wWNCwbd3.net]
必要なのはキラーアプリではなくキラーフレームワークでしょ、Rubyにお

816 名前:けるRuby on railsみたいな。例えば色んな意味で扱いやすく高パフォーマンスなRust製ゲームエンジンとか出たら流行るかも? []
[ここ壊れてます]

817 名前:デフォルトの名無しさん mailto:sage [2017/04/24(月) 11:21:49.38 ID:jmbJ/xCv.net]
Web関連ではDieselがなかなか良さげなんだけど、MVCのMだけ優秀でも仕方ないしなあ……

818 名前:デフォルトの名無しさん mailto:sage [2017/04/24(月) 12:54:52.94 ID:7aHDyTtY.net]
ブラウザはメモリバグらせるとすぐexploitされる魔境だからRustになったけど他にそんなところってないだろうし

819 名前:デフォルトの名無しさん mailto:sage [2017/04/24(月) 13:51:36.49 ID:37xJWuQr.net]
rustで速く書くのってむずいよね



820 名前:デフォルトの名無しさん mailto:sage [2017/04/24(月) 14:41:05.37 ID:H47kwRKj.net]
>>802
ブラウザに限らず不特定多数と通信するソフトウェアは攻撃される。
サーバソフトウェアやP2PソフトウェアもRustの安全性が役立つと思う。

821 名前:デフォルトの名無しさん mailto:sage [2017/04/24(月) 14:44:54.65 ID:YsR3dDij.net]
てとはいえ大抵は「GCで良くね?」ってなるしなあ……
ブラウザはまさにそのGCと相性の悪い分野だからRustになるわけだけど

822 名前:デフォルトの名無しさん [2017/04/24(月) 16:32:01.09 ID:tbvSkh68.net]
言語の特性は組み込みに最適ではあるんだけど、動きが鈍い業界だからねぇ
IoT絡みでスタートアップ企業が開発言語として採用とかあればもしかしたら一部ではやるかも。

823 名前:デフォルトの名無しさん mailto:sage [2017/04/24(月) 17:56:13.42 ID:RtQoS8U2.net]
そういや、ライブラリとしてGCを提供する話はどうなったの?

824 名前:デフォルトの名無しさん mailto:sage [2017/04/24(月) 18:20:04.27 ID:A5CADFQV.net]
機械学習で流行んないかな?
と思ったら leaf はもう開発停止してた。残念…

825 名前:デフォルトの名無しさん mailto:sage [2017/04/24(月) 23:01:27.18 ID:Af0Uvivz.net]
regionによるメモリ管理自体が「tracing gcと併用しましょう」で結論出てるけど、
real-time javaくらいでしか実用化されてない代物だから
rust特有のメリットというと低レベルでも抽象度の高く書ける事と、
data raceをコンパイラが防いでくれることじゃない?

ただ、interior mutabilityは自分で面倒見るのと、
実際にはsemaphoreとRWLockだけじゃ使い物にならなくて
non-blockingやconcurent collectionやfuture・fork/join、
SIMDを利用しないといけないけどrustはライブラリ弱いのが弱点。

datetimeみたいな何やっても揉めるようなライブラリはいらないけど、
io streamやtext encode/decodeの様な汎用のもないから他人のgithubみてると再開発しまくってる。
こういう標準ライブラリにあるようなものすらなくていいとなるとやっぱり組み込みだよ。

bare metalやろうぜ!

826 名前:デフォルトの名無しさん mailto:sage [2017/04/25(火) 00:11:02.98 ID:Pw354+ah.net]
>>754
ファミコンエミュ

827 名前:デフォルトの名無しさん mailto:sage [2017/04/25(火) 01:15:27.81 ID:82uAhcwa.net]
>>801
Rocket良さそうじゃん
まだまだ発展途上だけど

828 名前:デフォルトの名無しさん mailto:sage [2017/04/26(水) 05:04:32.67 ID:o3HY2tae.net]
何も作らず競技プログラミング

829 名前:デフォルトの名無しさん mailto:sage [2017/04/26(水) 07:52:50.89 ID:kOLZL9DX.net]
ツリーで悩み続け、アリーナでツリーしてたけど、Rc<RefCell>にしたらかなり楽になった。(ボローチェッカー的に)
でも下手したら実行時に死ぬなんて、全然安全な言語じゃなくなってるのつらい



830 名前:デフォルトの名無しさん mailto:sage [2017/04/26(水) 09:58:03.56 ID:vpLTFLqL.net]
>>813
コンパイルは目的じゃなくて手段だぞ
取り違えないように注意だ

831 名前:デフォルトの名無しさん mailto:sage [2017/04/26(水) 14:03:28.41 ID:JVsqiSk/.net]
実行時に不具合起こすくらいならコンパイルで止められた方がマシ

832 名前:デフォルトの名無しさん mailto:sage [2017/04/27(木) 13:02:01.11 ID:UU6zBZQ+.net]
Rust向きのデータ構造を学べそうな本

833 名前:が発売される。
ただしコードがSMLなのでSMLを読める必要がある。

純粋関数型データ構造
https://www.amazon.co.jp/dp/4048930567
"Purely Functional Data Structures" の邦訳『純粋関数型データ構造』が発売されます
http://d.hatena.ne.jp/ku-ma-me/20170316/p1
関数型言語での最適を考える:純粋関数型データ構造、Chris Okasaki
http://www.injpok.tokyo/4048930567-functional-data-structure
[]
[ここ壊れてます]

834 名前:デフォルトの名無しさん mailto:sage [2017/04/27(木) 14:46:59.61 ID:1aP1zib4.net]
Rustで面倒なのは所有権が曖昧だったり循環参照の可能性があるようなデータ構造でしょう

その本は、破壊的変更が無いorマイナーな関数型言語で効率の良いデータ構造をどう実現するかっていうのが主題のはず
Rustは破壊的更新もできるしinterior mutabilityもCellやRefCellで実現できるし、逆にGCが無いから対象領域からずれてる
面白い本だけど、Rustに直接役立つかは微妙

835 名前:デフォルトの名無しさん mailto:sage [2017/04/27(木) 17:37:30.60ID:xrM2MxeD.net]
なるほどー
気になってたけど買わんでいいかな

836 名前:デフォルトの名無しさん mailto:sage [2017/04/28(金) 02:50:31.12ID:mEZ3JB/W.net]
Announcing Rust 1.17
https://blog.rust-lang.org/2017/04/27/Rust-1.17.html

837 名前:デフォルトの名無しさん mailto:sage [2017/04/28(金) 07:59:12.67ID:Z9SVt9YO.net]
>>819
くじけないなww
邪魔だからそろそろコテハン名乗れよ

838 名前:デフォルトの名無しさん mailto:sage [2017/04/28(金) 08:13:14.38ID:zzlMZhy4.net]
↑なんなのこの変な人?

839 名前:デフォルトの名無しさん mailto:sage [2017/04/28(金) 09:13:20.43ID:HrVNNKWr.net]
マルチポストがうざい



840 名前:デフォルトの名無しさん mailto:sage [2017/04/28(金) 16:35:55.80ID:QjsjY1pw.net]
わざわざ出張してくるアンチって必ずいるよね

841 名前:デフォルトの名無しさん mailto:sage [2017/04/28(金) 18:50:38.30ID:VS+BUfpC.net]
>>820
しね

842 名前:デフォルトの名無しさん mailto:sage [2017/04/28(金) 19:44:43.43ID:wIDo3kGW.net]
何でお前らはわざわざ構ってちゃんに構っちゃうんだろうね

843 名前:デフォルトの名無しさん mailto:sage [2017/04/28(金) 23:26:08.53ID:7tdFyaEw.net]
Rustの作り手っつーかServoチームがどうやって木構造を実現してるか気になるな。

木が作れない言語とかCの置き換えになる訳がないから、どっかにカラクリがありそう。

844 名前:デフォルトの名無しさん [2017/04/28(金) 23:29:09.90ID:EB1hHvLp.net]
pfdsはモナドとかそっちの話
ML系はtracing gc載ってるもんだと
考えていいからrustで苦労する部分は関係ない。

845 名前:デフォルトの名無しさん mailto:sage [2017/04/28(金) 23:54:26.38ID:7tdFyaEw.net]
つーかRustの中の人が「Data Structure in Rust」みたいな記事書けば解決する気がした。

846 名前:デフォルトの名無しさん [2017/04/29(土) 01:08:36.27ID:JJtwNZEl.net]
Haskellみたいなイミュータブルなツリーを作ればいいんじゃないの?

847 名前:デフォルトの名無しさん mailto:sage [2017/04/29(土) 02:09:39.72ID:rB0Fvmgg.net]
>>828
データ構造に関わるRust言語仕様については詳しい記事がある。
でも>>203によるとRustのデータ構造は発展途上だから
「Data Structure in Rust」は記事よりWikiの方が良いと思う。

Interior mutability in Rust: what, why, how?
https://ricardomartins.cc/2016/06/08/interior-mutability

848 名前:デフォルトの名無しさん mailto:sage [2017/04/29(土) 06:52:18.73ID:gpBNKKlw.net]
話題ないからって荒れてないで誰か>>819に構えよ
ずっとコピペしてんだぞ...

849 名前:デフォルトの名無しさん mailto:sage [2017/04/29(土) 06:54:38.46ID:itnDcJNc.net]
時報みたいなもんだと思ってるし、特に必要ないけど別段いらないと騒ぐほどのものでもないし



850 名前:デフォルトの名無しさん mailto:sage [2017/04/29(土) 07:23:49.26ID:ml8UsgdM.net]
SPAMとしても頻度的にたかが知れてるし

851 名前:デフォルトの名無しさん mailto:sage [2017/04/29(土) 08:21:53.98ID:rB0Fvmgg.net]
>>831
Rust blogは巡回してないから新バージョンを知らせてくれるのはありがたい。
でも新バージョンに関するコメントを読みたければredditも読もう。
Cargoの新機能をコントリビュートした人が来ている。

The Rust Programming Language
https://www.reddit.com/r/rust/
Announcing Rust 1.17!!
https://www.reddit.com/r/rust/comments/67x46l/announcing_rust_117/
Announcing Rust 1.17
https://www.reddit.com/r/programming/comments/67x48c/announcing_rust_117/

852 名前:デフォルトの名無しさん mailto:sage [2017/04/29(土) 08:59:42.66ID:odlCpz4e.net]
>>831
メンヘラ臭い拒否反応だな。

853 名前:デフォルトの名無しさん mailto:sage [2017/04/29(土) 09:25:50.46ID:4GuMMMYu.net]
"foo" + "bar"
はOKな糖衣構文にしちゃえばいいのに

854 名前:デフォルトの名無しさん mailto:sage [2017/04/29(土) 14:34:05.02ID:TTyY7fIa.net]
時報とは言い得て妙だな。6週間のリリースサイクルだし。

855 名前:デフォルトの名無しさん [2017/04/29(土) 16:57:12.44ID:S/2IADGO.net]
>>836
それは意見がわかれるところじゃね?
暗黙の型変換は、知っている人には便利だけど、知らない人には解析困難な不具合の元になるじゃん?

856 名前:デフォルトの名無しさん mailto:sage [2017/04/29(土) 16:59:38.96ID:G5FLqmyn.net]
型変換じゃなくて、リテラルに限ってはconcat!で置き換えるという意味じゃない?
どちらにせよ混乱の元には違いないが

857 名前:デフォルトの名無しさん mailto:sage [2017/04/29(土) 17:20:18.00ID:wKCke3eM.net]
>>838
Scalaとかまさにその辺(implicit)で死に体だな。
rustもderefで似たようなことになるけど。

858 名前:デフォルトの名無しさん mailto:sage [2017/04/29(土) 17:51:01.81ID:KCJQ+KNC.net]
前はderef先のメソッドがドキュメントになかったから結構阿鼻叫喚だった
Vecのiterってどこに定義されているのか分からなくて悩んだ記憶がある

859 名前:デフォルトの名無しさん mailto:sage [2017/04/29(土) 22:41:34.26ID:XAi4G4Te.net]
rustdoc使いもんにならんから。だいぶマシになったけど。



860 名前:デフォルトの名無しさん mailto:sage [2017/04/29(土) 22:48:33.12ID:kikbE+mq.net]
ドキュメントに嘘書いてる言語って早晩滅びる印象があるから
言語に機能足すより重要だと思うんでなんとかして欲しいところではある。

861 名前:デフォルトの名無しさん mailto:sage [2017/04/30(日) 14:13:59.03ID:dMKT6vJn.net]
今のCargoの仕様だと、serdeとserde_deriveに依存する"serde" featureを作る、みたいなことが出来なくてクソ
Issue rust-lang/cargo#1286は放置されているし

862 名前:デフォルトの名無しさん mailto:sage [2017/04/30(日) 15:06:58.47ID:zu6P/YtU.net]
自分でPR作っていいのよ?

863 名前:デフォルトの名無しさん mailto:sage [2017/04/30(日) 15:10:11.47ID:dMKT6vJn.net]
Pre-RFCレベルで議論が止まってるのにPRを出しても、ほら、アレじゃん?

864 名前:デフォルトの名無しさん mailto:sage [2017/04/30(日) 15:25:28.02ID:yC307k3w.net]
Rustという存在がそもそもクソなのにたかが1feature取り上げてクソっていうの滑稽だと思いません?

865 名前:デフォルトの名無しさん mailto:sage [2017/04/30(日) 15:30:18.21ID:dMKT6vJn.net]
げ、召喚しちゃった

866 名前:デフォルトの名無しさん mailto:sage [2017/04/30(日) 15:36:13.13ID:yC307k3w.net]
>>848
あんたも本当はRustなんて使い物にならないって分かってるんだろ?

867 名前:デフォルトの名無しさん mailto:sage [2017/04/30(日) 16:10:58.91ID:zu6P/YtU.net]
議論進んでないけどissueではalexもいいじゃんって言ってるし、コードPR出したら話進むんでね
実装難易度を計ってないから実装大変なら議論をせっつくしかないけども

868 名前:デフォルトの名無しさん mailto:sage [2017/04/30(日) 21:51:06.29ID:cg8WUYRD.net]
2017年のロードマップ見る感じ、
今はどっちかっていうと敷居下げるための開発がメインになってて、
細かい融通の効かないところを直す作業に回してるリソースは少なそうな印象。

869 名前:デフォルトの名無しさん mailto:sage [2017/05/01(月) 11:29:01.79ID:hzoMRY/L.net]
裾野広げようとしたり敷居下げたりするとろくなことにならない



870 名前:デフォルトの名無しさん mailto:sage [2017/05/01(月) 13:37:42.52ID:DeKBxqzS.net]
一昔前は閉鎖的、独善的にOSS作って製大

871 名前:にやらかしたPJが多かったし、裾野を広げてくれた方が良いよ
GNU周りなんて焼け野原ってレベルじゃねーぞ
[]
[ここ壊れてます]

872 名前:デフォルトの名無しさん mailto:sage [2017/05/01(月) 14:12:45.45ID:KtAp36Sz.net]
Guileはmakeやgdbに組み込まれたしRは大成功じゃん__

873 名前:デフォルトの名無しさん mailto:sage [2017/05/01(月) 14:53:36.49ID:Hs34Q6fD.net]
裾野広げると大火傷するのはその通りだが、敷居下げるのは必要じゃないのか?元が高すぎるって意味で。
そのためのLanguage Server Protocolだったり、コンパイルメッセージの改善だったりだと思ってるが。

874 名前:デフォルトの名無しさん [2017/05/01(月) 23:46:06.84ID:ZiZ/DZmA.net]
rustcのエラーメッセージは親切すぎてjsonフォーマットで取得したときの短い説明くらいでもいいと思う。
javacの仕様に忠実で簡潔なメッセージみたいなのが仕様覚えた時最強よ

875 名前:デフォルトの名無しさん [2017/05/02(火) 00:05:58.80ID:Wqf9gHHS.net]
プログラミング業務に従事する人の全てがプログラミング得意ではないってことだから最大の安全策(ヘボが1人でもいたら死ぬので)

876 名前:デフォルトの名無しさん mailto:sage [2017/05/02(火) 01:06:19.38ID:C2K+k/F2.net]
今のメッセージはだらだらと出力垂れ流し過ぎで
注目してほしい所がどこか分かりづらいから
コード書けない人は元から解読不能じゃないの?

877 名前:デフォルトの名無しさん mailto:sage [2017/05/02(火) 06:32:24.31ID:hjAzwlgs.net]
rustc --verbose-error
みたいなオプション付与するFR出そう(迷走感

878 名前:デフォルトの名無しさん mailto:sage [2017/05/02(火) 18:52:28.66ID:ul1GfwIs.net]
error:の行だけgrepすれば

879 名前:デフォルトの名無しさん mailto:sage [2017/05/03(水) 18:44:17.67ID:joqUnMHM.net]
リリースノートにある Stabilized APIs ってどういう意味?安定化?

API仕様は固定化されて、今後変更ありませんってこと?
それとも実装が改善されて、より安定しましたよってこと?



880 名前:デフォルトの名無しさん mailto:sage [2017/05/03(水) 18:47:35.13ID:joqUnMHM.net]
あ、失礼
どうも単に「そのバージョンから追加されましたよ」って感じぽいね

881 名前:デフォルトの名無しさん mailto:sage [2017/05/03(水) 19:08:10.33ID:SEHmhXUn.net]
nightlyで実装しててstableに入った感じ?
破壊更新ないとは言え、変わる/代替するAPIはあるんだろうねぇ

882 名前:デフォルトの名無しさん mailto:sage [2017/05/03(水) 19:44:38.59ID:joqUnMHM.net]
> nightlyで実装しててstableに入った感じ?

[This is a nightly-only experimental API.]からのパターンもあるのかな?
[Unstable]が外れたとき Stabilized API ではあるみたい

例:
1.14から[Unstable]として存在してて
1.16からStabilized APIとされたstr::repeat

https://doc.rust-lang.org/1.14.0/std/primitive.str.html#method.repeat
fn repeat(&self, n: usize) -> String
Unstable (repeat_str #37079)
Create a String by repeating a string n times.



https://doc.rust-lang.org/std/primitive.str.html#method.repeat
fn repeat(&self, n: usize) -> String
1.16.0
Create a String by repeating a string n times.

883 名前:デフォルトの名無しさん mailto:sage [2017/05/03(水) 22:57:01.88ID:K7D8UWDQ.net]
unstableだとAPIが変更される可能性があって、nightlyのrustcで明示的にfeature宣言しないと使えない、つまり、unstableなの覚悟して使うことしかできない
stableになるとnightly以外でも何もしなくても使える、かつ、rust 1.xの間は互換性が保たれることが保証されてる

884 名前:デフォルトの名無しさん mailto:sage [2017/05/03(水) 22:58:45.11ID:K7D8UWDQ.net]
新しいAPIはunstableで入れていろいろな使い方を試し すことでAPIの問題を洗い出す
問題がなさそうならstableにする、と言う流れでAPIは追加されていく

885 名前:デフォルトの名無しさん mailto:sage [2017/05/03(水) 23:39:38.56ID:pt3eTQQ5.net]
変更されうるのだとしたらもはや"stable"じゃないわな

886 名前:デフォルトの名無しさん [2017/05/03(水) 23:53:59.46ID:+mfvcDBb.net]
>>862
> 「そのバージョンから追加されましたよ」
追加されるタイミングはnightlyだからそれはない。
unstable feature-gateいらなくなったって意味だと思う。 []
[ここ壊れてます]

888 名前:デフォルトの名無しさん mailto:sage [2017/05/04(木) 06:16:36.53ID:RKPYINUc.net]
破壊的変更に興奮するのはD言語erだけだしな。

889 名前:デフォルトの名無しさん mailto:sage [2017/05/04(木) 15:59:11.46ID:pmL645Ea.net]
言語仕様を破壊的に変更します



890 名前:デフォルトの名無しさん mailto:sage [2017/05/05(金) 20:57:36.19ID:evgWhU4H.net]
OpenGLまわり調べたんだけど、gliumという有力なやつが死んでて悲惨な感じ。

891 名前:デフォルトの名無しさん mailto:sage [2017/05/05(金) 23:50:31.44ID:YwW9QOYO.net]
お前らもちゃんと回答しとけよな
Launching the 2017 State of Rust Survey - The Rust Programming Language Blog
https://blog.rust-lang.org/2017/05/03/survey.html

892 名前:デフォルトの名無しさん mailto:sage [2017/05/06(土) 00:09:45.35ID:ia8ugx7T.net]
>>871
古い。glとglutin使え

893 名前:デフォルトの名無しさん [2017/05/06(土) 10:48:00.25ID:RxOQwEqu.net]
>>865-866
などと油断しているとマナーの悪いライブラリが現れて既成事実化パンチを食らわす

894 名前:デフォルトの名無しさん mailto:sage [2017/05/06(土) 10:56:40.09ID:KOSYyPxU.net]
>>873
glutinも同じ作者だからしんでんじゃないの?

895 名前:デフォルトの名無しさん [2017/05/06(土) 20:14:14.95ID:2tqhhaHc.net]
[u8](ただの数値の配列)とバイナリデータ(画像とか動画とか)で別の処理をしたいのですが、バイナリ型みたいなものってないのでしょうか?

896 名前:デフォルトの名無しさん mailto:sage [2017/05/06(土) 22:37:18.12ID:MU54dFC0.net]
>>876
rustは直接Read実装する設計だからStreamの概念そのものがないからない。
当然、その設計ではダメだからそこら辺やってるのはあちこちで車輪量産の重複祭りの無駄まみれ。

897 名前:デフォルトの名無しさん mailto:sage [2017/05/06(土) 23:44:29.00ID:btijA/Fa.net]
これひとつとってもいかにRustが使えないかわかってくれるかな

898 名前:876 [2017/05/07(日) 00:00:41.87ID:8fnm7svP.net]
>>877
えぇ…ないんですか…

899 名前:デフォルトの名無しさん mailto:sage [2017/05/07(日) 00:53:05.68ID:/2PQHse0.net]
[u8]とバイナリって何が違うの?(無知)



900 名前:デフォルトの名無しさん mailto:sage [2017/05/07(日) 01:39:18.20ID:Qw7Hyr2c.net]
>>876
struct Binary(Vec<u8>) みたいに強いtypedefするのが良いと思う

901 名前:876 [2017/05/07(日) 01:39:29.33ID:8fnm7svP.net]
MessagePackみたいなやつを作ろうと思っているのですが、例えばMessagePackの場合こんなふうになると思うのですが
[1u8].to_msgpack() -> 0x91|0xcc|0x01
binary.to_msgpack() -> 0xc4|0xcc|0x01
こんな感じで出力するデータ(型情報の部分)を変えたいんです。
[u8]をラップする型を作るしかないのでしょうか?

902 名前:876 [2017/05/07(日) 01:43:28.96ID:8fnm7svP.net]
>>881
やっぱりそうなってしまいますか…
標準ライブラリとかで代わりになる型とかがあれば良かったのですが…

903 名前:876 [2017/05/07(日) 01:46:59.72ID:8fnm7svP.net]
あ、>>882の0xc4|0xcc|0x01は0xc4|0x0f|0xcc|0x01の間違いです

904 名前:876 [2017/05/07(日) 01:48:17.83ID:8fnm7svP.net]
また間違えた…
0xc4|0x01|0xcc|0x01です…

905 名前:デフォルトの名無しさん mailto:sage [2017/05/07(日) 02:03:35.41ID:/2PQHse0.net]
>>881の言う通り、newtype patternの典型的な適用対象だな

906 名前:876 [2017/05/07(日) 02:55:21.52ID:8fnm7svP.net]
>>881の方法でやってみます!皆さんありがとうございました!

907 名前:876 [2017/05/07(日) 03:06:56.11ID:8fnm7svP.net]
何度もすみません、struct Binary(Vec<u8>)をVec<u8>に戻すにはどうやればよいのでしょうか?

908 名前:876 [2017/05/07(日) 03:14:36.88ID:8fnm7svP.net]
std::mem::transmuteを使ったら変換できたのですが、unsafeを使わずに変換できる別の方法はあるのでしょうか?

909 名前:デフォルトの名無しさん mailto:sage [2017/05/07(日) 03:22:21.66ID:/2PQHse0.net]
l



910 名前:et bin = Binary(vec);

から戻すには、

let Binary(vec) = bin;
または
let vec = bin.0;

後者のletはなくても良い
https://doc.rust-lang.org/book/structs.html#tuple-structs
[]
[ここ壊れてます]

911 名前:876 [2017/05/07(日) 03:52:33.92ID:8fnm7svP.net]
>>890
ありがとうございます!タプルだったのですね!

912 名前:デフォルトの名無しさん mailto:sage [2017/05/07(日) 11:17:30.56ID:VPDa5WUk.net]
https://blog.rust-lang.org/2017/05/05/libz-blitz.html
「電池同梱はめんどくさいから代わりにAPIガイドライン作るぜ!お前らの書いたもの公式に認めて欲しいならこの通りに書けよ!」だってよ。
ほんとモジカスは傲慢の極みだな

913 名前:デフォルトの名無しさん mailto:sage [2017/05/07(日) 11:22:13.82ID:14wasV+G.net]
普通だろ。

914 名前:デフォルトの名無しさん mailto:sage [2017/05/07(日) 11:34:54.97ID:VPDa5WUk.net]
>>893
え、どこが?
最近の言語では当たり前になった電池同梱放り投げて自分でライブラリ書かず、
あまつさえ人に丸投げしておいて、その人の書いたものに文句つけるって最高に傲慢だろ。
Google(Go)だってそこまで傲慢なことしてねえよ。

そんで成果はSerdeみたく背乗りするんだろ?
ただのショバ代やみかじめ料で懐肥やすヤクザじゃねえか。

915 名前:デフォルトの名無しさん mailto:sage [2017/05/07(日) 11:45:28.65ID:VPDa5WUk.net]
あーでもこれ元々のモジカスの商売のやり方だし、いつも通りっていえばいつも通りか。

916 名前:デフォルトの名無しさん mailto:sage [2017/05/07(日) 12:04:33.68ID:ddnrmDhK.net]
Google社員はお帰りください

917 名前:デフォルトの名無しさん mailto:sage [2017/05/07(日) 12:29:03.87ID:0mnoYXCa.net]
電池てなに

918 名前:デフォルトの名無しさん mailto:sage [2017/05/07(日) 12:39:58.75ID:/2PQHse0.net]
Serdeといえば、dtolnayがlibs teamに入るってよ
https://internals.rust-lang.org/t/announcement-david-tolnay-joining-the-libs-team/5186

以前からlibs teamっぽいことしてるなとは思っていたが。これとか
https://github.com/rust-lang-nursery/lazy-static.rs/issues/70

919 名前:デフォルトの名無しさん mailto:sage [2017/05/07(日) 13:41:03.47ID:yFu/STaX.net]
人様の言語にただ乗りしてる奴がなんか言ってら



920 名前:デフォルトの名無しさん mailto:sage [2017/05/07(日) 13:41:52.62ID:Ca8+Q/ub.net]
>>897
Rustを持て囃してるバカって電池同梱すらしらないで言語語ってんのか

921 名前:デフォルトの名無しさん mailto:sage [2017/05/07(日) 13:47:52.30ID:zdh+Rbcj.net]
え、Rustって電池同梱じゃないの?ゴミじゃん

922 名前:デフォルトの名無しさん mailto:sage [2017/05/07(日) 14:04:46.63ID:T2T4uK8j.net]
まさかRustがLLだとでも言うつもりか?

923 名前:デフォルトの名無しさん mailto:sage [2017/05/07(日) 14:10:00.16ID:0LwsXYr3.net]
Goはコンパイル言語だけど電池同梱に近いよね。

924 名前:デフォルトの名無しさん mailto:sage [2017/05/07(日) 14:31:33.96ID:sD8ZUjOP.net]
(電池ください)

925 名前:デフォルトの名無しさん mailto:sage [2017/05/07(日) 14:38:38.33ID:4a4zif1L.net]
>>904
Rust team「自分で作れ」

926 名前:デフォルトの名無しさん mailto:sage [2017/05/07(日) 15:35:02.86ID:VGI2seLS.net]
最近はなんでも充電池内蔵が主流になったから、買ってきたはいいけど乾電池切らしてて今すぐ使いたいのに使えねえええええええ、っていうアレは今どきの若者には例え話として通じにくいのかもしれない

927 名前:デフォルトの名無しさん mailto:sage [2017/05/07(日) 15:42:01.72ID:f0nSghKy.net]
それが語源なのか
古いな

928 名前:デフォルトの名無しさん mailto:sage [2017/05/07(日) 16:13:07.60ID:sZJnoCfs.net]
「電池付属してなかったから星1つ」なんてレビューはAmazonでたまに見る。

929 名前:デフォルトの名無しさん mailto:sage [2017/05/07(日) 17:26:47.52ID:4ZC1qsBr.net]
今時電池ついて言語使うのなんて言語マニアか通常では考えられない程の最適化が必要かつ、自分で出来る人だけ
本当にCの



930 名前:代替なんだな []
[ここ壊れてます]

931 名前:デフォルトの名無しさん mailto:sage [2017/05/07(日) 19:00:23.38ID:6aDVTTpe.net]
>>892
つーかこのリンク先読んだら「電池同梱はめんどくさいから代わりにAPIガイドライン作るぜ!」なんて言ってない件。

- 使いやすい&見つけやすいライブラリは必要だが、それを標準ライブラリにしてしまうと言語が硬直化するよ(Scalaが昔はバージョンが上がるたびに標準ライブラリの破壊的変更でコードが壊れるとか言われてたなそういえば)
- なのでRustチーム内でライブラリチーム立ち上げて、それ系のライブラリをcargoのcrateとして提供するプロジェクトやるよ(crateなら言語のバージョンとライブラリのバージョンを独立に運用できる)
- 同時にAPIのガイドライン作って、標準crate内のライブラリとサードパーティのライブラリの使い勝手を揃えられるようにするよ
- crate cookbookとしてユースケースに対応したドキュメントまとめるよ

「電池同梱はめんどくさいから」なんてどこにも書いてないんですけど?それどころかめっちゃ至れり尽くせりなんですけど?

932 名前:デフォルトの名無しさん mailto:sage [2017/05/07(日) 19:30:33.62ID:/vTxYTBW.net]
意外と大事な話だと思うんだよなこれって

素晴らしい言語だと書きやすくて保守もしやすいやろ?
プログラマの負担が下がってるはずやろ?
標準ライブラリなんてその気になれば
どんどん充実させるくらいわけないはずやろ?

933 名前:デフォルトの名無しさん mailto:sage [2017/05/07(日) 19:31:06.86ID:OLmdvIig.net]
cargoって、依存ライブラリ(の依存ライブラリ)のバージョン指定が衝突したときはどうなるの?

934 名前:デフォルトの名無しさん mailto:sage [2017/05/07(日) 22:54:21.84ID:n+lNXLOL.net]
>>912
同一のバイナリに別々のバージョンが混在することになる
ただしCargo.tomlで同一のlinksキーを持つパッケージ同士は混在させられないという制約があるから、foobar-sysみたいなcrateは別バージョンを混在させることができない
また同一crateの別々のバージョンの型同士の互換性はない(例えばserde 0.9でDeserializeをimplしてもserde 1.0からdeserializeできない)

935 名前:デフォルトの名無しさん mailto:sage [2017/05/08(月) 00:17:48.86ID:j5FwBoSL.net]
>>913
へー、参考になるわ。ありがとう。
C用のリンカが絡んで来ない限りは混在できるって理解でいいのかな?
staticな変数を書き換えてると想定外なことが起きそう

936 名前:デフォルトの名無しさん mailto:sage [2017/05/09(火) 01:43:09.71ID:jo26XFAE.net]
ラスト製看板ソフト is 何?

937 名前:デフォルトの名無しさん mailto:sage [2017/05/10(水) 10:56:13.54ID:0hFJ5UkD.net]
>>915
Servo
Dropboxの内側

この二年間判子でも押してんのかってくらい
これしか出てきてないやで。

938 名前:デフォルトの名無しさん mailto:sage [2017/05/10(水) 11:13:52.88ID:mMhExRU7.net]
まじかよripgrepアンインストールするわ

939 名前:デフォルトの名無しさん mailto:sage [2017/05/10(水) 11:15:57.02ID:0QYEWDu4.net]
rustが出たのってもっと前だろ...
1.0から始めたにわか知識でモノを言うのはどうかと



940 名前:デフォルトの名無しさん [2017/05/10(水) 12:47:54.37ID:nbHcOJ7d.net]
>>917
それって中身c++?

941 名前:デフォルトの名無しさん mailto:sage [2017/05/10(水) 14:46:02.55ID:5JQ8qpGt.net]
>>918
それ1系になってからまともなキラーアプリ出てないことの擁護になってねえぞ。

0系から脈々と続いてるキラーアプリって例えば何だよ

942 名前:デフォルトの名無しさん mailto:sage [2017/05/10(水) 17:37:23.36ID:rVDKC26c.net]
ripgrepの速さの秘密はrust部分に無いって、誰か書いてなかったっけ?

943 名前:デフォルトの名無しさん mailto:sage [2017/05/10(水) 19:19:59.40ID:XATnWRVq.net]
ripgrepの基盤であるregex crateはRE2から一部設計を借りているが実装そのものはpure Rust
そしてそのRE2との比較ベンチマークでは概ね優位な結果を出している
https://github.com/rust-lang/regex/blob/master/bench/log/05/re2-vs-rust
まあこれだって、速さの秘密は設計であってRustではないと言えなくもないが、それを言い始めたらどんなものだってそうなるわけで……

944 名前:デフォルトの名無しさん mailto:sage [2017/05/10(水) 20:29:48.23ID:qFSf2ut1.net]
ripgrepまじはやいな

945 名前:デフォルトの名無しさん mailto:sage [2017/05/10(水) 22:15:45.77ID:vC5mCQJ8.net]
とはいえ導入の手間考えたらag使うわけでな?

946 名前:デフォルトの名無しさん mailto:sage [2017/05/11(木) 00:31:42.38ID:1trPjqZb.net]
配布してるバイナリ使えばよいのでは

947 名前:デフォルトの名無しさん [2017/05/12(金) 22:13:56.60ID:/qNs0s39.net]
ビルドが成功せず困っています。
トレイトをVecに入れることはできないのでしょうか?
よろしくお願い致します。
https://play.rust-lang.org/?gist=71800494b0fd1c3e6e01319033d02ccb&version=stable&backtrace=0

948 名前:デフォルトの名無しさん mailto:sage [2017/05/12(金) 22:24:41.25ID:ePjXpOIy.net]
>>926
ほい
https://play.rust-lang.org/?gist=9322e2e43abda0ffdf9c3622b0458295
TRPLのtrait boundのあたりを再読することを勧める
https://doc.rust-lang.org/book/traits.html

949 名前:926 [2017/05/12(金) 22:41:29.54ID:/qNs0s39.net]
>>927
ありがとうございます!
できるんですね!安心しました!
もう一度読み直してみます!



950 名前:デフォルトの名無しさん mailto:sage [2017/05/13(土) 08:06:40.42ID:xsq9/VMj.net]
>>927
3.19. Traits
https://doc.rust-lang.org/book/traits.html
4.19. トレイト
https://rust-lang-ja.github.io/the-rust-programming-language-ja/1.6/book/traits.html

章番号が違うと思ったら翻訳の方は1章がIntroductionだった。

951 名前:デフォルトの名無しさん [2017/05/14(日) 08:52:33.34ID:fadi1QDK.net]
impl From<_> for XXXを実装した型をimpl From<ここ>に入れたいのですが、どのようにやれば実現できるのでしょうか?
昨日の夜からずっとやっているのですが解決方法が見つからずにいます。
よろしくお願い致します。
https://play.rust-lang.org/?gist=a375fc6be8b1fe372b37b2c6016a8f21&version=stable&backtrace=0

952 名前:930 [2017/05/14(日) 12:26:08.29ID:fadi1QDK.net]
よく考えてみたら>>930でFromを実装しているのはXXXなんだからFrom<ここ>にいれることはできないですよね…

953 名前:デフォルトの名無しさん mailto:sage [2017/05/14(日) 13:36:42.22ID:pJQIemEX.net]
>>930
やりたいのはこんなこと?
https://play.rust-lang.org/?gist=409ea391ea26bedd99815cfd5321f329

954 名前:デフォルトの名無しさん [2017/05/14(日) 13:37:18.02ID:Md4a44U8.net]
>>931
fromの中身をJSON::Array(v)にすれば???=JSONで通るよ
俺も初心者だからよく分かんないけど
enumをコピーしたいんだったら#[derive(Clone)]を使えばいいのかな?

955 名前:デフォルトの名無しさん mailto:sage [2017/05/14(日) 14:39:39.74ID:zrHRjUcE.net]
>>932
T: Cloneは不要
https://play.rust-lang.org/?gist=653a0583d14c167d30db66a8e4c2fb6f
どうせならFromIterator<T>も実装しておくべきかかもな

956 名前:930 [2017/05/14(日) 14:42:29.11ID:fadi1QDK.net]
>>932
ありがとうございます!これです!これがやりたかったんです!
多分できないんだろうなと思って完全に諦めていました!
ありがとうございます!

957 名前:930 [2017/05/14(日) 14:45:46.69ID:fadi1QDK.net]
>>934
Clone無しにできるんですね!ありがとうございます!勉強になります!

958 名前:デフォルトの名無しさん mailto:sage [2017/05/14(日) 14:46:26.59ID:ZMLrc75/.net]
てかserde_jsonで良くね?

959 名前:930 [2017/05/14(日) 15:05:42.81ID:fadi1QDK.net]
>>937
新しいシリアライズフォーマットを作っていたのですがどう実装していいかわからないところがあり、質問する際に回答しやすいかなと思ってJSONにして質問してみました!
serde_jsonは型情報が事前にわかってないとシリアライズ/デシリアライズできないと思い込んでいましたがそんなことないんですね!serde_jsonのソース見てみます!



960 名前:デフォルトの名無しさん mailto:sage [2017/05/17(水) 19:26:14.20ID:Tf+uq8In.net]
cargo-cake - Cargo: packages for Rust
https://crates.io/crates/cargo-cake
>A cake for celebrating Rust's birthday

961 名前:デフォルトの名無しさん mailto:sage [2017/05/17(水) 21:11:51.51ID:bY/Wnlnx.net]
そろそろRustの誕生日なんだっけ?

962 名前:デフォルトの名無しさん mailto:sage [2017/05/18(木) 09:57:29.68ID:pE9H07RL.net]
>>939
一番好きなOSSライセンスで配布されてて、入れねばと思った次第
このライセンス、もっと流行ってほしい

963 名前:デフォルトの名無しさん mailto:sage [2017/05/18(木) 10:06:00.24ID:f88CfZw6.net]
こんなライセンスあるんだ
GPL股間でケツみたいなロゴ

964 名前:デフォルトの名無しさん mailto:sage [2017/05/18(木) 19:45:14.25ID:1qJaUFOe.net]
WTFって what the fuck かよって笑ったらホントにそうだった。

965 名前:デフォルトの名無しさん mailto:sage [2017/05/18(木) 19:52:14.49ID:KhU24P3y.net]
NYSL(煮るなり焼くなり好きにしろライセンス)てのもあったなー

966 名前:デフォルトの名無しさん [2017/05/18(木) 19:53:40.57ID:/+P5IoOC.net]
夏かC

967 名前:デフォルトの名無しさん mailto:sage [2017/05/18(木) 20:36:37.70ID:38KyjAHn.net]
crate見てると、MITとApache-2.0のデュアルライセンスが多いね
なんか理由あるのかな? 単に他の人がそうしてるから?

ほかの言語のライブラリと比べると、BSDライセンスやGPLがもっと多くても良さそうな気がするんだけど

968 名前:デフォルトの名無しさん mailto:sage [2017/05/18(木) 20:53:08.58ID:fOFaQvk5.net]
BSDって厳密には「BSD風」でないと権利元が違う所に行くんじゃないのけ
最新のBSDライセンスは変わってるのかもしれんけど
BSD風 = MIT な条項になるはずだからBSD風にするならMITで済ます方が楽だと思う

APLは広告表示を伝播させるウィルスライセンスだからGPL並みに嫌いだ...
だから、BSD風やMIT、しいては好き勝手を許すWTFPLを愛してる

969 名前:デフォルトの名無しさん mailto:sage [2017/05/18(木) 21:56:20.62ID:kFoUD79v.net]
さすがにBSDっていったらnew BSDだよw
いつの時代からきたの



970 名前:デフォルトの名無しさん mailto:sage [2017/05/18(木) 22:08:12.07ID:H9PBwwNn.net]
rustのオフィシャルcrateがMIT/Apache2.0にre-licenseしたときに core teamの人がいろんなcrateにrelicenseしないかとissueたててたからきっとその影響

971 名前:デフォルトの名無しさん mailto:sage [2017/05/18(木) 22:09:14.25ID:ohXqIolz.net]
これだな
https://github.com/sfackler/rust-openssl/issues/331#issue-125839119

972 名前:デフォルトの名無しさん mailto:sage [2017/05/18(木) 22:17:01.68ID:38KyjAHn.net]
へー、ただの偶然や、なんとなくじゃないんだな

973 名前:デフォルトの名無しさん mailto:sage [2017/05/18(木) 22:32:31.37ID:38KyjAHn.net]
もっと読んだら、こういう事か

Rustの主要ライセンスはApacheライセンスだけど、GPLv2互換にする為におまけとしてMITライセンスも付けてる
だからRustエコシステムの一環として、このcrateもデュアルライセンスにしてね

俺の中では、Apacheライセンスの方がマイナー感あるけど、こっちがメインらしい

974 名前:デフォルトの名無しさん mailto:sage [2017/05/18(木) 22:43:24.79ID:fOFaQvk5.net]
>>948
new BSDという存在がなかった時代から来たよw
今はそんなライセンスになってんのな、流石に「BSD風」の面倒さはいつまでも保たなかったか

Apacheがまだ元気だった頃、Apache製のJava LibがAndroidなんかで大量に使われて一気に流行ったよな > APL
GPLv2だと商用で使えないけどBSD風/MITだと売名できないからって00年代にはよく使ってたわ

975 名前:デフォルトの名無しさん mailto:sage [2017/05/19(金) 09:05:07.26ID:r5Vu9+iD.net]
Apacheはpull reqの著作権が譲渡されるのが便利だから使われてる

976 名前:デフォルトの名無しさん mailto:sage [2017/05/19(金) 12:16:11.47ID:Cc5/b8RU.net]
Apacheの方が企業で使いやすいと聞いたことある
広告表示の伝播って何?

977 名前:デフォルトの名無しさん mailto:sage [2017/05/19(金) 14:23:28.33ID:7dSH5YZb.net]
GPLと違ってソースコード開示義務がないから、クローズドソース企業でもAPLソースを利用できる
MITと違って権利元の紹介/参照表示義務があるから、APLソースを作った企業は広告塔として利用できる
利用側、提供側の両方の企業にとってWin-Winだねぇ

PRの著作権が譲渡されるのが便利ってのは意味わからんけど
PR受領側がAPLにしてても意味ないし、PR発行側がAPLにしたら権利譲渡されないでしょ

978 名前:デフォルトの名無しさん mailto:sage [2017/05/19(金) 16:01:37.09ID:YSFiOlnd.net]
https://www.viva64.com/en/b/0324/
古い記事だが俺がずっとRustはクソ言語未満って言ってるのは正しかったと確信できた。

ここにいるクソモジラの工作員は百万回読んで反省しろ。

979 名前:デフォルトの名無しさん mailto:sage [2017/05/19(金) 16:17:53.03ID:00885lZ8.net]
工作員とか言い出す辺り電波ちゃんか。



980 名前:デフォルトの名無しさん mailto:sage [2017/05/19(金) 16:19:17.30ID:YSFiOlnd.net]
>>958
クソ言語を流行ってるように見せかけて害悪を撒き散らしてるのが工作員じゃなくて何なんだ?
実際に雇われてなくても工作員には変わらない。

981 名前:デフォルトの名無しさん mailto:sage [2017/05/19(金) 17:19:26.35ID:uFlt+gQT.net]
>>957
確信出来たけどまたここに来ちゃうんでしょ〜?

982 名前:デフォルトの名無しさん mailto:sage [2017/05/19(金) 17:37:02.20ID:YSFiOlnd.net]
>>960
うっかりステマに騙されてこのスレに来た奴に本当の情報を教えて救う仕事があるからな。

983 名前:デフォルトの名無しさん mailto:sage [2017/05/19(金) 20:18:17.49ID:ICcQ+KKA.net]
>>957
半分くらいで読む気なくしたけど序盤からグリーンスレッド云々とか言ってて「は?」って感じだし
途中でD言語の衰退とかに触れてるのはあまり関係ない話だし、
引き合いに出されてるベンチマークの結果は最新版では順調にC/C++に近づいてて色々笑える

984 名前:デフォルトの名無しさん mailto:sage [2017/05/19(金) 21:05:47.66ID:rqeuDXpP.net]
二年も前の記事なんて引用するもんじゃないなww

985 名前:デフォルトの名無しさん mailto:sage [2017/05/19(金) 22:56:06.99ID:myVq12PI.net]
>グリーンスレッド云々
C++の後継狙ってないなら絶対切ってない機能だから、これ切った時点でC++の置き換え狙ってないとか口が割けても言えないよな???
でこの体たらくかwwwwwww
ってことな。

>D言語の衰退
かつてCやC++の後継を狙った言語がことごとく結局技術的負債になってるが、Rustがそうならない理由どこにもないけどそれでも使うの???
ってことな。

>引き合いに出されてるベンチマークの結果
ソースなし擁護乙。

986 名前:デフォルトの名無しさん mailto:sage [2017/05/19(金) 22:58:39.55ID:ICcQ+KKA.net]
>>964
箱ひげ図くらい読めるよな?
benchmarksgame.alioth.debian.org/u64q/which-programs-are-fastest.html

987 名前:デフォルトの名無しさん mailto:sage [2017/05/19(金) 23:42:10.72ID:R52jpALp.net]
>>957
Vec<Rc<RefCell<Box<Trait>>>> に爆笑したわ
別名つけるなり構造体に押し込むなり色々やりかたがあるって自分の示したソース(しかもRedditて)で書かれてるし
そんなんC++でもやるだろ
つか個人的にはC++のテンプレートの方が記述ひどいわ

あと記事の最後の
「C++erは(中略)必要とあればRustを習得するのはすぐできるが、逆はほとんどありそうもない」
っていうのは全力でダウトぶつけたいわ。簡単なのは闇の軍団くらいだろ
逆に言えば「闇の軍団くらいになればRustなんていらない」っていうことなのかもしれんが

988 名前:デフォルトの名無しさん mailto:sage [2017/05/20(土) 00:27:26.97ID:Ff6K3/VM.net]
>>965
Cの箱が潰れてただの線になってるのほんと笑う
C++にはかなり追いついている(というか中央値はほぼ同率か)が、Cだけは越えがたき壁だな

989 名前:デフォルトの名無しさん [2017/05/20(土) 01:16:59.18ID:FvSbl/DO.net]
>>964
「ない」ばっかり、君日常会話も否定から入るタイプ?



990 名前:デフォルトの名無しさん mailto:sage [2017/05/20(土) 07:19:30.94ID:ByT4iV18.net]
>>964
グリーンスレッドにあたるものってC++にはないよ。だからよりC++に近付いたんだよ。
もっとRustとプログラミング言語勉強しないとくそ言語かどうか判らないね〜。
またRust勉強したら帰ってきてね

991 名前:デフォルトの名無しさん mailto:sage [2017/05/20(土) 10:08:32.95ID:POYpVYoy.net]
goスレの俺のレスを工作員だと思って来たんだろうから、あっちでrustをディスっておいた

「ずっとRustはクソ言語未満って言ってる」のに確信持ってなかったとか驚いたゾ
根拠なくクソ言語未満って言ってたとかお前は原人かよぉ

992 名前:デフォルトの名無しさん mailto:sage [2017/05/20(土) 17:57:16.26ID:QYvr2rA8.net]
>>969
そもそもの>>957の文が「グリーンスレッドを切ったんならC++の置き換えを狙ってるってことだよな?」という内容だからその点に限っては>>964は間違っていない

993 名前:デフォルトの名無しさん mailto:sage [2017/05/20(土) 18:18:03.04ID:FvSbl/DO.net]
そもそもグリーンスレッドなんていらん

994 名前:デフォルトの名無しさん mailto:sage [2017/05/20(土) 19:47:44.68ID:FUP6GO5Q.net]
グリーンスレッドのいる理由もいらん理由もわからなくて辛い

995 名前:デフォルトの名無しさん mailto:sage [2017/05/20(土) 20:02:52.38ID:yXBDkmxu.net]
グリーンスレッドある=へーrustやるじゃん
ない=まぁ無くても…別にねぇ?

996 名前:デフォルトの名無しさん mailto:sage [2017/05/20(土) 20:31:44.28ID:HYrvvmg5.net]
そりゃ要らんだろ。
擬似スレッドなんて。

997 名前:デフォルトの名無しさん mailto:sage [2017/05/20(土) 21:08:20.63ID:NqXZxUdZ.net]
> グリーンスレッドある=へーrustやるじゃん
この頃はどういう背景だったんだろうねぇ、goroutineを真似てみたかった感じなのかね
同じものを実現することは不可能なわけで、それでグリーンスレッドイラネになったのなら必然だわな

998 名前:デフォルトの名無しさん mailto:sage [2017/05/20(土) 21:29:09.33ID:1hsFVVTl.net]
グリーンスレッドがあればGoと勝負する位置の言語としての存在価値ができた。
グリーンスレッドを捨てた結果、愚かにもC++に弓引くドンキホーテになった。

999 名前:デフォルトの名無しさん mailto:sage [2017/05/20(土) 23:31:32.24ID:FvSbl/DO.net]
どんどんcpuコアが増えていくのにグリーンスレッドとか、、、



1000 名前:デフォルトの名無しさん mailto:sage [2017/05/20(土) 23:38:34.66ID:QYvr2rA8.net]
よく分からんのだけど、グリーンスレッドが解決しようとしている問題ってコア数を増やせば解決できるような問題なの?

1001 名前:デフォルトの名無しさん mailto:sage [2017/05/20(土) 23:57:14.86ID:FvSbl/DO.net]
>>979
あーそんなことは言ってない。cpuを有効活用してかないといけないのに今更グリーンスレッド持ち上げてもアレだよと。

1002 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 01:41:54.52ID:DDrTaXD8.net]
if let Some(a) = x && let Some(b) = yみたいに書きたい

1003 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 04:11:14.25ID:cLRuMlqp.net]
if let (Some(a), Some(b)) = (x, y)

1004 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 06:52:28.40ID:9L9dm7b/.net]
>>977
このドンキホーテも真っ青な的外れな指摘よ
グリーンスレッド載せてもGo(goroutine)との勝負の土俵に上がれないってばよ

>>982
ぱっと見、()が多くてタイプ面倒そうでもっとシンプルにならんかなと思ったけど
letや&&なんかを何度もタイプするより短いんだな

1005 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 11:03:41.44ID:HTknFc4w.net]
システムプログラミング言語としてネイティブスレッドのサポートは必須なんだけど
標準ライブラリのIO系関数をネイティブスレッド、グリーンスレッドのどちらでも使えるようにすると
ネイティブスレッドで使ったときのオーバーヘッドが大きすぎると問題になった

グリーンスレッドとネイティブスレッドにそれぞれ別のIO関数用意するのだったら
標準ライブラリでやらなくても良いよねということになって
グリーンスレッドサポートはドロップされた

1006 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 11:21:50.34ID:rlx7fyr1.net]
https://crates.io/crates/trip
trip finds 2channel-style tripcodes

2ch用ツールがcrates.ioに上がってるね。

1007 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 12:22:45.36ID:HwsOwdy1.net]
Rustには可愛いマスコットキャラいないの?

1008 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 12:47:53.53ID:cLRuMlqp.net]
>>985
もうメンテナンスされてないっぽいけどこっちの方が多機能そう
https://github.com/Huton/tripcode-rs

1009 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 12:50:18.66ID:cLRuMlqp.net]
……と思ったけどよく見たら>>985は探索ツールか



1010 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 12:51:09.59ID:hU2RwKDa.net]
>>986
おれもユニティーちゃんみたいなのほしいんだが

1011 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 12:51:29.25ID:hU2RwKDa.net]
カニの擬人化

1012 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 13:07:17.24ID:rlx7fyr1.net]
>>986
カニのフレンズがいるって、このスレで見た

1013 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 13:09:35.76ID:cLRuMlqp.net]
Ferris the Crabは今のままでも十分可愛いよ

1014 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 13:30:02.02ID:hU2RwKDa.net]
フェリスたんがかわいく見えないのはまだラスタシアンになりきれてないからなのか

1015 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 13:32:15.48ID:HwsOwdy1.net]
いるのかと思ったらそのカニ非公式じゃねーか

1016 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 13:47:49.18ID:rlx7fyr1.net]
borrow checkerのマスコット
blog-imgs-10.fc2.com/k/a/n/kaniking/shanghaigani070107.jpg

1017 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 14:04:48.14ID:9L9dm7b/.net]
次スレ
ttps://echo.2ch.net/test/read.cgi/tech/1495343069/l50

1018 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 14:08:51.46ID:hU2RwKDa.net]
誰か絵心あるやついないのか

1019 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 15:13:30.59ID:2E7Z41P0.net]
へ____ミ
へ..........ミ
へ____ミ



1020 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 15:13:59.69ID:2E7Z41P0.net]
失敗

1021 名前:デフォルトの名無しさん mailto:sage [2017/05/21(日) 15:14:22.40ID:2E7Z41P0.net]
穴があったら埋めたい

1022 名前:1001 [Over 1000Thread.net]
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
life time: 200日 12時間 1分 43秒

1023 名前:1002 [Over 1000Thread.net]
2ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 2ちゃんねる専用ブラウザからの広告除去
★ 2ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.2ch.net/

▼ 浪人ログインはこちら ▼
https://login.2ch.net/login.php

1024 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<233KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef