X



Rust part9

レス数が1000を超えています。これ以上書き込みはできません。
0900デフォルトの名無しさん
垢版 |
2021/03/20(土) 12:46:24.31ID:ZBpm47pR
デフォルトでは利便性やリンクの高速化のために大きくなってるけど
組み込み用途ならちゃんと最小化する方法はあるし
Cと同程度まで縮むよ
0904デフォルトの名無しさん
垢版 |
2021/03/21(日) 22:19:00.80ID:k7ifup1R
依存しているクレートが多いとビルドが長い、いい加減にしろ。なんじゃこりゃ
0907デフォルトの名無しさん
垢版 |
2021/03/22(月) 01:39:21.20ID:g4YfSh3E
Rust の実行ファイルが大きくなりがちなのは何でもかんでもスタティックリンクする文化であって、
そうしてでもうんざりするような (実行時の) 依存関係に悩まされたくないという話なので、
不要なもので肥大化しているわけじゃないよ。 本来必要なものがあるだけ。

もちろん制約の大きい組み込み環境でごく基本的なライブラリすら制約してまで
大きさを削ったら使い勝手は悪いだろうけど、
それは Rust に限った話でもない当たり前のことだし。

メモリが数キロバイトとかいうレベルだったら (少なくとも現時点では) Rust が不向きというのはそうかもしれない。
そんで特に Rust を使いたいというケースでもない。
0909デフォルトの名無しさん
垢版 |
2021/03/22(月) 03:18:48.61ID:4PFilboR
Linuxのディストロだとなるべくダイナミックリンクにするようにしてると思うんだけど
Rust製ツールとその方針の相性悪い気がする
0913デフォルトの名無しさん
垢版 |
2021/03/22(月) 14:52:55.38ID:g4YfSh3E
そこんところは golang とか rustlang とか書く風習が出来てるから
たいした問題ではないんだが、 C のことを clang とか書き始めるやつが出てきてクソッタレという感じ。
よそでどんな習慣が出来てもいいけど変な汚染するなよな〜〜という。
0917デフォルトの名無しさん
垢版 |
2021/03/22(月) 18:00:28.80ID:RaSrXyKY
>>909
というよりその方針だとsoのバージョン非互換で問題が起きて大変なので
GoやRustなど最近の言語はダイナミックリンクを避けている。
0919デフォルトの名無しさん
垢版 |
2021/03/22(月) 20:15:31.61ID:gSVpx604
>>917
ディストロがビルドして配るバイナリの話だからバージョン非互換は関係ないのでは
非互換が問題になるならソースにパッチ当てられる訳だし
goも同じ問題があるというのはそうだけど
0920デフォルトの名無しさん
垢版 |
2021/03/22(月) 21:30:42.61ID:G3nK37aG
>>919
そもそも最近はディストロのパッケージ管理システムに乗りたくなくなっているのでは?いろいろなディストロのいろいろなバージョンに対してバイナリを提供すること自体が大変で。
Gentooやってると依存関係ミスっててコンパイルこけるとかよくある。
(そういう意味でもGoやRustはかなりコンパイルに失敗しづらくて安心感はある)
退化している感もあるけど、GitHubで全ディストロ対応のシングルバイナリ配るのが結局楽だった、という感じなのかも。
0922デフォルトの名無しさん
垢版 |
2021/03/22(月) 22:40:19.34ID:qQVVw1tm
場合によっては違うバージョンのライブラリが共存することもあるし
ファイル名のルールでどうにかしたりはすごく面倒

近頃はコンテナにまるごと突っ込むとか言った解決法も取れるが、
それなら全部スタティックリンクしたらええやんというのは
順当な方針だよな
0923デフォルトの名無しさん
垢版 |
2021/03/22(月) 22:41:18.91ID:iFQHROzx
パッケージのバージョン管理とかRustは最近のnpmばりによくできてるんじゃないの
知らんけど
0925デフォルトの名無しさん
垢版 |
2021/03/22(月) 23:22:40.71ID:4PFilboR
Ruby, Python, Rとか言語独自のパッケージ管理システムもありつつ
同時にディストロのパッケージ管理システムにも有名ライブラリだけは乗ってたりして
なんか二重管理みたいな変な事になってる
0926はちみつ餃子 ◆8X2XSCHEME
垢版 |
2021/03/23(火) 01:05:05.52ID:G0iN/IIq
開発環境が用意するパッケージ管理は開発環境の管理だし
ディストリビューションの管理は実行環境の管理なんだけど、
ライブラリが実行環境なのか開発環境なのかは不可分な部分もあって単純に二分できんのよ。

C/C++ のライブラリのパッケージ管理が発展してないのは伝統的に
ディストリビューションのパッケージ管理に全力で乗っかる文化があったからで、
モダンな開発環境は分けようとしてかえってややこしくしているような気もする。
元々あった問題があぶりだされただけかもしれんけど。
0927デフォルトの名無しさん
垢版 |
2021/03/23(火) 01:20:30.89ID:27d1w4K5
まあlibcのバージョン違いで困った経験あると、スタティックリンクはやむ無しって思うけど。
0928デフォルトの名無しさん
垢版 |
2021/03/23(火) 02:36:10.01ID:yC2dAiwP
>>913
コンパイラをclangという名前にしてしまったAppleが馬鹿なだけ。
ライバルにMSのcl.exeというものが30年ほど前からあるだけでも
ややこしいのに。
0929デフォルトの名無しさん
垢版 |
2021/03/23(火) 09:53:23.27ID:KOWk2YN0
>>926
C/C++全盛の頃はコードを書く人と使う人が一致してることが多かったから問題なかった気がする。
自分の環境さえ正しくセットアップすればそれで問題ないという。
今みたいにGitHubでコード共有するのが当然って世界だと違う環境でビルドするのが困難ってのはきつい。
OSSのC++ライブラリを使おうとしたときに、作者と違うディストリビューション使ってる場合、ほぼ確実になんらかのトラブルにはまる印象だなぁ。
0930デフォルトの名無しさん
垢版 |
2021/03/23(火) 12:53:42.65ID:71b8io/J
てか低レイヤー依存のパッケージは言語パッケージ管理じゃ扱いづらいだろ。
0931はちみつ餃子 ◆8X2XSCHEME
垢版 |
2021/03/23(火) 15:23:13.29ID:G0iN/IIq
>>928
自分の開発環境に cl.exe があるのを見つけて
「あれ? Common Lisp なんか入れたっけ?」って思ったことがある。
0938デフォルトの名無しさん
垢版 |
2021/03/26(金) 17:25:28.62ID:4e/BtnZ7
親善試合のプレー中でもないのにパンチを繰り出し、歯を折る韓国人の本質
0949デフォルトの名無しさん
垢版 |
2021/03/31(水) 22:41:28.27ID:HIJdwtTD
>要するに、Linuxの記述言語がCからRustへと変わる日は当面の間やってこないだろう。その一方で、Rustベースのプログラムやドライバーをユーザー空間で実行するということに対する関心は高く、それに向けた動きは数多くあるため、いつの日にかLinuxというOSでRustベースのカーネルが採用されるだろう。
まあ当たり前の結論だわな。
0951デフォルトの名無しさん
垢版 |
2021/04/01(木) 10:21:51.12ID:+GSHkYwn
競技プログラミング分野で謎の注目を集めてるよRust
短時間とか早解きが重要なコンテストでは雑に書けないので使いづらいが、長期間のコンテストでは重宝されてる
強い人たちが使ってるのもあって
0953デフォルトの名無しさん
垢版 |
2021/04/01(木) 11:55:32.05ID:/m7p4qXu
まあ9割は単なるファッションだろ。
実際使ってみるとc++で気をつけるのとほぼ変わらんしそれができる輩しかまともに使いこなせん。
0954デフォルトの名無しさん
垢版 |
2021/04/01(木) 12:46:37.61ID:RDEfu8S8
そもそもデバドラならC++でもいいんちゃうん?
Linusが問答無用で許さない感じ?
0955デフォルトの名無しさん
垢版 |
2021/04/01(木) 13:00:07.82ID:Gl2KF2SW
>>954
昔LinusはC++をボロクソに言ってた。特に例外周りがカーネルとは合わないとかだったかな。
今の改心したLinusなら違うかもしれないが。
0957デフォルトの名無しさん
垢版 |
2021/04/01(木) 13:36:29.59ID:3AhSZiXW
思いっきり皮肉だけど「C++独自の機能を使わないならC++でも構わない」みたいなこと言ってなかったっけ
0958デフォルトの名無しさん
垢版 |
2021/04/01(木) 13:53:28.54ID:Gl2KF2SW
オブジェクト指向はクソみたいなのも言ってた気がするし、
当時Linusが文句言ってたポイントをRustはうまく回避してるかも。
0959デフォルトの名無しさん
垢版 |
2021/04/01(木) 14:57:07.23ID:/m7p4qXu
linusはオブジェクト指向はファイルシステム周りでは有効って昔から言ってる。
流石にこの辺りの感覚は鋭いわ。
0960デフォルトの名無しさん
垢版 |
2021/04/01(木) 15:03:37.19ID:Gl2KF2SW
あぁ確かにオブジェクト指向というよりC++のそれにまつわる機能がクソって話だったね。
0964デフォルトの名無しさん
垢版 |
2021/04/01(木) 19:45:16.51ID:0NPo8NNW
>>955
https://tabesugi.net/memo/2009/1a.html
Date: Thu, 6 Sep 2007 18:50:28 +0100 (BST)
Message-ID: <alpine.LFD.0.999.0709061839510.5626@evo.linux-foundation.org>

C++ はひどい言語だ。これは、多くの平均以下のプログラマーが使ってるために
さらに輪をかけてゲロゲロになっていて、どうしようもないゴミが
簡単に生産されるようになってる。正直いって、C を選ぶ理由が C++ プログラマーを
追っぱらうため *だけ* だったとしても、それ自体、C を使う強力な理由になりうる。

C++ はトンでもなく悪い設計の元になりうる。どうせこの言語ではいつも STL やら
Boost やら、その他ゲロゲロベロベロの「素敵な」ライブラリの機能を使って、
それがあんたのプログラムに「役立つ」んだろうが、以下のことが起きる:

- うまく動かないときにもたらされる際限のない苦痛 (あと STL とか、特に Boost が
安定してるとか移植性があるとかいう奴は、どいつもこいつも大ウソつきで、
もはや笑えるレベルを超えている)

- 非効率な抽象プログラミングモデルで、2年たった後にこれらが実はそんなに
効率的じゃなかったことに気づくケース。でもそのときにはすでに全部の
コードがその素晴らしいオブジェクトモデルに依存していて、直すためには
アプリ全体を書き直さなきゃなんない。

言いかえれば、唯一まともで、効率がよくて、システムレベルで使えて、移植性がある
C++ ってのは、基本的に C で使える機能だけに限ったときなんだ。そして C だけに
限定するってことは、他の人がそれをめちゃくちゃにしないってことで、
ついでに沢山のプログラマが実際に低水準の問題を理解することができて、アホらしい
「オブジェクト・モデル」のたわごとを持ちこまないってことだ。
0965デフォルトの名無しさん
垢版 |
2021/04/01(木) 19:48:28.85ID:0NPo8NNW
>>956
>C++は罵詈雑言で二度とそんなこと言うな
>ぐらいで叩いてた

>>964
>正直いって、C を選ぶ理由が C++ プログラマーを追っぱらうため *だけ* だったとしても、それ自体、C を使う強力な理由になりうる。
0966◆QZaw55cn4c
垢版 |
2021/04/01(木) 19:49:27.24ID:0NPo8NNW
>>957
>思いっきり皮肉だけど「C++独自の機能を使わないならC++でも構わない」みたいなこと言ってなかったっけ

>>964
>唯一まともで、効率がよくて、システムレベルで使えて、移植性があるC++ ってのは、基本的に C で使える機能だけに限ったときなんだ。
0967◆QZaw55cn4c
垢版 |
2021/04/01(木) 19:50:55.20ID:0NPo8NNW
>>958
>オブジェクト指向はクソみたいなのも言ってた気がするし、

>>964
>C だけに限定するってことは、他の人がそれをめちゃくちゃにしないってことで、
>ついでに沢山のプログラマが実際に低水準の問題を理解することができて、
>アホらしい「オブジェクト・モデル」のたわごとを持ちこまないってことだ。

>アホらしい「オブジェクト・モデル」のたわごとを持ちこまないってことだ。
>アホらしい「オブジェクト・モデル」のたわごとを持ちこまないってことだ。
>アホらしい「オブジェクト・モデル」のたわごとを持ちこまないってことだ。
>アホらしい「オブジェクト・モデル」のたわごとを持ちこまないってことだ。
>アホらしい「オブジェクト・モデル」のたわごとを持ちこまないってことだ。
0968デフォルトの名無しさん
垢版 |
2021/04/01(木) 20:34:15.03ID:Kccm814S
しかしこの話ももう15年近く前だし、C++20についてどう思ってるのかは気になるな。
相変わらずボロクソなのか、もう少し丸くなってるのか。
0970デフォルトの名無しさん
垢版 |
2021/04/01(木) 20:49:11.47ID:uABybhUU
色々な言語を扱ってみればどんな言語でも"トンでもなく悪い設計の元になりうる"のは
Linusも気がついてるんだろうが、こういう手合いは
単に自分の好みで気にいらない事を否定するのに「一般的に良くないものだ」という
主張を持ちだすから始末がわるい
またこの手の攻撃的な人物は自分の周囲の人間が一般的であると思い込む傾向もあり
たしかにLinuxとオープンソース界隈の人間がC++を使いまくると"トンでもなく悪い設計"に
なりやすいだろうなというのもわかる(そういう界隈の人間は基本的に自由であり
自由にできる幅があるときは自分の思いついた"カッコイイやりかた"をすぐ人におしつけたがる)
0971デフォルトの名無しさん
垢版 |
2021/04/01(木) 21:18:43.80ID:gCHls20K
C++ネタになると書き込みするやつが急に増えるんだからwww
いい加減C++スレでやってね
0972デフォルトの名無しさん
垢版 |
2021/04/02(金) 02:22:20.02ID:6+Rf0OKV
C++に勝てるっていう宣伝文句に惹かれて興味を持った人が多いのだから、本当にC++より良いのかっていうところに焦点が当たるのは宿命
0973はちみつ餃子 ◆8X2XSCHEME
垢版 |
2021/04/02(金) 02:45:25.02ID:kyD8ajyX
>>953
C++ の仕様に違反せずに書くために「気を付ける」程度で本当に足りるのか?
足りないからそこそこの規模のプロジェクトになったら valgrind とかのツールを導入するはめになるんだろ。
十分に知識を持っていても隅から隅まで 100% に配慮するのは無理ってのがわかってるから、
C++ で気を付けるのとほぼ変わらんなら Rust を導入する意義はある。
0974デフォルトの名無しさん
垢版 |
2021/04/02(金) 07:23:26.60ID:fjFXuKAx
規模が大きくなって関わる人数も増えれば気を付けるのもかなりのストレスだしなあ
0976デフォルトの名無しさん
垢版 |
2021/04/02(金) 08:29:19.74ID:2Zgm1hES
c++でもuniqueptrなりconstなりmoveなりはあるわけで、かける人は同じように書けるだろ。
結局かける奴は書けるしかけない奴は書けないってのはどっち使っても一緒だわ
0977デフォルトの名無しさん
垢版 |
2021/04/02(金) 08:54:38.43ID:WBadj+NS
昔は隅々まで配慮できる集中力があった気がするけど
歳とともに無理になってくるからコンパイラに指摘してもらったほうが楽。
いつまでも完璧なC++が書けるならそれはそれで羨ましい。
0979デフォルトの名無しさん
垢版 |
2021/04/02(金) 11:21:45.65ID:QB4/beuH
高度な技術と集中力でミスなく実行すれば
バグは発生しないという妄想に付き合うほど
みんな暇じゃないんだなあ
0980デフォルトの名無しさん
垢版 |
2021/04/02(金) 11:43:52.67ID:2Zgm1hES
だから問題あれば自然にコンパイラで引っ掛かるような書き方してるって話なのに全く通じてねーなこのバカ。
0982デフォルトの名無しさん
垢版 |
2021/04/02(金) 12:21:03.20ID:OROAZ6WR
気をつければ大丈夫の域出てなくて笑う
コンピュータの仕事してるとは思えない、
0984デフォルトの名無しさん
垢版 |
2021/04/02(金) 15:25:20.76ID:2Zgm1hES
そんなところでミスしてなぜかテストも書かない輩みたいな馬鹿を想定する意味がわからん。。
とことん自分の都合のいい馬鹿ユーザーしか想定してないってのが丸わかりだわ。
0988デフォルトの名無しさん
垢版 |
2021/04/02(金) 18:03:13.36ID:fjFXuKAx
そうだぞC++で出るバグや脆弱性はテストで全て回避出来るからな
死ぬ気でテスト書かないと駄目だぞ

コンパイラの警告なんかに頼るのは負けだと思え
0990デフォルトの名無しさん
垢版 |
2021/04/02(金) 20:46:37.44ID:maklZ3nY
C++はメモリへのアクセスの回数やパターンが見た目からはわかりにくいコード
(コードからメモリが透けて見えないコード)にすぐなるから
カーネル製作者としては許容し難い、というのが主要な反対理由のはず
0991デフォルトの名無しさん
垢版 |
2021/04/02(金) 20:48:00.19ID:maklZ3nY
言語がRustであってもC++的な書き方をしているのを見たら怒り狂うことは必定
0993デフォルトの名無しさん
垢版 |
2021/04/02(金) 21:02:46.07ID:fsPcAc13
c++でまともに書けない奴がなぜかrustを使うと書けるようになるとかいうファンタジーを信じるバカの多さよ。。
0994デフォルトの名無しさん
垢版 |
2021/04/02(金) 21:16:34.19ID:OG1TUjqd
「気をつければ大丈夫」みたいな根拠無き精神論って日本の生産性が低い一因だよな
0999sage
垢版 |
2021/04/02(金) 21:35:18.69ID:fsPcAc13
はいはい、まともにrustでc++並の開発速度で製品作ってから言えや。
レス数が1000を超えています。これ以上書き込みはできません。

ニューススポーツなんでも実況