Rust Part5
: デフォルトの名無しさん [] 2018/02/11(日) 20:07:24.54:ri7dLd1B Mozilla発のRust言語のスレ 公式 ttps://www.rust-lang.org/ ttps://blog.rust-lang.org/ ttps://github.com/rust-lang/rust Web上の実行環境 ttps://play.rust-lang.org 前スレ ttps://mevius.5ch.net/test/read.cgi/tech/1507970294/ : デフォルトの名無しさん [sage] 2018/02/11(日) 20:11:06.61:ri7dLd1B 補足 関連スレ プログラミング言語 Rust 4【ワッチョイ】 ttps://mevius.5ch.net/test/read.cgi/tech/1514107621/ スレタイと本文を簡素にして、リンクを追加 ワッチョイの有無は話し合って決めてくれ : デフォルトの名無しさん [sage] 2018/02/11(日) 20:19:50.66:Bow9SKgP ワッチョイが怖いアンチ専用スレ : デフォルトの名無しさん [sage] 2018/02/11(日) 20:23:24.61:A30L58fq 乱造されたくそ言語のひとつ : デフォルトの名無しさん [sage] 2018/02/11(日) 20:50:40.14:o0/wxHz/ 真正キチガイとそのとりまき専用スレです。 : デフォルトの名無しさん [sage] 2018/02/11(日) 20:51:16.50:o0/wxHz/ 本スレ プログラミング言語 Rust 4【ワッチョイ】 ttp://mevius.5ch.net/test/read.cgi/tech/1514107621/ : デフォルトの名無しさん [sage] 2018/02/16(金) 23:17:53.59:Amur4Tpf Announcing Rust 1.24 ttps://blog.rust-lang.org/2018/02/15/Rust-1.24.html : デフォルトの名無しさん [sage] 2018/02/17(土) 00:41:40.05:hqbRKzvj ttp://wolfbash.hateblo.jp/entry/2017/07/30/193412 やはりRustはクソの言語未満 良識ある人はきちんとわかっている : デフォルトの名無しさん [] 2018/02/17(土) 02:03:04.39:E39jLpI9 このブログが良識のある人の記事に見えるってのはある意味すごいと思う。 マジで言ってんの?ネタじゃなかったから単なるバカだよ? Nimやったことないんだけど、このブログ書いた奴のせいで 俺の中でのNimへの風評被害が超激しいんだけど。 : デフォルトの名無しさん [] 2018/02/17(土) 20:05:16.72:7f4EmjrX ネタにマジレスしてるはてな民多くてワラタ 2chもはてブも変わらねえな インターネットはこうでなきゃな : デフォルトの名無しさん [sage] 2018/02/17(土) 23:24:31.02:kWt1jk5L 正しくRustとNimを比較してRustにいいとこなどないと論理的に談断じてる そこまで言うなら反論記事よろ マジレスも何も事実じゃん : デフォルトの名無しさん [sage] 2018/02/17(土) 23:54:44.59:J1S1NncJ 金子勝とかNimキチガイとかrustアンチするにしても筋悪すぎるしアンチを装った信者の犯行では : デフォルトの名無しさん [sage] 2018/02/18(日) 09:48:13.72:KxaRPyjO Nimおじさんの布教の熱意は見習いたい Rustオタは身内で盛り上がってるだけだからな : デフォルトの名無しさん [sage] 2018/02/18(日) 10:06:29.06:rF0gbaqf ここまで理論的な反論なし まあできないんだろうね。言語未満Rust : デフォルトの名無しさん [sage] 2018/02/18(日) 10:10:11.91:rF0gbaqf Nimとの対比でRustは言語未満のゴミだと暴かれている上に それを布教してるやつらは金子先生の鋭い指摘で詐欺集団だと暴かれているのに 信者は人格攻撃して矛先を反らすだけ よっぽど反論できなくて悔しいんだろうね : デフォルトの名無しさん [] 2018/02/18(日) 13:34:10.14:MGQ/Ou+a 悔しいんじゃなくてバカらしい。 あと、書いたところでこっちにメリットがない。 具体的なメリットを提示してくれるなら書くかも。 反論記事なら雑だけど一応あった。 書いた後であまりのバカらしさに自ら記事を消したらしい。 アーカイブは残ってるから、それでも読んでろ。 ttp://ubnt-intrepid.hatenablog.com/entry/2017/10/03/135742 : デフォルトの名無しさん [sage] 2018/02/18(日) 15:07:59.73:yl4ANYcz Rustはプログラミング言語未満というのは の意見だと思うけどプログラミング言語の定義が曖昧すぎて反論のしようがないしそれで勝利宣言されてもね : デフォルトの名無しさん [sage] 2018/02/18(日) 16:22:00.83:29WPmCUu 書いたらモジラからお給金出るでしょ 意味のあるプログラム書こうとしたら とたんに借用とかでコンパイル通らなくなってまともにプログラミング出来ないものがプログラミング言語と言えるのか? まあMalbolgeやBrainfuckがプログラミング言語と呼べるキ◎ガイならRustもプログラミング言語かもね : デフォルトの名無しさん [sage] 2018/02/18(日) 16:23:51.22:29WPmCUu あとその人か反論記事消したのも 本当はRustが使い物にならないことを察してしまったけど それを言うと信者に突撃されるからぼかして消しただけでしょ 表向きの理由で全消しするのは不自然だから : デフォルトの名無しさん [sage] 2018/02/18(日) 17:02:55.71:AoWf7oui ほんそれ : デフォルトの名無しさん [sage] 2018/02/18(日) 17:24:33.90:rbmqjGBD あぁ、Rustのネガキャンするとお給料がでるのか…… : デフォルトの名無しさん [sage] 2018/02/18(日) 17:25:09.88:Cm7UHG2I 提灯記事書いてモジラからお金もらうにはどうしたらよいのですか? : デフォルトの名無しさん [sage] 2018/02/18(日) 17:41:48.25:oGsannLj 「俺がコンパイル通せるコード書けないからRustは糞」って主張で首尾一貫してるところはすごい : デフォルトの名無しさん [sage] 2018/02/18(日) 17:44:53.63:oGsannLj それとも世のRustで書かれてるアプリケーションは実はすべて別の言語で書かれているという主張だろうか : デフォルトの名無しさん [sage] 2018/02/18(日) 17:45:28.72:oGsannLj はたまたRustで書かれてるものはどんなものであれまともなものとは認めないかな : デフォルトの名無しさん [sage] 2018/02/18(日) 18:02:38.46:29WPmCUu 2番目が正解だな : デフォルトの名無しさん [sage] 2018/02/18(日) 18:06:09.75:29WPmCUu オープンソースでRustで書かれてるやつも なんとかコンパイルだけ通したような 保守性も何もない個人が脳トレで書いたようなものばかり まともな製品として書かれたコードはGithubにも見つからなかったぞ ソースコード公開してるものがそうなんだから 企業がRust使ってると称するなにかは実際にはRustなんて使っておらず 適当な別の言語で書いてRust使ってると言えばモジラから金が出る そういう仕組みと考えるのが自然な訳だ : デフォルトの名無しさん [] 2018/02/18(日) 18:36:35.71:MGQ/Ou+a で、このアーカイブ記事に対する論理的な反論はできないと。 あと、GitHubのまともなコードが見つからなかったって点も どの辺がまともじゃないのかについてはコードでは示せないと。 それで自分の言葉に説得力があると思ってるのが不思議でならないんだが。 あと、俺にも「モジラからお金もらう方法」を教えて。 ホントにもらえるんだったら絶対に反論記事書いてあげるから。 : デフォルトの名無しさん [sage] 2018/02/18(日) 18:45:26.87:rbmqjGBD ぐぇ crate uuid のインターフェースが換わりよった ParseError が std::error::Error を impl しなくなったのは何故だ…… : デフォルトの名無しさん [sage] 2018/02/18(日) 18:52:54.71:29WPmCUu なんで取り下げられた記事に反論しないといけないの? 取り下げたってことは「この記事は間違いだった」というメッセージでしょ モジラから金貰う方法とか俺に聞くなよ モジラのページにある自称Rust使ってる企業に聞いてくれよ : デフォルトの名無しさん [sage] 2018/02/18(日) 18:54:29.18:29WPmCUu な。Rustなんて使うからそうなる 一貫したインターフェースを提供することすらできん言語だ : デフォルトの名無しさん [sage] 2018/02/18(日) 18:59:05.94:XQEgm6DO 取り下げた理由も書いてあるのに読まずに決めてかかってるのほんとブレねぇな : デフォルトの名無しさん [sage] 2018/02/18(日) 19:01:18.09:yl4ANYcz まともな製品という言い方もそうだけどまともかどうかの判断基準は「俺が気に入るかどうか」以上のものがあるように読みとれなかったので議論にならない 論理的な会話ができてないのはどちらなんだか : デフォルトの名無しさん [sage] 2018/02/18(日) 19:03:55.06:rbmqjGBD レスしてもらったのはありがたいが 俺はお前さんから見ればRust信者だわ すまん 元よりどんな言語使ってもインターフェース変更はある 今回は、追従する作業に五分も掛からんかった 後はテスト流して終わり インターフェースの変更が出来ないのを理由に 開発が鈍化されるよりマシだと思うよ : デフォルトの名無しさん [sage] 2018/02/18(日) 19:04:52.12:29WPmCUu クソな例挙げようと思ったが挙げるまでもなくが素晴らしい例を出してくれたな Nimの人のブログにもあったが、ロジックと関係ないスコープ切りが必要なせいでコードがスパゲッティになるとか、 ハッシュテーブルと所有権がコンフリクトして動的計画法が書けないとか 所有権のせいでそもそも循環グラフ書けないとか いくらでもクソな所出してやれるが? : デフォルトの名無しさん [sage] 2018/02/18(日) 19:09:06.24:29WPmCUu それ以上に、難解すぎてロジックと関係ないコード上の手入れが膨れ上がって 結果ロジックにバグが増えたりインターフェイスの非互換が発生したりするんだよ だから致命的に壊れた言語って言ってる : デフォルトの名無しさん [sage] 2018/02/18(日) 19:16:07.43:29WPmCUu だから信者からの突撃回避だろってそれ : デフォルトの名無しさん [sage] 2018/02/18(日) 19:35:38.35:1PPXAZA8 反論ブログの人が今でもRust書いてるのも、アイコンがRustのマスコットキャラなのも信者の突撃回避なのですね Nimのブログ記事にブコメしてるのもみんな信者かMozillaの工作員なんですね : デフォルトの名無しさん [sage] 2018/02/18(日) 19:38:46.94:yl4ANYcz コンパイラが理解できない所有権の問題がある場合はunsafeというescape hatchがあってプログラマの責任でコードが書けるようになっている これはすごく実用的な割り切りだと思うんだけどはまた意見が違いそう : デフォルトの名無しさん [sage] 2018/02/18(日) 19:44:23.34:yl4ANYcz コンパイラが賢くあるべきなのか、コードを書く側が賢くあるべきかとい二つの考え方があって は後者、Rustは前者の立場をとっていて単純に趣味に合わないだけなんだと思うが : デフォルトの名無しさん [sage] 2018/02/18(日) 20:00:00.93:aEar2ian 比較対象にされてるNimはまともなプログラミング言語とのことで、まともな言語とはまともな製品を作れる言語とのことらしいが そうなるとNimはRust以上に普及しててまともな製品がリリースされていないと矛盾しないか : デフォルトの名無しさん [sage] 2018/02/18(日) 20:06:17.02:29WPmCUu 個人で作ってる言語と 国際的詐欺会社がバックにいるのとじゃどうしても個人が負けるわ : デフォルトの名無しさん [sage] 2018/02/18(日) 20:10:47.25:yl4ANYcz Mozillaが詐欺企業なんて聞いたことないけどどういう罪状があるのか詳しく教えて欲しい : デフォルトの名無しさん [sage] 2018/02/18(日) 20:28:16.57:FZoaWpvb こんだけアンチが常駐する言語スレも珍しい PHPより酷く感じる : デフォルトの名無しさん [sage] 2018/02/18(日) 20:33:28.85:DdrYOgdV スレ人口少ないのもあるが常駐されたところで同じ主張繰り返すだけで特に実害がないからでは 別スレもあるし : デフォルトの名無しさん [sage] 2018/02/18(日) 20:38:05.10:yl4ANYcz ほんとうにMozillaが金をばらまいてRustを普及させようとしているなら断る人もいるはずで 世界的にやっているにもかかわらずそのことに言及してるのがこのスレにいる一人だけという時点で信憑性も何もないというのがね : デフォルトの名無しさん [sage] 2018/02/18(日) 20:38:58.59:yl4ANYcz 言語について批判できるんだから変なMozilla批判は引っ込めたほうが説得力持たせられるのに もったいない : デフォルトの名無しさん [sage] 2018/02/18(日) 20:55:59.22:29WPmCUu 札束でぶん殴られて断れないような、そういう相手を選んでるだろうしな あのMercurialもGitにボロ負けしてるから、資金で殴れば下るだろうって狙われたんだろう : デフォルトの名無しさん [] 2018/02/18(日) 21:07:21.89:MGQ/Ou+a お前しか「モジラに金もらってる」なんて言ってる奴がいないんだからお前に聞くしかないだろ? バカなの?脳味噌に草でも生えてんの? あとGitHubの件はスルー?コード例はやっぱり出せないの? 動的計画法はRustじゃ書いたことないから分からんけども、書けないのはお前だけじゃないの? 「書けない部分を具体的にコード例で示して」毎回言ってるよね? 「同じことを何度も言わせるな」って注意されたことないの?今注意したからもう同じこと言わせないでね。 循環参照についてはRcとWeak使えば書ける。可変にしたければさらにRefCell使えばいい。 それも何度も言ってるよね?ボケてんの?草以外に花も咲いてそうだな。 RcやRefCellが気に入らんならお前とはスタイルが合わないってだけの話だ。去ね。 : デフォルトの名無しさん [] 2018/02/18(日) 21:18:37.37:MGQ/Ou+a あと最悪、動的計画法や循環参照がお前に書けなかったとしても、 書けてるやつのライブラリを使えばいいだけの話では? 自分で書くよりまずライブラリを探す。今の時代はこれが常識だろ? 車輪の再開発は勉強するときだけやってればいいんだよ。 : デフォルトの名無しさん [sage] 2018/02/18(日) 21:23:52.35:29WPmCUu 今まで触れずにおいてやったのにそこまで言われたから言うけど 「書けないもの」の「ソースコード用意しろ」ってひどい矛盾したこといってるの分かってます工作員さん? : デフォルトの名無しさん [sage] 2018/02/18(日) 21:27:56.00:yl4ANYcz コンパイルが通らないソースコードなら書けるよね : デフォルトの名無しさん [sage] 2018/02/18(日) 21:28:34.77:yl4ANYcz どうせ次はRustは触るのも汚らわしいから書かないとか言うんだろうな : デフォルトの名無しさん [] 2018/02/18(日) 21:29:02.25:MGQ/Ou+a Rustでコンパイルエラーしてるソースコードを コンパイルエラーした状態のままでいいから見せろって言ってるの。 あと、「C(他言語でも可)だとこう書けるのに。。。」っていうソースも載ってればベスト。 分かってもらえます? : デフォルトの名無しさん [sage] 2018/02/18(日) 21:30:40.70:yl4ANYcz borrow checkerについて文句言ってるんだからせめて型検査くらいは通ったソースにしてくださいね : デフォルトの名無しさん [sage] 2018/02/18(日) 21:39:58.74:29WPmCUu ttp://play.integer32.com/?gist=a352230e08bc0a76fb5f116bd3c7abf4&version=stable これで満足? : デフォルトの名無しさん [sage] 2018/02/18(日) 21:49:04.52:yl4ANYcz ttp://play.integer32.com/?gist=97a7043af5e6ae63f81bc41b2eccc945&version=stable : デフォルトの名無しさん [sage] 2018/02/18(日) 21:50:32.62:yl4ANYcz HashMapのエントリーへのポインタは新しいエントリー追加したらreallocなどが呼ばれて無効になるかもしれないので取り回すのがそもそも間違い : デフォルトの名無しさん [] 2018/02/18(日) 21:52:54.02:MGQ/Ou+a ちゃんとソースコード読みこんでないから何がしたいのよく理解してないけど 取り合えずコンパイル通すだけならすぐ出来たよ。 ttp://play.integer32.com/?gist=9333d5344adb9cdf5ef8292a20ec6c24&version=stable : デフォルトの名無しさん [sage] 2018/02/18(日) 21:56:25.20:yl4ANYcz NLL有効にしたら元のコードでも通った ttp://play.integer32.com/?version=nightly&mode=debug : デフォルトの名無しさん [sage] 2018/02/18(日) 21:57:12.95:rbmqjGBD 俺はスコープ切る方が好きかな〜 ttp://play.integer32.com/?gist=e73044b8a25fa1c2403ee1ccb74356f6&version=stable : デフォルトの名無しさん [sage] 2018/02/18(日) 21:57:26.76:yl4ANYcz URL間違えた ttp://play.integer32.com/?gist=d9f081dd40e2e0d06e224dc0e20ee41c&version=nightly : デフォルトの名無しさん [sage] 2018/02/18(日) 22:00:17.99:xYBf7ssj 瞬殺されてて草 : デフォルトの名無しさん [sage] 2018/02/18(日) 22:21:47.77:xYBf7ssj この流れ見ると、NLLはRustのハードルを思った以上に下げるのでは?と思わずにはいられない : デフォルトの名無しさん [] 2018/02/18(日) 22:48:08.85:MGQ/Ou+a その程度のエラーで投げるやつは少数派なんじゃ。。。とおれは思うけど。 まぁ、それでハードルが下がるのならそっちのほう良いとは思う。 けど、その程度で前に進めなくなるならすぐに別の問題にもぶち当たってやっぱり投げちゃうと思うよ。 そういう奴らはRustはともかく、多分C, C++でも自分で書いたバグに潰されると思う。 結局GC付きの言語でしか書けないんじゃない? 念のため言っておくけど、GC付きの言語を批判する意図はないよ。 おれTypeScript好きだし、Goも嫌いじゃない。 : デフォルトの名無しさん [sage] 2018/02/18(日) 22:57:58.52:xYBf7ssj 確かにここが解決しても型合わせとかで匙投げそうだな…… 型の方はScalaとかSwiftとか別の言語で似たようなのがあるから参考にできる文献多そうだけど : デフォルトの名無しさん [] 2018/02/18(日) 23:36:51.46:MGQ/Ou+a ジェネリックとトレイト境界の辺りとか最初は結構苦労した記憶がある。 特にfuturesクレートを初めて読んだときは?!??!?ってなった。 Rustは良い言語だけれど「難解」というところだけは否定できない。 そういえば、結局「モジラからお金もらう」方法教えてくれなかったなぁ。 お金欲しいのに : デフォルトの名無しさん [sage] 2018/02/19(月) 00:25:45.37:1MkUvafw ちゃんとしたもの作れるわけないだろという主張してたのが昔は複数いたと思うが Quantumが出たあたりで流石に取り下げたようだが モジラは詐欺会社と言い張る一人だけが猛烈に頑張ってる : デフォルトの名無しさん [] 2018/02/19(月) 01:40:11.21:Lpico4kN モーレツに墓穴掘ってるけどね : デフォルトの名無しさん [] 2018/02/19(月) 10:56:52.97:RCvG8f4a 安全性を最大限に気にしたい心配性な人向けの言語だよRust そういう人たちはC/C++のコーディングで余計なことまで心配しすぎてストレスかかってるんだよ かわいそうな人たちなんだよ : デフォルトの名無しさん [sage] 2018/02/19(月) 12:11:45.20:SrM6uAzC 心配しないと鼻から悪魔が出るのがC/C++なので心配しすぎということはない : デフォルトの名無しさん [] 2018/02/19(月) 20:47:53.37:Lpico4kN 例のアンチだが動的計画法がどうだ循環参照がどうだって騒いでたから てっきりhtml5everくらい複雑なコード組もうとして悩んでたのかと思ってたけど まさかのフィボナッチ数列でつまづいていたとは予想外だったわ そういえば今年のstackoverflowのアンケート結果っていつ出るんだろう? そもそも毎年いつ頃出てるのか知らないんだよね これでRustが愛され言語ランキング1位から順位落としてたら また「ついにクソ言語未満のボロが出てきたな」とか騒ぎだすんだぜきっと : デフォルトの名無しさん [sage] 2018/02/19(月) 22:42:50.63:soT5kWv3 前スレで、別のランキングでRustの順位が10位圏内に入ってなかったことについて 「工作ブーストが切れたな」とか言ってたからそういう方向になるんじゃね : デフォルトの名無しさん [sage] 2018/02/20(火) 22:57:20.29:fTmZl11b Rustが、コードのスタイルガイド「Rust Style Guide」と自動整形ツールを導入する理由。 コードをめぐる議論を省き、メンタルの負担を減らし、プログラマを参加しやすくする ttp://www.publickey1.jp/blog/18/rustrust_style_guide.html : デフォルトの名無しさん [sage] 2018/02/21(水) 00:44:44.35:s9stOBAB unsafe使えば書けるだろ C++みたいに全部unsafeな言語よりは安全 : デフォルトの名無しさん [sage] 2018/02/21(水) 13:18:06.33:/K+AUWe/ C++ならゲーム C#ならWindowsフォームアプリケーション PHPならWebアプリケーション Pythonなら機械学習 Rustは? : デフォルトの名無しさん [sage] 2018/02/21(水) 19:19:52.15:ariB2x93 ここはアンチが立てたキチガイ隔離スレです。 キチガイ以外書き込まないでね : デフォルトの名無しさん [sage] 2018/02/21(水) 20:00:01.69:RN4nUagC 本スレが過疎ってレベルじゃないし実質こっちが本スレだろ 隔離()スレに勢いで負ける言語があるらしい : デフォルトの名無しさん [sage] 2018/02/21(水) 20:01:45.70:ariB2x93 まあそうなんだけどね : デフォルトの名無しさん [sage] 2018/02/21(水) 21:13:09.57:wTdoLSiT ほんとID:yl4ANYczは戦犯 コンパイルできない厨が最後のコンテンツだったのに… : デフォルトの名無しさん [sage] 2018/02/22(木) 09:08:35.45:L3BN3Bsr いわゆるnewtypeパターンをLLVM IRで見てみると ごく単純なコードで使う分には中身の要素に最適化されてるけど、 それ使って配列を作っただけで最適化されなくなる こんくらいでゼロコスト抽象化とか言ってるの? typeでは新しい型作れないし、 結局新しい効率的な型を作る方法さえないんだな : デフォルトの名無しさん [sage] 2018/02/22(木) 09:11:43.41:3phG5Adg 私にも敵が視える : デフォルトの名無しさん [sage] 2018/02/22(木) 12:12:42.57:rPAqV5nw Rustで書くと実行時のメモリ使用量が増える感じは確かにある : デフォルトの名無しさん [sage] 2018/02/22(木) 12:12:50.46:nEiXxHSj トレイトの特殊化でも無理? : デフォルトの名無しさん [sage] 2018/02/22(木) 12:45:10.40:ETY6aWa8 バグかもしれないからissue立てたら : デフォルトの名無しさん [sage] 2018/02/22(木) 13:46:42.12:H839Tp+8 ゼロコスト抽象化はトレイトやジェネリクスを言っててnewtypeパターンは関係ないと思うゾ Cに比べたらC++もRustもGoもランタイムの分だけメモリ使用量は増えるよね C++にはランタイム存在しないとか大笑いなギャグを素で言う輩は知らん : デフォルトの名無しさん [sage] 2018/02/22(木) 17:36:33.79:z8mO3my1 その理屈で言うとlibcもランタイムになりそう : デフォルトの名無しさん [] 2018/02/24(土) 01:22:38.50:it5yKGst 「Rust 1.24」リリース、コード整形ツール「rustfmt」をプレビュー導入 | OSDN Magazine ttps://mag.osdn.jp/18/02/17/163000 > ビルドの速度は改善するが、出力されたバイナリの実行速度は少し遅くなるとしている。 : デフォルトの名無しさん [sage] 2018/02/24(土) 05:12:18.52:sKnrWNZ+ むしろ今まで並列コンパイルをしていなかったのかという驚きがね... 型推論とかボローチェッカーとか大変だろうしと思ってたが、並列コンパイルで早くなるのは助かるよね : デフォルトの名無しさん [sage] 2018/02/24(土) 12:58:21.72:xVNPO9ZK コンパイルを速くするためにプログラムの速度を犠牲にする 自称低級言語があるらしい : デフォルトの名無しさん [sage] 2018/02/24(土) 13:22:49.17:F+bRKUHR 言語じゃなくコンパイラの話だぞ 速度を求めたリリースビルドは並列なしに切り替えられる低級調製可能なコンパイラすごいよね(棒読み : デフォルトの名無しさん [sage] 2018/02/24(土) 14:20:25.52:Wx4opHQO 言語仕様には興味あるけど実装は興味ありませんって奇特な方には人気出そうな言語だね。 : デフォルトの名無しさん [sage] 2018/02/24(土) 14:24:58.18:2/pmmfzJ 低レイヤ書く人は仕様より吐かれるバイトコードの方にしか興味ないから 完全にターゲティングに失敗してるよなこの言語 : デフォルトの名無しさん [sage] 2018/02/24(土) 15:42:04.98:F+bRKUHR むしろコンパイルを通すことが難しくても効率的で安全なマシンコードを出力して欲しい奇特な人向けだけどな 性能無視して生産効率だけを求めるならボローチェッカーとかunsafeとかトレイトとか面倒な言語仕様はマジ辛い ただ緩く書きたいだけならSwiftとかGoの方が絶対良いよな ランタイムが馬鹿でかかろうが、goroutineが冗長コストだろうが、言語仕様が楽なそれらは生産効率が断然良い : デフォルトの名無しさん [sage] 2018/02/24(土) 16:20:16.21:VjJ87j7v 安全はともかく、Rustが効率的なマシンコードを出力するというのは同意しかねる : デフォルトの名無しさん [sage] 2018/02/24(土) 22:13:15.47:Z3ajdh1I やはりD言語が最強か : デフォルトの名無しさん [sage] 2018/02/27(火) 14:30:57.99:b6IHds+I ソースとマシンコードが一対一になる言語は安心感あるな : デフォルトの名無しさん [] 2018/02/27(火) 14:35:36.74:UR+NQY+Q やはりアセンブラか : デフォルトの名無しさん [] 2018/02/27(火) 14:36:01.06:MLnedvVc 【UFO】 山本太郎も横浜で遭遇 ≪W◇″型の発光体≫ 世界にテレパシー放送 【大宣言】 ttp://rosie.5ch.net/test/read.cgi/liveplus/1519704223/l50 : デフォルトの名無しさん [sage] 2018/03/01(木) 00:41:00.21 【お知らせ】Packt出版より Network Programming with Rust が発売されました。 : デフォルトの名無しさん [] 2018/03/05(月) 15:59:00.63:iGOVMObf ttps://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してくれないものでしょうか : デフォルトの名無しさん [sage] 2018/03/05(月) 19:46:36.35:S3T8EfYp println!("nanka2 called"); とか副作用あるよね : デフォルトの名無しさん [sage] 2018/03/05(月) 21:01:55.89:YH1rjFLX まさに副作用あって呼ばれなきゃ困るパターン書いてて草 : デフォルトの名無しさん [sage] 2018/03/05(月) 21:44:52.21:rDxXu9uq 遅延評価の言語ではないから言語仕様的に全部評価することが保証されてるからなぁ 副作用なくて同じcrate内に処理があるなら最適化で消えるのでは : デフォルトの名無しさん [] 2018/03/07(水) 19:29:12.10:LRCrToXv 横着してたから気づかなかった… ttps://play.rust-lang.org/?gist=548477e609761c03d062880ceebec28a&version=stable MIR見る限りあるっぽいです(これ副作用ないですよね?) : デフォルトの名無しさん [sage] 2018/03/07(水) 21:27:53.74:VXG6nm0Z 良く分からないけどReleaseにしてASM見ると消えてるみたい MIRに対する最適化は現時点ではそれほどやられてなさそう : デフォルトの名無しさん [sage] 2018/03/07(水) 21:51:00.14:LRCrToXv Debugなのを忘れた状態で見てcall nanka2があったので駄目かと思っていましたが Releaseだと消えるようですね、すいません : デフォルトの名無しさん [sage] 2018/03/07(水) 22:06:37.97:5W30026P 言語仕様で消えるってどっか書いてある?探したけど見つからんかった : デフォルトの名無しさん [sage] 2018/03/07(水) 22:42:40.55:MkNIh69G rust推進派のtanakhがrustのダメ出しを始めた ttps://twitter.com/tanakh : デフォルトの名無しさん [sage] 2018/03/08(木) 07:35:45.52:VN6/Zkeb 会社大変だから許してあげよう : デフォルトの名無しさん [sage] 2018/03/08(木) 09:01:09.79:SDzhQ04b 最適化の話だから言語仕様では決められてないと思う : デフォルトの名無しさん [sage] 2018/03/08(木) 13:04:24.48:XQ95i3sC あのtanakhですら擁護できなくなってきたRustとかいう何か やっぱクソ言語じゃん : デフォルトの名無しさん [sage] 2018/03/08(木) 13:05:40.24:FYuhJ3+Z 逆にたなこふ氏が好きな言語って何だよ Haskellくらいだろ : デフォルトの名無しさん [sage] 2018/03/08(木) 13:10:19.32:FYuhJ3+Z ほら ttps://twitter.com/tanakh/status/907645555467104256 : デフォルトの名無しさん [sage] 2018/03/08(木) 13:42:39.37:XQ95i3sC いくつか言語……?ってなるのが混じってるな : デフォルトの名無しさん [] 2018/03/08(木) 17:46:17.85:3H4xAb5h Rust評価高いくてGoは糞って評価だな。 : デフォルトの名無しさん [sage] 2018/03/08(木) 20:48:12.88:Qr0iRnUQ 絶対一緒に仕事したくないようなコード書きそうな人柄なのがよくわかるのはいいことだね。 : デフォルトの名無しさん [sage] 2018/03/09(金) 02:34:49.09:C5IjE5Kn スタック使うかヒープ使うか考えなきゃいけないしマジで低級言語だなRust : デフォルトの名無しさん [sage] 2018/03/09(金) 09:09:56.97:MtNghMxY 低級プログラミング言語というときの低級は必ずしも蔑む意味とはならない : デフォルトの名無しさん [sage] 2018/03/09(金) 12:35:50.11:Awo4Q9T/ は別に蔑んでないと思うが… : デフォルトの名無しさん [sage] 2018/03/09(金) 12:41:07.31:X+hGjMr5 118が低級 : デフォルトの名無しさん [sage] 2018/03/09(金) 13:10:31.19:Awo4Q9T/ どう読んでもは事実を言っただけでrustを誉めても貶してもいないと思うが… 「CはPythonよりも低級言語」これC言語を蔑んでる意味で取るアホなんているの? : デフォルトの名無しさん [sage] 2018/03/09(金) 17:25:20.32:4MawrcZA 初心者は大体そのように取るよ : デフォルトの名無しさん [sage] 2018/03/09(金) 17:29:38.88:Oir5mzi3 はいはいわかったわかった : デフォルトの名無しさん [sage] 2018/03/09(金) 18:10:23.86:TjQY2cN8 枯れてる言われて古いんだなと思ってそう : デフォルトの名無しさん [sage] 2018/03/10(土) 02:47:36.63:RGnl5SiL 高級言語のcobol最強ですかね : デフォルトの名無しさん [sage] 2018/03/10(土) 04:12:59.75:YINDWKAW 蔑んでいるように見えるのはあなた自身が心の奥底でRustを蔑んでいるのです : デフォルトの名無しさん [sage] 2018/03/10(土) 07:06:56.73:PbOmOUXH はいはいわかったわかった : デフォルトの名無しさん [sage] 2018/03/11(日) 03:31:49.17:UKNdLJMW 1つのstructにいっぱい詰め込むと初期化が面倒なんですが : デフォルトの名無しさん [sage] 2018/03/11(日) 04:15:48.10:4b/1QsDB new()用意しとけ : デフォルトの名無しさん [sage] 2018/03/11(日) 13:22:28.79:vP34sga0 derive(Default)使えば : デフォルトの名無しさん [sage] 2018/03/11(日) 13:57:51.99:91F3yKR+ よくインターネット上の広告で半年でエンジニアに!みたいなのあるけど、インターネット不得手、プログラム未経験者が真剣に半年頑張れば本当にそんなこと可能なんですか? 可能ならその理由はなんでしょう?人材が足りていないというのは存じ上げていますが : デフォルトの名無しさん [sage] 2018/03/11(日) 13:58:22.81:91F3yKR+ ごめんなさい誤爆しました : デフォルトの名無しさん [] 2018/03/11(日) 14:13:04.94:zWe+i43K 言われたことやるだけなら可能じゃね? : デフォルトの名無しさん [sage] 2018/03/18(日) 21:30:14.47:jQGugCpv 今更だけどこれ書いた奴もブコメした奴も誰一人rustまともに使ったこと無さそうで草 : デフォルトの名無しさん [] 2018/03/19(月) 15:39:12.03:dH7nnHk9 少なくとも書いた奴はまともに使ってないだろうな matchの仕様が理解できないからって仕様バグと決めつけてるアホだし… : デフォルトの名無しさん [] 2018/03/19(月) 19:45:41.61:ahbMAcYG 俺の技量不足なんだろうけどmutmut地獄は確かにわかる : デフォルトの名無しさん [] 2018/03/19(月) 20:01:00.05:dH7nnHk9 mutが面倒ってのは分からなくはないんだが、かと言ってどうするの? 不変のほうをconstにすると次はconst地獄になるだけだよ : デフォルトの名無しさん [sage] 2018/03/19(月) 20:11:12.51:bbBltail C++erだったのでconst地獄はむしろ慣れてるので歓迎 : デフォルトの名無しさん [sage] 2018/03/19(月) 20:37:55.38:+FMR/dfx 一方、記述の美しさを重視する Nim では let と var に分けた : デフォルトの名無しさん [] 2018/03/19(月) 21:23:39.57: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++と同じ類の過ちを犯してる 簡潔ではあるかもしれないが全然美しくない(美しいの定義によるが…) ttps://play.nim-lang.org/?gist=9e8b6b6059cf8640f6c71fd2075b07c8 : デフォルトの名無しさん [] 2018/03/19(月) 21:32:11.25:dH7nnHk9 あとRustの場合はそもそもmutは出来るだけ使うなという方針だから mutの記述が面倒なのはワザとやってるという点もあるし… : デフォルトの名無しさん [] 2018/03/20(火) 08:39:12.91:iuzVSye9 なるほど : デフォルトの名無しさん [] 2018/03/20(火) 14:11:19.46:J0Id73NT > これじゃ呼び出し側を見ただけじゃxが不変か可変か判断できない 珍しいご意見ですよね。 : デフォルトの名無しさん [sage] 2018/03/20(火) 16:01:11.80:/+MVnq9/ よくよく考えるとRustも呼び出し側にmut付けること自体は必須ではないんだよな 所有権を借用するために大抵は&mutを書かされるってだけで… 渡す変数の型がもともと&mut Tだった場合は書かなくてもいい… Rustの場合は呼び出し側で&mut書く羽目になる経験が多かったので 俺が勝手に「可変にしたければmutを絶対に書かないといけない」という勘違いをしていただけか… でも、書かされた方が読むときには分かりやすいので個人的にはこっちの方が好き 俺自身がNimはどうしても好きになれなくて不満点を挙げたつもりが自ら墓穴を掘ってしまった感じだな 一般的にはNimの方がよっぽど簡潔で美しいのかもしれない… ただ単に俺の感性の方が狂ってるだけっぽいな… : デフォルトの名無しさん [sage] 2018/03/20(火) 16:05:30.99:ck80uwiX そんな珍しくもない気もするが : デフォルトの名無しさん [] 2018/03/20(火) 21:24:24.10:kx/m1AUo 俺もそんな珍しくもないと思う : デフォルトの名無しさん [sage] 2018/03/20(火) 23:15:30.72:RYTCq15b 「変数」が値に名前を付けたイメージに人とメモリ領域に名前を付けたイメージの人と : デフォルトの名無しさん [] 2018/03/21(水) 00:20:42.31:mtmyqFMA データがメモリのスタック領域ヒープ領域あるいは別の領域などどこに記憶されるのかという低レベルなことを考慮しながらプログラミングしなきゃならない 変数とは何かと言えば スタック領域の特定のメモリ番地に名前をつける行為でしかなく 所有権の委譲って何かと思えばそのメモリ番地の名前を変える行為でしかない クソ : デフォルトの名無しさん [] 2018/03/21(水) 21:34:47.63:JvyRf7uK 分かりやすい説明だね : デフォルトの名無しさん [sage] 2018/03/23(金) 00:30:01.20:DIa3/8ef GBAのプログラムを書いてみたいな。どうせならRustでやってみるか ARMポートあったよね。Thumbコードも吐けるのかな とか思ってググっていたら先人がいた。考えることはみんな一緒かw : デフォルトの名無しさん [sage] 2018/03/23(金) 08:40:36.80:yG5SnYrv Unityが北欧のニートから生まれたって話を聞いて Rustでゲームエンジン作ればワンチャンあるんじゃないかと思い始めてきた。 : デフォルトの名無しさん [sage] 2018/03/23(金) 08:44:26.71:0DDzAR5J 気のせい。 : デフォルトの名無しさん [] 2018/03/23(金) 10:01:19.78:+d3L/XtB あるかもね : デフォルトの名無しさん [sage] 2018/03/24(土) 02:46:18.89:Q4O/QWqD unsafe使い始めたらCのがやっぱ楽じゃね?ってことにすぐなる。 : デフォルトの名無しさん [sage] 2018/03/24(土) 07:57:37.67:AYaIp/Or そしてメモリ周りのバグで悩まされた時にやっぱRustで書いときゃ良かったってなる : デフォルトの名無しさん [sage] 2018/03/24(土) 11:41:10.67:lA18Hk/y バグなんてメモリに限ったことじゃないのにね : デフォルトの名無しさん [sage] 2018/03/24(土) 12:51:11.00:6E9wdkyi 要因の種類が減るのは良いことだ : デフォルトの名無しさん [sage] 2018/03/24(土) 19:57:38.34:Hl/X5tEX rust未経験者なんだけど、この言語ってweb開発には向いてないの? goより高度なこと出来るならweb開発も全然苦じゃないように思うんだけど 何かしらweb開発に向いてない要素あんるんかな? : デフォルトの名無しさん [sage] 2018/03/24(土) 20:11:16.11:lcHhOSrB DOMいじれんの? : デフォルトの名無しさん [sage] 2018/03/24(土) 20:22:46.33:Hl/X5tEX ごめん。聞き方がふんわりしてた。 webのバックグラウンドで動いてるrestAPIサーバに向いてない要因は何かあるのかな? SPAとかマイクロサービスとかの構成でjavaとかgoとかの代わりに成り得るのかなって。 : デフォルトの名無しさん [sage] 2018/03/24(土) 20:22:52.79:6E9wdkyi 一応WebAssemblyで吐けばRustのコードとJavaScriptのコードを混在出来るけど 軽く触っただけなんでデバッグなどの開発環境の事は未知数 : デフォルトの名無しさん [sage] 2018/03/24(土) 20:22:54.62:eKuOy/a9 無理 : デフォルトの名無しさん [] 2018/03/24(土) 20:25:44.26:bGodUaM+ サーバ側でしょ?言語としては代わりになるだろうけどwebに向いてる部分てのが何を指してるかによるんじゃない : デフォルトの名無しさん [sage] 2018/03/24(土) 20:33:09.05:Hl/X5tEX hello world出たからもう初心者と言っても過言ではない。。 個人的には静的言語ならどれも大差ないと思ってるんだけど、 その方面では全然注目されてないように見えたから何か原因があるのかなって。 : デフォルトの名無しさん [sage] 2018/03/24(土) 20:36:37.33:6E9wdkyi 以前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で自動化しても良い : デフォルトの名無しさん [sage] 2018/03/24(土) 20:51:06.97:Hl/X5tEX hello worldが10個出た。 goのシングルバイナリ良さそうだよね。 全然分かってないんだけど、rustでもちょびっと頑張れば クロスコンパイルできるって認識なんだけど間違ってるのかな? : デフォルトの名無しさん [sage] 2018/03/24(土) 21:09:10.81:6E9wdkyi Rust経験浅いんで良く分かってない、一応nickelってWAFあるしrustupでコンパイル出来るから土台はあるけど RustってわりとカジュアルにC製のライブラリをdllとして利用してるからそこが未知数 まあそれらのライブラリを使わなきゃいいんだろうけど : デフォルトの名無しさん [sage] 2018/03/24(土) 21:09:38.20:6E9wdkyi rustupでクロスコンパイル : デフォルトの名無しさん [] 2018/03/24(土) 21:17:38.55:Hl/X5tEX FizzBuzz動いたー レベルアップ感ないけど そうか。シングルバイナリじゃないとクロスコンパイル先の環境で動かすのは なかなか大変そうやね。やっぱその分野はgoが強いってことなんね。 : デフォルトの名無しさん [] 2018/03/24(土) 21:29:23.70:LUxFSHaJ そういう観点なら学習コストが高いのがじゃくてんだと思う : デフォルトの名無しさん [sage] 2018/03/24(土) 21:45:47.85:glWbEBFl 個人的にはGCありなしの差が大きい気はする。 特にweb系はGCがあって当たり前だから 急にlifetimeとか言われても…ってなりそうな。 C/C++だと結局脳内でlifetime管理してるから そこの学習コストは相対的には低い。 : デフォルトの名無しさん [] 2018/03/24(土) 22:12:42.54:AYaIp/Or おれもGC有り無しはでかい要因だと思う 今までJS, Ruby, PHP, Java辺りしか使うことのなかったWeb屋にとっては 「メモリ管理?なにそれ?おいしいの?」状態だろうし… : 165 [sage] 2018/03/24(土) 23:05:16.49:YaLUXLZ4 なるほど。確かにWEB系だと短い納期+人海戦術で乗り切ることも多いから そういうのには辛そうだね。でも言語仕様的にWEB(の裏のサービス)が不得意という 訳では無さそうだから、細く長くやるようなサービスなら導入もアリっちゃアリという認識でいいのかな。 そだね。なんにもわからんわw っていうかWEBやっててGCであんまり困ったことないかも知れん。 困ったことがないことに起因して難易度が上がった言語を「使いたいです」って提案するにはちょっと強引さが必要そうやね。 今、初心者用の練習問題やってるんだけどメモリの管理なんて全然出てこない。 みんなどうやってRUSTの勉強してるの?やっぱり何か動くもの作ってみるのが早いかな? : デフォルトの名無しさん [sage] 2018/03/24(土) 23:11:45.93:gYQh0+lt 簡単なApp serverならrocketが楽だった 早くstableで動くようになってほしい : デフォルトの名無しさん [] 2018/03/24(土) 23:49:05.34:AYaIp/Or ん?君もしかしてWeb屋なの? そして「GCなし」ってのがどういう状態かよく分かってない感じ? C or C++のご経験は? : デフォルトの名無しさん [] 2018/03/24(土) 23:59:12.17:Z79Bg+7E GCは甘え。 プロなら自分で管理するべき。 : デフォルトの名無しさん [sage] 2018/03/25(日) 01:19:49.91:8WSI8ZZL GC無い言語でもファイルディスクリプタの解放は自前でする必要あるしリークの根幹はどっちも変わらんと思うけどな むしろGC無い言語の方が循環参照の時の解放が面倒、C++でもweak_ptr使う必要出てきたり : デフォルトの名無しさん [] 2018/03/25(日) 01:28:22.61:4Rittzre c++はやっぱraiiが便利。 gcあったって結局outofmemoryerrorになるなからなぁ。 だったらrustのようにコンパイラが所有権やライフタイムをチェックしてくれるのはいいと思う。 けど学習障壁高過ぎとも思う。 : デフォルトの名無しさん [] 2018/03/25(日) 01:43:12.83:U5SlEUJl Nodeのメモリーリークはみんな苦戦してるみたいだけど。 : デフォルトの名無しさん [sage] 2018/03/25(日) 01:51:32.26:8WSI8ZZL Nodeは全部グローバル変数にするのが悪いんや : デフォルトの名無しさん [] 2018/03/25(日) 02:05:56.01:BP/bYIjb , Nodeはよくメモリリークが問題とか言われてるけど原因はそこなの? グローバル変数を平気で乱用するほど皆バカなの? イベントハンドラの解除忘れとかじゃないの? : デフォルトの名無しさん [] 2018/03/25(日) 02:09:49.87:U5SlEUJl エラーにならないことが多すぎる。 忖度しすぎ言語の称号を与えたい。 : デフォルトの名無しさん [] 2018/03/25(日) 02:10:42.60:U5SlEUJl Nodeの問題点を一言でいえば、Javascript。 : デフォルトの名無しさん [] 2018/03/25(日) 03:01:01.34:wEE2niQx コストかけられるなら規模の大小関わらず大アリだよ : 174 [sage] 2018/03/25(日) 08:53:35.72:tMB2K7Zl ありがと。ちょっと試してみる。 ぽんこつWEB系IT土方だよ。javaとjavascriptくらいしかやってない。 javaでは走ってるGCがrustだと黒魔術によって必要ないっていう認識やで。 そうか。大アリか。ありがと。 : デフォルトの名無しさん [sage] 2018/03/25(日) 09:17:52.51:2sZ1RJA+ イベントハンドラ解除は他言語でも明示的に書く必要ある だけどクラスのデストラクタ・ファイナライザに書いといて各スコープで変数の寿命をちゃんと管理するコーディングの基本を守ってるだけで問題ないと言える ここはRAII使えるC++やRustが最強、なんせ何も書かなくてもスコープから外れたらそれぞれデストラクタ・Dropを呼んでくれるんだし 次点でC#のDisposeとusingなどの専用構文、Javaはtry..finallyあるから及第点 でもグローバル変数だとそんなの働かない、プログラマが仕様とにらめっこしながらリークに気を使わないといけない、めんどい : デフォルトの名無しさん [sage] 2018/03/25(日) 10:33:04.02:BP/bYIjb Cさえやったことないんじゃメモリ管理について説明するのは難しいな ざっくり説明すると C言語ではmalloc, freeを使ってプログラマが自力でメモリ管理を行う よって、きちんとメモリ管理ができていない場合は実行時にバグになる。 対して、GCありの言語は実行時にGCがバックグラウンドで動いて自動でメモリ管理を行ってくれる メモリ管理は実行時に自動で行われるのでプログラマは基本的にメモリ管理を行う必要はない ただし、GCの挙動をしっかり理解していないとメモリリークのバグになることもある そして、Rustはメモリ管理をコンパイラがコンパイル時に行う つまり、メモリ管理ができていない場合はコンパイルエラーになる コンパイラが正しくメモリ管理を行うためにRustには 所有権・借用・ライフタイムというルールが存在する このルールを守らないとコンパイルが通らないため絶対に理解する必要があるが このルールをきちんと理解してコードを書くのがなかなかに難しい それと、このルールを完璧に遵守しようとすると循環参照さえ出来なくなる なので循環参照等の少し複雑なことをやろうとした場合は 標準ライブラリとして用意されているRc, Weak, RefCell等の使い方も知る必要がある 因みにRc, Weak, RefCellの中身ではunsafeコードが多用されていている unsafeコードの中ではルールを無視できる代わりにコンパイラがチェックを行わない つまり、unsafeの中だけはCと同じように自力でメモリ管理する必要がある だからこの言語は他言語と比べて学習コストが圧倒的に高い : デフォルトの名無しさん [sage] 2018/03/25(日) 10:35:30.44:BP/bYIjb 「ざっくり」と言っておきながら気付けばそれなりの長文になってるな… : デフォルトの名無しさん [] 2018/03/25(日) 10:49:11.63:130KAu9X なんで聞かれてもいないことを長文で答えるのか プログラマにはありがちだけど : デフォルトの名無しさん [sage] 2018/03/25(日) 10:51:36.32:GhdgZmXr >なので循環参照等の少し複雑なことをやろうとした場合は >標準ライブラリとして用意されているRc, Weak, RefCell等の使い方も知る必要がある >因みにRc, Weak, RefCellの中身ではunsafeコードが多用されていている >unsafeコードの中ではルールを無視できる代わりにコンパイラがチェックを行わない >つまり、unsafeの中だけはCと同じように自力でメモリ管理する必要がある >だからこの言語は他言語と比べて学習コストが圧倒的に高い この辺考えたら結局C++で、できる限りスマートポインタ使うってのと大して変わらなくね? て話になりそう。 : デフォルトの名無しさん [sage] 2018/03/25(日) 11:32:48.19:MQLp3NAe ライブラリの中でunsafe使ってたからといって、そのライブラリ使用したコード全てがunsafeになる訳でなし 気にし過ぎじゃないか : デフォルトの名無しさん [sage] 2018/03/25(日) 12:12:47.18:2sZ1RJA+ いやなるで unsafe内Cのリソース確保を呼んだなら同じく解放処理も呼ばないとリークする : デフォルトの名無しさん [sage] 2018/03/25(日) 12:21:31.84:5S2tvSOb いや、ならねーよ 内部でunsafe使ってるからunsafeになるなら関数にもunsafeつけて前提条件つけないといけない : 186 [sage] 2018/03/25(日) 13:06:55.41:tMB2K7Zl 今やってるサンプル問題はその辺り無しでも解ける難易度だから rustのつらみがイマイチ分かってないんだよね。 何個か前のスレにあった木構造っていうのをやってみればええんやろか。 難し過ぎるやろか。 こんなぽんこつに教えてくれてるんやからありがたい話やで。 : デフォルトの名無しさん [] 2018/03/25(日) 13:44:46.25:NiWlHtrf JavaもC#みたいにできるようになりました… どうせみんなKotlinとかScala使うからいいけど : デフォルトの名無しさん [] 2018/03/25(日) 14:35:43.51:wEE2niQx webか目的ならwebアプリを作るべきでしょう 使いもしないデータ構造やアルゴリズムなんて判断基準にならないでしょ : デフォルトの名無しさん [] 2018/03/25(日) 14:38:16.26:ndR60cG+ java10出たってどうせ現場じゃ使わせてくれないんだろ? んで未だにstrutsとかオレオレフレームワーク強要するんだろ? : デフォルトの名無しさん [sage] 2018/03/25(日) 16:39:02.18:I+zotbSu WindowsでRust使っている人ってほとんどいないんだろうな rustupを実行する前にVC++をインスコしろとか書いてあるし : デフォルトの名無しさん [sage] 2018/03/26(月) 00:20:12.61:D5Wnx0sa 生で動かす組み込み系の情報収集をしているんだけど半年前よりはだいぶ増えた感があるけどまだまだ少ないなぁ 特にRust以外のツールとCargoの連携について説明されている記事はほとんど見あたらない ローレベルではユーザーツールやアセンブラ、リンカとビルドシステムの連携は必須だからな Cargo前提のRustだとシェルスクリプトやバッチファイルでビルドというわけにも行かないし(それらに必要な情報も同じく少ない) 既成のCライブラリやクレートを使う記事はちらほらあるけどそれらが使えないケースだと参考にならない このへんで役立ちそうな記事って今のところこれくらいしか見つけられていない ttps://nkon.github.io/Rust-embedded/ もっともRust抜きでも最近は高レベルのフレームワークを使っていたりOS上での動作だったりするからローレベルの情報は減少傾向だけど : デフォルトの名無しさん [] 2018/03/26(月) 01:29:55.31:TdhbSc50 「業務でRustを書きたいエンジニア募集!」みたいだよ ttps://www.wantedly.com/projects/97207 : デフォルトの名無しさん [] 2018/03/26(月) 01:31:01.61:TdhbSc50 ごめん、募集終了してたわw : デフォルトの名無しさん [] 2018/03/27(火) 09:28:53.61:OlyQwcXt 集まったのかな?それとも応募が無かったか。 どちらにせよ気概は応援する : デフォルトの名無しさん [sage] 2018/03/27(火) 09:38:34.01:e5+YaH9t 会社的にゲームのサーバーサイドかな C++からの乗り換えならビルド時間の削減が一番効果あるかもね : デフォルトの名無しさん [sage] 2018/03/27(火) 13:51:08.35:7OwU1Hvz ニコ生は、Rust で、各サーバーに分かれているシステムを、 統合しようとしているらしい Rust, Elixir は注目されてる : デフォルトの名無しさん [sage] 2018/03/27(火) 14:06:18.97:k3vzHZG7 rustでおもちゃのOS書いてる(た)んだけどローレベルな部分にも適してるみたいなことを謳ってる割にcargoがほんとクソなんだよなぁ : デフォルトの名無しさん [] 2018/03/27(火) 21:01:56.04:14Lqu+tl またcargoがクソって話か…別にそれほど使いづらいとは思わないんだけど… (使い方に関する情報が少ないという意味で使いづらいという意見なら分かるんだけど…) どこら辺がクソと思ってて、どうなってれば満足なわけ? なんだか実現不可能なくらい賢いツールを「ないものねだり」してるように聞こえるんだよね… というわけで、実在するツールで最も理想に近いツール(もちろん他言語のパッケージ管理ツール)の例を挙げてくれる? : デフォルトの名無しさん [] 2018/03/27(火) 21:18:04.54:IpDwkilL Rustのwebフレームワークでなんとなく一番使えそうなRocketとかいうのがnightlyでしか動かない : デフォルトの名無しさん [sage] 2018/03/27(火) 21:25:14.30:OIszsbzb 組み込みでパッケージ管理ツールの需要はあまり無いはず。ビルド管理ツールの方が重要 しかも言語の垣根を越えて使いやすい奴 システムプログラミング用を謳っているんだから 「Cやアセンブラで生で動くプログラムを書いたことがあるんだけどRustに興味がある」 位の人を対象にしたチュートリアル的な物が欲しいな。もちろんある程度実践的な内容で そういえば調べている中でLチカのウェイトにビジーループを使っているコーディング例がいくつも出てきた 自分はタイマと割り込みを使うのが普通だと思っていたんだけど(勉強するという意味でも)最近は違うのかな? : デフォルトの名無しさん [] 2018/03/27(火) 21:43:56.53:14Lqu+tl ビルド管理ツールでも良いから、とりあえず、使いやすいツールの例を挙げて欲しんだけど… 「〇〇というツールがあって、××が出来て便利。それに比べてcargoは…」みたいなさぁ… 「使いやすい奴」とだけ書かれても「使いやすい」の基準がさっぱり分からん : デフォルトの名無しさん [206] 2018/03/27(火) 22:08:40.15:H//ajCL2 ごく普通に使うぶんには俺もディスるほどではないとは思うよ ただOS書いたりみたいな部分では不満を感じることが多かった 例えばビルドスクリプトとしてのbuild.rsがビルド前のいわゆるpreしかなくてpost的な使い方が出来ないとか カスタムターゲット書くにしてもlinker-flavorとかそれに対応するリンカに渡されるオプションの一部とかがコンパイラのソースにハードコーディングされてるんで制約ばっかで柔軟性が低いとか : デフォルトの名無しさん [] 2018/03/27(火) 22:34:11.89:Ua6DMzOD rustのwebフレームワークはもうひと世代先のが出るまで本命は決まらなそうだ : デフォルトの名無しさん [] 2018/03/27(火) 22:46:58.51:OlyQwcXt > (使い方に関する情報が少ないという意味で使いづらいという意見なら分かるんだけど…) 自分で書いてるじゃん : デフォルトの名無しさん [] 2018/03/27(火) 23:03:51.77:YR27q37n タイマ割り込みは環境依存度が高いから、サンプルとして適さないんじゃね? : デフォルトの名無しさん [sage] 2018/03/28(水) 00:25:40.40:3jPJHf2H nightlyすぐコンパイルエラーになるよね まあだからnightlyなんだけど : デフォルトの名無しさん [sage] 2018/03/28(水) 01:12:15.92:hFbEShK4 hyperは非同期シングルスレッド対応してるけど、他のFWはまだ未対応でマルチスレッドベースばかりだね ironは今はメンテされてないし、とりあえず業務で簡単なAPIサーバー構築時にはrocket使ったわ : デフォルトの名無しさん [sage] 2018/03/28(水) 03:08:49.62:qhZoJVUP ニコニコみたいな机の上でのお勉強しかできないバカばっか揃えた結果 クソみたいなサービスしか作れない技術力のない会社がRust使う選択したなら、 逆神でRustつかわないのが正しい選択って公になったようなもんだな : 205 [sage] 2018/03/28(水) 04:23:23.13:0was1dJs でも、ドワンゴ江添は「C++11/14 コア言語、江添 亮、2015」と言う、 神の書を書いてるから、一流の伝道師! : デフォルトの名無しさん [] 2018/03/28(水) 05:59:49.92:LrPDAu7h tokioがマルチスレッドを標準にしてくみたいだからhyperもマルチスレッドに寄ってくんじゃないかなあ : デフォルトの名無しさん [] 2018/03/28(水) 10:37:01.81:22eQoYIf RustのORMのDieselってテストに対応してますか? 開発用DB使うタイプ、モック使うタイプどちらでもいいんですけど… : デフォルトの名無しさん [sage] 2018/03/28(水) 15:21:56.48:nwQzoMBM 典型的な机の上のお勉強だけ得意な人やん : デフォルトの名無しさん [] 2018/03/28(水) 15:23:57.64:YfKkqZvW ほんそれ : デフォルトの名無しさん [sage] 2018/03/28(水) 20:51:49.08:cpZrmao1 てか奴はコード書いてないこと宣言してるしな。 そゆとこは正直で良いと思うが、プログラマとしてはクソだな。 : デフォルトの名無しさん [sage] 2018/03/29(木) 02:06:06.79:0KWZ/AkQ 組込み開発者におくるMISRA‐C:2004―C言語利用の高信頼化ガイド、MISRA‐C研究会、2006 これは、日本の大企業から、猛者を数十人集めて、 欧州委員会に問い合わせながら作った本 C++11/14 コア言語、江添 亮、2015 それに比べて、江添はたった一人で作ったのじゃないか? 超人的すぎるやろw : デフォルトの名無しさん [sage] 2018/03/29(木) 14:52:09.30:x+HX/uzd 江添ってイケダハヤトみたいな胡散臭い人たちと同じカテゴリーなんでしょ 実力はないけど口が達者だから信者が多い 芸人向き そのうち討論番組とかでテレビ出演とかしちゃいそう : デフォルトの名無しさん [sage] 2018/03/29(木) 18:00:19.09:Ys835l/3 江添は標準化委員会の一人だからな 一人で書けるのは確かに並大抵じゃないだろうが 一人で書けなきゃそれはそれでヤバイ : デフォルトの名無しさん [sage] 2018/03/29(木) 21:37:04.51:pNK8aPzF まあ次世代の池田信夫といっていいんじゃないかな。 : デフォルトの名無しさん [sage] 2018/03/30(金) 00:24:21.95:IN/IsR4/ やまもといちろう、清水亮、津田大介あたりだな : デフォルトの名無しさん [sage] 2018/03/30(金) 00:59:44.92:YF4CHAi5 やまもといちろうのしったか芸は凄いw : デフォルトの名無しさん [sage] 2018/03/30(金) 12:34:16.32:IN/IsR4/ ニコ生ってたしかRust使ってるんだっけ? Rust江添の今後に期待 : デフォルトの名無しさん [sage] 2018/03/30(金) 14:08:12.82:82JQsmMo だからニコニコごときが選択したってことは使えん技術ってことだろ ネトフリとかが採用したら考えるが : デフォルトの名無しさん [sage] 2018/03/30(金) 14:10:51.95:82JQsmMo Rust採用事例 ニコニコ←負け組 火狐←負け組 Mercurial←負け組 泥箱←個人情報お漏らし 採用する気にもならん事例のオンパレード : デフォルトの名無しさん [sage] 2018/03/30(金) 14:13:18.93:82JQsmMo 顔本もテストプロジェクトかなんかで使ってた記憶があるが、 そういやここもお漏らししたっけな : デフォルトの名無しさん [sage] 2018/03/30(金) 14:14:12.95:XUq2/9hV 【悲報】Packt出版より出る予定だった Rust Blueprints が出版取消されました。 : デフォルトの名無しさん [sage] 2018/03/30(金) 14:16:08.36:82JQsmMo 資源の無駄だからな。当然の結果 : デフォルトの名無しさん [] 2018/03/30(金) 18:11:51.70:2SqbRzP3 また来たのかよ : デフォルトの名無しさん [sage] 2018/03/30(金) 18:23:23.77:IN/IsR4/ Rustってキラーアプリあんの? : デフォルトの名無しさん [sage] 2018/03/30(金) 18:37:40.08:ksXSxVO9 ErlangとScalaもディスってるんだ ttps://github.com/dwango : デフォルトの名無しさん [sage] 2018/03/30(金) 21:33:06.96:35t2qqJ0 セキュアプログラミングとかいって締め付ければ締め付けるほど インシデントが増えるw 本質はそういうところじゃないってことがよくわかる。 : デフォルトの名無しさん [] 2018/03/30(金) 22:18:13.79:lc3QGxh+ じゃあ本質はどこにあるんだよ? 自分には分からないからってだけが理由でそうじゃないと決めつけるのは勝手だけど… : デフォルトの名無しさん [sage] 2018/03/30(金) 22:28:24.32:35t2qqJ0 開発効率やランタイム速度を気にしなけりゃ既存の言語でも安全に作るなんてのは 簡単なんだよ。 そのトレードオフをどれだけ解決できるかが本質。 : デフォルトの名無しさん [sage] 2018/03/30(金) 23:00:52.49:OoWw053g 開発効率やランタイム速度を気にしないことが本質? : デフォルトの名無しさん [sage] 2018/03/30(金) 23:58:55.57:dpNxQVLw おぉっとここで日本語の分からないバカが登場〜 : デフォルトの名無しさん [] 2018/03/31(土) 00:49:07.16:q0ZQKkqb 安全に作るのが簡単ねぇ… 簡単だったらGoogleがバグ(セキュリティホール)の発見に 多額の報奨金を出すのはおかしいとか考えないのかね? 君にとっての"安全"の基準が分からないんだが… : デフォルトの名無しさん [sage] 2018/03/31(土) 07:55:27.02:9+5jHACw グーグルにとってみたらそっちのがよっぽど楽、つまり開発効率がいいからでしょ。 理解不足の人がいるようなのでもう一度言うけどトレードオフの問題だっつーの。 : デフォルトの名無しさん [sage] 2018/03/31(土) 09:33:15.73:q0ZQKkqb 極論だな 開発効率を無視するなら安全に作ることは可能ってことだろ 開発効率を無視するってのはつまり開発期間が無限大と仮定するってことだぞ 開発期間が無限大でなければ安全に作ることが不可能なら それは実質、安全に作ることは不可能って事と同義だからな 結局言いたいことは"開発効率・ランタイム速度"と"安全"がトレードオフの関係にあり、 それをいかにして解決するかが本質ってことだろ で、その"解決"が何を指すのかっていう一番肝心な部分が抜け落ちてるぞ "トレードオフの均衡点をどこに置くべきかを探る"のが解決なのか それとも"トレードオフの関係自体を壊そうとする"ことが解決なのか あるいはその両方か あと、Googleは開発効率を優先して報奨金を出してるわけじゃないだろ そもそもリリースした後のものは開発ではなく保守なんだから あれは完璧に安全なものを作るのは不可能だから苦肉の策として行ってるだけ てゆーか、ツッコミどころが多すぎるんですけど… : デフォルトの名無しさん [sage] 2018/03/31(土) 10:29:59.95:E8qTp8R8 もちろん Erlangは状態中途半端にブッ壊すだけだし Scalaなんてもはや新規で使うところどこにもねえだろ : デフォルトの名無しさん [sage] 2018/03/31(土) 10:36:16.41:E8qTp8R8 バカじゃね? Rustがその解決になってるかって観点がどこにもない トレードオフの落としどころとしてRustにはなんの実績もないし、CやC++と周辺ツール合わせた環境に勝る性質もなにもないって言ってんの ValgrindやCoverityみたいなツールに比べた優位性あるの? ただ書きにくい言語がひとつ増えただけじゃん : デフォルトの名無しさん [sage] 2018/03/31(土) 11:03:18.18:wLUR9MAo お前が元気で帰ってきてくれてよかったよ 職は見つからなかったんだね : デフォルトの名無しさん [] 2018/03/31(土) 11:12:27.60:q0ZQKkqb "解決"が何を指すのかを聞いているのにそれには答えずに Rustは"解決"していないとだけ答える… 会話が噛み合わない…どうすればいいのか… : デフォルトの名無しさん [] 2018/03/31(土) 11:39:17.36:q0ZQKkqb 実績がないって言うのもFirefoxの一部は既にRustで置き換えられてるのに 君がそれを実績として認めないってだけだろ ブラウザを一から実装しなおして、それが大きなバグを出すこともなく Chromeと同レベルの実行速度を実現してるってだけでも充分に実績として認められると思うが。 Chromeに比べればシェアは少ないがそれでも世界中で数百万という人間がFirefoxを使ってるんだぞ : デフォルトの名無しさん [] 2018/03/31(土) 11:41:20.61:D1vbg0pQ そこは何億人ものって言わなきゃw : デフォルトの名無しさん [] 2018/03/31(土) 11:43:55.45:q0ZQKkqb 数百万はかなり適当に発言した 実際はどれくらいなんだろうな? : デフォルトの名無しさん [sage] 2018/03/31(土) 11:46:03.70:0efq0OdT 3億人くらい? : デフォルトの名無しさん [sage] 2018/03/31(土) 13:24:58.66:yT2VCMNA Javaなんて30億のデバイスで動いてんだぞ! : デフォルトの名無しさん [sage] 2018/03/31(土) 14:14:44.03:ApL2p8x0 せめてchromeと同じシェア取ってから言って欲しいもんだ : デフォルトの名無しさん [sage] 2018/03/31(土) 14:32:47.34 Write once, run anywhere なんていう開発プラットフォームがあるらしい Electronって言うんだって : デフォルトの名無しさん [sage] 2018/03/31(土) 14:34:08.51:NaIZlBM+ native modules はい論破。 : デフォルトの名無しさん [sage] 2018/03/31(土) 15:26:33.15:tztr1ir/ chromeメモリ食いすぎなのでfirefox59に乗り換えたよ : デフォルトの名無しさん [] 2018/03/31(土) 15:27:50.28:q0ZQKkqb "せめて"でChromeと同じシェアなのかよ。ハードル高すぎだろ そんなのどんな言語使ったって数年じゃ無理だわ もちろんChromeと同じC++を使って作り直しても無理だわ どうやら君の御眼鏡にかなう言語はこの世のどこにも無さそうだな : デフォルトの名無しさん [sage] 2018/03/31(土) 16:10:13.77:ApL2p8x0 Rustで書き直したら安全で高速なプログラムが簡単に書けるんだろう? ならchromeのシェアを奪うのなんてすぐじゃないか 本当にRustにそれだけの性能があるなら : デフォルトの名無しさん [] 2018/03/31(土) 16:22:16.04:D1vbg0pQ Chromeは昔のIEと同じくらい危険なブラウザになってきたよな。 やはり危険度はシェアで決まるんじゃないだろか。 そもそもあれだけ複雑で奇怪で大きなソフトウェアにバグが無いわけないし。 いやもちろん、HaskellやJavaやJavascriptのような安全な言語で書かれていれば一切のバグは無いんだろうけどさ。 : デフォルトの名無しさん [] 2018/03/31(土) 16:22:59.14:D1vbg0pQ ここRustスレだったかw じゃあ、Rustのような安全な言語で書かれてればバグは無いんだろうけどさ。 : デフォルトの名無しさん [] 2018/03/31(土) 16:25:50.13:D1vbg0pQ Chromeの開発者がRustで書き直したいと書き込んでるのは見たことあるけどな。 でも、書き直すったってそもそも発祥がKHTMLだしな。 Googleは出来損ないのブルドーザーみたいなもんだ。 : デフォルトの名無しさん [sage] 2018/03/31(土) 16:37:28.69:ApL2p8x0 HaskellはともかくJSやJavaは安全なのかね? まあスレチだが : デフォルトの名無しさん [] 2018/03/31(土) 16:52:02.69:q0ZQKkqb >Rustで書き直したら安全で高速なプログラムが簡単に書けるんだろう? 誰もそんなこと一言も言ってないだろ。勝手に曲解しないでほしいな C++よりはRustの方が設計が良いってだけ そう言ったら次は"C++より良いって言うんならC++で書かれてるChromeより Rustで書かれたFirefoxのシェアが少ないのはおかしい"って言い出すんだろ 既存資産はC++のほうが何十倍もある。資産が少ないってのはそれだけで不利だ 言語設計はダメだが資産の多いC++か、言語設計は良いが資産の少ないRustか、 どちらを選ぶかは人によって意見が変わるところだろう 資産の問題に関しては時間が解決してくれるかもしれない…希望的観測に過ぎないが… >ならchromeのシェアを奪うのなんてすぐじゃないか すぐなわけないだろ。 ブラウザを選ぶ基準なんて数え切れないほど色んな要素が絡み合ってるんだよ その中には"なんとなく、みんなが使ってるから"なんてしょうもない理由も多く存在する 全ての人間が合理的な判断を下すわけじゃないんだ。そんな単純に事が運ぶわけがない だから、ツッコミどころが多すぎるんだって… : デフォルトの名無しさん [] 2018/03/31(土) 16:58:36.90:D1vbg0pQ Boostはオナニーし過ぎのグロマンコみたいなもんだが使わざるを得ないって話か。 : デフォルトの名無しさん [] 2018/03/31(土) 17:01:22.81:D1vbg0pQ Javascriptのお勉強をした結果、GCは何の解決にもならないことが分かった。 むしろ危険。 ライブラリがリークについて何も考えていないんだもん。 : デフォルトの名無しさん [] 2018/03/31(土) 17:02:54.36:D1vbg0pQ なんでだろ〜なんでだろ〜と検索した結果、あの有名な企業のブログで解決策を発見。 曰く、ライブラリがリークするようにできてるから、一定時間で再起動とか。 そんなのが多すぎた。 : デフォルトの名無しさん [sage] 2018/03/31(土) 18:56:11.43:ApL2p8x0 ぐだぐだ言い訳してるのを総合すると 「モノは良いけど使い手が少ないせいで流行らない」ってか? 使い手が少ないのはものが悪いってことだろ。残念でした : デフォルトの名無しさん [sage] 2018/03/31(土) 18:58:11.61:ApL2p8x0 Go言語見てみろ モノはいろいろと微妙だがCやC++と比べて強烈な利点があるから、リリースがRustと同じか遅いくらいなのに流行ってるだろ Rustはどうなんですかねえ? : デフォルトの名無しさん [] 2018/03/31(土) 20:27:06.89:PqROMcrp つまりPHPが最良の言語ってわけか : デフォルトの名無しさん [] 2018/03/31(土) 20:42:09.87:oZoT3jkC わざわざRustスレまできて延々粘着アンチとかかまってほしい爺さんみたいで見苦しいからやめろ : デフォルトの名無しさん [] 2018/03/31(土) 20:45:48.24:D1vbg0pQ かまってほしい爺さんに、かまってほしい爺さんみたいとかやめてくんない? あんた人の心あんの? : デフォルトの名無しさん [sage] 2018/03/31(土) 21:14:47.08 かま爺 : デフォルトの名無しさん [sage] 2018/03/31(土) 21:55:49.66:dXOBbz7B いくらモノがクソでも流行ってるって一点で考慮に入れる必要はあるし、 逆にどんなに良いものでも流行ってなければ選外になるのは事実よね PHPが流行ってるのは時代的に残念な背景があるとはいえ、 Goが流行るのは明確な理由があるんじゃないか? : デフォルトの名無しさん [] 2018/03/31(土) 22:11:12.54:7TTU0i1a それについて掘り下げる意義はないと思いますよ : デフォルトの名無しさん [sage] 2018/03/31(土) 22:16:22.26:dXOBbz7B まあ確かにないな せめて日本語で本が出る程度には流行って欲しいが…… 今のRustに足りないものってなんだろうな RubyのRailsみたいに、ある領域のキラーフレームワークみたいなのが欲しいが Rustがそれを作れる領域って今のところWebAssemblyくらいしかないんだよな しかもそのWebAssemblyも、GCが入ったらGoとの立ち位置が逆転するし : デフォルトの名無しさん [] 2018/04/01(日) 07:31:46.82:QnuEAtVo それはgoが流行っている理由を語るのと同義ではないですか : デフォルトの名無しさん [sage] 2018/04/01(日) 07:36:32.82:nW/fPqLD Goこそブランドの影響だと思うけどなw Googleって会社も初期メンバーこそキレキレの人間だったのかもしれんが ブランドイメージが先行しだしたころから そこにはそこに憧れて集っちゃった凡人がうじゃうじゃだということを忘れてはならない : デフォルトの名無しさん [sage] 2018/04/01(日) 08:59:01.17:aM38sJCa rustは ゼロ抽象化みたいな機能ブランドに憧れて集まっちゃった凡人がうじゃうじゃだよね : デフォルトの名無しさん [sage] 2018/04/01(日) 09:02:36.32:N/JoH072 機能ブランドってなに?中身ないの? : デフォルトの名無しさん [sage] 2018/04/01(日) 09:31:03.82:r/SQKbFj ないよ。あったらもっと人集まってるよ : デフォルトの名無しさん [sage] 2018/04/01(日) 09:41:07.81:r/SQKbFj RustはCやC++を書くのに疲れた人のための言語という位置付けなのに Rustを書ける奴は別にCやC++書くのに困らないって イカれた習得難易度に作ってしまったのがそもそもの失敗 Rustのターゲットは別にRustなんて使わなくてもいいかそもそもRustを使えないかの二択 ドンピシャなターゲットが存在しないから流行りようがない : デフォルトの名無しさん [] 2018/04/01(日) 09:51:30.48:QnuEAtVo rustを書ける人でcやc++で困らないと結論した人が沢山いるということですか? : デフォルトの名無しさん [] 2018/04/01(日) 10:13:31.75:9alzQdGn >RustはCやC++を書くのに疲れた人のための言語という位置付け これは事実だけど、C++より簡単に書けることを目指して作ったわけじゃなくて ポインタ周りのバグ(特にバッファオーバーフローなどが原因のセキュリティホール) に悩まされてきた人間のために作られた言語だからな セキュリティを考えてない奴からすれば無用な長物にしか見えないんだろう : デフォルトの名無しさん [] 2018/04/01(日) 10:21:58.94:9alzQdGn 訂正:無用な長物→無用の長物 : デフォルトの名無しさん [sage] 2018/04/01(日) 11:14:37.02:r/SQKbFj Rustできちんとコード書ける実力あるなら CやC++でもセキュリティホール作り込まないプログラミングできるだろって話な : デフォルトの名無しさん [sage] 2018/04/01(日) 11:17:57.70:FEh/C/xR てか「一応読み書きはできるようにはなったけどC/C++の落とし穴を知らないせいで危ないコード書いてる初心者」こそRustやるべきだよな みたいな がなんでエラーになるのか理解できないって事はC/C++でもvectorへの参照を何も考えないで使い回してたりするって事だし : デフォルトの名無しさん [sage] 2018/04/01(日) 11:21:05.39:r/SQKbFj ああそれはあるかもな 実用というより教育目的な言語としては確かにアリだ : デフォルトの名無しさん [] 2018/04/01(日) 11:36:26.93:9alzQdGn >Rustできちんとコード書ける実力あるなら >CやC++でもセキュリティホール作り込まないプログラミングできるだろって話な 出来ないからC++ではValgrindとかのツール使ってチェックしてるんだろ じゃあツールを必ず使うようにすればいいじゃんって話にはなるが… : デフォルトの名無しさん [] 2018/04/01(日) 11:39:14.42:9alzQdGn そもそもValgrindみたいなメモリリークをチェックする類のツールって Rustのボローチェッカと比べるとどの程度信用できるのかね? : デフォルトの名無しさん [sage] 2018/04/01(日) 11:47:08.80:jrLYAFkE あまり信用出来ない スマートポインタを(適切に)使ってればそもそも解放忘れはしないし 配列に確保しっぱなし系のリークは検知してくれない : デフォルトの名無しさん [] 2018/04/01(日) 11:55:47.66:9alzQdGn >あまり信用できない >配列に確保しっぱなし系のリークは検知してくれない そっか、やっぱりRustのボローチェッカには劣るか >スマートポインタを(適切に)使ってればそもそも解放忘れはしない 「適切に」ってところがポイントだよね たとえ熟練のC++erがどれだけ注意してコーディングしてたって 「うっかりミス」はいつか絶対に起きるんだし : デフォルトの名無しさん [sage] 2018/04/01(日) 12:42:04.82 C++でボローチェッカをエミュレーションできないの? : デフォルトの名無しさん [sage] 2018/04/01(日) 12:44:43.78:BOTWSFOl C++ちゃんとかけるならRustも楽勝でしょ。 : デフォルトの名無しさん [] 2018/04/01(日) 13:57:47.26:QnuEAtVo できないよ、人間だもの : デフォルトの名無しさん [sage] 2018/04/01(日) 14:16:47.69:1ng3UkJB valgrind使うと実行時間とてつもなく遅くなるし実行時間長いプログラムだと辛い ASANでも2倍くらい遅くなるので辛いのは同じ コンパイル時に静的に分かる方が嬉しいし、たまにしか通らないパスもチェックされるのでより安全 : デフォルトの名無しさん [sage] 2018/04/01(日) 19:22:10.86:aM38sJCa まあ結局unsafe部分はチェックできないけどね。 その場合でもコンパイル通ったからと主張しだす輩で溢れてる。 : デフォルトの名無しさん [] 2018/04/01(日) 19:26:04.60:QnuEAtVo どこに溢れてるの? : デフォルトの名無しさん [sage] 2018/04/01(日) 19:51:17.12:Vaw8NqEv 脳内 : デフォルトの名無しさん [sage] 2018/04/01(日) 21:39:06.35:N/JoH072 C++20では生ポが非推奨になるらしいけど unsafeはチェックできないのと同様に意味がないですね : デフォルトの名無しさん [sage] 2018/04/01(日) 21:53:26.11:aM38sJCa 他言語呼んでもメモリリーク起きないとかこのスレでも喚いてた輩がいたわけだが。 drop trait を明示的に書かなっきゃならんとかそいつら全く理解してないだろ。 : デフォルトの名無しさん [] 2018/04/01(日) 21:55:16.18:9alzQdGn 非推奨になるってどういうこと? rustみたいにunsafeブロックみたいなのを導入するってこと? C++は基本的にはCとの互換があるから無理だと思ってたんだけど… : デフォルトの名無しさん [] 2018/04/02(月) 11:44:35.64:z3JOGYz+ 生ポインタ使えることがC++の唯一のメリットなのに それを非推奨にするなら別の言語使ったほうがマシだろ : デフォルトの名無しさん [sage] 2018/04/03(火) 12:33:46.66:GZlQK3q7 RustがC++に実用面で勝ってることなんかある? : デフォルトの名無しさん [sage] 2018/04/03(火) 13:06:14.98:cmHjEB2c 勝っているかどうかは知らんが cargo/crates.io相当のものがないから 新規アプリをC++で書く気はしなくなってしまった。 もしかして最近は便利になってたりするんだろうか。 : デフォルトの名無しさん [sage] 2018/04/03(火) 17:54:07.91:lesCWZwY 全称命題にするからすぐ反論される : デフォルトの名無しさん [] 2018/04/03(火) 21:15:38.01:zqNShNDp ペチパーのわしでも書けるのが勝ってる : デフォルトの名無しさん [sage] 2018/04/03(火) 21:18:30.15:BzNmSsTz しかしインスタンスを変に共有しなけりゃ解放タイミングを いちいち気にしなくていいって発想は面白い。 : デフォルトの名無しさん [] 2018/04/03(火) 23:40:54.16:K5huRztI いや、それ当たり前のことだから。 : デフォルトの名無しさん [sage] 2018/04/04(水) 00:15:13.34:e/ecM7t7 RustでWebブラウザ作ってる人いるね ttps://twitter.com/uint256_t/status/952818644433555456 : デフォルトの名無しさん [sage] 2018/04/07(土) 01:03:26.54:T+RwBbo7 参照カウントガベージコレクションにもスマートポインタにも興味ないrust信者すごいね : デフォルトの名無しさん [sage] 2018/04/07(土) 06:53:26.51:k/xupSTU GCに興味ないのはともかく BoxとかRcとかモロにスマートポインタだから興味ないとか以前の問題なんだが? : デフォルトの名無しさん [sage] 2018/04/07(土) 07:02:17.22:sb7KGbUH というかなんで今になって参照カウンタGCなんて超素朴なGC実装を引き合いに出すのかが分からん Goですらそんなもん使ってねえぞ : デフォルトの名無しさん [sage] 2018/04/07(土) 07:10:17.71:sb7KGbUH ……まさかとは思うがC++のshared_ptrのことを指して参照カウントGCと称してないよな? RustではRcとかArcがそれに該当するから、この文脈でも完全に的はずれになるが : デフォルトの名無しさん [sage] 2018/04/10(火) 11:37:36.43:pRwunYlM Swiftは参照カウント方式のGC採用していたような気がするが ARCってやつ : デフォルトの名無しさん [] 2018/04/12(木) 01:27:42.33:JdbozTc/ 久しぶりに見に来たらアンチが帰ってきてるじゃん。 せっかくだから、おれも反論レスを書き込むことにする。 : デフォルトの名無しさん [] 2018/04/12(木) 01:28:00.22:JdbozTc/ こんなこと言っちゃってる時点でセキュリティに気を使ってないのバレバレだよね セキュリティ関係に詳しくなくて分からないんなら素直に分からないって言いなよ : デフォルトの名無しさん [] 2018/04/12(木) 01:28:37.08:JdbozTc/ unsafeなんてC FFIしようとか考えない限りあまり使うことないよ tokio-coreとかhyperとかhtml5everとかのソースコード見てきなよ unsafe使ってる箇所なんて10箇所あるかないかってところだから。 コード全域に気を配らなきゃならないのか、たった10箇所程度に気を付けてれば良いのか、 どちらが楽(安全)なのかは火を見るよりも明らかだよね : デフォルトの名無しさん [] 2018/04/12(木) 01:30:08.73:JdbozTc/ これに関しては自分が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トレイト使って一体何する気だったのか…? : デフォルトの名無しさん [] 2018/04/12(木) 01:30:27.15:JdbozTc/ Rustのアンチするのは一向に構わんが、せめて嘘をつくのはやめようね。 : デフォルトの名無しさん [sage] 2018/04/12(木) 03:23:54.50:XYZqcSuW C FFIとやらを使うためにはRustの知識だけでなくCの知識も必要 Rustだけ学べばいいなんてことはない : デフォルトの名無しさん [sage] 2018/04/12(木) 06:41:03.77:1NMGlh89 cの関数呼ぶんだから当然だろ : デフォルトの名無しさん [sage] 2018/04/12(木) 09:05:15.80:IekpLPdE Rustで確保したリソースをCに渡す場合は確かにdropいらないけど、 C側で確保したリソースについては必要では? Cから何かハンドルが帰ってきて最後にCでcloseするパターン。 : デフォルトの名無しさん [sage] 2018/04/12(木) 11:33:57.87:6MGFsFO1 Rust側でDropしないためにDropの実装を上書きする必要があるということ? : デフォルトの名無しさん [sage] 2018/04/12(木) 12:23:34.05:IekpLPdE Cの関数内で確保したリソースは 当然Rustデフォルトのdrop実装では解放されないから 自分でdrop実装して解放する必要がある、という話。 : デフォルトの名無しさん [] 2018/04/12(木) 13:14:59.37:JdbozTc/ は「メモリリーク」って書いてあるからヒープに確保されたメモリの解放に関しては Dropトレイトを実装する必要性なんか全く無いってことをで説明してる。 の言ってる「リソース」ってのはファイルとかソケットとかのことを言ってるんだよね そっちはメモリリークとはまた別の話になるので状況によるんじゃないかな… ただ、OSが提供してるリソース(ファイルやソケット)くらいなら、File, TcpListenerとかには Windows用とUnix用にそれぞれinto_raw_xxx(), from_raw_xxx(), as_raw_xxx()とかが用意されてるから それを使えば後のことはFile, TcpListenerのdrop実装に任せてしまって問題ないはず。 C側(ライブラリ)で独自に実装されてるリソース(close等の後処理が必要な実装)の場合は close部分をRustのDropトレイトの実装として移植する必要はあるだろうね。 (もう一度言うけど、自分は普段はC FFIを使わないから詳しくはないので、間違ってたら指摘して下さい) : デフォルトの名無しさん [sage] 2018/04/12(木) 15:11:14.26:UiqgOhpn メモリリークに限定するとしても CでmallocしたポインタがRustに渡ってきた場合 Rustが勝手に解放するわけにはいかないから drop実装してfreeを呼ぶ必要がある。 : デフォルトの名無しさん [sage] 2018/04/12(木) 17:39:03.84:JdbozTc/ ちょっと言ってる意味がわからない Cでmallocされたものであっても所有権ごと渡されていれば解放の責任はRustにある ていうか、Rust側で勝手に解放しちゃいけないと言ってるのに Dropトレイトの実装でfreeしたらやっぱりRust側で勝手に解放しちゃってるじゃん 言ってること矛盾してない? CとRustで型のメモリレイアウトが一致してればあとはBox型に任せるだけだよ Cから渡されてくるポインタの型のメモリレイアウトが公開されていなければ (つまりvoidポインタだったりオペーク構造体(オペークポインタ)だったなら)話は別だけど。 その場合はRustはハンドルをもらうだけでいかなる操作(メモリの解放(free)も含む)もC FFIでC側に 頼むしかない(メモリレイアウトがわからない限りはRust側ではどうあがいても何も出来ない)ので Dropトレイト実装してdrop時にC側にメモリの解放処理も頼む必要がある : デフォルトの名無しさん [sage] 2018/04/12(木) 18:12:43.26:B4Vmqq7H FFIの場合jemallocかシステムのmallocかの違い問題になることありそう : デフォルトの名無しさん [sage] 2018/04/12(木) 21:02:25.76:EBEN0Rpp >その場合はRustはハンドルをもらうだけでいかなる操作(メモリの解放(free)も含む)もC FFIでC側に >頼むしかない(メモリレイアウトがわからない限りはRust側ではどうあがいても何も出来ない)ので >Dropトレイト実装してdrop時にC側にメモリの解放処理も頼む必要がある だからDropトレイトを意識的に実装せにゃならんと始めから言ってるだろうに。 このタイプは絶対仕事でモメるわ。 : デフォルトの名無しさん [] 2018/04/12(木) 22:43:32.09:JdbozTc/ だったら「Rust側からはメモリレイアウトが分からないようなvoidポインタや オペーク構造体がC側から渡された場合は」という前提条件をきちんと書け。 条件を何も書かずに「drop trait を明示的に書かなきゃならん」とだけ書かれれば 全ての場合で必要だと言っているようにしか見えない。 あと、で「全く」と書いてしまったことは悪かったと思っている を書いてる時点は上記のような可能性に気づいていなかった…申し訳ない。 お前みたいに「特定の条件下でしか適用されないこと」に対して条件を書かずに結論だけ書いて 「自分はきちんと伝えた」とか思っちゃってるキチガイとの仕事とかこっちの方から願い下げだから。 : デフォルトの名無しさん [] 2018/04/12(木) 22:50:55.21:JdbozTc/ そこは自分も同じことを思った。 mallocとjemallocの実装の中身とか見たことないけど、混在してても問題ないのかな? : デフォルトの名無しさん [] 2018/04/12(木) 22:54:07.42:JdbozTc/ 訂正 → : デフォルトの名無しさん [sage] 2018/04/12(木) 23:08:05.77:9OO0KoJN 「勝手に」の部分が曖昧だったので正確に書くと、 Rustはメモリ解放すべきタイミングは知っている (すなわちCから受け取ったポインタのlifetimeが切れたとき) Rustはメモリ解放の方法は知らない (なぜならCのmallocがシステムのmallocなのかjemallocなのか別の何かなのか知るすべがないから) なので方法について教えるためにdropを実装する。 (このdropでCのfreeを呼べば、mallocと同じメモリアロケータが保証される) ちなみにメモリアロケータ間の互換性はないので、 例えばlibcでmallocしてjemallocでfreeすると多分SEGVする。 コード例は以下でもどうぞ。 ttps://stackoverflow.com/questions/31486519/how-do-i-free-a-char-allocated-via-ffi-in-rust : デフォルトの名無しさん [] 2018/04/12(木) 23:35:57.15:JdbozTc/ マジか…mallocとjemallocは混在できないのか… そうなると、C側でmallocされてれば必ずC側にfreeしてもらうしかないということか… じゃあ今まで俺が書いた方法じゃダメなケースもあるじゃん…すまん。 自分の無知を晒す羽目にはなったが、むしろ今知れてよかったわ。 でも、そうなると新たな疑問が… : デフォルトの名無しさん [sage] 2018/04/13(金) 00:47:00.07:AYGoZS+y jemallocじゃなくてシステムのアロケーター使うオプションだかfeatureだか使えば良いかな : 337 [] 2018/04/13(金) 01:19:50.99:rxyiIXLh 間違いの指摘と情報提供のお礼言うの忘れてた。Thanks! あと、これってRustでのC FFI に限った話じゃないよね? C同士でさえもアロケータに何を使ってるか次第で同じ問題が発生する。 Cは時々使ってたのに(しかも仕事で)これを知らなかったのはヤバいな… 恐らく今まではたまたま同じアロケータを使ってたから問題が起きてなかっただけか… 戻り値で文字列(char *)が来た時とかこっちで勝手にfreeしてたぞ…(^_^;) まあ、どのアロケータ使ってるかなんて誰も気にも留めてなかったし大丈夫だろうけど、 今後は気を付けないとな… : デフォルトの名無しさん [] 2018/04/13(金) 01:26:39.63:V+3RqgGh すべての有用なライブラリがRust製にならない限り Rustだけを学べばよいという状況は訪れずCやC++の習得も必須 : デフォルトの名無しさん [sage] 2018/04/13(金) 02:09:57.24:zBD4nIN6 どういたしまして。 C同士の場合は普通glibcへの動的リンクだし LD_PRELOADとかでjemallocなんかに差し替えても プログラム全体で差し替わるから特に問題にはならないかと。 もしメモリアロケータを静的リンクしたライブラリとかを使っていればまずいはず。 ただそういう場合はリソースハンドルっぽいAPIになりがちなので そのままfreeしようとは思わないかもしれない。 : デフォルトの名無しさん [sage] 2018/04/13(金) 02:17:49.88:I2PL3qG3 そりゃそうだろ、なにいってんだ : デフォルトの名無しさん [sage] 2018/04/13(金) 02:33:17.17:nqEsOLBj やくに立たねー結局cか。rustって趣味だな。 : デフォルトの名無しさん [] 2018/04/13(金) 04:00:10.77:V+3RqgGh C/C++だけ覚える or RustとC/C++を覚える 学習コスト高すぎRust : デフォルトの名無しさん [sage] 2018/04/13(金) 10:22:17.48:w0WUHq34 趣味でモジラの栄養やるとかどんなドマゾだよ : デフォルトの名無しさん [sage] 2018/04/13(金) 10:26:05.50:w0WUHq34 今の会話見るだけでもRustがいかに欠陥言語かわかるのに それでもRust使うって言うんだからなあ 全部C/C++で書く方が遥かに効率いいしバグも出んわ : デフォルトの名無しさん [sage] 2018/04/13(金) 11:29:35.51:EHHg9a+/ C覚えるの必須当たり前ってんなら構文もっとC系に寄せれば良かったのに。 : デフォルトの名無しさん [sage] 2018/04/13(金) 12:06:18.44:ybbP8EF+ 今までの流れからその結論は極端すぎるだろ もう少し工夫しろ : デフォルトの名無しさん [sage] 2018/04/13(金) 12:27:54.41:zH6rmEat いつのまにか、FFI使うことが前提になってる流れって、rustをdisりたい勢の必死さがうかがえて、ある意味、面白い。 : デフォルトの名無しさん [sage] 2018/04/13(金) 12:52:00.31:Lj3R2dXy CのfreeはNULLなら何もしないと保証されてるけど 解放済みアドレスへのfreeはセグフォ発生するぞ : デフォルトの名無しさん [sage] 2018/04/13(金) 13:00:11.55:w0WUHq34 Cの資産に寄生しないとろくなもん作れないのに そのCとの連携部分が腐ってるってことじゃん 使いもんにならねえって評価は妥当だと思うが? それともPure Rustでまともなもん作れるつもりか? : デフォルトの名無しさん [sage] 2018/04/13(金) 17:38:51.06:l4JsQkL9 まずまともなもんを先に定義してくれ : デフォルトの名無しさん [sage] 2018/04/13(金) 18:09:45.57:Z44eD8et バグらない 動く 実用的 上記3点の実績がある : デフォルトの名無しさん [sage] 2018/04/13(金) 18:37:13.42:rxyiIXLh 実用的・実積も曖昧だな どの程度を実用的で実積があると呼ぶのか具体例を提示してくれ 突き詰めていくと「バグらない」も程度によりけりだしな Excelだってバグるときゃバグるし… : デフォルトの名無しさん [sage] 2018/04/13(金) 18:48:56.96:lEd4ahw7 本スレは相変わらず過疎だしまじ終わったなこの言語 : デフォルトの名無しさん [sage] 2018/04/13(金) 19:00:16.55:vyE43Z1D 話に入れないからって「………結局駄目!」ってダサすぎない? : デフォルトの名無しさん [sage] 2018/04/13(金) 19:21:19.79:EHHg9a+/ jsのファミコンエミュレータをrustで実装し直したらパフォーマンス負けたらしいwww : デフォルトの名無しさん [sage] 2018/04/13(金) 19:27:43.59:a8AOaj4F JSに負けるとか草しか生えんなwwwwwww : デフォルトの名無しさん [sage] 2018/04/13(金) 19:31:48.55:a8AOaj4F Linuxくらいバグらないならいいよ : デフォルトの名無しさん [] 2018/04/13(金) 20:22:47.30:rxyiIXLh 噂に尾ひれがつく瞬間を目の当たりにして草 多分これ↓のことだろ ttp://http://blog.bokuweb.me/entry/2018/02/08/101522 "> ttp://blog.bokuweb.me/entry/2018/02/08/101522 誰かC x wasmで書き直してみろよ。きっと似たような結果になるから : デフォルトの名無しさん [sage] 2018/04/13(金) 20:58:47.99:Ek+y1xD6 ,358 ブラウザ JS版 Wasm版 Chrome 63 4.36ms 5.68ms Firefox 58 5.76ms 3.98ms Safari 11 9.98ms 4.21ms う〜ん草しか生えんね 草草草の草ァ!だね : デフォルトの名無しさん [sage] 2018/04/13(金) 21:29:03.20:a8AOaj4F wasmじゃなくてRustと比べてから言えよ : デフォルトの名無しさん [sage] 2018/04/13(金) 21:40:19.55:Ek+y1xD6 草しか生えんわwww : デフォルトの名無しさん [sage] 2018/04/13(金) 22:58:07.23:LXloKsM4 まあメモリの管理モデルが違う言語同士でやりとりすれば 色々苦労するのは当たり前なんだよね。 それなのに「rustは勝手に解放してくれる」とか言い張っちゃう信者が有害な訳だよ。 rustが悪いというよりか、こういう馬鹿が多いところが問題。 : デフォルトの名無しさん [sage] 2018/04/13(金) 23:04:17.07:bso+BPDq Haskellは副作用が無いとか参照透過性があるって言った時に C FFIを持ち出して反論するのと同様の不毛さを感じる : デフォルトの名無しさん [sage] 2018/04/14(土) 07:00:49.94:xdB8fLqn 不毛?現実によくあることなのにね。。 言語の一番下ではアセンブラが動いてるんだから、そことどう調和もしくは隠蔽させるかってのは コンピュータ言語にとって本質でしょうが。 : デフォルトの名無しさん [sage] 2018/04/14(土) 07:18:52.94:S65yHOqM は?何で一番下が機械語じゃなくてアセンブラなの馬鹿なの? : デフォルトの名無しさん [sage] 2018/04/14(土) 09:16:33.44:/jFvD9M/ コンピュータ言語w : デフォルトの名無しさん [sage] 2018/04/14(土) 11:34:49.77:+NzeE6vg アセンブラと機械語は1:1で訳せるから… : デフォルトの名無しさん [sage] 2018/04/14(土) 11:47:39.37:oZ68B8i3 アセンブリやろ : デフォルトの名無しさん [sage] 2018/04/14(土) 13:58:04.39:dXnZwWyG 結局Rustはサーバ向けでもコマンドツール向けでもGUI向けでも組み込み向けでもない って事実はほんと覆らんよ : デフォルトの名無しさん [sage] 2018/04/14(土) 14:12:11.55:9z5cq9ls 話に入れないからって「………結局駄目!」ってダサすぎない? : デフォルトの名無しさん [sage] 2018/04/14(土) 14:55:11.55:42ccGSN6 jsのファミコンエミュレータをrustで実装し直したらパフォーマンス負けたらしいwww : デフォルトの名無しさん [sage] 2018/04/14(土) 15:21:13.70:TDyE7icd 悔しかったら反論してみたらぁ? : デフォルトの名無しさん [sage] 2018/04/14(土) 15:23:55.88:xdB8fLqn メモリ管理みたいな重要なことについてデララメ振りまいて、 「理解しない奴がrust批判してる」とか言い出してる方が恥ずいわ。 : デフォルトの名無しさん [sage] 2018/04/14(土) 15:34:36.03:TDyE7icd 上の流れ素直に読んでも、 メモリ管理も全部C側で完結させるのが一番いいって結論にしかならんぞ? Rustのいいところなんぞ皆無だ : デフォルトの名無しさん [sage] 2018/04/14(土) 15:44:33.95:TDyE7icd というかコンパイラにメモリ管理任せるのが無理だろ。FFIのためにいちいちDrop定義するとか非効率でしかない メモリ管理はGCに任せるか完全手動にするかの二択なのに、無理矢理そこにヘンテコリンなソリューションもどき持ち込んで混乱引き起こしてるだけじゃん : デフォルトの名無しさん [sage] 2018/04/14(土) 15:50:41.81:TDyE7icd Rustの提案するエセソリューションは機械語のレベルと相性が悪い CやC++のほうがまだまともなアプローチしてる : デフォルトの名無しさん [sage] 2018/04/14(土) 15:53:50.88:LmbQudMt うおっ! ここにきてまさかのRAIIを否定し始めるとか予想外すぎたわ! お前C++のスマポってなにか知ってる? : デフォルトの名無しさん [sage] 2018/04/14(土) 15:55:07.64:TDyE7icd ほとんどのコンパイラで採用されてない仕様書上にしかない機能なんざ知らんよ : デフォルトの名無しさん [sage] 2018/04/14(土) 15:58:27.76:TDyE7icd 実際混乱引き起こしてるまともじゃない方法なのは上の流れで自明だろ : デフォルトの名無しさん [sage] 2018/04/14(土) 16:02:24.43:LmbQudMt よろしい。そんな君にはJavaがおすすめだ。そっちで元気にやりたまえ。 : デフォルトの名無しさん [sage] 2018/04/14(土) 16:05:01.76:75zALjkM 以前も言われてたけど「ひまわり学級の子が普通の授業に出て暴れてる」って表現が実に的確で草 : デフォルトの名無しさん [sage] 2018/04/14(土) 16:07:01.72:TDyE7icd 間違ったものを間違った奴が流行らせようとしてるんだからそれには「違う」って言っとかないとダメだろ 話にならんと放置したらいずれ手遅れになるほど蔓延する そうならないうちに叩いておくべきなんだよ : デフォルトの名無しさん [sage] 2018/04/14(土) 16:10:39.48:w273LxVR 混乱引き起こしてるのは違いないけどさ 「俺の頭の中で混乱を引き起こしてる」って正確に書こうよ : デフォルトの名無しさん [sage] 2018/04/14(土) 16:11:44.32:TDyE7icd 上のFFI絡みの流れは俺じゃないけど? : デフォルトの名無しさん [sage] 2018/04/14(土) 16:15:30.43:w273LxVR 完全手動でメモリ管理するのは混乱起きないからいいよね〜 : デフォルトの名無しさん [sage] 2018/04/14(土) 16:21:52.10:TDyE7icd コンパイラに丸投げするよりは良いな 混乱しないって意味だとGCが一番だが : デフォルトの名無しさん [sage] 2018/04/14(土) 16:27:01.78:nFvlFlcl 上のやり取りは俺じゃないけど? 散々間違いがあったら指摘してくれって書いてたのがデタラメを振りまいた? 間違いの指摘に礼を言って終えるところに、鳴りを潜めていたアンチがウキウキで「混乱を引き起こしたRust!!!」と喚き立てた このスレでも何回もやってる流れじゃんクソダセー : デフォルトの名無しさん [sage] 2018/04/14(土) 16:38:44.62:TDyE7icd はいはい内ゲバですね ほんとくだらん言語 : デフォルトの名無しさん [sage] 2018/04/14(土) 16:43:14.18:nFvlFlcl 内にいるつもりなんだお前 : デフォルトの名無しさん [sage] 2018/04/14(土) 16:44:00.69:nFvlFlcl インタプリタへの丸投げ>完全手動でメモリ管理>コンパイラへの丸投げ 実行開始までの混乱しない順だなどう考えても : デフォルトの名無しさん [sage] 2018/04/14(土) 16:47:43.87:TDyE7icd 外から内ゲバ眺めてやっぱこの言語くだらねって思ってるだけ C++の(後方互換維持のための苦しい構文追加以外)なにが悪いんだか : デフォルトの名無しさん [sage] 2018/04/14(土) 17:00:21.56:LmbQudMt スマポが何かを知らないヤツがC++を語り始めたぞ… : デフォルトの名無しさん [sage] 2018/04/14(土) 17:00:54.52:nFvlFlcl ていうかこれ知りたい Rustの何が(例:MIR)どう機械語との相性が悪く それに対してC/C++のまともなアプローチの具体例を教えて : デフォルトの名無しさん [sage] 2018/04/14(土) 17:03:21.15:LmbQudMt 代弁してやろう。 「自力で頑張る」 以上 : デフォルトの名無しさん [sage] 2018/04/14(土) 17:17:27.65:TDyE7icd 結局解放処理は自分で書くんだろ? メモリ上の確保のされ方はコンパイラにはわからないんだから 結局中途半端にしか自動化できないから無意味で、それなら自分で管理した方が結果的に良いって話 : デフォルトの名無しさん [sage] 2018/04/14(土) 17:24:46.46:Syz4zWn3 解放の仕方を実装したら、後はコードのどの場所で何回確保しても自動で解放される事が分かってないっぽいね : デフォルトの名無しさん [sage] 2018/04/14(土) 17:31:29.95:LmbQudMt だってRAIIもスマポも知らないんだもん。しょうがないじゃん : デフォルトの名無しさん [sage] 2018/04/14(土) 17:34:05.03:nFvlFlcl C FFIとかの一部分で解放処理を書くんだよ お前が言ってる通り「手動」だしお前の好きな「手動」でよかったな 中途半端にとは言っても機能するし「無意味」と言い切るには典型すぎる誤謬 でにまともに答えてくれる?どう相性が悪いの?どんなアプローチ? : デフォルトの名無しさん [sage] 2018/04/14(土) 17:50:25.61:TDyE7icd 今の説明でわからんなら一生わからんよ : デフォルトの名無しさん [sage] 2018/04/14(土) 17:56:25.03:LmbQudMt あっ! 逃げたww : デフォルトの名無しさん [sage] 2018/04/14(土) 18:04:42.44:nFvlFlcl Q. Rustの何がどう機械語との相性が悪く、それに対してC/C++のまともなアプローチの具体例を教えて A. 結局中途半端にしか自動化できないから無意味で、それなら自分で管理した方が結果的に良い Rustアンチ君との最後のやり取りがこれなのか…?悲しい : デフォルトの名無しさん [sage] 2018/04/14(土) 23:45:32.28:lczq2IdA いい加減ワッチョイスレに移動しようぜ : デフォルトの名無しさん [] 2018/04/14(土) 23:54:45.22:LmbQudMt 実際問題ワッチョイは過疎る : デフォルトの名無しさん [sage] 2018/04/15(日) 03:16:54.39:8wseEBgk YOUがワッチョイのほうで話題ageれば : デフォルトの名無しさん [sage] 2018/04/15(日) 09:21:32.45:eccSQZbu ここはネタスレだからこれでいいよ まともな話題ないし : デフォルトの名無しさん [sage] 2018/04/15(日) 10:16:53.40:pCFT19cL ワッチョイは運営が管理を放棄するための口実 : デフォルトの名無しさん [] 2018/04/15(日) 10:33:02.44:E1b18XLI ワッチョイあった方が良い派です : デフォルトの名無しさん [sage] 2018/04/15(日) 11:32:28.09:fK7P6CAL いちおう指摘しておくと以下にわっちょい付きのスレはある。 ttps://mevius.5ch.net/test/read.cgi/tech/1514107621/l50 : デフォルトの名無しさん [sage] 2018/04/15(日) 14:26:16.16:WuS7UUJE そう思うんなら勝手にそっちでやってくれ いちいちこっちに宣伝しないでよろしい : デフォルトの名無しさん [sage] 2018/04/15(日) 14:57:22.17:eccSQZbu せめてスレ立てたやつくらいはあっち書き込んでくれよ。 ワッチョイスレ(本スレ)には俺しかいない。 : デフォルトの名無しさん [sage] 2018/04/15(日) 15:05:21.27:6SePuRaV 人が集まってる(勝ち残った)方が本スレ : デフォルトの名無しさん [sage] 2018/04/15(日) 16:17:50.87:vLrea5+q アンチスレの方が人多いっていい加減認めようぜ : デフォルトの名無しさん [] 2018/04/15(日) 20:40:55.33:oxsxYGoa いちおうアンチスレも存在するんだぜ ttp://mevius.5ch.net/test/read.cgi/tech/1509028624/ : デフォルトの名無しさん [sage] 2018/04/15(日) 21:13:20.51:0BluVJwA 大元に言わないで、ここでグダってる時点で説得力無いけどな。 : デフォルトの名無しさん [sage] 2018/04/16(月) 09:16:50.73:fU1aO3Gb 英語で説明する気力がないんだろ : デフォルトの名無しさん [sage] 2018/04/21(土) 15:59:38.16:GAOK2TS0 それもあるが日本語の記事でrustマンセーしてるやつは大抵バカっていうのもある。 : デフォルトの名無しさん [sage] 2018/04/21(土) 18:22:00.01:u/5OPPGG 会話になってないし 時間おいたところでに答えなくてもいいことにはならないからね : デフォルトの名無しさん [sage] 2018/04/22(日) 12:28:50.40:fDht+F2y もう答えた : デフォルトの名無しさん [] 2018/04/22(日) 15:34:45.59:4jEar62+ 自分から「機械語のレベルと相性が悪い()」と言ってるのに 「具体的にはどういうこと?()」と聞かれて、 その返答()に機械語のことが一切出てこないのは流石に草 : デフォルトの名無しさん [sage] 2018/04/22(日) 20:55:11.63:jr6NU+gW 英語で説明する以前に日本語でのコミュニケーションに難ありなのか 日本語ネイティブじゃない方なのかな : デフォルトの名無しさん [sage] 2018/04/22(日) 22:58:46.99:lYpO0H1A 機械語との相性のいいC,C++のソリューションって、機械語バイト列を関数ポインタにキャストして呼び出すとかじゃないの? そんなことRustでできるようになって欲しくはないな。 : デフォルトの名無しさん [sage] 2018/04/22(日) 23:13:49.80:KagmHCpN できるよ 推奨してないけど : デフォルトの名無しさん [sage] 2018/04/23(月) 00:45:39.39:Fi1E6adA JITとかそういう用途? : デフォルトの名無しさん [sage] 2018/04/24(火) 00:26:37.67:IHcLIR+Z rustで書かれたjitなかったっけ? ところでrustで書かれたウィルスとかマルウェアとかないよな。 goならMiraiで使われてたけど。 : デフォルトの名無しさん [sage] 2018/04/27(金) 21:30:01.00:Tx6nrcMv C/C++の弱い型付けによるキャストは機械語と関係ないだろ Rustは強い型付けしか原則許してなくてunsafe使えば弱い型付けも出来るけど好んでする必要性はないよねー プログラミング言語と機械語の間はC/C++もRustもLLVM IRで仲介されてるから、どっちかだけが相性良いとかなさそう LLVM IRじゃなくGas仲介するとこう違うんだよ、くらいの反論を期待してみるテスト : デフォルトの名無しさん [sage] 2018/04/27(金) 23:30:19.86:AfC0onIC フロントエンドの話してるのに、バックエンドがLLVMだから違いなどない!は、おかしいのでは? そんなこと言い始めたら、言語仕様の優劣など語るに値しないということになってしまう。 : デフォルトの名無しさん [sage] 2018/04/27(金) 23:43:23.39:MR18u0zM Any使ったdowncastはunsafeじゃないけどどういうコードの話してんの? : デフォルトの名無しさん [sage] 2018/04/28(土) 16:19:50.16:6S6rcsk3 このRustのチャットみたいなのって公式のもの? ttps://gitter.im/rust-lang/rust : デフォルトの名無しさん [sage] 2018/05/01(火) 14:27:18.61:riKaEN0n rustでフォントをレンダリングしたいのですがfont-rsやfreetypeなどの設定逆引き的なサイトってありませんかね? チュートリアル的なサイトは見つかるのですがそこから突っ込んで使用したい場合に参考になりそうな情報がみあたらないです レンダリングされる線を任意の幅にしたいです 極細フォントを使って線幅1ピクセル×2=計2ピクセルでアンチエイリアス無しみたいな感じの結果が欲しいです : デフォルトの名無しさん [sage] 2018/05/01(火) 14:37:54.06:riKaEN0n 具体例を補足します 出力が2値の場合に普通にレンダリングした物を減色してしまうと線幅の不均一になったりディザが掛かってしまって 表示品質が極端に悪くなってしまうのでそれを防止したいです たとえば「田」みたいな字をレンダリングして減色するとある線は1ピクセルだけど別の線は2ピクセルになってしまったり 交わるところに不要なドットが出現したりします それを全て任意の線幅に統一したいです : デフォルトの名無しさん [sage] 2018/05/01(火) 14:58:24.50:8Qa5eQjM ここはアンチスレなので、まともな質問はslackへどうぞ : デフォルトの名無しさん [sage] 2018/05/02(水) 04:26:15.76 えぇ。。 : デフォルトの名無しさん [sage] 2018/05/02(水) 04:45:47.66:JZRYx+4v ttps://rust-jp.herokuapp.com/ rustのslack ↓のサービス使ってオープンにすればよい ttp://slackarchive.io 👀 Rock54: Caution(BBR-MD5:b95868ef2c0ed5e765a4d10ada4cf289) : デフォルトの名無しさん [sage] 2018/05/02(水) 11:08:56.76:C2OG+VM0 Rustってカルトみたいなもんだよな 実態はスカスカで教祖の金儲けに使われてるだけなのに、信者は正義と信じて疑わない辺り slackなんて内輪の集会に逃げ続けて表の評価に曝されることを避けてる時点でまともなプログラミング言語じゃない : デフォルトの名無しさん [sage] 2018/05/02(水) 11:13:07.30:9TOinEtH Rustの提案するエセソリューションは機械語のレベルと相性が悪い CやC++のほうがまだまともなアプローチしてる : デフォルトの名無しさん [sage] 2018/05/02(水) 11:39:02.32:C2OG+VM0 お前はさっさとその答え教えてくれよ Rust批判するにしてもコンピュータの知識皆無すぎるわ。批判側がお前と同じ知的レベルに見られるのがクソ : デフォルトの名無しさん [sage] 2018/05/02(水) 11:55:03.24:9TOinEtH へー今日はたくさん書き込むつもりなんだ : デフォルトの名無しさん [sage] 2018/05/02(水) 12:31:00.89:ZVrvL9q8 こちらはまともなアンチとキチガイアンチのスレになります。 : デフォルトの名無しさん [sage] 2018/05/02(水) 12:53:31.01:vKwn9vOL いやどっちもキチガイだから : デフォルトの名無しさん [sage] 2018/05/02(水) 12:58:01.18:vKwn9vOL 表の評価(2ch)wwww : デフォルトの名無しさん [sage] 2018/05/02(水) 20:38:46.50:Ua9w95BC 少しずつRustの研究が出てきたね ttps://arxiv.org/abs/1804.10806 : デフォルトの名無しさん [sage] 2018/05/03(木) 01:12:08.40:Sirn7AO1 win10 rs4にしてからrustdocが遅い。 rs4にMeltdown/Spectre対応のパッチも含まれてたんだろうか。 : デフォルトの名無しさん [] 2018/05/03(木) 02:54:28.33:Rj4yBmSF Rustを導入している企業・組織の一覧をご覧ください ttps://www.rust-lang.org/ja-JP/friends.html : デフォルトの名無しさん [sage] 2018/05/03(木) 08:55:22.99:4wWpk2nD Windows defenderが動いてるとかでは : デフォルトの名無しさん [sage] 2018/05/03(木) 12:04:38.70:y3R7schb 少なくとも5chではgoよりrustの方が盛り上がってるな。 : デフォルトの名無しさん [sage] 2018/05/08(火) 01:41:55.63:jFUdx6HI impl traitはよ : デフォルトの名無しさん [sage] 2018/05/08(火) 21:29:46.74:RGDg6ogT パフォーマンスとマルチスレッドを理由にRustを採用という事らしい ttps://logmi.jp/282807 : デフォルトの名無しさん [sage] 2018/05/08(火) 22:15:52.43:W4Ax9FiD ドワンゴといい、ヤバい会社の指標としていいねw : デフォルトの名無しさん [sage] 2018/05/08(火) 22:23:27.27:T0pMALEX 機械語のレベルと相性が悪いしなw : デフォルトの名無しさん [] 2018/05/08(火) 22:26:07.82:EnN/pyur これでもそんな知恵遅れみたなこと言うの? : デフォルトの名無しさん [sage] 2018/05/08(火) 23:31:08.80:W4Ax9FiD 同じリストを他言語でも作ってみたら? どれだけバカなこと言ってるかわかると思うよ。 : デフォルトの名無しさん [] 2018/05/08(火) 23:52:08.90:EnN/pyur ああそりゃ分かるだろうね、是非作ってみたまえよ : デフォルトの名無しさん [sage] 2018/05/09(水) 00:11:01.28:ZcDO5kt6 謳い文句通りの「速度とマルチスレッド」で選んだら後でめんどくさいよ。 MIRの導入もなかなか成果出てないし、同期はセマフォ/ミューテックスしかなくて javaみたいに高レベルから低レベルまで自分で書けるわけじゃないし、 non blocking ioも、lock free collectionもなくて外部ライブラリへの依存度が極めて高いし、 cargo腐ってるせいでrustのtooling絡みのissueが日に日に増えるし。 rustの良いところは言語の部分だからコアな機能使わないなら他言語のほうが良い。 土方の要求には合わないでしょ。 それよりimpl traitまだー? : デフォルトの名無しさん [] 2018/05/09(水) 00:44:09.86:D/4RZNTl 間も無くなんだから静かに待ってなさい : デフォルトの名無しさん [sage] 2018/05/09(水) 08:29:25.33:SINErtCB これってgoでは無理だったんかね? 単純に趣味の問題? : デフォルトの名無しさん [sage] 2018/05/09(水) 13:55:28.84:9bmRNzTn goって言語仕様でマルチスレッドによるデータレースを起こさない仕組みってあるの? 無かったらその部分が大きいのでは? : デフォルトの名無しさん [sage] 2018/05/09(水) 15:04:31.38:bH4TOh4o goはchannel経由にすれば自動的にアトミック mutex部分が隠ぺいされてるので意識する必要が無い : デフォルトの名無しさん [] 2018/05/10(木) 01:52:41.29:8hhZ9q5s むしろrustがなぜチャネル的なもの入れなかったんだ? : デフォルトの名無しさん [sage] 2018/05/10(木) 02:11:20.77:71z1/J2u 標準にも外部crateにもいっぱいあるだろ ライブラリとしてではなく言語仕様としてという意味か? : デフォルトの名無しさん [sage] 2018/05/10(木) 10:12:22.36:sqBEyANZ 言ってることがよくわからんメモリ共有は基本的にmutexみたいな物はついてない気がするけど。基本的にchannel経由で情報交換しない方針にすれば データ競合は防げるって話では? rustってデータ競合がコンパイル時点で防げるって意味がわからん。 そんなことがかのうなん? : デフォルトの名無しさん [sage] 2018/05/10(木) 10:16:06.63:sqBEyANZ X 基本的にchannel経由で情報交換しない方針 ○ 基本的にchannel経由で情報交換する方針 : デフォルトの名無しさん [sage] 2018/05/10(木) 10:17:49.30:sqBEyANZ 詳細はこちら Goでスレッド(goroutine)セーフなプログラムを書くために必ず注意しなければいけない点 ttps://qiita.com/ruiu/items/54f0dbdec0d48082a5b1 : デフォルトの名無しさん [sage] 2018/05/10(木) 13:22:21.00:MOe7VLfi 数十GBのオブジェクト管理は、gc待ちきついからオフヒープでとか、(これ聞いたときよりgcは良くなってる) goroutineで確保したメモリは解放せずgoが管理するから、常駐で同時に大量に走ると解放されないとかはあるみたい。 : デフォルトの名無しさん [sage] 2018/05/10(木) 13:35:12.76:71z1/J2u それが売りの一つなんだから当然出来る 具体的にはこれでも読んでくれ ttps://rust-lang-ja.github.io/the-rust-programming-language-ja/1.6/book/concurrency.html : デフォルトの名無しさん [sage] 2018/05/10(木) 18:25:01.25: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); } : デフォルトの名無しさん [] 2018/05/10(木) 21:37:45.30:r2ZBYv9N Derefを実装した型に対しての*xは*x.deref()の糖衣構文 つまり、&*xは&*x.deref()と同じで、それはつまり、x.deref()と同じ : デフォルトの名無しさん [sage] 2018/05/10(木) 22:16:14.49:0Uo+Yl5e なるほど *x ==x.deref() って言う認識だったのが間違ってたのか ありがとう : デフォルトの名無しさん [sage] 2018/05/12(土) 02:06:23.28:6a2pRrds impl trait来たな : デフォルトの名無しさん [] 2018/05/12(土) 14:27:50.20:CbmhA0Cx きた : デフォルトの名無しさん [sage] 2018/05/14(月) 08:56:23.29:+8ra2A+L 久しぶりにRustやろうと思ったけど公式リファレンスが最新版に追いついてないのな どっかに変更履歴のまとめとか無いのかな : デフォルトの名無しさん [] 2018/05/14(月) 12:00:52.07:fAXXTBeo 公式リファレンスって何のことを指してるんだ? APIリファレンスならきちんと最新版に追従してるし、 チュートリアル(The Book)も2nd Editionがきちんと出てる バージョンアップの追従ならリリースノート見るかRustの公式ブログ見れば大体分かると思う Rustは6週間に1回のハイペースでマイナーバージョンアップ繰り返してるから The Bookのほうは最新版に追いつくこと自体がほぼ不可能だと思うけど (つい最近もimpl traitがstable化されたばっかりだし…) : デフォルトの名無しさん [] 2018/05/14(月) 12:06:29.06:fAXXTBeo 間違えた X ○ : デフォルトの名無しさん [sage] 2018/05/14(月) 21:32:55.87:+8ra2A+L そのimpl traitが気になってまたRustやろうと思ったんだけどね 全機能の索引みたいなのがないと学習効率が落ちる : デフォルトの名無しさん [sage] 2018/05/17(木) 09:49:24.40:iDnHcMfd rustって生産性高い? 安全性が高まって結果的に高くなるということではなくね やっぱでかいプログラムじゃなきゃ使う効果ない? : デフォルトの名無しさん [sage] 2018/05/17(木) 10:44:40.51:eZl7hMvh Javaでnull参照が10億ドル単位の損害と言われてるので RustはJavaより10億ドルほど生産性が高い : デフォルトの名無しさん [sage] 2018/05/17(木) 11:16:01.90:mMzQfbWV まあ、ネタにマジレスになるが、 その論法だと俺の未完成言語は誰もバグを生み出してないので Rustより生産性が高いなw : デフォルトの名無しさん [sage] 2018/05/17(木) 11:48:49.35:UfgM043o 分母分子共にゼロなので計算不能ってやつね。 : デフォルトの名無しさん [sage] 2018/05/17(木) 14:42:41.57:5Q9GbdJl チーム開発に良さそうな気がするけどメンバーのレベルにかなり依存しそう : デフォルトの名無しさん [sage] 2018/05/17(木) 15:12:36.48:xSjwlbqQ 自分がGCなしの言語使ってた時の経験だと、ヌルポより、freeした後にアクセスするバグの方が多かったから、オーナーを一つにするrustはいいと思う。 まあ、objective-cのARCでいいじゃんとも思うけど。 : デフォルトの名無しさん [sage] 2018/05/17(木) 15:31:36.59:eZl7hMvh そこでoptionalですよ こいよ継承クラス、ポリモーフィズムなんて捨ててかかって来い! 実際、null非許容のポインタが欲しい : デフォルトの名無しさん [sage] 2018/05/17(木) 15:59:25.11 誰がヌルポなんか 、ヌルポなんか怖かねぇ! : デフォルトの名無しさん [sage] 2018/05/17(木) 16:39:48.45:l6lckqvi C#だとぬるり : デフォルトの名無しさん [sage] 2018/05/17(木) 19:10:55.29:eQ6djlVW C#の発想元はJavaよってC#もぬるぽ(意味不) : デフォルトの名無しさん [sage] 2018/05/17(木) 23:47:12.62:STJHYINb 1.27.0-nightly (2f2a11dfc 2018-05-16)がregressionしとる。 issueある。待つヨロシ。 ,473 the rust referenceのことじゃね?the bookとは別にあるだろ。 全然追いついてないよアレ。そもそもまだ仕様書がない言語だし。 " best-effort document"って書いてあるでしょ : デフォルトの名無しさん [sage] 2018/05/18(金) 23:04:38.08:e1n+oPRU httpサーバでありかつクライアントであるみたいなプログラム書く場合、現状hyper一択なのかね? acitx-webとか誰か使ってない? : デフォルトの名無しさん [sage] 2018/05/19(土) 02:24:33.88:1CYkmYAx 最初rocketで書いてたけどactix-webで書き直してる 今だとactix-webが一番良い感じだと思う 必要に応じて同期、非同期、アクターモデルと使い分けられるし : デフォルトの名無しさん [sage] 2018/05/19(土) 22:00:56.80:o9r1YzQK 良い感じか。使ってみるか。ありがとう : デフォルトの名無しさん [sage] 2018/05/23(水) 01:20:45.09:RRIpR+v2 ttps://github.com/rust-lang/rfcs/pull/2444 有志「クソ機能入ったのいらねえから消そうぜ」 大勢「いいな!賛成」 独裁開発チーム「もう入ったから消せませーーーーんwwwwww(クローズ&ロック)」 systemdかよって : デフォルトの名無しさん [sage] 2018/05/23(水) 03:14:02.94:V0Z2NuNB もう入ったから消せませんってのは横暴なようにも見えるがしようがないとも思う 一度入れてしまった機能をまた使えなくするとか、それこそ混乱するし… そもそも何故impl trait を引数の位置にも書けるようにしたのかは確かに甚だ疑問ではあるけど… 引数の位置でジェネリクスとトレイト境界じゃなくてimpl trait じゃないとダメなケースとかある? 無いなら、warning出してジェネリクスとトレイト境界に書き直すように促すのが妥当じゃないかな? : デフォルトの名無しさん [sage] 2018/05/23(水) 07:29:53.45:chu47WW7 例があるけどすっきり書きたいみたい ttps://github.com/phaazon/rfcs/blob/undo-universal-impl-trait/text/1951-expand-impl-trait.md : デフォルトの名無しさん [sage] 2018/05/23(水) 10:44:20.66:KWn7zjxF こういうところでマウンティングとらないといけない辺り 言語(笑)開発チームとやらも内情はどうなってることやら : デフォルトの名無しさん [sage] 2018/05/23(水) 11:19:22.58:2AZG2/zg たしかにどっちで書くべきかよくわからんくなった : デフォルトの名無しさん [sage] 2018/05/23(水) 12:46:35.30:wx8WkS/n <T: Trait> foo: T と foo: &Trait との比較で特殊なケースを除き前者の方が効率良いが syntax上後者の方が簡単なので 初心者が誤って後者を使ってしまうケースがあった これを防ぐためにimpl Trait および &dyn Traitを導入し &Traitをdeprecateすることになった : デフォルトの名無しさん [] 2018/05/23(水) 19:22:54.70:Au5e7VGg 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方 役に立つかもしれません グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』 D49IO : デフォルトの名無しさん [sage] 2018/05/23(水) 20:12:10.79:OqqpDSMd もう入ったから消せません は正論 何故クソ機能の進入を許してしまったのか、どうすれば食い止められたのかについて追求すべき : デフォルトの名無しさん [sage] 2018/05/23(水) 21:15:28.51:cEWT5Ura ジェネリクスの型変数って引数と戻り値の型を揃えるとかそういう使い方をすべきであって Traitをimplした型を受け取るという意味ではimpl Traitを使うべきだと思う ただimpl Traitを導入するなら1.0の時点で導入してて欲しかった : デフォルトの名無しさん [sage] 2018/05/23(水) 23:34:44.01:J44hs+nP こういうところでマウンティングとらないといけない辺り 言語(笑)開発チームとやらも内情はどうなってることやら : デフォルトの名無しさん [sage] 2018/05/24(木) 00:25:13.01:XbYocBeq javaのジェネリックスが理解できてないやつが多いだけ。 : デフォルトの名無しさん [] 2018/05/25(金) 02:08:00.91:MJUyxiHQ Rust始まる前に終わったか : デフォルトの名無しさん [sage] 2018/05/25(金) 10:28:02.89:fl2+4CP3 始まる要素が欠片でもあっただろうか : デフォルトの名無しさん [sage] 2018/05/25(金) 10:31:47.59:fl2+4CP3 それはdyn Traitの実装理由であっても、 引数位置のimpl Traitを実装した理由の説明になってない : デフォルトの名無しさん [sage] 2018/05/25(金) 12:05:08.76:2Lpcv/H6 fn foo(a: &dyn Trait) と fn foo<T: Trait>(a: T) では前者の方がlightweightでは : デフォルトの名無しさん [sage] 2018/05/29(火) 19:15:02.85:MDdgGfn5 target/debug 以下に生成されるdepsとかbuildって何なの? goとかにはないよね? gtk-rsだと500MB消費しちゃうんだけど他のプロジェクトで使い回しとか出来ないの? : デフォルトの名無しさん [sage] 2018/05/29(火) 23:04:02.93:R7SeORIn 環境変数CARGO_TARGET_DIRを指定してやれば再利用してくれるよ ただ、vscodeのrustプラグインの何かがこの環境変数を考慮してないんで挙動がおかしくなったことがあるんで注意 : デフォルトの名無しさん [sage] 2018/05/29(火) 23:26:47.02:MDdgGfn5 おお流石に出来たんですね プラグインがおかしくなるのはrls側の問題ですかね🤔 : デフォルトの名無しさん [sage] 2018/05/29(火) 23:29:14.13:TMN/Dqsk Rustと言えばcookpad。 : デフォルトの名無しさん [sage] 2018/05/30(水) 14:08:55.25:EgEwhYIf 最近Rustの話聞かなくなったな : デフォルトの名無しさん [sage] 2018/05/30(水) 18:12:45.66:pSj5bsTP HNはリリースの度に話題になってるけど : デフォルトの名無しさん [sage] 2018/05/31(木) 06:31:41.15:Ao0QiwhU 日本の企業くらいだよ。 rustで書いてまっせっていうバカなアピールするのは。 : デフォルトの名無しさん [sage] 2018/05/31(木) 06:42:55.06:RS4tQXGE まあCloudflareも日本にリージョンあるしな : デフォルトの名無しさん [sage] 2018/05/31(木) 10:37:31.25:QFV8wAla 泥箱って日本企業だっけ : デフォルトの名無しさん [sage] 2018/05/31(木) 15:17:41.00:Rs+XOVpI 日本の企業って凄いんだなー : デフォルトの名無しさん [sage] 2018/05/31(木) 20:32:40.66:ITatAB0P wtftwっていうタイル型WM、設定ファイルまでrustで書くのどうなんだろ 設定ファイルはluaあたりが無難? : デフォルトの名無しさん [sage] 2018/05/31(木) 22:08:10.33:Ao0QiwhU いやもうなかったことにしたがってるじゃんw それなのに変なのに付きまとわれてるっていう。 : デフォルトの名無しさん [sage] 2018/05/31(木) 22:30:50.22:Rs+XOVpI 「なかったことにしたがってる」というソースをプリーズ : デフォルトの名無しさん [sage] 2018/05/31(木) 22:43:00.94:RS4tQXGE Dropboxのbrotliデコンパイラが昨日更新されてたから 24時間以内のホットな情報だ : デフォルトの名無しさん [sage] 2018/05/31(木) 22:43:34.41 Rustが失脚すると得をする組織があるの? どうしてそこまで情熱的にRustを貶すの? : デフォルトの名無しさん [sage] 2018/05/31(木) 22:46:14.56:Qkx1CtmH ざっとコンフィグファイル見たらXMonadのコンフィグよりは理解しやすいように思った xmonad.hsはもっと宣言的に書けて、モナドとか上手く作って見栄えは良くできるんだけど、 馴染みのない演算子(<+>とか)使いまくるんで、よっぽどHaskellに慣れ親しんだ人でないと全容が理解できない 設定ファイルのフォーマットを開発言語と同じにするのはdwmから続くタイル型WMの流儀だし、 思ったより読めていいと思うよ。 : デフォルトの名無しさん [sage] 2018/06/01(金) 00:57:19.91:Lcv3mjW7 前段 モジラとその小判鮫以外の全組織が喜ぶ 後段 技術的にカスなものを貶すのは技術者の義務だろ : デフォルトの名無しさん [] 2018/06/01(金) 01:23:36.92:n6iooPs9 >技術的にカスなものを貶すのは技術者の義務だろ じゃあPHPではなく敢えてRustをdisる理由は? あちらの方が広く使われてるからより害悪だと思うが : デフォルトの名無しさん [sage] 2018/06/01(金) 04:40:22.00:WbqigEkQ ほうほう : デフォルトの名無しさん [sage] 2018/06/01(金) 06:21:30.96:/a7YB1o/ あれを使ってるやつも害悪性は理解してるからな。 こういう技術的にインテリな要素のある言語って信者がとにかく頑なで 実際のプログラムの現場で非常に問題になることが多い。 : デフォルトの名無しさん [] 2018/06/01(金) 07:12:12.64:V5eoRgyy ほーん具体的にどんな問題がおきたの? : デフォルトの名無しさん [sage] 2018/06/01(金) 07:23:19.18:M/qnTWL0 んー例えば Rustの提案するエセソリューションは機械語のレベルと相性が悪い CやC++のほうがまだまともなアプローチしてる : デフォルトの名無しさん [sage] 2018/06/01(金) 08:47:59.46:n6iooPs9 んー例えば コンパイルが通せなくて自尊心が傷ついて自ら会社をやめちゃう問題とか この話どこまで事実か知らないけど仮に本当だったとしても これって言語の問題というよりチームのプログラマの腕を過大評価 もしくは計算に入れてなかったというマネジメントの問題だよね : デフォルトの名無しさん [sage] 2018/06/01(金) 09:23:44.51:vv7FkXWB んー例えば プラズマクラスター付き家電が話に出てきたら今まで黙ってたのに凄い勢いでエセ科学だと解説し出すよね : デフォルトの名無しさん [sage] 2018/06/01(金) 11:58:37.06:HQSTzzds いや、この粘着をクビにするためにRust導入したんでしょ 性格異常だもん : デフォルトの名無しさん [sage] 2018/06/01(金) 17:08:52.31:j7xDfBQ9 老害をふるい落とすために新しい言語を取り入れてるって話? : デフォルトの名無しさん [sage] 2018/06/01(金) 19:16:22.80:q9V9sFRe このフィボナッチ数列も書けないあほ 何度言い返せなくなっても数日後に甦る粘着性 C++で実行時にエラーが出るようなコードを書きまくったのでしょう。性格の悪さと溢れる自尊心から誰の耳も貸さなかったのでしょう。 プログラマーとして生きるよりかは、匿名掲示板で巨悪組織Mozzilaと闘うBBS戦士の方が社会的に良さそう : デフォルトの名無しさん [sage] 2018/06/01(金) 19:29:07.67:M/qnTWL0 たとえばドワンゴとかDropboxとか Rustを採用した企業自体を叩く行為をよくしているよな あれ見るとちょっと辛くなる : デフォルトの名無しさん [] 2018/06/01(金) 20:33:15.28:hus0bbCf 具体的には? : デフォルトの名無しさん [sage] 2018/06/01(金) 22:00:45.35:/a7YB1o/ 例えばここみたいに安全でもなんでもないドヤしたいだけのクソなrustコードが量産されるとか。 ttp://tanakh.jp/posts/2016-12-20-rust-pezy-sc.html : デフォルトの名無しさん [] 2018/06/01(金) 22:44:23.66:hus0bbCf だから具体的はどこが問題なの? : デフォルトの名無しさん [sage] 2018/06/01(金) 22:47:27.38:aoTZOmsj 槍玉にあげる例が1個しかないのがダサ過ぎるわ。しかもその例も対象が特殊だし は「それRustでやる意味がある?」という疑問に全く応えられないのが問題 LLVM IR-> PEZY-SCというコンパイラがあるんだったら、LLVMがバックエンドの他言語でもいいよねって話 それができないなら、LLVM->PEZY-SCは未完成か現実に即してないんじゃねえのって話 : デフォルトの名無しさん [] 2018/06/01(金) 22:57:48.57:hus0bbCf rustでやってみたって記事にrustでやる意味あるの?って疑問が出てくるのが不思議なんだけど rustでも出来た、以外に意味はないでしょう : デフォルトの名無しさん [sage] 2018/06/01(金) 23:37:58.33:RhYZ0Afc 新しいこと覚えられないから焦ってるんじゃね : デフォルトの名無しさん [sage] 2018/06/02(土) 00:12:03.87:LoS19xRX 安全じゃないコード も 書けるってことに価値があるんだろ? C/C++以外の他言語では書くことさえできない。でもC/C++は安全性を売りにはしていない Rustは安全性を売りにしつつ、必要に応じて安全性を捨てる選択もできるということに価値がある で、たまたまその記事が安全性を捨てることが必要な数少ない例の1つだったってだけ : デフォルトの名無しさん [sage] 2018/06/02(土) 08:09:01.38:yQHVvQ0k 安全でもなんでもないって unsafeあるやんけ!危険危険! 前後の文脈一切分からんけどとにかく危なそうなこと書いてあるやんけ! つって叩いてるんだろうなw その手の問いにそいつが素直に答えたこと無いからあきらめよう : デフォルトの名無しさん [sage] 2018/06/02(土) 09:00:03.22:uxIlP8w7 たまたまねw どんだけコード例出しても言い出しそうだなw そもそもコード例が少ない訳で、推進してる奴のコードがそんなもんなら 十分否定的な要素だけどね。 : デフォルトの名無しさん [sage] 2018/06/02(土) 09:25:00.11:yb2DUuBi grep出来ねえのか^^; : デフォルトの名無しさん [] 2018/06/02(土) 09:27:20.96:1kkEW1PU ちょっとrustの記事書いただけで代表的な推進派扱いかよ : デフォルトの名無しさん [sage] 2018/06/02(土) 09:29:46.62:IrGCDZgn お前さんの理屈だと、Rustじゃこんなに危険になる!って事だろ? じゃあ、Rustではそういう危険な書き方しか出来ない!って示さなきゃな。 俺は中立だが、あんまり非論理的なdisりはアンチ=低能と思わせたがってるピエロにしか見えんよ。 : デフォルトの名無しさん [sage] 2018/06/02(土) 09:41:57.37:yb2DUuBi 既に20万行はコードあるからレビューがてら指摘したら喜ばれるよ : デフォルトの名無しさん [sage] 2018/06/02(土) 11:52:56.13:SXqC6st7 ほんとだどこが問題で悪いのか全然書かない 具体的に言及しだすとフィボナッチ数列とか機械語レベルとか、残念なことになるのが自分でもわかってたのか まあ本人が書いた通り「ドヤしたいだけ」とか…なんかな?前もマウンティング取られたとか訴えてたし… : デフォルトの名無しさん [sage] 2018/06/03(日) 21:39:05.60:xPSrrQIy またいつもの、ボロクソにされたらしばらく潜伏してから復活するパターンかな たまには芸風変えたら : デフォルトの名無しさん [sage] 2018/06/04(月) 06:53:30.60:OFCCUtyY Rustの不満は言語仕様やrustcよりcargoやその辺の連携(情報の少なさも含む)にある : デフォルトの名無しさん [sage] 2018/06/04(月) 07:51:33.98:+kVYhEiS 既成のクレートを探すのはcrates.ioになると思うけどライセンスってどうやって調べるんだろ 同様にクレート間の依存関係も判りにくい どちらも一式を落としてきて中身を確認しないと判らないような・・・ Cargoで自動ダウンロードして・・・みたいな使い方をしていると意図せずGPL/LGPLになっていた みたいなライセンス事故が起きそう : デフォルトの名無しさん [sage] 2018/06/04(月) 09:21:50.73:wd+rp+GF $ cargo install cargo-lichking $ cargo lichking check 一先ずlichkingでチェックできるよ : デフォルトの名無しさん [sage] 2018/06/04(月) 09:35:16.99:4FFAt/Kh LGPLのstatic linkとかやめて欲しいよね : デフォルトの名無しさん [sage] 2018/06/04(月) 22:37:59.16:OFCCUtyY えぇー・・・わざわざインストールしないと出来ないのかよ。とりあえずやってみるか 依存関係はどうすりゃいいんだ?no_stdでも使える奴だけ探したいとか : デフォルトの名無しさん [sage] 2018/06/05(火) 01:20:50.84:4vI8haY4 ライセンスをついては、crate名が既知なら、 ttps://crates.io/api/v1/( クレート名) でjson取れるので、そこから再帰的に依存辿れば収集はできそう : デフォルトの名無しさん [sage] 2018/06/05(火) 01:35:07.04:4vI8haY4 no_stdかどうかについては、Cargo.tomlのcategoryパートに"no-std"があるかどうかぐらいしか確認するすべなさそう(2017-2-10に追加されたっぽい)。 皆が皆付けてるとは思えないので、参考程度にしかならないだろうけど。 : デフォルトの名無しさん [sage] 2018/06/06(水) 04:08:38.62:SHaHb3Ap ちょうどいい機会だから、カーゴのギフハブべったり依存をやめて抽象化してほしいわん : デフォルトの名無しさん [sage] 2018/06/06(水) 07:27:41.91:j1CMVtJk は? : デフォルトの名無しさん [sage] 2018/06/06(水) 08:37:47.80:hN7IXoGK crates.ioべったりは分かるけどGitHub依存って何 : デフォルトの名無しさん [sage] 2018/06/06(水) 09:53:27.50:x7s61f1u goと勘違いしてるのでは : デフォルトの名無しさん [sage] 2018/06/09(土) 09:42:43.51:W19N5ngq rustダメじゃん firefoxは言語オタに支配されたのか? 【IT】高速化を進めてアドオンを排除したFirefox、ついにシェアが10%切る★2 ttps://asahi.5ch.net/test/read.cgi/newsplus/1528388348/ : デフォルトの名無しさん [sage] 2018/06/09(土) 10:00:10.77:4+qUC/SZ FirefoxのシェアでRust叩きって前スレでもやったじゃん ttp://mevius.5ch.net/test/read.cgi/tech/1507970294/100- : デフォルトの名無しさん [sage] 2018/06/09(土) 12:47:19.10:Cz/ni8by ? 前やったから何? : デフォルトの名無しさん [] 2018/06/09(土) 13:15:23.42:qABRMkwT なんで筋の通らない批判を平然とするのか不思議 : デフォルトの名無しさん [sage] 2018/06/09(土) 15:26:07.97:4+qUC/SZ ええ…?FFアドオン排除でRustディスは気にならないのか 以前の試みはアドオンとRustを絡めてみた感じだったな ↓のレスをいつものごとく無視し数日潜んでRust叩きを試みていたけど、スレを跨いで同じ材料出すなよ 109 デフォルトの名無しさん sage 2017/11/15(水) 14:21:13.24 ID:FBksKtwj 失敗してるやん Rustなんかで書き直したせいでアドオン全滅してる 114 デフォルトの名無しさん 2017/11/15(水) 14:36:17.78 ID:bBOLEH2G それは設計の段階で従来のアドオンとの互換性の一部を捨てるように仕様変更したからだよ。 firefoxのアドオンは自由度が高すぎるが故に、セキュリティに問題を抱えやすかったし、 アドオン同士が衝突して落ちるとかも結構あったから、そこら辺をChromeと同レベルくらいに制限して、 セキュリティと安定性を取る方向に方針転換した。 仕様が変わってるんだから、Rustで書こうが他の言語で書こうがどっちにしろ従来のアドオンの一部は動かないよ。 : デフォルトの名無しさん [sage] 2018/06/10(日) 00:29:32.38:+hx+JhDk 今回は1週間も我慢できなかったのか ほかに行く場所ないの : デフォルトの名無しさん [sage] 2018/06/10(日) 01:42:55.67:x48+YOhO の話だけど、 はhg使えなかった時代で止まってんじゃないの? : デフォルトの名無しさん [sage] 2018/06/10(日) 09:09:46.77:gHOtKfe5 gitとgithubはちがうよ? : デフォルトの名無しさん [sage] 2018/06/10(日) 09:10:23.63:gHOtKfe5 キチガイ帰ってきてよかった : デフォルトの名無しさん [sage] 2018/06/10(日) 10:06:20.84:flig3pd5 相変わらず宗教じみてんな : デフォルトの名無しさん [sage] 2018/06/16(土) 11:05:45.57:dxp9ohIz 何でio::Errorにファイル名入ってないんだろう? 不便だなーと思ってたけど 検索してみたら、前は入ってたのに1.0リリース前に削除されたんだとさ ttps://internals.rust-lang.org/t/add-filename-information-to-io-error/ : デフォルトの名無しさん [sage] 2018/06/16(土) 13:06:12.19:Om4I19uv 非効率になるのを嫌ったってことみたいですね stdでもつには重すぎるってのは理解はできるけど 確かに不便なんだよなー 自分は結局 ioの関数呼ぶ前にinfo!でログ出すとか 戻ってきたio::Errorをmap_errでPathBuf埋め込んだ自前のErrorに変換するとかしてます : デフォルトの名無しさん [sage] 2018/06/16(土) 18:58:29.98:dxp9ohIz ここで紹介されてる、failureを拡張して let file = File::open(path).with_path(path)?; と書けるようにするのが カッコいいなと思った ttps://github.com/rust-lang-nursery/failure/issues/189 failureは1.0に向けてまだまだ変えていくみたいだし、これ書いた焦げ寿司氏も参加するみたいだから 期待してるわ throw!マクロが標準化したら、?の時みたいにrustプログラムの見た目変わりそう : デフォルトの名無しさん [sage] 2018/06/16(土) 20:35:40.86:unm3Vek/ 2回もpath書くの全然かっこよくないから、少し重くてもなんでもいいから便利なライブラリがあれば使うわ : デフォルトの名無しさん [] 2018/06/16(土) 23:56:34.69:f9DGXpDH トレイトオブジェクトってなんでトレイトオブジェクトって呼ぶん? ようはヒープに動的に作られたストラクトだら? : デフォルトの名無しさん [sage] 2018/06/17(日) 01:17:39.67:TG/aPZPS 何らかのTraitを実装したオブジェクトだから、じゃ駄目なの? 変に勘ぐって誤解してるよ。スタックにある構造体でもトレイトオブジェクトになる : デフォルトの名無しさん [] 2018/06/17(日) 07:51:39.85:p2Sm4Lro うーんここにはそういうニュアンスでは書いてない気がするんだけどなあ ttps://rust-lang-ja.github.io/the-rust-programming-language-ja/1.6/book/trait-objects.html : デフォルトの名無しさん [sage] 2018/06/17(日) 11:48:23.47:an9lNlus traitってなんだよ : デフォルトの名無しさん [sage] 2018/06/17(日) 12:00:53.08:erltHdM+ 特性 : デフォルトの名無しさん [sage] 2018/06/17(日) 12:03:03.50:an9lNlus わかんねえよw : デフォルトの名無しさん [sage] 2018/06/17(日) 14:20:21.15:rd16QG+W traitは写像の集合で本来的には定義域の集合でないものなので、それとして扱う場合を特別にトレイトオブジェクトって呼んでるんじゃないの? : デフォルトの名無しさん [sage] 2018/06/17(日) 14:55:33.49:TG/aPZPS ヒープにある構造体である、とはどこにも書いてないよね 複数の異なる型を同じ関数や構造体で持っておきたいけど、 型が違うからコンパイル時にサイズが決まらないんで困ったねって状況を解決するのがトレイトオブジェクト そういう事態じゃなければfn foo<T: TraitFoo>(obj: T)とかやって型毎に関数をコンパイラに作ってもらうのが普通 : デフォルトの名無しさん [sage] 2018/06/17(日) 15:32:03.62:hewfXZ0r マス科の淡水魚じゃなかったけ : デフォルトの名無しさん [sage] 2018/06/17(日) 15:36:27.65:Wo64nPZg それはトラウト トラウトサーモン。 : デフォルトの名無しさん [] 2018/06/17(日) 20:19:57.60:p2Sm4Lro なんらかのトレイトじゃなくて特定のトレイトを実装したなんらかの型ってことかな : デフォルトの名無しさん [] 2018/06/17(日) 20:38:08.98:JVUiE6fQ D言語の再来と言われるRustには注目しています。 : デフォルトの名無しさん [sage] 2018/06/18(月) 11:09:28.26:LH5G8a9n さすがに「C#とか糞wwこれが俺の考えた最強言語ww」→「結局C#が全部正しかったですサーセンww」で終わったただの中二言語と一緒にするのは失礼 : デフォルトの名無しさん [sage] 2018/06/18(月) 15:38:58.79:/sFO+jYl そうだな。D言語に失礼だ : デフォルトの名無しさん [sage] 2018/06/18(月) 17:49:36.48:fn6n18W4 C#に、な : デフォルトの名無しさん [sage] 2018/06/18(月) 18:41:33.59:MmynirXE まるでD言語が死に絶えたみたいな口振り : デフォルトの名無しさん [sage] 2018/06/18(月) 18:44:27.51:eWM+pHRs え?とっくに死に絶えたでしょ : デフォルトの名無しさん [sage] 2018/06/19(火) 00:05:30.49:wsgBP7Sf 1.0待てなくてもう現行のfailureにどっぷり浸かっとる。 failureはいいぞ! : デフォルトの名無しさん [sage] 2018/06/19(火) 13:49:32.69:77HD0esi D言語は最近顔本コミットを受けて活発化してる Rustは採用企業が全く増えなくなって資金も枯渇 メインコミッタもリンゴのSwiftやらにヘッドハントされて もう将来ないでしょ : デフォルトの名無しさん [sage] 2018/06/19(火) 13:50:33.43:77HD0esi もちろん言語のエコシステムとしての将来がないってだけで、 ライフタイムとかの実装系の先駆としての意義はあったとおもうが : デフォルトの名無しさん [sage] 2018/06/19(火) 15:45:39.61:Es9NuDl6 終わってみればdartの舞の海だったな。 : デフォルトの名無しさん [sage] 2018/06/19(火) 17:08:02.40:menX4d1R なんで急に元力士の名前が出てきたんだ? 二の舞って言いたかったのか? : デフォルトの名無しさん [sage] 2018/06/19(火) 17:13:53.63:TNMX9OjF なんかfailureのissues見ると、現状のstd::errorの設計は失敗作扱いみたいだな それって共通認識なんかな? : デフォルトの名無しさん [sage] 2018/06/19(火) 17:47:33.05:cDjhSbaW Haskellかじってて、Rustに興味出てきたんだけど、なに、廃れつつあるの? : デフォルトの名無しさん [sage] 2018/06/19(火) 18:00:26.05:LBhs/jk2 廃れるもクソも、Rustが世間の注目を浴びたことなど未だかつて無い : デフォルトの名無しさん [] 2018/06/19(火) 18:16:13.49:menX4d1R 大丈夫、大丈夫。 ユーザーが年々すごい勢いで減っているDに比べりゃ 規模は小さいもののRustは年々少しずつ増えてるわけだから 今後普及するかどうかはともかく少なくとも廃れちゃいないし、 学習コストが高いから敬遠されてるだけで注目もされてる それにHaskellと同じで勉強しといて損はない言語だと思うし : デフォルトの名無しさん [sage] 2018/06/19(火) 19:21:40.76:30ZWMBay そもそも普及を目指してるような気配もないよな バッテリ同梱などと言い出しもしないばかりか randすらクレイトになってるから rustcだけで楽しんでると涙目(´・ω・`)になる : デフォルトの名無しさん [sage] 2018/06/19(火) 19:22:11.75:b5m1uThb Dのユーザが減ってRustのユーザが増えてる世界線はどこにありますか? : デフォルトの名無しさん [sage] 2018/06/19(火) 19:50:06.21:R39QGoSG 別に趣味でやってりゃいいんでないの。 ライフタイムとか所有権の感覚は他言語でも役にはたつでしょ。 : デフォルトの名無しさん [sage] 2018/06/19(火) 22:33:45.56:jJOU+tvI wasm やるなら stdweb と wasm-bindgen のどちらを使ったらいいですかね? もしくは他の選択肢の方がいいとかありますか? : デフォルトの名無しさん [sage] 2018/06/19(火) 23:34:50.37:X5Ll7hqK std::error+error_chain/log crateの問題点を 解決するためにfailure/slog crateが 作られたからだいたいそんな感じだと思う。 failureの方は今nurseryだし。 failureのエラーとstd::errorのエラーを相互変換できるから 移行や依存ライブラリがstd::error使ってる場合に対応簡単だよ。 まあ、1.0待ったほうがいいけど。 : デフォルトの名無しさん [sage] 2018/06/19(火) 23:47:20.77:X5Ll7hqK wasm-bindgenはhost bindings proposalの実装でstdwebはweb apiのrustバインディング。 host bindings proposalはWebAssembly用の(ホストとの)ffiみたいなもん。 : デフォルトの名無しさん [sage] 2018/06/20(水) 00:10:51.10:pTH4tzak stdwebベースのyewとか面白いよ Reactっぽいことが出来る : デフォルトの名無しさん [sage] 2018/06/20(水) 07:50:19.18:wh0fPVE/ レスどうもです host binding(wasm-bindgen)が後発で cargo-webがあるstdwebの方が開発サイクルが楽そうという感じがしてます yewも見てみます : デフォルトの名無しさん [sage] 2018/06/20(水) 08:12:54.01:wc145BD7 stdの下にあるけど非推奨、みたいなのが今後だんだん増えてくるのかな : デフォルトの名無しさん [sage] 2018/06/20(水) 08:14:53.51:mWzW79Bi はよRust4.0くらいにならんかな : デフォルトの名無しさん [sage] 2018/06/20(水) 10:36:39.96:YLzmhKZ9 使ってはいけない標準ライブラリとかC言語のgetsかよwwwww 21世紀の言語とは思えねえなwwwwwおもちゃもいいところwwwwwww : デフォルトの名無しさん [sage] 2018/06/20(水) 10:37:49.71:zK9FZNDh きたきたw : デフォルトの名無しさん [sage] 2018/06/20(水) 13:21:29.03:aMAqNpY0 テンション高杉wwww : デフォルトの名無しさん [] 2018/06/20(水) 17:10:00.84:XqMiT4dO 愛され言語ナンバーワンに2年連続で輝いたのに人気ない扱いは意味不明だ : デフォルトの名無しさん [sage] 2018/06/20(水) 18:22:38.96:vXpw0FFs 純粋に聞くがお前の周りでRustサイコーって言ってるエンジニア何人いる? : デフォルトの名無しさん [sage] 2018/06/20(水) 18:41:59.74:CaLRYR6s 標本数1〜2のデータよりこれ見ません? ttps://insights.stackoverflow.com/survey/2018/#technology-most-loved-dreaded-and-wanted-languages : デフォルトの名無しさん [] 2018/06/20(水) 18:44:15.98:XqMiT4dO 2/6人かな : デフォルトの名無しさん [sage] 2018/06/20(水) 18:51:57.98:vXpw0FFs いくらでも組織的に水増しできる問答や投票になんの意味が? : デフォルトの名無しさん [sage] 2018/06/20(水) 18:52:41.55:vXpw0FFs その程度の言語が世界一位って統計的におかしいと思わん? : デフォルトの名無しさん [sage] 2018/06/20(水) 18:54:56.56:Vsx9tnAR dreadedに水増ししたの?w : デフォルトの名無しさん [sage] 2018/06/20(水) 18:55:44.33:CaLRYR6s お前と匿名の一人で統計語ろうっておかしいと思わん? : デフォルトの名無しさん [sage] 2018/06/20(水) 18:57:44.45:CaLRYR6s あとこいつ好感度と使用者の数をごっちゃにしてるの?凄いよそれは フィボナッチ数列も書けないだけはあると思うよ : デフォルトの名無しさん [sage] 2018/06/20(水) 20:41:21.29:Hd+sK95t フィボナッチ数列って円周率みたくいまもなお計算され続けてたりするのかな : デフォルトの名無しさん [sage] 2018/06/20(水) 21:15:36.40:vXpw0FFs どう考えてもRustなんかよりJavaのほうが愛好家多いだろ プロダクトの数考えろよ : デフォルトの名無しさん [sage] 2018/06/20(水) 21:52:02.37:x0fgVEGk GithubではJavaScriptが一番多いからJavaScriptが一番愛された言語だよ(お前の中で) この記事オカズに1年ぐらい黙れそう? ttp://wolfbash.hateblo.jp/entry/2017/07/30/193412 : デフォルトの名無しさん [sage] 2018/06/20(水) 22:24:58.84 ハンバーガーはマクドナルドが世界一売上高いんだから、マクドナルドのハンバーガーが世界一美味いに決まってるだろ? : デフォルトの名無しさん [] 2018/06/20(水) 22:35:12.33:6Ldi6ZQ0 なんで一つのサンプルで統計的にとらえるんだ? プログラマー的におかしいと思わん? : デフォルトの名無しさん [sage] 2018/06/20(水) 23:15:44.76:kIAOzAlL そういや何でmainが必要なんだろね : デフォルトの名無しさん [sage] 2018/06/21(木) 07:34:12.21:yU20OhIB Nimへの風評被害記事を貼るのはやめろ : デフォルトの名無しさん [sage] 2018/06/21(木) 09:00:57.14:osGR8xHL 初見の人のために何度も貼るけど↓が本スレ ttp://mevius.5ch.net/test/read.cgi/tech/1514107621/ ここはキチガイと戯れるスレ : デフォルトの名無しさん [sage] 2018/06/21(木) 10:39:54.15:n536ipp2 それでオレが貼った記事な このスレでも反論の余地の出なかった良記事。Nimについてはともかく Rustのクソさについては本当によくまとまってる : デフォルトの名無しさん [sage] 2018/06/21(木) 12:34:03.16:c3YkgC6b 真正のアホだった : デフォルトの名無しさん [sage] 2018/06/21(木) 17:49:56.62:ay5pVfJh だからさー。文句あるなら記事に反論してみなよ 取り下げられた記事以外誰も出せないまま人格批判だけとか全く理論的じゃないし そういう人ばっかだよねRust信者って : デフォルトの名無しさん [sage] 2018/06/21(木) 18:20:34.36:tEqpfdQL ここ本スレじゃなかったのか お邪魔しました : デフォルトの名無しさん [sage] 2018/06/21(木) 18:35:12.47:ZtwQwgWl archive. fo/7NUr2 なんかある? : デフォルトの名無しさん [sage] 2018/06/21(木) 18:46:46.63:ay5pVfJh だから取り下げられた記事は反論にならないって 本人が間違いだって取り下げたんだから : デフォルトの名無しさん [sage] 2018/06/21(木) 19:00:49.88:c3YkgC6b 読んでもねぇのに自分勝手に判断して否定するバカが 「理論的じゃない」とかよく言えたな その言葉そっくりそのままお返しするよ : デフォルトの名無しさん [sage] 2018/06/21(木) 20:30:12.03:Do17eRfw 自分勝手じゃないよ? そもそも論を取り下げたのは向こうじゃん 取り下げられた論が議論の俎上に上がるのはおかしいでしょ : デフォルトの名無しさん [sage] 2018/06/21(木) 21:05:10.85:6Hcg3ucp ある人がどのレベルでプログラミングしてるか、という差がある ある人にとってはプログラミングとは設計作業に他ならず ある人にとってはプログラミングが指の労働でしかない 書き間違えるから、書き忘れるから、という理由でもって しょうもないバッドノウハウを拝み続ける者すらいる 塩と砂糖を入れ間違う、塩を入れ忘れる、自称料理人 そーいうレベルのプログラマ : デフォルトの名無しさん [sage] 2018/06/21(木) 21:10:50.36:tPTNHe4P クソ言語はRuで始まるの法則。 ソースはRubywwwww : デフォルトの名無しさん [sage] 2018/06/21(木) 21:12:31.35:c3YkgC6b 何故取り下げたかの理由も書いてあったがそっちのほうは完全に消えたかな… アーカイブすら残ってなさそうだ… 「他の記事を貶めるような記事は品性が疑われるからやっぱり取り下げる」 みたいな理由だっと思うけど、どうせお前はそれも認めないんだろ… ………ふぅ………もういいよ…… お前の頭ん中ではRustはクソ言語で良いよ…… : デフォルトの名無しさん [] 2018/06/21(木) 21:16:43.31:THBJN+Sm まあ人気であることは否定できないし好きに言わせとけば : デフォルトの名無しさん [sage] 2018/06/21(木) 21:55:24.51:cUkhcSdq Rubyスレいってこい : デフォルトの名無しさん [sage] 2018/06/21(木) 22:10:18.40:IDDH/Zj5 そういう人だね お前だけは確実に : デフォルトの名無しさん [sage] 2018/06/22(金) 06:32:29.82:dlC04wo2 rustup update stable : デフォルトの名無しさん [sage] 2018/06/22(金) 07:54:28.27:eG6Vx+RS クソ言語に固執し続けるクソ人間 : デフォルトの名無しさん [sage] 2018/06/22(金) 08:36:26.70:YRNyKvjT 1.27.0がstableになったんね : デフォルトの名無しさん [sage] 2018/06/23(土) 08:31:56.29:XcMMhDbo rustは個人開発向けで仕事に使うものじゃないのね。 : デフォルトの名無しさん [] 2018/06/23(土) 09:39:24.90:tcOUUI9f ソースは? : デフォルトの名無しさん [sage] 2018/06/23(土) 10:17:10.81:YCFgkK7r Cargo.tomlに対応するrustcの最低バージョン番号を書く方法ってある? : デフォルトの名無しさん [sage] 2018/06/23(土) 10:36:49.30:SR6K28vn ネタスレで質問するやつはキチガイ : デフォルトの名無しさん [sage] 2018/06/23(土) 11:42:32.40:FNwUUYYn スレチ Rustスレに行け : デフォルトの名無しさん [sage] 2018/06/23(土) 12:03:08.67:SR6K28vn キチガイがまともなふりして質問するふりするんだよなー : デフォルトの名無しさん [sage] 2018/06/23(土) 12:36:47.01:VZhdie4n ttps://qiita.com/tatsuya6502/items/8b31e2b162aff78787fe プロジェクトフォルダにrust-toolchainファイル置いてその中で指定出来るみたい toolchain指定なんでrustup必須になるのと固定指定しかできないっぽいけど : デフォルトの名無しさん [sage] 2018/06/23(土) 17:56:54.88:ADF05MCP みんな英語どうやって勉強したの : ◆QZaw55cn4c [sage] 2018/06/23(土) 18:09:48.96:OlLfOCSW 受験勉強で : デフォルトの名無しさん [sage] 2018/06/23(土) 18:09:55.67:592i1cd7 俺は英語なら分かるんだけど、日本語はさっぱり分からん : デフォルトの名無しさん [sage] 2018/06/23(土) 18:11:27.27:ADF05MCP すげーな オライリーのやつKindleで読んでるけどまず訳すのが大変だわ : デフォルトの名無しさん [sage] 2018/06/23(土) 18:27:07.96:ADF05MCP 英語圏に生まれたかったと切に思う : デフォルトの名無しさん [sage] 2018/06/23(土) 19:52:59.41:1v1LX/MG 訳さず英語で読んだ方が… 情報の早さ・量・正確さが段違いだし原著読むと意外と難しい単語使われてない。 bind(bound)を束縛とかアホかと。 せめて結びつけとかにしろよと。 翻訳のセンス無さすぎ。 もしくはわざと小難しくして地位を守ってるのか… : デフォルトの名無しさん [sage] 2018/06/23(土) 19:59:41.54:G+zkBspm 結びつけだとassociateの訳ともとれそう 英語と一対一で対応できる和訳の方があとから英語情報に触れるときのハードルを下げると思う : ◆QZaw55cn4c [sage] 2018/06/23(土) 20:01:25.05:OlLfOCSW get / put / take なんかで言い換えしたからといって、わかりやすくなったとは思わない : デフォルトの名無しさん [sage] 2018/06/23(土) 20:13:20.08:1v1LX/MG それにしても〜を〜に束縛しますとかセンス無さすぎる。 明治時代の翻訳見習ってほしい。 漢籍の素養が必要だが… : デフォルトの名無しさん [sage] 2018/06/23(土) 20:59:38.24:hXAC/kvi 逆に聞くが「変数にbindする」って日本語にどう訳したら自然なんだ?「結びつける」は別の意味になるぞ 明治期のアレは翻訳っていうよりは対応する訳語を創出するって感じだから、単純な翻訳じゃないぞ 「縛りつける」みたいな感じになるしかないと思うんだが 束縛は単純に漢語にしただけで大差なかろう : デフォルトの名無しさん [sage] 2018/06/23(土) 21:03:29.72:YCFgkK7r ありがとう 一応そういうのあるんだ そのページの下に書いてある、edition 指定出来るようになるのを期待、という感じかな : デフォルトの名無しさん [] 2018/06/23(土) 21:53:58.53:eYj7ZreJ > 翻訳のセンス無さすぎ。 お前にはあるかのような口ぶりで > せめて結びつけとかにしろよと。 ↑こんなこと言い放ちつつも > もしくはわざと小難しくして地位を守ってるのか… 束縛っていうふつうの単語を小難しく感じると白状し 地位を守るだのなんだのという珍妙な価値観まで丸出しにするとは恐れ入る : デフォルトの名無しさん [sage] 2018/06/23(土) 22:00:12.26:iDCSFlv+ まあ、英語のbindからして数理論理の変数束縛と同じ単語を別の意味で使いまわしてる 近い分野なんだから専門用語もう少し考えてくれても良かったのに : デフォルトの名無しさん [sage] 2018/06/23(土) 22:31:42.63:3sIWKIRG 慣れちゃってるから気づきもしなかったけど代入からして大概だよな。 英語だと単にassignだぞ。 : デフォルトの名無しさん [sage] 2018/06/23(土) 22:44:14.17:YCFgkK7r その点、グーグルは気が利いてて、 「錆は、安全性、スピード、並行性に重点を置いたシステムプログラミング言語です。 以前のバージョンのRustが錆びてインストールされている場合、」 だからな : デフォルトの名無しさん [sage] 2018/06/24(日) 00:43:46.88:8RP1t8O+ 「バインドする」で良いのでは traitとかcrateとか訳すとよくわからなくなるもの多いし全部カタカナでよい : デフォルトの名無しさん [sage] 2018/06/24(日) 00:53:31.43:EUL7CrQi a に 1 を綴じます。 : デフォルトの名無しさん [sage] 2018/06/24(日) 01:02:45.16:AYN9x63N タイプアノテーションのないバリアブルのタイプはライトサイドをエバリューションしたときのタイプになります : デフォルトの名無しさん [sage] 2018/06/24(日) 02:00:22.91:cQRh0RXw 是々非々だな。 型アノテーションのない変数の型は右側を評価したときの型になります 束縛するはバインドするでよかった。SMの趣味ないし。 : デフォルトの名無しさん [] 2018/06/24(日) 07:41:58.64:yrJGTcca 束縛と代入ってなにか違うんけ? : デフォルトの名無しさん [sage] 2018/06/24(日) 08:29:18.59:4dDfbtJe 誰に確認したわけじゃないが、変数に何か値を設定するのが代入で、値に名前を付けるのが束縛だという認識 fn foo(...) {...} は、ある関数に対しfooという名前をつけるので「関数をfooに束縛する」とは言うかもしれないけど、 「fooに関数を代入している」とは言わない、みたいな : デフォルトの名無しさん [sage] 2018/06/24(日) 09:14:33.52:aLprG8s0 緊縛と挿入! : デフォルトの名無しさん [sage] 2018/06/24(日) 09:46:27.06:dcl6yRWH 単にイミュータブルかミュータブルかの違いでないの? : デフォルトの名無しさん [] 2018/06/24(日) 09:52:28.95:yrJGTcca 伝統的な表現だと宣言に近いニュアンスかな : デフォルトの名無しさん [sage] 2018/06/24(日) 10:29:37.13:O0XPf3sp rustはバインドしていない状態の変数も合法だからややこしい let hoge; hoge = 100; // これをコメントアウトするとコンパイルできない println!("{}", hoge); : デフォルトの名無しさん [sage] 2018/06/24(日) 12:51:16.68:1I2gvIDj 初心者なんですが、文字列を作成して返す関数を作るときって、 fn hoge() -> String { "hoge".to_string() } と書くものですか? それとも fn hoge() -> &'static str { "hoge" } と書くべきでしょうか? : デフォルトの名無しさん [] 2018/06/24(日) 13:59:02.13:yrJGTcca その例だと関数にする必要なくない : デフォルトの名無しさん [sage] 2018/06/24(日) 15:24:02.20:7t4PbT1U テケトーにググっただけ つ ttps://qiita.com/Mizunashi_Mana/items/db88cb0bff002abce1ae : デフォルトの名無しさん [sage] 2018/06/24(日) 18:18:06.50:ImbiQntl Stringもstrも返す可能性があるなら Cow<str> で それ以外なら使えるときは &str を使うのが良いのでは : デフォルトの名無しさん [sage] 2018/06/24(日) 19:01:12.28:n+g5Cjrk Stringとstrを両方残しちゃうあたり 優柔不断でグダグダな言語に思えてしまう : デフォルトの名無しさん [sage] 2018/06/24(日) 19:14:57.34:knj+uGWY はあ…? : デフォルトの名無しさん [sage] 2018/06/24(日) 19:22:46.99:rqN/F7y5 C FFIに関する技術資料ってどこにあるんだろ? ttps://rust-lang-ja.github.io/the-rust-programming-language-ja/1.6/book/ffi.html にチュートリアルはあるけどexternの記述方法とかがわからない 見よう見まねで書けなくはないけどそのまま行くのは事故の元だし ついでにlibcが何をしているのかもわからない : デフォルトの名無しさん [sage] 2018/06/24(日) 20:18:07.31:gRETAB5B CのヘッダからRustのインターフェースを自動生成してくれる bindgenを追っかけてみればよいかと ttps://github.com/rust-lang-nursery/rust-bindgen : デフォルトの名無しさん [sage] 2018/06/24(日) 22:15:14.01:W9MJDxOG せめて理論的に反論しろよグダグダ言語の信者 : デフォルトの名無しさん [sage] 2018/06/24(日) 22:29:21.43:ztKvyOBw ごめんなさい 論はどこですか? : デフォルトの名無しさん [sage] 2018/06/24(日) 23:26:54.62:rqN/F7y5 えぇ・・・ソース見るしかないのかよ・・・ リファレンスマニュアル見てもちゃんと書いてないんだよな さらにググってもリファレンスマニュアルが引っかかってこない罠 : デフォルトの名無しさん [sage] 2018/06/24(日) 23:57:53.79:O0XPf3sp ,685 unsafeまわりの文書に入ってる(ただしdraft) ttps://doc.rust-lang.org/nomicon/ffi.html 公式文書はgithubのorganization(rust-lang、rust-lang-nursery)から探している : デフォルトの名無しさん [sage] 2018/06/25(月) 00:22:53.39:U0L6J6Ez C言語ライブラリの関数を3回呼び出すコードと格闘すること数時間。ようやく動いた まだ不明点は残っている ・#[link(〜のkindが何を示しているのか判らない C FFIの使用例を見るとよく見るんだが・・・ ・C言語配列の渡し方が不明 元は >int p[]={16,9}; >foo(p); とりあえず >foo("\x10\x09".as_ptr()); などと書けばデータ上は整合するから動くけどどう見てもスマートな記述方法ではない ・文字リテラルの仕様が不明 ↑の表記を得るのに数回試行錯誤した データの与え方もCStringを使った(=\x00終端する)方法は出てくるけど、そうではない方法は 中々見つからなかった。結局↑の表記に落ち着いたが ありがとう。kind値について書いてありますね。静的リンクだとkind = "static"らしいですが 付けても付けなくてもファイルサイズは大差ないようです。何が違うのだろう : デフォルトの名無しさん [sage] 2018/06/25(月) 12:50:29.35:vFqeQKwN Cの配列は第一級の値じゃないからas_ptrが正攻法だと思う : デフォルトの名無しさん [sage] 2018/06/25(月) 20:19:17.73:U0L6J6Ez によればFFIで使用できる物として ・#[repr(C付きのstruct ・#[repr(C付きのenum ・box? ・vec ・str が挙がっているけどCと互換性があるのはこれらのみって事なのだろうか vecを試してみたら動いたけどextern時に安全じゃないから#[repr(C)]付きのstruct使えなどと言いだした マジかよ!確かに文字列は汎用性が高いけど可読性が良くない・・・必要に応じて抽象化しろという事か : デフォルトの名無しさん [sage] 2018/06/25(月) 20:24:02.61:J2kal8dh Rustの側では変更しないけどCの側で変更するような変数ってmutにしないと駄目よね? : デフォルトの名無しさん [sage] 2018/06/25(月) 22:00:13.27: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"に変換してくれるようなのが欲しい : デフォルトの名無しさん [sage] 2018/06/25(月) 22:05:44.09:KKbqvHaH うわこれは読みたくないw 難しいもんだな : デフォルトの名無しさん [sage] 2018/06/25(月) 22:59:19.25:U0L6J6Ez ちなみに間違っている状態でも呼んだC関数は正常に終了します。まさにunsafeです。怖いです 何か対策を考えないと大事故を起こしそう 要素数2しかないのにstructを書くのはコード効率の点からも可読性の面からもあまり良いとは思えないし・・・ いろいろ試してみたら >let p: [i32; 2] = [16, 9]; >foo(&p); ならいけるようだ。コンパイラは何も言わないけどこの表記が適切かどうかは不明 Rubyだと foo([16,9].pack("i2")) #配列をint2個分の文字列(=8byteのバイナリ列)に変換 とか書けるんだよなぁ。コストは安くないけどみたいなポカミスは起こらない : デフォルトの名無しさん [sage] 2018/06/25(月) 23:46:12.87:kYoiRQin 何がしたいかよく分からんが 何故に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と対応する型は何かを考えれば良い : デフォルトの名無しさん [sage] 2018/06/26(火) 00:21:30.73:kImvQJUH いや、isizeはまずいんじゃない? 例えばx86_64だとisize:64bit,int:32bitだし。 libcクレートのc_intならアーキテクチャ毎に適切なサイズになるから こちらがいいかと。 : デフォルトの名無しさん [sage] 2018/06/26(火) 00:26:36.57:kImvQJUH ついでに言うとFFIするときの型はプリミティブ型以外でも とりあえずlibcクレートを探すといい。 まぁマイナーなアーキテクチャだと間違ってたりすることもあるから 確認は必要だけど。 : デフォルトの名無しさん [sage] 2018/06/26(火) 00:50:28.55:85MS96V/ とりあえず仕返しにrubyスレ荒らそうぜ ttp://mevius.5ch.net/test/read.cgi/tech/1523954817/ : デフォルトの名無しさん [sage] 2018/06/26(火) 00:50:41.38:Hc+GAUt1 あれ?そうだっけ? うかっりしてたゴメン そう言えばCのintはポインタのサイズに合わせるんじゃなくて アーキテクチャ毎に変わるんだったっけか : デフォルトの名無しさん [sage] 2018/06/26(火) 01:08:16.37:Hc+GAUt1 調べたらCのintにRustで対応する型はisizeじゃなくてstd::os::raw::c_intだったわ libcのc_intとの違いがよく分からん 対応アーキテクチャの数か? : デフォルトの名無しさん [sage] 2018/06/26(火) 02:21:07.36:kImvQJUH 一応libcはno_stdでも動くというメリットがあった気はする。 逆にプリミティブ型限定でも依存ライブラリ増やしたくないならstdなのかな? : デフォルトの名無しさん [sage] 2018/06/26(火) 08:11:12.99:xzmHFSgh あなたの言うとおりですが、そのような情報はどこをから得られるのか・・・ 等のFFIに関する資料に書いてあるようには見えません std::os::raw::c_intもを見て探してみたら ttps://doc.rust-lang.org/std/os/raw/index.html ここにあるのか 配列等の長さが変わる型のC互換性に関する情報もどこにあるんだろ アドレスの連続性とメモリの確保が保証されている必要があると思いますが : デフォルトの名無しさん [sage] 2018/06/26(火) 08:35:08.35:Hc+GAUt1 資料が少ないのはまだ普及してない言語では仕方がない FFIとか皆が頻繁に使う機能じゃないようなものはなおさら Cの配列とRustの配列は互換があるはずだけど 悪いがその情報をどこから手に入れたかは覚えていないし 信用されても困る(ついさっきも間違えたしね) 場合によっては資料探すよりソースコード読んだほうが早いことも多いし 根気良く調べるしかないとしか言いようがない あとはFFIみたいなunsafe部分は出来る限り念入りにテストを書くとか : デフォルトの名無しさん [sage] 2018/06/26(火) 09:06:54.14:ffYAyO/t arrayとsliceの連続性保証はここですかね。 ttps://doc.rust-lang.org/reference/type-layout.html#array-layout : デフォルトの名無しさん [sage] 2018/06/26(火) 10:23:55.54:MUW40HUm 今のnightlyだとclippyビルド出来ないよね? ビルド出来る最後のバージョンと、それをインストールする方法教えてください : デフォルトの名無しさん [sage] 2018/06/26(火) 12:18:25.05:8xBVh24a RustのABIについてはドキュメント増やすことはできるだろうけど それ以前の問題としてCのABI知らないとFFIつらいのでは : デフォルトの名無しさん [sage] 2018/06/26(火) 18:47:03.15: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があれば一通り出来そうか : デフォルトの名無しさん [sage] 2018/06/26(火) 20:49:29.40:qO0rk7ac vecもas_ptr用意されているし非推奨と言うことはないはず sliceにderefできるし : デフォルトの名無しさん [sage] 2018/06/26(火) 23:28:33.57:+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へ入れるようにしたら所有権で怒られて動かなくなった 同じコードでも型によって所有権の移動のしかたが違うのか : デフォルトの名無しさん [sage] 2018/06/27(水) 00:01:15.59: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(); : デフォルトの名無しさん [sage] 2018/06/27(水) 00:13:14.65:95B8/IDl あとC関数の引数&戻り値はmove(ポインターか実値)しないとだめじゃない? &付けて参照渡しにするのはよく分からない、たぶん未定義動作じゃないかなあ : デフォルトの名無しさん [sage] 2018/06/27(水) 01:04:32.64:9Rd9nmLi clippyは最新のnightlyは**追ってない**けど常に開発中だから ビルドできるバージョンは常に変わる。 自分の環境のビルドできる最大のnightlyに合わせろしか言えん。 常にclippyを使い続けたいなら環境の方をclippyに合わせないとだめ。 - 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レイアウトならクレートあるぞ。 : デフォルトの名無しさん [] 2018/06/27(水) 02:41:49.66:yfKVc+j6 Rustだけ覚えればいい時代はまだ来ない C/C++の知識皆無では : デフォルトの名無しさん [sage] 2018/06/27(水) 09:44:32.66:SAllJH2o オライリーの訳本が8月に出るのね : デフォルトの名無しさん [sage] 2018/06/27(水) 10:05:32.17:YMyBwU5o 本が出る頃には内容が古くなってるやつだろ : デフォルトの名無しさん [sage] 2018/06/27(水) 14:44:22.85:3NxQrIF4 英語で出る分には多目に見たが、日本語で出るんなら出版社の不買運動だな どこが訳すか知らんけど : デフォルトの名無しさん [sage] 2018/06/27(水) 17:59:19.20:06nI5JoX 不買運動何人参加するの?大規模にやろうぜ : デフォルトの名無しさん [sage] 2018/06/27(水) 18:21:05.70:nwq6g8g7 英語なら多目に見るwwwwwwww : デフォルトの名無しさん [sage] 2018/06/27(水) 18:35:05.31:hr/rqCUy ありがとう、そういうオチか。&で正常に動かないのも納得です 暗黙の変換って便利ですけど理解が浅いとハマる元だったりしますよね 不適切な入力を入れると自分が書いたつもりのコードとは無関係っぽいエラーを出して???になったり #[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はポインタのサイズらしいしこっちの方が楽かも : デフォルトの名無しさん [] 2018/06/27(水) 19:40:13.19:5BauIrrs 訳本情報どこにある? : デフォルトの名無しさん [sage] 2018/06/27(水) 19:41:49.80:Z4vkTjjE てかrust覚えるなら普通にc++のスマポくらいは知っとかんとわけわからんだろ。 : デフォルトの名無しさん [sage] 2018/06/27(水) 19:45:28.45:luhHLeJ1 今日発売の新しいrust本買った人いるのかな 評判良ければKindle出た頃に買おうかなと思うけど : デフォルトの名無しさん [sage] 2018/06/27(水) 20:11:21.04 貧乏なのでPacktの糞本を$10セールの時しか買えない : デフォルトの名無しさん [] 2018/06/27(水) 20:16:03.57:aPrQo9aq 訳本amazonにあったわ 早速予約した : デフォルトの名無しさん [sage] 2018/06/27(水) 20:16:12.37:YMyBwU5o オライリーの本って、オンラインに無料であるやつとおなじやなかったん? : デフォルトの名無しさん [sage] 2018/06/27(水) 21:01:38.86:IGU3gLqH オライリーの原著は去年12月に発売、今年8月に訳本 今日発売された英語の本は公式ドキュメント(第2版)の印刷版 版元はno starch press : デフォルトの名無しさん [sage] 2018/06/28(木) 01:06:21.38:cJz1WTLf 他の人も似たようなこと書いてるけど、Cの配列は結局はポインタに過ぎないから C側がポインタを求めれば、当然Rust側でもポインタを渡す あとの >同じコードでも型によって所有権の移動のしかたが違うのか は半分正解で半分不正解 正確には、型によって違うんじゃなくて、Copyトレイトをimplしてるか否かで違う u32はCopyトレイトをimplしてるから所有権はmoveじゃなくてcopyされる c_voidはCopyトレイトをimplしてないから所有権をmoveしようとする The Bookちゃんと読んだ?読んでないなら一度きちんと通読することを勧める : デフォルトの名無しさん [sage] 2018/06/28(木) 06:00:08.46:YYPKz5qu rustやるのにあったほうがいい前提知識ってどれくらい? c++とhaskellがまともに出来ないときつい? : デフォルトの名無しさん [] 2018/06/28(木) 06:30:25.53:fobuFGlz そんなわけないだろw どっちかてと根気が必要だ : デフォルトの名無しさん [sage] 2018/06/28(木) 07:54:11.40:1UW06GNd いや最低限c++のコンストラクタ、デストラクタの動くタイミングくらいは知っとかないと無理だろ。 : デフォルトの名無しさん [sage] 2018/06/28(木) 08:12:22.16:MOChRiis 一応deriveでCopy(とClone)を実装すればいいらしいと言うところまでは確認しているのですが 1.std::os::raw::c_voidへ追加で実装できるのか未確認(できたとしてもモンキーパッチになってしまう) 2.別名の型を新規に作る(usizeもしくはusizeへのエイリアスに対するメリットが思いつかない) なもんで問題なさそうならusizeで良いかなと・・・ というかCのライブラリを使うとみたいなケースは良くあると思うけど他の人はどうしているんだろ libcのc_voidもlib.rsを見るとstd::os::raw::c_voidと同じみたいだし同様の現象が起きそうです ググると引数はc_voidを使って戻り値はusizeを使っているようなコードも出てくるしusizeが正攻法なのか? ちなみにこのコードだとusizeを使ってもmutが不要の警告が出るんですよね。これもそんな事を言われても 困るのですが : デフォルトの名無しさん [sage] 2018/06/28(木) 08:55:27.92:bLMLowda Cで確保したポインタ(特に○○ハンドルみたいなリソース)は普通はopaque structで受けると思う。 ttps://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では借用して呼び出し後に返してもらえばいいっぽいけど。 : デフォルトの名無しさん [] 2018/06/28(木) 10:18:12.24:MyWFnKdA えーなんで?rust書いてる人の大半は知らないでしょ : デフォルトの名無しさん [sage] 2018/06/28(木) 10:38:48.43:LheEK93m こりゃC++まだ覚えてない人はrustなんか勉強してる場合じゃないねw : デフォルトの名無しさん [sage] 2018/06/28(木) 12:56:07.56:rDWw9n99 c++といってもRAIIとスマートポインタくらいで良いのでは 知らなくてもtrplなど読めばなんとかなるとは思うが 代数的データ型なども同様 あとは用途次第だけどFFIやるならCのメモリレイアウトくらいは押さえておいた方がよい : デフォルトの名無しさん [sage] 2018/06/28(木) 13:32:58.62:LheEK93m そんないい加減なことでいいのだろうか? ちゃんとC/C++一から十まできちんと理解した方がよいのでは? それからじゃないとそこがいい加減でRustなんて本当に使えるようになったと言える? : デフォルトの名無しさん [sage] 2018/06/28(木) 14:08:04.32:QGaIyydK C++完全に理解した人間なんて世界中に何人いるやら : デフォルトの名無しさん [sage] 2018/06/28(木) 14:14:44.86:rY43/kt0 Cはともかく、C++に時間を割く必要はないじゃろ : デフォルトの名無しさん [sage] 2018/06/28(木) 14:20:27.58:61gzDvUq むしろCすら知らないほうが変な先入観とか無くて所有権とかライフタイムとか素直に理解しやすそうな気もする : デフォルトの名無しさん [] 2018/06/28(木) 14:28:13.71:MyWFnKdA 必要という理由が分からない 言語なんて使いながら覚えていくもんでしょ : デフォルトの名無しさん [sage] 2018/06/28(木) 15:28:41.63:a2wUxb0k RustはC/C++分かってないと書けない →C/C++を分かるまでやる →C/C++がわかってしまえばそもそもRustなんて不要だと気づく →Rustを捨てる : デフォルトの名無しさん [sage] 2018/06/28(木) 16:07:41.79:cJz1WTLf 確かにC++とHaskellが出来きればRustの習得にはそれほど苦労しないだろうとは思う ただ、理解できるまでにかかる時間量の問題であって、それがないとキツイってわけじゃない むしろ、Rustの学習するためにC++とHaskellを先に学習するとか時間の無駄 The Bookが懇切丁寧に解説してくれるので前提知識はなくても全く問題ないと思う ただし、Goみたいな言語と違ってサンプルコード読めばある程度理解できて 何となくで書けてしまうような言語ではないのでThe Bookの熟読は必須 それと、FFIする場合はある程度のCの知識は必要だよ : デフォルトの名無しさん [sage] 2018/06/28(木) 16:49:45.85:Z76aQv2+ FFIしたいけどCは知らん、とかレアケースだから そんな心配はせんでいい : デフォルトの名無しさん [sage] 2018/06/28(木) 16:53:35.27:rY43/kt0 別にRustは大して関数型言語じゃないし、Rustのために他の関数型言語から、っていうのは本末転倒すぎるな : デフォルトの名無しさん [sage] 2018/06/28(木) 16:59:30.65:Z76aQv2+ 全然モナドってないし、関数型言語フレーバーぐらいでしょ : デフォルトの名無しさん [sage] 2018/06/28(木) 17:13:53.31 C++は速いがコーディングストレスで禿げる Rustで若干のパフォーマンスを犠牲にしてでも、いかに毛髪を守れるかがテーマ : デフォルトの名無しさん [sage] 2018/06/28(木) 17:18:23.47:GP5sTNn0 C++程度で禿げてたらRustのコンパイル通らん Rustのコンパイル通せるならC++でやる方がよいコード書ける つまりRustは実用にならん。C++er養成ギプスって話ならわかる : デフォルトの名無しさん [sage] 2018/06/28(木) 17:41:56.51:BmtmAhz0 結論: やっぱりC++からしっかりやったほうがよい : デフォルトの名無しさん [sage] 2018/06/28(木) 17:46:58.11:GP5sTNn0 違う違う、そもそもRustは不要って結論な C++勉強してC++そのまま使い続ければいい : デフォルトの名無しさん [sage] 2018/06/28(木) 17:47:09.81: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 : デフォルトの名無しさん [] 2018/06/28(木) 17:56:38.73:MyWFnKdA なんだコンパイルできないおじさんか。。 : デフォルトの名無しさん [sage] 2018/06/28(木) 18:32:36.30:f0Ft93Jb 単純に最初期のRustコンパイラはOcamlで組まれてたからって事情でないの : デフォルトの名無しさん [sage] 2018/06/28(木) 18:34:20.70:f0Ft93Jb C++より潜在的なメモリ管理バグを減らせるってのは十分有用な話では : デフォルトの名無しさん [sage] 2018/06/28(木) 18:54:33.03:frbOjHXy リストとリスト操作をなんで組み込んでくれなかったのかな? ::とか@とかあるだけでだいぶ捗るよね(一部の人にとって) : デフォルトの名無しさん [sage] 2018/06/28(木) 19:41:35.09:Z76aQv2+ パフォーマンス面だけで言えば、リンクトリストは問題外だからじゃない? : デフォルトの名無しさん [sage] 2018/06/28(木) 20:19:23.05:X+ujNNAX コンパイルできないおじさんのコードもNLL有効にしたらコンパイルできたから 来年にはrust書けるようになるよ : デフォルトの名無しさん [sage] 2018/06/28(木) 20:29:59.05:1UW06GNd 別にどの言語だろうと所有権を考えるってのは普遍的に必要だとは思うぞ。 rustだろうとc++だろうとはたまた動的言語でもメモリ以外にも資源管理なんて 問題はどこにでも出てくるわけで。 : デフォルトの名無しさん [sage] 2018/06/28(木) 20:30:03.07:rY43/kt0 consとかが使えないのはmutとの兼ね合いもあるんじゃないの あれ完全にイミュータブルリスト向けだもんよ : デフォルトの名無しさん [sage] 2018/06/28(木) 21:16:31.35:YYPKz5qu ttps://www.reddit.com/r/rust/comments/8ub964/microsoft_announces_using_rust_to_build_some_of MSもRust使ってるんですか やるしかない : デフォルトの名無しさん [sage] 2018/06/28(木) 21:22:26.06:MOChRiis なるほど。c_voidの正体はそれでしたか 引数は既成Cライブラリの仕様なのでなるべく変更したくありません *mutを使うコードを検討していて気がつきましたがRustの生ポインタにfunc1が返すアドレスを入れると Cと同じ危険を抱えますよね。func3でアドレスがNULL=0になりますからその後に触ると当然クラッシュします : デフォルトの名無しさん [sage] 2018/06/28(木) 21:27:33.58:wCMJyKP8 NLLいまだに理解できなくて使えない : デフォルトの名無しさん [sage] 2018/06/28(木) 21:36:28.71:cJz1WTLf actixとactix-webのメインコントリビュータもよく見ると普通にMS所属の人だった ttps://github.com/actix/actix/graphs/contributors ttps://github.com/actix/actix-web/graphs/contributors : デフォルトの名無しさん [sage] 2018/06/28(木) 21:45:00.19:CykyBbY/ MSは英語なので、大目に見てもらえる : デフォルトの名無しさん [] 2018/06/28(木) 22:08:43.56:fobuFGlz > Please never sell Rust to Microsoft! ちょっとわらった : デフォルトの名無しさん [sage] 2018/06/28(木) 22:56:56.15:mQsBu3Yx 言語に関してはMSがオーナーになるのは大勝利だろ : デフォルトの名無しさん [sage] 2018/06/28(木) 23:58:14.47:aJbqINcy ではここからはC# おじさんどぞー : デフォルトの名無しさん [sage] 2018/06/29(金) 00:13:26.39:9NU4CCEP MSには新しいプログラミング言語のQ#があるから Q# 【量子プログラミング】 ttps://mevius.5ch.net/test/read.cgi/tech/1513059627/l50 : デフォルトの名無しさん [sage] 2018/06/29(金) 00:20:17.66:1B/tcpoY 汎用言語でないからRustと競合はしないな : デフォルトの名無しさん [sage] 2018/06/29(金) 05:02:04.02:HciN/Bk/ Visual StudioでRustサポートされないかな rlsが不安定すぎるのでMSが作り直して欲しい... : デフォルトの名無しさん [] 2018/06/29(金) 07:15:45.03:pVbM0h49 rlsもracerもポンコツよね あんまり力入れてないのかな : デフォルトの名無しさん [sage] 2018/06/29(金) 10:18:57.05:azKeAftH intelliJ使えばええやん インテリじゃない人もタダで使えるよ : デフォルトの名無しさん [] 2018/06/29(金) 11:21:37.40:eINaY/I2 支援機能だけ考えるとそうなんだけどさ 手に馴染んだemacsから離れるのは簡単じゃない : デフォルトの名無しさん [sage] 2018/06/29(金) 12:06:31.66:1B/tcpoY ワイもIDE使いこなせない : デフォルトの名無しさん [sage] 2018/06/29(金) 12:09:37.82:l0U/js7n intellijをつかうのです… vsなんかよりよっぽどいいですよ… : デフォルトの名無しさん [sage] 2018/06/29(金) 12:09:46.01:ZOJKMSLg 従来のborrow checkerの制約が緩くなるだけだから従来の理解してれば不自由なく使えるはず : デフォルトの名無しさん [sage] 2018/06/29(金) 12:27:36.55:1B/tcpoY intelij買ったけどemacs使っちゃうのよね。コード書くのにmouseが必要になるのが受け付けないみたい。 : デフォルトの名無しさん [sage] 2018/06/29(金) 18:17:46.77:HciN/Bk/ intellijちゃん自力でパースしてるのアホでしょ CLionもclang使わず自力でやってるけどリリースから随分経つのに初歩的なバグ残ってるみたいだし : デフォルトの名無しさん [sage] 2018/06/29(金) 18:55:33.43:abdfGqyU の方法だとこんな感じなのかな 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にする必要がありそうだけど : デフォルトの名無しさん [sage] 2018/06/29(金) 20:25:27.91:jUvi1FZV 英語は多めに見るおじさん、今頃rustについて必死で勉強して弱点探してるのかな : デフォルトの名無しさん [sage] 2018/06/30(土) 01:38:16.37:bJf+PXWq 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のプロトタイプはないよね? : デフォルトの名無しさん [sage] 2018/06/30(土) 01:40:31.49:bJf+PXWq func1のxはu8だからunsigned charかuint8_tだね : デフォルトの名無しさん [sage] 2018/06/30(土) 01:59:30.31:VVUAg8sI func1の引数はRustのコンパイラにその型を使えと言われたから func2の引数はfunc1の返値に合わせた func3の引数はfunc1が返したアドレスが格納されているアドレス。Cで言うポインタのポインタでABC **z 自分も詳しいわけではないので勘違いしているかもしれないが一応動いている : デフォルトの名無しさん [sage] 2018/06/30(土) 05:09:23.98:bJf+PXWq ダブルポインタだったのか それなら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)で大丈夫なはず : デフォルトの名無しさん [sage] 2018/06/30(土) 11:01:24.70:6fEIEQu0 ダブルポインタはあんま想定してなさげな気はする。 俺だったらもう一枚、インターフェイスかましてもう少し楽なインターフェイスにしてから rustと繋げるわ。 : デフォルトの名無しさん [sage] 2018/06/30(土) 11:27:27.95:BB0BPsjY 結局C/C++ある程度わかってないと話にならないよね。 経験ないやつはいきなりrust勉強してる場合ではない。 : デフォルトの名無しさん [] 2018/06/30(土) 12:46:04.79:gEYLih9T コンパイルできないならまずプログラミングを勉強しなおしたほうがいいよ : デフォルトの名無しさん [sage] 2018/06/30(土) 14:28:27.26:d1l1Trl+ FFIの話をrust全体の話に主語をでかくしてるおっさんがおるな : デフォルトの名無しさん [sage] 2018/06/30(土) 16:28:11.02:oxrLiD+S FFIもrustの魅力の一つなのですが? C/C++知らないやつはいつまでたってもrustを全て分かったことにならない 半人前のまま 別に必要なとこだけ使うスタンスでもいいけど半人前のクセにいっぱしのrustプログラマーヅラしないでね : デフォルトの名無しさん [sage] 2018/06/30(土) 16:34:04.77:WiulWXxB 昔はアセンブラ知らずにC++語るなとか言われてたが時代は変わったもんだな : デフォルトの名無しさん [sage] 2018/06/30(土) 16:40:34.19:jlw7G6p9 結局どの言語を選べばいいのかわからなくなった C++?Go? : デフォルトの名無しさん [sage] 2018/06/30(土) 17:06:44.52:NH6TT+Fu Coqを選べばいいと思うよ : デフォルトの名無しさん [] 2018/06/30(土) 17:07:23.25:QJJEkoJ9 目的に合ったもの やりたいものをやればいい : デフォルトの名無しさん [sage] 2018/06/30(土) 17:07:54.55:5+sKgUjT 迷うならGoでいいんでは。 : デフォルトの名無しさん [sage] 2018/06/30(土) 17:10:05.48:CMs/fWc6 Prolog : デフォルトの名無しさん [] 2018/06/30(土) 17:38:54.49:RHrrdh8p rustを視野に入れながらgoという選択はない kotkinかswiftかgoかってなら分かるけど : デフォルトの名無しさん [sage] 2018/06/30(土) 17:52:45.29:5+sKgUjT 分からないなら無理してrust使わなくていいって意味じゃろ : デフォルトの名無しさん [sage] 2018/06/30(土) 18:08:54.39:9Q6R3Qzj 腐ってないでお前らも俺と一緒にRustで競技プログラミングしようぜ! ttps://yukicoder.me/submissions?submitter=5971 : デフォルトの名無しさん [sage] 2018/06/30(土) 18:21:37.09:UB7qEnEv クロージャで再帰が出来ないのって所有権的な問題? : デフォルトの名無しさん [sage] 2018/06/30(土) 18:24:45.75:cH9c2bse rustは競プロには向かない ttps://users.rust-lang.org/t/rust-for-competitive-programming/17682 : デフォルトの名無しさん [sage] 2018/06/30(土) 18:38:35.11:cH9c2bse クロージャの再帰ってこれのこと? recursion - Is it possible to make a recursive closure in Rust? - Stack Overflow ttps://stackoverflow.com/questions/16946888/is-it-possible-to-make-a-recursive-closure-in-rust : デフォルトの名無しさん [sage] 2018/06/30(土) 18:57:41.58:dTg1EP/S おー、できた ありがとう ローカル関数だと外部変数キャプチャできないし、クロージャだと再帰できないし、 同時にしたいときどうすんのかなーって思ってたから そんなに使うこともないだろうけど、心に留めときます : デフォルトの名無しさん [sage] 2018/06/30(土) 22:59:14.25:pdhum8J2 ありがとう。なるほどそういう書き方もあるのか。確かに書き換わるので&mutの方が適切ですね 欲しいのはアドレスなのだからと単にアドレス演算子&を付けていました unsafe外から任意のアドレスにあるデータへアクセスするにはその部分を関数化するようなのかな 一般的に言うプロパティの読み書きをプログラマブルに出来れば綺麗に書けるけど無理なんだろうなぁ ()無しの関数呼び出しとも言えるけどこれが出来る言語は少ない : デフォルトの名無しさん [sage] 2018/06/30(土) 23:04:00.05:BB0BPsjY 相変わらず驚き最大の言語だな : デフォルトの名無しさん [sage] 2018/07/01(日) 07:43:42.19:XZ+Fcjv4 例えば何に驚いてんの? Rustの目的はシステム言語だが、目的から乖離してるとこって何? : デフォルトの名無しさん [sage] 2018/07/01(日) 08:30:53.21:vf9gJxu2 マルチパラダイムの場合、驚き最小の原則の法則に反するかどうかは実装者の責任じゃないだろうか : デフォルトの名無しさん [sage] 2018/07/01(日) 08:46:31.97:E4o6QfBe 抽象的なことしか言わなくなったんだよ 機械語のレベルと相性が悪いし : デフォルトの名無しさん [sage] 2018/07/01(日) 11:50:23.63:YY7LPhac 半分はその通りだが、それならc++で良くね?になるぞ。 : デフォルトの名無しさん [sage] 2018/07/01(日) 13:30:01.00:TGjVBuJr 日本語でこんなに議論が行われてることに驚いた : デフォルトの名無しさん [sage] 2018/07/01(日) 13:37:40.54 恥ずかしくて外国人には見せられない掲示板だ : デフォルトの名無しさん [sage] 2018/07/01(日) 13:54:17.46:YY7LPhac そもそもcの呼び出しはメモリ管理モデルのギャップがあるんだから どうあがいてもc++のが簡易にできるのは当然なんだよ。 : デフォルトの名無しさん [sage] 2018/07/01(日) 15:26:57.84:HnzLcrw0 このスレは英語推奨だぞ : デフォルトの名無しさん [sage] 2018/07/02(月) 01:23:28.76:5g9b1rVY >ローカル関数だと外部変数キャプチャできないし、クロージャだと再帰できないし、 ここに関してはクロージャでないものをクロージャと呼ばなければ誰も驚かなかっただろうな。 javaは似非クロージャのことはラムダ式と呼んでるし。 : デフォルトの名無しさん [sage] 2018/07/02(月) 01:51:37.55:v1kLQBFZ Haskellの「外側のシンボルを参照することによる暗黙的な部分適用」はクロージャと呼ばれてるから アレが許されるなら少なくともJavaのはクロージャと呼んでいい : デフォルトの名無しさん [sage] 2018/07/02(月) 22:14:52.04:KKQokwkO javaのアレは元々クロージャ導入するつもりが、 仕様と実装でクソ揉めて妥協案としてクロージャ じゃないものとしてラムダ式を作ったんやで。 だから意図的な"クロージャではないモノ"よ。 メモリ管理にgc使うからエンクロージャの束縛の解放に 制限ないから実質クロージャだし第一級関数だけど。 : デフォルトの名無しさん [] 2018/07/02(月) 22:54:50.18:F0SAJ301 hyper使って簡単なwebアプリ描いてみたけどわりと素直に書けるのね : デフォルトの名無しさん [sage] 2018/07/03(火) 16:24:59.60:ZNPbo2Ku は本当に満足してるのだろうか のやり方だとパラメータ増えてるじゃん こういうのは既存のシグネチャに合わせられないと 単にひとつの関数を小洒落た書き方にしてみましたってだけにしかならないのでは : デフォルトの名無しさん [sage] 2018/07/03(火) 17:05:40.29:ZNPbo2Ku 連投になって申し訳ないが、環境をRefCellで持ち出す例を見つけた ttps://wandbox.org/permlink/hkwccgD2oXp0fTm7 組み合わせて、802の2番目の例のstructを更にRefCellに入れたらシグネチャ変えずに行けるかな : デフォルトの名無しさん [sage] 2018/07/03(火) 17:29:45.80:LuUToNY2 一応満足してるよ スッキリ書けないことがわかったから、素直にループで書くか、ローカル関数作って引数で渡そうと思えた Rustは関数型じゃなくて手続き型だし、特に不満ではない : デフォルトの名無しさん [sage] 2018/07/03(火) 17:31:22.43:nNrfrM83 RefCell使うなら、Rustで書く意味ないだろ : デフォルトの名無しさん [sage] 2018/07/03(火) 18:19:36.75:ZNPbo2Ku すまん、クロージャでないとできない用途(環境をキャプチャーして高階関数に渡す等)を想定していると 勝手に気を回してしまったみたいだ : デフォルトの名無しさん [sage] 2018/07/03(火) 21:26:26.07:9JOKXkQl クロージャじゃないとできない用途って具体的にどういうものなの 想像つかなかったので単純な興味本位 : デフォルトの名無しさん [sage] 2018/07/03(火) 21:32:07.93:2DeV5pvZ 例えば最適化ライブラリなどに目的関数を渡す場合などで 引数以外からパラメータを注入する必要がある場合。 : デフォルトの名無しさん [sage] 2018/07/03(火) 22:38:00.99:9ONgpSq2 キャプチャ自体はクロージャで出来るから別に困ってないかな たまたま再帰させたくなったときがあっただけだから : デフォルトの名無しさん [sage] 2018/07/03(火) 23:58:54.50:6KvlcSKZ クロージャじゃなきゃできないことじゃなくて、 クロージャの再起呼び出しじゃなきゃできないことを聞きたかった 引数以外のパラメーターを差し込む場合、普通は再起は必要ないよね : デフォルトの名無しさん [sage] 2018/07/04(水) 00:52:48.93:MQVza7QA 風雲再起ぃ〜!! : デフォルトの名無しさん [sage] 2018/07/04(水) 01:08:42.88:ace/1w5F 1.28はrustdocするときソースコードのlintするようになったんの? deny属性に違反するソースコードがドキュメント生成時にエラー投げる。 クロージャがある言語は普通、関数とクロージャ区別しないからその感覚はおかしくないと思う。 でもクロージャの実装上の制約とかライフタイムとかでループで書いたほうがいいと思うコードはある。 : デフォルトの名無しさん [sage] 2018/07/04(水) 09:35:17.80:7aH0kDWz それは、てっきり最初のがキャプチャと再帰を同時に使いたいことがあったんとばかり : デフォルトの名無しさん [sage] 2018/07/04(水) 20:54:21.49:1R4S9ii/ ある種の動的なtree構造に対して探索、実行を繰り返すとか。。 やっぱ具体的じゃねーな。。 : デフォルトの名無しさん [sage] 2018/07/04(水) 21:42:58.93:JvJNYHQo 最近rustの勉強始めたものです この言語ってstatementなのかexpressionなのかをどういう方針で決めてんでしょう? ifがexpressionなのはわかったけど、letはなぜstatementなんだろ? 他の関数型言語のようにexpressionでもよかろうに、と思った : デフォルトの名無しさん [] 2018/07/04(水) 21:53:13.67:gFgZc5FG KCX : デフォルトの名無しさん [sage] 2018/07/04(水) 23:31:21.37:kqLSfqeN 古いCで良く在る if ( (let a = f()) != 0 ) {} みたいなのが嫌だったんだろう。 そもそも、変数束縛が値を持つ必然性は無いよね。 : デフォルトの名無しさん [sage] 2018/07/04(水) 23:32:39.47:kqLSfqeN あ、ごめん。大嘘だった。 if let なんてのあったのね… : デフォルトの名無しさん [sage] 2018/07/05(木) 00:07:01.10:wS7IFFVg 他の関数型言語のletは随分来歴が違うイメージ。 let x = ... in expはラムダ式の糖衣構文の一種なので関数型なら容易に実装できて便利に使えるのに対し、 rustのletは手続き型の変数宣言の方が近い schemeのletとdefineが全然意味が違うのを知ってると違和感無い : デフォルトの名無しさん [sage] 2018/07/05(木) 00:16:12.98:OgxnbJsr この辺読めばいいかと。 ttps://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は所有権移動だけど、返り値を認めちゃうと 束縛先と返り値のどちらに移動すべきか分からない、ということかな。 : デフォルトの名無しさん [sage] 2018/07/05(木) 00:52:35.42:YJbjvjoP それは let a = (let b = c) がだめな理由にはなるけど の言ってる関数型言語風の let a = (let b = c in d) がだめな理由にはならないよね : デフォルトの名無しさん [sage] 2018/07/05(木) 01:22:02.41:DZKRf+tO えっ、毎回コピーすんの? それ無駄じゃね? : デフォルトの名無しさん [sage] 2018/07/05(木) 03:33:15.42:CGu9cAAd ブロック式で let a = { let b = 1; let c = b + 1; b + c }; と書ける けどミュータブルな変数を書けるからコードが関数型言語風になるかどうかは書き手次第 : デフォルトの名無しさん [sage] 2018/07/05(木) 20:22:41.90:yHZEHedG ほー勉強になりました fnもいまいち釈然としないけど もうちょっと読み進めてみます : デフォルトの名無しさん [] 2018/07/05(木) 21:13:46.28:nmRduEAc あるstructもとに任意のフィールドを追加した別のstructを定義することってできる? : デフォルトの名無しさん [sage] 2018/07/05(木) 21:35:03.85:wS7IFFVg イテレータ系はみんなそれやってる mapとかfilterとか、元のイテレータ+変換・フィルター関数みたいな構造体を返してくる : デフォルトの名無しさん [sage] 2018/07/05(木) 22:08:25.13:uqSz2h6E へー今気がついた strはmutの有無にかかわらずRO領域に配置される sliceはmutの有無にかかわらずRW領域に配置される つまり今風のOS上だと strをポインタ経由で書き換えようとするとメモリアクセス違反 sliceをmut無しで宣言した物でもポインタ経由で書き換えられる リンカの設定にもよると思うけどマイコンなどで使うときは注意が必要そう : デフォルトの名無しさん [sage] 2018/07/05(木) 22:15:27.91:B3fauv+j えぇ…安全に使えないじゃん。キツツキに縛りつけてる意味ないじゃんrustの存在意義が… : デフォルトの名無しさん [sage] 2018/07/05(木) 22:46:05.11:5CTMsWjW 再現コードはよ : デフォルトの名無しさん [sage] 2018/07/05(木) 23:38:48.53:+dwFnTVE unsafeの話でしょ 脊椎反射したいつもの人が見事に釣られている : デフォルトの名無しさん [sage] 2018/07/05(木) 23:53:13.69: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にいるはずと思い込んでいるとハマるケースがありそう 任意の場所に配置するアトリビュートとかあるのかな : デフォルトの名無しさん [] 2018/07/06(金) 00:07:24.39:0SVgWEm6 これのArrayのとこに書いてない? ttps://doc.rust-lang.org/book/second-edition/ch03-02-data-types.html : デフォルトの名無しさん [] 2018/07/06(金) 00:36:54.90:iypT0A6c 返すんじゃなくて定義したいんだけども : デフォルトの名無しさん [sage] 2018/07/06(金) 06:49:56.18:Sybd3k2C >>849 stackoverflowとリファレンスを見た限りstruct定義の入れ子はサポートしてない ttps://stackoverflow.com/questions/23629201/nested-structs-in-rust ttps://doc.rust-lang.org/reference/items/structs.html : デフォルトの名無しさん [] 2018/07/06(金) 18:21:10.44:iypT0A6c どうもありがとう。でもちょっとニュアンスが違う。 struct 2d {x, y} struct 3d extends 2d { z } で3dが2dのxとyのフィールドと独自のzを持つようなかんじ マクロで出来ないか精一杯やってみたが出来なかった 元となるstructごとにマクロ作ればできるんだけどそれじゃ意味ないし : デフォルトの名無しさん [] 2018/07/06(金) 18:57:55.41:0SVgWEm6 設計見直したら? : デフォルトの名無しさん [sage] 2018/07/06(金) 19:23:23.92:6zaAciaG Rust Design PatternsにはDerefでやるのはアンチパターンだと書いてあるけど、別の似たようなサイトではお勧め扱いだった気がする ttps://github.com/rust-unofficial/patterns/blob/master/anti_patterns/deref.md : デフォルトの名無しさん [sage] 2018/07/06(金) 21:12:32.07: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つに : デフォルトの名無しさん [sage] 2018/07/07(土) 01:32:56.18:odAPlBjD rustからrust-bindgenが吐いたC++のクラス使うのめんどくさいな : デフォルトの名無しさん [sage] 2018/07/07(土) 18:52:04.06:Otm/KpKR ところで、全然話変わるんだけどさ、mutってどう発音してる? 自分は「むっと」ってよんじゃってて、なんか、かっこわるいんだけど。 : デフォルトの名無しさん [sage] 2018/07/07(土) 19:12:39.63:HR9VVpP9 当然、「みゅっと」でしょ : デフォルトの名無しさん [sage] 2018/07/07(土) 20:15:18.96:h+p+JRvo 怒ってるのね : デフォルトの名無しさん [sage] 2018/07/07(土) 20:19:35.52:Ty8z3s6n 鬼太郎のCVほっぽりだして産休に入るみゅ : デフォルトの名無しさん [] 2018/07/07(土) 20:58:49.46:PbU76+k2 mjúːtəbl : デフォルトの名無しさん [sage] 2018/07/07(土) 23:03:04.65:cEw8AP4C ミュート : デフォルトの名無しさん [] 2018/07/08(日) 00:41:02.43:tBFClkmn tanakhがrustのクロージャー再帰を望んでいる ttps://twitter.com/tanakh/status/1015609559673475073 : デフォルトの名無しさん [sage] 2018/07/08(日) 11:33:21.07:6xrO+JsL そりゃ入れないほうがいい証左になるなw : デフォルトの名無しさん [sage] 2018/07/08(日) 13:33:35.86 みゅう太 : デフォルトの名無しさん [sage] 2018/07/09(月) 02:59:46.84:4B4QAQi1 いつまでtanakhなんてスパコン詐欺師を崇めるんだろうなこのスレの住人 : デフォルトの名無しさん [sage] 2018/07/09(月) 07:41:39.43:DXSSRVdR 国内の会社は大目に見てもらえないから大変だなあ : デフォルトの名無しさん [sage] 2018/07/09(月) 09:23:25.63:6MpumzZl NEDOとかダメだろ : デフォルトの名無しさん [sage] 2018/07/09(月) 22:56:35.23:M/GPMU7W 「nvidiaの倒し方、知らないでしょ?オレらはもう知ってますよ」 : デフォルトの名無しさん [sage] 2018/07/10(火) 08:37:04.49:wS3GMIgw 実際green500で倒してるんだからたいしたものだよ : デフォルトの名無しさん [] 2018/07/10(火) 14:26:10.12:+spxUUiC ttps://github.com/saschagrunert/webapp.rs これいいね、Webアプリを完全Rustで作成 : デフォルトの名無しさん [sage] 2018/07/11(水) 12:56:28.28:8BQ5VZH8 WebアプリをRustで書くって、どういう需要があるの? ラズパイみたいな環境? : デフォルトの名無しさん [sage] 2018/07/11(水) 13:05:53.98:A6luu057 車買ったらムダにドライブしたくなるじゃん。すぐ飽きるのに。 あんな感じ。 : デフォルトの名無しさん [sage] 2018/07/11(水) 13:08:35.26:uU0OdRlq クライアントサイドとサーバサイドで同じコードが使えるって話ちゃうのん? : デフォルトの名無しさん [sage] 2018/07/11(水) 13:30:09.56:QvLfDUJ3 同じ言語 だな それはnode.js環境も同じだが : デフォルトの名無しさん [sage] 2018/07/11(水) 13:31:28.26:QvLfDUJ3 期待できる点は速くて安全 : デフォルトの名無しさん [] 2018/07/11(水) 16:34:41.89
:dzRS/LEU 全部rustって需要はあんまりない気がするけど、サーバ側ならかなりマッチしてる : デフォルトの名無しさん [sage] 2018/07/11(水) 17:15:53.86:NEswxD4L webassebly : デフォルトの名無しさん [sage] 2018/07/11(水) 18:10:54.52:EHDLIx8N サーバーサイド → Rust クライアントサイド → Rust ブラウザ → Rust 完璧じゃないか : デフォルトの名無しさん [sage] 2018/07/11(水) 18:17:02.02:4XcPTXi0 Yewのベンチマークって他に誰か取ってた? : デフォルトの名無しさん [sage] 2018/07/11(水) 18:46:56.99:8BQ5VZH8 やたらノンブロッキングに拘ってるけど、それが本当に必要な人ってごく一部だよね 人気サービスの中の人だけ 普通はスレッド立てまくりで対応可能だし、たまに台数増やすだけで問題ないでしょ? : デフォルトの名無しさん [] 2018/07/11(水) 18:59:32.73:v5sVc8KX だからそれは並列性が必要ってことでしょ : デフォルトの名無しさん [sage] 2018/07/11(水) 19:13:29.64:A6luu057 真のアイルランド人はノンブロッキングなど必要としないwww : デフォルトの名無しさん [sage] 2018/07/11(水) 20:14:09.83:IOg1uM7w アイルランドいつ統一するん? : デフォルトの名無しさん [sage] 2018/07/12(木) 20:27:33.26:vXAFXBtg オライリーの奴予約した : デフォルトの名無しさん [sage] 2018/07/12(木) 22:30:46.69:Wlqbcgdb 白紙の未来を絶望に染めてやろう。 あれもうかなり古いぞ。 rust 2018で今よりさらに変わるんだぞ。 エラーハンドリングもモジュールもTraitも重要な部分全部かわるぞ。 nightlyで結構実装済みだから現行のnightlyですら違うぞ。 macro 2.0はいいぞ! : デフォルトの名無しさん [] 2018/07/12(木) 22:39:04.16:sU95dCXR この仕事してるならそんなの普通じゃん : デフォルトの名無しさん [sage] 2018/07/13(金) 00:41:53.18:MpWeaOSk Rust 2018にエラーハンドリングの変更とかあったっけ? Rust 2018での追加・変更って"module, impl trait, Generators/async/await, macros 2.0, NLL, SIMD"だけじゃなかったっけ? もしかしてdo catchがstable化されるの?それとも、それ以外で変更があるの? エラーハンドリングで互換性を崩すような変更があるならかなり痛いんだけど… : デフォルトの名無しさん [sage] 2018/07/13(金) 04:40:11.96:7ZPDFHpF ttps://github.com/rust-lang/rfcs/blob/master/text/2388-try-expr.md 2018からtryがキーワードとして予約される(catchは廃案) editionが未完成だと実装できないから2018リリースにはきっと間に合わない : デフォルトの名無しさん [sage] 2018/07/13(金) 08:17:48.56:wonLmOyY RustもC++みたいに何年かおきに大きく変更されるの? : デフォルトの名無しさん [sage] 2018/07/13(金) 10:05:43.27:U/mhKMvJ こないだ1.0になったばかりな気がするんだが。仕事じゃつかえないな : デフォルトの名無しさん [sage] 2018/07/13(金) 10:19:59.41:MpWeaOSk こないだってもう3年前だぞ C++が仕事で使えるんだから使えるだろ てか、Swiftなんてもう4でそろそろ5になるとか言ってるんだぞ あれが仕事で使えるんだからRustなんか楽勝だろ : デフォルトの名無しさん [sage] 2018/07/13(金) 10:29:57.41:U/mhKMvJ swiftなんてappleのDSL : デフォルトの名無しさん [sage] 2018/07/13(金) 10:31:39.87:U/mhKMvJ C99勢が砦 : デフォルトの名無しさん [] 2018/07/13(金) 11:07:37.12:sS4PjtpX 実際仕事で使っている人たちがいるのに使えないということは、別のところに問題があるのよ : デフォルトの名無しさん [sage] 2018/07/13(金) 11:48:20.64:ERNuP0HI 安定性以前にまともにfibが書けない言語だから仕事じゃ使えない : デフォルトの名無しさん [] 2018/07/13(金) 12:52:21.80:sS4PjtpX 突然の自己紹介 : デフォルトの名無しさん [sage] 2018/07/13(金) 13:54:10.99:GXltVmCz 辺りの流れは何回見ても本当に秀逸 : デフォルトの名無しさん [sage] 2018/07/13(金) 15:05:24.82:KpXdroi9 車輪の再発明を抑止し過ぎるとnode.jsみたいになるからね やり過ぎはだめってことよな : デフォルトの名無しさん [sage] 2018/07/13(金) 15:40:42.13:5L9NPjD5 どゆこと? : デフォルトの名無しさん [sage] 2018/07/13(金) 16:06:42.44:AcLm8Zma たかだか一行二行のプログラムのnpmパッケージであふれ、しかも子孫含めた被参照ダウンロードが100万とかざらで、さらにそれがバグっている。 : デフォルトの名無しさん [sage] 2018/07/13(金) 17:28:42.65:vZnflVWC Rust関係ないけど最近ArchLinuxのAURに細工されたパッケージが上げられててほんのちょっとだけ話題になったんだけど 正直自分が使うcrateやそれの依存関係まで含めて全部書いてる人が信用できるかとかソースまでチェックしてる人なんていないよね…? イカンなぁと思いながら盲目的に使っちゃってるわ(´・ω・`) : デフォルトの名無しさん [] 2018/07/13(金) 17:44:54.43:sS4PjtpX CPUのL2キャッシュを作った人の叔母の恋人がテロリストがどうか気にするところから始めたほうがいいな : デフォルトの名無しさん [sage] 2018/07/13(金) 17:46:33.55:U/mhKMvJ 某ファイルシステムの作者が奥さんを殺してしまってな : デフォルトの名無しさん [sage] 2018/07/13(金) 18:29:15.55 怖いなぁ、戸締まりすとこ… : デフォルトの名無しさん [sage] 2018/07/13(金) 19:36:34.68:wonLmOyY そういえばRUSTという殺し合いをするゲームがありますね : デフォルトの名無しさん [sage] 2018/07/13(金) 20:34:31.63:Cw5pkNzp crate以前に詐欺企業Mozillaが信用できないから : デフォルトの名無しさん [sage] 2018/07/13(金) 20:59:24.06:IpXdw+4i Mozillaが詐欺企業なら、Mozilla以上に言う事やる事がコロコロ変わるAppleや 個人情報を収集しまくりのGoogleやMicrosoftはどうなってしまうんだろうなw : デフォルトの名無しさん [] 2018/07/13(金) 21:16:35.53:Y3xd+pZ1 > 仕事じゃ使えない おじさんのことじゃん : デフォルトの名無しさん [sage] 2018/07/13(金) 21:19:05.39:EK55GFqW crates.ioを見に行かないようにして、社内で確認済みのcrateしか置いてない社内リポジトリだけ 参照するような設定って出来るんだっけ? : デフォルトの名無しさん [] 2018/07/13(金) 21:39:00.40:Y3xd+pZ1 RFCはあるみたいだけどまだ出来ないのかな ttps://github.com/rust-lang/rust/issues/44931 : デフォルトの名無しさん [sage] 2018/07/13(金) 21:50:09.75:EK55GFqW まだ半分も済んでないね : デフォルトの名無しさん [] 2018/07/14(土) 00:26:44.88:nZvQhL00 cargoはそこらへん腐ってるから無理。 出来はするけどcrates.ioをクローンするツールの開発が 殆ど動いてないしクローンしてもそのローカルリポジトリを管理するツールがない。 ここらへんはoffline modeも絡んでくるけど、 どうせ欠陥機能作って廃止してまた作っての繰り返しでめちゃくちゃになるだけ。 : デフォルトの名無しさん [] 2018/07/14(土) 06:22:32.24:brBR1uF1 crates.ioのソースを持ってきてローカルに立ち上げてhostsで向ければ出来上がりじゃん : デフォルトの名無しさん [sage] 2018/07/14(土) 06:46:24.80:W3qfg8ZM cargoが便利コマンドすぎて、原始的な事がやりづらくなってる問題 : デフォルトの名無しさん [sage] 2018/07/14(土) 09:02:37.98:5xFWH4XP 便利っつーかモジュラリティーの低い構造になってるだけだろ。。 バカ設計だわ。 : デフォルトの名無しさん [sage] 2018/07/14(土) 10:21:42.77:7J+9ARNC go使うよ。32bitsマシン以上向けならgoで十分だ。 : デフォルトの名無しさん [] 2018/07/14(土) 11:25:26.45:brBR1uF1 仕事じゃ使えないのは言語じゃなくてお前だって言われてるのに何故goが出てくる : デフォルトの名無しさん [sage] 2018/07/14(土) 11:57:28.13:7J+9ARNC Rust使えないから : デフォルトの名無しさん [sage] 2018/07/14(土) 14:38:38.90:HNobJoZ0 Rust(が/を)使えないから どっち : デフォルトの名無しさん [] 2018/07/14(土) 14:41:53.11:6PGIbnJP にほんごむずかしいあるね : デフォルトの名無しさん [sage] 2018/07/14(土) 14:53:02.90:fAbuOpO3 Rustの提案するエセソリューションは機械語のレベルと相性が悪い CやC++のほうがまだまともなアプローチしてる : デフォルトの名無しさん [sage] 2018/07/14(土) 15:01:24.24:3YOZASYs 「機械語のレベルと相性が悪い」が "All your base are belong to us" みたいに見えてきた なんかもう根本的に解ってないなっていう感じからくる面白さがある : デフォルトの名無しさん [sage] 2018/07/14(土) 15:14:29.28:HNobJoZ0 モジラに職を奪われたおじさんと そのおじさんの物まねをするおじさん達のスレ : デフォルトの名無しさん [sage] 2018/07/14(土) 15:18:04.39:n16W1iUj LLVMについていけないおじさん : デフォルトの名無しさん [sage] 2018/07/14(土) 15:22:17.69:P7IB+4yp Cやアセンブラなどの低レベルな処理と連動する場合unsafeを使わざるを得ないが、言語の仕様上普通に書くとunsafe祭りになってしまい ソースコードの可読性が低下するのが残念。抽象化したくてもこれまた仕様的に完全な抽象化が出来なかったりするし : デフォルトの名無しさん [sage] 2018/07/14(土) 15:47:47.15:7J+9ARNC gcが有って良いならgo。 ない方が良いならnimってことか : デフォルトの名無しさん [] 2018/07/14(土) 16:00:11.16:6PGIbnJP まだ学習し始めたばかりでみんなが何を言っているのかよくわからない。 : デフォルトの名無しさん [sage] 2018/07/14(土) 16:53:11.51:QBMXvyuq どいつもこいつも適当なことをそれっぽく言ってるだけだから気にしなくておk : デフォルトの名無しさん [sage] 2018/07/14(土) 16:57:03.73:7J+9ARNC ここはアンチの溜まり場だよ : デフォルトの名無しさん [sage] 2018/07/14(土) 17:09:58.35:lldWHLOY 今日は本物がいないな : デフォルトの名無しさん [sage] 2018/07/14(土) 17:28:07.35:veV9L5cz 一体いつからNimにはGCがなくなったんだ…?(困惑) : デフォルトの名無しさん [sage] 2018/07/14(土) 17:41:12.64:/EttrqmU 狂人の真似をすれば実際狂人 つまりみんな本物のRustに職を奪われたおじさんなんだよ : デフォルトの名無しさん [sage] 2018/07/14(土) 17:45:59.63:h94PG7c/ ttps://nim-lang.org/docs/gc.html RustはできないしNimも詳しくない専門性なしのおじさん : デフォルトの名無しさん [sage] 2018/07/14(土) 18:18:40.34:yo3MGbyq お前らもモジカスに親を殺されてみろよ : デフォルトの名無しさん [sage] 2018/07/14(土) 20:02:32.48:3YOZASYs バトー「つまり、本物の "Rustによる被害者" というのは最初の一人だけで、 残りは全て模倣犯による狂言だったってのか?」 トグサ「ああ。狂言を読んだ者は初めのうちは怒りを覚える。 だが、その理不尽な怒りを抱えきれなくなると、 衝動的に自らが "Rustによる被害者" になりすますことで、 狂言によって植え付けられた怒りを共有しようとしていたんじゃないか」 バトー「実在しない "Rustによる被害者" たちが連鎖するってわけか……。 ── 最初の一人はとうの昔に死んじまってるのにな」 : デフォルトの名無しさん [sage] 2018/07/14(土) 23:00:52.98:6hFYodEH 懐かしいなAYBか。文法エラーを直しても通じないのがいいよなw "All of your bases belong to us." "お前らの卑しいものすべては我々に首ったけ" ヒドイw : デフォルトの名無しさん [sage] 2018/07/14(土) 23:51:21.23:5xFWH4XP rustに職を奪われたおじさんなんて実際は存在しないわけだが。。 まあそういう人がいると思った方が幸せな人がいるのは事実。 : デフォルトの名無しさん [sage] 2018/07/15(日) 00:42:05.31:NkViXM6D Rustに職を奪われたおじさんなんて名称なんてどうでもよくて fibも書けない確かな"存在"がぐちぐち居座るせいで幸せになれない : デフォルトの名無しさん [sage] 2018/07/15(日) 02:53:02.00:x6haH/8s 良かった。Rustに職を奪われたおじさんは居ないんだ。 : デフォルトの名無しさん [sage] 2018/07/15(日) 10:56:41.89:NalVqF46 NLLがstabilizeされたらfibを書けないおじさんもfib書けるようになって成仏できるよ : デフォルトの名無しさん [sage] 2018/07/15(日) 11:00:28.92:rsj4GyZ/ 「fibを書けないアホ」が「木構造を書けないアホ」に変わるだけと予想 : デフォルトの名無しさん [sage] 2018/07/15(日) 14:08:56.51:Um7D2OLN rustでfibが書けたり、木構造が書けることをここまで自慢してくる輩って。。 : デフォルトの名無しさん [sage] 2018/07/15(日) 15:31:20.30:rsj4GyZ/ 自慢も何もプログラマを名乗るなら最低限それくらい書けて当然だろ?ってこと 例えば、「俺は数学者だ」とか言ってる奴が微積分すら理解出来てなくて 「でも、因数分解ならできるし」とか言ってたら全力でぶっ叩くだろ? つまりは程度の問題ってわけ そして俺はRustでfibや木構造すら書けない奴はどうせ他の言語使ったって ろくなコード書いてないだろうからそんな奴がプログラマを名乗るなんて片腹痛いわ!と思ってるだけ : デフォルトの名無しさん [sage] 2018/07/15(日) 15:42:24.47:ppRXQOVy このスレに迷い込んだ新規にはfibをどんな書き方をしたらrustで問題になるのか想像もつかない : デフォルトの名無しさん [] 2018/07/15(日) 17:23:07.93:upVjqm6g fibってなんですか? : デフォルトの名無しさん [sage] 2018/07/15(日) 17:23:57.93:vPMHyt9R >56でしょ? fibがかけなくて5時間も喚いた挙げ句 答えを大量に示されても礼のひとつも言えない 下らない批評をしては論破されて潜伏を繰り返しているあほ 「rustに職を奪われた」「fibを書けない」もこいつの本質ではないんだよな : デフォルトの名無しさん [sage] 2018/07/15(日) 17:58:08.24:f+8P4DFr ここはネタスレなんで : デフォルトの名無しさん [sage] 2018/07/15(日) 19:36:55.02:YZYcatpB もそもそも拾い物みたいだしなぁ…… (検索に引っ掛かる : デフォルトの名無しさん [sage] 2018/07/15(日) 19:51:13.58:H2FcMtiY ツイッターでrust-lang-ja.orgのドメインが〜みたいな話が先月からあるみたいだけど このスレでは誰も話題にしてない? : デフォルトの名無しさん [sage] 2018/07/15(日) 20:03:03.01:NalVqF46 fib拾いものなのか 正しくないfibすら書けないおじさんだったか : デフォルトの名無しさん [sage] 2018/07/15(日) 20:56:16.71:vPMHyt9R ttp://https://www.google.co.jp/search?q=%E2%80%9Ca352230e08bc0a76fb5f116bd3c7abf4%E2%80%9C "> ttps://www.google.co.jp/search?q=%E2%80%9Ca352230e08bc0a76fb5f116bd3c7abf4%E2%80%9C ? : デフォルトの名無しさん [sage] 2018/07/15(日) 21:35:06.48:YZYcatpB Slackでは話題に出てたけど ここでは出てないかな 流石にplaygroundには貼ったんでしょうね コード4行目で検索 : デフォルトの名無しさん [sage] 2018/07/15(日) 21:45:35.35:rsj4GyZ/ ほんとだ4行目だけを直接検索したら出た しかも解決法までご丁寧に解説してあった はそれも読まなかったのか… はたまた、読んでも理解できなかったのか… : デフォルトの名無しさん [sage] 2018/07/16(月) 16:06:24.68:NRqWPJmE 推察するに日本語が読めなくて、「できない」だけで飛び付いたんだろうなあ こんな奴でもC++は書ける(自称)って辺りが日本のプログラマの闇だな : デフォルトの名無しさん [sage] 2018/07/16(月) 16:24:01.28 軽々しくC++書けるなんて口にしようものなら茂みからマサカリが飛んでくるぞ : ◆QZaw55cn4c [sage] 2018/07/16(月) 16:41:06.37:PLRcL5uS C/C++ については、いつまでたっても「書ける」とはいいきれない存在ですね… 仕様が結構複雑だからなのか? : デフォルトの名無しさん [sage] 2018/07/16(月) 18:39:02.08:NeMQsq8I Rustは「書ける」んですか? : デフォルトの名無しさん [sage] 2018/07/16(月) 18:52:42.01:tJPrOapS Go使うよ。 : デフォルトの名無しさん [sage] 2018/07/16(月) 19:02:04.84:+TKchfUN perlがライトオンリー言語なんて言われていたけどリードオンリー言語なんてのもあるんだな。 ttp://wiki.c2.com/?ReadOnlyLanguage rustはノミネートされてないから「書ける」と思うよ(すっとぼけ : デフォルトの名無しさん [sage] 2018/07/16(月) 19:32:53.55:PkmPgg8A 確かにAppleScriptは中途半端に英文風で多彩かつ何でこれダメなのってパターンも多くread onlyに相応しいな 昔はAdaの称号だったと思うが : デフォルトの名無しさん [sage] 2018/07/17(火) 01:20:02.37:XTfqg8Os Eclipse Corrosion使ってるやついないの? : デフォルトの名無しさん [sage] 2018/07/22(日) 20:18:59.26:6WNc4gpj Rustでプラグイン機構を持ったアプリを作る場合、本体とプラグインでjsonでやり取りするのが無難? それとも動的リンクでいける? : デフォルトの名無しさん [sage] 2018/07/23(月) 00:12:51.84:t7f2tjaz jsonでどうやるんだ。 ttps://crates.io/crates/libloading : デフォルトの名無しさん [] 2018/07/23(月) 00:44:55.55:CBB4e6ta それOSやRustコンパイラがどういうコード作るかによるのでは? なんとなく出来そうな気はするけど。 : デフォルトの名無しさん [sage] 2018/07/23(月) 07:41:05.29:NoHfy/qo コンパイラのバージョンアップでABI変わる可能性があるから * 本体とプラグインが同じバージョンでコンパイルされてることを保証する * extern "C" なインターフェースだけ使う とかの工夫は必要そう : デフォルトの名無しさん [sage] 2018/07/23(月) 20:17:49.69:stexMLiC プログラミングRust待ちきれないどす : デフォルトの名無しさん [sage] 2018/07/23(月) 22:49:10.62:bEqql8cX extern "C"してもバイナリ互換のない変更したら同じじゃね? : デフォルトの名無しさん [sage] 2018/07/23(月) 23:00:36.98:83b6blUP 本体側からメモリマネージャをエクスポートして.dll/.so側に使わせるってできたっけ : デフォルトの名無しさん [sage] 2018/07/24(火) 16:50:44.53:IQ4K3J0H crates.ioで中身のない、クレート名の予約だけの人増えすぎじゃね? : デフォルトの名無しさん [] 2018/07/24(火) 17:20:04.73:YqCWjlto rustはweb周りをもっと押したほうがいいな 新しいのに飛びつくのはあの連中(俺も)だからな : デフォルトの名無しさん [sage] 2018/07/24(火) 18:54:39.82:ycl+zs7h 未発達ってだけじゃ? : デフォルトの名無しさん [] 2018/07/24(火) 18:57:59.94:WBO96fmU 壁乳 : デフォルトの名無しさん [] 2018/07/24(火) 21:23:06.95:T8M86aw1 未発達かな hyperやactix webがあるじゃん : デフォルトの名無しさん [sage] 2018/07/25(水) 02:08:39.39:41CwtA3+ 未発達すき : デフォルトの名無しさん [sage] 2018/07/25(水) 07:51:39.69:+nGh1Sgi async awaitベースのtokioがでるまで待った方がよさそう : デフォルトの名無しさん [sage] 2018/07/25(水) 08:16:02.41:y0Nnx33q プログラミング言語Rust発売まだ? はやくして : デフォルトの名無しさん [sage] 2018/07/25(水) 08:52:37.24:UNILj0yW 今日からRustやってみる C言語とPythonとSchemeがちょっとずつしか分からないけど大丈夫かしら Rustで本格的にプログラミング覚えた人っていますかね...? : デフォルトの名無しさん [sage] 2018/07/25(水) 09:02:21.28:HwnrNSAw C++知らないと窮屈なだけで何でこんなもんが必要なのか意味不明じゃね : デフォルトの名無しさん [sage] 2018/07/25(水) 09:06:22.95:3qeF0zvT C出来るならありがたみ分かるだろ : デフォルトの名無しさん [sage] 2018/07/25(水) 14:41:08.64:XJO2lY6I Ready at Dawn Studiosって言うアメリカのゲーム会社が今後の開発は全てRustでするってよ : デフォルトの名無しさん [sage] 2018/07/25(水) 15:40:42.61:lJ8T3l+q 泡沫ゲームメーカーの : デフォルトの名無しさん [sage] 2018/07/25(水) 16:44:51.58:hO+Od1/n 海外だから多めに見てもらえる : デフォルトの名無しさん [] 2018/07/25(水) 21:16:35.03:ZMLutfsH 新しい言語だからrustからって人はなかなかいないと思うけどおすすめだな 根気は必要だけど : デフォルトの名無しさん [] 2018/07/25(水) 22:34:33.87:vRPwEy8/ これPHPが2%もあってPHPの代わりになるほどRustはまだ便利ではなさそうだな ttps://github.com/imos/icfpc2018 : デフォルトの名無しさん [] 2018/07/26(木) 04:24:33.95:5ROtQy7H 比較対象間違ってないか? : デフォルトの名無しさん [] 2018/07/26(木) 07:18:30.27:shfmC2IZ 意味不明すぎて笑ってしまった : デフォルトの名無しさん [sage] 2018/07/26(木) 19:48:41.24:HNM3rm3+ 初心者スレ無いようなのでここで質問させてください トレイトって他の言語で言うところのインタフェースみたいなもん? ttps://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できるインタフェースと違って 既存の型に対してあとからいつでも実装を保証?できる のがトレイト? : デフォルトの名無しさん [] 2018/07/26(木) 20:34:56.63:1GO/F9JV Selfが使えるかは言語の特徴でtraitの特徴じゃないんじゃない あと外部で定義されたtraitを外部で定義された型には実装できない制限がある : デフォルトの名無しさん [sage] 2018/07/26(木) 21:47:50.04:ZKUcprSN sheep.nakedがfalseなのはバグじゃまいか : デフォルトの名無しさん [sage] 2018/07/26(木) 23:37:04.68:MvIVysXV お前らそれよりtraitがコンストラクタ持ってることにツッコめよ。 Ready at DawnってCSやってたけどあれもrustで書くつもりだろうか。 : デフォルトの名無しさん [] 2018/07/26(木) 23:47:35.69:e6WqSqyg コンストラクタ? : デフォルトの名無しさん [] 2018/07/27(金) 06:21:45.73:iaaPZbOX 質問するための例でしょ、野暮だなあ : デフォルトの名無しさん [] 2018/07/27(金) 07:58:08.97:siMrDeDP write!マクロってキモい ttps://play.rust-lang.org/?gist=630529d9c9c65ee7e3a7ea9a2524e841&version=stable&mode=debug&edition=2015 : デフォルトの名無しさん [] 2018/07/27(金) 08:11:14.41:siMrDeDP write!マクロって本当キモい ttps://play.rust-lang.org/?gist=54a890fbc7093117363802bf84a9cd0a&version=stable&mode=debug&edition=2015 : デフォルトの名無しさん [sage] 2018/07/27(金) 13:30:16.26:Rp6Nmdy5 gowにはrustlungちう病気が出てくるぞ : デフォルトの名無しさん [sage] 2018/07/27(金) 20:15:16.26:/aLVAKNj ありがとうございます!もっと勉強します : デフォルトの名無しさん [sag] 2018/07/27(金) 21:04:57.34:/aLVAKNj そこなんですよ コンストラクタをトレイト側にかけちゃうのが何か凄み感じるんですよ インタフェースじゃせいぜいObject型で返すくらいのもんでして : デフォルトの名無しさん [sage] 2018/07/27(金) 21:53:15.63:454wB1N8 あ、これはやばい理解パターンだ。。 : デフォルトの名無しさん [sage] 2018/07/27(金) 22:10:22.71:lEyToVsI インターフェースは型だけどトレイトは型じゃないって気付いたときに理解が進んだ音がした : デフォルトの名無しさん [sage] 2018/07/27(金) 22:22:18.00:T6fu2z+/ Rust part6 ttp://mevius.5ch.net/test/read.cgi/tech/1532697692/ : 1001 [] Over 1000Thread このスレッドは1000を超えました。 新しいスレッドを立ててください。 life time: 166日 2時間 14分 54秒 : 1002 [] Over 1000Thread 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。 運営にご協力お願いいたします。 ─────────────────── 《プレミアム会員の主な特典》 ★ 5ちゃんねる専用ブラウザからの広告除去 ★ 5ちゃんねるの過去ログを取得 ★ 書き込み規制の緩和 ─────────────────── 会員登録には個人情報は一切必要ありません。 月300円から匿名でご購入いただけます。 ▼ プレミアム会員登録はこちら ▼ ttps://premium.5ch.net/ ▼ 浪人ログインはこちら ▼ ttps://login.5ch.net/login.php
凡例:
レス番
100 (赤) → 2つ以上レスが付いている
100 (紫) → 1つ以上レスが付いている
名前
名無しさん (青) → sage のレス
名無しさん (緑) → age のレス
ID
ID:xxxxxxx (赤) → 発言が3つ以上のID
ID:xxxxxxx (青) → 発言が2つ以上のID
このページは2ch勢いランキング が作成したアーカイブです。削除についてはこちら 。