X



Rust part18
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
垢版 |
2022/12/10(土) 18:17:02.61ID:XSNoXTPt
公式
https://www.rust-lang.org/
https://blog.rust-lang.org/
https://github.com/rust-lang/rust

Web上の実行環境
https://play.rust-lang.org

※Rustを学びたい人はまず最初に公式のThe Bookを読むこと
https://doc.rust-lang.org/book/

※Rustを学ぶ際に犯しがちな12の過ち
https://dystroy.org/blog/how-not-to-learn-rust

※Rustのasyncについて知りたければ「async-book」は必読
https://rust-lang.github.io/async-book/

※次スレは原則>>980が立てること

前スレ
Rust part17
https://mevius.5ch.net/test/read.cgi/tech/1665063793/
0002デフォルトの名無しさん
垢版 |
2022/12/10(土) 18:22:52.22ID:XSNoXTPt
Rust Reference
https://doc.rust-lang.org/reference/
Rust Standard Library
https://doc.rust-lang.org/std/
Rust Cargo Book
https://doc.rust-lang.org/cargo/
Rust rustup Book
https://rust-lang.github.io/rustup/
Rust API Guidelines
https://rust-lang.github.io/api-guidelines/
Rust unstable Book
https://doc.rust-lang.org/nightly/unstable-book/
Rust rustc Book
https://doc.rust-lang.org/rustc/
Rust rustdoc Book
https://doc.rust-lang.org/rustdoc/
The Embedded Rust Book
https://docs.rust-embedded.org/book/

Rust async-std Book
https://book.async.rs/
Rust tokio Book
https://tokio.rs/tokio/tutorial
Rust CLI (Command Line Interface) apps Book
https://rust-cli.github.io/book/
Rust macro Book
https://danielkeep.github.io/tlborm/book/
Rust Future Book
https://cfsamson.github.io/books-futures-explained/
0003デフォルトの名無しさん
垢版 |
2022/12/10(土) 18:28:50.59ID:5kj3RxeP
>>2
テンプレにたくさんリンク貼るよりもLearn Rustへのリンク一つ貼るだけの方がいいんじゃないかと思う
https://www.rust-lang.org/learn
0004デフォルトの名無しさん
垢版 |
2022/12/10(土) 18:36:18.76ID:tOD68jSP
>>1

公式じゃないけどこういうのもある
The Little Book of Rust Books
https://lborb.github.io/book/
0006デフォルトの名無しさん
垢版 |
2022/12/11(日) 21:49:09.89ID:htgTzR7N
tokei -t='Assembly,GNU Style Assembly,Java,Kotlin,JavaScript,TypeScript,Python,Rust,Go,C,C Header,C++,C++ Header' -e external -e prebuilts
===============================================================================
Language Files Lines Code Comments Blanks
===============================================================================
Assembly 11 1835634 1776276 61 59297
GNU Style Assembly 505 702218 669778 20314 12126
C 2260 862132 656263 119096 86773
C Header 20761 4587467 3072817 1053823 460827
C++ 19077 9875194 7969332 904154 1001708
C++ Header 312 227421 184914 13293 29214
Go 960 347839 262712 44117 41010
Java 62585 16324831 10773417 3527799 2023615
JavaScript 132 70006 56347 8309 5350
Kotlin 3162 525334 372328 94668 58338
Python 3924 1024375 820227 86674 117474
TypeScript 58 393127 299455 93064 608
-------------------------------------------------------------------------------
Rust 416 100326 82483 7631 10212
|- Markdown 308 6885 13 6323 549
(Total) 107211 82496 13954 10761
===============================================================================
Total 114163 36875904 26996349 5973003 3906552
===============================================================================
0007デフォルトの名無しさん
垢版 |
2022/12/11(日) 21:50:08.75ID:htgTzR7N
前スレのAndroid Rustコード量水増しの話だけど、興味が出たので自分で見てみたわ
条件がC++と一緒なら良い、記事書いた本人に言え、はマ的に完全なる詭弁だわ
boostみたら一緒ですらないし、不適切に一票

Rustは10万行という数字が適切

そもそも詭弁擁護する勢力がいることにドン引き、マじゃないの?自分で見て見ろ
これ、Rust関連数字の信用にも響くから、盲目信者はしゃしゃり出るなよ
0009デフォルトの名無しさん
垢版 |
2022/12/11(日) 22:21:51.80ID:VGzTS+SX
>>6-7
勝手ながらソートして整えた
https://i.imgur.com/bF7XrxK.png

>>8
横からですが条件が一緒にならないと言っているのでは
0011デフォルトの名無しさん
垢版 |
2022/12/11(日) 22:52:02.78ID:+jnqsCh5
暇人だけができる無駄な時間の使い方
0012デフォルトの名無しさん
垢版 |
2022/12/11(日) 22:57:39.49ID:xKbN44AS
知りたいんならどうやって数えたのか聞けばいいのに
0013デフォルトの名無しさん
垢版 |
2022/12/11(日) 23:02:53.56ID:Qte75DOs
キモい独り言ツイートばっかりしてる某おじさんに聞いてもらうとかw
0014デフォルトの名無しさん
垢版 |
2022/12/11(日) 23:14:51.28ID:FJTWr6s2
論理的に書かないから何が言いたいのか
何を問題視してるのかさっぱりわからない
0015デフォルトの名無しさん
垢版 |
2022/12/11(日) 23:18:58.68ID:KdHA47WQ
>>14 = 1.5m --> 0.1mでしたが何か?
詭弁w
0016デフォルトの名無しさん
垢版 |
2022/12/11(日) 23:21:33.18ID:Wk+Dst9S
>>9
元記事ではレポジトリには150万行あるとしか言ってないので、
external含めて数えないと事実確認にならないのでは

もう一個の21%というのはAndroid13で追加されたネイティブコードのうちの割合の話なので、>>6の情報からは分からない

比較の条件という意味ではboost云々が何を言いたいのかがよくわからなかったから無視してしまったけど、そこが重要だった?
boost使ってるけどandroidのソースツリーに含まれていなかったということ?
0017デフォルトの名無しさん
垢版 |
2022/12/11(日) 23:23:28.92ID:0MAFRru0
オープンソースの依存ライブラリ含めても0.1Mしかなかったぞという主張なのかな?
だとすれば数え方が違うんだろうね
0018デフォルトの名無しさん
垢版 |
2022/12/11(日) 23:24:19.45ID:pBSvZedx
>>16
盲目信者必死アクロバティック擁護
もう終わりだよこのスレ
0019デフォルトの名無しさん
垢版 |
2022/12/11(日) 23:25:19.82ID:0MAFRru0
最初から1.5Mはオープンソースの依存ライブラリ含めた数字だとはっきり書いてる
0020デフォルトの名無しさん
垢版 |
2022/12/11(日) 23:27:47.08ID:gx+o5vLL
>>18
元記事では21%の方を強調してて150万行はさらっと書いてあっただけだよ
なんか事実に反してること言ってるかな
0021デフォルトの名無しさん
垢版 |
2022/12/11(日) 23:30:29.30ID:cgYR6v9B
repo拾いに行ったの何人かいたようだが、ほとんどが絶句ダンマリ
これが現実

口数が多いのは盲目信者か、ポジショントークか

明日のLinux6.1の記事に差し障るのかな?
0022デフォルトの名無しさん
垢版 |
2022/12/11(日) 23:32:21.49ID:cgYR6v9B
数字の根拠は自分で確認した方が良いぞ
0023デフォルトの名無しさん
垢版 |
2022/12/11(日) 23:45:07.33ID:d4r/V55+
なんだ外部ライブラリはカウントしてないのか
それじゃダメだわな🙅‍♂
0024デフォルトの名無しさん
垢版 |
2022/12/12(月) 00:31:18.54ID:F79YIKXY
しかしまあ、こんなスレで必死に1.5Mを正当化(適切だという含み)しようとしている連中って、
次世代スレでRustの安全性は証明付き保証だと連呼していた奴らだよね

>口数が多いのは盲目信者か、ポジショントークか
ポジショントーク路線でのプロファイルは面白そう
0025デフォルトの名無しさん
垢版 |
2022/12/12(月) 00:32:53.39ID:F79YIKXY
あるいは、答え合わせ、が近づきつつあるのか?
0027デフォルトの名無しさん
垢版 |
2022/12/12(月) 00:49:36.11ID:gFGRqSRq
>>26 今晩の監視当番なのかな?

適切かどうか意見を訊かせてよ
0028デフォルトの名無しさん
垢版 |
2022/12/12(月) 00:57:48.85ID:TQPiS+Fx
>>27
適切でしょ?
元記事で含むと明言されているものを除外するようか計測方法をして数字が合わないインチキだと言ってる方が意味不明
0029デフォルトの名無しさん
垢版 |
2022/12/12(月) 01:01:39.83ID:gFGRqSRq
適切、元記事で含むと明言されている、って冗談か挑発か?
0031デフォルトの名無しさん
垢版 |
2022/12/12(月) 01:03:26.05ID:gFGRqSRq
自分らで書いたコードが0.1Mです、って一行あれば許されたのにな
0032デフォルトの名無しさん
垢版 |
2022/12/12(月) 01:03:29.10ID:BZoLN2AH
Rust盲目信者による闇組織が5chなどインターネット各所を監視し宣伝工作をしている、と
0034デフォルトの名無しさん
垢版 |
2022/12/12(月) 01:04:43.01ID:gFGRqSRq
他人が書いたコードと合わせて1.5Mの方だけしれっと書くのは適切じゃないね
0035デフォルトの名無しさん
垢版 |
2022/12/12(月) 01:08:59.58ID:TQPiS+Fx
>>29
> There are approximately 1.5 million total lines of Rust code in AOSP across new functionality and components such as Keystore2, the new Ultra-wideband (UWB) stack, DNS-over-HTTP3, Android’s Virtualization framework (AVF), and various other components and their open source dependencies.
https://security.googleblog.com/2022/12/memory-safe-languages-in-android-13.html
変に行間を読み取ってしまって勘違いを誘発すると言ってる?
0036デフォルトの名無しさん
垢版 |
2022/12/12(月) 01:09:34.33ID:gFGRqSRq
言っておくが、0.1Mは立派な成果だぞ
それを書け、と言っている
0037デフォルトの名無しさん
垢版 |
2022/12/12(月) 01:11:53.59ID:gFGRqSRq
1.5Mの数字だけ出すから、水増しのそしりを免れない

0.1Mは立派な成果、それを出しとけば良かった
0038デフォルトの名無しさん
垢版 |
2022/12/12(月) 01:12:12.96ID:TQPiS+Fx
>>36
文脈的にRustがどこのコンポーネントで使われているかを示すのが目的で、コード量はご参考程度に書いてあるだけだと思うが
記事全体の内一部にさらっと書かれている場所に突っかかりすきでは...
0039デフォルトの名無しさん
垢版 |
2022/12/12(月) 01:13:01.81ID:gFGRqSRq
今までのRustの数字ってみんなこういうからくりだったのか?ってなるだろ
0040デフォルトの名無しさん
垢版 |
2022/12/12(月) 01:14:16.04ID:gFGRqSRq
それこそ全員不本意だろ
0041デフォルトの名無しさん
垢版 |
2022/12/12(月) 01:17:30.12ID:TQPiS+Fx
文章としてはAOSPに対するRustの貢献という話だから1.5Mで良いのでは?
AOSP自身がどれだけ書いたかはまた別の話
0043デフォルトの名無しさん
垢版 |
2022/12/12(月) 01:19:01.02ID:gFGRqSRq
>>41 はカラクリ推進派の様だね
0044デフォルトの名無しさん
垢版 |
2022/12/12(月) 01:20:06.41ID:gFGRqSRq
>>42 >どういう位置づけの数値
自分たち書いたコード量に決まってろうが
0045デフォルトの名無しさん
垢版 |
2022/12/12(月) 01:21:10.57ID:gFGRqSRq
externalの名前が実態通りだろ
0047デフォルトの名無しさん
垢版 |
2022/12/12(月) 01:24:20.65ID:gFGRqSRq
>>46
>結びつけるの?
相関と原因のところを読め。Rustのカラクリ推進派は結論ありきのストーリー作りが好きだな
0048デフォルトの名無しさん
垢版 |
2022/12/12(月) 01:26:05.71ID:gFGRqSRq
コード量、もカラクリ
バグが減った、もカラクリ
こういうそしりになるぞ
0049デフォルトの名無しさん
垢版 |
2022/12/12(月) 01:26:34.63ID:gFGRqSRq
全員不本意だろ
0050デフォルトの名無しさん
垢版 |
2022/12/12(月) 01:30:48.03ID:TQPiS+Fx
>>47
言語間の比較はあるけどプロジェクト独自コードとそれ以外を区別してるようなところあった?
セクション名だけでも良いから教えてよ

あとカラクリ推進派とか変な造語で言われてもわからん
何かのレッテル貼り?
0051デフォルトの名無しさん
垢版 |
2022/12/12(月) 01:31:50.90ID:gFGRqSRq
>>50 >何かのレッテル貼り?
カラクリ推進派とはあなたのことですよ
0052デフォルトの名無しさん
垢版 |
2022/12/12(月) 01:34:06.61ID:gFGRqSRq
誤認誘発、過剰期待のリスクは無視するべきではない
0053デフォルトの名無しさん
垢版 |
2022/12/12(月) 01:35:03.87ID:TQPiS+Fx
>>51
ごめんね、何を言ってるかわかってあげられなくて
あと文章の後半だけじゃなくて前半にも反応してほしかったな
流し読みで確認したから見落としあるかもしれないので、原文でおかしなこと言ってるなら把握しておきたい
0054デフォルトの名無しさん
垢版 |
2022/12/12(月) 01:36:12.87ID:gFGRqSRq
>変に行間を読み取って
>>50は変に行間を読み取らせようとしてるな
0055デフォルトの名無しさん
垢版 |
2022/12/12(月) 01:37:35.10ID:gFGRqSRq
>>53
原文にかいてさえあれば、実態はどうでも良い
という事かな?
0058デフォルトの名無しさん
垢版 |
2022/12/12(月) 01:39:48.77ID:gFGRqSRq
>>56
カラクリ推進派=翻訳従事者関係者 ?
0059デフォルトの名無しさん
垢版 |
2022/12/12(月) 01:40:20.61ID:gFGRqSRq
実態を大事にしような
0061デフォルトの名無しさん
垢版 |
2022/12/12(月) 01:46:10.84ID:gFGRqSRq
>>60
1.5Mがそんなにうれしかったのか?

>そのうちAOSP独自コードは0.1M
これ原文筆者に明記するように言いに行けよ、関係者なんだろ?
0062デフォルトの名無しさん
垢版 |
2022/12/12(月) 01:47:21.11ID:gFGRqSRq
原文にかいてさえあれば、実態はどうでも良い

それ以外に何を問題にしているの?

この返しには驚いた。良心のかけらもない
0063デフォルトの名無しさん
垢版 |
2022/12/12(月) 01:49:04.49ID:gFGRqSRq
0.1Mをけなしてるのか?可哀想だろ
0064デフォルトの名無しさん
垢版 |
2022/12/12(月) 01:50:55.08ID:TQPiS+Fx
>>61
コードの量あたりの脆弱性数の言語間比較の話なのになんで依存関係除外するの?
脆弱性の原因になるのは独自に作った部分だけじゃないよね?
そんなに0.1Mが重要だと思うから原作者に書けと伝えたら?
0065デフォルトの名無しさん
垢版 |
2022/12/12(月) 01:52:09.95ID:gFGRqSRq
>>64
君のカラクリストーリーはどうでも良いから
0067デフォルトの名無しさん
垢版 |
2022/12/12(月) 01:55:21.13ID:gFGRqSRq
実態はどうでも良いカラクリ君が理屈を語るとは、笑う
0068デフォルトの名無しさん
垢版 |
2022/12/12(月) 01:55:55.20ID:gFGRqSRq
屁理屈、詭弁だろ
0069デフォルトの名無しさん
垢版 |
2022/12/12(月) 01:57:32.25ID:gFGRqSRq
しかもね、道徳じゃなくてリスクの話
0070デフォルトの名無しさん
垢版 |
2022/12/12(月) 01:59:40.01ID:gFGRqSRq
加えて、プログラマーに対するリスペクト
0071デフォルトの名無しさん
垢版 |
2022/12/12(月) 02:01:36.06ID:TQPiS+Fx
あるアプリケーションを構成するコードの量を示すときは、自分たちが書いた量も示さないとリスクがあるしリスペクトに欠けるということね了解
0072デフォルトの名無しさん
垢版 |
2022/12/12(月) 02:02:25.03ID:gFGRqSRq
そうだよ。カラクリ君。15倍は失態だったね
0073デフォルトの名無しさん
垢版 |
2022/12/12(月) 02:03:00.26ID:gFGRqSRq
実態を大切にしような
0074デフォルトの名無しさん
垢版 |
2022/12/12(月) 02:04:04.46ID:TQPiS+Fx
googleの人にもぜひ伝えてあげてよ立派な考えなんだからさ
もうちょっとコンテキスト補ってあげないと伝わらないと思うけど
0075デフォルトの名無しさん
垢版 |
2022/12/12(月) 02:05:54.83ID:gFGRqSRq
うっぷん晴らしにキャラ召喚しないでね
0078デフォルトの名無しさん
垢版 |
2022/12/12(月) 02:09:06.83ID:gFGRqSRq
冗談きついな、別室で頑張ってね
0079デフォルトの名無しさん
垢版 |
2022/12/12(月) 02:11:40.12ID:BZoLN2AH
それおちょくってるのか、そういう組織があるとマジで思ってるのか、どつち?
0080デフォルトの名無しさん
垢版 |
2022/12/12(月) 02:14:41.40ID:gFGRqSRq
>それおちょくってるのか、そういう組織
リスクの話をしている。おちょくりでもマジでもない
0081デフォルトの名無しさん
垢版 |
2022/12/12(月) 02:15:18.25ID:gFGRqSRq
レピュテーションリスク
0082デフォルトの名無しさん
垢版 |
2022/12/12(月) 02:16:26.89ID:gFGRqSRq
実態通りのレピュテーションが重要
0084デフォルトの名無しさん
垢版 |
2022/12/12(月) 02:20:53.27ID:gFGRqSRq
そうか、スレ立て人だったか。バイバイ、面白かったよ、別室で頑張ってね
0085デフォルトの名無しさん
垢版 |
2022/12/12(月) 02:26:04.34ID:na5n8HXk
成果を数値化した側は誤解を招き、リスクを数値化しようともしない側が数学的に優位なのはまあ分かる
3.14よりもπの方が誤解がないのと同じ
0086デフォルトの名無しさん
垢版 |
2022/12/12(月) 02:28:14.68ID:gFGRqSRq
あらら、キャラ召喚してるじゃんw
0087デフォルトの名無しさん
垢版 |
2022/12/12(月) 02:58:18.77ID:Igq6bqVZ
>>33
今回に関しては全く必要なかった
2つNGにしたら33の次は85にw
複オジじゃないからNGしやすくて助かる
0088デフォルトの名無しさん
垢版 |
2022/12/12(月) 03:05:27.82ID:gFGRqSRq
そりゃどうも
0089デフォルトの名無しさん
垢版 |
2022/12/12(月) 03:07:58.75ID:gFGRqSRq
85もキャラ変しただけだからNGしときな。
0091デフォルトの名無しさん
垢版 |
2022/12/12(月) 06:51:30.97ID:wN/j/0mR
深夜のレスバトルが興味深くなる見方、そして消えぬ複オジ軍団説

普段はまともぶってる放り投げキャラ?>>26がつつかれたら、速攻で複オジが出て来た
とにかく複オジは文書(翻訳)と仕様マウントが大事

放り投げキャラは次世代スレのwasmリソースコストおじ→複数人説

>>77が自演の決定的ボロなのか、あるいは監視引き継ぎミスなのか
引き継ぎミスなら→複数人説

しかも>>85がポエオジという可能性→複数人説
更にレスバトルが複オジじゃないと収拾したい>>87の登場

そういう目で見たらそう見える
0092デフォルトの名無しさん
垢版 |
2022/12/12(月) 07:35:06.40ID:BKVbG4TJ
>>91
いまいち

ミスではなく>>76が引き継ぎの瞬間で
同一人物を装うために>>77を入れてる
という見立ての方が断然面白いでしょ
0094デフォルトの名無しさん
垢版 |
2022/12/12(月) 07:49:30.92ID:0yhb1mCe
引き継いだら即幕引き、その理由は?
>>79-80
でバトルの必要が無いと判断出来た
という見立てのが面白い
0095デフォルトの名無しさん
垢版 |
2022/12/12(月) 16:49:32.11ID:BsuscEYz
Fedora37のLinux KernelがVer.6.0になってたから新機能なんだろってググったら6.1から遂にRustサポートされるんだね
0097デフォルトの名無しさん
垢版 |
2022/12/13(火) 22:51:58.96ID:PZobp7zP
Android12のtokeiしたぞ計算は自分でやれ
===============================================================================
Language Files Lines Code Comments Blanks
===============================================================================
Assembly 10 1835489 1776138 61 59290
GNU Style Assembly 511 698434 666001 20331 12102
C 2269 858479 652278 119729 86472
C Header 20347 4528431 3057716 1023059 447656
C++ 17900 9289538 7491429 858792 939317
C++ Header 305 157423 120050 11387 25986
Go 805 271377 201441 35705 34231
Java 57305 14796003 9709131 3245016 1841856
JavaScript 91 25468 20400 2951 2117
Kotlin 1833 319017 225519 58641 34857
Python 3721 933286 747682 79727 105877
TypeScript 231 680201 536363 142914 924
-------------------------------------------------------------------------------
Rust 203 47094 38569 3786 4739
|- Markdown 148 4044 13 3696 335
(Total) 51138 38582 7482 5074
===============================================================================
Total 105531 34440240 25242717 5602099 3595424
===============================================================================
externalの名前が実態に同意だしそもそもexternal内はダブルカウントが多発している
0098デフォルトの名無しさん
垢版 |
2022/12/13(火) 23:23:57.37ID:wZtwdQkr
もっとGoがフィーチャーされてもいい

Rust 0.27%(Android13)
Rust 2.19%(rust増減/全体増減)
Rust 6.25%(rust増減/native増減)

Go 0.94%(Android13)
Go 3.14%(go増減/全体増減)
Go 8.97%(go増減/native増減)

native(C/C++,go,rust,asm)
0101デフォルトの名無しさん
垢版 |
2022/12/14(水) 01:02:52.63ID:ITXTdsK+
我が軍のリターンと我が軍のリスクを比較するべきで
味方のリターンと競争相手のリターンの差をカイゼンさせようとするのは合理的ではないと思う
0102デフォルトの名無しさん
垢版 |
2022/12/14(水) 01:14:31.36ID:FVRGSfZv
最初から違和感があると思っていたが
元記事ではGoが何故か除外されてる

ストーリー構成に不都合だったのか
相関だと何とでも言えるんだね
0104デフォルトの名無しさん
垢版 |
2022/12/14(水) 01:56:11.07ID:5mkAA7Tq
>>101 我が軍
こいつ遂に開き直って複おじ複数人疑惑を隠さなくなった
引き継ぎは2時?

裏舞台でこそこそしてろよ、表舞台に出て来るんじゃないぞ
0105デフォルトの名無しさん
垢版 |
2022/12/14(水) 06:45:32.23ID:RA7cvU7V
>>102
元々C/C++のメモリー障害の話なので低レイヤーで使えないGoを対象外にするのは当たり前だと思うぞ
>>98 の native(C/C++,go,rust,asm) もどう言う根拠でGo入れてるのかよくわからん、Go入れるならJavaが入らない理由を示してほしい
0106デフォルトの名無しさん
垢版 |
2022/12/14(水) 07:01:51.79ID:Jcr0Ea1q
ストーリーの無い生データを見た実際のところ、バグデータのある期間(~android12)でのRustは高々0.13%しか無い
C++の検証ツール類の活用だったりGo活用だったりの方が圧倒的に貢献していると考えるのが普通
他言語の成果を横取りしてる印象を持ったし、データを見たマの反発を買うのも当然
0108デフォルトの名無しさん
垢版 |
2022/12/14(水) 07:40:22.86ID:3cYTS+R6
>>106
ほんとこの通りだわ
今回みたいに1.5Mの疑義が出て数字を掘られなければ、メモリバグ削減はRustの成果だと信じ込まされた訳だし、恐ろしいわ
0109デフォルトの名無しさん
垢版 |
2022/12/14(水) 08:29:54.62ID:RA7cvU7V
>>107
カラクリだと言うならせめて
> >>98 の native(C/C++,go,rust,asm) もどう言う根拠でGo入れてるのかよくわからん、Go入れるならJavaが入らない理由を示してほしい
ぐらいには回答しなよ
0110デフォルトの名無しさん
垢版 |
2022/12/14(水) 08:46:08.12ID:l9mIlMff
あのね、さすがにもう、原文の脚色を軸にした議論に価値は無い
>>109
Goを蹴落としたいだけの言いがかりになるからやめたほうがいい

1.5Mの数字もちだして来たのどうせ>>105,109なんだろうし、この際言っておくけど、

迷惑でしかない
0112デフォルトの名無しさん
垢版 |
2022/12/15(木) 18:34:29.90ID:XGuELYQs
Rust自体は好きで趣味で使ってるんだけど、最近の猫も杓子もRustっていう一部の風潮には、在りし日のC++やJavaが持て囃されていた時代を思い出してしまう時がある
0114デフォルトの名無しさん
垢版 |
2022/12/15(木) 19:32:12.34ID:eVXaJ4u5
同意。
趣味では楽しく使ってるけど仕事では使いたくないわ。

不具合とか新規要件とか起因で所有権周り軒並みいじる必要が出てきたりしたら泣いちゃう。
0115デフォルトの名無しさん
垢版 |
2022/12/15(木) 20:01:15.60ID:adPtbWG7
>>112
> 最近の猫も杓子もRustっていう一部の風潮
そんな風潮ホントにあるの?
C/C++の置き換えがメインだから分野はかなり限られそうだが
0116デフォルトの名無しさん
垢版 |
2022/12/15(木) 21:34:29.95ID:2hO+Mt8T
正解は一つだけのようなことは昔Pythonが標榜していたけど
違反や無視しても棒で殴られたりしなかったので普通に普及した
0117はちみつ餃子 ◆8X2XSCHEME
垢版 |
2022/12/15(木) 21:48:07.72ID:xFKc8Du5
C や C++ が駄目な部分を改定でどうにかしようとしてもツギハギだらけでますますグダグダになるばかり。
C や C++ みたい (いわゆるシステム記述言語) なことを安全にやれるように更地から設計しなおそうという試みの中では Rust は比較的よいと思うよ。
0120デフォルトの名無しさん
垢版 |
2022/12/16(金) 01:36:50.79ID:2he3/3ZS
>>119 性能いいことが多いからじゃないかな。
https://www.stroustrup.com/Software-for-infrastructure.pdf
> ... Consider a simple example: generate N random integers and insert
> them into a sequence so that ...
> Now, for which N is it better to use a linked list than a
> vector (or an array) to represent the sequence? ...
> ... When I ran the experiment on my 8-Gbyte laptop, I found N to be much
> larger than 500,000. ...
0122デフォルトの名無しさん
垢版 |
2022/12/16(金) 02:56:52.27ID:3ITpan43
自演か軍団かどうでも良いが纏めるぞ

>>112
息を吐く様に嘘を混ぜるのはよせ
猫も杓子も...←ウソ シンプルに分かりやすいウソ
在りし日の...←ウソ 今も昔もJava/C++の時代 + JS/Python/C#
https://i.imgur.com/xwnzvYQ.png

>>117
大人しくしてれば良いものを、そのキャラまたどぶに捨てるのか
もう終わりだよ、そのコテハン

>>117,119-121
話題のすり替え方が雑になってワンパターン
0124デフォルトの名無しさん
垢版 |
2022/12/16(金) 07:28:20.01ID:YV6XWhOF
>>122のデータ面白い
例えば、0.4%以下集団の慎ましさがまるで違う

Swift/Kotlin/Dart→分野に特化して第一候補、安泰
(モバイルアプリ開発は全体の中では小さいパイだけど)

Rust→システムの低レイヤー分野に特化すれば良いのに、
各方面のスキマ案件や非典型案件で、置き換え風潮だとか
吹聴するから、そこのメインストリームから反感買う
焦り過ぎ
0125デフォルトの名無しさん
垢版 |
2022/12/16(金) 07:48:14.80ID:iwbHqI4G
得意分野、スキマ案件や非典型案件、全部集めて0.30%
Rust全然キテないじゃん
0127デフォルトの名無しさん
垢版 |
2022/12/16(金) 08:08:17.97ID:pYrl9qIa
Rustもすぐに一巡して新規消滅まっしぐら
無名の謎言語と競うことに

どうしてこうなった?ry
0128デフォルトの名無しさん
垢版 |
2022/12/16(金) 11:56:22.77ID:7LaXToxn
>>119
LinkedListがフィットするユースケースが少ないから

LRUキャッシュをHashMap+LinkedListで実装する時みたいにランダムインサート/デリートがメインでリストを高速に走査する必要がない場合に使われる
0131デフォルトの名無しさん
垢版 |
2022/12/16(金) 17:29:26.91ID:dpgra0Sg
>>120
LinkedListよりvectorの方が「ほとんどの場合速いからvectorを使うべき」
と言っているのは、Stroustrup氏だけ。
0132デフォルトの名無しさん
垢版 |
2022/12/16(金) 18:47:30.36ID:2he3/3ZS
>>131 嘘つくのやめてもらっていいですか。
https://www.google.com/search?q=vector+list
いま2位に出たこれ↓見ても引用と併せて「ほとんどvector」って言ってる人が少なくとも二人いる。
https://ja.stackoverflow.com/a/6008
> 大抵のケースでは vector<T> 利用で十分かと思います。(Tは要素の型)
> Scott Meyers, "Effective STL" でも、Item 1で次の言及があります
>> vector is the type of sequence that should be used by default.

俺も言うし>>128も言ってそう。
0133デフォルトの名無しさん
垢版 |
2022/12/16(金) 19:52:47.31ID:P/cVRczV
LinkedListがいいとかVectorがいいとかじゃなく適材適所やろ
0135デフォルトの名無しさん
垢版 |
2022/12/16(金) 21:44:58.60ID:6DlWbXOy
vectorはメモリが並んでるからキャッシュヒット率が高くて速いって教わった
C++だと裏で追加したときにreallocされて参照が切れるリスクがあるけど
Rustだと一応安全だし
0136デフォルトの名無しさん
垢版 |
2022/12/16(金) 21:55:52.92ID:k9rJal3H
>>122
まず長文を嫌って端折ったのが悪かった、ごめん
Java/C++の在りし日ってのは、特にJavaなんだけど、JavaでGUIデスクトップアプリ作ったりアプレットでフロントをやってた時代の雰囲気と、Rustでwasmフロントやってたり、tauriがイケてる!GUIの決定版!みたいに言ってる奴が似てるなって思ったのよ
WEB全盛の昨今これらは趣味レベルでしかないので数字には出ないし、当然Rustコミュニティやプロダクト全般の事について言ったわけじゃないので"一部"と書いたんだけど、Rustaceanの一部ではなくプログラマコミュニティないし業界の一部とも読めてしまうね
これもごめんなさい
0137デフォルトの名無しさん
垢版 |
2022/12/16(金) 23:54:59.70ID:b2g/f5EB
>>132
ここにいるやつらは データ構造とアルゴリズム からやり直したほうがいいんじゃないか?

何を持って早い?っていってるんだ?

queueを実装するのにvector使うやつは愚か者だし
ソートするデータにlinked list使うやつも変なやつ

たいていVectorでOKとかいうのは脳みそ停止してる。ちゃんと考えるべき。

linked listは中間にデータをいれるとか、要素を取り除くのが得意なだけ。
普通に適材適所だろ?
0138デフォルトの名無しさん
垢版 |
2022/12/17(土) 00:08:08.60ID:VEec8B0L
まずお前はアルゴリズムうんぬんの前に日本語からやり直せ
はちみつの割にはまともなこと言ってる

> 適材適所なのは前提として承知の上で「vector が適材である場所が多い」という話だろ。

あとqueueの実装にvector使うのは別に変じゃない、リングバッファも知らんのか?
0139デフォルトの名無しさん
垢版 |
2022/12/17(土) 00:12:22.66ID:QKb/ZQVv
>>137
比較の例は>>120で挙がってるし、「普通に適材適所」を否定してる人も居ないし、
いったい何を見てレスしてるのかわからなくて怖い。
0140デフォルトの名無しさん
垢版 |
2022/12/17(土) 01:03:01.35ID:7EPFyoxp
>>120
その記事で、Stroustrup氏は、非常に特殊な例で実験しているように思える。
最初から明らかにvectorに有利、LinkedListに不利な実験。
これは最初からLinkedListに不利なことが脳内でも分かるので、
それが分からないとしたらstroustrup氏は想像力が不足している。
Stroupstrup氏本人は難しくて理由が分からない、みたいに思ってるらしい。
0141デフォルトの名無しさん
垢版 |
2022/12/17(土) 01:08:13.28ID:7EPFyoxp
>>134
Stroustrup氏はもっと極端で、LinkedListがvectorより速度面で上回る
ケースはほとんど無い、という程度の事を言っているように思う。
0142デフォルトの名無しさん
垢版 |
2022/12/17(土) 01:15:11.07ID:7EPFyoxp
>>140
[補足]
コンテナ内にN個の要素がある場合、
リンクリストは、1個の要素の追加はO(1)。しかし、全走査や探索は、O(N)。
彼の実験だと、1個追加する際に、追加する場所を探すために平均で N/2 個の
ノードを巡ることになっているから、
1要素あたりに必要な時間 = 場所を探す時間 + 追加の時間
= O(N/2) + O(1)
= O(N)
となる。一方、vector の場合、
1要素あたりに必要な時間 = 場所を探す時間 + 追加の時間
= O(N/2) + O(N/2)
= O(N)
となる。
オーダー的には、O(N)で同じだが、前者は、キャッシュミスが酷くなるので、
「係数」がとても大きくなっている。
だから、前者の方が後者よりも遅くなっていっる理由は明確。

結論は、要素を追加する際に「場所を探す」ことを行なっていて、それがLinkedList
の不得意分野だから。
0143デフォルトの名無しさん
垢版 |
2022/12/17(土) 01:26:25.05ID:7EPFyoxp
>>142
[補足2]
リンクトリストとvectorで、条件を満たす1個の要素を線形探索で探す時に
かかる時間は、共に O(N)で、オーダー的には同じ。
ところが、彼の実験の場合、(均等確率の完全に近い)乱数で要素の追加される
場所と追加される順序が強くランダムになるようにしている。
この条件だと、途中結果の集合を線形探索する時、vectorは、
要素のアドレスが連続しているのでキャッシュの先読み(prefetch)がよく聞くが、
LinkedListは、アドレスが強くランダムになるので、キャッシュの先読みが
上手く働かず、1個の要素当り、現在のCPUで、80クロックほどのレイテンシーが
発生してしまう。
つまり、この実験においては、要素追加の場所をランダムにしているせいで、
要素を巡る際に、
vectorは、メモリーリードの追加レイテンシーが0に近い。
LinkedListは、メモリーリードの追加レイテンシーが80クロック程度かかる。
0145デフォルトの名無しさん
垢版 |
2022/12/17(土) 01:33:08.88ID:7EPFyoxp
>>144
俺が言いたいのは、Stroustrup氏は、数学的想像力においては、
俺より馬鹿だということだ。
0146デフォルトの名無しさん
垢版 |
2022/12/17(土) 01:36:35.34ID:7EPFyoxp
この分野は、専門家かどうかより、生まれつきの頭の良さがものを言う。
彼ははっきり行って、計算速度の見積もりにおいては才能が無い。
彼が評価されるべきは、
誰もオブジェクト指向を知らない時にSimulaのようなオブジェクト指向言語を
知っていて、それをCに応用したというだけ。
vectorやLinkedListの速度に関しては彼は間違っている。
0147デフォルトの名無しさん
垢版 |
2022/12/17(土) 01:38:43.69ID:7EPFyoxp
「測定無しで語らないで下さい」
というのも理論を軽視している学者の典型例。
日本でも物凄く多い。
自分が理論を正しく理解できて無いから、テストしないと見積もることが出来ないだけ。
0148デフォルトの名無しさん
垢版 |
2022/12/17(土) 01:46:15.68ID:7EPFyoxp
彼は理論を分かって無いことが明白。
この実験において、LinkedListがNが大きくなると有利になると思い込んでNを
大きくしていったらしい。すると、彼の予想に反してそうならなかった。
しかし、俺には理由が分かる。
むしろ、LinkedListで、Nで割った時の単位要素あたりの時間は、あるNが
ある値を超えたときから曲線の傾きが大きくなる。

(i) N < N0 : キャッシュが働く時:
f(N) = a1 * N + b
(ii) N > N0 : キャッシュが働かない時:
f(N) = a2 * N + b

DDR4-SDRAM での推定の係数 :
a1 = 0.5
a2 = 0.5 * 80

俺は、これを数秒間で導いたから、ケアレスミスが含まれるかもしれない。
0149デフォルトの名無しさん
垢版 |
2022/12/17(土) 01:50:24.83ID:7EPFyoxp
>>148
[ミス訂正]
a1 = 0.5 * L
a2 = 0.5 * (L + 80)
L = ループ一回当りのマシン語レベルでの見た目のクロック数。

0.5 を掛けているのは、1回の線形探索において、
平均移動回数が (N / 2) 回と推定されるから。

まだ、ケアレスミスがあるかもしれない。
0153デフォルトの名無しさん
垢版 |
2022/12/17(土) 03:25:53.37ID:sANdR5x8
100点おじさん頭悪いのは知ってたけどさすがにここまでとは思ってなかった
文章読解力に難があり過ぎ
0154デフォルトの名無しさん
垢版 |
2022/12/17(土) 07:25:20.60ID:jr3rWKyM
>>150,152-153
ちょっ、はちみつオジ=C++スレの天才オジなのか?
そしてすごい0点オジに、頭悪い100点オジ?
誰か複オジ軍団相関図、書いてよ!
0157デフォルトの名無しさん
垢版 |
2022/12/17(土) 09:40:37.34ID:7jrYNUaI
>>136
これよく見たら謝ってるようでそうでもない
当時Javaの時代の雰囲気(全体)と今のRustのイキリ勘違いヤロウ(一部)は全然レイヤーが違う
0158デフォルトの名無しさん
垢版 |
2022/12/17(土) 10:03:46.47ID:yTH8JJEo
>>122
Rustの0.30%には流石にがっかりきた

比率からして既に一巡したんだと思う
Java vs Scala(JVM, 17.5%/0.47% => 何巡もして37倍)
C/C++ vs Rust(Native, 8.24%/0.30% => 一巡目で27倍)
0159デフォルトの名無しさん
垢版 |
2022/12/17(土) 10:51:59.45ID:Qk229x0R
OSに依存しないライブラリの行数は、Android全体の行数で割り算できない
これが割り算のカラクリか
0160デフォルトの名無しさん
垢版 |
2022/12/17(土) 12:18:07.73ID:Wsp+a048
フロントエンドのちゃらい流行り廃りを追いかけ続けるのに疲れて
早めにバックエンドに転向したいと目論んでいた筋にとっとは
Rustは無駄だと思い知ったことだろう

GoやっとけよGo
0162デフォルトの名無しさん
垢版 |
2022/12/17(土) 13:48:17.15ID:xCKnPakF
自分はRust使うけど人にはとりあえずGoにしとけば?って言っちゃうな
VSCodeなんかと同じで無難感はある
0163デフォルトの名無しさん
垢版 |
2022/12/17(土) 14:06:02.86ID:1OvQaYAC
統一教会は日本で、ゆとりある教育を提唱しているが、韓国では全く逆のことを言ってるからな。
騙されるなよ。
0164デフォルトの名無しさん
垢版 |
2022/12/17(土) 14:19:36.18ID:e3Jjde95
>>157
対象の集団規模やその集団のレイヤーが異なることと、各々の集団に対して類似又は共通の雰囲気・要素が存在することないし感じられることは両立しうると思わない?
0165デフォルトの名無しさん
垢版 |
2022/12/17(土) 14:38:10.16ID:1OvQaYAC
集団って統一教会のことか。
0166デフォルトの名無しさん
垢版 |
2022/12/17(土) 14:42:50.70ID:1OvQaYAC
統一教会と自民党は両立じゃないだろ。
日本における統一教会の実行部隊が自民党。
0167デフォルトの名無しさん
垢版 |
2022/12/17(土) 15:23:19.74ID:y2/IfEDT
なんでRustのスレで統一教会が出てくるんだ…

統一教会に限らずカルトの関心は政治権力だから判定条件はis_自民党()じゃなくis_政権与党()だろ
必ずしもすべての政党が実行部隊機能を実装してるとは限らないけど
自民党を取り換えればカルト問題が解決するみたいな発想だとデバッグに支障がでるぞ
0168デフォルトの名無しさん
垢版 |
2022/12/17(土) 15:42:05.55ID:Sr9loTqZ
>>167
ナイーブな考え方だなぁ
宗教法人を解散させればカルト問題は半分解決なんだけとなぜ解散させないのか少しでも考えたことある?
0169デフォルトの名無しさん
垢版 |
2022/12/17(土) 16:16:29.71ID:CCt/1VrG
Rustが適材適所なのはゼロではないと承知の上で「Goが適材である場所が多い」という話だろ
0174デフォルトの名無しさん
垢版 |
2022/12/17(土) 18:34:12.05ID:nURLlX7p
そうかそうかww
0175デフォルトの名無しさん
垢版 |
2022/12/17(土) 19:05:38.21ID:u3ABxrNN
>>151
要素数Nの時に何らかの処理Aに掛かる時間をf(N)とするとき、
O(g(N))は、ある N0 があって、N0 より大きな どんな実数 N に対しても、
f(N) / g(N) < アルファ
が成り立つことを意味し、「押さえられる無限大」、といい、
ランダウ記号(の一種)、または、ラージO 記法という。

だから、O(N/2)=O(N)であり、O(N)+O(1)=O(N)である。
0176デフォルトの名無しさん
垢版 |
2022/12/17(土) 19:13:53.37ID:u3ABxrNN
>>175
[補足]
このことは、
f(N) = O(g(N))
とも書く。以下、厳密性はないが、理解のために書いておけば、
f(N)=O(1)とは、大まかに言って f(N) = b
f(N)=O(N)とは、大まかに言って f(N) = a・N + b
f(N)=O(N^2)とは、大まかに言って f(N) = a2・N^2 + a1・N + b
を意味する。だから、
f'(N)=O(N/2)とは、大まかに言って f'(N) = a・N/2 + b のような意味になるから、
a' = a / 2 と書いてしまえば、
f'(N) = a'・N + b となり、f'(N)=O(N)と言えることが分かる。
f''(N)=O(N)+O(1) は、大まかに言って、
f''(N)= { a・N + b1 } + b2 = a・N + (b1+b2) であるから、
f''(N)=O(N) であることがわかる。従って、

O(N/2)+O(1)=O(N)
であることが分かる。
0177デフォルトの名無しさん
垢版 |
2022/12/17(土) 19:21:03.57ID:u3ABxrNN
>>176
[補足2]
また厳密性を無視して大体で書くと、
f(N)=O(g(N))
の場合、f(N)のNに関する最大次数がg(N)と同じ、という意味。
だから、g(N)がNに関して k 次元だと、f(N)もNに関して k 次元、という
ことを概ね意味する。だから、大体、
f(N)=O(1) とは、f(N)=b を意味する。
f(N)=O(N) とは、f(N)=a * N + ・・・ を意味する。
f(N)=O(N^2) とは、f(N)=a * N^2 + ・・・ を意味する。
なので、f(N)=O(N/2)+O(1)だと、
f(N) = a・N/2 + b
みたいになり、これは、N に関して 1 次関数だから、Nに関する最大次数は 1。
だから、O(N)ということになる。
0178デフォルトの名無しさん
垢版 |
2022/12/17(土) 19:24:51.43ID:u3ABxrNN
>>177
[補足3]
グラフを描いたときにどこかで無限大になるような特殊な関数以外は、
「テーラー展開」で近似することが出来て、
f(N)=a_k・N^k + a_{k-1}・N^{k-1} + a_{k-2}・N^{k-2}+・・・+
   a_1・N + a_0 + (少しの余り)
のように書けることが知られている。
それを知っていれば、理解の助けになる。
0180デフォルトの名無しさん
垢版 |
2022/12/17(土) 19:54:00.74ID:IjrFOfax
すまない、彼はド素人だから見逃してやってほしい
山奥で一人でプログラミング勉強中なんだろうね
情報系学生や職業マが一ヶ月目に覚えることを皆に発表したいらしいんだw
0181デフォルトの名無しさん
垢版 |
2022/12/17(土) 20:18:30.40ID:Qk229x0R
4ヶ月で教えたいこと
1 実数クラスは複素数クラスを継承しない
2 実装継承だろうがinterface継承だろうがオーバーライドは遅い
3 オーバーロードは速い
4 templateも速い
0182デフォルトの名無しさん
垢版 |
2022/12/17(土) 20:33:54.64ID:hdE6AFs/
今となっては不要な知識だな
0183デフォルトの名無しさん
垢版 |
2022/12/17(土) 21:25:28.93ID:y2/IfEDT
Stroustrup氏の名誉のために補足しておくと、発端?の120の記事は
Software Development for Infractructure(インフラストラクチャ用のソフトウェア開発)
ってタイトルで、vectorとlinked listの比較を出してるセクションの見出しは
Access memory less(メモリアクセスは少なく)
で、書き出しは
When I first wrote microcode to squeeze the last bit of
efficiency out of a processor, a good rule of thumb was that
the system could execute nine instructions while waiting
for a memory read to complete.
(私が初めて効率を追求したマイクロコードを書いたときに目安にしたのは、
システムが1つのメモリの読み取り完了を待つ間に9つの命令を実行できるということだった)

インフラとかファームウェア向けに開発する時はポインタ(間接参照)使うとオーバーヘッドが大きいから
多少非効率に思えてもvector使った方がいいよって内容になってる
端的に言ってしまえば適材適所の話でアルゴリズムとかオーダは関係ないはず(全部読んでない)

余計なこと教える前に読解力を鍛えてやってくれ
0184デフォルトの名無しさん
垢版 |
2022/12/17(土) 22:23:54.16ID:o5Fxz66L
>>183
おいおいまた誤訳君かよw
お前も読解力鍛えろ
英語が多少不得意だとしてもパラグラフ全体を読めばそんな訳には絶対ならんだろ
0185デフォルトの名無しさん
垢版 |
2022/12/17(土) 23:38:44.03ID:t4TbQFP4
昔のCPUでアセンブラの経験あると
間接アドレシングなんか、クロック数かかり過ぎてアホらしいから、
そういうレベルの話だろ
ただ、この記事は2012年で、パイプラインやキャッシュの話も出てる
0186デフォルトの名無しさん
垢版 |
2022/12/18(日) 00:59:42.45ID:KVP7/Uup
最近の自動翻訳は分かりやすくて優秀過ぎる

マシンのアーキテクチャやプログラミング言語にもよりますが、ベクターはNの値が小から中程度であれば最適という答えになります。
8Gバイトのノートパソコンで実験を行ったところ、Nは50万よりはるかに大きいことが分かりました。
図1の赤線はリスト、青線はベクトルでかかった時間を示しています。
これは微妙な違いではない。X軸は10万要素単位、Y軸は秒単位です。
つまり、「小さなリスト」に対しては、リンク構造よりもベクトルの方がリストの表現として優れているのです。



インフラアプリケーションの開発者は、コンパクトでアクセスパターンが
予測可能であることが効率化に不可欠だと言っています。
消費電力はメモリアクセスの回数にほぼ比例するため、
赤(リスト)と青(ベクトル)の線は、スマートフォンのバッテリーの消費量や必要なサーバーファームの数の一次近似値です。
0187デフォルトの名無しさん
垢版 |
2022/12/18(日) 01:25:48.90ID:Pt3aaRaQ
自民党の問題点は、統一教会とつるんでるのがばれても縁を切らず、共存共栄の道を模索するとドヤ顔で記者会見したこと。
0188デフォルトの名無しさん
垢版 |
2022/12/18(日) 07:34:33.80ID:wAFe3NPG
>>170
Linuxドライバーはオープンソースが好まれるから、
Rust製ドライバ作成は仕事ではなく趣味プログラマが細々とやるんだろうな

ただ働き奴隷言語でOK
0189デフォルトの名無しさん
垢版 |
2022/12/18(日) 07:50:17.66ID:pDoyuEtS
LinuxでもRustイキリ飛ばし記事が出て来るだろう
数字のカラクリが無いかどうか皆でTokeiしような
0190デフォルトの名無しさん
垢版 |
2022/12/18(日) 07:50:19.13ID:Pt3aaRaQ
最新のLinux Kernel 6.1はRustyというコード名前だし。
Rustに全振りしてるのでは?
0191デフォルトの名無しさん
垢版 |
2022/12/18(日) 07:51:05.11ID:Pt3aaRaQ
LinuxはC++との相性最悪だし、Rustへ移行するしかない。
0192デフォルトの名無しさん
垢版 |
2022/12/18(日) 07:58:07.32ID:uoxQL2Fw
LinusのドSでただ働き奴隷がどれだけ頑張るのか
おらワクワクして来たぞ!
早くTokei見たい!
0194デフォルトの名無しさん
垢版 |
2022/12/18(日) 08:04:19.65ID:Pt3aaRaQ
コード名前には突っ込んでこないのか。
せっかくご用意したのに。
0200デフォルトの名無しさん
垢版 |
2022/12/18(日) 09:11:48.81ID:f04NRte7
>>198-199
いろいろ立場によって、Goは食わず嫌いで済まされないか...
そのうちに、やってないとGoを目の敵にしていると疑われて、
こっちがイキリ判定されるから
0204デフォルトの名無しさん
垢版 |
2022/12/18(日) 09:46:37.39ID:x4/bAggI
>>201
処世術にGoというのは絶妙なポイント突いてる
PythonだとAIで突っ込まれて実力が露呈するから
Rustは今年印象を悪くした
0205デフォルトの名無しさん
垢版 |
2022/12/18(日) 10:21:16.41ID:NDMThvXE
>PythonだとAIで突っ込まれて実力が露呈するから
知ってたわ
Rust仕様マウントerはそういう実力の無い奴
0206デフォルトの名無しさん
垢版 |
2022/12/18(日) 11:18:40.85ID:TnNRBRmL
はちみつオジは仕様マウントerですか?
はちみつオジは仕様マウントerですか?
0207デフォルトの名無しさん
垢版 |
2022/12/18(日) 13:25:28.85ID:Pt3aaRaQ
Haskellと協力しよう。
0208デフォルトの名無しさん
垢版 |
2022/12/18(日) 13:55:56.71ID:VIbL9AVd
goのメリット
文法の単純さ
ライブラリ、リントなどのエコ環境の良さ
ビルド速度
バイナリ配布の簡易さ

これだけあれば十分だろ。
0211デフォルトの名無しさん
垢版 |
2022/12/18(日) 14:28:32.59ID:XqzxcH1y
各言語の複雑さの総和は大きい
だから、一つしか選べないとかそれ以外と戦争とかしない限り、単純さは現実的でない
0212デフォルトの名無しさん
垢版 |
2022/12/18(日) 14:50:00.51ID:/g1tYkuT
>>185
そんなことはない。486以降では、昔から間接アドレッシングと
インクリメントのクロック数は同じだった。
1. 間接アドレッシング(p = p->next) :
mov ebx,[ebx+メンバのクラスの先頭からの相対アドレス] ;1クロック
2. ポインタのインクリメント(++p) :
add ebx,クラスのバイトサイズ ;1クロック
#Stroustrup氏はキャッシュの話をしている。
0213デフォルトの名無しさん
垢版 |
2022/12/18(日) 15:04:42.63ID:/g1tYkuT
>>178
[補足]
なお、O(・) 記号では、log N はよく出てくるが、log x は x=1の周りでは
次のような無限級数で(近似的に)展開できる。
log(1+x)=x-(1/2)x^2+(1/3)x^3-(1/4)x^4+・・・
無限級数なので、xの最大次数は、無限大。
だから、178 では、k が有限で止まっている形になっているが、本当はそうではない。
また、上記の展開式を見ると、正負の符合が交互に出てくることが分かる。
そんなに単純ではないが、このことも影響して y = log x は、dy/dx → 0 ( x → 無限大 )
であり、傾きが極限的にどんどん 0 (水平) に近付いていく。
つまり、N = 1 + x が変化してもほとんど変化しなくなる。
だから、log N は、「みなし定数」的と言われることがある。
なお、この時、逆関数で考えると、x = exp(y) であり、
y = exp(x) のグラフを描いて、y = x で(対称的に)折り返すと考えやすい事がある。
0214デフォルトの名無しさん
垢版 |
2022/12/18(日) 15:09:00.64ID:/g1tYkuT
>>213
なお、この展開式にもウソがある。
それは、log(1+x)で、その展開が正しいのは、|x| < 1 の範囲に限られることを
言及せずに誤魔化していること。
しかし、x → ∞で、dy/dx → 0 の証明は出来る。それは、
y = exp(x) が、dy/dx → ∞ だから、dx/dy → 0 であり、
逆関数 y = log(x) だと、dy/dx → 0 であるから。 //
0216デフォルトの名無しさん
垢版 |
2022/12/18(日) 15:50:01.93ID:+UGBJzct
高校数学を演説したいんよね
それ聞かされる周りの高学歴の気持ちになってみてほしい
0217デフォルトの名無しさん
垢版 |
2022/12/18(日) 15:51:59.31ID:3W2C0MJT
>>205 それ分かる
SO/HN/rで仕入れた俄か知識をひけらかすために、質問と回答を自演するパターン>Rust仕様マウントer
厚かましくも、スレ民に教えたい、と思ってるんだろうけど姑息すぎてスルーしてる
時々引っかかるカモがいる様に見えるけど自演なんだろうな

>>206
自分で考えろ
0218デフォルトの名無しさん
垢版 |
2022/12/18(日) 16:07:41.26ID:RtgSwVtd
>>215-216 俺も分かる
数学科卒でRustのメモリ安全性は(自称色々条件つけて)数学的証明付きだと吹聴してた実力の無い奴がいた
情報系院卒だったかな
0219デフォルトの名無しさん
垢版 |
2022/12/18(日) 16:28:02.98ID:vIybIBIV
>>208-209 なるほどね
加えてGCC LLVM以外の独立系native codegenにしては高速なバイナリを吐く様だね
独立系と言ってもGoogleなんだから当然っちゃ当然か
0220デフォルトの名無しさん
垢版 |
2022/12/18(日) 16:47:10.99ID:7QJNj+m3
迷惑オジ達に共通してるのは論理的思考レベルの低さ

読解力がない
要点をつかめない
主張を簡潔にまとめられない
全部原因は同じ
0221デフォルトの名無しさん
垢版 |
2022/12/18(日) 16:50:21.46ID:nDGotMNY
goユーザとRustユーザは言語に求める性質が違うから住み分けたほうがいいかも

goも少し触ったことがあるけど型の表現とエラー処理のサポートが物足りなくてRustに流れた
例えば標準パッケージioのReadWriteSeekerとかReadSeekCloserは自分の感覚だととても気持ち悪い
(多少文法が複雑でもRead + Write + Seekみたいに足し算で表現したい)

ただgoの文字型のruneは中二っぽくて好き

go2もpython3みたいに大変革になるのかな
※goは長いこと使ってないから情報が古いかもしれない
0223デフォルトの名無しさん
垢版 |
2022/12/18(日) 17:05:54.42ID:QlmiPWwX
>>219
たしかにRustよりGoのが速いベンチマークがあったな

>>220
この人5chがちら裏なの理解する論理的思考レベルがない

>>221
また中二っぽく可愛がってもらえよ
Go language part 5
https://mevius.5ch.net/test/read.cgi/tech/1645915400/390
390: デフォルトの名無しさん sage 2022/06/15(水) 05:30:30.87 ID:l/JMV/GH
goはそもそもエラーを扱う気概にかける言語だからどうしょうもない
毎回いちいちエラーコード返すのが作法とか何時の時代だよって感じだ
0224はちみつ餃子 ◆8X2XSCHEME
垢版 |
2022/12/18(日) 17:17:21.90ID:ZjeACeaz
>>147
理論は事実に立脚して組み立てられるものであって理論を組み立てればその通りに事実が動くわけじゃない。
理論の正しさは実際にそうなっているということによって証明しなければ想定の中でだけ正しくても意味ない。
実測は要る。 (少なくとも工学的思想では。)

想定のほうで Stroustrup が誤っているという主張は (その主張が妥当かどうかは別として) わかったが、
だからといって実測の重要性を貶めるのはよくないな。
0225デフォルトの名無しさん
垢版 |
2022/12/18(日) 17:18:21.24ID:Kra2fWlF
>たしかにRustよりGoのが速いベンチマークがあったな
ボロ負けじゃね?しかもマルチスレッドがGoの独壇場じゃねぇか
誰か本気だせよ

次世代言語27 Nim Zig Pony Carbon Gleam
https://mevius.5ch.net/test/read.cgi/tech/1659660050/81
81: デフォルトの名無しさん(ワッチョイ 1e66-JEMU) sage 2022/09/28(水) 19:48:23.69 ID:Tun9Z/EC0
Nim追加
Language x10 x100 x200 x400 Memory Comment
--------------------------------------------------------------
Zig 0.118 1.073 2.113 4.203 3.2MB (std.HashMap, caller-hash by Context(Fnv1a_64))
Nim(clang) 0.211 1.171 2.245 4.372 4.2MB (CustomCountTable,LTO,ARC,caller-hash) New
C(gcc) 0.136 1.146 2.271 4.531 2.0MB (optimized.c,binary IO,jemalloc,O4,LTO)
C(clang/LLVM) 0.137 1.147 2.280 4.544 2.0MB (optimized.c,binary IO,jemalloc,O3,LTO)
Go 0.152 1.233 2.428 4.832 3.9MB (caller hash,better loop)
Go 0.164 1.346 2.654 5.279 3.8MB (caller hash)
Rust(LLVM) 0.154 1.425 2.838 5.674 2.6MB (optimized-customhashmap,O3,LTO,caller-hash)

以下、caller-hashではない
Go 0.085 0.366 0.693 1.319 61.9MB (parallel.go,reserve 65536/2)<--マルチスレッド
Nim(clang) 0.218 1.255 2.401 4.691 4.2MB (CustomCountTable,LTO,ARC) New
Zig 0.162 1.493 2.970 5.935 4.6MB (std.StringHashMap)
Go 0.182 1.563 3.063 6.097 3.8MB (customhash.go,reserve 65536)
Rust(LLVM) 0.214 1.725 3.396 6.715 3.5MB (optimized,fxhash,O3,LTO)
Nim(clang) 0.316 2.241 4.371 8.633 4.2MB (optimized.nim,std/CountTable,65536,LTO,ARC,FNV) New
Nim(clang) 0.332 2.387 4.652 9.152 4.2MB (optimized.nim,std/CountTable,65536,LTO,ARC) New
0226デフォルトの名無しさん
垢版 |
2022/12/18(日) 17:31:20.56ID:Pcpr/u0k
>>224-225
はちみつオジが、仕様マウントerなのか、それともベンチ実測で天才プログラムを出すか、の流れキター
0227デフォルトの名無しさん
垢版 |
2022/12/18(日) 17:35:28.16ID:XqzxcH1y
ギャンブルって短期的には実力より運だから
実力主義やめないと短く簡潔にまとめることはできない
0228デフォルトの名無しさん
垢版 |
2022/12/18(日) 17:40:11.04ID:UUQieuN3
>>211,227
えっ?
このポエオジ文って、はちみつオジが逃げ出す時の自演だったかよ!
0229デフォルトの名無しさん
垢版 |
2022/12/18(日) 17:42:45.12ID:UUQieuN3
みんな知ってたの?
0230デフォルトの名無しさん
垢版 |
2022/12/18(日) 17:43:32.51ID:UUQieuN3
これポエオジだけじゃ済まされないよ
0231デフォルトの名無しさん
垢版 |
2022/12/18(日) 18:10:21.20ID:nDGotMNY
>>223
Goが合わなかったからRust使ってるって言うてますやん
Go2出たらまたちょっと試すかも

このスレでGoの宣伝してる人は他の言語のスレでRustを宣伝してた人と同類なんだろうけど
goのどこを宣伝したいのかいまいち伝わってこない
並行処理が書きやすいって辺り?
「Rust→メモリ安全(ドン!)」みたいにもう少し分かりやすくしてくれないと(どのみち迷惑だけど…)
0232デフォルトの名無しさん
垢版 |
2022/12/18(日) 18:22:19.21ID:Yrd3c8FW
>>228-230
いやショックスルー出来ん
0233デフォルトの名無しさん
垢版 |
2022/12/18(日) 18:29:47.39ID:NaS4unRh
>>231
ライブラリではなく言語ランタイムに統合されてるってのは大きいだろ
並行処理を意識してるだけで勝手に並列になるってのも強みの一つ
0234デフォルトの名無しさん
垢版 |
2022/12/18(日) 18:29:54.58ID:7MHx9hHi
はちみつ味の複製ポエム美味しかった?
0235デフォルトの名無しさん
垢版 |
2022/12/18(日) 18:34:43.02ID:5AOpzoDN
俺も知らなかった、裏切られた
androidの数字とか結局は誘導だったんだな
0236デフォルトの名無しさん
垢版 |
2022/12/18(日) 18:36:05.72ID:5AOpzoDN
>>231
お前が迷惑
0237デフォルトの名無しさん
垢版 |
2022/12/18(日) 18:36:46.79ID:5AOpzoDN
>>234
こいつも迷惑
0238デフォルトの名無しさん
垢版 |
2022/12/18(日) 18:57:06.70ID:mhRLUjP0
>>228-230 なんと

はちみつが否定しているから完全スルーしてたけど内容に一理あるのか?
ID:7EPFyoxp
ID:u3ABxrNN
ID:/g1tYkuT
0239デフォルトの名無しさん
垢版 |
2022/12/18(日) 19:12:48.17ID:tUNfGn/h
ID:Pt3aaRaQもはちみつだな
>>187 >>207
わけわからん
0240デフォルトの名無しさん
垢版 |
2022/12/18(日) 19:43:19.34ID:WZSOTYm5
>>235 流れを見直したら、誘導なんて甘くない、印象操作とはつみつ効果でだましに掛かってる
愉快犯にもほどがある、だましの手口↓

Rust part17
https://mevius.5ch.net/test/read.cgi/tech/1665063793/855
855: デフォルトの名無しさん 2022/12/07(水) 00:21:26.68 ID:rpgrLTt2
AndroidもRustで書かれてたのかよ!
しかもRustの部分は脆弱性の報告0件って恐ろしいほどの安全性だな……
これマジでRust一強の時代がくるかも……
Ubuntuにデフォルトで入るまで待とうとのん気に構えてたけど急いで勉強しないと……!〆(.. )カリカリッ!!
https://japan.zdnet.com/article/35196972/

https://mevius.5ch.net/test/read.cgi/tech/1665063793/856
856: デフォルトの名無しさん sage 2022/12/07(水) 00:35:34.36 ID:21cwGaas
>>855
まじ?
というか20%がrustってえぐいな

https://mevius.5ch.net/test/read.cgi/tech/1665063793/864
864: はちみつ餃子 ◆8X2XSCHEME sage 2022/12/07(水) 09:19:24.95 ID:vqEtcxl0
どれがいい感じに発展するか事前にわかるもんではないからな。 狙いとは違う方向で結実することもあるし。
色々やっておく (それが出来る環境を用意する) とどれかは上手くいくし、上手くいかずに消えるものも多いってだけのこと。

https://mevius.5ch.net/test/read.cgi/tech/1665063793/866
866: デフォルトの名無しさん 2022/12/07(水) 10:39:11.42 ID:KNXoSnHr
>>855
結果だけみると凄まじい
システムプログラミング関係の置き換えは案外急速に進むかもしれんね
0241デフォルトの名無しさん
垢版 |
2022/12/18(日) 19:46:06.62ID:WZSOTYm5
手間さいてTokeiかけてくれた人たちには感謝だわ
>>6-7,10
>>97-98
0242デフォルトの名無しさん
垢版 |
2022/12/18(日) 19:58:10.93ID:xwF0kTSn
5chなんてそんなものだが完全にやり過ぎだな
「はちみつ効果」にやられてしまった
C++スレの住人は知ってるんだろうと思うと腹立つ
0243デフォルトの名無しさん
垢版 |
2022/12/18(日) 20:01:35.84ID:xwF0kTSn
あと複おじ軍団なんて冗談だと思ってたけどちゃんと見ないとだめだな
0244デフォルトの名無しさん
垢版 |
2022/12/18(日) 20:07:43.95ID:lRkKqYIY
はちみつ効果のネーミングセンスw
複おじ誕生の荒れたスレ進行をすっ飛ばさずに読んでだら防げたのだろうか
5chの洗礼にあった
0245デフォルトの名無しさん
垢版 |
2022/12/18(日) 20:18:45.09ID:jhXHUDTW
そもそも次世代言語スレがひどいもんだった

Goスレの方は活性ゼロだけどそれが正常なんだろうな
0246デフォルトの名無しさん
垢版 |
2022/12/18(日) 20:51:06.58ID:bqAtiN+g
逐一見てたわけじゃないからはちみつだったのには驚いたけど、
中立の立場で一応言っておくと、所有権の複製だったかの言葉尻を
からかってたのは旧Rust民の方なんだよ

何も知らない新Rust民が巻き込まれてやり返されたから5chの洗礼と
言っているけどね、根本は両成敗事案

今年の内にネタ晴らししたのが幸いくらいに考えてもバチは当たらない
0249デフォルトの名無しさん
垢版 |
2022/12/18(日) 21:22:16.01ID:Pt3aaRaQ
統一教会は日本で、ゆとりある教育を提唱しているが、韓国では全く逆のことを言ってるからな。
騙されるなよ。
0250デフォルトの名無しさん
垢版 |
2022/12/18(日) 21:22:55.55ID:6rePUvep
>>246
うわっwww
見苦しいな
0251デフォルトの名無しさん
垢版 |
2022/12/18(日) 21:31:24.71ID:ZUTK/5Jh
何を解決しようとしているのかさっぱりわからんが「はちみつ効果」だけ覚えておくし個人に遺恨とか無いから
そもそも行き当たりばったりだし舐めプは許さないから何も変わらんよ
0252デフォルトの名無しさん
垢版 |
2022/12/18(日) 21:36:30.85ID:sb+M7K5Y
誰がどうって属人的な話ばかりでさっぱりわからん
rustについて話すスレじゃないのここ
0254デフォルトの名無しさん
垢版 |
2022/12/18(日) 22:50:18.37ID:+UGBJzct
カラクリがどーのこーの言ってる子の自演でしょ
やっぱワッチョイないとダメだなもうこのスレ
・複オジ
・高校数学くん
・カラクリくん
こいつらが張り付いてる限りはもうだめ
0255デフォルトの名無しさん
垢版 |
2022/12/19(月) 00:21:25.03ID:gq5drqb5
>>252
人や団体もシステムの部品だと思ってる奴にとってはそういうのもRustの部品じゃないの知らんけど
0257デフォルトの名無しさん
垢版 |
2022/12/19(月) 16:48:50.89ID:p8X6WKzq
誰でも触れんやろうから奴隷言語として使うのは無理やろ
0258デフォルトの名無しさん
垢版 |
2022/12/19(月) 19:27:21.72ID:/3mrhR4N
やっとアベノミクスの成果が出てきて物価が上がり始めた。
0260デフォルトの名無しさん
垢版 |
2022/12/19(月) 20:49:32.09ID:3Dxg7EeX
はちみつ味の複製ポエム来てるね
0262デフォルトの名無しさん
垢版 |
2022/12/19(月) 21:37:45.89ID:WKEFaS7w
COBOLは確実に先細りだけど需要低下より人材供給量低下の方が激しいことに賭けてそれが当たれば最低限食ってはいけるだろう
ただしどれだけ供給減っても低賃金は確定している
0264デフォルトの名無しさん
垢版 |
2022/12/21(水) 17:21:59.03ID:oXzOzUvS
>>231「Rust→メモリ安全(ドン!)」
からの
>>263 Rust圏外
イキリ仕様マウントer、ふかし過ぎたな、負け惜しみポエム早う
0265デフォルトの名無しさん
垢版 |
2022/12/21(水) 17:27:51.00ID:1n5bm7tL
23日を目の前にしてこんな珍活やるなんて
こいつらほんとに映画完成を祝う気があるのか
0266デフォルトの名無しさん
垢版 |
2022/12/21(水) 17:46:49.38ID:EOCA/uvt
イキリ仕様マウントer、負け惜しみポエム早う
0268デフォルトの名無しさん
垢版 |
2022/12/21(水) 19:19:58.85ID:aAXY15Bb
いえーい

lowerbound
let mut id: usize = vec.binary_search_by(|it| if it > &i { Ordering::Greater } else { Ordering::Less }).unwrap_or_else(|it| it);
0269デフォルトの名無しさん
垢版 |
2022/12/21(水) 20:11:47.52ID:AHrCNsg8
Rustの企業ニーズがまだまだ圏外なことなんてRust使いなら分かりきってることなのにそんなマウント取った感じで語られても
0277デフォルトの名無しさん
垢版 |
2022/12/22(木) 12:46:57.09ID:NYaLZdVY
パーフェクトRust、くるーーーーーーーーー

パーフェクトRust
古川 正寿フルカワ マサトシ(著/文)
発行:技術評論社
B5変型判 608ページ
定価 4,200円+税
ISBN978-4-297-13322-1
0280デフォルトの名無しさん
垢版 |
2022/12/22(木) 19:24:14.11ID:AE7wyiWu
>>277
宣伝乙。
5chでイキリRustしてたのはお前だったか。
0282デフォルトの名無しさん
垢版 |
2022/12/23(金) 00:07:44.29ID:TMc6xUzx
パーフェクトに知るために608ページも知らなくちゃいけないなんて、、前評判なのか何なのか知らんけど
まだ読んでもない・読まれても無い・好評にもなってない本の宣伝とか、ガッカリだぜ著者
0284デフォルトの名無しさん
垢版 |
2022/12/23(金) 00:50:18.78ID:9qxa1bzh
>>282
まずは読まれないと良い評判も悪い評判もつかないんだぞ。
まずは存在を知らないと読まれないんだぞ。
0285デフォルトの名無しさん
垢版 |
2022/12/23(金) 00:54:24.95ID:gJykqhV0
「ちょっと宣伝させて下さい」ペコリ
としとけばいいものを
0286デフォルトの名無しさん
垢版 |
2022/12/23(金) 00:55:50.80ID:fmg0TWli
>>284
vineで配りまくってもらえよ
0288デフォルトの名無しさん
垢版 |
2022/12/23(金) 10:07:58.89ID:VNmJewFl
技評でパーフェクトシリーズなら
いろんな雑誌や書籍に宣伝載るだろ
あの日本語訳のような酷い出来じゃなければ
他言語から来たやつが日本語で読める入門書としてそれなりに読まれるんじゃねーの

でも発売2ヶ月以上前からこんなところで宣伝するようじゃ中身には全く期待できない
0289デフォルトの名無しさん
垢版 |
2022/12/23(金) 19:15:59.17ID:gwgT2Sfv
>>282
プログラミング言語C++第4版は1000ページ超えてたぞ。
あれぐらいの名著ならいいんだけど果たして、、、
0290デフォルトの名無しさん
垢版 |
2022/12/23(金) 19:18:50.67ID:moKX1GWs
技術評論社って色々問題の多い出版社だろ。
0292デフォルトの名無しさん
垢版 |
2022/12/23(金) 19:30:32.77ID:moKX1GWs
モルフィーワン無関係のふり事件とかまだ忘れてへんぞ。
0293デフォルトの名無しさん
垢版 |
2022/12/23(金) 19:31:31.66ID:moKX1GWs
へ、弊社には関係ございません・・・
・・・って、お前、巻末にしっかり申込書載せてただろうが。
0295デフォルトの名無しさん
垢版 |
2022/12/23(金) 21:30:24.84ID:uZSH+bjc
ちゃんとした本で勉強せずネットだけで勉強したプログラマーの大半が役立たずなのは事実
0297デフォルトの名無しさん
垢版 |
2022/12/23(金) 21:47:46.65ID:moKX1GWs
技術評論社って時点でちゃんとした本とは言えない。
分かった気にさせる系ブック。
0299デフォルトの名無しさん
垢版 |
2022/12/23(金) 22:45:44.65ID:moKX1GWs
技術評論所って時点で却下だ。
マイナスにしかならん。
関わったら負け。
0300デフォルトの名無しさん
垢版 |
2022/12/23(金) 23:29:21.75ID:E4YJ/cNu
会社の質は知らんが技術書の質としたら
日本語書籍のなかじゃ技評はまともな方だよ
Web+DBのシリーズなんかはそこそこ良い本がそこそこある

パーフェクトシリーズは3~4冊読んだことあるがどれも可もなく不可もなくって感じ
0301デフォルトの名無しさん
垢版 |
2022/12/24(土) 00:21:57.15ID:dKwBAK5O
予約販売するなら目次くらいは見せてほしいです(アマゾンの紹介文は校正が甘くてちょっと心配になる)
シリーズ物だと本棚に飾るために買う人もいるのかな
0302デフォルトの名無しさん
垢版 |
2022/12/24(土) 00:29:31.41ID:oaf6ZoeK
アマゾンは何年か前から目次データを扱わないことにしたはず
0303デフォルトの名無しさん
垢版 |
2022/12/24(土) 00:39:47.50ID:Ff8LcExQ
入門ならオライリー本でいいよね。
パーフェクトっつうくらいだからそれ以上の内容だろうな?
0305デフォルトの名無しさん
垢版 |
2022/12/24(土) 07:46:20.45ID:prQ1joB9
5ch荒らしてステマは許されんだろ。
0306デフォルトの名無しさん
垢版 |
2022/12/24(土) 07:51:37.78ID:prQ1joB9
ギヒョーの本なんて嘘しか書いてないだろ。
読めば遠回りになる。
0307デフォルトの名無しさん
垢版 |
2022/12/24(土) 09:31:57.45ID:Pn9iAY2O
Rustをやる前にCをやれ、pthreadをやれ
この辺の経験がないとRustの旨味はわからないし、経験があればRustは本じゃなくてbook等で十分習得できる
0308デフォルトの名無しさん
垢版 |
2022/12/24(土) 10:13:24.51ID:0hzd8iER
>>303
パーフェクトは言語要素を薄く広く一通り網羅してますよくらいの意味
0310デフォルトの名無しさん
垢版 |
2022/12/24(土) 10:22:04.57ID:qdGW0l+q
今のところ入門者向けはオライリー本
脱初級者向けにはRust for Rustaceans
この2冊がド定番
The Bookはオライリー本読んだ後の復習用
0311デフォルトの名無しさん
垢版 |
2022/12/24(土) 10:52:29.94ID:1g44UEW4
amazon見てみたら”あの日本語訳”もあのまま出版されてて笑った

校正とかしなくても出版されるんだな
0313デフォルトの名無しさん
垢版 |
2022/12/24(土) 12:10:44.03ID:A36YCrnK
オライリー本って
カニの絵のある、プログラミングRust第2版
ってやつでいいよね?
買ったけどこれで入門者向けなのか。難しい
0314デフォルトの名無しさん
垢版 |
2022/12/24(土) 12:20:09.96ID:prQ1joB9
でも日本には四季があるから。
0315デフォルトの名無しさん
垢版 |
2022/12/24(土) 12:28:56.16ID:6dgnpXDz
>>313
それだよ
オライリーから出てるRustの日本語書籍は今のところそれの第1版と第2版しかない
入門者向けってのは他言語経験者がRust入門時に1冊目として読むべき本という意味
0316デフォルトの名無しさん
垢版 |
2022/12/24(土) 12:34:52.75ID:prQ1joB9
5ch荒らしてステマする出版社は滅びてしまえ。
0318デフォルトの名無しさん
垢版 |
2022/12/24(土) 12:46:55.17ID:6lvItlMI
>>313
入門者向けっていうか言語機能を一通り知りたい人向けかな
簡単なアプリを作りながら徐々に学びたいみたいなタイプの人には向いてないとは思う
0319デフォルトの名無しさん
垢版 |
2022/12/24(土) 16:38:18.15ID:vikvNjdz
Comprehensive Rust (by Android team)
https://google.github.io/comprehensive-rust/

どの項目もめちゃ簡潔な説明しかないけど必要な項目をよくおさえてるので短い時間でRustをざっくり把握したい人向き
0320デフォルトの名無しさん
垢版 |
2022/12/24(土) 17:45:07.76ID:prQ1joB9
>>317
発売前から星5つけてるのは技術評論社と断定して良いだろ。
0322デフォルトの名無しさん
垢版 |
2022/12/24(土) 18:19:17.78ID:prQ1joB9
文句言うな、クソ出版社。
0324デフォルトの名無しさん
垢版 |
2022/12/24(土) 18:48:43.75ID:prQ1joB9
あ〜クソ出版社が怒った〜。
0326デフォルトの名無しさん
垢版 |
2022/12/24(土) 20:24:04.17ID:prQ1joB9
オライリーはステマしないから良いですね。
技術評論社は駄目ですね。
0328デフォルトの名無しさん
垢版 |
2022/12/24(土) 21:44:01.09ID:TpRUM52R
>>318
>簡単なアプリを作りながら徐々に学びたいみたいなタイプの人には向いてないとは思う
こういうタイプに向いてるRust入門1冊目向き本ある?
どれも1冊目を標榜してても現実には2冊目向きじゃない?
0329デフォルトの名無しさん
垢版 |
2022/12/24(土) 21:52:02.71ID:TpRUM52R
オライリー本かThe Book以外で1冊目向きでそこそこだと思ったのは「コンセプトから理解するRust」ってやつだな

細かい表現で正確性に欠けてたり不必要に他言語の解説がされてたりダメなところもあるけど
Rustを理解するために必要な概念がわりかし平易に説明されてるのでオライリー本のハードルが高いと思うようなら読んでみてもいいんじゃねって感じた
0330デフォルトの名無しさん
垢版 |
2022/12/24(土) 21:54:15.47ID:TpRUM52R
技評のステマじゃないぞw
0331デフォルトの名無しさん
垢版 |
2022/12/24(土) 21:57:51.85ID:prQ1joB9
アウト。
完全に技評。
0333デフォルトの名無しさん
垢版 |
2022/12/25(日) 16:35:37.64ID:nIXk07OO
たぶん買わないからつける星がない
プラスに働くかは分からないけど多少はRustの宣伝になるだろうし
よくわかってない意思決定チームが引っ掛かってRust採用するかもしれない
0334デフォルトの名無しさん
垢版 |
2022/12/25(日) 17:21:36.73ID:1I2bckMn
zigがバージョン1.0になってrustと比較して、rustが優れてるようであれば、c++からrustに移行するかな
0335デフォルトの名無しさん
垢版 |
2022/12/25(日) 17:38:15.56ID:sHsaZ4HA
>>333
立ち読みして星つければいいよ
0337デフォルトの名無しさん
垢版 |
2022/12/25(日) 19:00:59.96ID:pw/2PAh6
「読んでいませんがステマ反対の意味で星1です」って書いておけば良いんじゃないの?
0340デフォルトの名無しさん
垢版 |
2022/12/25(日) 20:21:44.92ID:pw/2PAh6
自分で「パーフェクト」などという王冠を載せてしまう所がなんとも。
0341デフォルトの名無しさん
垢版 |
2022/12/25(日) 20:22:39.42ID:kpfdef+7
在庫がない物を売ったり現金がないのに買ったり
データのない感想を言ったりまだ法的根拠がない悪と戦ったりする現象
0342デフォルトの名無しさん
垢版 |
2022/12/25(日) 20:36:11.79ID:/ZdbLfzY
それよりなんか、日本でRustの資格を作ろうとしてるやつがいるっぽいな
0343デフォルトの名無しさん
垢版 |
2022/12/25(日) 20:37:41.40ID:pw/2PAh6
資格を持っていないRust使いはモグリにされるんだろな。
すぐ獲っとけよお前ら。
0344デフォルトの名無しさん
垢版 |
2022/12/25(日) 20:49:53.99ID:Wqv6EEWh
本のタイトルってほとんど編集が決めない?
相談があるケースがほとんどだけど全然違うタイトルになるよ。
0345デフォルトの名無しさん
垢版 |
2022/12/25(日) 20:51:21.68ID:pw/2PAh6
ステマして申し訳ありませんと言えない病気にかかってるようだな。
0346デフォルトの名無しさん
垢版 |
2022/12/25(日) 20:54:15.38ID:jSgNZxGu
>>344
自分も経験あるけど「これはちょっと大げさに言い過ぎで恥ずかしい」
と思っても、こっちの方が売れるからって言われて押し切られることあるよな
0348デフォルトの名無しさん
垢版 |
2022/12/25(日) 21:00:45.00ID:jSgNZxGu
エンジニアとしては正確に命名したくなっちゃうんだけど
そうすると潜在顧客にリーチしないって言われる
なんでパーフェクトも「もうRust本も結構出てるんで、決定版的な感じで差別化しないと売れませんよ」って編集がゴリ押ししたのかな?とか
0350デフォルトの名無しさん
垢版 |
2022/12/25(日) 21:25:07.80ID:pw/2PAh6
妙なJava使いがパーフェクトRustかよ。
馬鹿にしすぎ。
0352デフォルトの名無しさん
垢版 |
2022/12/25(日) 21:41:58.80ID:h0SIPUgP
>>341
先物取引なんだろjk
0353デフォルトの名無しさん
垢版 |
2022/12/25(日) 21:46:53.94ID:B7L0WrjQ
オライリーからもC/C++やったことないぜって人のRust本出てるよ
他の本でそこそこ有名な著者ではあるけど
0354デフォルトの名無しさん
垢版 |
2022/12/25(日) 21:49:05.53ID:kVcEzED5
出版社で言えばオームのRust本も残念なやつだったぞ
0355デフォルトの名無しさん
垢版 |
2022/12/25(日) 21:49:22.53ID:pw/2PAh6
技術評論社のステマを無効化する技術が必要。
0356デフォルトの名無しさん
垢版 |
2022/12/25(日) 22:03:17.68ID:mTma8hKu
gihyo に恨みを持つ人物... あっ

ttps://blog.goo.ne.jp/ikunya/e/95ff46d785fa70c9a8f69a7aa9eb7508
0358デフォルトの名無しさん
垢版 |
2022/12/25(日) 22:41:18.06ID:Rzpsr3wg
>>356
うわーこれ知らんかったけど両方ともめちゃくちゃ闇が深いな

あわしろあわしろ言ってたのはコレだったのか
嫌な世界だな
0359デフォルトの名無しさん
垢版 |
2022/12/25(日) 22:48:32.49ID:pw/2PAh6
これは凄いな。
思った以上に闇が深い。
0361デフォルトの名無しさん
垢版 |
2022/12/25(日) 23:13:30.20ID:5xuoXStY
これ見たら萎えた
https://togetter.com/li/1084225

Twitterってもう公共の場なんだよね
相手がどうあれそこでこんなやり取りしてたらそりゃ批判されて当然
CoCとか語る資格ないわ
0362デフォルトの名無しさん
垢版 |
2022/12/25(日) 23:19:28.74ID:pw/2PAh6
こんなことがあったのか。
凄いなこれ。
0363デフォルトの名無しさん
垢版 |
2022/12/25(日) 23:20:42.36ID:pw/2PAh6
外から見るとリンチの記録だけどな。
0364デフォルトの名無しさん
垢版 |
2022/12/25(日) 23:48:51.83ID:pw/2PAh6
今日は技術評論社の新たな闇が見れて勉強になったわ。

ダメな出版社は何やってもダメだな。
0366デフォルトの名無しさん
垢版 |
2022/12/26(月) 00:39:53.37ID:HZUapexB
>>364
いやいやどう考えても君が技評に恨みをもつ本人やろ
少なくともこのスレでは
0368デフォルトの名無しさん
垢版 |
2022/12/26(月) 01:09:38.31ID:/akYDW0k
このスレ、この板で圧倒的に勢いあるけど
ひとりでスレチな話してるんだな
0370デフォルトの名無しさん
垢版 |
2022/12/26(月) 17:03:05.95ID:zTKHQ885
linux-6.2-rc1に新規に追加されたファイル
rust/build_error.rs
rust/kernel/build_assert.rs
rust/kernel/static_assert.rs
rust/kernel/std_vendor.rs
rust/kernel/types.rs
rust/macros/concat_idents.rs
rust/macros/vtable.rs
samples/rust/rust_print.rs
0371デフォルトの名無しさん
垢版 |
2022/12/26(月) 17:28:23.14ID:tcXf7L45
志賀慶一と岡部健戦わせたらどうなるん?
粘着力で毛の壁が上回ってる気がするけど
0372デフォルトの名無しさん
垢版 |
2022/12/26(月) 18:40:32.16ID:RCive2Hf
どうでもいいLinux/リーナス関連ゴシップを書き散らかすのもあのキモチ悪いコミュニティの人かと思うと汚コード以上に嫌悪感を感じるな
0373デフォルトの名無しさん
垢版 |
2022/12/26(月) 18:47:07.99ID:vjeyt+Nr
またあのバカが荒らしてるのか
0374デフォルトの名無しさん
垢版 |
2022/12/26(月) 18:52:30.06ID:vjeyt+Nr
警察に通報したほうが良いんじゃねえか?
0377デフォルトの名無しさん
垢版 |
2022/12/26(月) 20:21:49.23ID:vjeyt+Nr
あほだコイツ
0378デフォルトの名無しさん
垢版 |
2022/12/26(月) 20:22:51.69ID:Zy6+VO+5
>>370
rustに対してネガティブな内容だったからここで内容は書かないが、ちょうど今日これの開発秘話を聞いてしまった
0379デフォルトの名無しさん
垢版 |
2022/12/26(月) 21:26:58.76ID:Ju6RL4oa
ほんと気持ち悪いな
どっちも気持ち悪い
0381デフォルトの名無しさん
垢版 |
2022/12/26(月) 21:36:03.30ID:waGE7o7X
400スレ近く消費してるのに読む価値のあるレスが1~2個しかない
あとはアンチとステマと誤訳とクローン蜂蜜
0384デフォルトの名無しさん
垢版 |
2022/12/26(月) 22:12:16.84ID:vjeyt+Nr
>>380
その御方はUbuntu JPの中の人だぞ
頭が高い
0385デフォルトの名無しさん
垢版 |
2022/12/26(月) 22:14:36.02ID:S3tY6xj2
>>381
その価値というのが量的だから
ソースコード読めない人を参加させるためにわざと定量化してるようなもの
0388デフォルトの名無しさん
垢版 |
2022/12/27(火) 21:34:50.26ID:Q5qxYeje
asserts、print、types、identという文字面だけで、ム板人は中身が透視できる。
したがって、開発秘話などと言ってるのはム板人ではない。
0390デフォルトの名無しさん
垢版 |
2022/12/28(水) 20:54:07.25ID:8hE8evYw
rustは標準ライブラリが貧弱ってところが唯一引っかかるな
他は今のところ文句ないんだが
goとrustだとどっちのほうが標準ライブラリが充実してるのかな
0391デフォルトの名無しさん
垢版 |
2022/12/28(水) 23:35:00.22ID:cVu4p4ix
ライブラリの充実感を出すにはLLVMなコンパイラなんかよりも
C/C++へのトランスレータかインタプリタ作った方が直感的だろうね
わかりやすさを無視した実質ではコンパイラが正しいんだろうけど
0392デフォルトの名無しさん
垢版 |
2022/12/29(木) 01:00:18.88ID:Fxo/xNYr
尻滅のC++er
0394デフォルトの名無しさん
垢版 |
2022/12/29(木) 13:50:41.11ID:47DoSGRg
技術評論社がスレを潰したな。
0395デフォルトの名無しさん
垢版 |
2022/12/29(木) 14:03:52.70ID:c0dU1ulx
JavaのAWTが標準ライブラリを流行らせた
AWTを潰した奴が標準ライブラリを潰した
0400デフォルトの名無しさん
垢版 |
2022/12/30(金) 14:17:15.08ID:OHNOUhaD
板の他スレのようにワッチョイがついてないせいだろ
このスレはワッチョイついてないんだから荒らしくらいガマンしなさい
0402デフォルトの名無しさん
垢版 |
2022/12/30(金) 15:34:09.37ID:9s3B+84f
>>401
きみが考える安心安全を実現する方法を晒してくれ
多分Rustで実現できるなら他の言語でもできると思うけど
0405デフォルトの名無しさん
垢版 |
2022/12/30(金) 15:44:53.39ID:X8XU9Tq3
>>390
そもそも低レイヤー言語でプログラムするのに、標準ライブラリに頼りまくるのが間違いだわ。
0406デフォルトの名無しさん
垢版 |
2022/12/30(金) 15:56:55.67ID:q+i6e/HN
>>390
充実したリポジトリがあって cargo.toml に一行足すだけでライブラリが使えるんだから
そのライブラリが標準ライブラリかどうかなんてどうでもいいだろ。

標準に入れたくなるほど有用なら標準に入ろうと入るまいとそれなりに保守されることが期待できるし。
0407デフォルトの名無しさん
垢版 |
2022/12/30(金) 16:09:16.18ID:6OjX9rIH
標準ライブラリが充実してるということはそれだけ本体の運営者に負荷がかかるということだからね
0408デフォルトの名無しさん
垢版 |
2022/12/30(金) 16:21:39.09ID:ZhOqacm+
技術評論社がステマに来るとスレが死ぬのでは。
0409デフォルトの名無しさん
垢版 |
2022/12/30(金) 16:33:03.00ID:2tr5E+qB
let mut vec: Vec<usize>で
vec.iter_mut().map(|x| *x += 1)
みたいなことはできないの?

こんなふうにしないとだめ?
let mut vec:Vec<usize> = vec.iter_mut().map(|x| x + 1).collect();
0410デフォルトの名無しさん
垢版 |
2022/12/30(金) 17:08:17.01ID:G+QOCOIZ
会社でやってるとサードパーティのライブラリはライセンスだったり許可もらったりするのが面倒
0413デフォルトの名無しさん
垢版 |
2022/12/30(金) 18:21:35.53ID:IZzoTqaS
>>409
キミのやりたいことは多分こう
let mut v: Vec<usize> = vec!(1,2,3);
v.iter_mut().for_each(|x| *x += 1);
println!("{:?}", v); // [2, 3, 4]
0415デフォルトの名無しさん
垢版 |
2022/12/30(金) 18:44:56.94ID:tjQ0cwgL
おまえだけワッチョイスレたてて移住すりゃいいだろ
考えを押し付けるなカス
0417デフォルトの名無しさん
垢版 |
2022/12/30(金) 19:44:01.82ID:cZGr+8cE
C++は経験あるけどRustはまだ触ったことない
RustってC++より簡単?
言語仕様の超複雑なC++よりは使いやすそうに見える
0422デフォルトの名無しさん
垢版 |
2022/12/30(金) 21:02:28.22ID:d34Nf27q
汚コーダー来てるね
0424デフォルトの名無しさん
垢版 |
2022/12/30(金) 21:45:21.02ID:2tr5E+qB
>>413
本当にありがとう
for_eachしらんかった

let mut vec: Vec<Vec<usize>> = vec![vec![1, 2, 3]; 3];
vec.iter_mut().for_each(|x| x.iter_mut().for_each(|x| *x += 1));

for i in vec.iter() {
 println!("{:?}", i);
}

//[2, 3, 4]
//[2, 3, 4]
//[2, 3, 4]


実現できて助かるヽ(´ー`)ノ
0426デフォルトの名無しさん
垢版 |
2022/12/30(金) 23:47:28.62ID:uMR1T0wQ
>>424
forループじゃなくイテレータのメソッドつかいたいならinto_iterでmap
for_eachでmutateするのはbad practiceなのでやめようね
0427デフォルトの名無しさん
垢版 |
2022/12/31(土) 00:22:06.01ID:HrwxNmcH
>>417
c++より簡単と言えば簡単。
言語仕様をちゃんと確かめようとするとc++みたいに生の書き方ができない分、大変かもね。
0433デフォルトの名無しさん
垢版 |
2022/12/31(土) 17:14:26.57ID:TeLjBPNY
面白いかはともかく、スレのレベルには合ってる。
0434デフォルトの名無しさん
垢版 |
2022/12/31(土) 18:36:57.94ID:iB0yGVB2
なんでお前らRustなんてやってるの?C#の.NETが圧倒的に使いやすいのに
お前ら損してるよ
0437デフォルトの名無しさん
垢版 |
2022/12/31(土) 19:38:51.94ID:YTLEGwqL
「なんでRustなんて使うの?」という考えの人がわざわざRustスレに書き込もうと思うのが謎
0440デフォルトの名無しさん
垢版 |
2022/12/31(土) 21:08:24.99ID:UJsKk56g
>>437
自分がやってきたことに疑念が生じてるんだよ
ひょっとしてC#なんかよりRustやったほうがいいんじゃないか?って
そして言ってもらいたんだよ
C#なんてやめちまえって
どこにでもいるだろ?迷ったとき背中押してもらいにくるやつw
0441デフォルトの名無しさん
垢版 |
2022/12/31(土) 21:10:04.00ID:TeLjBPNY
キラーアプリの前にセミナーや資格が出てくるのは、売人の世界。
役に立たんよ。
0442デフォルトの名無しさん
垢版 |
2022/12/31(土) 21:26:12.45ID:YncayN1e
> どこにでもいるだろ?迷ったとき背中押してもらいにくるやつw
みたいなこと言う奴が
> お前ら損してるよ
なんて言うわけないだろ、バカすぎるw
0443デフォルトの名無しさん
垢版 |
2022/12/31(土) 21:35:29.14ID:TeLjBPNY
誰も使っていないのに、みんながお勧めする言語。
発売前なのに、みんなが絶賛する書籍。

ダメでしょコレ。
0444デフォルトの名無しさん
垢版 |
2022/12/31(土) 21:37:02.33ID:TeLjBPNY
ステマ界のエース。
0449デフォルトの名無しさん
垢版 |
2023/01/01(日) 11:45:43.47ID:BvdJus9d
今のご時世、Polyglotなプログラマが求められてるというか、常識みたいな扱いになってるね
0450デフォルトの名無しさん
垢版 |
2023/01/01(日) 11:48:47.94ID:BKjRVrWQ
C#ってC++の代替にはなるけどCの代替にはならない
RustはそのCの代替と成りうる言語でなので
恐らく逆にC++やC#の代替にはあんまり向かないんじゃないかと思う
0452デフォルトの名無しさん
垢版 |
2023/01/01(日) 13:40:21.19ID:Vy1QsnRD
>>449
そりゃそうやろ
0456デフォルトの名無しさん
垢版 |
2023/01/01(日) 14:48:36.24ID:VT3ij45D
とはいえ、WinformやWPF使わないならネイティブコンパイルできるけどね。
.netランタイムない環境でも普通に実行ファイルあるいはネイティブdllにみたてたものして動作する
0460デフォルトの名無しさん
垢版 |
2023/01/01(日) 14:58:29.83ID:+lXIx03F
c#ってフロント組むための言語だよね?rustやc#とは用途が違うのでとっとと出てってください
0462デフォルトの名無しさん
垢版 |
2023/01/01(日) 15:14:11.17ID:qFCwFs0i
>>458-459
C++はゴミだと確信してたけどRustもゴミってことか
教えてくれてありがとう
0465デフォルトの名無しさん
垢版 |
2023/01/01(日) 15:27:38.23ID:BKjRVrWQ
大体C言語を碌に触らずにC++をCの上位互換言語を思ってるヤツがホント多い

Cでは**pは必須だけどC++ではそもそもC++で拡張された機能によってそもそも**pを使うべきじゃないし
物理アドレスを触るような場面ではそもそもC++を使うべきじゃない

そしてCの互換言語という点を差っ引いたらC++じゃなきゃいけないって場面は殆どない
0467デフォルトの名無しさん
垢版 |
2023/01/01(日) 15:35:56.13ID:MnJksM0+
C言語の開発資産しかない場合、次は上位互換であるC++に行くのが常道になるのが
自然の流れ

しかもRustは新興言語で実績もないから採用は不可
0468デフォルトの名無しさん
垢版 |
2023/01/01(日) 15:55:05.94ID:g9Gfx6Qg
>>465
なんでCもC++もよく知らんのに知ったふうな口きくん?
君はプログラマですらないやろ? ただのド素人やろ?
0469デフォルトの名無しさん
垢版 |
2023/01/01(日) 15:59:31.54ID:c0wTdgdc
そりゃ技術評論社がLinux板から情弱連れてくるからだろう。
0470デフォルトの名無しさん
垢版 |
2023/01/01(日) 16:00:58.69ID:c0wTdgdc
Haskell本が売れなくなったからRust売り込むことにしたんだろ。
迷惑な話よ。
0471デフォルトの名無しさん
垢版 |
2023/01/01(日) 18:13:51.42ID:m2hNSU/p
C++の話になると途端に饒舌になる老害さん達
スレ間違ってますよww
0473デフォルトの名無しさん
垢版 |
2023/01/01(日) 19:11:12.15ID:LWg4u5cF
>>450
>RustはそのCの代替と成りうる言語でなので
個人的にはそうは思えないけどな。
Rustは低レベルが扱いにくいから。
0474デフォルトの名無しさん
垢版 |
2023/01/01(日) 19:17:21.93ID:LWg4u5cF
>>473
[補足]
Cは、どういうコードが生成されるかとても分かり易いので安心感が有る。
それに対し、
(Rustは結構頑張って学ぼうとしたが)、Rustは抽象レベルでの意味論は書いて
あっても、最終的にどういうコードが生成されるか分からない(仕様が明確には
書いて無い)事が多い。
0475デフォルトの名無しさん
垢版 |
2023/01/01(日) 19:20:49.98ID:LWg4u5cF
>>474
[補足]
Rustの場合、意味論は書いてあるのでどういう結果になるかは一応は分かるが、
結果的に何が行なわれるかは分かっても、どういうコードが生成されるかは
分からない事が多かった。それが分からないと高速化は難しい。
Cだと命令数やクロック数を数えることが出来たがRustでは出来ないと思った。
例えば、引数を渡す時に何回コピー動作が行なわれるかCやC++では分かるのに
対し、Rustでは分からないことが有るように思えた。
論理や意味は分かるが、途中にどういう中間工程が入るか分からないのだ。
0476デフォルトの名無しさん
垢版 |
2023/01/01(日) 19:24:18.90ID:LWg4u5cF
>>475;
Cではなくて、C++でも、
TYPE a = 5;
f(a);
と書いたとき、どういう動作がおきるか多くの場合はよく分かって、マシン語で
どういうコードになるかも分かる。コンストラクタがどこで呼び出されるか、
どこでコピー演算やムーブ演算が起きるのか、一応は分かる。
ところが、Rustでは分からない事が有った。
それでは問題を生じることが有る気がした。
0477デフォルトの名無しさん
垢版 |
2023/01/01(日) 19:32:28.31ID:J0mHLh9j
JScriptで書いていた支援ツールをRustで書き直そうかなぁ
そうすればwine/proton環境でも個別対応しなくて済むようになるし
0481デフォルトの名無しさん
垢版 |
2023/01/01(日) 19:39:07.32ID:LWg4u5cF
組み込みだと、「アドレスへの write アクセスが1回でなくてはならない」
場合がある。アクセスの回数によってハードウェアの動作が変わってくるから。
例えば、あるアドレスに 一回アクセスすると LED が点灯し、もう一回アクセス
すると LED が消灯する、などという動作がある場合がある。
場合によっては、音の PCM の振幅や、モーターの速度調整にそれを利用する可能性があるなど。
この場合、Rustではメモリーアクセスの回数が不明確になって、上手くプログラミングできない
かも。
0482デフォルトの名無しさん
垢版 |
2023/01/01(日) 19:41:37.18ID:LWg4u5cF
組み込みでは、
「最適化して後から後れてアクセスする」
「アクセスが時と場合によって省略される」
などが有っては駄目な場合がある。
Cだと結構上手く行く。
0483デフォルトの名無しさん
垢版 |
2023/01/01(日) 19:58:47.06ID:v/m/qtfA
2年くらい前はHaskellが世界を席巻してたからな。
0484デフォルトの名無しさん
垢版 |
2023/01/01(日) 20:06:13.34ID:ps54Dm7d
>>482
> Cだと結構上手く行く。
アホの子なのかな?w
そもそも処理系の話だからCとかRustの話じゃないだろ
0485デフォルトの名無しさん
垢版 |
2023/01/01(日) 20:12:23.58ID:LWg4u5cF
>>484
でも、あなたにもC#で組み込みとか、Rubyで組み込みとかやっても難しいのは分かるよね。
それと似たようなことがRustでも起き得そうな気がするんだよ。
C#とかRubyでも、一応、atomicアクセス的な何かは用意されてるかも知れないけど、
そういう問題ではないおきるだろう。
0486デフォルトの名無しさん
垢版 |
2023/01/01(日) 20:19:06.23ID:t/WFYlqt
最適化に左右されたくないならちゃんとwrite_volatileとか使えばいいだけの話
memory mapped I/Oの制御なんて当然想定されてるよ
0487デフォルトの名無しさん
垢版 |
2023/01/01(日) 20:21:02.90ID:v/m/qtfA
MCUがRustを考慮していないから無理。
それだけの話。
0489デフォルトの名無しさん
垢版 |
2023/01/01(日) 20:25:48.30ID:J0mHLh9j
C言語仕様はメモリアクセスの順序を保証しない。動いているのは
ただの偶然だしそのようなコードは仕様外の糞コードでFA
0492デフォルトの名無しさん
垢版 |
2023/01/01(日) 20:35:45.62ID:v/m/qtfA
>>491
ステマ界に決まってるだろ。
0493デフォルトの名無しさん
垢版 |
2023/01/01(日) 20:50:47.69ID:k1WVbd3b
しかしCでいいと思ってるならわざわざこんなスレにトンチンカンな書き込みせずに黙って使ってればいいのに
Rustに置き換わって仕事なくなるかも的な心配で攻撃したいとかだろうか
そんな心配しなくても組み込みのCの仕事は当分なくならんよ
0494デフォルトの名無しさん
垢版 |
2023/01/01(日) 20:58:20.82ID:v/m/qtfA
技術評論社が先に他言語スレへ侵攻を開始した。
0495デフォルトの名無しさん
垢版 |
2023/01/01(日) 21:04:05.03ID:v/m/qtfA
既に5chあるいは国民と技術評論社の戦争に発展している。
0498デフォルトの名無しさん
垢版 |
2023/01/01(日) 22:57:51.39ID:J0mHLh9j
組み込みでもRustを使えるならRust使うわ。Cは実装依存が多すぎる
正しいコードを書こうとしたらコーディングコストはRustより高くつく
0499デフォルトの名無しさん
垢版 |
2023/01/01(日) 23:19:31.51ID:v/m/qtfA
実装に依存しない組み込みとか夢のようなことを言ってるな。
0500デフォルトの名無しさん
垢版 |
2023/01/01(日) 23:20:05.95ID:v/m/qtfA
さすが技術評論社。
0501デフォルトの名無しさん
垢版 |
2023/01/01(日) 23:20:38.81ID:hnV+fUB+
>>498
組み込みは、メモリー関連エラーなんて起きないプログラムも多い。
というか保護モードも使ってないことも多いのでそれ以前の問題。
Lチカなんて、Rust不要。
0503デフォルトの名無しさん
垢版 |
2023/01/01(日) 23:25:26.99ID:O4Ho+Fsi
技術評論社からRustの本が出るだけであって技術評論社自体はRustと関係ない
いい加減に技術評論社発狂ガイジ出てけよ
0504デフォルトの名無しさん
垢版 |
2023/01/01(日) 23:26:26.18ID:hnV+fUB+
>>501
[補足]
組み込みの世界は「メモリー関連エラー」なんて言葉で語れるほど生易しいものではない。
一つ間違えればハードウェアがICが爆発したりモーターで人が死ぬような世界だったりする。
つまり、慎重に組む。
電線のつなぎ方を間違えれば部品が故障するが、それと同様にプログラムの間違いは
暴走や故障の現象になる。
だから、メモリー関連エラーで苦しむ程度の頭脳しか無いような人は組み込みに向いてない。
0505デフォルトの名無しさん
垢版 |
2023/01/01(日) 23:29:45.04ID:v/m/qtfA
>>503
ステマしてるのが技術評論社では?
0506デフォルトの名無しさん
垢版 |
2023/01/01(日) 23:34:52.14ID:O4Ho+Fsi
>>505
おまえが技術評論社とかいうのをステマしなければいいだけ
RustスレでRustをステマすることのなにがいけないんだ?
0508デフォルトの名無しさん
垢版 |
2023/01/01(日) 23:40:06.46ID:v/m/qtfA
いや、もうダメだ。
技術評論社は、やりすぎた。
0510デフォルトの名無しさん
垢版 |
2023/01/01(日) 23:42:13.87ID:J0mHLh9j
ttp://elm-chan.org/fsw/ff/00index_e.html
有名なマイコンや処理系で利用可能な高ポータビリティのCライブラリだが
このレベルのものを実際に書こうとしたらかなり高コスト
Rustのほうが楽かつ確実に動作する
0511デフォルトの名無しさん
垢版 |
2023/01/01(日) 23:43:58.63ID:v/m/qtfA
MCUを替えたら、回路からすべて変わるのが当たり前なんだよ。
見苦しいな。
0512デフォルトの名無しさん
垢版 |
2023/01/01(日) 23:59:26.70ID:J0mHLh9j
組み込みでポータビリティを軽視している奴は昨今のマイコン不足で真っ先に退場するクチだろ
同じチップどころか同メーカーの互換チップすら調達出来ずに、メーカーから変えざるを得ない
こともあるご時世に、特定のハードと特定の処理系と特定のバージョンでなければダメみたいな
前時代的な考えでは話にならない
0513デフォルトの名無しさん
垢版 |
2023/01/02(月) 00:00:24.79ID:/m9PT5PE
MCUメーカーがRustを考慮していない。
これが全て。
0514デフォルトの名無しさん
垢版 |
2023/01/02(月) 00:01:23.42ID:/m9PT5PE
>>512
そうそう。
だから組み込みでRustを使ったらダメ。
C/C++一択。
0515デフォルトの名無しさん
垢版 |
2023/01/02(月) 00:01:42.41ID:7RCL5EAR
>>510
現実にC言語版があるんだから、C言語の方が便利だと思うのだが。
現時点でRust版は無いわけで。
0516デフォルトの名無しさん
垢版 |
2023/01/02(月) 00:04:21.03ID:7RCL5EAR
>>512
そんな簡単なもんじゃないと思うが。
そもそも論として、ピン番号が変わっただけでも、慎重に設計し直す
必要が出てくる。接続を間違えると大変なことになる。
現実にICが破裂したことがあり、目に入っていたら失明してた。
容易に全く別のICに交換することは出来ない。
0517デフォルトの名無しさん
垢版 |
2023/01/02(月) 00:08:01.28ID:/m9PT5PE
そもそも、Rust推してる方がRustを使ったことなくて、否定的な方がRustを使い込んでる。
技術評論社の呼びかけでLinux板から来た連中はプログラミング自体したことが無いので、Rustは組み込みの互換性がCより高いとか言い出す。
0518デフォルトの名無しさん
垢版 |
2023/01/02(月) 00:19:21.42ID:7RCL5EAR
>>514
そういえば、「C言語ライクな言語」をサポートしているだけで、gccやclangに
対応して無いマイコンもあるから、Rustなんか到底無理なマイコンも多いな。
0519デフォルトの名無しさん
垢版 |
2023/01/02(月) 00:41:37.72ID:U4Kt6Q5r
組み込みやったことないけどメーカーサポートなんかいるんかね
ABIだけ指定してxargoでクロスコンパイルして終わりじゃないんか?
0522デフォルトの名無しさん
垢版 |
2023/01/02(月) 01:01:37.89ID:YOUl3ux+
素人に毛が生えた程度のコーダーかエアプが知ったか煽りしているだけでしょ
0526デフォルトの名無しさん
垢版 |
2023/01/02(月) 01:06:42.39ID:/m9PT5PE
わざわざRustを使う意味が無い。
0529デフォルトの名無しさん
垢版 |
2023/01/02(月) 01:08:10.37ID:7RCL5EAR
そもそも、マイコンで、Rustがなくしたとする「メモリーエラー」で悩むことが無い。
0530デフォルトの名無しさん
垢版 |
2023/01/02(月) 01:09:08.65ID:7RCL5EAR
俺はずっとCやC++でプログラムしてきたが、メモリーエラーで悩んだことは
ほとんどない。
うそだと思うかもしれないが本当。
しかも、かなり複雑なシステムプログラムをしてきた。
0531デフォルトの名無しさん
垢版 |
2023/01/02(月) 01:10:15.59ID:/m9PT5PE
ずっとやってるからでは?
0533デフォルトの名無しさん
垢版 |
2023/01/02(月) 01:10:35.32ID:YOUl3ux+
ARMやRISC-Vはバックエンドあるし処理内容も高度化しがちで
Rustの高速性と安全性のメリットを享受しやすい

>>523-524
おじいちゃん。その辺はとっくに主力じゃないんですよw
0534デフォルトの名無しさん
垢版 |
2023/01/02(月) 01:11:00.49ID:7RCL5EAR
つまり、CやC++でメモリーエラーに悩まされて使いこなせない人は、
そもそも論として俺の脳のレベルにまで全く達して無い。
つまり、生まれつき俺はオマエラより遥かに頭がいいから、Rustを使う必要性が無い。
それだけの話。
0535デフォルトの名無しさん
垢版 |
2023/01/02(月) 01:12:02.90ID:7RCL5EAR
>>533
俺がお前より年食っていたとしても、生まれつきお前の脳の1000万倍優秀だから、
関係無い。
0538デフォルトの名無しさん
垢版 |
2023/01/02(月) 01:15:26.78ID:f/84eqys
>>530
ちゃんとしたコーディング規約を遵守してコード書いてればそうそうメモリエラーにはならんはな
0539デフォルトの名無しさん
垢版 |
2023/01/02(月) 01:18:38.28ID:wpREwZAU
そもそもRustはメモリ管理を強制するための規約的な言語だし笑
Cに制約をつけただけのドM言語
0540デフォルトの名無しさん
垢版 |
2023/01/02(月) 01:19:02.22ID:/m9PT5PE
ステマは許可できんな。
0543デフォルトの名無しさん
垢版 |
2023/01/02(月) 01:24:30.62ID:l4/Jezsd
Rustは頭のいい人が頭のわるい人と一緒に仕事するために使うものだと思ってる
頭のわるい人にはC/C++よりRustを使わせたほうがマシなコードを返してくれる
それだけでもRustをプロジェクトに採用する価値が出てくる
0545デフォルトの名無しさん
垢版 |
2023/01/02(月) 01:27:25.18ID:f/84eqys
>>543
いや、頭悪い人を間引いて同じ土俵に上げない為の言語だと思うが
敷居を下げ過ぎてJavaとか悲惨な事になってるじゃん
0551デフォルトの名無しさん
垢版 |
2023/01/02(月) 01:34:03.66ID:YOUl3ux+
PICやH8を引き合いに出している時点でプログラムの想定が違いすぎる
今どきの32bitマイコンのリソースはその辺と比べて1桁以上多い
処理するデータもマルチメディアデータだったりネットワークパケット等の
不安全なデータまで扱わなくちゃならない
もはや初期のWindowsPCに近い内容であり、注意すれば問題ないなど
全く無意味であることはセキュリティ事故が起きまくった歴史が証明している
0552デフォルトの名無しさん
垢版 |
2023/01/02(月) 01:34:11.63ID:7RCL5EAR
>>545
そもそも頭がよければ滅多にメモリーエラーに遭遇しないからRustを使う必要性
が無いし、Rustは記述量も多いし回りくどいので生産性が低いし、使えない
アルゴリズムも多い。
Rustの存在意義は、使えるアルゴリズムを制限して、記述も回りくどくして
コンパイラを頼りにしてやっと安全なプログラムを書けるような、凡人プログラマ
が生まれつき頭の良いプログラマに少し近付くためにある。
0554デフォルトの名無しさん
垢版 |
2023/01/02(月) 01:35:13.17ID:f/84eqys
>>550
変な大企業が馬鹿みたいに人員投入して100人体制とかもっととかで開発やるもんだから出来上がったゴミがカオスコードになってるとかそういう話
0555デフォルトの名無しさん
垢版 |
2023/01/02(月) 01:37:36.65ID:l4/Jezsd
>>554
カオスコードでもGCでメモリリーク最小限で動くならいいのでは?
GC稼働を許す製品の話をしてるつもりはなかった
0556デフォルトの名無しさん
垢版 |
2023/01/02(月) 01:39:14.49ID:7RCL5EAR
>>554
GAFAMみたいな大企業は技術は無くても株価だけ高騰するから、金に任せて
大量の人員だけを頼りに出来るから、数百人がかりでバグだらけの使いにくい
巨大サイズのプログラムを作ってるね。
技術は無いが人だけ入る。凡人プログラマを大量に使って大量のCPUパワーを
使ってPC-9801時代のJG程度のOfficeを作って悦に浸ってる。
0559デフォルトの名無しさん
垢版 |
2023/01/02(月) 01:43:53.33ID:AzjsiFbw
ガベージコレクション使っていいならそら楽ちんですわ
どんな汚コードでも動けばいいんだから

ガベージコレクション無しだと例外処理の例外処理の例外処理を跨いだりして有り得ないところにメモリリーク起きてるなんてことがザラ、どんなに頭よくても絶対に気づけない
0560デフォルトの名無しさん
垢版 |
2023/01/02(月) 01:45:36.33ID:0OBugHkq
気をつけて運転していれば事故は起きないんだから安全運転なんか必要ない
事故るやつは無能だけど俺は違う

こうですかわかりません
0561デフォルトの名無しさん
垢版 |
2023/01/02(月) 01:48:35.58ID:7RCL5EAR
>>560
車の運転は一発勝負で失敗は一瞬にして起こるしテストすることも出来ない。
それに対して、プログラミングは事前にテストできる。
特にユニットテスト、モジュール別開発という手法を使えばバグはほとんど消せる。
だから十分にバグの無い安全なプログラムが作れる。
0564デフォルトの名無しさん
垢版 |
2023/01/02(月) 01:54:24.45ID:7RCL5EAR
>>562
Rustは、「メモリー関連エラー」を防げるだけで、バグはいくらでも入る。
Rustも、下手な人がプログラムするとバグは100個でも入るし、不安定で
(その人の頭脳では)エラー箇所が見つけられないバグも入り得る。
0566デフォルトの名無しさん
垢版 |
2023/01/02(月) 02:08:35.19ID:iBEz6sTU
>>545
間引きまくってたら募集が集まらないし賃金も上がる
質の悪い土方人間をも上手く使っていかなきゃならない
質の悪い土方の書いたコードでもrustなら厄介なメモリバグ無く論理部分のフィードバック、デバッグに集中できるというメリットがある
0567デフォルトの名無しさん
垢版 |
2023/01/02(月) 02:20:43.43ID:/m9PT5PE
またステマしてるのか。
0568デフォルトの名無しさん
垢版 |
2023/01/02(月) 08:04:20.77ID:5vPX8Xay
RustはCの置き換えくらいにしかならん
質の悪いPGが入り込まない分野じゃねえかなあ・・・
0569デフォルトの名無しさん
垢版 |
2023/01/02(月) 08:33:37.75ID:nNAGgWWg
だからWebでRustやってる奴は馬鹿
Cとpthreadの経験もないやつはRustやらない方がいいよ
0570デフォルトの名無しさん
垢版 |
2023/01/02(月) 09:51:22.76ID:0wpgrwz2
>>561
Rustでモジュール別開発、ユニットテストするのが一番いいんじゃね?


てかステマステマ言ってるやつ居るけど出版社がプログラミング言語のプロパガンダしてなんの得になるんだよドメインが違うやろ
出版社なら勝確になった言語の本を出すだけでいいはず
ステマで特定言語を覇権に押し上げても他社が解説本出すのを止められないから独占できる利益とかどこにもない
0573デフォルトの名無しさん
垢版 |
2023/01/02(月) 12:32:43.21ID:4sGLZD36
>>543これだな
頭の程度の低い人なら安く雇えるから開発費を抑えられる
c/c++をまともに使えるやつの人件費は高すぎて困る
0574デフォルトの名無しさん
垢版 |
2023/01/02(月) 12:41:13.29ID:/FZtEsII
まあ1Mにも満たない規模の組み込みでrustはいらんわな。
数GBかつメモリ使用量を気にするって領域以外はほぼ必要ない。
0579デフォルトの名無しさん
垢版 |
2023/01/02(月) 13:37:29.21ID:68tUcpM+
>>576
そらC#に決まってる
0580デフォルトの名無しさん
垢版 |
2023/01/02(月) 13:42:25.25ID:hMsVB3IX
>>568
ところが、Rustの安全性は大規模プログラムで無いと真価が発揮できないから、
帯に短し襷に長し状態。
Cは小規模プログラム向けで、大規模プログラムはC++だから。
0583デフォルトの名無しさん
垢版 |
2023/01/02(月) 14:29:37.31ID:hMsVB3IX
>>568
組み込みって分野は、基本的に微分積分やベクトル、論理回路、複素数などが
普通に出てくる世界だから、頭脳レベルが一般プログラマより元々高い。
だからもともとメモリーエラーで苦しんだりする人が少ない。
なので、Rustの出番が無い。
0584デフォルトの名無しさん
垢版 |
2023/01/02(月) 14:36:17.90ID:FoyI26k+
>>583
その一般レベルプログラマと一緒に仕事しなきゃいけないときには頭脳の高い人も仕方なくRustを使うのでは?
社会活動ってマジで頭脳の高い人が損する世界だわ、一般レベルプログラマは消えてもらって頭脳の高い人集団でCだけ使わせてほしいわ
0585デフォルトの名無しさん
垢版 |
2023/01/02(月) 14:38:59.98ID:FoyI26k+
好きでRustを使ってる人なんてこの世に居ないと思うよ
みんな納品先や上からの命令でイヤイヤRustを使ってる
0586デフォルトの名無しさん
垢版 |
2023/01/02(月) 14:39:14.35ID:J6556tKT
フロントの意味知らないやつとか
バックエンドの意味知らないやつとか
ホントなんなんこのスレw
0587デフォルトの名無しさん
垢版 |
2023/01/02(月) 14:47:05.55ID:8T2JCaCm
>>583
スマホに使うチップのコードを書いてる知人が何人かいるが頭脳レベルが高いとか全くないわ
Fラン文系新卒で3ヶ月の新卒研修後に客先派遣されるような末端プログラマーに比べたらそりゃ頭脳レベルwは高いがな
0588デフォルトの名無しさん
垢版 |
2023/01/02(月) 14:47:48.26ID:rNCwFI/s
rustはやってるとイライラするから私用ではぜっっっっったいに使わないw
rust大好きステマするやつは頭おかしい
0589デフォルトの名無しさん
垢版 |
2023/01/02(月) 14:52:40.32ID:2CTZhPr+
Rustはマイクロソフトが採用したり
Linuxのデバイスドラバで採用されたり
トヨタ自動車の組み込みソフトで採用されたり
特殊用途ではこれから発展していくけど
さらに一般的になるには 最低でも10年くらいかかるといっていだろう
0590デフォルトの名無しさん
垢版 |
2023/01/02(月) 14:56:42.31ID:VUVgrbrW
c++やjavaとかは人間様のための言語だけど、
rustはコンピュータ様のための言語だからね
人間がコンピュータ様の奴隷になって制約されながら設計する言語だからrust好きの人間はドM確定
0591デフォルトの名無しさん
垢版 |
2023/01/02(月) 14:59:59.54ID:VUVgrbrW
>>589
一般的になってほしくねえなあ
0593デフォルトの名無しさん
垢版 |
2023/01/02(月) 15:09:37.54ID:hMsVB3IX
>>589
本当の事は知らんが、PerlやJava、Rubyの本が本屋に沢山並んでいた頃には、
既にそれらの言語はよく使われていたのに対し、Rustは本はその状態になったのに
余り使われて無い現実がある。知名度が高いのに使われて無い。
0595デフォルトの名無しさん
垢版 |
2023/01/02(月) 19:09:09.75ID:YhyxjXQU
Rustの本くらい近所の町図書館にすら置いてるわ
0599デフォルトの名無しさん
垢版 |
2023/01/02(月) 19:34:02.10ID:l4/Jezsd
今日は初詣に行ってきた
Rustさん普及しないで下さいと神頼みしてきた
0600デフォルトの名無しさん
垢版 |
2023/01/02(月) 19:39:19.94ID:Qsv7PpLz
>>599
お前には無意味な願いだな
お前にRustの仕事が来るわけ無いもんなww
0602デフォルトの名無しさん
垢版 |
2023/01/02(月) 19:42:30.75ID:l4/Jezsd
>>600
それな
だけどタワマンをローンで買ったばかりだから簡単に辞められない😭
来週からまたRustやらなあかん😭
0603デフォルトの名無しさん
垢版 |
2023/01/02(月) 19:59:34.00ID:VzocPQJy
>>586
ガイジばっかだからしょうがない
0605デフォルトの名無しさん
垢版 |
2023/01/02(月) 20:30:32.37ID:XEaXux8L
俺は実用にしてるのはC#で、Rustやら情報科学やらは教養のための修行だと思って勉強してる
0607デフォルトの名無しさん
垢版 |
2023/01/02(月) 21:02:55.55ID:kxn3UFF9
Cは実用になっちゃうからな。
修行に向いてない。
0608デフォルトの名無しさん
垢版 |
2023/01/02(月) 21:11:43.92ID:f/84eqys
Rustでプログラミング始めるヤツなんておらんやろ
最低5言語くらいマスターしてる人が道楽として試すのから入るのが殆どじゃない?
0609デフォルトの名無しさん
垢版 |
2023/01/02(月) 21:31:15.99ID:kxn3UFF9
Rustで生涯修行してればよい。
0610デフォルトの名無しさん
垢版 |
2023/01/02(月) 21:42:04.71ID:V6kLsOzd
今北なんだが、メモリー関連バグを潰せるだけでRust採用の価値があると思うけどそうじゃないんか
メモリー管理ミスが6割と聞いた
0612デフォルトの名無しさん
垢版 |
2023/01/02(月) 22:10:50.96ID:QyytlXeP
>>598
紀伊國屋てw
ジュンク堂と双璧をなすラスボスですやん
0613デフォルトの名無しさん
垢版 |
2023/01/02(月) 22:12:22.06ID:tEANpl9g
>>610
何事も良い面と悪い面があるので
自分のユースケースに当てはめてトレードオフを判断すべき
0614デフォルトの名無しさん
垢版 |
2023/01/02(月) 22:14:14.00ID:Pa+Nwx1c
>>605
C#やってるならSwift勉強するといいぞ
教養とは違ってC#の力が向上する
0616デフォルトの名無しさん
垢版 |
2023/01/02(月) 22:34:00.16ID:+w7X3Pyb
ファイルシステムのパス回りをいい感じに抽象化してくれる(もしくは整形してくれる)クレートとかない?
env!("APPDATA")→"C:\Users\・・・\AppData\Roaming"
current_exe()→"\\?\C:\foo\・・・"
違うパス形式が入り混じるのはトラブルの元
0619デフォルトの名無しさん
垢版 |
2023/01/03(火) 00:03:36.64ID:z3nhExEu
>>610
頭脳の高い人はそもそもメモリ関バグを引き起こさないからRustである意味がない
0620デフォルトの名無しさん
垢版 |
2023/01/03(火) 00:22:12.16ID:yTVwCgmJ
>>619 人間は間違う生き物だぞ
0621デフォルトの名無しさん
垢版 |
2023/01/03(火) 00:35:48.41ID:lG7LTjUD
>>620
頭脳明晰な人は
・論理を間違う頻度が極端に低い。
・テストの仕方が合理的でシステマチック。
・問題が発生しても原因箇所を突き止めるのが上手い。
0622デフォルトの名無しさん
垢版 |
2023/01/03(火) 00:56:11.95ID:iu5XrAAr
頭脳明晰な人は人間の限界をよく理解している
注意資源を無駄なことに使わないためにどうすればいいかを考える

頭の悪い人にはこれが理解できない
0624デフォルトの名無しさん
垢版 |
2023/01/03(火) 01:17:35.62ID:FM7p8eEf
架空の「何でも完璧にできるプログラマー」などを頭の中で作り上げたところで何の意味もない
実際にそういう人だけで回せている組織を教えてくれ
0625デフォルトの名無しさん
垢版 |
2023/01/03(火) 01:24:27.20ID:EuUAQyXR
>>621 そりゃすげえや
天才しか入れない会社であるGoogleで作られたソフトウェアには脆弱性が存在しないことになるんだからな
0627デフォルトの名無しさん
垢版 |
2023/01/03(火) 03:16:16.17ID:KtR68cDI
>天才しか入れない会社であるGoogle
夢見過ぎw
算数100点オジと同じ発想だぞ
0628デフォルトの名無しさん
垢版 |
2023/01/03(火) 03:21:18.09ID:4wglqwE1
>>623
最高に頭悪そうな発言だな
小学生1年生かよ
0629デフォルトの名無しさん
垢版 |
2023/01/03(火) 03:59:57.20ID:FAR4SCa0
>>618
サンクス。それを通すとUNCライクになるんか
リファレンスを見るとこの仕様が確定しているわけではなく
互換性の面でUNCライクのパスが望ましいのかという問題も
なんとなくだけど互換性はドライブレタースタートのほうが高そう
というかググってもパス情報の推奨される扱いとかよくわからんな
PathBufが返ることが多いためかmutをつけてる例が多く見えるけど
加工が終わった後もmutのままにしておくのが望ましいとも思えないし
0631デフォルトの名無しさん
垢版 |
2023/01/03(火) 08:12:40.12ID:qI8JCo5P
○○バリア!
○○バリア貫通ビーム!
○○バリア貫通ビーム完封バリア!
まじで小学生と同じやな

グーグルの社員ですらメモリ管理をミスる
それより賢い天才が居ればそいつはCで良いよ、でも俺はそうじゃないのでRustを学んでるよ
ある意味メモリ管理を絶対にミスらない天才がコンパイラ
0632デフォルトの名無しさん
垢版 |
2023/01/03(火) 08:30:40.46ID:iKNX9wDb
>>629
mut が気になるならシャドーイングで消せばいいよ
let mut a = …

let a = a; // これ以降変更不可
0633デフォルトの名無しさん
垢版 |
2023/01/03(火) 10:24:54.22ID:Wjw3Ta6M
>>629
dunce crateのほうがいいかもね
ていうか本音はcurrent_exe()が完全修飾パス返すのをやめてほしいところ
0639デフォルトの名無しさん
垢版 |
2023/01/03(火) 16:20:19.42ID:N8ek48Mq
>>638
コンピュータなんだから当たり前では?
0640デフォルトの名無しさん
垢版 |
2023/01/03(火) 17:21:00.77ID:FAR4SCa0
>>632
となるとパスを整形する関数を用意して切り離すべきか

>>633
なかなかよさそうですね。使ってみます
>There are also Windows NT UNC paths (\\?\C:\foo), which are more robust and with fewer gotchas
>but are rarely supported by Windows programs. Even Microsoft's own!
思うことはみんな同じなんやなって
0641デフォルトの名無しさん
垢版 |
2023/01/03(火) 18:42:10.36ID:yYGSV1g6
技術評論社の呪い。
0642デフォルトの名無しさん
垢版 |
2023/01/03(火) 18:46:23.16ID:EF4+Zmp+
技評技評言ってるヤツがしつこいが正直Rust流行ったからって技評のあの構成じゃ売れんだろ
0643デフォルトの名無しさん
垢版 |
2023/01/03(火) 18:49:28.25ID:FAR4SCa0
canonicalizeって存在しないパス情報を扱えない?のか(fsもdeucnも)
let path = dunce::canonicalize(Path::new(".\\foo")).unwrap();

は.\fooが存在しない場合Errが返ってパニックする
こうなるとパス情報は他の処理系と同じく文字列で保持して
使用するところでPathに変換するのがベターなのかな
0644デフォルトの名無しさん
垢版 |
2023/01/03(火) 18:57:54.40ID:yYGSV1g6
>>643
それ、実はかなり深い問題だぞ。
特に、環境依存のないライブラリではな。
Rustだから安全ですとか言ってないで、経験豊富なC++スレにでも聞きに行け。
0646デフォルトの名無しさん
垢版 |
2023/01/03(火) 20:19:29.87ID:yYGSV1g6
深い問題だと言ってるだろ。
Rustだから安全ですと言ってないで、わかってる人に聞きに行け。
0647デフォルトの名無しさん
垢版 |
2023/01/03(火) 20:23:30.48ID:iKNX9wDb
>>643
dunce::simplifiedでUNC除去するのがいいんじゃない?
別にPath自体は存在しないパスも保持できるしOsStringにするほどのこともないように見えるけど
0648デフォルトの名無しさん
垢版 |
2023/01/03(火) 20:57:51.98ID:pV/Lv/4Y
>>645
\\?\にabsoluteは対応してなくない?
0649デフォルトの名無しさん
垢版 |
2023/01/03(火) 20:59:49.29ID:FAR4SCa0
>>645,647
そもそも一律で絶対パスに展開するのが最良なのか?ってところから再検討中
リモートになりうるパスを絶対パスに展開するとトラブルの発生率が増す気がしてきた
0650デフォルトの名無しさん
垢版 |
2023/01/03(火) 21:01:15.66ID:yYGSV1g6
Rustスレでそんなこと質問したって無理だから。
いい加減諦めて実績のある言語スレに行け。
0651デフォルトの名無しさん
垢版 |
2023/01/03(火) 21:21:04.77ID:FM7p8eEf
誰も「Rustだから安全です」なんて言ってもいないしそもそも必ずしも安全でないことぐらい少しRustのこと勉強した人なら誰でも知ってる
0652デフォルトの名無しさん
垢版 |
2023/01/03(火) 21:39:29.06ID:MrpqBo7i
>>649
とりあえずPathBuf(参照ならPath)で保持しておいて必要な時にcomponents()で展開する感じがいいのかな
std::pathのPathBuf、Component、Prefixあたりでそれなりに抽象化はできてると思う
あとは目的次第
0654デフォルトの名無しさん
垢版 |
2023/01/03(火) 21:54:07.94ID:yYGSV1g6
>>651
知ってたらRustなんか使わんだろ。
0655デフォルトの名無しさん
垢版 |
2023/01/03(火) 21:57:01.67ID:njxOMnvb
しかし何でこんなにアンチ多いんだろうな
ノイジーマイノリティのような気もするけど
海外だと人気あるのにな
0656デフォルトの名無しさん
垢版 |
2023/01/03(火) 21:57:32.41ID:ma6uRps2
Rustは使うこと自体が修行だからだよ
0657デフォルトの名無しさん
垢版 |
2023/01/03(火) 21:59:13.22ID:3FZZMCLr
C/C++のように黒魔術を使いたい
0658デフォルトの名無しさん
垢版 |
2023/01/03(火) 22:14:16.03ID:iKNX9wDb
>>655
多いって言っても結局はいつもの人が連投してるだけだしせいぜい数人では
他のSNSやリアルではこんな人見たことないしなぁ
0659デフォルトの名無しさん
垢版 |
2023/01/03(火) 22:17:50.62ID:MrpqBo7i
あくまでこのスレの雰囲気からの判断だけど
自分は万能で何でもできると思ってるタイプの人間がどうしてもRustを使いこなせなくて
自分が理解できない言語は欠陥言語に違いないって感じで叩いてる印象
多少扱いにくい言語でもHaskellみたいにマイナーならここまで荒れなかったかもしれない
0660デフォルトの名無しさん
垢版 |
2023/01/03(火) 22:23:59.76ID:yYGSV1g6
Haskellも叩かれてただろ。
技術評論社のステマが過ぎるんだよ。
0662デフォルトの名無しさん
垢版 |
2023/01/03(火) 23:01:13.76ID:EF4+Zmp+
少なくともRustを使えっていう現場は今のところ日本では皆無だと思うけどね
0663はちみつ餃子 ◆8X2XSCHEME
垢版 |
2023/01/03(火) 23:03:15.73ID:5f9B2sCv
>>659
C/C++ は文法が無茶苦茶で扱いにくい部類なんだがなんだかんだで資料も多いし
慣れている人も多いから「これが普通」みたいな感覚になっちゃってるんだよな。
そこから遠い言語は「なんか普通じゃないやつ」に見えてしまうんだと思う。

言語としてスマートであろうがなかろうがエコシステムが充実してるほうが強いので
そこで C/C++ が長く支配的な立場だったけど現状の Rust なら十分すぎるほどに
充実してきてるんだから用途的にマッチするなら使えばいいと思うんだがなぁ。
0669デフォルトの名無しさん
垢版 |
2023/01/03(火) 23:26:45.90ID:tE3kJFmJ
https://mevius.5ch.net/test/read.cgi/tech/1639713446/181
になぞらえよう。

2022年、NSA(アメリカ国家安全保障局)公認メモリ安全言語にGoが入った時点で、
「Rustが自賛する」メモリ安全は「白けた話」になった。
Rustはもうどうでもいい。
0671デフォルトの名無しさん
垢版 |
2023/01/03(火) 23:48:42.74ID:jBK7hIQX
使いたいけど使えない人 = 能力不足。
使えるけど使いたくない人 = 個人の選択の自由。
俺は後者だから。
0672デフォルトの名無しさん
垢版 |
2023/01/04(水) 00:40:30.83ID:DBMM4FaV
技術評論社が自演ステマする言語はすべて潰れる。
0673デフォルトの名無しさん
垢版 |
2023/01/04(水) 00:42:55.13ID:ZDKq+a5p
文字列のパスの正当性をチェックしてくれるクレートとかないんだろうか
いわゆる汚染チェックだがダメ文字が含まれている、記法が有効ではない等々
WindowsのAPIにそれっぽいのがないかと思ったけど見つけられんかった
GetFullPathNameはファイルのみでディレクトリ名は不可っぽいし
exist類を利用する方法も出てくるけどこれはファイルやディレクトリがある
ケースでしか使えない
0674デフォルトの名無しさん
垢版 |
2023/01/04(水) 00:55:50.44ID:BfGbXrWm
2022年 はちみつ味の複製ポエムバレしてRustは白けた話になった
2023年 標準ライブラリ軽視からのクレート探しの自走力無き苦行
合計:白けた話+苦行=見放し
0675デフォルトの名無しさん
垢版 |
2023/01/04(水) 01:06:23.83ID:U+qe0cea
いままでC/C++の代わりになると云われた言語たちがどれだけ敗走したことか
そのRustの力とやら、見せてもらおうか!
0676デフォルトの名無しさん
垢版 |
2023/01/04(水) 01:06:49.84ID:tdp90SFj
>>657
ハイジェニックマクロはどうだい?
0677デフォルトの名無しさん
垢版 |
2023/01/04(水) 02:42:42.79ID:qTJ/GIFa
Rust使わないことを選んだのなら、こんなとこで無駄な時間使ってないでC/CPPのスレで活躍したほうが良いのでは?
0679デフォルトの名無しさん
垢版 |
2023/01/04(水) 09:03:32.34ID:oXSJ1jtE
>>662
ここのRust'erも大体は海外企業勤めでしょ
国内は仕事無いし
0680デフォルトの名無しさん
垢版 |
2023/01/04(水) 09:34:24.21ID:lFNs7lW+
>>662
わかんないよ、数年前だけどAdaの仕事があったし
まあ研究所からだけどウチの会社にAdaなんて書けるやつがいることにビビったわ
0681デフォルトの名無しさん
垢版 |
2023/01/04(水) 15:33:07.79ID:vtx89qb1
ま、ぶっちゃけ、RustよりSQL覚えた方が仕事はあると思うよ。
0682デフォルトの名無しさん
垢版 |
2023/01/04(水) 15:42:42.57ID:ppyTErtg
カーネルドライバのいくつかがRustで書かれ始めちゃってるので
いやでもぶち当たる日が来るので仕方なく勉強してます。
今のところはクソ言語と言い切れるほどのクソさにはぶつかってないかな
0683デフォルトの名無しさん
垢版 |
2023/01/04(水) 16:09:30.84ID:KNHhQhy0
基本的にクソだけど我慢出来ないほどではない
0686デフォルトの名無しさん
垢版 |
2023/01/04(水) 19:22:28.35ID:EQzsTg8p
オッサンだけど女の子に生まれて百合恋愛がしたいだけの人生だった、女の最大の特権って百合ができる事だよな
0688デフォルトの名無しさん
垢版 |
2023/01/04(水) 19:58:59.00ID:Ms6LgXDx
業務で使わされてるから
0692デフォルトの名無しさん
垢版 |
2023/01/04(水) 20:55:18.09ID:QxUfEWbZ
技術評論社のステマが最も有害。
0693デフォルトの名無しさん
垢版 |
2023/01/04(水) 21:20:30.26ID:lFNs7lW+
>>691
根拠も示さずに正しいつもりとか言われてもね

> なお、Rustが欠陥言語なのはハッキリ分かってる。
0694デフォルトの名無しさん
垢版 |
2023/01/04(水) 21:23:31.68ID:QxUfEWbZ
Rustには欠陥が無いようなことを言い出したぞコイツ。
0695デフォルトの名無しさん
垢版 |
2023/01/04(水) 21:25:52.36ID:oUT+lvyR
なんかまたErrorトレイトのメソッド変わってる……
見落としてたけど1.64からでしたか
0697デフォルトの名無しさん
垢版 |
2023/01/04(水) 23:47:28.90ID:tw+8ew0C
まあリーナスみたいに的確な指摘がちゃんと出来れば皆聞く耳を持つだろうにね
0698デフォルトの名無しさん
垢版 |
2023/01/05(木) 01:09:00.20ID:DO2QGxg+
>>697
Linusみたいな有名人が言ったら信じるだけで、
ちゃんと説明しても自分の頭で理解できない人が多い。
0701デフォルトの名無しさん
垢版 |
2023/01/05(木) 01:23:36.54ID:55d9gDO6
複数の実装を抽象化する想定のtraitにErrorなどというassociated typeを持たせて実装を分けてしまうと死ぬほど面倒だということを学んだ
0702デフォルトの名無しさん
垢版 |
2023/01/05(木) 12:28:43.89ID:QUS/oJRF
windows::~の使い方の情報が少なすぎ。String→PCWSTRの変換方法もよくわからないし
MessageBoxWに任意の文字列を表示することすら不安定
FFIでuser32のMessageBoxWを直接叩いたほうがマシ。こっちならさすがに安定するようだ
0705デフォルトの名無しさん
垢版 |
2023/01/05(木) 17:33:14.38ID:Hd+KI7WM
>>702
Rustの文字列はUTF-8でナル終端なしだからワイド文字だと
・UTF-8→UTF-16変換
・'\0'追加
の2段階の操作が必要

ナル終端だけならstd::ffi::CStringでいけるけど、ワイド文字(UTF-16)使うなら
内部でVec<u16>を保持する専用の文字列型を用意した方がよさそう

あとはwindows::core::PWCSTR::from_ptr()にVec::as_ptr()を渡してPWCSTRを作る
このPWCSTRが使われてる間はVecを消したり変更したりすると危ないけど
&PCWSTRで返す形にすればライフタイムで束縛できるかな

この辺の操作はwindows-rsでも直のFFIでも変わらないと思う
0706デフォルトの名無しさん
垢版 |
2023/01/05(木) 18:06:32.68ID:QUS/oJRF
>>705
そんな感じで実験してみたんだけど不定期にMessageBoxWが意図しない文字列を表示する
ボローチェッカーは何も言わないけど結果からすると明らかに信用ならない
FFI利用の直叩きなら問題ないさそうだしPWCSTR::from_ptr()以降が怪しそう
0708デフォルトの名無しさん
垢版 |
2023/01/05(木) 21:53:29.87ID:qIx9AnNX
他の言語でも同じ問題抱えているのに
rustではこういう問題があるぞーって批判目的で書いてる人って何なんだろう
0709デフォルトの名無しさん
垢版 |
2023/01/05(木) 22:15:07.43ID:QUS/oJRF
というか
ttps://learn.microsoft.com/ja-jp/windows/dev-environment/rust/rss-reader-rust-for-windows
この記事って罠じゃね?winapi使うかFFI使うかしたほうが無難な気がする
0710デフォルトの名無しさん
垢版 |
2023/01/05(木) 22:32:24.42ID:W/FjpTuq
レイヤー低いところをいじる場合はそのまま生で見えた方がデバッグがやりやすいってのはある。
まあ生で見えるから変なことも起こるんだが、この辺りはトレードオフの話だ。
0711デフォルトの名無しさん
垢版 |
2023/01/05(木) 23:50:31.90ID:gC/ORVIb
RustがCやC++の文法に似ているというのはウソだと思うね。
本当に似てると思うなら感性を疑う。
0712デフォルトの名無しさん
垢版 |
2023/01/06(金) 00:27:00.08ID:YGAtDmlk
似てる
C++から黒魔術をほとんど排除したのがRust
0713はちみつ餃子 ◆8X2XSCHEME
垢版 |
2023/01/06(金) 00:30:58.61ID:HDVxNHRA
文法つっても BNF 的な意味での文法とセマンティクスまで含めた文法では意味合いが違うし、
「どういう意味で似ている」「どういう意味で似ていない」という基準を提示せずに感性で判断しようとするのなら感性を疑う。
0717デフォルトの名無しさん
垢版 |
2023/01/06(金) 01:04:05.46ID:qbbs3BIz
お前ら独自エラーはどうやって作ってる?
俺はenum使ってるんだけどこれ普通?
0720デフォルトの名無しさん
垢版 |
2023/01/06(金) 02:32:49.50ID:xvNP3xU8
RustとC++がそっくりってそれ中国語と英語がそっくりって言ってるようなもんだよ
0721デフォルトの名無しさん
垢版 |
2023/01/06(金) 02:35:31.30ID:qbbs3BIz
RustはテンプレートがC++よりスマートだよね
template<typename T>とか書かなくてもいいし
0722デフォルトの名無しさん
垢版 |
2023/01/06(金) 02:57:32.46ID:BA4ANj8t
>>720
中国語と英語はそっくりかもしれないけど
C++とRustは全く違うものです
0723デフォルトの名無しさん
垢版 |
2023/01/06(金) 03:08:45.48ID:7s7EbfVR
Rust, Go, Swiftの3言語登場の前後で、時代が変わった級の変化を感じてしまうが・・・・
有名言語で一番どれに近いって言われたら、文法は違うけどSwiftじゃないかな
0724デフォルトの名無しさん
垢版 |
2023/01/06(金) 08:20:37.92ID:7YOuN382
ムーブとRAIIあたりはC++くらいしか似てるものがない気はする
他はそんなに似てないかな
0726デフォルトの名無しさん
垢版 |
2023/01/06(金) 11:09:49.68ID:oG71Qopd
>>717
普通
thiserrorのドキュメント見るといい
0727デフォルトの名無しさん
垢版 |
2023/01/06(金) 11:11:24.59ID:oG71Qopd
>>723
俺もメジャーな言語ならSwiftが一番近いと思う
0728デフォルトの名無しさん
垢版 |
2023/01/06(金) 11:25:37.00ID:3gqx/ngg
Kotlin/Nativeもポインタ触れたりして結構似てるぞい
根幹をC++で作ってるから当たり前なんだけどもw
0729デフォルトの名無しさん
垢版 |
2023/01/06(金) 11:26:31.04ID:3gqx/ngg
Swiftと比べたらKotlin/Native とか下の中の下ではあるがw
0730デフォルトの名無しさん
垢版 |
2023/01/06(金) 11:51:53.71ID:6RDP1hdo
zigのcomptimeが他言語でもほしいです
0732デフォルトの名無しさん
垢版 |
2023/01/06(金) 14:04:50.34ID:+8Hk5pSO
厳しすぎる??
0734デフォルトの名無しさん
垢版 |
2023/01/06(金) 14:36:09.35ID:s69F+oI7
たぶん型チェックではない気がするけどコンパイラのチェックが厳しいとゴミ言語になる理由がよく分からない
何となくで書けないのが不満なのかクラッシュバグを量産できないのが不満なのか
C言語でも-Wallとか-Werrorをつければ結構コンパイラうるさいよ

RustとCが近いと感じるのは脳内で同等のコードをイメージしやすいからかな
RustとC++はそんなに近いとは思わない(被ってる部分もあるけど別方向に派生したC言語という感じ)
0736デフォルトの名無しさん
垢版 |
2023/01/06(金) 14:48:19.40ID:17lyPwSx
>>734
>RustとCが近いと感じるのは脳内で同等のコードをイメージしやすいからかな
近いとは思わんけどな。
0737デフォルトの名無しさん
垢版 |
2023/01/06(金) 14:50:54.43ID:jehUaEn+
>>734
Rustほど型チェッカを厳しめにしなくても
安全なプログラムは実現できる
だからこそRustは流行らない
0738デフォルトの名無しさん
垢版 |
2023/01/06(金) 14:52:43.20ID:jehUaEn+
>>735
OCamlでは値の寿命を気にしなくていい
GCが管理するから
後はRustとは違って型推論をさせるコツというのが少ない
0742デフォルトの名無しさん
垢版 |
2023/01/06(金) 15:32:03.05ID:Kzld2VSs
>>738
暗黙的に型変換されることが多いという話なのか?
でなければどっちも型チェックの話じゃないと思うんだが
0743デフォルトの名無しさん
垢版 |
2023/01/06(金) 15:40:58.01ID:rO9XvLaF
>>738
> 後はRustとは違って型推論をさせるコツというのが少ない

(´・∀・`)ヘー
でも少ないどころかOCamlに
「型推論をさせるコツ」なんてもんがそもそもあっただろうか…

型チェッカがどうこうは実は今もよくわからんけど
型の推論はRustのほうが数段ショボい感じ
「型推論をさせるコツ」とかいう話も大変Rustっぽい
0744デフォルトの名無しさん
垢版 |
2023/01/06(金) 15:54:57.11ID:17lyPwSx
「Rustを勉強したい」「WasmをRustで決まり」みたいな話ばかりで
実際に作ってる人がほぼ居ないのがRust。
0745デフォルトの名無しさん
垢版 |
2023/01/06(金) 16:18:23.51ID:ka2uAVZR
rust も ocaml も型推論はHindley Milnerベースだろ。
rustで厳しいのはボローチェックやライフタイムのせいじゃないの?
それらも型に含める?広義では含むか、でも狭義にはちょと違うような。
0746デフォルトの名無しさん
垢版 |
2023/01/06(金) 16:52:55.39ID:1HBuA6S6
ボローチェックやライフタイムをそこまで低レイヤー向けじゃない言語に入れてみた方が需要あるんじゃないかね。
0747デフォルトの名無しさん
垢版 |
2023/01/06(金) 17:37:26.05ID:sXnz8uH8
低レイヤー向けじゃないならGC使えばいいんだからライフタイムチェックなんてする意味無くね
0749デフォルトの名無しさん
垢版 |
2023/01/06(金) 18:18:03.78ID:4UTCkTyw
>>745
hindly milnerベースって言っても使い勝手が違う
rustは関連型という機能があるからocamlのように型推論が強力なわけではない
あと推論順序の影響を受ける
0750デフォルトの名無しさん
垢版 |
2023/01/06(金) 18:31:21.73ID:fURAHMja
>>719
アイデアをまるパクりしてるので、同じに見える人も居るだろう。
文法が似てるとかではなく。
0752デフォルトの名無しさん
垢版 |
2023/01/06(金) 18:52:10.12ID:BFPx2dVd
しかし、Rustが流行ってよかったよ。
ScalaやHaskellみたいなモナモナした言語が未来って言われても全然ピンとこなかったからな。
0754デフォルトの名無しさん
垢版 |
2023/01/06(金) 20:49:12.83ID:AnNs2Aua
くそーCreateProcessWがGetLastError=87で動かねぇ・・・
昔も苦労させられた記憶があるし結構鬼門なんだよなー
0755デフォルトの名無しさん
垢版 |
2023/01/06(金) 21:03:28.10ID:s69F+oI7
>>752
OptionとかResult返すときの?オペレータは実質モナドなんだけど
モナドって言葉を使わなければみんな平気なんだろう

>>754
Win32 APIって今も32bit?
ワードサイズで引っ掛かった記憶があるようなないような
0756デフォルトの名無しさん
垢版 |
2023/01/06(金) 21:18:35.59ID:AnNs2Aua
>>755
PEヘッダ確認してみたけどちゃんとAMD64になっている
ポインタは8バイト、BOOL/DWORDは4バイトでいいはず
0757デフォルトの名無しさん
垢版 |
2023/01/06(金) 21:37:34.65ID:11CvjFzC
>>753
RustをWeb系で使ってるとか豪語してたよww
個人の趣味スクレイピングをWeb系と言う虚勢にクスクスさせてもらった
0758デフォルトの名無しさん
垢版 |
2023/01/06(金) 21:46:50.80ID:+u5r9Ozg
Web系はフロントはTypeScript/JavaScript、サーバーサイドはGoしか有り得ない
0759デフォルトの名無しさん
垢版 |
2023/01/06(金) 22:09:16.12ID:AnNs2Aua
#[link(name = "kernel32")]
extern "stdcall" {
fn CreateProcessW (
lpApplicationName: *mut u16,
lpCommandLine: u64,
lpProcessAttributes: u64,
lpThreadAttributes: u64,
bInheritHandles: u32,
dwCreationFlags: u32,
lpCurrentDirectory: u64,
lpStartupInfo: *const u8,
lpProcessInformation: *mut u8
) -> u32;
}

fn main() {
let mut cl:[u16; 5] = [0x63, 0x61, 0x6c, 0x63, 0x00]; // "calc\0"
let mut si:[u8; 104] = [0; 104];
si[0] = 104;
let mut pi:[u8; 24] = [0; 24];
let mut ret;
unsafe {ret = CreateProcessW (cl.as_mut_ptr(), 0, 0, 0, 0, 0, 0, si.as_ptr(), pi.as_mut_ptr());}
}
>error: process didn't exit successfully: `target\debug\test03.exe` (exit code: 0xc0000005, STATUS_ACCESS_VIOLATION)
ここまで単純化しても動かねぇ・・・というかsiとpiの正しいサイズがわからない
0761デフォルトの名無しさん
垢版 |
2023/01/06(金) 23:35:04.42ID:aB3JGFOO
The Book 10.1に掲載されていたlargest関数を、
参照でかけたりしないのかなと思い試しているのですがうまくいきません。。
どうやって書いたらよいのでしょう?
fn largest<T: PartialOrd + Copy>(list: &[T]) -> &T {
let mut res: &T = &list[0];
for &elem in list.iter() {
if elem > *res {
res = &elem;
}
}
res
}
0762デフォルトの名無しさん
垢版 |
2023/01/06(金) 23:37:50.69ID:AnNs2Aua
今度はWaitForSingleObjectで止まらない。というか
ttps://learn.microsoft.com/ja-jp/windows/win32/procthread/creating-processes
これをコピペしてコンパイルして電卓を起動させても止まらない。どうなっているのw
って思ったらcalc.exeはラッパーで即終了していたというオチ。MSはロクなことしないな
0763デフォルトの名無しさん
垢版 |
2023/01/06(金) 23:51:15.52ID:sXnz8uH8
>>762
>>759を動かそうとしてるんなら"calc\0"は第1引数じゃなくて第2引数よ
もうちょっと落ち着いて色々見直しなさいな
0764デフォルトの名無しさん
垢版 |
2023/01/06(金) 23:53:05.97ID:/3LWOZ61
>>761
10.1に書いてるコードがすでに参照使って書いてるじゃん
PartialOrd足せばそのまま動くけど?
0765デフォルトの名無しさん
垢版 |
2023/01/07(土) 00:26:35.07ID:+QPNW5aO
>>763
MSDNを見る限り単にアプリを起動するだけなら第一引数でも第二引数(読み込み専用不可)でも大差なくない?
動くようになった状態で入れ替えても問題なく動作するし
0766デフォルトの名無しさん
垢版 |
2023/01/07(土) 01:02:32.01ID:dLMo+qnq
>>765
こっちじゃ第1引数使うなら"C:\\Windows\\system32\\calc.exe\0"以外は
GetLastError()が2(ERROR_PATH_NOT_FOUND)を返してきて動かんのだけど……
MSDNも第1引数の説明にだけパス検索はしないだの拡張子つけろだの書いてあって、その通りに動作してるだけのように見えるし

https://learn.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-createprocessw

> The function will not use the search path. This parameter must include the file name extension; no default extension is assumed.
0767デフォルトの名無しさん
垢版 |
2023/01/07(土) 01:04:28.02ID:piTlebRA
>>761
とりあえず修正したコード

fn largest<T: PartialOrd>(list: &[T]) -> &T {
let mut res: &T = &list[0];
for elem in list.iter() {
if *elem > *res {
res = elem;
}
}
res
}

forの変数elemの型が諸々の事情でTになってたから&Tに直した
ついでにTのCopyもいらなくなりそうだから外した

letとかも同じだけど
let &x = ...
みたいに受け取る側に&をつけるとxの型は入れる値の&を外した型になる(とても雑な説明)
0771デフォルトの名無しさん
垢版 |
2023/01/07(土) 02:06:28.88ID:+QPNW5aO
・system()っぽい関数(起動したプロセスが終了するまでブロックする)
・CreateProcessW失敗時は起動失敗を呼び出し元に通知したい
・成功時に戻すべき情報はない
・Rust的にはResultを返すのが定石?
こういう時のコーディング例とかググっても全然出てこなくね・・・
重要なのはOk/Errのみで返り値は不要みたいなケース
とりあえずbool返しにしておくか

>>766
あれ?確かに。すまん気のせいだったっぽい
0772デフォルトの名無しさん
垢版 |
2023/01/07(土) 02:31:58.39ID:6JfdJVIo
>>767
> if *elem > *res {
if elem > res でいいよね
0774デフォルトの名無しさん
垢版 |
2023/01/07(土) 11:49:37.35ID:TSp0PKQI
>>747
変数間でのオブジェクトの共有が気になるシチュエーションはjavaなんかは結構あると思う。
0775デフォルトの名無しさん
垢版 |
2023/01/07(土) 16:25:18.46ID:dLMo+qnq
rust-analyzerにもVSみたいにドロップダウンでplatform切り替える機能ほしいのう
cfgで複数のplatformに対応しているタイプのライブラリで便利そう
0776デフォルトの名無しさん
垢版 |
2023/01/07(土) 16:40:32.23ID:+QPNW5aO
継続不可能な状態→エラーダイアログを表示
ここまではいいけどこの後の後始末ってどう書くのがいいんだろうな
後始末のために共有データ(起動時に設定ファイルから読み込む)にアクセスしたいが
Dropトレイトにしろパニックハンドラにしろmainとは別スコープなのでアクセスできない
後始末のスコープ中で共有データを読み直すという手もあるけど、本当に意図しない状態で
強制終了する場合にファイルのロード&パースをするのが望ましいとは思えない
Dropトレイトの初期化時に共有データの参照を渡しておくとか?
0777デフォルトの名無しさん
垢版 |
2023/01/07(土) 17:10:37.53ID:piTlebRA
>>776
mainの中で初期化してResultを返す本処理を呼ぶ形は無理?

fn main() {
// 初期化(設定読み込み)
let info = ...;

// 本処理
let result = main_body(&info);
match result {
OK(_) => {}
Err(e) => {
// エラー処理(info使える)
}
}
}
0778デフォルトの名無しさん
垢版 |
2023/01/07(土) 18:02:32.48ID:+QPNW5aO
>>777
それコードの位置が逆なだけじゃ。というかResult返しの実装方法を理解できていない
とりあえず共有データを保持している構造体にdropを実装してみた
自身へのアクセスは可能だしmainの終了時に実行される・・・はず
0779デフォルトの名無しさん
垢版 |
2023/01/07(土) 18:21:41.85ID:S1LntPIN
>>777
よくこの文章を解釈できたな
素直にすごいわ
0780デフォルトの名無しさん
垢版 |
2023/01/08(日) 00:10:22.65ID:lAEXMGQ2
Rustってゲームに向いてそうなイメージあるけどどうなんだろ
メモリリークは相当起きにくいよな?
0782デフォルトの名無しさん
垢版 |
2023/01/08(日) 00:51:12.10ID:RrQeMuL+
今のご時世に非標準的な実装をするゲームとかOSのバージョンアップで爆死する未来が見える
0783デフォルトの名無しさん
垢版 |
2023/01/08(日) 01:11:48.94ID:WtSMxRkj
>>782
OSに関係無いところでのトリッキーなテクニックは有りえる。
例えば、複数のポインタ用のバッファをまとめてnewで確保してから、
直後に値を代入するようなことはC/C++では簡単に行なえる。
ところが安全性重視の言語だと、非初期化状態のポインタは許されないから、
少なくともnew演算子が自力でNULL初期化しなくてはならないので、
無駄になる。
他にも、配列の範囲チェックが無駄になる。
0784デフォルトの名無しさん
垢版 |
2023/01/08(日) 01:15:49.98ID:WtSMxRkj
>>783
ちなみに、
「非初期化状態の変数」は不安定になり易いので減らした方が良いとされているが、
BYTE *dst = new BYTE[1024]; // dst[k] はこの時点では未初期化状態
memcpy( dst, src, size );
のような時にはC++では効率を考えると仕方が無いものと考えられている。
0初期化すると無駄になるから。
0785デフォルトの名無しさん
垢版 |
2023/01/08(日) 01:45:10.78ID:f5aNmtma
ヒープでいいならVec::with_capacityしてデータ入れた後にBoxed sliceにすればいい話だね
スタックでゼロ初期化した方が性能はいいと思うけど
0787デフォルトの名無しさん
垢版 |
2023/01/08(日) 02:36:10.85ID:x4fu54u1
Rustのメモリ安全性にはメモリリークしないことは含まれていないんだよね。
Rc<T>で循環参照するデータを作ってもコンパイルエラーにはならずメモリが解放されないままだったはず。
まぁメモリリークしててもメモリがある限り正しい結果を返すわけだし、メモリがなくなったらクラッシュするので間違いが起きたまま動作しつづけることはないけど。
0789デフォルトの名無しさん
垢版 |
2023/01/08(日) 04:35:49.54ID:kuKYL1oy
>>786
なんじゃそりゃ
どこでそんなデタラメ仕入れてきたの?
0790デフォルトの名無しさん
垢版 |
2023/01/08(日) 06:55:53.23ID:FeGYfhwG
技術評論社の書籍だろ。
0792デフォルトの名無しさん
垢版 |
2023/01/08(日) 11:05:27.68ID:wpyfySyl
>>781
そういう部分だけunsafe使えばいい。
unsafeダメ原理主義者になるな。
0793デフォルトの名無しさん
垢版 |
2023/01/08(日) 11:21:27.20ID:D257opQI
>>791
そこにはライフタイム省略版とは書いてないよ
expressionなどからライフタイムを推論できない場合はstaticになると書いてある
(例えばコード例のようなタイプエイリアスの場合など)
playgroundのコードではu2のライフタイムから推論されるからstaticにはならない
0794デフォルトの名無しさん
垢版 |
2023/01/08(日) 11:35:19.20ID:4wy9Fp4t
>>791
これでしょ?

If the trait object is used as a type argument of a generic type then the containing type is first used to try to infer a bound.

If there is a unique bound from the containing type then that is the default
0795デフォルトの名無しさん
垢版 |
2023/01/08(日) 11:50:51.08ID:DAo3J3pj
>>793
は〜んなるほどな
関数引数とか構造体メンバとかの'staticに推論される場所で使うことが多かったから勘違いしてたっぽい
ありがとう
0804デフォルトの名無しさん
垢版 |
2023/01/08(日) 19:26:34.22ID:2yRrU7ur
Rustで多量のファイルを高速に読み込みたい場合ってどうすればいいの?
std::fs::readはVec<u8>を返す=メモリアロケータが動く=遅い
十分なサイズのVecを事前に確保してreadなりReadFileなりを叩けば
任意のアドレスに読み込んでくれるけどほかに方法はないのかな
0805デフォルトの名無しさん
垢版 |
2023/01/08(日) 20:32:01.24ID:9eCFH/Xi
Rustに限らずreadで遅いと感じるレベルならOS依存のmmap(memmap)くらいしか思いつかない
速さ目的で使ったことないから本当に速くなるか分からないけど
0806デフォルトの名無しさん
垢版 |
2023/01/08(日) 21:00:35.09ID:gNhHKSa0
The Book を進めていくと Box<trait> でエラーになって Box<dyn trait> に変えろって言われるんだけど、dyn ってなんですか?
0808デフォルトの名無しさん
垢版 |
2023/01/08(日) 21:06:58.13ID:gNhHKSa0
>>807
なるほど
trait は動的なのでより明確になるように dyn キーワードが追加された... という理解でいいでしょうか?
0809デフォルトの名無しさん
垢版 |
2023/01/08(日) 21:11:02.19ID:rBa/PYaz
>>805
1MB/1000個くらいのファイルをstd::fs::readで読みながらVec[u8]に
extend_from_sliceで追加していくコードを書いてみたら数秒かかった
さすがに遅すぎ
せめてVec<u8>→Vec<u8>(の任意のインデックス)みたいなmemcpy的な
コピー手段はないのなか。どのくらい早くなるかわからんが
0810デフォルトの名無しさん
垢版 |
2023/01/08(日) 21:31:03.29ID:LKKCPrwt
>>809
>1MB/1000個くらいのファイル
これはどういう意味?
/ は、割る、または、OR(または) の意味で用いる。
もしかして、
一個当り 1MB のファイルが 1000 個、合計サイズ 1GB の
ファイルのことを言っている?
0814デフォルトの名無しさん
垢版 |
2023/01/08(日) 21:52:13.93ID:lAEXMGQ2
>>808
間違えてるかもしれんが俺の理解だと
>>traitは動的
traitは静的だけど、trait実装してる型が静的/動的に決まるかで
動的→dyn Trait 静的→ジェネリクスやimpl Trait を使い分ける
よくある例では
Vec<T>はT1つ確定して他の型は一切受け付けないけど
Vec<Box<dyn Trait>>はTraitを実装してる型なら何でも入る
0817デフォルトの名無しさん
垢版 |
2023/01/08(日) 22:45:09.72ID:HTBsXmSw
>>809
extend_from_sliceだと遅そうだね
io::copyにしてみれば?

ちなみにその1000個をcpしたらどの程度で終わる環境?
0818デフォルトの名無しさん
垢版 |
2023/01/08(日) 22:48:55.19ID:9eCFH/Xi
>>809
memcpyと同じことしたいならstd::ptrにcopyとかcopy_nonoverlappingが用意されてる
ただ引数はポインタだからunsafe

copy_nonoverlappingのExamplesがやりたいことに近いと思う
この例はコピー元のVecを空にしてるけどu8みたいなCopy型に限定すればコピー元のVecをそのままにしても一応安全
0821デフォルトの名無しさん
垢版 |
2023/01/09(月) 00:21:25.60ID:L9fsJfRH
>>812
1000個のファイルで1秒だと、もともとOSの速度がその程度の場合も有り得そう。
1ファイル当り1(ms)ということになるから。
もともとファイルはそこまで一度に沢山の個数をopen, closeすることは
想定されて無いので。
それもRustの安全機構が遅さに影響を与えているかも。
0822デフォルトの名無しさん
垢版 |
2023/01/09(月) 00:26:23.50ID:L9fsJfRH
>>821
ファイルって、例えばファイラーでコピーする場合でも、合計が同じ容量でも、
細かいファイルが多数有る場合の方がずっと遅くなる。
一個の1MBのファイルをコピーすると一瞬なのに、1KBの1000個のファイルをコピー
すると1秒くらい掛かるかも。
0823デフォルトの名無しさん
垢版 |
2023/01/09(月) 01:18:38.59ID:1jv8LwEE
profilingしてsyscallがボトルネックになってれば非同期や並列化で高速化するしかない
0824デフォルトの名無しさん
垢版 |
2023/01/09(月) 10:40:30.18ID:qWwsdzcu
たとえどんなにメモリ確保が遅くともディスクIOよりも遅いってことはないだろう
体感の遅さが何秒とかじゃなくてドライブのベンチマークと比べて判断しよう
0825デフォルトの名無しさん
垢版 |
2023/01/09(月) 10:58:52.04ID:SSufLxQW
>>820
エクスプローラーってことはWindows?
そもそもWindowsはファイルシステムのsyscallが結構重いから
メモリコピーとか関係なくそんなものの可能性はあるかと
思い込みで試行錯誤してないでちゃんとプロファイル取ったほうがいいよ
0826デフォルトの名無しさん
垢版 |
2023/01/09(月) 15:14:46.56ID:eWb8PeTD
cargo testでドキュメントテストが実行されないんだけどお前らも同じ?
ドキュメントに書いてある通りに実行してるけど実行されない
0827デフォルトの名無しさん
垢版 |
2023/01/09(月) 15:29:11.68ID:Tw59sECy
>>826
普通に実行されるから doctest の書き方間違えてるんじゃないのかなぁ
`(バッククォート) じゃなくて '(シングルクォート) になってるとか
0828デフォルトの名無しさん
垢版 |
2023/01/09(月) 15:35:17.32ID:eWb8PeTD
>>827
ああ、すみません。解決しました。
どうもバイナリだと実行されないみたいです。

cargo new myprog

で作成したバイナリだと駄目で

cargo new doclib --lib

で作成したライブラリではちゃんと実行されました。
0830デフォルトの名無しさん
垢版 |
2023/01/09(月) 17:51:48.91ID:ytPnwm3y
Rust固有の話でもないんだけどUnicode対応のアーカイブフォーマットってどんなのがあるんだろ
比較的新しい7zipはUnicodeファイル名をサポートしているけどライブラリやクレートが豊富とはいいがたい
かといってレガシーなzipやtarだとファイル名のコーディングは実装依存にみえる
実装依存の場合Unicodeファイル名をサポートしているライブラリやクレートがあるのかという問題も出てくるし
0831デフォルトの名無しさん
垢版 |
2023/01/09(月) 19:37:23.02ID:ytPnwm3y
tarで実験していたら詰んだw
let mut v:Vec<u8> = Vec::new();
let mut c = std::io::Cursor::new(v);
let mut t = tar::Builder::new(c);
t.append_path("foo.txt");
std::fs::write("foo.tar", &v); // borrow of moved value: `v`
どうしろと・・・
0836デフォルトの名無しさん
垢版 |
2023/01/09(月) 20:46:41.39ID:vdwHQqNl
tar使ったことないけどt.get_ref().get_ref()で&Vec<u8>取り出せるのかな
先にt.finish()呼ぶべきかもしれないしget_refよりinto_innerの方がいいかもしれない

get_refは詰み回避の頻出手筋
0837デフォルトの名無しさん
垢版 |
2023/01/09(月) 21:28:27.40ID:ytPnwm3y
>>836
let a = t.get_ref().get_ref();
std::fs::write("foo.tar", a);
これは一応それっぽいファイルが作られた

let mut a = t.into_inner().unwrap();
let mut f = std::fs::File::create("foo.tar").unwrap();
std::io::copy(&mut a, &mut f);
こっちは空っぽだった

ttps://crates.io/crates/tar
こんなサンプルしかないしCursorを使用する例なんて見当たらないし
どうやるのが妥当なのか全くわからん
0838デフォルトの名無しさん
垢版 |
2023/01/09(月) 22:00:04.05ID:ytPnwm3y
ttps://docs.rs/tar/latest/tar/struct.Builder.html#method.append_path
>pub fn append_path<P: AsRef<Path>>(&mut self, path: P) -> Result<()>
>~
>Also note that after all files have been written to an archive the finish function needs to be called to finish writing the archive.
らしいが
>pub fn finish(&mut self) -> Result<()>
>~
>In most situations the into_inner method should be preferred.
どっちなんだよw
ここに載っているサンプルだってinto_innerもfinishも呼んでいないのがあるし
0839デフォルトの名無しさん
垢版 |
2023/01/09(月) 23:33:14.26ID:2xcnkP4M
>>835
もう解決してそうだけど
let mut c = ...からt.append_path(...)までを別スコープにすれば通らない?
0840デフォルトの名無しさん
垢版 |
2023/01/10(火) 00:39:55.01ID:j3UGlM4K
>>837
空っぽになるのはtarのinto_innerでfinish経由でwrite_allが呼ばれて
cursorのpositionが末尾になっててio::copy時には書き出すものがないから
0842デフォルトの名無しさん
垢版 |
2023/01/10(火) 01:07:25.76ID:LMu5FpAe
let mut v = Vec::new();
let c = std::io::Cursor::new(&mut v);
let mut t = tar::Builder::new(c);
t.append_path("foo.txt");
t.finish();
drop(t);
std::fs::write("foo.tar", &v);
0843デフォルトの名無しさん
垢版 |
2023/01/10(火) 01:15:57.75ID:MfXPDJ7e
get_mutでCursorにすればReaderとして使える
0844デフォルトの名無しさん
垢版 |
2023/01/10(火) 02:21:46.49ID:UwgiY8HJ
そのコードでCursor使う意味が分からん
let mut tar = tar::Builder::new(Vec::new());
tar.append_path("foo.txt").unwrap();
let body = tar.into_inner().unwrap();
std::fs::write("foo.tar", body).unwrap();
0845デフォルトの名無しさん
垢版 |
2023/01/10(火) 03:54:21.65ID:jTn98fgX
昨日のファイル1000個の続きなんじゃね
メモリに全部読読み込んでから処理しようとする理由は謎
0846デフォルトの名無しさん
垢版 |
2023/01/10(火) 11:07:15.73ID:UY3YN64G
The Bookをやり終えたあとってどうするのがいい?
次に読むべきおすすめの書籍があるか知りたいです!
0847デフォルトの名無しさん
垢版 |
2023/01/10(火) 13:00:32.37ID:wZlueyRK
>>846
次の書籍を読む前にThe Bookの復習がてら簡単なCLIツールを3~5個くらい書いて自分の理解を確かめたほうがいいよ
0849デフォルトの名無しさん
垢版 |
2023/01/10(火) 17:29:32.58ID:0JcDinm0
コマンドラインに渡した(1000個の)ファイルを
指定した名前のtarファイルに書き出すツールとか
0850デフォルトの名無しさん
垢版 |
2023/01/10(火) 18:47:02.53ID:jt9UZCSx
>>845
メモリを事前に一括で確保してVecの逐次伸長をなくせば早くなるんじゃね?
と思ったけど実験してみたら全くそんなことはなかった。Rustのメモリアロケータって優秀なんだな・・・
0852デフォルトの名無しさん
垢版 |
2023/01/10(火) 21:06:19.40ID:doG42uyJ
10回程度の小さい容量のアロケートなんてI/Oに比べれば微々たるものでしょ
0853デフォルトの名無しさん
垢版 |
2023/01/11(水) 14:35:14.84ID:PmiCGwmF
Vecのcapacityって再確保のたびに倍々に増えていくんじゃなかったっけ
ならpushの回数を増やしても再確保回数は大した数字にならないだろう
0854デフォルトの名無しさん
垢版 |
2023/01/11(水) 19:26:52.32ID:STTwcLZn
ドライブレターを割り当ててあるネットワークドライブのパスを
dunce::canonicalizeに食わせるとUNCパスが返ってくる
そりゃねーぜ・・・
0855デフォルトの名無しさん
垢版 |
2023/01/11(水) 21:38:38.39ID:+7dhpYN+
こういう瑣末な問題を自分で解決する力のない人はまだRustを使うべき時期じゃないよね
0856デフォルトの名無しさん
垢版 |
2023/01/11(水) 23:08:05.53ID:STTwcLZn
というかLinuxのProtonだとネットワークドライブへのアクセスでも
ドライブレタースタートのパスが返ってくるのな
結果、Windowsだと動かないけどLinuxなら動くという珍事になってるw
0857デフォルトの名無しさん
垢版 |
2023/01/12(木) 09:12:37.07ID:KDs8BtvS
ファイル属性の取得はファイル読み込みよりは圧倒的に速いので
・ファイル名とファイルサイズの取得
・合計サイズのチェックと領域の確保
の順でやればマシかもね
ファイル読み込みに比べたら微々たる違いだとは思うが
0858デフォルトの名無しさん
垢版 |
2023/01/12(木) 10:55:41.76ID:YWq2QOJT
ファイルの数だけ二重にsyscallを呼び出すことになるからサイズのデカい数ファイルを処理するときならともかく1000ファイルで合計1MBという今回のケースだと悪化するんじゃね?
0860デフォルトの名無しさん
垢版 |
2023/01/12(木) 11:37:44.42ID:Iq4TKL6o
>>858
そもそもトータル1MB程度って分かってるなら余裕みて2MB程度確保しとけば良いような気がするが...
0861デフォルトの名無しさん
垢版 |
2023/01/12(木) 12:26:48.24ID:lE5eokgZ
>>859
ripgrepは今回のようにすべてのコンテンツを全て一括でメモリに保持するわけじゃないから
streamingで処理するのでいいなら固定長のバッファ確保してそこを使いながらパイプライン通して結果をI/O出力すればいい

>>860
アロケーションがボトルネックならそういう対処もあるだろうけど十中八九違うんじゃね?
0863デフォルトの名無しさん
垢版 |
2023/01/12(木) 13:53:22.90ID:Iq4TKL6o
>>861
> アロケーションがボトルネックならそういう対処もあるだろうけど十中八九違うんじゃね?
そんなのはみんなわかっててあーだこーだ言ってるわけだがw
0864デフォルトの名無しさん
垢版 |
2023/01/12(木) 15:09:30.20ID:xWF9eQpc
>>863
的外れないことを言ってる自覚があるなら>>860みたいなレスはしないだろ
0866デフォルトの名無しさん
垢版 |
2023/01/12(木) 21:08:10.25ID:3O2sN+zP
dunce::canonicalizeはダメっぽいのでGetFullPathNameWを使うことにした
ちょうどいいシステムコールが用意されているなら安易に野良クレートを使うより確実な気がしてきた
0872デフォルトの名無しさん
垢版 |
2023/01/13(金) 21:13:37.70ID:pWxhpTTY
>>871
悪い見本だもの
0874デフォルトの名無しさん
垢版 |
2023/01/13(金) 21:19:33.92ID:pWxhpTTY
悪い見本だと判別できない時点でろくな本を読んでないことが分かる
0875デフォルトの名無しさん
垢版 |
2023/01/13(金) 21:21:43.63ID:URQHLbI7
みんなの参考になるように読んだ本を列挙してみてはどうだ?
0878デフォルトの名無しさん
垢版 |
2023/01/13(金) 21:29:53.28ID:AezcW3Li
>>876
じゃ君が思う根本的に書き味が良い言語は何なの?
0882デフォルトの名無しさん
垢版 |
2023/01/13(金) 22:05:13.48ID:CrbXPD60
ラクダケース派か
PythonとかRustみたいに型と変数でラクダとヘビ使い分けるパターンって名前あるのかな
0885デフォルトの名無しさん
垢版 |
2023/01/13(金) 22:48:50.23ID:KppyFlUz
Goはコンパイル最速だからデオキシスのスピードフォルムだな
Rustはディフィンス、Java/C#はノーマルフォルムだな
アタックフォルムは知らん
0887デフォルトの名無しさん
垢版 |
2023/01/14(土) 00:10:54.25ID:+bIIgMNd
自分はスネーク派だからJavaとC#は苦手(根本的に書き味が悪い)
Python使用歴が長かったからだと思う
CとC++は何でもありだからどうでもいいけど
TypeScript(JS)も油断するとスネークで書いてたりする
0888デフォルトの名無しさん
垢版 |
2023/01/14(土) 00:20:05.26ID:7IKvLHvE
スネークとは関係なく、Rustは書き味が悪い。
他のどんな言語にも無い書きにくさ。
Kotlinも書き味が悪いから没落中。
0890デフォルトの名無しさん
垢版 |
2023/01/14(土) 06:19:32.45ID:si/5TbUH
書き味で言うならNimが一番良い。

特にメソッド呼出し構文はNimが一番洗練されていると思う。UFCSとかもっと色々な言語で採用されてほしい。
0892デフォルトの名無しさん
垢版 |
2023/01/14(土) 10:29:27.36ID:qzxpLg1U
nimの構文とか好きな人は好きだろうと思うけど自分は嫌いだし
嫌いな構文をわざわざ使うほどの他の魅力がないんだよなぁ
0893デフォルトの名無しさん
垢版 |
2023/01/14(土) 11:26:06.77ID:P3G4Bbh6
書き味悪いとか言ってRust使う気全くないのにわざわざRustスレに書き込もうとするのが一番意味不明
0896デフォルトの名無しさん
垢版 |
2023/01/14(土) 13:50:07.41ID:E6EWdIax
「書き味」の良さ悪さの原因を自分なりに考察して言語化してれば多少は議論になるんだけどな

慣れと好みの次元でしか語れないならお爺ちゃんの自分語りでしかないから相手しても無駄
0897デフォルトの名無しさん
垢版 |
2023/01/14(土) 14:08:44.00ID:CzVWhO4J
そもそもRustはいろいろ我慢して使う言語だし
みんな上に言われて仕方なく使ってる
0901デフォルトの名無しさん
垢版 |
2023/01/14(土) 14:35:58.49ID:osTmo3zd
コンパイラ安全最強はrust
コンパイラ速度最強はgolang
オブジェクト指向設計最強はjava/c#
汎用最強はc/c++
0902デフォルトの名無しさん
垢版 |
2023/01/14(土) 14:56:30.09ID:on+CIJwd
殆どの言語は高速化に向けて頑張ってるからGo言語の地位は危ういけど、既存の言語をメモリ安全にするのは大変だからRustは安泰
強みがあるって大事
0904デフォルトの名無しさん
垢版 |
2023/01/14(土) 15:40:05.51ID:4KPPIGP6
また次世代言語スレ(旧世代おじいちゃん隔離スレ)が消えたから溜まり場になってるのか
迷惑な話だな
0907デフォルトの名無しさん
垢版 |
2023/01/14(土) 17:40:41.95ID:VmfonobT
>>898
アホだろw

「トマトは不味い、俺はりんごが好き」と同程度の話なのにお前がりんごが美味いと感じる理由を説明したらそのアイデアwとやらがが盗まれると思ってんのかww
0908デフォルトの名無しさん
垢版 |
2023/01/14(土) 17:48:38.74ID:7aPbxTVe
>>907
まともにrust使ったことないのがまたバレるから誤魔化してるだけでしょ
0909デフォルトの名無しさん
垢版 |
2023/01/14(土) 18:06:11.45ID:P3G4Bbh6
アイデアってことは書き味のいい最強のプログラミング言語の開発でもしてるんだろうな
0910デフォルトの名無しさん
垢版 |
2023/01/14(土) 18:36:28.57ID:9ctkhBjT
仮に、あくまでも仮にプログラミング言語を確実に素晴らしくする案があったとして
その案が盗まれて (他の言語に取り入れられて) なんか損なことがあるのか?
世の中に良いものがひとつ増えればありがたい話。
0911デフォルトの名無しさん
垢版 |
2023/01/14(土) 19:24:05.22ID:s7HfBvg3
車関連のソフトウェア携わってるやつおる?
今年から急にrustの案件増えてきてね?
しかもすごい金かけてる案件が目白押し
うちは4次請け5次受けくらいの立場だからわからないけどこれってTOYOTAとかホンダとかが大元なのか?
0918デフォルトの名無しさん
垢版 |
2023/01/14(土) 22:11:45.32ID:d5QpUSFx
>>915
edgeはchromiumだから追随も何も自動的にRust採用
chromeの脆弱性の大半はメモリ関連バグが原因なので自然な流れ
0919デフォルトの名無しさん
垢版 |
2023/01/14(土) 22:12:14.30ID:d5QpUSFx
ァー!
0920デフォルトの名無しさん
垢版 |
2023/01/15(日) 00:41:50.47ID:ku1I9qUG
>>886
Ruby入れんなバカ
0921デフォルトの名無しさん
垢版 |
2023/01/15(日) 00:54:56.50ID:ku1I9qUG
>>911
俺もそんぐらいの商流だけど、話は増えてる。

>>914,916
今の車はエンジンやナビ以外も色々電子制御してるんだわ。
んでもって今まさに売るもんじゃなくて、ン年先に出るかもしれないモデルの話。
C/C++のテスト工数がばかんなんないんだわ。
0922デフォルトの名無しさん
垢版 |
2023/01/15(日) 02:51:25.95ID:KkfkCmPm
Rustは自動車などの人命に関わる部分では人気が高まっていると。
人命に関わるからめんどくさくても仕方が無いと。
0923デフォルトの名無しさん
垢版 |
2023/01/15(日) 02:56:27.53ID:lfgB9E3M
その話が事実ならルネサスからRustの開発環境が提供されるのも
時間の問題ってこと?(もしくは一部にはすでに提供されている?)
現状組み込み用だとCortex-MやRISC-V用の野良コンパイラと
vscodeあたりを組み合わせるしかないわけだし
0924デフォルトの名無しさん
垢版 |
2023/01/15(日) 07:17:19.37ID:Fhl5jlzy
ソニー・ホンダのAFEELAとかどうなんだろ?
Rustとか使ってるのかね。


ソニー・ホンダも志向、自動車の「走るスマホ化」
https://toyokeizai.net/articles/-/644484?page=2
ソニー・ホンダモビリティの河野拓・デザイン&ブランド戦略部ゼネラルマネジャーは、AFEELAを「iPhoneにタイヤがついたようなもの」と例える。
0925デフォルトの名無しさん
垢版 |
2023/01/15(日) 09:01:34.83ID:FWMLffRf
>>921
>>922
914です。ADやゾーンE/Eに向けて採用されていくのは同意。演算能力はマイコンというよりPC

エンジン、ブレーキ、ステアECU等々のマイコン使った従来E/EのECUは人命に関わっていたとしてもCのままだと思うよ
モデルベースでRustのコード生成なんて聞いたことないし
0927デフォルトの名無しさん
垢版 |
2023/01/15(日) 11:04:25.61ID:iBpPXbBA
>>924
> ソニー・ホンダモビリティの河野拓・デザイン&ブランド戦略部ゼネラルマネジャーは、AFEELAを「iPhoneにタイヤがついたようなもの」と例える。
そう言うのはECUとか知らない一般向けの宣伝文句だよ
0928デフォルトの名無しさん
垢版 |
2023/01/15(日) 11:33:45.74ID:Veh5XioV
命に関わるようなところを4次請け5次請けに出してんの!?
日本マジ終わってんなww
0930デフォルトの名無しさん
垢版 |
2023/01/15(日) 13:28:39.34ID:9tzHaMX4
仕様書通りにできててテストに合格すればどこに出してもいいでしょ
孫請け以降禁止する契約もあるけど
0931デフォルトの名無しさん
垢版 |
2023/01/15(日) 15:27:38.76ID:L+UeRXU0
>>930
言い訳ないだろw
戦略的にも品質的にも生産性的にもあり得ない

仕様書通りにできててテストに合格してればいいという理由でGoogleが自動運転技術の命に関わるような開発を4次請け5次請けに出すと思うか?
シートベルトやエアバッグ作るのとはわけが違うんだよ
0933デフォルトの名無しさん
垢版 |
2023/01/15(日) 16:09:46.14ID:dEFl4tMA
>>931
GoogleはGoogleの付加価値を提供するために自分たちでやっているだけでしょ
車とそのシステムを作るカーメーカーやTier1が自分でソフト書かなくても品質保証できていれば問題ない。付加価値はそこじゃないから
時代は変わってきてるけどね
0934デフォルトの名無しさん
垢版 |
2023/01/15(日) 16:13:07.64ID:9tzHaMX4
Rustは メモリ関連のバグが減るからどんだけ下請けに出しても
大丈夫な言語でしょw
0935デフォルトの名無しさん
垢版 |
2023/01/15(日) 16:19:04.91ID:kf65JyLn
>>933
そんな考えだから
トヨタですらコードがスパゲッティすぎるという理由で安全性を疑問視され訴訟で負けたりするんだぞ

ソフトウェアというものへの理解が足りない
0937デフォルトの名無しさん
垢版 |
2023/01/15(日) 16:32:56.96ID:x9M0LVrY
fn foo(・・・) -> Path {
>error[E0277]: the size for values of type `[u8]` cannot be known at compilation time
Pathを返したい場合ってどうすればいいの?
Path::newとかはPathを返してくるしPathを返り値とできないってことはないと思うんだけど
0938デフォルトの名無しさん
垢版 |
2023/01/15(日) 16:38:48.05ID:+F45TDzj
テスラ車を突然襲う「ファントムブレーキ」、米NHTSAが調査に本腰
https://www.gizmodo.jp/2022/02/what-causes-phantom-braking-in-tesla-cars.html
https://www.youtube.com/watch?v=gG2joDBwvUk

調査の対象となる去年と今年の北米市場版Model 3とModel Yは8つのカメラオンリーです。前方の障害物を認識するレーダー(競合EVの間では自動運転に不可欠というのが常識)は装備されていません
0941デフォルトの名無しさん
垢版 |
2023/01/15(日) 17:01:49.92ID:4g2lfxWa
>>935
コードがスパゲッティだと安全性に問題あり→分かる
コードがスパゲッティだと裁判で負ける→そんなわけない
0943デフォルトの名無しさん
垢版 |
2023/01/15(日) 17:55:36.90ID:5NYA+kvP
>>937
Pathはsliceだから生のままでは返せないよ

Stringとstr
OsStringとOsStr
PathBufとPath
の関係
0944デフォルトの名無しさん
垢版 |
2023/01/15(日) 17:56:08.44ID:JkaIrkhI
>>939
今度は
>error[E0515]: cannot return value referencing temporary value
そりゃそうだが動的に生成したPathは返せないのか?
0947デフォルトの名無しさん
垢版 |
2023/01/15(日) 19:54:34.79ID:m9lyhdrZ
>>944
動的に生成したパス文字列なら生成した文字列を保持するメモリが必要だからPathBufで返す
関数の中で作成したString(OsString)は関数を抜けるといなくなるからそれを参照する&Pathは返せない
どーーーしても&Pathで返したいなら生成した文字列を保持するための&mut OsStringを渡すみたいな技巧が必要

単純に使いたい関数の引数が&Pathなのであれば&PathBufを&Pathとして使える(&Stringが&strになるのと同じ)
0952デフォルトの名無しさん
垢版 |
2023/01/15(日) 23:28:08.61ID:lfgB9E3M
日本の仕事の進め方的には遠からず当たっているのでは?
うるさい奴を黙らせればおkみたいな会社は多いだろ
0955デフォルトの名無しさん
垢版 |
2023/01/16(月) 01:05:51.67ID:N6G/4L1i
最初の[u8]渡してエラーになってるやつは
&[u8]を渡して&Pathを返す関数にするのが一般的
0956デフォルトの名無しさん
垢版 |
2023/01/16(月) 08:09:07.68ID:iSnf76Rg
let mut v:Vec::<u8> = Vec::new();
let mut t = tar::Builder::new(v);
と書くと1行目がwarning: variable does not need to be mutableになるんだけど
こういうときってどう書くのがいいのだろうか
コンパイラのチェックや動作に問題がなくても変化する変数をイミュータブルで
宣言するのは可読性が落ちるし
0957デフォルトの名無しさん
垢版 |
2023/01/16(月) 08:16:50.14ID:uVn9RqoF
>>956
少なくともvは一度も変更せずにtar::Builderにムーブされてしまうのだから
素直にmut取ればいいと思うけど
ムーブ先で将来的に変更される可能性のあるものすべてにmutを付けるというのは
特に可読性良くもないと思う
0958デフォルトの名無しさん
垢版 |
2023/01/16(月) 08:26:33.56ID:uVn9RqoF
というかその理屈だと
let b = a;
let c = b;
let d = c;
とムーブしたときにdをmutにしたくなったら依存関係を遡って全部にmutつけてまわるのか?
0959デフォルトの名無しさん
垢版 |
2023/01/16(月) 14:37:28.51ID:2c24Nzcv
Chromium、プログラミング言語「Rust」をサポートへ
https://news.mynavi.jp/article/20230116-2564518/

米Googleは1月12日(現地時間)、これまで展開してきたChromiumプロジェクトにおいて、新しくプログラミング言語「Rust」をサポートしていくと明らかにした。来年にはRustで書かれたコードをChromeのバイナリに含めることができるようになるという。

Rustは、もともとFirefoxなどを提供しているMozillaがブラウザ開発のために作ったプログラミング言語。GoogleはRsutをChromiumに導入する目標として、開発のスピードアップやセキュリティの向上を挙げており、この達成にはRust採用が適切だと言及。
Mozillaのソフトウェア業界への貢献に対して感謝すると述べている。なお、ChromiumにおけるRustのサポートは、しばらくC++からRustへの単一方向に限定するという。
0963デフォルトの名無しさん
垢版 |
2023/01/16(月) 15:43:26.07ID:6Q5nPNp3
>>962
古のイキリCOBOLコーダーと同じメンタリティだな
0965デフォルトの名無しさん
垢版 |
2023/01/16(月) 16:24:22.58ID:TYpkB5sr
Rustももう少しC/C++に寄せてくれたらよかったのにな。
C++をうまく拡張してメモリまわりとかどうにかならんにかな。
maneged C++、、C++/CLI、、、うっ、頭が。
0966デフォルトの名無しさん
垢版 |
2023/01/16(月) 16:35:50.18ID:IKYjLHSG
なんでわざわざ避けるべきものに寄せる必要があるんだよ
0967デフォルトの名無しさん
垢版 |
2023/01/16(月) 16:38:52.96ID:qYPB25TW
Rust好きは、関東の人が世界で一番関東料理が優れていると思い込んでいるみたいな話だな。
0968デフォルトの名無しさん
垢版 |
2023/01/16(月) 16:41:14.88ID:1njlGWhp
C++ の改定の歴史を見ればわかるだろう。
互換性を維持して便利に改良! なんてやってたらわけのわからん歴史的事情の積み重ねでグダグダになるんだってば。
互換性は絶対要件にしないが似て非なるものという程度の改良だとそれはそれで新しいキメラになるだけだし。

知見を踏まえつつも新しく設計するというくらいでようやくスッキリと整理されたものが出来る。
でも現実はね、現実がそんなに綺麗なもんじゃないからそれに使うプログラミング言語もいくらか汚い部分があるのは仕方がないのや。
Rust の汚い部分は unsafe に集約されてるから簡単に未定義を踏めてしまう C++ より比較的マシって話。
0969デフォルトの名無しさん
垢版 |
2023/01/16(月) 16:52:33.55ID:qYPB25TW
Rust用語派は同じような話ばかりで、C++の問題点を解決したからRustは良くなっ
たと。しかし、それはfactではない。
0970デフォルトの名無しさん
垢版 |
2023/01/16(月) 16:54:19.39ID:1GjRSVL7
関東料理て何だよww
広東なら知ってるが
0972デフォルトの名無しさん
垢版 |
2023/01/16(月) 17:16:54.53ID:qYPB25TW
Rustという英単語から「枯れた」という印象を受けてしまう人も多いんだろうが、
実際のRustの言語定義は、枯れているとは言い難い出来で独自な奇妙で新しいもの。
枯れている=古いが便利 というニュアンスとは全く当てはまってない。
0974デフォルトの名無しさん
垢版 |
2023/01/16(月) 17:23:10.52ID:/Oj6b8p3
> Rustという英単語から「枯れた」という印象を受けてしまう人も多い

まずこれがおかしい
0977デフォルトの名無しさん
垢版 |
2023/01/16(月) 19:29:31.29ID:TjR5adpl
>>957-958
イミュータブルで宣言した中身が書き変わってしまうようなコードはムーブ後であったとしても
ttps://doc.rust-lang.org/book/ch03-01-variables-and-mutability.html
このあたりの説明と矛盾しない?

tar::Builder::new()の引数の中身が書き変わらないことを期待されるということはないだろうし
ミュータブルのものだけ通るようになっていた方が宣言と動作が一致すると思うけど
何か不都合があるのだろうか
0978デフォルトの名無しさん
垢版 |
2023/01/16(月) 19:41:55.12ID:EhSk+RRY
>>977
変数とその変数が指している先がごっちゃになってる予感。
0979デフォルトの名無しさん
垢版 |
2023/01/16(月) 19:46:19.45ID:EhSk+RRY
>>977
あと旧来の変数への代入とletバインディングもごっちゃにしてる予感。
0980デフォルトの名無しさん
垢版 |
2023/01/16(月) 20:02:08.69ID:WqklweoR
>>977
たぶんmutが値の不変を示しているという理解なんだと思うんだけど
mutはあくまでバインドしてる変数を通して変更操作ができるかどうかしか言ってない
値の不変は型で示されるもので、例えば&[u8]ならそこからどうムーブしようがmutつけ外ししようが値は不変
逆に言うとVec<u8>と宣言した時点で値は可変だと言ってることになる
なのでtar::Builder::newの引数がVec<u8>を取るのは可変を要求していて、宣言と動作が一致している
0983デフォルトの名無しさん
垢版 |
2023/01/17(火) 11:45:58.31ID:FU2QjMV4
>>979
そこは従来の宣言+初期化と本質的な違いはないからごっちゃにしてても構わない
0984デフォルトの名無しさん
垢版 |
2023/01/17(火) 11:51:09.90ID:1F7zkQ+V
>>980
次スレヨロシッコ
0986デフォルトの名無しさん
垢版 |
2023/01/17(火) 18:21:49.35ID:+DkoRQk8
>>978-980
それってC/C++のポインタとポインタが指し示す先にある実体の関係に似ていると思うけど
The Bookのどこに書いてあるんだ?
新しめの言語はC/C++の反省?からかポインタを意識させないようなのが多いと思うし
スカラー型と非スカラー型を明確に区別して扱う必要があるのであればなおさら重要じゃないかな

>>980
動作はわかるけどソースを見たときの直感と動作が一致してるかは疑問
C/C++のconstとかも何が修飾されるのか判りにくいけど同じ問題があると思う
0987デフォルトの名無しさん
垢版 |
2023/01/17(火) 20:03:43.04ID:kyV1E/lM
>>986
個人的には一貫して直観的だと思うけど、
完全に理解した上で分かりにくいというならしょうがないんじゃない
感じ方は人それぞれだし
0989デフォルトの名無しさん
垢版 |
2023/01/18(水) 00:25:00.21ID:Pm4bFalo
into_inner() はムーブする、get_ref() はムーブしないという理解で合ってますか?
0990デフォルトの名無しさん
垢版 |
2023/01/18(水) 00:51:09.43ID:w7TKdBn9
>>989
命名的にはだいたいそうだろうという予測はつくが正確にはメソッドシグニチャを確認して
0993デフォルトの名無しさん
垢版 |
2023/01/18(水) 11:09:32.47ID:pgep9wBY
>>992
既にあるスレ使ってからにしろよ
0995デフォルトの名無しさん
垢版 |
2023/01/18(水) 12:42:52.69ID:bufcBpA/
ワッチョイいれると原理主義者しか残らなくなるからいらない
特に技術系スレで論理性がなくなるのは致命的
0996デフォルトの名無しさん
垢版 |
2023/01/18(水) 12:51:28.61ID:XUj03KlL
言うほど論理性があったか?
ワありで別に困らないし、ありとなしで並走して人が多いほうに行くわ
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 39日 10時間 23分 50秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。