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/
Rust Part5
レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん
2018/02/11(日) 20:07:24.54ID:ri7dLd1B2018/02/11(日) 20:11:06.61ID:ri7dLd1B
>>1補足
関連スレ
プログラミング言語 Rust 4【ワッチョイ】
https://mevius.5ch.net/test/read.cgi/tech/1514107621/
スレタイと本文を簡素にして、リンクを追加
ワッチョイの有無は話し合って決めてくれ
関連スレ
プログラミング言語 Rust 4【ワッチョイ】
https://mevius.5ch.net/test/read.cgi/tech/1514107621/
スレタイと本文を簡素にして、リンクを追加
ワッチョイの有無は話し合って決めてくれ
2018/02/11(日) 20:19:50.66ID:Bow9SKgP
ワッチョイが怖いアンチ専用スレ
2018/02/11(日) 20:23:24.61ID:A30L58fq
乱造されたくそ言語のひとつ
2018/02/11(日) 20:50:40.14ID:o0/wxHz/
真正キチガイとそのとりまき専用スレです。
2018/02/11(日) 20:51:16.50ID:o0/wxHz/
2018/02/16(金) 23:17:53.59ID:Amur4Tpf
Announcing Rust 1.24
https://blog.rust-lang.org/2018/02/15/Rust-1.24.html
https://blog.rust-lang.org/2018/02/15/Rust-1.24.html
2018/02/17(土) 00:41:40.05ID:hqbRKzvj
9デフォルトの名無しさん
2018/02/17(土) 02:03:04.39ID:E39jLpI9 >>8
このブログが良識のある人の記事に見えるってのはある意味すごいと思う。
マジで言ってんの?ネタじゃなかったから単なるバカだよ?
Nimやったことないんだけど、このブログ書いた奴のせいで
俺の中でのNimへの風評被害が超激しいんだけど。
このブログが良識のある人の記事に見えるってのはある意味すごいと思う。
マジで言ってんの?ネタじゃなかったから単なるバカだよ?
Nimやったことないんだけど、このブログ書いた奴のせいで
俺の中でのNimへの風評被害が超激しいんだけど。
10デフォルトの名無しさん
2018/02/17(土) 20:05:16.72ID:7f4EmjrX2018/02/17(土) 23:24:31.02ID:kWt1jk5L
2018/02/17(土) 23:54:44.59ID:J1S1NncJ
金子勝とかNimキチガイとかrustアンチするにしても筋悪すぎるしアンチを装った信者の犯行では
2018/02/18(日) 09:48:13.72ID:KxaRPyjO
Nimおじさんの布教の熱意は見習いたい
Rustオタは身内で盛り上がってるだけだからな
Rustオタは身内で盛り上がってるだけだからな
2018/02/18(日) 10:06:29.06ID:rF0gbaqf
ここまで理論的な反論なし
まあできないんだろうね。言語未満Rust
まあできないんだろうね。言語未満Rust
2018/02/18(日) 10:10:11.91ID:rF0gbaqf
Nimとの対比でRustは言語未満のゴミだと暴かれている上に
それを布教してるやつらは金子先生の鋭い指摘で詐欺集団だと暴かれているのに
信者は人格攻撃して矛先を反らすだけ
よっぽど反論できなくて悔しいんだろうね
それを布教してるやつらは金子先生の鋭い指摘で詐欺集団だと暴かれているのに
信者は人格攻撃して矛先を反らすだけ
よっぽど反論できなくて悔しいんだろうね
16デフォルトの名無しさん
2018/02/18(日) 13:34:10.14ID:MGQ/Ou+a 悔しいんじゃなくてバカらしい。
あと、書いたところでこっちにメリットがない。
具体的なメリットを提示してくれるなら書くかも。
反論記事なら雑だけど一応あった。
書いた後であまりのバカらしさに自ら記事を消したらしい。
アーカイブは残ってるから、それでも読んでろ。
http://ubnt-intrepid.hatenablog.com/entry/2017/10/03/135742
あと、書いたところでこっちにメリットがない。
具体的なメリットを提示してくれるなら書くかも。
反論記事なら雑だけど一応あった。
書いた後であまりのバカらしさに自ら記事を消したらしい。
アーカイブは残ってるから、それでも読んでろ。
http://ubnt-intrepid.hatenablog.com/entry/2017/10/03/135742
2018/02/18(日) 15:07:59.73ID:yl4ANYcz
Rustはプログラミング言語未満というのは >>8 の意見だと思うけどプログラミング言語の定義が曖昧すぎて反論のしようがないしそれで勝利宣言されてもね
2018/02/18(日) 16:22:00.83ID:29WPmCUu
2018/02/18(日) 16:23:51.22ID:29WPmCUu
あとその人か反論記事消したのも
本当はRustが使い物にならないことを察してしまったけど
それを言うと信者に突撃されるからぼかして消しただけでしょ
表向きの理由で全消しするのは不自然だから
本当はRustが使い物にならないことを察してしまったけど
それを言うと信者に突撃されるからぼかして消しただけでしょ
表向きの理由で全消しするのは不自然だから
2018/02/18(日) 17:02:55.71ID:AoWf7oui
ほんそれ
2018/02/18(日) 17:24:33.90ID:rbmqjGBD
あぁ、Rustのネガキャンするとお給料がでるのか……
2018/02/18(日) 17:25:09.88ID:Cm7UHG2I
提灯記事書いてモジラからお金もらうにはどうしたらよいのですか?
2018/02/18(日) 17:41:48.25ID:oGsannLj
「俺がコンパイル通せるコード書けないからRustは糞」って主張で首尾一貫してるところはすごい
2018/02/18(日) 17:44:53.63ID:oGsannLj
それとも世のRustで書かれてるアプリケーションは実はすべて別の言語で書かれているという主張だろうか
2018/02/18(日) 17:45:28.72ID:oGsannLj
はたまたRustで書かれてるものはどんなものであれまともなものとは認めないかな
2018/02/18(日) 18:02:38.46ID:29WPmCUu
2番目が正解だな
2018/02/18(日) 18:06:09.75ID:29WPmCUu
オープンソースでRustで書かれてるやつも
なんとかコンパイルだけ通したような
保守性も何もない個人が脳トレで書いたようなものばかり
まともな製品として書かれたコードはGithubにも見つからなかったぞ
ソースコード公開してるものがそうなんだから
企業がRust使ってると称するなにかは実際にはRustなんて使っておらず
適当な別の言語で書いてRust使ってると言えばモジラから金が出る
そういう仕組みと考えるのが自然な訳だ
なんとかコンパイルだけ通したような
保守性も何もない個人が脳トレで書いたようなものばかり
まともな製品として書かれたコードはGithubにも見つからなかったぞ
ソースコード公開してるものがそうなんだから
企業がRust使ってると称するなにかは実際にはRustなんて使っておらず
適当な別の言語で書いてRust使ってると言えばモジラから金が出る
そういう仕組みと考えるのが自然な訳だ
28デフォルトの名無しさん
2018/02/18(日) 18:36:35.71ID:MGQ/Ou+a で、このアーカイブ記事に対する論理的な反論はできないと。
あと、GitHubのまともなコードが見つからなかったって点も
どの辺がまともじゃないのかについてはコードでは示せないと。
それで自分の言葉に説得力があると思ってるのが不思議でならないんだが。
あと、俺にも「モジラからお金もらう方法」を教えて。
ホントにもらえるんだったら絶対に反論記事書いてあげるから。
あと、GitHubのまともなコードが見つからなかったって点も
どの辺がまともじゃないのかについてはコードでは示せないと。
それで自分の言葉に説得力があると思ってるのが不思議でならないんだが。
あと、俺にも「モジラからお金もらう方法」を教えて。
ホントにもらえるんだったら絶対に反論記事書いてあげるから。
2018/02/18(日) 18:45:26.87ID:rbmqjGBD
ぐぇ crate uuid のインターフェースが換わりよった
ParseError が std::error::Error を impl しなくなったのは何故だ……
ParseError が std::error::Error を impl しなくなったのは何故だ……
2018/02/18(日) 18:52:54.71ID:29WPmCUu
>>28
なんで取り下げられた記事に反論しないといけないの?
取り下げたってことは「この記事は間違いだった」というメッセージでしょ
モジラから金貰う方法とか俺に聞くなよ
モジラのページにある自称Rust使ってる企業に聞いてくれよ
なんで取り下げられた記事に反論しないといけないの?
取り下げたってことは「この記事は間違いだった」というメッセージでしょ
モジラから金貰う方法とか俺に聞くなよ
モジラのページにある自称Rust使ってる企業に聞いてくれよ
2018/02/18(日) 18:54:29.18ID:29WPmCUu
2018/02/18(日) 18:59:05.94ID:XQEgm6DO
取り下げた理由も書いてあるのに読まずに決めてかかってるのほんとブレねぇな
2018/02/18(日) 19:01:18.09ID:yl4ANYcz
まともな製品という言い方もそうだけどまともかどうかの判断基準は「俺が気に入るかどうか」以上のものがあるように読みとれなかったので議論にならない
論理的な会話ができてないのはどちらなんだか
論理的な会話ができてないのはどちらなんだか
2018/02/18(日) 19:03:55.06ID:rbmqjGBD
>>31
レスしてもらったのはありがたいが
俺はお前さんから見ればRust信者だわ すまん
元よりどんな言語使ってもインターフェース変更はある
今回は、追従する作業に五分も掛からんかった
後はテスト流して終わり
インターフェースの変更が出来ないのを理由に
開発が鈍化されるよりマシだと思うよ
レスしてもらったのはありがたいが
俺はお前さんから見ればRust信者だわ すまん
元よりどんな言語使ってもインターフェース変更はある
今回は、追従する作業に五分も掛からんかった
後はテスト流して終わり
インターフェースの変更が出来ないのを理由に
開発が鈍化されるよりマシだと思うよ
2018/02/18(日) 19:04:52.12ID:29WPmCUu
クソな例挙げようと思ったが挙げるまでもなく>>29が素晴らしい例を出してくれたな
Nimの人のブログにもあったが、ロジックと関係ないスコープ切りが必要なせいでコードがスパゲッティになるとか、
ハッシュテーブルと所有権がコンフリクトして動的計画法が書けないとか
所有権のせいでそもそも循環グラフ書けないとか
いくらでもクソな所出してやれるが?
Nimの人のブログにもあったが、ロジックと関係ないスコープ切りが必要なせいでコードがスパゲッティになるとか、
ハッシュテーブルと所有権がコンフリクトして動的計画法が書けないとか
所有権のせいでそもそも循環グラフ書けないとか
いくらでもクソな所出してやれるが?
2018/02/18(日) 19:09:06.24ID:29WPmCUu
それ以上に、難解すぎてロジックと関係ないコード上の手入れが膨れ上がって
結果ロジックにバグが増えたりインターフェイスの非互換が発生したりするんだよ
だから致命的に壊れた言語って言ってる
結果ロジックにバグが増えたりインターフェイスの非互換が発生したりするんだよ
だから致命的に壊れた言語って言ってる
2018/02/18(日) 19:16:07.43ID:29WPmCUu
>>32
だから信者からの突撃回避だろってそれ
だから信者からの突撃回避だろってそれ
2018/02/18(日) 19:35:38.35ID:1PPXAZA8
反論ブログの人が今でもRust書いてるのも、アイコンがRustのマスコットキャラなのも信者の突撃回避なのですね
Nimのブログ記事にブコメしてるのもみんな信者かMozillaの工作員なんですね
Nimのブログ記事にブコメしてるのもみんな信者かMozillaの工作員なんですね
2018/02/18(日) 19:38:46.94ID:yl4ANYcz
コンパイラが理解できない所有権の問題がある場合はunsafeというescape hatchがあってプログラマの責任でコードが書けるようになっている
これはすごく実用的な割り切りだと思うんだけど>>35はまた意見が違いそう
これはすごく実用的な割り切りだと思うんだけど>>35はまた意見が違いそう
2018/02/18(日) 19:44:23.34ID:yl4ANYcz
コンパイラが賢くあるべきなのか、コードを書く側が賢くあるべきかとい二つの考え方があって
>>35は後者、Rustは前者の立場をとっていて単純に趣味に合わないだけなんだと思うが
>>35は後者、Rustは前者の立場をとっていて単純に趣味に合わないだけなんだと思うが
2018/02/18(日) 20:00:00.93ID:aEar2ian
比較対象にされてるNimはまともなプログラミング言語とのことで、まともな言語とはまともな製品を作れる言語とのことらしいが
そうなるとNimはRust以上に普及しててまともな製品がリリースされていないと矛盾しないか
そうなるとNimはRust以上に普及しててまともな製品がリリースされていないと矛盾しないか
2018/02/18(日) 20:06:17.02ID:29WPmCUu
2018/02/18(日) 20:10:47.25ID:yl4ANYcz
Mozillaが詐欺企業なんて聞いたことないけどどういう罪状があるのか詳しく教えて欲しい
2018/02/18(日) 20:28:16.57ID:FZoaWpvb
こんだけアンチが常駐する言語スレも珍しい
PHPより酷く感じる
PHPより酷く感じる
2018/02/18(日) 20:33:28.85ID:DdrYOgdV
スレ人口少ないのもあるが常駐されたところで同じ主張繰り返すだけで特に実害がないからでは
別スレもあるし
別スレもあるし
2018/02/18(日) 20:38:05.10ID:yl4ANYcz
ほんとうにMozillaが金をばらまいてRustを普及させようとしているなら断る人もいるはずで
世界的にやっているにもかかわらずそのことに言及してるのがこのスレにいる一人だけという時点で信憑性も何もないというのがね
世界的にやっているにもかかわらずそのことに言及してるのがこのスレにいる一人だけという時点で信憑性も何もないというのがね
2018/02/18(日) 20:38:58.59ID:yl4ANYcz
言語について批判できるんだから変なMozilla批判は引っ込めたほうが説得力持たせられるのに
もったいない
もったいない
2018/02/18(日) 20:55:59.22ID:29WPmCUu
札束でぶん殴られて断れないような、そういう相手を選んでるだろうしな
あのMercurialもGitにボロ負けしてるから、資金で殴れば下るだろうって狙われたんだろう
あのMercurialもGitにボロ負けしてるから、資金で殴れば下るだろうって狙われたんだろう
49デフォルトの名無しさん
2018/02/18(日) 21:07:21.89ID:MGQ/Ou+a >>30
お前しか「モジラに金もらってる」なんて言ってる奴がいないんだからお前に聞くしかないだろ?
バカなの?脳味噌に草でも生えてんの?
あとGitHubの件はスルー?コード例はやっぱり出せないの?
動的計画法はRustじゃ書いたことないから分からんけども、書けないのはお前だけじゃないの?
「書けない部分を具体的にコード例で示して」毎回言ってるよね?
「同じことを何度も言わせるな」って注意されたことないの?今注意したからもう同じこと言わせないでね。
循環参照についてはRcとWeak使えば書ける。可変にしたければさらにRefCell使えばいい。
それも何度も言ってるよね?ボケてんの?草以外に花も咲いてそうだな。
RcやRefCellが気に入らんならお前とはスタイルが合わないってだけの話だ。去ね。
お前しか「モジラに金もらってる」なんて言ってる奴がいないんだからお前に聞くしかないだろ?
バカなの?脳味噌に草でも生えてんの?
あとGitHubの件はスルー?コード例はやっぱり出せないの?
動的計画法はRustじゃ書いたことないから分からんけども、書けないのはお前だけじゃないの?
「書けない部分を具体的にコード例で示して」毎回言ってるよね?
「同じことを何度も言わせるな」って注意されたことないの?今注意したからもう同じこと言わせないでね。
循環参照についてはRcとWeak使えば書ける。可変にしたければさらにRefCell使えばいい。
それも何度も言ってるよね?ボケてんの?草以外に花も咲いてそうだな。
RcやRefCellが気に入らんならお前とはスタイルが合わないってだけの話だ。去ね。
50デフォルトの名無しさん
2018/02/18(日) 21:18:37.37ID:MGQ/Ou+a あと最悪、動的計画法や循環参照がお前に書けなかったとしても、
書けてるやつのライブラリを使えばいいだけの話では?
自分で書くよりまずライブラリを探す。今の時代はこれが常識だろ?
車輪の再開発は勉強するときだけやってればいいんだよ。
書けてるやつのライブラリを使えばいいだけの話では?
自分で書くよりまずライブラリを探す。今の時代はこれが常識だろ?
車輪の再開発は勉強するときだけやってればいいんだよ。
2018/02/18(日) 21:23:52.35ID:29WPmCUu
今まで触れずにおいてやったのにそこまで言われたから言うけど
「書けないもの」の「ソースコード用意しろ」ってひどい矛盾したこといってるの分かってます工作員さん?
「書けないもの」の「ソースコード用意しろ」ってひどい矛盾したこといってるの分かってます工作員さん?
2018/02/18(日) 21:27:56.00ID:yl4ANYcz
コンパイルが通らないソースコードなら書けるよね
2018/02/18(日) 21:28:34.77ID:yl4ANYcz
どうせ次はRustは触るのも汚らわしいから書かないとか言うんだろうな
54デフォルトの名無しさん
2018/02/18(日) 21:29:02.25ID:MGQ/Ou+a Rustでコンパイルエラーしてるソースコードを
コンパイルエラーした状態のままでいいから見せろって言ってるの。
あと、「C(他言語でも可)だとこう書けるのに。。。」っていうソースも載ってればベスト。
分かってもらえます?
コンパイルエラーした状態のままでいいから見せろって言ってるの。
あと、「C(他言語でも可)だとこう書けるのに。。。」っていうソースも載ってればベスト。
分かってもらえます?
2018/02/18(日) 21:30:40.70ID:yl4ANYcz
borrow checkerについて文句言ってるんだからせめて型検査くらいは通ったソースにしてくださいね
2018/02/18(日) 21:39:58.74ID:29WPmCUu
2018/02/18(日) 21:49:04.52ID:yl4ANYcz
2018/02/18(日) 21:50:32.62ID:yl4ANYcz
HashMapのエントリーへのポインタは新しいエントリー追加したらreallocなどが呼ばれて無効になるかもしれないので取り回すのがそもそも間違い
59デフォルトの名無しさん
2018/02/18(日) 21:52:54.02ID:MGQ/Ou+a ちゃんとソースコード読みこんでないから何がしたいのよく理解してないけど
取り合えずコンパイル通すだけならすぐ出来たよ。
http://play.integer32.com/?gist=9333d5344adb9cdf5ef8292a20ec6c24&version=stable
取り合えずコンパイル通すだけならすぐ出来たよ。
http://play.integer32.com/?gist=9333d5344adb9cdf5ef8292a20ec6c24&version=stable
2018/02/18(日) 21:56:25.20ID:yl4ANYcz
2018/02/18(日) 21:57:12.95ID:rbmqjGBD
俺はスコープ切る方が好きかな〜
http://play.integer32.com/?gist=e73044b8a25fa1c2403ee1ccb74356f6&version=stable
http://play.integer32.com/?gist=e73044b8a25fa1c2403ee1ccb74356f6&version=stable
2018/02/18(日) 21:57:26.76ID:yl4ANYcz
URL間違えた
http://play.integer32.com/?gist=d9f081dd40e2e0d06e224dc0e20ee41c&version=nightly
http://play.integer32.com/?gist=d9f081dd40e2e0d06e224dc0e20ee41c&version=nightly
2018/02/18(日) 22:00:17.99ID:xYBf7ssj
瞬殺されてて草
2018/02/18(日) 22:21:47.77ID:xYBf7ssj
この流れ見ると、NLLはRustのハードルを思った以上に下げるのでは?と思わずにはいられない
65デフォルトの名無しさん
2018/02/18(日) 22:48:08.85ID:MGQ/Ou+a その程度のエラーで投げるやつは少数派なんじゃ。。。とおれは思うけど。
まぁ、それでハードルが下がるのならそっちのほう良いとは思う。
けど、その程度で前に進めなくなるならすぐに別の問題にもぶち当たってやっぱり投げちゃうと思うよ。
そういう奴らはRustはともかく、多分C, C++でも自分で書いたバグに潰されると思う。
結局GC付きの言語でしか書けないんじゃない?
念のため言っておくけど、GC付きの言語を批判する意図はないよ。
おれTypeScript好きだし、Goも嫌いじゃない。
まぁ、それでハードルが下がるのならそっちのほう良いとは思う。
けど、その程度で前に進めなくなるならすぐに別の問題にもぶち当たってやっぱり投げちゃうと思うよ。
そういう奴らはRustはともかく、多分C, C++でも自分で書いたバグに潰されると思う。
結局GC付きの言語でしか書けないんじゃない?
念のため言っておくけど、GC付きの言語を批判する意図はないよ。
おれTypeScript好きだし、Goも嫌いじゃない。
2018/02/18(日) 22:57:58.52ID:xYBf7ssj
確かにここが解決しても型合わせとかで匙投げそうだな……
型の方はScalaとかSwiftとか別の言語で似たようなのがあるから参考にできる文献多そうだけど
型の方はScalaとかSwiftとか別の言語で似たようなのがあるから参考にできる文献多そうだけど
67デフォルトの名無しさん
2018/02/18(日) 23:36:51.46ID:MGQ/Ou+a ジェネリックとトレイト境界の辺りとか最初は結構苦労した記憶がある。
特にfuturesクレートを初めて読んだときは?!??!?ってなった。
Rustは良い言語だけれど「難解」というところだけは否定できない。
そういえば、結局「モジラからお金もらう」方法教えてくれなかったなぁ。
お金欲しいのに
特にfuturesクレートを初めて読んだときは?!??!?ってなった。
Rustは良い言語だけれど「難解」というところだけは否定できない。
そういえば、結局「モジラからお金もらう」方法教えてくれなかったなぁ。
お金欲しいのに
2018/02/19(月) 00:25:45.37ID:1MkUvafw
ちゃんとしたもの作れるわけないだろという主張してたのが昔は複数いたと思うが
Quantumが出たあたりで流石に取り下げたようだが
モジラは詐欺会社と言い張る一人だけが猛烈に頑張ってる
Quantumが出たあたりで流石に取り下げたようだが
モジラは詐欺会社と言い張る一人だけが猛烈に頑張ってる
69デフォルトの名無しさん
2018/02/19(月) 01:40:11.21ID:Lpico4kN >>68
モーレツに墓穴掘ってるけどね
モーレツに墓穴掘ってるけどね
70デフォルトの名無しさん
2018/02/19(月) 10:56:52.97ID:RCvG8f4a 安全性を最大限に気にしたい心配性な人向けの言語だよRust
そういう人たちはC/C++のコーディングで余計なことまで心配しすぎてストレスかかってるんだよ
かわいそうな人たちなんだよ
そういう人たちはC/C++のコーディングで余計なことまで心配しすぎてストレスかかってるんだよ
かわいそうな人たちなんだよ
2018/02/19(月) 12:11:45.20ID:SrM6uAzC
心配しないと鼻から悪魔が出るのがC/C++なので心配しすぎということはない
72デフォルトの名無しさん
2018/02/19(月) 20:47:53.37ID:Lpico4kN 例のアンチだが動的計画法がどうだ循環参照がどうだって騒いでたから
てっきりhtml5everくらい複雑なコード組もうとして悩んでたのかと思ってたけど
まさかのフィボナッチ数列でつまづいていたとは予想外だったわ
そういえば今年のstackoverflowのアンケート結果っていつ出るんだろう?
そもそも毎年いつ頃出てるのか知らないんだよね
これでRustが愛され言語ランキング1位から順位落としてたら
また「ついにクソ言語未満のボロが出てきたな」とか騒ぎだすんだぜきっと
てっきりhtml5everくらい複雑なコード組もうとして悩んでたのかと思ってたけど
まさかのフィボナッチ数列でつまづいていたとは予想外だったわ
そういえば今年のstackoverflowのアンケート結果っていつ出るんだろう?
そもそも毎年いつ頃出てるのか知らないんだよね
これでRustが愛され言語ランキング1位から順位落としてたら
また「ついにクソ言語未満のボロが出てきたな」とか騒ぎだすんだぜきっと
2018/02/19(月) 22:42:50.63ID:soT5kWv3
前スレで、別のランキングでRustの順位が10位圏内に入ってなかったことについて
「工作ブーストが切れたな」とか言ってたからそういう方向になるんじゃね
「工作ブーストが切れたな」とか言ってたからそういう方向になるんじゃね
2018/02/20(火) 22:57:20.29ID:fTmZl11b
Rustが、コードのスタイルガイド「Rust Style Guide」と自動整形ツールを導入する理由。
コードをめぐる議論を省き、メンタルの負担を減らし、プログラマを参加しやすくする
http://www.publickey1.jp/blog/18/rustrust_style_guide.html
コードをめぐる議論を省き、メンタルの負担を減らし、プログラマを参加しやすくする
http://www.publickey1.jp/blog/18/rustrust_style_guide.html
2018/02/21(水) 00:44:44.35ID:s9stOBAB
unsafe使えば書けるだろ
C++みたいに全部unsafeな言語よりは安全
C++みたいに全部unsafeな言語よりは安全
2018/02/21(水) 13:18:06.33ID:/K+AUWe/
C++ならゲーム
C#ならWindowsフォームアプリケーション
PHPならWebアプリケーション
Pythonなら機械学習
Rustは?
C#ならWindowsフォームアプリケーション
PHPならWebアプリケーション
Pythonなら機械学習
Rustは?
2018/02/21(水) 19:19:52.15ID:ariB2x93
ここはアンチが立てたキチガイ隔離スレです。
キチガイ以外書き込まないでね
キチガイ以外書き込まないでね
2018/02/21(水) 20:00:01.69ID:RN4nUagC
本スレが過疎ってレベルじゃないし実質こっちが本スレだろ
隔離()スレに勢いで負ける言語があるらしい
隔離()スレに勢いで負ける言語があるらしい
2018/02/21(水) 20:01:45.70ID:ariB2x93
まあそうなんだけどね
2018/02/21(水) 21:13:09.57ID:wTdoLSiT
ほんとID:yl4ANYczは戦犯
コンパイルできない厨が最後のコンテンツだったのに…
コンパイルできない厨が最後のコンテンツだったのに…
2018/02/22(木) 09:08:35.45ID:L3BN3Bsr
いわゆるnewtypeパターンをLLVM IRで見てみると
ごく単純なコードで使う分には中身の要素に最適化されてるけど、
それ使って配列を作っただけで最適化されなくなる
こんくらいでゼロコスト抽象化とか言ってるの?
typeでは新しい型作れないし、
結局新しい効率的な型を作る方法さえないんだな
ごく単純なコードで使う分には中身の要素に最適化されてるけど、
それ使って配列を作っただけで最適化されなくなる
こんくらいでゼロコスト抽象化とか言ってるの?
typeでは新しい型作れないし、
結局新しい効率的な型を作る方法さえないんだな
2018/02/22(木) 09:11:43.41ID:3phG5Adg
私にも敵が視える
2018/02/22(木) 12:12:42.57ID:rPAqV5nw
Rustで書くと実行時のメモリ使用量が増える感じは確かにある
2018/02/22(木) 12:12:50.46ID:nEiXxHSj
>>81
トレイトの特殊化でも無理?
トレイトの特殊化でも無理?
2018/02/22(木) 12:45:10.40ID:ETY6aWa8
バグかもしれないからissue立てたら
2018/02/22(木) 13:46:42.12ID:H839Tp+8
>>81
ゼロコスト抽象化はトレイトやジェネリクスを言っててnewtypeパターンは関係ないと思うゾ
Cに比べたらC++もRustもGoもランタイムの分だけメモリ使用量は増えるよね
C++にはランタイム存在しないとか大笑いなギャグを素で言う輩は知らん
ゼロコスト抽象化はトレイトやジェネリクスを言っててnewtypeパターンは関係ないと思うゾ
Cに比べたらC++もRustもGoもランタイムの分だけメモリ使用量は増えるよね
C++にはランタイム存在しないとか大笑いなギャグを素で言う輩は知らん
2018/02/22(木) 17:36:33.79ID:z8mO3my1
その理屈で言うとlibcもランタイムになりそう
88デフォルトの名無しさん
2018/02/24(土) 01:22:38.50ID:it5yKGst 「Rust 1.24」リリース、コード整形ツール「rustfmt」をプレビュー導入 | OSDN Magazine
https://mag.osdn.jp/18/02/17/163000
> ビルドの速度は改善するが、出力されたバイナリの実行速度は少し遅くなるとしている。
https://mag.osdn.jp/18/02/17/163000
> ビルドの速度は改善するが、出力されたバイナリの実行速度は少し遅くなるとしている。
2018/02/24(土) 05:12:18.52ID:sKnrWNZ+
むしろ今まで並列コンパイルをしていなかったのかという驚きがね...
型推論とかボローチェッカーとか大変だろうしと思ってたが、並列コンパイルで早くなるのは助かるよね
型推論とかボローチェッカーとか大変だろうしと思ってたが、並列コンパイルで早くなるのは助かるよね
2018/02/24(土) 12:58:21.72ID:xVNPO9ZK
コンパイルを速くするためにプログラムの速度を犠牲にする
自称低級言語があるらしい
自称低級言語があるらしい
2018/02/24(土) 13:22:49.17ID:F+bRKUHR
言語じゃなくコンパイラの話だぞ
速度を求めたリリースビルドは並列なしに切り替えられる低級調製可能なコンパイラすごいよね(棒読み
速度を求めたリリースビルドは並列なしに切り替えられる低級調製可能なコンパイラすごいよね(棒読み
2018/02/24(土) 14:20:25.52ID:Wx4opHQO
言語仕様には興味あるけど実装は興味ありませんって奇特な方には人気出そうな言語だね。
2018/02/24(土) 14:24:58.18ID:2/pmmfzJ
低レイヤ書く人は仕様より吐かれるバイトコードの方にしか興味ないから
完全にターゲティングに失敗してるよなこの言語
完全にターゲティングに失敗してるよなこの言語
2018/02/24(土) 15:42:04.98ID:F+bRKUHR
むしろコンパイルを通すことが難しくても効率的で安全なマシンコードを出力して欲しい奇特な人向けだけどな
性能無視して生産効率だけを求めるならボローチェッカーとかunsafeとかトレイトとか面倒な言語仕様はマジ辛い
ただ緩く書きたいだけならSwiftとかGoの方が絶対良いよな
ランタイムが馬鹿でかかろうが、goroutineが冗長コストだろうが、言語仕様が楽なそれらは生産効率が断然良い
性能無視して生産効率だけを求めるならボローチェッカーとかunsafeとかトレイトとか面倒な言語仕様はマジ辛い
ただ緩く書きたいだけならSwiftとかGoの方が絶対良いよな
ランタイムが馬鹿でかかろうが、goroutineが冗長コストだろうが、言語仕様が楽なそれらは生産効率が断然良い
2018/02/24(土) 16:20:16.21ID:VjJ87j7v
安全はともかく、Rustが効率的なマシンコードを出力するというのは同意しかねる
2018/02/24(土) 22:13:15.47ID:Z3ajdh1I
やはりD言語が最強か
2018/02/27(火) 14:30:57.99ID:b6IHds+I
ソースとマシンコードが一対一になる言語は安心感あるな
98デフォルトの名無しさん
2018/02/27(火) 14:35:36.74ID:UR+NQY+Q やはりアセンブラか
99デフォルトの名無しさん
2018/02/27(火) 14:36:01.06ID:MLnedvVc 【UFO】 山本太郎も横浜で遭遇 ≪W◇″型の発光体≫ 世界にテレパシー放送 【大宣言】
http://rosie.5ch.net/test/read.cgi/liveplus/1519704223/l50
http://rosie.5ch.net/test/read.cgi/liveplus/1519704223/l50
100デフォルトの名無しさん
2018/03/01(木) 00:41:00.21 【お知らせ】Packt出版より Network Programming with Rust が発売されました。
101デフォルトの名無しさん
2018/03/05(月) 15:59:00.63ID:iGOVMObf https://play.rust-lang.org/?gist=0bed0aa16c0679665fee05cc6bfda41f&version=nightly
fn nanka() -> Option<u32>{
println!("nanka called");
None
}
fn nanka2() -> Option<u32>{
println!("nanka2 called");
None
}
fn nanka3() -> Option<u32>{
println!("nanka3 called");
None
}
fn main() {
match (nanka(), nanka2(), nanka3()){
(None, _, _) => println!("nanka ha None"),
(Some(_), Some(_), Some(_)) => println!("some"),
(_, _, _) => println!("else")
}
}
nanka2, nanka3が呼ばれなくて困る!って副作用があるパターンぐらいじゃないですか?
nanka1がNoneと判定した時点ですぐprintしてくれないものでしょうか
fn nanka() -> Option<u32>{
println!("nanka called");
None
}
fn nanka2() -> Option<u32>{
println!("nanka2 called");
None
}
fn nanka3() -> Option<u32>{
println!("nanka3 called");
None
}
fn main() {
match (nanka(), nanka2(), nanka3()){
(None, _, _) => println!("nanka ha None"),
(Some(_), Some(_), Some(_)) => println!("some"),
(_, _, _) => println!("else")
}
}
nanka2, nanka3が呼ばれなくて困る!って副作用があるパターンぐらいじゃないですか?
nanka1がNoneと判定した時点ですぐprintしてくれないものでしょうか
102デフォルトの名無しさん
2018/03/05(月) 19:46:36.35ID:S3T8EfYp println!("nanka2 called"); とか副作用あるよね
103デフォルトの名無しさん
2018/03/05(月) 21:01:55.89ID:YH1rjFLX まさに副作用あって呼ばれなきゃ困るパターン書いてて草
104デフォルトの名無しさん
2018/03/05(月) 21:44:52.21ID:rDxXu9uq 遅延評価の言語ではないから言語仕様的に全部評価することが保証されてるからなぁ
副作用なくて同じcrate内に処理があるなら最適化で消えるのでは
副作用なくて同じcrate内に処理があるなら最適化で消えるのでは
105デフォルトの名無しさん
2018/03/07(水) 19:29:12.10ID:LRCrToXv 横着してたから気づかなかった…
>>104
https://play.rust-lang.org/?gist=548477e609761c03d062880ceebec28a&version=stable
MIR見る限りあるっぽいです(これ副作用ないですよね?)
>>104
https://play.rust-lang.org/?gist=548477e609761c03d062880ceebec28a&version=stable
MIR見る限りあるっぽいです(これ副作用ないですよね?)
106デフォルトの名無しさん
2018/03/07(水) 21:27:53.74ID:VXG6nm0Z 良く分からないけどReleaseにしてASM見ると消えてるみたい
MIRに対する最適化は現時点ではそれほどやられてなさそう
MIRに対する最適化は現時点ではそれほどやられてなさそう
107デフォルトの名無しさん
2018/03/07(水) 21:51:00.14ID:LRCrToXv108デフォルトの名無しさん
2018/03/07(水) 22:06:37.97ID:5W30026P 言語仕様で消えるってどっか書いてある?探したけど見つからんかった
109デフォルトの名無しさん
2018/03/07(水) 22:42:40.55ID:MkNIh69G110デフォルトの名無しさん
2018/03/08(木) 07:35:45.52ID:VN6/Zkeb 会社大変だから許してあげよう
111デフォルトの名無しさん
2018/03/08(木) 09:01:09.79ID:SDzhQ04b >>108
最適化の話だから言語仕様では決められてないと思う
最適化の話だから言語仕様では決められてないと思う
112デフォルトの名無しさん
2018/03/08(木) 13:04:24.48ID:XQ95i3sC あのtanakhですら擁護できなくなってきたRustとかいう何か
やっぱクソ言語じゃん
やっぱクソ言語じゃん
113デフォルトの名無しさん
2018/03/08(木) 13:05:40.24ID:FYuhJ3+Z 逆にたなこふ氏が好きな言語って何だよ
Haskellくらいだろ
Haskellくらいだろ
114デフォルトの名無しさん
2018/03/08(木) 13:10:19.32ID:FYuhJ3+Z115デフォルトの名無しさん
2018/03/08(木) 13:42:39.37ID:XQ95i3sC いくつか言語……?ってなるのが混じってるな
116デフォルトの名無しさん
2018/03/08(木) 17:46:17.85ID:3H4xAb5h >>114
Rust評価高いくてGoは糞って評価だな。
Rust評価高いくてGoは糞って評価だな。
117デフォルトの名無しさん
2018/03/08(木) 20:48:12.88ID:Qr0iRnUQ 絶対一緒に仕事したくないようなコード書きそうな人柄なのがよくわかるのはいいことだね。
118デフォルトの名無しさん
2018/03/09(金) 02:34:49.09ID:C5IjE5Kn スタック使うかヒープ使うか考えなきゃいけないしマジで低級言語だなRust
119デフォルトの名無しさん
2018/03/09(金) 09:09:56.97ID:MtNghMxY 低級プログラミング言語というときの低級は必ずしも蔑む意味とはならない
120デフォルトの名無しさん
2018/03/09(金) 12:35:50.11ID:Awo4Q9T/ >>118は別に蔑んでないと思うが…
121デフォルトの名無しさん
2018/03/09(金) 12:41:07.31ID:X+hGjMr5 118が低級
122デフォルトの名無しさん
2018/03/09(金) 13:10:31.19ID:Awo4Q9T/ どう読んでも>>118は事実を言っただけでrustを誉めても貶してもいないと思うが…
「CはPythonよりも低級言語」これC言語を蔑んでる意味で取るアホなんているの?
「CはPythonよりも低級言語」これC言語を蔑んでる意味で取るアホなんているの?
123デフォルトの名無しさん
2018/03/09(金) 17:25:20.32ID:4MawrcZA 初心者は大体そのように取るよ
124デフォルトの名無しさん
2018/03/09(金) 17:29:38.88ID:Oir5mzi3 はいはいわかったわかった
125デフォルトの名無しさん
2018/03/09(金) 18:10:23.86ID:TjQY2cN8 枯れてる言われて古いんだなと思ってそう
126デフォルトの名無しさん
2018/03/10(土) 02:47:36.63ID:RGnl5SiL 高級言語のcobol最強ですかね
127デフォルトの名無しさん
2018/03/10(土) 04:12:59.75ID:YINDWKAW 蔑んでいるように見えるのはあなた自身が心の奥底でRustを蔑んでいるのです
128デフォルトの名無しさん
2018/03/10(土) 07:06:56.73ID:PbOmOUXH はいはいわかったわかった
129デフォルトの名無しさん
2018/03/11(日) 03:31:49.17ID:UKNdLJMW 1つのstructにいっぱい詰め込むと初期化が面倒なんですが
130デフォルトの名無しさん
2018/03/11(日) 04:15:48.10ID:4b/1QsDB new()用意しとけ
131デフォルトの名無しさん
2018/03/11(日) 13:22:28.79ID:vP34sga0 derive(Default)使えば
132デフォルトの名無しさん
2018/03/11(日) 13:57:51.99ID:91F3yKR+ よくインターネット上の広告で半年でエンジニアに!みたいなのあるけど、インターネット不得手、プログラム未経験者が真剣に半年頑張れば本当にそんなこと可能なんですか?
可能ならその理由はなんでしょう?人材が足りていないというのは存じ上げていますが
可能ならその理由はなんでしょう?人材が足りていないというのは存じ上げていますが
133デフォルトの名無しさん
2018/03/11(日) 13:58:22.81ID:91F3yKR+ ごめんなさい誤爆しました
134デフォルトの名無しさん
2018/03/11(日) 14:13:04.94ID:zWe+i43K >>132
言われたことやるだけなら可能じゃね?
言われたことやるだけなら可能じゃね?
135デフォルトの名無しさん
2018/03/18(日) 21:30:14.47ID:jQGugCpv >>8
今更だけどこれ書いた奴もブコメした奴も誰一人rustまともに使ったこと無さそうで草
今更だけどこれ書いた奴もブコメした奴も誰一人rustまともに使ったこと無さそうで草
136デフォルトの名無しさん
2018/03/19(月) 15:39:12.03ID:dH7nnHk9137デフォルトの名無しさん
2018/03/19(月) 19:45:41.61ID:ahbMAcYG 俺の技量不足なんだろうけどmutmut地獄は確かにわかる
138デフォルトの名無しさん
2018/03/19(月) 20:01:00.05ID:dH7nnHk9139デフォルトの名無しさん
2018/03/19(月) 20:11:12.51ID:bbBltail C++erだったのでconst地獄はむしろ慣れてるので歓迎
140デフォルトの名無しさん
2018/03/19(月) 20:37:55.38ID:+FMR/dfx 一方、記述の美しさを重視する Nim では let と var に分けた
141デフォルトの名無しさん
2018/03/19(月) 21:23:39.57ID:dH7nnHk9 Nimは引数を可変にしようとすると下記のようになる。
proc test(x: var string): string =
x = x & " world"
return x
var x = "hello"
let y = test(x)
echo y
関数宣言で引数にvarと書かなきゃ可変にできないんじゃRustとそれほど手間は変わらない
それに、宣言はvarと書かせるクセに呼び出し側がtest(var x)じゃなくてtest(x)となるのが解せない
これじゃ呼び出し側を見ただけじゃxが不変か可変か判断できない
C++と同じ類の過ちを犯してる
簡潔ではあるかもしれないが全然美しくない(美しいの定義によるが…)
https://play.nim-lang.org/?gist=9e8b6b6059cf8640f6c71fd2075b07c8
proc test(x: var string): string =
x = x & " world"
return x
var x = "hello"
let y = test(x)
echo y
関数宣言で引数にvarと書かなきゃ可変にできないんじゃRustとそれほど手間は変わらない
それに、宣言はvarと書かせるクセに呼び出し側がtest(var x)じゃなくてtest(x)となるのが解せない
これじゃ呼び出し側を見ただけじゃxが不変か可変か判断できない
C++と同じ類の過ちを犯してる
簡潔ではあるかもしれないが全然美しくない(美しいの定義によるが…)
https://play.nim-lang.org/?gist=9e8b6b6059cf8640f6c71fd2075b07c8
142デフォルトの名無しさん
2018/03/19(月) 21:32:11.25ID:dH7nnHk9 あとRustの場合はそもそもmutは出来るだけ使うなという方針だから
mutの記述が面倒なのはワザとやってるという点もあるし…
mutの記述が面倒なのはワザとやってるという点もあるし…
143デフォルトの名無しさん
2018/03/20(火) 08:39:12.91ID:iuzVSye9 なるほど
144デフォルトの名無しさん
2018/03/20(火) 14:11:19.46ID:J0Id73NT > これじゃ呼び出し側を見ただけじゃxが不変か可変か判断できない
珍しいご意見ですよね。
珍しいご意見ですよね。
145デフォルトの名無しさん
2018/03/20(火) 16:01:11.80ID:/+MVnq9/ >>144
よくよく考えるとRustも呼び出し側にmut付けること自体は必須ではないんだよな
所有権を借用するために大抵は&mutを書かされるってだけで…
渡す変数の型がもともと&mut Tだった場合は書かなくてもいい…
Rustの場合は呼び出し側で&mut書く羽目になる経験が多かったので
俺が勝手に「可変にしたければmutを絶対に書かないといけない」という勘違いをしていただけか…
でも、書かされた方が読むときには分かりやすいので個人的にはこっちの方が好き
俺自身がNimはどうしても好きになれなくて不満点を挙げたつもりが自ら墓穴を掘ってしまった感じだな
一般的にはNimの方がよっぽど簡潔で美しいのかもしれない…
ただ単に俺の感性の方が狂ってるだけっぽいな…
よくよく考えるとRustも呼び出し側にmut付けること自体は必須ではないんだよな
所有権を借用するために大抵は&mutを書かされるってだけで…
渡す変数の型がもともと&mut Tだった場合は書かなくてもいい…
Rustの場合は呼び出し側で&mut書く羽目になる経験が多かったので
俺が勝手に「可変にしたければmutを絶対に書かないといけない」という勘違いをしていただけか…
でも、書かされた方が読むときには分かりやすいので個人的にはこっちの方が好き
俺自身がNimはどうしても好きになれなくて不満点を挙げたつもりが自ら墓穴を掘ってしまった感じだな
一般的にはNimの方がよっぽど簡潔で美しいのかもしれない…
ただ単に俺の感性の方が狂ってるだけっぽいな…
146デフォルトの名無しさん
2018/03/20(火) 16:05:30.99ID:ck80uwiX そんな珍しくもない気もするが
147デフォルトの名無しさん
2018/03/20(火) 21:24:24.10ID:kx/m1AUo 俺もそんな珍しくもないと思う
148デフォルトの名無しさん
2018/03/20(火) 23:15:30.72ID:RYTCq15b 「変数」が値に名前を付けたイメージに人とメモリ領域に名前を付けたイメージの人と
149デフォルトの名無しさん
2018/03/21(水) 00:20:42.31ID:mtmyqFMA データがメモリのスタック領域ヒープ領域あるいは別の領域などどこに記憶されるのかという低レベルなことを考慮しながらプログラミングしなきゃならない
変数とは何かと言えば
スタック領域の特定のメモリ番地に名前をつける行為でしかなく
所有権の委譲って何かと思えばそのメモリ番地の名前を変える行為でしかない
クソ
変数とは何かと言えば
スタック領域の特定のメモリ番地に名前をつける行為でしかなく
所有権の委譲って何かと思えばそのメモリ番地の名前を変える行為でしかない
クソ
150デフォルトの名無しさん
2018/03/21(水) 21:34:47.63ID:JvyRf7uK 分かりやすい説明だね
151デフォルトの名無しさん
2018/03/23(金) 00:30:01.20ID:DIa3/8ef GBAのプログラムを書いてみたいな。どうせならRustでやってみるか
ARMポートあったよね。Thumbコードも吐けるのかな
とか思ってググっていたら先人がいた。考えることはみんな一緒かw
ARMポートあったよね。Thumbコードも吐けるのかな
とか思ってググっていたら先人がいた。考えることはみんな一緒かw
152デフォルトの名無しさん
2018/03/23(金) 08:40:36.80ID:yG5SnYrv Unityが北欧のニートから生まれたって話を聞いて
Rustでゲームエンジン作ればワンチャンあるんじゃないかと思い始めてきた。
Rustでゲームエンジン作ればワンチャンあるんじゃないかと思い始めてきた。
153デフォルトの名無しさん
2018/03/23(金) 08:44:26.71ID:0DDzAR5J 気のせい。
154デフォルトの名無しさん
2018/03/23(金) 10:01:19.78ID:+d3L/XtB あるかもね
155デフォルトの名無しさん
2018/03/24(土) 02:46:18.89ID:Q4O/QWqD unsafe使い始めたらCのがやっぱ楽じゃね?ってことにすぐなる。
156デフォルトの名無しさん
2018/03/24(土) 07:57:37.67ID:AYaIp/Or そしてメモリ周りのバグで悩まされた時にやっぱRustで書いときゃ良かったってなる
157デフォルトの名無しさん
2018/03/24(土) 11:41:10.67ID:lA18Hk/y バグなんてメモリに限ったことじゃないのにね
158デフォルトの名無しさん
2018/03/24(土) 12:51:11.00ID:6E9wdkyi 要因の種類が減るのは良いことだ
159デフォルトの名無しさん
2018/03/24(土) 19:57:38.34ID:Hl/X5tEX rust未経験者なんだけど、この言語ってweb開発には向いてないの?
goより高度なこと出来るならweb開発も全然苦じゃないように思うんだけど
何かしらweb開発に向いてない要素あんるんかな?
goより高度なこと出来るならweb開発も全然苦じゃないように思うんだけど
何かしらweb開発に向いてない要素あんるんかな?
160デフォルトの名無しさん
2018/03/24(土) 20:11:16.11ID:lcHhOSrB DOMいじれんの?
161デフォルトの名無しさん
2018/03/24(土) 20:22:46.33ID:Hl/X5tEX ごめん。聞き方がふんわりしてた。
webのバックグラウンドで動いてるrestAPIサーバに向いてない要因は何かあるのかな?
SPAとかマイクロサービスとかの構成でjavaとかgoとかの代わりに成り得るのかなって。
webのバックグラウンドで動いてるrestAPIサーバに向いてない要因は何かあるのかな?
SPAとかマイクロサービスとかの構成でjavaとかgoとかの代わりに成り得るのかなって。
162デフォルトの名無しさん
2018/03/24(土) 20:22:52.79ID:6E9wdkyi 一応WebAssemblyで吐けばRustのコードとJavaScriptのコードを混在出来るけど
軽く触っただけなんでデバッグなどの開発環境の事は未知数
軽く触っただけなんでデバッグなどの開発環境の事は未知数
163デフォルトの名無しさん
2018/03/24(土) 20:22:54.62ID:eKuOy/a9 >>160
無理
無理
164デフォルトの名無しさん
2018/03/24(土) 20:25:44.26ID:bGodUaM+ サーバ側でしょ?言語としては代わりになるだろうけどwebに向いてる部分てのが何を指してるかによるんじゃない
165デフォルトの名無しさん
2018/03/24(土) 20:33:09.05ID:Hl/X5tEX hello world出たからもう初心者と言っても過言ではない。。
>>164
個人的には静的言語ならどれも大差ないと思ってるんだけど、
その方面では全然注目されてないように見えたから何か原因があるのかなって。
>>164
個人的には静的言語ならどれも大差ないと思ってるんだけど、
その方面では全然注目されてないように見えたから何か原因があるのかなって。
166デフォルトの名無しさん
2018/03/24(土) 20:36:37.33ID:6E9wdkyi >>161
以前Goでサーバーサイド書いたことあって、バイナリ一つデプロイするお手軽さがとにかく良かった
といってもほんとに小機能で、WAFにEcho使って静的ファイル(CSS・画像)とか
レスポンスにDBから引っ張ったJSON返すRESTfulの出来損ないみたいのだけど
開発はWindows、デプロイ先がCentOSだったんだけど、
WindowsでCentOS用のバイナリ吐けるし、プロセスの再起動監視も今はDocker-composeがやってくれてるし(restart: always オプション)
Windowsで開発してPUSH、CIツールがCentOS用にバイナリ吐いて、CentOSではバイナリ受け取ったら
$ docker-compose down && docker-compose up -d --build
叩くだけでデプロイ完了っていう超絶お手軽、もちろんデプロイはAnsibleやItamaeで自動化しても良い
以前Goでサーバーサイド書いたことあって、バイナリ一つデプロイするお手軽さがとにかく良かった
といってもほんとに小機能で、WAFにEcho使って静的ファイル(CSS・画像)とか
レスポンスにDBから引っ張ったJSON返すRESTfulの出来損ないみたいのだけど
開発はWindows、デプロイ先がCentOSだったんだけど、
WindowsでCentOS用のバイナリ吐けるし、プロセスの再起動監視も今はDocker-composeがやってくれてるし(restart: always オプション)
Windowsで開発してPUSH、CIツールがCentOS用にバイナリ吐いて、CentOSではバイナリ受け取ったら
$ docker-compose down && docker-compose up -d --build
叩くだけでデプロイ完了っていう超絶お手軽、もちろんデプロイはAnsibleやItamaeで自動化しても良い
167デフォルトの名無しさん
2018/03/24(土) 20:51:06.97ID:Hl/X5tEX hello worldが10個出た。
>>166
goのシングルバイナリ良さそうだよね。
全然分かってないんだけど、rustでもちょびっと頑張れば
クロスコンパイルできるって認識なんだけど間違ってるのかな?
>>166
goのシングルバイナリ良さそうだよね。
全然分かってないんだけど、rustでもちょびっと頑張れば
クロスコンパイルできるって認識なんだけど間違ってるのかな?
168デフォルトの名無しさん
2018/03/24(土) 21:09:10.81ID:6E9wdkyi Rust経験浅いんで良く分かってない、一応nickelってWAFあるしrustupでコンパイル出来るから土台はあるけど
RustってわりとカジュアルにC製のライブラリをdllとして利用してるからそこが未知数
まあそれらのライブラリを使わなきゃいいんだろうけど
RustってわりとカジュアルにC製のライブラリをdllとして利用してるからそこが未知数
まあそれらのライブラリを使わなきゃいいんだろうけど
169デフォルトの名無しさん
2018/03/24(土) 21:09:38.20ID:6E9wdkyi rustupでクロスコンパイル
170デフォルトの名無しさん
2018/03/24(土) 21:17:38.55ID:Hl/X5tEX171デフォルトの名無しさん
2018/03/24(土) 21:29:23.70ID:LUxFSHaJ >>165
そういう観点なら学習コストが高いのがじゃくてんだと思う
そういう観点なら学習コストが高いのがじゃくてんだと思う
172デフォルトの名無しさん
2018/03/24(土) 21:45:47.85ID:glWbEBFl >>165
個人的にはGCありなしの差が大きい気はする。
特にweb系はGCがあって当たり前だから
急にlifetimeとか言われても…ってなりそうな。
C/C++だと結局脳内でlifetime管理してるから
そこの学習コストは相対的には低い。
個人的にはGCありなしの差が大きい気はする。
特にweb系はGCがあって当たり前だから
急にlifetimeとか言われても…ってなりそうな。
C/C++だと結局脳内でlifetime管理してるから
そこの学習コストは相対的には低い。
173デフォルトの名無しさん
2018/03/24(土) 22:12:42.54ID:AYaIp/Or174165
2018/03/24(土) 23:05:16.49ID:YaLUXLZ4 >>171
>>172
なるほど。確かにWEB系だと短い納期+人海戦術で乗り切ることも多いから
そういうのには辛そうだね。でも言語仕様的にWEB(の裏のサービス)が不得意という
訳では無さそうだから、細く長くやるようなサービスなら導入もアリっちゃアリという認識でいいのかな。
>>173
そだね。なんにもわからんわw っていうかWEBやっててGCであんまり困ったことないかも知れん。
困ったことがないことに起因して難易度が上がった言語を「使いたいです」って提案するにはちょっと強引さが必要そうやね。
今、初心者用の練習問題やってるんだけどメモリの管理なんて全然出てこない。
みんなどうやってRUSTの勉強してるの?やっぱり何か動くもの作ってみるのが早いかな?
>>172
なるほど。確かにWEB系だと短い納期+人海戦術で乗り切ることも多いから
そういうのには辛そうだね。でも言語仕様的にWEB(の裏のサービス)が不得意という
訳では無さそうだから、細く長くやるようなサービスなら導入もアリっちゃアリという認識でいいのかな。
>>173
そだね。なんにもわからんわw っていうかWEBやっててGCであんまり困ったことないかも知れん。
困ったことがないことに起因して難易度が上がった言語を「使いたいです」って提案するにはちょっと強引さが必要そうやね。
今、初心者用の練習問題やってるんだけどメモリの管理なんて全然出てこない。
みんなどうやってRUSTの勉強してるの?やっぱり何か動くもの作ってみるのが早いかな?
175デフォルトの名無しさん
2018/03/24(土) 23:11:45.93ID:gYQh0+lt 簡単なApp serverならrocketが楽だった
早くstableで動くようになってほしい
早くstableで動くようになってほしい
176デフォルトの名無しさん
2018/03/24(土) 23:49:05.34ID:AYaIp/Or177デフォルトの名無しさん
2018/03/24(土) 23:59:12.17ID:Z79Bg+7E GCは甘え。
プロなら自分で管理するべき。
プロなら自分で管理するべき。
178デフォルトの名無しさん
2018/03/25(日) 01:19:49.91ID:8WSI8ZZL GC無い言語でもファイルディスクリプタの解放は自前でする必要あるしリークの根幹はどっちも変わらんと思うけどな
むしろGC無い言語の方が循環参照の時の解放が面倒、C++でもweak_ptr使う必要出てきたり
むしろGC無い言語の方が循環参照の時の解放が面倒、C++でもweak_ptr使う必要出てきたり
179デフォルトの名無しさん
2018/03/25(日) 01:28:22.61ID:4Rittzre c++はやっぱraiiが便利。
gcあったって結局outofmemoryerrorになるなからなぁ。
だったらrustのようにコンパイラが所有権やライフタイムをチェックしてくれるのはいいと思う。
けど学習障壁高過ぎとも思う。
gcあったって結局outofmemoryerrorになるなからなぁ。
だったらrustのようにコンパイラが所有権やライフタイムをチェックしてくれるのはいいと思う。
けど学習障壁高過ぎとも思う。
180デフォルトの名無しさん
2018/03/25(日) 01:43:12.83ID:U5SlEUJl Nodeのメモリーリークはみんな苦戦してるみたいだけど。
181デフォルトの名無しさん
2018/03/25(日) 01:51:32.26ID:8WSI8ZZL Nodeは全部グローバル変数にするのが悪いんや
182デフォルトの名無しさん
2018/03/25(日) 02:05:56.01ID:BP/bYIjb183デフォルトの名無しさん
2018/03/25(日) 02:09:49.87ID:U5SlEUJl エラーにならないことが多すぎる。
忖度しすぎ言語の称号を与えたい。
忖度しすぎ言語の称号を与えたい。
184デフォルトの名無しさん
2018/03/25(日) 02:10:42.60ID:U5SlEUJl Nodeの問題点を一言でいえば、Javascript。
185デフォルトの名無しさん
2018/03/25(日) 03:01:01.34ID:wEE2niQx >>174
コストかけられるなら規模の大小関わらず大アリだよ
コストかけられるなら規模の大小関わらず大アリだよ
186174
2018/03/25(日) 08:53:35.72ID:tMB2K7Zl187デフォルトの名無しさん
2018/03/25(日) 09:17:52.51ID:2sZ1RJA+ >>182
イベントハンドラ解除は他言語でも明示的に書く必要ある
だけどクラスのデストラクタ・ファイナライザに書いといて各スコープで変数の寿命をちゃんと管理するコーディングの基本を守ってるだけで問題ないと言える
ここはRAII使えるC++やRustが最強、なんせ何も書かなくてもスコープから外れたらそれぞれデストラクタ・Dropを呼んでくれるんだし
次点でC#のDisposeとusingなどの専用構文、Javaはtry..finallyあるから及第点
でもグローバル変数だとそんなの働かない、プログラマが仕様とにらめっこしながらリークに気を使わないといけない、めんどい
イベントハンドラ解除は他言語でも明示的に書く必要ある
だけどクラスのデストラクタ・ファイナライザに書いといて各スコープで変数の寿命をちゃんと管理するコーディングの基本を守ってるだけで問題ないと言える
ここはRAII使えるC++やRustが最強、なんせ何も書かなくてもスコープから外れたらそれぞれデストラクタ・Dropを呼んでくれるんだし
次点でC#のDisposeとusingなどの専用構文、Javaはtry..finallyあるから及第点
でもグローバル変数だとそんなの働かない、プログラマが仕様とにらめっこしながらリークに気を使わないといけない、めんどい
188デフォルトの名無しさん
2018/03/25(日) 10:33:04.02ID:BP/bYIjb >>186
Cさえやったことないんじゃメモリ管理について説明するのは難しいな
ざっくり説明すると
C言語ではmalloc, freeを使ってプログラマが自力でメモリ管理を行う
よって、きちんとメモリ管理ができていない場合は実行時にバグになる。
対して、GCありの言語は実行時にGCがバックグラウンドで動いて自動でメモリ管理を行ってくれる
メモリ管理は実行時に自動で行われるのでプログラマは基本的にメモリ管理を行う必要はない
ただし、GCの挙動をしっかり理解していないとメモリリークのバグになることもある
そして、Rustはメモリ管理をコンパイラがコンパイル時に行う
つまり、メモリ管理ができていない場合はコンパイルエラーになる
コンパイラが正しくメモリ管理を行うためにRustには
所有権・借用・ライフタイムというルールが存在する
このルールを守らないとコンパイルが通らないため絶対に理解する必要があるが
このルールをきちんと理解してコードを書くのがなかなかに難しい
それと、このルールを完璧に遵守しようとすると循環参照さえ出来なくなる
なので循環参照等の少し複雑なことをやろうとした場合は
標準ライブラリとして用意されているRc, Weak, RefCell等の使い方も知る必要がある
因みにRc, Weak, RefCellの中身ではunsafeコードが多用されていている
unsafeコードの中ではルールを無視できる代わりにコンパイラがチェックを行わない
つまり、unsafeの中だけはCと同じように自力でメモリ管理する必要がある
だからこの言語は他言語と比べて学習コストが圧倒的に高い
Cさえやったことないんじゃメモリ管理について説明するのは難しいな
ざっくり説明すると
C言語ではmalloc, freeを使ってプログラマが自力でメモリ管理を行う
よって、きちんとメモリ管理ができていない場合は実行時にバグになる。
対して、GCありの言語は実行時にGCがバックグラウンドで動いて自動でメモリ管理を行ってくれる
メモリ管理は実行時に自動で行われるのでプログラマは基本的にメモリ管理を行う必要はない
ただし、GCの挙動をしっかり理解していないとメモリリークのバグになることもある
そして、Rustはメモリ管理をコンパイラがコンパイル時に行う
つまり、メモリ管理ができていない場合はコンパイルエラーになる
コンパイラが正しくメモリ管理を行うためにRustには
所有権・借用・ライフタイムというルールが存在する
このルールを守らないとコンパイルが通らないため絶対に理解する必要があるが
このルールをきちんと理解してコードを書くのがなかなかに難しい
それと、このルールを完璧に遵守しようとすると循環参照さえ出来なくなる
なので循環参照等の少し複雑なことをやろうとした場合は
標準ライブラリとして用意されているRc, Weak, RefCell等の使い方も知る必要がある
因みにRc, Weak, RefCellの中身ではunsafeコードが多用されていている
unsafeコードの中ではルールを無視できる代わりにコンパイラがチェックを行わない
つまり、unsafeの中だけはCと同じように自力でメモリ管理する必要がある
だからこの言語は他言語と比べて学習コストが圧倒的に高い
189デフォルトの名無しさん
2018/03/25(日) 10:35:30.44ID:BP/bYIjb 「ざっくり」と言っておきながら気付けばそれなりの長文になってるな…
190デフォルトの名無しさん
2018/03/25(日) 10:49:11.63ID:130KAu9X なんで聞かれてもいないことを長文で答えるのか
プログラマにはありがちだけど
プログラマにはありがちだけど
191デフォルトの名無しさん
2018/03/25(日) 10:51:36.32ID:GhdgZmXr >なので循環参照等の少し複雑なことをやろうとした場合は
>標準ライブラリとして用意されているRc, Weak, RefCell等の使い方も知る必要がある
>因みにRc, Weak, RefCellの中身ではunsafeコードが多用されていている
>unsafeコードの中ではルールを無視できる代わりにコンパイラがチェックを行わない
>つまり、unsafeの中だけはCと同じように自力でメモリ管理する必要がある
>だからこの言語は他言語と比べて学習コストが圧倒的に高い
この辺考えたら結局C++で、できる限りスマートポインタ使うってのと大して変わらなくね?
て話になりそう。
>標準ライブラリとして用意されているRc, Weak, RefCell等の使い方も知る必要がある
>因みにRc, Weak, RefCellの中身ではunsafeコードが多用されていている
>unsafeコードの中ではルールを無視できる代わりにコンパイラがチェックを行わない
>つまり、unsafeの中だけはCと同じように自力でメモリ管理する必要がある
>だからこの言語は他言語と比べて学習コストが圧倒的に高い
この辺考えたら結局C++で、できる限りスマートポインタ使うってのと大して変わらなくね?
て話になりそう。
192デフォルトの名無しさん
2018/03/25(日) 11:32:48.19ID:MQLp3NAe ライブラリの中でunsafe使ってたからといって、そのライブラリ使用したコード全てがunsafeになる訳でなし
気にし過ぎじゃないか
気にし過ぎじゃないか
193デフォルトの名無しさん
2018/03/25(日) 12:12:47.18ID:2sZ1RJA+ いやなるで
unsafe内Cのリソース確保を呼んだなら同じく解放処理も呼ばないとリークする
unsafe内Cのリソース確保を呼んだなら同じく解放処理も呼ばないとリークする
194デフォルトの名無しさん
2018/03/25(日) 12:21:31.84ID:5S2tvSOb195186
2018/03/25(日) 13:06:55.41ID:tMB2K7Zl196デフォルトの名無しさん
2018/03/25(日) 13:44:46.25ID:NiWlHtrf197デフォルトの名無しさん
2018/03/25(日) 14:35:43.51ID:wEE2niQx198デフォルトの名無しさん
2018/03/25(日) 14:38:16.26ID:ndR60cG+ java10出たってどうせ現場じゃ使わせてくれないんだろ?
んで未だにstrutsとかオレオレフレームワーク強要するんだろ?
んで未だにstrutsとかオレオレフレームワーク強要するんだろ?
199デフォルトの名無しさん
2018/03/25(日) 16:39:02.18ID:I+zotbSu WindowsでRust使っている人ってほとんどいないんだろうな
rustupを実行する前にVC++をインスコしろとか書いてあるし
rustupを実行する前にVC++をインスコしろとか書いてあるし
200デフォルトの名無しさん
2018/03/26(月) 00:20:12.61ID:D5Wnx0sa 生で動かす組み込み系の情報収集をしているんだけど半年前よりはだいぶ増えた感があるけどまだまだ少ないなぁ
特にRust以外のツールとCargoの連携について説明されている記事はほとんど見あたらない
ローレベルではユーザーツールやアセンブラ、リンカとビルドシステムの連携は必須だからな
Cargo前提のRustだとシェルスクリプトやバッチファイルでビルドというわけにも行かないし(それらに必要な情報も同じく少ない)
既成のCライブラリやクレートを使う記事はちらほらあるけどそれらが使えないケースだと参考にならない
このへんで役立ちそうな記事って今のところこれくらいしか見つけられていない
ttps://nkon.github.io/Rust-embedded/
もっともRust抜きでも最近は高レベルのフレームワークを使っていたりOS上での動作だったりするからローレベルの情報は減少傾向だけど
特にRust以外のツールとCargoの連携について説明されている記事はほとんど見あたらない
ローレベルではユーザーツールやアセンブラ、リンカとビルドシステムの連携は必須だからな
Cargo前提のRustだとシェルスクリプトやバッチファイルでビルドというわけにも行かないし(それらに必要な情報も同じく少ない)
既成のCライブラリやクレートを使う記事はちらほらあるけどそれらが使えないケースだと参考にならない
このへんで役立ちそうな記事って今のところこれくらいしか見つけられていない
ttps://nkon.github.io/Rust-embedded/
もっともRust抜きでも最近は高レベルのフレームワークを使っていたりOS上での動作だったりするからローレベルの情報は減少傾向だけど
201デフォルトの名無しさん
2018/03/26(月) 01:29:55.31ID:TdhbSc50202デフォルトの名無しさん
2018/03/26(月) 01:31:01.61ID:TdhbSc50 >>201
ごめん、募集終了してたわw
ごめん、募集終了してたわw
203デフォルトの名無しさん
2018/03/27(火) 09:28:53.61ID:OlyQwcXt 集まったのかな?それとも応募が無かったか。
どちらにせよ気概は応援する
どちらにせよ気概は応援する
204デフォルトの名無しさん
2018/03/27(火) 09:38:34.01ID:e5+YaH9t 会社的にゲームのサーバーサイドかな
C++からの乗り換えならビルド時間の削減が一番効果あるかもね
C++からの乗り換えならビルド時間の削減が一番効果あるかもね
205デフォルトの名無しさん
2018/03/27(火) 13:51:08.35ID:7OwU1Hvz ニコ生は、Rust で、各サーバーに分かれているシステムを、
統合しようとしているらしい
Rust, Elixir は注目されてる
統合しようとしているらしい
Rust, Elixir は注目されてる
206デフォルトの名無しさん
2018/03/27(火) 14:06:18.97ID:k3vzHZG7 >>200
rustでおもちゃのOS書いてる(た)んだけどローレベルな部分にも適してるみたいなことを謳ってる割にcargoがほんとクソなんだよなぁ
rustでおもちゃのOS書いてる(た)んだけどローレベルな部分にも適してるみたいなことを謳ってる割にcargoがほんとクソなんだよなぁ
207デフォルトの名無しさん
2018/03/27(火) 21:01:56.04ID:14Lqu+tl >>206
またcargoがクソって話か…別にそれほど使いづらいとは思わないんだけど…
(使い方に関する情報が少ないという意味で使いづらいという意見なら分かるんだけど…)
どこら辺がクソと思ってて、どうなってれば満足なわけ?
なんだか実現不可能なくらい賢いツールを「ないものねだり」してるように聞こえるんだよね…
というわけで、実在するツールで最も理想に近いツール(もちろん他言語のパッケージ管理ツール)の例を挙げてくれる?
またcargoがクソって話か…別にそれほど使いづらいとは思わないんだけど…
(使い方に関する情報が少ないという意味で使いづらいという意見なら分かるんだけど…)
どこら辺がクソと思ってて、どうなってれば満足なわけ?
なんだか実現不可能なくらい賢いツールを「ないものねだり」してるように聞こえるんだよね…
というわけで、実在するツールで最も理想に近いツール(もちろん他言語のパッケージ管理ツール)の例を挙げてくれる?
208デフォルトの名無しさん
2018/03/27(火) 21:18:04.54ID:IpDwkilL Rustのwebフレームワークでなんとなく一番使えそうなRocketとかいうのがnightlyでしか動かない
209デフォルトの名無しさん
2018/03/27(火) 21:25:14.30ID:OIszsbzb 組み込みでパッケージ管理ツールの需要はあまり無いはず。ビルド管理ツールの方が重要
しかも言語の垣根を越えて使いやすい奴
システムプログラミング用を謳っているんだから
「Cやアセンブラで生で動くプログラムを書いたことがあるんだけどRustに興味がある」
位の人を対象にしたチュートリアル的な物が欲しいな。もちろんある程度実践的な内容で
そういえば調べている中でLチカのウェイトにビジーループを使っているコーディング例がいくつも出てきた
自分はタイマと割り込みを使うのが普通だと思っていたんだけど(勉強するという意味でも)最近は違うのかな?
しかも言語の垣根を越えて使いやすい奴
システムプログラミング用を謳っているんだから
「Cやアセンブラで生で動くプログラムを書いたことがあるんだけどRustに興味がある」
位の人を対象にしたチュートリアル的な物が欲しいな。もちろんある程度実践的な内容で
そういえば調べている中でLチカのウェイトにビジーループを使っているコーディング例がいくつも出てきた
自分はタイマと割り込みを使うのが普通だと思っていたんだけど(勉強するという意味でも)最近は違うのかな?
210デフォルトの名無しさん
2018/03/27(火) 21:43:56.53ID:14Lqu+tl ビルド管理ツールでも良いから、とりあえず、使いやすいツールの例を挙げて欲しんだけど…
「〇〇というツールがあって、××が出来て便利。それに比べてcargoは…」みたいなさぁ…
「使いやすい奴」とだけ書かれても「使いやすい」の基準がさっぱり分からん
「〇〇というツールがあって、××が出来て便利。それに比べてcargoは…」みたいなさぁ…
「使いやすい奴」とだけ書かれても「使いやすい」の基準がさっぱり分からん
211デフォルトの名無しさん
2018/03/27(火) 22:08:40.15ID:H//ajCL2 >>207
ごく普通に使うぶんには俺もディスるほどではないとは思うよ
ただOS書いたりみたいな部分では不満を感じることが多かった
例えばビルドスクリプトとしてのbuild.rsがビルド前のいわゆるpreしかなくてpost的な使い方が出来ないとか
カスタムターゲット書くにしてもlinker-flavorとかそれに対応するリンカに渡されるオプションの一部とかがコンパイラのソースにハードコーディングされてるんで制約ばっかで柔軟性が低いとか
ごく普通に使うぶんには俺もディスるほどではないとは思うよ
ただOS書いたりみたいな部分では不満を感じることが多かった
例えばビルドスクリプトとしてのbuild.rsがビルド前のいわゆるpreしかなくてpost的な使い方が出来ないとか
カスタムターゲット書くにしてもlinker-flavorとかそれに対応するリンカに渡されるオプションの一部とかがコンパイラのソースにハードコーディングされてるんで制約ばっかで柔軟性が低いとか
212デフォルトの名無しさん
2018/03/27(火) 22:34:11.89ID:Ua6DMzOD rustのwebフレームワークはもうひと世代先のが出るまで本命は決まらなそうだ
213デフォルトの名無しさん
2018/03/27(火) 22:46:58.51ID:OlyQwcXt214デフォルトの名無しさん
2018/03/27(火) 23:03:51.77ID:YR27q37n >>209
タイマ割り込みは環境依存度が高いから、サンプルとして適さないんじゃね?
タイマ割り込みは環境依存度が高いから、サンプルとして適さないんじゃね?
215デフォルトの名無しさん
2018/03/28(水) 00:25:40.40ID:3jPJHf2H216デフォルトの名無しさん
2018/03/28(水) 01:12:15.92ID:hFbEShK4 hyperは非同期シングルスレッド対応してるけど、他のFWはまだ未対応でマルチスレッドベースばかりだね
ironは今はメンテされてないし、とりあえず業務で簡単なAPIサーバー構築時にはrocket使ったわ
ironは今はメンテされてないし、とりあえず業務で簡単なAPIサーバー構築時にはrocket使ったわ
217デフォルトの名無しさん
2018/03/28(水) 03:08:49.62ID:qhZoJVUP >>205
ニコニコみたいな机の上でのお勉強しかできないバカばっか揃えた結果
クソみたいなサービスしか作れない技術力のない会社がRust使う選択したなら、
逆神でRustつかわないのが正しい選択って公になったようなもんだな
ニコニコみたいな机の上でのお勉強しかできないバカばっか揃えた結果
クソみたいなサービスしか作れない技術力のない会社がRust使う選択したなら、
逆神でRustつかわないのが正しい選択って公になったようなもんだな
218205
2018/03/28(水) 04:23:23.13ID:0was1dJs でも、ドワンゴ江添は「C++11/14 コア言語、江添 亮、2015」と言う、
神の書を書いてるから、一流の伝道師!
神の書を書いてるから、一流の伝道師!
219デフォルトの名無しさん
2018/03/28(水) 05:59:49.92ID:LrPDAu7h tokioがマルチスレッドを標準にしてくみたいだからhyperもマルチスレッドに寄ってくんじゃないかなあ
220デフォルトの名無しさん
2018/03/28(水) 10:37:01.81ID:22eQoYIf RustのORMのDieselってテストに対応してますか?
開発用DB使うタイプ、モック使うタイプどちらでもいいんですけど…
開発用DB使うタイプ、モック使うタイプどちらでもいいんですけど…
221デフォルトの名無しさん
2018/03/28(水) 15:21:56.48ID:nwQzoMBM >>218
典型的な机の上のお勉強だけ得意な人やん
典型的な机の上のお勉強だけ得意な人やん
222デフォルトの名無しさん
2018/03/28(水) 15:23:57.64ID:YfKkqZvW ほんそれ
223デフォルトの名無しさん
2018/03/28(水) 20:51:49.08ID:cpZrmao1 てか奴はコード書いてないこと宣言してるしな。
そゆとこは正直で良いと思うが、プログラマとしてはクソだな。
そゆとこは正直で良いと思うが、プログラマとしてはクソだな。
224デフォルトの名無しさん
2018/03/29(木) 02:06:06.79ID:0KWZ/AkQ 組込み開発者におくるMISRA‐C:2004―C言語利用の高信頼化ガイド、MISRA‐C研究会、2006
これは、日本の大企業から、猛者を数十人集めて、
欧州委員会に問い合わせながら作った本
C++11/14 コア言語、江添 亮、2015
それに比べて、江添はたった一人で作ったのじゃないか?
超人的すぎるやろw
これは、日本の大企業から、猛者を数十人集めて、
欧州委員会に問い合わせながら作った本
C++11/14 コア言語、江添 亮、2015
それに比べて、江添はたった一人で作ったのじゃないか?
超人的すぎるやろw
225デフォルトの名無しさん
2018/03/29(木) 14:52:09.30ID:x+HX/uzd 江添ってイケダハヤトみたいな胡散臭い人たちと同じカテゴリーなんでしょ
実力はないけど口が達者だから信者が多い
芸人向き
そのうち討論番組とかでテレビ出演とかしちゃいそう
実力はないけど口が達者だから信者が多い
芸人向き
そのうち討論番組とかでテレビ出演とかしちゃいそう
226デフォルトの名無しさん
2018/03/29(木) 18:00:19.09ID:Ys835l/3 江添は標準化委員会の一人だからな
一人で書けるのは確かに並大抵じゃないだろうが
一人で書けなきゃそれはそれでヤバイ
一人で書けるのは確かに並大抵じゃないだろうが
一人で書けなきゃそれはそれでヤバイ
227デフォルトの名無しさん
2018/03/29(木) 21:37:04.51ID:pNK8aPzF まあ次世代の池田信夫といっていいんじゃないかな。
228デフォルトの名無しさん
2018/03/30(金) 00:24:21.95ID:IN/IsR4/ やまもといちろう、清水亮、津田大介あたりだな
229デフォルトの名無しさん
2018/03/30(金) 00:59:44.92ID:YF4CHAi5 やまもといちろうのしったか芸は凄いw
230デフォルトの名無しさん
2018/03/30(金) 12:34:16.32ID:IN/IsR4/ ニコ生ってたしかRust使ってるんだっけ?
Rust江添の今後に期待
Rust江添の今後に期待
231デフォルトの名無しさん
2018/03/30(金) 14:08:12.82ID:82JQsmMo232デフォルトの名無しさん
2018/03/30(金) 14:10:51.95ID:82JQsmMo Rust採用事例
ニコニコ←負け組
火狐←負け組
Mercurial←負け組
泥箱←個人情報お漏らし
採用する気にもならん事例のオンパレード
ニコニコ←負け組
火狐←負け組
Mercurial←負け組
泥箱←個人情報お漏らし
採用する気にもならん事例のオンパレード
233デフォルトの名無しさん
2018/03/30(金) 14:13:18.93ID:82JQsmMo 顔本もテストプロジェクトかなんかで使ってた記憶があるが、
そういやここもお漏らししたっけな
そういやここもお漏らししたっけな
234デフォルトの名無しさん
2018/03/30(金) 14:14:12.95ID:XUq2/9hV 【悲報】Packt出版より出る予定だった Rust Blueprints が出版取消されました。
235デフォルトの名無しさん
2018/03/30(金) 14:16:08.36ID:82JQsmMo >>234
資源の無駄だからな。当然の結果
資源の無駄だからな。当然の結果
236デフォルトの名無しさん
2018/03/30(金) 18:11:51.70ID:2SqbRzP3 また来たのかよ
237デフォルトの名無しさん
2018/03/30(金) 18:23:23.77ID:IN/IsR4/ Rustってキラーアプリあんの?
238デフォルトの名無しさん
2018/03/30(金) 18:37:40.08ID:ksXSxVO9 ErlangとScalaもディスってるんだ
https://github.com/dwango
https://github.com/dwango
239デフォルトの名無しさん
2018/03/30(金) 21:33:06.96ID:35t2qqJ0 セキュアプログラミングとかいって締め付ければ締め付けるほど
インシデントが増えるw
本質はそういうところじゃないってことがよくわかる。
インシデントが増えるw
本質はそういうところじゃないってことがよくわかる。
240デフォルトの名無しさん
2018/03/30(金) 22:18:13.79ID:lc3QGxh+241デフォルトの名無しさん
2018/03/30(金) 22:28:24.32ID:35t2qqJ0 開発効率やランタイム速度を気にしなけりゃ既存の言語でも安全に作るなんてのは
簡単なんだよ。
そのトレードオフをどれだけ解決できるかが本質。
簡単なんだよ。
そのトレードオフをどれだけ解決できるかが本質。
242デフォルトの名無しさん
2018/03/30(金) 23:00:52.49ID:OoWw053g 開発効率やランタイム速度を気にしないことが本質?
243デフォルトの名無しさん
2018/03/30(金) 23:58:55.57ID:dpNxQVLw おぉっとここで日本語の分からないバカが登場〜
244デフォルトの名無しさん
2018/03/31(土) 00:49:07.16ID:q0ZQKkqb245デフォルトの名無しさん
2018/03/31(土) 07:55:27.02ID:9+5jHACw246デフォルトの名無しさん
2018/03/31(土) 09:33:15.73ID:q0ZQKkqb >>245
極論だな
開発効率を無視するなら安全に作ることは可能ってことだろ
開発効率を無視するってのはつまり開発期間が無限大と仮定するってことだぞ
開発期間が無限大でなければ安全に作ることが不可能なら
それは実質、安全に作ることは不可能って事と同義だからな
結局言いたいことは"開発効率・ランタイム速度"と"安全"がトレードオフの関係にあり、
それをいかにして解決するかが本質ってことだろ
で、その"解決"が何を指すのかっていう一番肝心な部分が抜け落ちてるぞ
"トレードオフの均衡点をどこに置くべきかを探る"のが解決なのか
それとも"トレードオフの関係自体を壊そうとする"ことが解決なのか
あるいはその両方か
あと、Googleは開発効率を優先して報奨金を出してるわけじゃないだろ
そもそもリリースした後のものは開発ではなく保守なんだから
あれは完璧に安全なものを作るのは不可能だから苦肉の策として行ってるだけ
てゆーか、ツッコミどころが多すぎるんですけど…
極論だな
開発効率を無視するなら安全に作ることは可能ってことだろ
開発効率を無視するってのはつまり開発期間が無限大と仮定するってことだぞ
開発期間が無限大でなければ安全に作ることが不可能なら
それは実質、安全に作ることは不可能って事と同義だからな
結局言いたいことは"開発効率・ランタイム速度"と"安全"がトレードオフの関係にあり、
それをいかにして解決するかが本質ってことだろ
で、その"解決"が何を指すのかっていう一番肝心な部分が抜け落ちてるぞ
"トレードオフの均衡点をどこに置くべきかを探る"のが解決なのか
それとも"トレードオフの関係自体を壊そうとする"ことが解決なのか
あるいはその両方か
あと、Googleは開発効率を優先して報奨金を出してるわけじゃないだろ
そもそもリリースした後のものは開発ではなく保守なんだから
あれは完璧に安全なものを作るのは不可能だから苦肉の策として行ってるだけ
てゆーか、ツッコミどころが多すぎるんですけど…
247デフォルトの名無しさん
2018/03/31(土) 10:29:59.95ID:E8qTp8R8248デフォルトの名無しさん
2018/03/31(土) 10:36:16.41ID:E8qTp8R8 >>246
バカじゃね?
Rustがその解決になってるかって観点がどこにもない
トレードオフの落としどころとしてRustにはなんの実績もないし、CやC++と周辺ツール合わせた環境に勝る性質もなにもないって言ってんの
ValgrindやCoverityみたいなツールに比べた優位性あるの?
ただ書きにくい言語がひとつ増えただけじゃん
バカじゃね?
Rustがその解決になってるかって観点がどこにもない
トレードオフの落としどころとしてRustにはなんの実績もないし、CやC++と周辺ツール合わせた環境に勝る性質もなにもないって言ってんの
ValgrindやCoverityみたいなツールに比べた優位性あるの?
ただ書きにくい言語がひとつ増えただけじゃん
249デフォルトの名無しさん
2018/03/31(土) 11:03:18.18ID:wLUR9MAo お前が元気で帰ってきてくれてよかったよ
職は見つからなかったんだね
職は見つからなかったんだね
250デフォルトの名無しさん
2018/03/31(土) 11:12:27.60ID:q0ZQKkqb251デフォルトの名無しさん
2018/03/31(土) 11:39:17.36ID:q0ZQKkqb 実績がないって言うのもFirefoxの一部は既にRustで置き換えられてるのに
君がそれを実績として認めないってだけだろ
ブラウザを一から実装しなおして、それが大きなバグを出すこともなく
Chromeと同レベルの実行速度を実現してるってだけでも充分に実績として認められると思うが。
Chromeに比べればシェアは少ないがそれでも世界中で数百万という人間がFirefoxを使ってるんだぞ
君がそれを実績として認めないってだけだろ
ブラウザを一から実装しなおして、それが大きなバグを出すこともなく
Chromeと同レベルの実行速度を実現してるってだけでも充分に実績として認められると思うが。
Chromeに比べればシェアは少ないがそれでも世界中で数百万という人間がFirefoxを使ってるんだぞ
252デフォルトの名無しさん
2018/03/31(土) 11:41:20.61ID:D1vbg0pQ そこは何億人ものって言わなきゃw
253デフォルトの名無しさん
2018/03/31(土) 11:43:55.45ID:q0ZQKkqb254デフォルトの名無しさん
2018/03/31(土) 11:46:03.70ID:0efq0OdT 3億人くらい?
255デフォルトの名無しさん
2018/03/31(土) 13:24:58.66ID:yT2VCMNA Javaなんて30億のデバイスで動いてんだぞ!
256デフォルトの名無しさん
2018/03/31(土) 14:14:44.03ID:ApL2p8x0 >>251
せめてchromeと同じシェア取ってから言って欲しいもんだ
せめてchromeと同じシェア取ってから言って欲しいもんだ
257デフォルトの名無しさん
2018/03/31(土) 14:32:47.34 Write once, run anywhere なんていう開発プラットフォームがあるらしい
Electronって言うんだって
Electronって言うんだって
258デフォルトの名無しさん
2018/03/31(土) 14:34:08.51ID:NaIZlBM+ native modules はい論破。
259デフォルトの名無しさん
2018/03/31(土) 15:26:33.15ID:tztr1ir/ chromeメモリ食いすぎなのでfirefox59に乗り換えたよ
260デフォルトの名無しさん
2018/03/31(土) 15:27:50.28ID:q0ZQKkqb >>256
"せめて"でChromeと同じシェアなのかよ。ハードル高すぎだろ
そんなのどんな言語使ったって数年じゃ無理だわ
もちろんChromeと同じC++を使って作り直しても無理だわ
どうやら君の御眼鏡にかなう言語はこの世のどこにも無さそうだな
"せめて"でChromeと同じシェアなのかよ。ハードル高すぎだろ
そんなのどんな言語使ったって数年じゃ無理だわ
もちろんChromeと同じC++を使って作り直しても無理だわ
どうやら君の御眼鏡にかなう言語はこの世のどこにも無さそうだな
261デフォルトの名無しさん
2018/03/31(土) 16:10:13.77ID:ApL2p8x0 Rustで書き直したら安全で高速なプログラムが簡単に書けるんだろう?
ならchromeのシェアを奪うのなんてすぐじゃないか
本当にRustにそれだけの性能があるなら
ならchromeのシェアを奪うのなんてすぐじゃないか
本当にRustにそれだけの性能があるなら
262デフォルトの名無しさん
2018/03/31(土) 16:22:16.04ID:D1vbg0pQ Chromeは昔のIEと同じくらい危険なブラウザになってきたよな。
やはり危険度はシェアで決まるんじゃないだろか。
そもそもあれだけ複雑で奇怪で大きなソフトウェアにバグが無いわけないし。
いやもちろん、HaskellやJavaやJavascriptのような安全な言語で書かれていれば一切のバグは無いんだろうけどさ。
やはり危険度はシェアで決まるんじゃないだろか。
そもそもあれだけ複雑で奇怪で大きなソフトウェアにバグが無いわけないし。
いやもちろん、HaskellやJavaやJavascriptのような安全な言語で書かれていれば一切のバグは無いんだろうけどさ。
263デフォルトの名無しさん
2018/03/31(土) 16:22:59.14ID:D1vbg0pQ ここRustスレだったかw
じゃあ、Rustのような安全な言語で書かれてればバグは無いんだろうけどさ。
じゃあ、Rustのような安全な言語で書かれてればバグは無いんだろうけどさ。
264デフォルトの名無しさん
2018/03/31(土) 16:25:50.13ID:D1vbg0pQ Chromeの開発者がRustで書き直したいと書き込んでるのは見たことあるけどな。
でも、書き直すったってそもそも発祥がKHTMLだしな。
Googleは出来損ないのブルドーザーみたいなもんだ。
でも、書き直すったってそもそも発祥がKHTMLだしな。
Googleは出来損ないのブルドーザーみたいなもんだ。
265デフォルトの名無しさん
2018/03/31(土) 16:37:28.69ID:ApL2p8x0 HaskellはともかくJSやJavaは安全なのかね?
まあスレチだが
まあスレチだが
266デフォルトの名無しさん
2018/03/31(土) 16:52:02.69ID:q0ZQKkqb >>261
>Rustで書き直したら安全で高速なプログラムが簡単に書けるんだろう?
誰もそんなこと一言も言ってないだろ。勝手に曲解しないでほしいな
C++よりはRustの方が設計が良いってだけ
そう言ったら次は"C++より良いって言うんならC++で書かれてるChromeより
Rustで書かれたFirefoxのシェアが少ないのはおかしい"って言い出すんだろ
既存資産はC++のほうが何十倍もある。資産が少ないってのはそれだけで不利だ
言語設計はダメだが資産の多いC++か、言語設計は良いが資産の少ないRustか、
どちらを選ぶかは人によって意見が変わるところだろう
資産の問題に関しては時間が解決してくれるかもしれない…希望的観測に過ぎないが…
>ならchromeのシェアを奪うのなんてすぐじゃないか
すぐなわけないだろ。
ブラウザを選ぶ基準なんて数え切れないほど色んな要素が絡み合ってるんだよ
その中には"なんとなく、みんなが使ってるから"なんてしょうもない理由も多く存在する
全ての人間が合理的な判断を下すわけじゃないんだ。そんな単純に事が運ぶわけがない
だから、ツッコミどころが多すぎるんだって…
>Rustで書き直したら安全で高速なプログラムが簡単に書けるんだろう?
誰もそんなこと一言も言ってないだろ。勝手に曲解しないでほしいな
C++よりはRustの方が設計が良いってだけ
そう言ったら次は"C++より良いって言うんならC++で書かれてるChromeより
Rustで書かれたFirefoxのシェアが少ないのはおかしい"って言い出すんだろ
既存資産はC++のほうが何十倍もある。資産が少ないってのはそれだけで不利だ
言語設計はダメだが資産の多いC++か、言語設計は良いが資産の少ないRustか、
どちらを選ぶかは人によって意見が変わるところだろう
資産の問題に関しては時間が解決してくれるかもしれない…希望的観測に過ぎないが…
>ならchromeのシェアを奪うのなんてすぐじゃないか
すぐなわけないだろ。
ブラウザを選ぶ基準なんて数え切れないほど色んな要素が絡み合ってるんだよ
その中には"なんとなく、みんなが使ってるから"なんてしょうもない理由も多く存在する
全ての人間が合理的な判断を下すわけじゃないんだ。そんな単純に事が運ぶわけがない
だから、ツッコミどころが多すぎるんだって…
267デフォルトの名無しさん
2018/03/31(土) 16:58:36.90ID:D1vbg0pQ Boostはオナニーし過ぎのグロマンコみたいなもんだが使わざるを得ないって話か。
268デフォルトの名無しさん
2018/03/31(土) 17:01:22.81ID:D1vbg0pQ Javascriptのお勉強をした結果、GCは何の解決にもならないことが分かった。
むしろ危険。
ライブラリがリークについて何も考えていないんだもん。
むしろ危険。
ライブラリがリークについて何も考えていないんだもん。
269デフォルトの名無しさん
2018/03/31(土) 17:02:54.36ID:D1vbg0pQ なんでだろ〜なんでだろ〜と検索した結果、あの有名な企業のブログで解決策を発見。
曰く、ライブラリがリークするようにできてるから、一定時間で再起動とか。
そんなのが多すぎた。
曰く、ライブラリがリークするようにできてるから、一定時間で再起動とか。
そんなのが多すぎた。
270デフォルトの名無しさん
2018/03/31(土) 18:56:11.43ID:ApL2p8x0 ぐだぐだ言い訳してるのを総合すると
「モノは良いけど使い手が少ないせいで流行らない」ってか?
使い手が少ないのはものが悪いってことだろ。残念でした
「モノは良いけど使い手が少ないせいで流行らない」ってか?
使い手が少ないのはものが悪いってことだろ。残念でした
271デフォルトの名無しさん
2018/03/31(土) 18:58:11.61ID:ApL2p8x0 Go言語見てみろ
モノはいろいろと微妙だがCやC++と比べて強烈な利点があるから、リリースがRustと同じか遅いくらいなのに流行ってるだろ
Rustはどうなんですかねえ?
モノはいろいろと微妙だがCやC++と比べて強烈な利点があるから、リリースがRustと同じか遅いくらいなのに流行ってるだろ
Rustはどうなんですかねえ?
272デフォルトの名無しさん
2018/03/31(土) 20:27:06.89ID:PqROMcrp つまりPHPが最良の言語ってわけか
273デフォルトの名無しさん
2018/03/31(土) 20:42:09.87ID:oZoT3jkC わざわざRustスレまできて延々粘着アンチとかかまってほしい爺さんみたいで見苦しいからやめろ
274デフォルトの名無しさん
2018/03/31(土) 20:45:48.24ID:D1vbg0pQ275デフォルトの名無しさん
2018/03/31(土) 21:14:47.08 かま爺
276デフォルトの名無しさん
2018/03/31(土) 21:55:49.66ID:dXOBbz7B いくらモノがクソでも流行ってるって一点で考慮に入れる必要はあるし、
逆にどんなに良いものでも流行ってなければ選外になるのは事実よね
PHPが流行ってるのは時代的に残念な背景があるとはいえ、
Goが流行るのは明確な理由があるんじゃないか?
逆にどんなに良いものでも流行ってなければ選外になるのは事実よね
PHPが流行ってるのは時代的に残念な背景があるとはいえ、
Goが流行るのは明確な理由があるんじゃないか?
277デフォルトの名無しさん
2018/03/31(土) 22:11:12.54ID:7TTU0i1a それについて掘り下げる意義はないと思いますよ
278デフォルトの名無しさん
2018/03/31(土) 22:16:22.26ID:dXOBbz7B まあ確かにないな
せめて日本語で本が出る程度には流行って欲しいが……
今のRustに足りないものってなんだろうな
RubyのRailsみたいに、ある領域のキラーフレームワークみたいなのが欲しいが
Rustがそれを作れる領域って今のところWebAssemblyくらいしかないんだよな
しかもそのWebAssemblyも、GCが入ったらGoとの立ち位置が逆転するし
せめて日本語で本が出る程度には流行って欲しいが……
今のRustに足りないものってなんだろうな
RubyのRailsみたいに、ある領域のキラーフレームワークみたいなのが欲しいが
Rustがそれを作れる領域って今のところWebAssemblyくらいしかないんだよな
しかもそのWebAssemblyも、GCが入ったらGoとの立ち位置が逆転するし
279デフォルトの名無しさん
2018/04/01(日) 07:31:46.82ID:QnuEAtVo それはgoが流行っている理由を語るのと同義ではないですか
280デフォルトの名無しさん
2018/04/01(日) 07:36:32.82ID:nW/fPqLD Goこそブランドの影響だと思うけどなw
Googleって会社も初期メンバーこそキレキレの人間だったのかもしれんが
ブランドイメージが先行しだしたころから
そこにはそこに憧れて集っちゃった凡人がうじゃうじゃだということを忘れてはならない
Googleって会社も初期メンバーこそキレキレの人間だったのかもしれんが
ブランドイメージが先行しだしたころから
そこにはそこに憧れて集っちゃった凡人がうじゃうじゃだということを忘れてはならない
281デフォルトの名無しさん
2018/04/01(日) 08:59:01.17ID:aM38sJCa rustは
ゼロ抽象化みたいな機能ブランドに憧れて集まっちゃった凡人がうじゃうじゃだよね
ゼロ抽象化みたいな機能ブランドに憧れて集まっちゃった凡人がうじゃうじゃだよね
282デフォルトの名無しさん
2018/04/01(日) 09:02:36.32ID:N/JoH072 機能ブランドってなに?中身ないの?
283デフォルトの名無しさん
2018/04/01(日) 09:31:03.82ID:r/SQKbFj ないよ。あったらもっと人集まってるよ
284デフォルトの名無しさん
2018/04/01(日) 09:41:07.81ID:r/SQKbFj RustはCやC++を書くのに疲れた人のための言語という位置付けなのに
Rustを書ける奴は別にCやC++書くのに困らないって
イカれた習得難易度に作ってしまったのがそもそもの失敗
Rustのターゲットは別にRustなんて使わなくてもいいかそもそもRustを使えないかの二択
ドンピシャなターゲットが存在しないから流行りようがない
Rustを書ける奴は別にCやC++書くのに困らないって
イカれた習得難易度に作ってしまったのがそもそもの失敗
Rustのターゲットは別にRustなんて使わなくてもいいかそもそもRustを使えないかの二択
ドンピシャなターゲットが存在しないから流行りようがない
285デフォルトの名無しさん
2018/04/01(日) 09:51:30.48ID:QnuEAtVo rustを書ける人でcやc++で困らないと結論した人が沢山いるということですか?
286デフォルトの名無しさん
2018/04/01(日) 10:13:31.75ID:9alzQdGn >>284
>RustはCやC++を書くのに疲れた人のための言語という位置付け
これは事実だけど、C++より簡単に書けることを目指して作ったわけじゃなくて
ポインタ周りのバグ(特にバッファオーバーフローなどが原因のセキュリティホール)
に悩まされてきた人間のために作られた言語だからな
セキュリティを考えてない奴からすれば無用な長物にしか見えないんだろう
>RustはCやC++を書くのに疲れた人のための言語という位置付け
これは事実だけど、C++より簡単に書けることを目指して作ったわけじゃなくて
ポインタ周りのバグ(特にバッファオーバーフローなどが原因のセキュリティホール)
に悩まされてきた人間のために作られた言語だからな
セキュリティを考えてない奴からすれば無用な長物にしか見えないんだろう
287デフォルトの名無しさん
2018/04/01(日) 10:21:58.94ID:9alzQdGn >>286
訂正:無用な長物→無用の長物
訂正:無用な長物→無用の長物
288デフォルトの名無しさん
2018/04/01(日) 11:14:37.02ID:r/SQKbFj289デフォルトの名無しさん
2018/04/01(日) 11:17:57.70ID:FEh/C/xR290デフォルトの名無しさん
2018/04/01(日) 11:21:05.39ID:r/SQKbFj ああそれはあるかもな
実用というより教育目的な言語としては確かにアリだ
実用というより教育目的な言語としては確かにアリだ
291デフォルトの名無しさん
2018/04/01(日) 11:36:26.93ID:9alzQdGn >>288
>Rustできちんとコード書ける実力あるなら
>CやC++でもセキュリティホール作り込まないプログラミングできるだろって話な
出来ないからC++ではValgrindとかのツール使ってチェックしてるんだろ
じゃあツールを必ず使うようにすればいいじゃんって話にはなるが…
>Rustできちんとコード書ける実力あるなら
>CやC++でもセキュリティホール作り込まないプログラミングできるだろって話な
出来ないからC++ではValgrindとかのツール使ってチェックしてるんだろ
じゃあツールを必ず使うようにすればいいじゃんって話にはなるが…
292デフォルトの名無しさん
2018/04/01(日) 11:39:14.42ID:9alzQdGn そもそもValgrindみたいなメモリリークをチェックする類のツールって
Rustのボローチェッカと比べるとどの程度信用できるのかね?
Rustのボローチェッカと比べるとどの程度信用できるのかね?
293デフォルトの名無しさん
2018/04/01(日) 11:47:08.80ID:jrLYAFkE あまり信用出来ない
スマートポインタを(適切に)使ってればそもそも解放忘れはしないし
配列に確保しっぱなし系のリークは検知してくれない
スマートポインタを(適切に)使ってればそもそも解放忘れはしないし
配列に確保しっぱなし系のリークは検知してくれない
294デフォルトの名無しさん
2018/04/01(日) 11:55:47.66ID:9alzQdGn >>293
>あまり信用できない
>配列に確保しっぱなし系のリークは検知してくれない
そっか、やっぱりRustのボローチェッカには劣るか
>スマートポインタを(適切に)使ってればそもそも解放忘れはしない
「適切に」ってところがポイントだよね
たとえ熟練のC++erがどれだけ注意してコーディングしてたって
「うっかりミス」はいつか絶対に起きるんだし
>あまり信用できない
>配列に確保しっぱなし系のリークは検知してくれない
そっか、やっぱりRustのボローチェッカには劣るか
>スマートポインタを(適切に)使ってればそもそも解放忘れはしない
「適切に」ってところがポイントだよね
たとえ熟練のC++erがどれだけ注意してコーディングしてたって
「うっかりミス」はいつか絶対に起きるんだし
295デフォルトの名無しさん
2018/04/01(日) 12:42:04.82 C++でボローチェッカをエミュレーションできないの?
296デフォルトの名無しさん
2018/04/01(日) 12:44:43.78ID:BOTWSFOl C++ちゃんとかけるならRustも楽勝でしょ。
297デフォルトの名無しさん
2018/04/01(日) 13:57:47.26ID:QnuEAtVo >>288
できないよ、人間だもの
できないよ、人間だもの
298デフォルトの名無しさん
2018/04/01(日) 14:16:47.69ID:1ng3UkJB valgrind使うと実行時間とてつもなく遅くなるし実行時間長いプログラムだと辛い
ASANでも2倍くらい遅くなるので辛いのは同じ
コンパイル時に静的に分かる方が嬉しいし、たまにしか通らないパスもチェックされるのでより安全
ASANでも2倍くらい遅くなるので辛いのは同じ
コンパイル時に静的に分かる方が嬉しいし、たまにしか通らないパスもチェックされるのでより安全
299デフォルトの名無しさん
2018/04/01(日) 19:22:10.86ID:aM38sJCa まあ結局unsafe部分はチェックできないけどね。
その場合でもコンパイル通ったからと主張しだす輩で溢れてる。
その場合でもコンパイル通ったからと主張しだす輩で溢れてる。
300デフォルトの名無しさん
2018/04/01(日) 19:26:04.60ID:QnuEAtVo どこに溢れてるの?
301デフォルトの名無しさん
2018/04/01(日) 19:51:17.12ID:Vaw8NqEv 脳内
302デフォルトの名無しさん
2018/04/01(日) 21:39:06.35ID:N/JoH072 C++20では生ポが非推奨になるらしいけど
unsafeはチェックできないのと同様に意味がないですね
unsafeはチェックできないのと同様に意味がないですね
303デフォルトの名無しさん
2018/04/01(日) 21:53:26.11ID:aM38sJCa 他言語呼んでもメモリリーク起きないとかこのスレでも喚いてた輩がいたわけだが。
drop trait を明示的に書かなっきゃならんとかそいつら全く理解してないだろ。
drop trait を明示的に書かなっきゃならんとかそいつら全く理解してないだろ。
304デフォルトの名無しさん
2018/04/01(日) 21:55:16.18ID:9alzQdGn305デフォルトの名無しさん
2018/04/02(月) 11:44:35.64ID:z3JOGYz+ 生ポインタ使えることがC++の唯一のメリットなのに
それを非推奨にするなら別の言語使ったほうがマシだろ
それを非推奨にするなら別の言語使ったほうがマシだろ
306デフォルトの名無しさん
2018/04/03(火) 12:33:46.66ID:GZlQK3q7 RustがC++に実用面で勝ってることなんかある?
307デフォルトの名無しさん
2018/04/03(火) 13:06:14.98ID:cmHjEB2c 勝っているかどうかは知らんが
cargo/crates.io相当のものがないから
新規アプリをC++で書く気はしなくなってしまった。
もしかして最近は便利になってたりするんだろうか。
cargo/crates.io相当のものがないから
新規アプリをC++で書く気はしなくなってしまった。
もしかして最近は便利になってたりするんだろうか。
308デフォルトの名無しさん
2018/04/03(火) 17:54:07.91ID:lesCWZwY 全称命題にするからすぐ反論される
309デフォルトの名無しさん
2018/04/03(火) 21:15:38.01ID:zqNShNDp ペチパーのわしでも書けるのが勝ってる
310デフォルトの名無しさん
2018/04/03(火) 21:18:30.15ID:BzNmSsTz しかしインスタンスを変に共有しなけりゃ解放タイミングを
いちいち気にしなくていいって発想は面白い。
いちいち気にしなくていいって発想は面白い。
311デフォルトの名無しさん
2018/04/03(火) 23:40:54.16ID:K5huRztI いや、それ当たり前のことだから。
312デフォルトの名無しさん
2018/04/04(水) 00:15:13.34ID:e/ecM7t7313デフォルトの名無しさん
2018/04/07(土) 01:03:26.54ID:T+RwBbo7 参照カウントガベージコレクションにもスマートポインタにも興味ないrust信者すごいね
314デフォルトの名無しさん
2018/04/07(土) 06:53:26.51ID:k/xupSTU GCに興味ないのはともかく
BoxとかRcとかモロにスマートポインタだから興味ないとか以前の問題なんだが?
BoxとかRcとかモロにスマートポインタだから興味ないとか以前の問題なんだが?
315デフォルトの名無しさん
2018/04/07(土) 07:02:17.22ID:sb7KGbUH というかなんで今になって参照カウンタGCなんて超素朴なGC実装を引き合いに出すのかが分からん
Goですらそんなもん使ってねえぞ
Goですらそんなもん使ってねえぞ
316デフォルトの名無しさん
2018/04/07(土) 07:10:17.71ID:sb7KGbUH ……まさかとは思うがC++のshared_ptrのことを指して参照カウントGCと称してないよな?
RustではRcとかArcがそれに該当するから、この文脈でも完全に的はずれになるが
RustではRcとかArcがそれに該当するから、この文脈でも完全に的はずれになるが
317デフォルトの名無しさん
2018/04/10(火) 11:37:36.43ID:pRwunYlM318デフォルトの名無しさん
2018/04/12(木) 01:27:42.33ID:JdbozTc/ 久しぶりに見に来たらアンチが帰ってきてるじゃん。
せっかくだから、おれも反論レスを書き込むことにする。
せっかくだから、おれも反論レスを書き込むことにする。
319デフォルトの名無しさん
2018/04/12(木) 01:28:00.22ID:JdbozTc/320デフォルトの名無しさん
2018/04/12(木) 01:28:37.08ID:JdbozTc/ >>299
unsafeなんてC FFIしようとか考えない限りあまり使うことないよ
tokio-coreとかhyperとかhtml5everとかのソースコード見てきなよ
unsafe使ってる箇所なんて10箇所あるかないかってところだから。
コード全域に気を配らなきゃならないのか、たった10箇所程度に気を付けてれば良いのか、
どちらが楽(安全)なのかは火を見るよりも明らかだよね
unsafeなんてC FFIしようとか考えない限りあまり使うことないよ
tokio-coreとかhyperとかhtml5everとかのソースコード見てきなよ
unsafe使ってる箇所なんて10箇所あるかないかってところだから。
コード全域に気を配らなきゃならないのか、たった10箇所程度に気を付けてれば良いのか、
どちらが楽(安全)なのかは火を見るよりも明らかだよね
321デフォルトの名無しさん
2018/04/12(木) 01:30:08.73ID:JdbozTc/ >>303
これに関しては自分がC FFIのコードを滅多に書かないから「そうだったっけ?」くらいにしか考えなかったけどよく考えたら全然違うよね。
まず、値渡しなら引数・戻り値ともに何の問題もない。そのまま渡せばいい。
ポインタ渡し(Box<T>)だった場合はCの関数の引数が所有権か借用のどちらを欲してるのかを確認して、
所有権を欲しがってるならBox::into_raw(x)で所有権を渡せばいいし、
借用が必要ならx.as_ref() as *const _ もしくはx.as_mut() as *mut _で渡せばいい。
戻り値の方ではC側から所有権が渡されてるはずだからBox::from_raw(px)でBox<T>に戻せばOK。
文字列(String)の場合はCStringに変換してから後はBox<T>と同様にinto_raw, from_raw使えばいいだけ。
Vec<T>とかを渡そうとする場合はx.as_ptr()またはx.as_mut_ptr()と場合によってはmem::forget(x)が必要になるんじゃないかな?
受け取る場合はVec::from_raw_parts(px, len, cap)を使えばいいはず。(前述のとおりC FFIはあまり詳しくはないので間違ってたら指摘して下さい)
unsafeの中に何を書けば良いのかはC側のどんな関数を呼ぶのか次第で変わってくるけど、少なくともDropトレイトに関しては全く必要ない。
Box<T>やVec<T>等にあらかじめ実装されてるDropトレイトに任せればいいだけ。むしろ君はDropトレイト使って一体何する気だったのか…?
これに関しては自分がC FFIのコードを滅多に書かないから「そうだったっけ?」くらいにしか考えなかったけどよく考えたら全然違うよね。
まず、値渡しなら引数・戻り値ともに何の問題もない。そのまま渡せばいい。
ポインタ渡し(Box<T>)だった場合はCの関数の引数が所有権か借用のどちらを欲してるのかを確認して、
所有権を欲しがってるならBox::into_raw(x)で所有権を渡せばいいし、
借用が必要ならx.as_ref() as *const _ もしくはx.as_mut() as *mut _で渡せばいい。
戻り値の方ではC側から所有権が渡されてるはずだからBox::from_raw(px)でBox<T>に戻せばOK。
文字列(String)の場合はCStringに変換してから後はBox<T>と同様にinto_raw, from_raw使えばいいだけ。
Vec<T>とかを渡そうとする場合はx.as_ptr()またはx.as_mut_ptr()と場合によってはmem::forget(x)が必要になるんじゃないかな?
受け取る場合はVec::from_raw_parts(px, len, cap)を使えばいいはず。(前述のとおりC FFIはあまり詳しくはないので間違ってたら指摘して下さい)
unsafeの中に何を書けば良いのかはC側のどんな関数を呼ぶのか次第で変わってくるけど、少なくともDropトレイトに関しては全く必要ない。
Box<T>やVec<T>等にあらかじめ実装されてるDropトレイトに任せればいいだけ。むしろ君はDropトレイト使って一体何する気だったのか…?
322デフォルトの名無しさん
2018/04/12(木) 01:30:27.15ID:JdbozTc/ Rustのアンチするのは一向に構わんが、せめて嘘をつくのはやめようね。
323デフォルトの名無しさん
2018/04/12(木) 03:23:54.50ID:XYZqcSuW C FFIとやらを使うためにはRustの知識だけでなくCの知識も必要
Rustだけ学べばいいなんてことはない
Rustだけ学べばいいなんてことはない
324デフォルトの名無しさん
2018/04/12(木) 06:41:03.77ID:1NMGlh89 >>323
cの関数呼ぶんだから当然だろ
cの関数呼ぶんだから当然だろ
325デフォルトの名無しさん
2018/04/12(木) 09:05:15.80ID:IekpLPdE326デフォルトの名無しさん
2018/04/12(木) 11:33:57.87ID:6MGFsFO1 >>325
Rust側でDropしないためにDropの実装を上書きする必要があるということ?
Rust側でDropしないためにDropの実装を上書きする必要があるということ?
327デフォルトの名無しさん
2018/04/12(木) 12:23:34.05ID:IekpLPdE328デフォルトの名無しさん
2018/04/12(木) 13:14:59.37ID:JdbozTc/ >>325
>>303は「メモリリーク」って書いてあるからヒープに確保されたメモリの解放に関しては
Dropトレイトを実装する必要性なんか全く無いってことを>>321で説明してる。
>>325の言ってる「リソース」ってのはファイルとかソケットとかのことを言ってるんだよね
そっちはメモリリークとはまた別の話になるので状況によるんじゃないかな…
ただ、OSが提供してるリソース(ファイルやソケット)くらいなら、File, TcpListenerとかには
Windows用とUnix用にそれぞれinto_raw_xxx(), from_raw_xxx(), as_raw_xxx()とかが用意されてるから
それを使えば後のことはFile, TcpListenerのdrop実装に任せてしまって問題ないはず。
C側(ライブラリ)で独自に実装されてるリソース(close等の後処理が必要な実装)の場合は
close部分をRustのDropトレイトの実装として移植する必要はあるだろうね。
(もう一度言うけど、自分は普段はC FFIを使わないから詳しくはないので、間違ってたら指摘して下さい)
>>303は「メモリリーク」って書いてあるからヒープに確保されたメモリの解放に関しては
Dropトレイトを実装する必要性なんか全く無いってことを>>321で説明してる。
>>325の言ってる「リソース」ってのはファイルとかソケットとかのことを言ってるんだよね
そっちはメモリリークとはまた別の話になるので状況によるんじゃないかな…
ただ、OSが提供してるリソース(ファイルやソケット)くらいなら、File, TcpListenerとかには
Windows用とUnix用にそれぞれinto_raw_xxx(), from_raw_xxx(), as_raw_xxx()とかが用意されてるから
それを使えば後のことはFile, TcpListenerのdrop実装に任せてしまって問題ないはず。
C側(ライブラリ)で独自に実装されてるリソース(close等の後処理が必要な実装)の場合は
close部分をRustのDropトレイトの実装として移植する必要はあるだろうね。
(もう一度言うけど、自分は普段はC FFIを使わないから詳しくはないので、間違ってたら指摘して下さい)
329デフォルトの名無しさん
2018/04/12(木) 15:11:14.26ID:UiqgOhpn330デフォルトの名無しさん
2018/04/12(木) 17:39:03.84ID:JdbozTc/ >>329
ちょっと言ってる意味がわからない
Cでmallocされたものであっても所有権ごと渡されていれば解放の責任はRustにある
ていうか、Rust側で勝手に解放しちゃいけないと言ってるのに
Dropトレイトの実装でfreeしたらやっぱりRust側で勝手に解放しちゃってるじゃん
言ってること矛盾してない?
CとRustで型のメモリレイアウトが一致してればあとはBox型に任せるだけだよ
Cから渡されてくるポインタの型のメモリレイアウトが公開されていなければ
(つまりvoidポインタだったりオペーク構造体(オペークポインタ)だったなら)話は別だけど。
その場合はRustはハンドルをもらうだけでいかなる操作(メモリの解放(free)も含む)もC FFIでC側に
頼むしかない(メモリレイアウトがわからない限りはRust側ではどうあがいても何も出来ない)ので
Dropトレイト実装してdrop時にC側にメモリの解放処理も頼む必要がある
ちょっと言ってる意味がわからない
Cでmallocされたものであっても所有権ごと渡されていれば解放の責任はRustにある
ていうか、Rust側で勝手に解放しちゃいけないと言ってるのに
Dropトレイトの実装でfreeしたらやっぱりRust側で勝手に解放しちゃってるじゃん
言ってること矛盾してない?
CとRustで型のメモリレイアウトが一致してればあとはBox型に任せるだけだよ
Cから渡されてくるポインタの型のメモリレイアウトが公開されていなければ
(つまりvoidポインタだったりオペーク構造体(オペークポインタ)だったなら)話は別だけど。
その場合はRustはハンドルをもらうだけでいかなる操作(メモリの解放(free)も含む)もC FFIでC側に
頼むしかない(メモリレイアウトがわからない限りはRust側ではどうあがいても何も出来ない)ので
Dropトレイト実装してdrop時にC側にメモリの解放処理も頼む必要がある
331デフォルトの名無しさん
2018/04/12(木) 18:12:43.26ID:B4Vmqq7H FFIの場合jemallocかシステムのmallocかの違い問題になることありそう
332デフォルトの名無しさん
2018/04/12(木) 21:02:25.76ID:EBEN0Rpp >その場合はRustはハンドルをもらうだけでいかなる操作(メモリの解放(free)も含む)もC FFIでC側に
>頼むしかない(メモリレイアウトがわからない限りはRust側ではどうあがいても何も出来ない)ので
>Dropトレイト実装してdrop時にC側にメモリの解放処理も頼む必要がある
だからDropトレイトを意識的に実装せにゃならんと始めから言ってるだろうに。
このタイプは絶対仕事でモメるわ。
>頼むしかない(メモリレイアウトがわからない限りはRust側ではどうあがいても何も出来ない)ので
>Dropトレイト実装してdrop時にC側にメモリの解放処理も頼む必要がある
だからDropトレイトを意識的に実装せにゃならんと始めから言ってるだろうに。
このタイプは絶対仕事でモメるわ。
333デフォルトの名無しさん
2018/04/12(木) 22:43:32.09ID:JdbozTc/ >>322
だったら「Rust側からはメモリレイアウトが分からないようなvoidポインタや
オペーク構造体がC側から渡された場合は」という前提条件をきちんと書け。
条件を何も書かずに「drop trait を明示的に書かなきゃならん」とだけ書かれれば
全ての場合で必要だと言っているようにしか見えない。
あと、>>321で「全く」と書いてしまったことは悪かったと思っている
>>321を書いてる時点は上記のような可能性に気づいていなかった…申し訳ない。
お前みたいに「特定の条件下でしか適用されないこと」に対して条件を書かずに結論だけ書いて
「自分はきちんと伝えた」とか思っちゃってるキチガイとの仕事とかこっちの方から願い下げだから。
だったら「Rust側からはメモリレイアウトが分からないようなvoidポインタや
オペーク構造体がC側から渡された場合は」という前提条件をきちんと書け。
条件を何も書かずに「drop trait を明示的に書かなきゃならん」とだけ書かれれば
全ての場合で必要だと言っているようにしか見えない。
あと、>>321で「全く」と書いてしまったことは悪かったと思っている
>>321を書いてる時点は上記のような可能性に気づいていなかった…申し訳ない。
お前みたいに「特定の条件下でしか適用されないこと」に対して条件を書かずに結論だけ書いて
「自分はきちんと伝えた」とか思っちゃってるキチガイとの仕事とかこっちの方から願い下げだから。
334デフォルトの名無しさん
2018/04/12(木) 22:50:55.21ID:JdbozTc/336デフォルトの名無しさん
2018/04/12(木) 23:08:05.77ID:9OO0KoJN >>330
「勝手に」の部分が曖昧だったので正確に書くと、
Rustはメモリ解放すべきタイミングは知っている
(すなわちCから受け取ったポインタのlifetimeが切れたとき)
Rustはメモリ解放の方法は知らない
(なぜならCのmallocがシステムのmallocなのかjemallocなのか別の何かなのか知るすべがないから)
なので方法について教えるためにdropを実装する。
(このdropでCのfreeを呼べば、mallocと同じメモリアロケータが保証される)
ちなみにメモリアロケータ間の互換性はないので、
例えばlibcでmallocしてjemallocでfreeすると多分SEGVする。
コード例は以下でもどうぞ。
https://stackoverflow.com/questions/31486519/how-do-i-free-a-char-allocated-via-ffi-in-rust
「勝手に」の部分が曖昧だったので正確に書くと、
Rustはメモリ解放すべきタイミングは知っている
(すなわちCから受け取ったポインタのlifetimeが切れたとき)
Rustはメモリ解放の方法は知らない
(なぜならCのmallocがシステムのmallocなのかjemallocなのか別の何かなのか知るすべがないから)
なので方法について教えるためにdropを実装する。
(このdropでCのfreeを呼べば、mallocと同じメモリアロケータが保証される)
ちなみにメモリアロケータ間の互換性はないので、
例えばlibcでmallocしてjemallocでfreeすると多分SEGVする。
コード例は以下でもどうぞ。
https://stackoverflow.com/questions/31486519/how-do-i-free-a-char-allocated-via-ffi-in-rust
337デフォルトの名無しさん
2018/04/12(木) 23:35:57.15ID:JdbozTc/ >>336
マジか…mallocとjemallocは混在できないのか…
そうなると、C側でmallocされてれば必ずC側にfreeしてもらうしかないということか…
じゃあ今まで俺が書いた方法じゃダメなケースもあるじゃん…すまん。
自分の無知を晒す羽目にはなったが、むしろ今知れてよかったわ。
でも、そうなると新たな疑問が…
マジか…mallocとjemallocは混在できないのか…
そうなると、C側でmallocされてれば必ずC側にfreeしてもらうしかないということか…
じゃあ今まで俺が書いた方法じゃダメなケースもあるじゃん…すまん。
自分の無知を晒す羽目にはなったが、むしろ今知れてよかったわ。
でも、そうなると新たな疑問が…
338デフォルトの名無しさん
2018/04/13(金) 00:47:00.07ID:AYGoZS+y jemallocじゃなくてシステムのアロケーター使うオプションだかfeatureだか使えば良いかな
339337
2018/04/13(金) 01:19:50.99ID:rxyiIXLh >>336
間違いの指摘と情報提供のお礼言うの忘れてた。Thanks!
あと、これってRustでのC FFI に限った話じゃないよね?
C同士でさえもアロケータに何を使ってるか次第で同じ問題が発生する。
Cは時々使ってたのに(しかも仕事で)これを知らなかったのはヤバいな…
恐らく今まではたまたま同じアロケータを使ってたから問題が起きてなかっただけか…
戻り値で文字列(char *)が来た時とかこっちで勝手にfreeしてたぞ…(^_^;)
まあ、どのアロケータ使ってるかなんて誰も気にも留めてなかったし大丈夫だろうけど、
今後は気を付けないとな…
間違いの指摘と情報提供のお礼言うの忘れてた。Thanks!
あと、これってRustでのC FFI に限った話じゃないよね?
C同士でさえもアロケータに何を使ってるか次第で同じ問題が発生する。
Cは時々使ってたのに(しかも仕事で)これを知らなかったのはヤバいな…
恐らく今まではたまたま同じアロケータを使ってたから問題が起きてなかっただけか…
戻り値で文字列(char *)が来た時とかこっちで勝手にfreeしてたぞ…(^_^;)
まあ、どのアロケータ使ってるかなんて誰も気にも留めてなかったし大丈夫だろうけど、
今後は気を付けないとな…
340デフォルトの名無しさん
2018/04/13(金) 01:26:39.63ID:V+3RqgGh すべての有用なライブラリがRust製にならない限り
Rustだけを学べばよいという状況は訪れずCやC++の習得も必須
Rustだけを学べばよいという状況は訪れずCやC++の習得も必須
341デフォルトの名無しさん
2018/04/13(金) 02:09:57.24ID:zBD4nIN6 >>339
どういたしまして。
C同士の場合は普通glibcへの動的リンクだし
LD_PRELOADとかでjemallocなんかに差し替えても
プログラム全体で差し替わるから特に問題にはならないかと。
もしメモリアロケータを静的リンクしたライブラリとかを使っていればまずいはず。
ただそういう場合はリソースハンドルっぽいAPIになりがちなので
そのままfreeしようとは思わないかもしれない。
どういたしまして。
C同士の場合は普通glibcへの動的リンクだし
LD_PRELOADとかでjemallocなんかに差し替えても
プログラム全体で差し替わるから特に問題にはならないかと。
もしメモリアロケータを静的リンクしたライブラリとかを使っていればまずいはず。
ただそういう場合はリソースハンドルっぽいAPIになりがちなので
そのままfreeしようとは思わないかもしれない。
342デフォルトの名無しさん
2018/04/13(金) 02:17:49.88ID:I2PL3qG3 >>340
そりゃそうだろ、なにいってんだ
そりゃそうだろ、なにいってんだ
343デフォルトの名無しさん
2018/04/13(金) 02:33:17.17ID:nqEsOLBj やくに立たねー結局cか。rustって趣味だな。
344デフォルトの名無しさん
2018/04/13(金) 04:00:10.77ID:V+3RqgGh C/C++だけ覚える
or
RustとC/C++を覚える
学習コスト高すぎRust
or
RustとC/C++を覚える
学習コスト高すぎRust
345デフォルトの名無しさん
2018/04/13(金) 10:22:17.48ID:w0WUHq34 >>343
趣味でモジラの栄養やるとかどんなドマゾだよ
趣味でモジラの栄養やるとかどんなドマゾだよ
346デフォルトの名無しさん
2018/04/13(金) 10:26:05.50ID:w0WUHq34 今の会話見るだけでもRustがいかに欠陥言語かわかるのに
それでもRust使うって言うんだからなあ
全部C/C++で書く方が遥かに効率いいしバグも出んわ
それでもRust使うって言うんだからなあ
全部C/C++で書く方が遥かに効率いいしバグも出んわ
347デフォルトの名無しさん
2018/04/13(金) 11:29:35.51ID:EHHg9a+/ C覚えるの必須当たり前ってんなら構文もっとC系に寄せれば良かったのに。
348デフォルトの名無しさん
2018/04/13(金) 12:06:18.44ID:ybbP8EF+ 今までの流れからその結論は極端すぎるだろ
もう少し工夫しろ
もう少し工夫しろ
349デフォルトの名無しさん
2018/04/13(金) 12:27:54.41ID:zH6rmEat いつのまにか、FFI使うことが前提になってる流れって、rustをdisりたい勢の必死さがうかがえて、ある意味、面白い。
350デフォルトの名無しさん
2018/04/13(金) 12:52:00.31ID:Lj3R2dXy351デフォルトの名無しさん
2018/04/13(金) 13:00:11.55ID:w0WUHq34 Cの資産に寄生しないとろくなもん作れないのに
そのCとの連携部分が腐ってるってことじゃん
使いもんにならねえって評価は妥当だと思うが?
それともPure Rustでまともなもん作れるつもりか?
そのCとの連携部分が腐ってるってことじゃん
使いもんにならねえって評価は妥当だと思うが?
それともPure Rustでまともなもん作れるつもりか?
352デフォルトの名無しさん
2018/04/13(金) 17:38:51.06ID:l4JsQkL9 まずまともなもんを先に定義してくれ
353デフォルトの名無しさん
2018/04/13(金) 18:09:45.57ID:Z44eD8et バグらない
動く
実用的
上記3点の実績がある
動く
実用的
上記3点の実績がある
354デフォルトの名無しさん
2018/04/13(金) 18:37:13.42ID:rxyiIXLh 実用的・実積も曖昧だな
どの程度を実用的で実積があると呼ぶのか具体例を提示してくれ
突き詰めていくと「バグらない」も程度によりけりだしな
Excelだってバグるときゃバグるし…
どの程度を実用的で実積があると呼ぶのか具体例を提示してくれ
突き詰めていくと「バグらない」も程度によりけりだしな
Excelだってバグるときゃバグるし…
355デフォルトの名無しさん
2018/04/13(金) 18:48:56.96ID:lEd4ahw7 本スレは相変わらず過疎だしまじ終わったなこの言語
356デフォルトの名無しさん
2018/04/13(金) 19:00:16.55ID:vyE43Z1D 話に入れないからって「………結局駄目!」ってダサすぎない?
357デフォルトの名無しさん
2018/04/13(金) 19:21:19.79ID:EHHg9a+/ jsのファミコンエミュレータをrustで実装し直したらパフォーマンス負けたらしいwww
358デフォルトの名無しさん
2018/04/13(金) 19:27:43.59ID:a8AOaj4F >>357
JSに負けるとか草しか生えんなwwwwwww
JSに負けるとか草しか生えんなwwwwwww
359デフォルトの名無しさん
2018/04/13(金) 19:31:48.55ID:a8AOaj4F >>354
Linuxくらいバグらないならいいよ
Linuxくらいバグらないならいいよ
360デフォルトの名無しさん
2018/04/13(金) 20:22:47.30ID:rxyiIXLh >>357
噂に尾ひれがつく瞬間を目の当たりにして草
多分これ↓のことだろ
http://blog.bokuweb.me/entry/2018/02/08/101522
誰かC x wasmで書き直してみろよ。きっと似たような結果になるから
>>359
ついにLinuxと同レベルじゃないと認めないとか言い始めたぞ…
噂に尾ひれがつく瞬間を目の当たりにして草
多分これ↓のことだろ
http://blog.bokuweb.me/entry/2018/02/08/101522
誰かC x wasmで書き直してみろよ。きっと似たような結果になるから
>>359
ついにLinuxと同レベルじゃないと認めないとか言い始めたぞ…
361デフォルトの名無しさん
2018/04/13(金) 20:58:47.99ID:Ek+y1xD6 >>357,358
ブラウザ JS版 Wasm版
Chrome 63 4.36ms 5.68ms
Firefox 58 5.76ms 3.98ms
Safari 11 9.98ms 4.21ms
う〜ん草しか生えんね 草草草の草ァ!だね
ブラウザ JS版 Wasm版
Chrome 63 4.36ms 5.68ms
Firefox 58 5.76ms 3.98ms
Safari 11 9.98ms 4.21ms
う〜ん草しか生えんね 草草草の草ァ!だね
362デフォルトの名無しさん
2018/04/13(金) 21:29:03.20ID:a8AOaj4F >>361
wasmじゃなくてRustと比べてから言えよ
wasmじゃなくてRustと比べてから言えよ
363デフォルトの名無しさん
2018/04/13(金) 21:40:19.55ID:Ek+y1xD6 >>362
草しか生えんわwww
草しか生えんわwww
364デフォルトの名無しさん
2018/04/13(金) 22:58:07.23ID:LXloKsM4 まあメモリの管理モデルが違う言語同士でやりとりすれば
色々苦労するのは当たり前なんだよね。
それなのに「rustは勝手に解放してくれる」とか言い張っちゃう信者が有害な訳だよ。
rustが悪いというよりか、こういう馬鹿が多いところが問題。
色々苦労するのは当たり前なんだよね。
それなのに「rustは勝手に解放してくれる」とか言い張っちゃう信者が有害な訳だよ。
rustが悪いというよりか、こういう馬鹿が多いところが問題。
365デフォルトの名無しさん
2018/04/13(金) 23:04:17.07ID:bso+BPDq Haskellは副作用が無いとか参照透過性があるって言った時に
C FFIを持ち出して反論するのと同様の不毛さを感じる
C FFIを持ち出して反論するのと同様の不毛さを感じる
366デフォルトの名無しさん
2018/04/14(土) 07:00:49.94ID:xdB8fLqn 不毛?現実によくあることなのにね。。
言語の一番下ではアセンブラが動いてるんだから、そことどう調和もしくは隠蔽させるかってのは
コンピュータ言語にとって本質でしょうが。
言語の一番下ではアセンブラが動いてるんだから、そことどう調和もしくは隠蔽させるかってのは
コンピュータ言語にとって本質でしょうが。
367デフォルトの名無しさん
2018/04/14(土) 07:18:52.94ID:S65yHOqM は?何で一番下が機械語じゃなくてアセンブラなの馬鹿なの?
368デフォルトの名無しさん
2018/04/14(土) 09:16:33.44ID:/jFvD9M/ コンピュータ言語w
369デフォルトの名無しさん
2018/04/14(土) 11:34:49.77ID:+NzeE6vg アセンブラと機械語は1:1で訳せるから…
370デフォルトの名無しさん
2018/04/14(土) 11:47:39.37ID:oZ68B8i3 アセンブリやろ
371デフォルトの名無しさん
2018/04/14(土) 13:58:04.39ID:dXnZwWyG 結局Rustはサーバ向けでもコマンドツール向けでもGUI向けでも組み込み向けでもない
って事実はほんと覆らんよ
って事実はほんと覆らんよ
372デフォルトの名無しさん
2018/04/14(土) 14:12:11.55ID:9z5cq9ls 話に入れないからって「………結局駄目!」ってダサすぎない?
373デフォルトの名無しさん
2018/04/14(土) 14:55:11.55ID:42ccGSN6 jsのファミコンエミュレータをrustで実装し直したらパフォーマンス負けたらしいwww
374デフォルトの名無しさん
2018/04/14(土) 15:21:13.70ID:TDyE7icd >>372
悔しかったら反論してみたらぁ?
悔しかったら反論してみたらぁ?
375デフォルトの名無しさん
2018/04/14(土) 15:23:55.88ID:xdB8fLqn376デフォルトの名無しさん
2018/04/14(土) 15:34:36.03ID:TDyE7icd 上の流れ素直に読んでも、
メモリ管理も全部C側で完結させるのが一番いいって結論にしかならんぞ?
Rustのいいところなんぞ皆無だ
メモリ管理も全部C側で完結させるのが一番いいって結論にしかならんぞ?
Rustのいいところなんぞ皆無だ
377デフォルトの名無しさん
2018/04/14(土) 15:44:33.95ID:TDyE7icd というかコンパイラにメモリ管理任せるのが無理だろ。FFIのためにいちいちDrop定義するとか非効率でしかない
メモリ管理はGCに任せるか完全手動にするかの二択なのに、無理矢理そこにヘンテコリンなソリューションもどき持ち込んで混乱引き起こしてるだけじゃん
メモリ管理はGCに任せるか完全手動にするかの二択なのに、無理矢理そこにヘンテコリンなソリューションもどき持ち込んで混乱引き起こしてるだけじゃん
378デフォルトの名無しさん
2018/04/14(土) 15:50:41.81ID:TDyE7icd Rustの提案するエセソリューションは機械語のレベルと相性が悪い
CやC++のほうがまだまともなアプローチしてる
CやC++のほうがまだまともなアプローチしてる
379デフォルトの名無しさん
2018/04/14(土) 15:53:50.88ID:LmbQudMt380デフォルトの名無しさん
2018/04/14(土) 15:55:07.64ID:TDyE7icd >>379
ほとんどのコンパイラで採用されてない仕様書上にしかない機能なんざ知らんよ
ほとんどのコンパイラで採用されてない仕様書上にしかない機能なんざ知らんよ
381デフォルトの名無しさん
2018/04/14(土) 15:58:27.76ID:TDyE7icd 実際混乱引き起こしてるまともじゃない方法なのは上の流れで自明だろ
382デフォルトの名無しさん
2018/04/14(土) 16:02:24.43ID:LmbQudMt >>380
よろしい。そんな君にはJavaがおすすめだ。そっちで元気にやりたまえ。
よろしい。そんな君にはJavaがおすすめだ。そっちで元気にやりたまえ。
383デフォルトの名無しさん
2018/04/14(土) 16:05:01.76ID:75zALjkM 以前も言われてたけど「ひまわり学級の子が普通の授業に出て暴れてる」って表現が実に的確で草
384デフォルトの名無しさん
2018/04/14(土) 16:07:01.72ID:TDyE7icd 間違ったものを間違った奴が流行らせようとしてるんだからそれには「違う」って言っとかないとダメだろ
話にならんと放置したらいずれ手遅れになるほど蔓延する
そうならないうちに叩いておくべきなんだよ
話にならんと放置したらいずれ手遅れになるほど蔓延する
そうならないうちに叩いておくべきなんだよ
385デフォルトの名無しさん
2018/04/14(土) 16:10:39.48ID:w273LxVR 混乱引き起こしてるのは違いないけどさ
「俺の頭の中で混乱を引き起こしてる」って正確に書こうよ
「俺の頭の中で混乱を引き起こしてる」って正確に書こうよ
386デフォルトの名無しさん
2018/04/14(土) 16:11:44.32ID:TDyE7icd >>385
上のFFI絡みの流れは俺じゃないけど?
上のFFI絡みの流れは俺じゃないけど?
387デフォルトの名無しさん
2018/04/14(土) 16:15:30.43ID:w273LxVR 完全手動でメモリ管理するのは混乱起きないからいいよね〜
388デフォルトの名無しさん
2018/04/14(土) 16:21:52.10ID:TDyE7icd389デフォルトの名無しさん
2018/04/14(土) 16:27:01.78ID:nFvlFlcl >>375
上のやり取りは俺じゃないけど?
散々間違いがあったら指摘してくれって書いてたのがデタラメを振りまいた?
間違いの指摘に礼を言って終えるところに、鳴りを潜めていたアンチがウキウキで「混乱を引き起こしたRust!!!」と喚き立てた
このスレでも何回もやってる流れじゃんクソダセー
上のやり取りは俺じゃないけど?
散々間違いがあったら指摘してくれって書いてたのがデタラメを振りまいた?
間違いの指摘に礼を言って終えるところに、鳴りを潜めていたアンチがウキウキで「混乱を引き起こしたRust!!!」と喚き立てた
このスレでも何回もやってる流れじゃんクソダセー
390デフォルトの名無しさん
2018/04/14(土) 16:38:44.62ID:TDyE7icd はいはい内ゲバですね
ほんとくだらん言語
ほんとくだらん言語
391デフォルトの名無しさん
2018/04/14(土) 16:43:14.18ID:nFvlFlcl >>390
内にいるつもりなんだお前
内にいるつもりなんだお前
392デフォルトの名無しさん
2018/04/14(土) 16:44:00.69ID:nFvlFlcl インタプリタへの丸投げ>完全手動でメモリ管理>コンパイラへの丸投げ
実行開始までの混乱しない順だなどう考えても
実行開始までの混乱しない順だなどう考えても
393デフォルトの名無しさん
2018/04/14(土) 16:47:43.87ID:TDyE7icd394デフォルトの名無しさん
2018/04/14(土) 17:00:21.56ID:LmbQudMt >>393
スマポが何かを知らないヤツがC++を語り始めたぞ…
スマポが何かを知らないヤツがC++を語り始めたぞ…
395デフォルトの名無しさん
2018/04/14(土) 17:00:54.52ID:nFvlFlcl396デフォルトの名無しさん
2018/04/14(土) 17:03:21.15ID:LmbQudMt397デフォルトの名無しさん
2018/04/14(土) 17:17:27.65ID:TDyE7icd398デフォルトの名無しさん
2018/04/14(土) 17:24:46.46ID:Syz4zWn3 解放の仕方を実装したら、後はコードのどの場所で何回確保しても自動で解放される事が分かってないっぽいね
399デフォルトの名無しさん
2018/04/14(土) 17:31:29.95ID:LmbQudMt >>398
だってRAIIもスマポも知らないんだもん。しょうがないじゃん
だってRAIIもスマポも知らないんだもん。しょうがないじゃん
400デフォルトの名無しさん
2018/04/14(土) 17:34:05.03ID:nFvlFlcl401デフォルトの名無しさん
2018/04/14(土) 17:50:25.61ID:TDyE7icd >>400
今の説明でわからんなら一生わからんよ
今の説明でわからんなら一生わからんよ
402デフォルトの名無しさん
2018/04/14(土) 17:56:25.03ID:LmbQudMt >>401
あっ! 逃げたww
あっ! 逃げたww
403デフォルトの名無しさん
2018/04/14(土) 18:04:42.44ID:nFvlFlcl Q. Rustの何がどう機械語との相性が悪く、それに対してC/C++のまともなアプローチの具体例を教えて
A. 結局中途半端にしか自動化できないから無意味で、それなら自分で管理した方が結果的に良い
Rustアンチ君との最後のやり取りがこれなのか…?悲しい
A. 結局中途半端にしか自動化できないから無意味で、それなら自分で管理した方が結果的に良い
Rustアンチ君との最後のやり取りがこれなのか…?悲しい
404デフォルトの名無しさん
2018/04/14(土) 23:45:32.28ID:lczq2IdA いい加減ワッチョイスレに移動しようぜ
405デフォルトの名無しさん
2018/04/14(土) 23:54:45.22ID:LmbQudMt >>404
実際問題ワッチョイは過疎る
実際問題ワッチョイは過疎る
406デフォルトの名無しさん
2018/04/15(日) 03:16:54.39ID:8wseEBgk >>404
YOUがワッチョイのほうで話題ageれば
YOUがワッチョイのほうで話題ageれば
407デフォルトの名無しさん
2018/04/15(日) 09:21:32.45ID:eccSQZbu ここはネタスレだからこれでいいよ
まともな話題ないし
まともな話題ないし
408デフォルトの名無しさん
2018/04/15(日) 10:16:53.40ID:pCFT19cL ワッチョイは運営が管理を放棄するための口実
409デフォルトの名無しさん
2018/04/15(日) 10:33:02.44ID:E1b18XLI ワッチョイあった方が良い派です
410デフォルトの名無しさん
2018/04/15(日) 11:32:28.09ID:fK7P6CAL いちおう指摘しておくと以下にわっちょい付きのスレはある。
https://mevius.5ch.net/test/read.cgi/tech/1514107621/l50
https://mevius.5ch.net/test/read.cgi/tech/1514107621/l50
411デフォルトの名無しさん
2018/04/15(日) 14:26:16.16ID:WuS7UUJE そう思うんなら勝手にそっちでやってくれ
いちいちこっちに宣伝しないでよろしい
いちいちこっちに宣伝しないでよろしい
412デフォルトの名無しさん
2018/04/15(日) 14:57:22.17ID:eccSQZbu せめてスレ立てたやつくらいはあっち書き込んでくれよ。
ワッチョイスレ(本スレ)には俺しかいない。
ワッチョイスレ(本スレ)には俺しかいない。
413デフォルトの名無しさん
2018/04/15(日) 15:05:21.27ID:6SePuRaV 人が集まってる(勝ち残った)方が本スレ
414デフォルトの名無しさん
2018/04/15(日) 16:17:50.87ID:vLrea5+q アンチスレの方が人多いっていい加減認めようぜ
415デフォルトの名無しさん
2018/04/15(日) 20:40:55.33ID:oxsxYGoa416デフォルトの名無しさん
2018/04/15(日) 21:13:20.51ID:0BluVJwA >>384
大元に言わないで、ここでグダってる時点で説得力無いけどな。
大元に言わないで、ここでグダってる時点で説得力無いけどな。
417デフォルトの名無しさん
2018/04/16(月) 09:16:50.73ID:fU1aO3Gb 英語で説明する気力がないんだろ
418デフォルトの名無しさん
2018/04/21(土) 15:59:38.16ID:GAOK2TS0 それもあるが日本語の記事でrustマンセーしてるやつは大抵バカっていうのもある。
419デフォルトの名無しさん
2018/04/21(土) 18:22:00.01ID:u/5OPPGG 会話になってないし
時間おいたところで>>395に答えなくてもいいことにはならないからね
時間おいたところで>>395に答えなくてもいいことにはならないからね
420デフォルトの名無しさん
2018/04/22(日) 12:28:50.40ID:fDht+F2y もう答えた
>>397
>>397
421デフォルトの名無しさん
2018/04/22(日) 15:34:45.59ID:4jEar62+422デフォルトの名無しさん
2018/04/22(日) 20:55:11.63ID:jr6NU+gW 英語で説明する以前に日本語でのコミュニケーションに難ありなのか
日本語ネイティブじゃない方なのかな
日本語ネイティブじゃない方なのかな
423デフォルトの名無しさん
2018/04/22(日) 22:58:46.99ID:lYpO0H1A 機械語との相性のいいC,C++のソリューションって、機械語バイト列を関数ポインタにキャストして呼び出すとかじゃないの?
そんなことRustでできるようになって欲しくはないな。
そんなことRustでできるようになって欲しくはないな。
424デフォルトの名無しさん
2018/04/22(日) 23:13:49.80ID:KagmHCpN できるよ
推奨してないけど
推奨してないけど
425デフォルトの名無しさん
2018/04/23(月) 00:45:39.39ID:Fi1E6adA JITとかそういう用途?
426デフォルトの名無しさん
2018/04/24(火) 00:26:37.67ID:IHcLIR+Z rustで書かれたjitなかったっけ?
ところでrustで書かれたウィルスとかマルウェアとかないよな。
goならMiraiで使われてたけど。
ところでrustで書かれたウィルスとかマルウェアとかないよな。
goならMiraiで使われてたけど。
427デフォルトの名無しさん
2018/04/27(金) 21:30:01.00ID:Tx6nrcMv C/C++の弱い型付けによるキャストは機械語と関係ないだろ
Rustは強い型付けしか原則許してなくてunsafe使えば弱い型付けも出来るけど好んでする必要性はないよねー
プログラミング言語と機械語の間はC/C++もRustもLLVM IRで仲介されてるから、どっちかだけが相性良いとかなさそう
LLVM IRじゃなくGas仲介するとこう違うんだよ、くらいの反論を期待してみるテスト
Rustは強い型付けしか原則許してなくてunsafe使えば弱い型付けも出来るけど好んでする必要性はないよねー
プログラミング言語と機械語の間はC/C++もRustもLLVM IRで仲介されてるから、どっちかだけが相性良いとかなさそう
LLVM IRじゃなくGas仲介するとこう違うんだよ、くらいの反論を期待してみるテスト
428デフォルトの名無しさん
2018/04/27(金) 23:30:19.86ID:AfC0onIC429デフォルトの名無しさん
2018/04/27(金) 23:43:23.39ID:MR18u0zM >>427
Any使ったdowncastはunsafeじゃないけどどういうコードの話してんの?
Any使ったdowncastはunsafeじゃないけどどういうコードの話してんの?
430デフォルトの名無しさん
2018/04/28(土) 16:19:50.16ID:6S6rcsk3431デフォルトの名無しさん
2018/05/01(火) 14:27:18.61ID:riKaEN0n rustでフォントをレンダリングしたいのですがfont-rsやfreetypeなどの設定逆引き的なサイトってありませんかね?
チュートリアル的なサイトは見つかるのですがそこから突っ込んで使用したい場合に参考になりそうな情報がみあたらないです
レンダリングされる線を任意の幅にしたいです
極細フォントを使って線幅1ピクセル×2=計2ピクセルでアンチエイリアス無しみたいな感じの結果が欲しいです
チュートリアル的なサイトは見つかるのですがそこから突っ込んで使用したい場合に参考になりそうな情報がみあたらないです
レンダリングされる線を任意の幅にしたいです
極細フォントを使って線幅1ピクセル×2=計2ピクセルでアンチエイリアス無しみたいな感じの結果が欲しいです
432デフォルトの名無しさん
2018/05/01(火) 14:37:54.06ID:riKaEN0n 具体例を補足します
出力が2値の場合に普通にレンダリングした物を減色してしまうと線幅の不均一になったりディザが掛かってしまって
表示品質が極端に悪くなってしまうのでそれを防止したいです
たとえば「田」みたいな字をレンダリングして減色するとある線は1ピクセルだけど別の線は2ピクセルになってしまったり
交わるところに不要なドットが出現したりします
それを全て任意の線幅に統一したいです
出力が2値の場合に普通にレンダリングした物を減色してしまうと線幅の不均一になったりディザが掛かってしまって
表示品質が極端に悪くなってしまうのでそれを防止したいです
たとえば「田」みたいな字をレンダリングして減色するとある線は1ピクセルだけど別の線は2ピクセルになってしまったり
交わるところに不要なドットが出現したりします
それを全て任意の線幅に統一したいです
433デフォルトの名無しさん
2018/05/01(火) 14:58:24.50ID:8Qa5eQjM ここはアンチスレなので、まともな質問はslackへどうぞ
434デフォルトの名無しさん
2018/05/02(水) 04:26:15.76 えぇ。。
435デフォルトの名無しさん
2018/05/02(水) 04:45:47.66ID:JZRYx+4v https://rust-jp.herokuapp.com/
rustのslack
↓のサービス使ってオープンにすればよい
http://slackarchive.io 👀
Rock54: Caution(BBR-MD5:b95868ef2c0ed5e765a4d10ada4cf289)
rustのslack
↓のサービス使ってオープンにすればよい
http://slackarchive.io 👀
Rock54: Caution(BBR-MD5:b95868ef2c0ed5e765a4d10ada4cf289)
436デフォルトの名無しさん
2018/05/02(水) 11:08:56.76ID:C2OG+VM0 Rustってカルトみたいなもんだよな
実態はスカスカで教祖の金儲けに使われてるだけなのに、信者は正義と信じて疑わない辺り
slackなんて内輪の集会に逃げ続けて表の評価に曝されることを避けてる時点でまともなプログラミング言語じゃない
実態はスカスカで教祖の金儲けに使われてるだけなのに、信者は正義と信じて疑わない辺り
slackなんて内輪の集会に逃げ続けて表の評価に曝されることを避けてる時点でまともなプログラミング言語じゃない
437デフォルトの名無しさん
2018/05/02(水) 11:13:07.30ID:9TOinEtH438デフォルトの名無しさん
2018/05/02(水) 11:39:02.32ID:C2OG+VM0439デフォルトの名無しさん
2018/05/02(水) 11:55:03.24ID:9TOinEtH >>438
へー今日はたくさん書き込むつもりなんだ
へー今日はたくさん書き込むつもりなんだ
440デフォルトの名無しさん
2018/05/02(水) 12:31:00.89ID:ZVrvL9q8 こちらはまともなアンチとキチガイアンチのスレになります。
441デフォルトの名無しさん
2018/05/02(水) 12:53:31.01ID:vKwn9vOL いやどっちもキチガイだから
442デフォルトの名無しさん
2018/05/02(水) 12:58:01.18ID:vKwn9vOL >>436
表の評価(2ch)wwww
表の評価(2ch)wwww
443デフォルトの名無しさん
2018/05/02(水) 20:38:46.50ID:Ua9w95BC 少しずつRustの研究が出てきたね
ttps://arxiv.org/abs/1804.10806
ttps://arxiv.org/abs/1804.10806
444デフォルトの名無しさん
2018/05/03(木) 01:12:08.40ID:Sirn7AO1 win10 rs4にしてからrustdocが遅い。
rs4にMeltdown/Spectre対応のパッチも含まれてたんだろうか。
rs4にMeltdown/Spectre対応のパッチも含まれてたんだろうか。
445デフォルトの名無しさん
2018/05/03(木) 02:54:28.33ID:Rj4yBmSF446デフォルトの名無しさん
2018/05/03(木) 08:55:22.99ID:4wWpk2nD Windows defenderが動いてるとかでは
447デフォルトの名無しさん
2018/05/03(木) 12:04:38.70ID:y3R7schb 少なくとも5chではgoよりrustの方が盛り上がってるな。
448デフォルトの名無しさん
2018/05/08(火) 01:41:55.63ID:jFUdx6HI impl traitはよ
449デフォルトの名無しさん
2018/05/08(火) 21:29:46.74ID:RGDg6ogT450デフォルトの名無しさん
2018/05/08(火) 22:15:52.43ID:W4Ax9FiD ドワンゴといい、ヤバい会社の指標としていいねw
451デフォルトの名無しさん
2018/05/08(火) 22:23:27.27ID:T0pMALEX 機械語のレベルと相性が悪いしなw
453デフォルトの名無しさん
2018/05/08(火) 23:31:08.80ID:W4Ax9FiD 同じリストを他言語でも作ってみたら?
どれだけバカなこと言ってるかわかると思うよ。
どれだけバカなこと言ってるかわかると思うよ。
454デフォルトの名無しさん
2018/05/08(火) 23:52:08.90ID:EnN/pyur ああそりゃ分かるだろうね、是非作ってみたまえよ
455デフォルトの名無しさん
2018/05/09(水) 00:11:01.28ID:ZcDO5kt6 >>449
謳い文句通りの「速度とマルチスレッド」で選んだら後でめんどくさいよ。
MIRの導入もなかなか成果出てないし、同期はセマフォ/ミューテックスしかなくて
javaみたいに高レベルから低レベルまで自分で書けるわけじゃないし、
non blocking ioも、lock free collectionもなくて外部ライブラリへの依存度が極めて高いし、
cargo腐ってるせいでrustのtooling絡みのissueが日に日に増えるし。
rustの良いところは言語の部分だからコアな機能使わないなら他言語のほうが良い。
土方の要求には合わないでしょ。
それよりimpl traitまだー?
謳い文句通りの「速度とマルチスレッド」で選んだら後でめんどくさいよ。
MIRの導入もなかなか成果出てないし、同期はセマフォ/ミューテックスしかなくて
javaみたいに高レベルから低レベルまで自分で書けるわけじゃないし、
non blocking ioも、lock free collectionもなくて外部ライブラリへの依存度が極めて高いし、
cargo腐ってるせいでrustのtooling絡みのissueが日に日に増えるし。
rustの良いところは言語の部分だからコアな機能使わないなら他言語のほうが良い。
土方の要求には合わないでしょ。
それよりimpl traitまだー?
456デフォルトの名無しさん
2018/05/09(水) 00:44:09.86ID:D/4RZNTl 間も無くなんだから静かに待ってなさい
457デフォルトの名無しさん
2018/05/09(水) 08:29:25.33ID:SINErtCB458デフォルトの名無しさん
2018/05/09(水) 13:55:28.84ID:9bmRNzTn goって言語仕様でマルチスレッドによるデータレースを起こさない仕組みってあるの?
無かったらその部分が大きいのでは?
無かったらその部分が大きいのでは?
459デフォルトの名無しさん
2018/05/09(水) 15:04:31.38ID:bH4TOh4o goはchannel経由にすれば自動的にアトミック
mutex部分が隠ぺいされてるので意識する必要が無い
mutex部分が隠ぺいされてるので意識する必要が無い
460デフォルトの名無しさん
2018/05/10(木) 01:52:41.29ID:8hhZ9q5s むしろrustがなぜチャネル的なもの入れなかったんだ?
461デフォルトの名無しさん
2018/05/10(木) 02:11:20.77ID:71z1/J2u 標準にも外部crateにもいっぱいあるだろ
ライブラリとしてではなく言語仕様としてという意味か?
ライブラリとしてではなく言語仕様としてという意味か?
462デフォルトの名無しさん
2018/05/10(木) 10:12:22.36ID:sqBEyANZ >>459
言ってることがよくわからんメモリ共有は基本的にmutexみたいな物はついてない気がするけど。基本的にchannel経由で情報交換しない方針にすれば
データ競合は防げるって話では?
rustってデータ競合がコンパイル時点で防げるって意味がわからん。
そんなことがかのうなん?
言ってることがよくわからんメモリ共有は基本的にmutexみたいな物はついてない気がするけど。基本的にchannel経由で情報交換しない方針にすれば
データ競合は防げるって話では?
rustってデータ競合がコンパイル時点で防げるって意味がわからん。
そんなことがかのうなん?
463デフォルトの名無しさん
2018/05/10(木) 10:16:06.63ID:sqBEyANZ464デフォルトの名無しさん
2018/05/10(木) 10:17:49.30ID:sqBEyANZ >>463
詳細はこちら
Goでスレッド(goroutine)セーフなプログラムを書くために必ず注意しなければいけない点
https://qiita.com/ruiu/items/54f0dbdec0d48082a5b1
詳細はこちら
Goでスレッド(goroutine)セーフなプログラムを書くために必ず注意しなければいけない点
https://qiita.com/ruiu/items/54f0dbdec0d48082a5b1
465デフォルトの名無しさん
2018/05/10(木) 13:22:21.00ID:MOe7VLfi 数十GBのオブジェクト管理は、gc待ちきついからオフヒープでとか、(これ聞いたときよりgcは良くなってる)
goroutineで確保したメモリは解放せずgoが管理するから、常駐で同時に大量に走ると解放されないとかはあるみたい。
goroutineで確保したメモリは解放せずgoが管理するから、常駐で同時に大量に走ると解放されないとかはあるみたい。
466デフォルトの名無しさん
2018/05/10(木) 13:35:12.76ID:71z1/J2u >>462
それが売りの一つなんだから当然出来る
具体的にはこれでも読んでくれ
https://rust-lang-ja.github.io/the-rust-programming-language-ja/1.6/book/concurrency.html
それが売りの一つなんだから当然出来る
具体的にはこれでも読んでくれ
https://rust-lang-ja.github.io/the-rust-programming-language-ja/1.6/book/concurrency.html
467デフォルトの名無しさん
2018/05/10(木) 18:25:01.25ID:0Uo+Yl5e 以下の場合に&*fで具体的にどうなってるのかが分からない
*でderefされてトレイトオブジェクトの実態になって、&を付けることで再度トレイトオブジェクトになってる?
ちなみにexec(f.deref())だとそのまま通るけど、これはBoxのderefが&Tを返すからだよね?
*だとBoxのderefで返った&Tではなく、さらにderefされてTが返っているってこと?
fn create() -> Box<Fn()> {
Box::new(|| println!("test"))
}
fn exec<F: Fn()>(f: F) {
f()
}
fn main() {
let f = create();
exec(&*f);
}
*でderefされてトレイトオブジェクトの実態になって、&を付けることで再度トレイトオブジェクトになってる?
ちなみにexec(f.deref())だとそのまま通るけど、これはBoxのderefが&Tを返すからだよね?
*だとBoxのderefで返った&Tではなく、さらにderefされてTが返っているってこと?
fn create() -> Box<Fn()> {
Box::new(|| println!("test"))
}
fn exec<F: Fn()>(f: F) {
f()
}
fn main() {
let f = create();
exec(&*f);
}
468デフォルトの名無しさん
2018/05/10(木) 21:37:45.30ID:r2ZBYv9N Derefを実装した型に対しての*xは*x.deref()の糖衣構文
つまり、&*xは&*x.deref()と同じで、それはつまり、x.deref()と同じ
つまり、&*xは&*x.deref()と同じで、それはつまり、x.deref()と同じ
469デフォルトの名無しさん
2018/05/10(木) 22:16:14.49ID:0Uo+Yl5e なるほど
*x ==x.deref() って言う認識だったのが間違ってたのか
ありがとう
*x ==x.deref() って言う認識だったのが間違ってたのか
ありがとう
470デフォルトの名無しさん
2018/05/12(土) 02:06:23.28ID:6a2pRrds impl trait来たな
471デフォルトの名無しさん
2018/05/12(土) 14:27:50.20ID:CbmhA0Cx きた
472デフォルトの名無しさん
2018/05/14(月) 08:56:23.29ID:+8ra2A+L 久しぶりにRustやろうと思ったけど公式リファレンスが最新版に追いついてないのな
どっかに変更履歴のまとめとか無いのかな
どっかに変更履歴のまとめとか無いのかな
473デフォルトの名無しさん
2018/05/14(月) 12:00:52.07ID:fAXXTBeo >>427
公式リファレンスって何のことを指してるんだ?
APIリファレンスならきちんと最新版に追従してるし、
チュートリアル(The Book)も2nd Editionがきちんと出てる
バージョンアップの追従ならリリースノート見るかRustの公式ブログ見れば大体分かると思う
Rustは6週間に1回のハイペースでマイナーバージョンアップ繰り返してるから
The Bookのほうは最新版に追いつくこと自体がほぼ不可能だと思うけど
(つい最近もimpl traitがstable化されたばっかりだし…)
公式リファレンスって何のことを指してるんだ?
APIリファレンスならきちんと最新版に追従してるし、
チュートリアル(The Book)も2nd Editionがきちんと出てる
バージョンアップの追従ならリリースノート見るかRustの公式ブログ見れば大体分かると思う
Rustは6週間に1回のハイペースでマイナーバージョンアップ繰り返してるから
The Bookのほうは最新版に追いつくこと自体がほぼ不可能だと思うけど
(つい最近もimpl traitがstable化されたばっかりだし…)
475デフォルトの名無しさん
2018/05/14(月) 21:32:55.87ID:+8ra2A+L そのimpl traitが気になってまたRustやろうと思ったんだけどね
全機能の索引みたいなのがないと学習効率が落ちる
全機能の索引みたいなのがないと学習効率が落ちる
476デフォルトの名無しさん
2018/05/17(木) 09:49:24.40ID:iDnHcMfd rustって生産性高い?
安全性が高まって結果的に高くなるということではなくね
やっぱでかいプログラムじゃなきゃ使う効果ない?
安全性が高まって結果的に高くなるということではなくね
やっぱでかいプログラムじゃなきゃ使う効果ない?
477デフォルトの名無しさん
2018/05/17(木) 10:44:40.51ID:eZl7hMvh Javaでnull参照が10億ドル単位の損害と言われてるので
RustはJavaより10億ドルほど生産性が高い
RustはJavaより10億ドルほど生産性が高い
478デフォルトの名無しさん
2018/05/17(木) 11:16:01.90ID:mMzQfbWV まあ、ネタにマジレスになるが、
その論法だと俺の未完成言語は誰もバグを生み出してないので
Rustより生産性が高いなw
その論法だと俺の未完成言語は誰もバグを生み出してないので
Rustより生産性が高いなw
479デフォルトの名無しさん
2018/05/17(木) 11:48:49.35ID:UfgM043o >>478
分母分子共にゼロなので計算不能ってやつね。
分母分子共にゼロなので計算不能ってやつね。
480デフォルトの名無しさん
2018/05/17(木) 14:42:41.57ID:5Q9GbdJl チーム開発に良さそうな気がするけどメンバーのレベルにかなり依存しそう
481デフォルトの名無しさん
2018/05/17(木) 15:12:36.48ID:xSjwlbqQ 自分がGCなしの言語使ってた時の経験だと、ヌルポより、freeした後にアクセスするバグの方が多かったから、オーナーを一つにするrustはいいと思う。
まあ、objective-cのARCでいいじゃんとも思うけど。
まあ、objective-cのARCでいいじゃんとも思うけど。
482デフォルトの名無しさん
2018/05/17(木) 15:31:36.59ID:eZl7hMvh そこでoptionalですよ
こいよ継承クラス、ポリモーフィズムなんて捨ててかかって来い!
実際、null非許容のポインタが欲しい
こいよ継承クラス、ポリモーフィズムなんて捨ててかかって来い!
実際、null非許容のポインタが欲しい
483デフォルトの名無しさん
2018/05/17(木) 15:59:25.11 誰がヌルポなんか 、ヌルポなんか怖かねぇ!
484デフォルトの名無しさん
2018/05/17(木) 16:39:48.45ID:l6lckqvi C#だとぬるり
485デフォルトの名無しさん
2018/05/17(木) 19:10:55.29ID:eQ6djlVW C#の発想元はJavaよってC#もぬるぽ(意味不)
486デフォルトの名無しさん
2018/05/17(木) 23:47:12.62ID:STJHYINb 1.27.0-nightly (2f2a11dfc 2018-05-16)がregressionしとる。
issueある。待つヨロシ。
>>427,473
the rust referenceのことじゃね?the bookとは別にあるだろ。
全然追いついてないよアレ。そもそもまだ仕様書がない言語だし。
" best-effort document"って書いてあるでしょ
issueある。待つヨロシ。
>>427,473
the rust referenceのことじゃね?the bookとは別にあるだろ。
全然追いついてないよアレ。そもそもまだ仕様書がない言語だし。
" best-effort document"って書いてあるでしょ
487デフォルトの名無しさん
2018/05/18(金) 23:04:38.08ID:e1n+oPRU httpサーバでありかつクライアントであるみたいなプログラム書く場合、現状hyper一択なのかね?
acitx-webとか誰か使ってない?
acitx-webとか誰か使ってない?
488デフォルトの名無しさん
2018/05/19(土) 02:24:33.88ID:1CYkmYAx 最初rocketで書いてたけどactix-webで書き直してる
今だとactix-webが一番良い感じだと思う
必要に応じて同期、非同期、アクターモデルと使い分けられるし
今だとactix-webが一番良い感じだと思う
必要に応じて同期、非同期、アクターモデルと使い分けられるし
489デフォルトの名無しさん
2018/05/19(土) 22:00:56.80ID:o9r1YzQK >>488
良い感じか。使ってみるか。ありがとう
良い感じか。使ってみるか。ありがとう
490デフォルトの名無しさん
2018/05/23(水) 01:20:45.09ID:RRIpR+v2 https://github.com/rust-lang/rfcs/pull/2444
有志「クソ機能入ったのいらねえから消そうぜ」
大勢「いいな!賛成」
独裁開発チーム「もう入ったから消せませーーーーんwwwwww(クローズ&ロック)」
systemdかよって
有志「クソ機能入ったのいらねえから消そうぜ」
大勢「いいな!賛成」
独裁開発チーム「もう入ったから消せませーーーーんwwwwww(クローズ&ロック)」
systemdかよって
491デフォルトの名無しさん
2018/05/23(水) 03:14:02.94ID:V0Z2NuNB >>490
もう入ったから消せませんってのは横暴なようにも見えるがしようがないとも思う
一度入れてしまった機能をまた使えなくするとか、それこそ混乱するし…
そもそも何故impl trait を引数の位置にも書けるようにしたのかは確かに甚だ疑問ではあるけど…
引数の位置でジェネリクスとトレイト境界じゃなくてimpl trait じゃないとダメなケースとかある?
無いなら、warning出してジェネリクスとトレイト境界に書き直すように促すのが妥当じゃないかな?
もう入ったから消せませんってのは横暴なようにも見えるがしようがないとも思う
一度入れてしまった機能をまた使えなくするとか、それこそ混乱するし…
そもそも何故impl trait を引数の位置にも書けるようにしたのかは確かに甚だ疑問ではあるけど…
引数の位置でジェネリクスとトレイト境界じゃなくてimpl trait じゃないとダメなケースとかある?
無いなら、warning出してジェネリクスとトレイト境界に書き直すように促すのが妥当じゃないかな?
492デフォルトの名無しさん
2018/05/23(水) 07:29:53.45ID:chu47WW7493デフォルトの名無しさん
2018/05/23(水) 10:44:20.66ID:KWn7zjxF こういうところでマウンティングとらないといけない辺り
言語(笑)開発チームとやらも内情はどうなってることやら
言語(笑)開発チームとやらも内情はどうなってることやら
494デフォルトの名無しさん
2018/05/23(水) 11:19:22.58ID:2AZG2/zg たしかにどっちで書くべきかよくわからんくなった
495デフォルトの名無しさん
2018/05/23(水) 12:46:35.30ID:wx8WkS/n <T: Trait> foo: T
と
foo: &Trait
との比較で特殊なケースを除き前者の方が効率良いが
syntax上後者の方が簡単なので
初心者が誤って後者を使ってしまうケースがあった
これを防ぐためにimpl Trait および &dyn Traitを導入し
&Traitをdeprecateすることになった
と
foo: &Trait
との比較で特殊なケースを除き前者の方が効率良いが
syntax上後者の方が簡単なので
初心者が誤って後者を使ってしまうケースがあった
これを防ぐためにimpl Trait および &dyn Traitを導入し
&Traitをdeprecateすることになった
496デフォルトの名無しさん
2018/05/23(水) 19:22:54.70ID:Au5e7VGg 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
D49IO
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』
D49IO
497デフォルトの名無しさん
2018/05/23(水) 20:12:10.79ID:OqqpDSMd もう入ったから消せません
は正論
何故クソ機能の進入を許してしまったのか、どうすれば食い止められたのかについて追求すべき
は正論
何故クソ機能の進入を許してしまったのか、どうすれば食い止められたのかについて追求すべき
498デフォルトの名無しさん
2018/05/23(水) 21:15:28.51ID:cEWT5Ura ジェネリクスの型変数って引数と戻り値の型を揃えるとかそういう使い方をすべきであって
Traitをimplした型を受け取るという意味ではimpl Traitを使うべきだと思う
ただimpl Traitを導入するなら1.0の時点で導入してて欲しかった
Traitをimplした型を受け取るという意味ではimpl Traitを使うべきだと思う
ただimpl Traitを導入するなら1.0の時点で導入してて欲しかった
499デフォルトの名無しさん
2018/05/23(水) 23:34:44.01ID:J44hs+nP こういうところでマウンティングとらないといけない辺り
言語(笑)開発チームとやらも内情はどうなってることやら
言語(笑)開発チームとやらも内情はどうなってることやら
500デフォルトの名無しさん
2018/05/24(木) 00:25:13.01ID:XbYocBeq javaのジェネリックスが理解できてないやつが多いだけ。
501デフォルトの名無しさん
2018/05/25(金) 02:08:00.91ID:MJUyxiHQ Rust始まる前に終わったか
502デフォルトの名無しさん
2018/05/25(金) 10:28:02.89ID:fl2+4CP3 始まる要素が欠片でもあっただろうか
503デフォルトの名無しさん
2018/05/25(金) 10:31:47.59ID:fl2+4CP3504デフォルトの名無しさん
2018/05/25(金) 12:05:08.76ID:2Lpcv/H6 fn foo(a: &dyn Trait)
と
fn foo<T: Trait>(a: T)
では前者の方がlightweightでは
と
fn foo<T: Trait>(a: T)
では前者の方がlightweightでは
505デフォルトの名無しさん
2018/05/29(火) 19:15:02.85ID:MDdgGfn5 target/debug 以下に生成されるdepsとかbuildって何なの?
goとかにはないよね?
gtk-rsだと500MB消費しちゃうんだけど他のプロジェクトで使い回しとか出来ないの?
goとかにはないよね?
gtk-rsだと500MB消費しちゃうんだけど他のプロジェクトで使い回しとか出来ないの?
506デフォルトの名無しさん
2018/05/29(火) 23:04:02.93ID:R7SeORIn >>505 環境変数CARGO_TARGET_DIRを指定してやれば再利用してくれるよ
ただ、vscodeのrustプラグインの何かがこの環境変数を考慮してないんで挙動がおかしくなったことがあるんで注意
ただ、vscodeのrustプラグインの何かがこの環境変数を考慮してないんで挙動がおかしくなったことがあるんで注意
507デフォルトの名無しさん
2018/05/29(火) 23:26:47.02ID:MDdgGfn5508デフォルトの名無しさん
2018/05/29(火) 23:29:14.13ID:TMN/Dqsk Rustと言えばcookpad。
509デフォルトの名無しさん
2018/05/30(水) 14:08:55.25ID:EgEwhYIf >>501
最近Rustの話聞かなくなったな
最近Rustの話聞かなくなったな
510デフォルトの名無しさん
2018/05/30(水) 18:12:45.66ID:pSj5bsTP HNはリリースの度に話題になってるけど
511デフォルトの名無しさん
2018/05/31(木) 06:31:41.15ID:Ao0QiwhU 日本の企業くらいだよ。
rustで書いてまっせっていうバカなアピールするのは。
rustで書いてまっせっていうバカなアピールするのは。
512デフォルトの名無しさん
2018/05/31(木) 06:42:55.06ID:RS4tQXGE まあCloudflareも日本にリージョンあるしな
513デフォルトの名無しさん
2018/05/31(木) 10:37:31.25ID:QFV8wAla >>511
泥箱って日本企業だっけ
泥箱って日本企業だっけ
514デフォルトの名無しさん
2018/05/31(木) 15:17:41.00ID:Rs+XOVpI 日本の企業って凄いんだなー
515デフォルトの名無しさん
2018/05/31(木) 20:32:40.66ID:ITatAB0P wtftwっていうタイル型WM、設定ファイルまでrustで書くのどうなんだろ
設定ファイルはluaあたりが無難?
設定ファイルはluaあたりが無難?
516デフォルトの名無しさん
2018/05/31(木) 22:08:10.33ID:Ao0QiwhU517デフォルトの名無しさん
2018/05/31(木) 22:30:50.22ID:Rs+XOVpI >>516
「なかったことにしたがってる」というソースをプリーズ
「なかったことにしたがってる」というソースをプリーズ
518デフォルトの名無しさん
2018/05/31(木) 22:43:00.94ID:RS4tQXGE Dropboxのbrotliデコンパイラが昨日更新されてたから
24時間以内のホットな情報だ
24時間以内のホットな情報だ
519デフォルトの名無しさん
2018/05/31(木) 22:43:34.41 Rustが失脚すると得をする組織があるの?
どうしてそこまで情熱的にRustを貶すの?
どうしてそこまで情熱的にRustを貶すの?
520デフォルトの名無しさん
2018/05/31(木) 22:46:14.56ID:Qkx1CtmH >>515 ざっとコンフィグファイル見たらXMonadのコンフィグよりは理解しやすいように思った
xmonad.hsはもっと宣言的に書けて、モナドとか上手く作って見栄えは良くできるんだけど、
馴染みのない演算子(<+>とか)使いまくるんで、よっぽどHaskellに慣れ親しんだ人でないと全容が理解できない
設定ファイルのフォーマットを開発言語と同じにするのはdwmから続くタイル型WMの流儀だし、
思ったより読めていいと思うよ。
xmonad.hsはもっと宣言的に書けて、モナドとか上手く作って見栄えは良くできるんだけど、
馴染みのない演算子(<+>とか)使いまくるんで、よっぽどHaskellに慣れ親しんだ人でないと全容が理解できない
設定ファイルのフォーマットを開発言語と同じにするのはdwmから続くタイル型WMの流儀だし、
思ったより読めていいと思うよ。
521デフォルトの名無しさん
2018/06/01(金) 00:57:19.91ID:Lcv3mjW7522デフォルトの名無しさん
2018/06/01(金) 01:23:36.92ID:n6iooPs9523デフォルトの名無しさん
2018/06/01(金) 04:40:22.00ID:WbqigEkQ >>520
ほうほう
ほうほう
524デフォルトの名無しさん
2018/06/01(金) 06:21:30.96ID:/a7YB1o/525デフォルトの名無しさん
2018/06/01(金) 07:12:12.64ID:V5eoRgyy ほーん具体的にどんな問題がおきたの?
526デフォルトの名無しさん
2018/06/01(金) 07:23:19.18ID:M/qnTWL0 んー例えば
Rustの提案するエセソリューションは機械語のレベルと相性が悪い
CやC++のほうがまだまともなアプローチしてる
Rustの提案するエセソリューションは機械語のレベルと相性が悪い
CやC++のほうがまだまともなアプローチしてる
527デフォルトの名無しさん
2018/06/01(金) 08:47:59.46ID:n6iooPs9 >>525
んー例えば
コンパイルが通せなくて自尊心が傷ついて自ら会社をやめちゃう問題とか
この話どこまで事実か知らないけど仮に本当だったとしても
これって言語の問題というよりチームのプログラマの腕を過大評価
もしくは計算に入れてなかったというマネジメントの問題だよね
んー例えば
コンパイルが通せなくて自尊心が傷ついて自ら会社をやめちゃう問題とか
この話どこまで事実か知らないけど仮に本当だったとしても
これって言語の問題というよりチームのプログラマの腕を過大評価
もしくは計算に入れてなかったというマネジメントの問題だよね
528デフォルトの名無しさん
2018/06/01(金) 09:23:44.51ID:vv7FkXWB んー例えば
プラズマクラスター付き家電が話に出てきたら今まで黙ってたのに凄い勢いでエセ科学だと解説し出すよね
プラズマクラスター付き家電が話に出てきたら今まで黙ってたのに凄い勢いでエセ科学だと解説し出すよね
529デフォルトの名無しさん
2018/06/01(金) 11:58:37.06ID:HQSTzzds いや、この粘着をクビにするためにRust導入したんでしょ
性格異常だもん
性格異常だもん
530デフォルトの名無しさん
2018/06/01(金) 17:08:52.31ID:j7xDfBQ9 老害をふるい落とすために新しい言語を取り入れてるって話?
531デフォルトの名無しさん
2018/06/01(金) 19:16:22.80ID:q9V9sFRe このフィボナッチ数列も書けないあほ
何度言い返せなくなっても数日後に甦る粘着性
C++で実行時にエラーが出るようなコードを書きまくったのでしょう。性格の悪さと溢れる自尊心から誰の耳も貸さなかったのでしょう。
プログラマーとして生きるよりかは、匿名掲示板で巨悪組織Mozzilaと闘うBBS戦士の方が社会的に良さそう
何度言い返せなくなっても数日後に甦る粘着性
C++で実行時にエラーが出るようなコードを書きまくったのでしょう。性格の悪さと溢れる自尊心から誰の耳も貸さなかったのでしょう。
プログラマーとして生きるよりかは、匿名掲示板で巨悪組織Mozzilaと闘うBBS戦士の方が社会的に良さそう
532デフォルトの名無しさん
2018/06/01(金) 19:29:07.67ID:M/qnTWL0 たとえばドワンゴとかDropboxとか
Rustを採用した企業自体を叩く行為をよくしているよな
あれ見るとちょっと辛くなる
Rustを採用した企業自体を叩く行為をよくしているよな
あれ見るとちょっと辛くなる
533デフォルトの名無しさん
2018/06/01(金) 20:33:15.28ID:hus0bbCf >>526
具体的には?
具体的には?
534デフォルトの名無しさん
2018/06/01(金) 22:00:45.35ID:/a7YB1o/ 例えばここみたいに安全でもなんでもないドヤしたいだけのクソなrustコードが量産されるとか。
ttp://tanakh.jp/posts/2016-12-20-rust-pezy-sc.html
ttp://tanakh.jp/posts/2016-12-20-rust-pezy-sc.html
535デフォルトの名無しさん
2018/06/01(金) 22:44:23.66ID:hus0bbCf だから具体的はどこが問題なの?
536デフォルトの名無しさん
2018/06/01(金) 22:47:27.38ID:aoTZOmsj 槍玉にあげる例が1個しかないのがダサ過ぎるわ。しかもその例も対象が特殊だし
>>534は「それRustでやる意味がある?」という疑問に全く応えられないのが問題
LLVM IR-> PEZY-SCというコンパイラがあるんだったら、LLVMがバックエンドの他言語でもいいよねって話
それができないなら、LLVM->PEZY-SCは未完成か現実に即してないんじゃねえのって話
>>534は「それRustでやる意味がある?」という疑問に全く応えられないのが問題
LLVM IR-> PEZY-SCというコンパイラがあるんだったら、LLVMがバックエンドの他言語でもいいよねって話
それができないなら、LLVM->PEZY-SCは未完成か現実に即してないんじゃねえのって話
537デフォルトの名無しさん
2018/06/01(金) 22:57:48.57ID:hus0bbCf rustでやってみたって記事にrustでやる意味あるの?って疑問が出てくるのが不思議なんだけど
rustでも出来た、以外に意味はないでしょう
rustでも出来た、以外に意味はないでしょう
538デフォルトの名無しさん
2018/06/01(金) 23:37:58.33ID:RhYZ0Afc 新しいこと覚えられないから焦ってるんじゃね
539デフォルトの名無しさん
2018/06/02(土) 00:12:03.87ID:LoS19xRX >>534
安全じゃないコード も 書けるってことに価値があるんだろ?
C/C++以外の他言語では書くことさえできない。でもC/C++は安全性を売りにはしていない
Rustは安全性を売りにしつつ、必要に応じて安全性を捨てる選択もできるということに価値がある
で、たまたまその記事が安全性を捨てることが必要な数少ない例の1つだったってだけ
安全じゃないコード も 書けるってことに価値があるんだろ?
C/C++以外の他言語では書くことさえできない。でもC/C++は安全性を売りにはしていない
Rustは安全性を売りにしつつ、必要に応じて安全性を捨てる選択もできるということに価値がある
で、たまたまその記事が安全性を捨てることが必要な数少ない例の1つだったってだけ
540デフォルトの名無しさん
2018/06/02(土) 08:09:01.38ID:yQHVvQ0k 安全でもなんでもないって
unsafeあるやんけ!危険危険!
前後の文脈一切分からんけどとにかく危なそうなこと書いてあるやんけ!
つって叩いてるんだろうなw
>>535
その手の問いにそいつが素直に答えたこと無いからあきらめよう
unsafeあるやんけ!危険危険!
前後の文脈一切分からんけどとにかく危なそうなこと書いてあるやんけ!
つって叩いてるんだろうなw
>>535
その手の問いにそいつが素直に答えたこと無いからあきらめよう
541デフォルトの名無しさん
2018/06/02(土) 09:00:03.22ID:uxIlP8w7 たまたまねw
どんだけコード例出しても言い出しそうだなw
そもそもコード例が少ない訳で、推進してる奴のコードがそんなもんなら
十分否定的な要素だけどね。
どんだけコード例出しても言い出しそうだなw
そもそもコード例が少ない訳で、推進してる奴のコードがそんなもんなら
十分否定的な要素だけどね。
542デフォルトの名無しさん
2018/06/02(土) 09:25:00.11ID:yb2DUuBi grep出来ねえのか^^;
543デフォルトの名無しさん
2018/06/02(土) 09:27:20.96ID:1kkEW1PU ちょっとrustの記事書いただけで代表的な推進派扱いかよ
544デフォルトの名無しさん
2018/06/02(土) 09:29:46.62ID:IrGCDZgn >>541
お前さんの理屈だと、Rustじゃこんなに危険になる!って事だろ?
じゃあ、Rustではそういう危険な書き方しか出来ない!って示さなきゃな。
俺は中立だが、あんまり非論理的なdisりはアンチ=低能と思わせたがってるピエロにしか見えんよ。
お前さんの理屈だと、Rustじゃこんなに危険になる!って事だろ?
じゃあ、Rustではそういう危険な書き方しか出来ない!って示さなきゃな。
俺は中立だが、あんまり非論理的なdisりはアンチ=低能と思わせたがってるピエロにしか見えんよ。
545デフォルトの名無しさん
2018/06/02(土) 09:41:57.37ID:yb2DUuBi 既に20万行はコードあるからレビューがてら指摘したら喜ばれるよ
546デフォルトの名無しさん
2018/06/02(土) 11:52:56.13ID:SXqC6st7 >>541
ほんとだどこが問題で悪いのか全然書かない
具体的に言及しだすとフィボナッチ数列とか機械語レベルとか、残念なことになるのが自分でもわかってたのか
まあ本人が書いた通り「ドヤしたいだけ」とか…なんかな?前もマウンティング取られたとか訴えてたし…
ほんとだどこが問題で悪いのか全然書かない
具体的に言及しだすとフィボナッチ数列とか機械語レベルとか、残念なことになるのが自分でもわかってたのか
まあ本人が書いた通り「ドヤしたいだけ」とか…なんかな?前もマウンティング取られたとか訴えてたし…
547デフォルトの名無しさん
2018/06/03(日) 21:39:05.60ID:xPSrrQIy またいつもの、ボロクソにされたらしばらく潜伏してから復活するパターンかな
たまには芸風変えたら
たまには芸風変えたら
548デフォルトの名無しさん
2018/06/04(月) 06:53:30.60ID:OFCCUtyY Rustの不満は言語仕様やrustcよりcargoやその辺の連携(情報の少なさも含む)にある
549デフォルトの名無しさん
2018/06/04(月) 07:51:33.98ID:+kVYhEiS 既成のクレートを探すのはcrates.ioになると思うけどライセンスってどうやって調べるんだろ
同様にクレート間の依存関係も判りにくい
どちらも一式を落としてきて中身を確認しないと判らないような・・・
Cargoで自動ダウンロードして・・・みたいな使い方をしていると意図せずGPL/LGPLになっていた
みたいなライセンス事故が起きそう
同様にクレート間の依存関係も判りにくい
どちらも一式を落としてきて中身を確認しないと判らないような・・・
Cargoで自動ダウンロードして・・・みたいな使い方をしていると意図せずGPL/LGPLになっていた
みたいなライセンス事故が起きそう
550デフォルトの名無しさん
2018/06/04(月) 09:21:50.73ID:wd+rp+GF551デフォルトの名無しさん
2018/06/04(月) 09:35:16.99ID:4FFAt/Kh LGPLのstatic linkとかやめて欲しいよね
552デフォルトの名無しさん
2018/06/04(月) 22:37:59.16ID:OFCCUtyY553デフォルトの名無しさん
2018/06/05(火) 01:20:50.84ID:4vI8haY4554デフォルトの名無しさん
2018/06/05(火) 01:35:07.04ID:4vI8haY4 >>552
no_stdかどうかについては、Cargo.tomlのcategoryパートに"no-std"があるかどうかぐらいしか確認するすべなさそう(2017-2-10に追加されたっぽい)。
皆が皆付けてるとは思えないので、参考程度にしかならないだろうけど。
no_stdかどうかについては、Cargo.tomlのcategoryパートに"no-std"があるかどうかぐらいしか確認するすべなさそう(2017-2-10に追加されたっぽい)。
皆が皆付けてるとは思えないので、参考程度にしかならないだろうけど。
555デフォルトの名無しさん
2018/06/06(水) 04:08:38.62ID:SHaHb3Ap ちょうどいい機会だから、カーゴのギフハブべったり依存をやめて抽象化してほしいわん
556デフォルトの名無しさん
2018/06/06(水) 07:27:41.91ID:j1CMVtJk は?
557デフォルトの名無しさん
2018/06/06(水) 08:37:47.80ID:hN7IXoGK crates.ioべったりは分かるけどGitHub依存って何
558デフォルトの名無しさん
2018/06/06(水) 09:53:27.50ID:x7s61f1u goと勘違いしてるのでは
559デフォルトの名無しさん
2018/06/09(土) 09:42:43.51ID:W19N5ngq rustダメじゃん
firefoxは言語オタに支配されたのか?
【IT】高速化を進めてアドオンを排除したFirefox、ついにシェアが10%切る★2
https://asahi.5ch.net/test/read.cgi/newsplus/1528388348/
firefoxは言語オタに支配されたのか?
【IT】高速化を進めてアドオンを排除したFirefox、ついにシェアが10%切る★2
https://asahi.5ch.net/test/read.cgi/newsplus/1528388348/
560デフォルトの名無しさん
2018/06/09(土) 10:00:10.77ID:4+qUC/SZ FirefoxのシェアでRust叩きって前スレでもやったじゃん
http://mevius.5ch.net/test/read.cgi/tech/1507970294/100-
http://mevius.5ch.net/test/read.cgi/tech/1507970294/100-
561デフォルトの名無しさん
2018/06/09(土) 12:47:19.10ID:Cz/ni8by ?
前やったから何?
前やったから何?
562デフォルトの名無しさん
2018/06/09(土) 13:15:23.42ID:qABRMkwT なんで筋の通らない批判を平然とするのか不思議
563デフォルトの名無しさん
2018/06/09(土) 15:26:07.97ID:4+qUC/SZ >>561
ええ…?FFアドオン排除でRustディスは気にならないのか
以前の試みはアドオンとRustを絡めてみた感じだったな
↓のレスをいつものごとく無視し数日潜んでRust叩きを試みていたけど、スレを跨いで同じ材料出すなよ
109 デフォルトの名無しさん sage 2017/11/15(水) 14:21:13.24 ID:FBksKtwj
>>108
失敗してるやん
Rustなんかで書き直したせいでアドオン全滅してる
114 デフォルトの名無しさん 2017/11/15(水) 14:36:17.78 ID:bBOLEH2G
>>109
それは設計の段階で従来のアドオンとの互換性の一部を捨てるように仕様変更したからだよ。
firefoxのアドオンは自由度が高すぎるが故に、セキュリティに問題を抱えやすかったし、
アドオン同士が衝突して落ちるとかも結構あったから、そこら辺をChromeと同レベルくらいに制限して、
セキュリティと安定性を取る方向に方針転換した。
仕様が変わってるんだから、Rustで書こうが他の言語で書こうがどっちにしろ従来のアドオンの一部は動かないよ。
ええ…?FFアドオン排除でRustディスは気にならないのか
以前の試みはアドオンとRustを絡めてみた感じだったな
↓のレスをいつものごとく無視し数日潜んでRust叩きを試みていたけど、スレを跨いで同じ材料出すなよ
109 デフォルトの名無しさん sage 2017/11/15(水) 14:21:13.24 ID:FBksKtwj
>>108
失敗してるやん
Rustなんかで書き直したせいでアドオン全滅してる
114 デフォルトの名無しさん 2017/11/15(水) 14:36:17.78 ID:bBOLEH2G
>>109
それは設計の段階で従来のアドオンとの互換性の一部を捨てるように仕様変更したからだよ。
firefoxのアドオンは自由度が高すぎるが故に、セキュリティに問題を抱えやすかったし、
アドオン同士が衝突して落ちるとかも結構あったから、そこら辺をChromeと同レベルくらいに制限して、
セキュリティと安定性を取る方向に方針転換した。
仕様が変わってるんだから、Rustで書こうが他の言語で書こうがどっちにしろ従来のアドオンの一部は動かないよ。
564デフォルトの名無しさん
2018/06/10(日) 00:29:32.38ID:+hx+JhDk 今回は1週間も我慢できなかったのか
ほかに行く場所ないの
ほかに行く場所ないの
565デフォルトの名無しさん
2018/06/10(日) 01:42:55.67ID:x48+YOhO566デフォルトの名無しさん
2018/06/10(日) 09:09:46.77ID:gHOtKfe5 >>565
gitとgithubはちがうよ?
gitとgithubはちがうよ?
567デフォルトの名無しさん
2018/06/10(日) 09:10:23.63ID:gHOtKfe5 キチガイ帰ってきてよかった
568デフォルトの名無しさん
2018/06/10(日) 10:06:20.84ID:flig3pd5 相変わらず宗教じみてんな
569デフォルトの名無しさん
2018/06/16(土) 11:05:45.57ID:dxp9ohIz 何でio::Errorにファイル名入ってないんだろう? 不便だなーと思ってたけど
検索してみたら、前は入ってたのに1.0リリース前に削除されたんだとさ
https://internals.rust-lang.org/t/add-filename-information-to-io-error/
検索してみたら、前は入ってたのに1.0リリース前に削除されたんだとさ
https://internals.rust-lang.org/t/add-filename-information-to-io-error/
570デフォルトの名無しさん
2018/06/16(土) 13:06:12.19ID:Om4I19uv >>569
非効率になるのを嫌ったってことみたいですね
stdでもつには重すぎるってのは理解はできるけど 確かに不便なんだよなー
自分は結局
ioの関数呼ぶ前にinfo!でログ出すとか
戻ってきたio::Errorをmap_errでPathBuf埋め込んだ自前のErrorに変換するとかしてます
非効率になるのを嫌ったってことみたいですね
stdでもつには重すぎるってのは理解はできるけど 確かに不便なんだよなー
自分は結局
ioの関数呼ぶ前にinfo!でログ出すとか
戻ってきたio::Errorをmap_errでPathBuf埋め込んだ自前のErrorに変換するとかしてます
571デフォルトの名無しさん
2018/06/16(土) 18:58:29.98ID:dxp9ohIz >>570
ここで紹介されてる、failureを拡張して let file = File::open(path).with_path(path)?; と書けるようにするのが
カッコいいなと思った
https://github.com/rust-lang-nursery/failure/issues/189
failureは1.0に向けてまだまだ変えていくみたいだし、これ書いた焦げ寿司氏も参加するみたいだから
期待してるわ
throw!マクロが標準化したら、?の時みたいにrustプログラムの見た目変わりそう
ここで紹介されてる、failureを拡張して let file = File::open(path).with_path(path)?; と書けるようにするのが
カッコいいなと思った
https://github.com/rust-lang-nursery/failure/issues/189
failureは1.0に向けてまだまだ変えていくみたいだし、これ書いた焦げ寿司氏も参加するみたいだから
期待してるわ
throw!マクロが標準化したら、?の時みたいにrustプログラムの見た目変わりそう
572デフォルトの名無しさん
2018/06/16(土) 20:35:40.86ID:unm3Vek/ 2回もpath書くの全然かっこよくないから、少し重くてもなんでもいいから便利なライブラリがあれば使うわ
573デフォルトの名無しさん
2018/06/16(土) 23:56:34.69ID:f9DGXpDH トレイトオブジェクトってなんでトレイトオブジェクトって呼ぶん?
ようはヒープに動的に作られたストラクトだら?
ようはヒープに動的に作られたストラクトだら?
574デフォルトの名無しさん
2018/06/17(日) 01:17:39.67ID:TG/aPZPS 何らかのTraitを実装したオブジェクトだから、じゃ駄目なの?
変に勘ぐって誤解してるよ。スタックにある構造体でもトレイトオブジェクトになる
変に勘ぐって誤解してるよ。スタックにある構造体でもトレイトオブジェクトになる
575デフォルトの名無しさん
2018/06/17(日) 07:51:39.85ID:p2Sm4Lro うーんここにはそういうニュアンスでは書いてない気がするんだけどなあ
https://rust-lang-ja.github.io/the-rust-programming-language-ja/1.6/book/trait-objects.html
https://rust-lang-ja.github.io/the-rust-programming-language-ja/1.6/book/trait-objects.html
576デフォルトの名無しさん
2018/06/17(日) 11:48:23.47ID:an9lNlus traitってなんだよ
577デフォルトの名無しさん
2018/06/17(日) 12:00:53.08ID:erltHdM+ >>576
特性
特性
578デフォルトの名無しさん
2018/06/17(日) 12:03:03.50ID:an9lNlus わかんねえよw
579デフォルトの名無しさん
2018/06/17(日) 14:20:21.15ID:rd16QG+W traitは写像の集合で本来的には定義域の集合でないものなので、それとして扱う場合を特別にトレイトオブジェクトって呼んでるんじゃないの?
580デフォルトの名無しさん
2018/06/17(日) 14:55:33.49ID:TG/aPZPS >>575
ヒープにある構造体である、とはどこにも書いてないよね
複数の異なる型を同じ関数や構造体で持っておきたいけど、
型が違うからコンパイル時にサイズが決まらないんで困ったねって状況を解決するのがトレイトオブジェクト
そういう事態じゃなければfn foo<T: TraitFoo>(obj: T)とかやって型毎に関数をコンパイラに作ってもらうのが普通
ヒープにある構造体である、とはどこにも書いてないよね
複数の異なる型を同じ関数や構造体で持っておきたいけど、
型が違うからコンパイル時にサイズが決まらないんで困ったねって状況を解決するのがトレイトオブジェクト
そういう事態じゃなければfn foo<T: TraitFoo>(obj: T)とかやって型毎に関数をコンパイラに作ってもらうのが普通
581デフォルトの名無しさん
2018/06/17(日) 15:32:03.62ID:hewfXZ0r マス科の淡水魚じゃなかったけ
582デフォルトの名無しさん
2018/06/17(日) 15:36:27.65ID:Wo64nPZg それはトラウト
トラウトサーモン。
トラウトサーモン。
583デフォルトの名無しさん
2018/06/17(日) 20:19:57.60ID:p2Sm4Lro なんらかのトレイトじゃなくて特定のトレイトを実装したなんらかの型ってことかな
584デフォルトの名無しさん
2018/06/17(日) 20:38:08.98ID:JVUiE6fQ D言語の再来と言われるRustには注目しています。
585デフォルトの名無しさん
2018/06/18(月) 11:09:28.26ID:LH5G8a9n さすがに「C#とか糞wwこれが俺の考えた最強言語ww」→「結局C#が全部正しかったですサーセンww」で終わったただの中二言語と一緒にするのは失礼
586デフォルトの名無しさん
2018/06/18(月) 15:38:58.79ID:/sFO+jYl そうだな。D言語に失礼だ
587デフォルトの名無しさん
2018/06/18(月) 17:49:36.48ID:fn6n18W4 C#に、な
588デフォルトの名無しさん
2018/06/18(月) 18:41:33.59ID:MmynirXE まるでD言語が死に絶えたみたいな口振り
589デフォルトの名無しさん
2018/06/18(月) 18:44:27.51ID:eWM+pHRs え?とっくに死に絶えたでしょ
590デフォルトの名無しさん
2018/06/19(火) 00:05:30.49ID:wsgBP7Sf591デフォルトの名無しさん
2018/06/19(火) 13:49:32.69ID:77HD0esi D言語は最近顔本コミットを受けて活発化してる
Rustは採用企業が全く増えなくなって資金も枯渇
メインコミッタもリンゴのSwiftやらにヘッドハントされて
もう将来ないでしょ
Rustは採用企業が全く増えなくなって資金も枯渇
メインコミッタもリンゴのSwiftやらにヘッドハントされて
もう将来ないでしょ
592デフォルトの名無しさん
2018/06/19(火) 13:50:33.43ID:77HD0esi もちろん言語のエコシステムとしての将来がないってだけで、
ライフタイムとかの実装系の先駆としての意義はあったとおもうが
ライフタイムとかの実装系の先駆としての意義はあったとおもうが
593デフォルトの名無しさん
2018/06/19(火) 15:45:39.61ID:Es9NuDl6 終わってみればdartの舞の海だったな。
594デフォルトの名無しさん
2018/06/19(火) 17:08:02.40ID:menX4d1R なんで急に元力士の名前が出てきたんだ?
二の舞って言いたかったのか?
二の舞って言いたかったのか?
595デフォルトの名無しさん
2018/06/19(火) 17:13:53.63ID:TNMX9OjF596デフォルトの名無しさん
2018/06/19(火) 17:47:33.05ID:cDjhSbaW Haskellかじってて、Rustに興味出てきたんだけど、なに、廃れつつあるの?
597デフォルトの名無しさん
2018/06/19(火) 18:00:26.05ID:LBhs/jk2 廃れるもクソも、Rustが世間の注目を浴びたことなど未だかつて無い
598デフォルトの名無しさん
2018/06/19(火) 18:16:13.49ID:menX4d1R 大丈夫、大丈夫。
ユーザーが年々すごい勢いで減っているDに比べりゃ
規模は小さいもののRustは年々少しずつ増えてるわけだから
今後普及するかどうかはともかく少なくとも廃れちゃいないし、
学習コストが高いから敬遠されてるだけで注目もされてる
それにHaskellと同じで勉強しといて損はない言語だと思うし
ユーザーが年々すごい勢いで減っているDに比べりゃ
規模は小さいもののRustは年々少しずつ増えてるわけだから
今後普及するかどうかはともかく少なくとも廃れちゃいないし、
学習コストが高いから敬遠されてるだけで注目もされてる
それにHaskellと同じで勉強しといて損はない言語だと思うし
599デフォルトの名無しさん
2018/06/19(火) 19:21:40.76ID:30ZWMBay そもそも普及を目指してるような気配もないよな
バッテリ同梱などと言い出しもしないばかりか
randすらクレイトになってるから
rustcだけで楽しんでると涙目(´・ω・`)になる
バッテリ同梱などと言い出しもしないばかりか
randすらクレイトになってるから
rustcだけで楽しんでると涙目(´・ω・`)になる
600デフォルトの名無しさん
2018/06/19(火) 19:22:11.75ID:b5m1uThb Dのユーザが減ってRustのユーザが増えてる世界線はどこにありますか?
601デフォルトの名無しさん
2018/06/19(火) 19:50:06.21ID:R39QGoSG 別に趣味でやってりゃいいんでないの。
ライフタイムとか所有権の感覚は他言語でも役にはたつでしょ。
ライフタイムとか所有権の感覚は他言語でも役にはたつでしょ。
602デフォルトの名無しさん
2018/06/19(火) 22:33:45.56ID:jJOU+tvI wasm やるなら stdweb と wasm-bindgen のどちらを使ったらいいですかね?
もしくは他の選択肢の方がいいとかありますか?
もしくは他の選択肢の方がいいとかありますか?
603デフォルトの名無しさん
2018/06/19(火) 23:34:50.37ID:X5Ll7hqK >>595
std::error+error_chain/log crateの問題点を
解決するためにfailure/slog crateが
作られたからだいたいそんな感じだと思う。
failureの方は今nurseryだし。
failureのエラーとstd::errorのエラーを相互変換できるから
移行や依存ライブラリがstd::error使ってる場合に対応簡単だよ。
まあ、1.0待ったほうがいいけど。
std::error+error_chain/log crateの問題点を
解決するためにfailure/slog crateが
作られたからだいたいそんな感じだと思う。
failureの方は今nurseryだし。
failureのエラーとstd::errorのエラーを相互変換できるから
移行や依存ライブラリがstd::error使ってる場合に対応簡単だよ。
まあ、1.0待ったほうがいいけど。
604デフォルトの名無しさん
2018/06/19(火) 23:47:20.77ID:X5Ll7hqK >>602
wasm-bindgenはhost bindings proposalの実装でstdwebはweb apiのrustバインディング。
host bindings proposalはWebAssembly用の(ホストとの)ffiみたいなもん。
wasm-bindgenはhost bindings proposalの実装でstdwebはweb apiのrustバインディング。
host bindings proposalはWebAssembly用の(ホストとの)ffiみたいなもん。
605デフォルトの名無しさん
2018/06/20(水) 00:10:51.10ID:pTH4tzak606デフォルトの名無しさん
2018/06/20(水) 07:50:19.18ID:wh0fPVE/607デフォルトの名無しさん
2018/06/20(水) 08:12:54.01ID:wc145BD7 >>603
stdの下にあるけど非推奨、みたいなのが今後だんだん増えてくるのかな
stdの下にあるけど非推奨、みたいなのが今後だんだん増えてくるのかな
608デフォルトの名無しさん
2018/06/20(水) 08:14:53.51ID:mWzW79Bi はよRust4.0くらいにならんかな
609デフォルトの名無しさん
2018/06/20(水) 10:36:39.96ID:YLzmhKZ9610デフォルトの名無しさん
2018/06/20(水) 10:37:49.71ID:zK9FZNDh きたきたw
611デフォルトの名無しさん
2018/06/20(水) 13:21:29.03ID:aMAqNpY0 テンション高杉wwww
612デフォルトの名無しさん
2018/06/20(水) 17:10:00.84ID:XqMiT4dO 愛され言語ナンバーワンに2年連続で輝いたのに人気ない扱いは意味不明だ
613デフォルトの名無しさん
2018/06/20(水) 18:22:38.96ID:vXpw0FFs >>612
純粋に聞くがお前の周りでRustサイコーって言ってるエンジニア何人いる?
純粋に聞くがお前の周りでRustサイコーって言ってるエンジニア何人いる?
614デフォルトの名無しさん
2018/06/20(水) 18:41:59.74ID:CaLRYR6s615デフォルトの名無しさん
2018/06/20(水) 18:44:15.98ID:XqMiT4dO >>613
2/6人かな
2/6人かな
616デフォルトの名無しさん
2018/06/20(水) 18:51:57.98ID:vXpw0FFs >>614
いくらでも組織的に水増しできる問答や投票になんの意味が?
いくらでも組織的に水増しできる問答や投票になんの意味が?
617デフォルトの名無しさん
2018/06/20(水) 18:52:41.55ID:vXpw0FFs >>615
その程度の言語が世界一位って統計的におかしいと思わん?
その程度の言語が世界一位って統計的におかしいと思わん?
618デフォルトの名無しさん
2018/06/20(水) 18:54:56.56ID:Vsx9tnAR >>616
dreadedに水増ししたの?w
dreadedに水増ししたの?w
619デフォルトの名無しさん
2018/06/20(水) 18:55:44.33ID:CaLRYR6s >>617
お前と匿名の一人で統計語ろうっておかしいと思わん?
お前と匿名の一人で統計語ろうっておかしいと思わん?
620デフォルトの名無しさん
2018/06/20(水) 18:57:44.45ID:CaLRYR6s あとこいつ好感度と使用者の数をごっちゃにしてるの?凄いよそれは
フィボナッチ数列も書けないだけはあると思うよ
フィボナッチ数列も書けないだけはあると思うよ
621デフォルトの名無しさん
2018/06/20(水) 20:41:21.29ID:Hd+sK95t フィボナッチ数列って円周率みたくいまもなお計算され続けてたりするのかな
622デフォルトの名無しさん
2018/06/20(水) 21:15:36.40ID:vXpw0FFs どう考えてもRustなんかよりJavaのほうが愛好家多いだろ
プロダクトの数考えろよ
プロダクトの数考えろよ
623デフォルトの名無しさん
2018/06/20(水) 21:52:02.37ID:x0fgVEGk GithubではJavaScriptが一番多いからJavaScriptが一番愛された言語だよ(お前の中で)
この記事オカズに1年ぐらい黙れそう?
http://wolfbash.hateblo.jp/entry/2017/07/30/193412
この記事オカズに1年ぐらい黙れそう?
http://wolfbash.hateblo.jp/entry/2017/07/30/193412
624デフォルトの名無しさん
2018/06/20(水) 22:24:58.84 ハンバーガーはマクドナルドが世界一売上高いんだから、マクドナルドのハンバーガーが世界一美味いに決まってるだろ?
625デフォルトの名無しさん
2018/06/20(水) 22:35:12.33ID:6Ldi6ZQ0626デフォルトの名無しさん
2018/06/20(水) 23:15:44.76ID:kIAOzAlL そういや何でmainが必要なんだろね
627デフォルトの名無しさん
2018/06/21(木) 07:34:12.21ID:yU20OhIB Nimへの風評被害記事を貼るのはやめろ
628デフォルトの名無しさん
2018/06/21(木) 09:00:57.14ID:osGR8xHL629デフォルトの名無しさん
2018/06/21(木) 10:39:54.15ID:n536ipp2630デフォルトの名無しさん
2018/06/21(木) 12:34:03.16ID:c3YkgC6b 真正のアホだった
631デフォルトの名無しさん
2018/06/21(木) 17:49:56.62ID:ay5pVfJh だからさー。文句あるなら記事に反論してみなよ
取り下げられた記事以外誰も出せないまま人格批判だけとか全く理論的じゃないし
そういう人ばっかだよねRust信者って
取り下げられた記事以外誰も出せないまま人格批判だけとか全く理論的じゃないし
そういう人ばっかだよねRust信者って
632デフォルトの名無しさん
2018/06/21(木) 18:20:34.36ID:tEqpfdQL ここ本スレじゃなかったのか
お邪魔しました
お邪魔しました
633デフォルトの名無しさん
2018/06/21(木) 18:35:12.47ID:ZtwQwgWl634デフォルトの名無しさん
2018/06/21(木) 18:46:46.63ID:ay5pVfJh635デフォルトの名無しさん
2018/06/21(木) 19:00:49.88ID:c3YkgC6b636デフォルトの名無しさん
2018/06/21(木) 20:30:12.03ID:Do17eRfw637デフォルトの名無しさん
2018/06/21(木) 21:05:10.85ID:6Hcg3ucp ある人がどのレベルでプログラミングしてるか、という差がある
ある人にとってはプログラミングとは設計作業に他ならず
ある人にとってはプログラミングが指の労働でしかない
書き間違えるから、書き忘れるから、という理由でもって
しょうもないバッドノウハウを拝み続ける者すらいる
塩と砂糖を入れ間違う、塩を入れ忘れる、自称料理人
そーいうレベルのプログラマ
ある人にとってはプログラミングとは設計作業に他ならず
ある人にとってはプログラミングが指の労働でしかない
書き間違えるから、書き忘れるから、という理由でもって
しょうもないバッドノウハウを拝み続ける者すらいる
塩と砂糖を入れ間違う、塩を入れ忘れる、自称料理人
そーいうレベルのプログラマ
638デフォルトの名無しさん
2018/06/21(木) 21:10:50.36ID:tPTNHe4P クソ言語はRuで始まるの法則。
ソースはRubywwwww
ソースはRubywwwww
639デフォルトの名無しさん
2018/06/21(木) 21:12:31.35ID:c3YkgC6b >>636
何故取り下げたかの理由も書いてあったがそっちのほうは完全に消えたかな…
アーカイブすら残ってなさそうだ…
「他の記事を貶めるような記事は品性が疑われるからやっぱり取り下げる」
みたいな理由だっと思うけど、どうせお前はそれも認めないんだろ…
………ふぅ………もういいよ……
お前の頭ん中ではRustはクソ言語で良いよ……
何故取り下げたかの理由も書いてあったがそっちのほうは完全に消えたかな…
アーカイブすら残ってなさそうだ…
「他の記事を貶めるような記事は品性が疑われるからやっぱり取り下げる」
みたいな理由だっと思うけど、どうせお前はそれも認めないんだろ…
………ふぅ………もういいよ……
お前の頭ん中ではRustはクソ言語で良いよ……
640デフォルトの名無しさん
2018/06/21(木) 21:16:43.31ID:THBJN+Sm まあ人気であることは否定できないし好きに言わせとけば
641デフォルトの名無しさん
2018/06/21(木) 21:55:24.51ID:cUkhcSdq Rubyスレいってこい
642デフォルトの名無しさん
2018/06/21(木) 22:10:18.40ID:IDDH/Zj5643デフォルトの名無しさん
2018/06/22(金) 06:32:29.82ID:dlC04wo2 rustup update stable
644デフォルトの名無しさん
2018/06/22(金) 07:54:28.27ID:eG6Vx+RS クソ言語に固執し続けるクソ人間
645デフォルトの名無しさん
2018/06/22(金) 08:36:26.70ID:YRNyKvjT 1.27.0がstableになったんね
646デフォルトの名無しさん
2018/06/23(土) 08:31:56.29ID:XcMMhDbo rustは個人開発向けで仕事に使うものじゃないのね。
647デフォルトの名無しさん
2018/06/23(土) 09:39:24.90ID:tcOUUI9f ソースは?
648デフォルトの名無しさん
2018/06/23(土) 10:17:10.81ID:YCFgkK7r Cargo.tomlに対応するrustcの最低バージョン番号を書く方法ってある?
649デフォルトの名無しさん
2018/06/23(土) 10:36:49.30ID:SR6K28vn ネタスレで質問するやつはキチガイ
650デフォルトの名無しさん
2018/06/23(土) 11:42:32.40ID:FNwUUYYn スレチ
Rustスレに行け
Rustスレに行け
651デフォルトの名無しさん
2018/06/23(土) 12:03:08.67ID:SR6K28vn キチガイがまともなふりして質問するふりするんだよなー
652デフォルトの名無しさん
2018/06/23(土) 12:36:47.01ID:VZhdie4n >>648
https://qiita.com/tatsuya6502/items/8b31e2b162aff78787fe
プロジェクトフォルダにrust-toolchainファイル置いてその中で指定出来るみたい
toolchain指定なんでrustup必須になるのと固定指定しかできないっぽいけど
https://qiita.com/tatsuya6502/items/8b31e2b162aff78787fe
プロジェクトフォルダにrust-toolchainファイル置いてその中で指定出来るみたい
toolchain指定なんでrustup必須になるのと固定指定しかできないっぽいけど
653デフォルトの名無しさん
2018/06/23(土) 17:56:54.88ID:ADF05MCP みんな英語どうやって勉強したの
>>653
受験勉強で
受験勉強で
655デフォルトの名無しさん
2018/06/23(土) 18:09:55.67ID:592i1cd7 >>653
俺は英語なら分かるんだけど、日本語はさっぱり分からん
俺は英語なら分かるんだけど、日本語はさっぱり分からん
656デフォルトの名無しさん
2018/06/23(土) 18:11:27.27ID:ADF05MCP657デフォルトの名無しさん
2018/06/23(土) 18:27:07.96ID:ADF05MCP >>655
英語圏に生まれたかったと切に思う
英語圏に生まれたかったと切に思う
658デフォルトの名無しさん
2018/06/23(土) 19:52:59.41ID:1v1LX/MG 訳さず英語で読んだ方が…
情報の早さ・量・正確さが段違いだし原著読むと意外と難しい単語使われてない。
bind(bound)を束縛とかアホかと。
せめて結びつけとかにしろよと。
翻訳のセンス無さすぎ。
もしくはわざと小難しくして地位を守ってるのか…
情報の早さ・量・正確さが段違いだし原著読むと意外と難しい単語使われてない。
bind(bound)を束縛とかアホかと。
せめて結びつけとかにしろよと。
翻訳のセンス無さすぎ。
もしくはわざと小難しくして地位を守ってるのか…
659デフォルトの名無しさん
2018/06/23(土) 19:59:41.54ID:G+zkBspm 結びつけだとassociateの訳ともとれそう
英語と一対一で対応できる和訳の方があとから英語情報に触れるときのハードルを下げると思う
英語と一対一で対応できる和訳の方があとから英語情報に触れるときのハードルを下げると思う
>>658
get / put / take なんかで言い換えしたからといって、わかりやすくなったとは思わない
get / put / take なんかで言い換えしたからといって、わかりやすくなったとは思わない
661デフォルトの名無しさん
2018/06/23(土) 20:13:20.08ID:1v1LX/MG それにしても〜を〜に束縛しますとかセンス無さすぎる。
明治時代の翻訳見習ってほしい。
漢籍の素養が必要だが…
明治時代の翻訳見習ってほしい。
漢籍の素養が必要だが…
662デフォルトの名無しさん
2018/06/23(土) 20:59:38.24ID:hXAC/kvi 逆に聞くが「変数にbindする」って日本語にどう訳したら自然なんだ?「結びつける」は別の意味になるぞ
明治期のアレは翻訳っていうよりは対応する訳語を創出するって感じだから、単純な翻訳じゃないぞ
「縛りつける」みたいな感じになるしかないと思うんだが
束縛は単純に漢語にしただけで大差なかろう
明治期のアレは翻訳っていうよりは対応する訳語を創出するって感じだから、単純な翻訳じゃないぞ
「縛りつける」みたいな感じになるしかないと思うんだが
束縛は単純に漢語にしただけで大差なかろう
663デフォルトの名無しさん
2018/06/23(土) 21:03:29.72ID:YCFgkK7r664デフォルトの名無しさん
2018/06/23(土) 21:53:58.53ID:eYj7ZreJ > 翻訳のセンス無さすぎ。
お前にはあるかのような口ぶりで
> せめて結びつけとかにしろよと。
↑こんなこと言い放ちつつも
> もしくはわざと小難しくして地位を守ってるのか…
束縛っていうふつうの単語を小難しく感じると白状し
地位を守るだのなんだのという珍妙な価値観まで丸出しにするとは恐れ入る
お前にはあるかのような口ぶりで
> せめて結びつけとかにしろよと。
↑こんなこと言い放ちつつも
> もしくはわざと小難しくして地位を守ってるのか…
束縛っていうふつうの単語を小難しく感じると白状し
地位を守るだのなんだのという珍妙な価値観まで丸出しにするとは恐れ入る
665デフォルトの名無しさん
2018/06/23(土) 22:00:12.26ID:iDCSFlv+ まあ、英語のbindからして数理論理の変数束縛と同じ単語を別の意味で使いまわしてる
近い分野なんだから専門用語もう少し考えてくれても良かったのに
近い分野なんだから専門用語もう少し考えてくれても良かったのに
666デフォルトの名無しさん
2018/06/23(土) 22:31:42.63ID:3sIWKIRG 慣れちゃってるから気づきもしなかったけど代入からして大概だよな。
英語だと単にassignだぞ。
英語だと単にassignだぞ。
667デフォルトの名無しさん
2018/06/23(土) 22:44:14.17ID:YCFgkK7r その点、グーグルは気が利いてて、
「錆は、安全性、スピード、並行性に重点を置いたシステムプログラミング言語です。
以前のバージョンのRustが錆びてインストールされている場合、」
だからな
「錆は、安全性、スピード、並行性に重点を置いたシステムプログラミング言語です。
以前のバージョンのRustが錆びてインストールされている場合、」
だからな
668デフォルトの名無しさん
2018/06/24(日) 00:43:46.88ID:8RP1t8O+ 「バインドする」で良いのでは
traitとかcrateとか訳すとよくわからなくなるもの多いし全部カタカナでよい
traitとかcrateとか訳すとよくわからなくなるもの多いし全部カタカナでよい
669デフォルトの名無しさん
2018/06/24(日) 00:53:31.43ID:EUL7CrQi a に 1 を綴じます。
670デフォルトの名無しさん
2018/06/24(日) 01:02:45.16ID:AYN9x63N タイプアノテーションのないバリアブルのタイプはライトサイドをエバリューションしたときのタイプになります
671デフォルトの名無しさん
2018/06/24(日) 02:00:22.91ID:cQRh0RXw 是々非々だな。
型アノテーションのない変数の型は右側を評価したときの型になります
束縛するはバインドするでよかった。SMの趣味ないし。
型アノテーションのない変数の型は右側を評価したときの型になります
束縛するはバインドするでよかった。SMの趣味ないし。
672デフォルトの名無しさん
2018/06/24(日) 07:41:58.64ID:yrJGTcca 束縛と代入ってなにか違うんけ?
673デフォルトの名無しさん
2018/06/24(日) 08:29:18.59ID:4dDfbtJe 誰に確認したわけじゃないが、変数に何か値を設定するのが代入で、値に名前を付けるのが束縛だという認識
fn foo(...) {...} は、ある関数に対しfooという名前をつけるので「関数をfooに束縛する」とは言うかもしれないけど、
「fooに関数を代入している」とは言わない、みたいな
fn foo(...) {...} は、ある関数に対しfooという名前をつけるので「関数をfooに束縛する」とは言うかもしれないけど、
「fooに関数を代入している」とは言わない、みたいな
674デフォルトの名無しさん
2018/06/24(日) 09:14:33.52ID:aLprG8s0 緊縛と挿入!
675デフォルトの名無しさん
2018/06/24(日) 09:46:27.06ID:dcl6yRWH 単にイミュータブルかミュータブルかの違いでないの?
676デフォルトの名無しさん
2018/06/24(日) 09:52:28.95ID:yrJGTcca >>673
伝統的な表現だと宣言に近いニュアンスかな
伝統的な表現だと宣言に近いニュアンスかな
677デフォルトの名無しさん
2018/06/24(日) 10:29:37.13ID:O0XPf3sp rustはバインドしていない状態の変数も合法だからややこしい
let hoge;
hoge = 100; // これをコメントアウトするとコンパイルできない
println!("{}", hoge);
let hoge;
hoge = 100; // これをコメントアウトするとコンパイルできない
println!("{}", hoge);
678デフォルトの名無しさん
2018/06/24(日) 12:51:16.68ID:1I2gvIDj 初心者なんですが、文字列を作成して返す関数を作るときって、
fn hoge() -> String { "hoge".to_string() }
と書くものですか?
それとも
fn hoge() -> &'static str { "hoge" }
と書くべきでしょうか?
fn hoge() -> String { "hoge".to_string() }
と書くものですか?
それとも
fn hoge() -> &'static str { "hoge" }
と書くべきでしょうか?
679デフォルトの名無しさん
2018/06/24(日) 13:59:02.13ID:yrJGTcca その例だと関数にする必要なくない
680デフォルトの名無しさん
2018/06/24(日) 15:24:02.20ID:7t4PbT1U681デフォルトの名無しさん
2018/06/24(日) 18:18:06.50ID:ImbiQntl Stringもstrも返す可能性があるなら Cow<str> で
それ以外なら使えるときは &str を使うのが良いのでは
それ以外なら使えるときは &str を使うのが良いのでは
682デフォルトの名無しさん
2018/06/24(日) 19:01:12.28ID:n+g5Cjrk Stringとstrを両方残しちゃうあたり
優柔不断でグダグダな言語に思えてしまう
優柔不断でグダグダな言語に思えてしまう
683デフォルトの名無しさん
2018/06/24(日) 19:14:57.34ID:knj+uGWY はあ…?
684デフォルトの名無しさん
2018/06/24(日) 19:22:46.99ID:rqN/F7y5 C FFIに関する技術資料ってどこにあるんだろ?
ttps://rust-lang-ja.github.io/the-rust-programming-language-ja/1.6/book/ffi.html
にチュートリアルはあるけどexternの記述方法とかがわからない
見よう見まねで書けなくはないけどそのまま行くのは事故の元だし
ついでにlibcが何をしているのかもわからない
ttps://rust-lang-ja.github.io/the-rust-programming-language-ja/1.6/book/ffi.html
にチュートリアルはあるけどexternの記述方法とかがわからない
見よう見まねで書けなくはないけどそのまま行くのは事故の元だし
ついでにlibcが何をしているのかもわからない
685デフォルトの名無しさん
2018/06/24(日) 20:18:07.31ID:gRETAB5B >>684
CのヘッダからRustのインターフェースを自動生成してくれる
bindgenを追っかけてみればよいかと
https://github.com/rust-lang-nursery/rust-bindgen
CのヘッダからRustのインターフェースを自動生成してくれる
bindgenを追っかけてみればよいかと
https://github.com/rust-lang-nursery/rust-bindgen
686デフォルトの名無しさん
2018/06/24(日) 22:15:14.01ID:W9MJDxOG >>683
せめて理論的に反論しろよグダグダ言語の信者
せめて理論的に反論しろよグダグダ言語の信者
687デフォルトの名無しさん
2018/06/24(日) 22:29:21.43ID:ztKvyOBw688デフォルトの名無しさん
2018/06/24(日) 23:26:54.62ID:rqN/F7y5689デフォルトの名無しさん
2018/06/24(日) 23:57:53.79ID:O0XPf3sp >>684,685
unsafeまわりの文書に入ってる(ただしdraft)
https://doc.rust-lang.org/nomicon/ffi.html
公式文書はgithubのorganization(rust-lang、rust-lang-nursery)から探している
unsafeまわりの文書に入ってる(ただしdraft)
https://doc.rust-lang.org/nomicon/ffi.html
公式文書はgithubのorganization(rust-lang、rust-lang-nursery)から探している
690デフォルトの名無しさん
2018/06/25(月) 00:22:53.39ID:U0L6J6Ez C言語ライブラリの関数を3回呼び出すコードと格闘すること数時間。ようやく動いた
まだ不明点は残っている
・#[link(〜のkindが何を示しているのか判らない
C FFIの使用例を見るとよく見るんだが・・・
・C言語配列の渡し方が不明
元は
>int p[]={16,9};
>foo(p);
とりあえず
>foo("\x10\x09".as_ptr());
などと書けばデータ上は整合するから動くけどどう見てもスマートな記述方法ではない
・文字リテラルの仕様が不明
↑の表記を得るのに数回試行錯誤した
データの与え方もCStringを使った(=\x00終端する)方法は出てくるけど、そうではない方法は
中々見つからなかった。結局↑の表記に落ち着いたが
>>689
ありがとう。kind値について書いてありますね。静的リンクだとkind = "static"らしいですが
付けても付けなくてもファイルサイズは大差ないようです。何が違うのだろう
まだ不明点は残っている
・#[link(〜のkindが何を示しているのか判らない
C FFIの使用例を見るとよく見るんだが・・・
・C言語配列の渡し方が不明
元は
>int p[]={16,9};
>foo(p);
とりあえず
>foo("\x10\x09".as_ptr());
などと書けばデータ上は整合するから動くけどどう見てもスマートな記述方法ではない
・文字リテラルの仕様が不明
↑の表記を得るのに数回試行錯誤した
データの与え方もCStringを使った(=\x00終端する)方法は出てくるけど、そうではない方法は
中々見つからなかった。結局↑の表記に落ち着いたが
>>689
ありがとう。kind値について書いてありますね。静的リンクだとkind = "static"らしいですが
付けても付けなくてもファイルサイズは大差ないようです。何が違うのだろう
691デフォルトの名無しさん
2018/06/25(月) 12:50:29.35ID:vFqeQKwN Cの配列は第一級の値じゃないからas_ptrが正攻法だと思う
692デフォルトの名無しさん
2018/06/25(月) 20:19:17.73ID:U0L6J6Ez693デフォルトの名無しさん
2018/06/25(月) 20:24:02.61ID:J2kal8dh Rustの側では変更しないけどCの側で変更するような変数ってmutにしないと駄目よね?
694デフォルトの名無しさん
2018/06/25(月) 22:00:13.27ID:U0L6J6Ez あっ、ヤベェ・・・いきなり重大なバグ出してら
× foo("\x10\x09".as_ptr());
○ foo("\x10\x00\x00\x00\x09\x00\x00\x00".as_ptr());
こうだよな
標準で[16: i32, 9: i32]を"\x10\x00\x00\x00\x09\x00\x00\x00"に変換してくれるようなのが欲しい
× foo("\x10\x09".as_ptr());
○ foo("\x10\x00\x00\x00\x09\x00\x00\x00".as_ptr());
こうだよな
標準で[16: i32, 9: i32]を"\x10\x00\x00\x00\x09\x00\x00\x00"に変換してくれるようなのが欲しい
695デフォルトの名無しさん
2018/06/25(月) 22:05:44.09ID:KKbqvHaH うわこれは読みたくないw
難しいもんだな
難しいもんだな
696デフォルトの名無しさん
2018/06/25(月) 22:59:19.25ID:U0L6J6Ez ちなみに間違っている状態でも呼んだC関数は正常に終了します。まさにunsafeです。怖いです
何か対策を考えないと大事故を起こしそう
要素数2しかないのにstructを書くのはコード効率の点からも可読性の面からもあまり良いとは思えないし・・・
いろいろ試してみたら
>let p: [i32; 2] = [16, 9];
>foo(&p);
ならいけるようだ。コンパイラは何も言わないけどこの表記が適切かどうかは不明
Rubyだと
foo([16,9].pack("i2")) #配列をint2個分の文字列(=8byteのバイナリ列)に変換
とか書けるんだよなぁ。コストは安くないけど>>694みたいなポカミスは起こらない
何か対策を考えないと大事故を起こしそう
要素数2しかないのにstructを書くのはコード効率の点からも可読性の面からもあまり良いとは思えないし・・・
いろいろ試してみたら
>let p: [i32; 2] = [16, 9];
>foo(&p);
ならいけるようだ。コンパイラは何も言わないけどこの表記が適切かどうかは不明
Rubyだと
foo([16,9].pack("i2")) #配列をint2個分の文字列(=8byteのバイナリ列)に変換
とか書けるんだよなぁ。コストは安くないけど>>694みたいなポカミスは起こらない
697デフォルトの名無しさん
2018/06/25(月) 23:46:12.87ID:kYoiRQin >>696
何がしたいかよく分からんが
何故にC側がintの配列なのにRust側では文字列を使おうとしてるんだ?
C側がintってことはRust側で対応する型はisizeだろ
(Cのintが事前に32bitと分かってる場合はi32でも可
同様に64bitだと分かっている場合は対応する型はi64)
つまり、Cで
int[] x = {16, 9};
なら、Rustで同じデータを表すものは
let x: [isize; 2] = [16, 9]; // let x = [16_isize, 9]; でもおk
って書けば良いはず
Rubyと同じように考えようとするから変なことになる
RustでFFIするならCと対応する型は何かを考えれば良い
何がしたいかよく分からんが
何故にC側がintの配列なのにRust側では文字列を使おうとしてるんだ?
C側がintってことはRust側で対応する型はisizeだろ
(Cのintが事前に32bitと分かってる場合はi32でも可
同様に64bitだと分かっている場合は対応する型はi64)
つまり、Cで
int[] x = {16, 9};
なら、Rustで同じデータを表すものは
let x: [isize; 2] = [16, 9]; // let x = [16_isize, 9]; でもおk
って書けば良いはず
Rubyと同じように考えようとするから変なことになる
RustでFFIするならCと対応する型は何かを考えれば良い
698デフォルトの名無しさん
2018/06/26(火) 00:21:30.73ID:kImvQJUH >>697
いや、isizeはまずいんじゃない?
例えばx86_64だとisize:64bit,int:32bitだし。
libcクレートのc_intならアーキテクチャ毎に適切なサイズになるから
こちらがいいかと。
いや、isizeはまずいんじゃない?
例えばx86_64だとisize:64bit,int:32bitだし。
libcクレートのc_intならアーキテクチャ毎に適切なサイズになるから
こちらがいいかと。
699デフォルトの名無しさん
2018/06/26(火) 00:26:36.57ID:kImvQJUH ついでに言うとFFIするときの型はプリミティブ型以外でも
とりあえずlibcクレートを探すといい。
まぁマイナーなアーキテクチャだと間違ってたりすることもあるから
確認は必要だけど。
とりあえずlibcクレートを探すといい。
まぁマイナーなアーキテクチャだと間違ってたりすることもあるから
確認は必要だけど。
700デフォルトの名無しさん
2018/06/26(火) 00:50:28.55ID:85MS96V/ とりあえず仕返しにrubyスレ荒らそうぜ
http://mevius.5ch.net/test/read.cgi/tech/1523954817/
http://mevius.5ch.net/test/read.cgi/tech/1523954817/
701デフォルトの名無しさん
2018/06/26(火) 00:50:41.38ID:Hc+GAUt1702デフォルトの名無しさん
2018/06/26(火) 01:08:16.37ID:Hc+GAUt1 調べたらCのintにRustで対応する型はisizeじゃなくてstd::os::raw::c_intだったわ
libcのc_intとの違いがよく分からん
対応アーキテクチャの数か?
libcのc_intとの違いがよく分からん
対応アーキテクチャの数か?
703デフォルトの名無しさん
2018/06/26(火) 02:21:07.36ID:kImvQJUH704デフォルトの名無しさん
2018/06/26(火) 08:11:12.99ID:xzmHFSgh705デフォルトの名無しさん
2018/06/26(火) 08:35:08.35ID:Hc+GAUt1 >>704
資料が少ないのはまだ普及してない言語では仕方がない
FFIとか皆が頻繁に使う機能じゃないようなものはなおさら
Cの配列とRustの配列は互換があるはずだけど
悪いがその情報をどこから手に入れたかは覚えていないし
信用されても困る(ついさっきも間違えたしね)
場合によっては資料探すよりソースコード読んだほうが早いことも多いし
根気良く調べるしかないとしか言いようがない
あとはFFIみたいなunsafe部分は出来る限り念入りにテストを書くとか
資料が少ないのはまだ普及してない言語では仕方がない
FFIとか皆が頻繁に使う機能じゃないようなものはなおさら
Cの配列とRustの配列は互換があるはずだけど
悪いがその情報をどこから手に入れたかは覚えていないし
信用されても困る(ついさっきも間違えたしね)
場合によっては資料探すよりソースコード読んだほうが早いことも多いし
根気良く調べるしかないとしか言いようがない
あとはFFIみたいなunsafe部分は出来る限り念入りにテストを書くとか
706デフォルトの名無しさん
2018/06/26(火) 09:06:54.14ID:ffYAyO/t707デフォルトの名無しさん
2018/06/26(火) 10:23:55.54ID:MUW40HUm 今のnightlyだとclippyビルド出来ないよね?
ビルド出来る最後のバージョンと、それをインストールする方法教えてください
ビルド出来る最後のバージョンと、それをインストールする方法教えてください
708デフォルトの名無しさん
2018/06/26(火) 12:18:25.05ID:8xBVh24a RustのABIについてはドキュメント増やすことはできるだろうけど
それ以前の問題としてCのABI知らないとFFIつらいのでは
それ以前の問題としてCのABI知らないとFFIつらいのでは
709デフォルトの名無しさん
2018/06/26(火) 18:47:03.15ID:xzmHFSgh 付き合ってくれてありがとう
まとめるとFFIで使えるのは
・#[repr(C付きのstruct
・#[repr(C付きのunion
・#[repr(C付きのenum ←条件付き
・box?
・vec ←非推奨?
・str
・array
・slice
・std::os::rawの中にある物
このへんで良いのかな
std::os::rawの中とarray、struct、union、strがあれば一通り出来そうか
まとめるとFFIで使えるのは
・#[repr(C付きのstruct
・#[repr(C付きのunion
・#[repr(C付きのenum ←条件付き
・box?
・vec ←非推奨?
・str
・array
・slice
・std::os::rawの中にある物
このへんで良いのかな
std::os::rawの中とarray、struct、union、strがあれば一通り出来そうか
710デフォルトの名無しさん
2018/06/26(火) 20:49:29.40ID:qO0rk7ac vecもas_ptr用意されているし非推奨と言うことはないはず
sliceにderefできるし
sliceにderefできるし
711デフォルトの名無しさん
2018/06/26(火) 23:28:33.57ID:+xThVrkU IDが変わっています
vecの件
>extern {fn foo(p: &std::vec::Vec<i32>);}
>foo(&vec![16, 9]);
これだと
>warning: `extern` block uses type `std::vec::Vec<i32>` which is not FFI-safe: this struct has unspecified layout
>・・・
> = help: consider adding a #[repr(C)] or #[repr(transparent)] attribute to this struct
と言われ正常に動作しない。クラッシュはしないが実行結果がおかしい
>extern {fn foo(p: *const i32);}
>foo(vec![16 as i32, 9 as i32].as_ptr());
これなら問題ないようだ。奥が深い
あとC関数から帰ってきたアドレスをu32へ入れていたのをc_voidへ入れるようにしたら所有権で怒られて動かなくなった
同じコードでも型によって所有権の移動のしかたが違うのか
vecの件
>extern {fn foo(p: &std::vec::Vec<i32>);}
>foo(&vec![16, 9]);
これだと
>warning: `extern` block uses type `std::vec::Vec<i32>` which is not FFI-safe: this struct has unspecified layout
>・・・
> = help: consider adding a #[repr(C)] or #[repr(transparent)] attribute to this struct
と言われ正常に動作しない。クラッシュはしないが実行結果がおかしい
>extern {fn foo(p: *const i32);}
>foo(vec![16 as i32, 9 as i32].as_ptr());
これなら問題ないようだ。奥が深い
あとC関数から帰ってきたアドレスをu32へ入れていたのをc_voidへ入れるようにしたら所有権で怒られて動かなくなった
同じコードでも型によって所有権の移動のしかたが違うのか
712デフォルトの名無しさん
2018/06/27(水) 00:01:15.59ID:a5PFJKPe RustのVec自体には確かCとの互換性はないはずだよ
ただし、Vecはsliceにderefが可能でsliceはCの配列と互換がある
vec![16 as i32, 9 as i32].as_ptr()
はVecに対してas_ptr()メソッドを呼んでるように見えるけど
(ドキュメントを確認すれば分かるが)実際にはVecにas_ptr()メソッドなんて定義されていない
as_ptr()はsliceの方に定義されていて、暗黙的にderefされてからas_ptr()が呼ばれてる
つまり上のコードは丁寧に書き直すと↓と同じ意味(のはず)
let vec: Vec<i32> = vec![16, 9];
let slice: &[i32] = vec.deref();
let ptr: *const i32 = slice.as_ptr();
ただし、Vecはsliceにderefが可能でsliceはCの配列と互換がある
vec![16 as i32, 9 as i32].as_ptr()
はVecに対してas_ptr()メソッドを呼んでるように見えるけど
(ドキュメントを確認すれば分かるが)実際にはVecにas_ptr()メソッドなんて定義されていない
as_ptr()はsliceの方に定義されていて、暗黙的にderefされてからas_ptr()が呼ばれてる
つまり上のコードは丁寧に書き直すと↓と同じ意味(のはず)
let vec: Vec<i32> = vec![16, 9];
let slice: &[i32] = vec.deref();
let ptr: *const i32 = slice.as_ptr();
713デフォルトの名無しさん
2018/06/27(水) 00:13:14.65ID:95B8/IDl あとC関数の引数&戻り値はmove(ポインターか実値)しないとだめじゃない?
&付けて参照渡しにするのはよく分からない、たぶん未定義動作じゃないかなあ
&付けて参照渡しにするのはよく分からない、たぶん未定義動作じゃないかなあ
714デフォルトの名無しさん
2018/06/27(水) 01:04:32.64ID:9Rd9nmLi >>707
clippyは最新のnightlyは**追ってない**けど常に開発中だから
ビルドできるバージョンは常に変わる。
自分の環境のビルドできる最大のnightlyに合わせろしか言えん。
常にclippyを使い続けたいなら環境の方をclippyに合わせないとだめ。
>>709
- cの配列はraw pointer
- 配列以外ならrepr(C)してメモリレイアウト合わせるか
- C側でopaque pointer定義してas_ptr
- 汎用ポインタはrust側は
pub enum Void;
type VoidRef = *mut Void;
- cのvoid*がrust側にほしいならlibcクレート
- VLAや不完全配列はrustnomicon読む
まずC abi覚えろ。
std140レイアウトならクレートあるぞ。
clippyは最新のnightlyは**追ってない**けど常に開発中だから
ビルドできるバージョンは常に変わる。
自分の環境のビルドできる最大のnightlyに合わせろしか言えん。
常にclippyを使い続けたいなら環境の方をclippyに合わせないとだめ。
>>709
- cの配列はraw pointer
- 配列以外ならrepr(C)してメモリレイアウト合わせるか
- C側でopaque pointer定義してas_ptr
- 汎用ポインタはrust側は
pub enum Void;
type VoidRef = *mut Void;
- cのvoid*がrust側にほしいならlibcクレート
- VLAや不完全配列はrustnomicon読む
まずC abi覚えろ。
std140レイアウトならクレートあるぞ。
715デフォルトの名無しさん
2018/06/27(水) 02:41:49.66ID:yfKVc+j6 Rustだけ覚えればいい時代はまだ来ない
C/C++の知識皆無では
C/C++の知識皆無では
716デフォルトの名無しさん
2018/06/27(水) 09:44:32.66ID:SAllJH2o オライリーの訳本が8月に出るのね
717デフォルトの名無しさん
2018/06/27(水) 10:05:32.17ID:YMyBwU5o 本が出る頃には内容が古くなってるやつだろ
718デフォルトの名無しさん
2018/06/27(水) 14:44:22.85ID:3NxQrIF4719デフォルトの名無しさん
2018/06/27(水) 17:59:19.20ID:06nI5JoX 不買運動何人参加するの?大規模にやろうぜ
720デフォルトの名無しさん
2018/06/27(水) 18:21:05.70ID:nwq6g8g7 英語なら多目に見るwwwwwwww
721デフォルトの名無しさん
2018/06/27(水) 18:35:05.31ID:hr/rqCUy >>712
ありがとう、そういうオチか。&で正常に動かないのも納得です
暗黙の変換って便利ですけど理解が浅いとハマる元だったりしますよね
不適切な入力を入れると自分が書いたつもりのコードとは無関係っぽいエラーを出して???になったり
>>713
#[link(name = "・・・")]
extern {
fn func1(x: *const u8) -> u32;
fn func2(y: u32);
fn func3(z: &u32);
}
fn main() {
unsafe {
let mut a = func1("foo.dat".as_ptr()); //C側でメモリが確保されアドレスが帰ってくる
func2(a); //アドレスを使って処理
func3(&a); //確保したメモリを解放
}
}
これは動きます。u32をstd::os::raw::c_voidにするとfunc2のaで
>use of moved value: `a`
>= note: move occurs because `a` has type `std::os::raw::c_void`, which does not implement the `Copy` trait
そんな事を言われても困る・・・ついでにenumなので格納されているアドレス値の確認も面倒
usizeなら問題ない。ドキュメントが正しいならusizeはポインタのサイズらしいしこっちの方が楽かも
ありがとう、そういうオチか。&で正常に動かないのも納得です
暗黙の変換って便利ですけど理解が浅いとハマる元だったりしますよね
不適切な入力を入れると自分が書いたつもりのコードとは無関係っぽいエラーを出して???になったり
>>713
#[link(name = "・・・")]
extern {
fn func1(x: *const u8) -> u32;
fn func2(y: u32);
fn func3(z: &u32);
}
fn main() {
unsafe {
let mut a = func1("foo.dat".as_ptr()); //C側でメモリが確保されアドレスが帰ってくる
func2(a); //アドレスを使って処理
func3(&a); //確保したメモリを解放
}
}
これは動きます。u32をstd::os::raw::c_voidにするとfunc2のaで
>use of moved value: `a`
>= note: move occurs because `a` has type `std::os::raw::c_void`, which does not implement the `Copy` trait
そんな事を言われても困る・・・ついでにenumなので格納されているアドレス値の確認も面倒
usizeなら問題ない。ドキュメントが正しいならusizeはポインタのサイズらしいしこっちの方が楽かも
722デフォルトの名無しさん
2018/06/27(水) 19:40:13.19ID:5BauIrrs 訳本情報どこにある?
723デフォルトの名無しさん
2018/06/27(水) 19:41:49.80ID:Z4vkTjjE てかrust覚えるなら普通にc++のスマポくらいは知っとかんとわけわからんだろ。
724デフォルトの名無しさん
2018/06/27(水) 19:45:28.45ID:luhHLeJ1 今日発売の新しいrust本買った人いるのかな
評判良ければKindle出た頃に買おうかなと思うけど
評判良ければKindle出た頃に買おうかなと思うけど
725デフォルトの名無しさん
2018/06/27(水) 20:11:21.04 貧乏なのでPacktの糞本を$10セールの時しか買えない
726デフォルトの名無しさん
2018/06/27(水) 20:16:03.57ID:aPrQo9aq 訳本amazonにあったわ
早速予約した
早速予約した
727デフォルトの名無しさん
2018/06/27(水) 20:16:12.37ID:YMyBwU5o オライリーの本って、オンラインに無料であるやつとおなじやなかったん?
728デフォルトの名無しさん
2018/06/27(水) 21:01:38.86ID:IGU3gLqH729デフォルトの名無しさん
2018/06/28(木) 01:06:21.38ID:cJz1WTLf730デフォルトの名無しさん
2018/06/28(木) 06:00:08.46ID:YYPKz5qu rustやるのにあったほうがいい前提知識ってどれくらい?
c++とhaskellがまともに出来ないときつい?
c++とhaskellがまともに出来ないときつい?
731デフォルトの名無しさん
2018/06/28(木) 06:30:25.53ID:fobuFGlz そんなわけないだろw
どっちかてと根気が必要だ
どっちかてと根気が必要だ
732デフォルトの名無しさん
2018/06/28(木) 07:54:11.40ID:1UW06GNd いや最低限c++のコンストラクタ、デストラクタの動くタイミングくらいは知っとかないと無理だろ。
733デフォルトの名無しさん
2018/06/28(木) 08:12:22.16ID:MOChRiis >>729
一応deriveでCopy(とClone)を実装すればいいらしいと言うところまでは確認しているのですが
1.std::os::raw::c_voidへ追加で実装できるのか未確認(できたとしてもモンキーパッチになってしまう)
2.別名の型を新規に作る(usizeもしくはusizeへのエイリアスに対するメリットが思いつかない)
なもんで問題なさそうならusizeで良いかなと・・・
というかCのライブラリを使うと>>721みたいなケースは良くあると思うけど他の人はどうしているんだろ
libcのc_voidもlib.rsを見るとstd::os::raw::c_voidと同じみたいだし同様の現象が起きそうです
ググると引数はc_voidを使って戻り値はusizeを使っているようなコードも出てくるしusizeが正攻法なのか?
ちなみにこのコードだとusizeを使ってもmutが不要の警告が出るんですよね。これもそんな事を言われても
困るのですが
一応deriveでCopy(とClone)を実装すればいいらしいと言うところまでは確認しているのですが
1.std::os::raw::c_voidへ追加で実装できるのか未確認(できたとしてもモンキーパッチになってしまう)
2.別名の型を新規に作る(usizeもしくはusizeへのエイリアスに対するメリットが思いつかない)
なもんで問題なさそうならusizeで良いかなと・・・
というかCのライブラリを使うと>>721みたいなケースは良くあると思うけど他の人はどうしているんだろ
libcのc_voidもlib.rsを見るとstd::os::raw::c_voidと同じみたいだし同様の現象が起きそうです
ググると引数はc_voidを使って戻り値はusizeを使っているようなコードも出てくるしusizeが正攻法なのか?
ちなみにこのコードだとusizeを使ってもmutが不要の警告が出るんですよね。これもそんな事を言われても
困るのですが
734デフォルトの名無しさん
2018/06/28(木) 08:55:27.92ID:bLMLowda >>733
Cで確保したポインタ(特に○○ハンドルみたいなリソース)は普通はopaque structで受けると思う。
https://rust-lang-ja.github.io/the-rust-programming-language-ja/1.6/book/ffi.html#%E3%82%AA%E3%83%9A%E3%83%BC%E3%82%AF%E6%A7%8B%E9%80%A0%E4%BD%93%E3%81%AE%E8%A1%A8%E7%8F%BE
どちらかというと、func2の引数が参照渡しでなくて値渡しなのが問題では。
見た感じfunc2では借用して呼び出し後に返してもらえばいいっぽいけど。
Cで確保したポインタ(特に○○ハンドルみたいなリソース)は普通はopaque structで受けると思う。
https://rust-lang-ja.github.io/the-rust-programming-language-ja/1.6/book/ffi.html#%E3%82%AA%E3%83%9A%E3%83%BC%E3%82%AF%E6%A7%8B%E9%80%A0%E4%BD%93%E3%81%AE%E8%A1%A8%E7%8F%BE
どちらかというと、func2の引数が参照渡しでなくて値渡しなのが問題では。
見た感じfunc2では借用して呼び出し後に返してもらえばいいっぽいけど。
735デフォルトの名無しさん
2018/06/28(木) 10:18:12.24ID:MyWFnKdA >>732
えーなんで?rust書いてる人の大半は知らないでしょ
えーなんで?rust書いてる人の大半は知らないでしょ
736デフォルトの名無しさん
2018/06/28(木) 10:38:48.43ID:LheEK93m こりゃC++まだ覚えてない人はrustなんか勉強してる場合じゃないねw
737デフォルトの名無しさん
2018/06/28(木) 12:56:07.56ID:rDWw9n99 c++といってもRAIIとスマートポインタくらいで良いのでは
知らなくてもtrplなど読めばなんとかなるとは思うが
代数的データ型なども同様
あとは用途次第だけどFFIやるならCのメモリレイアウトくらいは押さえておいた方がよい
知らなくてもtrplなど読めばなんとかなるとは思うが
代数的データ型なども同様
あとは用途次第だけどFFIやるならCのメモリレイアウトくらいは押さえておいた方がよい
738デフォルトの名無しさん
2018/06/28(木) 13:32:58.62ID:LheEK93m そんないい加減なことでいいのだろうか?
ちゃんとC/C++一から十まできちんと理解した方がよいのでは?
それからじゃないとそこがいい加減でRustなんて本当に使えるようになったと言える?
ちゃんとC/C++一から十まできちんと理解した方がよいのでは?
それからじゃないとそこがいい加減でRustなんて本当に使えるようになったと言える?
739デフォルトの名無しさん
2018/06/28(木) 14:08:04.32ID:QGaIyydK C++完全に理解した人間なんて世界中に何人いるやら
740デフォルトの名無しさん
2018/06/28(木) 14:14:44.86ID:rY43/kt0 Cはともかく、C++に時間を割く必要はないじゃろ
741デフォルトの名無しさん
2018/06/28(木) 14:20:27.58ID:61gzDvUq むしろCすら知らないほうが変な先入観とか無くて所有権とかライフタイムとか素直に理解しやすそうな気もする
742デフォルトの名無しさん
2018/06/28(木) 14:28:13.71ID:MyWFnKdA 必要という理由が分からない
言語なんて使いながら覚えていくもんでしょ
言語なんて使いながら覚えていくもんでしょ
743デフォルトの名無しさん
2018/06/28(木) 15:28:41.63ID:a2wUxb0k744デフォルトの名無しさん
2018/06/28(木) 16:07:41.79ID:cJz1WTLf >>730
確かにC++とHaskellが出来きればRustの習得にはそれほど苦労しないだろうとは思う
ただ、理解できるまでにかかる時間量の問題であって、それがないとキツイってわけじゃない
むしろ、Rustの学習するためにC++とHaskellを先に学習するとか時間の無駄
The Bookが懇切丁寧に解説してくれるので前提知識はなくても全く問題ないと思う
ただし、Goみたいな言語と違ってサンプルコード読めばある程度理解できて
何となくで書けてしまうような言語ではないのでThe Bookの熟読は必須
それと、FFIする場合はある程度のCの知識は必要だよ
確かにC++とHaskellが出来きればRustの習得にはそれほど苦労しないだろうとは思う
ただ、理解できるまでにかかる時間量の問題であって、それがないとキツイってわけじゃない
むしろ、Rustの学習するためにC++とHaskellを先に学習するとか時間の無駄
The Bookが懇切丁寧に解説してくれるので前提知識はなくても全く問題ないと思う
ただし、Goみたいな言語と違ってサンプルコード読めばある程度理解できて
何となくで書けてしまうような言語ではないのでThe Bookの熟読は必須
それと、FFIする場合はある程度のCの知識は必要だよ
745デフォルトの名無しさん
2018/06/28(木) 16:49:45.85ID:Z76aQv2+ FFIしたいけどCは知らん、とかレアケースだから
そんな心配はせんでいい
そんな心配はせんでいい
746デフォルトの名無しさん
2018/06/28(木) 16:53:35.27ID:rY43/kt0 別にRustは大して関数型言語じゃないし、Rustのために他の関数型言語から、っていうのは本末転倒すぎるな
747デフォルトの名無しさん
2018/06/28(木) 16:59:30.65ID:Z76aQv2+ 全然モナドってないし、関数型言語フレーバーぐらいでしょ
748デフォルトの名無しさん
2018/06/28(木) 17:13:53.31 C++は速いがコーディングストレスで禿げる
Rustで若干のパフォーマンスを犠牲にしてでも、いかに毛髪を守れるかがテーマ
Rustで若干のパフォーマンスを犠牲にしてでも、いかに毛髪を守れるかがテーマ
749デフォルトの名無しさん
2018/06/28(木) 17:18:23.47ID:GP5sTNn0750デフォルトの名無しさん
2018/06/28(木) 17:41:56.51ID:BmtmAhz0 結論: やっぱりC++からしっかりやったほうがよい
751デフォルトの名無しさん
2018/06/28(木) 17:46:58.11ID:GP5sTNn0752デフォルトの名無しさん
2018/06/28(木) 17:47:09.81ID:tKvy+NRw C++98
C++03
C++TR1
C++11
C++14
C++17
C++20
C++23
C++26
C++29
C++32
C++35
C++38
C++03
C++TR1
C++11
C++14
C++17
C++20
C++23
C++26
C++29
C++32
C++35
C++38
753デフォルトの名無しさん
2018/06/28(木) 17:56:38.73ID:MyWFnKdA なんだコンパイルできないおじさんか。。
754デフォルトの名無しさん
2018/06/28(木) 18:32:36.30ID:f0Ft93Jb >>746
単純に最初期のRustコンパイラはOcamlで組まれてたからって事情でないの
単純に最初期のRustコンパイラはOcamlで組まれてたからって事情でないの
755デフォルトの名無しさん
2018/06/28(木) 18:34:20.70ID:f0Ft93Jb >>749
C++より潜在的なメモリ管理バグを減らせるってのは十分有用な話では
C++より潜在的なメモリ管理バグを減らせるってのは十分有用な話では
756デフォルトの名無しさん
2018/06/28(木) 18:54:33.03ID:frbOjHXy リストとリスト操作をなんで組み込んでくれなかったのかな?
::とか@とかあるだけでだいぶ捗るよね(一部の人にとって)
::とか@とかあるだけでだいぶ捗るよね(一部の人にとって)
757デフォルトの名無しさん
2018/06/28(木) 19:41:35.09ID:Z76aQv2+ パフォーマンス面だけで言えば、リンクトリストは問題外だからじゃない?
758デフォルトの名無しさん
2018/06/28(木) 20:19:23.05ID:X+ujNNAX コンパイルできないおじさんのコードもNLL有効にしたらコンパイルできたから
来年にはrust書けるようになるよ
来年にはrust書けるようになるよ
759デフォルトの名無しさん
2018/06/28(木) 20:29:59.05ID:1UW06GNd 別にどの言語だろうと所有権を考えるってのは普遍的に必要だとは思うぞ。
rustだろうとc++だろうとはたまた動的言語でもメモリ以外にも資源管理なんて
問題はどこにでも出てくるわけで。
rustだろうとc++だろうとはたまた動的言語でもメモリ以外にも資源管理なんて
問題はどこにでも出てくるわけで。
760デフォルトの名無しさん
2018/06/28(木) 20:30:03.07ID:rY43/kt0 consとかが使えないのはmutとの兼ね合いもあるんじゃないの
あれ完全にイミュータブルリスト向けだもんよ
あれ完全にイミュータブルリスト向けだもんよ
761デフォルトの名無しさん
2018/06/28(木) 21:16:31.35ID:YYPKz5qu762デフォルトの名無しさん
2018/06/28(木) 21:22:26.06ID:MOChRiis >>734
なるほど。c_voidの正体はそれでしたか
引数は既成Cライブラリの仕様なのでなるべく変更したくありません
*mutを使うコードを検討していて気がつきましたがRustの生ポインタにfunc1が返すアドレスを入れると
Cと同じ危険を抱えますよね。func3でアドレスがNULL=0になりますからその後に触ると当然クラッシュします
なるほど。c_voidの正体はそれでしたか
引数は既成Cライブラリの仕様なのでなるべく変更したくありません
*mutを使うコードを検討していて気がつきましたがRustの生ポインタにfunc1が返すアドレスを入れると
Cと同じ危険を抱えますよね。func3でアドレスがNULL=0になりますからその後に触ると当然クラッシュします
763デフォルトの名無しさん
2018/06/28(木) 21:27:33.58ID:wCMJyKP8 NLLいまだに理解できなくて使えない
764デフォルトの名無しさん
2018/06/28(木) 21:36:28.71ID:cJz1WTLf >>761
actixとactix-webのメインコントリビュータもよく見ると普通にMS所属の人だった
ttps://github.com/actix/actix/graphs/contributors
ttps://github.com/actix/actix-web/graphs/contributors
actixとactix-webのメインコントリビュータもよく見ると普通にMS所属の人だった
ttps://github.com/actix/actix/graphs/contributors
ttps://github.com/actix/actix-web/graphs/contributors
765デフォルトの名無しさん
2018/06/28(木) 21:45:00.19ID:CykyBbY/ MSは英語なので、大目に見てもらえる
766デフォルトの名無しさん
2018/06/28(木) 22:08:43.56ID:fobuFGlz > Please never sell Rust to Microsoft!
ちょっとわらった
ちょっとわらった
767デフォルトの名無しさん
2018/06/28(木) 22:56:56.15ID:mQsBu3Yx 言語に関してはMSがオーナーになるのは大勝利だろ
768デフォルトの名無しさん
2018/06/28(木) 23:58:14.47ID:aJbqINcy ではここからはC# おじさんどぞー
769デフォルトの名無しさん
2018/06/29(金) 00:13:26.39ID:9NU4CCEP770デフォルトの名無しさん
2018/06/29(金) 00:20:17.66ID:1B/tcpoY 汎用言語でないからRustと競合はしないな
771デフォルトの名無しさん
2018/06/29(金) 05:02:04.02ID:HciN/Bk/ Visual StudioでRustサポートされないかな
rlsが不安定すぎるのでMSが作り直して欲しい...
rlsが不安定すぎるのでMSが作り直して欲しい...
772デフォルトの名無しさん
2018/06/29(金) 07:15:45.03ID:pVbM0h49 rlsもracerもポンコツよね
あんまり力入れてないのかな
あんまり力入れてないのかな
773デフォルトの名無しさん
2018/06/29(金) 10:18:57.05ID:azKeAftH intelliJ使えばええやん
インテリじゃない人もタダで使えるよ
インテリじゃない人もタダで使えるよ
774デフォルトの名無しさん
2018/06/29(金) 11:21:37.40ID:eINaY/I2 支援機能だけ考えるとそうなんだけどさ
手に馴染んだemacsから離れるのは簡単じゃない
手に馴染んだemacsから離れるのは簡単じゃない
775デフォルトの名無しさん
2018/06/29(金) 12:06:31.66ID:1B/tcpoY ワイもIDE使いこなせない
776デフォルトの名無しさん
2018/06/29(金) 12:09:37.82ID:l0U/js7n intellijをつかうのです…
vsなんかよりよっぽどいいですよ…
vsなんかよりよっぽどいいですよ…
777デフォルトの名無しさん
2018/06/29(金) 12:09:46.01ID:ZOJKMSLg >>763
従来のborrow checkerの制約が緩くなるだけだから従来の理解してれば不自由なく使えるはず
従来のborrow checkerの制約が緩くなるだけだから従来の理解してれば不自由なく使えるはず
778デフォルトの名無しさん
2018/06/29(金) 12:27:36.55ID:1B/tcpoY intelij買ったけどemacs使っちゃうのよね。コード書くのにmouseが必要になるのが受け付けないみたい。
779デフォルトの名無しさん
2018/06/29(金) 18:17:46.77ID:HciN/Bk/ intellijちゃん自力でパースしてるのアホでしょ
CLionもclang使わず自力でやってるけどリリースから随分経つのに初歩的なバグ残ってるみたいだし
CLionもclang使わず自力でやってるけどリリースから随分経つのに初歩的なバグ残ってるみたいだし
780デフォルトの名無しさん
2018/06/29(金) 18:55:33.43ID:abdfGqyU >>734の方法だとこんな感じなのかな
enum ABC {}
#[link(name = "・・・")]
extern {
fn func1(x: *const u8) -> *mut ABC
fn func2(y: *mut ABC);
fn func3(z: &*mut ABC);
}
fn main() {
unsafe {
let a = func1("foo.dat".as_ptr()); //C側でメモリが確保されアドレスが帰ってくる
func2(a); //アドレスを使って処理
func3(&a); //確保したメモリを解放(以降aを触ってはいけない)
}
}
中身にアクセスしたいならenumを#[repr(C)]付きのstructにして構造を定義すればいいのかな
読み書きするRustのコード全てをunsafeにする必要がありそうだけど
enum ABC {}
#[link(name = "・・・")]
extern {
fn func1(x: *const u8) -> *mut ABC
fn func2(y: *mut ABC);
fn func3(z: &*mut ABC);
}
fn main() {
unsafe {
let a = func1("foo.dat".as_ptr()); //C側でメモリが確保されアドレスが帰ってくる
func2(a); //アドレスを使って処理
func3(&a); //確保したメモリを解放(以降aを触ってはいけない)
}
}
中身にアクセスしたいならenumを#[repr(C)]付きのstructにして構造を定義すればいいのかな
読み書きするRustのコード全てをunsafeにする必要がありそうだけど
781デフォルトの名無しさん
2018/06/29(金) 20:25:27.91ID:jUvi1FZV 英語は多めに見るおじさん、今頃rustについて必死で勉強して弱点探してるのかな
782デフォルトの名無しさん
2018/06/30(土) 01:38:16.37ID:bJf+PXWq >>780
func1とfunc2は関数プロトタイプがわかるけど
fn func1(x: *const u8) -> *mut ABC; → ABC* func1(const char *x);
fn func2(y: *mut ABC); → void func2(ABC *y);
fn func3(z: &*mut ABC);に相当するCのプロトタイプはないよね?
func1とfunc2は関数プロトタイプがわかるけど
fn func1(x: *const u8) -> *mut ABC; → ABC* func1(const char *x);
fn func2(y: *mut ABC); → void func2(ABC *y);
fn func3(z: &*mut ABC);に相当するCのプロトタイプはないよね?
783デフォルトの名無しさん
2018/06/30(土) 01:40:31.49ID:bJf+PXWq func1のxはu8だからunsigned charかuint8_tだね
784デフォルトの名無しさん
2018/06/30(土) 01:59:30.31ID:VVUAg8sI >>782
func1の引数はRustのコンパイラにその型を使えと言われたから
func2の引数はfunc1の返値に合わせた
func3の引数はfunc1が返したアドレスが格納されているアドレス。Cで言うポインタのポインタでABC **z
自分も詳しいわけではないので勘違いしているかもしれないが一応動いている
func1の引数はRustのコンパイラにその型を使えと言われたから
func2の引数はfunc1の返値に合わせた
func3の引数はfunc1が返したアドレスが格納されているアドレス。Cで言うポインタのポインタでABC **z
自分も詳しいわけではないので勘違いしているかもしれないが一応動いている
785デフォルトの名無しさん
2018/06/30(土) 05:09:23.98ID:bJf+PXWq >>784
ダブルポインタだったのか
それならvoid func3(ABC **z); → fn func3(z: *mut *mut ABC);
let mut p = func1(...);
let pp = &mut p as *mut *mut ABC;
func3(pp); // 単にfunc3(&mut p)で大丈夫なはず
ダブルポインタだったのか
それならvoid func3(ABC **z); → fn func3(z: *mut *mut ABC);
let mut p = func1(...);
let pp = &mut p as *mut *mut ABC;
func3(pp); // 単にfunc3(&mut p)で大丈夫なはず
786デフォルトの名無しさん
2018/06/30(土) 11:01:24.70ID:6fEIEQu0 ダブルポインタはあんま想定してなさげな気はする。
俺だったらもう一枚、インターフェイスかましてもう少し楽なインターフェイスにしてから
rustと繋げるわ。
俺だったらもう一枚、インターフェイスかましてもう少し楽なインターフェイスにしてから
rustと繋げるわ。
787デフォルトの名無しさん
2018/06/30(土) 11:27:27.95ID:BB0BPsjY 結局C/C++ある程度わかってないと話にならないよね。
経験ないやつはいきなりrust勉強してる場合ではない。
経験ないやつはいきなりrust勉強してる場合ではない。
788デフォルトの名無しさん
2018/06/30(土) 12:46:04.79ID:gEYLih9T コンパイルできないならまずプログラミングを勉強しなおしたほうがいいよ
789デフォルトの名無しさん
2018/06/30(土) 14:28:27.26ID:d1l1Trl+ FFIの話をrust全体の話に主語をでかくしてるおっさんがおるな
790デフォルトの名無しさん
2018/06/30(土) 16:28:11.02ID:oxrLiD+S FFIもrustの魅力の一つなのですが?
C/C++知らないやつはいつまでたってもrustを全て分かったことにならない
半人前のまま
別に必要なとこだけ使うスタンスでもいいけど半人前のクセにいっぱしのrustプログラマーヅラしないでね
C/C++知らないやつはいつまでたってもrustを全て分かったことにならない
半人前のまま
別に必要なとこだけ使うスタンスでもいいけど半人前のクセにいっぱしのrustプログラマーヅラしないでね
791デフォルトの名無しさん
2018/06/30(土) 16:34:04.77ID:WiulWXxB 昔はアセンブラ知らずにC++語るなとか言われてたが時代は変わったもんだな
792デフォルトの名無しさん
2018/06/30(土) 16:40:34.19ID:jlw7G6p9 結局どの言語を選べばいいのかわからなくなった
C++?Go?
C++?Go?
793デフォルトの名無しさん
2018/06/30(土) 17:06:44.52ID:NH6TT+Fu Coqを選べばいいと思うよ
794デフォルトの名無しさん
2018/06/30(土) 17:07:23.25ID:QJJEkoJ9 目的に合ったもの
やりたいものをやればいい
やりたいものをやればいい
795デフォルトの名無しさん
2018/06/30(土) 17:07:54.55ID:5+sKgUjT 迷うならGoでいいんでは。
796デフォルトの名無しさん
2018/06/30(土) 17:10:05.48ID:CMs/fWc6 Prolog
797デフォルトの名無しさん
2018/06/30(土) 17:38:54.49ID:RHrrdh8p rustを視野に入れながらgoという選択はない
kotkinかswiftかgoかってなら分かるけど
kotkinかswiftかgoかってなら分かるけど
798デフォルトの名無しさん
2018/06/30(土) 17:52:45.29ID:5+sKgUjT 分からないなら無理してrust使わなくていいって意味じゃろ
799デフォルトの名無しさん
2018/06/30(土) 18:08:54.39ID:9Q6R3Qzj800デフォルトの名無しさん
2018/06/30(土) 18:21:37.09ID:UB7qEnEv クロージャで再帰が出来ないのって所有権的な問題?
801デフォルトの名無しさん
2018/06/30(土) 18:24:45.75ID:cH9c2bse802デフォルトの名無しさん
2018/06/30(土) 18:38:35.11ID:cH9c2bse クロージャの再帰ってこれのこと?
recursion - Is it possible to make a recursive closure in Rust? - Stack Overflow
https://stackoverflow.com/questions/16946888/is-it-possible-to-make-a-recursive-closure-in-rust
recursion - Is it possible to make a recursive closure in Rust? - Stack Overflow
https://stackoverflow.com/questions/16946888/is-it-possible-to-make-a-recursive-closure-in-rust
803デフォルトの名無しさん
2018/06/30(土) 18:57:41.58ID:dTg1EP/S >>802
おー、できた
ありがとう
ローカル関数だと外部変数キャプチャできないし、クロージャだと再帰できないし、
同時にしたいときどうすんのかなーって思ってたから
そんなに使うこともないだろうけど、心に留めときます
おー、できた
ありがとう
ローカル関数だと外部変数キャプチャできないし、クロージャだと再帰できないし、
同時にしたいときどうすんのかなーって思ってたから
そんなに使うこともないだろうけど、心に留めときます
804デフォルトの名無しさん
2018/06/30(土) 22:59:14.25ID:pdhum8J2 >>785
ありがとう。なるほどそういう書き方もあるのか。確かに書き換わるので&mutの方が適切ですね
欲しいのはアドレスなのだからと単にアドレス演算子&を付けていました
unsafe外から任意のアドレスにあるデータへアクセスするにはその部分を関数化するようなのかな
一般的に言うプロパティの読み書きをプログラマブルに出来れば綺麗に書けるけど無理なんだろうなぁ
()無しの関数呼び出しとも言えるけどこれが出来る言語は少ない
ありがとう。なるほどそういう書き方もあるのか。確かに書き換わるので&mutの方が適切ですね
欲しいのはアドレスなのだからと単にアドレス演算子&を付けていました
unsafe外から任意のアドレスにあるデータへアクセスするにはその部分を関数化するようなのかな
一般的に言うプロパティの読み書きをプログラマブルに出来れば綺麗に書けるけど無理なんだろうなぁ
()無しの関数呼び出しとも言えるけどこれが出来る言語は少ない
805デフォルトの名無しさん
2018/06/30(土) 23:04:00.05ID:BB0BPsjY 相変わらず驚き最大の言語だな
806デフォルトの名無しさん
2018/07/01(日) 07:43:42.19ID:XZ+Fcjv4807デフォルトの名無しさん
2018/07/01(日) 08:30:53.21ID:vf9gJxu2 マルチパラダイムの場合、驚き最小の原則の法則に反するかどうかは実装者の責任じゃないだろうか
808デフォルトの名無しさん
2018/07/01(日) 08:46:31.97ID:E4o6QfBe 抽象的なことしか言わなくなったんだよ
機械語のレベルと相性が悪いし
機械語のレベルと相性が悪いし
809デフォルトの名無しさん
2018/07/01(日) 11:50:23.63ID:YY7LPhac >>807
半分はその通りだが、それならc++で良くね?になるぞ。
半分はその通りだが、それならc++で良くね?になるぞ。
810デフォルトの名無しさん
2018/07/01(日) 13:30:01.00ID:TGjVBuJr 日本語でこんなに議論が行われてることに驚いた
811デフォルトの名無しさん
2018/07/01(日) 13:37:40.54 恥ずかしくて外国人には見せられない掲示板だ
812デフォルトの名無しさん
2018/07/01(日) 13:54:17.46ID:YY7LPhac そもそもcの呼び出しはメモリ管理モデルのギャップがあるんだから
どうあがいてもc++のが簡易にできるのは当然なんだよ。
どうあがいてもc++のが簡易にできるのは当然なんだよ。
813デフォルトの名無しさん
2018/07/01(日) 15:26:57.84ID:HnzLcrw0 >>810
このスレは英語推奨だぞ
このスレは英語推奨だぞ
814デフォルトの名無しさん
2018/07/02(月) 01:23:28.76ID:5g9b1rVY >ローカル関数だと外部変数キャプチャできないし、クロージャだと再帰できないし、
ここに関してはクロージャでないものをクロージャと呼ばなければ誰も驚かなかっただろうな。
javaは似非クロージャのことはラムダ式と呼んでるし。
ここに関してはクロージャでないものをクロージャと呼ばなければ誰も驚かなかっただろうな。
javaは似非クロージャのことはラムダ式と呼んでるし。
815デフォルトの名無しさん
2018/07/02(月) 01:51:37.55ID:v1kLQBFZ Haskellの「外側のシンボルを参照することによる暗黙的な部分適用」はクロージャと呼ばれてるから
アレが許されるなら少なくともJavaのはクロージャと呼んでいい
アレが許されるなら少なくともJavaのはクロージャと呼んでいい
816デフォルトの名無しさん
2018/07/02(月) 22:14:52.04ID:KKQokwkO >>815
javaのアレは元々クロージャ導入するつもりが、
仕様と実装でクソ揉めて妥協案としてクロージャ
じゃないものとしてラムダ式を作ったんやで。
だから意図的な"クロージャではないモノ"よ。
メモリ管理にgc使うからエンクロージャの束縛の解放に
制限ないから実質クロージャだし第一級関数だけど。
javaのアレは元々クロージャ導入するつもりが、
仕様と実装でクソ揉めて妥協案としてクロージャ
じゃないものとしてラムダ式を作ったんやで。
だから意図的な"クロージャではないモノ"よ。
メモリ管理にgc使うからエンクロージャの束縛の解放に
制限ないから実質クロージャだし第一級関数だけど。
817デフォルトの名無しさん
2018/07/02(月) 22:54:50.18ID:F0SAJ301 hyper使って簡単なwebアプリ描いてみたけどわりと素直に書けるのね
818デフォルトの名無しさん
2018/07/03(火) 16:24:59.60ID:ZNPbo2Ku819デフォルトの名無しさん
2018/07/03(火) 17:05:40.29ID:ZNPbo2Ku 連投になって申し訳ないが、環境をRefCellで持ち出す例を見つけた
ttps://wandbox.org/permlink/hkwccgD2oXp0fTm7
組み合わせて、802の2番目の例のstructを更にRefCellに入れたらシグネチャ変えずに行けるかな
ttps://wandbox.org/permlink/hkwccgD2oXp0fTm7
組み合わせて、802の2番目の例のstructを更にRefCellに入れたらシグネチャ変えずに行けるかな
820デフォルトの名無しさん
2018/07/03(火) 17:29:45.80ID:LuUToNY2821デフォルトの名無しさん
2018/07/03(火) 17:31:22.43ID:nNrfrM83 >>819
RefCell使うなら、Rustで書く意味ないだろ
RefCell使うなら、Rustで書く意味ないだろ
822デフォルトの名無しさん
2018/07/03(火) 18:19:36.75ID:ZNPbo2Ku823デフォルトの名無しさん
2018/07/03(火) 21:26:26.07ID:9JOKXkQl クロージャじゃないとできない用途って具体的にどういうものなの
想像つかなかったので単純な興味本位
想像つかなかったので単純な興味本位
824デフォルトの名無しさん
2018/07/03(火) 21:32:07.93ID:2DeV5pvZ 例えば最適化ライブラリなどに目的関数を渡す場合などで
引数以外からパラメータを注入する必要がある場合。
引数以外からパラメータを注入する必要がある場合。
825デフォルトの名無しさん
2018/07/03(火) 22:38:00.99ID:9ONgpSq2826デフォルトの名無しさん
2018/07/03(火) 23:58:54.50ID:6KvlcSKZ クロージャじゃなきゃできないことじゃなくて、
クロージャの再起呼び出しじゃなきゃできないことを聞きたかった
引数以外のパラメーターを差し込む場合、普通は再起は必要ないよね
クロージャの再起呼び出しじゃなきゃできないことを聞きたかった
引数以外のパラメーターを差し込む場合、普通は再起は必要ないよね
827デフォルトの名無しさん
2018/07/04(水) 00:52:48.93ID:MQVza7QA 風雲再起ぃ〜!!
828デフォルトの名無しさん
2018/07/04(水) 01:08:42.88ID:ace/1w5F 1.28はrustdocするときソースコードのlintするようになったんの?
deny属性に違反するソースコードがドキュメント生成時にエラー投げる。
>>822
クロージャがある言語は普通、関数とクロージャ区別しないからその感覚はおかしくないと思う。
でもクロージャの実装上の制約とかライフタイムとかでループで書いたほうがいいと思うコードはある。
deny属性に違反するソースコードがドキュメント生成時にエラー投げる。
>>822
クロージャがある言語は普通、関数とクロージャ区別しないからその感覚はおかしくないと思う。
でもクロージャの実装上の制約とかライフタイムとかでループで書いたほうがいいと思うコードはある。
829デフォルトの名無しさん
2018/07/04(水) 09:35:17.80ID:7aH0kDWz830デフォルトの名無しさん
2018/07/04(水) 20:54:21.49ID:1R4S9ii/831デフォルトの名無しさん
2018/07/04(水) 21:42:58.93ID:JvJNYHQo 最近rustの勉強始めたものです
この言語ってstatementなのかexpressionなのかをどういう方針で決めてんでしょう?
ifがexpressionなのはわかったけど、letはなぜstatementなんだろ?
他の関数型言語のようにexpressionでもよかろうに、と思った
この言語ってstatementなのかexpressionなのかをどういう方針で決めてんでしょう?
ifがexpressionなのはわかったけど、letはなぜstatementなんだろ?
他の関数型言語のようにexpressionでもよかろうに、と思った
832デフォルトの名無しさん
2018/07/04(水) 21:53:13.67ID:gFgZc5FG KCX
833デフォルトの名無しさん
2018/07/04(水) 23:31:21.37ID:kqLSfqeN 古いCで良く在る if ( (let a = f()) != 0 ) {} みたいなのが嫌だったんだろう。
そもそも、変数束縛が値を持つ必然性は無いよね。
そもそも、変数束縛が値を持つ必然性は無いよね。
834デフォルトの名無しさん
2018/07/04(水) 23:32:39.47ID:kqLSfqeN835デフォルトの名無しさん
2018/07/05(木) 00:07:01.10ID:wS7IFFVg 他の関数型言語のletは随分来歴が違うイメージ。
let x = ... in expはラムダ式の糖衣構文の一種なので関数型なら容易に実装できて便利に使えるのに対し、
rustのletは手続き型の変数宣言の方が近い
schemeのletとdefineが全然意味が違うのを知ってると違和感無い
let x = ... in expはラムダ式の糖衣構文の一種なので関数型なら容易に実装できて便利に使えるのに対し、
rustのletは手続き型の変数宣言の方が近い
schemeのletとdefineが全然意味が違うのを知ってると違和感無い
836デフォルトの名無しさん
2018/07/05(木) 00:16:12.98ID:OgxnbJsr >>831
この辺読めばいいかと。
https://rust-lang-ja.github.io/the-rust-programming-language-ja/1.6/book/functions.html#%E5%BC%8F%E5%AF%BE%E6%96%87
letは所有権移動だけど、返り値を認めちゃうと
束縛先と返り値のどちらに移動すべきか分からない、ということかな。
この辺読めばいいかと。
https://rust-lang-ja.github.io/the-rust-programming-language-ja/1.6/book/functions.html#%E5%BC%8F%E5%AF%BE%E6%96%87
letは所有権移動だけど、返り値を認めちゃうと
束縛先と返り値のどちらに移動すべきか分からない、ということかな。
837デフォルトの名無しさん
2018/07/05(木) 00:52:35.42ID:YJbjvjoP838デフォルトの名無しさん
2018/07/05(木) 01:22:02.41ID:DZKRf+tO えっ、毎回コピーすんの?
それ無駄じゃね?
それ無駄じゃね?
839デフォルトの名無しさん
2018/07/05(木) 03:33:15.42ID:CGu9cAAd >>837
ブロック式で let a = { let b = 1; let c = b + 1; b + c }; と書ける
けどミュータブルな変数を書けるからコードが関数型言語風になるかどうかは書き手次第
ブロック式で let a = { let b = 1; let c = b + 1; b + c }; と書ける
けどミュータブルな変数を書けるからコードが関数型言語風になるかどうかは書き手次第
840デフォルトの名無しさん
2018/07/05(木) 20:22:41.90ID:yHZEHedG841デフォルトの名無しさん
2018/07/05(木) 21:13:46.28ID:nmRduEAc あるstructもとに任意のフィールドを追加した別のstructを定義することってできる?
842デフォルトの名無しさん
2018/07/05(木) 21:35:03.85ID:wS7IFFVg イテレータ系はみんなそれやってる
mapとかfilterとか、元のイテレータ+変換・フィルター関数みたいな構造体を返してくる
mapとかfilterとか、元のイテレータ+変換・フィルター関数みたいな構造体を返してくる
843デフォルトの名無しさん
2018/07/05(木) 22:08:25.13ID:uqSz2h6E へー今気がついた
strはmutの有無にかかわらずRO領域に配置される
sliceはmutの有無にかかわらずRW領域に配置される
つまり今風のOS上だと
strをポインタ経由で書き換えようとするとメモリアクセス違反
sliceをmut無しで宣言した物でもポインタ経由で書き換えられる
リンカの設定にもよると思うけどマイコンなどで使うときは注意が必要そう
strはmutの有無にかかわらずRO領域に配置される
sliceはmutの有無にかかわらずRW領域に配置される
つまり今風のOS上だと
strをポインタ経由で書き換えようとするとメモリアクセス違反
sliceをmut無しで宣言した物でもポインタ経由で書き換えられる
リンカの設定にもよると思うけどマイコンなどで使うときは注意が必要そう
844デフォルトの名無しさん
2018/07/05(木) 22:15:27.91ID:B3fauv+j えぇ…安全に使えないじゃん。キツツキに縛りつけてる意味ないじゃんrustの存在意義が…
845デフォルトの名無しさん
2018/07/05(木) 22:46:05.11ID:5CTMsWjW 再現コードはよ
846デフォルトの名無しさん
2018/07/05(木) 23:38:48.53ID:+dwFnTVE unsafeの話でしょ
脊椎反射したいつもの人が見事に釣られている
脊椎反射したいつもの人が見事に釣られている
847デフォルトの名無しさん
2018/07/05(木) 23:53:13.69ID:uqSz2h6E もちろんunsafe中の話です
fn main(){
let s:[i32;2] = [10, 20];
println!("s[0]={}", s[0]);
unsafe{*(s.as_ptr() as *mut i32)=30}
println!("s[0]={}", s[0]);
}
実行結果
s[0]=10
s[0]=30
これそのものが問題になるケースは少ないだろうけど
ROにいるはずと思い込んでいるとハマるケースがありそう
任意の場所に配置するアトリビュートとかあるのかな
fn main(){
let s:[i32;2] = [10, 20];
println!("s[0]={}", s[0]);
unsafe{*(s.as_ptr() as *mut i32)=30}
println!("s[0]={}", s[0]);
}
実行結果
s[0]=10
s[0]=30
これそのものが問題になるケースは少ないだろうけど
ROにいるはずと思い込んでいるとハマるケースがありそう
任意の場所に配置するアトリビュートとかあるのかな
848デフォルトの名無しさん
2018/07/06(金) 00:07:24.39ID:0SVgWEm6849デフォルトの名無しさん
2018/07/06(金) 00:36:54.90ID:iypT0A6c >>842
返すんじゃなくて定義したいんだけども
返すんじゃなくて定義したいんだけども
850デフォルトの名無しさん
2018/07/06(金) 06:49:56.18ID:Sybd3k2C >>841>>849
stackoverflowとリファレンスを見た限りstruct定義の入れ子はサポートしてない
https://stackoverflow.com/questions/23629201/nested-structs-in-rust
https://doc.rust-lang.org/reference/items/structs.html
stackoverflowとリファレンスを見た限りstruct定義の入れ子はサポートしてない
https://stackoverflow.com/questions/23629201/nested-structs-in-rust
https://doc.rust-lang.org/reference/items/structs.html
851デフォルトの名無しさん
2018/07/06(金) 18:21:10.44ID:iypT0A6c どうもありがとう。でもちょっとニュアンスが違う。
struct 2d {x, y}
struct 3d extends 2d { z }
で3dが2dのxとyのフィールドと独自のzを持つようなかんじ
マクロで出来ないか精一杯やってみたが出来なかった
元となるstructごとにマクロ作ればできるんだけどそれじゃ意味ないし
struct 2d {x, y}
struct 3d extends 2d { z }
で3dが2dのxとyのフィールドと独自のzを持つようなかんじ
マクロで出来ないか精一杯やってみたが出来なかった
元となるstructごとにマクロ作ればできるんだけどそれじゃ意味ないし
852デフォルトの名無しさん
2018/07/06(金) 18:57:55.41ID:0SVgWEm6 設計見直したら?
853デフォルトの名無しさん
2018/07/06(金) 19:23:23.92ID:6zaAciaG >>851
Rust Design PatternsにはDerefでやるのはアンチパターンだと書いてあるけど、別の似たようなサイトではお勧め扱いだった気がする
https://github.com/rust-unofficial/patterns/blob/master/anti_patterns/deref.md
Rust Design PatternsにはDerefでやるのはアンチパターンだと書いてあるけど、別の似たようなサイトではお勧め扱いだった気がする
https://github.com/rust-unofficial/patterns/blob/master/anti_patterns/deref.md
854デフォルトの名無しさん
2018/07/06(金) 21:12:32.07ID:CzZn5kZZ struct A {int size; char data[];}
みたいなのをRustから読み書きするインターフェイスを考えてみた
enum PTR {}
struct A {p:*mut PTR}
impl A {
fn new(ptr:*mut PTR) -> Self {A {p:ptr}}
fn get_size(&mut self) -> i32 {unsafe {*(self.ptr as *mut i32).offset(0)}}
fn set_size(&mut self, n:i32) {unsafe {*(self.ptr as *mut i32).offset(0) = n;}}
fn data(&mut self) -> &mut [u8] {unsafe{std::slice::from_raw_parts_mut((self.ptr as *mut u8).offset(4), self.get_size() as usize)}}
}
fn main() {
let mut s:[u8;14] = [10,0,0,0,1,2,3,4,5,6,7,8,9,0];
let mut x = A::new(s.as_ptr() as *mut PTR);
println!("x.get_size()={}", x.get_size());
println!("x.data()[0]={}", x.data()[0]);
println!("x.data()[1]={}", x.data()[1]);
x.set_size(7);
println!("x.get_size()={}", x.get_size());
x.data()[1] = 225;
println!("x.data()[1]={}", x.data()[1]);
println!("s[5]={}", s[5]);
}
実行結果
x.get_size()=10
x.data()[0]=1
x.data()[1]=2
x.get_size()=7
x.data()[1]=255
s[5]=255
美しくないコードだ・・・
メインのRustコードにunsafeを書きたくないので全てstructに突っ込んだらこうなった
dataはslice経由で比較的自由に読み書き出来るけど、sizeは任意のアドレスを挿している数値型の作り方が判らないので関数が2つに
みたいなのをRustから読み書きするインターフェイスを考えてみた
enum PTR {}
struct A {p:*mut PTR}
impl A {
fn new(ptr:*mut PTR) -> Self {A {p:ptr}}
fn get_size(&mut self) -> i32 {unsafe {*(self.ptr as *mut i32).offset(0)}}
fn set_size(&mut self, n:i32) {unsafe {*(self.ptr as *mut i32).offset(0) = n;}}
fn data(&mut self) -> &mut [u8] {unsafe{std::slice::from_raw_parts_mut((self.ptr as *mut u8).offset(4), self.get_size() as usize)}}
}
fn main() {
let mut s:[u8;14] = [10,0,0,0,1,2,3,4,5,6,7,8,9,0];
let mut x = A::new(s.as_ptr() as *mut PTR);
println!("x.get_size()={}", x.get_size());
println!("x.data()[0]={}", x.data()[0]);
println!("x.data()[1]={}", x.data()[1]);
x.set_size(7);
println!("x.get_size()={}", x.get_size());
x.data()[1] = 225;
println!("x.data()[1]={}", x.data()[1]);
println!("s[5]={}", s[5]);
}
実行結果
x.get_size()=10
x.data()[0]=1
x.data()[1]=2
x.get_size()=7
x.data()[1]=255
s[5]=255
美しくないコードだ・・・
メインのRustコードにunsafeを書きたくないので全てstructに突っ込んだらこうなった
dataはslice経由で比較的自由に読み書き出来るけど、sizeは任意のアドレスを挿している数値型の作り方が判らないので関数が2つに
855デフォルトの名無しさん
2018/07/07(土) 01:32:56.18ID:odAPlBjD rustからrust-bindgenが吐いたC++のクラス使うのめんどくさいな
856デフォルトの名無しさん
2018/07/07(土) 18:52:04.06ID:Otm/KpKR ところで、全然話変わるんだけどさ、mutってどう発音してる?
自分は「むっと」ってよんじゃってて、なんか、かっこわるいんだけど。
自分は「むっと」ってよんじゃってて、なんか、かっこわるいんだけど。
857デフォルトの名無しさん
2018/07/07(土) 19:12:39.63ID:HR9VVpP9 当然、「みゅっと」でしょ
858デフォルトの名無しさん
2018/07/07(土) 20:15:18.96ID:h+p+JRvo 怒ってるのね
859デフォルトの名無しさん
2018/07/07(土) 20:19:35.52ID:Ty8z3s6n 鬼太郎のCVほっぽりだして産休に入るみゅ
860デフォルトの名無しさん
2018/07/07(土) 20:58:49.46ID:PbU76+k2 mjúːtəbl
861デフォルトの名無しさん
2018/07/07(土) 23:03:04.65ID:cEw8AP4C ミュート
862デフォルトの名無しさん
2018/07/08(日) 00:41:02.43ID:tBFClkmn863デフォルトの名無しさん
2018/07/08(日) 11:33:21.07ID:6xrO+JsL そりゃ入れないほうがいい証左になるなw
864デフォルトの名無しさん
2018/07/08(日) 13:33:35.86 みゅう太
865デフォルトの名無しさん
2018/07/09(月) 02:59:46.84ID:4B4QAQi1 >>862
いつまでtanakhなんてスパコン詐欺師を崇めるんだろうなこのスレの住人
いつまでtanakhなんてスパコン詐欺師を崇めるんだろうなこのスレの住人
866デフォルトの名無しさん
2018/07/09(月) 07:41:39.43ID:DXSSRVdR 国内の会社は大目に見てもらえないから大変だなあ
867デフォルトの名無しさん
2018/07/09(月) 09:23:25.63ID:6MpumzZl NEDOとかダメだろ
868デフォルトの名無しさん
2018/07/09(月) 22:56:35.23ID:M/GPMU7W 「nvidiaの倒し方、知らないでしょ?オレらはもう知ってますよ」
869デフォルトの名無しさん
2018/07/10(火) 08:37:04.49ID:wS3GMIgw 実際green500で倒してるんだからたいしたものだよ
870デフォルトの名無しさん
2018/07/10(火) 14:26:10.12ID:+spxUUiC871デフォルトの名無しさん
2018/07/11(水) 12:56:28.28ID:8BQ5VZH8 WebアプリをRustで書くって、どういう需要があるの?
ラズパイみたいな環境?
ラズパイみたいな環境?
872デフォルトの名無しさん
2018/07/11(水) 13:05:53.98ID:A6luu057 車買ったらムダにドライブしたくなるじゃん。すぐ飽きるのに。
あんな感じ。
あんな感じ。
873デフォルトの名無しさん
2018/07/11(水) 13:08:35.26ID:uU0OdRlq クライアントサイドとサーバサイドで同じコードが使えるって話ちゃうのん?
874デフォルトの名無しさん
2018/07/11(水) 13:30:09.56ID:QvLfDUJ3 同じ言語
だな
それはnode.js環境も同じだが
だな
それはnode.js環境も同じだが
875デフォルトの名無しさん
2018/07/11(水) 13:31:28.26ID:QvLfDUJ3 期待できる点は速くて安全
876デフォルトの名無しさん
2018/07/11(水) 16:34:41.89ID:dzRS/LEU 全部rustって需要はあんまりない気がするけど、サーバ側ならかなりマッチしてる
877デフォルトの名無しさん
2018/07/11(水) 17:15:53.86ID:NEswxD4L webassebly
878デフォルトの名無しさん
2018/07/11(水) 18:10:54.52ID:EHDLIx8N サーバーサイド → Rust
クライアントサイド → Rust
ブラウザ → Rust
完璧じゃないか
クライアントサイド → Rust
ブラウザ → Rust
完璧じゃないか
879デフォルトの名無しさん
2018/07/11(水) 18:17:02.02ID:4XcPTXi0 Yewのベンチマークって他に誰か取ってた?
880デフォルトの名無しさん
2018/07/11(水) 18:46:56.99ID:8BQ5VZH8 やたらノンブロッキングに拘ってるけど、それが本当に必要な人ってごく一部だよね
人気サービスの中の人だけ
普通はスレッド立てまくりで対応可能だし、たまに台数増やすだけで問題ないでしょ?
人気サービスの中の人だけ
普通はスレッド立てまくりで対応可能だし、たまに台数増やすだけで問題ないでしょ?
881デフォルトの名無しさん
2018/07/11(水) 18:59:32.73ID:v5sVc8KX だからそれは並列性が必要ってことでしょ
882デフォルトの名無しさん
2018/07/11(水) 19:13:29.64ID:A6luu057 真のアイルランド人はノンブロッキングなど必要としないwww
883デフォルトの名無しさん
2018/07/11(水) 20:14:09.83ID:IOg1uM7w アイルランドいつ統一するん?
884デフォルトの名無しさん
2018/07/12(木) 20:27:33.26ID:vXAFXBtg オライリーの奴予約した
885デフォルトの名無しさん
2018/07/12(木) 22:30:46.69ID:Wlqbcgdb >>884
白紙の未来を絶望に染めてやろう。
あれもうかなり古いぞ。
rust 2018で今よりさらに変わるんだぞ。
エラーハンドリングもモジュールもTraitも重要な部分全部かわるぞ。
nightlyで結構実装済みだから現行のnightlyですら違うぞ。
macro 2.0はいいぞ!
白紙の未来を絶望に染めてやろう。
あれもうかなり古いぞ。
rust 2018で今よりさらに変わるんだぞ。
エラーハンドリングもモジュールもTraitも重要な部分全部かわるぞ。
nightlyで結構実装済みだから現行のnightlyですら違うぞ。
macro 2.0はいいぞ!
886デフォルトの名無しさん
2018/07/12(木) 22:39:04.16ID:sU95dCXR この仕事してるならそんなの普通じゃん
887デフォルトの名無しさん
2018/07/13(金) 00:41:53.18ID:MpWeaOSk >>885
Rust 2018にエラーハンドリングの変更とかあったっけ?
Rust 2018での追加・変更って"module, impl trait, Generators/async/await, macros 2.0, NLL, SIMD"だけじゃなかったっけ?
もしかしてdo catchがstable化されるの?それとも、それ以外で変更があるの?
エラーハンドリングで互換性を崩すような変更があるならかなり痛いんだけど…
Rust 2018にエラーハンドリングの変更とかあったっけ?
Rust 2018での追加・変更って"module, impl trait, Generators/async/await, macros 2.0, NLL, SIMD"だけじゃなかったっけ?
もしかしてdo catchがstable化されるの?それとも、それ以外で変更があるの?
エラーハンドリングで互換性を崩すような変更があるならかなり痛いんだけど…
888デフォルトの名無しさん
2018/07/13(金) 04:40:11.96ID:7ZPDFHpF https://github.com/rust-lang/rfcs/blob/master/text/2388-try-expr.md
2018からtryがキーワードとして予約される(catchは廃案)
editionが未完成だと実装できないから2018リリースにはきっと間に合わない
2018からtryがキーワードとして予約される(catchは廃案)
editionが未完成だと実装できないから2018リリースにはきっと間に合わない
889デフォルトの名無しさん
2018/07/13(金) 08:17:48.56ID:wonLmOyY RustもC++みたいに何年かおきに大きく変更されるの?
890デフォルトの名無しさん
2018/07/13(金) 10:05:43.27ID:U/mhKMvJ こないだ1.0になったばかりな気がするんだが。仕事じゃつかえないな
891デフォルトの名無しさん
2018/07/13(金) 10:19:59.41ID:MpWeaOSk こないだってもう3年前だぞ
C++が仕事で使えるんだから使えるだろ
てか、Swiftなんてもう4でそろそろ5になるとか言ってるんだぞ
あれが仕事で使えるんだからRustなんか楽勝だろ
C++が仕事で使えるんだから使えるだろ
てか、Swiftなんてもう4でそろそろ5になるとか言ってるんだぞ
あれが仕事で使えるんだからRustなんか楽勝だろ
892デフォルトの名無しさん
2018/07/13(金) 10:29:57.41ID:U/mhKMvJ swiftなんてappleのDSL
893デフォルトの名無しさん
2018/07/13(金) 10:31:39.87ID:U/mhKMvJ C99勢が砦
894デフォルトの名無しさん
2018/07/13(金) 11:07:37.12ID:sS4PjtpX 実際仕事で使っている人たちがいるのに使えないということは、別のところに問題があるのよ
895デフォルトの名無しさん
2018/07/13(金) 11:48:20.64ID:ERNuP0HI 安定性以前にまともにfibが書けない言語だから仕事じゃ使えない
896デフォルトの名無しさん
2018/07/13(金) 12:52:21.80ID:sS4PjtpX 突然の自己紹介
897デフォルトの名無しさん
2018/07/13(金) 13:54:10.99ID:GXltVmCz >>50辺りの流れは何回見ても本当に秀逸
898デフォルトの名無しさん
2018/07/13(金) 15:05:24.82ID:KpXdroi9 車輪の再発明を抑止し過ぎるとnode.jsみたいになるからね
やり過ぎはだめってことよな
やり過ぎはだめってことよな
899デフォルトの名無しさん
2018/07/13(金) 15:40:42.13ID:5L9NPjD5 どゆこと?
900デフォルトの名無しさん
2018/07/13(金) 16:06:42.44ID:AcLm8Zma たかだか一行二行のプログラムのnpmパッケージであふれ、しかも子孫含めた被参照ダウンロードが100万とかざらで、さらにそれがバグっている。
901デフォルトの名無しさん
2018/07/13(金) 17:28:42.65ID:vZnflVWC Rust関係ないけど最近ArchLinuxのAURに細工されたパッケージが上げられててほんのちょっとだけ話題になったんだけど
正直自分が使うcrateやそれの依存関係まで含めて全部書いてる人が信用できるかとかソースまでチェックしてる人なんていないよね…?
イカンなぁと思いながら盲目的に使っちゃってるわ(´・ω・`)
正直自分が使うcrateやそれの依存関係まで含めて全部書いてる人が信用できるかとかソースまでチェックしてる人なんていないよね…?
イカンなぁと思いながら盲目的に使っちゃってるわ(´・ω・`)
902デフォルトの名無しさん
2018/07/13(金) 17:44:54.43ID:sS4PjtpX CPUのL2キャッシュを作った人の叔母の恋人がテロリストがどうか気にするところから始めたほうがいいな
903デフォルトの名無しさん
2018/07/13(金) 17:46:33.55ID:U/mhKMvJ 某ファイルシステムの作者が奥さんを殺してしまってな
904デフォルトの名無しさん
2018/07/13(金) 18:29:15.55 怖いなぁ、戸締まりすとこ…
905デフォルトの名無しさん
2018/07/13(金) 19:36:34.68ID:wonLmOyY そういえばRUSTという殺し合いをするゲームがありますね
906デフォルトの名無しさん
2018/07/13(金) 20:34:31.63ID:Cw5pkNzp crate以前に詐欺企業Mozillaが信用できないから
907デフォルトの名無しさん
2018/07/13(金) 20:59:24.06ID:IpXdw+4i Mozillaが詐欺企業なら、Mozilla以上に言う事やる事がコロコロ変わるAppleや
個人情報を収集しまくりのGoogleやMicrosoftはどうなってしまうんだろうなw
個人情報を収集しまくりのGoogleやMicrosoftはどうなってしまうんだろうなw
908デフォルトの名無しさん
2018/07/13(金) 21:16:35.53ID:Y3xd+pZ1 > 仕事じゃ使えない
おじさんのことじゃん
おじさんのことじゃん
909デフォルトの名無しさん
2018/07/13(金) 21:19:05.39ID:EK55GFqW crates.ioを見に行かないようにして、社内で確認済みのcrateしか置いてない社内リポジトリだけ
参照するような設定って出来るんだっけ?
参照するような設定って出来るんだっけ?
910デフォルトの名無しさん
2018/07/13(金) 21:39:00.40ID:Y3xd+pZ1 RFCはあるみたいだけどまだ出来ないのかな
https://github.com/rust-lang/rust/issues/44931
https://github.com/rust-lang/rust/issues/44931
911デフォルトの名無しさん
2018/07/13(金) 21:50:09.75ID:EK55GFqW >>910
まだ半分も済んでないね
まだ半分も済んでないね
912デフォルトの名無しさん
2018/07/14(土) 00:26:44.88ID:nZvQhL00 >>909
cargoはそこらへん腐ってるから無理。
出来はするけどcrates.ioをクローンするツールの開発が
殆ど動いてないしクローンしてもそのローカルリポジトリを管理するツールがない。
ここらへんはoffline modeも絡んでくるけど、
どうせ欠陥機能作って廃止してまた作っての繰り返しでめちゃくちゃになるだけ。
cargoはそこらへん腐ってるから無理。
出来はするけどcrates.ioをクローンするツールの開発が
殆ど動いてないしクローンしてもそのローカルリポジトリを管理するツールがない。
ここらへんはoffline modeも絡んでくるけど、
どうせ欠陥機能作って廃止してまた作っての繰り返しでめちゃくちゃになるだけ。
913デフォルトの名無しさん
2018/07/14(土) 06:22:32.24ID:brBR1uF1 crates.ioのソースを持ってきてローカルに立ち上げてhostsで向ければ出来上がりじゃん
914デフォルトの名無しさん
2018/07/14(土) 06:46:24.80ID:W3qfg8ZM cargoが便利コマンドすぎて、原始的な事がやりづらくなってる問題
915デフォルトの名無しさん
2018/07/14(土) 09:02:37.98ID:5xFWH4XP 便利っつーかモジュラリティーの低い構造になってるだけだろ。。
バカ設計だわ。
バカ設計だわ。
916デフォルトの名無しさん
2018/07/14(土) 10:21:42.77ID:7J+9ARNC >>908
go使うよ。32bitsマシン以上向けならgoで十分だ。
go使うよ。32bitsマシン以上向けならgoで十分だ。
917デフォルトの名無しさん
2018/07/14(土) 11:25:26.45ID:brBR1uF1 仕事じゃ使えないのは言語じゃなくてお前だって言われてるのに何故goが出てくる
918デフォルトの名無しさん
2018/07/14(土) 11:57:28.13ID:7J+9ARNC Rust使えないから
919デフォルトの名無しさん
2018/07/14(土) 14:38:38.90ID:HNobJoZ0 Rust(が/を)使えないから
どっち
どっち
920デフォルトの名無しさん
2018/07/14(土) 14:41:53.11ID:6PGIbnJP にほんごむずかしいあるね
921デフォルトの名無しさん
2018/07/14(土) 14:53:02.90ID:fAbuOpO3 Rustの提案するエセソリューションは機械語のレベルと相性が悪い
CやC++のほうがまだまともなアプローチしてる
CやC++のほうがまだまともなアプローチしてる
922デフォルトの名無しさん
2018/07/14(土) 15:01:24.24ID:3YOZASYs 「機械語のレベルと相性が悪い」が "All your base are belong to us" みたいに見えてきた
なんかもう根本的に解ってないなっていう感じからくる面白さがある
なんかもう根本的に解ってないなっていう感じからくる面白さがある
923デフォルトの名無しさん
2018/07/14(土) 15:14:29.28ID:HNobJoZ0 モジラに職を奪われたおじさんと
そのおじさんの物まねをするおじさん達のスレ
そのおじさんの物まねをするおじさん達のスレ
924デフォルトの名無しさん
2018/07/14(土) 15:18:04.39ID:n16W1iUj LLVMについていけないおじさん
925デフォルトの名無しさん
2018/07/14(土) 15:22:17.69ID:P7IB+4yp Cやアセンブラなどの低レベルな処理と連動する場合unsafeを使わざるを得ないが、言語の仕様上普通に書くとunsafe祭りになってしまい
ソースコードの可読性が低下するのが残念。抽象化したくてもこれまた仕様的に完全な抽象化が出来なかったりするし
ソースコードの可読性が低下するのが残念。抽象化したくてもこれまた仕様的に完全な抽象化が出来なかったりするし
926デフォルトの名無しさん
2018/07/14(土) 15:47:47.15ID:7J+9ARNC gcが有って良いならgo。 ない方が良いならnimってことか
927デフォルトの名無しさん
2018/07/14(土) 16:00:11.16ID:6PGIbnJP まだ学習し始めたばかりでみんなが何を言っているのかよくわからない。
928デフォルトの名無しさん
2018/07/14(土) 16:53:11.51ID:QBMXvyuq どいつもこいつも適当なことをそれっぽく言ってるだけだから気にしなくておk
929デフォルトの名無しさん
2018/07/14(土) 16:57:03.73ID:7J+9ARNC ここはアンチの溜まり場だよ
930デフォルトの名無しさん
2018/07/14(土) 17:09:58.35ID:lldWHLOY 今日は本物がいないな
931デフォルトの名無しさん
2018/07/14(土) 17:28:07.35ID:veV9L5cz >>926
一体いつからNimにはGCがなくなったんだ…?(困惑)
一体いつからNimにはGCがなくなったんだ…?(困惑)
932デフォルトの名無しさん
2018/07/14(土) 17:41:12.64ID:/EttrqmU933デフォルトの名無しさん
2018/07/14(土) 17:45:59.63ID:h94PG7c/ https://nim-lang.org/docs/gc.html
RustはできないしNimも詳しくない専門性なしのおじさん
RustはできないしNimも詳しくない専門性なしのおじさん
934デフォルトの名無しさん
2018/07/14(土) 18:18:40.34ID:yo3MGbyq お前らもモジカスに親を殺されてみろよ
935デフォルトの名無しさん
2018/07/14(土) 20:02:32.48ID:3YOZASYs バトー「つまり、本物の "Rustによる被害者" というのは最初の一人だけで、
残りは全て模倣犯による狂言だったってのか?」
トグサ「ああ。狂言を読んだ者は初めのうちは怒りを覚える。
だが、その理不尽な怒りを抱えきれなくなると、
衝動的に自らが "Rustによる被害者" になりすますことで、
狂言によって植え付けられた怒りを共有しようとしていたんじゃないか」
バトー「実在しない "Rustによる被害者" たちが連鎖するってわけか……。
── 最初の一人はとうの昔に死んじまってるのにな」
残りは全て模倣犯による狂言だったってのか?」
トグサ「ああ。狂言を読んだ者は初めのうちは怒りを覚える。
だが、その理不尽な怒りを抱えきれなくなると、
衝動的に自らが "Rustによる被害者" になりすますことで、
狂言によって植え付けられた怒りを共有しようとしていたんじゃないか」
バトー「実在しない "Rustによる被害者" たちが連鎖するってわけか……。
── 最初の一人はとうの昔に死んじまってるのにな」
936デフォルトの名無しさん
2018/07/14(土) 23:00:52.98ID:6hFYodEH937デフォルトの名無しさん
2018/07/14(土) 23:51:21.23ID:5xFWH4XP rustに職を奪われたおじさんなんて実際は存在しないわけだが。。
まあそういう人がいると思った方が幸せな人がいるのは事実。
まあそういう人がいると思った方が幸せな人がいるのは事実。
938デフォルトの名無しさん
2018/07/15(日) 00:42:05.31ID:NkViXM6D Rustに職を奪われたおじさんなんて名称なんてどうでもよくて
fibも書けない確かな"存在"がぐちぐち居座るせいで幸せになれない
fibも書けない確かな"存在"がぐちぐち居座るせいで幸せになれない
939デフォルトの名無しさん
2018/07/15(日) 02:53:02.00ID:x6haH/8s 良かった。Rustに職を奪われたおじさんは居ないんだ。
940デフォルトの名無しさん
2018/07/15(日) 10:56:41.89ID:NalVqF46 NLLがstabilizeされたらfibを書けないおじさんもfib書けるようになって成仏できるよ
941デフォルトの名無しさん
2018/07/15(日) 11:00:28.92ID:rsj4GyZ/ >>940
「fibを書けないアホ」が「木構造を書けないアホ」に変わるだけと予想
「fibを書けないアホ」が「木構造を書けないアホ」に変わるだけと予想
942デフォルトの名無しさん
2018/07/15(日) 14:08:56.51ID:Um7D2OLN rustでfibが書けたり、木構造が書けることをここまで自慢してくる輩って。。
943デフォルトの名無しさん
2018/07/15(日) 15:31:20.30ID:rsj4GyZ/ 自慢も何もプログラマを名乗るなら最低限それくらい書けて当然だろ?ってこと
例えば、「俺は数学者だ」とか言ってる奴が微積分すら理解出来てなくて
「でも、因数分解ならできるし」とか言ってたら全力でぶっ叩くだろ?
つまりは程度の問題ってわけ
そして俺はRustでfibや木構造すら書けない奴はどうせ他の言語使ったって
ろくなコード書いてないだろうからそんな奴がプログラマを名乗るなんて片腹痛いわ!と思ってるだけ
例えば、「俺は数学者だ」とか言ってる奴が微積分すら理解出来てなくて
「でも、因数分解ならできるし」とか言ってたら全力でぶっ叩くだろ?
つまりは程度の問題ってわけ
そして俺はRustでfibや木構造すら書けない奴はどうせ他の言語使ったって
ろくなコード書いてないだろうからそんな奴がプログラマを名乗るなんて片腹痛いわ!と思ってるだけ
944デフォルトの名無しさん
2018/07/15(日) 15:42:24.47ID:ppRXQOVy このスレに迷い込んだ新規にはfibをどんな書き方をしたらrustで問題になるのか想像もつかない
945デフォルトの名無しさん
2018/07/15(日) 17:23:07.93ID:upVjqm6g fibってなんですか?
946デフォルトの名無しさん
2018/07/15(日) 17:23:57.93ID:vPMHyt9R >56でしょ?
fibがかけなくて5時間も喚いた挙げ句
答えを大量に示されても礼のひとつも言えない
下らない批評をしては論破されて潜伏を繰り返しているあほ
「rustに職を奪われた」「fibを書けない」もこいつの本質ではないんだよな
fibがかけなくて5時間も喚いた挙げ句
答えを大量に示されても礼のひとつも言えない
下らない批評をしては論破されて潜伏を繰り返しているあほ
「rustに職を奪われた」「fibを書けない」もこいつの本質ではないんだよな
947デフォルトの名無しさん
2018/07/15(日) 17:58:08.24ID:f+8P4DFr ここはネタスレなんで
948デフォルトの名無しさん
2018/07/15(日) 19:36:55.02ID:YZYcatpB >>56もそもそも拾い物みたいだしなぁ…… (検索に引っ掛かる
949デフォルトの名無しさん
2018/07/15(日) 19:51:13.58ID:H2FcMtiY ツイッターでrust-lang-ja.orgのドメインが〜みたいな話が先月からあるみたいだけど
このスレでは誰も話題にしてない?
このスレでは誰も話題にしてない?
950デフォルトの名無しさん
2018/07/15(日) 20:03:03.01ID:NalVqF46 fib拾いものなのか
正しくないfibすら書けないおじさんだったか
正しくないfibすら書けないおじさんだったか
951デフォルトの名無しさん
2018/07/15(日) 20:56:16.71ID:vPMHyt9R https://www.google.co.jp/search?q=%E2%80%9Ca352230e08bc0a76fb5f116bd3c7abf4%E2%80%9C
?
>>949
検索にも引っ掛からないし誰が困るんだろう
?
>>949
検索にも引っ掛からないし誰が困るんだろう
952デフォルトの名無しさん
2018/07/15(日) 21:35:06.48ID:YZYcatpB953デフォルトの名無しさん
2018/07/15(日) 21:45:35.35ID:rsj4GyZ/954デフォルトの名無しさん
2018/07/16(月) 16:06:24.68ID:NRqWPJmE 推察するに日本語が読めなくて、「できない」だけで飛び付いたんだろうなあ
こんな奴でもC++は書ける(自称)って辺りが日本のプログラマの闇だな
こんな奴でもC++は書ける(自称)って辺りが日本のプログラマの闇だな
955デフォルトの名無しさん
2018/07/16(月) 16:24:01.28 軽々しくC++書けるなんて口にしようものなら茂みからマサカリが飛んでくるぞ
C/C++ については、いつまでたっても「書ける」とはいいきれない存在ですね…
仕様が結構複雑だからなのか?
仕様が結構複雑だからなのか?
957デフォルトの名無しさん
2018/07/16(月) 18:39:02.08ID:NeMQsq8I Rustは「書ける」んですか?
958デフォルトの名無しさん
2018/07/16(月) 18:52:42.01ID:tJPrOapS Go使うよ。
959デフォルトの名無しさん
2018/07/16(月) 19:02:04.84ID:+TKchfUN perlがライトオンリー言語なんて言われていたけどリードオンリー言語なんてのもあるんだな。
http://wiki.c2.com/?ReadOnlyLanguage
rustはノミネートされてないから「書ける」と思うよ(すっとぼけ
http://wiki.c2.com/?ReadOnlyLanguage
rustはノミネートされてないから「書ける」と思うよ(すっとぼけ
960デフォルトの名無しさん
2018/07/16(月) 19:32:53.55ID:PkmPgg8A 確かにAppleScriptは中途半端に英文風で多彩かつ何でこれダメなのってパターンも多くread onlyに相応しいな
昔はAdaの称号だったと思うが
昔はAdaの称号だったと思うが
961デフォルトの名無しさん
2018/07/17(火) 01:20:02.37ID:XTfqg8Os Eclipse Corrosion使ってるやついないの?
962デフォルトの名無しさん
2018/07/22(日) 20:18:59.26ID:6WNc4gpj Rustでプラグイン機構を持ったアプリを作る場合、本体とプラグインでjsonでやり取りするのが無難?
それとも動的リンクでいける?
それとも動的リンクでいける?
963デフォルトの名無しさん
2018/07/23(月) 00:12:51.84ID:t7f2tjaz jsonでどうやるんだ。
ttps://crates.io/crates/libloading
ttps://crates.io/crates/libloading
964デフォルトの名無しさん
2018/07/23(月) 00:44:55.55ID:CBB4e6ta それOSやRustコンパイラがどういうコード作るかによるのでは?
なんとなく出来そうな気はするけど。
なんとなく出来そうな気はするけど。
965デフォルトの名無しさん
2018/07/23(月) 07:41:05.29ID:NoHfy/qo コンパイラのバージョンアップでABI変わる可能性があるから
* 本体とプラグインが同じバージョンでコンパイルされてることを保証する
* extern "C" なインターフェースだけ使う
とかの工夫は必要そう
* 本体とプラグインが同じバージョンでコンパイルされてることを保証する
* extern "C" なインターフェースだけ使う
とかの工夫は必要そう
966デフォルトの名無しさん
2018/07/23(月) 20:17:49.69ID:stexMLiC プログラミングRust待ちきれないどす
967デフォルトの名無しさん
2018/07/23(月) 22:49:10.62ID:bEqql8cX extern "C"してもバイナリ互換のない変更したら同じじゃね?
968デフォルトの名無しさん
2018/07/23(月) 23:00:36.98ID:83b6blUP 本体側からメモリマネージャをエクスポートして.dll/.so側に使わせるってできたっけ
969デフォルトの名無しさん
2018/07/24(火) 16:50:44.53ID:IQ4K3J0H crates.ioで中身のない、クレート名の予約だけの人増えすぎじゃね?
970デフォルトの名無しさん
2018/07/24(火) 17:20:04.73ID:YqCWjlto rustはweb周りをもっと押したほうがいいな
新しいのに飛びつくのはあの連中(俺も)だからな
新しいのに飛びつくのはあの連中(俺も)だからな
971デフォルトの名無しさん
2018/07/24(火) 18:54:39.82ID:ycl+zs7h 未発達ってだけじゃ?
972デフォルトの名無しさん
2018/07/24(火) 18:57:59.94ID:WBO96fmU 壁乳
973デフォルトの名無しさん
2018/07/24(火) 21:23:06.95ID:T8M86aw1 未発達かな
hyperやactix webがあるじゃん
hyperやactix webがあるじゃん
974デフォルトの名無しさん
2018/07/25(水) 02:08:39.39ID:41CwtA3+ 未発達すき
975デフォルトの名無しさん
2018/07/25(水) 07:51:39.69ID:+nGh1Sgi async awaitベースのtokioがでるまで待った方がよさそう
976デフォルトの名無しさん
2018/07/25(水) 08:16:02.41ID:y0Nnx33q プログラミング言語Rust発売まだ?
はやくして
はやくして
977デフォルトの名無しさん
2018/07/25(水) 08:52:37.24ID:UNILj0yW 今日からRustやってみる
C言語とPythonとSchemeがちょっとずつしか分からないけど大丈夫かしら
Rustで本格的にプログラミング覚えた人っていますかね...?
C言語とPythonとSchemeがちょっとずつしか分からないけど大丈夫かしら
Rustで本格的にプログラミング覚えた人っていますかね...?
978デフォルトの名無しさん
2018/07/25(水) 09:02:21.28ID:HwnrNSAw C++知らないと窮屈なだけで何でこんなもんが必要なのか意味不明じゃね
979デフォルトの名無しさん
2018/07/25(水) 09:06:22.95ID:3qeF0zvT C出来るならありがたみ分かるだろ
980デフォルトの名無しさん
2018/07/25(水) 14:41:08.64ID:XJO2lY6I Ready at Dawn Studiosって言うアメリカのゲーム会社が今後の開発は全てRustでするってよ
981デフォルトの名無しさん
2018/07/25(水) 15:40:42.61ID:lJ8T3l+q 泡沫ゲームメーカーの
982デフォルトの名無しさん
2018/07/25(水) 16:44:51.58ID:hO+Od1/n 海外だから多めに見てもらえる
983デフォルトの名無しさん
2018/07/25(水) 21:16:35.03ID:ZMLutfsH 新しい言語だからrustからって人はなかなかいないと思うけどおすすめだな
根気は必要だけど
根気は必要だけど
984デフォルトの名無しさん
2018/07/25(水) 22:34:33.87ID:vRPwEy8/985デフォルトの名無しさん
2018/07/26(木) 04:24:33.95ID:5ROtQy7H 比較対象間違ってないか?
986デフォルトの名無しさん
2018/07/26(木) 07:18:30.27ID:shfmC2IZ 意味不明すぎて笑ってしまった
987デフォルトの名無しさん
2018/07/26(木) 19:48:41.24ID:HNM3rm3+ 初心者スレ無いようなのでここで質問させてください
トレイトって他の言語で言うところのインタフェースみたいなもん?
https://doc.rust-lang.org/rust-by-example/trait.html
trait Animal {
fn new(name: &'static str) -> Self;
}
impl Animal for Sheep {
fn new(name: &'static str) -> Sheep {
Sheep { name: name, naked: false }
}
}
この、Selfを使うようなことはインタフェースじゃできないよね?
1) Selfを使える
2) 独自クラスの定義にのみimplementsできるインタフェースと違って
既存の型に対してあとからいつでも実装を保証?できる
のがトレイト?
トレイトって他の言語で言うところのインタフェースみたいなもん?
https://doc.rust-lang.org/rust-by-example/trait.html
trait Animal {
fn new(name: &'static str) -> Self;
}
impl Animal for Sheep {
fn new(name: &'static str) -> Sheep {
Sheep { name: name, naked: false }
}
}
この、Selfを使うようなことはインタフェースじゃできないよね?
1) Selfを使える
2) 独自クラスの定義にのみimplementsできるインタフェースと違って
既存の型に対してあとからいつでも実装を保証?できる
のがトレイト?
988デフォルトの名無しさん
2018/07/26(木) 20:34:56.63ID:1GO/F9JV Selfが使えるかは言語の特徴でtraitの特徴じゃないんじゃない
あと外部で定義されたtraitを外部で定義された型には実装できない制限がある
あと外部で定義されたtraitを外部で定義された型には実装できない制限がある
989デフォルトの名無しさん
2018/07/26(木) 21:47:50.04ID:ZKUcprSN sheep.nakedがfalseなのはバグじゃまいか
990デフォルトの名無しさん
2018/07/26(木) 23:37:04.68ID:MvIVysXV お前らそれよりtraitがコンストラクタ持ってることにツッコめよ。
Ready at DawnってCSやってたけどあれもrustで書くつもりだろうか。
Ready at DawnってCSやってたけどあれもrustで書くつもりだろうか。
991デフォルトの名無しさん
2018/07/26(木) 23:47:35.69ID:e6WqSqyg コンストラクタ?
992デフォルトの名無しさん
2018/07/27(金) 06:21:45.73ID:iaaPZbOX 質問するための例でしょ、野暮だなあ
993デフォルトの名無しさん
2018/07/27(金) 07:58:08.97ID:siMrDeDP write!マクロってキモい
https://play.rust-lang.org/?gist=630529d9c9c65ee7e3a7ea9a2524e841&version=stable&mode=debug&edition=2015
https://play.rust-lang.org/?gist=630529d9c9c65ee7e3a7ea9a2524e841&version=stable&mode=debug&edition=2015
994デフォルトの名無しさん
2018/07/27(金) 08:11:14.41ID:siMrDeDP write!マクロって本当キモい
https://play.rust-lang.org/?gist=54a890fbc7093117363802bf84a9cd0a&version=stable&mode=debug&edition=2015
https://play.rust-lang.org/?gist=54a890fbc7093117363802bf84a9cd0a&version=stable&mode=debug&edition=2015
995デフォルトの名無しさん
2018/07/27(金) 13:30:16.26ID:Rp6Nmdy5 >>905
gowにはrustlungちう病気が出てくるぞ
gowにはrustlungちう病気が出てくるぞ
996デフォルトの名無しさん
2018/07/27(金) 20:15:16.26ID:/aLVAKNj >>988 ありがとうございます!もっと勉強します
997デフォルトの名無しさん
2018/07/27(金) 21:04:57.34ID:/aLVAKNj998デフォルトの名無しさん
2018/07/27(金) 21:53:15.63ID:454wB1N8 あ、これはやばい理解パターンだ。。
999デフォルトの名無しさん
2018/07/27(金) 22:10:22.71ID:lEyToVsI インターフェースは型だけどトレイトは型じゃないって気付いたときに理解が進んだ音がした
1000デフォルトの名無しさん
2018/07/27(金) 22:22:18.00ID:T6fu2z+/10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 166日 2時間 14分 54秒
新しいスレッドを立ててください。
life time: 166日 2時間 14分 54秒
10021002
Over 1000Thread 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 高市首相、トランプ米大統領に「早期に会いたい」 日中関係悪化受け… ★4 [BFU★]
- 【コメ】卸売業者「簡単に安売りできない」「大暴落起きれば大赤字に」 JA「新米の販売進度が近年になく遅い。コメの回転が悪い」 ★5 [Hitzeschleier★]
- 「もうキモくてキモくて…」29歳女性が語る“おぢアタック”の実態。「俺ならイケるかも」年下女性を狙う勘違い中年男性には共通点が [Hitzeschleier★]
- テレビ朝日 本社から男性が転落し死亡。関連会社社員か 当たった通行人が左肩軽傷 [阿弥陀ヶ峰★]
- テレビ朝日本社から20~30代の関連会社社員とみられる男性が転落し死亡 六本木けやき坂通りの通行人にはけが人なし [少考さん★]
- 「これいいじゃん!!!」 セブン-イレブンの1620円で買える“1人用クリスマスケーキ”🎂に注目殺到「天才すぎる」 [パンナ・コッタ★]
- 【高市速報】中国、最後通牒 [308389511]
- なんか最近の男って顔がいい以外にも身長やスタイルの良さや声の良さまで要求されてないか?
- 声優って何で写真の無断転載に厳しいの?
- 【速報】テレビ朝日本社から20代〜30代の男性が飛び降り自殺して死亡 東京・六本木 [597533159]
- 【実況】博衣こよりのえちえちスーパーダンガンロンパ6🧪
- お前らってほくそ笑んだことある?
