◎正当な理由による書き込みの削除について:      生島英之とみられる方へ:

Rust Part5


動画、画像抽出 || この掲示板へ 類似スレ 掲示板一覧 人気スレ 動画人気順

このスレへの固定リンク: http://5chb.net/r/tech/1518347244/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

1デフォルトの名無しさん2018/02/11(日) 20:07:24.54ID:ri7dLd1B

2デフォルトの名無しさん2018/02/11(日) 20:11:06.61ID:ri7dLd1B
>>1補足

関連スレ
プログラミング言語 Rust 4【ワッチョイ】
http://2chb.net/r/tech/1514107621/

スレタイと本文を簡素にして、リンクを追加
ワッチョイの有無は話し合って決めてくれ

3デフォルトの名無しさん2018/02/11(日) 20:19:50.66ID:Bow9SKgP
ワッチョイが怖いアンチ専用スレ

4デフォルトの名無しさん2018/02/11(日) 20:23:24.61ID:A30L58fq
乱造されたくそ言語のひとつ

5デフォルトの名無しさん2018/02/11(日) 20:50:40.14ID:o0/wxHz/
真正キチガイとそのとりまき専用スレです。

6デフォルトの名無しさん2018/02/11(日) 20:51:16.50ID:o0/wxHz/
本スレ

プログラミング言語 Rust 4【ワッチョイ】
http://2chb.net/r/tech/1514107621/

7デフォルトの名無しさん2018/02/16(金) 23:17:53.59ID:Amur4Tpf

8デフォルトの名無しさん2018/02/17(土) 00:41:40.05ID:hqbRKzvj
http://wolfbash.hateblo.jp/entry/2017/07/30/193412
やはりRustはクソの言語未満
良識ある人はきちんとわかっている

9デフォルトの名無しさん2018/02/17(土) 02:03:04.39ID:E39jLpI9
>>8
このブログが良識のある人の記事に見えるってのはある意味すごいと思う。
マジで言ってんの?ネタじゃなかったから単なるバカだよ?
Nimやったことないんだけど、このブログ書いた奴のせいで
俺の中でのNimへの風評被害が超激しいんだけど。

10デフォルトの名無しさん2018/02/17(土) 20:05:16.72ID:7f4EmjrX
>>8
ネタにマジレスしてるはてな民多くてワラタ
2chもはてブも変わらねえな
インターネットはこうでなきゃな

11デフォルトの名無しさん2018/02/17(土) 23:24:31.02ID:kWt1jk5L
>>9
正しくRustとNimを比較してRustにいいとこなどないと論理的に談断じてる
そこまで言うなら反論記事よろ

>>10
マジレスも何も事実じゃん

12デフォルトの名無しさん2018/02/17(土) 23:54:44.59ID:J1S1NncJ
金子勝とかNimキチガイとかrustアンチするにしても筋悪すぎるしアンチを装った信者の犯行では

13デフォルトの名無しさん2018/02/18(日) 09:48:13.72ID:KxaRPyjO
Nimおじさんの布教の熱意は見習いたい
Rustオタは身内で盛り上がってるだけだからな

14デフォルトの名無しさん2018/02/18(日) 10:06:29.06ID:rF0gbaqf
ここまで理論的な反論なし
まあできないんだろうね。言語未満Rust

15デフォルトの名無しさん2018/02/18(日) 10:10:11.91ID:rF0gbaqf
Nimとの対比でRustは言語未満のゴミだと暴かれている上に
それを布教してるやつらは金子先生の鋭い指摘で詐欺集団だと暴かれているのに
信者は人格攻撃して矛先を反らすだけ

よっぽど反論できなくて悔しいんだろうね

16デフォルトの名無しさん2018/02/18(日) 13:34:10.14ID:MGQ/Ou+a
悔しいんじゃなくてバカらしい。
あと、書いたところでこっちにメリットがない。
具体的なメリットを提示してくれるなら書くかも。
反論記事なら雑だけど一応あった。
書いた後であまりのバカらしさに自ら記事を消したらしい。
アーカイブは残ってるから、それでも読んでろ。
http://ubnt-intrepid.hatenablog.com/entry/2017/10/03/135742

17デフォルトの名無しさん2018/02/18(日) 15:07:59.73ID:yl4ANYcz
Rustはプログラミング言語未満というのは >>8 の意見だと思うけどプログラミング言語の定義が曖昧すぎて反論のしようがないしそれで勝利宣言されてもね

18デフォルトの名無しさん2018/02/18(日) 16:22:00.83ID:29WPmCUu
>>16
書いたらモジラからお給金出るでしょ

>>17
意味のあるプログラム書こうとしたら
とたんに借用とかでコンパイル通らなくなってまともにプログラミング出来ないものがプログラミング言語と言えるのか?
まあMalbolgeやBrainfuckがプログラミング言語と呼べるキ◎ガイならRustもプログラミング言語かもね

19デフォルトの名無しさん2018/02/18(日) 16:23:51.22ID:29WPmCUu
あとその人か反論記事消したのも
本当はRustが使い物にならないことを察してしまったけど
それを言うと信者に突撃されるからぼかして消しただけでしょ
表向きの理由で全消しするのは不自然だから

20デフォルトの名無しさん2018/02/18(日) 17:02:55.71ID:AoWf7oui
ほんそれ

21デフォルトの名無しさん2018/02/18(日) 17:24:33.90ID:rbmqjGBD
あぁ、Rustのネガキャンするとお給料がでるのか……

22デフォルトの名無しさん2018/02/18(日) 17:25:09.88ID:Cm7UHG2I
提灯記事書いてモジラからお金もらうにはどうしたらよいのですか?

23デフォルトの名無しさん2018/02/18(日) 17:41:48.25ID:oGsannLj
「俺がコンパイル通せるコード書けないからRustは糞」って主張で首尾一貫してるところはすごい

24デフォルトの名無しさん2018/02/18(日) 17:44:53.63ID:oGsannLj
それとも世のRustで書かれてるアプリケーションは実はすべて別の言語で書かれているという主張だろうか

25デフォルトの名無しさん2018/02/18(日) 17:45:28.72ID:oGsannLj
はたまたRustで書かれてるものはどんなものであれまともなものとは認めないかな

26デフォルトの名無しさん2018/02/18(日) 18:02:38.46ID:29WPmCUu
2番目が正解だな

27デフォルトの名無しさん2018/02/18(日) 18:06:09.75ID:29WPmCUu
オープンソースでRustで書かれてるやつも
なんとかコンパイルだけ通したような
保守性も何もない個人が脳トレで書いたようなものばかり
まともな製品として書かれたコードはGithubにも見つからなかったぞ

ソースコード公開してるものがそうなんだから
企業がRust使ってると称するなにかは実際にはRustなんて使っておらず
適当な別の言語で書いてRust使ってると言えばモジラから金が出る
そういう仕組みと考えるのが自然な訳だ

28デフォルトの名無しさん2018/02/18(日) 18:36:35.71ID:MGQ/Ou+a
で、このアーカイブ記事に対する論理的な反論はできないと。
あと、GitHubのまともなコードが見つからなかったって点も
どの辺がまともじゃないのかについてはコードでは示せないと。
それで自分の言葉に説得力があると思ってるのが不思議でならないんだが。
あと、俺にも「モジラからお金もらう方法」を教えて。
ホントにもらえるんだったら絶対に反論記事書いてあげるから。

29デフォルトの名無しさん2018/02/18(日) 18:45:26.87ID:rbmqjGBD
ぐぇ crate uuid のインターフェースが換わりよった
ParseError が std::error::Error を impl しなくなったのは何故だ……

30デフォルトの名無しさん2018/02/18(日) 18:52:54.71ID:29WPmCUu
>>28
なんで取り下げられた記事に反論しないといけないの?
取り下げたってことは「この記事は間違いだった」というメッセージでしょ

モジラから金貰う方法とか俺に聞くなよ
モジラのページにある自称Rust使ってる企業に聞いてくれよ

31デフォルトの名無しさん2018/02/18(日) 18:54:29.18ID:29WPmCUu
>>29
な。Rustなんて使うからそうなる
一貫したインターフェースを提供することすらできん言語だ

32デフォルトの名無しさん2018/02/18(日) 18:59:05.94ID:XQEgm6DO
取り下げた理由も書いてあるのに読まずに決めてかかってるのほんとブレねぇな

33デフォルトの名無しさん2018/02/18(日) 19:01:18.09ID:yl4ANYcz
まともな製品という言い方もそうだけどまともかどうかの判断基準は「俺が気に入るかどうか」以上のものがあるように読みとれなかったので議論にならない
論理的な会話ができてないのはどちらなんだか

34デフォルトの名無しさん2018/02/18(日) 19:03:55.06ID:rbmqjGBD
>>31
レスしてもらったのはありがたいが
俺はお前さんから見ればRust信者だわ すまん

元よりどんな言語使ってもインターフェース変更はある
今回は、追従する作業に五分も掛からんかった
後はテスト流して終わり

インターフェースの変更が出来ないのを理由に
開発が鈍化されるよりマシだと思うよ

35デフォルトの名無しさん2018/02/18(日) 19:04:52.12ID:29WPmCUu
クソな例挙げようと思ったが挙げるまでもなく>>29が素晴らしい例を出してくれたな

Nimの人のブログにもあったが、ロジックと関係ないスコープ切りが必要なせいでコードがスパゲッティになるとか、
ハッシュテーブルと所有権がコンフリクトして動的計画法が書けないとか
所有権のせいでそもそも循環グラフ書けないとか
いくらでもクソな所出してやれるが?

36デフォルトの名無しさん2018/02/18(日) 19:09:06.24ID:29WPmCUu
それ以上に、難解すぎてロジックと関係ないコード上の手入れが膨れ上がって
結果ロジックにバグが増えたりインターフェイスの非互換が発生したりするんだよ
だから致命的に壊れた言語って言ってる

37デフォルトの名無しさん2018/02/18(日) 19:16:07.43ID:29WPmCUu
>>32
だから信者からの突撃回避だろってそれ

38デフォルトの名無しさん2018/02/18(日) 19:35:38.35ID:1PPXAZA8
反論ブログの人が今でもRust書いてるのも、アイコンがRustのマスコットキャラなのも信者の突撃回避なのですね
Nimのブログ記事にブコメしてるのもみんな信者かMozillaの工作員なんですね

39デフォルトの名無しさん2018/02/18(日) 19:38:46.94ID:yl4ANYcz
コンパイラが理解できない所有権の問題がある場合はunsafeというescape hatchがあってプログラマの責任でコードが書けるようになっている
これはすごく実用的な割り切りだと思うんだけど>>35はまた意見が違いそう

40デフォルトの名無しさん2018/02/18(日) 19:44:23.34ID:yl4ANYcz
コンパイラが賢くあるべきなのか、コードを書く側が賢くあるべきかとい二つの考え方があって
>>35は後者、Rustは前者の立場をとっていて単純に趣味に合わないだけなんだと思うが

41デフォルトの名無しさん2018/02/18(日) 20:00:00.93ID:aEar2ian
比較対象にされてるNimはまともなプログラミング言語とのことで、まともな言語とはまともな製品を作れる言語とのことらしいが
そうなるとNimはRust以上に普及しててまともな製品がリリースされていないと矛盾しないか

42デフォルトの名無しさん2018/02/18(日) 20:06:17.02ID:29WPmCUu
>>41
個人で作ってる言語と
国際的詐欺会社がバックにいるのとじゃどうしても個人が負けるわ

43デフォルトの名無しさん2018/02/18(日) 20:10:47.25ID:yl4ANYcz
Mozillaが詐欺企業なんて聞いたことないけどどういう罪状があるのか詳しく教えて欲しい

44デフォルトの名無しさん2018/02/18(日) 20:28:16.57ID:FZoaWpvb
こんだけアンチが常駐する言語スレも珍しい
PHPより酷く感じる

45デフォルトの名無しさん2018/02/18(日) 20:33:28.85ID:DdrYOgdV
スレ人口少ないのもあるが常駐されたところで同じ主張繰り返すだけで特に実害がないからでは
別スレもあるし

46デフォルトの名無しさん2018/02/18(日) 20:38:05.10ID:yl4ANYcz
ほんとうにMozillaが金をばらまいてRustを普及させようとしているなら断る人もいるはずで
世界的にやっているにもかかわらずそのことに言及してるのがこのスレにいる一人だけという時点で信憑性も何もないというのがね

47デフォルトの名無しさん2018/02/18(日) 20:38:58.59ID:yl4ANYcz
言語について批判できるんだから変なMozilla批判は引っ込めたほうが説得力持たせられるのに
もったいない

48デフォルトの名無しさん2018/02/18(日) 20:55:59.22ID:29WPmCUu
札束でぶん殴られて断れないような、そういう相手を選んでるだろうしな
あのMercurialもGitにボロ負けしてるから、資金で殴れば下るだろうって狙われたんだろう

49デフォルトの名無しさん2018/02/18(日) 21:07:21.89ID:MGQ/Ou+a
>>30
お前しか「モジラに金もらってる」なんて言ってる奴がいないんだからお前に聞くしかないだろ?
バカなの?脳味噌に草でも生えてんの?
あとGitHubの件はスルー?コード例はやっぱり出せないの?
動的計画法はRustじゃ書いたことないから分からんけども、書けないのはお前だけじゃないの?
「書けない部分を具体的にコード例で示して」毎回言ってるよね?
「同じことを何度も言わせるな」って注意されたことないの?今注意したからもう同じこと言わせないでね。
循環参照についてはRcとWeak使えば書ける。可変にしたければさらにRefCell使えばいい。
それも何度も言ってるよね?ボケてんの?草以外に花も咲いてそうだな。
RcやRefCellが気に入らんならお前とはスタイルが合わないってだけの話だ。去ね。

50デフォルトの名無しさん2018/02/18(日) 21:18:37.37ID:MGQ/Ou+a
あと最悪、動的計画法や循環参照がお前に書けなかったとしても、
書けてるやつのライブラリを使えばいいだけの話では?
自分で書くよりまずライブラリを探す。今の時代はこれが常識だろ?
車輪の再開発は勉強するときだけやってればいいんだよ。

51デフォルトの名無しさん2018/02/18(日) 21:23:52.35ID:29WPmCUu
今まで触れずにおいてやったのにそこまで言われたから言うけど
「書けないもの」の「ソースコード用意しろ」ってひどい矛盾したこといってるの分かってます工作員さん?

52デフォルトの名無しさん2018/02/18(日) 21:27:56.00ID:yl4ANYcz
コンパイルが通らないソースコードなら書けるよね

53デフォルトの名無しさん2018/02/18(日) 21:28:34.77ID:yl4ANYcz
どうせ次はRustは触るのも汚らわしいから書かないとか言うんだろうな

54デフォルトの名無しさん2018/02/18(日) 21:29:02.25ID:MGQ/Ou+a
Rustでコンパイルエラーしてるソースコードを
コンパイルエラーした状態のままでいいから見せろって言ってるの。
あと、「C(他言語でも可)だとこう書けるのに。。。」っていうソースも載ってればベスト。
分かってもらえます?

55デフォルトの名無しさん2018/02/18(日) 21:30:40.70ID:yl4ANYcz
borrow checkerについて文句言ってるんだからせめて型検査くらいは通ったソースにしてくださいね

56デフォルトの名無しさん2018/02/18(日) 21:39:58.74ID:29WPmCUu

57デフォルトの名無しさん2018/02/18(日) 21:49:04.52ID:yl4ANYcz

58デフォルトの名無しさん2018/02/18(日) 21:50:32.62ID:yl4ANYcz
HashMapのエントリーへのポインタは新しいエントリー追加したらreallocなどが呼ばれて無効になるかもしれないので取り回すのがそもそも間違い

59デフォルトの名無しさん2018/02/18(日) 21:52:54.02ID:MGQ/Ou+a
ちゃんとソースコード読みこんでないから何がしたいのよく理解してないけど
取り合えずコンパイル通すだけならすぐ出来たよ。
http://play.integer32.com/?gist=9333d5344adb9cdf5ef8292a20ec6c24&;version=stable

60デフォルトの名無しさん2018/02/18(日) 21:56:25.20ID:yl4ANYcz
NLL有効にしたら元のコードでも通った

http://play.integer32.com/?version=nightly&;mode=debug

61デフォルトの名無しさん2018/02/18(日) 21:57:12.95ID:rbmqjGBD
俺はスコープ切る方が好きかな〜
http://play.integer32.com/?gist=e73044b8a25fa1c2403ee1ccb74356f6&;version=stable

62デフォルトの名無しさん2018/02/18(日) 21:57:26.76ID:yl4ANYcz

63デフォルトの名無しさん2018/02/18(日) 22:00:17.99ID:xYBf7ssj
瞬殺されてて草

64デフォルトの名無しさん2018/02/18(日) 22:21:47.77ID:xYBf7ssj
この流れ見ると、NLLはRustのハードルを思った以上に下げるのでは?と思わずにはいられない

65デフォルトの名無しさん2018/02/18(日) 22:48:08.85ID:MGQ/Ou+a
その程度のエラーで投げるやつは少数派なんじゃ。。。とおれは思うけど。
まぁ、それでハードルが下がるのならそっちのほう良いとは思う。
けど、その程度で前に進めなくなるならすぐに別の問題にもぶち当たってやっぱり投げちゃうと思うよ。
そういう奴らはRustはともかく、多分C, C++でも自分で書いたバグに潰されると思う。
結局GC付きの言語でしか書けないんじゃない?
念のため言っておくけど、GC付きの言語を批判する意図はないよ。
おれTypeScript好きだし、Goも嫌いじゃない。

66デフォルトの名無しさん2018/02/18(日) 22:57:58.52ID:xYBf7ssj
確かにここが解決しても型合わせとかで匙投げそうだな……
型の方はScalaとかSwiftとか別の言語で似たようなのがあるから参考にできる文献多そうだけど

67デフォルトの名無しさん2018/02/18(日) 23:36:51.46ID:MGQ/Ou+a
ジェネリックとトレイト境界の辺りとか最初は結構苦労した記憶がある。
特にfuturesクレートを初めて読んだときは?!??!?ってなった。
Rustは良い言語だけれど「難解」というところだけは否定できない。
そういえば、結局「モジラからお金もらう」方法教えてくれなかったなぁ。
お金欲しいのに

68デフォルトの名無しさん2018/02/19(月) 00:25:45.37ID:1MkUvafw
ちゃんとしたもの作れるわけないだろという主張してたのが昔は複数いたと思うが
Quantumが出たあたりで流石に取り下げたようだが
モジラは詐欺会社と言い張る一人だけが猛烈に頑張ってる

69デフォルトの名無しさん2018/02/19(月) 01:40:11.21ID:Lpico4kN
>>68
モーレツに墓穴掘ってるけどね

70デフォルトの名無しさん2018/02/19(月) 10:56:52.97ID:RCvG8f4a
安全性を最大限に気にしたい心配性な人向けの言語だよRust
そういう人たちはC/C++のコーディングで余計なことまで心配しすぎてストレスかかってるんだよ
かわいそうな人たちなんだよ

71デフォルトの名無しさん2018/02/19(月) 12:11:45.20ID:SrM6uAzC
心配しないと鼻から悪魔が出るのがC/C++なので心配しすぎということはない

72デフォルトの名無しさん2018/02/19(月) 20:47:53.37ID:Lpico4kN
例のアンチだが動的計画法がどうだ循環参照がどうだって騒いでたから
てっきりhtml5everくらい複雑なコード組もうとして悩んでたのかと思ってたけど
まさかのフィボナッチ数列でつまづいていたとは予想外だったわ

そういえば今年のstackoverflowのアンケート結果っていつ出るんだろう?
そもそも毎年いつ頃出てるのか知らないんだよね
これでRustが愛され言語ランキング1位から順位落としてたら
また「ついにクソ言語未満のボロが出てきたな」とか騒ぎだすんだぜきっと

73デフォルトの名無しさん2018/02/19(月) 22:42:50.63ID:soT5kWv3
前スレで、別のランキングでRustの順位が10位圏内に入ってなかったことについて
「工作ブーストが切れたな」とか言ってたからそういう方向になるんじゃね

74デフォルトの名無しさん2018/02/20(火) 22:57:20.29ID:fTmZl11b
Rustが、コードのスタイルガイド「Rust Style Guide」と自動整形ツールを導入する理由。
コードをめぐる議論を省き、メンタルの負担を減らし、プログラマを参加しやすくする
http://www.publickey1.jp/blog/18/rustrust_style_guide.html

75デフォルトの名無しさん2018/02/21(水) 00:44:44.35ID:s9stOBAB
unsafe使えば書けるだろ
C++みたいに全部unsafeな言語よりは安全

76デフォルトの名無しさん2018/02/21(水) 13:18:06.33ID:/K+AUWe/
C++ならゲーム
C#ならWindowsフォームアプリケーション
PHPならWebアプリケーション
Pythonなら機械学習

Rustは?

77デフォルトの名無しさん2018/02/21(水) 19:19:52.15ID:ariB2x93
ここはアンチが立てたキチガイ隔離スレです。
キチガイ以外書き込まないでね

78デフォルトの名無しさん2018/02/21(水) 20:00:01.69ID:RN4nUagC
本スレが過疎ってレベルじゃないし実質こっちが本スレだろ
隔離()スレに勢いで負ける言語があるらしい

79デフォルトの名無しさん2018/02/21(水) 20:01:45.70ID:ariB2x93
まあそうなんだけどね

80デフォルトの名無しさん2018/02/21(水) 21:13:09.57ID:wTdoLSiT
ほんとID:yl4ANYczは戦犯
コンパイルできない厨が最後のコンテンツだったのに…

81デフォルトの名無しさん2018/02/22(木) 09:08:35.45ID:L3BN3Bsr
いわゆるnewtypeパターンをLLVM IRで見てみると
ごく単純なコードで使う分には中身の要素に最適化されてるけど、
それ使って配列を作っただけで最適化されなくなる
こんくらいでゼロコスト抽象化とか言ってるの?

typeでは新しい型作れないし、
結局新しい効率的な型を作る方法さえないんだな

82デフォルトの名無しさん2018/02/22(木) 09:11:43.41ID:3phG5Adg
私にも敵が視える

83デフォルトの名無しさん2018/02/22(木) 12:12:42.57ID:rPAqV5nw
Rustで書くと実行時のメモリ使用量が増える感じは確かにある

84デフォルトの名無しさん2018/02/22(木) 12:12:50.46ID:nEiXxHSj
>>81
トレイトの特殊化でも無理?

85デフォルトの名無しさん2018/02/22(木) 12:45:10.40ID:ETY6aWa8
バグかもしれないからissue立てたら

86デフォルトの名無しさん2018/02/22(木) 13:46:42.12ID:H839Tp+8
>>81
ゼロコスト抽象化はトレイトやジェネリクスを言っててnewtypeパターンは関係ないと思うゾ


Cに比べたらC++もRustもGoもランタイムの分だけメモリ使用量は増えるよね
C++にはランタイム存在しないとか大笑いなギャグを素で言う輩は知らん

87デフォルトの名無しさん2018/02/22(木) 17:36:33.79ID:z8mO3my1
その理屈で言うとlibcもランタイムになりそう

88デフォルトの名無しさん2018/02/24(土) 01:22:38.50ID:it5yKGst
「Rust 1.24」リリース、コード整形ツール「rustfmt」をプレビュー導入 | OSDN Magazine
https://mag.osdn.jp/18/02/17/163000
> ビルドの速度は改善するが、出力されたバイナリの実行速度は少し遅くなるとしている。

89デフォルトの名無しさん2018/02/24(土) 05:12:18.52ID:sKnrWNZ+
むしろ今まで並列コンパイルをしていなかったのかという驚きがね...
型推論とかボローチェッカーとか大変だろうしと思ってたが、並列コンパイルで早くなるのは助かるよね

90デフォルトの名無しさん2018/02/24(土) 12:58:21.72ID:xVNPO9ZK
コンパイルを速くするためにプログラムの速度を犠牲にする
自称低級言語があるらしい

91デフォルトの名無しさん2018/02/24(土) 13:22:49.17ID:F+bRKUHR
言語じゃなくコンパイラの話だぞ
速度を求めたリリースビルドは並列なしに切り替えられる低級調製可能なコンパイラすごいよね(棒読み

92デフォルトの名無しさん2018/02/24(土) 14:20:25.52ID:Wx4opHQO
言語仕様には興味あるけど実装は興味ありませんって奇特な方には人気出そうな言語だね。

93デフォルトの名無しさん2018/02/24(土) 14:24:58.18ID:2/pmmfzJ
低レイヤ書く人は仕様より吐かれるバイトコードの方にしか興味ないから
完全にターゲティングに失敗してるよなこの言語

94デフォルトの名無しさん2018/02/24(土) 15:42:04.98ID:F+bRKUHR
むしろコンパイルを通すことが難しくても効率的で安全なマシンコードを出力して欲しい奇特な人向けだけどな
性能無視して生産効率だけを求めるならボローチェッカーとかunsafeとかトレイトとか面倒な言語仕様はマジ辛い

ただ緩く書きたいだけならSwiftとかGoの方が絶対良いよな
ランタイムが馬鹿でかかろうが、goroutineが冗長コストだろうが、言語仕様が楽なそれらは生産効率が断然良い

95デフォルトの名無しさん2018/02/24(土) 16:20:16.21ID:VjJ87j7v
安全はともかく、Rustが効率的なマシンコードを出力するというのは同意しかねる

96デフォルトの名無しさん2018/02/24(土) 22:13:15.47ID:Z3ajdh1I
やはりD言語が最強か

97デフォルトの名無しさん2018/02/27(火) 14:30:57.99ID:b6IHds+I
ソースとマシンコードが一対一になる言語は安心感あるな

98デフォルトの名無しさん2018/02/27(火) 14:35:36.74ID:UR+NQY+Q
やはりアセンブラか

99デフォルトの名無しさん2018/02/27(火) 14:36:01.06ID:MLnedvVc
【UFO】  山本太郎も横浜で遭遇  ≪W◇″型の発光体≫  世界にテレパシー放送  【大宣言】
http://2chb.net/r/liveplus/1519704223/l50

100デフォルトの名無しさん2018/03/01(木) 00:41:00.21
【お知らせ】Packt出版より Network Programming with Rust が発売されました。

101デフォルトの名無しさん2018/03/05(月) 15:59:00.63ID:iGOVMObf
https://play.rust-lang.org/?gist=0bed0aa16c0679665fee05cc6bfda41f&;version=nightly
fn nanka() -> Option<u32>{
println!("nanka called");
None
}
fn nanka2() -> Option<u32>{
println!("nanka2 called");
None
}
fn nanka3() -> Option<u32>{
println!("nanka3 called");
None
}

fn main() {
match (nanka(), nanka2(), nanka3()){
(None, _, _) => println!("nanka ha None"),
(Some(_), Some(_), Some(_)) => println!("some"),
(_, _, _) => println!("else")
}
}

nanka2, nanka3が呼ばれなくて困る!って副作用があるパターンぐらいじゃないですか?
nanka1がNoneと判定した時点ですぐprintしてくれないものでしょうか

102デフォルトの名無しさん2018/03/05(月) 19:46:36.35ID:S3T8EfYp
println!("nanka2 called"); とか副作用あるよね

103デフォルトの名無しさん2018/03/05(月) 21:01:55.89ID:YH1rjFLX
まさに副作用あって呼ばれなきゃ困るパターン書いてて草

104デフォルトの名無しさん2018/03/05(月) 21:44:52.21ID:rDxXu9uq
遅延評価の言語ではないから言語仕様的に全部評価することが保証されてるからなぁ
副作用なくて同じcrate内に処理があるなら最適化で消えるのでは

105デフォルトの名無しさん2018/03/07(水) 19:29:12.10ID:LRCrToXv
横着してたから気づかなかった…

>>104
https://play.rust-lang.org/?gist=548477e609761c03d062880ceebec28a&;version=stable
MIR見る限りあるっぽいです(これ副作用ないですよね?)

106デフォルトの名無しさん2018/03/07(水) 21:27:53.74ID:VXG6nm0Z
良く分からないけどReleaseにしてASM見ると消えてるみたい
MIRに対する最適化は現時点ではそれほどやられてなさそう

107デフォルトの名無しさん2018/03/07(水) 21:51:00.14ID:LRCrToXv
>>106
Debugなのを忘れた状態で見てcall nanka2があったので駄目かと思っていましたが
Releaseだと消えるようですね、すいません

108デフォルトの名無しさん2018/03/07(水) 22:06:37.97ID:5W30026P
言語仕様で消えるってどっか書いてある?探したけど見つからんかった

109デフォルトの名無しさん2018/03/07(水) 22:42:40.55ID:MkNIh69G
rust推進派のtanakhがrustのダメ出しを始めた

https://twitter.com/tanakh

110デフォルトの名無しさん2018/03/08(木) 07:35:45.52ID:VN6/Zkeb
会社大変だから許してあげよう

111デフォルトの名無しさん2018/03/08(木) 09:01:09.79ID:SDzhQ04b
>>108
最適化の話だから言語仕様では決められてないと思う

112デフォルトの名無しさん2018/03/08(木) 13:04:24.48ID:XQ95i3sC
あのtanakhですら擁護できなくなってきたRustとかいう何か
やっぱクソ言語じゃん

113デフォルトの名無しさん2018/03/08(木) 13:05:40.24ID:FYuhJ3+Z
逆にたなこふ氏が好きな言語って何だよ
Haskellくらいだろ

114デフォルトの名無しさん2018/03/08(木) 13:10:19.32ID:FYuhJ3+Z

115デフォルトの名無しさん2018/03/08(木) 13:42:39.37ID:XQ95i3sC
いくつか言語……?ってなるのが混じってるな

116デフォルトの名無しさん2018/03/08(木) 17:46:17.85ID:3H4xAb5h
>>114
Rust評価高いくてGoは糞って評価だな。

117デフォルトの名無しさん2018/03/08(木) 20:48:12.88ID:Qr0iRnUQ
絶対一緒に仕事したくないようなコード書きそうな人柄なのがよくわかるのはいいことだね。

118デフォルトの名無しさん2018/03/09(金) 02:34:49.09ID:C5IjE5Kn
スタック使うかヒープ使うか考えなきゃいけないしマジで低級言語だなRust

119デフォルトの名無しさん2018/03/09(金) 09:09:56.97ID:MtNghMxY
低級プログラミング言語というときの低級は必ずしも蔑む意味とはならない

120デフォルトの名無しさん2018/03/09(金) 12:35:50.11ID:Awo4Q9T/
>>118は別に蔑んでないと思うが…

121デフォルトの名無しさん2018/03/09(金) 12:41:07.31ID:X+hGjMr5
118が低級

122デフォルトの名無しさん2018/03/09(金) 13:10:31.19ID:Awo4Q9T/
どう読んでも>>118は事実を言っただけでrustを誉めても貶してもいないと思うが…
「CはPythonよりも低級言語」これC言語を蔑んでる意味で取るアホなんているの?

123デフォルトの名無しさん2018/03/09(金) 17:25:20.32ID:4MawrcZA
初心者は大体そのように取るよ

124デフォルトの名無しさん2018/03/09(金) 17:29:38.88ID:Oir5mzi3
はいはいわかったわかった

125デフォルトの名無しさん2018/03/09(金) 18:10:23.86ID:TjQY2cN8
枯れてる言われて古いんだなと思ってそう

126デフォルトの名無しさん2018/03/10(土) 02:47:36.63ID:RGnl5SiL
高級言語のcobol最強ですかね

127デフォルトの名無しさん2018/03/10(土) 04:12:59.75ID:YINDWKAW
蔑んでいるように見えるのはあなた自身が心の奥底でRustを蔑んでいるのです

128デフォルトの名無しさん2018/03/10(土) 07:06:56.73ID:PbOmOUXH
はいはいわかったわかった

129デフォルトの名無しさん2018/03/11(日) 03:31:49.17ID:UKNdLJMW
1つのstructにいっぱい詰め込むと初期化が面倒なんですが

130デフォルトの名無しさん2018/03/11(日) 04:15:48.10ID:4b/1QsDB
new()用意しとけ

131デフォルトの名無しさん2018/03/11(日) 13:22:28.79ID:vP34sga0
derive(Default)使えば

132デフォルトの名無しさん2018/03/11(日) 13:57:51.99ID:91F3yKR+
よくインターネット上の広告で半年でエンジニアに!みたいなのあるけど、インターネット不得手、プログラム未経験者が真剣に半年頑張れば本当にそんなこと可能なんですか?
可能ならその理由はなんでしょう?人材が足りていないというのは存じ上げていますが

133デフォルトの名無しさん2018/03/11(日) 13:58:22.81ID:91F3yKR+
ごめんなさい誤爆しました

134デフォルトの名無しさん2018/03/11(日) 14:13:04.94ID:zWe+i43K
>>132
言われたことやるだけなら可能じゃね?

135デフォルトの名無しさん2018/03/18(日) 21:30:14.47ID:jQGugCpv
>>8
今更だけどこれ書いた奴もブコメした奴も誰一人rustまともに使ったこと無さそうで草

136デフォルトの名無しさん2018/03/19(月) 15:39:12.03ID:dH7nnHk9
>>135
少なくとも書いた奴はまともに使ってないだろうな
matchの仕様が理解できないからって仕様バグと決めつけてるアホだし…

137デフォルトの名無しさん2018/03/19(月) 19:45:41.61ID:ahbMAcYG
俺の技量不足なんだろうけどmutmut地獄は確かにわかる

138デフォルトの名無しさん2018/03/19(月) 20:01:00.05ID:dH7nnHk9
>>137
mutが面倒ってのは分からなくはないんだが、かと言ってどうするの?
不変のほうをconstにすると次はconst地獄になるだけだよ

139デフォルトの名無しさん2018/03/19(月) 20:11:12.51ID:bbBltail
C++erだったのでconst地獄はむしろ慣れてるので歓迎

140デフォルトの名無しさん2018/03/19(月) 20:37:55.38ID:+FMR/dfx
一方、記述の美しさを重視する Nim では let と var に分けた

141デフォルトの名無しさん2018/03/19(月) 21:23:39.57ID:dH7nnHk9
Nimは引数を可変にしようとすると下記のようになる。
proc test(x: var string): string =
x = x & " world"
return x

var x = "hello"
let y = test(x)
echo y

関数宣言で引数にvarと書かなきゃ可変にできないんじゃRustとそれほど手間は変わらない
それに、宣言はvarと書かせるクセに呼び出し側がtest(var x)じゃなくてtest(x)となるのが解せない
これじゃ呼び出し側を見ただけじゃxが不変か可変か判断できない
C++と同じ類の過ちを犯してる
簡潔ではあるかもしれないが全然美しくない(美しいの定義によるが…)

https://play.nim-lang.org/?gist=9e8b6b6059cf8640f6c71fd2075b07c8

142デフォルトの名無しさん2018/03/19(月) 21:32:11.25ID:dH7nnHk9
あとRustの場合はそもそもmutは出来るだけ使うなという方針だから
mutの記述が面倒なのはワザとやってるという点もあるし…

143デフォルトの名無しさん2018/03/20(火) 08:39:12.91ID:iuzVSye9
なるほど

144デフォルトの名無しさん2018/03/20(火) 14:11:19.46ID:J0Id73NT
> これじゃ呼び出し側を見ただけじゃxが不変か可変か判断できない
珍しいご意見ですよね。

145デフォルトの名無しさん2018/03/20(火) 16:01:11.80ID:/+MVnq9/
>>144
よくよく考えるとRustも呼び出し側にmut付けること自体は必須ではないんだよな
所有権を借用するために大抵は&mutを書かされるってだけで…
渡す変数の型がもともと&mut Tだった場合は書かなくてもいい…
Rustの場合は呼び出し側で&mut書く羽目になる経験が多かったので
俺が勝手に「可変にしたければmutを絶対に書かないといけない」という勘違いをしていただけか…
でも、書かされた方が読むときには分かりやすいので個人的にはこっちの方が好き

俺自身がNimはどうしても好きになれなくて不満点を挙げたつもりが自ら墓穴を掘ってしまった感じだな
一般的にはNimの方がよっぽど簡潔で美しいのかもしれない…
ただ単に俺の感性の方が狂ってるだけっぽいな…

146デフォルトの名無しさん2018/03/20(火) 16:05:30.99ID:ck80uwiX
そんな珍しくもない気もするが

147デフォルトの名無しさん2018/03/20(火) 21:24:24.10ID:kx/m1AUo
俺もそんな珍しくもないと思う

148デフォルトの名無しさん2018/03/20(火) 23:15:30.72ID:RYTCq15b
「変数」が値に名前を付けたイメージに人とメモリ領域に名前を付けたイメージの人と

149デフォルトの名無しさん2018/03/21(水) 00:20:42.31ID:mtmyqFMA
データがメモリのスタック領域ヒープ領域あるいは別の領域などどこに記憶されるのかという低レベルなことを考慮しながらプログラミングしなきゃならない

変数とは何かと言えば
スタック領域の特定のメモリ番地に名前をつける行為でしかなく

所有権の委譲って何かと思えばそのメモリ番地の名前を変える行為でしかない

クソ

150デフォルトの名無しさん2018/03/21(水) 21:34:47.63ID:JvyRf7uK
分かりやすい説明だね

151デフォルトの名無しさん2018/03/23(金) 00:30:01.20ID:DIa3/8ef
GBAのプログラムを書いてみたいな。どうせならRustでやってみるか
ARMポートあったよね。Thumbコードも吐けるのかな

とか思ってググっていたら先人がいた。考えることはみんな一緒かw

152デフォルトの名無しさん2018/03/23(金) 08:40:36.80ID:yG5SnYrv
Unityが北欧のニートから生まれたって話を聞いて
Rustでゲームエンジン作ればワンチャンあるんじゃないかと思い始めてきた。

153デフォルトの名無しさん2018/03/23(金) 08:44:26.71ID:0DDzAR5J
気のせい。

154デフォルトの名無しさん2018/03/23(金) 10:01:19.78ID:+d3L/XtB
あるかもね

155デフォルトの名無しさん2018/03/24(土) 02:46:18.89ID:Q4O/QWqD
unsafe使い始めたらCのがやっぱ楽じゃね?ってことにすぐなる。

156デフォルトの名無しさん2018/03/24(土) 07:57:37.67ID:AYaIp/Or
そしてメモリ周りのバグで悩まされた時にやっぱRustで書いときゃ良かったってなる

157デフォルトの名無しさん2018/03/24(土) 11:41:10.67ID:lA18Hk/y
バグなんてメモリに限ったことじゃないのにね

158デフォルトの名無しさん2018/03/24(土) 12:51:11.00ID:6E9wdkyi
要因の種類が減るのは良いことだ

159デフォルトの名無しさん2018/03/24(土) 19:57:38.34ID:Hl/X5tEX
rust未経験者なんだけど、この言語ってweb開発には向いてないの?
goより高度なこと出来るならweb開発も全然苦じゃないように思うんだけど
何かしらweb開発に向いてない要素あんるんかな?

160デフォルトの名無しさん2018/03/24(土) 20:11:16.11ID:lcHhOSrB
DOMいじれんの?

161デフォルトの名無しさん2018/03/24(土) 20:22:46.33ID:Hl/X5tEX
ごめん。聞き方がふんわりしてた。
webのバックグラウンドで動いてるrestAPIサーバに向いてない要因は何かあるのかな?
SPAとかマイクロサービスとかの構成でjavaとかgoとかの代わりに成り得るのかなって。

162デフォルトの名無しさん2018/03/24(土) 20:22:52.79ID:6E9wdkyi
一応WebAssemblyで吐けばRustのコードとJavaScriptのコードを混在出来るけど
軽く触っただけなんでデバッグなどの開発環境の事は未知数

163デフォルトの名無しさん2018/03/24(土) 20:22:54.62ID:eKuOy/a9
>>160
無理

164デフォルトの名無しさん2018/03/24(土) 20:25:44.26ID:bGodUaM+
サーバ側でしょ?言語としては代わりになるだろうけどwebに向いてる部分てのが何を指してるかによるんじゃない

165デフォルトの名無しさん2018/03/24(土) 20:33:09.05ID:Hl/X5tEX
hello world出たからもう初心者と言っても過言ではない。。

>>164
個人的には静的言語ならどれも大差ないと思ってるんだけど、
その方面では全然注目されてないように見えたから何か原因があるのかなって。

166デフォルトの名無しさん2018/03/24(土) 20:36:37.33ID:6E9wdkyi
>>161
以前Goでサーバーサイド書いたことあって、バイナリ一つデプロイするお手軽さがとにかく良かった

といってもほんとに小機能で、WAFにEcho使って静的ファイル(CSS・画像)とか
レスポンスにDBから引っ張ったJSON返すRESTfulの出来損ないみたいのだけど

開発はWindows、デプロイ先がCentOSだったんだけど、
WindowsでCentOS用のバイナリ吐けるし、プロセスの再起動監視も今はDocker-composeがやってくれてるし(restart: always オプション)

Windowsで開発してPUSH、CIツールがCentOS用にバイナリ吐いて、CentOSではバイナリ受け取ったら
$ docker-compose down && docker-compose up -d --build
叩くだけでデプロイ完了っていう超絶お手軽、もちろんデプロイはAnsibleやItamaeで自動化しても良い

167デフォルトの名無しさん2018/03/24(土) 20:51:06.97ID:Hl/X5tEX
hello worldが10個出た。

>>166
goのシングルバイナリ良さそうだよね。
全然分かってないんだけど、rustでもちょびっと頑張れば
クロスコンパイルできるって認識なんだけど間違ってるのかな?

168デフォルトの名無しさん2018/03/24(土) 21:09:10.81ID:6E9wdkyi
Rust経験浅いんで良く分かってない、一応nickelってWAFあるしrustupでコンパイル出来るから土台はあるけど
RustってわりとカジュアルにC製のライブラリをdllとして利用してるからそこが未知数
まあそれらのライブラリを使わなきゃいいんだろうけど

169デフォルトの名無しさん2018/03/24(土) 21:09:38.20ID:6E9wdkyi
rustupでクロスコンパイル

170デフォルトの名無しさん2018/03/24(土) 21:17:38.55ID:Hl/X5tEX
FizzBuzz動いたー レベルアップ感ないけど

>>168
そうか。シングルバイナリじゃないとクロスコンパイル先の環境で動かすのは
なかなか大変そうやね。やっぱその分野はgoが強いってことなんね。

171デフォルトの名無しさん2018/03/24(土) 21:29:23.70ID:LUxFSHaJ
>>165
そういう観点なら学習コストが高いのがじゃくてんだと思う

172デフォルトの名無しさん2018/03/24(土) 21:45:47.85ID:glWbEBFl
>>165
個人的にはGCありなしの差が大きい気はする。
特にweb系はGCがあって当たり前だから
急にlifetimeとか言われても…ってなりそうな。
C/C++だと結局脳内でlifetime管理してるから
そこの学習コストは相対的には低い。

173デフォルトの名無しさん2018/03/24(土) 22:12:42.54ID:AYaIp/Or
>>172
おれもGC有り無しはでかい要因だと思う
今までJS, Ruby, PHP, Java辺りしか使うことのなかったWeb屋にとっては
「メモリ管理?なにそれ?おいしいの?」状態だろうし…

1741652018/03/24(土) 23:05:16.49ID:YaLUXLZ4
>>171
>>172
なるほど。確かにWEB系だと短い納期+人海戦術で乗り切ることも多いから
そういうのには辛そうだね。でも言語仕様的にWEB(の裏のサービス)が不得意という
訳では無さそうだから、細く長くやるようなサービスなら導入もアリっちゃアリという認識でいいのかな。

>>173
そだね。なんにもわからんわw っていうかWEBやっててGCであんまり困ったことないかも知れん。
困ったことがないことに起因して難易度が上がった言語を「使いたいです」って提案するにはちょっと強引さが必要そうやね。



今、初心者用の練習問題やってるんだけどメモリの管理なんて全然出てこない。
みんなどうやってRUSTの勉強してるの?やっぱり何か動くもの作ってみるのが早いかな?

175デフォルトの名無しさん2018/03/24(土) 23:11:45.93ID:gYQh0+lt
簡単なApp serverならrocketが楽だった
早くstableで動くようになってほしい

176デフォルトの名無しさん2018/03/24(土) 23:49:05.34ID:AYaIp/Or
>>174
ん?君もしかしてWeb屋なの?
そして「GCなし」ってのがどういう状態かよく分かってない感じ?
C or C++のご経験は?

177デフォルトの名無しさん2018/03/24(土) 23:59:12.17ID:Z79Bg+7E
GCは甘え。
プロなら自分で管理するべき。

178デフォルトの名無しさん2018/03/25(日) 01:19:49.91ID:8WSI8ZZL
GC無い言語でもファイルディスクリプタの解放は自前でする必要あるしリークの根幹はどっちも変わらんと思うけどな
むしろGC無い言語の方が循環参照の時の解放が面倒、C++でもweak_ptr使う必要出てきたり

179デフォルトの名無しさん2018/03/25(日) 01:28:22.61ID:4Rittzre
c++はやっぱraiiが便利。
gcあったって結局outofmemoryerrorになるなからなぁ。
だったらrustのようにコンパイラが所有権やライフタイムをチェックしてくれるのはいいと思う。
けど学習障壁高過ぎとも思う。

180デフォルトの名無しさん2018/03/25(日) 01:43:12.83ID:U5SlEUJl
Nodeのメモリーリークはみんな苦戦してるみたいだけど。

181デフォルトの名無しさん2018/03/25(日) 01:51:32.26ID:8WSI8ZZL
Nodeは全部グローバル変数にするのが悪いんや

182デフォルトの名無しさん2018/03/25(日) 02:05:56.01ID:BP/bYIjb
>>180, >>181
Nodeはよくメモリリークが問題とか言われてるけど原因はそこなの?
グローバル変数を平気で乱用するほど皆バカなの?
イベントハンドラの解除忘れとかじゃないの?

183デフォルトの名無しさん2018/03/25(日) 02:09:49.87ID:U5SlEUJl
エラーにならないことが多すぎる。
忖度しすぎ言語の称号を与えたい。

184デフォルトの名無しさん2018/03/25(日) 02:10:42.60ID:U5SlEUJl
Nodeの問題点を一言でいえば、Javascript。

185デフォルトの名無しさん2018/03/25(日) 03:01:01.34ID:wEE2niQx
>>174
コストかけられるなら規模の大小関わらず大アリだよ

1861742018/03/25(日) 08:53:35.72ID:tMB2K7Zl
>>175
ありがと。ちょっと試してみる。

>>176
ぽんこつWEB系IT土方だよ。javaとjavascriptくらいしかやってない。
javaでは走ってるGCがrustだと黒魔術によって必要ないっていう認識やで。

>>185
そうか。大アリか。ありがと。

187デフォルトの名無しさん2018/03/25(日) 09:17:52.51ID:2sZ1RJA+
>>182
イベントハンドラ解除は他言語でも明示的に書く必要ある
だけどクラスのデストラクタ・ファイナライザに書いといて各スコープで変数の寿命をちゃんと管理するコーディングの基本を守ってるだけで問題ないと言える
ここはRAII使えるC++やRustが最強、なんせ何も書かなくてもスコープから外れたらそれぞれデストラクタ・Dropを呼んでくれるんだし
次点でC#のDisposeとusingなどの専用構文、Javaはtry..finallyあるから及第点

でもグローバル変数だとそんなの働かない、プログラマが仕様とにらめっこしながらリークに気を使わないといけない、めんどい

188デフォルトの名無しさん2018/03/25(日) 10:33:04.02ID:BP/bYIjb
>>186
Cさえやったことないんじゃメモリ管理について説明するのは難しいな
ざっくり説明すると

C言語ではmalloc, freeを使ってプログラマが自力でメモリ管理を行う
よって、きちんとメモリ管理ができていない場合は実行時にバグになる。

対して、GCありの言語は実行時にGCがバックグラウンドで動いて自動でメモリ管理を行ってくれる
メモリ管理は実行時に自動で行われるのでプログラマは基本的にメモリ管理を行う必要はない
ただし、GCの挙動をしっかり理解していないとメモリリークのバグになることもある

そして、Rustはメモリ管理をコンパイラがコンパイル時に行う
つまり、メモリ管理ができていない場合はコンパイルエラーになる
コンパイラが正しくメモリ管理を行うためにRustには
所有権・借用・ライフタイムというルールが存在する
このルールを守らないとコンパイルが通らないため絶対に理解する必要があるが
このルールをきちんと理解してコードを書くのがなかなかに難しい
それと、このルールを完璧に遵守しようとすると循環参照さえ出来なくなる
なので循環参照等の少し複雑なことをやろうとした場合は
標準ライブラリとして用意されているRc, Weak, RefCell等の使い方も知る必要がある
因みにRc, Weak, RefCellの中身ではunsafeコードが多用されていている
unsafeコードの中ではルールを無視できる代わりにコンパイラがチェックを行わない
つまり、unsafeの中だけはCと同じように自力でメモリ管理する必要がある
だからこの言語は他言語と比べて学習コストが圧倒的に高い

189デフォルトの名無しさん2018/03/25(日) 10:35:30.44ID:BP/bYIjb
「ざっくり」と言っておきながら気付けばそれなりの長文になってるな…

190デフォルトの名無しさん2018/03/25(日) 10:49:11.63ID:130KAu9X
なんで聞かれてもいないことを長文で答えるのか
プログラマにはありがちだけど

191デフォルトの名無しさん2018/03/25(日) 10:51:36.32ID:GhdgZmXr
>なので循環参照等の少し複雑なことをやろうとした場合は
>標準ライブラリとして用意されているRc, Weak, RefCell等の使い方も知る必要がある
>因みにRc, Weak, RefCellの中身ではunsafeコードが多用されていている
>unsafeコードの中ではルールを無視できる代わりにコンパイラがチェックを行わない
>つまり、unsafeの中だけはCと同じように自力でメモリ管理する必要がある
>だからこの言語は他言語と比べて学習コストが圧倒的に高い
この辺考えたら結局C++で、できる限りスマートポインタ使うってのと大して変わらなくね?
て話になりそう。

192デフォルトの名無しさん2018/03/25(日) 11:32:48.19ID:MQLp3NAe
ライブラリの中でunsafe使ってたからといって、そのライブラリ使用したコード全てがunsafeになる訳でなし
気にし過ぎじゃないか

193デフォルトの名無しさん2018/03/25(日) 12:12:47.18ID:2sZ1RJA+
いやなるで
unsafe内Cのリソース確保を呼んだなら同じく解放処理も呼ばないとリークする

194デフォルトの名無しさん2018/03/25(日) 12:21:31.84ID:5S2tvSOb
>>193
いや、ならねーよ
内部でunsafe使ってるからunsafeになるなら関数にもunsafeつけて前提条件つけないといけない

1951862018/03/25(日) 13:06:55.41ID:tMB2K7Zl
>>188
今やってるサンプル問題はその辺り無しでも解ける難易度だから
rustのつらみがイマイチ分かってないんだよね。
何個か前のスレにあった木構造っていうのをやってみればええんやろか。
難し過ぎるやろか。

>>190
こんなぽんこつに教えてくれてるんやからありがたい話やで。

196デフォルトの名無しさん2018/03/25(日) 13:44:46.25ID:NiWlHtrf
>>187
JavaもC#みたいにできるようになりました…
どうせみんなKotlinとかScala使うからいいけど

197デフォルトの名無しさん2018/03/25(日) 14:35:43.51ID:wEE2niQx
>>195
webか目的ならwebアプリを作るべきでしょう
使いもしないデータ構造やアルゴリズムなんて判断基準にならないでしょ

198デフォルトの名無しさん2018/03/25(日) 14:38:16.26ID:ndR60cG+
java10出たってどうせ現場じゃ使わせてくれないんだろ?
んで未だにstrutsとかオレオレフレームワーク強要するんだろ?

199デフォルトの名無しさん2018/03/25(日) 16:39:02.18ID:I+zotbSu
WindowsでRust使っている人ってほとんどいないんだろうな
rustupを実行する前にVC++をインスコしろとか書いてあるし

200デフォルトの名無しさん2018/03/26(月) 00:20:12.61ID:D5Wnx0sa
生で動かす組み込み系の情報収集をしているんだけど半年前よりはだいぶ増えた感があるけどまだまだ少ないなぁ
特にRust以外のツールとCargoの連携について説明されている記事はほとんど見あたらない
ローレベルではユーザーツールやアセンブラ、リンカとビルドシステムの連携は必須だからな

Cargo前提のRustだとシェルスクリプトやバッチファイルでビルドというわけにも行かないし(それらに必要な情報も同じく少ない)
既成のCライブラリやクレートを使う記事はちらほらあるけどそれらが使えないケースだと参考にならない

このへんで役立ちそうな記事って今のところこれくらいしか見つけられていない
https://nkon.github.io/Rust-embedded/

もっともRust抜きでも最近は高レベルのフレームワークを使っていたりOS上での動作だったりするからローレベルの情報は減少傾向だけど

201デフォルトの名無しさん2018/03/26(月) 01:29:55.31ID:TdhbSc50
「業務でRustを書きたいエンジニア募集!」みたいだよ

https://www.wantedly.com/projects/97207

202デフォルトの名無しさん2018/03/26(月) 01:31:01.61ID:TdhbSc50
>>201
ごめん、募集終了してたわw

203デフォルトの名無しさん2018/03/27(火) 09:28:53.61ID:OlyQwcXt
集まったのかな?それとも応募が無かったか。
どちらにせよ気概は応援する

204デフォルトの名無しさん2018/03/27(火) 09:38:34.01ID:e5+YaH9t
会社的にゲームのサーバーサイドかな
C++からの乗り換えならビルド時間の削減が一番効果あるかもね

205デフォルトの名無しさん2018/03/27(火) 13:51:08.35ID:7OwU1Hvz
ニコ生は、Rust で、各サーバーに分かれているシステムを、
統合しようとしているらしい

Rust, Elixir は注目されてる

206デフォルトの名無しさん2018/03/27(火) 14:06:18.97ID:k3vzHZG7
>>200
rustでおもちゃのOS書いてる(た)んだけどローレベルな部分にも適してるみたいなことを謳ってる割にcargoがほんとクソなんだよなぁ

207デフォルトの名無しさん2018/03/27(火) 21:01:56.04ID:14Lqu+tl
>>206
またcargoがクソって話か…別にそれほど使いづらいとは思わないんだけど…
(使い方に関する情報が少ないという意味で使いづらいという意見なら分かるんだけど…)
どこら辺がクソと思ってて、どうなってれば満足なわけ?
なんだか実現不可能なくらい賢いツールを「ないものねだり」してるように聞こえるんだよね…
というわけで、実在するツールで最も理想に近いツール(もちろん他言語のパッケージ管理ツール)の例を挙げてくれる?

208デフォルトの名無しさん2018/03/27(火) 21:18:04.54ID:IpDwkilL
Rustのwebフレームワークでなんとなく一番使えそうなRocketとかいうのがnightlyでしか動かない

209デフォルトの名無しさん2018/03/27(火) 21:25:14.30ID:OIszsbzb
組み込みでパッケージ管理ツールの需要はあまり無いはず。ビルド管理ツールの方が重要
しかも言語の垣根を越えて使いやすい奴

システムプログラミング用を謳っているんだから
「Cやアセンブラで生で動くプログラムを書いたことがあるんだけどRustに興味がある」
位の人を対象にしたチュートリアル的な物が欲しいな。もちろんある程度実践的な内容で

そういえば調べている中でLチカのウェイトにビジーループを使っているコーディング例がいくつも出てきた
自分はタイマと割り込みを使うのが普通だと思っていたんだけど(勉強するという意味でも)最近は違うのかな?

210デフォルトの名無しさん2018/03/27(火) 21:43:56.53ID:14Lqu+tl
ビルド管理ツールでも良いから、とりあえず、使いやすいツールの例を挙げて欲しんだけど…
「〇〇というツールがあって、××が出来て便利。それに比べてcargoは…」みたいなさぁ…
「使いやすい奴」とだけ書かれても「使いやすい」の基準がさっぱり分からん

211デフォルトの名無しさん2018/03/27(火) 22:08:40.15ID:H//ajCL2
>>207
ごく普通に使うぶんには俺もディスるほどではないとは思うよ
ただOS書いたりみたいな部分では不満を感じることが多かった

例えばビルドスクリプトとしてのbuild.rsがビルド前のいわゆるpreしかなくてpost的な使い方が出来ないとか
カスタムターゲット書くにしてもlinker-flavorとかそれに対応するリンカに渡されるオプションの一部とかがコンパイラのソースにハードコーディングされてるんで制約ばっかで柔軟性が低いとか

212デフォルトの名無しさん2018/03/27(火) 22:34:11.89ID:Ua6DMzOD
rustのwebフレームワークはもうひと世代先のが出るまで本命は決まらなそうだ

213デフォルトの名無しさん2018/03/27(火) 22:46:58.51ID:OlyQwcXt
>>207
> (使い方に関する情報が少ないという意味で使いづらいという意見なら分かるんだけど…)

自分で書いてるじゃん

214デフォルトの名無しさん2018/03/27(火) 23:03:51.77ID:YR27q37n
>>209
タイマ割り込みは環境依存度が高いから、サンプルとして適さないんじゃね?

215デフォルトの名無しさん2018/03/28(水) 00:25:40.40ID:3jPJHf2H
>>208
nightlyすぐコンパイルエラーになるよね
まあだからnightlyなんだけど

216デフォルトの名無しさん2018/03/28(水) 01:12:15.92ID:hFbEShK4
hyperは非同期シングルスレッド対応してるけど、他のFWはまだ未対応でマルチスレッドベースばかりだね

ironは今はメンテされてないし、とりあえず業務で簡単なAPIサーバー構築時にはrocket使ったわ

217デフォルトの名無しさん2018/03/28(水) 03:08:49.62ID:qhZoJVUP
>>205
ニコニコみたいな机の上でのお勉強しかできないバカばっか揃えた結果
クソみたいなサービスしか作れない技術力のない会社がRust使う選択したなら、
逆神でRustつかわないのが正しい選択って公になったようなもんだな

2182052018/03/28(水) 04:23:23.13ID:0was1dJs
でも、ドワンゴ江添は「C++11/14 コア言語、江添 亮、2015」と言う、

神の書を書いてるから、一流の伝道師!

219デフォルトの名無しさん2018/03/28(水) 05:59:49.92ID:LrPDAu7h
tokioがマルチスレッドを標準にしてくみたいだからhyperもマルチスレッドに寄ってくんじゃないかなあ

220デフォルトの名無しさん2018/03/28(水) 10:37:01.81ID:22eQoYIf
RustのORMのDieselってテストに対応してますか?
開発用DB使うタイプ、モック使うタイプどちらでもいいんですけど…

221デフォルトの名無しさん2018/03/28(水) 15:21:56.48ID:nwQzoMBM
>>218
典型的な机の上のお勉強だけ得意な人やん

222デフォルトの名無しさん2018/03/28(水) 15:23:57.64ID:YfKkqZvW
ほんそれ

223デフォルトの名無しさん2018/03/28(水) 20:51:49.08ID:cpZrmao1
てか奴はコード書いてないこと宣言してるしな。
そゆとこは正直で良いと思うが、プログラマとしてはクソだな。

224デフォルトの名無しさん2018/03/29(木) 02:06:06.79ID:0KWZ/AkQ
組込み開発者におくるMISRA‐C:2004―C言語利用の高信頼化ガイド、MISRA‐C研究会、2006

これは、日本の大企業から、猛者を数十人集めて、
欧州委員会に問い合わせながら作った本

C++11/14 コア言語、江添 亮、2015

それに比べて、江添はたった一人で作ったのじゃないか?
超人的すぎるやろw

225デフォルトの名無しさん2018/03/29(木) 14:52:09.30ID:x+HX/uzd
江添ってイケダハヤトみたいな胡散臭い人たちと同じカテゴリーなんでしょ
実力はないけど口が達者だから信者が多い
芸人向き
そのうち討論番組とかでテレビ出演とかしちゃいそう

226デフォルトの名無しさん2018/03/29(木) 18:00:19.09ID:Ys835l/3
江添は標準化委員会の一人だからな
一人で書けるのは確かに並大抵じゃないだろうが
一人で書けなきゃそれはそれでヤバイ

227デフォルトの名無しさん2018/03/29(木) 21:37:04.51ID:pNK8aPzF
まあ次世代の池田信夫といっていいんじゃないかな。

228デフォルトの名無しさん2018/03/30(金) 00:24:21.95ID:IN/IsR4/
やまもといちろう、清水亮、津田大介あたりだな

229デフォルトの名無しさん2018/03/30(金) 00:59:44.92ID:YF4CHAi5
やまもといちろうのしったか芸は凄いw

230デフォルトの名無しさん2018/03/30(金) 12:34:16.32ID:IN/IsR4/
ニコ生ってたしかRust使ってるんだっけ?
Rust江添の今後に期待

231デフォルトの名無しさん2018/03/30(金) 14:08:12.82ID:82JQsmMo
>>230
だからニコニコごときが選択したってことは使えん技術ってことだろ
ネトフリとかが採用したら考えるが

232デフォルトの名無しさん2018/03/30(金) 14:10:51.95ID:82JQsmMo
Rust採用事例
ニコニコ←負け組
火狐←負け組
Mercurial←負け組
泥箱←個人情報お漏らし

採用する気にもならん事例のオンパレード

233デフォルトの名無しさん2018/03/30(金) 14:13:18.93ID:82JQsmMo
顔本もテストプロジェクトかなんかで使ってた記憶があるが、
そういやここもお漏らししたっけな

234デフォルトの名無しさん2018/03/30(金) 14:14:12.95ID:XUq2/9hV
【悲報】Packt出版より出る予定だった Rust Blueprints が出版取消されました。

235デフォルトの名無しさん2018/03/30(金) 14:16:08.36ID:82JQsmMo
>>234
資源の無駄だからな。当然の結果

236デフォルトの名無しさん2018/03/30(金) 18:11:51.70ID:2SqbRzP3
また来たのかよ

237デフォルトの名無しさん2018/03/30(金) 18:23:23.77ID:IN/IsR4/
Rustってキラーアプリあんの?

238デフォルトの名無しさん2018/03/30(金) 18:37:40.08ID:ksXSxVO9
ErlangとScalaもディスってるんだ
https://github.com/dwango

239デフォルトの名無しさん2018/03/30(金) 21:33:06.96ID:35t2qqJ0
セキュアプログラミングとかいって締め付ければ締め付けるほど
インシデントが増えるw
本質はそういうところじゃないってことがよくわかる。

240デフォルトの名無しさん2018/03/30(金) 22:18:13.79ID:lc3QGxh+
>>239
じゃあ本質はどこにあるんだよ?
自分には分からないからってだけが理由でそうじゃないと決めつけるのは勝手だけど…

241デフォルトの名無しさん2018/03/30(金) 22:28:24.32ID:35t2qqJ0
開発効率やランタイム速度を気にしなけりゃ既存の言語でも安全に作るなんてのは
簡単なんだよ。
そのトレードオフをどれだけ解決できるかが本質。

242デフォルトの名無しさん2018/03/30(金) 23:00:52.49ID:OoWw053g
開発効率やランタイム速度を気にしないことが本質?

243デフォルトの名無しさん2018/03/30(金) 23:58:55.57ID:dpNxQVLw
おぉっとここで日本語の分からないバカが登場〜

244デフォルトの名無しさん2018/03/31(土) 00:49:07.16ID:q0ZQKkqb
>>241
安全に作るのが簡単ねぇ…
簡単だったらGoogleがバグ(セキュリティホール)の発見に
多額の報奨金を出すのはおかしいとか考えないのかね?
君にとっての"安全"の基準が分からないんだが…

245デフォルトの名無しさん2018/03/31(土) 07:55:27.02ID:9+5jHACw
>>244
グーグルにとってみたらそっちのがよっぽど楽、つまり開発効率がいいからでしょ。
理解不足の人がいるようなのでもう一度言うけどトレードオフの問題だっつーの。

246デフォルトの名無しさん2018/03/31(土) 09:33:15.73ID:q0ZQKkqb
>>245
極論だな
開発効率を無視するなら安全に作ることは可能ってことだろ
開発効率を無視するってのはつまり開発期間が無限大と仮定するってことだぞ
開発期間が無限大でなければ安全に作ることが不可能なら
それは実質、安全に作ることは不可能って事と同義だからな

結局言いたいことは"開発効率・ランタイム速度"と"安全"がトレードオフの関係にあり、
それをいかにして解決するかが本質ってことだろ
で、その"解決"が何を指すのかっていう一番肝心な部分が抜け落ちてるぞ
"トレードオフの均衡点をどこに置くべきかを探る"のが解決なのか
それとも"トレードオフの関係自体を壊そうとする"ことが解決なのか
あるいはその両方か

あと、Googleは開発効率を優先して報奨金を出してるわけじゃないだろ
そもそもリリースした後のものは開発ではなく保守なんだから
あれは完璧に安全なものを作るのは不可能だから苦肉の策として行ってるだけ

てゆーか、ツッコミどころが多すぎるんですけど…

247デフォルトの名無しさん2018/03/31(土) 10:29:59.95ID:E8qTp8R8
>>238
もちろん
Erlangは状態中途半端にブッ壊すだけだし
Scalaなんてもはや新規で使うところどこにもねえだろ

248デフォルトの名無しさん2018/03/31(土) 10:36:16.41ID:E8qTp8R8
>>246
バカじゃね?
Rustがその解決になってるかって観点がどこにもない

トレードオフの落としどころとしてRustにはなんの実績もないし、CやC++と周辺ツール合わせた環境に勝る性質もなにもないって言ってんの
ValgrindやCoverityみたいなツールに比べた優位性あるの?
ただ書きにくい言語がひとつ増えただけじゃん

249デフォルトの名無しさん2018/03/31(土) 11:03:18.18ID:wLUR9MAo
お前が元気で帰ってきてくれてよかったよ

職は見つからなかったんだね

250デフォルトの名無しさん2018/03/31(土) 11:12:27.60ID:q0ZQKkqb
>>248
"解決"が何を指すのかを聞いているのにそれには答えずに
Rustは"解決"していないとだけ答える…
会話が噛み合わない…どうすればいいのか…

251デフォルトの名無しさん2018/03/31(土) 11:39:17.36ID:q0ZQKkqb
実績がないって言うのもFirefoxの一部は既にRustで置き換えられてるのに
君がそれを実績として認めないってだけだろ
ブラウザを一から実装しなおして、それが大きなバグを出すこともなく
Chromeと同レベルの実行速度を実現してるってだけでも充分に実績として認められると思うが。
Chromeに比べればシェアは少ないがそれでも世界中で数百万という人間がFirefoxを使ってるんだぞ

252デフォルトの名無しさん2018/03/31(土) 11:41:20.61ID:D1vbg0pQ
そこは何億人ものって言わなきゃw

253デフォルトの名無しさん2018/03/31(土) 11:43:55.45ID:q0ZQKkqb
>>252
数百万はかなり適当に発言した
実際はどれくらいなんだろうな?

254デフォルトの名無しさん2018/03/31(土) 11:46:03.70ID:0efq0OdT
3億人くらい?

255デフォルトの名無しさん2018/03/31(土) 13:24:58.66ID:yT2VCMNA
Javaなんて30億のデバイスで動いてんだぞ!

256デフォルトの名無しさん2018/03/31(土) 14:14:44.03ID:ApL2p8x0
>>251
せめてchromeと同じシェア取ってから言って欲しいもんだ

257デフォルトの名無しさん2018/03/31(土) 14:32:47.34
Write once, run anywhere なんていう開発プラットフォームがあるらしい
Electronって言うんだって

258デフォルトの名無しさん2018/03/31(土) 14:34:08.51ID:NaIZlBM+
native modules はい論破。

259デフォルトの名無しさん2018/03/31(土) 15:26:33.15ID:tztr1ir/
chromeメモリ食いすぎなのでfirefox59に乗り換えたよ

260デフォルトの名無しさん2018/03/31(土) 15:27:50.28ID:q0ZQKkqb
>>256
"せめて"でChromeと同じシェアなのかよ。ハードル高すぎだろ
そんなのどんな言語使ったって数年じゃ無理だわ
もちろんChromeと同じC++を使って作り直しても無理だわ
どうやら君の御眼鏡にかなう言語はこの世のどこにも無さそうだな

261デフォルトの名無しさん2018/03/31(土) 16:10:13.77ID:ApL2p8x0
Rustで書き直したら安全で高速なプログラムが簡単に書けるんだろう?

ならchromeのシェアを奪うのなんてすぐじゃないか
本当にRustにそれだけの性能があるなら

262デフォルトの名無しさん2018/03/31(土) 16:22:16.04ID:D1vbg0pQ
Chromeは昔のIEと同じくらい危険なブラウザになってきたよな。
やはり危険度はシェアで決まるんじゃないだろか。
そもそもあれだけ複雑で奇怪で大きなソフトウェアにバグが無いわけないし。
いやもちろん、HaskellやJavaやJavascriptのような安全な言語で書かれていれば一切のバグは無いんだろうけどさ。

263デフォルトの名無しさん2018/03/31(土) 16:22:59.14ID:D1vbg0pQ
ここRustスレだったかw
じゃあ、Rustのような安全な言語で書かれてればバグは無いんだろうけどさ。

264デフォルトの名無しさん2018/03/31(土) 16:25:50.13ID:D1vbg0pQ
Chromeの開発者がRustで書き直したいと書き込んでるのは見たことあるけどな。
でも、書き直すったってそもそも発祥がKHTMLだしな。
Googleは出来損ないのブルドーザーみたいなもんだ。

265デフォルトの名無しさん2018/03/31(土) 16:37:28.69ID:ApL2p8x0
HaskellはともかくJSやJavaは安全なのかね?
まあスレチだが

266デフォルトの名無しさん2018/03/31(土) 16:52:02.69ID:q0ZQKkqb
>>261
>Rustで書き直したら安全で高速なプログラムが簡単に書けるんだろう?
誰もそんなこと一言も言ってないだろ。勝手に曲解しないでほしいな
C++よりはRustの方が設計が良いってだけ
そう言ったら次は"C++より良いって言うんならC++で書かれてるChromeより
Rustで書かれたFirefoxのシェアが少ないのはおかしい"って言い出すんだろ
既存資産はC++のほうが何十倍もある。資産が少ないってのはそれだけで不利だ
言語設計はダメだが資産の多いC++か、言語設計は良いが資産の少ないRustか、
どちらを選ぶかは人によって意見が変わるところだろう
資産の問題に関しては時間が解決してくれるかもしれない…希望的観測に過ぎないが…

>ならchromeのシェアを奪うのなんてすぐじゃないか
すぐなわけないだろ。
ブラウザを選ぶ基準なんて数え切れないほど色んな要素が絡み合ってるんだよ
その中には"なんとなく、みんなが使ってるから"なんてしょうもない理由も多く存在する
全ての人間が合理的な判断を下すわけじゃないんだ。そんな単純に事が運ぶわけがない

だから、ツッコミどころが多すぎるんだって…

267デフォルトの名無しさん2018/03/31(土) 16:58:36.90ID:D1vbg0pQ
Boostはオナニーし過ぎのグロマンコみたいなもんだが使わざるを得ないって話か。

268デフォルトの名無しさん2018/03/31(土) 17:01:22.81ID:D1vbg0pQ
Javascriptのお勉強をした結果、GCは何の解決にもならないことが分かった。
むしろ危険。
ライブラリがリークについて何も考えていないんだもん。

269デフォルトの名無しさん2018/03/31(土) 17:02:54.36ID:D1vbg0pQ
なんでだろ〜なんでだろ〜と検索した結果、あの有名な企業のブログで解決策を発見。
曰く、ライブラリがリークするようにできてるから、一定時間で再起動とか。
そんなのが多すぎた。

270デフォルトの名無しさん2018/03/31(土) 18:56:11.43ID:ApL2p8x0
ぐだぐだ言い訳してるのを総合すると
「モノは良いけど使い手が少ないせいで流行らない」ってか?
使い手が少ないのはものが悪いってことだろ。残念でした

271デフォルトの名無しさん2018/03/31(土) 18:58:11.61ID:ApL2p8x0
Go言語見てみろ
モノはいろいろと微妙だがCやC++と比べて強烈な利点があるから、リリースがRustと同じか遅いくらいなのに流行ってるだろ

Rustはどうなんですかねえ?

272デフォルトの名無しさん2018/03/31(土) 20:27:06.89ID:PqROMcrp
つまりPHPが最良の言語ってわけか

273デフォルトの名無しさん2018/03/31(土) 20:42:09.87ID:oZoT3jkC
わざわざRustスレまできて延々粘着アンチとかかまってほしい爺さんみたいで見苦しいからやめろ

274デフォルトの名無しさん2018/03/31(土) 20:45:48.24ID:D1vbg0pQ
>>273
かまってほしい爺さんに、かまってほしい爺さんみたいとかやめてくんない?
あんた人の心あんの?

275デフォルトの名無しさん2018/03/31(土) 21:14:47.08
かま爺

276デフォルトの名無しさん2018/03/31(土) 21:55:49.66ID:dXOBbz7B
いくらモノがクソでも流行ってるって一点で考慮に入れる必要はあるし、
逆にどんなに良いものでも流行ってなければ選外になるのは事実よね

PHPが流行ってるのは時代的に残念な背景があるとはいえ、
Goが流行るのは明確な理由があるんじゃないか?

277デフォルトの名無しさん2018/03/31(土) 22:11:12.54ID:7TTU0i1a
それについて掘り下げる意義はないと思いますよ

278デフォルトの名無しさん2018/03/31(土) 22:16:22.26ID:dXOBbz7B
まあ確かにないな
せめて日本語で本が出る程度には流行って欲しいが……

今のRustに足りないものってなんだろうな
RubyのRailsみたいに、ある領域のキラーフレームワークみたいなのが欲しいが
Rustがそれを作れる領域って今のところWebAssemblyくらいしかないんだよな
しかもそのWebAssemblyも、GCが入ったらGoとの立ち位置が逆転するし

279デフォルトの名無しさん2018/04/01(日) 07:31:46.82ID:QnuEAtVo
それはgoが流行っている理由を語るのと同義ではないですか

280デフォルトの名無しさん2018/04/01(日) 07:36:32.82ID:nW/fPqLD
Goこそブランドの影響だと思うけどなw
Googleって会社も初期メンバーこそキレキレの人間だったのかもしれんが
ブランドイメージが先行しだしたころから
そこにはそこに憧れて集っちゃった凡人がうじゃうじゃだということを忘れてはならない

281デフォルトの名無しさん2018/04/01(日) 08:59:01.17ID:aM38sJCa
rustは
ゼロ抽象化みたいな機能ブランドに憧れて集まっちゃった凡人がうじゃうじゃだよね

282デフォルトの名無しさん2018/04/01(日) 09:02:36.32ID:N/JoH072
機能ブランドってなに?中身ないの?

283デフォルトの名無しさん2018/04/01(日) 09:31:03.82ID:r/SQKbFj
ないよ。あったらもっと人集まってるよ

284デフォルトの名無しさん2018/04/01(日) 09:41:07.81ID:r/SQKbFj
RustはCやC++を書くのに疲れた人のための言語という位置付けなのに
Rustを書ける奴は別にCやC++書くのに困らないって
イカれた習得難易度に作ってしまったのがそもそもの失敗

Rustのターゲットは別にRustなんて使わなくてもいいかそもそもRustを使えないかの二択
ドンピシャなターゲットが存在しないから流行りようがない

285デフォルトの名無しさん2018/04/01(日) 09:51:30.48ID:QnuEAtVo
rustを書ける人でcやc++で困らないと結論した人が沢山いるということですか?

286デフォルトの名無しさん2018/04/01(日) 10:13:31.75ID:9alzQdGn
>>284
>RustはCやC++を書くのに疲れた人のための言語という位置付け
これは事実だけど、C++より簡単に書けることを目指して作ったわけじゃなくて
ポインタ周りのバグ(特にバッファオーバーフローなどが原因のセキュリティホール)
に悩まされてきた人間のために作られた言語だからな
セキュリティを考えてない奴からすれば無用な長物にしか見えないんだろう

287デフォルトの名無しさん2018/04/01(日) 10:21:58.94ID:9alzQdGn
>>286
訂正:無用な長物→無用の長物

288デフォルトの名無しさん2018/04/01(日) 11:14:37.02ID:r/SQKbFj
>>286
Rustできちんとコード書ける実力あるなら
CやC++でもセキュリティホール作り込まないプログラミングできるだろって話な

289デフォルトの名無しさん2018/04/01(日) 11:17:57.70ID:FEh/C/xR
てか「一応読み書きはできるようにはなったけどC/C++の落とし穴を知らないせいで危ないコード書いてる初心者」こそRustやるべきだよな
>>56みたいな

>>56がなんでエラーになるのか理解できないって事はC/C++でもvectorへの参照を何も考えないで使い回してたりするって事だし

290デフォルトの名無しさん2018/04/01(日) 11:21:05.39ID:r/SQKbFj
ああそれはあるかもな
実用というより教育目的な言語としては確かにアリだ

291デフォルトの名無しさん2018/04/01(日) 11:36:26.93ID:9alzQdGn
>>288
>Rustできちんとコード書ける実力あるなら
>CやC++でもセキュリティホール作り込まないプログラミングできるだろって話な
出来ないからC++ではValgrindとかのツール使ってチェックしてるんだろ
じゃあツールを必ず使うようにすればいいじゃんって話にはなるが…

292デフォルトの名無しさん2018/04/01(日) 11:39:14.42ID:9alzQdGn
そもそもValgrindみたいなメモリリークをチェックする類のツールって
Rustのボローチェッカと比べるとどの程度信用できるのかね?

293デフォルトの名無しさん2018/04/01(日) 11:47:08.80ID:jrLYAFkE
あまり信用出来ない
スマートポインタを(適切に)使ってればそもそも解放忘れはしないし
配列に確保しっぱなし系のリークは検知してくれない

294デフォルトの名無しさん2018/04/01(日) 11:55:47.66ID:9alzQdGn
>>293
>あまり信用できない
>配列に確保しっぱなし系のリークは検知してくれない
そっか、やっぱりRustのボローチェッカには劣るか
>スマートポインタを(適切に)使ってればそもそも解放忘れはしない
「適切に」ってところがポイントだよね
たとえ熟練のC++erがどれだけ注意してコーディングしてたって
「うっかりミス」はいつか絶対に起きるんだし

295デフォルトの名無しさん2018/04/01(日) 12:42:04.82
C++でボローチェッカをエミュレーションできないの?

296デフォルトの名無しさん2018/04/01(日) 12:44:43.78ID:BOTWSFOl
C++ちゃんとかけるならRustも楽勝でしょ。

297デフォルトの名無しさん2018/04/01(日) 13:57:47.26ID:QnuEAtVo
>>288
できないよ、人間だもの

298デフォルトの名無しさん2018/04/01(日) 14:16:47.69ID:1ng3UkJB
valgrind使うと実行時間とてつもなく遅くなるし実行時間長いプログラムだと辛い
ASANでも2倍くらい遅くなるので辛いのは同じ
コンパイル時に静的に分かる方が嬉しいし、たまにしか通らないパスもチェックされるのでより安全

299デフォルトの名無しさん2018/04/01(日) 19:22:10.86ID:aM38sJCa
まあ結局unsafe部分はチェックできないけどね。
その場合でもコンパイル通ったからと主張しだす輩で溢れてる。

300デフォルトの名無しさん2018/04/01(日) 19:26:04.60ID:QnuEAtVo
どこに溢れてるの?

301デフォルトの名無しさん2018/04/01(日) 19:51:17.12ID:Vaw8NqEv
脳内

302デフォルトの名無しさん2018/04/01(日) 21:39:06.35ID:N/JoH072
C++20では生ポが非推奨になるらしいけど
unsafeはチェックできないのと同様に意味がないですね

303デフォルトの名無しさん2018/04/01(日) 21:53:26.11ID:aM38sJCa
他言語呼んでもメモリリーク起きないとかこのスレでも喚いてた輩がいたわけだが。
drop trait を明示的に書かなっきゃならんとかそいつら全く理解してないだろ。

304デフォルトの名無しさん2018/04/01(日) 21:55:16.18ID:9alzQdGn
>>302
非推奨になるってどういうこと?
rustみたいにunsafeブロックみたいなのを導入するってこと?
C++は基本的にはCとの互換があるから無理だと思ってたんだけど…

305デフォルトの名無しさん2018/04/02(月) 11:44:35.64ID:z3JOGYz+
生ポインタ使えることがC++の唯一のメリットなのに
それを非推奨にするなら別の言語使ったほうがマシだろ

306デフォルトの名無しさん2018/04/03(火) 12:33:46.66ID:GZlQK3q7
RustがC++に実用面で勝ってることなんかある?

307デフォルトの名無しさん2018/04/03(火) 13:06:14.98ID:cmHjEB2c
勝っているかどうかは知らんが
cargo/crates.io相当のものがないから
新規アプリをC++で書く気はしなくなってしまった。
もしかして最近は便利になってたりするんだろうか。

308デフォルトの名無しさん2018/04/03(火) 17:54:07.91ID:lesCWZwY
全称命題にするからすぐ反論される

309デフォルトの名無しさん2018/04/03(火) 21:15:38.01ID:zqNShNDp
ペチパーのわしでも書けるのが勝ってる

310デフォルトの名無しさん2018/04/03(火) 21:18:30.15ID:BzNmSsTz
しかしインスタンスを変に共有しなけりゃ解放タイミングを
いちいち気にしなくていいって発想は面白い。

311デフォルトの名無しさん2018/04/03(火) 23:40:54.16ID:K5huRztI
いや、それ当たり前のことだから。

312デフォルトの名無しさん2018/04/04(水) 00:15:13.34ID:e/ecM7t7
RustでWebブラウザ作ってる人いるね


https://twitter.com/uint256_t/status/952818644433555456

313デフォルトの名無しさん2018/04/07(土) 01:03:26.54ID:T+RwBbo7
参照カウントガベージコレクションにもスマートポインタにも興味ないrust信者すごいね

314デフォルトの名無しさん2018/04/07(土) 06:53:26.51ID:k/xupSTU
GCに興味ないのはともかく
BoxとかRcとかモロにスマートポインタだから興味ないとか以前の問題なんだが?

315デフォルトの名無しさん2018/04/07(土) 07:02:17.22ID:sb7KGbUH
というかなんで今になって参照カウンタGCなんて超素朴なGC実装を引き合いに出すのかが分からん
Goですらそんなもん使ってねえぞ

316デフォルトの名無しさん2018/04/07(土) 07:10:17.71ID:sb7KGbUH
……まさかとは思うがC++のshared_ptrのことを指して参照カウントGCと称してないよな?

RustではRcとかArcがそれに該当するから、この文脈でも完全に的はずれになるが

317デフォルトの名無しさん2018/04/10(火) 11:37:36.43ID:pRwunYlM
>>315
Swiftは参照カウント方式のGC採用していたような気がするが
ARCってやつ

318デフォルトの名無しさん2018/04/12(木) 01:27:42.33ID:JdbozTc/
久しぶりに見に来たらアンチが帰ってきてるじゃん。
せっかくだから、おれも反論レスを書き込むことにする。

319デフォルトの名無しさん2018/04/12(木) 01:28:00.22ID:JdbozTc/
>>288
こんなこと言っちゃってる時点でセキュリティに気を使ってないのバレバレだよね
セキュリティ関係に詳しくなくて分からないんなら素直に分からないって言いなよ

320デフォルトの名無しさん2018/04/12(木) 01:28:37.08ID:JdbozTc/
>>299
unsafeなんてC FFIしようとか考えない限りあまり使うことないよ
tokio-coreとかhyperとかhtml5everとかのソースコード見てきなよ
unsafe使ってる箇所なんて10箇所あるかないかってところだから。
コード全域に気を配らなきゃならないのか、たった10箇所程度に気を付けてれば良いのか、
どちらが楽(安全)なのかは火を見るよりも明らかだよね

321デフォルトの名無しさん2018/04/12(木) 01:30:08.73ID:JdbozTc/
>>303
これに関しては自分がC FFIのコードを滅多に書かないから「そうだったっけ?」くらいにしか考えなかったけどよく考えたら全然違うよね。
まず、値渡しなら引数・戻り値ともに何の問題もない。そのまま渡せばいい。
ポインタ渡し(Box<T>)だった場合はCの関数の引数が所有権か借用のどちらを欲してるのかを確認して、
所有権を欲しがってるならBox::into_raw(x)で所有権を渡せばいいし、
借用が必要ならx.as_ref() as *const _ もしくはx.as_mut() as *mut _で渡せばいい。
戻り値の方ではC側から所有権が渡されてるはずだからBox::from_raw(px)でBox<T>に戻せばOK。
文字列(String)の場合はCStringに変換してから後はBox<T>と同様にinto_raw, from_raw使えばいいだけ。
Vec<T>とかを渡そうとする場合はx.as_ptr()またはx.as_mut_ptr()と場合によってはmem::forget(x)が必要になるんじゃないかな?
受け取る場合はVec::from_raw_parts(px, len, cap)を使えばいいはず。(前述のとおりC FFIはあまり詳しくはないので間違ってたら指摘して下さい)
unsafeの中に何を書けば良いのかはC側のどんな関数を呼ぶのか次第で変わってくるけど、少なくともDropトレイトに関しては全く必要ない。
Box<T>やVec<T>等にあらかじめ実装されてるDropトレイトに任せればいいだけ。むしろ君はDropトレイト使って一体何する気だったのか…?

322デフォルトの名無しさん2018/04/12(木) 01:30:27.15ID:JdbozTc/
Rustのアンチするのは一向に構わんが、せめて嘘をつくのはやめようね。

323デフォルトの名無しさん2018/04/12(木) 03:23:54.50ID:XYZqcSuW
C FFIとやらを使うためにはRustの知識だけでなくCの知識も必要
Rustだけ学べばいいなんてことはない

324デフォルトの名無しさん2018/04/12(木) 06:41:03.77ID:1NMGlh89
>>323
cの関数呼ぶんだから当然だろ

325デフォルトの名無しさん2018/04/12(木) 09:05:15.80ID:IekpLPdE
>>321
Rustで確保したリソースをCに渡す場合は確かにdropいらないけど、
C側で確保したリソースについては必要では?
Cから何かハンドルが帰ってきて最後にCでcloseするパターン。

326デフォルトの名無しさん2018/04/12(木) 11:33:57.87ID:6MGFsFO1
>>325
Rust側でDropしないためにDropの実装を上書きする必要があるということ?

327デフォルトの名無しさん2018/04/12(木) 12:23:34.05ID:IekpLPdE
>>326
Cの関数内で確保したリソースは
当然Rustデフォルトのdrop実装では解放されないから
自分でdrop実装して解放する必要がある、という話。

328デフォルトの名無しさん2018/04/12(木) 13:14:59.37ID:JdbozTc/
>>325
>>303は「メモリリーク」って書いてあるからヒープに確保されたメモリの解放に関しては
Dropトレイトを実装する必要性なんか全く無いってことを>>321で説明してる。

>>325の言ってる「リソース」ってのはファイルとかソケットとかのことを言ってるんだよね
そっちはメモリリークとはまた別の話になるので状況によるんじゃないかな…
ただ、OSが提供してるリソース(ファイルやソケット)くらいなら、File, TcpListenerとかには
Windows用とUnix用にそれぞれinto_raw_xxx(), from_raw_xxx(), as_raw_xxx()とかが用意されてるから
それを使えば後のことはFile, TcpListenerのdrop実装に任せてしまって問題ないはず。
C側(ライブラリ)で独自に実装されてるリソース(close等の後処理が必要な実装)の場合は
close部分をRustのDropトレイトの実装として移植する必要はあるだろうね。
(もう一度言うけど、自分は普段はC FFIを使わないから詳しくはないので、間違ってたら指摘して下さい)

329デフォルトの名無しさん2018/04/12(木) 15:11:14.26ID:UiqgOhpn
>>328
メモリリークに限定するとしても
CでmallocしたポインタがRustに渡ってきた場合
Rustが勝手に解放するわけにはいかないから
drop実装してfreeを呼ぶ必要がある。

330デフォルトの名無しさん2018/04/12(木) 17:39:03.84ID:JdbozTc/
>>329
ちょっと言ってる意味がわからない
Cでmallocされたものであっても所有権ごと渡されていれば解放の責任はRustにある
ていうか、Rust側で勝手に解放しちゃいけないと言ってるのに
Dropトレイトの実装でfreeしたらやっぱりRust側で勝手に解放しちゃってるじゃん
言ってること矛盾してない?

CとRustで型のメモリレイアウトが一致してればあとはBox型に任せるだけだよ

Cから渡されてくるポインタの型のメモリレイアウトが公開されていなければ
(つまりvoidポインタだったりオペーク構造体(オペークポインタ)だったなら)話は別だけど。

その場合はRustはハンドルをもらうだけでいかなる操作(メモリの解放(free)も含む)もC FFIでC側に
頼むしかない(メモリレイアウトがわからない限りはRust側ではどうあがいても何も出来ない)ので
Dropトレイト実装してdrop時にC側にメモリの解放処理も頼む必要がある

331デフォルトの名無しさん2018/04/12(木) 18:12:43.26ID:B4Vmqq7H
FFIの場合jemallocかシステムのmallocかの違い問題になることありそう

332デフォルトの名無しさん2018/04/12(木) 21:02:25.76ID:EBEN0Rpp
>その場合はRustはハンドルをもらうだけでいかなる操作(メモリの解放(free)も含む)もC FFIでC側に
>頼むしかない(メモリレイアウトがわからない限りはRust側ではどうあがいても何も出来ない)ので
>Dropトレイト実装してdrop時にC側にメモリの解放処理も頼む必要がある

だからDropトレイトを意識的に実装せにゃならんと始めから言ってるだろうに。
このタイプは絶対仕事でモメるわ。

333デフォルトの名無しさん2018/04/12(木) 22:43:32.09ID:JdbozTc/
>>322
だったら「Rust側からはメモリレイアウトが分からないようなvoidポインタや
オペーク構造体がC側から渡された場合は」という前提条件をきちんと書け。
条件を何も書かずに「drop trait を明示的に書かなきゃならん」とだけ書かれれば
全ての場合で必要だと言っているようにしか見えない。

あと、>>321で「全く」と書いてしまったことは悪かったと思っている
>>321を書いてる時点は上記のような可能性に気づいていなかった…申し訳ない。

お前みたいに「特定の条件下でしか適用されないこと」に対して条件を書かずに結論だけ書いて
「自分はきちんと伝えた」とか思っちゃってるキチガイとの仕事とかこっちの方から願い下げだから。

334デフォルトの名無しさん2018/04/12(木) 22:50:55.21ID:JdbozTc/
>>331
そこは自分も同じことを思った。
mallocとjemallocの実装の中身とか見たことないけど、混在してても問題ないのかな?

335デフォルトの名無しさん2018/04/12(木) 22:54:07.42ID:JdbozTc/
>>333 訂正
>>322>>332

336デフォルトの名無しさん2018/04/12(木) 23:08:05.77ID:9OO0KoJN
>>330
「勝手に」の部分が曖昧だったので正確に書くと、
Rustはメモリ解放すべきタイミングは知っている
(すなわちCから受け取ったポインタのlifetimeが切れたとき)
Rustはメモリ解放の方法は知らない
(なぜならCのmallocがシステムのmallocなのかjemallocなのか別の何かなのか知るすべがないから)
なので方法について教えるためにdropを実装する。
(このdropでCのfreeを呼べば、mallocと同じメモリアロケータが保証される)

ちなみにメモリアロケータ間の互換性はないので、
例えばlibcでmallocしてjemallocでfreeすると多分SEGVする。
コード例は以下でもどうぞ。
https://stackoverflow.com/questions/31486519/how-do-i-free-a-char-allocated-via-ffi-in-rust

337デフォルトの名無しさん2018/04/12(木) 23:35:57.15ID:JdbozTc/
>>336
マジか…mallocとjemallocは混在できないのか…
そうなると、C側でmallocされてれば必ずC側にfreeしてもらうしかないということか…
じゃあ今まで俺が書いた方法じゃダメなケースもあるじゃん…すまん。
自分の無知を晒す羽目にはなったが、むしろ今知れてよかったわ。
でも、そうなると新たな疑問が…

338デフォルトの名無しさん2018/04/13(金) 00:47:00.07ID:AYGoZS+y
jemallocじゃなくてシステムのアロケーター使うオプションだかfeatureだか使えば良いかな

3393372018/04/13(金) 01:19:50.99ID:rxyiIXLh
>>336
間違いの指摘と情報提供のお礼言うの忘れてた。Thanks!

あと、これってRustでのC FFI に限った話じゃないよね?
C同士でさえもアロケータに何を使ってるか次第で同じ問題が発生する。
Cは時々使ってたのに(しかも仕事で)これを知らなかったのはヤバいな…
恐らく今まではたまたま同じアロケータを使ってたから問題が起きてなかっただけか…
戻り値で文字列(char *)が来た時とかこっちで勝手にfreeしてたぞ…(^_^;)
まあ、どのアロケータ使ってるかなんて誰も気にも留めてなかったし大丈夫だろうけど、
今後は気を付けないとな…

340デフォルトの名無しさん2018/04/13(金) 01:26:39.63ID:V+3RqgGh
すべての有用なライブラリがRust製にならない限り
Rustだけを学べばよいという状況は訪れずCやC++の習得も必須

341デフォルトの名無しさん2018/04/13(金) 02:09:57.24ID:zBD4nIN6
>>339
どういたしまして。

C同士の場合は普通glibcへの動的リンクだし
LD_PRELOADとかでjemallocなんかに差し替えても
プログラム全体で差し替わるから特に問題にはならないかと。
もしメモリアロケータを静的リンクしたライブラリとかを使っていればまずいはず。
ただそういう場合はリソースハンドルっぽいAPIになりがちなので
そのままfreeしようとは思わないかもしれない。

342デフォルトの名無しさん2018/04/13(金) 02:17:49.88ID:I2PL3qG3
>>340
そりゃそうだろ、なにいってんだ

343デフォルトの名無しさん2018/04/13(金) 02:33:17.17ID:nqEsOLBj
やくに立たねー結局cか。rustって趣味だな。

344デフォルトの名無しさん2018/04/13(金) 04:00:10.77ID:V+3RqgGh
C/C++だけ覚える
or
RustとC/C++を覚える

学習コスト高すぎRust

345デフォルトの名無しさん2018/04/13(金) 10:22:17.48ID:w0WUHq34
>>343
趣味でモジラの栄養やるとかどんなドマゾだよ

346デフォルトの名無しさん2018/04/13(金) 10:26:05.50ID:w0WUHq34
今の会話見るだけでもRustがいかに欠陥言語かわかるのに
それでもRust使うって言うんだからなあ
全部C/C++で書く方が遥かに効率いいしバグも出んわ

347デフォルトの名無しさん2018/04/13(金) 11:29:35.51ID:EHHg9a+/
C覚えるの必須当たり前ってんなら構文もっとC系に寄せれば良かったのに。

348デフォルトの名無しさん2018/04/13(金) 12:06:18.44ID:ybbP8EF+
今までの流れからその結論は極端すぎるだろ
もう少し工夫しろ

349デフォルトの名無しさん2018/04/13(金) 12:27:54.41ID:zH6rmEat
いつのまにか、FFI使うことが前提になってる流れって、rustをdisりたい勢の必死さがうかがえて、ある意味、面白い。

350デフォルトの名無しさん2018/04/13(金) 12:52:00.31ID:Lj3R2dXy
>>339
CのfreeはNULLなら何もしないと保証されてるけど
解放済みアドレスへのfreeはセグフォ発生するぞ

351デフォルトの名無しさん2018/04/13(金) 13:00:11.55ID:w0WUHq34
Cの資産に寄生しないとろくなもん作れないのに
そのCとの連携部分が腐ってるってことじゃん

使いもんにならねえって評価は妥当だと思うが?
それともPure Rustでまともなもん作れるつもりか?

352デフォルトの名無しさん2018/04/13(金) 17:38:51.06ID:l4JsQkL9
まずまともなもんを先に定義してくれ

353デフォルトの名無しさん2018/04/13(金) 18:09:45.57ID:Z44eD8et
バグらない
動く
実用的
上記3点の実績がある

354デフォルトの名無しさん2018/04/13(金) 18:37:13.42ID:rxyiIXLh
実用的・実積も曖昧だな
どの程度を実用的で実積があると呼ぶのか具体例を提示してくれ

突き詰めていくと「バグらない」も程度によりけりだしな
Excelだってバグるときゃバグるし…

355デフォルトの名無しさん2018/04/13(金) 18:48:56.96ID:lEd4ahw7
本スレは相変わらず過疎だしまじ終わったなこの言語

356デフォルトの名無しさん2018/04/13(金) 19:00:16.55ID:vyE43Z1D
話に入れないからって「………結局駄目!」ってダサすぎない?

357デフォルトの名無しさん2018/04/13(金) 19:21:19.79ID:EHHg9a+/
jsのファミコンエミュレータをrustで実装し直したらパフォーマンス負けたらしいwww

358デフォルトの名無しさん2018/04/13(金) 19:27:43.59ID:a8AOaj4F
>>357
JSに負けるとか草しか生えんなwwwwwww

359デフォルトの名無しさん2018/04/13(金) 19:31:48.55ID:a8AOaj4F
>>354
Linuxくらいバグらないならいいよ

360デフォルトの名無しさん2018/04/13(金) 20:22:47.30ID:rxyiIXLh
>>357
噂に尾ひれがつく瞬間を目の当たりにして草
多分これ↓のことだろ
http://blog.bokuweb.me/entry/2018/02/08/101522
誰かC x wasmで書き直してみろよ。きっと似たような結果になるから

>>359
ついにLinuxと同レベルじゃないと認めないとか言い始めたぞ…

361デフォルトの名無しさん2018/04/13(金) 20:58:47.99ID:Ek+y1xD6
>>357,358
ブラウザ JS版 Wasm版
Chrome 63 4.36ms 5.68ms
Firefox 58 5.76ms 3.98ms
Safari 11 9.98ms 4.21ms

う〜ん草しか生えんね 草草草の草ァ!だね

362デフォルトの名無しさん2018/04/13(金) 21:29:03.20ID:a8AOaj4F
>>361
wasmじゃなくてRustと比べてから言えよ

363デフォルトの名無しさん2018/04/13(金) 21:40:19.55ID:Ek+y1xD6
>>362
草しか生えんわwww

364デフォルトの名無しさん2018/04/13(金) 22:58:07.23ID:LXloKsM4
まあメモリの管理モデルが違う言語同士でやりとりすれば
色々苦労するのは当たり前なんだよね。
それなのに「rustは勝手に解放してくれる」とか言い張っちゃう信者が有害な訳だよ。
rustが悪いというよりか、こういう馬鹿が多いところが問題。

365デフォルトの名無しさん2018/04/13(金) 23:04:17.07ID:bso+BPDq
Haskellは副作用が無いとか参照透過性があるって言った時に
C FFIを持ち出して反論するのと同様の不毛さを感じる

366デフォルトの名無しさん2018/04/14(土) 07:00:49.94ID:xdB8fLqn
不毛?現実によくあることなのにね。。
言語の一番下ではアセンブラが動いてるんだから、そことどう調和もしくは隠蔽させるかってのは
コンピュータ言語にとって本質でしょうが。

367デフォルトの名無しさん2018/04/14(土) 07:18:52.94ID:S65yHOqM
は?何で一番下が機械語じゃなくてアセンブラなの馬鹿なの?

368デフォルトの名無しさん2018/04/14(土) 09:16:33.44ID:/jFvD9M/
コンピュータ言語w

369デフォルトの名無しさん2018/04/14(土) 11:34:49.77ID:+NzeE6vg
アセンブラと機械語は1:1で訳せるから…

370デフォルトの名無しさん2018/04/14(土) 11:47:39.37ID:oZ68B8i3
アセンブリやろ

371デフォルトの名無しさん2018/04/14(土) 13:58:04.39ID:dXnZwWyG
結局Rustはサーバ向けでもコマンドツール向けでもGUI向けでも組み込み向けでもない

って事実はほんと覆らんよ

372デフォルトの名無しさん2018/04/14(土) 14:12:11.55ID:9z5cq9ls
話に入れないからって「………結局駄目!」ってダサすぎない?

373デフォルトの名無しさん2018/04/14(土) 14:55:11.55ID:42ccGSN6
jsのファミコンエミュレータをrustで実装し直したらパフォーマンス負けたらしいwww

374デフォルトの名無しさん2018/04/14(土) 15:21:13.70ID:TDyE7icd
>>372
悔しかったら反論してみたらぁ?

375デフォルトの名無しさん2018/04/14(土) 15:23:55.88ID:xdB8fLqn
>>372
メモリ管理みたいな重要なことについてデララメ振りまいて、
「理解しない奴がrust批判してる」とか言い出してる方が恥ずいわ。

376デフォルトの名無しさん2018/04/14(土) 15:34:36.03ID:TDyE7icd
上の流れ素直に読んでも、
メモリ管理も全部C側で完結させるのが一番いいって結論にしかならんぞ?

Rustのいいところなんぞ皆無だ

377デフォルトの名無しさん2018/04/14(土) 15:44:33.95ID:TDyE7icd
というかコンパイラにメモリ管理任せるのが無理だろ。FFIのためにいちいちDrop定義するとか非効率でしかない

メモリ管理はGCに任せるか完全手動にするかの二択なのに、無理矢理そこにヘンテコリンなソリューションもどき持ち込んで混乱引き起こしてるだけじゃん

378デフォルトの名無しさん2018/04/14(土) 15:50:41.81ID:TDyE7icd
Rustの提案するエセソリューションは機械語のレベルと相性が悪い
CやC++のほうがまだまともなアプローチしてる

379デフォルトの名無しさん2018/04/14(土) 15:53:50.88ID:LmbQudMt
>>377
うおっ!
ここにきてまさかのRAIIを否定し始めるとか予想外すぎたわ!
お前C++のスマポってなにか知ってる?

380デフォルトの名無しさん2018/04/14(土) 15:55:07.64ID:TDyE7icd
>>379
ほとんどのコンパイラで採用されてない仕様書上にしかない機能なんざ知らんよ

381デフォルトの名無しさん2018/04/14(土) 15:58:27.76ID:TDyE7icd
実際混乱引き起こしてるまともじゃない方法なのは上の流れで自明だろ

382デフォルトの名無しさん2018/04/14(土) 16:02:24.43ID:LmbQudMt
>>380
よろしい。そんな君にはJavaがおすすめだ。そっちで元気にやりたまえ。

383デフォルトの名無しさん2018/04/14(土) 16:05:01.76ID:75zALjkM
以前も言われてたけど「ひまわり学級の子が普通の授業に出て暴れてる」って表現が実に的確で草

384デフォルトの名無しさん2018/04/14(土) 16:07:01.72ID:TDyE7icd
間違ったものを間違った奴が流行らせようとしてるんだからそれには「違う」って言っとかないとダメだろ
話にならんと放置したらいずれ手遅れになるほど蔓延する
そうならないうちに叩いておくべきなんだよ

385デフォルトの名無しさん2018/04/14(土) 16:10:39.48ID:w273LxVR
混乱引き起こしてるのは違いないけどさ
「俺の頭の中で混乱を引き起こしてる」って正確に書こうよ

386デフォルトの名無しさん2018/04/14(土) 16:11:44.32ID:TDyE7icd
>>385
上のFFI絡みの流れは俺じゃないけど?

387デフォルトの名無しさん2018/04/14(土) 16:15:30.43ID:w273LxVR
完全手動でメモリ管理するのは混乱起きないからいいよね〜

388デフォルトの名無しさん2018/04/14(土) 16:21:52.10ID:TDyE7icd
>>387
コンパイラに丸投げするよりは良いな
混乱しないって意味だとGCが一番だが

389デフォルトの名無しさん2018/04/14(土) 16:27:01.78ID:nFvlFlcl
>>375
上のやり取りは俺じゃないけど?
散々間違いがあったら指摘してくれって書いてたのがデタラメを振りまいた?
間違いの指摘に礼を言って終えるところに、鳴りを潜めていたアンチがウキウキで「混乱を引き起こしたRust!!!」と喚き立てた
このスレでも何回もやってる流れじゃんクソダセー

390デフォルトの名無しさん2018/04/14(土) 16:38:44.62ID:TDyE7icd
はいはい内ゲバですね
ほんとくだらん言語

391デフォルトの名無しさん2018/04/14(土) 16:43:14.18ID:nFvlFlcl
>>390
内にいるつもりなんだお前

392デフォルトの名無しさん2018/04/14(土) 16:44:00.69ID:nFvlFlcl
インタプリタへの丸投げ>完全手動でメモリ管理>コンパイラへの丸投げ
実行開始までの混乱しない順だなどう考えても

393デフォルトの名無しさん2018/04/14(土) 16:47:43.87ID:TDyE7icd
>>391
外から内ゲバ眺めてやっぱこの言語くだらねって思ってるだけ
C++の(後方互換維持のための苦しい構文追加以外)なにが悪いんだか

394デフォルトの名無しさん2018/04/14(土) 17:00:21.56ID:LmbQudMt
>>393
スマポが何かを知らないヤツがC++を語り始めたぞ…

395デフォルトの名無しさん2018/04/14(土) 17:00:54.52ID:nFvlFlcl
>>378
ていうかこれ知りたい
Rustの何が(例:MIR)どう機械語との相性が悪く
それに対してC/C++のまともなアプローチの具体例を教えて

396デフォルトの名無しさん2018/04/14(土) 17:03:21.15ID:LmbQudMt
>>395
代弁してやろう。
「自力で頑張る」

以上

397デフォルトの名無しさん2018/04/14(土) 17:17:27.65ID:TDyE7icd
>>395
結局解放処理は自分で書くんだろ?
メモリ上の確保のされ方はコンパイラにはわからないんだから

結局中途半端にしか自動化できないから無意味で、それなら自分で管理した方が結果的に良いって話

398デフォルトの名無しさん2018/04/14(土) 17:24:46.46ID:Syz4zWn3
解放の仕方を実装したら、後はコードのどの場所で何回確保しても自動で解放される事が分かってないっぽいね

399デフォルトの名無しさん2018/04/14(土) 17:31:29.95ID:LmbQudMt
>>398
だってRAIIもスマポも知らないんだもん。しょうがないじゃん

400デフォルトの名無しさん2018/04/14(土) 17:34:05.03ID:nFvlFlcl
>>397
C FFIとかの一部分で解放処理を書くんだよ
お前が言ってる通り「手動」だしお前の好きな「手動」でよかったな
中途半端にとは言っても機能するし「無意味」と言い切るには典型すぎる誤謬

>>395にまともに答えてくれる?どう相性が悪いの?どんなアプローチ?

401デフォルトの名無しさん2018/04/14(土) 17:50:25.61ID:TDyE7icd
>>400
今の説明でわからんなら一生わからんよ

402デフォルトの名無しさん2018/04/14(土) 17:56:25.03ID:LmbQudMt
>>401
あっ! 逃げたww

403デフォルトの名無しさん2018/04/14(土) 18:04:42.44ID:nFvlFlcl
Q. Rustの何がどう機械語との相性が悪く、それに対してC/C++のまともなアプローチの具体例を教えて
A. 結局中途半端にしか自動化できないから無意味で、それなら自分で管理した方が結果的に良い

Rustアンチ君との最後のやり取りがこれなのか…?悲しい

404デフォルトの名無しさん2018/04/14(土) 23:45:32.28ID:lczq2IdA
いい加減ワッチョイスレに移動しようぜ

405デフォルトの名無しさん2018/04/14(土) 23:54:45.22ID:LmbQudMt
>>404
実際問題ワッチョイは過疎る

406デフォルトの名無しさん2018/04/15(日) 03:16:54.39ID:8wseEBgk
>>404
YOUがワッチョイのほうで話題ageれば

407デフォルトの名無しさん2018/04/15(日) 09:21:32.45ID:eccSQZbu
ここはネタスレだからこれでいいよ

まともな話題ないし

408デフォルトの名無しさん2018/04/15(日) 10:16:53.40ID:pCFT19cL
ワッチョイは運営が管理を放棄するための口実

409デフォルトの名無しさん2018/04/15(日) 10:33:02.44ID:E1b18XLI
ワッチョイあった方が良い派です

410デフォルトの名無しさん2018/04/15(日) 11:32:28.09ID:fK7P6CAL
いちおう指摘しておくと以下にわっちょい付きのスレはある。
http://2chb.net/r/tech/1514107621/l50

411デフォルトの名無しさん2018/04/15(日) 14:26:16.16ID:WuS7UUJE
そう思うんなら勝手にそっちでやってくれ
いちいちこっちに宣伝しないでよろしい

412デフォルトの名無しさん2018/04/15(日) 14:57:22.17ID:eccSQZbu
せめてスレ立てたやつくらいはあっち書き込んでくれよ。
ワッチョイスレ(本スレ)には俺しかいない。

413デフォルトの名無しさん2018/04/15(日) 15:05:21.27ID:6SePuRaV
人が集まってる(勝ち残った)方が本スレ

414デフォルトの名無しさん2018/04/15(日) 16:17:50.87ID:vLrea5+q
アンチスレの方が人多いっていい加減認めようぜ

415デフォルトの名無しさん2018/04/15(日) 20:40:55.33ID:oxsxYGoa
>>414
いちおうアンチスレも存在するんだぜ
http://2chb.net/r/tech/1509028624/

416デフォルトの名無しさん2018/04/15(日) 21:13:20.51ID:0BluVJwA
>>384
大元に言わないで、ここでグダってる時点で説得力無いけどな。

417デフォルトの名無しさん2018/04/16(月) 09:16:50.73ID:fU1aO3Gb
英語で説明する気力がないんだろ

418デフォルトの名無しさん2018/04/21(土) 15:59:38.16ID:GAOK2TS0
それもあるが日本語の記事でrustマンセーしてるやつは大抵バカっていうのもある。

419デフォルトの名無しさん2018/04/21(土) 18:22:00.01ID:u/5OPPGG
会話になってないし
時間おいたところで>>395に答えなくてもいいことにはならないからね

420デフォルトの名無しさん2018/04/22(日) 12:28:50.40ID:fDht+F2y
もう答えた
>>397

421デフォルトの名無しさん2018/04/22(日) 15:34:45.59ID:4jEar62+
自分から「機械語のレベルと相性が悪い(>>378)」と言ってるのに
「具体的にはどういうこと?(>>395)」と聞かれて、
その返答(>>397)に機械語のことが一切出てこないのは流石に草

422デフォルトの名無しさん2018/04/22(日) 20:55:11.63ID:jr6NU+gW
英語で説明する以前に日本語でのコミュニケーションに難ありなのか
日本語ネイティブじゃない方なのかな

423デフォルトの名無しさん2018/04/22(日) 22:58:46.99ID:lYpO0H1A
機械語との相性のいいC,C++のソリューションって、機械語バイト列を関数ポインタにキャストして呼び出すとかじゃないの?
そんなことRustでできるようになって欲しくはないな。

424デフォルトの名無しさん2018/04/22(日) 23:13:49.80ID:KagmHCpN
できるよ
推奨してないけど

425デフォルトの名無しさん2018/04/23(月) 00:45:39.39ID:Fi1E6adA
JITとかそういう用途?

426デフォルトの名無しさん2018/04/24(火) 00:26:37.67ID:IHcLIR+Z
rustで書かれたjitなかったっけ?

ところでrustで書かれたウィルスとかマルウェアとかないよな。
goならMiraiで使われてたけど。

427デフォルトの名無しさん2018/04/27(金) 21:30:01.00ID:Tx6nrcMv
C/C++の弱い型付けによるキャストは機械語と関係ないだろ
Rustは強い型付けしか原則許してなくてunsafe使えば弱い型付けも出来るけど好んでする必要性はないよねー

プログラミング言語と機械語の間はC/C++もRustもLLVM IRで仲介されてるから、どっちかだけが相性良いとかなさそう
LLVM IRじゃなくGas仲介するとこう違うんだよ、くらいの反論を期待してみるテスト

428デフォルトの名無しさん2018/04/27(金) 23:30:19.86ID:AfC0onIC
>>427
フロントエンドの話してるのに、バックエンドがLLVMだから違いなどない!は、おかしいのでは?
そんなこと言い始めたら、言語仕様の優劣など語るに値しないということになってしまう。

429デフォルトの名無しさん2018/04/27(金) 23:43:23.39ID:MR18u0zM
>>427
Any使ったdowncastはunsafeじゃないけどどういうコードの話してんの?

430デフォルトの名無しさん2018/04/28(土) 16:19:50.16ID:6S6rcsk3
このRustのチャットみたいなのって公式のもの?

https://gitter.im/rust-lang/rust

431デフォルトの名無しさん2018/05/01(火) 14:27:18.61ID:riKaEN0n
rustでフォントをレンダリングしたいのですがfont-rsやfreetypeなどの設定逆引き的なサイトってありませんかね?
チュートリアル的なサイトは見つかるのですがそこから突っ込んで使用したい場合に参考になりそうな情報がみあたらないです
レンダリングされる線を任意の幅にしたいです
極細フォントを使って線幅1ピクセル×2=計2ピクセルでアンチエイリアス無しみたいな感じの結果が欲しいです

432デフォルトの名無しさん2018/05/01(火) 14:37:54.06ID:riKaEN0n
具体例を補足します
出力が2値の場合に普通にレンダリングした物を減色してしまうと線幅の不均一になったりディザが掛かってしまって
表示品質が極端に悪くなってしまうのでそれを防止したいです
たとえば「田」みたいな字をレンダリングして減色するとある線は1ピクセルだけど別の線は2ピクセルになってしまったり
交わるところに不要なドットが出現したりします
それを全て任意の線幅に統一したいです

433デフォルトの名無しさん2018/05/01(火) 14:58:24.50ID:8Qa5eQjM
ここはアンチスレなので、まともな質問はslackへどうぞ

434デフォルトの名無しさん2018/05/02(水) 04:26:15.76
えぇ。。

435デフォルトの名無しさん2018/05/02(水) 04:45:47.66ID:JZRYx+4v
https://rust-jp.herokuapp.com/

rustのslack
↓のサービス使ってオープンにすればよい
http://slackarchive.io 👀
Rock54: Caution(BBR-MD5:b95868ef2c0ed5e765a4d10ada4cf289)

436デフォルトの名無しさん2018/05/02(水) 11:08:56.76ID:C2OG+VM0
Rustってカルトみたいなもんだよな
実態はスカスカで教祖の金儲けに使われてるだけなのに、信者は正義と信じて疑わない辺り

slackなんて内輪の集会に逃げ続けて表の評価に曝されることを避けてる時点でまともなプログラミング言語じゃない

437デフォルトの名無しさん2018/05/02(水) 11:13:07.30ID:9TOinEtH
>>436
Rustの提案するエセソリューションは機械語のレベルと相性が悪い
CやC++のほうがまだまともなアプローチしてる

438デフォルトの名無しさん2018/05/02(水) 11:39:02.32ID:C2OG+VM0
>>437
お前はさっさとその答え教えてくれよ
Rust批判するにしてもコンピュータの知識皆無すぎるわ。批判側がお前と同じ知的レベルに見られるのがクソ

439デフォルトの名無しさん2018/05/02(水) 11:55:03.24ID:9TOinEtH
>>438
へー今日はたくさん書き込むつもりなんだ

440デフォルトの名無しさん2018/05/02(水) 12:31:00.89ID:ZVrvL9q8
こちらはまともなアンチとキチガイアンチのスレになります。

441デフォルトの名無しさん2018/05/02(水) 12:53:31.01ID:vKwn9vOL
いやどっちもキチガイだから

442デフォルトの名無しさん2018/05/02(水) 12:58:01.18ID:vKwn9vOL
>>436
表の評価(2ch)wwww

443デフォルトの名無しさん2018/05/02(水) 20:38:46.50ID:Ua9w95BC
少しずつRustの研究が出てきたね
https://arxiv.org/abs/1804.10806

444デフォルトの名無しさん2018/05/03(木) 01:12:08.40ID:Sirn7AO1
win10 rs4にしてからrustdocが遅い。
rs4にMeltdown/Spectre対応のパッチも含まれてたんだろうか。

445デフォルトの名無しさん2018/05/03(木) 02:54:28.33ID:Rj4yBmSF
Rustを導入している企業・組織の一覧をご覧ください


https://www.rust-lang.org/ja-JP/friends.html

446デフォルトの名無しさん2018/05/03(木) 08:55:22.99ID:4wWpk2nD
Windows defenderが動いてるとかでは

447デフォルトの名無しさん2018/05/03(木) 12:04:38.70ID:y3R7schb
少なくとも5chではgoよりrustの方が盛り上がってるな。

448デフォルトの名無しさん2018/05/08(火) 01:41:55.63ID:jFUdx6HI
impl traitはよ

449デフォルトの名無しさん2018/05/08(火) 21:29:46.74ID:RGDg6ogT
パフォーマンスとマルチスレッドを理由にRustを採用という事らしい

https://logmi.jp/282807

450デフォルトの名無しさん2018/05/08(火) 22:15:52.43ID:W4Ax9FiD
ドワンゴといい、ヤバい会社の指標としていいねw

451デフォルトの名無しさん2018/05/08(火) 22:23:27.27ID:T0pMALEX
機械語のレベルと相性が悪いしなw

452デフォルトの名無しさん2018/05/08(火) 22:26:07.82ID:EnN/pyur
>>450
>>445
これでもそんな知恵遅れみたなこと言うの?

453デフォルトの名無しさん2018/05/08(火) 23:31:08.80ID:W4Ax9FiD
同じリストを他言語でも作ってみたら?
どれだけバカなこと言ってるかわかると思うよ。

454デフォルトの名無しさん2018/05/08(火) 23:52:08.90ID:EnN/pyur
ああそりゃ分かるだろうね、是非作ってみたまえよ

455デフォルトの名無しさん2018/05/09(水) 00:11:01.28ID:ZcDO5kt6
>>449
謳い文句通りの「速度とマルチスレッド」で選んだら後でめんどくさいよ。
MIRの導入もなかなか成果出てないし、同期はセマフォ/ミューテックスしかなくて
javaみたいに高レベルから低レベルまで自分で書けるわけじゃないし、
non blocking ioも、lock free collectionもなくて外部ライブラリへの依存度が極めて高いし、
cargo腐ってるせいでrustのtooling絡みのissueが日に日に増えるし。

rustの良いところは言語の部分だからコアな機能使わないなら他言語のほうが良い。
土方の要求には合わないでしょ。

それよりimpl traitまだー?

456デフォルトの名無しさん2018/05/09(水) 00:44:09.86ID:D/4RZNTl
間も無くなんだから静かに待ってなさい

457デフォルトの名無しさん2018/05/09(水) 08:29:25.33ID:SINErtCB
>>449
これってgoでは無理だったんかね?
単純に趣味の問題?

458デフォルトの名無しさん2018/05/09(水) 13:55:28.84ID:9bmRNzTn
goって言語仕様でマルチスレッドによるデータレースを起こさない仕組みってあるの?
無かったらその部分が大きいのでは?

459デフォルトの名無しさん2018/05/09(水) 15:04:31.38ID:bH4TOh4o
goはchannel経由にすれば自動的にアトミック
mutex部分が隠ぺいされてるので意識する必要が無い

460デフォルトの名無しさん2018/05/10(木) 01:52:41.29ID:8hhZ9q5s
むしろrustがなぜチャネル的なもの入れなかったんだ?

461デフォルトの名無しさん2018/05/10(木) 02:11:20.77ID:71z1/J2u
標準にも外部crateにもいっぱいあるだろ
ライブラリとしてではなく言語仕様としてという意味か?

462デフォルトの名無しさん2018/05/10(木) 10:12:22.36ID:sqBEyANZ
>>459
言ってることがよくわからんメモリ共有は基本的にmutexみたいな物はついてない気がするけど。基本的にchannel経由で情報交換しない方針にすれば
データ競合は防げるって話では?

rustってデータ競合がコンパイル時点で防げるって意味がわからん。
そんなことがかのうなん?

463デフォルトの名無しさん2018/05/10(木) 10:16:06.63ID:sqBEyANZ
>>462
X 基本的にchannel経由で情報交換しない方針
○ 基本的にchannel経由で情報交換する方針

464デフォルトの名無しさん2018/05/10(木) 10:17:49.30ID:sqBEyANZ
>>463
詳細はこちら
Goでスレッド(goroutine)セーフなプログラムを書くために必ず注意しなければいけない点
https://qiita.com/ruiu/items/54f0dbdec0d48082a5b1

465デフォルトの名無しさん2018/05/10(木) 13:22:21.00ID:MOe7VLfi
数十GBのオブジェクト管理は、gc待ちきついからオフヒープでとか、(これ聞いたときよりgcは良くなってる)
goroutineで確保したメモリは解放せずgoが管理するから、常駐で同時に大量に走ると解放されないとかはあるみたい。

466デフォルトの名無しさん2018/05/10(木) 13:35:12.76ID:71z1/J2u
>>462
それが売りの一つなんだから当然出来る
具体的にはこれでも読んでくれ

https://rust-lang-ja.github.io/the-rust-programming-language-ja/1.6/book/concurrency.html

467デフォルトの名無しさん2018/05/10(木) 18:25:01.25ID:0Uo+Yl5e
以下の場合に&*fで具体的にどうなってるのかが分からない
*でderefされてトレイトオブジェクトの実態になって、&を付けることで再度トレイトオブジェクトになってる?
ちなみにexec(f.deref())だとそのまま通るけど、これはBoxのderefが&Tを返すからだよね?
*だとBoxのderefで返った&Tではなく、さらにderefされてTが返っているってこと?


fn create() -> Box<Fn()> {
Box::new(|| println!("test"))
}
fn exec<F: Fn()>(f: F) {
f()
}
fn main() {
let f = create();
exec(&*f);
}

468デフォルトの名無しさん2018/05/10(木) 21:37:45.30ID:r2ZBYv9N
Derefを実装した型に対しての*xは*x.deref()の糖衣構文
つまり、&*xは&*x.deref()と同じで、それはつまり、x.deref()と同じ

469デフォルトの名無しさん2018/05/10(木) 22:16:14.49ID:0Uo+Yl5e
なるほど
*x ==x.deref() って言う認識だったのが間違ってたのか
ありがとう

470デフォルトの名無しさん2018/05/12(土) 02:06:23.28ID:6a2pRrds
impl trait来たな

471デフォルトの名無しさん2018/05/12(土) 14:27:50.20ID:CbmhA0Cx
きた

472デフォルトの名無しさん2018/05/14(月) 08:56:23.29ID:+8ra2A+L
久しぶりにRustやろうと思ったけど公式リファレンスが最新版に追いついてないのな
どっかに変更履歴のまとめとか無いのかな

473デフォルトの名無しさん2018/05/14(月) 12:00:52.07ID:fAXXTBeo
>>427
公式リファレンスって何のことを指してるんだ?
APIリファレンスならきちんと最新版に追従してるし、
チュートリアル(The Book)も2nd Editionがきちんと出てる
バージョンアップの追従ならリリースノート見るかRustの公式ブログ見れば大体分かると思う

Rustは6週間に1回のハイペースでマイナーバージョンアップ繰り返してるから
The Bookのほうは最新版に追いつくこと自体がほぼ不可能だと思うけど
(つい最近もimpl traitがstable化されたばっかりだし…)

474デフォルトの名無しさん2018/05/14(月) 12:06:29.06ID:fAXXTBeo
>>473
間違えた
X >>427
>>472

475デフォルトの名無しさん2018/05/14(月) 21:32:55.87ID:+8ra2A+L
そのimpl traitが気になってまたRustやろうと思ったんだけどね
全機能の索引みたいなのがないと学習効率が落ちる

476デフォルトの名無しさん2018/05/17(木) 09:49:24.40ID:iDnHcMfd
rustって生産性高い?
安全性が高まって結果的に高くなるということではなくね
やっぱでかいプログラムじゃなきゃ使う効果ない?

477デフォルトの名無しさん2018/05/17(木) 10:44:40.51ID:eZl7hMvh
Javaでnull参照が10億ドル単位の損害と言われてるので
RustはJavaより10億ドルほど生産性が高い

478デフォルトの名無しさん2018/05/17(木) 11:16:01.90ID:mMzQfbWV
まあ、ネタにマジレスになるが、
その論法だと俺の未完成言語は誰もバグを生み出してないので
Rustより生産性が高いなw

479デフォルトの名無しさん2018/05/17(木) 11:48:49.35ID:UfgM043o
>>478
分母分子共にゼロなので計算不能ってやつね。

480デフォルトの名無しさん2018/05/17(木) 14:42:41.57ID:5Q9GbdJl
チーム開発に良さそうな気がするけどメンバーのレベルにかなり依存しそう

481デフォルトの名無しさん2018/05/17(木) 15:12:36.48ID:xSjwlbqQ
自分がGCなしの言語使ってた時の経験だと、ヌルポより、freeした後にアクセスするバグの方が多かったから、オーナーを一つにするrustはいいと思う。
まあ、objective-cのARCでいいじゃんとも思うけど。

482デフォルトの名無しさん2018/05/17(木) 15:31:36.59ID:eZl7hMvh
そこでoptionalですよ
こいよ継承クラス、ポリモーフィズムなんて捨ててかかって来い!

実際、null非許容のポインタが欲しい

483デフォルトの名無しさん2018/05/17(木) 15:59:25.11
誰がヌルポなんか 、ヌルポなんか怖かねぇ!

484デフォルトの名無しさん2018/05/17(木) 16:39:48.45ID:l6lckqvi
C#だとぬるり

485デフォルトの名無しさん2018/05/17(木) 19:10:55.29ID:eQ6djlVW
C#の発想元はJavaよってC#もぬるぽ(意味不)

486デフォルトの名無しさん2018/05/17(木) 23:47:12.62ID:STJHYINb
1.27.0-nightly (2f2a11dfc 2018-05-16)がregressionしとる。
issueある。待つヨロシ。

>>427,473
the rust referenceのことじゃね?the bookとは別にあるだろ。
全然追いついてないよアレ。そもそもまだ仕様書がない言語だし。
" best-effort document"って書いてあるでしょ

487デフォルトの名無しさん2018/05/18(金) 23:04:38.08ID:e1n+oPRU
httpサーバでありかつクライアントであるみたいなプログラム書く場合、現状hyper一択なのかね?
acitx-webとか誰か使ってない?

488デフォルトの名無しさん2018/05/19(土) 02:24:33.88ID:1CYkmYAx
最初rocketで書いてたけどactix-webで書き直してる
今だとactix-webが一番良い感じだと思う
必要に応じて同期、非同期、アクターモデルと使い分けられるし

489デフォルトの名無しさん2018/05/19(土) 22:00:56.80ID:o9r1YzQK
>>488
良い感じか。使ってみるか。ありがとう

490デフォルトの名無しさん2018/05/23(水) 01:20:45.09ID:RRIpR+v2
https://github.com/rust-lang/rfcs/pull/2444
有志「クソ機能入ったのいらねえから消そうぜ」
大勢「いいな!賛成」
独裁開発チーム「もう入ったから消せませーーーーんwwwwww(クローズ&ロック)」

systemdかよって

491デフォルトの名無しさん2018/05/23(水) 03:14:02.94ID:V0Z2NuNB
>>490
もう入ったから消せませんってのは横暴なようにも見えるがしようがないとも思う
一度入れてしまった機能をまた使えなくするとか、それこそ混乱するし…
そもそも何故impl trait を引数の位置にも書けるようにしたのかは確かに甚だ疑問ではあるけど…
引数の位置でジェネリクスとトレイト境界じゃなくてimpl trait じゃないとダメなケースとかある?
無いなら、warning出してジェネリクスとトレイト境界に書き直すように促すのが妥当じゃないかな?

492デフォルトの名無しさん2018/05/23(水) 07:29:53.45ID:chu47WW7

493デフォルトの名無しさん2018/05/23(水) 10:44:20.66ID:KWn7zjxF
こういうところでマウンティングとらないといけない辺り
言語(笑)開発チームとやらも内情はどうなってることやら

494デフォルトの名無しさん2018/05/23(水) 11:19:22.58ID:2AZG2/zg
たしかにどっちで書くべきかよくわからんくなった

495デフォルトの名無しさん2018/05/23(水) 12:46:35.30ID:wx8WkS/n
<T: Trait> foo: T

foo: &Trait
との比較で特殊なケースを除き前者の方が効率良いが
syntax上後者の方が簡単なので
初心者が誤って後者を使ってしまうケースがあった
これを防ぐためにimpl Trait および &dyn Traitを導入し
&Traitをdeprecateすることになった

496デフォルトの名無しさん2018/05/23(水) 19:22:54.70ID:Au5e7VGg
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

D49IO

497デフォルトの名無しさん2018/05/23(水) 20:12:10.79ID:OqqpDSMd
もう入ったから消せません
は正論

何故クソ機能の進入を許してしまったのか、どうすれば食い止められたのかについて追求すべき

498デフォルトの名無しさん2018/05/23(水) 21:15:28.51ID:cEWT5Ura
ジェネリクスの型変数って引数と戻り値の型を揃えるとかそういう使い方をすべきであって
Traitをimplした型を受け取るという意味ではimpl Traitを使うべきだと思う
ただimpl Traitを導入するなら1.0の時点で導入してて欲しかった

499デフォルトの名無しさん2018/05/23(水) 23:34:44.01ID:J44hs+nP
こういうところでマウンティングとらないといけない辺り
言語(笑)開発チームとやらも内情はどうなってることやら

500デフォルトの名無しさん2018/05/24(木) 00:25:13.01ID:XbYocBeq
javaのジェネリックスが理解できてないやつが多いだけ。

501デフォルトの名無しさん2018/05/25(金) 02:08:00.91ID:MJUyxiHQ
Rust始まる前に終わったか

502デフォルトの名無しさん2018/05/25(金) 10:28:02.89ID:fl2+4CP3
始まる要素が欠片でもあっただろうか

503デフォルトの名無しさん2018/05/25(金) 10:31:47.59ID:fl2+4CP3
>>495
それはdyn Traitの実装理由であっても、
引数位置のimpl Traitを実装した理由の説明になってない

504デフォルトの名無しさん2018/05/25(金) 12:05:08.76ID:2Lpcv/H6
fn foo(a: &dyn Trait)

fn foo<T: Trait>(a: T)
では前者の方がlightweightでは

505デフォルトの名無しさん2018/05/29(火) 19:15:02.85ID:MDdgGfn5
target/debug 以下に生成されるdepsとかbuildって何なの?
goとかにはないよね?
gtk-rsだと500MB消費しちゃうんだけど他のプロジェクトで使い回しとか出来ないの?

506デフォルトの名無しさん2018/05/29(火) 23:04:02.93ID:R7SeORIn
>>505 環境変数CARGO_TARGET_DIRを指定してやれば再利用してくれるよ
ただ、vscodeのrustプラグインの何かがこの環境変数を考慮してないんで挙動がおかしくなったことがあるんで注意

507デフォルトの名無しさん2018/05/29(火) 23:26:47.02ID:MDdgGfn5
>>506
おお流石に出来たんですね

プラグインがおかしくなるのはrls側の問題ですかね🤔

508デフォルトの名無しさん2018/05/29(火) 23:29:14.13ID:TMN/Dqsk
Rustと言えばcookpad。

509デフォルトの名無しさん2018/05/30(水) 14:08:55.25ID:EgEwhYIf
>>501
最近Rustの話聞かなくなったな

510デフォルトの名無しさん2018/05/30(水) 18:12:45.66ID:pSj5bsTP
HNはリリースの度に話題になってるけど

511デフォルトの名無しさん2018/05/31(木) 06:31:41.15ID:Ao0QiwhU
日本の企業くらいだよ。
rustで書いてまっせっていうバカなアピールするのは。

512デフォルトの名無しさん2018/05/31(木) 06:42:55.06ID:RS4tQXGE
まあCloudflareも日本にリージョンあるしな

513デフォルトの名無しさん2018/05/31(木) 10:37:31.25ID:QFV8wAla
>>511
泥箱って日本企業だっけ

514デフォルトの名無しさん2018/05/31(木) 15:17:41.00ID:Rs+XOVpI
日本の企業って凄いんだなー

515デフォルトの名無しさん2018/05/31(木) 20:32:40.66ID:ITatAB0P
wtftwっていうタイル型WM、設定ファイルまでrustで書くのどうなんだろ
設定ファイルはluaあたりが無難?

516デフォルトの名無しさん2018/05/31(木) 22:08:10.33ID:Ao0QiwhU
>>513
いやもうなかったことにしたがってるじゃんw
それなのに変なのに付きまとわれてるっていう。

517デフォルトの名無しさん2018/05/31(木) 22:30:50.22ID:Rs+XOVpI
>>516
「なかったことにしたがってる」というソースをプリーズ

518デフォルトの名無しさん2018/05/31(木) 22:43:00.94ID:RS4tQXGE
Dropboxのbrotliデコンパイラが昨日更新されてたから
24時間以内のホットな情報だ

519デフォルトの名無しさん2018/05/31(木) 22:43:34.41
Rustが失脚すると得をする組織があるの?
どうしてそこまで情熱的にRustを貶すの?

520デフォルトの名無しさん2018/05/31(木) 22:46:14.56ID:Qkx1CtmH
>>515 ざっとコンフィグファイル見たらXMonadのコンフィグよりは理解しやすいように思った
xmonad.hsはもっと宣言的に書けて、モナドとか上手く作って見栄えは良くできるんだけど、
馴染みのない演算子(<+>とか)使いまくるんで、よっぽどHaskellに慣れ親しんだ人でないと全容が理解できない

設定ファイルのフォーマットを開発言語と同じにするのはdwmから続くタイル型WMの流儀だし、
思ったより読めていいと思うよ。

521デフォルトの名無しさん2018/06/01(金) 00:57:19.91ID:Lcv3mjW7
>>519
前段 モジラとその小判鮫以外の全組織が喜ぶ
後段 技術的にカスなものを貶すのは技術者の義務だろ

522デフォルトの名無しさん2018/06/01(金) 01:23:36.92ID:n6iooPs9
>>521
>技術的にカスなものを貶すのは技術者の義務だろ
じゃあPHPではなく敢えてRustをdisる理由は?
あちらの方が広く使われてるからより害悪だと思うが

523デフォルトの名無しさん2018/06/01(金) 04:40:22.00ID:WbqigEkQ
>>520
ほうほう

524デフォルトの名無しさん2018/06/01(金) 06:21:30.96ID:/a7YB1o/
>>522
あれを使ってるやつも害悪性は理解してるからな。
こういう技術的にインテリな要素のある言語って信者がとにかく頑なで
実際のプログラムの現場で非常に問題になることが多い。

525デフォルトの名無しさん2018/06/01(金) 07:12:12.64ID:V5eoRgyy
ほーん具体的にどんな問題がおきたの?

526デフォルトの名無しさん2018/06/01(金) 07:23:19.18ID:M/qnTWL0
んー例えば
Rustの提案するエセソリューションは機械語のレベルと相性が悪い
CやC++のほうがまだまともなアプローチしてる

527デフォルトの名無しさん2018/06/01(金) 08:47:59.46ID:n6iooPs9
>>525
んー例えば
コンパイルが通せなくて自尊心が傷ついて自ら会社をやめちゃう問題とか

この話どこまで事実か知らないけど仮に本当だったとしても
これって言語の問題というよりチームのプログラマの腕を過大評価
もしくは計算に入れてなかったというマネジメントの問題だよね

528デフォルトの名無しさん2018/06/01(金) 09:23:44.51ID:vv7FkXWB
んー例えば
プラズマクラスター付き家電が話に出てきたら今まで黙ってたのに凄い勢いでエセ科学だと解説し出すよね

529デフォルトの名無しさん2018/06/01(金) 11:58:37.06ID:HQSTzzds
いや、この粘着をクビにするためにRust導入したんでしょ
性格異常だもん

530デフォルトの名無しさん2018/06/01(金) 17:08:52.31ID:j7xDfBQ9
老害をふるい落とすために新しい言語を取り入れてるって話?

531デフォルトの名無しさん2018/06/01(金) 19:16:22.80ID:q9V9sFRe
このフィボナッチ数列も書けないあほ
何度言い返せなくなっても数日後に甦る粘着性
C++で実行時にエラーが出るようなコードを書きまくったのでしょう。性格の悪さと溢れる自尊心から誰の耳も貸さなかったのでしょう。
プログラマーとして生きるよりかは、匿名掲示板で巨悪組織Mozzilaと闘うBBS戦士の方が社会的に良さそう

532デフォルトの名無しさん2018/06/01(金) 19:29:07.67ID:M/qnTWL0
たとえばドワンゴとかDropboxとか
Rustを採用した企業自体を叩く行為をよくしているよな
あれ見るとちょっと辛くなる

533デフォルトの名無しさん2018/06/01(金) 20:33:15.28ID:hus0bbCf
>>526
具体的には?

534デフォルトの名無しさん2018/06/01(金) 22:00:45.35ID:/a7YB1o/
例えばここみたいに安全でもなんでもないドヤしたいだけのクソなrustコードが量産されるとか。
http://tanakh.jp/posts/2016-12-20-rust-pezy-sc.html

535デフォルトの名無しさん2018/06/01(金) 22:44:23.66ID:hus0bbCf
だから具体的はどこが問題なの?

536デフォルトの名無しさん2018/06/01(金) 22:47:27.38ID:aoTZOmsj
槍玉にあげる例が1個しかないのがダサ過ぎるわ。しかもその例も対象が特殊だし

>>534は「それRustでやる意味がある?」という疑問に全く応えられないのが問題
LLVM IR-> PEZY-SCというコンパイラがあるんだったら、LLVMがバックエンドの他言語でもいいよねって話
それができないなら、LLVM->PEZY-SCは未完成か現実に即してないんじゃねえのって話

537デフォルトの名無しさん2018/06/01(金) 22:57:48.57ID:hus0bbCf
rustでやってみたって記事にrustでやる意味あるの?って疑問が出てくるのが不思議なんだけど
rustでも出来た、以外に意味はないでしょう

538デフォルトの名無しさん2018/06/01(金) 23:37:58.33ID:RhYZ0Afc
新しいこと覚えられないから焦ってるんじゃね

539デフォルトの名無しさん2018/06/02(土) 00:12:03.87ID:LoS19xRX
>>534
安全じゃないコード も 書けるってことに価値があるんだろ?
C/C++以外の他言語では書くことさえできない。でもC/C++は安全性を売りにはしていない
Rustは安全性を売りにしつつ、必要に応じて安全性を捨てる選択もできるということに価値がある
で、たまたまその記事が安全性を捨てることが必要な数少ない例の1つだったってだけ

540デフォルトの名無しさん2018/06/02(土) 08:09:01.38ID:yQHVvQ0k
安全でもなんでもないって
unsafeあるやんけ!危険危険!
前後の文脈一切分からんけどとにかく危なそうなこと書いてあるやんけ!
つって叩いてるんだろうなw

>>535
その手の問いにそいつが素直に答えたこと無いからあきらめよう

541デフォルトの名無しさん2018/06/02(土) 09:00:03.22ID:uxIlP8w7
たまたまねw
どんだけコード例出しても言い出しそうだなw
そもそもコード例が少ない訳で、推進してる奴のコードがそんなもんなら
十分否定的な要素だけどね。

542デフォルトの名無しさん2018/06/02(土) 09:25:00.11ID:yb2DUuBi
grep出来ねえのか^^;

543デフォルトの名無しさん2018/06/02(土) 09:27:20.96ID:1kkEW1PU
ちょっとrustの記事書いただけで代表的な推進派扱いかよ

544デフォルトの名無しさん2018/06/02(土) 09:29:46.62ID:IrGCDZgn
>>541
お前さんの理屈だと、Rustじゃこんなに危険になる!って事だろ?
じゃあ、Rustではそういう危険な書き方しか出来ない!って示さなきゃな。
俺は中立だが、あんまり非論理的なdisりはアンチ=低能と思わせたがってるピエロにしか見えんよ。

545デフォルトの名無しさん2018/06/02(土) 09:41:57.37ID:yb2DUuBi
既に20万行はコードあるからレビューがてら指摘したら喜ばれるよ

546デフォルトの名無しさん2018/06/02(土) 11:52:56.13ID:SXqC6st7
>>541
ほんとだどこが問題で悪いのか全然書かない
具体的に言及しだすとフィボナッチ数列とか機械語レベルとか、残念なことになるのが自分でもわかってたのか

まあ本人が書いた通り「ドヤしたいだけ」とか…なんかな?前もマウンティング取られたとか訴えてたし…

547デフォルトの名無しさん2018/06/03(日) 21:39:05.60ID:xPSrrQIy
またいつもの、ボロクソにされたらしばらく潜伏してから復活するパターンかな
たまには芸風変えたら

548デフォルトの名無しさん2018/06/04(月) 06:53:30.60ID:OFCCUtyY
Rustの不満は言語仕様やrustcよりcargoやその辺の連携(情報の少なさも含む)にある

549デフォルトの名無しさん2018/06/04(月) 07:51:33.98ID:+kVYhEiS
既成のクレートを探すのはcrates.ioになると思うけどライセンスってどうやって調べるんだろ
同様にクレート間の依存関係も判りにくい
どちらも一式を落としてきて中身を確認しないと判らないような・・・

Cargoで自動ダウンロードして・・・みたいな使い方をしていると意図せずGPL/LGPLになっていた
みたいなライセンス事故が起きそう

550デフォルトの名無しさん2018/06/04(月) 09:21:50.73ID:wd+rp+GF
>>549
$ cargo install cargo-lichking
$ cargo lichking check

一先ずlichkingでチェックできるよ

551デフォルトの名無しさん2018/06/04(月) 09:35:16.99ID:4FFAt/Kh
LGPLのstatic linkとかやめて欲しいよね

552デフォルトの名無しさん2018/06/04(月) 22:37:59.16ID:OFCCUtyY
>>550
えぇー・・・わざわざインストールしないと出来ないのかよ。とりあえずやってみるか
依存関係はどうすりゃいいんだ?no_stdでも使える奴だけ探したいとか

553デフォルトの名無しさん2018/06/05(火) 01:20:50.84ID:4vI8haY4
>>552
ライセンスをついては、crate名が既知なら、

https://crates.io/api/v1/(クレート名)

でjson取れるので、そこから再帰的に依存辿れば収集はできそう

554デフォルトの名無しさん2018/06/05(火) 01:35:07.04ID:4vI8haY4
>>552
no_stdかどうかについては、Cargo.tomlのcategoryパートに"no-std"があるかどうかぐらいしか確認するすべなさそう(2017-2-10に追加されたっぽい)。

皆が皆付けてるとは思えないので、参考程度にしかならないだろうけど。

555デフォルトの名無しさん2018/06/06(水) 04:08:38.62ID:SHaHb3Ap
ちょうどいい機会だから、カーゴのギフハブべったり依存をやめて抽象化してほしいわん

556デフォルトの名無しさん2018/06/06(水) 07:27:41.91ID:j1CMVtJk
は?

557デフォルトの名無しさん2018/06/06(水) 08:37:47.80ID:hN7IXoGK
crates.ioべったりは分かるけどGitHub依存って何

558デフォルトの名無しさん2018/06/06(水) 09:53:27.50ID:x7s61f1u
goと勘違いしてるのでは

559デフォルトの名無しさん2018/06/09(土) 09:42:43.51ID:W19N5ngq
rustダメじゃん
firefoxは言語オタに支配されたのか?

【IT】高速化を進めてアドオンを排除したFirefox、ついにシェアが10%切る★2
http://2chb.net/r/newsplus/1528388348/

560デフォルトの名無しさん2018/06/09(土) 10:00:10.77ID:4+qUC/SZ
FirefoxのシェアでRust叩きって前スレでもやったじゃん
http://2chb.net/r/tech/1507970294/100-

561デフォルトの名無しさん2018/06/09(土) 12:47:19.10ID:Cz/ni8by

前やったから何?

562デフォルトの名無しさん2018/06/09(土) 13:15:23.42ID:qABRMkwT
なんで筋の通らない批判を平然とするのか不思議

563デフォルトの名無しさん2018/06/09(土) 15:26:07.97ID:4+qUC/SZ
>>561
ええ…?FFアドオン排除でRustディスは気にならないのか
以前の試みはアドオンとRustを絡めてみた感じだったな
↓のレスをいつものごとく無視し数日潜んでRust叩きを試みていたけど、スレを跨いで同じ材料出すなよ


109 デフォルトの名無しさん sage 2017/11/15(水) 14:21:13.24 ID:FBksKtwj
>>108
失敗してるやん
Rustなんかで書き直したせいでアドオン全滅してる

114 デフォルトの名無しさん 2017/11/15(水) 14:36:17.78 ID:bBOLEH2G
>>109
それは設計の段階で従来のアドオンとの互換性の一部を捨てるように仕様変更したからだよ。
firefoxのアドオンは自由度が高すぎるが故に、セキュリティに問題を抱えやすかったし、
アドオン同士が衝突して落ちるとかも結構あったから、そこら辺をChromeと同レベルくらいに制限して、
セキュリティと安定性を取る方向に方針転換した。
仕様が変わってるんだから、Rustで書こうが他の言語で書こうがどっちにしろ従来のアドオンの一部は動かないよ。

564デフォルトの名無しさん2018/06/10(日) 00:29:32.38ID:+hx+JhDk
今回は1週間も我慢できなかったのか
ほかに行く場所ないの

565デフォルトの名無しさん2018/06/10(日) 01:42:55.67ID:x48+YOhO
>>555の話だけど、
>>555はhg使えなかった時代で止まってんじゃないの?

566デフォルトの名無しさん2018/06/10(日) 09:09:46.77ID:gHOtKfe5
>>565
gitとgithubはちがうよ?

567デフォルトの名無しさん2018/06/10(日) 09:10:23.63ID:gHOtKfe5
キチガイ帰ってきてよかった

568デフォルトの名無しさん2018/06/10(日) 10:06:20.84ID:flig3pd5
相変わらず宗教じみてんな

569デフォルトの名無しさん2018/06/16(土) 11:05:45.57ID:dxp9ohIz
何でio::Errorにファイル名入ってないんだろう? 不便だなーと思ってたけど
検索してみたら、前は入ってたのに1.0リリース前に削除されたんだとさ

https://internals.rust-lang.org/t/add-filename-information-to-io-error/

570デフォルトの名無しさん2018/06/16(土) 13:06:12.19ID:Om4I19uv
>>569
非効率になるのを嫌ったってことみたいですね
stdでもつには重すぎるってのは理解はできるけど 確かに不便なんだよなー

自分は結局
ioの関数呼ぶ前にinfo!でログ出すとか
戻ってきたio::Errorをmap_errでPathBuf埋め込んだ自前のErrorに変換するとかしてます

571デフォルトの名無しさん2018/06/16(土) 18:58:29.98ID:dxp9ohIz
>>570
ここで紹介されてる、failureを拡張して let file = File::open(path).with_path(path)?; と書けるようにするのが
カッコいいなと思った
https://github.com/rust-lang-nursery/failure/issues/189

failureは1.0に向けてまだまだ変えていくみたいだし、これ書いた焦げ寿司氏も参加するみたいだから
期待してるわ
throw!マクロが標準化したら、?の時みたいにrustプログラムの見た目変わりそう

572デフォルトの名無しさん2018/06/16(土) 20:35:40.86ID:unm3Vek/
2回もpath書くの全然かっこよくないから、少し重くてもなんでもいいから便利なライブラリがあれば使うわ

573デフォルトの名無しさん2018/06/16(土) 23:56:34.69ID:f9DGXpDH
トレイトオブジェクトってなんでトレイトオブジェクトって呼ぶん?
ようはヒープに動的に作られたストラクトだら?

574デフォルトの名無しさん2018/06/17(日) 01:17:39.67ID:TG/aPZPS
何らかのTraitを実装したオブジェクトだから、じゃ駄目なの?
変に勘ぐって誤解してるよ。スタックにある構造体でもトレイトオブジェクトになる

575デフォルトの名無しさん2018/06/17(日) 07:51:39.85ID:p2Sm4Lro
うーんここにはそういうニュアンスでは書いてない気がするんだけどなあ
https://rust-lang-ja.github.io/the-rust-programming-language-ja/1.6/book/trait-objects.html

576デフォルトの名無しさん2018/06/17(日) 11:48:23.47ID:an9lNlus
traitってなんだよ

577デフォルトの名無しさん2018/06/17(日) 12:00:53.08ID:erltHdM+
>>576
特性

578デフォルトの名無しさん2018/06/17(日) 12:03:03.50ID:an9lNlus
わかんねえよw

579デフォルトの名無しさん2018/06/17(日) 14:20:21.15ID:rd16QG+W
traitは写像の集合で本来的には定義域の集合でないものなので、それとして扱う場合を特別にトレイトオブジェクトって呼んでるんじゃないの?

580デフォルトの名無しさん2018/06/17(日) 14:55:33.49ID:TG/aPZPS
>>575
ヒープにある構造体である、とはどこにも書いてないよね

複数の異なる型を同じ関数や構造体で持っておきたいけど、
型が違うからコンパイル時にサイズが決まらないんで困ったねって状況を解決するのがトレイトオブジェクト
そういう事態じゃなければfn foo<T: TraitFoo>(obj: T)とかやって型毎に関数をコンパイラに作ってもらうのが普通

581デフォルトの名無しさん2018/06/17(日) 15:32:03.62ID:hewfXZ0r
マス科の淡水魚じゃなかったけ

582デフォルトの名無しさん2018/06/17(日) 15:36:27.65ID:Wo64nPZg
それはトラウト
トラウトサーモン。

583デフォルトの名無しさん2018/06/17(日) 20:19:57.60ID:p2Sm4Lro
なんらかのトレイトじゃなくて特定のトレイトを実装したなんらかの型ってことかな

584デフォルトの名無しさん2018/06/17(日) 20:38:08.98ID:JVUiE6fQ
D言語の再来と言われるRustには注目しています。

585デフォルトの名無しさん2018/06/18(月) 11:09:28.26ID:LH5G8a9n
さすがに「C#とか糞wwこれが俺の考えた最強言語ww」→「結局C#が全部正しかったですサーセンww」で終わったただの中二言語と一緒にするのは失礼

586デフォルトの名無しさん2018/06/18(月) 15:38:58.79ID:/sFO+jYl
そうだな。D言語に失礼だ

587デフォルトの名無しさん2018/06/18(月) 17:49:36.48ID:fn6n18W4
C#に、な

588デフォルトの名無しさん2018/06/18(月) 18:41:33.59ID:MmynirXE
まるでD言語が死に絶えたみたいな口振り

589デフォルトの名無しさん2018/06/18(月) 18:44:27.51ID:eWM+pHRs
え?とっくに死に絶えたでしょ

590デフォルトの名無しさん2018/06/19(火) 00:05:30.49ID:wsgBP7Sf
>>571
1.0待てなくてもう現行のfailureにどっぷり浸かっとる。
failureはいいぞ!

591デフォルトの名無しさん2018/06/19(火) 13:49:32.69ID:77HD0esi
D言語は最近顔本コミットを受けて活発化してる

Rustは採用企業が全く増えなくなって資金も枯渇
メインコミッタもリンゴのSwiftやらにヘッドハントされて
もう将来ないでしょ

592デフォルトの名無しさん2018/06/19(火) 13:50:33.43ID:77HD0esi
もちろん言語のエコシステムとしての将来がないってだけで、
ライフタイムとかの実装系の先駆としての意義はあったとおもうが

593デフォルトの名無しさん2018/06/19(火) 15:45:39.61ID:Es9NuDl6
終わってみればdartの舞の海だったな。

594デフォルトの名無しさん2018/06/19(火) 17:08:02.40ID:menX4d1R
なんで急に元力士の名前が出てきたんだ?
二の舞って言いたかったのか?

595デフォルトの名無しさん2018/06/19(火) 17:13:53.63ID:TNMX9OjF
>>590
なんかfailureのissues見ると、現状のstd::errorの設計は失敗作扱いみたいだな
それって共通認識なんかな?

596デフォルトの名無しさん2018/06/19(火) 17:47:33.05ID:cDjhSbaW
Haskellかじってて、Rustに興味出てきたんだけど、なに、廃れつつあるの?

597デフォルトの名無しさん2018/06/19(火) 18:00:26.05ID:LBhs/jk2
廃れるもクソも、Rustが世間の注目を浴びたことなど未だかつて無い

598デフォルトの名無しさん2018/06/19(火) 18:16:13.49ID:menX4d1R
大丈夫、大丈夫。
ユーザーが年々すごい勢いで減っているDに比べりゃ
規模は小さいもののRustは年々少しずつ増えてるわけだから
今後普及するかどうかはともかく少なくとも廃れちゃいないし、
学習コストが高いから敬遠されてるだけで注目もされてる
それにHaskellと同じで勉強しといて損はない言語だと思うし

599デフォルトの名無しさん2018/06/19(火) 19:21:40.76ID:30ZWMBay
そもそも普及を目指してるような気配もないよな
バッテリ同梱などと言い出しもしないばかりか
randすらクレイトになってるから
rustcだけで楽しんでると涙目(´・ω・`)になる

600デフォルトの名無しさん2018/06/19(火) 19:22:11.75ID:b5m1uThb
Dのユーザが減ってRustのユーザが増えてる世界線はどこにありますか?

601デフォルトの名無しさん2018/06/19(火) 19:50:06.21ID:R39QGoSG
別に趣味でやってりゃいいんでないの。
ライフタイムとか所有権の感覚は他言語でも役にはたつでしょ。

602デフォルトの名無しさん2018/06/19(火) 22:33:45.56ID:jJOU+tvI
wasm やるなら stdweb と wasm-bindgen のどちらを使ったらいいですかね?
もしくは他の選択肢の方がいいとかありますか?

603デフォルトの名無しさん2018/06/19(火) 23:34:50.37ID:X5Ll7hqK
>>595
std::error+error_chain/log crateの問題点を
解決するためにfailure/slog crateが
作られたからだいたいそんな感じだと思う。
failureの方は今nurseryだし。

failureのエラーとstd::errorのエラーを相互変換できるから
移行や依存ライブラリがstd::error使ってる場合に対応簡単だよ。
まあ、1.0待ったほうがいいけど。

604デフォルトの名無しさん2018/06/19(火) 23:47:20.77ID:X5Ll7hqK
>>602
wasm-bindgenはhost bindings proposalの実装でstdwebはweb apiのrustバインディング。
host bindings proposalはWebAssembly用の(ホストとの)ffiみたいなもん。

605デフォルトの名無しさん2018/06/20(水) 00:10:51.10ID:pTH4tzak
>>602
stdwebベースのyewとか面白いよ
Reactっぽいことが出来る

606デフォルトの名無しさん2018/06/20(水) 07:50:19.18ID:wh0fPVE/
>>604
>>605
レスどうもです
host binding(wasm-bindgen)が後発で
cargo-webがあるstdwebの方が開発サイクルが楽そうという感じがしてます
yewも見てみます

607デフォルトの名無しさん2018/06/20(水) 08:12:54.01ID:wc145BD7
>>603
stdの下にあるけど非推奨、みたいなのが今後だんだん増えてくるのかな

608デフォルトの名無しさん2018/06/20(水) 08:14:53.51ID:mWzW79Bi
はよRust4.0くらいにならんかな

609デフォルトの名無しさん2018/06/20(水) 10:36:39.96ID:YLzmhKZ9
>>607
使ってはいけない標準ライブラリとかC言語のgetsかよwwwww
21世紀の言語とは思えねえなwwwwwおもちゃもいいところwwwwwww

610デフォルトの名無しさん2018/06/20(水) 10:37:49.71ID:zK9FZNDh
きたきたw

611デフォルトの名無しさん2018/06/20(水) 13:21:29.03ID:aMAqNpY0
テンション高杉wwww

612デフォルトの名無しさん2018/06/20(水) 17:10:00.84ID:XqMiT4dO
愛され言語ナンバーワンに2年連続で輝いたのに人気ない扱いは意味不明だ

613デフォルトの名無しさん2018/06/20(水) 18:22:38.96ID:vXpw0FFs
>>612
純粋に聞くがお前の周りでRustサイコーって言ってるエンジニア何人いる?

614デフォルトの名無しさん2018/06/20(水) 18:41:59.74ID:CaLRYR6s

615デフォルトの名無しさん2018/06/20(水) 18:44:15.98ID:XqMiT4dO
>>613
2/6人かな

616デフォルトの名無しさん2018/06/20(水) 18:51:57.98ID:vXpw0FFs
>>614
いくらでも組織的に水増しできる問答や投票になんの意味が?

617デフォルトの名無しさん2018/06/20(水) 18:52:41.55ID:vXpw0FFs
>>615
その程度の言語が世界一位って統計的におかしいと思わん?

618デフォルトの名無しさん2018/06/20(水) 18:54:56.56ID:Vsx9tnAR
>>616
dreadedに水増ししたの?w

619デフォルトの名無しさん2018/06/20(水) 18:55:44.33ID:CaLRYR6s
>>617
お前と匿名の一人で統計語ろうっておかしいと思わん?

620デフォルトの名無しさん2018/06/20(水) 18:57:44.45ID:CaLRYR6s
あとこいつ好感度と使用者の数をごっちゃにしてるの?凄いよそれは
フィボナッチ数列も書けないだけはあると思うよ

621デフォルトの名無しさん2018/06/20(水) 20:41:21.29ID:Hd+sK95t
フィボナッチ数列って円周率みたくいまもなお計算され続けてたりするのかな

622デフォルトの名無しさん2018/06/20(水) 21:15:36.40ID:vXpw0FFs
どう考えてもRustなんかよりJavaのほうが愛好家多いだろ
プロダクトの数考えろよ

623デフォルトの名無しさん2018/06/20(水) 21:52:02.37ID:x0fgVEGk
GithubではJavaScriptが一番多いからJavaScriptが一番愛された言語だよ(お前の中で)
この記事オカズに1年ぐらい黙れそう?
http://wolfbash.hateblo.jp/entry/2017/07/30/193412

624デフォルトの名無しさん2018/06/20(水) 22:24:58.84
ハンバーガーはマクドナルドが世界一売上高いんだから、マクドナルドのハンバーガーが世界一美味いに決まってるだろ?

625デフォルトの名無しさん2018/06/20(水) 22:35:12.33ID:6Ldi6ZQ0
>>617
なんで一つのサンプルで統計的にとらえるんだ?
プログラマー的におかしいと思わん?

626デフォルトの名無しさん2018/06/20(水) 23:15:44.76ID:kIAOzAlL
そういや何でmainが必要なんだろね

627デフォルトの名無しさん2018/06/21(木) 07:34:12.21ID:yU20OhIB
Nimへの風評被害記事を貼るのはやめろ

628デフォルトの名無しさん2018/06/21(木) 09:00:57.14ID:osGR8xHL
初見の人のために何度も貼るけど↓が本スレ

http://2chb.net/r/tech/1514107621/

ここはキチガイと戯れるスレ

629デフォルトの名無しさん2018/06/21(木) 10:39:54.15ID:n536ipp2
>>623
それ>>8でオレが貼った記事な
このスレでも反論の余地の出なかった良記事。Nimについてはともかく
Rustのクソさについては本当によくまとまってる

630デフォルトの名無しさん2018/06/21(木) 12:34:03.16ID:c3YkgC6b
真正のアホだった

631デフォルトの名無しさん2018/06/21(木) 17:49:56.62ID:ay5pVfJh
だからさー。文句あるなら記事に反論してみなよ

取り下げられた記事以外誰も出せないまま人格批判だけとか全く理論的じゃないし
そういう人ばっかだよねRust信者って

632デフォルトの名無しさん2018/06/21(木) 18:20:34.36ID:tEqpfdQL
ここ本スレじゃなかったのか
お邪魔しました

633デフォルトの名無しさん2018/06/21(木) 18:35:12.47ID:ZtwQwgWl
>>631
archive. fo/7NUr2
なんかある?

634デフォルトの名無しさん2018/06/21(木) 18:46:46.63ID:ay5pVfJh
>>633
だから取り下げられた記事は反論にならないって
本人が間違いだって取り下げたんだから

635デフォルトの名無しさん2018/06/21(木) 19:00:49.88ID:c3YkgC6b
>>634
読んでもねぇのに自分勝手に判断して否定するバカが
「理論的じゃない」とかよく言えたな

その言葉そっくりそのままお返しするよ

636デフォルトの名無しさん2018/06/21(木) 20:30:12.03ID:Do17eRfw
>>635
自分勝手じゃないよ?
そもそも論を取り下げたのは向こうじゃん
取り下げられた論が議論の俎上に上がるのはおかしいでしょ

637デフォルトの名無しさん2018/06/21(木) 21:05:10.85ID:6Hcg3ucp
ある人がどのレベルでプログラミングしてるか、という差がある
ある人にとってはプログラミングとは設計作業に他ならず
ある人にとってはプログラミングが指の労働でしかない

書き間違えるから、書き忘れるから、という理由でもって
しょうもないバッドノウハウを拝み続ける者すらいる
塩と砂糖を入れ間違う、塩を入れ忘れる、自称料理人
そーいうレベルのプログラマ

638デフォルトの名無しさん2018/06/21(木) 21:10:50.36ID:tPTNHe4P
クソ言語はRuで始まるの法則。
ソースはRubywwwww

639デフォルトの名無しさん2018/06/21(木) 21:12:31.35ID:c3YkgC6b
>>636
何故取り下げたかの理由も書いてあったがそっちのほうは完全に消えたかな…
アーカイブすら残ってなさそうだ…
「他の記事を貶めるような記事は品性が疑われるからやっぱり取り下げる」
みたいな理由だっと思うけど、どうせお前はそれも認めないんだろ…

………ふぅ………もういいよ……
お前の頭ん中ではRustはクソ言語で良いよ……

640デフォルトの名無しさん2018/06/21(木) 21:16:43.31ID:THBJN+Sm
まあ人気であることは否定できないし好きに言わせとけば

641デフォルトの名無しさん2018/06/21(木) 21:55:24.51ID:cUkhcSdq
Rubyスレいってこい

642デフォルトの名無しさん2018/06/21(木) 22:10:18.40ID:IDDH/Zj5
>>636
そういう人だね
お前だけは確実に

643デフォルトの名無しさん2018/06/22(金) 06:32:29.82ID:dlC04wo2
rustup update stable

644デフォルトの名無しさん2018/06/22(金) 07:54:28.27ID:eG6Vx+RS
クソ言語に固執し続けるクソ人間

645デフォルトの名無しさん2018/06/22(金) 08:36:26.70ID:YRNyKvjT
1.27.0がstableになったんね

646デフォルトの名無しさん2018/06/23(土) 08:31:56.29ID:XcMMhDbo
rustは個人開発向けで仕事に使うものじゃないのね。

647デフォルトの名無しさん2018/06/23(土) 09:39:24.90ID:tcOUUI9f
ソースは?

648デフォルトの名無しさん2018/06/23(土) 10:17:10.81ID:YCFgkK7r
Cargo.tomlに対応するrustcの最低バージョン番号を書く方法ってある?

649デフォルトの名無しさん2018/06/23(土) 10:36:49.30ID:SR6K28vn
ネタスレで質問するやつはキチガイ

650デフォルトの名無しさん2018/06/23(土) 11:42:32.40ID:FNwUUYYn
スレチ
Rustスレに行け

651デフォルトの名無しさん2018/06/23(土) 12:03:08.67ID:SR6K28vn
キチガイがまともなふりして質問するふりするんだよなー

652デフォルトの名無しさん2018/06/23(土) 12:36:47.01ID:VZhdie4n
>>648
https://qiita.com/tatsuya6502/items/8b31e2b162aff78787fe
プロジェクトフォルダにrust-toolchainファイル置いてその中で指定出来るみたい
toolchain指定なんでrustup必須になるのと固定指定しかできないっぽいけど

653デフォルトの名無しさん2018/06/23(土) 17:56:54.88ID:ADF05MCP
みんな英語どうやって勉強したの

654 ◆QZaw55cn4c 2018/06/23(土) 18:09:48.96ID:OlLfOCSW
>>653
受験勉強で

655デフォルトの名無しさん2018/06/23(土) 18:09:55.67ID:592i1cd7
>>653
俺は英語なら分かるんだけど、日本語はさっぱり分からん

656デフォルトの名無しさん2018/06/23(土) 18:11:27.27ID:ADF05MCP
>>654
すげーな
オライリーのやつKindleで読んでるけどまず訳すのが大変だわ

657デフォルトの名無しさん2018/06/23(土) 18:27:07.96ID:ADF05MCP
>>655
英語圏に生まれたかったと切に思う

658デフォルトの名無しさん2018/06/23(土) 19:52:59.41ID:1v1LX/MG
訳さず英語で読んだ方が…
情報の早さ・量・正確さが段違いだし原著読むと意外と難しい単語使われてない。
bind(bound)を束縛とかアホかと。
せめて結びつけとかにしろよと。
翻訳のセンス無さすぎ。
もしくはわざと小難しくして地位を守ってるのか…

659デフォルトの名無しさん2018/06/23(土) 19:59:41.54ID:G+zkBspm
結びつけだとassociateの訳ともとれそう
英語と一対一で対応できる和訳の方があとから英語情報に触れるときのハードルを下げると思う

660 ◆QZaw55cn4c 2018/06/23(土) 20:01:25.05ID:OlLfOCSW
>>658
get / put / take なんかで言い換えしたからといって、わかりやすくなったとは思わない

661デフォルトの名無しさん2018/06/23(土) 20:13:20.08ID:1v1LX/MG
それにしても〜を〜に束縛しますとかセンス無さすぎる。
明治時代の翻訳見習ってほしい。
漢籍の素養が必要だが…

662デフォルトの名無しさん2018/06/23(土) 20:59:38.24ID:hXAC/kvi
逆に聞くが「変数にbindする」って日本語にどう訳したら自然なんだ?「結びつける」は別の意味になるぞ

明治期のアレは翻訳っていうよりは対応する訳語を創出するって感じだから、単純な翻訳じゃないぞ

「縛りつける」みたいな感じになるしかないと思うんだが
束縛は単純に漢語にしただけで大差なかろう

663デフォルトの名無しさん2018/06/23(土) 21:03:29.72ID:YCFgkK7r
>>652
ありがとう
一応そういうのあるんだ
そのページの下に書いてある、edition 指定出来るようになるのを期待、という感じかな

664デフォルトの名無しさん2018/06/23(土) 21:53:58.53ID:eYj7ZreJ
> 翻訳のセンス無さすぎ。

お前にはあるかのような口ぶりで

> せめて結びつけとかにしろよと。

↑こんなこと言い放ちつつも

> もしくはわざと小難しくして地位を守ってるのか…

束縛っていうふつうの単語を小難しく感じると白状し
地位を守るだのなんだのという珍妙な価値観まで丸出しにするとは恐れ入る

665デフォルトの名無しさん2018/06/23(土) 22:00:12.26ID:iDCSFlv+
まあ、英語のbindからして数理論理の変数束縛と同じ単語を別の意味で使いまわしてる
近い分野なんだから専門用語もう少し考えてくれても良かったのに

666デフォルトの名無しさん2018/06/23(土) 22:31:42.63ID:3sIWKIRG
慣れちゃってるから気づきもしなかったけど代入からして大概だよな。
英語だと単にassignだぞ。

667デフォルトの名無しさん2018/06/23(土) 22:44:14.17ID:YCFgkK7r
その点、グーグルは気が利いてて、
「錆は、安全性、スピード、並行性に重点を置いたシステムプログラミング言語です。
以前のバージョンのRustが錆びてインストールされている場合、」
だからな

668デフォルトの名無しさん2018/06/24(日) 00:43:46.88ID:8RP1t8O+
「バインドする」で良いのでは
traitとかcrateとか訳すとよくわからなくなるもの多いし全部カタカナでよい

669デフォルトの名無しさん2018/06/24(日) 00:53:31.43ID:EUL7CrQi
a に 1 を綴じます。

670デフォルトの名無しさん2018/06/24(日) 01:02:45.16ID:AYN9x63N
タイプアノテーションのないバリアブルのタイプはライトサイドをエバリューションしたときのタイプになります

671デフォルトの名無しさん2018/06/24(日) 02:00:22.91ID:cQRh0RXw
是々非々だな。
型アノテーションのない変数の型は右側を評価したときの型になります
束縛するはバインドするでよかった。SMの趣味ないし。

672デフォルトの名無しさん2018/06/24(日) 07:41:58.64ID:yrJGTcca
束縛と代入ってなにか違うんけ?

673デフォルトの名無しさん2018/06/24(日) 08:29:18.59ID:4dDfbtJe
誰に確認したわけじゃないが、変数に何か値を設定するのが代入で、値に名前を付けるのが束縛だという認識
fn foo(...) {...} は、ある関数に対しfooという名前をつけるので「関数をfooに束縛する」とは言うかもしれないけど、
「fooに関数を代入している」とは言わない、みたいな

674デフォルトの名無しさん2018/06/24(日) 09:14:33.52ID:aLprG8s0
緊縛と挿入!

675デフォルトの名無しさん2018/06/24(日) 09:46:27.06ID:dcl6yRWH
単にイミュータブルかミュータブルかの違いでないの?

676デフォルトの名無しさん2018/06/24(日) 09:52:28.95ID:yrJGTcca
>>673
伝統的な表現だと宣言に近いニュアンスかな

677デフォルトの名無しさん2018/06/24(日) 10:29:37.13ID:O0XPf3sp
rustはバインドしていない状態の変数も合法だからややこしい

let hoge;
hoge = 100; // これをコメントアウトするとコンパイルできない
println!("{}", hoge);

678デフォルトの名無しさん2018/06/24(日) 12:51:16.68ID:1I2gvIDj
初心者なんですが、文字列を作成して返す関数を作るときって、
fn hoge() -> String { "hoge".to_string() }
と書くものですか?
それとも
fn hoge() -> &'static str { "hoge" }
と書くべきでしょうか?

679デフォルトの名無しさん2018/06/24(日) 13:59:02.13ID:yrJGTcca
その例だと関数にする必要なくない

680デフォルトの名無しさん2018/06/24(日) 15:24:02.20ID:7t4PbT1U

681デフォルトの名無しさん2018/06/24(日) 18:18:06.50ID:ImbiQntl
Stringもstrも返す可能性があるなら Cow<str> で
それ以外なら使えるときは &str を使うのが良いのでは

682デフォルトの名無しさん2018/06/24(日) 19:01:12.28ID:n+g5Cjrk
Stringとstrを両方残しちゃうあたり
優柔不断でグダグダな言語に思えてしまう

683デフォルトの名無しさん2018/06/24(日) 19:14:57.34ID:knj+uGWY
はあ…?

684デフォルトの名無しさん2018/06/24(日) 19:22:46.99ID:rqN/F7y5
C FFIに関する技術資料ってどこにあるんだろ?
https://rust-lang-ja.github.io/the-rust-programming-language-ja/1.6/book/ffi.html
にチュートリアルはあるけどexternの記述方法とかがわからない
見よう見まねで書けなくはないけどそのまま行くのは事故の元だし
ついでにlibcが何をしているのかもわからない

685デフォルトの名無しさん2018/06/24(日) 20:18:07.31ID:gRETAB5B
>>684
CのヘッダからRustのインターフェースを自動生成してくれる
bindgenを追っかけてみればよいかと
https://github.com/rust-lang-nursery/rust-bindgen

686デフォルトの名無しさん2018/06/24(日) 22:15:14.01ID:W9MJDxOG
>>683
せめて理論的に反論しろよグダグダ言語の信者

687デフォルトの名無しさん2018/06/24(日) 22:29:21.43ID:ztKvyOBw
>>686
ごめんなさい
論はどこですか?

688デフォルトの名無しさん2018/06/24(日) 23:26:54.62ID:rqN/F7y5
>>685
えぇ・・・ソース見るしかないのかよ・・・
リファレンスマニュアル見てもちゃんと書いてないんだよな
さらにググってもリファレンスマニュアルが引っかかってこない罠

689デフォルトの名無しさん2018/06/24(日) 23:57:53.79ID:O0XPf3sp
>>684,685
unsafeまわりの文書に入ってる(ただしdraft)
https://doc.rust-lang.org/nomicon/ffi.html
公式文書はgithubのorganization(rust-lang、rust-lang-nursery)から探している

690デフォルトの名無しさん2018/06/25(月) 00:22:53.39ID:U0L6J6Ez
C言語ライブラリの関数を3回呼び出すコードと格闘すること数時間。ようやく動いた
まだ不明点は残っている
・#[link(〜のkindが何を示しているのか判らない
 C FFIの使用例を見るとよく見るんだが・・・
・C言語配列の渡し方が不明
 元は
 >int p[]={16,9};
 >foo(p);
 とりあえず
 >foo("\x10\x09".as_ptr());
 などと書けばデータ上は整合するから動くけどどう見てもスマートな記述方法ではない
・文字リテラルの仕様が不明
 ↑の表記を得るのに数回試行錯誤した

データの与え方もCStringを使った(=\x00終端する)方法は出てくるけど、そうではない方法は
中々見つからなかった。結局↑の表記に落ち着いたが

>>689
ありがとう。kind値について書いてありますね。静的リンクだとkind = "static"らしいですが
付けても付けなくてもファイルサイズは大差ないようです。何が違うのだろう

691デフォルトの名無しさん2018/06/25(月) 12:50:29.35ID:vFqeQKwN
Cの配列は第一級の値じゃないからas_ptrが正攻法だと思う

692デフォルトの名無しさん2018/06/25(月) 20:19:17.73ID:U0L6J6Ez
>>689によればFFIで使用できる物として
・#[repr(C付きのstruct
・#[repr(C付きのenum
・box?
・vec
・str
が挙がっているけどCと互換性があるのはこれらのみって事なのだろうか
vecを試してみたら動いたけどextern時に安全じゃないから#[repr(C)]付きのstruct使えなどと言いだした

>>691
マジかよ!確かに文字列は汎用性が高いけど可読性が良くない・・・必要に応じて抽象化しろという事か

693デフォルトの名無しさん2018/06/25(月) 20:24:02.61ID:J2kal8dh
Rustの側では変更しないけどCの側で変更するような変数ってmutにしないと駄目よね?

694デフォルトの名無しさん2018/06/25(月) 22:00:13.27ID:U0L6J6Ez
あっ、ヤベェ・・・いきなり重大なバグ出してら
× foo("\x10\x09".as_ptr());
○ foo("\x10\x00\x00\x00\x09\x00\x00\x00".as_ptr());
こうだよな
標準で[16: i32, 9: i32]を"\x10\x00\x00\x00\x09\x00\x00\x00"に変換してくれるようなのが欲しい

695デフォルトの名無しさん2018/06/25(月) 22:05:44.09ID:KKbqvHaH
うわこれは読みたくないw
難しいもんだな

696デフォルトの名無しさん2018/06/25(月) 22:59:19.25ID:U0L6J6Ez
ちなみに間違っている状態でも呼んだC関数は正常に終了します。まさにunsafeです。怖いです
何か対策を考えないと大事故を起こしそう
要素数2しかないのにstructを書くのはコード効率の点からも可読性の面からもあまり良いとは思えないし・・・
いろいろ試してみたら
>let p: [i32; 2] = [16, 9];
>foo(&p);
ならいけるようだ。コンパイラは何も言わないけどこの表記が適切かどうかは不明

Rubyだと
foo([16,9].pack("i2")) #配列をint2個分の文字列(=8byteのバイナリ列)に変換
とか書けるんだよなぁ。コストは安くないけど>>694みたいなポカミスは起こらない

697デフォルトの名無しさん2018/06/25(月) 23:46:12.87ID:kYoiRQin
>>696
何がしたいかよく分からんが
何故にC側がintの配列なのにRust側では文字列を使おうとしてるんだ?
C側がintってことはRust側で対応する型はisizeだろ
(Cのintが事前に32bitと分かってる場合はi32でも可
同様に64bitだと分かっている場合は対応する型はi64)

つまり、Cで
int[] x = {16, 9};
なら、Rustで同じデータを表すものは
let x: [isize; 2] = [16, 9]; // let x = [16_isize, 9]; でもおk
って書けば良いはず

Rubyと同じように考えようとするから変なことになる
RustでFFIするならCと対応する型は何かを考えれば良い

698デフォルトの名無しさん2018/06/26(火) 00:21:30.73ID:kImvQJUH
>>697
いや、isizeはまずいんじゃない?
例えばx86_64だとisize:64bit,int:32bitだし。
libcクレートのc_intならアーキテクチャ毎に適切なサイズになるから
こちらがいいかと。

699デフォルトの名無しさん2018/06/26(火) 00:26:36.57ID:kImvQJUH
ついでに言うとFFIするときの型はプリミティブ型以外でも
とりあえずlibcクレートを探すといい。
まぁマイナーなアーキテクチャだと間違ってたりすることもあるから
確認は必要だけど。

700デフォルトの名無しさん2018/06/26(火) 00:50:28.55ID:85MS96V/
とりあえず仕返しにrubyスレ荒らそうぜ
http://2chb.net/r/tech/1523954817/

701デフォルトの名無しさん2018/06/26(火) 00:50:41.38ID:Hc+GAUt1
>>698
あれ?そうだっけ?
うかっりしてたゴメン

そう言えばCのintはポインタのサイズに合わせるんじゃなくて
アーキテクチャ毎に変わるんだったっけか

702デフォルトの名無しさん2018/06/26(火) 01:08:16.37ID:Hc+GAUt1
調べたらCのintにRustで対応する型はisizeじゃなくてstd::os::raw::c_intだったわ
libcのc_intとの違いがよく分からん
対応アーキテクチャの数か?

703デフォルトの名無しさん2018/06/26(火) 02:21:07.36ID:kImvQJUH
>>702
一応libcはno_stdでも動くというメリットがあった気はする。
逆にプリミティブ型限定でも依存ライブラリ増やしたくないならstdなのかな?

704デフォルトの名無しさん2018/06/26(火) 08:11:12.99ID:xzmHFSgh
>>697
あなたの言うとおりですが、そのような情報はどこをから得られるのか・・・
>>689等のFFIに関する資料に書いてあるようには見えません
std::os::raw::c_intも>>702を見て探してみたら
https://doc.rust-lang.org/std/os/raw/index.html
ここにあるのか

配列等の長さが変わる型のC互換性に関する情報もどこにあるんだろ
アドレスの連続性とメモリの確保が保証されている必要があると思いますが

705デフォルトの名無しさん2018/06/26(火) 08:35:08.35ID:Hc+GAUt1
>>704
資料が少ないのはまだ普及してない言語では仕方がない
FFIとか皆が頻繁に使う機能じゃないようなものはなおさら
Cの配列とRustの配列は互換があるはずだけど
悪いがその情報をどこから手に入れたかは覚えていないし
信用されても困る(ついさっきも間違えたしね)
場合によっては資料探すよりソースコード読んだほうが早いことも多いし
根気良く調べるしかないとしか言いようがない
あとはFFIみたいなunsafe部分は出来る限り念入りにテストを書くとか

706デフォルトの名無しさん2018/06/26(火) 09:06:54.14ID:ffYAyO/t
>>704
arrayとsliceの連続性保証はここですかね。
https://doc.rust-lang.org/reference/type-layout.html#array-layout

707デフォルトの名無しさん2018/06/26(火) 10:23:55.54ID:MUW40HUm
今のnightlyだとclippyビルド出来ないよね?
ビルド出来る最後のバージョンと、それをインストールする方法教えてください

708デフォルトの名無しさん2018/06/26(火) 12:18:25.05ID:8xBVh24a
RustのABIについてはドキュメント増やすことはできるだろうけど
それ以前の問題としてCのABI知らないとFFIつらいのでは

709デフォルトの名無しさん2018/06/26(火) 18:47:03.15ID:xzmHFSgh
付き合ってくれてありがとう

まとめるとFFIで使えるのは
・#[repr(C付きのstruct
・#[repr(C付きのunion
・#[repr(C付きのenum ←条件付き
・box?
・vec ←非推奨?
・str
・array
・slice
・std::os::rawの中にある物
このへんで良いのかな
std::os::rawの中とarray、struct、union、strがあれば一通り出来そうか

710デフォルトの名無しさん2018/06/26(火) 20:49:29.40ID:qO0rk7ac
vecもas_ptr用意されているし非推奨と言うことはないはず
sliceにderefできるし

711デフォルトの名無しさん2018/06/26(火) 23:28:33.57ID:+xThVrkU
IDが変わっています

vecの件
>extern {fn foo(p: &std::vec::Vec<i32>);}
>foo(&vec![16, 9]);
これだと
>warning: `extern` block uses type `std::vec::Vec<i32>` which is not FFI-safe: this struct has unspecified layout
>・・・
> = help: consider adding a #[repr(C)] or #[repr(transparent)] attribute to this struct
と言われ正常に動作しない。クラッシュはしないが実行結果がおかしい
>extern {fn foo(p: *const i32);}
>foo(vec![16 as i32, 9 as i32].as_ptr());
これなら問題ないようだ。奥が深い

あとC関数から帰ってきたアドレスをu32へ入れていたのをc_voidへ入れるようにしたら所有権で怒られて動かなくなった
同じコードでも型によって所有権の移動のしかたが違うのか

712デフォルトの名無しさん2018/06/27(水) 00:01:15.59ID:a5PFJKPe
RustのVec自体には確かCとの互換性はないはずだよ
ただし、Vecはsliceにderefが可能でsliceはCの配列と互換がある

vec![16 as i32, 9 as i32].as_ptr()
はVecに対してas_ptr()メソッドを呼んでるように見えるけど
(ドキュメントを確認すれば分かるが)実際にはVecにas_ptr()メソッドなんて定義されていない
as_ptr()はsliceの方に定義されていて、暗黙的にderefされてからas_ptr()が呼ばれてる
つまり上のコードは丁寧に書き直すと↓と同じ意味(のはず)
let vec: Vec<i32> = vec![16, 9];
let slice: &[i32] = vec.deref();
let ptr: *const i32 = slice.as_ptr();

713デフォルトの名無しさん2018/06/27(水) 00:13:14.65ID:95B8/IDl
あとC関数の引数&戻り値はmove(ポインターか実値)しないとだめじゃない?
&付けて参照渡しにするのはよく分からない、たぶん未定義動作じゃないかなあ

714デフォルトの名無しさん2018/06/27(水) 01:04:32.64ID:9Rd9nmLi
>>707
clippyは最新のnightlyは**追ってない**けど常に開発中だから
ビルドできるバージョンは常に変わる。
自分の環境のビルドできる最大のnightlyに合わせろしか言えん。
常にclippyを使い続けたいなら環境の方をclippyに合わせないとだめ。

>>709
- cの配列はraw pointer
- 配列以外ならrepr(C)してメモリレイアウト合わせるか
- C側でopaque pointer定義してas_ptr
- 汎用ポインタはrust側は

pub enum Void;
type VoidRef = *mut Void;

- cのvoid*がrust側にほしいならlibcクレート
- VLAや不完全配列はrustnomicon読む

まずC abi覚えろ。

std140レイアウトならクレートあるぞ。

715デフォルトの名無しさん2018/06/27(水) 02:41:49.66ID:yfKVc+j6
Rustだけ覚えればいい時代はまだ来ない
C/C++の知識皆無では

716デフォルトの名無しさん2018/06/27(水) 09:44:32.66ID:SAllJH2o
オライリーの訳本が8月に出るのね

717デフォルトの名無しさん2018/06/27(水) 10:05:32.17ID:YMyBwU5o
本が出る頃には内容が古くなってるやつだろ

718デフォルトの名無しさん2018/06/27(水) 14:44:22.85ID:3NxQrIF4
>>716
英語で出る分には多目に見たが、日本語で出るんなら出版社の不買運動だな
どこが訳すか知らんけど

719デフォルトの名無しさん2018/06/27(水) 17:59:19.20ID:06nI5JoX
不買運動何人参加するの?大規模にやろうぜ

720デフォルトの名無しさん2018/06/27(水) 18:21:05.70ID:nwq6g8g7
英語なら多目に見るwwwwwwww

721デフォルトの名無しさん2018/06/27(水) 18:35:05.31ID:hr/rqCUy
>>712
ありがとう、そういうオチか。&で正常に動かないのも納得です
暗黙の変換って便利ですけど理解が浅いとハマる元だったりしますよね
不適切な入力を入れると自分が書いたつもりのコードとは無関係っぽいエラーを出して???になったり

>>713
#[link(name = "・・・")]
extern {
 fn func1(x: *const u8) -> u32;
 fn func2(y: u32);
 fn func3(z: &u32);
}
fn main() {
 unsafe {
  let mut a = func1("foo.dat".as_ptr()); //C側でメモリが確保されアドレスが帰ってくる
  func2(a); //アドレスを使って処理
  func3(&a); //確保したメモリを解放
 }
}
これは動きます。u32をstd::os::raw::c_voidにするとfunc2のaで
>use of moved value: `a`
>= note: move occurs because `a` has type `std::os::raw::c_void`, which does not implement the `Copy` trait
そんな事を言われても困る・・・ついでにenumなので格納されているアドレス値の確認も面倒
usizeなら問題ない。ドキュメントが正しいならusizeはポインタのサイズらしいしこっちの方が楽かも

722デフォルトの名無しさん2018/06/27(水) 19:40:13.19ID:5BauIrrs
訳本情報どこにある?

723デフォルトの名無しさん2018/06/27(水) 19:41:49.80ID:Z4vkTjjE
てかrust覚えるなら普通にc++のスマポくらいは知っとかんとわけわからんだろ。

724デフォルトの名無しさん2018/06/27(水) 19:45:28.45ID:luhHLeJ1
今日発売の新しいrust本買った人いるのかな
評判良ければKindle出た頃に買おうかなと思うけど

725デフォルトの名無しさん2018/06/27(水) 20:11:21.04
貧乏なのでPacktの糞本を$10セールの時しか買えない

726デフォルトの名無しさん2018/06/27(水) 20:16:03.57ID:aPrQo9aq
訳本amazonにあったわ
早速予約した

727デフォルトの名無しさん2018/06/27(水) 20:16:12.37ID:YMyBwU5o
オライリーの本って、オンラインに無料であるやつとおなじやなかったん?

728デフォルトの名無しさん2018/06/27(水) 21:01:38.86ID:IGU3gLqH
>>727
オライリーの原著は去年12月に発売、今年8月に訳本

今日発売された英語の本は公式ドキュメント(第2版)の印刷版
版元はno starch press

729デフォルトの名無しさん2018/06/28(木) 01:06:21.38ID:cJz1WTLf
>>721
他の人も似たようなこと書いてるけど、Cの配列は結局はポインタに過ぎないから
C側がポインタを求めれば、当然Rust側でもポインタを渡す

あと>>711
>同じコードでも型によって所有権の移動のしかたが違うのか
は半分正解で半分不正解
正確には、型によって違うんじゃなくて、Copyトレイトをimplしてるか否かで違う
u32はCopyトレイトをimplしてるから所有権はmoveじゃなくてcopyされる
c_voidはCopyトレイトをimplしてないから所有権をmoveしようとする

The Bookちゃんと読んだ?読んでないなら一度きちんと通読することを勧める

730デフォルトの名無しさん2018/06/28(木) 06:00:08.46ID:YYPKz5qu
rustやるのにあったほうがいい前提知識ってどれくらい?
c++とhaskellがまともに出来ないときつい?

731デフォルトの名無しさん2018/06/28(木) 06:30:25.53ID:fobuFGlz
そんなわけないだろw
どっちかてと根気が必要だ

732デフォルトの名無しさん2018/06/28(木) 07:54:11.40ID:1UW06GNd
いや最低限c++のコンストラクタ、デストラクタの動くタイミングくらいは知っとかないと無理だろ。

733デフォルトの名無しさん2018/06/28(木) 08:12:22.16ID:MOChRiis
>>729
一応deriveでCopy(とClone)を実装すればいいらしいと言うところまでは確認しているのですが
1.std::os::raw::c_voidへ追加で実装できるのか未確認(できたとしてもモンキーパッチになってしまう)
2.別名の型を新規に作る(usizeもしくはusizeへのエイリアスに対するメリットが思いつかない)
なもんで問題なさそうならusizeで良いかなと・・・
というかCのライブラリを使うと>>721みたいなケースは良くあると思うけど他の人はどうしているんだろ
libcのc_voidもlib.rsを見るとstd::os::raw::c_voidと同じみたいだし同様の現象が起きそうです
ググると引数はc_voidを使って戻り値はusizeを使っているようなコードも出てくるしusizeが正攻法なのか?

ちなみにこのコードだとusizeを使ってもmutが不要の警告が出るんですよね。これもそんな事を言われても
困るのですが

734デフォルトの名無しさん2018/06/28(木) 08:55:27.92ID:bLMLowda
>>733
Cで確保したポインタ(特に○○ハンドルみたいなリソース)は普通はopaque structで受けると思う。
https://rust-lang-ja.github.io/the-rust-programming-language-ja/1.6/book/ffi.html#%E3%82%AA%E3%83%9A%E3%83%BC%E3%82%AF%E6%A7%8B%E9%80%A0%E4%BD%93%E3%81%AE%E8%A1%A8%E7%8F%BE

どちらかというと、func2の引数が参照渡しでなくて値渡しなのが問題では。
見た感じfunc2では借用して呼び出し後に返してもらえばいいっぽいけど。

735デフォルトの名無しさん2018/06/28(木) 10:18:12.24ID:MyWFnKdA
>>732
えーなんで?rust書いてる人の大半は知らないでしょ

736デフォルトの名無しさん2018/06/28(木) 10:38:48.43ID:LheEK93m
こりゃC++まだ覚えてない人はrustなんか勉強してる場合じゃないねw

737デフォルトの名無しさん2018/06/28(木) 12:56:07.56ID:rDWw9n99
c++といってもRAIIとスマートポインタくらいで良いのでは
知らなくてもtrplなど読めばなんとかなるとは思うが
代数的データ型なども同様

あとは用途次第だけどFFIやるならCのメモリレイアウトくらいは押さえておいた方がよい

738デフォルトの名無しさん2018/06/28(木) 13:32:58.62ID:LheEK93m
そんないい加減なことでいいのだろうか?
ちゃんとC/C++一から十まできちんと理解した方がよいのでは?
それからじゃないとそこがいい加減でRustなんて本当に使えるようになったと言える?

739デフォルトの名無しさん2018/06/28(木) 14:08:04.32ID:QGaIyydK
C++完全に理解した人間なんて世界中に何人いるやら

740デフォルトの名無しさん2018/06/28(木) 14:14:44.86ID:rY43/kt0
Cはともかく、C++に時間を割く必要はないじゃろ

741デフォルトの名無しさん2018/06/28(木) 14:20:27.58ID:61gzDvUq
むしろCすら知らないほうが変な先入観とか無くて所有権とかライフタイムとか素直に理解しやすそうな気もする

742デフォルトの名無しさん2018/06/28(木) 14:28:13.71ID:MyWFnKdA
必要という理由が分からない
言語なんて使いながら覚えていくもんでしょ

743デフォルトの名無しさん2018/06/28(木) 15:28:41.63ID:a2wUxb0k
>>738
RustはC/C++分かってないと書けない
→C/C++を分かるまでやる
→C/C++がわかってしまえばそもそもRustなんて不要だと気づく
→Rustを捨てる

744デフォルトの名無しさん2018/06/28(木) 16:07:41.79ID:cJz1WTLf
>>730
確かにC++とHaskellが出来きればRustの習得にはそれほど苦労しないだろうとは思う
ただ、理解できるまでにかかる時間量の問題であって、それがないとキツイってわけじゃない
むしろ、Rustの学習するためにC++とHaskellを先に学習するとか時間の無駄
The Bookが懇切丁寧に解説してくれるので前提知識はなくても全く問題ないと思う
ただし、Goみたいな言語と違ってサンプルコード読めばある程度理解できて
何となくで書けてしまうような言語ではないのでThe Bookの熟読は必須
それと、FFIする場合はある程度のCの知識は必要だよ

745デフォルトの名無しさん2018/06/28(木) 16:49:45.85ID:Z76aQv2+
FFIしたいけどCは知らん、とかレアケースだから
そんな心配はせんでいい

746デフォルトの名無しさん2018/06/28(木) 16:53:35.27ID:rY43/kt0
別にRustは大して関数型言語じゃないし、Rustのために他の関数型言語から、っていうのは本末転倒すぎるな

747デフォルトの名無しさん2018/06/28(木) 16:59:30.65ID:Z76aQv2+
全然モナドってないし、関数型言語フレーバーぐらいでしょ

748デフォルトの名無しさん2018/06/28(木) 17:13:53.31
C++は速いがコーディングストレスで禿げる
Rustで若干のパフォーマンスを犠牲にしてでも、いかに毛髪を守れるかがテーマ

749デフォルトの名無しさん2018/06/28(木) 17:18:23.47ID:GP5sTNn0
>>748
C++程度で禿げてたらRustのコンパイル通らん

Rustのコンパイル通せるならC++でやる方がよいコード書ける

つまりRustは実用にならん。C++er養成ギプスって話ならわかる

750デフォルトの名無しさん2018/06/28(木) 17:41:56.51ID:BmtmAhz0
結論: やっぱりC++からしっかりやったほうがよい

751デフォルトの名無しさん2018/06/28(木) 17:46:58.11ID:GP5sTNn0
>>750
違う違う、そもそもRustは不要って結論な

C++勉強してC++そのまま使い続ければいい

752デフォルトの名無しさん2018/06/28(木) 17:47:09.81ID:tKvy+NRw
C++98
C++03
C++TR1
C++11
C++14
C++17
C++20
C++23
C++26
C++29
C++32
C++35
C++38

753デフォルトの名無しさん2018/06/28(木) 17:56:38.73ID:MyWFnKdA
なんだコンパイルできないおじさんか。。

754デフォルトの名無しさん2018/06/28(木) 18:32:36.30ID:f0Ft93Jb
>>746
単純に最初期のRustコンパイラはOcamlで組まれてたからって事情でないの

755デフォルトの名無しさん2018/06/28(木) 18:34:20.70ID:f0Ft93Jb
>>749
C++より潜在的なメモリ管理バグを減らせるってのは十分有用な話では

756デフォルトの名無しさん2018/06/28(木) 18:54:33.03ID:frbOjHXy
リストとリスト操作をなんで組み込んでくれなかったのかな?
::とか@とかあるだけでだいぶ捗るよね(一部の人にとって)

757デフォルトの名無しさん2018/06/28(木) 19:41:35.09ID:Z76aQv2+
パフォーマンス面だけで言えば、リンクトリストは問題外だからじゃない?

758デフォルトの名無しさん2018/06/28(木) 20:19:23.05ID:X+ujNNAX
コンパイルできないおじさんのコードもNLL有効にしたらコンパイルできたから
来年にはrust書けるようになるよ

759デフォルトの名無しさん2018/06/28(木) 20:29:59.05ID:1UW06GNd
別にどの言語だろうと所有権を考えるってのは普遍的に必要だとは思うぞ。
rustだろうとc++だろうとはたまた動的言語でもメモリ以外にも資源管理なんて
問題はどこにでも出てくるわけで。

760デフォルトの名無しさん2018/06/28(木) 20:30:03.07ID:rY43/kt0
consとかが使えないのはmutとの兼ね合いもあるんじゃないの
あれ完全にイミュータブルリスト向けだもんよ

761デフォルトの名無しさん2018/06/28(木) 21:16:31.35ID:YYPKz5qu

762デフォルトの名無しさん2018/06/28(木) 21:22:26.06ID:MOChRiis
>>734
なるほど。c_voidの正体はそれでしたか

引数は既成Cライブラリの仕様なのでなるべく変更したくありません

*mutを使うコードを検討していて気がつきましたがRustの生ポインタにfunc1が返すアドレスを入れると
Cと同じ危険を抱えますよね。func3でアドレスがNULL=0になりますからその後に触ると当然クラッシュします

763デフォルトの名無しさん2018/06/28(木) 21:27:33.58ID:wCMJyKP8
NLLいまだに理解できなくて使えない

764デフォルトの名無しさん2018/06/28(木) 21:36:28.71ID:cJz1WTLf
>>761
actixとactix-webのメインコントリビュータもよく見ると普通にMS所属の人だった
https://github.com/actix/actix/graphs/contributors
https://github.com/actix/actix-web/graphs/contributors

765デフォルトの名無しさん2018/06/28(木) 21:45:00.19ID:CykyBbY/
MSは英語なので、大目に見てもらえる

766デフォルトの名無しさん2018/06/28(木) 22:08:43.56ID:fobuFGlz
> Please never sell Rust to Microsoft!

ちょっとわらった

767デフォルトの名無しさん2018/06/28(木) 22:56:56.15ID:mQsBu3Yx
言語に関してはMSがオーナーになるのは大勝利だろ

768デフォルトの名無しさん2018/06/28(木) 23:58:14.47ID:aJbqINcy
ではここからはC# おじさんどぞー

769デフォルトの名無しさん2018/06/29(金) 00:13:26.39ID:9NU4CCEP
MSには新しいプログラミング言語のQ#があるから

Q# 【量子プログラミング】
http://2chb.net/r/tech/1513059627/l50

770デフォルトの名無しさん2018/06/29(金) 00:20:17.66ID:1B/tcpoY
汎用言語でないからRustと競合はしないな

771デフォルトの名無しさん2018/06/29(金) 05:02:04.02ID:HciN/Bk/
Visual StudioでRustサポートされないかな
rlsが不安定すぎるのでMSが作り直して欲しい...

772デフォルトの名無しさん2018/06/29(金) 07:15:45.03ID:pVbM0h49
rlsもracerもポンコツよね
あんまり力入れてないのかな

773デフォルトの名無しさん2018/06/29(金) 10:18:57.05ID:azKeAftH
intelliJ使えばええやん
インテリじゃない人もタダで使えるよ

774デフォルトの名無しさん2018/06/29(金) 11:21:37.40ID:eINaY/I2
支援機能だけ考えるとそうなんだけどさ
手に馴染んだemacsから離れるのは簡単じゃない

775デフォルトの名無しさん2018/06/29(金) 12:06:31.66ID:1B/tcpoY
ワイもIDE使いこなせない

776デフォルトの名無しさん2018/06/29(金) 12:09:37.82ID:l0U/js7n
intellijをつかうのです…
vsなんかよりよっぽどいいですよ…

777デフォルトの名無しさん2018/06/29(金) 12:09:46.01ID:ZOJKMSLg
>>763
従来のborrow checkerの制約が緩くなるだけだから従来の理解してれば不自由なく使えるはず

778デフォルトの名無しさん2018/06/29(金) 12:27:36.55ID:1B/tcpoY
intelij買ったけどemacs使っちゃうのよね。コード書くのにmouseが必要になるのが受け付けないみたい。

779デフォルトの名無しさん2018/06/29(金) 18:17:46.77ID:HciN/Bk/
intellijちゃん自力でパースしてるのアホでしょ
CLionもclang使わず自力でやってるけどリリースから随分経つのに初歩的なバグ残ってるみたいだし

780デフォルトの名無しさん2018/06/29(金) 18:55:33.43ID:abdfGqyU
>>734の方法だとこんな感じなのかな
enum ABC {}
#[link(name = "・・・")]
extern {
 fn func1(x: *const u8) -> *mut ABC
 fn func2(y: *mut ABC);
 fn func3(z: &*mut ABC);
}
fn main() {
 unsafe {
  let a = func1("foo.dat".as_ptr()); //C側でメモリが確保されアドレスが帰ってくる
  func2(a); //アドレスを使って処理
  func3(&a); //確保したメモリを解放(以降aを触ってはいけない)
 }
}
中身にアクセスしたいならenumを#[repr(C)]付きのstructにして構造を定義すればいいのかな
読み書きするRustのコード全てをunsafeにする必要がありそうだけど

781デフォルトの名無しさん2018/06/29(金) 20:25:27.91ID:jUvi1FZV
英語は多めに見るおじさん、今頃rustについて必死で勉強して弱点探してるのかな

782デフォルトの名無しさん2018/06/30(土) 01:38:16.37ID:bJf+PXWq
>>780
func1とfunc2は関数プロトタイプがわかるけど
fn func1(x: *const u8) -> *mut ABC; → ABC* func1(const char *x);
fn func2(y: *mut ABC); → void func2(ABC *y);
fn func3(z: &*mut ABC);に相当するCのプロトタイプはないよね?

783デフォルトの名無しさん2018/06/30(土) 01:40:31.49ID:bJf+PXWq
func1のxはu8だからunsigned charかuint8_tだね

784デフォルトの名無しさん2018/06/30(土) 01:59:30.31ID:VVUAg8sI
>>782
func1の引数はRustのコンパイラにその型を使えと言われたから
func2の引数はfunc1の返値に合わせた
func3の引数はfunc1が返したアドレスが格納されているアドレス。Cで言うポインタのポインタでABC **z
自分も詳しいわけではないので勘違いしているかもしれないが一応動いている

785デフォルトの名無しさん2018/06/30(土) 05:09:23.98ID:bJf+PXWq
>>784
ダブルポインタだったのか
それならvoid func3(ABC **z); → fn func3(z: *mut *mut ABC);

let mut p = func1(...);
let pp = &mut p as *mut *mut ABC;
func3(pp); // 単にfunc3(&mut p)で大丈夫なはず

786デフォルトの名無しさん2018/06/30(土) 11:01:24.70ID:6fEIEQu0
ダブルポインタはあんま想定してなさげな気はする。
俺だったらもう一枚、インターフェイスかましてもう少し楽なインターフェイスにしてから
rustと繋げるわ。

787デフォルトの名無しさん2018/06/30(土) 11:27:27.95ID:BB0BPsjY
結局C/C++ある程度わかってないと話にならないよね。
経験ないやつはいきなりrust勉強してる場合ではない。

788デフォルトの名無しさん2018/06/30(土) 12:46:04.79ID:gEYLih9T
コンパイルできないならまずプログラミングを勉強しなおしたほうがいいよ

789デフォルトの名無しさん2018/06/30(土) 14:28:27.26ID:d1l1Trl+
FFIの話をrust全体の話に主語をでかくしてるおっさんがおるな

790デフォルトの名無しさん2018/06/30(土) 16:28:11.02ID:oxrLiD+S
FFIもrustの魅力の一つなのですが?
C/C++知らないやつはいつまでたってもrustを全て分かったことにならない
半人前のまま
別に必要なとこだけ使うスタンスでもいいけど半人前のクセにいっぱしのrustプログラマーヅラしないでね

791デフォルトの名無しさん2018/06/30(土) 16:34:04.77ID:WiulWXxB
昔はアセンブラ知らずにC++語るなとか言われてたが時代は変わったもんだな

792デフォルトの名無しさん2018/06/30(土) 16:40:34.19ID:jlw7G6p9
結局どの言語を選べばいいのかわからなくなった
C++?Go?

793デフォルトの名無しさん2018/06/30(土) 17:06:44.52ID:NH6TT+Fu
Coqを選べばいいと思うよ

794デフォルトの名無しさん2018/06/30(土) 17:07:23.25ID:QJJEkoJ9
目的に合ったもの
やりたいものをやればいい

795デフォルトの名無しさん2018/06/30(土) 17:07:54.55ID:5+sKgUjT
迷うならGoでいいんでは。

796デフォルトの名無しさん2018/06/30(土) 17:10:05.48ID:CMs/fWc6
Prolog

797デフォルトの名無しさん2018/06/30(土) 17:38:54.49ID:RHrrdh8p
rustを視野に入れながらgoという選択はない
kotkinかswiftかgoかってなら分かるけど

798デフォルトの名無しさん2018/06/30(土) 17:52:45.29ID:5+sKgUjT
分からないなら無理してrust使わなくていいって意味じゃろ

799デフォルトの名無しさん2018/06/30(土) 18:08:54.39ID:9Q6R3Qzj
腐ってないでお前らも俺と一緒にRustで競技プログラミングしようぜ!

https://yukicoder.me/submissions?submitter=5971

800デフォルトの名無しさん2018/06/30(土) 18:21:37.09ID:UB7qEnEv
クロージャで再帰が出来ないのって所有権的な問題?

801デフォルトの名無しさん2018/06/30(土) 18:24:45.75ID:cH9c2bse

802デフォルトの名無しさん2018/06/30(土) 18:38:35.11ID:cH9c2bse
クロージャの再帰ってこれのこと?

recursion - Is it possible to make a recursive closure in Rust? - Stack Overflow
https://stackoverflow.com/questions/16946888/is-it-possible-to-make-a-recursive-closure-in-rust

803デフォルトの名無しさん2018/06/30(土) 18:57:41.58ID:dTg1EP/S
>>802
おー、できた
ありがとう
ローカル関数だと外部変数キャプチャできないし、クロージャだと再帰できないし、
同時にしたいときどうすんのかなーって思ってたから
そんなに使うこともないだろうけど、心に留めときます

804デフォルトの名無しさん2018/06/30(土) 22:59:14.25ID:pdhum8J2
>>785
ありがとう。なるほどそういう書き方もあるのか。確かに書き換わるので&mutの方が適切ですね
欲しいのはアドレスなのだからと単にアドレス演算子&を付けていました

unsafe外から任意のアドレスにあるデータへアクセスするにはその部分を関数化するようなのかな
一般的に言うプロパティの読み書きをプログラマブルに出来れば綺麗に書けるけど無理なんだろうなぁ
()無しの関数呼び出しとも言えるけどこれが出来る言語は少ない

805デフォルトの名無しさん2018/06/30(土) 23:04:00.05ID:BB0BPsjY
相変わらず驚き最大の言語だな

806デフォルトの名無しさん2018/07/01(日) 07:43:42.19ID:XZ+Fcjv4
>>805
例えば何に驚いてんの?
Rustの目的はシステム言語だが、目的から乖離してるとこって何?

807デフォルトの名無しさん2018/07/01(日) 08:30:53.21ID:vf9gJxu2
マルチパラダイムの場合、驚き最小の原則の法則に反するかどうかは実装者の責任じゃないだろうか

808デフォルトの名無しさん2018/07/01(日) 08:46:31.97ID:E4o6QfBe
抽象的なことしか言わなくなったんだよ
機械語のレベルと相性が悪いし

809デフォルトの名無しさん2018/07/01(日) 11:50:23.63ID:YY7LPhac
>>807
半分はその通りだが、それならc++で良くね?になるぞ。

810デフォルトの名無しさん2018/07/01(日) 13:30:01.00ID:TGjVBuJr
日本語でこんなに議論が行われてることに驚いた

811デフォルトの名無しさん2018/07/01(日) 13:37:40.54
恥ずかしくて外国人には見せられない掲示板だ

812デフォルトの名無しさん2018/07/01(日) 13:54:17.46ID:YY7LPhac
そもそもcの呼び出しはメモリ管理モデルのギャップがあるんだから
どうあがいてもc++のが簡易にできるのは当然なんだよ。

813デフォルトの名無しさん2018/07/01(日) 15:26:57.84ID:HnzLcrw0
>>810
このスレは英語推奨だぞ

814デフォルトの名無しさん2018/07/02(月) 01:23:28.76ID:5g9b1rVY
>ローカル関数だと外部変数キャプチャできないし、クロージャだと再帰できないし、
ここに関してはクロージャでないものをクロージャと呼ばなければ誰も驚かなかっただろうな。
javaは似非クロージャのことはラムダ式と呼んでるし。

815デフォルトの名無しさん2018/07/02(月) 01:51:37.55ID:v1kLQBFZ
Haskellの「外側のシンボルを参照することによる暗黙的な部分適用」はクロージャと呼ばれてるから
アレが許されるなら少なくともJavaのはクロージャと呼んでいい

816デフォルトの名無しさん2018/07/02(月) 22:14:52.04ID:KKQokwkO
>>815
javaのアレは元々クロージャ導入するつもりが、
仕様と実装でクソ揉めて妥協案としてクロージャ
じゃないものとしてラムダ式を作ったんやで。
だから意図的な"クロージャではないモノ"よ。

メモリ管理にgc使うからエンクロージャの束縛の解放に
制限ないから実質クロージャだし第一級関数だけど。

817デフォルトの名無しさん2018/07/02(月) 22:54:50.18ID:F0SAJ301
hyper使って簡単なwebアプリ描いてみたけどわりと素直に書けるのね

818デフォルトの名無しさん2018/07/03(火) 16:24:59.60ID:ZNPbo2Ku
>>803は本当に満足してるのだろうか
>>802のやり方だとパラメータ増えてるじゃん
こういうのは既存のシグネチャに合わせられないと
単にひとつの関数を小洒落た書き方にしてみましたってだけにしかならないのでは

819デフォルトの名無しさん2018/07/03(火) 17:05:40.29ID:ZNPbo2Ku
連投になって申し訳ないが、環境をRefCellで持ち出す例を見つけた
https://wandbox.org/permlink/hkwccgD2oXp0fTm7
組み合わせて、802の2番目の例のstructを更にRefCellに入れたらシグネチャ変えずに行けるかな

820デフォルトの名無しさん2018/07/03(火) 17:29:45.80ID:LuUToNY2
>>818
一応満足してるよ
スッキリ書けないことがわかったから、素直にループで書くか、ローカル関数作って引数で渡そうと思えた
Rustは関数型じゃなくて手続き型だし、特に不満ではない

821デフォルトの名無しさん2018/07/03(火) 17:31:22.43ID:nNrfrM83
>>819
RefCell使うなら、Rustで書く意味ないだろ

822デフォルトの名無しさん2018/07/03(火) 18:19:36.75ID:ZNPbo2Ku
>>820
すまん、クロージャでないとできない用途(環境をキャプチャーして高階関数に渡す等)を想定していると
勝手に気を回してしまったみたいだ

823デフォルトの名無しさん2018/07/03(火) 21:26:26.07ID:9JOKXkQl
クロージャじゃないとできない用途って具体的にどういうものなの
想像つかなかったので単純な興味本位

824デフォルトの名無しさん2018/07/03(火) 21:32:07.93ID:2DeV5pvZ
例えば最適化ライブラリなどに目的関数を渡す場合などで
引数以外からパラメータを注入する必要がある場合。

825デフォルトの名無しさん2018/07/03(火) 22:38:00.99ID:9ONgpSq2
>>822
キャプチャ自体はクロージャで出来るから別に困ってないかな
たまたま再帰させたくなったときがあっただけだから

826デフォルトの名無しさん2018/07/03(火) 23:58:54.50ID:6KvlcSKZ
クロージャじゃなきゃできないことじゃなくて、
クロージャの再起呼び出しじゃなきゃできないことを聞きたかった
引数以外のパラメーターを差し込む場合、普通は再起は必要ないよね

827デフォルトの名無しさん2018/07/04(水) 00:52:48.93ID:MQVza7QA
風雲再起ぃ〜!!

828デフォルトの名無しさん2018/07/04(水) 01:08:42.88ID:ace/1w5F
1.28はrustdocするときソースコードのlintするようになったんの?
deny属性に違反するソースコードがドキュメント生成時にエラー投げる。

>>822
クロージャがある言語は普通、関数とクロージャ区別しないからその感覚はおかしくないと思う。
でもクロージャの実装上の制約とかライフタイムとかでループで書いたほうがいいと思うコードはある。

829デフォルトの名無しさん2018/07/04(水) 09:35:17.80ID:7aH0kDWz
>>826
それは、てっきり最初の>>800がキャプチャと再帰を同時に使いたいことがあったんとばかり

830デフォルトの名無しさん2018/07/04(水) 20:54:21.49ID:1R4S9ii/
>>826
ある種の動的なtree構造に対して探索、実行を繰り返すとか。。
やっぱ具体的じゃねーな。。

831デフォルトの名無しさん2018/07/04(水) 21:42:58.93ID:JvJNYHQo
最近rustの勉強始めたものです
この言語ってstatementなのかexpressionなのかをどういう方針で決めてんでしょう?
ifがexpressionなのはわかったけど、letはなぜstatementなんだろ?
他の関数型言語のようにexpressionでもよかろうに、と思った

832デフォルトの名無しさん2018/07/04(水) 21:53:13.67ID:gFgZc5FG
KCX

833デフォルトの名無しさん2018/07/04(水) 23:31:21.37ID:kqLSfqeN
古いCで良く在る if ( (let a = f()) != 0 ) {} みたいなのが嫌だったんだろう。
そもそも、変数束縛が値を持つ必然性は無いよね。

834デフォルトの名無しさん2018/07/04(水) 23:32:39.47ID:kqLSfqeN
>>833
あ、ごめん。大嘘だった。
if let なんてのあったのね…

835デフォルトの名無しさん2018/07/05(木) 00:07:01.10ID:wS7IFFVg
他の関数型言語のletは随分来歴が違うイメージ。
let x = ... in expはラムダ式の糖衣構文の一種なので関数型なら容易に実装できて便利に使えるのに対し、
rustのletは手続き型の変数宣言の方が近い

schemeのletとdefineが全然意味が違うのを知ってると違和感無い

836デフォルトの名無しさん2018/07/05(木) 00:16:12.98ID:OgxnbJsr
>>831
この辺読めばいいかと。
https://rust-lang-ja.github.io/the-rust-programming-language-ja/1.6/book/functions.html#%E5%BC%8F%E5%AF%BE%E6%96%87

letは所有権移動だけど、返り値を認めちゃうと
束縛先と返り値のどちらに移動すべきか分からない、ということかな。

837デフォルトの名無しさん2018/07/05(木) 00:52:35.42ID:YJbjvjoP
>>836
それは let a = (let b = c) がだめな理由にはなるけど
>>831の言ってる関数型言語風の let a = (let b = c in d) がだめな理由にはならないよね

838デフォルトの名無しさん2018/07/05(木) 01:22:02.41ID:DZKRf+tO
えっ、毎回コピーすんの?
それ無駄じゃね?

839デフォルトの名無しさん2018/07/05(木) 03:33:15.42ID:CGu9cAAd
>>837
ブロック式で let a = { let b = 1; let c = b + 1; b + c }; と書ける
けどミュータブルな変数を書けるからコードが関数型言語風になるかどうかは書き手次第

840デフォルトの名無しさん2018/07/05(木) 20:22:41.90ID:yHZEHedG
>>836
>>839

ほー勉強になりました
fnもいまいち釈然としないけど
もうちょっと読み進めてみます

841デフォルトの名無しさん2018/07/05(木) 21:13:46.28ID:nmRduEAc
あるstructもとに任意のフィールドを追加した別のstructを定義することってできる?

842デフォルトの名無しさん2018/07/05(木) 21:35:03.85ID:wS7IFFVg
イテレータ系はみんなそれやってる
mapとかfilterとか、元のイテレータ+変換・フィルター関数みたいな構造体を返してくる

843デフォルトの名無しさん2018/07/05(木) 22:08:25.13ID:uqSz2h6E
へー今気がついた
strはmutの有無にかかわらずRO領域に配置される
sliceはmutの有無にかかわらずRW領域に配置される
つまり今風のOS上だと
strをポインタ経由で書き換えようとするとメモリアクセス違反
sliceをmut無しで宣言した物でもポインタ経由で書き換えられる
リンカの設定にもよると思うけどマイコンなどで使うときは注意が必要そう

844デフォルトの名無しさん2018/07/05(木) 22:15:27.91ID:B3fauv+j
えぇ…安全に使えないじゃん。キツツキに縛りつけてる意味ないじゃんrustの存在意義が…

845デフォルトの名無しさん2018/07/05(木) 22:46:05.11ID:5CTMsWjW
再現コードはよ

846デフォルトの名無しさん2018/07/05(木) 23:38:48.53ID:+dwFnTVE
unsafeの話でしょ
脊椎反射したいつもの人が見事に釣られている

847デフォルトの名無しさん2018/07/05(木) 23:53:13.69ID:uqSz2h6E
もちろんunsafe中の話です
fn main(){
 let s:[i32;2] = [10, 20];
 println!("s[0]={}", s[0]);
 unsafe{*(s.as_ptr() as *mut i32)=30}
 println!("s[0]={}", s[0]);
}
実行結果
s[0]=10
s[0]=30
これそのものが問題になるケースは少ないだろうけど
ROにいるはずと思い込んでいるとハマるケースがありそう

任意の場所に配置するアトリビュートとかあるのかな

848デフォルトの名無しさん2018/07/06(金) 00:07:24.39ID:0SVgWEm6
これのArrayのとこに書いてない?

https://doc.rust-lang.org/book/second-edition/ch03-02-data-types.html

849デフォルトの名無しさん2018/07/06(金) 00:36:54.90ID:iypT0A6c
>>842
返すんじゃなくて定義したいんだけども

850デフォルトの名無しさん2018/07/06(金) 06:49:56.18ID:Sybd3k2C
>>841>>849
stackoverflowとリファレンスを見た限りstruct定義の入れ子はサポートしてない
https://stackoverflow.com/questions/23629201/nested-structs-in-rust
https://doc.rust-lang.org/reference/items/structs.html

851デフォルトの名無しさん2018/07/06(金) 18:21:10.44ID:iypT0A6c
どうもありがとう。でもちょっとニュアンスが違う。

struct 2d {x, y}
struct 3d extends 2d { z }

で3dが2dのxとyのフィールドと独自のzを持つようなかんじ
マクロで出来ないか精一杯やってみたが出来なかった
元となるstructごとにマクロ作ればできるんだけどそれじゃ意味ないし

852デフォルトの名無しさん2018/07/06(金) 18:57:55.41ID:0SVgWEm6
設計見直したら?

853デフォルトの名無しさん2018/07/06(金) 19:23:23.92ID:6zaAciaG
>>851
Rust Design PatternsにはDerefでやるのはアンチパターンだと書いてあるけど、別の似たようなサイトではお勧め扱いだった気がする
https://github.com/rust-unofficial/patterns/blob/master/anti_patterns/deref.md

854デフォルトの名無しさん2018/07/06(金) 21:12:32.07ID:CzZn5kZZ
struct A {int size; char data[];}
みたいなのをRustから読み書きするインターフェイスを考えてみた
enum PTR {}
struct A {p:*mut PTR}
impl A {
 fn new(ptr:*mut PTR) -> Self {A {p:ptr}}
 fn get_size(&mut self) -> i32 {unsafe {*(self.ptr as *mut i32).offset(0)}}
 fn set_size(&mut self, n:i32) {unsafe {*(self.ptr as *mut i32).offset(0) = n;}}
 fn data(&mut self) -> &mut [u8] {unsafe{std::slice::from_raw_parts_mut((self.ptr as *mut u8).offset(4), self.get_size() as usize)}}
}
fn main() {
 let mut s:[u8;14] = [10,0,0,0,1,2,3,4,5,6,7,8,9,0];
 let mut x = A::new(s.as_ptr() as *mut PTR);
 println!("x.get_size()={}", x.get_size());
 println!("x.data()[0]={}", x.data()[0]);
 println!("x.data()[1]={}", x.data()[1]);
 x.set_size(7);
 println!("x.get_size()={}", x.get_size());
 x.data()[1] = 225;
 println!("x.data()[1]={}", x.data()[1]);
 println!("s[5]={}", s[5]);
}
実行結果
x.get_size()=10
x.data()[0]=1
x.data()[1]=2
x.get_size()=7
x.data()[1]=255
s[5]=255
美しくないコードだ・・・
メインのRustコードにunsafeを書きたくないので全てstructに突っ込んだらこうなった
dataはslice経由で比較的自由に読み書き出来るけど、sizeは任意のアドレスを挿している数値型の作り方が判らないので関数が2つに

855デフォルトの名無しさん2018/07/07(土) 01:32:56.18ID:odAPlBjD
rustからrust-bindgenが吐いたC++のクラス使うのめんどくさいな

856デフォルトの名無しさん2018/07/07(土) 18:52:04.06ID:Otm/KpKR
ところで、全然話変わるんだけどさ、mutってどう発音してる?
自分は「むっと」ってよんじゃってて、なんか、かっこわるいんだけど。

857デフォルトの名無しさん2018/07/07(土) 19:12:39.63ID:HR9VVpP9
当然、「みゅっと」でしょ

858デフォルトの名無しさん2018/07/07(土) 20:15:18.96ID:h+p+JRvo
怒ってるのね

859デフォルトの名無しさん2018/07/07(土) 20:19:35.52ID:Ty8z3s6n
鬼太郎のCVほっぽりだして産休に入るみゅ

860デフォルトの名無しさん2018/07/07(土) 20:58:49.46ID:PbU76+k2
mjúːtəbl

861デフォルトの名無しさん2018/07/07(土) 23:03:04.65ID:cEw8AP4C
ミュート

862デフォルトの名無しさん2018/07/08(日) 00:41:02.43ID:tBFClkmn
tanakhがrustのクロージャー再帰を望んでいる

https://twitter.com/tanakh/status/1015609559673475073

863デフォルトの名無しさん2018/07/08(日) 11:33:21.07ID:6xrO+JsL
そりゃ入れないほうがいい証左になるなw

864デフォルトの名無しさん2018/07/08(日) 13:33:35.86
みゅう太

865デフォルトの名無しさん2018/07/09(月) 02:59:46.84ID:4B4QAQi1
>>862
いつまでtanakhなんてスパコン詐欺師を崇めるんだろうなこのスレの住人

866デフォルトの名無しさん2018/07/09(月) 07:41:39.43ID:DXSSRVdR
国内の会社は大目に見てもらえないから大変だなあ

867デフォルトの名無しさん2018/07/09(月) 09:23:25.63ID:6MpumzZl
NEDOとかダメだろ

868デフォルトの名無しさん2018/07/09(月) 22:56:35.23ID:M/GPMU7W
「nvidiaの倒し方、知らないでしょ?オレらはもう知ってますよ」

869デフォルトの名無しさん2018/07/10(火) 08:37:04.49ID:wS3GMIgw
実際green500で倒してるんだからたいしたものだよ

870デフォルトの名無しさん2018/07/10(火) 14:26:10.12ID:+spxUUiC
https://github.com/saschagrunert/webapp.rs

これいいね、Webアプリを完全Rustで作成

871デフォルトの名無しさん2018/07/11(水) 12:56:28.28ID:8BQ5VZH8
WebアプリをRustで書くって、どういう需要があるの?
ラズパイみたいな環境?

872デフォルトの名無しさん2018/07/11(水) 13:05:53.98ID:A6luu057
車買ったらムダにドライブしたくなるじゃん。すぐ飽きるのに。
あんな感じ。

873デフォルトの名無しさん2018/07/11(水) 13:08:35.26ID:uU0OdRlq
クライアントサイドとサーバサイドで同じコードが使えるって話ちゃうのん?

874デフォルトの名無しさん2018/07/11(水) 13:30:09.56ID:QvLfDUJ3
同じ言語
だな
それはnode.js環境も同じだが

875デフォルトの名無しさん2018/07/11(水) 13:31:28.26ID:QvLfDUJ3
期待できる点は速くて安全

876デフォルトの名無しさん2018/07/11(水) 16:34:41.89ID:dzRS/LEU
全部rustって需要はあんまりない気がするけど、サーバ側ならかなりマッチしてる

877デフォルトの名無しさん2018/07/11(水) 17:15:53.86ID:NEswxD4L
webassebly

878デフォルトの名無しさん2018/07/11(水) 18:10:54.52ID:EHDLIx8N
サーバーサイド → Rust
クライアントサイド → Rust
ブラウザ → Rust
完璧じゃないか

879デフォルトの名無しさん2018/07/11(水) 18:17:02.02ID:4XcPTXi0
Yewのベンチマークって他に誰か取ってた?

880デフォルトの名無しさん2018/07/11(水) 18:46:56.99ID:8BQ5VZH8
やたらノンブロッキングに拘ってるけど、それが本当に必要な人ってごく一部だよね
人気サービスの中の人だけ
普通はスレッド立てまくりで対応可能だし、たまに台数増やすだけで問題ないでしょ?

881デフォルトの名無しさん2018/07/11(水) 18:59:32.73ID:v5sVc8KX
だからそれは並列性が必要ってことでしょ

882デフォルトの名無しさん2018/07/11(水) 19:13:29.64ID:A6luu057
真のアイルランド人はノンブロッキングなど必要としないwww

883デフォルトの名無しさん2018/07/11(水) 20:14:09.83ID:IOg1uM7w
アイルランドいつ統一するん?

884デフォルトの名無しさん2018/07/12(木) 20:27:33.26ID:vXAFXBtg
オライリーの奴予約した

885デフォルトの名無しさん2018/07/12(木) 22:30:46.69ID:Wlqbcgdb
>>884
白紙の未来を絶望に染めてやろう。

あれもうかなり古いぞ。
rust 2018で今よりさらに変わるんだぞ。
エラーハンドリングもモジュールもTraitも重要な部分全部かわるぞ。
nightlyで結構実装済みだから現行のnightlyですら違うぞ。
macro 2.0はいいぞ!

886デフォルトの名無しさん2018/07/12(木) 22:39:04.16ID:sU95dCXR
この仕事してるならそんなの普通じゃん

887デフォルトの名無しさん2018/07/13(金) 00:41:53.18ID:MpWeaOSk
>>885
Rust 2018にエラーハンドリングの変更とかあったっけ?
Rust 2018での追加・変更って"module, impl trait, Generators/async/await, macros 2.0, NLL, SIMD"だけじゃなかったっけ?
もしかしてdo catchがstable化されるの?それとも、それ以外で変更があるの?
エラーハンドリングで互換性を崩すような変更があるならかなり痛いんだけど…

888デフォルトの名無しさん2018/07/13(金) 04:40:11.96ID:7ZPDFHpF
https://github.com/rust-lang/rfcs/blob/master/text/2388-try-expr.md
2018からtryがキーワードとして予約される(catchは廃案)
editionが未完成だと実装できないから2018リリースにはきっと間に合わない

889デフォルトの名無しさん2018/07/13(金) 08:17:48.56ID:wonLmOyY
RustもC++みたいに何年かおきに大きく変更されるの?

890デフォルトの名無しさん2018/07/13(金) 10:05:43.27ID:U/mhKMvJ
こないだ1.0になったばかりな気がするんだが。仕事じゃつかえないな

891デフォルトの名無しさん2018/07/13(金) 10:19:59.41ID:MpWeaOSk
こないだってもう3年前だぞ
C++が仕事で使えるんだから使えるだろ
てか、Swiftなんてもう4でそろそろ5になるとか言ってるんだぞ
あれが仕事で使えるんだからRustなんか楽勝だろ

892デフォルトの名無しさん2018/07/13(金) 10:29:57.41ID:U/mhKMvJ
swiftなんてappleのDSL

893デフォルトの名無しさん2018/07/13(金) 10:31:39.87ID:U/mhKMvJ
C99勢が砦

894デフォルトの名無しさん2018/07/13(金) 11:07:37.12ID:sS4PjtpX
実際仕事で使っている人たちがいるのに使えないということは、別のところに問題があるのよ

895デフォルトの名無しさん2018/07/13(金) 11:48:20.64ID:ERNuP0HI
安定性以前にまともにfibが書けない言語だから仕事じゃ使えない

896デフォルトの名無しさん2018/07/13(金) 12:52:21.80ID:sS4PjtpX
突然の自己紹介

897デフォルトの名無しさん2018/07/13(金) 13:54:10.99ID:GXltVmCz
>>50辺りの流れは何回見ても本当に秀逸

898デフォルトの名無しさん2018/07/13(金) 15:05:24.82ID:KpXdroi9
車輪の再発明を抑止し過ぎるとnode.jsみたいになるからね
やり過ぎはだめってことよな

899デフォルトの名無しさん2018/07/13(金) 15:40:42.13ID:5L9NPjD5
どゆこと?

900デフォルトの名無しさん2018/07/13(金) 16:06:42.44ID:AcLm8Zma
たかだか一行二行のプログラムのnpmパッケージであふれ、しかも子孫含めた被参照ダウンロードが100万とかざらで、さらにそれがバグっている。

901デフォルトの名無しさん2018/07/13(金) 17:28:42.65ID:vZnflVWC
Rust関係ないけど最近ArchLinuxのAURに細工されたパッケージが上げられててほんのちょっとだけ話題になったんだけど

正直自分が使うcrateやそれの依存関係まで含めて全部書いてる人が信用できるかとかソースまでチェックしてる人なんていないよね…?
イカンなぁと思いながら盲目的に使っちゃってるわ(´・ω・`)

902デフォルトの名無しさん2018/07/13(金) 17:44:54.43ID:sS4PjtpX
CPUのL2キャッシュを作った人の叔母の恋人がテロリストがどうか気にするところから始めたほうがいいな

903デフォルトの名無しさん2018/07/13(金) 17:46:33.55ID:U/mhKMvJ
某ファイルシステムの作者が奥さんを殺してしまってな

904デフォルトの名無しさん2018/07/13(金) 18:29:15.55
怖いなぁ、戸締まりすとこ…

905デフォルトの名無しさん2018/07/13(金) 19:36:34.68ID:wonLmOyY
そういえばRUSTという殺し合いをするゲームがありますね

906デフォルトの名無しさん2018/07/13(金) 20:34:31.63ID:Cw5pkNzp
crate以前に詐欺企業Mozillaが信用できないから

907デフォルトの名無しさん2018/07/13(金) 20:59:24.06ID:IpXdw+4i
Mozillaが詐欺企業なら、Mozilla以上に言う事やる事がコロコロ変わるAppleや
個人情報を収集しまくりのGoogleやMicrosoftはどうなってしまうんだろうなw

908デフォルトの名無しさん2018/07/13(金) 21:16:35.53ID:Y3xd+pZ1
> 仕事じゃ使えない

おじさんのことじゃん

909デフォルトの名無しさん2018/07/13(金) 21:19:05.39ID:EK55GFqW
crates.ioを見に行かないようにして、社内で確認済みのcrateしか置いてない社内リポジトリだけ
参照するような設定って出来るんだっけ?

910デフォルトの名無しさん2018/07/13(金) 21:39:00.40ID:Y3xd+pZ1
RFCはあるみたいだけどまだ出来ないのかな
https://github.com/rust-lang/rust/issues/44931

911デフォルトの名無しさん2018/07/13(金) 21:50:09.75ID:EK55GFqW
>>910
まだ半分も済んでないね

912デフォルトの名無しさん2018/07/14(土) 00:26:44.88ID:nZvQhL00
>>909
cargoはそこらへん腐ってるから無理。
出来はするけどcrates.ioをクローンするツールの開発が
殆ど動いてないしクローンしてもそのローカルリポジトリを管理するツールがない。
ここらへんはoffline modeも絡んでくるけど、
どうせ欠陥機能作って廃止してまた作っての繰り返しでめちゃくちゃになるだけ。

913デフォルトの名無しさん2018/07/14(土) 06:22:32.24ID:brBR1uF1
crates.ioのソースを持ってきてローカルに立ち上げてhostsで向ければ出来上がりじゃん

914デフォルトの名無しさん2018/07/14(土) 06:46:24.80ID:W3qfg8ZM
cargoが便利コマンドすぎて、原始的な事がやりづらくなってる問題

915デフォルトの名無しさん2018/07/14(土) 09:02:37.98ID:5xFWH4XP
便利っつーかモジュラリティーの低い構造になってるだけだろ。。
バカ設計だわ。

916デフォルトの名無しさん2018/07/14(土) 10:21:42.77ID:7J+9ARNC
>>908
go使うよ。32bitsマシン以上向けならgoで十分だ。

917デフォルトの名無しさん2018/07/14(土) 11:25:26.45ID:brBR1uF1
仕事じゃ使えないのは言語じゃなくてお前だって言われてるのに何故goが出てくる

918デフォルトの名無しさん2018/07/14(土) 11:57:28.13ID:7J+9ARNC
Rust使えないから

919デフォルトの名無しさん2018/07/14(土) 14:38:38.90ID:HNobJoZ0
Rust(が/を)使えないから
どっち

920デフォルトの名無しさん2018/07/14(土) 14:41:53.11ID:6PGIbnJP
にほんごむずかしいあるね

921デフォルトの名無しさん2018/07/14(土) 14:53:02.90ID:fAbuOpO3
Rustの提案するエセソリューションは機械語のレベルと相性が悪い
CやC++のほうがまだまともなアプローチしてる

922デフォルトの名無しさん2018/07/14(土) 15:01:24.24ID:3YOZASYs
「機械語のレベルと相性が悪い」が "All your base are belong to us" みたいに見えてきた
なんかもう根本的に解ってないなっていう感じからくる面白さがある

923デフォルトの名無しさん2018/07/14(土) 15:14:29.28ID:HNobJoZ0
モジラに職を奪われたおじさんと
そのおじさんの物まねをするおじさん達のスレ

924デフォルトの名無しさん2018/07/14(土) 15:18:04.39ID:n16W1iUj
LLVMについていけないおじさん

925デフォルトの名無しさん2018/07/14(土) 15:22:17.69ID:P7IB+4yp
Cやアセンブラなどの低レベルな処理と連動する場合unsafeを使わざるを得ないが、言語の仕様上普通に書くとunsafe祭りになってしまい
ソースコードの可読性が低下するのが残念。抽象化したくてもこれまた仕様的に完全な抽象化が出来なかったりするし

926デフォルトの名無しさん2018/07/14(土) 15:47:47.15ID:7J+9ARNC
gcが有って良いならgo。 ない方が良いならnimってことか

927デフォルトの名無しさん2018/07/14(土) 16:00:11.16ID:6PGIbnJP
まだ学習し始めたばかりでみんなが何を言っているのかよくわからない。

928デフォルトの名無しさん2018/07/14(土) 16:53:11.51ID:QBMXvyuq
どいつもこいつも適当なことをそれっぽく言ってるだけだから気にしなくておk

929デフォルトの名無しさん2018/07/14(土) 16:57:03.73ID:7J+9ARNC
ここはアンチの溜まり場だよ

930デフォルトの名無しさん2018/07/14(土) 17:09:58.35ID:lldWHLOY
今日は本物がいないな

931デフォルトの名無しさん2018/07/14(土) 17:28:07.35ID:veV9L5cz
>>926
一体いつからNimにはGCがなくなったんだ…?(困惑)

932デフォルトの名無しさん2018/07/14(土) 17:41:12.64ID:/EttrqmU
>>930
狂人の真似をすれば実際狂人
つまりみんな本物のRustに職を奪われたおじさんなんだよ

933デフォルトの名無しさん2018/07/14(土) 17:45:59.63ID:h94PG7c/
https://nim-lang.org/docs/gc.html
RustはできないしNimも詳しくない専門性なしのおじさん

934デフォルトの名無しさん2018/07/14(土) 18:18:40.34ID:yo3MGbyq
お前らもモジカスに親を殺されてみろよ

935デフォルトの名無しさん2018/07/14(土) 20:02:32.48ID:3YOZASYs
バトー「つまり、本物の "Rustによる被害者" というのは最初の一人だけで、 
    残りは全て模倣犯による狂言だったってのか?」

トグサ「ああ。狂言を読んだ者は初めのうちは怒りを覚える。
    だが、その理不尽な怒りを抱えきれなくなると、
    衝動的に自らが "Rustによる被害者" になりすますことで、
    狂言によって植え付けられた怒りを共有しようとしていたんじゃないか」

バトー「実在しない "Rustによる被害者" たちが連鎖するってわけか……。
    ── 最初の一人はとうの昔に死んじまってるのにな」

936デフォルトの名無しさん2018/07/14(土) 23:00:52.98ID:6hFYodEH
>>922
懐かしいなAYBか。文法エラーを直しても通じないのがいいよなw
"All of your bases belong to us."
"お前らの卑しいものすべては我々に首ったけ"
ヒドイw

937デフォルトの名無しさん2018/07/14(土) 23:51:21.23ID:5xFWH4XP
rustに職を奪われたおじさんなんて実際は存在しないわけだが。。
まあそういう人がいると思った方が幸せな人がいるのは事実。

938デフォルトの名無しさん2018/07/15(日) 00:42:05.31ID:NkViXM6D
Rustに職を奪われたおじさんなんて名称なんてどうでもよくて
fibも書けない確かな"存在"がぐちぐち居座るせいで幸せになれない

939デフォルトの名無しさん2018/07/15(日) 02:53:02.00ID:x6haH/8s
良かった。Rustに職を奪われたおじさんは居ないんだ。

940デフォルトの名無しさん2018/07/15(日) 10:56:41.89ID:NalVqF46
NLLがstabilizeされたらfibを書けないおじさんもfib書けるようになって成仏できるよ

941デフォルトの名無しさん2018/07/15(日) 11:00:28.92ID:rsj4GyZ/
>>940
「fibを書けないアホ」が「木構造を書けないアホ」に変わるだけと予想

942デフォルトの名無しさん2018/07/15(日) 14:08:56.51ID:Um7D2OLN
rustでfibが書けたり、木構造が書けることをここまで自慢してくる輩って。。

943デフォルトの名無しさん2018/07/15(日) 15:31:20.30ID:rsj4GyZ/
自慢も何もプログラマを名乗るなら最低限それくらい書けて当然だろ?ってこと
例えば、「俺は数学者だ」とか言ってる奴が微積分すら理解出来てなくて
「でも、因数分解ならできるし」とか言ってたら全力でぶっ叩くだろ?
つまりは程度の問題ってわけ
そして俺はRustでfibや木構造すら書けない奴はどうせ他の言語使ったって
ろくなコード書いてないだろうからそんな奴がプログラマを名乗るなんて片腹痛いわ!と思ってるだけ

944デフォルトの名無しさん2018/07/15(日) 15:42:24.47ID:ppRXQOVy
このスレに迷い込んだ新規にはfibをどんな書き方をしたらrustで問題になるのか想像もつかない

945デフォルトの名無しさん2018/07/15(日) 17:23:07.93ID:upVjqm6g
fibってなんですか?

946デフォルトの名無しさん2018/07/15(日) 17:23:57.93ID:vPMHyt9R
>56でしょ?
fibがかけなくて5時間も喚いた挙げ句
答えを大量に示されても礼のひとつも言えない
下らない批評をしては論破されて潜伏を繰り返しているあほ
「rustに職を奪われた」「fibを書けない」もこいつの本質ではないんだよな

947デフォルトの名無しさん2018/07/15(日) 17:58:08.24ID:f+8P4DFr
ここはネタスレなんで

948デフォルトの名無しさん2018/07/15(日) 19:36:55.02ID:YZYcatpB
>>56もそもそも拾い物みたいだしなぁ…… (検索に引っ掛かる

949デフォルトの名無しさん2018/07/15(日) 19:51:13.58ID:H2FcMtiY
ツイッターでrust-lang-ja.orgのドメインが〜みたいな話が先月からあるみたいだけど
このスレでは誰も話題にしてない?

950デフォルトの名無しさん2018/07/15(日) 20:03:03.01ID:NalVqF46
fib拾いものなのか
正しくないfibすら書けないおじさんだったか

951デフォルトの名無しさん2018/07/15(日) 20:56:16.71ID:vPMHyt9R
https://www.google.co.jp/search?q=%E2%80%9Ca352230e08bc0a76fb5f116bd3c7abf4%E2%80%9C


>>949
検索にも引っ掛からないし誰が困るんだろう

952デフォルトの名無しさん2018/07/15(日) 21:35:06.48ID:YZYcatpB
>>949
Slackでは話題に出てたけど ここでは出てないかな

>>951
流石にplaygroundには貼ったんでしょうね コード4行目で検索

953デフォルトの名無しさん2018/07/15(日) 21:45:35.35ID:rsj4GyZ/
>>952
ほんとだ4行目だけを直接検索したら出た
しかも解決法までご丁寧に解説してあった
>>56はそれも読まなかったのか…
はたまた、読んでも理解できなかったのか…

954デフォルトの名無しさん2018/07/16(月) 16:06:24.68ID:NRqWPJmE
推察するに日本語が読めなくて、「できない」だけで飛び付いたんだろうなあ
こんな奴でもC++は書ける(自称)って辺りが日本のプログラマの闇だな

955デフォルトの名無しさん2018/07/16(月) 16:24:01.28
軽々しくC++書けるなんて口にしようものなら茂みからマサカリが飛んでくるぞ

956 ◆QZaw55cn4c 2018/07/16(月) 16:41:06.37ID:PLRcL5uS
C/C++ については、いつまでたっても「書ける」とはいいきれない存在ですね…
仕様が結構複雑だからなのか?

957デフォルトの名無しさん2018/07/16(月) 18:39:02.08ID:NeMQsq8I
Rustは「書ける」んですか?

958デフォルトの名無しさん2018/07/16(月) 18:52:42.01ID:tJPrOapS
Go使うよ。

959デフォルトの名無しさん2018/07/16(月) 19:02:04.84ID:+TKchfUN
perlがライトオンリー言語なんて言われていたけどリードオンリー言語なんてのもあるんだな。
http://wiki.c2.com/?ReadOnlyLanguage

rustはノミネートされてないから「書ける」と思うよ(すっとぼけ

960デフォルトの名無しさん2018/07/16(月) 19:32:53.55ID:PkmPgg8A
確かにAppleScriptは中途半端に英文風で多彩かつ何でこれダメなのってパターンも多くread onlyに相応しいな
昔はAdaの称号だったと思うが

961デフォルトの名無しさん2018/07/17(火) 01:20:02.37ID:XTfqg8Os
Eclipse Corrosion使ってるやついないの?

962デフォルトの名無しさん2018/07/22(日) 20:18:59.26ID:6WNc4gpj
Rustでプラグイン機構を持ったアプリを作る場合、本体とプラグインでjsonでやり取りするのが無難?
それとも動的リンクでいける?

963デフォルトの名無しさん2018/07/23(月) 00:12:51.84ID:t7f2tjaz
jsonでどうやるんだ。
https://crates.io/crates/libloading

964デフォルトの名無しさん2018/07/23(月) 00:44:55.55ID:CBB4e6ta
それOSやRustコンパイラがどういうコード作るかによるのでは?
なんとなく出来そうな気はするけど。

965デフォルトの名無しさん2018/07/23(月) 07:41:05.29ID:NoHfy/qo
コンパイラのバージョンアップでABI変わる可能性があるから
* 本体とプラグインが同じバージョンでコンパイルされてることを保証する
* extern "C" なインターフェースだけ使う
とかの工夫は必要そう

966デフォルトの名無しさん2018/07/23(月) 20:17:49.69ID:stexMLiC
プログラミングRust待ちきれないどす

967デフォルトの名無しさん2018/07/23(月) 22:49:10.62ID:bEqql8cX
extern "C"してもバイナリ互換のない変更したら同じじゃね?

968デフォルトの名無しさん2018/07/23(月) 23:00:36.98ID:83b6blUP
本体側からメモリマネージャをエクスポートして.dll/.so側に使わせるってできたっけ

969デフォルトの名無しさん2018/07/24(火) 16:50:44.53ID:IQ4K3J0H
crates.ioで中身のない、クレート名の予約だけの人増えすぎじゃね?

970デフォルトの名無しさん2018/07/24(火) 17:20:04.73ID:YqCWjlto
rustはweb周りをもっと押したほうがいいな
新しいのに飛びつくのはあの連中(俺も)だからな

971デフォルトの名無しさん2018/07/24(火) 18:54:39.82ID:ycl+zs7h
未発達ってだけじゃ?

972デフォルトの名無しさん2018/07/24(火) 18:57:59.94ID:WBO96fmU
壁乳

973デフォルトの名無しさん2018/07/24(火) 21:23:06.95ID:T8M86aw1
未発達かな
hyperやactix webがあるじゃん

974デフォルトの名無しさん2018/07/25(水) 02:08:39.39ID:41CwtA3+
未発達すき

975デフォルトの名無しさん2018/07/25(水) 07:51:39.69ID:+nGh1Sgi
async awaitベースのtokioがでるまで待った方がよさそう

976デフォルトの名無しさん2018/07/25(水) 08:16:02.41ID:y0Nnx33q
プログラミング言語Rust発売まだ?
はやくして

977デフォルトの名無しさん2018/07/25(水) 08:52:37.24ID:UNILj0yW
今日からRustやってみる
C言語とPythonとSchemeがちょっとずつしか分からないけど大丈夫かしら
Rustで本格的にプログラミング覚えた人っていますかね...?

978デフォルトの名無しさん2018/07/25(水) 09:02:21.28ID:HwnrNSAw
C++知らないと窮屈なだけで何でこんなもんが必要なのか意味不明じゃね

979デフォルトの名無しさん2018/07/25(水) 09:06:22.95ID:3qeF0zvT
C出来るならありがたみ分かるだろ

980デフォルトの名無しさん2018/07/25(水) 14:41:08.64ID:XJO2lY6I
Ready at Dawn Studiosって言うアメリカのゲーム会社が今後の開発は全てRustでするってよ

981デフォルトの名無しさん2018/07/25(水) 15:40:42.61ID:lJ8T3l+q
泡沫ゲームメーカーの

982デフォルトの名無しさん2018/07/25(水) 16:44:51.58ID:hO+Od1/n
海外だから多めに見てもらえる

983デフォルトの名無しさん2018/07/25(水) 21:16:35.03ID:ZMLutfsH
新しい言語だからrustからって人はなかなかいないと思うけどおすすめだな
根気は必要だけど

984デフォルトの名無しさん2018/07/25(水) 22:34:33.87ID:vRPwEy8/
これPHPが2%もあってPHPの代わりになるほどRustはまだ便利ではなさそうだな

https://github.com/imos/icfpc2018

985デフォルトの名無しさん2018/07/26(木) 04:24:33.95ID:5ROtQy7H
比較対象間違ってないか?

986デフォルトの名無しさん2018/07/26(木) 07:18:30.27ID:shfmC2IZ
意味不明すぎて笑ってしまった

987デフォルトの名無しさん2018/07/26(木) 19:48:41.24ID:HNM3rm3+
初心者スレ無いようなのでここで質問させてください
トレイトって他の言語で言うところのインタフェースみたいなもん?

https://doc.rust-lang.org/rust-by-example/trait.html

trait Animal {
fn new(name: &'static str) -> Self;
}
impl Animal for Sheep {
fn new(name: &'static str) -> Sheep {
Sheep { name: name, naked: false }
}
}

この、Selfを使うようなことはインタフェースじゃできないよね?
1) Selfを使える
2) 独自クラスの定義にのみimplementsできるインタフェースと違って
  既存の型に対してあとからいつでも実装を保証?できる
のがトレイト?

988デフォルトの名無しさん2018/07/26(木) 20:34:56.63ID:1GO/F9JV
Selfが使えるかは言語の特徴でtraitの特徴じゃないんじゃない
あと外部で定義されたtraitを外部で定義された型には実装できない制限がある

989デフォルトの名無しさん2018/07/26(木) 21:47:50.04ID:ZKUcprSN
sheep.nakedがfalseなのはバグじゃまいか

990デフォルトの名無しさん2018/07/26(木) 23:37:04.68ID:MvIVysXV
お前らそれよりtraitがコンストラクタ持ってることにツッコめよ。

Ready at DawnってCSやってたけどあれもrustで書くつもりだろうか。

991デフォルトの名無しさん2018/07/26(木) 23:47:35.69ID:e6WqSqyg
コンストラクタ?

992デフォルトの名無しさん2018/07/27(金) 06:21:45.73ID:iaaPZbOX
質問するための例でしょ、野暮だなあ

993デフォルトの名無しさん2018/07/27(金) 07:58:08.97ID:siMrDeDP
write!マクロってキモい

https://play.rust-lang.org/?gist=630529d9c9c65ee7e3a7ea9a2524e841&;version=stable&mode=debug&edition=2015

994デフォルトの名無しさん2018/07/27(金) 08:11:14.41ID:siMrDeDP
write!マクロって本当キモい

https://play.rust-lang.org/?gist=54a890fbc7093117363802bf84a9cd0a&;version=stable&mode=debug&edition=2015

995デフォルトの名無しさん2018/07/27(金) 13:30:16.26ID:Rp6Nmdy5
>>905
gowにはrustlungちう病気が出てくるぞ

996デフォルトの名無しさん2018/07/27(金) 20:15:16.26ID:/aLVAKNj
>>988 ありがとうございます!もっと勉強します

997デフォルトの名無しさん2018/07/27(金) 21:04:57.34ID:/aLVAKNj
>>990-992
そこなんですよ
コンストラクタをトレイト側にかけちゃうのが何か凄み感じるんですよ
インタフェースじゃせいぜいObject型で返すくらいのもんでして

998デフォルトの名無しさん2018/07/27(金) 21:53:15.63ID:454wB1N8
あ、これはやばい理解パターンだ。。

999デフォルトの名無しさん2018/07/27(金) 22:10:22.71ID:lEyToVsI
インターフェースは型だけどトレイトは型じゃないって気付いたときに理解が進んだ音がした

1000デフォルトの名無しさん2018/07/27(金) 22:22:18.00ID:T6fu2z+/


lud20230202120217ca
このスレへの固定リンク: http://5chb.net/r/tech/1518347244/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

TOPへ TOPへ  

このエントリをはてなブックマークに追加現在登録者数177 ブックマークへ


全掲示板一覧 この掲示板へ 人気スレ | Youtube 動画 >50 >100 >200 >300 >500 >1000枚 新着画像

 ↓「Rust Part5 」を見た人も見ています:
Rust Part7
Rust part6
Rust Part6
[FPSサバイバルMMO] Play Rust Part34
【ニューギン】CR CYBORG009 CALL OF JUSTICE Part5
Levi Strauss & Co.リーバイス/Levi's part 175
次世代言語Part7[Go Rust Swift Kotlin TypeScript]
Rust part9
Rust part13
Rust part12
Rust part10
Rust part16
Rust part18
Rust part11
RUST 2日目 part3157
CRUSTスレ Part.12
RUST その2 part3158
CR牙狼 GOLD STORM翔 Part5
C vs C++ vs Rust Part.3
C vs C++ vs Rust Part.2
DANCERUSH STARDOM Part7
DANCERUSH STARDAM Part9
DANCERUSH STARDOM part2
DANCERUSH STARDOM Part14
NOCTURNAL BLOODLUST part12
NOCTURNAL BLOODLUST part9
NOCTURNAL BLOODLUST part8
【雑談】avast!Anti-Virus Part1
DANCERUSH STARDOM プレイヤースレ Part8
【PS3/PS4】PlayStation Plus Part 298【VITA】
【PS3/PS4】PlayStation Plus Part 251【VITA】
【PS3/PS4】PlayStation Plus Part 274【VITA】
【PS3/PS4】PlayStation Plus Part 276【VITA】
Just Cause/ジャストコーズ 総合スレ Part9
【PS3/PS4】PlayStation Plus Part 284【VITA】
【PS3/PS4】PlayStation Plus Part 272【VITA】
【PS3/PS4】PlayStation Plus Part 254【VITA】
【PS4】PlayStation Plus Part 355【PS4/VITA】
【PS4】PlayStation Plus Part 354【PS3/VITA】
【PS3/PS4】PlayStation Plus Part 279【VITA】
【PS3/PS4】PlayStation Plus Part 267【VITA】
【HMD】Oculus Quest Part.27【VRStandalone】IP付
【HMD】Oculus Quest Part.16【6DoF VRStandalone】
Levi Strauss & Co.リーバイス/Levi's part 173
Levi Strauss & Co.リーバイス/Levi's part 157
Levi Strauss & Co.リーバイス/Levi's part 167
Levi Strauss & Co.リーバイス/Levi's part 171
【HMD】Oculus Quest Part.19【6DoF VRStandalone】
【PS4/XBOX】RUST Console Edition Part 4【サバイバル】
【iPad】REFLEC BEAT plus Part58
【SUBARU】WRX STI/S4 (VA) Part135
【BrownDust】ブラウンダスト part25
【BrownDust】ブラウンダスト part35
iPhone 8/8 Plus Part5&#169;2ch.net
次世代言語11[Rust Swift TypeScript Dart]
【TLoU】The Last of Usシリーズ Part95
【Russian】システマ Part 4【Martial Arts】
Just Because! (ジャストビコーズ) Part.35
【PS4】Ghost of Tsushima ゴーストオブツシマ Part165
Rust part24 (225)
Rust part23Rust part21Rust part21 (5)
Farthest Frontier Part5
Huawei P10/P10Plus Part5
DANCERUSH STARDOM Part24
18:28:00 up 5 days, 3:36, 2 users, load average: 9.28, 8.59, 8.34

in 0.0609290599823 sec @0.0609290599823@0b7 on 112508