■ このスレッドは過去ログ倉庫に格納されています
Rust Part5
- 1 :デフォルトの名無しさん:2018/02/11(日) 20:07:24.54 ID:ri7dLd1B.net
- Mozilla発のRust言語のスレ
公式
https://www.rust-lang.org/
https://blog.rust-lang.org/
https://github.com/rust-lang/rust
Web上の実行環境
https://play.rust-lang.org
前スレ
https://mevius.5ch.net/test/read.cgi/tech/1507970294/
- 2 :デフォルトの名無しさん:2018/02/11(日) 20:11:06.61 ID:ri7dLd1B.net
- >>1補足
関連スレ
プログラミング言語 Rust 4【ワッチョイ】
https://mevius.5ch.net/test/read.cgi/tech/1514107621/
スレタイと本文を簡素にして、リンクを追加
ワッチョイの有無は話し合って決めてくれ
- 3 :デフォルトの名無しさん:2018/02/11(日) 20:19:50.66 ID:Bow9SKgP.net
- ワッチョイが怖いアンチ専用スレ
- 4 :デフォルトの名無しさん:2018/02/11(日) 20:23:24.61 ID:A30L58fq.net
- 乱造されたくそ言語のひとつ
- 5 :デフォルトの名無しさん:2018/02/11(日) 20:50:40.14 ID:o0/wxHz/.net
- 真正キチガイとそのとりまき専用スレです。
- 6 :デフォルトの名無しさん:2018/02/11(日) 20:51:16.50 ID:o0/wxHz/.net
- 本スレ
プログラミング言語 Rust 4【ワッチョイ】
http://mevius.5ch.net/test/read.cgi/tech/1514107621/
- 7 :デフォルトの名無しさん:2018/02/16(金) 23:17:53.59 ID:Amur4Tpf.net
- Announcing Rust 1.24
https://blog.rust-lang.org/2018/02/15/Rust-1.24.html
- 8 :デフォルトの名無しさん:2018/02/17(土) 00:41:40.05 ID:hqbRKzvj.net
- http://wolfbash.hateblo.jp/entry/2017/07/30/193412
やはりRustはクソの言語未満
良識ある人はきちんとわかっている
- 9 :デフォルトの名無しさん:2018/02/17(土) 02:03:04.39 ID:E39jLpI9.net
- >>8
このブログが良識のある人の記事に見えるってのはある意味すごいと思う。
マジで言ってんの?ネタじゃなかったから単なるバカだよ?
Nimやったことないんだけど、このブログ書いた奴のせいで
俺の中でのNimへの風評被害が超激しいんだけど。
- 10 :デフォルトの名無しさん:2018/02/17(土) 20:05:16.72 ID:7f4EmjrX.net
- >>8
ネタにマジレスしてるはてな民多くてワラタ
2chもはてブも変わらねえな
インターネットはこうでなきゃな
- 11 :デフォルトの名無しさん:2018/02/17(土) 23:24:31.02 ID:kWt1jk5L.net
- >>9
正しくRustとNimを比較してRustにいいとこなどないと論理的に談断じてる
そこまで言うなら反論記事よろ
>>10
マジレスも何も事実じゃん
- 12 :デフォルトの名無しさん:2018/02/17(土) 23:54:44.59 ID:J1S1NncJ.net
- 金子勝とかNimキチガイとかrustアンチするにしても筋悪すぎるしアンチを装った信者の犯行では
- 13 :デフォルトの名無しさん:2018/02/18(日) 09:48:13.72 ID:KxaRPyjO.net
- Nimおじさんの布教の熱意は見習いたい
Rustオタは身内で盛り上がってるだけだからな
- 14 :デフォルトの名無しさん:2018/02/18(日) 10:06:29.06 ID:rF0gbaqf.net
- ここまで理論的な反論なし
まあできないんだろうね。言語未満Rust
- 15 :デフォルトの名無しさん:2018/02/18(日) 10:10:11.91 ID:rF0gbaqf.net
- Nimとの対比でRustは言語未満のゴミだと暴かれている上に
それを布教してるやつらは金子先生の鋭い指摘で詐欺集団だと暴かれているのに
信者は人格攻撃して矛先を反らすだけ
よっぽど反論できなくて悔しいんだろうね
- 16 :デフォルトの名無しさん:2018/02/18(日) 13:34:10.14 ID:MGQ/Ou+a.net
- 悔しいんじゃなくてバカらしい。
あと、書いたところでこっちにメリットがない。
具体的なメリットを提示してくれるなら書くかも。
反論記事なら雑だけど一応あった。
書いた後であまりのバカらしさに自ら記事を消したらしい。
アーカイブは残ってるから、それでも読んでろ。
http://ubnt-intrepid.hatenablog.com/entry/2017/10/03/135742
- 17 :デフォルトの名無しさん:2018/02/18(日) 15:07:59.73 ID:yl4ANYcz.net
- Rustはプログラミング言語未満というのは >>8 の意見だと思うけどプログラミング言語の定義が曖昧すぎて反論のしようがないしそれで勝利宣言されてもね
- 18 :デフォルトの名無しさん:2018/02/18(日) 16:22:00.83 ID:29WPmCUu.net
- >>16
書いたらモジラからお給金出るでしょ
>>17
意味のあるプログラム書こうとしたら
とたんに借用とかでコンパイル通らなくなってまともにプログラミング出来ないものがプログラミング言語と言えるのか?
まあMalbolgeやBrainfuckがプログラミング言語と呼べるキ◎ガイならRustもプログラミング言語かもね
- 19 :デフォルトの名無しさん:2018/02/18(日) 16:23:51.22 ID:29WPmCUu.net
- あとその人か反論記事消したのも
本当はRustが使い物にならないことを察してしまったけど
それを言うと信者に突撃されるからぼかして消しただけでしょ
表向きの理由で全消しするのは不自然だから
- 20 :デフォルトの名無しさん:2018/02/18(日) 17:02:55.71 ID:AoWf7oui.net
- ほんそれ
- 21 :デフォルトの名無しさん:2018/02/18(日) 17:24:33.90 ID:rbmqjGBD.net
- あぁ、Rustのネガキャンするとお給料がでるのか……
- 22 :デフォルトの名無しさん:2018/02/18(日) 17:25:09.88 ID:Cm7UHG2I.net
- 提灯記事書いてモジラからお金もらうにはどうしたらよいのですか?
- 23 :デフォルトの名無しさん:2018/02/18(日) 17:41:48.25 ID:oGsannLj.net
- 「俺がコンパイル通せるコード書けないからRustは糞」って主張で首尾一貫してるところはすごい
- 24 :デフォルトの名無しさん:2018/02/18(日) 17:44:53.63 ID:oGsannLj.net
- それとも世のRustで書かれてるアプリケーションは実はすべて別の言語で書かれているという主張だろうか
- 25 :デフォルトの名無しさん:2018/02/18(日) 17:45:28.72 ID:oGsannLj.net
- はたまたRustで書かれてるものはどんなものであれまともなものとは認めないかな
- 26 :デフォルトの名無しさん:2018/02/18(日) 18:02:38.46 ID:29WPmCUu.net
- 2番目が正解だな
- 27 :デフォルトの名無しさん:2018/02/18(日) 18:06:09.75 ID:29WPmCUu.net
- オープンソースでRustで書かれてるやつも
なんとかコンパイルだけ通したような
保守性も何もない個人が脳トレで書いたようなものばかり
まともな製品として書かれたコードはGithubにも見つからなかったぞ
ソースコード公開してるものがそうなんだから
企業がRust使ってると称するなにかは実際にはRustなんて使っておらず
適当な別の言語で書いてRust使ってると言えばモジラから金が出る
そういう仕組みと考えるのが自然な訳だ
- 28 :デフォルトの名無しさん:2018/02/18(日) 18:36:35.71 ID:MGQ/Ou+a.net
- で、このアーカイブ記事に対する論理的な反論はできないと。
あと、GitHubのまともなコードが見つからなかったって点も
どの辺がまともじゃないのかについてはコードでは示せないと。
それで自分の言葉に説得力があると思ってるのが不思議でならないんだが。
あと、俺にも「モジラからお金もらう方法」を教えて。
ホントにもらえるんだったら絶対に反論記事書いてあげるから。
- 29 :デフォルトの名無しさん:2018/02/18(日) 18:45:26.87 ID:rbmqjGBD.net
- ぐぇ crate uuid のインターフェースが換わりよった
ParseError が std::error::Error を impl しなくなったのは何故だ……
- 30 :デフォルトの名無しさん:2018/02/18(日) 18:52:54.71 ID:29WPmCUu.net
- >>28
なんで取り下げられた記事に反論しないといけないの?
取り下げたってことは「この記事は間違いだった」というメッセージでしょ
モジラから金貰う方法とか俺に聞くなよ
モジラのページにある自称Rust使ってる企業に聞いてくれよ
- 31 :デフォルトの名無しさん:2018/02/18(日) 18:54:29.18 ID:29WPmCUu.net
- >>29
な。Rustなんて使うからそうなる
一貫したインターフェースを提供することすらできん言語だ
- 32 :デフォルトの名無しさん:2018/02/18(日) 18:59:05.94 ID:XQEgm6DO.net
- 取り下げた理由も書いてあるのに読まずに決めてかかってるのほんとブレねぇな
- 33 :デフォルトの名無しさん:2018/02/18(日) 19:01:18.09 ID:yl4ANYcz.net
- まともな製品という言い方もそうだけどまともかどうかの判断基準は「俺が気に入るかどうか」以上のものがあるように読みとれなかったので議論にならない
論理的な会話ができてないのはどちらなんだか
- 34 :デフォルトの名無しさん:2018/02/18(日) 19:03:55.06 ID:rbmqjGBD.net
- >>31
レスしてもらったのはありがたいが
俺はお前さんから見ればRust信者だわ すまん
元よりどんな言語使ってもインターフェース変更はある
今回は、追従する作業に五分も掛からんかった
後はテスト流して終わり
インターフェースの変更が出来ないのを理由に
開発が鈍化されるよりマシだと思うよ
- 35 :デフォルトの名無しさん:2018/02/18(日) 19:04:52.12 ID:29WPmCUu.net
- クソな例挙げようと思ったが挙げるまでもなく>>29が素晴らしい例を出してくれたな
Nimの人のブログにもあったが、ロジックと関係ないスコープ切りが必要なせいでコードがスパゲッティになるとか、
ハッシュテーブルと所有権がコンフリクトして動的計画法が書けないとか
所有権のせいでそもそも循環グラフ書けないとか
いくらでもクソな所出してやれるが?
- 36 :デフォルトの名無しさん:2018/02/18(日) 19:09:06.24 ID:29WPmCUu.net
- それ以上に、難解すぎてロジックと関係ないコード上の手入れが膨れ上がって
結果ロジックにバグが増えたりインターフェイスの非互換が発生したりするんだよ
だから致命的に壊れた言語って言ってる
- 37 :デフォルトの名無しさん:2018/02/18(日) 19:16:07.43 ID:29WPmCUu.net
- >>32
だから信者からの突撃回避だろってそれ
- 38 :デフォルトの名無しさん:2018/02/18(日) 19:35:38.35 ID:1PPXAZA8.net
- 反論ブログの人が今でもRust書いてるのも、アイコンがRustのマスコットキャラなのも信者の突撃回避なのですね
Nimのブログ記事にブコメしてるのもみんな信者かMozillaの工作員なんですね
- 39 :デフォルトの名無しさん:2018/02/18(日) 19:38:46.94 ID:yl4ANYcz.net
- コンパイラが理解できない所有権の問題がある場合はunsafeというescape hatchがあってプログラマの責任でコードが書けるようになっている
これはすごく実用的な割り切りだと思うんだけど>>35はまた意見が違いそう
- 40 :デフォルトの名無しさん:2018/02/18(日) 19:44:23.34 ID:yl4ANYcz.net
- コンパイラが賢くあるべきなのか、コードを書く側が賢くあるべきかとい二つの考え方があって
>>35は後者、Rustは前者の立場をとっていて単純に趣味に合わないだけなんだと思うが
- 41 :デフォルトの名無しさん:2018/02/18(日) 20:00:00.93 ID:aEar2ian.net
- 比較対象にされてるNimはまともなプログラミング言語とのことで、まともな言語とはまともな製品を作れる言語とのことらしいが
そうなるとNimはRust以上に普及しててまともな製品がリリースされていないと矛盾しないか
- 42 :デフォルトの名無しさん:2018/02/18(日) 20:06:17.02 ID:29WPmCUu.net
- >>41
個人で作ってる言語と
国際的詐欺会社がバックにいるのとじゃどうしても個人が負けるわ
- 43 :デフォルトの名無しさん:2018/02/18(日) 20:10:47.25 ID:yl4ANYcz.net
- Mozillaが詐欺企業なんて聞いたことないけどどういう罪状があるのか詳しく教えて欲しい
- 44 :デフォルトの名無しさん:2018/02/18(日) 20:28:16.57 ID:FZoaWpvb.net
- こんだけアンチが常駐する言語スレも珍しい
PHPより酷く感じる
- 45 :デフォルトの名無しさん:2018/02/18(日) 20:33:28.85 ID:DdrYOgdV.net
- スレ人口少ないのもあるが常駐されたところで同じ主張繰り返すだけで特に実害がないからでは
別スレもあるし
- 46 :デフォルトの名無しさん:2018/02/18(日) 20:38:05.10 ID:yl4ANYcz.net
- ほんとうにMozillaが金をばらまいてRustを普及させようとしているなら断る人もいるはずで
世界的にやっているにもかかわらずそのことに言及してるのがこのスレにいる一人だけという時点で信憑性も何もないというのがね
- 47 :デフォルトの名無しさん:2018/02/18(日) 20:38:58.59 ID:yl4ANYcz.net
- 言語について批判できるんだから変なMozilla批判は引っ込めたほうが説得力持たせられるのに
もったいない
- 48 :デフォルトの名無しさん:2018/02/18(日) 20:55:59.22 ID:29WPmCUu.net
- 札束でぶん殴られて断れないような、そういう相手を選んでるだろうしな
あのMercurialもGitにボロ負けしてるから、資金で殴れば下るだろうって狙われたんだろう
- 49 :デフォルトの名無しさん:2018/02/18(日) 21:07:21.89 ID:MGQ/Ou+a.net
- >>30
お前しか「モジラに金もらってる」なんて言ってる奴がいないんだからお前に聞くしかないだろ?
バカなの?脳味噌に草でも生えてんの?
あとGitHubの件はスルー?コード例はやっぱり出せないの?
動的計画法はRustじゃ書いたことないから分からんけども、書けないのはお前だけじゃないの?
「書けない部分を具体的にコード例で示して」毎回言ってるよね?
「同じことを何度も言わせるな」って注意されたことないの?今注意したからもう同じこと言わせないでね。
循環参照についてはRcとWeak使えば書ける。可変にしたければさらにRefCell使えばいい。
それも何度も言ってるよね?ボケてんの?草以外に花も咲いてそうだな。
RcやRefCellが気に入らんならお前とはスタイルが合わないってだけの話だ。去ね。
- 50 :デフォルトの名無しさん:2018/02/18(日) 21:18:37.37 ID:MGQ/Ou+a.net
- あと最悪、動的計画法や循環参照がお前に書けなかったとしても、
書けてるやつのライブラリを使えばいいだけの話では?
自分で書くよりまずライブラリを探す。今の時代はこれが常識だろ?
車輪の再開発は勉強するときだけやってればいいんだよ。
- 51 :デフォルトの名無しさん:2018/02/18(日) 21:23:52.35 ID:29WPmCUu.net
- 今まで触れずにおいてやったのにそこまで言われたから言うけど
「書けないもの」の「ソースコード用意しろ」ってひどい矛盾したこといってるの分かってます工作員さん?
- 52 :デフォルトの名無しさん:2018/02/18(日) 21:27:56.00 ID:yl4ANYcz.net
- コンパイルが通らないソースコードなら書けるよね
- 53 :デフォルトの名無しさん:2018/02/18(日) 21:28:34.77 ID:yl4ANYcz.net
- どうせ次はRustは触るのも汚らわしいから書かないとか言うんだろうな
- 54 :デフォルトの名無しさん:2018/02/18(日) 21:29:02.25 ID:MGQ/Ou+a.net
- Rustでコンパイルエラーしてるソースコードを
コンパイルエラーした状態のままでいいから見せろって言ってるの。
あと、「C(他言語でも可)だとこう書けるのに。。。」っていうソースも載ってればベスト。
分かってもらえます?
- 55 :デフォルトの名無しさん:2018/02/18(日) 21:30:40.70 ID:yl4ANYcz.net
- borrow checkerについて文句言ってるんだからせめて型検査くらいは通ったソースにしてくださいね
- 56 :デフォルトの名無しさん:2018/02/18(日) 21:39:58.74 ID:29WPmCUu.net
- http://play.integer32.com/?gist=a352230e08bc0a76fb5f116bd3c7abf4&version=stable
これで満足?
- 57 :デフォルトの名無しさん:2018/02/18(日) 21:49:04.52 ID:yl4ANYcz.net
- http://play.integer32.com/?gist=97a7043af5e6ae63f81bc41b2eccc945&version=stable
- 58 :デフォルトの名無しさん:2018/02/18(日) 21:50:32.62 ID:yl4ANYcz.net
- HashMapのエントリーへのポインタは新しいエントリー追加したらreallocなどが呼ばれて無効になるかもしれないので取り回すのがそもそも間違い
- 59 :デフォルトの名無しさん:2018/02/18(日) 21:52:54.02 ID:MGQ/Ou+a.net
- ちゃんとソースコード読みこんでないから何がしたいのよく理解してないけど
取り合えずコンパイル通すだけならすぐ出来たよ。
http://play.integer32.com/?gist=9333d5344adb9cdf5ef8292a20ec6c24&version=stable
- 60 :デフォルトの名無しさん:2018/02/18(日) 21:56:25.20 ID:yl4ANYcz.net
- NLL有効にしたら元のコードでも通った
http://play.integer32.com/?version=nightly&mode=debug
- 61 :デフォルトの名無しさん:2018/02/18(日) 21:57:12.95 ID:rbmqjGBD.net
- 俺はスコープ切る方が好きかな〜
http://play.integer32.com/?gist=e73044b8a25fa1c2403ee1ccb74356f6&version=stable
- 62 :デフォルトの名無しさん:2018/02/18(日) 21:57:26.76 ID:yl4ANYcz.net
- URL間違えた
http://play.integer32.com/?gist=d9f081dd40e2e0d06e224dc0e20ee41c&version=nightly
- 63 :デフォルトの名無しさん:2018/02/18(日) 22:00:17.99 ID:xYBf7ssj.net
- 瞬殺されてて草
- 64 :デフォルトの名無しさん:2018/02/18(日) 22:21:47.77 ID:xYBf7ssj.net
- この流れ見ると、NLLはRustのハードルを思った以上に下げるのでは?と思わずにはいられない
- 65 :デフォルトの名無しさん:2018/02/18(日) 22:48:08.85 ID:MGQ/Ou+a.net
- その程度のエラーで投げるやつは少数派なんじゃ。。。とおれは思うけど。
まぁ、それでハードルが下がるのならそっちのほう良いとは思う。
けど、その程度で前に進めなくなるならすぐに別の問題にもぶち当たってやっぱり投げちゃうと思うよ。
そういう奴らはRustはともかく、多分C, C++でも自分で書いたバグに潰されると思う。
結局GC付きの言語でしか書けないんじゃない?
念のため言っておくけど、GC付きの言語を批判する意図はないよ。
おれTypeScript好きだし、Goも嫌いじゃない。
- 66 :デフォルトの名無しさん:2018/02/18(日) 22:57:58.52 ID:xYBf7ssj.net
- 確かにここが解決しても型合わせとかで匙投げそうだな……
型の方はScalaとかSwiftとか別の言語で似たようなのがあるから参考にできる文献多そうだけど
- 67 :デフォルトの名無しさん:2018/02/18(日) 23:36:51.46 ID:MGQ/Ou+a.net
- ジェネリックとトレイト境界の辺りとか最初は結構苦労した記憶がある。
特にfuturesクレートを初めて読んだときは?!??!?ってなった。
Rustは良い言語だけれど「難解」というところだけは否定できない。
そういえば、結局「モジラからお金もらう」方法教えてくれなかったなぁ。
お金欲しいのに
- 68 :デフォルトの名無しさん:2018/02/19(月) 00:25:45.37 ID:1MkUvafw.net
- ちゃんとしたもの作れるわけないだろという主張してたのが昔は複数いたと思うが
Quantumが出たあたりで流石に取り下げたようだが
モジラは詐欺会社と言い張る一人だけが猛烈に頑張ってる
- 69 :デフォルトの名無しさん:2018/02/19(月) 01:40:11.21 ID:Lpico4kN.net
- >>68
モーレツに墓穴掘ってるけどね
- 70 :デフォルトの名無しさん:2018/02/19(月) 10:56:52.97 ID:RCvG8f4a.net
- 安全性を最大限に気にしたい心配性な人向けの言語だよRust
そういう人たちはC/C++のコーディングで余計なことまで心配しすぎてストレスかかってるんだよ
かわいそうな人たちなんだよ
- 71 :デフォルトの名無しさん:2018/02/19(月) 12:11:45.20 ID:SrM6uAzC.net
- 心配しないと鼻から悪魔が出るのがC/C++なので心配しすぎということはない
- 72 :デフォルトの名無しさん:2018/02/19(月) 20:47:53.37 ID:Lpico4kN.net
- 例のアンチだが動的計画法がどうだ循環参照がどうだって騒いでたから
てっきりhtml5everくらい複雑なコード組もうとして悩んでたのかと思ってたけど
まさかのフィボナッチ数列でつまづいていたとは予想外だったわ
そういえば今年のstackoverflowのアンケート結果っていつ出るんだろう?
そもそも毎年いつ頃出てるのか知らないんだよね
これでRustが愛され言語ランキング1位から順位落としてたら
また「ついにクソ言語未満のボロが出てきたな」とか騒ぎだすんだぜきっと
- 73 :デフォルトの名無しさん:2018/02/19(月) 22:42:50.63 ID:soT5kWv3.net
- 前スレで、別のランキングでRustの順位が10位圏内に入ってなかったことについて
「工作ブーストが切れたな」とか言ってたからそういう方向になるんじゃね
- 74 :デフォルトの名無しさん:2018/02/20(火) 22:57:20.29 ID:fTmZl11b.net
- Rustが、コードのスタイルガイド「Rust Style Guide」と自動整形ツールを導入する理由。
コードをめぐる議論を省き、メンタルの負担を減らし、プログラマを参加しやすくする
http://www.publickey1.jp/blog/18/rustrust_style_guide.html
- 75 :デフォルトの名無しさん:2018/02/21(水) 00:44:44.35 ID:s9stOBAB.net
- unsafe使えば書けるだろ
C++みたいに全部unsafeな言語よりは安全
- 76 :デフォルトの名無しさん:2018/02/21(水) 13:18:06.33 ID:/K+AUWe/.net
- C++ならゲーム
C#ならWindowsフォームアプリケーション
PHPならWebアプリケーション
Pythonなら機械学習
Rustは?
- 77 :デフォルトの名無しさん:2018/02/21(水) 19:19:52.15 ID:ariB2x93.net
- ここはアンチが立てたキチガイ隔離スレです。
キチガイ以外書き込まないでね
- 78 :デフォルトの名無しさん:2018/02/21(水) 20:00:01.69 ID:RN4nUagC.net
- 本スレが過疎ってレベルじゃないし実質こっちが本スレだろ
隔離()スレに勢いで負ける言語があるらしい
- 79 :デフォルトの名無しさん:2018/02/21(水) 20:01:45.70 ID:ariB2x93.net
- まあそうなんだけどね
- 80 :デフォルトの名無しさん:2018/02/21(水) 21:13:09.57 ID:wTdoLSiT.net
- ほんとID:yl4ANYczは戦犯
コンパイルできない厨が最後のコンテンツだったのに…
- 81 :デフォルトの名無しさん:2018/02/22(木) 09:08:35.45 ID:L3BN3Bsr.net
- いわゆるnewtypeパターンをLLVM IRで見てみると
ごく単純なコードで使う分には中身の要素に最適化されてるけど、
それ使って配列を作っただけで最適化されなくなる
こんくらいでゼロコスト抽象化とか言ってるの?
typeでは新しい型作れないし、
結局新しい効率的な型を作る方法さえないんだな
- 82 :デフォルトの名無しさん:2018/02/22(木) 09:11:43.41 ID:3phG5Adg.net
- 私にも敵が視える
- 83 :デフォルトの名無しさん:2018/02/22(木) 12:12:42.57 ID:rPAqV5nw.net
- Rustで書くと実行時のメモリ使用量が増える感じは確かにある
- 84 :デフォルトの名無しさん:2018/02/22(木) 12:12:50.46 ID:nEiXxHSj.net
- >>81
トレイトの特殊化でも無理?
- 85 :デフォルトの名無しさん:2018/02/22(木) 12:45:10.40 ID:ETY6aWa8.net
- バグかもしれないからissue立てたら
- 86 :デフォルトの名無しさん:2018/02/22(木) 13:46:42.12 ID:H839Tp+8.net
- >>81
ゼロコスト抽象化はトレイトやジェネリクスを言っててnewtypeパターンは関係ないと思うゾ
Cに比べたらC++もRustもGoもランタイムの分だけメモリ使用量は増えるよね
C++にはランタイム存在しないとか大笑いなギャグを素で言う輩は知らん
- 87 :デフォルトの名無しさん:2018/02/22(木) 17:36:33.79 ID:z8mO3my1.net
- その理屈で言うとlibcもランタイムになりそう
- 88 :デフォルトの名無しさん:2018/02/24(土) 01:22:38.50 ID:it5yKGst.net
- 「Rust 1.24」リリース、コード整形ツール「rustfmt」をプレビュー導入 | OSDN Magazine
https://mag.osdn.jp/18/02/17/163000
> ビルドの速度は改善するが、出力されたバイナリの実行速度は少し遅くなるとしている。
- 89 :デフォルトの名無しさん:2018/02/24(土) 05:12:18.52 ID:sKnrWNZ+.net
- むしろ今まで並列コンパイルをしていなかったのかという驚きがね...
型推論とかボローチェッカーとか大変だろうしと思ってたが、並列コンパイルで早くなるのは助かるよね
- 90 :デフォルトの名無しさん:2018/02/24(土) 12:58:21.72 ID:xVNPO9ZK.net
- コンパイルを速くするためにプログラムの速度を犠牲にする
自称低級言語があるらしい
- 91 :デフォルトの名無しさん:2018/02/24(土) 13:22:49.17 ID:F+bRKUHR.net
- 言語じゃなくコンパイラの話だぞ
速度を求めたリリースビルドは並列なしに切り替えられる低級調製可能なコンパイラすごいよね(棒読み
- 92 :デフォルトの名無しさん:2018/02/24(土) 14:20:25.52 ID:Wx4opHQO.net
- 言語仕様には興味あるけど実装は興味ありませんって奇特な方には人気出そうな言語だね。
- 93 :デフォルトの名無しさん:2018/02/24(土) 14:24:58.18 ID:2/pmmfzJ.net
- 低レイヤ書く人は仕様より吐かれるバイトコードの方にしか興味ないから
完全にターゲティングに失敗してるよなこの言語
- 94 :デフォルトの名無しさん:2018/02/24(土) 15:42:04.98 ID:F+bRKUHR.net
- むしろコンパイルを通すことが難しくても効率的で安全なマシンコードを出力して欲しい奇特な人向けだけどな
性能無視して生産効率だけを求めるならボローチェッカーとかunsafeとかトレイトとか面倒な言語仕様はマジ辛い
ただ緩く書きたいだけならSwiftとかGoの方が絶対良いよな
ランタイムが馬鹿でかかろうが、goroutineが冗長コストだろうが、言語仕様が楽なそれらは生産効率が断然良い
- 95 :デフォルトの名無しさん:2018/02/24(土) 16:20:16.21 ID:VjJ87j7v.net
- 安全はともかく、Rustが効率的なマシンコードを出力するというのは同意しかねる
- 96 :デフォルトの名無しさん:2018/02/24(土) 22:13:15.47 ID:Z3ajdh1I.net
- やはりD言語が最強か
- 97 :デフォルトの名無しさん:2018/02/27(火) 14:30:57.99 ID:b6IHds+I.net
- ソースとマシンコードが一対一になる言語は安心感あるな
- 98 :デフォルトの名無しさん:2018/02/27(火) 14:35:36.74 ID:UR+NQY+Q.net
- やはりアセンブラか
- 99 :デフォルトの名無しさん:2018/02/27(火) 14:36:01.06 ID:MLnedvVc.net
- 【UFO】 山本太郎も横浜で遭遇 ≪W◇″型の発光体≫ 世界にテレパシー放送 【大宣言】
http://rosie.5ch.net/test/read.cgi/liveplus/1519704223/l50
- 100 :デフォルトの名無しさん:2018/03/01(木) 00:41:00.21 .net
- 【お知らせ】Packt出版より Network Programming with Rust が発売されました。
- 101 :デフォルトの名無しさん:2018/03/05(月) 15:59:00.63 ID:iGOVMObf.net
- https://play.rust-lang.org/?gist=0bed0aa16c0679665fee05cc6bfda41f&version=nightly
fn nanka() -> Option<u32>{
println!("nanka called");
None
}
fn nanka2() -> Option<u32>{
println!("nanka2 called");
None
}
fn nanka3() -> Option<u32>{
println!("nanka3 called");
None
}
fn main() {
match (nanka(), nanka2(), nanka3()){
(None, _, _) => println!("nanka ha None"),
(Some(_), Some(_), Some(_)) => println!("some"),
(_, _, _) => println!("else")
}
}
nanka2, nanka3が呼ばれなくて困る!って副作用があるパターンぐらいじゃないですか?
nanka1がNoneと判定した時点ですぐprintしてくれないものでしょうか
- 102 :デフォルトの名無しさん:2018/03/05(月) 19:46:36.35 ID:S3T8EfYp.net
- println!("nanka2 called"); とか副作用あるよね
- 103 :デフォルトの名無しさん:2018/03/05(月) 21:01:55.89 ID:YH1rjFLX.net
- まさに副作用あって呼ばれなきゃ困るパターン書いてて草
- 104 :デフォルトの名無しさん:2018/03/05(月) 21:44:52.21 ID:rDxXu9uq.net
- 遅延評価の言語ではないから言語仕様的に全部評価することが保証されてるからなぁ
副作用なくて同じcrate内に処理があるなら最適化で消えるのでは
- 105 :デフォルトの名無しさん:2018/03/07(水) 19:29:12.10 ID:LRCrToXv.net
- 横着してたから気づかなかった…
>>104
https://play.rust-lang.org/?gist=548477e609761c03d062880ceebec28a&version=stable
MIR見る限りあるっぽいです(これ副作用ないですよね?)
- 106 :デフォルトの名無しさん:2018/03/07(水) 21:27:53.74 ID:VXG6nm0Z.net
- 良く分からないけどReleaseにしてASM見ると消えてるみたい
MIRに対する最適化は現時点ではそれほどやられてなさそう
- 107 :デフォルトの名無しさん:2018/03/07(水) 21:51:00.14 ID:LRCrToXv.net
- >>106
Debugなのを忘れた状態で見てcall nanka2があったので駄目かと思っていましたが
Releaseだと消えるようですね、すいません
- 108 :デフォルトの名無しさん:2018/03/07(水) 22:06:37.97 ID:5W30026P.net
- 言語仕様で消えるってどっか書いてある?探したけど見つからんかった
- 109 :デフォルトの名無しさん:2018/03/07(水) 22:42:40.55 ID:MkNIh69G.net
- rust推進派のtanakhがrustのダメ出しを始めた
https://twitter.com/tanakh
- 110 :デフォルトの名無しさん:2018/03/08(木) 07:35:45.52 ID:VN6/Zkeb.net
- 会社大変だから許してあげよう
- 111 :デフォルトの名無しさん:2018/03/08(木) 09:01:09.79 ID:SDzhQ04b.net
- >>108
最適化の話だから言語仕様では決められてないと思う
- 112 :デフォルトの名無しさん:2018/03/08(木) 13:04:24.48 ID:XQ95i3sC.net
- あのtanakhですら擁護できなくなってきたRustとかいう何か
やっぱクソ言語じゃん
- 113 :デフォルトの名無しさん:2018/03/08(木) 13:05:40.24 ID:FYuhJ3+Z.net
- 逆にたなこふ氏が好きな言語って何だよ
Haskellくらいだろ
- 114 :デフォルトの名無しさん:2018/03/08(木) 13:10:19.32 ID:FYuhJ3+Z.net
- ほら
https://twitter.com/tanakh/status/907645555467104256
- 115 :デフォルトの名無しさん:2018/03/08(木) 13:42:39.37 ID:XQ95i3sC.net
- いくつか言語……?ってなるのが混じってるな
- 116 :デフォルトの名無しさん:2018/03/08(木) 17:46:17.85 ID:3H4xAb5h.net
- >>114
Rust評価高いくてGoは糞って評価だな。
- 117 :デフォルトの名無しさん:2018/03/08(木) 20:48:12.88 ID:Qr0iRnUQ.net
- 絶対一緒に仕事したくないようなコード書きそうな人柄なのがよくわかるのはいいことだね。
- 118 :デフォルトの名無しさん:2018/03/09(金) 02:34:49.09 ID:C5IjE5Kn.net
- スタック使うかヒープ使うか考えなきゃいけないしマジで低級言語だなRust
- 119 :デフォルトの名無しさん:2018/03/09(金) 09:09:56.97 ID:MtNghMxY.net
- 低級プログラミング言語というときの低級は必ずしも蔑む意味とはならない
- 120 :デフォルトの名無しさん:2018/03/09(金) 12:35:50.11 ID:Awo4Q9T/.net
- >>118は別に蔑んでないと思うが…
- 121 :デフォルトの名無しさん:2018/03/09(金) 12:41:07.31 ID:X+hGjMr5.net
- 118が低級
- 122 :デフォルトの名無しさん:2018/03/09(金) 13:10:31.19 ID:Awo4Q9T/.net
- どう読んでも>>118は事実を言っただけでrustを誉めても貶してもいないと思うが…
「CはPythonよりも低級言語」これC言語を蔑んでる意味で取るアホなんているの?
- 123 :デフォルトの名無しさん:2018/03/09(金) 17:25:20.32 ID:4MawrcZA.net
- 初心者は大体そのように取るよ
- 124 :デフォルトの名無しさん:2018/03/09(金) 17:29:38.88 ID:Oir5mzi3.net
- はいはいわかったわかった
- 125 :デフォルトの名無しさん:2018/03/09(金) 18:10:23.86 ID:TjQY2cN8.net
- 枯れてる言われて古いんだなと思ってそう
- 126 :デフォルトの名無しさん:2018/03/10(土) 02:47:36.63 ID:RGnl5SiL.net
- 高級言語のcobol最強ですかね
- 127 :デフォルトの名無しさん:2018/03/10(土) 04:12:59.75 ID:YINDWKAW.net
- 蔑んでいるように見えるのはあなた自身が心の奥底でRustを蔑んでいるのです
- 128 :デフォルトの名無しさん:2018/03/10(土) 07:06:56.73 ID:PbOmOUXH.net
- はいはいわかったわかった
- 129 :デフォルトの名無しさん:2018/03/11(日) 03:31:49.17 ID:UKNdLJMW.net
- 1つのstructにいっぱい詰め込むと初期化が面倒なんですが
- 130 :デフォルトの名無しさん:2018/03/11(日) 04:15:48.10 ID:4b/1QsDB.net
- new()用意しとけ
- 131 :デフォルトの名無しさん:2018/03/11(日) 13:22:28.79 ID:vP34sga0.net
- derive(Default)使えば
- 132 :デフォルトの名無しさん:2018/03/11(日) 13:57:51.99 ID:91F3yKR+.net
- よくインターネット上の広告で半年でエンジニアに!みたいなのあるけど、インターネット不得手、プログラム未経験者が真剣に半年頑張れば本当にそんなこと可能なんですか?
可能ならその理由はなんでしょう?人材が足りていないというのは存じ上げていますが
- 133 :デフォルトの名無しさん:2018/03/11(日) 13:58:22.81 ID:91F3yKR+.net
- ごめんなさい誤爆しました
- 134 :デフォルトの名無しさん:2018/03/11(日) 14:13:04.94 ID:zWe+i43K.net
- >>132
言われたことやるだけなら可能じゃね?
- 135 :デフォルトの名無しさん:2018/03/18(日) 21:30:14.47 ID:jQGugCpv.net
- >>8
今更だけどこれ書いた奴もブコメした奴も誰一人rustまともに使ったこと無さそうで草
- 136 :デフォルトの名無しさん:2018/03/19(月) 15:39:12.03 ID:dH7nnHk9.net
- >>135
少なくとも書いた奴はまともに使ってないだろうな
matchの仕様が理解できないからって仕様バグと決めつけてるアホだし…
- 137 :デフォルトの名無しさん:2018/03/19(月) 19:45:41.61 ID:ahbMAcYG.net
- 俺の技量不足なんだろうけどmutmut地獄は確かにわかる
- 138 :デフォルトの名無しさん:2018/03/19(月) 20:01:00.05 ID:dH7nnHk9.net
- >>137
mutが面倒ってのは分からなくはないんだが、かと言ってどうするの?
不変のほうをconstにすると次はconst地獄になるだけだよ
- 139 :デフォルトの名無しさん:2018/03/19(月) 20:11:12.51 ID:bbBltail.net
- C++erだったのでconst地獄はむしろ慣れてるので歓迎
- 140 :デフォルトの名無しさん:2018/03/19(月) 20:37:55.38 ID:+FMR/dfx.net
- 一方、記述の美しさを重視する Nim では let と var に分けた
- 141 :デフォルトの名無しさん:2018/03/19(月) 21:23:39.57 ID:dH7nnHk9.net
- Nimは引数を可変にしようとすると下記のようになる。
proc test(x: var string): string =
x = x & " world"
return x
var x = "hello"
let y = test(x)
echo y
関数宣言で引数にvarと書かなきゃ可変にできないんじゃRustとそれほど手間は変わらない
それに、宣言はvarと書かせるクセに呼び出し側がtest(var x)じゃなくてtest(x)となるのが解せない
これじゃ呼び出し側を見ただけじゃxが不変か可変か判断できない
C++と同じ類の過ちを犯してる
簡潔ではあるかもしれないが全然美しくない(美しいの定義によるが…)
https://play.nim-lang.org/?gist=9e8b6b6059cf8640f6c71fd2075b07c8
- 142 :デフォルトの名無しさん:2018/03/19(月) 21:32:11.25 ID:dH7nnHk9.net
- あとRustの場合はそもそもmutは出来るだけ使うなという方針だから
mutの記述が面倒なのはワザとやってるという点もあるし…
- 143 :デフォルトの名無しさん:2018/03/20(火) 08:39:12.91 ID:iuzVSye9.net
- なるほど
- 144 :デフォルトの名無しさん:2018/03/20(火) 14:11:19.46 ID:J0Id73NT.net
- > これじゃ呼び出し側を見ただけじゃxが不変か可変か判断できない
珍しいご意見ですよね。
- 145 :デフォルトの名無しさん:2018/03/20(火) 16:01:11.80 ID:/+MVnq9/.net
- >>144
よくよく考えるとRustも呼び出し側にmut付けること自体は必須ではないんだよな
所有権を借用するために大抵は&mutを書かされるってだけで…
渡す変数の型がもともと&mut Tだった場合は書かなくてもいい…
Rustの場合は呼び出し側で&mut書く羽目になる経験が多かったので
俺が勝手に「可変にしたければmutを絶対に書かないといけない」という勘違いをしていただけか…
でも、書かされた方が読むときには分かりやすいので個人的にはこっちの方が好き
俺自身がNimはどうしても好きになれなくて不満点を挙げたつもりが自ら墓穴を掘ってしまった感じだな
一般的にはNimの方がよっぽど簡潔で美しいのかもしれない…
ただ単に俺の感性の方が狂ってるだけっぽいな…
- 146 :デフォルトの名無しさん:2018/03/20(火) 16:05:30.99 ID:ck80uwiX.net
- そんな珍しくもない気もするが
- 147 :デフォルトの名無しさん:2018/03/20(火) 21:24:24.10 ID:kx/m1AUo.net
- 俺もそんな珍しくもないと思う
- 148 :デフォルトの名無しさん:2018/03/20(火) 23:15:30.72 ID:RYTCq15b.net
- 「変数」が値に名前を付けたイメージに人とメモリ領域に名前を付けたイメージの人と
- 149 :デフォルトの名無しさん:2018/03/21(水) 00:20:42.31 ID:mtmyqFMA.net
- データがメモリのスタック領域ヒープ領域あるいは別の領域などどこに記憶されるのかという低レベルなことを考慮しながらプログラミングしなきゃならない
変数とは何かと言えば
スタック領域の特定のメモリ番地に名前をつける行為でしかなく
所有権の委譲って何かと思えばそのメモリ番地の名前を変える行為でしかない
クソ
- 150 :デフォルトの名無しさん:2018/03/21(水) 21:34:47.63 ID:JvyRf7uK.net
- 分かりやすい説明だね
- 151 :デフォルトの名無しさん:2018/03/23(金) 00:30:01.20 ID:DIa3/8ef.net
- GBAのプログラムを書いてみたいな。どうせならRustでやってみるか
ARMポートあったよね。Thumbコードも吐けるのかな
とか思ってググっていたら先人がいた。考えることはみんな一緒かw
- 152 :デフォルトの名無しさん:2018/03/23(金) 08:40:36.80 ID:yG5SnYrv.net
- Unityが北欧のニートから生まれたって話を聞いて
Rustでゲームエンジン作ればワンチャンあるんじゃないかと思い始めてきた。
- 153 :デフォルトの名無しさん:2018/03/23(金) 08:44:26.71 ID:0DDzAR5J.net
- 気のせい。
- 154 :デフォルトの名無しさん:2018/03/23(金) 10:01:19.78 ID:+d3L/XtB.net
- あるかもね
- 155 :デフォルトの名無しさん:2018/03/24(土) 02:46:18.89 ID:Q4O/QWqD.net
- unsafe使い始めたらCのがやっぱ楽じゃね?ってことにすぐなる。
- 156 :デフォルトの名無しさん:2018/03/24(土) 07:57:37.67 ID:AYaIp/Or.net
- そしてメモリ周りのバグで悩まされた時にやっぱRustで書いときゃ良かったってなる
- 157 :デフォルトの名無しさん:2018/03/24(土) 11:41:10.67 ID:lA18Hk/y.net
- バグなんてメモリに限ったことじゃないのにね
- 158 :デフォルトの名無しさん:2018/03/24(土) 12:51:11.00 ID:6E9wdkyi.net
- 要因の種類が減るのは良いことだ
- 159 :デフォルトの名無しさん:2018/03/24(土) 19:57:38.34 ID:Hl/X5tEX.net
- rust未経験者なんだけど、この言語ってweb開発には向いてないの?
goより高度なこと出来るならweb開発も全然苦じゃないように思うんだけど
何かしらweb開発に向いてない要素あんるんかな?
- 160 :デフォルトの名無しさん:2018/03/24(土) 20:11:16.11 ID:lcHhOSrB.net
- DOMいじれんの?
- 161 :デフォルトの名無しさん:2018/03/24(土) 20:22:46.33 ID:Hl/X5tEX.net
- ごめん。聞き方がふんわりしてた。
webのバックグラウンドで動いてるrestAPIサーバに向いてない要因は何かあるのかな?
SPAとかマイクロサービスとかの構成でjavaとかgoとかの代わりに成り得るのかなって。
- 162 :デフォルトの名無しさん:2018/03/24(土) 20:22:52.79 ID:6E9wdkyi.net
- 一応WebAssemblyで吐けばRustのコードとJavaScriptのコードを混在出来るけど
軽く触っただけなんでデバッグなどの開発環境の事は未知数
- 163 :デフォルトの名無しさん:2018/03/24(土) 20:22:54.62 ID:eKuOy/a9.net
- >>160
無理
- 164 :デフォルトの名無しさん:2018/03/24(土) 20:25:44.26 ID:bGodUaM+.net
- サーバ側でしょ?言語としては代わりになるだろうけどwebに向いてる部分てのが何を指してるかによるんじゃない
- 165 :デフォルトの名無しさん:2018/03/24(土) 20:33:09.05 ID:Hl/X5tEX.net
- hello world出たからもう初心者と言っても過言ではない。。
>>164
個人的には静的言語ならどれも大差ないと思ってるんだけど、
その方面では全然注目されてないように見えたから何か原因があるのかなって。
- 166 :デフォルトの名無しさん:2018/03/24(土) 20:36:37.33 ID:6E9wdkyi.net
- >>161
以前Goでサーバーサイド書いたことあって、バイナリ一つデプロイするお手軽さがとにかく良かった
といってもほんとに小機能で、WAFにEcho使って静的ファイル(CSS・画像)とか
レスポンスにDBから引っ張ったJSON返すRESTfulの出来損ないみたいのだけど
開発はWindows、デプロイ先がCentOSだったんだけど、
WindowsでCentOS用のバイナリ吐けるし、プロセスの再起動監視も今はDocker-composeがやってくれてるし(restart: always オプション)
Windowsで開発してPUSH、CIツールがCentOS用にバイナリ吐いて、CentOSではバイナリ受け取ったら
$ docker-compose down && docker-compose up -d --build
叩くだけでデプロイ完了っていう超絶お手軽、もちろんデプロイはAnsibleやItamaeで自動化しても良い
- 167 :デフォルトの名無しさん:2018/03/24(土) 20:51:06.97 ID:Hl/X5tEX.net
- hello worldが10個出た。
>>166
goのシングルバイナリ良さそうだよね。
全然分かってないんだけど、rustでもちょびっと頑張れば
クロスコンパイルできるって認識なんだけど間違ってるのかな?
- 168 :デフォルトの名無しさん:2018/03/24(土) 21:09:10.81 ID:6E9wdkyi.net
- Rust経験浅いんで良く分かってない、一応nickelってWAFあるしrustupでコンパイル出来るから土台はあるけど
RustってわりとカジュアルにC製のライブラリをdllとして利用してるからそこが未知数
まあそれらのライブラリを使わなきゃいいんだろうけど
- 169 :デフォルトの名無しさん:2018/03/24(土) 21:09:38.20 ID:6E9wdkyi.net
- rustupでクロスコンパイル
- 170 :デフォルトの名無しさん:2018/03/24(土) 21:17:38.55 ID:Hl/X5tEX.net
- FizzBuzz動いたー レベルアップ感ないけど
>>168
そうか。シングルバイナリじゃないとクロスコンパイル先の環境で動かすのは
なかなか大変そうやね。やっぱその分野はgoが強いってことなんね。
- 171 :デフォルトの名無しさん:2018/03/24(土) 21:29:23.70 ID:LUxFSHaJ.net
- >>165
そういう観点なら学習コストが高いのがじゃくてんだと思う
- 172 :デフォルトの名無しさん:2018/03/24(土) 21:45:47.85 ID:glWbEBFl.net
- >>165
個人的にはGCありなしの差が大きい気はする。
特にweb系はGCがあって当たり前だから
急にlifetimeとか言われても…ってなりそうな。
C/C++だと結局脳内でlifetime管理してるから
そこの学習コストは相対的には低い。
- 173 :デフォルトの名無しさん:2018/03/24(土) 22:12:42.54 ID:AYaIp/Or.net
- >>172
おれもGC有り無しはでかい要因だと思う
今までJS, Ruby, PHP, Java辺りしか使うことのなかったWeb屋にとっては
「メモリ管理?なにそれ?おいしいの?」状態だろうし…
- 174 :165:2018/03/24(土) 23:05:16.49 ID:YaLUXLZ4.net
- >>171
>>172
なるほど。確かにWEB系だと短い納期+人海戦術で乗り切ることも多いから
そういうのには辛そうだね。でも言語仕様的にWEB(の裏のサービス)が不得意という
訳では無さそうだから、細く長くやるようなサービスなら導入もアリっちゃアリという認識でいいのかな。
>>173
そだね。なんにもわからんわw っていうかWEBやっててGCであんまり困ったことないかも知れん。
困ったことがないことに起因して難易度が上がった言語を「使いたいです」って提案するにはちょっと強引さが必要そうやね。
今、初心者用の練習問題やってるんだけどメモリの管理なんて全然出てこない。
みんなどうやってRUSTの勉強してるの?やっぱり何か動くもの作ってみるのが早いかな?
- 175 :デフォルトの名無しさん:2018/03/24(土) 23:11:45.93 ID:gYQh0+lt.net
- 簡単なApp serverならrocketが楽だった
早くstableで動くようになってほしい
- 176 :デフォルトの名無しさん:2018/03/24(土) 23:49:05.34 ID:AYaIp/Or.net
- >>174
ん?君もしかしてWeb屋なの?
そして「GCなし」ってのがどういう状態かよく分かってない感じ?
C or C++のご経験は?
- 177 :デフォルトの名無しさん:2018/03/24(土) 23:59:12.17 ID:Z79Bg+7E.net
- GCは甘え。
プロなら自分で管理するべき。
- 178 :デフォルトの名無しさん:2018/03/25(日) 01:19:49.91 ID:8WSI8ZZL.net
- GC無い言語でもファイルディスクリプタの解放は自前でする必要あるしリークの根幹はどっちも変わらんと思うけどな
むしろGC無い言語の方が循環参照の時の解放が面倒、C++でもweak_ptr使う必要出てきたり
- 179 :デフォルトの名無しさん:2018/03/25(日) 01:28:22.61 ID:4Rittzre.net
- c++はやっぱraiiが便利。
gcあったって結局outofmemoryerrorになるなからなぁ。
だったらrustのようにコンパイラが所有権やライフタイムをチェックしてくれるのはいいと思う。
けど学習障壁高過ぎとも思う。
- 180 :デフォルトの名無しさん:2018/03/25(日) 01:43:12.83 ID:U5SlEUJl.net
- Nodeのメモリーリークはみんな苦戦してるみたいだけど。
- 181 :デフォルトの名無しさん:2018/03/25(日) 01:51:32.26 ID:8WSI8ZZL.net
- Nodeは全部グローバル変数にするのが悪いんや
- 182 :デフォルトの名無しさん:2018/03/25(日) 02:05:56.01 ID:BP/bYIjb.net
- >>180, >>181
Nodeはよくメモリリークが問題とか言われてるけど原因はそこなの?
グローバル変数を平気で乱用するほど皆バカなの?
イベントハンドラの解除忘れとかじゃないの?
- 183 :デフォルトの名無しさん:2018/03/25(日) 02:09:49.87 ID:U5SlEUJl.net
- エラーにならないことが多すぎる。
忖度しすぎ言語の称号を与えたい。
- 184 :デフォルトの名無しさん:2018/03/25(日) 02:10:42.60 ID:U5SlEUJl.net
- Nodeの問題点を一言でいえば、Javascript。
- 185 :デフォルトの名無しさん:2018/03/25(日) 03:01:01.34 ID:wEE2niQx.net
- >>174
コストかけられるなら規模の大小関わらず大アリだよ
- 186 :174:2018/03/25(日) 08:53:35.72 ID:tMB2K7Zl.net
- >>175
ありがと。ちょっと試してみる。
>>176
ぽんこつWEB系IT土方だよ。javaとjavascriptくらいしかやってない。
javaでは走ってるGCがrustだと黒魔術によって必要ないっていう認識やで。
>>185
そうか。大アリか。ありがと。
- 187 :デフォルトの名無しさん:2018/03/25(日) 09:17:52.51 ID:2sZ1RJA+.net
- >>182
イベントハンドラ解除は他言語でも明示的に書く必要ある
だけどクラスのデストラクタ・ファイナライザに書いといて各スコープで変数の寿命をちゃんと管理するコーディングの基本を守ってるだけで問題ないと言える
ここはRAII使えるC++やRustが最強、なんせ何も書かなくてもスコープから外れたらそれぞれデストラクタ・Dropを呼んでくれるんだし
次点でC#のDisposeとusingなどの専用構文、Javaはtry..finallyあるから及第点
でもグローバル変数だとそんなの働かない、プログラマが仕様とにらめっこしながらリークに気を使わないといけない、めんどい
- 188 :デフォルトの名無しさん:2018/03/25(日) 10:33:04.02 ID:BP/bYIjb.net
- >>186
Cさえやったことないんじゃメモリ管理について説明するのは難しいな
ざっくり説明すると
C言語ではmalloc, freeを使ってプログラマが自力でメモリ管理を行う
よって、きちんとメモリ管理ができていない場合は実行時にバグになる。
対して、GCありの言語は実行時にGCがバックグラウンドで動いて自動でメモリ管理を行ってくれる
メモリ管理は実行時に自動で行われるのでプログラマは基本的にメモリ管理を行う必要はない
ただし、GCの挙動をしっかり理解していないとメモリリークのバグになることもある
そして、Rustはメモリ管理をコンパイラがコンパイル時に行う
つまり、メモリ管理ができていない場合はコンパイルエラーになる
コンパイラが正しくメモリ管理を行うためにRustには
所有権・借用・ライフタイムというルールが存在する
このルールを守らないとコンパイルが通らないため絶対に理解する必要があるが
このルールをきちんと理解してコードを書くのがなかなかに難しい
それと、このルールを完璧に遵守しようとすると循環参照さえ出来なくなる
なので循環参照等の少し複雑なことをやろうとした場合は
標準ライブラリとして用意されているRc, Weak, RefCell等の使い方も知る必要がある
因みにRc, Weak, RefCellの中身ではunsafeコードが多用されていている
unsafeコードの中ではルールを無視できる代わりにコンパイラがチェックを行わない
つまり、unsafeの中だけはCと同じように自力でメモリ管理する必要がある
だからこの言語は他言語と比べて学習コストが圧倒的に高い
- 189 :デフォルトの名無しさん:2018/03/25(日) 10:35:30.44 ID:BP/bYIjb.net
- 「ざっくり」と言っておきながら気付けばそれなりの長文になってるな…
- 190 :デフォルトの名無しさん:2018/03/25(日) 10:49:11.63 ID:130KAu9X.net
- なんで聞かれてもいないことを長文で答えるのか
プログラマにはありがちだけど
- 191 :デフォルトの名無しさん:2018/03/25(日) 10:51:36.32 ID:GhdgZmXr.net
- >なので循環参照等の少し複雑なことをやろうとした場合は
>標準ライブラリとして用意されているRc, Weak, RefCell等の使い方も知る必要がある
>因みにRc, Weak, RefCellの中身ではunsafeコードが多用されていている
>unsafeコードの中ではルールを無視できる代わりにコンパイラがチェックを行わない
>つまり、unsafeの中だけはCと同じように自力でメモリ管理する必要がある
>だからこの言語は他言語と比べて学習コストが圧倒的に高い
この辺考えたら結局C++で、できる限りスマートポインタ使うってのと大して変わらなくね?
て話になりそう。
- 192 :デフォルトの名無しさん:2018/03/25(日) 11:32:48.19 ID:MQLp3NAe.net
- ライブラリの中でunsafe使ってたからといって、そのライブラリ使用したコード全てがunsafeになる訳でなし
気にし過ぎじゃないか
- 193 :デフォルトの名無しさん:2018/03/25(日) 12:12:47.18 ID:2sZ1RJA+.net
- いやなるで
unsafe内Cのリソース確保を呼んだなら同じく解放処理も呼ばないとリークする
- 194 :デフォルトの名無しさん:2018/03/25(日) 12:21:31.84 ID:5S2tvSOb.net
- >>193
いや、ならねーよ
内部でunsafe使ってるからunsafeになるなら関数にもunsafeつけて前提条件つけないといけない
- 195 :186:2018/03/25(日) 13:06:55.41 ID:tMB2K7Zl.net
- >>188
今やってるサンプル問題はその辺り無しでも解ける難易度だから
rustのつらみがイマイチ分かってないんだよね。
何個か前のスレにあった木構造っていうのをやってみればええんやろか。
難し過ぎるやろか。
>>190
こんなぽんこつに教えてくれてるんやからありがたい話やで。
- 196 :デフォルトの名無しさん:2018/03/25(日) 13:44:46.25 ID:NiWlHtrf.net
- >>187
JavaもC#みたいにできるようになりました…
どうせみんなKotlinとかScala使うからいいけど
- 197 :デフォルトの名無しさん:2018/03/25(日) 14:35:43.51 ID:wEE2niQx.net
- >>195
webか目的ならwebアプリを作るべきでしょう
使いもしないデータ構造やアルゴリズムなんて判断基準にならないでしょ
- 198 :デフォルトの名無しさん:2018/03/25(日) 14:38:16.26 ID:ndR60cG+.net
- java10出たってどうせ現場じゃ使わせてくれないんだろ?
んで未だにstrutsとかオレオレフレームワーク強要するんだろ?
- 199 :デフォルトの名無しさん:2018/03/25(日) 16:39:02.18 ID:I+zotbSu.net
- WindowsでRust使っている人ってほとんどいないんだろうな
rustupを実行する前にVC++をインスコしろとか書いてあるし
- 200 :デフォルトの名無しさん:2018/03/26(月) 00:20:12.61 ID:D5Wnx0sa.net
- 生で動かす組み込み系の情報収集をしているんだけど半年前よりはだいぶ増えた感があるけどまだまだ少ないなぁ
特にRust以外のツールとCargoの連携について説明されている記事はほとんど見あたらない
ローレベルではユーザーツールやアセンブラ、リンカとビルドシステムの連携は必須だからな
Cargo前提のRustだとシェルスクリプトやバッチファイルでビルドというわけにも行かないし(それらに必要な情報も同じく少ない)
既成のCライブラリやクレートを使う記事はちらほらあるけどそれらが使えないケースだと参考にならない
このへんで役立ちそうな記事って今のところこれくらいしか見つけられていない
ttps://nkon.github.io/Rust-embedded/
もっともRust抜きでも最近は高レベルのフレームワークを使っていたりOS上での動作だったりするからローレベルの情報は減少傾向だけど
- 201 :デフォルトの名無しさん:2018/03/26(月) 01:29:55.31 ID:TdhbSc50.net
- 「業務でRustを書きたいエンジニア募集!」みたいだよ
https://www.wantedly.com/projects/97207
- 202 :デフォルトの名無しさん:2018/03/26(月) 01:31:01.61 ID:TdhbSc50.net
- >>201
ごめん、募集終了してたわw
- 203 :デフォルトの名無しさん:2018/03/27(火) 09:28:53.61 ID:OlyQwcXt.net
- 集まったのかな?それとも応募が無かったか。
どちらにせよ気概は応援する
- 204 :デフォルトの名無しさん:2018/03/27(火) 09:38:34.01 ID:e5+YaH9t.net
- 会社的にゲームのサーバーサイドかな
C++からの乗り換えならビルド時間の削減が一番効果あるかもね
- 205 :デフォルトの名無しさん:2018/03/27(火) 13:51:08.35 ID:7OwU1Hvz.net
- ニコ生は、Rust で、各サーバーに分かれているシステムを、
統合しようとしているらしい
Rust, Elixir は注目されてる
- 206 :デフォルトの名無しさん:2018/03/27(火) 14:06:18.97 ID:k3vzHZG7.net
- >>200
rustでおもちゃのOS書いてる(た)んだけどローレベルな部分にも適してるみたいなことを謳ってる割にcargoがほんとクソなんだよなぁ
- 207 :デフォルトの名無しさん:2018/03/27(火) 21:01:56.04 ID:14Lqu+tl.net
- >>206
またcargoがクソって話か…別にそれほど使いづらいとは思わないんだけど…
(使い方に関する情報が少ないという意味で使いづらいという意見なら分かるんだけど…)
どこら辺がクソと思ってて、どうなってれば満足なわけ?
なんだか実現不可能なくらい賢いツールを「ないものねだり」してるように聞こえるんだよね…
というわけで、実在するツールで最も理想に近いツール(もちろん他言語のパッケージ管理ツール)の例を挙げてくれる?
- 208 :デフォルトの名無しさん:2018/03/27(火) 21:18:04.54 ID:IpDwkilL.net
- Rustのwebフレームワークでなんとなく一番使えそうなRocketとかいうのがnightlyでしか動かない
- 209 :デフォルトの名無しさん:2018/03/27(火) 21:25:14.30 ID:OIszsbzb.net
- 組み込みでパッケージ管理ツールの需要はあまり無いはず。ビルド管理ツールの方が重要
しかも言語の垣根を越えて使いやすい奴
システムプログラミング用を謳っているんだから
「Cやアセンブラで生で動くプログラムを書いたことがあるんだけどRustに興味がある」
位の人を対象にしたチュートリアル的な物が欲しいな。もちろんある程度実践的な内容で
そういえば調べている中でLチカのウェイトにビジーループを使っているコーディング例がいくつも出てきた
自分はタイマと割り込みを使うのが普通だと思っていたんだけど(勉強するという意味でも)最近は違うのかな?
- 210 :デフォルトの名無しさん:2018/03/27(火) 21:43:56.53 ID:14Lqu+tl.net
- ビルド管理ツールでも良いから、とりあえず、使いやすいツールの例を挙げて欲しんだけど…
「〇〇というツールがあって、××が出来て便利。それに比べてcargoは…」みたいなさぁ…
「使いやすい奴」とだけ書かれても「使いやすい」の基準がさっぱり分からん
- 211 :デフォルトの名無しさん:2018/03/27(火) 22:08:40.15 ID:H//ajCL2.net
- >>207
ごく普通に使うぶんには俺もディスるほどではないとは思うよ
ただOS書いたりみたいな部分では不満を感じることが多かった
例えばビルドスクリプトとしてのbuild.rsがビルド前のいわゆるpreしかなくてpost的な使い方が出来ないとか
カスタムターゲット書くにしてもlinker-flavorとかそれに対応するリンカに渡されるオプションの一部とかがコンパイラのソースにハードコーディングされてるんで制約ばっかで柔軟性が低いとか
- 212 :デフォルトの名無しさん:2018/03/27(火) 22:34:11.89 ID:Ua6DMzOD.net
- rustのwebフレームワークはもうひと世代先のが出るまで本命は決まらなそうだ
- 213 :デフォルトの名無しさん:2018/03/27(火) 22:46:58.51 ID:OlyQwcXt.net
- >>207
> (使い方に関する情報が少ないという意味で使いづらいという意見なら分かるんだけど…)
自分で書いてるじゃん
- 214 :デフォルトの名無しさん:2018/03/27(火) 23:03:51.77 ID:YR27q37n.net
- >>209
タイマ割り込みは環境依存度が高いから、サンプルとして適さないんじゃね?
- 215 :デフォルトの名無しさん:2018/03/28(水) 00:25:40.40 ID:3jPJHf2H.net
- >>208
nightlyすぐコンパイルエラーになるよね
まあだからnightlyなんだけど
- 216 :デフォルトの名無しさん:2018/03/28(水) 01:12:15.92 ID:hFbEShK4.net
- hyperは非同期シングルスレッド対応してるけど、他のFWはまだ未対応でマルチスレッドベースばかりだね
ironは今はメンテされてないし、とりあえず業務で簡単なAPIサーバー構築時にはrocket使ったわ
- 217 :デフォルトの名無しさん:2018/03/28(水) 03:08:49.62 ID:qhZoJVUP.net
- >>205
ニコニコみたいな机の上でのお勉強しかできないバカばっか揃えた結果
クソみたいなサービスしか作れない技術力のない会社がRust使う選択したなら、
逆神でRustつかわないのが正しい選択って公になったようなもんだな
- 218 :205:2018/03/28(水) 04:23:23.13 ID:0was1dJs.net
- でも、ドワンゴ江添は「C++11/14 コア言語、江添 亮、2015」と言う、
神の書を書いてるから、一流の伝道師!
- 219 :デフォルトの名無しさん:2018/03/28(水) 05:59:49.92 ID:LrPDAu7h.net
- tokioがマルチスレッドを標準にしてくみたいだからhyperもマルチスレッドに寄ってくんじゃないかなあ
- 220 :デフォルトの名無しさん:2018/03/28(水) 10:37:01.81 ID:22eQoYIf.net
- RustのORMのDieselってテストに対応してますか?
開発用DB使うタイプ、モック使うタイプどちらでもいいんですけど…
- 221 :デフォルトの名無しさん:2018/03/28(水) 15:21:56.48 ID:nwQzoMBM.net
- >>218
典型的な机の上のお勉強だけ得意な人やん
- 222 :デフォルトの名無しさん:2018/03/28(水) 15:23:57.64 ID:YfKkqZvW.net
- ほんそれ
- 223 :デフォルトの名無しさん:2018/03/28(水) 20:51:49.08 ID:cpZrmao1.net
- てか奴はコード書いてないこと宣言してるしな。
そゆとこは正直で良いと思うが、プログラマとしてはクソだな。
- 224 :デフォルトの名無しさん:2018/03/29(木) 02:06:06.79 ID:0KWZ/AkQ.net
- 組込み開発者におくるMISRA‐C:2004―C言語利用の高信頼化ガイド、MISRA‐C研究会、2006
これは、日本の大企業から、猛者を数十人集めて、
欧州委員会に問い合わせながら作った本
C++11/14 コア言語、江添 亮、2015
それに比べて、江添はたった一人で作ったのじゃないか?
超人的すぎるやろw
- 225 :デフォルトの名無しさん:2018/03/29(木) 14:52:09.30 ID:x+HX/uzd.net
- 江添ってイケダハヤトみたいな胡散臭い人たちと同じカテゴリーなんでしょ
実力はないけど口が達者だから信者が多い
芸人向き
そのうち討論番組とかでテレビ出演とかしちゃいそう
- 226 :デフォルトの名無しさん:2018/03/29(木) 18:00:19.09 ID:Ys835l/3.net
- 江添は標準化委員会の一人だからな
一人で書けるのは確かに並大抵じゃないだろうが
一人で書けなきゃそれはそれでヤバイ
- 227 :デフォルトの名無しさん:2018/03/29(木) 21:37:04.51 ID:pNK8aPzF.net
- まあ次世代の池田信夫といっていいんじゃないかな。
- 228 :デフォルトの名無しさん:2018/03/30(金) 00:24:21.95 ID:IN/IsR4/.net
- やまもといちろう、清水亮、津田大介あたりだな
- 229 :デフォルトの名無しさん:2018/03/30(金) 00:59:44.92 ID:YF4CHAi5.net
- やまもといちろうのしったか芸は凄いw
- 230 :デフォルトの名無しさん:2018/03/30(金) 12:34:16.32 ID:IN/IsR4/.net
- ニコ生ってたしかRust使ってるんだっけ?
Rust江添の今後に期待
- 231 :デフォルトの名無しさん:2018/03/30(金) 14:08:12.82 ID:82JQsmMo.net
- >>230
だからニコニコごときが選択したってことは使えん技術ってことだろ
ネトフリとかが採用したら考えるが
- 232 :デフォルトの名無しさん:2018/03/30(金) 14:10:51.95 ID:82JQsmMo.net
- Rust採用事例
ニコニコ←負け組
火狐←負け組
Mercurial←負け組
泥箱←個人情報お漏らし
採用する気にもならん事例のオンパレード
- 233 :デフォルトの名無しさん:2018/03/30(金) 14:13:18.93 ID:82JQsmMo.net
- 顔本もテストプロジェクトかなんかで使ってた記憶があるが、
そういやここもお漏らししたっけな
- 234 :デフォルトの名無しさん:2018/03/30(金) 14:14:12.95 ID:XUq2/9hV.net
- 【悲報】Packt出版より出る予定だった Rust Blueprints が出版取消されました。
- 235 :デフォルトの名無しさん:2018/03/30(金) 14:16:08.36 ID:82JQsmMo.net
- >>234
資源の無駄だからな。当然の結果
- 236 :デフォルトの名無しさん:2018/03/30(金) 18:11:51.70 ID:2SqbRzP3.net
- また来たのかよ
- 237 :デフォルトの名無しさん:2018/03/30(金) 18:23:23.77 ID:IN/IsR4/.net
- Rustってキラーアプリあんの?
- 238 :デフォルトの名無しさん:2018/03/30(金) 18:37:40.08 ID:ksXSxVO9.net
- ErlangとScalaもディスってるんだ
https://github.com/dwango
- 239 :デフォルトの名無しさん:2018/03/30(金) 21:33:06.96 ID:35t2qqJ0.net
- セキュアプログラミングとかいって締め付ければ締め付けるほど
インシデントが増えるw
本質はそういうところじゃないってことがよくわかる。
- 240 :デフォルトの名無しさん:2018/03/30(金) 22:18:13.79 ID:lc3QGxh+.net
- >>239
じゃあ本質はどこにあるんだよ?
自分には分からないからってだけが理由でそうじゃないと決めつけるのは勝手だけど…
- 241 :デフォルトの名無しさん:2018/03/30(金) 22:28:24.32 ID:35t2qqJ0.net
- 開発効率やランタイム速度を気にしなけりゃ既存の言語でも安全に作るなんてのは
簡単なんだよ。
そのトレードオフをどれだけ解決できるかが本質。
- 242 :デフォルトの名無しさん:2018/03/30(金) 23:00:52.49 ID:OoWw053g.net
- 開発効率やランタイム速度を気にしないことが本質?
- 243 :デフォルトの名無しさん:2018/03/30(金) 23:58:55.57 ID:dpNxQVLw.net
- おぉっとここで日本語の分からないバカが登場〜
- 244 :デフォルトの名無しさん:2018/03/31(土) 00:49:07.16 ID:q0ZQKkqb.net
- >>241
安全に作るのが簡単ねぇ…
簡単だったらGoogleがバグ(セキュリティホール)の発見に
多額の報奨金を出すのはおかしいとか考えないのかね?
君にとっての"安全"の基準が分からないんだが…
- 245 :デフォルトの名無しさん:2018/03/31(土) 07:55:27.02 ID:9+5jHACw.net
- >>244
グーグルにとってみたらそっちのがよっぽど楽、つまり開発効率がいいからでしょ。
理解不足の人がいるようなのでもう一度言うけどトレードオフの問題だっつーの。
- 246 :デフォルトの名無しさん:2018/03/31(土) 09:33:15.73 ID:q0ZQKkqb.net
- >>245
極論だな
開発効率を無視するなら安全に作ることは可能ってことだろ
開発効率を無視するってのはつまり開発期間が無限大と仮定するってことだぞ
開発期間が無限大でなければ安全に作ることが不可能なら
それは実質、安全に作ることは不可能って事と同義だからな
結局言いたいことは"開発効率・ランタイム速度"と"安全"がトレードオフの関係にあり、
それをいかにして解決するかが本質ってことだろ
で、その"解決"が何を指すのかっていう一番肝心な部分が抜け落ちてるぞ
"トレードオフの均衡点をどこに置くべきかを探る"のが解決なのか
それとも"トレードオフの関係自体を壊そうとする"ことが解決なのか
あるいはその両方か
あと、Googleは開発効率を優先して報奨金を出してるわけじゃないだろ
そもそもリリースした後のものは開発ではなく保守なんだから
あれは完璧に安全なものを作るのは不可能だから苦肉の策として行ってるだけ
てゆーか、ツッコミどころが多すぎるんですけど…
- 247 :デフォルトの名無しさん:2018/03/31(土) 10:29:59.95 ID:E8qTp8R8.net
- >>238
もちろん
Erlangは状態中途半端にブッ壊すだけだし
Scalaなんてもはや新規で使うところどこにもねえだろ
- 248 :デフォルトの名無しさん:2018/03/31(土) 10:36:16.41 ID:E8qTp8R8.net
- >>246
バカじゃね?
Rustがその解決になってるかって観点がどこにもない
トレードオフの落としどころとしてRustにはなんの実績もないし、CやC++と周辺ツール合わせた環境に勝る性質もなにもないって言ってんの
ValgrindやCoverityみたいなツールに比べた優位性あるの?
ただ書きにくい言語がひとつ増えただけじゃん
- 249 :デフォルトの名無しさん:2018/03/31(土) 11:03:18.18 ID:wLUR9MAo.net
- お前が元気で帰ってきてくれてよかったよ
職は見つからなかったんだね
- 250 :デフォルトの名無しさん:2018/03/31(土) 11:12:27.60 ID:q0ZQKkqb.net
- >>248
"解決"が何を指すのかを聞いているのにそれには答えずに
Rustは"解決"していないとだけ答える…
会話が噛み合わない…どうすればいいのか…
- 251 :デフォルトの名無しさん:2018/03/31(土) 11:39:17.36 ID:q0ZQKkqb.net
- 実績がないって言うのもFirefoxの一部は既にRustで置き換えられてるのに
君がそれを実績として認めないってだけだろ
ブラウザを一から実装しなおして、それが大きなバグを出すこともなく
Chromeと同レベルの実行速度を実現してるってだけでも充分に実績として認められると思うが。
Chromeに比べればシェアは少ないがそれでも世界中で数百万という人間がFirefoxを使ってるんだぞ
- 252 :デフォルトの名無しさん:2018/03/31(土) 11:41:20.61 ID:D1vbg0pQ.net
- そこは何億人ものって言わなきゃw
- 253 :デフォルトの名無しさん:2018/03/31(土) 11:43:55.45 ID:q0ZQKkqb.net
- >>252
数百万はかなり適当に発言した
実際はどれくらいなんだろうな?
- 254 :デフォルトの名無しさん:2018/03/31(土) 11:46:03.70 ID:0efq0OdT.net
- 3億人くらい?
- 255 :デフォルトの名無しさん:2018/03/31(土) 13:24:58.66 ID:yT2VCMNA.net
- Javaなんて30億のデバイスで動いてんだぞ!
- 256 :デフォルトの名無しさん:2018/03/31(土) 14:14:44.03 ID:ApL2p8x0.net
- >>251
せめてchromeと同じシェア取ってから言って欲しいもんだ
- 257 :デフォルトの名無しさん:2018/03/31(土) 14:32:47.34 .net
- Write once, run anywhere なんていう開発プラットフォームがあるらしい
Electronって言うんだって
- 258 :デフォルトの名無しさん:2018/03/31(土) 14:34:08.51 ID:NaIZlBM+.net
- native modules はい論破。
- 259 :デフォルトの名無しさん:2018/03/31(土) 15:26:33.15 ID:tztr1ir/.net
- chromeメモリ食いすぎなのでfirefox59に乗り換えたよ
- 260 :デフォルトの名無しさん:2018/03/31(土) 15:27:50.28 ID:q0ZQKkqb.net
- >>256
"せめて"でChromeと同じシェアなのかよ。ハードル高すぎだろ
そんなのどんな言語使ったって数年じゃ無理だわ
もちろんChromeと同じC++を使って作り直しても無理だわ
どうやら君の御眼鏡にかなう言語はこの世のどこにも無さそうだな
- 261 :デフォルトの名無しさん:2018/03/31(土) 16:10:13.77 ID:ApL2p8x0.net
- Rustで書き直したら安全で高速なプログラムが簡単に書けるんだろう?
ならchromeのシェアを奪うのなんてすぐじゃないか
本当にRustにそれだけの性能があるなら
- 262 :デフォルトの名無しさん:2018/03/31(土) 16:22:16.04 ID:D1vbg0pQ.net
- Chromeは昔のIEと同じくらい危険なブラウザになってきたよな。
やはり危険度はシェアで決まるんじゃないだろか。
そもそもあれだけ複雑で奇怪で大きなソフトウェアにバグが無いわけないし。
いやもちろん、HaskellやJavaやJavascriptのような安全な言語で書かれていれば一切のバグは無いんだろうけどさ。
- 263 :デフォルトの名無しさん:2018/03/31(土) 16:22:59.14 ID:D1vbg0pQ.net
- ここRustスレだったかw
じゃあ、Rustのような安全な言語で書かれてればバグは無いんだろうけどさ。
- 264 :デフォルトの名無しさん:2018/03/31(土) 16:25:50.13 ID:D1vbg0pQ.net
- Chromeの開発者がRustで書き直したいと書き込んでるのは見たことあるけどな。
でも、書き直すったってそもそも発祥がKHTMLだしな。
Googleは出来損ないのブルドーザーみたいなもんだ。
- 265 :デフォルトの名無しさん:2018/03/31(土) 16:37:28.69 ID:ApL2p8x0.net
- HaskellはともかくJSやJavaは安全なのかね?
まあスレチだが
- 266 :デフォルトの名無しさん:2018/03/31(土) 16:52:02.69 ID:q0ZQKkqb.net
- >>261
>Rustで書き直したら安全で高速なプログラムが簡単に書けるんだろう?
誰もそんなこと一言も言ってないだろ。勝手に曲解しないでほしいな
C++よりはRustの方が設計が良いってだけ
そう言ったら次は"C++より良いって言うんならC++で書かれてるChromeより
Rustで書かれたFirefoxのシェアが少ないのはおかしい"って言い出すんだろ
既存資産はC++のほうが何十倍もある。資産が少ないってのはそれだけで不利だ
言語設計はダメだが資産の多いC++か、言語設計は良いが資産の少ないRustか、
どちらを選ぶかは人によって意見が変わるところだろう
資産の問題に関しては時間が解決してくれるかもしれない…希望的観測に過ぎないが…
>ならchromeのシェアを奪うのなんてすぐじゃないか
すぐなわけないだろ。
ブラウザを選ぶ基準なんて数え切れないほど色んな要素が絡み合ってるんだよ
その中には"なんとなく、みんなが使ってるから"なんてしょうもない理由も多く存在する
全ての人間が合理的な判断を下すわけじゃないんだ。そんな単純に事が運ぶわけがない
だから、ツッコミどころが多すぎるんだって…
- 267 :デフォルトの名無しさん:2018/03/31(土) 16:58:36.90 ID:D1vbg0pQ.net
- Boostはオナニーし過ぎのグロマンコみたいなもんだが使わざるを得ないって話か。
- 268 :デフォルトの名無しさん:2018/03/31(土) 17:01:22.81 ID:D1vbg0pQ.net
- Javascriptのお勉強をした結果、GCは何の解決にもならないことが分かった。
むしろ危険。
ライブラリがリークについて何も考えていないんだもん。
- 269 :デフォルトの名無しさん:2018/03/31(土) 17:02:54.36 ID:D1vbg0pQ.net
- なんでだろ〜なんでだろ〜と検索した結果、あの有名な企業のブログで解決策を発見。
曰く、ライブラリがリークするようにできてるから、一定時間で再起動とか。
そんなのが多すぎた。
- 270 :デフォルトの名無しさん:2018/03/31(土) 18:56:11.43 ID:ApL2p8x0.net
- ぐだぐだ言い訳してるのを総合すると
「モノは良いけど使い手が少ないせいで流行らない」ってか?
使い手が少ないのはものが悪いってことだろ。残念でした
- 271 :デフォルトの名無しさん:2018/03/31(土) 18:58:11.61 ID:ApL2p8x0.net
- Go言語見てみろ
モノはいろいろと微妙だがCやC++と比べて強烈な利点があるから、リリースがRustと同じか遅いくらいなのに流行ってるだろ
Rustはどうなんですかねえ?
- 272 :デフォルトの名無しさん:2018/03/31(土) 20:27:06.89 ID:PqROMcrp.net
- つまりPHPが最良の言語ってわけか
- 273 :デフォルトの名無しさん:2018/03/31(土) 20:42:09.87 ID:oZoT3jkC.net
- わざわざRustスレまできて延々粘着アンチとかかまってほしい爺さんみたいで見苦しいからやめろ
- 274 :デフォルトの名無しさん:2018/03/31(土) 20:45:48.24 ID:D1vbg0pQ.net
- >>273
かまってほしい爺さんに、かまってほしい爺さんみたいとかやめてくんない?
あんた人の心あんの?
- 275 :デフォルトの名無しさん:2018/03/31(土) 21:14:47.08 .net
- かま爺
- 276 :デフォルトの名無しさん:2018/03/31(土) 21:55:49.66 ID:dXOBbz7B.net
- いくらモノがクソでも流行ってるって一点で考慮に入れる必要はあるし、
逆にどんなに良いものでも流行ってなければ選外になるのは事実よね
PHPが流行ってるのは時代的に残念な背景があるとはいえ、
Goが流行るのは明確な理由があるんじゃないか?
- 277 :デフォルトの名無しさん:2018/03/31(土) 22:11:12.54 ID:7TTU0i1a.net
- それについて掘り下げる意義はないと思いますよ
- 278 :デフォルトの名無しさん:2018/03/31(土) 22:16:22.26 ID:dXOBbz7B.net
- まあ確かにないな
せめて日本語で本が出る程度には流行って欲しいが……
今のRustに足りないものってなんだろうな
RubyのRailsみたいに、ある領域のキラーフレームワークみたいなのが欲しいが
Rustがそれを作れる領域って今のところWebAssemblyくらいしかないんだよな
しかもそのWebAssemblyも、GCが入ったらGoとの立ち位置が逆転するし
- 279 :デフォルトの名無しさん:2018/04/01(日) 07:31:46.82 ID:QnuEAtVo.net
- それはgoが流行っている理由を語るのと同義ではないですか
- 280 :デフォルトの名無しさん:2018/04/01(日) 07:36:32.82 ID:nW/fPqLD.net
- Goこそブランドの影響だと思うけどなw
Googleって会社も初期メンバーこそキレキレの人間だったのかもしれんが
ブランドイメージが先行しだしたころから
そこにはそこに憧れて集っちゃった凡人がうじゃうじゃだということを忘れてはならない
- 281 :デフォルトの名無しさん:2018/04/01(日) 08:59:01.17 ID:aM38sJCa.net
- rustは
ゼロ抽象化みたいな機能ブランドに憧れて集まっちゃった凡人がうじゃうじゃだよね
- 282 :デフォルトの名無しさん:2018/04/01(日) 09:02:36.32 ID:N/JoH072.net
- 機能ブランドってなに?中身ないの?
- 283 :デフォルトの名無しさん:2018/04/01(日) 09:31:03.82 ID:r/SQKbFj.net
- ないよ。あったらもっと人集まってるよ
- 284 :デフォルトの名無しさん:2018/04/01(日) 09:41:07.81 ID:r/SQKbFj.net
- RustはCやC++を書くのに疲れた人のための言語という位置付けなのに
Rustを書ける奴は別にCやC++書くのに困らないって
イカれた習得難易度に作ってしまったのがそもそもの失敗
Rustのターゲットは別にRustなんて使わなくてもいいかそもそもRustを使えないかの二択
ドンピシャなターゲットが存在しないから流行りようがない
- 285 :デフォルトの名無しさん:2018/04/01(日) 09:51:30.48 ID:QnuEAtVo.net
- rustを書ける人でcやc++で困らないと結論した人が沢山いるということですか?
- 286 :デフォルトの名無しさん:2018/04/01(日) 10:13:31.75 ID:9alzQdGn.net
- >>284
>RustはCやC++を書くのに疲れた人のための言語という位置付け
これは事実だけど、C++より簡単に書けることを目指して作ったわけじゃなくて
ポインタ周りのバグ(特にバッファオーバーフローなどが原因のセキュリティホール)
に悩まされてきた人間のために作られた言語だからな
セキュリティを考えてない奴からすれば無用な長物にしか見えないんだろう
- 287 :デフォルトの名無しさん:2018/04/01(日) 10:21:58.94 ID:9alzQdGn.net
- >>286
訂正:無用な長物→無用の長物
- 288 :デフォルトの名無しさん:2018/04/01(日) 11:14:37.02 ID:r/SQKbFj.net
- >>286
Rustできちんとコード書ける実力あるなら
CやC++でもセキュリティホール作り込まないプログラミングできるだろって話な
- 289 :デフォルトの名無しさん:2018/04/01(日) 11:17:57.70 ID:FEh/C/xR.net
- てか「一応読み書きはできるようにはなったけどC/C++の落とし穴を知らないせいで危ないコード書いてる初心者」こそRustやるべきだよな
>>56みたいな
>>56がなんでエラーになるのか理解できないって事はC/C++でもvectorへの参照を何も考えないで使い回してたりするって事だし
- 290 :デフォルトの名無しさん:2018/04/01(日) 11:21:05.39 ID:r/SQKbFj.net
- ああそれはあるかもな
実用というより教育目的な言語としては確かにアリだ
- 291 :デフォルトの名無しさん:2018/04/01(日) 11:36:26.93 ID:9alzQdGn.net
- >>288
>Rustできちんとコード書ける実力あるなら
>CやC++でもセキュリティホール作り込まないプログラミングできるだろって話な
出来ないからC++ではValgrindとかのツール使ってチェックしてるんだろ
じゃあツールを必ず使うようにすればいいじゃんって話にはなるが…
- 292 :デフォルトの名無しさん:2018/04/01(日) 11:39:14.42 ID:9alzQdGn.net
- そもそもValgrindみたいなメモリリークをチェックする類のツールって
Rustのボローチェッカと比べるとどの程度信用できるのかね?
- 293 :デフォルトの名無しさん:2018/04/01(日) 11:47:08.80 ID:jrLYAFkE.net
- あまり信用出来ない
スマートポインタを(適切に)使ってればそもそも解放忘れはしないし
配列に確保しっぱなし系のリークは検知してくれない
- 294 :デフォルトの名無しさん:2018/04/01(日) 11:55:47.66 ID:9alzQdGn.net
- >>293
>あまり信用できない
>配列に確保しっぱなし系のリークは検知してくれない
そっか、やっぱりRustのボローチェッカには劣るか
>スマートポインタを(適切に)使ってればそもそも解放忘れはしない
「適切に」ってところがポイントだよね
たとえ熟練のC++erがどれだけ注意してコーディングしてたって
「うっかりミス」はいつか絶対に起きるんだし
- 295 :デフォルトの名無しさん:2018/04/01(日) 12:42:04.82 .net
- C++でボローチェッカをエミュレーションできないの?
- 296 :デフォルトの名無しさん:2018/04/01(日) 12:44:43.78 ID:BOTWSFOl.net
- C++ちゃんとかけるならRustも楽勝でしょ。
- 297 :デフォルトの名無しさん:2018/04/01(日) 13:57:47.26 ID:QnuEAtVo.net
- >>288
できないよ、人間だもの
- 298 :デフォルトの名無しさん:2018/04/01(日) 14:16:47.69 ID:1ng3UkJB.net
- valgrind使うと実行時間とてつもなく遅くなるし実行時間長いプログラムだと辛い
ASANでも2倍くらい遅くなるので辛いのは同じ
コンパイル時に静的に分かる方が嬉しいし、たまにしか通らないパスもチェックされるのでより安全
- 299 :デフォルトの名無しさん:2018/04/01(日) 19:22:10.86 ID:aM38sJCa.net
- まあ結局unsafe部分はチェックできないけどね。
その場合でもコンパイル通ったからと主張しだす輩で溢れてる。
- 300 :デフォルトの名無しさん:2018/04/01(日) 19:26:04.60 ID:QnuEAtVo.net
- どこに溢れてるの?
- 301 :デフォルトの名無しさん:2018/04/01(日) 19:51:17.12 ID:Vaw8NqEv.net
- 脳内
- 302 :デフォルトの名無しさん:2018/04/01(日) 21:39:06.35 ID:N/JoH072.net
- C++20では生ポが非推奨になるらしいけど
unsafeはチェックできないのと同様に意味がないですね
- 303 :デフォルトの名無しさん:2018/04/01(日) 21:53:26.11 ID:aM38sJCa.net
- 他言語呼んでもメモリリーク起きないとかこのスレでも喚いてた輩がいたわけだが。
drop trait を明示的に書かなっきゃならんとかそいつら全く理解してないだろ。
- 304 :デフォルトの名無しさん:2018/04/01(日) 21:55:16.18 ID:9alzQdGn.net
- >>302
非推奨になるってどういうこと?
rustみたいにunsafeブロックみたいなのを導入するってこと?
C++は基本的にはCとの互換があるから無理だと思ってたんだけど…
- 305 :デフォルトの名無しさん:2018/04/02(月) 11:44:35.64 ID:z3JOGYz+.net
- 生ポインタ使えることがC++の唯一のメリットなのに
それを非推奨にするなら別の言語使ったほうがマシだろ
- 306 :デフォルトの名無しさん:2018/04/03(火) 12:33:46.66 ID:GZlQK3q7.net
- RustがC++に実用面で勝ってることなんかある?
- 307 :デフォルトの名無しさん:2018/04/03(火) 13:06:14.98 ID:cmHjEB2c.net
- 勝っているかどうかは知らんが
cargo/crates.io相当のものがないから
新規アプリをC++で書く気はしなくなってしまった。
もしかして最近は便利になってたりするんだろうか。
- 308 :デフォルトの名無しさん:2018/04/03(火) 17:54:07.91 ID:lesCWZwY.net
- 全称命題にするからすぐ反論される
- 309 :デフォルトの名無しさん:2018/04/03(火) 21:15:38.01 ID:zqNShNDp.net
- ペチパーのわしでも書けるのが勝ってる
- 310 :デフォルトの名無しさん:2018/04/03(火) 21:18:30.15 ID:BzNmSsTz.net
- しかしインスタンスを変に共有しなけりゃ解放タイミングを
いちいち気にしなくていいって発想は面白い。
- 311 :デフォルトの名無しさん:2018/04/03(火) 23:40:54.16 ID:K5huRztI.net
- いや、それ当たり前のことだから。
- 312 :デフォルトの名無しさん:2018/04/04(水) 00:15:13.34 ID:e/ecM7t7.net
- RustでWebブラウザ作ってる人いるね
https://twitter.com/uint256_t/status/952818644433555456
- 313 :デフォルトの名無しさん:2018/04/07(土) 01:03:26.54 ID:T+RwBbo7.net
- 参照カウントガベージコレクションにもスマートポインタにも興味ないrust信者すごいね
- 314 :デフォルトの名無しさん:2018/04/07(土) 06:53:26.51 ID:k/xupSTU.net
- GCに興味ないのはともかく
BoxとかRcとかモロにスマートポインタだから興味ないとか以前の問題なんだが?
- 315 :デフォルトの名無しさん:2018/04/07(土) 07:02:17.22 ID:sb7KGbUH.net
- というかなんで今になって参照カウンタGCなんて超素朴なGC実装を引き合いに出すのかが分からん
Goですらそんなもん使ってねえぞ
- 316 :デフォルトの名無しさん:2018/04/07(土) 07:10:17.71 ID:sb7KGbUH.net
- ……まさかとは思うがC++のshared_ptrのことを指して参照カウントGCと称してないよな?
RustではRcとかArcがそれに該当するから、この文脈でも完全に的はずれになるが
- 317 :デフォルトの名無しさん:2018/04/10(火) 11:37:36.43 ID:pRwunYlM.net
- >>315
Swiftは参照カウント方式のGC採用していたような気がするが
ARCってやつ
- 318 :デフォルトの名無しさん:2018/04/12(木) 01:27:42.33 ID:JdbozTc/.net
- 久しぶりに見に来たらアンチが帰ってきてるじゃん。
せっかくだから、おれも反論レスを書き込むことにする。
- 319 :デフォルトの名無しさん:2018/04/12(木) 01:28:00.22 ID:JdbozTc/.net
- >>288
こんなこと言っちゃってる時点でセキュリティに気を使ってないのバレバレだよね
セキュリティ関係に詳しくなくて分からないんなら素直に分からないって言いなよ
- 320 :デフォルトの名無しさん:2018/04/12(木) 01:28:37.08 ID:JdbozTc/.net
- >>299
unsafeなんてC FFIしようとか考えない限りあまり使うことないよ
tokio-coreとかhyperとかhtml5everとかのソースコード見てきなよ
unsafe使ってる箇所なんて10箇所あるかないかってところだから。
コード全域に気を配らなきゃならないのか、たった10箇所程度に気を付けてれば良いのか、
どちらが楽(安全)なのかは火を見るよりも明らかだよね
- 321 :デフォルトの名無しさん:2018/04/12(木) 01:30:08.73 ID:JdbozTc/.net
- >>303
これに関しては自分がC FFIのコードを滅多に書かないから「そうだったっけ?」くらいにしか考えなかったけどよく考えたら全然違うよね。
まず、値渡しなら引数・戻り値ともに何の問題もない。そのまま渡せばいい。
ポインタ渡し(Box<T>)だった場合はCの関数の引数が所有権か借用のどちらを欲してるのかを確認して、
所有権を欲しがってるならBox::into_raw(x)で所有権を渡せばいいし、
借用が必要ならx.as_ref() as *const _ もしくはx.as_mut() as *mut _で渡せばいい。
戻り値の方ではC側から所有権が渡されてるはずだからBox::from_raw(px)でBox<T>に戻せばOK。
文字列(String)の場合はCStringに変換してから後はBox<T>と同様にinto_raw, from_raw使えばいいだけ。
Vec<T>とかを渡そうとする場合はx.as_ptr()またはx.as_mut_ptr()と場合によってはmem::forget(x)が必要になるんじゃないかな?
受け取る場合はVec::from_raw_parts(px, len, cap)を使えばいいはず。(前述のとおりC FFIはあまり詳しくはないので間違ってたら指摘して下さい)
unsafeの中に何を書けば良いのかはC側のどんな関数を呼ぶのか次第で変わってくるけど、少なくともDropトレイトに関しては全く必要ない。
Box<T>やVec<T>等にあらかじめ実装されてるDropトレイトに任せればいいだけ。むしろ君はDropトレイト使って一体何する気だったのか…?
- 322 :デフォルトの名無しさん:2018/04/12(木) 01:30:27.15 ID:JdbozTc/.net
- Rustのアンチするのは一向に構わんが、せめて嘘をつくのはやめようね。
- 323 :デフォルトの名無しさん:2018/04/12(木) 03:23:54.50 ID:XYZqcSuW.net
- C FFIとやらを使うためにはRustの知識だけでなくCの知識も必要
Rustだけ学べばいいなんてことはない
- 324 :デフォルトの名無しさん:2018/04/12(木) 06:41:03.77 ID:1NMGlh89.net
- >>323
cの関数呼ぶんだから当然だろ
- 325 :デフォルトの名無しさん:2018/04/12(木) 09:05:15.80 ID:IekpLPdE.net
- >>321
Rustで確保したリソースをCに渡す場合は確かにdropいらないけど、
C側で確保したリソースについては必要では?
Cから何かハンドルが帰ってきて最後にCでcloseするパターン。
- 326 :デフォルトの名無しさん:2018/04/12(木) 11:33:57.87 ID:6MGFsFO1.net
- >>325
Rust側でDropしないためにDropの実装を上書きする必要があるということ?
- 327 :デフォルトの名無しさん:2018/04/12(木) 12:23:34.05 ID:IekpLPdE.net
- >>326
Cの関数内で確保したリソースは
当然Rustデフォルトのdrop実装では解放されないから
自分でdrop実装して解放する必要がある、という話。
- 328 :デフォルトの名無しさん:2018/04/12(木) 13:14:59.37 ID:JdbozTc/.net
- >>325
>>303は「メモリリーク」って書いてあるからヒープに確保されたメモリの解放に関しては
Dropトレイトを実装する必要性なんか全く無いってことを>>321で説明してる。
>>325の言ってる「リソース」ってのはファイルとかソケットとかのことを言ってるんだよね
そっちはメモリリークとはまた別の話になるので状況によるんじゃないかな…
ただ、OSが提供してるリソース(ファイルやソケット)くらいなら、File, TcpListenerとかには
Windows用とUnix用にそれぞれinto_raw_xxx(), from_raw_xxx(), as_raw_xxx()とかが用意されてるから
それを使えば後のことはFile, TcpListenerのdrop実装に任せてしまって問題ないはず。
C側(ライブラリ)で独自に実装されてるリソース(close等の後処理が必要な実装)の場合は
close部分をRustのDropトレイトの実装として移植する必要はあるだろうね。
(もう一度言うけど、自分は普段はC FFIを使わないから詳しくはないので、間違ってたら指摘して下さい)
- 329 :デフォルトの名無しさん:2018/04/12(木) 15:11:14.26 ID:UiqgOhpn.net
- >>328
メモリリークに限定するとしても
CでmallocしたポインタがRustに渡ってきた場合
Rustが勝手に解放するわけにはいかないから
drop実装してfreeを呼ぶ必要がある。
- 330 :デフォルトの名無しさん:2018/04/12(木) 17:39:03.84 ID:JdbozTc/.net
- >>329
ちょっと言ってる意味がわからない
Cでmallocされたものであっても所有権ごと渡されていれば解放の責任はRustにある
ていうか、Rust側で勝手に解放しちゃいけないと言ってるのに
Dropトレイトの実装でfreeしたらやっぱりRust側で勝手に解放しちゃってるじゃん
言ってること矛盾してない?
CとRustで型のメモリレイアウトが一致してればあとはBox型に任せるだけだよ
Cから渡されてくるポインタの型のメモリレイアウトが公開されていなければ
(つまりvoidポインタだったりオペーク構造体(オペークポインタ)だったなら)話は別だけど。
その場合はRustはハンドルをもらうだけでいかなる操作(メモリの解放(free)も含む)もC FFIでC側に
頼むしかない(メモリレイアウトがわからない限りはRust側ではどうあがいても何も出来ない)ので
Dropトレイト実装してdrop時にC側にメモリの解放処理も頼む必要がある
- 331 :デフォルトの名無しさん:2018/04/12(木) 18:12:43.26 ID:B4Vmqq7H.net
- FFIの場合jemallocかシステムのmallocかの違い問題になることありそう
- 332 :デフォルトの名無しさん:2018/04/12(木) 21:02:25.76 ID:EBEN0Rpp.net
- >その場合はRustはハンドルをもらうだけでいかなる操作(メモリの解放(free)も含む)もC FFIでC側に
>頼むしかない(メモリレイアウトがわからない限りはRust側ではどうあがいても何も出来ない)ので
>Dropトレイト実装してdrop時にC側にメモリの解放処理も頼む必要がある
だからDropトレイトを意識的に実装せにゃならんと始めから言ってるだろうに。
このタイプは絶対仕事でモメるわ。
- 333 :デフォルトの名無しさん:2018/04/12(木) 22:43:32.09 ID:JdbozTc/.net
- >>322
だったら「Rust側からはメモリレイアウトが分からないようなvoidポインタや
オペーク構造体がC側から渡された場合は」という前提条件をきちんと書け。
条件を何も書かずに「drop trait を明示的に書かなきゃならん」とだけ書かれれば
全ての場合で必要だと言っているようにしか見えない。
あと、>>321で「全く」と書いてしまったことは悪かったと思っている
>>321を書いてる時点は上記のような可能性に気づいていなかった…申し訳ない。
お前みたいに「特定の条件下でしか適用されないこと」に対して条件を書かずに結論だけ書いて
「自分はきちんと伝えた」とか思っちゃってるキチガイとの仕事とかこっちの方から願い下げだから。
- 334 :デフォルトの名無しさん:2018/04/12(木) 22:50:55.21 ID:JdbozTc/.net
- >>331
そこは自分も同じことを思った。
mallocとjemallocの実装の中身とか見たことないけど、混在してても問題ないのかな?
- 335 :デフォルトの名無しさん:2018/04/12(木) 22:54:07.42 ID:JdbozTc/.net
- >>333 訂正
>>322 → >>332
- 336 :デフォルトの名無しさん:2018/04/12(木) 23:08:05.77 ID:9OO0KoJN.net
- >>330
「勝手に」の部分が曖昧だったので正確に書くと、
Rustはメモリ解放すべきタイミングは知っている
(すなわちCから受け取ったポインタのlifetimeが切れたとき)
Rustはメモリ解放の方法は知らない
(なぜならCのmallocがシステムのmallocなのかjemallocなのか別の何かなのか知るすべがないから)
なので方法について教えるためにdropを実装する。
(このdropでCのfreeを呼べば、mallocと同じメモリアロケータが保証される)
ちなみにメモリアロケータ間の互換性はないので、
例えばlibcでmallocしてjemallocでfreeすると多分SEGVする。
コード例は以下でもどうぞ。
https://stackoverflow.com/questions/31486519/how-do-i-free-a-char-allocated-via-ffi-in-rust
- 337 :デフォルトの名無しさん:2018/04/12(木) 23:35:57.15 ID:JdbozTc/.net
- >>336
マジか…mallocとjemallocは混在できないのか…
そうなると、C側でmallocされてれば必ずC側にfreeしてもらうしかないということか…
じゃあ今まで俺が書いた方法じゃダメなケースもあるじゃん…すまん。
自分の無知を晒す羽目にはなったが、むしろ今知れてよかったわ。
でも、そうなると新たな疑問が…
- 338 :デフォルトの名無しさん:2018/04/13(金) 00:47:00.07 ID:AYGoZS+y.net
- jemallocじゃなくてシステムのアロケーター使うオプションだかfeatureだか使えば良いかな
- 339 :337:2018/04/13(金) 01:19:50.99 ID:rxyiIXLh.net
- >>336
間違いの指摘と情報提供のお礼言うの忘れてた。Thanks!
あと、これってRustでのC FFI に限った話じゃないよね?
C同士でさえもアロケータに何を使ってるか次第で同じ問題が発生する。
Cは時々使ってたのに(しかも仕事で)これを知らなかったのはヤバいな…
恐らく今まではたまたま同じアロケータを使ってたから問題が起きてなかっただけか…
戻り値で文字列(char *)が来た時とかこっちで勝手にfreeしてたぞ…(^_^;)
まあ、どのアロケータ使ってるかなんて誰も気にも留めてなかったし大丈夫だろうけど、
今後は気を付けないとな…
- 340 :デフォルトの名無しさん:2018/04/13(金) 01:26:39.63 ID:V+3RqgGh.net
- すべての有用なライブラリがRust製にならない限り
Rustだけを学べばよいという状況は訪れずCやC++の習得も必須
- 341 :デフォルトの名無しさん:2018/04/13(金) 02:09:57.24 ID:zBD4nIN6.net
- >>339
どういたしまして。
C同士の場合は普通glibcへの動的リンクだし
LD_PRELOADとかでjemallocなんかに差し替えても
プログラム全体で差し替わるから特に問題にはならないかと。
もしメモリアロケータを静的リンクしたライブラリとかを使っていればまずいはず。
ただそういう場合はリソースハンドルっぽいAPIになりがちなので
そのままfreeしようとは思わないかもしれない。
- 342 :デフォルトの名無しさん:2018/04/13(金) 02:17:49.88 ID:I2PL3qG3.net
- >>340
そりゃそうだろ、なにいってんだ
- 343 :デフォルトの名無しさん:2018/04/13(金) 02:33:17.17 ID:nqEsOLBj.net
- やくに立たねー結局cか。rustって趣味だな。
- 344 :デフォルトの名無しさん:2018/04/13(金) 04:00:10.77 ID:V+3RqgGh.net
- C/C++だけ覚える
or
RustとC/C++を覚える
学習コスト高すぎRust
- 345 :デフォルトの名無しさん:2018/04/13(金) 10:22:17.48 ID:w0WUHq34.net
- >>343
趣味でモジラの栄養やるとかどんなドマゾだよ
- 346 :デフォルトの名無しさん:2018/04/13(金) 10:26:05.50 ID:w0WUHq34.net
- 今の会話見るだけでもRustがいかに欠陥言語かわかるのに
それでもRust使うって言うんだからなあ
全部C/C++で書く方が遥かに効率いいしバグも出んわ
- 347 :デフォルトの名無しさん:2018/04/13(金) 11:29:35.51 ID:EHHg9a+/.net
- C覚えるの必須当たり前ってんなら構文もっとC系に寄せれば良かったのに。
- 348 :デフォルトの名無しさん:2018/04/13(金) 12:06:18.44 ID:ybbP8EF+.net
- 今までの流れからその結論は極端すぎるだろ
もう少し工夫しろ
- 349 :デフォルトの名無しさん:2018/04/13(金) 12:27:54.41 ID:zH6rmEat.net
- いつのまにか、FFI使うことが前提になってる流れって、rustをdisりたい勢の必死さがうかがえて、ある意味、面白い。
- 350 :デフォルトの名無しさん:2018/04/13(金) 12:52:00.31 ID:Lj3R2dXy.net
- >>339
CのfreeはNULLなら何もしないと保証されてるけど
解放済みアドレスへのfreeはセグフォ発生するぞ
- 351 :デフォルトの名無しさん:2018/04/13(金) 13:00:11.55 ID:w0WUHq34.net
- Cの資産に寄生しないとろくなもん作れないのに
そのCとの連携部分が腐ってるってことじゃん
使いもんにならねえって評価は妥当だと思うが?
それともPure Rustでまともなもん作れるつもりか?
- 352 :デフォルトの名無しさん:2018/04/13(金) 17:38:51.06 ID:l4JsQkL9.net
- まずまともなもんを先に定義してくれ
- 353 :デフォルトの名無しさん:2018/04/13(金) 18:09:45.57 ID:Z44eD8et.net
- バグらない
動く
実用的
上記3点の実績がある
- 354 :デフォルトの名無しさん:2018/04/13(金) 18:37:13.42 ID:rxyiIXLh.net
- 実用的・実積も曖昧だな
どの程度を実用的で実積があると呼ぶのか具体例を提示してくれ
突き詰めていくと「バグらない」も程度によりけりだしな
Excelだってバグるときゃバグるし…
- 355 :デフォルトの名無しさん:2018/04/13(金) 18:48:56.96 ID:lEd4ahw7.net
- 本スレは相変わらず過疎だしまじ終わったなこの言語
- 356 :デフォルトの名無しさん:2018/04/13(金) 19:00:16.55 ID:vyE43Z1D.net
- 話に入れないからって「………結局駄目!」ってダサすぎない?
- 357 :デフォルトの名無しさん:2018/04/13(金) 19:21:19.79 ID:EHHg9a+/.net
- jsのファミコンエミュレータをrustで実装し直したらパフォーマンス負けたらしいwww
- 358 :デフォルトの名無しさん:2018/04/13(金) 19:27:43.59 ID:a8AOaj4F.net
- >>357
JSに負けるとか草しか生えんなwwwwwww
- 359 :デフォルトの名無しさん:2018/04/13(金) 19:31:48.55 ID:a8AOaj4F.net
- >>354
Linuxくらいバグらないならいいよ
- 360 :デフォルトの名無しさん:2018/04/13(金) 20:22:47.30 ID:rxyiIXLh.net
- >>357
噂に尾ひれがつく瞬間を目の当たりにして草
多分これ↓のことだろ
http://blog.bokuweb.me/entry/2018/02/08/101522
誰かC x wasmで書き直してみろよ。きっと似たような結果になるから
>>359
ついにLinuxと同レベルじゃないと認めないとか言い始めたぞ…
- 361 :デフォルトの名無しさん:2018/04/13(金) 20:58:47.99 ID:Ek+y1xD6.net
- >>357,358
ブラウザ JS版 Wasm版
Chrome 63 4.36ms 5.68ms
Firefox 58 5.76ms 3.98ms
Safari 11 9.98ms 4.21ms
う〜ん草しか生えんね 草草草の草ァ!だね
- 362 :デフォルトの名無しさん:2018/04/13(金) 21:29:03.20 ID:a8AOaj4F.net
- >>361
wasmじゃなくてRustと比べてから言えよ
- 363 :デフォルトの名無しさん:2018/04/13(金) 21:40:19.55 ID:Ek+y1xD6.net
- >>362
草しか生えんわwww
- 364 :デフォルトの名無しさん:2018/04/13(金) 22:58:07.23 ID:LXloKsM4.net
- まあメモリの管理モデルが違う言語同士でやりとりすれば
色々苦労するのは当たり前なんだよね。
それなのに「rustは勝手に解放してくれる」とか言い張っちゃう信者が有害な訳だよ。
rustが悪いというよりか、こういう馬鹿が多いところが問題。
- 365 :デフォルトの名無しさん:2018/04/13(金) 23:04:17.07 ID:bso+BPDq.net
- Haskellは副作用が無いとか参照透過性があるって言った時に
C FFIを持ち出して反論するのと同様の不毛さを感じる
- 366 :デフォルトの名無しさん:2018/04/14(土) 07:00:49.94 ID:xdB8fLqn.net
- 不毛?現実によくあることなのにね。。
言語の一番下ではアセンブラが動いてるんだから、そことどう調和もしくは隠蔽させるかってのは
コンピュータ言語にとって本質でしょうが。
- 367 :デフォルトの名無しさん:2018/04/14(土) 07:18:52.94 ID:S65yHOqM.net
- は?何で一番下が機械語じゃなくてアセンブラなの馬鹿なの?
- 368 :デフォルトの名無しさん:2018/04/14(土) 09:16:33.44 ID:/jFvD9M/.net
- コンピュータ言語w
- 369 :デフォルトの名無しさん:2018/04/14(土) 11:34:49.77 ID:+NzeE6vg.net
- アセンブラと機械語は1:1で訳せるから…
- 370 :デフォルトの名無しさん:2018/04/14(土) 11:47:39.37 ID:oZ68B8i3.net
- アセンブリやろ
- 371 :デフォルトの名無しさん:2018/04/14(土) 13:58:04.39 ID:dXnZwWyG.net
- 結局Rustはサーバ向けでもコマンドツール向けでもGUI向けでも組み込み向けでもない
って事実はほんと覆らんよ
- 372 :デフォルトの名無しさん:2018/04/14(土) 14:12:11.55 ID:9z5cq9ls.net
- 話に入れないからって「………結局駄目!」ってダサすぎない?
- 373 :デフォルトの名無しさん:2018/04/14(土) 14:55:11.55 ID:42ccGSN6.net
- jsのファミコンエミュレータをrustで実装し直したらパフォーマンス負けたらしいwww
- 374 :デフォルトの名無しさん:2018/04/14(土) 15:21:13.70 ID:TDyE7icd.net
- >>372
悔しかったら反論してみたらぁ?
- 375 :デフォルトの名無しさん:2018/04/14(土) 15:23:55.88 ID:xdB8fLqn.net
- >>372
メモリ管理みたいな重要なことについてデララメ振りまいて、
「理解しない奴がrust批判してる」とか言い出してる方が恥ずいわ。
- 376 :デフォルトの名無しさん:2018/04/14(土) 15:34:36.03 ID:TDyE7icd.net
- 上の流れ素直に読んでも、
メモリ管理も全部C側で完結させるのが一番いいって結論にしかならんぞ?
Rustのいいところなんぞ皆無だ
- 377 :デフォルトの名無しさん:2018/04/14(土) 15:44:33.95 ID:TDyE7icd.net
- というかコンパイラにメモリ管理任せるのが無理だろ。FFIのためにいちいちDrop定義するとか非効率でしかない
メモリ管理はGCに任せるか完全手動にするかの二択なのに、無理矢理そこにヘンテコリンなソリューションもどき持ち込んで混乱引き起こしてるだけじゃん
- 378 :デフォルトの名無しさん:2018/04/14(土) 15:50:41.81 ID:TDyE7icd.net
- Rustの提案するエセソリューションは機械語のレベルと相性が悪い
CやC++のほうがまだまともなアプローチしてる
- 379 :デフォルトの名無しさん:2018/04/14(土) 15:53:50.88 ID:LmbQudMt.net
- >>377
うおっ!
ここにきてまさかのRAIIを否定し始めるとか予想外すぎたわ!
お前C++のスマポってなにか知ってる?
- 380 :デフォルトの名無しさん:2018/04/14(土) 15:55:07.64 ID:TDyE7icd.net
- >>379
ほとんどのコンパイラで採用されてない仕様書上にしかない機能なんざ知らんよ
- 381 :デフォルトの名無しさん:2018/04/14(土) 15:58:27.76 ID:TDyE7icd.net
- 実際混乱引き起こしてるまともじゃない方法なのは上の流れで自明だろ
- 382 :デフォルトの名無しさん:2018/04/14(土) 16:02:24.43 ID:LmbQudMt.net
- >>380
よろしい。そんな君にはJavaがおすすめだ。そっちで元気にやりたまえ。
- 383 :デフォルトの名無しさん:2018/04/14(土) 16:05:01.76 ID:75zALjkM.net
- 以前も言われてたけど「ひまわり学級の子が普通の授業に出て暴れてる」って表現が実に的確で草
- 384 :デフォルトの名無しさん:2018/04/14(土) 16:07:01.72 ID:TDyE7icd.net
- 間違ったものを間違った奴が流行らせようとしてるんだからそれには「違う」って言っとかないとダメだろ
話にならんと放置したらいずれ手遅れになるほど蔓延する
そうならないうちに叩いておくべきなんだよ
- 385 :デフォルトの名無しさん:2018/04/14(土) 16:10:39.48 ID:w273LxVR.net
- 混乱引き起こしてるのは違いないけどさ
「俺の頭の中で混乱を引き起こしてる」って正確に書こうよ
- 386 :デフォルトの名無しさん:2018/04/14(土) 16:11:44.32 ID:TDyE7icd.net
- >>385
上のFFI絡みの流れは俺じゃないけど?
- 387 :デフォルトの名無しさん:2018/04/14(土) 16:15:30.43 ID:w273LxVR.net
- 完全手動でメモリ管理するのは混乱起きないからいいよね〜
- 388 :デフォルトの名無しさん:2018/04/14(土) 16:21:52.10 ID:TDyE7icd.net
- >>387
コンパイラに丸投げするよりは良いな
混乱しないって意味だとGCが一番だが
- 389 :デフォルトの名無しさん:2018/04/14(土) 16:27:01.78 ID:nFvlFlcl.net
- >>375
上のやり取りは俺じゃないけど?
散々間違いがあったら指摘してくれって書いてたのがデタラメを振りまいた?
間違いの指摘に礼を言って終えるところに、鳴りを潜めていたアンチがウキウキで「混乱を引き起こしたRust!!!」と喚き立てた
このスレでも何回もやってる流れじゃんクソダセー
- 390 :デフォルトの名無しさん:2018/04/14(土) 16:38:44.62 ID:TDyE7icd.net
- はいはい内ゲバですね
ほんとくだらん言語
- 391 :デフォルトの名無しさん:2018/04/14(土) 16:43:14.18 ID:nFvlFlcl.net
- >>390
内にいるつもりなんだお前
- 392 :デフォルトの名無しさん:2018/04/14(土) 16:44:00.69 ID:nFvlFlcl.net
- インタプリタへの丸投げ>完全手動でメモリ管理>コンパイラへの丸投げ
実行開始までの混乱しない順だなどう考えても
- 393 :デフォルトの名無しさん:2018/04/14(土) 16:47:43.87 ID:TDyE7icd.net
- >>391
外から内ゲバ眺めてやっぱこの言語くだらねって思ってるだけ
C++の(後方互換維持のための苦しい構文追加以外)なにが悪いんだか
- 394 :デフォルトの名無しさん:2018/04/14(土) 17:00:21.56 ID:LmbQudMt.net
- >>393
スマポが何かを知らないヤツがC++を語り始めたぞ…
- 395 :デフォルトの名無しさん:2018/04/14(土) 17:00:54.52 ID:nFvlFlcl.net
- >>378
ていうかこれ知りたい
Rustの何が(例:MIR)どう機械語との相性が悪く
それに対してC/C++のまともなアプローチの具体例を教えて
- 396 :デフォルトの名無しさん:2018/04/14(土) 17:03:21.15 ID:LmbQudMt.net
- >>395
代弁してやろう。
「自力で頑張る」
以上
- 397 :デフォルトの名無しさん:2018/04/14(土) 17:17:27.65 ID:TDyE7icd.net
- >>395
結局解放処理は自分で書くんだろ?
メモリ上の確保のされ方はコンパイラにはわからないんだから
結局中途半端にしか自動化できないから無意味で、それなら自分で管理した方が結果的に良いって話
- 398 :デフォルトの名無しさん:2018/04/14(土) 17:24:46.46 ID:Syz4zWn3.net
- 解放の仕方を実装したら、後はコードのどの場所で何回確保しても自動で解放される事が分かってないっぽいね
- 399 :デフォルトの名無しさん:2018/04/14(土) 17:31:29.95 ID:LmbQudMt.net
- >>398
だってRAIIもスマポも知らないんだもん。しょうがないじゃん
- 400 :デフォルトの名無しさん:2018/04/14(土) 17:34:05.03 ID:nFvlFlcl.net
- >>397
C FFIとかの一部分で解放処理を書くんだよ
お前が言ってる通り「手動」だしお前の好きな「手動」でよかったな
中途半端にとは言っても機能するし「無意味」と言い切るには典型すぎる誤謬
で>>395にまともに答えてくれる?どう相性が悪いの?どんなアプローチ?
- 401 :デフォルトの名無しさん:2018/04/14(土) 17:50:25.61 ID:TDyE7icd.net
- >>400
今の説明でわからんなら一生わからんよ
- 402 :デフォルトの名無しさん:2018/04/14(土) 17:56:25.03 ID:LmbQudMt.net
- >>401
あっ! 逃げたww
- 403 :デフォルトの名無しさん:2018/04/14(土) 18:04:42.44 ID:nFvlFlcl.net
- Q. Rustの何がどう機械語との相性が悪く、それに対してC/C++のまともなアプローチの具体例を教えて
A. 結局中途半端にしか自動化できないから無意味で、それなら自分で管理した方が結果的に良い
Rustアンチ君との最後のやり取りがこれなのか…?悲しい
- 404 :デフォルトの名無しさん:2018/04/14(土) 23:45:32.28 ID:lczq2IdA.net
- いい加減ワッチョイスレに移動しようぜ
- 405 :デフォルトの名無しさん:2018/04/14(土) 23:54:45.22 ID:LmbQudMt.net
- >>404
実際問題ワッチョイは過疎る
- 406 :デフォルトの名無しさん:2018/04/15(日) 03:16:54.39 ID:8wseEBgk.net
- >>404
YOUがワッチョイのほうで話題ageれば
- 407 :デフォルトの名無しさん:2018/04/15(日) 09:21:32.45 ID:eccSQZbu.net
- ここはネタスレだからこれでいいよ
まともな話題ないし
- 408 :デフォルトの名無しさん:2018/04/15(日) 10:16:53.40 ID:pCFT19cL.net
- ワッチョイは運営が管理を放棄するための口実
- 409 :デフォルトの名無しさん:2018/04/15(日) 10:33:02.44 ID:E1b18XLI.net
- ワッチョイあった方が良い派です
- 410 :デフォルトの名無しさん:2018/04/15(日) 11:32:28.09 ID:fK7P6CAL.net
- いちおう指摘しておくと以下にわっちょい付きのスレはある。
https://mevius.5ch.net/test/read.cgi/tech/1514107621/l50
- 411 :デフォルトの名無しさん:2018/04/15(日) 14:26:16.16 ID:WuS7UUJE.net
- そう思うんなら勝手にそっちでやってくれ
いちいちこっちに宣伝しないでよろしい
- 412 :デフォルトの名無しさん:2018/04/15(日) 14:57:22.17 ID:eccSQZbu.net
- せめてスレ立てたやつくらいはあっち書き込んでくれよ。
ワッチョイスレ(本スレ)には俺しかいない。
- 413 :デフォルトの名無しさん:2018/04/15(日) 15:05:21.27 ID:6SePuRaV.net
- 人が集まってる(勝ち残った)方が本スレ
- 414 :デフォルトの名無しさん:2018/04/15(日) 16:17:50.87 ID:vLrea5+q.net
- アンチスレの方が人多いっていい加減認めようぜ
- 415 :デフォルトの名無しさん:2018/04/15(日) 20:40:55.33 ID:oxsxYGoa.net
- >>414
いちおうアンチスレも存在するんだぜ
http://mevius.5ch.net/test/read.cgi/tech/1509028624/
- 416 :デフォルトの名無しさん:2018/04/15(日) 21:13:20.51 ID:0BluVJwA.net
- >>384
大元に言わないで、ここでグダってる時点で説得力無いけどな。
- 417 :デフォルトの名無しさん:2018/04/16(月) 09:16:50.73 ID:fU1aO3Gb.net
- 英語で説明する気力がないんだろ
- 418 :デフォルトの名無しさん:2018/04/21(土) 15:59:38.16 ID:GAOK2TS0.net
- それもあるが日本語の記事でrustマンセーしてるやつは大抵バカっていうのもある。
- 419 :デフォルトの名無しさん:2018/04/21(土) 18:22:00.01 ID:u/5OPPGG.net
- 会話になってないし
時間おいたところで>>395に答えなくてもいいことにはならないからね
- 420 :デフォルトの名無しさん:2018/04/22(日) 12:28:50.40 ID:fDht+F2y.net
- もう答えた
>>397
- 421 :デフォルトの名無しさん:2018/04/22(日) 15:34:45.59 ID:4jEar62+.net
- 自分から「機械語のレベルと相性が悪い(>>378)」と言ってるのに
「具体的にはどういうこと?(>>395)」と聞かれて、
その返答(>>397)に機械語のことが一切出てこないのは流石に草
- 422 :デフォルトの名無しさん:2018/04/22(日) 20:55:11.63 ID:jr6NU+gW.net
- 英語で説明する以前に日本語でのコミュニケーションに難ありなのか
日本語ネイティブじゃない方なのかな
- 423 :デフォルトの名無しさん:2018/04/22(日) 22:58:46.99 ID:lYpO0H1A.net
- 機械語との相性のいいC,C++のソリューションって、機械語バイト列を関数ポインタにキャストして呼び出すとかじゃないの?
そんなことRustでできるようになって欲しくはないな。
- 424 :デフォルトの名無しさん:2018/04/22(日) 23:13:49.80 ID:KagmHCpN.net
- できるよ
推奨してないけど
- 425 :デフォルトの名無しさん:2018/04/23(月) 00:45:39.39 ID:Fi1E6adA.net
- JITとかそういう用途?
- 426 :デフォルトの名無しさん:2018/04/24(火) 00:26:37.67 ID:IHcLIR+Z.net
- rustで書かれたjitなかったっけ?
ところでrustで書かれたウィルスとかマルウェアとかないよな。
goならMiraiで使われてたけど。
- 427 :デフォルトの名無しさん:2018/04/27(金) 21:30:01.00 ID:Tx6nrcMv.net
- C/C++の弱い型付けによるキャストは機械語と関係ないだろ
Rustは強い型付けしか原則許してなくてunsafe使えば弱い型付けも出来るけど好んでする必要性はないよねー
プログラミング言語と機械語の間はC/C++もRustもLLVM IRで仲介されてるから、どっちかだけが相性良いとかなさそう
LLVM IRじゃなくGas仲介するとこう違うんだよ、くらいの反論を期待してみるテスト
- 428 :デフォルトの名無しさん:2018/04/27(金) 23:30:19.86 ID:AfC0onIC.net
- >>427
フロントエンドの話してるのに、バックエンドがLLVMだから違いなどない!は、おかしいのでは?
そんなこと言い始めたら、言語仕様の優劣など語るに値しないということになってしまう。
- 429 :デフォルトの名無しさん:2018/04/27(金) 23:43:23.39 ID:MR18u0zM.net
- >>427
Any使ったdowncastはunsafeじゃないけどどういうコードの話してんの?
- 430 :デフォルトの名無しさん:2018/04/28(土) 16:19:50.16 ID:6S6rcsk3.net
- このRustのチャットみたいなのって公式のもの?
https://gitter.im/rust-lang/rust
- 431 :デフォルトの名無しさん:2018/05/01(火) 14:27:18.61 ID:riKaEN0n.net
- rustでフォントをレンダリングしたいのですがfont-rsやfreetypeなどの設定逆引き的なサイトってありませんかね?
チュートリアル的なサイトは見つかるのですがそこから突っ込んで使用したい場合に参考になりそうな情報がみあたらないです
レンダリングされる線を任意の幅にしたいです
極細フォントを使って線幅1ピクセル×2=計2ピクセルでアンチエイリアス無しみたいな感じの結果が欲しいです
- 432 :デフォルトの名無しさん:2018/05/01(火) 14:37:54.06 ID:riKaEN0n.net
- 具体例を補足します
出力が2値の場合に普通にレンダリングした物を減色してしまうと線幅の不均一になったりディザが掛かってしまって
表示品質が極端に悪くなってしまうのでそれを防止したいです
たとえば「田」みたいな字をレンダリングして減色するとある線は1ピクセルだけど別の線は2ピクセルになってしまったり
交わるところに不要なドットが出現したりします
それを全て任意の線幅に統一したいです
- 433 :デフォルトの名無しさん:2018/05/01(火) 14:58:24.50 ID:8Qa5eQjM.net
- ここはアンチスレなので、まともな質問はslackへどうぞ
- 434 :デフォルトの名無しさん:2018/05/02(水) 04:26:15.76 .net
- えぇ。。
- 435 :デフォルトの名無しさん:2018/05/02(水) 04:45:47.66 ID:JZRYx+4v.net
- https://rust-jp.herokuapp.com/
rustのslack
↓のサービス使ってオープンにすればよい
http://slackarchive.io 👀
Rock54: Caution(BBR-MD5:b95868ef2c0ed5e765a4d10ada4cf289)
- 436 :デフォルトの名無しさん:2018/05/02(水) 11:08:56.76 ID:C2OG+VM0.net
- Rustってカルトみたいなもんだよな
実態はスカスカで教祖の金儲けに使われてるだけなのに、信者は正義と信じて疑わない辺り
slackなんて内輪の集会に逃げ続けて表の評価に曝されることを避けてる時点でまともなプログラミング言語じゃない
- 437 :デフォルトの名無しさん:2018/05/02(水) 11:13:07.30 ID:9TOinEtH.net
- >>436
Rustの提案するエセソリューションは機械語のレベルと相性が悪い
CやC++のほうがまだまともなアプローチしてる
- 438 :デフォルトの名無しさん:2018/05/02(水) 11:39:02.32 ID:C2OG+VM0.net
- >>437
お前はさっさとその答え教えてくれよ
Rust批判するにしてもコンピュータの知識皆無すぎるわ。批判側がお前と同じ知的レベルに見られるのがクソ
- 439 :デフォルトの名無しさん:2018/05/02(水) 11:55:03.24 ID:9TOinEtH.net
- >>438
へー今日はたくさん書き込むつもりなんだ
- 440 :デフォルトの名無しさん:2018/05/02(水) 12:31:00.89 ID:ZVrvL9q8.net
- こちらはまともなアンチとキチガイアンチのスレになります。
- 441 :デフォルトの名無しさん:2018/05/02(水) 12:53:31.01 ID:vKwn9vOL.net
- いやどっちもキチガイだから
- 442 :デフォルトの名無しさん:2018/05/02(水) 12:58:01.18 ID:vKwn9vOL.net
- >>436
表の評価(2ch)wwww
- 443 :デフォルトの名無しさん:2018/05/02(水) 20:38:46.50 ID:Ua9w95BC.net
- 少しずつRustの研究が出てきたね
ttps://arxiv.org/abs/1804.10806
- 444 :デフォルトの名無しさん:2018/05/03(木) 01:12:08.40 ID:Sirn7AO1.net
- win10 rs4にしてからrustdocが遅い。
rs4にMeltdown/Spectre対応のパッチも含まれてたんだろうか。
- 445 :デフォルトの名無しさん:2018/05/03(木) 02:54:28.33 ID:Rj4yBmSF.net
- Rustを導入している企業・組織の一覧をご覧ください
https://www.rust-lang.org/ja-JP/friends.html
- 446 :デフォルトの名無しさん:2018/05/03(木) 08:55:22.99 ID:4wWpk2nD.net
- Windows defenderが動いてるとかでは
- 447 :デフォルトの名無しさん:2018/05/03(木) 12:04:38.70 ID:y3R7schb.net
- 少なくとも5chではgoよりrustの方が盛り上がってるな。
- 448 :デフォルトの名無しさん:2018/05/08(火) 01:41:55.63 ID:jFUdx6HI.net
- impl traitはよ
- 449 :デフォルトの名無しさん:2018/05/08(火) 21:29:46.74 ID:RGDg6ogT.net
- パフォーマンスとマルチスレッドを理由にRustを採用という事らしい
https://logmi.jp/282807
- 450 :デフォルトの名無しさん:2018/05/08(火) 22:15:52.43 ID:W4Ax9FiD.net
- ドワンゴといい、ヤバい会社の指標としていいねw
- 451 :デフォルトの名無しさん:2018/05/08(火) 22:23:27.27 ID:T0pMALEX.net
- 機械語のレベルと相性が悪いしなw
- 452 :デフォルトの名無しさん:2018/05/08(火) 22:26:07.82 ID:EnN/pyur.net
- >>450
>>445
これでもそんな知恵遅れみたなこと言うの?
- 453 :デフォルトの名無しさん:2018/05/08(火) 23:31:08.80 ID:W4Ax9FiD.net
- 同じリストを他言語でも作ってみたら?
どれだけバカなこと言ってるかわかると思うよ。
- 454 :デフォルトの名無しさん:2018/05/08(火) 23:52:08.90 ID:EnN/pyur.net
- ああそりゃ分かるだろうね、是非作ってみたまえよ
- 455 :デフォルトの名無しさん:2018/05/09(水) 00:11:01.28 ID:ZcDO5kt6.net
- >>449
謳い文句通りの「速度とマルチスレッド」で選んだら後でめんどくさいよ。
MIRの導入もなかなか成果出てないし、同期はセマフォ/ミューテックスしかなくて
javaみたいに高レベルから低レベルまで自分で書けるわけじゃないし、
non blocking ioも、lock free collectionもなくて外部ライブラリへの依存度が極めて高いし、
cargo腐ってるせいでrustのtooling絡みのissueが日に日に増えるし。
rustの良いところは言語の部分だからコアな機能使わないなら他言語のほうが良い。
土方の要求には合わないでしょ。
それよりimpl traitまだー?
- 456 :デフォルトの名無しさん:2018/05/09(水) 00:44:09.86 ID:D/4RZNTl.net
- 間も無くなんだから静かに待ってなさい
- 457 :デフォルトの名無しさん:2018/05/09(水) 08:29:25.33 ID:SINErtCB.net
- >>449
これってgoでは無理だったんかね?
単純に趣味の問題?
- 458 :デフォルトの名無しさん:2018/05/09(水) 13:55:28.84 ID:9bmRNzTn.net
- goって言語仕様でマルチスレッドによるデータレースを起こさない仕組みってあるの?
無かったらその部分が大きいのでは?
- 459 :デフォルトの名無しさん:2018/05/09(水) 15:04:31.38 ID:bH4TOh4o.net
- goはchannel経由にすれば自動的にアトミック
mutex部分が隠ぺいされてるので意識する必要が無い
- 460 :デフォルトの名無しさん:2018/05/10(木) 01:52:41.29 ID:8hhZ9q5s.net
- むしろrustがなぜチャネル的なもの入れなかったんだ?
- 461 :デフォルトの名無しさん:2018/05/10(木) 02:11:20.77 ID:71z1/J2u.net
- 標準にも外部crateにもいっぱいあるだろ
ライブラリとしてではなく言語仕様としてという意味か?
- 462 :デフォルトの名無しさん:2018/05/10(木) 10:12:22.36 ID:sqBEyANZ.net
- >>459
言ってることがよくわからんメモリ共有は基本的にmutexみたいな物はついてない気がするけど。基本的にchannel経由で情報交換しない方針にすれば
データ競合は防げるって話では?
rustってデータ競合がコンパイル時点で防げるって意味がわからん。
そんなことがかのうなん?
- 463 :デフォルトの名無しさん:2018/05/10(木) 10:16:06.63 ID:sqBEyANZ.net
- >>462
X 基本的にchannel経由で情報交換しない方針
○ 基本的にchannel経由で情報交換する方針
- 464 :デフォルトの名無しさん:2018/05/10(木) 10:17:49.30 ID:sqBEyANZ.net
- >>463
詳細はこちら
Goでスレッド(goroutine)セーフなプログラムを書くために必ず注意しなければいけない点
https://qiita.com/ruiu/items/54f0dbdec0d48082a5b1
- 465 :デフォルトの名無しさん:2018/05/10(木) 13:22:21.00 ID:MOe7VLfi.net
- 数十GBのオブジェクト管理は、gc待ちきついからオフヒープでとか、(これ聞いたときよりgcは良くなってる)
goroutineで確保したメモリは解放せずgoが管理するから、常駐で同時に大量に走ると解放されないとかはあるみたい。
- 466 :デフォルトの名無しさん:2018/05/10(木) 13:35:12.76 ID:71z1/J2u.net
- >>462
それが売りの一つなんだから当然出来る
具体的にはこれでも読んでくれ
https://rust-lang-ja.github.io/the-rust-programming-language-ja/1.6/book/concurrency.html
- 467 :デフォルトの名無しさん:2018/05/10(木) 18:25:01.25 ID:0Uo+Yl5e.net
- 以下の場合に&*fで具体的にどうなってるのかが分からない
*でderefされてトレイトオブジェクトの実態になって、&を付けることで再度トレイトオブジェクトになってる?
ちなみにexec(f.deref())だとそのまま通るけど、これはBoxのderefが&Tを返すからだよね?
*だとBoxのderefで返った&Tではなく、さらにderefされてTが返っているってこと?
fn create() -> Box<Fn()> {
Box::new(|| println!("test"))
}
fn exec<F: Fn()>(f: F) {
f()
}
fn main() {
let f = create();
exec(&*f);
}
- 468 :デフォルトの名無しさん:2018/05/10(木) 21:37:45.30 ID:r2ZBYv9N.net
- Derefを実装した型に対しての*xは*x.deref()の糖衣構文
つまり、&*xは&*x.deref()と同じで、それはつまり、x.deref()と同じ
- 469 :デフォルトの名無しさん:2018/05/10(木) 22:16:14.49 ID:0Uo+Yl5e.net
- なるほど
*x ==x.deref() って言う認識だったのが間違ってたのか
ありがとう
- 470 :デフォルトの名無しさん:2018/05/12(土) 02:06:23.28 ID:6a2pRrds.net
- impl trait来たな
- 471 :デフォルトの名無しさん:2018/05/12(土) 14:27:50.20 ID:CbmhA0Cx.net
- きた
- 472 :デフォルトの名無しさん:2018/05/14(月) 08:56:23.29 ID:+8ra2A+L.net
- 久しぶりにRustやろうと思ったけど公式リファレンスが最新版に追いついてないのな
どっかに変更履歴のまとめとか無いのかな
- 473 :デフォルトの名無しさん:2018/05/14(月) 12:00:52.07 ID:fAXXTBeo.net
- >>427
公式リファレンスって何のことを指してるんだ?
APIリファレンスならきちんと最新版に追従してるし、
チュートリアル(The Book)も2nd Editionがきちんと出てる
バージョンアップの追従ならリリースノート見るかRustの公式ブログ見れば大体分かると思う
Rustは6週間に1回のハイペースでマイナーバージョンアップ繰り返してるから
The Bookのほうは最新版に追いつくこと自体がほぼ不可能だと思うけど
(つい最近もimpl traitがstable化されたばっかりだし…)
- 474 :デフォルトの名無しさん:2018/05/14(月) 12:06:29.06 ID:fAXXTBeo.net
- >>473
間違えた
X >>427
○ >>472
- 475 :デフォルトの名無しさん:2018/05/14(月) 21:32:55.87 ID:+8ra2A+L.net
- そのimpl traitが気になってまたRustやろうと思ったんだけどね
全機能の索引みたいなのがないと学習効率が落ちる
- 476 :デフォルトの名無しさん:2018/05/17(木) 09:49:24.40 ID:iDnHcMfd.net
- rustって生産性高い?
安全性が高まって結果的に高くなるということではなくね
やっぱでかいプログラムじゃなきゃ使う効果ない?
- 477 :デフォルトの名無しさん:2018/05/17(木) 10:44:40.51 ID:eZl7hMvh.net
- Javaでnull参照が10億ドル単位の損害と言われてるので
RustはJavaより10億ドルほど生産性が高い
- 478 :デフォルトの名無しさん:2018/05/17(木) 11:16:01.90 ID:mMzQfbWV.net
- まあ、ネタにマジレスになるが、
その論法だと俺の未完成言語は誰もバグを生み出してないので
Rustより生産性が高いなw
- 479 :デフォルトの名無しさん:2018/05/17(木) 11:48:49.35 ID:UfgM043o.net
- >>478
分母分子共にゼロなので計算不能ってやつね。
- 480 :デフォルトの名無しさん:2018/05/17(木) 14:42:41.57 ID:5Q9GbdJl.net
- チーム開発に良さそうな気がするけどメンバーのレベルにかなり依存しそう
- 481 :デフォルトの名無しさん:2018/05/17(木) 15:12:36.48 ID:xSjwlbqQ.net
- 自分がGCなしの言語使ってた時の経験だと、ヌルポより、freeした後にアクセスするバグの方が多かったから、オーナーを一つにするrustはいいと思う。
まあ、objective-cのARCでいいじゃんとも思うけど。
- 482 :デフォルトの名無しさん:2018/05/17(木) 15:31:36.59 ID:eZl7hMvh.net
- そこでoptionalですよ
こいよ継承クラス、ポリモーフィズムなんて捨ててかかって来い!
実際、null非許容のポインタが欲しい
- 483 :デフォルトの名無しさん:2018/05/17(木) 15:59:25.11 .net
- 誰がヌルポなんか 、ヌルポなんか怖かねぇ!
- 484 :デフォルトの名無しさん:2018/05/17(木) 16:39:48.45 ID:l6lckqvi.net
- C#だとぬるり
- 485 :デフォルトの名無しさん:2018/05/17(木) 19:10:55.29 ID:eQ6djlVW.net
- C#の発想元はJavaよってC#もぬるぽ(意味不)
- 486 :デフォルトの名無しさん:2018/05/17(木) 23:47:12.62 ID:STJHYINb.net
- 1.27.0-nightly (2f2a11dfc 2018-05-16)がregressionしとる。
issueある。待つヨロシ。
>>427,473
the rust referenceのことじゃね?the bookとは別にあるだろ。
全然追いついてないよアレ。そもそもまだ仕様書がない言語だし。
" best-effort document"って書いてあるでしょ
- 487 :デフォルトの名無しさん:2018/05/18(金) 23:04:38.08 ID:e1n+oPRU.net
- httpサーバでありかつクライアントであるみたいなプログラム書く場合、現状hyper一択なのかね?
acitx-webとか誰か使ってない?
- 488 :デフォルトの名無しさん:2018/05/19(土) 02:24:33.88 ID:1CYkmYAx.net
- 最初rocketで書いてたけどactix-webで書き直してる
今だとactix-webが一番良い感じだと思う
必要に応じて同期、非同期、アクターモデルと使い分けられるし
- 489 :デフォルトの名無しさん:2018/05/19(土) 22:00:56.80 ID:o9r1YzQK.net
- >>488
良い感じか。使ってみるか。ありがとう
- 490 :デフォルトの名無しさん:2018/05/23(水) 01:20:45.09 ID:RRIpR+v2.net
- https://github.com/rust-lang/rfcs/pull/2444
有志「クソ機能入ったのいらねえから消そうぜ」
大勢「いいな!賛成」
独裁開発チーム「もう入ったから消せませーーーーんwwwwww(クローズ&ロック)」
systemdかよって
- 491 :デフォルトの名無しさん:2018/05/23(水) 03:14:02.94 ID:V0Z2NuNB.net
- >>490
もう入ったから消せませんってのは横暴なようにも見えるがしようがないとも思う
一度入れてしまった機能をまた使えなくするとか、それこそ混乱するし…
そもそも何故impl trait を引数の位置にも書けるようにしたのかは確かに甚だ疑問ではあるけど…
引数の位置でジェネリクスとトレイト境界じゃなくてimpl trait じゃないとダメなケースとかある?
無いなら、warning出してジェネリクスとトレイト境界に書き直すように促すのが妥当じゃないかな?
- 492 :デフォルトの名無しさん:2018/05/23(水) 07:29:53.45 ID:chu47WW7.net
- 例があるけどすっきり書きたいみたい
https://github.com/phaazon/rfcs/blob/undo-universal-impl-trait/text/1951-expand-impl-trait.md
- 493 :デフォルトの名無しさん:2018/05/23(水) 10:44:20.66 ID:KWn7zjxF.net
- こういうところでマウンティングとらないといけない辺り
言語(笑)開発チームとやらも内情はどうなってることやら
- 494 :デフォルトの名無しさん:2018/05/23(水) 11:19:22.58 ID:2AZG2/zg.net
- たしかにどっちで書くべきかよくわからんくなった
- 495 :デフォルトの名無しさん:2018/05/23(水) 12:46:35.30 ID:wx8WkS/n.net
- <T: Trait> foo: T
と
foo: &Trait
との比較で特殊なケースを除き前者の方が効率良いが
syntax上後者の方が簡単なので
初心者が誤って後者を使ってしまうケースがあった
これを防ぐためにimpl Trait および &dyn Traitを導入し
&Traitをdeprecateすることになった
- 496 :デフォルトの名無しさん:2018/05/23(水) 19:22:54.70 ID:Au5e7VGg.net
- 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
D49IO
- 497 :デフォルトの名無しさん:2018/05/23(水) 20:12:10.79 ID:OqqpDSMd.net
- もう入ったから消せません
は正論
何故クソ機能の進入を許してしまったのか、どうすれば食い止められたのかについて追求すべき
- 498 :デフォルトの名無しさん:2018/05/23(水) 21:15:28.51 ID:cEWT5Ura.net
- ジェネリクスの型変数って引数と戻り値の型を揃えるとかそういう使い方をすべきであって
Traitをimplした型を受け取るという意味ではimpl Traitを使うべきだと思う
ただimpl Traitを導入するなら1.0の時点で導入してて欲しかった
- 499 :デフォルトの名無しさん:2018/05/23(水) 23:34:44.01 ID:J44hs+nP.net
- こういうところでマウンティングとらないといけない辺り
言語(笑)開発チームとやらも内情はどうなってることやら
- 500 :デフォルトの名無しさん:2018/05/24(木) 00:25:13.01 ID:XbYocBeq.net
- javaのジェネリックスが理解できてないやつが多いだけ。
- 501 :デフォルトの名無しさん:2018/05/25(金) 02:08:00.91 ID:MJUyxiHQ.net
- Rust始まる前に終わったか
- 502 :デフォルトの名無しさん:2018/05/25(金) 10:28:02.89 ID:fl2+4CP3.net
- 始まる要素が欠片でもあっただろうか
- 503 :デフォルトの名無しさん:2018/05/25(金) 10:31:47.59 ID:fl2+4CP3.net
- >>495
それはdyn Traitの実装理由であっても、
引数位置のimpl Traitを実装した理由の説明になってない
- 504 :デフォルトの名無しさん:2018/05/25(金) 12:05:08.76 ID:2Lpcv/H6.net
- fn foo(a: &dyn Trait)
と
fn foo<T: Trait>(a: T)
では前者の方がlightweightでは
- 505 :デフォルトの名無しさん:2018/05/29(火) 19:15:02.85 ID:MDdgGfn5.net
- target/debug 以下に生成されるdepsとかbuildって何なの?
goとかにはないよね?
gtk-rsだと500MB消費しちゃうんだけど他のプロジェクトで使い回しとか出来ないの?
- 506 :デフォルトの名無しさん:2018/05/29(火) 23:04:02.93 ID:R7SeORIn.net
- >>505 環境変数CARGO_TARGET_DIRを指定してやれば再利用してくれるよ
ただ、vscodeのrustプラグインの何かがこの環境変数を考慮してないんで挙動がおかしくなったことがあるんで注意
- 507 :デフォルトの名無しさん:2018/05/29(火) 23:26:47.02 ID:MDdgGfn5.net
- >>506
おお流石に出来たんですね
プラグインがおかしくなるのはrls側の問題ですかね🤔
- 508 :デフォルトの名無しさん:2018/05/29(火) 23:29:14.13 ID:TMN/Dqsk.net
- Rustと言えばcookpad。
- 509 :デフォルトの名無しさん:2018/05/30(水) 14:08:55.25 ID:EgEwhYIf.net
- >>501
最近Rustの話聞かなくなったな
- 510 :デフォルトの名無しさん:2018/05/30(水) 18:12:45.66 ID:pSj5bsTP.net
- HNはリリースの度に話題になってるけど
- 511 :デフォルトの名無しさん:2018/05/31(木) 06:31:41.15 ID:Ao0QiwhU.net
- 日本の企業くらいだよ。
rustで書いてまっせっていうバカなアピールするのは。
- 512 :デフォルトの名無しさん:2018/05/31(木) 06:42:55.06 ID:RS4tQXGE.net
- まあCloudflareも日本にリージョンあるしな
- 513 :デフォルトの名無しさん:2018/05/31(木) 10:37:31.25 ID:QFV8wAla.net
- >>511
泥箱って日本企業だっけ
- 514 :デフォルトの名無しさん:2018/05/31(木) 15:17:41.00 ID:Rs+XOVpI.net
- 日本の企業って凄いんだなー
- 515 :デフォルトの名無しさん:2018/05/31(木) 20:32:40.66 ID:ITatAB0P.net
- wtftwっていうタイル型WM、設定ファイルまでrustで書くのどうなんだろ
設定ファイルはluaあたりが無難?
- 516 :デフォルトの名無しさん:2018/05/31(木) 22:08:10.33 ID:Ao0QiwhU.net
- >>513
いやもうなかったことにしたがってるじゃんw
それなのに変なのに付きまとわれてるっていう。
- 517 :デフォルトの名無しさん:2018/05/31(木) 22:30:50.22 ID:Rs+XOVpI.net
- >>516
「なかったことにしたがってる」というソースをプリーズ
- 518 :デフォルトの名無しさん:2018/05/31(木) 22:43:00.94 ID:RS4tQXGE.net
- Dropboxのbrotliデコンパイラが昨日更新されてたから
24時間以内のホットな情報だ
- 519 :デフォルトの名無しさん:2018/05/31(木) 22:43:34.41 .net
- Rustが失脚すると得をする組織があるの?
どうしてそこまで情熱的にRustを貶すの?
- 520 :デフォルトの名無しさん:2018/05/31(木) 22:46:14.56 ID:Qkx1CtmH.net
- >>515 ざっとコンフィグファイル見たらXMonadのコンフィグよりは理解しやすいように思った
xmonad.hsはもっと宣言的に書けて、モナドとか上手く作って見栄えは良くできるんだけど、
馴染みのない演算子(<+>とか)使いまくるんで、よっぽどHaskellに慣れ親しんだ人でないと全容が理解できない
設定ファイルのフォーマットを開発言語と同じにするのはdwmから続くタイル型WMの流儀だし、
思ったより読めていいと思うよ。
- 521 :デフォルトの名無しさん:2018/06/01(金) 00:57:19.91 ID:Lcv3mjW7.net
- >>519
前段 モジラとその小判鮫以外の全組織が喜ぶ
後段 技術的にカスなものを貶すのは技術者の義務だろ
- 522 :デフォルトの名無しさん:2018/06/01(金) 01:23:36.92 ID:n6iooPs9.net
- >>521
>技術的にカスなものを貶すのは技術者の義務だろ
じゃあPHPではなく敢えてRustをdisる理由は?
あちらの方が広く使われてるからより害悪だと思うが
- 523 :デフォルトの名無しさん:2018/06/01(金) 04:40:22.00 ID:WbqigEkQ.net
- >>520
ほうほう
- 524 :デフォルトの名無しさん:2018/06/01(金) 06:21:30.96 ID:/a7YB1o/.net
- >>522
あれを使ってるやつも害悪性は理解してるからな。
こういう技術的にインテリな要素のある言語って信者がとにかく頑なで
実際のプログラムの現場で非常に問題になることが多い。
- 525 :デフォルトの名無しさん:2018/06/01(金) 07:12:12.64 ID:V5eoRgyy.net
- ほーん具体的にどんな問題がおきたの?
- 526 :デフォルトの名無しさん:2018/06/01(金) 07:23:19.18 ID:M/qnTWL0.net
- んー例えば
Rustの提案するエセソリューションは機械語のレベルと相性が悪い
CやC++のほうがまだまともなアプローチしてる
- 527 :デフォルトの名無しさん:2018/06/01(金) 08:47:59.46 ID:n6iooPs9.net
- >>525
んー例えば
コンパイルが通せなくて自尊心が傷ついて自ら会社をやめちゃう問題とか
この話どこまで事実か知らないけど仮に本当だったとしても
これって言語の問題というよりチームのプログラマの腕を過大評価
もしくは計算に入れてなかったというマネジメントの問題だよね
- 528 :デフォルトの名無しさん:2018/06/01(金) 09:23:44.51 ID:vv7FkXWB.net
- んー例えば
プラズマクラスター付き家電が話に出てきたら今まで黙ってたのに凄い勢いでエセ科学だと解説し出すよね
- 529 :デフォルトの名無しさん:2018/06/01(金) 11:58:37.06 ID:HQSTzzds.net
- いや、この粘着をクビにするためにRust導入したんでしょ
性格異常だもん
- 530 :デフォルトの名無しさん:2018/06/01(金) 17:08:52.31 ID:j7xDfBQ9.net
- 老害をふるい落とすために新しい言語を取り入れてるって話?
- 531 :デフォルトの名無しさん:2018/06/01(金) 19:16:22.80 ID:q9V9sFRe.net
- このフィボナッチ数列も書けないあほ
何度言い返せなくなっても数日後に甦る粘着性
C++で実行時にエラーが出るようなコードを書きまくったのでしょう。性格の悪さと溢れる自尊心から誰の耳も貸さなかったのでしょう。
プログラマーとして生きるよりかは、匿名掲示板で巨悪組織Mozzilaと闘うBBS戦士の方が社会的に良さそう
- 532 :デフォルトの名無しさん:2018/06/01(金) 19:29:07.67 ID:M/qnTWL0.net
- たとえばドワンゴとかDropboxとか
Rustを採用した企業自体を叩く行為をよくしているよな
あれ見るとちょっと辛くなる
- 533 :デフォルトの名無しさん:2018/06/01(金) 20:33:15.28 ID:hus0bbCf.net
- >>526
具体的には?
- 534 :デフォルトの名無しさん:2018/06/01(金) 22:00:45.35 ID:/a7YB1o/.net
- 例えばここみたいに安全でもなんでもないドヤしたいだけのクソなrustコードが量産されるとか。
ttp://tanakh.jp/posts/2016-12-20-rust-pezy-sc.html
- 535 :デフォルトの名無しさん:2018/06/01(金) 22:44:23.66 ID:hus0bbCf.net
- だから具体的はどこが問題なの?
- 536 :デフォルトの名無しさん:2018/06/01(金) 22:47:27.38 ID:aoTZOmsj.net
- 槍玉にあげる例が1個しかないのがダサ過ぎるわ。しかもその例も対象が特殊だし
>>534は「それRustでやる意味がある?」という疑問に全く応えられないのが問題
LLVM IR-> PEZY-SCというコンパイラがあるんだったら、LLVMがバックエンドの他言語でもいいよねって話
それができないなら、LLVM->PEZY-SCは未完成か現実に即してないんじゃねえのって話
- 537 :デフォルトの名無しさん:2018/06/01(金) 22:57:48.57 ID:hus0bbCf.net
- rustでやってみたって記事にrustでやる意味あるの?って疑問が出てくるのが不思議なんだけど
rustでも出来た、以外に意味はないでしょう
- 538 :デフォルトの名無しさん:2018/06/01(金) 23:37:58.33 ID:RhYZ0Afc.net
- 新しいこと覚えられないから焦ってるんじゃね
- 539 :デフォルトの名無しさん:2018/06/02(土) 00:12:03.87 ID:LoS19xRX.net
- >>534
安全じゃないコード も 書けるってことに価値があるんだろ?
C/C++以外の他言語では書くことさえできない。でもC/C++は安全性を売りにはしていない
Rustは安全性を売りにしつつ、必要に応じて安全性を捨てる選択もできるということに価値がある
で、たまたまその記事が安全性を捨てることが必要な数少ない例の1つだったってだけ
- 540 :デフォルトの名無しさん:2018/06/02(土) 08:09:01.38 ID:yQHVvQ0k.net
- 安全でもなんでもないって
unsafeあるやんけ!危険危険!
前後の文脈一切分からんけどとにかく危なそうなこと書いてあるやんけ!
つって叩いてるんだろうなw
>>535
その手の問いにそいつが素直に答えたこと無いからあきらめよう
- 541 :デフォルトの名無しさん:2018/06/02(土) 09:00:03.22 ID:uxIlP8w7.net
- たまたまねw
どんだけコード例出しても言い出しそうだなw
そもそもコード例が少ない訳で、推進してる奴のコードがそんなもんなら
十分否定的な要素だけどね。
- 542 :デフォルトの名無しさん:2018/06/02(土) 09:25:00.11 ID:yb2DUuBi.net
- grep出来ねえのか^^;
- 543 :デフォルトの名無しさん:2018/06/02(土) 09:27:20.96 ID:1kkEW1PU.net
- ちょっとrustの記事書いただけで代表的な推進派扱いかよ
- 544 :デフォルトの名無しさん:2018/06/02(土) 09:29:46.62 ID:IrGCDZgn.net
- >>541
お前さんの理屈だと、Rustじゃこんなに危険になる!って事だろ?
じゃあ、Rustではそういう危険な書き方しか出来ない!って示さなきゃな。
俺は中立だが、あんまり非論理的なdisりはアンチ=低能と思わせたがってるピエロにしか見えんよ。
- 545 :デフォルトの名無しさん:2018/06/02(土) 09:41:57.37 ID:yb2DUuBi.net
- 既に20万行はコードあるからレビューがてら指摘したら喜ばれるよ
- 546 :デフォルトの名無しさん:2018/06/02(土) 11:52:56.13 ID:SXqC6st7.net
- >>541
ほんとだどこが問題で悪いのか全然書かない
具体的に言及しだすとフィボナッチ数列とか機械語レベルとか、残念なことになるのが自分でもわかってたのか
まあ本人が書いた通り「ドヤしたいだけ」とか…なんかな?前もマウンティング取られたとか訴えてたし…
- 547 :デフォルトの名無しさん:2018/06/03(日) 07:31:39.66 ID:OBhxUt76Z
- #[no_mangle]
pub fn _Z8pzc_vadd(a: *const f64, b: *const f64, c: *mut f64, n: usize) {
let tid = (get_pid() * get_maxtid() + get_tid()) as isize;
let threads = (get_maxpid() * get_maxtid()) as isize;
for i in (tid..n as isize).step_by(threads) {
unsafe {
*c.offset(i) += *a.offset(i) * *b.offset(i);
}
}
flush();
}
まあこういうコード見てもアホかこいつと思わん連中なら話してもしょうがないしな。。
やっぱrustスゲーわ。
- 548 :デフォルトの名無しさん:2018/06/03(日) 21:39:05.60 ID:xPSrrQIy.net
- またいつもの、ボロクソにされたらしばらく潜伏してから復活するパターンかな
たまには芸風変えたら
- 549 :デフォルトの名無しさん:2018/06/04(月) 06:53:30.60 ID:OFCCUtyY.net
- Rustの不満は言語仕様やrustcよりcargoやその辺の連携(情報の少なさも含む)にある
- 550 :デフォルトの名無しさん:2018/06/04(月) 07:51:33.98 ID:+kVYhEiS.net
- 既成のクレートを探すのはcrates.ioになると思うけどライセンスってどうやって調べるんだろ
同様にクレート間の依存関係も判りにくい
どちらも一式を落としてきて中身を確認しないと判らないような・・・
Cargoで自動ダウンロードして・・・みたいな使い方をしていると意図せずGPL/LGPLになっていた
みたいなライセンス事故が起きそう
- 551 :デフォルトの名無しさん:2018/06/04(月) 09:21:50.73 ID:wd+rp+GF.net
- >>550
$ cargo install cargo-lichking
$ cargo lichking check
一先ずlichkingでチェックできるよ
- 552 :デフォルトの名無しさん:2018/06/04(月) 09:35:16.99 ID:4FFAt/Kh.net
- LGPLのstatic linkとかやめて欲しいよね
- 553 :デフォルトの名無しさん:2018/06/04(月) 22:37:59.16 ID:OFCCUtyY.net
- >>551
えぇー・・・わざわざインストールしないと出来ないのかよ。とりあえずやってみるか
依存関係はどうすりゃいいんだ?no_stdでも使える奴だけ探したいとか
- 554 :デフォルトの名無しさん:2018/06/05(火) 01:20:50.84 ID:4vI8haY4.net
- >>553
ライセンスをついては、crate名が既知なら、
ttps://crates.io/api/v1/(クレート名)
でjson取れるので、そこから再帰的に依存辿れば収集はできそう
- 555 :デフォルトの名無しさん:2018/06/05(火) 01:35:07.04 ID:4vI8haY4.net
- >>553
no_stdかどうかについては、Cargo.tomlのcategoryパートに"no-std"があるかどうかぐらいしか確認するすべなさそう(2017-2-10に追加されたっぽい)。
皆が皆付けてるとは思えないので、参考程度にしかならないだろうけど。
- 556 :デフォルトの名無しさん:2018/06/06(水) 04:08:38.62 ID:SHaHb3Ap.net
- ちょうどいい機会だから、カーゴのギフハブべったり依存をやめて抽象化してほしいわん
- 557 :デフォルトの名無しさん:2018/06/06(水) 07:27:41.91 ID:j1CMVtJk.net
- は?
- 558 :デフォルトの名無しさん:2018/06/06(水) 08:37:47.80 ID:hN7IXoGK.net
- crates.ioべったりは分かるけどGitHub依存って何
- 559 :デフォルトの名無しさん:2018/06/06(水) 09:53:27.50 ID:x7s61f1u.net
- goと勘違いしてるのでは
- 560 :デフォルトの名無しさん:2018/06/09(土) 09:42:43.51 ID:W19N5ngq.net
- rustダメじゃん
firefoxは言語オタに支配されたのか?
【IT】高速化を進めてアドオンを排除したFirefox、ついにシェアが10%切る★2
https://asahi.5ch.net/test/read.cgi/newsplus/1528388348/
- 561 :デフォルトの名無しさん:2018/06/09(土) 10:00:10.77 ID:4+qUC/SZ.net
- FirefoxのシェアでRust叩きって前スレでもやったじゃん
http://mevius.5ch.net/test/read.cgi/tech/1507970294/100-
- 562 :デフォルトの名無しさん:2018/06/09(土) 12:47:19.10 ID:Cz/ni8by.net
- ?
前やったから何?
- 563 :デフォルトの名無しさん:2018/06/09(土) 13:15:23.42 ID:qABRMkwT.net
- なんで筋の通らない批判を平然とするのか不思議
- 564 :デフォルトの名無しさん:2018/06/09(土) 15:26:07.97 ID:4+qUC/SZ.net
- >>562
ええ…?FFアドオン排除でRustディスは気にならないのか
以前の試みはアドオンとRustを絡めてみた感じだったな
↓のレスをいつものごとく無視し数日潜んでRust叩きを試みていたけど、スレを跨いで同じ材料出すなよ
109 デフォルトの名無しさん sage 2017/11/15(水) 14:21:13.24 ID:FBksKtwj
>>108
失敗してるやん
Rustなんかで書き直したせいでアドオン全滅してる
114 デフォルトの名無しさん 2017/11/15(水) 14:36:17.78 ID:bBOLEH2G
>>109
それは設計の段階で従来のアドオンとの互換性の一部を捨てるように仕様変更したからだよ。
firefoxのアドオンは自由度が高すぎるが故に、セキュリティに問題を抱えやすかったし、
アドオン同士が衝突して落ちるとかも結構あったから、そこら辺をChromeと同レベルくらいに制限して、
セキュリティと安定性を取る方向に方針転換した。
仕様が変わってるんだから、Rustで書こうが他の言語で書こうがどっちにしろ従来のアドオンの一部は動かないよ。
- 565 :デフォルトの名無しさん:2018/06/10(日) 00:29:32.38 ID:+hx+JhDk.net
- 今回は1週間も我慢できなかったのか
ほかに行く場所ないの
- 566 :デフォルトの名無しさん:2018/06/10(日) 01:42:55.67 ID:x48+YOhO.net
- >>556の話だけど、
>>556はhg使えなかった時代で止まってんじゃないの?
- 567 :デフォルトの名無しさん:2018/06/10(日) 09:09:46.77 ID:gHOtKfe5.net
- >>566
gitとgithubはちがうよ?
- 568 :デフォルトの名無しさん:2018/06/10(日) 09:10:23.63 ID:gHOtKfe5.net
- キチガイ帰ってきてよかった
- 569 :デフォルトの名無しさん:2018/06/10(日) 10:06:20.84 ID:flig3pd5.net
- 相変わらず宗教じみてんな
- 570 :デフォルトの名無しさん:2018/06/16(土) 11:05:45.57 ID:dxp9ohIz.net
- 何でio::Errorにファイル名入ってないんだろう? 不便だなーと思ってたけど
検索してみたら、前は入ってたのに1.0リリース前に削除されたんだとさ
https://internals.rust-lang.org/t/add-filename-information-to-io-error/
- 571 :デフォルトの名無しさん:2018/06/16(土) 13:06:12.19 ID:Om4I19uv.net
- >>570
非効率になるのを嫌ったってことみたいですね
stdでもつには重すぎるってのは理解はできるけど 確かに不便なんだよなー
自分は結局
ioの関数呼ぶ前にinfo!でログ出すとか
戻ってきたio::Errorをmap_errでPathBuf埋め込んだ自前のErrorに変換するとかしてます
- 572 :デフォルトの名無しさん:2018/06/16(土) 18:58:29.98 ID:dxp9ohIz.net
- >>571
ここで紹介されてる、failureを拡張して let file = File::open(path).with_path(path)?; と書けるようにするのが
カッコいいなと思った
https://github.com/rust-lang-nursery/failure/issues/189
failureは1.0に向けてまだまだ変えていくみたいだし、これ書いた焦げ寿司氏も参加するみたいだから
期待してるわ
throw!マクロが標準化したら、?の時みたいにrustプログラムの見た目変わりそう
- 573 :デフォルトの名無しさん:2018/06/16(土) 20:35:40.86 ID:unm3Vek/.net
- 2回もpath書くの全然かっこよくないから、少し重くてもなんでもいいから便利なライブラリがあれば使うわ
- 574 :デフォルトの名無しさん:2018/06/16(土) 23:56:34.69 ID:f9DGXpDH.net
- トレイトオブジェクトってなんでトレイトオブジェクトって呼ぶん?
ようはヒープに動的に作られたストラクトだら?
- 575 :デフォルトの名無しさん:2018/06/17(日) 01:17:39.67 ID:TG/aPZPS.net
- 何らかのTraitを実装したオブジェクトだから、じゃ駄目なの?
変に勘ぐって誤解してるよ。スタックにある構造体でもトレイトオブジェクトになる
- 576 :デフォルトの名無しさん:2018/06/17(日) 07:51:39.85 ID:p2Sm4Lro.net
- うーんここにはそういうニュアンスでは書いてない気がするんだけどなあ
https://rust-lang-ja.github.io/the-rust-programming-language-ja/1.6/book/trait-objects.html
- 577 :デフォルトの名無しさん:2018/06/17(日) 11:48:23.47 ID:an9lNlus.net
- traitってなんだよ
- 578 :デフォルトの名無しさん:2018/06/17(日) 12:00:53.08 ID:erltHdM+.net
- >>577
特性
- 579 :デフォルトの名無しさん:2018/06/17(日) 12:03:03.50 ID:an9lNlus.net
- わかんねえよw
- 580 :デフォルトの名無しさん:2018/06/17(日) 14:20:21.15 ID:rd16QG+W.net
- traitは写像の集合で本来的には定義域の集合でないものなので、それとして扱う場合を特別にトレイトオブジェクトって呼んでるんじゃないの?
- 581 :デフォルトの名無しさん:2018/06/17(日) 14:55:33.49 ID:TG/aPZPS.net
- >>576
ヒープにある構造体である、とはどこにも書いてないよね
複数の異なる型を同じ関数や構造体で持っておきたいけど、
型が違うからコンパイル時にサイズが決まらないんで困ったねって状況を解決するのがトレイトオブジェクト
そういう事態じゃなければfn foo<T: TraitFoo>(obj: T)とかやって型毎に関数をコンパイラに作ってもらうのが普通
- 582 :デフォルトの名無しさん:2018/06/17(日) 15:32:03.62 ID:hewfXZ0r.net
- マス科の淡水魚じゃなかったけ
- 583 :デフォルトの名無しさん:2018/06/17(日) 15:36:27.65 ID:Wo64nPZg.net
- それはトラウト
トラウトサーモン。
- 584 :デフォルトの名無しさん:2018/06/17(日) 20:19:57.60 ID:p2Sm4Lro.net
- なんらかのトレイトじゃなくて特定のトレイトを実装したなんらかの型ってことかな
- 585 :デフォルトの名無しさん:2018/06/17(日) 20:38:08.98 ID:JVUiE6fQ.net
- D言語の再来と言われるRustには注目しています。
- 586 :デフォルトの名無しさん:2018/06/18(月) 11:09:28.26 ID:LH5G8a9n.net
- さすがに「C#とか糞wwこれが俺の考えた最強言語ww」→「結局C#が全部正しかったですサーセンww」で終わったただの中二言語と一緒にするのは失礼
- 587 :デフォルトの名無しさん:2018/06/18(月) 15:38:58.79 ID:/sFO+jYl.net
- そうだな。D言語に失礼だ
- 588 :デフォルトの名無しさん:2018/06/18(月) 17:49:36.48 ID:fn6n18W4.net
- C#に、な
- 589 :デフォルトの名無しさん:2018/06/18(月) 18:41:33.59 ID:MmynirXE.net
- まるでD言語が死に絶えたみたいな口振り
- 590 :デフォルトの名無しさん:2018/06/18(月) 18:44:27.51 ID:eWM+pHRs.net
- え?とっくに死に絶えたでしょ
- 591 :デフォルトの名無しさん:2018/06/19(火) 00:05:30.49 ID:wsgBP7Sf.net
- >>572
1.0待てなくてもう現行のfailureにどっぷり浸かっとる。
failureはいいぞ!
- 592 :デフォルトの名無しさん:2018/06/19(火) 13:49:32.69 ID:77HD0esi.net
- D言語は最近顔本コミットを受けて活発化してる
Rustは採用企業が全く増えなくなって資金も枯渇
メインコミッタもリンゴのSwiftやらにヘッドハントされて
もう将来ないでしょ
- 593 :デフォルトの名無しさん:2018/06/19(火) 13:50:33.43 ID:77HD0esi.net
- もちろん言語のエコシステムとしての将来がないってだけで、
ライフタイムとかの実装系の先駆としての意義はあったとおもうが
- 594 :デフォルトの名無しさん:2018/06/19(火) 15:45:39.61 ID:Es9NuDl6.net
- 終わってみればdartの舞の海だったな。
- 595 :デフォルトの名無しさん:2018/06/19(火) 17:08:02.40 ID:menX4d1R.net
- なんで急に元力士の名前が出てきたんだ?
二の舞って言いたかったのか?
- 596 :デフォルトの名無しさん:2018/06/19(火) 17:13:53.63 ID:TNMX9OjF.net
- >>591
なんかfailureのissues見ると、現状のstd::errorの設計は失敗作扱いみたいだな
それって共通認識なんかな?
- 597 :デフォルトの名無しさん:2018/06/19(火) 17:47:33.05 ID:cDjhSbaW.net
- Haskellかじってて、Rustに興味出てきたんだけど、なに、廃れつつあるの?
- 598 :デフォルトの名無しさん:2018/06/19(火) 18:00:26.05 ID:LBhs/jk2.net
- 廃れるもクソも、Rustが世間の注目を浴びたことなど未だかつて無い
- 599 :デフォルトの名無しさん:2018/06/19(火) 18:16:13.49 ID:menX4d1R.net
- 大丈夫、大丈夫。
ユーザーが年々すごい勢いで減っているDに比べりゃ
規模は小さいもののRustは年々少しずつ増えてるわけだから
今後普及するかどうかはともかく少なくとも廃れちゃいないし、
学習コストが高いから敬遠されてるだけで注目もされてる
それにHaskellと同じで勉強しといて損はない言語だと思うし
- 600 :デフォルトの名無しさん:2018/06/19(火) 19:21:40.76 ID:30ZWMBay.net
- そもそも普及を目指してるような気配もないよな
バッテリ同梱などと言い出しもしないばかりか
randすらクレイトになってるから
rustcだけで楽しんでると涙目(´・ω・`)になる
- 601 :デフォルトの名無しさん:2018/06/19(火) 19:22:11.75 ID:b5m1uThb.net
- Dのユーザが減ってRustのユーザが増えてる世界線はどこにありますか?
- 602 :デフォルトの名無しさん:2018/06/19(火) 19:50:06.21 ID:R39QGoSG.net
- 別に趣味でやってりゃいいんでないの。
ライフタイムとか所有権の感覚は他言語でも役にはたつでしょ。
- 603 :デフォルトの名無しさん:2018/06/19(火) 22:33:45.56 ID:jJOU+tvI.net
- wasm やるなら stdweb と wasm-bindgen のどちらを使ったらいいですかね?
もしくは他の選択肢の方がいいとかありますか?
- 604 :デフォルトの名無しさん:2018/06/19(火) 23:34:50.37 ID:X5Ll7hqK.net
- >>596
std::error+error_chain/log crateの問題点を
解決するためにfailure/slog crateが
作られたからだいたいそんな感じだと思う。
failureの方は今nurseryだし。
failureのエラーとstd::errorのエラーを相互変換できるから
移行や依存ライブラリがstd::error使ってる場合に対応簡単だよ。
まあ、1.0待ったほうがいいけど。
- 605 :デフォルトの名無しさん:2018/06/19(火) 23:47:20.77 ID:X5Ll7hqK.net
- >>603
wasm-bindgenはhost bindings proposalの実装でstdwebはweb apiのrustバインディング。
host bindings proposalはWebAssembly用の(ホストとの)ffiみたいなもん。
- 606 :デフォルトの名無しさん:2018/06/20(水) 00:10:51.10 ID:pTH4tzak.net
- >>603
stdwebベースのyewとか面白いよ
Reactっぽいことが出来る
- 607 :デフォルトの名無しさん:2018/06/20(水) 07:50:19.18 ID:wh0fPVE/.net
- >>605
>>606
レスどうもです
host binding(wasm-bindgen)が後発で
cargo-webがあるstdwebの方が開発サイクルが楽そうという感じがしてます
yewも見てみます
- 608 :デフォルトの名無しさん:2018/06/20(水) 08:12:54.01 ID:wc145BD7.net
- >>604
stdの下にあるけど非推奨、みたいなのが今後だんだん増えてくるのかな
- 609 :デフォルトの名無しさん:2018/06/20(水) 08:14:53.51 ID:mWzW79Bi.net
- はよRust4.0くらいにならんかな
- 610 :デフォルトの名無しさん:2018/06/20(水) 10:36:39.96 ID:YLzmhKZ9.net
- >>608
使ってはいけない標準ライブラリとかC言語のgetsかよwwwww
21世紀の言語とは思えねえなwwwwwおもちゃもいいところwwwwwww
- 611 :デフォルトの名無しさん:2018/06/20(水) 10:37:49.71 ID:zK9FZNDh.net
- きたきたw
- 612 :デフォルトの名無しさん:2018/06/20(水) 13:21:29.03 ID:aMAqNpY0.net
- テンション高杉wwww
- 613 :デフォルトの名無しさん:2018/06/20(水) 17:10:00.84 ID:XqMiT4dO.net
- 愛され言語ナンバーワンに2年連続で輝いたのに人気ない扱いは意味不明だ
- 614 :デフォルトの名無しさん:2018/06/20(水) 18:22:38.96 ID:vXpw0FFs.net
- >>613
純粋に聞くがお前の周りでRustサイコーって言ってるエンジニア何人いる?
- 615 :デフォルトの名無しさん:2018/06/20(水) 18:41:59.74 ID:CaLRYR6s.net
- 標本数1〜2のデータよりこれ見ません?
https://insights.stackoverflow.com/survey/2018/#technology-most-loved-dreaded-and-wanted-languages
- 616 :デフォルトの名無しさん:2018/06/20(水) 18:44:15.98 ID:XqMiT4dO.net
- >>614
2/6人かな
- 617 :デフォルトの名無しさん:2018/06/20(水) 18:51:57.98 ID:vXpw0FFs.net
- >>615
いくらでも組織的に水増しできる問答や投票になんの意味が?
- 618 :デフォルトの名無しさん:2018/06/20(水) 18:52:41.55 ID:vXpw0FFs.net
- >>616
その程度の言語が世界一位って統計的におかしいと思わん?
- 619 :デフォルトの名無しさん:2018/06/20(水) 18:54:56.56 ID:Vsx9tnAR.net
- >>617
dreadedに水増ししたの?w
- 620 :デフォルトの名無しさん:2018/06/20(水) 18:55:44.33 ID:CaLRYR6s.net
- >>618
お前と匿名の一人で統計語ろうっておかしいと思わん?
- 621 :デフォルトの名無しさん:2018/06/20(水) 18:57:44.45 ID:CaLRYR6s.net
- あとこいつ好感度と使用者の数をごっちゃにしてるの?凄いよそれは
フィボナッチ数列も書けないだけはあると思うよ
- 622 :デフォルトの名無しさん:2018/06/20(水) 20:41:21.29 ID:Hd+sK95t.net
- フィボナッチ数列って円周率みたくいまもなお計算され続けてたりするのかな
- 623 :デフォルトの名無しさん:2018/06/20(水) 21:15:36.40 ID:vXpw0FFs.net
- どう考えてもRustなんかよりJavaのほうが愛好家多いだろ
プロダクトの数考えろよ
- 624 :デフォルトの名無しさん:2018/06/20(水) 21:52:02.37 ID:x0fgVEGk.net
- GithubではJavaScriptが一番多いからJavaScriptが一番愛された言語だよ(お前の中で)
この記事オカズに1年ぐらい黙れそう?
http://wolfbash.hateblo.jp/entry/2017/07/30/193412
- 625 :デフォルトの名無しさん:2018/06/20(水) 22:24:58.84 .net
- ハンバーガーはマクドナルドが世界一売上高いんだから、マクドナルドのハンバーガーが世界一美味いに決まってるだろ?
- 626 :デフォルトの名無しさん:2018/06/20(水) 22:35:12.33 ID:6Ldi6ZQ0.net
- >>618
なんで一つのサンプルで統計的にとらえるんだ?
プログラマー的におかしいと思わん?
- 627 :デフォルトの名無しさん:2018/06/20(水) 23:15:44.76 ID:kIAOzAlL.net
- そういや何でmainが必要なんだろね
- 628 :デフォルトの名無しさん:2018/06/21(木) 07:34:12.21 ID:yU20OhIB.net
- Nimへの風評被害記事を貼るのはやめろ
- 629 :デフォルトの名無しさん:2018/06/21(木) 09:00:57.14 ID:osGR8xHL.net
- 初見の人のために何度も貼るけど↓が本スレ
http://mevius.5ch.net/test/read.cgi/tech/1514107621/
ここはキチガイと戯れるスレ
- 630 :デフォルトの名無しさん:2018/06/21(木) 10:39:54.15 ID:n536ipp2.net
- >>624
それ>>8でオレが貼った記事な
このスレでも反論の余地の出なかった良記事。Nimについてはともかく
Rustのクソさについては本当によくまとまってる
- 631 :デフォルトの名無しさん:2018/06/21(木) 12:34:03.16 ID:c3YkgC6b.net
- 真正のアホだった
- 632 :デフォルトの名無しさん:2018/06/21(木) 17:49:56.62 ID:ay5pVfJh.net
- だからさー。文句あるなら記事に反論してみなよ
取り下げられた記事以外誰も出せないまま人格批判だけとか全く理論的じゃないし
そういう人ばっかだよねRust信者って
- 633 :デフォルトの名無しさん:2018/06/21(木) 18:20:34.36 ID:tEqpfdQL.net
- ここ本スレじゃなかったのか
お邪魔しました
- 634 :デフォルトの名無しさん:2018/06/21(木) 18:35:12.47 ID:ZtwQwgWl.net
- >>632
archive. fo/7NUr2
なんかある?
- 635 :デフォルトの名無しさん:2018/06/21(木) 18:46:46.63 ID:ay5pVfJh.net
- >>634
だから取り下げられた記事は反論にならないって
本人が間違いだって取り下げたんだから
- 636 :デフォルトの名無しさん:2018/06/21(木) 19:00:49.88 ID:c3YkgC6b.net
- >>635
読んでもねぇのに自分勝手に判断して否定するバカが
「理論的じゃない」とかよく言えたな
その言葉そっくりそのままお返しするよ
- 637 :デフォルトの名無しさん:2018/06/21(木) 20:30:12.03 ID:Do17eRfw.net
- >>636
自分勝手じゃないよ?
そもそも論を取り下げたのは向こうじゃん
取り下げられた論が議論の俎上に上がるのはおかしいでしょ
- 638 :デフォルトの名無しさん:2018/06/21(木) 21:05:10.85 ID:6Hcg3ucp.net
- ある人がどのレベルでプログラミングしてるか、という差がある
ある人にとってはプログラミングとは設計作業に他ならず
ある人にとってはプログラミングが指の労働でしかない
書き間違えるから、書き忘れるから、という理由でもって
しょうもないバッドノウハウを拝み続ける者すらいる
塩と砂糖を入れ間違う、塩を入れ忘れる、自称料理人
そーいうレベルのプログラマ
- 639 :デフォルトの名無しさん:2018/06/21(木) 21:10:50.36 ID:tPTNHe4P.net
- クソ言語はRuで始まるの法則。
ソースはRubywwwww
- 640 :デフォルトの名無しさん:2018/06/21(木) 21:12:31.35 ID:c3YkgC6b.net
- >>637
何故取り下げたかの理由も書いてあったがそっちのほうは完全に消えたかな…
アーカイブすら残ってなさそうだ…
「他の記事を貶めるような記事は品性が疑われるからやっぱり取り下げる」
みたいな理由だっと思うけど、どうせお前はそれも認めないんだろ…
………ふぅ………もういいよ……
お前の頭ん中ではRustはクソ言語で良いよ……
- 641 :デフォルトの名無しさん:2018/06/21(木) 21:16:43.31 ID:THBJN+Sm.net
- まあ人気であることは否定できないし好きに言わせとけば
- 642 :デフォルトの名無しさん:2018/06/21(木) 21:55:24.51 ID:cUkhcSdq.net
- Rubyスレいってこい
- 643 :デフォルトの名無しさん:2018/06/21(木) 22:10:18.40 ID:IDDH/Zj5.net
- >>637
そういう人だね
お前だけは確実に
- 644 :デフォルトの名無しさん:2018/06/22(金) 06:32:29.82 ID:dlC04wo2.net
- rustup update stable
- 645 :デフォルトの名無しさん:2018/06/22(金) 07:54:28.27 ID:eG6Vx+RS.net
- クソ言語に固執し続けるクソ人間
- 646 :デフォルトの名無しさん:2018/06/22(金) 08:36:26.70 ID:YRNyKvjT.net
- 1.27.0がstableになったんね
- 647 :デフォルトの名無しさん:2018/06/23(土) 08:31:56.29 ID:XcMMhDbo.net
- rustは個人開発向けで仕事に使うものじゃないのね。
- 648 :デフォルトの名無しさん:2018/06/23(土) 09:39:24.90 ID:tcOUUI9f.net
- ソースは?
- 649 :デフォルトの名無しさん:2018/06/23(土) 10:17:10.81 ID:YCFgkK7r.net
- Cargo.tomlに対応するrustcの最低バージョン番号を書く方法ってある?
- 650 :デフォルトの名無しさん:2018/06/23(土) 10:36:49.30 ID:SR6K28vn.net
- ネタスレで質問するやつはキチガイ
- 651 :デフォルトの名無しさん:2018/06/23(土) 11:42:32.40 ID:FNwUUYYn.net
- スレチ
Rustスレに行け
- 652 :デフォルトの名無しさん:2018/06/23(土) 12:03:08.67 ID:SR6K28vn.net
- キチガイがまともなふりして質問するふりするんだよなー
- 653 :デフォルトの名無しさん:2018/06/23(土) 12:36:47.01 ID:VZhdie4n.net
- >>649
https://qiita.com/tatsuya6502/items/8b31e2b162aff78787fe
プロジェクトフォルダにrust-toolchainファイル置いてその中で指定出来るみたい
toolchain指定なんでrustup必須になるのと固定指定しかできないっぽいけど
- 654 :デフォルトの名無しさん:2018/06/23(土) 17:56:54.88 ID:ADF05MCP.net
- みんな英語どうやって勉強したの
- 655 : :2018/06/23(土) 18:09:48.96 ID:OlLfOCSW.net
- >>654
受験勉強で
- 656 :デフォルトの名無しさん:2018/06/23(土) 18:09:55.67 ID:592i1cd7.net
- >>654
俺は英語なら分かるんだけど、日本語はさっぱり分からん
- 657 :デフォルトの名無しさん:2018/06/23(土) 18:11:27.27 ID:ADF05MCP.net
- >>655
すげーな
オライリーのやつKindleで読んでるけどまず訳すのが大変だわ
- 658 :デフォルトの名無しさん:2018/06/23(土) 18:27:07.96 ID:ADF05MCP.net
- >>656
英語圏に生まれたかったと切に思う
- 659 :デフォルトの名無しさん:2018/06/23(土) 19:52:59.41 ID:1v1LX/MG.net
- 訳さず英語で読んだ方が…
情報の早さ・量・正確さが段違いだし原著読むと意外と難しい単語使われてない。
bind(bound)を束縛とかアホかと。
せめて結びつけとかにしろよと。
翻訳のセンス無さすぎ。
もしくはわざと小難しくして地位を守ってるのか…
- 660 :デフォルトの名無しさん:2018/06/23(土) 19:59:41.54 ID:G+zkBspm.net
- 結びつけだとassociateの訳ともとれそう
英語と一対一で対応できる和訳の方があとから英語情報に触れるときのハードルを下げると思う
- 661 : :2018/06/23(土) 20:01:25.05 ID:OlLfOCSW.net
- >>659
get / put / take なんかで言い換えしたからといって、わかりやすくなったとは思わない
- 662 :デフォルトの名無しさん:2018/06/23(土) 20:13:20.08 ID:1v1LX/MG.net
- それにしても〜を〜に束縛しますとかセンス無さすぎる。
明治時代の翻訳見習ってほしい。
漢籍の素養が必要だが…
- 663 :デフォルトの名無しさん:2018/06/23(土) 20:59:38.24 ID:hXAC/kvi.net
- 逆に聞くが「変数にbindする」って日本語にどう訳したら自然なんだ?「結びつける」は別の意味になるぞ
明治期のアレは翻訳っていうよりは対応する訳語を創出するって感じだから、単純な翻訳じゃないぞ
「縛りつける」みたいな感じになるしかないと思うんだが
束縛は単純に漢語にしただけで大差なかろう
- 664 :デフォルトの名無しさん:2018/06/23(土) 21:03:29.72 ID:YCFgkK7r.net
- >>653
ありがとう
一応そういうのあるんだ
そのページの下に書いてある、edition 指定出来るようになるのを期待、という感じかな
- 665 :デフォルトの名無しさん:2018/06/23(土) 21:53:58.53 ID:eYj7ZreJ.net
- > 翻訳のセンス無さすぎ。
お前にはあるかのような口ぶりで
> せめて結びつけとかにしろよと。
↑こんなこと言い放ちつつも
> もしくはわざと小難しくして地位を守ってるのか…
束縛っていうふつうの単語を小難しく感じると白状し
地位を守るだのなんだのという珍妙な価値観まで丸出しにするとは恐れ入る
- 666 :デフォルトの名無しさん:2018/06/23(土) 22:00:12.26 ID:iDCSFlv+.net
- まあ、英語のbindからして数理論理の変数束縛と同じ単語を別の意味で使いまわしてる
近い分野なんだから専門用語もう少し考えてくれても良かったのに
- 667 :デフォルトの名無しさん:2018/06/23(土) 22:31:42.63 ID:3sIWKIRG.net
- 慣れちゃってるから気づきもしなかったけど代入からして大概だよな。
英語だと単にassignだぞ。
- 668 :デフォルトの名無しさん:2018/06/23(土) 22:44:14.17 ID:YCFgkK7r.net
- その点、グーグルは気が利いてて、
「錆は、安全性、スピード、並行性に重点を置いたシステムプログラミング言語です。
以前のバージョンのRustが錆びてインストールされている場合、」
だからな
- 669 :デフォルトの名無しさん:2018/06/24(日) 00:43:46.88 ID:8RP1t8O+.net
- 「バインドする」で良いのでは
traitとかcrateとか訳すとよくわからなくなるもの多いし全部カタカナでよい
- 670 :デフォルトの名無しさん:2018/06/24(日) 00:53:31.43 ID:EUL7CrQi.net
- a に 1 を綴じます。
- 671 :デフォルトの名無しさん:2018/06/24(日) 01:02:45.16 ID:AYN9x63N.net
- タイプアノテーションのないバリアブルのタイプはライトサイドをエバリューションしたときのタイプになります
- 672 :デフォルトの名無しさん:2018/06/24(日) 02:00:22.91 ID:cQRh0RXw.net
- 是々非々だな。
型アノテーションのない変数の型は右側を評価したときの型になります
束縛するはバインドするでよかった。SMの趣味ないし。
- 673 :デフォルトの名無しさん:2018/06/24(日) 07:41:58.64 ID:yrJGTcca.net
- 束縛と代入ってなにか違うんけ?
- 674 :デフォルトの名無しさん:2018/06/24(日) 08:29:18.59 ID:4dDfbtJe.net
- 誰に確認したわけじゃないが、変数に何か値を設定するのが代入で、値に名前を付けるのが束縛だという認識
fn foo(...) {...} は、ある関数に対しfooという名前をつけるので「関数をfooに束縛する」とは言うかもしれないけど、
「fooに関数を代入している」とは言わない、みたいな
- 675 :デフォルトの名無しさん:2018/06/24(日) 09:14:33.52 ID:aLprG8s0.net
- 緊縛と挿入!
- 676 :デフォルトの名無しさん:2018/06/24(日) 09:46:27.06 ID:dcl6yRWH.net
- 単にイミュータブルかミュータブルかの違いでないの?
- 677 :デフォルトの名無しさん:2018/06/24(日) 09:52:28.95 ID:yrJGTcca.net
- >>674
伝統的な表現だと宣言に近いニュアンスかな
- 678 :デフォルトの名無しさん:2018/06/24(日) 10:29:37.13 ID:O0XPf3sp.net
- rustはバインドしていない状態の変数も合法だからややこしい
let hoge;
hoge = 100; // これをコメントアウトするとコンパイルできない
println!("{}", hoge);
- 679 :デフォルトの名無しさん:2018/06/24(日) 12:51:16.68 ID:1I2gvIDj.net
- 初心者なんですが、文字列を作成して返す関数を作るときって、
fn hoge() -> String { "hoge".to_string() }
と書くものですか?
それとも
fn hoge() -> &'static str { "hoge" }
と書くべきでしょうか?
- 680 :デフォルトの名無しさん:2018/06/24(日) 13:59:02.13 ID:yrJGTcca.net
- その例だと関数にする必要なくない
- 681 :デフォルトの名無しさん:2018/06/24(日) 15:24:02.20 ID:7t4PbT1U.net
- >>679
テケトーにググっただけ
つ https://qiita.com/Mizunashi_Mana/items/db88cb0bff002abce1ae
- 682 :デフォルトの名無しさん:2018/06/24(日) 18:18:06.50 ID:ImbiQntl.net
- Stringもstrも返す可能性があるなら Cow<str> で
それ以外なら使えるときは &str を使うのが良いのでは
- 683 :デフォルトの名無しさん:2018/06/24(日) 19:01:12.28 ID:n+g5Cjrk.net
- Stringとstrを両方残しちゃうあたり
優柔不断でグダグダな言語に思えてしまう
- 684 :デフォルトの名無しさん:2018/06/24(日) 19:14:57.34 ID:knj+uGWY.net
- はあ…?
- 685 :デフォルトの名無しさん:2018/06/24(日) 19:22:46.99 ID:rqN/F7y5.net
- C FFIに関する技術資料ってどこにあるんだろ?
ttps://rust-lang-ja.github.io/the-rust-programming-language-ja/1.6/book/ffi.html
にチュートリアルはあるけどexternの記述方法とかがわからない
見よう見まねで書けなくはないけどそのまま行くのは事故の元だし
ついでにlibcが何をしているのかもわからない
- 686 :デフォルトの名無しさん:2018/06/24(日) 20:18:07.31 ID:gRETAB5B.net
- >>685
CのヘッダからRustのインターフェースを自動生成してくれる
bindgenを追っかけてみればよいかと
https://github.com/rust-lang-nursery/rust-bindgen
- 687 :デフォルトの名無しさん:2018/06/24(日) 22:15:14.01 ID:W9MJDxOG.net
- >>684
せめて理論的に反論しろよグダグダ言語の信者
- 688 :デフォルトの名無しさん:2018/06/24(日) 22:29:21.43 ID:ztKvyOBw.net
- >>687
ごめんなさい
論はどこですか?
- 689 :デフォルトの名無しさん:2018/06/24(日) 23:26:54.62 ID:rqN/F7y5.net
- >>686
えぇ・・・ソース見るしかないのかよ・・・
リファレンスマニュアル見てもちゃんと書いてないんだよな
さらにググってもリファレンスマニュアルが引っかかってこない罠
- 690 :デフォルトの名無しさん:2018/06/24(日) 23:57:53.79 ID:O0XPf3sp.net
- >>685,686
unsafeまわりの文書に入ってる(ただしdraft)
https://doc.rust-lang.org/nomicon/ffi.html
公式文書はgithubのorganization(rust-lang、rust-lang-nursery)から探している
- 691 :デフォルトの名無しさん:2018/06/25(月) 00:22:53.39 ID:U0L6J6Ez.net
- C言語ライブラリの関数を3回呼び出すコードと格闘すること数時間。ようやく動いた
まだ不明点は残っている
・#[link(〜のkindが何を示しているのか判らない
C FFIの使用例を見るとよく見るんだが・・・
・C言語配列の渡し方が不明
元は
>int p[]={16,9};
>foo(p);
とりあえず
>foo("\x10\x09".as_ptr());
などと書けばデータ上は整合するから動くけどどう見てもスマートな記述方法ではない
・文字リテラルの仕様が不明
↑の表記を得るのに数回試行錯誤した
データの与え方もCStringを使った(=\x00終端する)方法は出てくるけど、そうではない方法は
中々見つからなかった。結局↑の表記に落ち着いたが
>>690
ありがとう。kind値について書いてありますね。静的リンクだとkind = "static"らしいですが
付けても付けなくてもファイルサイズは大差ないようです。何が違うのだろう
- 692 :デフォルトの名無しさん:2018/06/25(月) 12:50:29.35 ID:vFqeQKwN.net
- Cの配列は第一級の値じゃないからas_ptrが正攻法だと思う
- 693 :デフォルトの名無しさん:2018/06/25(月) 20:19:17.73 ID:U0L6J6Ez.net
- >>690によればFFIで使用できる物として
・#[repr(C付きのstruct
・#[repr(C付きのenum
・box?
・vec
・str
が挙がっているけどCと互換性があるのはこれらのみって事なのだろうか
vecを試してみたら動いたけどextern時に安全じゃないから#[repr(C)]付きのstruct使えなどと言いだした
>>692
マジかよ!確かに文字列は汎用性が高いけど可読性が良くない・・・必要に応じて抽象化しろという事か
- 694 :デフォルトの名無しさん:2018/06/25(月) 20:24:02.61 ID:J2kal8dh.net
- Rustの側では変更しないけどCの側で変更するような変数ってmutにしないと駄目よね?
- 695 :デフォルトの名無しさん:2018/06/25(月) 22:00:13.27 ID:U0L6J6Ez.net
- あっ、ヤベェ・・・いきなり重大なバグ出してら
× 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"に変換してくれるようなのが欲しい
- 696 :デフォルトの名無しさん:2018/06/25(月) 22:05:44.09 ID:KKbqvHaH.net
- うわこれは読みたくないw
難しいもんだな
- 697 :デフォルトの名無しさん:2018/06/25(月) 22:59:19.25 ID:U0L6J6Ez.net
- ちなみに間違っている状態でも呼んだC関数は正常に終了します。まさにunsafeです。怖いです
何か対策を考えないと大事故を起こしそう
要素数2しかないのにstructを書くのはコード効率の点からも可読性の面からもあまり良いとは思えないし・・・
いろいろ試してみたら
>let p: [i32; 2] = [16, 9];
>foo(&p);
ならいけるようだ。コンパイラは何も言わないけどこの表記が適切かどうかは不明
Rubyだと
foo([16,9].pack("i2")) #配列をint2個分の文字列(=8byteのバイナリ列)に変換
とか書けるんだよなぁ。コストは安くないけど>>695みたいなポカミスは起こらない
- 698 :デフォルトの名無しさん:2018/06/25(月) 23:46:12.87 ID:kYoiRQin.net
- >>697
何がしたいかよく分からんが
何故に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と対応する型は何かを考えれば良い
- 699 :デフォルトの名無しさん:2018/06/26(火) 00:21:30.73 ID:kImvQJUH.net
- >>698
いや、isizeはまずいんじゃない?
例えばx86_64だとisize:64bit,int:32bitだし。
libcクレートのc_intならアーキテクチャ毎に適切なサイズになるから
こちらがいいかと。
- 700 :デフォルトの名無しさん:2018/06/26(火) 00:26:36.57 ID:kImvQJUH.net
- ついでに言うとFFIするときの型はプリミティブ型以外でも
とりあえずlibcクレートを探すといい。
まぁマイナーなアーキテクチャだと間違ってたりすることもあるから
確認は必要だけど。
- 701 :デフォルトの名無しさん:2018/06/26(火) 00:50:28.55 ID:85MS96V/.net
- とりあえず仕返しにrubyスレ荒らそうぜ
http://mevius.5ch.net/test/read.cgi/tech/1523954817/
- 702 :デフォルトの名無しさん:2018/06/26(火) 00:50:41.38 ID:Hc+GAUt1.net
- >>699
あれ?そうだっけ?
うかっりしてたゴメン
そう言えばCのintはポインタのサイズに合わせるんじゃなくて
アーキテクチャ毎に変わるんだったっけか
- 703 :デフォルトの名無しさん:2018/06/26(火) 01:08:16.37 ID:Hc+GAUt1.net
- 調べたらCのintにRustで対応する型はisizeじゃなくてstd::os::raw::c_intだったわ
libcのc_intとの違いがよく分からん
対応アーキテクチャの数か?
- 704 :デフォルトの名無しさん:2018/06/26(火) 02:21:07.36 ID:kImvQJUH.net
- >>703
一応libcはno_stdでも動くというメリットがあった気はする。
逆にプリミティブ型限定でも依存ライブラリ増やしたくないならstdなのかな?
- 705 :デフォルトの名無しさん:2018/06/26(火) 08:11:12.99 ID:xzmHFSgh.net
- >>698
あなたの言うとおりですが、そのような情報はどこをから得られるのか・・・
>>690等のFFIに関する資料に書いてあるようには見えません
std::os::raw::c_intも>>703を見て探してみたら
ttps://doc.rust-lang.org/std/os/raw/index.html
ここにあるのか
配列等の長さが変わる型のC互換性に関する情報もどこにあるんだろ
アドレスの連続性とメモリの確保が保証されている必要があると思いますが
- 706 :デフォルトの名無しさん:2018/06/26(火) 08:35:08.35 ID:Hc+GAUt1.net
- >>705
資料が少ないのはまだ普及してない言語では仕方がない
FFIとか皆が頻繁に使う機能じゃないようなものはなおさら
Cの配列とRustの配列は互換があるはずだけど
悪いがその情報をどこから手に入れたかは覚えていないし
信用されても困る(ついさっきも間違えたしね)
場合によっては資料探すよりソースコード読んだほうが早いことも多いし
根気良く調べるしかないとしか言いようがない
あとはFFIみたいなunsafe部分は出来る限り念入りにテストを書くとか
- 707 :デフォルトの名無しさん:2018/06/26(火) 09:06:54.14 ID:ffYAyO/t.net
- >>705
arrayとsliceの連続性保証はここですかね。
https://doc.rust-lang.org/reference/type-layout.html#array-layout
- 708 :デフォルトの名無しさん:2018/06/26(火) 10:23:55.54 ID:MUW40HUm.net
- 今のnightlyだとclippyビルド出来ないよね?
ビルド出来る最後のバージョンと、それをインストールする方法教えてください
- 709 :デフォルトの名無しさん:2018/06/26(火) 12:18:25.05 ID:8xBVh24a.net
- RustのABIについてはドキュメント増やすことはできるだろうけど
それ以前の問題としてCのABI知らないとFFIつらいのでは
- 710 :デフォルトの名無しさん:2018/06/26(火) 18:47:03.15 ID:xzmHFSgh.net
- 付き合ってくれてありがとう
まとめると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があれば一通り出来そうか
- 711 :デフォルトの名無しさん:2018/06/26(火) 20:49:29.40 ID:qO0rk7ac.net
- vecもas_ptr用意されているし非推奨と言うことはないはず
sliceにderefできるし
- 712 :デフォルトの名無しさん:2018/06/26(火) 23:28:33.57 ID:+xThVrkU.net
- 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へ入れるようにしたら所有権で怒られて動かなくなった
同じコードでも型によって所有権の移動のしかたが違うのか
- 713 :デフォルトの名無しさん:2018/06/27(水) 00:01:15.59 ID:a5PFJKPe.net
- 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();
- 714 :デフォルトの名無しさん:2018/06/27(水) 00:13:14.65 ID:95B8/IDl.net
- あとC関数の引数&戻り値はmove(ポインターか実値)しないとだめじゃない?
&付けて参照渡しにするのはよく分からない、たぶん未定義動作じゃないかなあ
- 715 :デフォルトの名無しさん:2018/06/27(水) 01:04:32.64 ID:9Rd9nmLi.net
- >>708
clippyは最新のnightlyは**追ってない**けど常に開発中だから
ビルドできるバージョンは常に変わる。
自分の環境のビルドできる最大のnightlyに合わせろしか言えん。
常にclippyを使い続けたいなら環境の方をclippyに合わせないとだめ。
>>710
- 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レイアウトならクレートあるぞ。
- 716 :デフォルトの名無しさん:2018/06/27(水) 02:41:49.66 ID:yfKVc+j6.net
- Rustだけ覚えればいい時代はまだ来ない
C/C++の知識皆無では
- 717 :デフォルトの名無しさん:2018/06/27(水) 09:44:32.66 ID:SAllJH2o.net
- オライリーの訳本が8月に出るのね
- 718 :デフォルトの名無しさん:2018/06/27(水) 10:05:32.17 ID:YMyBwU5o.net
- 本が出る頃には内容が古くなってるやつだろ
- 719 :デフォルトの名無しさん:2018/06/27(水) 14:44:22.85 ID:3NxQrIF4.net
- >>717
英語で出る分には多目に見たが、日本語で出るんなら出版社の不買運動だな
どこが訳すか知らんけど
- 720 :デフォルトの名無しさん:2018/06/27(水) 17:59:19.20 ID:06nI5JoX.net
- 不買運動何人参加するの?大規模にやろうぜ
- 721 :デフォルトの名無しさん:2018/06/27(水) 18:21:05.70 ID:nwq6g8g7.net
- 英語なら多目に見るwwwwwwww
- 722 :デフォルトの名無しさん:2018/06/27(水) 18:35:05.31 ID:hr/rqCUy.net
- >>713
ありがとう、そういうオチか。&で正常に動かないのも納得です
暗黙の変換って便利ですけど理解が浅いとハマる元だったりしますよね
不適切な入力を入れると自分が書いたつもりのコードとは無関係っぽいエラーを出して???になったり
>>714
#[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はポインタのサイズらしいしこっちの方が楽かも
- 723 :デフォルトの名無しさん:2018/06/27(水) 19:40:13.19 ID:5BauIrrs.net
- 訳本情報どこにある?
- 724 :デフォルトの名無しさん:2018/06/27(水) 19:41:49.80 ID:Z4vkTjjE.net
- てかrust覚えるなら普通にc++のスマポくらいは知っとかんとわけわからんだろ。
- 725 :デフォルトの名無しさん:2018/06/27(水) 19:45:28.45 ID:luhHLeJ1.net
- 今日発売の新しいrust本買った人いるのかな
評判良ければKindle出た頃に買おうかなと思うけど
- 726 :デフォルトの名無しさん:2018/06/27(水) 20:11:21.04 .net
- 貧乏なのでPacktの糞本を$10セールの時しか買えない
- 727 :デフォルトの名無しさん:2018/06/27(水) 20:16:03.57 ID:aPrQo9aq.net
- 訳本amazonにあったわ
早速予約した
- 728 :デフォルトの名無しさん:2018/06/27(水) 20:16:12.37 ID:YMyBwU5o.net
- オライリーの本って、オンラインに無料であるやつとおなじやなかったん?
- 729 :デフォルトの名無しさん:2018/06/27(水) 21:01:38.86 ID:IGU3gLqH.net
- >>728
オライリーの原著は去年12月に発売、今年8月に訳本
今日発売された英語の本は公式ドキュメント(第2版)の印刷版
版元はno starch press
- 730 :デフォルトの名無しさん:2018/06/28(木) 01:06:21.38 ID:cJz1WTLf.net
- >>722
他の人も似たようなこと書いてるけど、Cの配列は結局はポインタに過ぎないから
C側がポインタを求めれば、当然Rust側でもポインタを渡す
あと>>712の
>同じコードでも型によって所有権の移動のしかたが違うのか
は半分正解で半分不正解
正確には、型によって違うんじゃなくて、Copyトレイトをimplしてるか否かで違う
u32はCopyトレイトをimplしてるから所有権はmoveじゃなくてcopyされる
c_voidはCopyトレイトをimplしてないから所有権をmoveしようとする
The Bookちゃんと読んだ?読んでないなら一度きちんと通読することを勧める
- 731 :デフォルトの名無しさん:2018/06/28(木) 06:00:08.46 ID:YYPKz5qu.net
- rustやるのにあったほうがいい前提知識ってどれくらい?
c++とhaskellがまともに出来ないときつい?
- 732 :デフォルトの名無しさん:2018/06/28(木) 06:30:25.53 ID:fobuFGlz.net
- そんなわけないだろw
どっちかてと根気が必要だ
- 733 :デフォルトの名無しさん:2018/06/28(木) 07:54:11.40 ID:1UW06GNd.net
- いや最低限c++のコンストラクタ、デストラクタの動くタイミングくらいは知っとかないと無理だろ。
- 734 :デフォルトの名無しさん:2018/06/28(木) 08:12:22.16 ID:MOChRiis.net
- >>730
一応deriveでCopy(とClone)を実装すればいいらしいと言うところまでは確認しているのですが
1.std::os::raw::c_voidへ追加で実装できるのか未確認(できたとしてもモンキーパッチになってしまう)
2.別名の型を新規に作る(usizeもしくはusizeへのエイリアスに対するメリットが思いつかない)
なもんで問題なさそうならusizeで良いかなと・・・
というかCのライブラリを使うと>>722みたいなケースは良くあると思うけど他の人はどうしているんだろ
libcのc_voidもlib.rsを見るとstd::os::raw::c_voidと同じみたいだし同様の現象が起きそうです
ググると引数はc_voidを使って戻り値はusizeを使っているようなコードも出てくるしusizeが正攻法なのか?
ちなみにこのコードだとusizeを使ってもmutが不要の警告が出るんですよね。これもそんな事を言われても
困るのですが
- 735 :デフォルトの名無しさん:2018/06/28(木) 08:55:27.92 ID:bLMLowda.net
- >>734
Cで確保したポインタ(特に○○ハンドルみたいなリソース)は普通はopaque structで受けると思う。
https://rust-lang-ja.github.io/the-rust-programming-language-ja/1.6/book/ffi.html#%E3%82%AA%E3%83%9A%E3%83%BC%E3%82%AF%E6%A7%8B%E9%80%A0%E4%BD%93%E3%81%AE%E8%A1%A8%E7%8F%BE
どちらかというと、func2の引数が参照渡しでなくて値渡しなのが問題では。
見た感じfunc2では借用して呼び出し後に返してもらえばいいっぽいけど。
- 736 :デフォルトの名無しさん:2018/06/28(木) 10:18:12.24 ID:MyWFnKdA.net
- >>733
えーなんで?rust書いてる人の大半は知らないでしょ
- 737 :デフォルトの名無しさん:2018/06/28(木) 10:38:48.43 ID:LheEK93m.net
- こりゃC++まだ覚えてない人はrustなんか勉強してる場合じゃないねw
- 738 :デフォルトの名無しさん:2018/06/28(木) 12:56:07.56 ID:rDWw9n99.net
- c++といってもRAIIとスマートポインタくらいで良いのでは
知らなくてもtrplなど読めばなんとかなるとは思うが
代数的データ型なども同様
あとは用途次第だけどFFIやるならCのメモリレイアウトくらいは押さえておいた方がよい
- 739 :デフォルトの名無しさん:2018/06/28(木) 13:32:58.62 ID:LheEK93m.net
- そんないい加減なことでいいのだろうか?
ちゃんとC/C++一から十まできちんと理解した方がよいのでは?
それからじゃないとそこがいい加減でRustなんて本当に使えるようになったと言える?
- 740 :デフォルトの名無しさん:2018/06/28(木) 14:08:04.32 ID:QGaIyydK.net
- C++完全に理解した人間なんて世界中に何人いるやら
- 741 :デフォルトの名無しさん:2018/06/28(木) 14:14:44.86 ID:rY43/kt0.net
- Cはともかく、C++に時間を割く必要はないじゃろ
- 742 :デフォルトの名無しさん:2018/06/28(木) 14:20:27.58 ID:61gzDvUq.net
- むしろCすら知らないほうが変な先入観とか無くて所有権とかライフタイムとか素直に理解しやすそうな気もする
- 743 :デフォルトの名無しさん:2018/06/28(木) 14:28:13.71 ID:MyWFnKdA.net
- 必要という理由が分からない
言語なんて使いながら覚えていくもんでしょ
- 744 :デフォルトの名無しさん:2018/06/28(木) 15:28:41.63 ID:a2wUxb0k.net
- >>739
RustはC/C++分かってないと書けない
→C/C++を分かるまでやる
→C/C++がわかってしまえばそもそもRustなんて不要だと気づく
→Rustを捨てる
- 745 :デフォルトの名無しさん:2018/06/28(木) 16:07:41.79 ID:cJz1WTLf.net
- >>731
確かにC++とHaskellが出来きればRustの習得にはそれほど苦労しないだろうとは思う
ただ、理解できるまでにかかる時間量の問題であって、それがないとキツイってわけじゃない
むしろ、Rustの学習するためにC++とHaskellを先に学習するとか時間の無駄
The Bookが懇切丁寧に解説してくれるので前提知識はなくても全く問題ないと思う
ただし、Goみたいな言語と違ってサンプルコード読めばある程度理解できて
何となくで書けてしまうような言語ではないのでThe Bookの熟読は必須
それと、FFIする場合はある程度のCの知識は必要だよ
- 746 :デフォルトの名無しさん:2018/06/28(木) 16:49:45.85 ID:Z76aQv2+.net
- FFIしたいけどCは知らん、とかレアケースだから
そんな心配はせんでいい
- 747 :デフォルトの名無しさん:2018/06/28(木) 16:53:35.27 ID:rY43/kt0.net
- 別にRustは大して関数型言語じゃないし、Rustのために他の関数型言語から、っていうのは本末転倒すぎるな
- 748 :デフォルトの名無しさん:2018/06/28(木) 16:59:30.65 ID:Z76aQv2+.net
- 全然モナドってないし、関数型言語フレーバーぐらいでしょ
- 749 :デフォルトの名無しさん:2018/06/28(木) 17:13:53.31 .net
- C++は速いがコーディングストレスで禿げる
Rustで若干のパフォーマンスを犠牲にしてでも、いかに毛髪を守れるかがテーマ
- 750 :デフォルトの名無しさん:2018/06/28(木) 17:18:23.47 ID:GP5sTNn0.net
- >>749
C++程度で禿げてたらRustのコンパイル通らん
Rustのコンパイル通せるならC++でやる方がよいコード書ける
つまりRustは実用にならん。C++er養成ギプスって話ならわかる
- 751 :デフォルトの名無しさん:2018/06/28(木) 17:41:56.51 ID:BmtmAhz0.net
- 結論: やっぱりC++からしっかりやったほうがよい
- 752 :デフォルトの名無しさん:2018/06/28(木) 17:46:58.11 ID:GP5sTNn0.net
- >>751
違う違う、そもそもRustは不要って結論な
C++勉強してC++そのまま使い続ければいい
- 753 :デフォルトの名無しさん:2018/06/28(木) 17:47:09.81 ID:tKvy+NRw.net
- 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
- 754 :デフォルトの名無しさん:2018/06/28(木) 17:56:38.73 ID:MyWFnKdA.net
- なんだコンパイルできないおじさんか。。
- 755 :デフォルトの名無しさん:2018/06/28(木) 18:32:36.30 ID:f0Ft93Jb.net
- >>747
単純に最初期のRustコンパイラはOcamlで組まれてたからって事情でないの
- 756 :デフォルトの名無しさん:2018/06/28(木) 18:34:20.70 ID:f0Ft93Jb.net
- >>750
C++より潜在的なメモリ管理バグを減らせるってのは十分有用な話では
- 757 :デフォルトの名無しさん:2018/06/28(木) 18:54:33.03 ID:frbOjHXy.net
- リストとリスト操作をなんで組み込んでくれなかったのかな?
::とか@とかあるだけでだいぶ捗るよね(一部の人にとって)
- 758 :デフォルトの名無しさん:2018/06/28(木) 19:41:35.09 ID:Z76aQv2+.net
- パフォーマンス面だけで言えば、リンクトリストは問題外だからじゃない?
- 759 :デフォルトの名無しさん:2018/06/28(木) 20:19:23.05 ID:X+ujNNAX.net
- コンパイルできないおじさんのコードもNLL有効にしたらコンパイルできたから
来年にはrust書けるようになるよ
- 760 :デフォルトの名無しさん:2018/06/28(木) 20:29:59.05 ID:1UW06GNd.net
- 別にどの言語だろうと所有権を考えるってのは普遍的に必要だとは思うぞ。
rustだろうとc++だろうとはたまた動的言語でもメモリ以外にも資源管理なんて
問題はどこにでも出てくるわけで。
- 761 :デフォルトの名無しさん:2018/06/28(木) 20:30:03.07 ID:rY43/kt0.net
- consとかが使えないのはmutとの兼ね合いもあるんじゃないの
あれ完全にイミュータブルリスト向けだもんよ
- 762 :デフォルトの名無しさん:2018/06/28(木) 21:16:31.35 ID:YYPKz5qu.net
- https://www.reddit.com/r/rust/comments/8ub964/microsoft_announces_using_rust_to_build_some_of
MSもRust使ってるんですか
やるしかない
- 763 :デフォルトの名無しさん:2018/06/28(木) 21:22:26.06 ID:MOChRiis.net
- >>735
なるほど。c_voidの正体はそれでしたか
引数は既成Cライブラリの仕様なのでなるべく変更したくありません
*mutを使うコードを検討していて気がつきましたがRustの生ポインタにfunc1が返すアドレスを入れると
Cと同じ危険を抱えますよね。func3でアドレスがNULL=0になりますからその後に触ると当然クラッシュします
- 764 :デフォルトの名無しさん:2018/06/28(木) 21:27:33.58 ID:wCMJyKP8.net
- NLLいまだに理解できなくて使えない
- 765 :デフォルトの名無しさん:2018/06/28(木) 21:36:28.71 ID:cJz1WTLf.net
- >>762
actixとactix-webのメインコントリビュータもよく見ると普通にMS所属の人だった
ttps://github.com/actix/actix/graphs/contributors
ttps://github.com/actix/actix-web/graphs/contributors
- 766 :デフォルトの名無しさん:2018/06/28(木) 21:45:00.19 ID:CykyBbY/.net
- MSは英語なので、大目に見てもらえる
- 767 :デフォルトの名無しさん:2018/06/28(木) 22:08:43.56 ID:fobuFGlz.net
- > Please never sell Rust to Microsoft!
ちょっとわらった
- 768 :デフォルトの名無しさん:2018/06/28(木) 22:56:56.15 ID:mQsBu3Yx.net
- 言語に関してはMSがオーナーになるのは大勝利だろ
- 769 :デフォルトの名無しさん:2018/06/28(木) 23:58:14.47 ID:aJbqINcy.net
- ではここからはC# おじさんどぞー
- 770 :デフォルトの名無しさん:2018/06/29(金) 00:13:26.39 ID:9NU4CCEP.net
- MSには新しいプログラミング言語のQ#があるから
Q# 【量子プログラミング】
https://mevius.5ch.net/test/read.cgi/tech/1513059627/l50
- 771 :デフォルトの名無しさん:2018/06/29(金) 00:20:17.66 ID:1B/tcpoY.net
- 汎用言語でないからRustと競合はしないな
- 772 :デフォルトの名無しさん:2018/06/29(金) 05:02:04.02 ID:HciN/Bk/.net
- Visual StudioでRustサポートされないかな
rlsが不安定すぎるのでMSが作り直して欲しい...
- 773 :デフォルトの名無しさん:2018/06/29(金) 07:15:45.03 ID:pVbM0h49.net
- rlsもracerもポンコツよね
あんまり力入れてないのかな
- 774 :デフォルトの名無しさん:2018/06/29(金) 10:18:57.05 ID:azKeAftH.net
- intelliJ使えばええやん
インテリじゃない人もタダで使えるよ
- 775 :デフォルトの名無しさん:2018/06/29(金) 11:21:37.40 ID:eINaY/I2.net
- 支援機能だけ考えるとそうなんだけどさ
手に馴染んだemacsから離れるのは簡単じゃない
- 776 :デフォルトの名無しさん:2018/06/29(金) 12:06:31.66 ID:1B/tcpoY.net
- ワイもIDE使いこなせない
- 777 :デフォルトの名無しさん:2018/06/29(金) 12:09:37.82 ID:l0U/js7n.net
- intellijをつかうのです…
vsなんかよりよっぽどいいですよ…
- 778 :デフォルトの名無しさん:2018/06/29(金) 12:09:46.01 ID:ZOJKMSLg.net
- >>764
従来のborrow checkerの制約が緩くなるだけだから従来の理解してれば不自由なく使えるはず
- 779 :デフォルトの名無しさん:2018/06/29(金) 12:27:36.55 ID:1B/tcpoY.net
- intelij買ったけどemacs使っちゃうのよね。コード書くのにmouseが必要になるのが受け付けないみたい。
- 780 :デフォルトの名無しさん:2018/06/29(金) 18:17:46.77 ID:HciN/Bk/.net
- intellijちゃん自力でパースしてるのアホでしょ
CLionもclang使わず自力でやってるけどリリースから随分経つのに初歩的なバグ残ってるみたいだし
- 781 :デフォルトの名無しさん:2018/06/29(金) 18:55:33.43 ID:abdfGqyU.net
- >>735の方法だとこんな感じなのかな
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にする必要がありそうだけど
- 782 :デフォルトの名無しさん:2018/06/29(金) 20:25:27.91 ID:jUvi1FZV.net
- 英語は多めに見るおじさん、今頃rustについて必死で勉強して弱点探してるのかな
- 783 :デフォルトの名無しさん:2018/06/30(土) 01:38:16.37 ID:bJf+PXWq.net
- >>781
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のプロトタイプはないよね?
- 784 :デフォルトの名無しさん:2018/06/30(土) 01:40:31.49 ID:bJf+PXWq.net
- func1のxはu8だからunsigned charかuint8_tだね
- 785 :デフォルトの名無しさん:2018/06/30(土) 01:59:30.31 ID:VVUAg8sI.net
- >>783
func1の引数はRustのコンパイラにその型を使えと言われたから
func2の引数はfunc1の返値に合わせた
func3の引数はfunc1が返したアドレスが格納されているアドレス。Cで言うポインタのポインタでABC **z
自分も詳しいわけではないので勘違いしているかもしれないが一応動いている
- 786 :デフォルトの名無しさん:2018/06/30(土) 05:09:23.98 ID:bJf+PXWq.net
- >>785
ダブルポインタだったのか
それなら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)で大丈夫なはず
- 787 :デフォルトの名無しさん:2018/06/30(土) 11:01:24.70 ID:6fEIEQu0.net
- ダブルポインタはあんま想定してなさげな気はする。
俺だったらもう一枚、インターフェイスかましてもう少し楽なインターフェイスにしてから
rustと繋げるわ。
- 788 :デフォルトの名無しさん:2018/06/30(土) 11:27:27.95 ID:BB0BPsjY.net
- 結局C/C++ある程度わかってないと話にならないよね。
経験ないやつはいきなりrust勉強してる場合ではない。
- 789 :デフォルトの名無しさん:2018/06/30(土) 12:46:04.79 ID:gEYLih9T.net
- コンパイルできないならまずプログラミングを勉強しなおしたほうがいいよ
- 790 :デフォルトの名無しさん:2018/06/30(土) 14:28:27.26 ID:d1l1Trl+.net
- FFIの話をrust全体の話に主語をでかくしてるおっさんがおるな
- 791 :デフォルトの名無しさん:2018/06/30(土) 16:28:11.02 ID:oxrLiD+S.net
- FFIもrustの魅力の一つなのですが?
C/C++知らないやつはいつまでたってもrustを全て分かったことにならない
半人前のまま
別に必要なとこだけ使うスタンスでもいいけど半人前のクセにいっぱしのrustプログラマーヅラしないでね
- 792 :デフォルトの名無しさん:2018/06/30(土) 16:34:04.77 ID:WiulWXxB.net
- 昔はアセンブラ知らずにC++語るなとか言われてたが時代は変わったもんだな
- 793 :デフォルトの名無しさん:2018/06/30(土) 16:40:34.19 ID:jlw7G6p9.net
- 結局どの言語を選べばいいのかわからなくなった
C++?Go?
- 794 :デフォルトの名無しさん:2018/06/30(土) 17:06:44.52 ID:NH6TT+Fu.net
- Coqを選べばいいと思うよ
- 795 :デフォルトの名無しさん:2018/06/30(土) 17:07:23.25 ID:QJJEkoJ9.net
- 目的に合ったもの
やりたいものをやればいい
- 796 :デフォルトの名無しさん:2018/06/30(土) 17:07:54.55 ID:5+sKgUjT.net
- 迷うならGoでいいんでは。
- 797 :デフォルトの名無しさん:2018/06/30(土) 17:10:05.48 ID:CMs/fWc6.net
- Prolog
- 798 :デフォルトの名無しさん:2018/06/30(土) 17:38:54.49 ID:RHrrdh8p.net
- rustを視野に入れながらgoという選択はない
kotkinかswiftかgoかってなら分かるけど
- 799 :デフォルトの名無しさん:2018/06/30(土) 17:52:45.29 ID:5+sKgUjT.net
- 分からないなら無理してrust使わなくていいって意味じゃろ
- 800 :デフォルトの名無しさん:2018/06/30(土) 18:08:54.39 ID:9Q6R3Qzj.net
- 腐ってないでお前らも俺と一緒にRustで競技プログラミングしようぜ!
https://yukicoder.me/submissions?submitter=5971
- 801 :デフォルトの名無しさん:2018/06/30(土) 18:21:37.09 ID:UB7qEnEv.net
- クロージャで再帰が出来ないのって所有権的な問題?
- 802 :デフォルトの名無しさん:2018/06/30(土) 18:24:45.75 ID:cH9c2bse.net
- rustは競プロには向かない
https://users.rust-lang.org/t/rust-for-competitive-programming/17682
- 803 :デフォルトの名無しさん:2018/06/30(土) 18:38:35.11 ID:cH9c2bse.net
- クロージャの再帰ってこれのこと?
recursion - Is it possible to make a recursive closure in Rust? - Stack Overflow
https://stackoverflow.com/questions/16946888/is-it-possible-to-make-a-recursive-closure-in-rust
- 804 :デフォルトの名無しさん:2018/06/30(土) 18:57:41.58 ID:dTg1EP/S.net
- >>803
おー、できた
ありがとう
ローカル関数だと外部変数キャプチャできないし、クロージャだと再帰できないし、
同時にしたいときどうすんのかなーって思ってたから
そんなに使うこともないだろうけど、心に留めときます
- 805 :デフォルトの名無しさん:2018/06/30(土) 22:59:14.25 ID:pdhum8J2.net
- >>786
ありがとう。なるほどそういう書き方もあるのか。確かに書き換わるので&mutの方が適切ですね
欲しいのはアドレスなのだからと単にアドレス演算子&を付けていました
unsafe外から任意のアドレスにあるデータへアクセスするにはその部分を関数化するようなのかな
一般的に言うプロパティの読み書きをプログラマブルに出来れば綺麗に書けるけど無理なんだろうなぁ
()無しの関数呼び出しとも言えるけどこれが出来る言語は少ない
- 806 :デフォルトの名無しさん:2018/06/30(土) 23:04:00.05 ID:BB0BPsjY.net
- 相変わらず驚き最大の言語だな
- 807 :デフォルトの名無しさん:2018/07/01(日) 07:43:42.19 ID:XZ+Fcjv4.net
- >>806
例えば何に驚いてんの?
Rustの目的はシステム言語だが、目的から乖離してるとこって何?
- 808 :デフォルトの名無しさん:2018/07/01(日) 08:30:53.21 ID:vf9gJxu2.net
- マルチパラダイムの場合、驚き最小の原則の法則に反するかどうかは実装者の責任じゃないだろうか
- 809 :デフォルトの名無しさん:2018/07/01(日) 08:46:31.97 ID:E4o6QfBe.net
- 抽象的なことしか言わなくなったんだよ
機械語のレベルと相性が悪いし
- 810 :デフォルトの名無しさん:2018/07/01(日) 11:50:23.63 ID:YY7LPhac.net
- >>808
半分はその通りだが、それならc++で良くね?になるぞ。
- 811 :デフォルトの名無しさん:2018/07/01(日) 13:30:01.00 ID:TGjVBuJr.net
- 日本語でこんなに議論が行われてることに驚いた
- 812 :デフォルトの名無しさん:2018/07/01(日) 13:37:40.54 .net
- 恥ずかしくて外国人には見せられない掲示板だ
- 813 :デフォルトの名無しさん:2018/07/01(日) 13:54:17.46 ID:YY7LPhac.net
- そもそもcの呼び出しはメモリ管理モデルのギャップがあるんだから
どうあがいてもc++のが簡易にできるのは当然なんだよ。
- 814 :デフォルトの名無しさん:2018/07/01(日) 15:26:57.84 ID:HnzLcrw0.net
- >>811
このスレは英語推奨だぞ
- 815 :デフォルトの名無しさん:2018/07/02(月) 01:23:28.76 ID:5g9b1rVY.net
- >ローカル関数だと外部変数キャプチャできないし、クロージャだと再帰できないし、
ここに関してはクロージャでないものをクロージャと呼ばなければ誰も驚かなかっただろうな。
javaは似非クロージャのことはラムダ式と呼んでるし。
- 816 :デフォルトの名無しさん:2018/07/02(月) 01:51:37.55 ID:v1kLQBFZ.net
- Haskellの「外側のシンボルを参照することによる暗黙的な部分適用」はクロージャと呼ばれてるから
アレが許されるなら少なくともJavaのはクロージャと呼んでいい
- 817 :デフォルトの名無しさん:2018/07/02(月) 22:14:52.04 ID:KKQokwkO.net
- >>816
javaのアレは元々クロージャ導入するつもりが、
仕様と実装でクソ揉めて妥協案としてクロージャ
じゃないものとしてラムダ式を作ったんやで。
だから意図的な"クロージャではないモノ"よ。
メモリ管理にgc使うからエンクロージャの束縛の解放に
制限ないから実質クロージャだし第一級関数だけど。
- 818 :デフォルトの名無しさん:2018/07/02(月) 22:54:50.18 ID:F0SAJ301.net
- hyper使って簡単なwebアプリ描いてみたけどわりと素直に書けるのね
- 819 :デフォルトの名無しさん:2018/07/03(火) 16:24:59.60 ID:ZNPbo2Ku.net
- >>804は本当に満足してるのだろうか
>>803のやり方だとパラメータ増えてるじゃん
こういうのは既存のシグネチャに合わせられないと
単にひとつの関数を小洒落た書き方にしてみましたってだけにしかならないのでは
- 820 :デフォルトの名無しさん:2018/07/03(火) 17:05:40.29 ID:ZNPbo2Ku.net
- 連投になって申し訳ないが、環境をRefCellで持ち出す例を見つけた
ttps://wandbox.org/permlink/hkwccgD2oXp0fTm7
組み合わせて、802の2番目の例のstructを更にRefCellに入れたらシグネチャ変えずに行けるかな
- 821 :デフォルトの名無しさん:2018/07/03(火) 17:29:45.80 ID:LuUToNY2.net
- >>819
一応満足してるよ
スッキリ書けないことがわかったから、素直にループで書くか、ローカル関数作って引数で渡そうと思えた
Rustは関数型じゃなくて手続き型だし、特に不満ではない
- 822 :デフォルトの名無しさん:2018/07/03(火) 17:31:22.43 ID:nNrfrM83.net
- >>820
RefCell使うなら、Rustで書く意味ないだろ
- 823 :デフォルトの名無しさん:2018/07/03(火) 18:19:36.75 ID:ZNPbo2Ku.net
- >>821
すまん、クロージャでないとできない用途(環境をキャプチャーして高階関数に渡す等)を想定していると
勝手に気を回してしまったみたいだ
- 824 :デフォルトの名無しさん:2018/07/03(火) 21:26:26.07 ID:9JOKXkQl.net
- クロージャじゃないとできない用途って具体的にどういうものなの
想像つかなかったので単純な興味本位
- 825 :デフォルトの名無しさん:2018/07/03(火) 21:32:07.93 ID:2DeV5pvZ.net
- 例えば最適化ライブラリなどに目的関数を渡す場合などで
引数以外からパラメータを注入する必要がある場合。
- 826 :デフォルトの名無しさん:2018/07/03(火) 22:38:00.99 ID:9ONgpSq2.net
- >>823
キャプチャ自体はクロージャで出来るから別に困ってないかな
たまたま再帰させたくなったときがあっただけだから
- 827 :デフォルトの名無しさん:2018/07/03(火) 23:58:54.50 ID:6KvlcSKZ.net
- クロージャじゃなきゃできないことじゃなくて、
クロージャの再起呼び出しじゃなきゃできないことを聞きたかった
引数以外のパラメーターを差し込む場合、普通は再起は必要ないよね
- 828 :デフォルトの名無しさん:2018/07/04(水) 00:52:48.93 ID:MQVza7QA.net
- 風雲再起ぃ〜!!
- 829 :デフォルトの名無しさん:2018/07/04(水) 01:08:42.88 ID:ace/1w5F.net
- 1.28はrustdocするときソースコードのlintするようになったんの?
deny属性に違反するソースコードがドキュメント生成時にエラー投げる。
>>823
クロージャがある言語は普通、関数とクロージャ区別しないからその感覚はおかしくないと思う。
でもクロージャの実装上の制約とかライフタイムとかでループで書いたほうがいいと思うコードはある。
- 830 :デフォルトの名無しさん:2018/07/04(水) 09:35:17.80 ID:7aH0kDWz.net
- >>827
それは、てっきり最初の>>801がキャプチャと再帰を同時に使いたいことがあったんとばかり
- 831 :デフォルトの名無しさん:2018/07/04(水) 20:54:21.49 ID:1R4S9ii/.net
- >>827
ある種の動的なtree構造に対して探索、実行を繰り返すとか。。
やっぱ具体的じゃねーな。。
- 832 :デフォルトの名無しさん:2018/07/04(水) 21:42:58.93 ID:JvJNYHQo.net
- 最近rustの勉強始めたものです
この言語ってstatementなのかexpressionなのかをどういう方針で決めてんでしょう?
ifがexpressionなのはわかったけど、letはなぜstatementなんだろ?
他の関数型言語のようにexpressionでもよかろうに、と思った
- 833 :デフォルトの名無しさん:2018/07/04(水) 21:53:13.67 ID:gFgZc5FG.net
- KCX
- 834 :デフォルトの名無しさん:2018/07/04(水) 23:31:21.37 ID:kqLSfqeN.net
- 古いCで良く在る if ( (let a = f()) != 0 ) {} みたいなのが嫌だったんだろう。
そもそも、変数束縛が値を持つ必然性は無いよね。
- 835 :デフォルトの名無しさん:2018/07/04(水) 23:32:39.47 ID:kqLSfqeN.net
- >>834
あ、ごめん。大嘘だった。
if let なんてのあったのね…
- 836 :デフォルトの名無しさん:2018/07/05(木) 00:07:01.10 ID:wS7IFFVg.net
- 他の関数型言語のletは随分来歴が違うイメージ。
let x = ... in expはラムダ式の糖衣構文の一種なので関数型なら容易に実装できて便利に使えるのに対し、
rustのletは手続き型の変数宣言の方が近い
schemeのletとdefineが全然意味が違うのを知ってると違和感無い
- 837 :デフォルトの名無しさん:2018/07/05(木) 00:16:12.98 ID:OgxnbJsr.net
- >>832
この辺読めばいいかと。
https://rust-lang-ja.github.io/the-rust-programming-language-ja/1.6/book/functions.html#%E5%BC%8F%E5%AF%BE%E6%96%87
letは所有権移動だけど、返り値を認めちゃうと
束縛先と返り値のどちらに移動すべきか分からない、ということかな。
- 838 :デフォルトの名無しさん:2018/07/05(木) 00:52:35.42 ID:YJbjvjoP.net
- >>837
それは let a = (let b = c) がだめな理由にはなるけど
>>832の言ってる関数型言語風の let a = (let b = c in d) がだめな理由にはならないよね
- 839 :デフォルトの名無しさん:2018/07/05(木) 01:22:02.41 ID:DZKRf+tO.net
- えっ、毎回コピーすんの?
それ無駄じゃね?
- 840 :デフォルトの名無しさん:2018/07/05(木) 03:33:15.42 ID:CGu9cAAd.net
- >>838
ブロック式で let a = { let b = 1; let c = b + 1; b + c }; と書ける
けどミュータブルな変数を書けるからコードが関数型言語風になるかどうかは書き手次第
- 841 :デフォルトの名無しさん:2018/07/05(木) 20:22:41.90 ID:yHZEHedG.net
- >>837
>>840
ほー勉強になりました
fnもいまいち釈然としないけど
もうちょっと読み進めてみます
- 842 :デフォルトの名無しさん:2018/07/05(木) 21:13:46.28 ID:nmRduEAc.net
- あるstructもとに任意のフィールドを追加した別のstructを定義することってできる?
- 843 :デフォルトの名無しさん:2018/07/05(木) 21:35:03.85 ID:wS7IFFVg.net
- イテレータ系はみんなそれやってる
mapとかfilterとか、元のイテレータ+変換・フィルター関数みたいな構造体を返してくる
- 844 :デフォルトの名無しさん:2018/07/05(木) 22:08:25.13 ID:uqSz2h6E.net
- へー今気がついた
strはmutの有無にかかわらずRO領域に配置される
sliceはmutの有無にかかわらずRW領域に配置される
つまり今風のOS上だと
strをポインタ経由で書き換えようとするとメモリアクセス違反
sliceをmut無しで宣言した物でもポインタ経由で書き換えられる
リンカの設定にもよると思うけどマイコンなどで使うときは注意が必要そう
- 845 :デフォルトの名無しさん:2018/07/05(木) 22:15:27.91 ID:B3fauv+j.net
- えぇ…安全に使えないじゃん。キツツキに縛りつけてる意味ないじゃんrustの存在意義が…
- 846 :デフォルトの名無しさん:2018/07/05(木) 22:46:05.11 ID:5CTMsWjW.net
- 再現コードはよ
- 847 :デフォルトの名無しさん:2018/07/05(木) 23:38:48.53 ID:+dwFnTVE.net
- unsafeの話でしょ
脊椎反射したいつもの人が見事に釣られている
- 848 :デフォルトの名無しさん:2018/07/05(木) 23:53:13.69 ID:uqSz2h6E.net
- もちろん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にいるはずと思い込んでいるとハマるケースがありそう
任意の場所に配置するアトリビュートとかあるのかな
- 849 :デフォルトの名無しさん:2018/07/06(金) 00:07:24.39 ID:0SVgWEm6.net
- これのArrayのとこに書いてない?
https://doc.rust-lang.org/book/second-edition/ch03-02-data-types.html
- 850 :デフォルトの名無しさん:2018/07/06(金) 00:36:54.90 ID:iypT0A6c.net
- >>843
返すんじゃなくて定義したいんだけども
- 851 :デフォルトの名無しさん:2018/07/06(金) 06:49:56.18 ID:Sybd3k2C.net
- >>842>>850
stackoverflowとリファレンスを見た限りstruct定義の入れ子はサポートしてない
https://stackoverflow.com/questions/23629201/nested-structs-in-rust
https://doc.rust-lang.org/reference/items/structs.html
- 852 :デフォルトの名無しさん:2018/07/06(金) 18:21:10.44 ID:iypT0A6c.net
- どうもありがとう。でもちょっとニュアンスが違う。
struct 2d {x, y}
struct 3d extends 2d { z }
で3dが2dのxとyのフィールドと独自のzを持つようなかんじ
マクロで出来ないか精一杯やってみたが出来なかった
元となるstructごとにマクロ作ればできるんだけどそれじゃ意味ないし
- 853 :デフォルトの名無しさん:2018/07/06(金) 18:57:55.41 ID:0SVgWEm6.net
- 設計見直したら?
- 854 :デフォルトの名無しさん:2018/07/06(金) 19:23:23.92 ID:6zaAciaG.net
- >>852
Rust Design PatternsにはDerefでやるのはアンチパターンだと書いてあるけど、別の似たようなサイトではお勧め扱いだった気がする
https://github.com/rust-unofficial/patterns/blob/master/anti_patterns/deref.md
- 855 :デフォルトの名無しさん:2018/07/06(金) 21:12:32.07 ID:CzZn5kZZ.net
- 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つに
- 856 :デフォルトの名無しさん:2018/07/07(土) 01:32:56.18 ID:odAPlBjD.net
- rustからrust-bindgenが吐いたC++のクラス使うのめんどくさいな
- 857 :デフォルトの名無しさん:2018/07/07(土) 18:52:04.06 ID:Otm/KpKR.net
- ところで、全然話変わるんだけどさ、mutってどう発音してる?
自分は「むっと」ってよんじゃってて、なんか、かっこわるいんだけど。
- 858 :デフォルトの名無しさん:2018/07/07(土) 19:12:39.63 ID:HR9VVpP9.net
- 当然、「みゅっと」でしょ
- 859 :デフォルトの名無しさん:2018/07/07(土) 20:15:18.96 ID:h+p+JRvo.net
- 怒ってるのね
- 860 :デフォルトの名無しさん:2018/07/07(土) 20:19:35.52 ID:Ty8z3s6n.net
- 鬼太郎のCVほっぽりだして産休に入るみゅ
- 861 :デフォルトの名無しさん:2018/07/07(土) 20:58:49.46 ID:PbU76+k2.net
- mjúːtəbl
- 862 :デフォルトの名無しさん:2018/07/07(土) 23:03:04.65 ID:cEw8AP4C.net
- ミュート
- 863 :デフォルトの名無しさん:2018/07/08(日) 00:41:02.43 ID:tBFClkmn.net
- tanakhがrustのクロージャー再帰を望んでいる
https://twitter.com/tanakh/status/1015609559673475073
- 864 :デフォルトの名無しさん:2018/07/08(日) 11:33:21.07 ID:6xrO+JsL.net
- そりゃ入れないほうがいい証左になるなw
- 865 :デフォルトの名無しさん:2018/07/08(日) 13:33:35.86 .net
- みゅう太
- 866 :デフォルトの名無しさん:2018/07/09(月) 02:59:46.84 ID:4B4QAQi1.net
- >>863
いつまでtanakhなんてスパコン詐欺師を崇めるんだろうなこのスレの住人
- 867 :デフォルトの名無しさん:2018/07/09(月) 07:41:39.43 ID:DXSSRVdR.net
- 国内の会社は大目に見てもらえないから大変だなあ
- 868 :デフォルトの名無しさん:2018/07/09(月) 09:23:25.63 ID:6MpumzZl.net
- NEDOとかダメだろ
- 869 :デフォルトの名無しさん:2018/07/09(月) 22:56:35.23 ID:M/GPMU7W.net
- 「nvidiaの倒し方、知らないでしょ?オレらはもう知ってますよ」
- 870 :デフォルトの名無しさん:2018/07/10(火) 08:37:04.49 ID:wS3GMIgw.net
- 実際green500で倒してるんだからたいしたものだよ
- 871 :デフォルトの名無しさん:2018/07/10(火) 14:26:10.12 ID:+spxUUiC.net
- https://github.com/saschagrunert/webapp.rs
これいいね、Webアプリを完全Rustで作成
- 872 :デフォルトの名無しさん:2018/07/11(水) 12:56:28.28 ID:8BQ5VZH8.net
- WebアプリをRustで書くって、どういう需要があるの?
ラズパイみたいな環境?
- 873 :デフォルトの名無しさん:2018/07/11(水) 13:05:53.98 ID:A6luu057.net
- 車買ったらムダにドライブしたくなるじゃん。すぐ飽きるのに。
あんな感じ。
- 874 :デフォルトの名無しさん:2018/07/11(水) 13:08:35.26 ID:uU0OdRlq.net
- クライアントサイドとサーバサイドで同じコードが使えるって話ちゃうのん?
- 875 :デフォルトの名無しさん:2018/07/11(水) 13:30:09.56 ID:QvLfDUJ3.net
- 同じ言語
だな
それはnode.js環境も同じだが
- 876 :デフォルトの名無しさん:2018/07/11(水) 13:31:28.26 ID:QvLfDUJ3.net
- 期待できる点は速くて安全
- 877 :デフォルトの名無しさん:2018/07/11(水) 16:34:41.89 ID:dzRS/LEU.net
- 全部rustって需要はあんまりない気がするけど、サーバ側ならかなりマッチしてる
- 878 :デフォルトの名無しさん:2018/07/11(水) 17:15:53.86 ID:NEswxD4L.net
- webassebly
- 879 :デフォルトの名無しさん:2018/07/11(水) 18:10:54.52 ID:EHDLIx8N.net
- サーバーサイド → Rust
クライアントサイド → Rust
ブラウザ → Rust
完璧じゃないか
- 880 :デフォルトの名無しさん:2018/07/11(水) 18:17:02.02 ID:4XcPTXi0.net
- Yewのベンチマークって他に誰か取ってた?
- 881 :デフォルトの名無しさん:2018/07/11(水) 18:46:56.99 ID:8BQ5VZH8.net
- やたらノンブロッキングに拘ってるけど、それが本当に必要な人ってごく一部だよね
人気サービスの中の人だけ
普通はスレッド立てまくりで対応可能だし、たまに台数増やすだけで問題ないでしょ?
- 882 :デフォルトの名無しさん:2018/07/11(水) 18:59:32.73 ID:v5sVc8KX.net
- だからそれは並列性が必要ってことでしょ
- 883 :デフォルトの名無しさん:2018/07/11(水) 19:13:29.64 ID:A6luu057.net
- 真のアイルランド人はノンブロッキングなど必要としないwww
- 884 :デフォルトの名無しさん:2018/07/11(水) 20:14:09.83 ID:IOg1uM7w.net
- アイルランドいつ統一するん?
- 885 :デフォルトの名無しさん:2018/07/12(木) 20:27:33.26 ID:vXAFXBtg.net
- オライリーの奴予約した
- 886 :デフォルトの名無しさん:2018/07/12(木) 22:30:46.69 ID:Wlqbcgdb.net
- >>885
白紙の未来を絶望に染めてやろう。
あれもうかなり古いぞ。
rust 2018で今よりさらに変わるんだぞ。
エラーハンドリングもモジュールもTraitも重要な部分全部かわるぞ。
nightlyで結構実装済みだから現行のnightlyですら違うぞ。
macro 2.0はいいぞ!
- 887 :デフォルトの名無しさん:2018/07/12(木) 22:39:04.16 ID:sU95dCXR.net
- この仕事してるならそんなの普通じゃん
- 888 :デフォルトの名無しさん:2018/07/13(金) 00:41:53.18 ID:MpWeaOSk.net
- >>886
Rust 2018にエラーハンドリングの変更とかあったっけ?
Rust 2018での追加・変更って"module, impl trait, Generators/async/await, macros 2.0, NLL, SIMD"だけじゃなかったっけ?
もしかしてdo catchがstable化されるの?それとも、それ以外で変更があるの?
エラーハンドリングで互換性を崩すような変更があるならかなり痛いんだけど…
- 889 :デフォルトの名無しさん:2018/07/13(金) 04:40:11.96 ID:7ZPDFHpF.net
- https://github.com/rust-lang/rfcs/blob/master/text/2388-try-expr.md
2018からtryがキーワードとして予約される(catchは廃案)
editionが未完成だと実装できないから2018リリースにはきっと間に合わない
- 890 :デフォルトの名無しさん:2018/07/13(金) 08:17:48.56 ID:wonLmOyY.net
- RustもC++みたいに何年かおきに大きく変更されるの?
- 891 :デフォルトの名無しさん:2018/07/13(金) 10:05:43.27 ID:U/mhKMvJ.net
- こないだ1.0になったばかりな気がするんだが。仕事じゃつかえないな
- 892 :デフォルトの名無しさん:2018/07/13(金) 10:19:59.41 ID:MpWeaOSk.net
- こないだってもう3年前だぞ
C++が仕事で使えるんだから使えるだろ
てか、Swiftなんてもう4でそろそろ5になるとか言ってるんだぞ
あれが仕事で使えるんだからRustなんか楽勝だろ
- 893 :デフォルトの名無しさん:2018/07/13(金) 10:29:57.41 ID:U/mhKMvJ.net
- swiftなんてappleのDSL
- 894 :デフォルトの名無しさん:2018/07/13(金) 10:31:39.87 ID:U/mhKMvJ.net
- C99勢が砦
- 895 :デフォルトの名無しさん:2018/07/13(金) 11:07:37.12 ID:sS4PjtpX.net
- 実際仕事で使っている人たちがいるのに使えないということは、別のところに問題があるのよ
- 896 :デフォルトの名無しさん:2018/07/13(金) 11:48:20.64 ID:ERNuP0HI.net
- 安定性以前にまともにfibが書けない言語だから仕事じゃ使えない
- 897 :デフォルトの名無しさん:2018/07/13(金) 12:52:21.80 ID:sS4PjtpX.net
- 突然の自己紹介
- 898 :デフォルトの名無しさん:2018/07/13(金) 13:54:10.99 ID:GXltVmCz.net
- >>50辺りの流れは何回見ても本当に秀逸
- 899 :デフォルトの名無しさん:2018/07/13(金) 15:05:24.82 ID:KpXdroi9.net
- 車輪の再発明を抑止し過ぎるとnode.jsみたいになるからね
やり過ぎはだめってことよな
- 900 :デフォルトの名無しさん:2018/07/13(金) 15:40:42.13 ID:5L9NPjD5.net
- どゆこと?
- 901 :デフォルトの名無しさん:2018/07/13(金) 16:06:42.44 ID:AcLm8Zma.net
- たかだか一行二行のプログラムのnpmパッケージであふれ、しかも子孫含めた被参照ダウンロードが100万とかざらで、さらにそれがバグっている。
- 902 :デフォルトの名無しさん:2018/07/13(金) 17:28:42.65 ID:vZnflVWC.net
- Rust関係ないけど最近ArchLinuxのAURに細工されたパッケージが上げられててほんのちょっとだけ話題になったんだけど
正直自分が使うcrateやそれの依存関係まで含めて全部書いてる人が信用できるかとかソースまでチェックしてる人なんていないよね…?
イカンなぁと思いながら盲目的に使っちゃってるわ(´・ω・`)
- 903 :デフォルトの名無しさん:2018/07/13(金) 17:44:54.43 ID:sS4PjtpX.net
- CPUのL2キャッシュを作った人の叔母の恋人がテロリストがどうか気にするところから始めたほうがいいな
- 904 :デフォルトの名無しさん:2018/07/13(金) 17:46:33.55 ID:U/mhKMvJ.net
- 某ファイルシステムの作者が奥さんを殺してしまってな
- 905 :デフォルトの名無しさん:2018/07/13(金) 18:29:15.55 .net
- 怖いなぁ、戸締まりすとこ…
- 906 :デフォルトの名無しさん:2018/07/13(金) 19:36:34.68 ID:wonLmOyY.net
- そういえばRUSTという殺し合いをするゲームがありますね
- 907 :デフォルトの名無しさん:2018/07/13(金) 20:34:31.63 ID:Cw5pkNzp.net
- crate以前に詐欺企業Mozillaが信用できないから
- 908 :デフォルトの名無しさん:2018/07/13(金) 20:59:24.06 ID:IpXdw+4i.net
- Mozillaが詐欺企業なら、Mozilla以上に言う事やる事がコロコロ変わるAppleや
個人情報を収集しまくりのGoogleやMicrosoftはどうなってしまうんだろうなw
- 909 :デフォルトの名無しさん:2018/07/13(金) 21:16:35.53 ID:Y3xd+pZ1.net
- > 仕事じゃ使えない
おじさんのことじゃん
- 910 :デフォルトの名無しさん:2018/07/13(金) 21:19:05.39 ID:EK55GFqW.net
- crates.ioを見に行かないようにして、社内で確認済みのcrateしか置いてない社内リポジトリだけ
参照するような設定って出来るんだっけ?
- 911 :デフォルトの名無しさん:2018/07/13(金) 21:39:00.40 ID:Y3xd+pZ1.net
- RFCはあるみたいだけどまだ出来ないのかな
https://github.com/rust-lang/rust/issues/44931
- 912 :デフォルトの名無しさん:2018/07/13(金) 21:50:09.75 ID:EK55GFqW.net
- >>911
まだ半分も済んでないね
- 913 :デフォルトの名無しさん:2018/07/14(土) 00:26:44.88 ID:nZvQhL00.net
- >>910
cargoはそこらへん腐ってるから無理。
出来はするけどcrates.ioをクローンするツールの開発が
殆ど動いてないしクローンしてもそのローカルリポジトリを管理するツールがない。
ここらへんはoffline modeも絡んでくるけど、
どうせ欠陥機能作って廃止してまた作っての繰り返しでめちゃくちゃになるだけ。
- 914 :デフォルトの名無しさん:2018/07/14(土) 06:22:32.24 ID:brBR1uF1.net
- crates.ioのソースを持ってきてローカルに立ち上げてhostsで向ければ出来上がりじゃん
- 915 :デフォルトの名無しさん:2018/07/14(土) 06:46:24.80 ID:W3qfg8ZM.net
- cargoが便利コマンドすぎて、原始的な事がやりづらくなってる問題
- 916 :デフォルトの名無しさん:2018/07/14(土) 09:02:37.98 ID:5xFWH4XP.net
- 便利っつーかモジュラリティーの低い構造になってるだけだろ。。
バカ設計だわ。
- 917 :デフォルトの名無しさん:2018/07/14(土) 10:21:42.77 ID:7J+9ARNC.net
- >>909
go使うよ。32bitsマシン以上向けならgoで十分だ。
- 918 :デフォルトの名無しさん:2018/07/14(土) 11:25:26.45 ID:brBR1uF1.net
- 仕事じゃ使えないのは言語じゃなくてお前だって言われてるのに何故goが出てくる
- 919 :デフォルトの名無しさん:2018/07/14(土) 11:57:28.13 ID:7J+9ARNC.net
- Rust使えないから
- 920 :デフォルトの名無しさん:2018/07/14(土) 14:38:38.90 ID:HNobJoZ0.net
- Rust(が/を)使えないから
どっち
- 921 :デフォルトの名無しさん:2018/07/14(土) 14:41:53.11 ID:6PGIbnJP.net
- にほんごむずかしいあるね
- 922 :デフォルトの名無しさん:2018/07/14(土) 14:53:02.90 ID:fAbuOpO3.net
- Rustの提案するエセソリューションは機械語のレベルと相性が悪い
CやC++のほうがまだまともなアプローチしてる
- 923 :デフォルトの名無しさん:2018/07/14(土) 15:01:24.24 ID:3YOZASYs.net
- 「機械語のレベルと相性が悪い」が "All your base are belong to us" みたいに見えてきた
なんかもう根本的に解ってないなっていう感じからくる面白さがある
- 924 :デフォルトの名無しさん:2018/07/14(土) 15:14:29.28 ID:HNobJoZ0.net
- モジラに職を奪われたおじさんと
そのおじさんの物まねをするおじさん達のスレ
- 925 :デフォルトの名無しさん:2018/07/14(土) 15:18:04.39 ID:n16W1iUj.net
- LLVMについていけないおじさん
- 926 :デフォルトの名無しさん:2018/07/14(土) 15:22:17.69 ID:P7IB+4yp.net
- Cやアセンブラなどの低レベルな処理と連動する場合unsafeを使わざるを得ないが、言語の仕様上普通に書くとunsafe祭りになってしまい
ソースコードの可読性が低下するのが残念。抽象化したくてもこれまた仕様的に完全な抽象化が出来なかったりするし
- 927 :デフォルトの名無しさん:2018/07/14(土) 15:47:47.15 ID:7J+9ARNC.net
- gcが有って良いならgo。 ない方が良いならnimってことか
- 928 :デフォルトの名無しさん:2018/07/14(土) 16:00:11.16 ID:6PGIbnJP.net
- まだ学習し始めたばかりでみんなが何を言っているのかよくわからない。
- 929 :デフォルトの名無しさん:2018/07/14(土) 16:53:11.51 ID:QBMXvyuq.net
- どいつもこいつも適当なことをそれっぽく言ってるだけだから気にしなくておk
- 930 :デフォルトの名無しさん:2018/07/14(土) 16:57:03.73 ID:7J+9ARNC.net
- ここはアンチの溜まり場だよ
- 931 :デフォルトの名無しさん:2018/07/14(土) 17:09:58.35 ID:lldWHLOY.net
- 今日は本物がいないな
- 932 :デフォルトの名無しさん:2018/07/14(土) 17:28:07.35 ID:veV9L5cz.net
- >>927
一体いつからNimにはGCがなくなったんだ…?(困惑)
- 933 :デフォルトの名無しさん:2018/07/14(土) 17:41:12.64 ID:/EttrqmU.net
- >>931
狂人の真似をすれば実際狂人
つまりみんな本物のRustに職を奪われたおじさんなんだよ
- 934 :デフォルトの名無しさん:2018/07/14(土) 17:45:59.63 ID:h94PG7c/.net
- https://nim-lang.org/docs/gc.html
RustはできないしNimも詳しくない専門性なしのおじさん
- 935 :デフォルトの名無しさん:2018/07/14(土) 18:18:40.34 ID:yo3MGbyq.net
- お前らもモジカスに親を殺されてみろよ
- 936 :デフォルトの名無しさん:2018/07/14(土) 20:02:32.48 ID:3YOZASYs.net
- バトー「つまり、本物の "Rustによる被害者" というのは最初の一人だけで、
残りは全て模倣犯による狂言だったってのか?」
トグサ「ああ。狂言を読んだ者は初めのうちは怒りを覚える。
だが、その理不尽な怒りを抱えきれなくなると、
衝動的に自らが "Rustによる被害者" になりすますことで、
狂言によって植え付けられた怒りを共有しようとしていたんじゃないか」
バトー「実在しない "Rustによる被害者" たちが連鎖するってわけか……。
── 最初の一人はとうの昔に死んじまってるのにな」
- 937 :デフォルトの名無しさん:2018/07/14(土) 23:00:52.98 ID:6hFYodEH.net
- >>923
懐かしいなAYBか。文法エラーを直しても通じないのがいいよなw
"All of your bases belong to us."
"お前らの卑しいものすべては我々に首ったけ"
ヒドイw
- 938 :デフォルトの名無しさん:2018/07/14(土) 23:51:21.23 ID:5xFWH4XP.net
- rustに職を奪われたおじさんなんて実際は存在しないわけだが。。
まあそういう人がいると思った方が幸せな人がいるのは事実。
- 939 :デフォルトの名無しさん:2018/07/15(日) 00:42:05.31 ID:NkViXM6D.net
- Rustに職を奪われたおじさんなんて名称なんてどうでもよくて
fibも書けない確かな"存在"がぐちぐち居座るせいで幸せになれない
- 940 :デフォルトの名無しさん:2018/07/15(日) 02:53:02.00 ID:x6haH/8s.net
- 良かった。Rustに職を奪われたおじさんは居ないんだ。
- 941 :デフォルトの名無しさん:2018/07/15(日) 10:56:41.89 ID:NalVqF46.net
- NLLがstabilizeされたらfibを書けないおじさんもfib書けるようになって成仏できるよ
- 942 :デフォルトの名無しさん:2018/07/15(日) 11:00:28.92 ID:rsj4GyZ/.net
- >>941
「fibを書けないアホ」が「木構造を書けないアホ」に変わるだけと予想
- 943 :デフォルトの名無しさん:2018/07/15(日) 14:08:56.51 ID:Um7D2OLN.net
- rustでfibが書けたり、木構造が書けることをここまで自慢してくる輩って。。
- 944 :デフォルトの名無しさん:2018/07/15(日) 15:31:20.30 ID:rsj4GyZ/.net
- 自慢も何もプログラマを名乗るなら最低限それくらい書けて当然だろ?ってこと
例えば、「俺は数学者だ」とか言ってる奴が微積分すら理解出来てなくて
「でも、因数分解ならできるし」とか言ってたら全力でぶっ叩くだろ?
つまりは程度の問題ってわけ
そして俺はRustでfibや木構造すら書けない奴はどうせ他の言語使ったって
ろくなコード書いてないだろうからそんな奴がプログラマを名乗るなんて片腹痛いわ!と思ってるだけ
- 945 :デフォルトの名無しさん:2018/07/15(日) 15:42:24.47 ID:ppRXQOVy.net
- このスレに迷い込んだ新規にはfibをどんな書き方をしたらrustで問題になるのか想像もつかない
- 946 :デフォルトの名無しさん:2018/07/15(日) 17:23:07.93 ID:upVjqm6g.net
- fibってなんですか?
- 947 :デフォルトの名無しさん:2018/07/15(日) 17:23:57.93 ID:vPMHyt9R.net
- >56でしょ?
fibがかけなくて5時間も喚いた挙げ句
答えを大量に示されても礼のひとつも言えない
下らない批評をしては論破されて潜伏を繰り返しているあほ
「rustに職を奪われた」「fibを書けない」もこいつの本質ではないんだよな
- 948 :デフォルトの名無しさん:2018/07/15(日) 17:58:08.24 ID:f+8P4DFr.net
- ここはネタスレなんで
- 949 :デフォルトの名無しさん:2018/07/15(日) 19:36:55.02 ID:YZYcatpB.net
- >>56もそもそも拾い物みたいだしなぁ…… (検索に引っ掛かる
- 950 :デフォルトの名無しさん:2018/07/15(日) 19:51:13.58 ID:H2FcMtiY.net
- ツイッターでrust-lang-ja.orgのドメインが〜みたいな話が先月からあるみたいだけど
このスレでは誰も話題にしてない?
- 951 :デフォルトの名無しさん:2018/07/15(日) 20:03:03.01 ID:NalVqF46.net
- fib拾いものなのか
正しくないfibすら書けないおじさんだったか
- 952 :デフォルトの名無しさん:2018/07/15(日) 20:56:16.71 ID:vPMHyt9R.net
- https://www.google.co.jp/search?q=%E2%80%9Ca352230e08bc0a76fb5f116bd3c7abf4%E2%80%9C
?
>>950
検索にも引っ掛からないし誰が困るんだろう
- 953 :デフォルトの名無しさん:2018/07/15(日) 21:35:06.48 ID:YZYcatpB.net
- >>950
Slackでは話題に出てたけど ここでは出てないかな
>>952
流石にplaygroundには貼ったんでしょうね コード4行目で検索
- 954 :デフォルトの名無しさん:2018/07/15(日) 21:45:35.35 ID:rsj4GyZ/.net
- >>953
ほんとだ4行目だけを直接検索したら出た
しかも解決法までご丁寧に解説してあった
>>56はそれも読まなかったのか…
はたまた、読んでも理解できなかったのか…
- 955 :デフォルトの名無しさん:2018/07/16(月) 16:06:24.68 ID:NRqWPJmE.net
- 推察するに日本語が読めなくて、「できない」だけで飛び付いたんだろうなあ
こんな奴でもC++は書ける(自称)って辺りが日本のプログラマの闇だな
- 956 :デフォルトの名無しさん:2018/07/16(月) 16:24:01.28 .net
- 軽々しくC++書けるなんて口にしようものなら茂みからマサカリが飛んでくるぞ
- 957 : :2018/07/16(月) 16:41:06.37 ID:PLRcL5uS.net
- C/C++ については、いつまでたっても「書ける」とはいいきれない存在ですね…
仕様が結構複雑だからなのか?
- 958 :デフォルトの名無しさん:2018/07/16(月) 18:39:02.08 ID:NeMQsq8I.net
- Rustは「書ける」んですか?
- 959 :デフォルトの名無しさん:2018/07/16(月) 18:52:42.01 ID:tJPrOapS.net
- Go使うよ。
- 960 :デフォルトの名無しさん:2018/07/16(月) 19:02:04.84 ID:+TKchfUN.net
- perlがライトオンリー言語なんて言われていたけどリードオンリー言語なんてのもあるんだな。
http://wiki.c2.com/?ReadOnlyLanguage
rustはノミネートされてないから「書ける」と思うよ(すっとぼけ
- 961 :デフォルトの名無しさん:2018/07/16(月) 19:32:53.55 ID:PkmPgg8A.net
- 確かにAppleScriptは中途半端に英文風で多彩かつ何でこれダメなのってパターンも多くread onlyに相応しいな
昔はAdaの称号だったと思うが
- 962 :デフォルトの名無しさん:2018/07/17(火) 01:20:02.37 ID:XTfqg8Os.net
- Eclipse Corrosion使ってるやついないの?
- 963 :デフォルトの名無しさん:2018/07/22(日) 20:18:59.26 ID:6WNc4gpj.net
- Rustでプラグイン機構を持ったアプリを作る場合、本体とプラグインでjsonでやり取りするのが無難?
それとも動的リンクでいける?
- 964 :デフォルトの名無しさん:2018/07/23(月) 00:12:51.84 ID:t7f2tjaz.net
- jsonでどうやるんだ。
ttps://crates.io/crates/libloading
- 965 :デフォルトの名無しさん:2018/07/23(月) 00:44:55.55 ID:CBB4e6ta.net
- それOSやRustコンパイラがどういうコード作るかによるのでは?
なんとなく出来そうな気はするけど。
- 966 :デフォルトの名無しさん:2018/07/23(月) 07:41:05.29 ID:NoHfy/qo.net
- コンパイラのバージョンアップでABI変わる可能性があるから
* 本体とプラグインが同じバージョンでコンパイルされてることを保証する
* extern "C" なインターフェースだけ使う
とかの工夫は必要そう
- 967 :デフォルトの名無しさん:2018/07/23(月) 20:17:49.69 ID:stexMLiC.net
- プログラミングRust待ちきれないどす
- 968 :デフォルトの名無しさん:2018/07/23(月) 22:49:10.62 ID:bEqql8cX.net
- extern "C"してもバイナリ互換のない変更したら同じじゃね?
- 969 :デフォルトの名無しさん:2018/07/23(月) 23:00:36.98 ID:83b6blUP.net
- 本体側からメモリマネージャをエクスポートして.dll/.so側に使わせるってできたっけ
- 970 :デフォルトの名無しさん:2018/07/24(火) 16:50:44.53 ID:IQ4K3J0H.net
- crates.ioで中身のない、クレート名の予約だけの人増えすぎじゃね?
- 971 :デフォルトの名無しさん:2018/07/24(火) 17:20:04.73 ID:YqCWjlto.net
- rustはweb周りをもっと押したほうがいいな
新しいのに飛びつくのはあの連中(俺も)だからな
- 972 :デフォルトの名無しさん:2018/07/24(火) 18:54:39.82 ID:ycl+zs7h.net
- 未発達ってだけじゃ?
- 973 :デフォルトの名無しさん:2018/07/24(火) 18:57:59.94 ID:WBO96fmU.net
- 壁乳
- 974 :デフォルトの名無しさん:2018/07/24(火) 21:23:06.95 ID:T8M86aw1.net
- 未発達かな
hyperやactix webがあるじゃん
- 975 :デフォルトの名無しさん:2018/07/25(水) 02:08:39.39 ID:41CwtA3+.net
- 未発達すき
- 976 :デフォルトの名無しさん:2018/07/25(水) 07:51:39.69 ID:+nGh1Sgi.net
- async awaitベースのtokioがでるまで待った方がよさそう
- 977 :デフォルトの名無しさん:2018/07/25(水) 08:16:02.41 ID:y0Nnx33q.net
- プログラミング言語Rust発売まだ?
はやくして
- 978 :デフォルトの名無しさん:2018/07/25(水) 08:52:37.24 ID:UNILj0yW.net
- 今日からRustやってみる
C言語とPythonとSchemeがちょっとずつしか分からないけど大丈夫かしら
Rustで本格的にプログラミング覚えた人っていますかね...?
- 979 :デフォルトの名無しさん:2018/07/25(水) 09:02:21.28 ID:HwnrNSAw.net
- C++知らないと窮屈なだけで何でこんなもんが必要なのか意味不明じゃね
- 980 :デフォルトの名無しさん:2018/07/25(水) 09:06:22.95 ID:3qeF0zvT.net
- C出来るならありがたみ分かるだろ
- 981 :デフォルトの名無しさん:2018/07/25(水) 14:41:08.64 ID:XJO2lY6I.net
- Ready at Dawn Studiosって言うアメリカのゲーム会社が今後の開発は全てRustでするってよ
- 982 :デフォルトの名無しさん:2018/07/25(水) 15:40:42.61 ID:lJ8T3l+q.net
- 泡沫ゲームメーカーの
- 983 :デフォルトの名無しさん:2018/07/25(水) 16:44:51.58 ID:hO+Od1/n.net
- 海外だから多めに見てもらえる
- 984 :デフォルトの名無しさん:2018/07/25(水) 21:16:35.03 ID:ZMLutfsH.net
- 新しい言語だからrustからって人はなかなかいないと思うけどおすすめだな
根気は必要だけど
- 985 :デフォルトの名無しさん:2018/07/25(水) 22:34:33.87 ID:vRPwEy8/.net
- これPHPが2%もあってPHPの代わりになるほどRustはまだ便利ではなさそうだな
https://github.com/imos/icfpc2018
- 986 :デフォルトの名無しさん:2018/07/26(木) 04:24:33.95 ID:5ROtQy7H.net
- 比較対象間違ってないか?
- 987 :デフォルトの名無しさん:2018/07/26(木) 07:18:30.27 ID:shfmC2IZ.net
- 意味不明すぎて笑ってしまった
- 988 :デフォルトの名無しさん:2018/07/26(木) 19:48:41.24 ID:HNM3rm3+.net
- 初心者スレ無いようなのでここで質問させてください
トレイトって他の言語で言うところのインタフェースみたいなもん?
https://doc.rust-lang.org/rust-by-example/trait.html
trait Animal {
fn new(name: &'static str) -> Self;
}
impl Animal for Sheep {
fn new(name: &'static str) -> Sheep {
Sheep { name: name, naked: false }
}
}
この、Selfを使うようなことはインタフェースじゃできないよね?
1) Selfを使える
2) 独自クラスの定義にのみimplementsできるインタフェースと違って
既存の型に対してあとからいつでも実装を保証?できる
のがトレイト?
- 989 :デフォルトの名無しさん:2018/07/26(木) 20:34:56.63 ID:1GO/F9JV.net
- Selfが使えるかは言語の特徴でtraitの特徴じゃないんじゃない
あと外部で定義されたtraitを外部で定義された型には実装できない制限がある
- 990 :デフォルトの名無しさん:2018/07/26(木) 21:47:50.04 ID:ZKUcprSN.net
- sheep.nakedがfalseなのはバグじゃまいか
- 991 :デフォルトの名無しさん:2018/07/26(木) 23:37:04.68 ID:MvIVysXV.net
- お前らそれよりtraitがコンストラクタ持ってることにツッコめよ。
Ready at DawnってCSやってたけどあれもrustで書くつもりだろうか。
- 992 :デフォルトの名無しさん:2018/07/26(木) 23:47:35.69 ID:e6WqSqyg.net
- コンストラクタ?
- 993 :デフォルトの名無しさん:2018/07/27(金) 06:21:45.73 ID:iaaPZbOX.net
- 質問するための例でしょ、野暮だなあ
- 994 :デフォルトの名無しさん:2018/07/27(金) 07:58:08.97 ID:siMrDeDP.net
- write!マクロってキモい
https://play.rust-lang.org/?gist=630529d9c9c65ee7e3a7ea9a2524e841&version=stable&mode=debug&edition=2015
- 995 :デフォルトの名無しさん:2018/07/27(金) 08:11:14.41 ID:siMrDeDP.net
- write!マクロって本当キモい
https://play.rust-lang.org/?gist=54a890fbc7093117363802bf84a9cd0a&version=stable&mode=debug&edition=2015
- 996 :デフォルトの名無しさん:2018/07/27(金) 13:30:16.26 ID:Rp6Nmdy5.net
- >>906
gowにはrustlungちう病気が出てくるぞ
- 997 :デフォルトの名無しさん:2018/07/27(金) 20:15:16.26 ID:/aLVAKNj.net
- >>989 ありがとうございます!もっと勉強します
- 998 :デフォルトの名無しさん:2018/07/27(金) 21:04:57.34 ID:/aLVAKNj.net
- >>991-993
そこなんですよ
コンストラクタをトレイト側にかけちゃうのが何か凄み感じるんですよ
インタフェースじゃせいぜいObject型で返すくらいのもんでして
- 999 :デフォルトの名無しさん:2018/07/27(金) 21:53:15.63 ID:454wB1N8.net
- あ、これはやばい理解パターンだ。。
- 1000 :デフォルトの名無しさん:2018/07/27(金) 22:10:22.71 ID:lEyToVsI.net
- インターフェースは型だけどトレイトは型じゃないって気付いたときに理解が進んだ音がした
- 1001 :デフォルトの名無しさん:2018/07/27(金) 22:22:18.00 ID:T6fu2z+/.net
- Rust part6
http://mevius.5ch.net/test/read.cgi/tech/1532697692/
- 1002 :2ch.net投稿限界:Over 1000 Thread
- 2ch.netからのレス数が1000に到達しました。
総レス数 1002
241 KB
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★