プログラミング言語 Rust 2at TECH
プログラミング言語 Rust 2 - 暇つぶし2ch454:デフォルトの名無しさん
17/02/14 13:37:21.21 EX/xGDf7.net
純粋な疑問なんだが今のRustがDに勝ててる点ってケツモチ企業がいること以外になんかあったっけ。
コミュニティ規模的にはそこまで差はないよね?

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

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

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

458:デフォルトの名無しさん
17/02/14 17:37:38.79 qahXd/u8.net
URLリンク(github.com)
>Repositories 6,413
URLリンク(github.com)
>Repositories 5,754
先発の言語でこれな時点でねえ

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

460:デフォルトの名無しさん
17/02/14 18:26:17.87 uwayiWk9.net
Dのtimeは混乱してるようにみえる

461:デフォルトの名無しさん
17/02/14 18:56:33.55 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:デフォルトの名無しさん
17/02/15 08:45:00.92 nJh54DV/.net
日本の元号を標準ライブラリに入れろなんてバカ存在するの?

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

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

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

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

467:デフォルトの名無しさん
17/02/15 12:58:26.10 Eq8lnkGd.net
当初書きたかった奴がこんな流れ
guard内ではCopyをimplしているs.xしか使用していないから本来moveの必要はないはず
URLリンク(play.rust-lang.org)
こうしたらコンパイルが通ったけど、elseあたりがとてもキモい
URLリンク(play.rust-lang.org)
まあ既にコンパイルは通ってるから直せなくても別に困らないんだけど、なんかキモい

468:デフォルトの名無しさん
17/02/15 13:39:24.49 JsTxjjGi.net
あんま笑い事じゃないな…自分の手には余るわ。

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

470:デフォルトの名無しさん
17/02/15 15:04:13.32 er7cKMeE.net
こんなんでどうだろう
URLリンク(play.rust-lang.org)
無用にCopy/Cloneしてんじゃねーよとは思わなくはないけど、多分COWで最適化されて実際はその動きをしない...と思いたい
if elseの気持ち悪さはなくなるから、derive宣言が許されるならこれで回避したい所存

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

472:デフォルトの名無しさん
17/02/15 15:56:56.27 JsTxjjGi.net
一応、RFCにも入ってて実装待ちになってはいるんだな
URLリンク(github.com)
馬鹿なことをしない限りは問題無さそうなんだけど、Cell::setとか使われると厄介かも

473:デフォルトの名無しさん
17/02/15 16:16:51.99 8li9lRMw.net
noneのelseは確かに消したい衝動に駆られざるをえない

474:デフォルトの名無しさん
17/02/15 16:24:22.19 kyvGdeQY.net
キモい書き方でしか書けない言語って実用性もお察し。

475:デフォルトの名無しさん
17/02/15 16:31:16.56 Eq8lnkGd.net
実装待ちか……本当に実装待ちの機能多いよね。改善の予定すらないよりはよほどマシだけど
>>461
実際のコードではSに相当するstructがsize_ofで50バイト以上あるようなものだから最適化に賭けてcloneしまくるのも怖いんだよなあ
ただ、将来的に>>463が実装される予定なら一時的なworkaroundとしてそうするのもありかな……
みんな助言サンクスです

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

477:デフォルトの名無しさん
17/02/16 10:31:03.92 Ql+ZhAJA.net
機能に欠陥がある言語というのもさることながら、
その欠陥に当てるパッチすら一年以上放置。
本当この言語おわってんな。
Cを置き換えるとか腹が痛くなるわ。

478:デフォルトの名無しさん
17/02/16 11:24:08.77 JPLcUbCW.net
なにかしら貢献しようってのはないの?

479:デフォルトの名無しさん
17/02/16 12:09:50.46 QxzW1FU8.net
触んな触んな

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

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

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

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

484:デフォルトの名無しさん
17/02/16 21:05:18.40 dGmRkXVH.net
そんな些細なことに拘る奴おらんで。

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

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

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

488:デフォルトの名無しさん
17/02/16 21:50:51.71 QxzW1FU8.net
-sys crateは良い文化

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

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

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

492:デフォルトの名無しさん
17/02/17 00:33:46.93 yhaDaC8E.net
llvmをrustで書き直そう

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

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

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

496:デフォルトの名無しさん
17/02/17 08:06:47.24 nCBINic8.net
>>483
SQLiteをRustで書き直そう

497:デフォルトの名無しさん
17/02/17 10:52:00.95 jHhPXKUT.net
linuxをRusuxにすればcの後継

498:デフォルトの名無しさん
17/02/17 11:12:03.68 3FtIr36J.net
>>488
>>9

499:デフォルトの名無しさん
17/02/17 14:07:26.39 eFr6pWHl.net
>>15

500:デフォルトの名無しさん
17/02/17 18:21:18.09 5sY5yHIi.net
FireFoxをRustで書き直そう

501:デフォルトの名無しさん
17/02/17 18:59:34.73 ZDBavghI.net
Servo

502:デフォルトの名無しさん
17/02/17 19:18:49.28 sPCLdDuU.net
ServoをRustで書き直そう

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

504:デフォルトの名無しさん
17/02/17 21:22:35.36 krcZKPEA.net
先ずはlibcompiler-rtから

505:デフォルトの名無しさん
17/02/17 22:06:03.85 y4+T5net.net
>>442
だな

506:デフォルトの名無しさん
17/02/18 09:19:54.20 PNO7DmhT.net
>>494
>>15
同じ話を何度されてもなw
LinuxをRustで書き換えればーの話はよほど変な角度から攻めないと無理

507:デフォルトの名無しさん
17/02/18 10:17:07.05 bUHmqYrs.net
>>491
それは既に部分的にやってるんだっけ
>>497


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

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

510:デフォルトの名無しさん
17/02/19 01:05:13.21 s3EB+fhT.net
後継言語は名前からしてD言語じゃないと

511:デフォルトの名無しさん
17/02/19 06:50:46.22 v/sHJsoq.net
名前だけは後継

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

513:デフォルトの名無しさん
17/02/19 08:34:53.71 v/sHJsoq.net
実際にはelisionでCow<T>と書けることも多いしな

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

515:デフォルトの名無しさん
17/02/20 22:04:29.62 97wV3Rfs.net
別にそんな書き方出来なくてもいいよ

516:デフォルトの名無しさん
17/02/20 23:14:15.09 mI2RJMjC.net
単なるタプルを引数にした関数で、呼び出しもタプルだよなぁ・・・
と思って試したら、やっぱり呼び出しも
x((1, 1));
で書く必要があった!!!
どういうケースで使うんだよ、このタプル引数の関数

517:デフォルトの名無しさん
17/02/20 23:38:34.63 ehHRa0XE.net
fn foo(Foo(a, b): Foo) {}

518:デフォルトの名無しさん
17/02/21 08:08:29.59 KVrlVIJb.net
落ち着けただの構造化束縛だ。
URLリンク(play.rust-lang.org)

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

520:デフォルトの名無しさん
17/02/21 08:20:55.82 eTJT09tJ.net



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



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

523:デフォルトの名無しさん
17/02/22 01:07:33.12 s4CGuq4I.net
>>511
>>508のfooは関数名でFoo(a, b)はtuple structに対する構造化束縛で
右辺のFooは引数リストの1つめの仮引数への型注釈だよ。
静的言語だからパターンが現れるとたまたまLHSと型注釈の両方に型名が出てくるの。
これがもし動的言語ならLHSに型名はでてこない。
// js
function foo([a,b]){}
ちなみにa,bは分解された束縛。

524:デフォルトの名無しさん
17/02/22 11:24:58.93 IzdwqWc0.net
URLリンク(www.reddit.com)
もっとborrow checkerが賢くなってくれたら嬉しい。個人的にはimpl Traitよりもありがたい

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

526:デフォルトの名無しさん
17/02/23 09:04:21.53 zngwxGAX.net
Rust Project Developersが直々に乗り込んでコード書いて、Rustが一番早いぜとか言い出す姿勢ほんとすこ
URLリンク(benchmarksgame.alioth.debian.org)

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

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

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

530:デフォルトの名無しさん
17/02/23 13:16:02.83 LSEhsWdS.net
>>519
自分もこんなゴミステマしても虚しいだけだと思うんだが、
どうやらモジラにとってはこの言語が流行ってくれないと困るらしい
だから「これからはRustの時代!」みたいな工作をStack某とか上のベンチマークとかでやってんだろう。
最近ロゴ変えたことといい、どうもクソモジラはOSS界の電通目指してるくさいな。

531:デフォルトの名無しさん
17/02/23 13:25:43.94 U3ebhjnw.net
Rustが流行る
=> Rustで実装されたServoの完成度が上がり流行る
=> ServoがWebkitの代わりに使われる
=> Servo組み込みサポート費用がMozillaに払われる
随分と迂遠なMozillaの経営改善計画だったんだよ!と頑張ってみる
ステマされて困る人はパイを奪われるWebkit関係者かな?

532:デフォルトの名無しさん
17/02/23 13:30:47.35 zngwxGAX.net
競争相手はWebKitでもEdgeHTMLでもなくBlinkやろとマジレス

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

534:デフォルトの名無しさん
17/02/23 14:32:01.45 eozO90Y3.net
クソ連呼厨ってID変えられるのかよ

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

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

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

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

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

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

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

542:デフォルトの名無しさん
17/02/23 20:03:57.20 cNXolJMY.net
Rust勉強したら何が作れんの?
C#とJSで何でも作れるご時世で

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

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

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

546:デフォルトの名無しさん
17/02/23 20:42:34.44 oSrrQwof.net
>>535
でもそうなんでしょ?

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

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

549:デフォルトの名無しさん
17/02/23 21:06:35.79 FuQeN9Oq.net
へえバグないんだ良かったじゃんわざわざRust使わなくても済むね
>>534
人に尋ねるときはまず自分から晒すのが礼儀やで

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

551:デフォルトの名無しさん
17/02/23 21:15:20.74 vAxbMLg6.net
ID:LSEhsWdS
今日の患者さんはなかなか元気だな。

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

553:デフォルトの名無しさん
17/02/23 21:17:02.17 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:デフォルトの名無しさん
17/02/23 21:19:45.77 sZtROie8.net
C++の -> int は省略できるやろ

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

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

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

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

559:デフォルトの名無しさん
17/02/23 21:38:33.89 sZtROie8.net
>>548
え?称賛なんかしてないけど?

560:デフォルトの名無しさん
17/02/23 21:41:45.75 LSEhsWdS.net
>>549
うらやましいとか言われたからRust好きでたまらんのかと思ったわ。

561:デフォルトの名無しさん
17/02/23 21:48:04.84 DPtsYYmf.net
LSEhsWdSはプログラミングセンス無いからこの業界辞めた方がいい

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

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

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

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

566:デフォルトの名無しさん
17/02/23 22:05:57.88 NuCuZGCr.net
マ板でやれ

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

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

569:デフォルトの名無しさん
17/02/23 22:14:46.67 X5Zb9v7q.net
>>525
homuの作者

570:543
17/02/23 22:17:35.80 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:デフォルトの名無しさん
17/02/23 22:32:19.67 K3Cm2dt


572:r.net



573:デフォルトの名無しさん
17/02/23 22:43:51.07 8gwVa+zN.net
syntax気にするだけならsmalltalkやるよろしアル

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

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

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

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

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

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

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

581:デフォルトの名無しさん
17/02/23 23:42:42.37 UGVUxePL.net
JavaScriptなんて使うくらいならいっそCとEmscriptenで書きたいわ

582:デフォルトの名無しさん
17/02/23 23:45:15.15 TLItgOP3.net
>>570
ところでRustとEmscriptenでWebasm吐くって出来るんですよね。

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

584:デフォルトの名無しさん
17/02/24 01:32:47.64 /cLlv/nZ.net
>>543
> // rust
> let f = |x| x + 1; // 美しい
この |x| x + 1 のどこが美しいか理解不能
この後で悲惨と書いてるC++のと50歩100歩のアドホックな書き方
Schemeなどの (lambda (x) (+ x 1)) のほうが遥かに構文が統一的で美しい

585:デフォルトの名無しさん
17/02/24 08:44:12.21 F/TDaiUX.net
rustってJavaからJNIでCを呼び出すのと何が違うのっと

586:デフォルトの名無しさん
17/02/24 08:46:52.43 VQegiGIK.net
何を煽りたいのっと

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

588:デフォルトの名無しさん
17/02/24 11:20:14.42 Eio5IVQ5.net
|x|は単純に?ってなるよな
なんでここだけRubyなんだと。他はC系かML系風味なのに。激しく浮いてる
C++ですらunified(笑)とか言って普通の関数とクロージャを近付けようとしているのに
それとは別に、開き括弧と閉じ括弧が同じなのも後々困らねーかと思ってしまう

589:デフォルトの名無しさん
17/02/24 14:20:48.79 fnwYTLZ/.net
構文はもっとMLに寄せてほしいなあ



590:{ } とか見たくない



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

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

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

594:543
17/02/24 18:39:46.43 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:デフォルトの名無しさん
17/02/24 23:22:20.10 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:デフォルトの名無しさん
17/02/25 00:07:58.70 jGQ3Wak9.net
`:arg1` は型注釈と混同する
ラムダ計算風に `let f = \x y. x + y` はどうかな

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

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

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

600:デフォルトの名無しさん
17/02/25 20:15:31.45 FTYjcOZq.net
俺は名前は好き
四文字でさえあればいいと思ってる
それよりも嫌なのはifの波括弧
短く書きたいときCなら
if (cond) foo(); else bar();
で、目に優しい
if cond {foo();} else {bar();}
これはたまらなく苦痛
C方式に戻してもらうか三項演算子の導入をしてほすい

601:デフォルトの名無しさん
17/02/25 20:19:33.66 FTYjcOZq.net
URLリンク(doc.rust-lang.org)
let y = if x == 5 { 10 } else { 15 }; // y: i32
↑これよりはやっぱ↓
let y = x == 5 ? 10 : 15;

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

603:デフォルトの名無しさん
17/02/25 20:39:21.20 FTYjcOZq.net
>>590
どれだけのバグを生み出してきたの?

604:デフォルトの名無しさん
17/02/25 20:42:35.76 gF7KaGBm.net
>>591
URLリンク(qiita.com)

605:デフォルトの名無しさん
17/02/25 20:43:00.57 AAACSty6.net
適用の順序が一見して分からないケースがあってクソ

606:デフォルトの名無しさん
17/02/25 20:48:49.11 FTYjcOZq.net
>>592
ほえー
あーifに波括弧大事、これがあるからやっぱ波括弧大事だなぁ
波括弧ないからこそこんなことになっちゃうんだなぁ
波括弧さえあればこれ避けられたのになぁ
波括弧無しのifなんてあり得ないよなぁ
ってこと?
あとはどれだけのバグを生み出してきたの?

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

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

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

610:デフォルトの名無しさん
17/02/25 21:08:17.05 FTYjcOZq.net
>>596
ちょっと茶化したけど、理屈は分からないというわけではないよ
実際にrustのifがこうなってる経緯は知らないけど
現状について少なくともそういう視点で支持する意見があるのは正直驚いた
勉強になりました

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

612:デフォルトの名無しさん
17/02/25 21:16:11.60 oY1Z/R8w.net
別に見づらくないじゃんって意見のほうが多数な気がするけど
URLリンク(github.com)

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

614:デフォルトの名無しさん
17/02/25 21:20:30.53 AAACSty6.net
まあ実際のコードでは無理に一行にまとめず5行に分けろってことだな
let x = if cond {
f()
} else {
g()
};
もしf(cond ? g() : h())みたいな形で使おうと思っていたのなら、そもそもそれ読みづらいから一旦バインドしてからその結果を使おう
let x = if cond {
g()
} else {
h()
};
f(x);

615:デフォルトの名無しさん
17/02/25 21:22:26.82 oY1Z/R8w.net
あと波括弧外せるようにする提案はここにあるから+1しとけ
URLリンク(github.com)
めっちゃ劣勢だけど

616:デフォルトの名無しさん
17/02/25 21:30:13.94 FTYjcOZq.net
>>602
一点だけ
let x = if cond {
g()
} else {
h()
};
f(x);
↑これよりやっぱ↓これが読みやすい(個人の感想です)
f(cond ? g() : h())

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

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

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

620:デフォルトの名無しさん
17/02/25 22:48:27.45 jxiHI5n5.net
if式なら三項演算子はいらないよ

621:デフォルトの名無しさん
17/02/25 23:00:24.91 BrkcZ5hg.net
if-elseの波括弧外したらtype ascriptionが曖昧になる。

622:デフォルトの名無しさん
17/02/25 23:54:27.38 +Hmh+RyZ.net
>>604
ioでも使ってろ

623:デフォルトの名無しさん
17/02/25 23:57:17.74 jxiHI5n5.net
f( if cond { g() } else { h() } )

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

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

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

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

628:デフォルトの名無しさん
17/02/26 11:17:28.79 dRlELnWs.net
波括弧省略はLinuxカーネルの連中が使い続けてる。
奴ら頭良いからあれでも上手く回ってるんだろうな。
逆に、波括弧省略するなって言われてる奴らは信用されてないってことなんだよ。

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

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

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

632:デフォルトの名無しさん
17/02/26 13:42:37.90 n9+kiTzj.net
if文の波括弧は例え1行でも省略すべきではないな

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

634:デフォルトの名無しさん
17/02/27 14:37:50.15 8fV4SlqM.net
>>588
激しく同意

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

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

637:デフォルトの名無しさん
17/02/27 19:58:29.36 LZ77JUIB.net
ちなみにOCamlだと
URLリンク(ocaml.org)
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:デフォルトの名無しさん
17/02/27 20:06:13.47 zLpKV4Hz.net
英数字が多過ぎて慣れてないと通常の識別子と瞬時に弁別できない

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

640:デフォルトの名無しさん
17/02/27 23:55:54.57 /1/jo1+J.net
シンタックスハイライトの有無で全然違う

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

642:デフォルトの名無しさん
17/02/28 00:20:31.68 hQ8vIQRp.net
wwwww

643:デフォルトの名無しさん
17/03/01 13:27:14.36 dbhoX2Op.net
今の日本のRust界隈って、LT会を開いて100人は集まるくらいの規模なのか
URLリンク(rust.connpass.com)

644:デフォルトの名無しさん
17/03/01 14:13:16.39 SH8mWFxK.net
>>631
そういうのに集まるのって、入門が趣味の人でしょ

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

646:デフォルトの名無しさん
17/03/02 17:47:06.67 5xdornxH.net
Rust Language Server alpha 2がリリース。かなりインストールしやすくなってる
URLリンク(github.com)

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

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

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

650:デフォルトの名無しさん
17/03/02 22:21:45.15 TuErB/Pj.net
>>636
language server protocolはコンパイラじゃない。
rustだけのものじゃないし。

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

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

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

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

655:デフォルトの名無しさん
17/03/03 05:22:56.35 Mo/AGisi.net
Ryzenなら、rustcも爆速になる?
URLリンク(twitter.com)

656:デフォルトの名無しさん
17/03/03 05:26:52.91 bMgzQydB.net
Rustスレで語るほどの話題でもないな

657:デフォルトの名無しさん
17/03/03 05:46:13.37 Dlw1K2JE.net
>>642
話がズレてんぞ
「Rust Language Server」(ソフトウェア)の利便性/実用性を問うているのであって
「language server protocol」(プロトコル)の利便性/実用性を問うているんじゃない
>>640
ああ、キャッシュはクソでかいのか...
元コードや依存crateに比例するだろうけど多少の利便性のために使って良いものか微妙なのかなぁ

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

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

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

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

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

663:デフォルトの名無しさん
17/03/03 23:51:37.58 JBnTbtYi.net
Rainicorn開発して自前でon the fly error checkやってたRustDTが
LSPが発表された途端にRustLSP開発始めたのにRLSがでてきて完全に沈黙中。
(´・ω・)カワイソス
LSPはリファクタに使える問い合わせもできるから
RLSとIDE側が対応すればrustのツールで初めてのリファクタ機能が現れるかも。

664:デフォルトの名無しさん
17/03/08 03:21:51.70 DeDFMxZF.net
URLリンク(i.imgur.com)
Rustのメモリ管理が良く分からないので
脳内整理してみたけどよく分からない

665:デフォルトの名無しさん
17/03/08 07:03:46.86 jgMpoXzS.net
このごちゃごちゃで整理とか笑える。

666:デフォルトの名無しさん
17/03/08 07:23:54.02 CjJNAnlh.net
コメ返してるのウケる

667:デフォルトの名無しさん
17/03/08 07:26:21.29 fOyT060n.net
こ、コメ

668:デフォルトの名無しさん
17/03/08 10:47:45.16 6Gp+/qzY.net
よく分かってないから脳内整理もぐちゃぐちゃになってるのではなかろうか
rustはマルチスレッドに影響受けることはないし、他にも理解が出来てない所が多そう
公式ドキュメントが分かりやすいからきちんと読み直したら?
URLリンク(doc.rust-lang.org)
>>654
ワロタ

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

670:デフォルトの名無しさん
17/03/08 13:59:22.48 jMX+hATM.net
>>652
java臭い

671:デフォルトの名無しさん
17/03/10 08:50:25.22 mPQwWGXM.net
>>455
JavaにはJapanese Eraあるな

672:デフォルトの名無しさん
17/03/11 03:15:58.35 ls0F4O8F.net
Rustで作ったプログラムを公開するとき
Rust自身のライセンス文書と
crateで含めた各パッケージのライセンスと各パッケージが依存するパッケージのライセンスを
含める必要があると思うんですが
それらのライセンス文書をかき集めるcargoのコマンド等あったりしますか?
( ~/.cargo/registry/src/ 下にパッケージのソースファイルやライセンスファイルがあるのは分かってるんですが手動で集めるのは面倒なので・・・)

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

674:デフォルトの名無しさん
17/03/11 08:15:11.10 x2OoeTeG.net
DASH言語

675:デフォルトの名無しさん
17/03/11 08:16:44.20 hkT0qMWn.net
そういえばhyperってcharsetから自動でデコードしてくれないのかな

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

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

678:デフォルトの名無しさん
17/03/11 08:46:49.37 qKzUYLvE.net
charsetは別に良いけど、Content-Encodingは対応してくれないのかなぁ

679:デフォルトの名無しさん
17/03/11 09:04:48.56 kL5whW8F.net
>>666
gzipに関してはreqwestのupstreamで既に対応している
URLリンク(github.com)
いつリリースされるのかは分からん

680:デフォルトの名無しさん
17/03/11 12:10:28.94 nSjuwCRc.net
reqwestにモリモリとFeature Request投げつけて肥大化したライブラリにすればいいんじゃないかなぁ!
それを横目に、reqwestに代わる極最低限の機能をピックアップできるライブラリの登場を期待したい
tomlのoptionalで切れるのでもいいんだろうけど、crate分けてくれた方がrustらしい気がする

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

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

683:デフォルトの名無しさん
17/03/12 15:41:23.49 U4Jjwa7O.net
>>670
インストーラーが表示しないの?

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

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

686:デフォルトの名無しさん
17/03/14 00:32:20.78 UwSzXh4Z.net
>>673
それでも良いし、let _piyo = hoge;でも良い

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

688:デフォルトの名無しさん
17/03/14 22:54:53.45 UwSzXh4Z.net
まあ確かに、unuseed_variablesなんてlintはないしな

689:デフォルトの名無しさん
17/03/15 09:52:08.89 65dLeHL5.net
うぬ種(unuseed)、、、これには深い秘密が
unused_variablesとプレースホルダ、ワーニングを消すために使うなら同じバイナリ出力するがな
traitのインターフェース切る時はプレースホルダ使ってる

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

691:デフォルトの名無しさん
17/03/17 03:23:47.24 bRwtX1Af.net
Announcing Rust 1.16
URLリンク(blog.rust-lang.org)
・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:デフォルトの名無しさん
17/03/17 21:17:58.70 OBbyZsQw.net
b‘\x0a‘を”a”に一発で変換する関数ってライブラリにある?自分で書かないと無理?

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

694:デフォルトの名無しさん
17/03/17 22:53:52.43 OBbyZsQw.net
>>681
マジでありがとう
こういうときはformatなのね

695:デフォルトの名無しさん
17/03/18 00:10:31.46 c1jSzzlC.net
cargo checkサブコマンド、エラー内容によっては挙動がおかしいんだよね。
cargo test --no-runなら完走する。それかrustcは問題ないから直接rustc叩く。
infinite typeが循環してるとrustcが止まらないのと組み合わさると
rustcがcargoに制御返さない→cargoが無言決め込むになって何が起こってるのかわからなかった。
>>682
自前で弱い動的型付け言語並みのto_string()実装しても良いんだぜ?

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

697:デフォルトの名無しさん
17/03/18 02:04:48.97 sCZDN2Pv.net
Hideyuki Tanakaさんのツイート: "URLリンク(t.co) 多くのベンチでRustがC++より高速なコードになってきたみたい。"
URLリンク(twitter.com)

698:デフォルトの名無しさん
17/03/18 10:03:15.93 cTWPUp3Z.net
>>685
いいね

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

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

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

702:デフォルトの名無しさん
17/03/18 11:26:04.35 G5NG4rX0.net
multisetは使えない? 外部クリートを使うことになるけど

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

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

705:デフォルトの名無しさん
17/03/18 11:49:38.08 HHPgXzoi.net
ありがとうございます
とりあえずmultisetのソース見て勉強してきます

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

707:デフォルトの名無しさん
17/03/18 19:49:33.18 PBtATWqK.net
ゲームとか作るのにはまだつらい感じ?

708:デフォルトの名無しさん
17/03/18 22:51:11.48 kQkqB4BZ.net
ss

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

710:デフォルトの名無しさん
17/03/19 06:16:46.07 Q49RXSlY.net
Nightlyでcargo updateをしようとしたら
thread 'main' panicked at 'called `Option::unwrap()`
云々とか出てきて何事かと思ったら、どうやらRust TeamがGitの操作をミスってnightlyが壊れてたらしい
URLリンク(github.com)

711:デフォルトの名無しさん
17/03/21 23:01:00.46 hxyeHBes.net
高階関数に渡す述語のinline属性の指定にかかわらず
そこだけ必ずインライン化するか必ずインライン化しないか指定する方法ない?
Option::map_or_elseに渡すdefault引数とf引数がinline属性付いてるけどインライン化させたくないんだけど。

712:デフォルトの名無しさん
17/03/24 07:34:18.46 yNGhLANb.net
Stack Overflowの調査でまたしてもRustが最も好まれている言語になった
URLリンク(stackoverflow.com)
が、エンタープライズでの採用例が少ないのだからユーザのうち好んで使っている人の割合が高まるのは当然っちゃ当然だわな

713:デフォルトの名無しさん
17/03/24 08:53:30.74 mOA6Vf99.net
みなさんfloatのベクタのソートについてどう思ってるの?

714:デフォルトの名無しさん
17/03/24 14:35:58.01 pHNq00OZ.net
>>683
こば?

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

716:デフォルトの名無しさん
17/03/25 03:50:37.57 BrrX4e7P.net
Tokio-minihttp is number 4 in TechEmpower Round 14 Preview : rust
URLリンク(redd.it)

717:デフォルトの名無しさん
17/03/30 16:59:39.44 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:デフォルトの名無しさん
17/03/30 17:03:13.41 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:デフォルトの名無しさん
17/03/30 18:52:42.70 mCoqxFE9.net
え?それが何だというの?

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

721:デフォルトの名無しさん
17/03/30 19:45:59.94 Gp+R1RG2.net
>>708
borrowckなしの状態よりむしろ危険になってて悲しい

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

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

724:デフォルトの名無しさん
17/03/30 23:51:37.90 UVGuKdEr.net
URLリンク(www.textdrop.net)
URLリンク(google.github.io)
これとかは一昔前ということ?

728:デフォルトの名無しさん
17/03/31 08:31:32.16 kyVktr8w.net
c++スレで聞けって感じだね
ここの住民のように最近の言語しらんのだ。ありがとう

729:デフォルトの名無しさん
17/03/31 09:35:15.35 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:デフォルトの名無しさん
17/03/31 12:21:13.04 8wrz3vyb.net
>>714
言語自体はもう新興言語というほど新しくもないC++やJavaは修飾詞つけるのが正義なんじゃない
それ自体は別に文句ないし、自分もそれらの言語を使う時は率先して付けてる
rust, go, swift, nim, kotlinみたいな最近隆盛してる言語は付けないのが文化だと思う
デフォルトのアクセス権限がprivateだったりするヤツもいるから複合的な理由だけど

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

732:デフォルトの名無しさん
17/04/01 11:27:53.05 xsH2QUDo.net
xml parseしたいけどserde使えばよい?

733:デフォルトの名無しさん
17/04/01 11:37:09.88 yqxqzJbW.net
serdeってDOMじゃなかったっけ
DOMでいいならserde一択だとは思うけど

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

735:デフォルトの名無しさん
17/04/01 13:25:53.82 ShBKdKpe.net
domでおけ <


736:デフォルトの名無しさん
17/04/01 14:14:43.48 yqxqzJbW.net
Issues読んでたら、serde 0.9はこっちで対応してるからいいんじゃねって雰囲気でワロス
URLリンク(github.com)

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

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

739:デフォルトの名無しさん
17/04/01 21:26:19.10 xsH2QUDo.net
雰囲気的にnodeとかに近い感じかなぁ

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

741:デフォルトの名無しさん
17/04/01 22:45:09.77 dZXDeDc3.net
0.x時代はnumもrandもlogもstdの一部だったしね。こっちの方が破壊的変更がしやすいとかなんとか
今のstdですら、@alexcrichtonがio::Cursorの実装を後悔していたりするし(↓)
URLリンク(github.com)

742:デフォルトの名無しさん
17/04/02 00:14:26.80 4ErkdvW9.net
>>724
弱すぎるけど既存の標準ライブラリの設計も実装も結構ひどいところがある。
だけど、rustはcoreライブラリ書くのに向いてるから結局必要なら自分で実装しちゃう。
ネイティブスレッド一々作らせずにthread poolくらい標準で用意しろと思うけど。
>>727,728
cargoで一番センス悪いのがcrates.io前提とalexcrichtonだと思う。

743:デフォルトの名無しさん
17/04/02 00:47:10.72 YQEfEn7s.net
Alex Crichtonになんの恨みがあるんだwww

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

745:デフォルトの名無しさん
17/04/02 10:12:44.61 PP0pKPr+.net
>>730
TOKIOの名を騙った恨み

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

747:デフォルトの名無しさん
17/04/02 23:14:29.59 SJJzQWRj.net
>>733
マルチプロジェクトで依存crateの数が多いとか、
他言語にも依存するとか、ローカルにしか無いcrateとオンライン上に
あるcrateの両方に依存するとか、
他エコシステムとの協調苦手(他エコシステムと連携するadhocで泥臭いcrate書いて
cargoでラップする構造にして隠蔽する必要がある)とかあるからそれだけじゃ上手くいかんよ。
実際にServoが色々壁にぶつかってissue投げまくってそっち優先で対処してるからServoはなんとか出来てる感じ。
言語は良いのに他がダメだから自分で対処できる人以外置いてきぼりで学習コスト高いと言われるんだと思う。
言語仕様もextnt,region,effect,zone(arena)とか一切説明なしに全部の文脈でlifetimeとかいう謎の語を使ってるしね。

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

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

750:デフォルトの名無しさん
17/04/03 05:55:


751:44.20 ID:u5wlFHfm.net



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

753:デフォルトの名無しさん
17/04/06 22:50:56.99 optS43ym.net
Libs teamが何かissueを投げまくってる
URLリンク(github.com)

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

755:デフォルトの名無しさん
17/04/08 11:40:03.17 GbqpuLIm.net
そうですか

756:デフォルトの名無しさん
17/04/08 12:53:41.18 R3xK1J5N.net
mozillaってのが心配すぎる

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

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

759:デフォルトの名無しさん
17/04/08 14:37:09.60 59elDVKi.net
GoogleだとMITやApacheに譲渡するし、Appleだと何事もなかったように切り捨てるけどな
Mozilla Thunderbirdみたいに迷走した後にまた統合するんじゃないのw
個人的にはコミュニティベースのOSSで生き残ればどうでもいいわ
Apacheは斜陽だからあそこへの譲渡はちょっとなぁと思う

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

761:デフォルトの名無しさん
17/04/08 15:18:48.99 59elDVKi.net
そうですか

762:デフォルトの名無しさん
17/04/08 16:24:57.82 1hxGv39C.net
低級言語として発展してくれる事を願う

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

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

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

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

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

768:デフォルトの名無しさん
17/04/09 00:35:44.07 C+4/Iu4N.net
趣味で使ってる人はRustで何作ってるの

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

770:デフォルトの名無しさん
17/04/09 01:34:48.16 +eXxcQKg.net
メルセンヌツイスタが有名

771:デフォルトの名無しさん
17/04/09 01:49:57.91 +k4JWPSD.net
えっそっから作るの

772:デフォルトの名無しさん
17/04/09 09:24:07.59 Q8Fz6A4a.net
>>754
某Web APIを叩いてる

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

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

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

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

777:デフォルトの名無しさん
17/04/10 16:20:24.40 RqOHyrbz.net
pub(restricted)で代用できないのか

778:デフォルトの名無しさん
17/04/11 02:06:18.61 hFdmRMY+.net
Rustの萌えマスコットキャラはまだかい?

779:デフォルトの名無しさん
17/04/11 05:26:24.28 YGNFjvB7.net
Ferrisがいるじゃない
URLリンク(www.rustacean.net)

780:デフォルトの名無しさん
17/04/11 18:18:05.18 XPIrDgkS.net
カニなのには意味あるの?

781:デフォルトの名無しさん
17/04/11 18:21:50.61 XPIrDgkS.net
crustacianか

782:デフォルトの名無しさん
17/04/11 21:57:25.49 yg0Uq9Gu.net
tree構造作るのがほんと厄介なんだけど、どうにかやりようあるの?
URLリンク(github.com)
URLリンク(github.com)

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

784:デフォルトの名無しさん
17/04/12 16:58:14.00 JkQ01euR.net
物理的にツリーなものでもデータ構造はツリーにしなきゃいいのかなぁ

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

786:デフォルトの名無しさん
17/04/13 13:41:01.33 eTJjP5LI.net
先生、rustが使いたいです、、

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

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

788:デフォルトの名無しさん
17/04/14 18:06:23.00 4vbREvue.net
一応日本のコミュニティーらしきものあるんだね

789:デフォルトの名無しさん
17/04/14 23:18:47.00 l3/xlJJH.net
英語話せない原人特有文化

790:デフォルトの名無しさん
17/04/15 11:23:25.59 7FkW2H/i.net
あなたも原人なんでしょ?

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

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

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

794:デフォルトの名無しさん
17/04/17 13:45:45.69 kHe1qBP+.net
完全に基地外でワロタ

795:デフォルトの名無しさん
17/04/17 14:00:48.95 NJsGU


796:HFQ.net



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

798:デフォルトの名無しさん
17/04/18 14:25:16.72 avtppHhA.net
RLS now available on nightly
URLリンク(www.jonathanturner.org)

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

800:デフォルトの名無しさん
17/04/19 06:39:40.15 iVXI/rsk.net
>>784
お前のコメントよりは役に立つ

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

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

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

ここ2chだよ?

804:デフォルトの名無しさん
17/04/20 00:46:43.55 Vb04xDKl.net
ここtwitterじゃないよ?

805:デフォルトの名無しさん
17/04/20 08:56:40.43 Cjpsv+ZG.net
>>784
しね

806:デフォルトの名無しさん
17/04/20 09:02:46.45 5tsEknBd.net
>>782
高橋せんせい、20年遅れのステマですか?

807:デフォルトの名無しさん
17/04/20 16:14:47.79 zhxiAG0o.net
>>768-773
ツリーとグラフを作る記事があった。

グラフとアリーナ型メモリアロケータ
URLリンク(hazama1616.blogspot.jp)
Rust でグラフ構造や木構造を作る
URLリンク(agtn.hatenablog.com)

808:デフォルトの名無しさん
17/04/21 08:10:49.54 OiVWjQVQ.net
いつの間にかSerdeが1.0になっててビビる
Lifetimeを用いたzero-copy deserializingとか胸が熱いな
URLリンク(github.com)

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

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

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

812:デフォルトの名無しさん
17/04/24 01:17:18.29 iqgOzto7.net
Firefoxがキラーアプリなんじゃないの?

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

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

814:デフォルトの名無しさん
17/04/24 10:05:04.89 Ce/YXV/H.net
grepがキラーアプリ…

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


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



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

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

819:デフォルトの名無しさん
17/04/24 13:51:36.49 37xJWuQr.net
rustで速く書くのってむずいよね

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

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

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

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

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

825:デフォルトの名無しさん
17/04/24 23:01:27.18 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:デフォルトの名無しさん
17/04/25 00:11:02.98 Pw354+ah.net
>>754
ファミコンエミュ

827:デフォルトの名無しさん
17/04/25 01:15:27.81 82uAhcwa.net
>>801
Rocket良さそうじゃん
まだまだ発展途上だけど

828:デフォルトの名無しさん
17/04/26 05:04:32.67 o3HY2tae.net
何も作らず競技プログラミング

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

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

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

832:デフォルトの名無しさん
17/04/27 13:02:01.11 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:デフォルトの名無しさん
17/04/27 14:46:59.61 1aP1zib4.net
Rustで面倒なのは所有権が曖昧だったり循環参照の可能性があるようなデータ構造でしょう

その本は、破壊的変更が無いorマイナーな関数型言語で効率の良いデータ構造をどう実現するかっていうのが主題のはず
Rustは破壊的更新もできるしinterior mutabilityもCellやRefCellで実現できるし、逆にGCが無いから対象領域からずれてる
面白い本だけど、Rustに直接役立つかは微妙

835:デフォルトの名無しさん
17/04/27 17:37:30.60xrM2MxeD.net
なるほどー
気になってたけど買わんでいいかな

836:デフォルトの名無しさん
17/04/28 02:50:31.12mEZ3JB/W.net
Announcing Rust 1.17
URLリンク(blog.rust-lang.org)

837:デフォルトの名無しさん
17/04/28 07:59:12.67Z9SVt9YO.net
>>819
くじけないなww
邪魔だからそろそろコテハン名乗れよ

838:デフォルトの名無しさん
17/04/28 08:13:14.38zzlMZhy4.net
↑なんなのこの変な人?

839:デフォルトの名無しさん
17/04/28 09:13:20.43HrVNNKWr.net
マルチポストがうざい

840:デフォルトの名無しさん
17/04/28 16:35:55.80QjsjY1pw.net
わざわざ出張してくるアンチって必ずいるよね

841:デフォルトの名無しさん
17/04/28 18:50:38.30VS+BUfpC.net
>>820
しね

842:デフォルトの名無しさん
17/04/28 19:44:43.43wIDo3kGW.net
何でお前らはわざわざ構ってちゃんに構っちゃうんだろうね

843:デフォルトの名無しさん
17/04/28 23:26:08.537tdFyaEw.net
Rustの作り手っつーかServoチームがどうやって木構造を実現してるか気になるな。

木が作れない言語とかCの置き換えになる訳がないから、どっかにカラクリがありそう。

844:デフォルトの名無しさん
17/04/28 23:29:09.90EB1hHvLp.net
pfdsはモナドとかそっちの話
ML系はtracing gc載ってるもんだと
考えていいからrustで苦労する部分は関係ない。

845:デフォルトの名無しさん
17/04/28 23:54:26.387tdFyaEw.net
つーかRustの中の人が「Data Structure in Rust」みたいな記事書けば解決する気がした。

846:デフォルトの名無しさん
17/04/29 01:08:36.27JJtwNZEl.net
Haskellみたいなイミュータブルなツリーを作ればいいんじゃないの?

847:デフォルトの名無しさん
17/04/29 02:09:39.72rB0Fvmgg.net
>>828
データ構造に関わるRust言語仕様については詳しい記事がある。
でも>>203によるとRustのデータ構造は発展途上だから
「Data Structure in Rust」は記事よりWikiの方が良いと思う。

Interior mutability in Rust: what, why, how?
URLリンク(ricardomartins.cc)

848:デフォルトの名無しさん
17/04/29 06:52:18.73gpBNKKlw.net
話題ないからって荒れてないで誰か>>819に構えよ
ずっとコピペしてんだぞ...

849:デフォルトの名無しさん
17/04/29 06:54:38.46itnDcJNc.net
時報みたいなもんだと思ってるし、特に必要ないけど別段いらないと騒ぐほどのものでもないし

850:デフォルトの名無しさん
17/04/29 07:23:49.26ml8UsgdM.net
SPAMとしても頻度的にたかが知れてるし

851:デフォルトの名無しさん
17/04/29 08:21:53.98rB0Fvmgg.net
>>831
Rust blogは巡回してないから新バージョンを知らせてくれるのはありがたい。
でも新バージョンに関するコメントを読みたければredditも読もう。
Cargoの新機能をコントリビュートした人が来ている。

The Rust Programming Language
URLリンク(www.reddit.com)
Announcing Rust 1.17!!
URLリンク(www.reddit.com)
Announcing Rust 1.17
URLリンク(www.reddit.com)

852:デフォルトの名無しさん
17/04/29 08:59:42.66odlCpz4e.net
>>831
メンヘラ臭い拒否反応だな。

853:デフォルトの名無しさん
17/04/29 09:25:50.464GuMMMYu.net
"foo" + "bar"
はOKな糖衣構文にしちゃえばいいのに

854:デフォルトの名無しさん
17/04/29 14:34:05.02TTyY7fIa.net
時報とは言い得て妙だな。6週間のリリースサイクルだし。

855:デフォルトの名無しさん
17/04/29 16:57:12.44S/2IADGO.net
>>836
それは意見がわかれるところじゃね?
暗黙の型変換は、知っている人には便利だけど、知らない人には解析困難な不具合の元になるじゃん?

856:デフォルトの名無しさん
17/04/29 16:59:38.96G5FLqmyn.net
型変換じゃなくて、リテラルに限ってはconcat!で置き換えるという意味じゃない?
どちらにせよ混乱の元には違いないが

857:デフォルトの名無しさん
17/04/29 17:20:18.00wKCke3eM.net
>>838
Scalaとかまさにその辺(implicit)で死に体だな。
rustもderefで似たようなことになるけど。

858:デフォルトの名無しさん
17/04/29 17:51:01.81KCJQ+KNC.net
前はderef先のメソッドがドキュメントになかったから結構阿鼻叫喚だった
Vecのiterってどこに定義されているのか分からなくて悩んだ記憶がある

859:デフォルトの名無しさん
17/04/29 22:41:34.26XAi4G4Te.net
rustdoc使いもんにならんから。だいぶマシになったけど。

860:デフォルトの名無しさん
17/04/29 22:48:33.12kikbE+mq.net
ドキュメントに嘘書いてる言語って早晩滅びる印象があるから
言語に機能足すより重要だと思うんでなんとかして欲しいところではある。

861:デフォルトの名無しさん
17/04/30 14:13:59.03dMKT6vJn.net
今のCargoの仕様だと、serdeとserde_deriveに依存する"serde" featureを作る、みたいなことが出来なくてクソ
Issue rust-lang/cargo#1286は放置されているし

862:デフォルトの名無しさん
17/04/30 15:06:58.47zu6P/YtU.net
自分でPR作っていいのよ?

863:デフォルトの名無しさん
17/04/30 15:10:11.47dMKT6vJn.net
Pre-RFCレベルで議論が止まってるのにPRを出しても、ほら、アレじゃん?

864:デフォルトの名無しさん
17/04/30 15:25:28.02yC307k3w.net
Rustという存在がそもそもクソなのにたかが1feature取り上げてクソっていうの滑稽だと思いません?

865:デフォルトの名無しさん
17/04/30 15:30:18.21dMKT6vJn.net
げ、召喚しちゃった

866:デフォルトの名無しさん
17/04/30 15:36:13.13yC307k3w.net
>>848
あんたも本当はRustなんて使い物にならないって分かってるんだろ?

867:デフォルトの名無しさん
17/04/30 16:10:58.91zu6P/YtU.net
議論進んでないけどissueではalexもいいじゃんって言ってるし、コードPR出したら話進むんでね
実装難易度を計ってないから実装大変なら議論をせっつくしかないけども

868:デフォルトの名無しさん
17/04/30 21:51:06.29cg8WUYRD.net
2017年のロードマップ見る感じ、
今はどっちかっていうと敷居下げるための開発がメインになってて、
細かい融通の効かないところを直す作業に回してるリソースは少なそうな印象。

869:デフォルトの名無しさん
17/05/01 11:29:01.79hzoMRY/L.net
裾野広げようとしたり敷居下げたりするとろくなことにならない

870:デフォルトの名無しさん
17/05/01 13:37:42.52DeKBxqzS.net
一昔前は閉鎖的、独善的にOSS作って製大


871:にやらかしたPJが多かったし、裾野を広げてくれた方が良いよ GNU周りなんて焼け野原ってレベルじゃねーぞ



872:デフォルトの名無しさん
17/05/01 14:12:45.45KtAp36Sz.net
Guileはmakeやgdbに組み込まれたしRは大成功じゃん__

873:デフォルトの名無しさん
17/05/01 14:53:36.49Hs34Q6fD.net
裾野広げると大火傷するのはその通りだが、敷居下げるのは必要じゃないのか?元が高すぎるって意味で。
そのためのLanguage Server Protocolだったり、コンパイルメッセージの改善だったりだと思ってるが。

874:デフォルトの名無しさん
17/05/01 23:46:06.84ZiZ/DZmA.net
rustcのエラーメッセージは親切すぎてjsonフォーマットで取得したときの短い説明くらいでもいいと思う。
javacの仕様に忠実で簡潔なメッセージみたいなのが仕様覚えた時最強よ

875:デフォルトの名無しさん
17/05/02 00:05:58.80Wqf9gHHS.net
プログラミング業務に従事する人の全てがプログラミング得意ではないってことだから最大の安全策(ヘボが1人でもいたら死ぬので)

876:デフォルトの名無しさん
17/05/02 01:06:19.38C2K+k/F2.net
今のメッセージはだらだらと出力垂れ流し過ぎで
注目してほしい所がどこか分かりづらいから
コード書けない人は元から解読不能じゃないの?

877:デフォルトの名無しさん
17/05/02 06:32:24.31hjAzwlgs.net
rustc --verbose-error
みたいなオプション付与するFR出そう(迷走感

878:デフォルトの名無しさん
17/05/02 18:52:28.66ul1GfwIs.net
error:の行だけgrepすれば

879:デフォルトの名無しさん
17/05/03 18:44:17.67joqUnMHM.net
リリースノートにある Stabilized APIs ってどういう意味?安定化?

API仕様は固定化されて、今後変更ありませんってこと?
それとも実装が改善されて、より安定しましたよってこと?

880:デフォルトの名無しさん
17/05/03 18:47:35.13joqUnMHM.net
あ、失礼
どうも単に「そのバージョンから追加されましたよ」って感じぽいね

881:デフォルトの名無しさん
17/05/03 19:08:10.33SEHmhXUn.net
nightlyで実装しててstableに入った感じ?
破壊更新ないとは言え、変わる/代替するAPIはあるんだろうねぇ

882:デフォルトの名無しさん
17/05/03 19:44:38.59joqUnMHM.net
> nightlyで実装しててstableに入った感じ?

[This is a nightly-only experimental API.]からのパターンもあるのかな?
[Unstable]が外れたとき Stabilized API ではあるみたい

例:
1.14から[Unstable]として存在してて
1.16からStabilized APIとされたstr::repeat

URLリンク(doc.rust-lang.org)
fn repeat(&self, n: usize) -> String
Unstable (repeat_str #37079)
Create a String by repeating a string n times.



URLリンク(doc.rust-lang.org)
fn repeat(&self, n: usize) -> String
1.16.0
Create a String by repeating a string n times.

883:デフォルトの名無しさん
17/05/03 22:57:01.88K7D8UWDQ.net
unstableだとAPIが変更される可能性があって、nightlyのrustcで明示的にfeature宣言しないと使えない、つまり、unstableなの覚悟して使うことしかできない
stableになるとnightly以外でも何もしなくても使える、かつ、rust 1.xの間は互換性が保たれることが保証されてる

884:デフォルトの名無しさん
17/05/03 22:58:45.11K7D8UWDQ.net
新しいAPIはunstableで入れていろいろな使い方を試し すことでAPIの問題を洗い出す
問題がなさそうならstableにする、と言う流れでAPIは追加されていく

885:デフォルトの名無しさん
17/05/03 23:39:38.56pt3eTQQ5.net
変更されうるのだとしたらもはや"stable"じゃないわな

886:デフォルトの名無しさん
17/05/03 23:53:59.46+mfvcDBb.net
>>862 > 「そのバージョンから追加されましたよ」 追加されるタイミングはnightlyだからそれはない。 unstable feature-gateいらなくなったって意味だと思う。



888:デフォルトの名無しさん
17/05/04 06:16:36.53RKPYINUc.net
破壊的変更に興奮するのはD言語erだけだしな。

889:デフォルトの名無しさん
17/05/04 15:59:11.46pmL645Ea.net
言語仕様を破壊的に変更します

890:デフォルトの名無しさん
17/05/05 20:57:36.19evgWhU4H.net
OpenGLまわり調べたんだけど、gliumという有力なやつが死んでて悲惨な感じ。

891:デフォルトの名無しさん
17/05/05 23:50:31.44YwW9QOYO.net
お前らもちゃんと回答しとけよな
Launching the 2017 State of Rust Survey - The Rust Programming Language Blog
URLリンク(blog.rust-lang.org)

892:デフォルトの名無しさん
17/05/06 00:09:45.35ia8ugx7T.net
>>871
古い。glとglutin使え

893:デフォルトの名無しさん
17/05/06 10:48:00.25RxOQwEqu.net
>>865-866
などと油断しているとマナーの悪いライブラリが現れて既成事実化パンチを食らわす

894:デフォルトの名無しさん
17/05/06 10:56:40.09KOSYyPxU.net
>>873
glutinも同じ作者だからしんでんじゃないの?

895:デフォルトの名無しさん
17/05/06 20:14:14.952tqhhaHc.net
[u8](ただの数値の配列)とバイナリデータ(画像とか動画とか)で別の処理をしたいのですが、バイナリ型みたいなものってないのでしょうか?

896:デフォルトの名無しさん
17/05/06 22:37:18.12MU54dFC0.net
>>876
rustは直接Read実装する設計だからStreamの概念そのものがないからない。
当然、その設計ではダメだからそこら辺やってるのはあちこちで車輪量産の重複祭りの無駄まみれ。

897:デフォルトの名無しさん
17/05/06 23:44:29.00btijA/Fa.net
これひとつとってもいかにRustが使えないかわかってくれるかな

898:876
17/05/07 00:00:41.878fnm7svP.net
>>877
えぇ…ないんですか…

899:デフォルトの名無しさん
17/05/07 00:53:05.68/2PQHse0.net
[u8]とバイナリって何が違うの?(無知)

900:デフォルトの名無しさん
17/05/07 01:39:18.20Qw7Hyr2c.net
>>876
struct Binary(Vec<u8>) みたいに強いtypedefするのが良いと思う

901:876
17/05/07 01:39:29.338fnm7svP.net
MessagePackみたいなやつを作ろうと思っているのですが、例えばMessagePackの場合こんなふうになると思うのですが
[1u8].to_msgpack() -> 0x91|0xcc|0x01
binary.to_msgpack() -> 0xc4|0xcc|0x01
こんな感じで出力するデータ(型情報の部分)を変えたいんです。
[u8]をラップする型を作るしかないのでしょうか?

902:876
17/05/07 01:43:28.968fnm7svP.net
>>881
やっぱりそうなってしまいますか…
標準ライブラリとかで代わりになる型とかがあれば良かったのですが…

903:876
17/05/07 01:46:59.728fnm7svP.net
あ、>>882の0xc4|0xcc|0x01は0xc4|0x0f|0xcc|0x01の間違いです

904:876
17/05/07 01:48:17.838fnm7svP.net
また間違えた…
0xc4|0x01|0xcc|0x01です…

905:デフォルトの名無しさん
17/05/07 02:03:35.41/2PQHse0.net
>>881の言う通り、newtype patternの典型的な適用対象だな

906:876
17/05/07 02:55:21.528fnm7svP.net
>>881の方法でやってみます!皆さんありがとうございました!

907:876
17/05/07 03:06:56.118fnm7svP.net
何度もすみません、struct Binary(Vec<u8>)をVec<u8>に戻すにはどうやればよいのでしょうか?

908:876
17/05/07 03:14:36.888fnm7svP.net
std::mem::transmuteを使ったら変換できたのですが、unsafeを使わずに変換できる別の方法はあるのでしょうか?

909:デフォルトの名無しさん
17/05/07 03:22:21.66/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
17/05/07 03:52:33.928fnm7svP.net
>>890
ありがとうございます!タプルだったのですね!

912:デフォルトの名無しさん
17/05/07 11:17:30.56VPDa5WUk.net
URLリンク(blog.rust-lang.org)
「電池同梱はめんどくさいから代わりにAPIガイドライン作るぜ!お前らの書いたもの公式に認めて欲しいならこの通りに書けよ!」だってよ。
ほんとモジカスは傲慢の極みだな

913:デフォルトの名無しさん
17/05/07 11:22:13.8214wasV+G.net
普通だろ。

914:デフォルトの名無しさん
17/05/07 11:34:54.97VPDa5WUk.net
>>893
え、どこが?
最近の言語では当たり前になった電池同梱放り投げて自分でライブラリ書かず、
あまつさえ人に丸投げしておいて、その人の書いたものに文句つけるって最高に傲慢だろ。
Google(Go)だってそこまで傲慢なことしてねえよ。

そんで成果はSerdeみたく背乗りするんだろ?
ただのショバ代やみかじめ料で懐肥やすヤクザじゃねえか。

915:デフォルトの名無しさん
17/05/07 11:45:28.65VPDa5WUk.net
あーでもこれ元々のモジカスの商売のやり方だし、いつも通りっていえばいつも通りか。

916:デフォルトの名無しさん
17/05/07 12:04:33.68ddnrmDhK.net
Google社員はお帰りください

917:デフォルトの名無しさん
17/05/07 12:29:03.870mnoYXCa.net
電池てなに

918:デフォルトの名無しさん
17/05/07 12:39:58.75/2PQHse0.net
Serdeといえば、dtolnayがlibs teamに入るってよ
URLリンク(internals.rust-lang.org)

以前からlibs teamっぽいことしてるなとは思っていたが。これとか
URLリンク(github.com)

919:デフォルトの名無しさん
17/05/07 13:41:03.47yFu/STaX.net
人様の言語にただ乗りしてる奴がなんか言ってら

920:デフォルトの名無しさん
17/05/07 13:41:52.62Ca8+Q/ub.net
>>897
Rustを持て囃してるバカって電池同梱すらしらないで言語語ってんのか

921:デフォルトの名無しさん
17/05/07 13:47:52.30zdh+Rbcj.net
え、Rustって電池同梱じゃないの?ゴミじゃん

922:デフォルトの名無しさん
17/05/07 14:04:46.63T2T4uK8j.net
まさかRustがLLだとでも言うつもりか?

923:デフォルトの名無しさん
17/05/07 14:10:00.160LwsXYr3.net
Goはコンパイル言語だけど電池同梱に近いよね。

924:デフォルトの名無しさん
17/05/07 14:31:33.96sD8ZUjOP.net
(電池ください)


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch