Rust part22at TECH
Rust part22 - 暇つぶし2ch922:デフォルトの名無しさん
24/02/19 23:17:36.45 aeOZND98.net
サーバーエンドでバイナリサイズなんてどうでもいいけど専有メモリ量がJavaやGoより小さいのはよい

923:デフォルトの名無しさん
24/02/20 03:09:16.36 sgoVzbhC.net
Rustってcargo buildとかやると通信量結構えげつない

924:デフォルトの名無しさん
24/02/20 08:39:03.07 VuVDzPkr.net
依存関係があるライブラリをダウンロードすれば Rust に限らず
それなりにたいくさんひっついてくるのはよくあること。

925:デフォルトの名無しさん
24/02/20 08:51:21.95 HobPlk1l.net
C++でビルドする前にapt-getしてね、ってのも同じことだしな

926:デフォルトの名無しさん
24/02/20 09:54:42.94 avQkuhyK.net
Rustだと依存ライブラリの数が桁違いに多くなるのが原因

927:デフォルトの名無しさん
24/02/20 10:20:25.82 VuVDzPkr.net
お前それ、 JavaScript の前でも同じこと言えるの?

928:デフォルトの名無しさん
24/02/20 10:20:33.45 kmanQ674.net
>>903
その通り
Rustの次に期待

929:デフォルトの名無しさん
24/02/20 13:00:59.06 MPPpoDC+.net
>>907
ブロックが波カッコだったらなぁと思ったことある。

930:デフォルトの名無しさん
24/02/20 13:46:52.53 sgoVzbhC.net
一回DLしたパッケージOSにキャッシュしてくれればいいんだけど
そうじゃないから学習でやってると無尽蔵に取りにいくのはなんとかならんのか

931:デフォルトの名無しさん
24/02/20 14:05:25.22 VuVDzPkr.net
>>919
えっ、普通にキャッシュしますが……。

932:デフォルトの名無しさん
24/02/20 14:18:44.11 YaBXE8T+.net
>>919
1回しかダウンロードしない
その後はそのキャッシュを用いる

933:デフォルトの名無しさん
24/02/20 14:47:39.06 NZma60kC.net
それよりディスク使いすぎだろ
ビルドの中間生成物が簡単にギガ単位になる

934:デフォルトの名無しさん
24/02/20 15:44:30.40 s70xdtq8.net
>>922
それな
複雑なコンパイラでインクリメンタルビルドを高速化するには空間性能を犠牲にするしかないんだろ

935:デフォルトの名無しさん
24/02/20 15:54:29.36 VuVDzPkr.net
大きなライブラリは動的リンクすることにしてもいいけど、
そしたら実行環境の管理と開発環境の管理を分離しづらくて面倒くさくなる。
どうやったってどこかに負担はかかるならストレージさえあれば
だいたい解決ってほうがいいという戦略なんだろ。

936:デフォルトの名無しさん
24/02/20 18:32:02.94 NZma60kC.net
Rustほどディスク使う言語他にあるの?
桁違いに多いと思うんだが

937:デフォルトの名無しさん
24/02/20 18:32:44.23 pzacWR0B.net
ディスクはまあTB行かなければ何をやっても良いわ

938:デフォルトの名無しさん
24/02/20 18:46:34.01 2x98KEBQ.net
ビルドキャッシュの一部を何もしなくてもプロジェクト跨いで共有してくれればまだいいんだけどね
用途的に外部ストレージやNASに置くようなものじゃないというのが困るところ

939:デフォルトの名無しさん
24/02/20 18:56:04.80 qhUDP5tY.net
Rust (cargo)のソースダウンロードしてすべて同一マシンでビルドする前提の設計はいいと思う。
soとかdllとかjarみたいなの、あまり信頼したくないというか。

940:デフォルトの名無しさん
24/02/20 19:01:23.73 aUCxPGU2.net
Crates.ioを信頼してどうせ落ちてきたもの毎回ソース全行確認したりはしないんだから、落ちてくるものがバイナリになっても別に良いかな

941:デフォルトの名無しさん
24/02/20 19:12:55.50 HobPlk1l.net
so使ってsymbol not foundとかよくあるしな
基本的にC++ソフトのビルドは作者が使ってるディストリでしか再現しないと思ったほうがいいくらい
しょうがないからDockerでビルド環境作ったりするけど面倒だしディスクも食うし
結局ディスクキャッシュが多少多いくらいで済んでるRustが一番マシな気がする

942:デフォルトの名無しさん
24/02/20 19:56:43.04 hRyg00SZ.net
soが悪いのではなくまともなパッケージマネージャーもまともな依存解決ツールもないのが悪い

943:デフォルトの名無しさん
24/02/20 20:07:01.59 +of8n4/M.net
確かにOS非依存のC++標準パッケージマネージャと中央レジストリがあれば良かったかもね
ただその場合でもABIが不安定なのはどうしょうもないから
Rustと同じく手元で全部コンパイルする方式になったと思うけど

944:デフォルトの名無しさん
24/02/20 20:11:30.03 VuVDzPkr.net
Cargo 風の管理をする C++ 用パッケージマネージャはある。
最初からそのパッケージマネージャ用に構成してくれてないと
なかなか素直にはビルドできないことに変わりないんだけど。
パッケージマネージャが優秀でも C++ 世界では
「統一されていない」ことが面倒くささになってる。

945:デフォルトの名無しさん
24/02/20 21:39:15.46 1smOJz8O.net
そう考えると中間言語形式で配布できてAOTコンパイルもできる.NETがさいつよって話?

946:デフォルトの名無しさん
24/02/20 21:43:07.30 BYbBGAeA.net
NuGetが使いやすいと感じた事がないし、充実していると感じたこともない

947:デフォルトの名無しさん
24/02/20 21:59:58.18 VuVDzPkr.net
>>934
dotNET は事前コンパイルしてもランタイムサポートの分厚さ (にかかる実行コスト) は避けられないので
コンピュータの性能を絞りきるようなつよつよ最適化は無理じゃないかなぁ。
いろんな方式の良いところを上手く取り入れて総合的には良いものに仕上がってるとは思うけど
それが最強かというと状況によるんじゃないの。

948:デフォルトの名無しさん
24/02/20 22:14:04.42 sgoVzbhC.net
>>921
チャプターサンプル毎にプロジェクト作ったら毎回DLしてるように見えるけど

949:デフォルトの名無しさん
24/02/20 22:16:27.29 FbkkUU+G.net
パッケージの使い勝手という意味ではdocs.rsの存在も大きい気がするな
どんな野良ライブラリでも決まった場所に決まったフォーマットのAPI一覧が確実に存在するというのはかなり便利

950:デフォルトの名無しさん
24/02/20 22:30:04.17 VuVDzPkr.net
ドキュメントを全く書かなくても少なくとも公開されている一覧はわかるってのは強い。
最悪の場合でもコードへのリンクもあるし。
Haskell のリポジトリがこういう感じだったので他の言語でもこれくらいやればいいのにと思ってたから
Rust で取り入れてくれたのはかなり嬉しい。

951:デフォルトの名無しさん
24/02/20 22:37:39.60 NZma60kC.net
>>926
いや、スマホでセルフ開発する時に困るだろ?

952:デフォルトの名無しさん
24/02/20 22:45:53.34 VuVDzPkr.net
>>940
そんなやつはおらんで~~

953:デフォルトの名無しさん
24/02/20 22:47:07.61 1CgxDriU.net
ス、スマホ?

954:デフォルトの名無しさん
24/02/20 23:05:21.55 YDnp1LJs.net
procマクロとかコンパイル環境で展開したいものを除くとtarget指定した環境に依存するだけだから手元でコンパイルする必要性は全くない

いずれにしろどこでビルドするかと中間生成物のサイズが異常にデカくなる話とは別の話だよね

955:デフォルトの名無しさん
24/02/20 23:07:55.15 VuVDzPkr.net
もしスマホで開発する人がいたとしても
レンタルサーバに接続して表面上の操作にスマホを使うだけで、
実質的なストレージ・計算リソースはサーバのものを使う形にするのが普通。
スマホ内で完結させようとしたらツールチェインをセットアップするだけでもクソ面倒くさい話になるぞ。

956:デフォルトの名無しさん
24/02/21 00:35:56.53 ax8uXPdD.net
働いてないとスマホで開発するとかいう前代未聞の人間がいるんだな

957:デフォルトの名無しさん
24/02/21 01:44:30.82 q3i686zw.net
スマホで開発はむしろ最先端

958:デフォルトの名無しさん
24/02/21 05:17:16.65 cGlapTzK.net
iPhoneが出たばかりの頃から、脱獄して開発環境を入れてObjective-Cでプログラミングしてる人は一定数居ただろ。
最近では、どのプログラミング言語でも使えてLinux(Android)と遜色ないよ。
今のスマホは、外部モニターも外部SSDも繋げるし、外部グラボのGPUでLLM開発だってできる。ほぼほぼRaspberryPi5と変わらないよ。
だからこそ組み込みにも強いRustが注目されてるんジャマイカ

959:デフォルトの名無しさん
24/02/21 05:44:41.84 cGlapTzK.net
スマホでRustformersからLLM開発する場合、ローカルにOllama入れとくか、サーバにGPT-4やLlama2を入れとくかぐらいの違いしかない。
Google Coralもスマホでも使える前提の製品で、このチップは発熱量が減ればスマホに内蔵されるだろう。
実際、Vision Transformerのような技術を応用しているApple Vision Proが製品化されたから、スマホからこういった機器に移行するのかもしれない。
今後数年間、これらの技術動向から目が離せない状況が続くんだろう。

960:デフォルトの名無しさん
24/02/21 08:28:43.22 /iiJfWDN.net
ダウンロードしたクレートキャッシュの自動削除はもうすぐ来そう
ビルドキャッシュの自動削除はその後実装予定っぽい
URLリンク(blog.rust-lang.org)

961:デフォルトの名無しさん
24/02/21 08:31:36.21 /iiJfWDN.net
グローバルなビルドキャッシュ共有の話も予定には挙がってるね

962:デフォルトの名無しさん
24/02/21 09:05:07.84 33Eh81yS.net
>>934
何を基準でさいつよかの定義による

デスクトップ
Web
バックエンド
iOS/Android
ゲーム

とC#だけで全部作れる
各分野でベストな選択肢では無いけど平均点以上のベターではある
とりあえずC#使えれば何でも作れるという意味ではさいつよ

963:デフォルトの名無しさん
24/02/21 09:19:16.71 VUY6mIOu.net
>>951
.netの毎年の長文blog最適化レポートを見ると2年後くらいでNativeAOT最適化がC/C++に肉薄すると思う

964:デフォルトの名無しさん
24/02/21 10:25:34.81 ygn/feiE.net
デスクトップ
Web
バックエンド
iOS/Android
ゲーム

とC言語だけで全部作れる
各分野でベストな選択肢では無いけど平均点以上のベターではある
とりあえずC言語使えれば何でも作れるという意味ではさいつよ
チューリング完全なので

965:デフォルトの名無しさん
24/02/21 10:33:55.14 3B94ePzU.net
無能なやつほどゴールデンハンマー症候群に罹患しやすい

966:デフォルトの名無しさん
24/02/21 10:37:42.60 33Eh81yS.net
>>953
嘘ばっかりだなw

967:デフォルトの名無しさん
24/02/21 12:23:52.50 FRHKNAr+.net
>>949
さすがに問題として認識はしてたんだな
スマホセルフ開発の日は近い

968:デフォルトの名無しさん
24/02/21 12:50:43.67 ax8uXPdD.net
マジでスマホしか持ってないの?
クソワロタ

969:デフォルトの名無しさん
24/02/21 13:41:48.13 s/93fWsg.net
ウェアラブル系の機器には失望した。
どこへでも持っていけるよりどこへも往く必要のないインフラこそ目指すべき未来だろ。

970:デフォルトの名無しさん
24/02/21 14:32:00.13 T2E+AzfY.net
>>954
同意

971:デフォルトの名無しさん
24/02/21 15:10:22.61 KvtS9dqN.net
>>958
背もたれ付きベッド

972:デフォルトの名無しさん
24/02/21 15:11:12.28 KvtS9dqN.net
>>953
Rustはチューリング安全だぞ

973:デフォルトの名無しさん
24/02/21 16:06:34.40 RjxZ1GsP.net
>>957
働いてないと「スマホで開発==スマホしか持ってない」という発想になるんだなww

974:デフォルトの名無しさん
24/02/21 16:15:10.41 cGlapTzK.net
>>960
ベッドといえばフランスベッドが取り扱ってるAI 視覚支援機器『オーカム マイアイ2』(OrCam MyEye 2)は、
イスラエルのオーカムテクノロジーズ(OrCam Technologies Ltd)の製品だったな。
これは活字の読み上げみたいだけど、寝具メーカーは、どこへも往く必要のない未来インフラをAI使って目指してるんだろう。
ウェアラブル系が狩猟型・動物型とすれば、寝具系は農耕型・植物型なんだろうな。人間は生活の約3割は寝てるんだから当然だけど。

975:デフォルトの名無しさん
24/02/21 16:30:25.40 vYwp44u6.net
表向きはどうであれたぶん寝たきり用だから話を膨らませるのはそのくらいにしとけ

976:デフォルトの名無しさん
24/02/21 16:47:28.48 OHlXXLmE.net
いくらなんでもスマホでコーデングはせんやろ

977:デフォルトの名無しさん
24/02/21 16:49:23.05 1mshJDzd.net
寝たきりで親指しか動かないとかならスマホでコーディングするかもしれん

978:デフォルトの名無しさん
24/02/21 16:54:05.86 s/93fWsg.net
性能がどうこうよりもシンプルに画面が狭いのはすごくつらい。
無理。

979:デフォルトの名無しさん
24/02/21 18:17:59.27 ax8uXPdD.net
>>962
いやお前に当てはめてるだけだぞ
何言ってんだ?

980:デフォルトの名無しさん
24/02/21 21:37:40.46 4F0o6gVI.net
はちみつ餃子氏最近見ないからRust関連は触れないことにしたのかと思ったらコテ外して書き込みに来ててわろた

981:デフォルトの名無しさん
24/02/22 16:00:18.09 o0M/RgFs.net
>>969
新スレ立ったときに名前欄に入力するのを忘れてたままやな

982:デフォルトの名無しさん
24/02/22 23:42:55.14 1e40BABA.net
>>949
毎晩ならその機能もう使えるのか

983:デフォルトの名無しさん
24/02/23 12:05:46.18 vPqrWVzU.net
今のスマホって値段はPC並みなんだから、スマホでの開発環境出てこいと思わなくも無い。
もちろんその場合は外付けのディスプレイとキーボードつけるだろうが。

984:デフォルトの名無しさん
24/02/23 12:05:51.79 vPqrWVzU.net
今のスマホって値段はPC並みなんだから、スマホでの開発環境出てこいと思わなくも無い。
もちろんその場合は外付けのディスプレイとキーボードつけるだろうけど。

985:デフォルトの名無しさん
24/02/23 15:12:44.34 z6SHyxko.net
iPadでXcode使えるからそれで遊んでみれば

986:デフォルトの名無しさん
24/02/23 15:20:09.67 CheDQupm.net
Rustが使えないとな

987:デフォルトの名無しさん
24/02/23 15:21:05.22 jTrUecQ5.net
クソスレまで立てちゃってw
素直に中古のノートPCでも買えよ

988:デフォルトの名無しさん
24/02/23 16:04:17.89 02Kw336h.net
traitの種類多すぎて把握しきれん
使い分けもようわからんし

989:デフォルトの名無しさん
24/02/23 16:18:25.67 NJWNbZ5N.net
Pythonのpep20みたいなってRustにもあるの?

990:デフォルトの名無しさん
24/02/23 16:32:06.33 eHVJk53E.net
スマホやタブレットなどのモバイルOS上に開発環境用意するのは主に2つユースケースがある
1つはモバイルOS上で実行させる小さなユーティリティを作るため
だいたいlinux emulatorみたいなアプリ内環境で稼働させる
もう一つは出先の空いた時間や障害対応等の緊急時にノートPCを持ち歩かなくても簡易的な作業なら対応できるようにしておくため

前者はスマホだけで作るやつもいるにはいるが少数派
なので今のところはメイン開発環境は別に用意してるのが大半

991:デフォルトの名無しさん
24/02/23 17:15:31.94 kgcjkDLJ.net
PEP20って何だよと思ったらあのウンコポエムだった

992:デフォルトの名無しさん
24/02/23 17:26:44.63 kgcjkDLJ.net
次スレタイトル間違えてしまったのですまんが誰か立て直してくれ
規制食らってもう立てられなくなった

993:デフォルトの名無しさん
24/02/23 17:35:21.56 CheDQupm.net
>>977
traitとは機能を抽象化した抽象型だから使いたい機能のtraitを選ぶか作ればよい
structなどの具象型は各々必要な各機能(trait)を実装しているもしくは実装すればよい
そして抽象型(trait)を用いてプログラミングすることでその機能を実装する全ての具象型を対象とした共通コードにできる

994:デフォルトの名無しさん
24/02/23 17:38:39.47 CheDQupm.net
次スレ
Rust part23
スレリンク(tech板)

995:デフォルトの名無しさん
24/02/23 17:45:54.27 kgcjkDLJ.net
>>983
ありがとう

996:デフォルトの名無しさん
24/02/23 17:51:32.20 jYYzpIEX.net
>>978
こういうのをまとめようとはしているよ
URLリンク(smallcultfollowing.com)

997:デフォルトの名無しさん
24/02/23 20:10:18.94 1IK2X2kO.net
>>982
FromとかAsRefとかDerefとかの時点でもうようわからんぜ

998:デフォルトの名無しさん
24/02/23 22:42:10.08 oukljDwS.net
Fromは汎用的な変換だよ
変換に失敗する可能性を含む時はTryFromを使う
AsRefは参照から(別型の)参照への読み替え変換
コストがかからない場合が対象
コストがかかるものはFromを使う
Derefは変換ではなく演算子
変換は複数の型への変換を実装できるけど
演算子なので各型で決められた一つの型へderefできる
&T→T
Box<T>→T
Rc<T>→T
Vec<T>→[T]
String→str
PathBuf→Path
など

999:デフォルトの名無しさん
24/02/23 23:50:59.87 1IK2X2kO.net
あー。それぞれの比較はまあそうなのかもしれないんだけど、そもそもどういうtraitがあってどういう時に使うべきなのかを全て把握できてないせいで実際にコード書く時にどれを使うとRustらしいコードになるのかわからなくなるってのがしんどいんだよね

1000:デフォルトの名無しさん
24/02/23 23:59:41.76 hX/YHnPg.net
>>988
どの分野のどんな話でも基本パターンの学習による慣れ
問題
match std::env::args().XXXXX {
 Some("yes") => ...,
 Some("no") => ...,
 _ => ..., // エラー
}

1001:デフォルトの名無しさん
24/02/24 02:12:39.95 YQ3M0cmx.net


1002:デフォルトの名無しさん
24/02/24 04:00:00.27 felFEjYK.net
「当然こういうのが標準ライブラリにあって然るべきだろう」みたいな感覚ができるから結局は慣れ。
常識的に考えてあるだろうと思ったら nightly だったみたいなこともよく経験するから俺が欲しいようなものはみんな欲しいんだなと思う。
実質的に言語の一部みたいなくらいのやつは嫌でも避けられないから何度もドキュメントを読み返すはめになるし、そのうち自然に使えるようになる。

1003:デフォルトの名無しさん
24/02/24 12:21:57.67 lhpjpr9r.net
>>987
Derefは演算子でも利用されるがDerefそのものが演算子(や演算子の実装)というわけではない
Type Coercionというのは型変換(Type Conversion)の一種なのでDerefは変換ではないというのもやや言い過ぎ
各型で決められた一つの型にderefされるのは演算子だからという理由ではなくて
Derefはスマートポインタが包んでる値へのアクセスを便利にするために用意されたものだからderef先の型は自然と一つに決まるため(>>733)
&T→TはDerefの役割ではない

1004:デフォルトの名無しさん
24/02/24 12:57:43.72 Sbx59RJL.net
AsRefとBorrowは未だにわからんなあ
調べてもHashMapがBorrow要求するならそこだけBorrow使っておけばいいか……で思考停止してる

1005:デフォルトの名無しさん
24/02/24 13:58:08.04 Q2pRspv0.net


1006:デフォルトの名無しさん
24/02/24 13:58:23.94 Q2pRspv0.net
生め

1007:デフォルトの名無しさん
24/02/24 13:58:40.99 Q2pRspv0.net
、埋め

1008:デフォルトの名無しさん
24/02/24 13:58:46.56 Q2pRspv0.net
!埋め

1009:デフォルトの名無しさん
24/02/24 13:58:52.17 Q2pRspv0.net
?埋め

1010:デフォルトの名無しさん
24/02/24 13:59:00.55 Q2pRspv0.net
○埋め

1011:デフォルトの名無しさん
24/02/24 13:59:07.65 Q2pRspv0.net
~埋め

1012:1001
Over 1000 Thread.net
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 34日 14時間 37分 28秒

1013:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch