Rustアンチスレ (202レス)
Rustアンチスレ http://mevius.5ch.net/test/read.cgi/tech/1509028624/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
75: デフォルトの名無しさん [] 2021/09/11(土) 01:41:58.05 ID:YO3o85Uj あんたの方が意味不明だけど(笑) まず文書の書き方にケチを付けてロンパーする癖を直しましょう。 最初から非同期ランタイムの互換性と書いているでしょう。例えばasync-stdと tokioは互換性がありません。今は互換性がほぼあるようになってきていますが それでも完全ではありません。 ゼロコストFeatureという話は、VS Javascriptという言語のランタイムではその 通り認めていますが、コンパイル型の言語でコストが高い非同期は稀です。 Rust言語に対する批判しか書かないわけではありません。あなたは攻撃されたと 思い込む癖が強すぎる。「近年のjavascriptを発端とするasync/awaitにも疑問が 生じる。あまりにも多くの言語が同期実行のライブラリと整合性が無さすぎる」 という大本も読めない。まあそういう人間が増えすぎて居る訳で、こんな雑談で 怒り心頭になり、それぞれの具体的な問題点はあなたの性格でしょう。 言語的な反論をせずに文書の読解も出来ず、条件反射で相手を貶す。とてもでは ないですが近寄りがたいですね またマクロについても「マクロでお好みの方面へ寄せることも可能です」という 返答に関して感想を述べてるのに過ぎないのに、全く話を辿れていません。 http://mevius.5ch.net/test/read.cgi/tech/1509028624/75
76: デフォルトの名無しさん [sage] 2021/09/11(土) 02:11:46.06 ID:w5S7rLqj >>75 具体的な問題点を述べましょう 例えばtokioの上に構築されたhttpモジュールであるhyperも互換レイヤーによりasync-std 上でも動作します RustアンチスレでなぜJavaScriptを問題にしているのかも謎ですが JavaScriptのasync/await/Promiseもあの環境で非常に優れて設計されています この件についても具体的な問題点を述べておられないですね http://mevius.5ch.net/test/read.cgi/tech/1509028624/76
77: デフォルトの名無しさん [sage] 2021/09/11(土) 11:03:00.32 ID:LLoV+Okg >>75の勝ち 以上 http://mevius.5ch.net/test/read.cgi/tech/1509028624/77
78: デフォルトの名無しさん [sage] 2021/09/11(土) 13:53:10.45 ID:zUj2TAiQ >>75 >「近年のjavascriptを発端とするasync/awaitにも疑問が生じる。 >あまりにも多くの言語が同期実行のライブラリと整合性が無さすぎる」 意味がちょっと不明です。 JavaScriptでそれらが用いられうる通信分野では、基本的に同期実行のライブラリは存在しません。 例えばhttpなどで取得してくるfetch()も非同期ですし、もっと低水準のモジュールも非同期です。 同期実行のライブラリと整合性が無さすぎるとは、何を意味しているのでしょうか? http://mevius.5ch.net/test/read.cgi/tech/1509028624/78
85: デフォルトの名無しさん [sage] 2021/09/12(日) 22:17:14.89 ID:Zjk1d74X >>75 同期実行ライブラリと整合性が無いというのはウソです Rustでstd利用の同期とasync-std利用の非同期のプログラムはほとんど同じように書けます 例えば複数のファイルのチェックサム計算を同期と非同期の2通りに書いた以下の記事を参考にすると https://qiita.com/osanshouo/items/671c45072a79c7b27aba メイン部分の両者のdiffを取ると以下のような感じです for entry in entries { let entry = entry.unwrap(); if entry.file_type().unwrap().is_file() { + let handle = async_std::task::spawn(async move { let filepath = entry.path(); - let mut file = fs::File::open(&filepath).unwrap(); + let mut file = fs::File::open(&filepath).await.unwrap(); let bytes = { let mut bytes = Vec::new(); - file.read_to_end(&mut bytes).unwrap(); + file.read_to_end(&mut bytes).await.unwrap(); bytes }; let checksum = bytes.iter().fold(0u8, |acc, b| acc.wrapping_add(*b)); println!("{:?}: {}", filepath.file_name().unwrap(), checksum); + }); + handles.push(handle); } } つまり差は2点のみ 非同期実行では不可欠なspawnがが入ることと 非同期を同期風に書けるようにするためのawaitが入ることだけです おっしゃる『同期実行のライブラリと整合性が無さすぎる』との主張は間違っています http://mevius.5ch.net/test/read.cgi/tech/1509028624/85
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.742s*