23/12/29 16:40:37.66 fjXA5V8+.net
>>729
>「だけで」と言ってるやつはいないよ。
「だけで」と言ってるやつはいないけど「だけで」判断してるマヌケはいるよね?
まぁほぼ君だけなんだけどさ↓
「メジャーバージョンが0のライブラリなんて怖くてよう使わん」
「0.9で止めるみたいな、特に新機能付けるわけでもないけどfixする気もありません。好きな時に変えたいですみたいなのはサポートとは程遠い」
「1.0を超えてないのは問題外」
「1.0に上げていないライブラリを安定してて信頼できるものとして使うユーザーがいたら「ちょっと待って」って思うだろ」
「1.0になってないものを勝手に信頼するな」
「わざわざ1.0未満で止めているものを勝手に信頼し始めるやべー奴しかいなかった」
758:デフォルトの名無しさん
23/12/29 18:22:07.42 v1Foeynd.net
確かにどう見てもバージョンナンバーだけで判断してるな
759:デフォルトの名無しさん
23/12/29 19:11:58.37 fWvRNSV1.net
俺が書いた内容がID透視によって別の人の書き込み扱いになっていて笑っちゃった
ごめんよ>>729
それはそうと、>>742と>>743も裏と対偶の区別がついていない中卒の主張かな?
「バージョン1未満」と「信頼出来る」でベン図を書いてみて、俺の主著の領域と「バージョンだけで判断」の領域に色をつけてみて欲しい
760:デフォルトの名無しさん
23/12/29 19:28:31.50 fWvRNSV1.net
ああ、それとも「仕様が安定していて信頼出来る」と「あるプロダクトの依存として採用する」の方が良いかな
761:デフォルトの名無しさん
23/12/29 19:32:39.94 0cvltfsQ.net
関連しそうなクレートを全て精査するのは無理なんだから分かりやすい基準で足切りラインを設定するのは普通の処置なんじゃないの。
それがバージョンナンバーでも作者でもダウンロード数でもいいけど、バージョンナンバーでマシそうなのを選出してから細かい絞り混みをするのはそんなに不自然なこととは思わないけどな。
クレートを使う側の選出では偽陰性が増えてでも疑陽性が少ないほうが絞り混みやすいわけだし。
762:デフォルトの名無しさん
23/12/29 20:54:47.18 CCwb5Mxd.net
ベン図も三角関数も
何の役に立つのかを分かりやすく示さなければ足切られる側なんだよな
763:デフォルトの名無しさん
23/12/29 21:21:00.48 qZkdUj+g.net
>>746
そこでバージョンナンバーを考慮することはない
例えば比較の片方が1.xでもう片方が0.3.xだとして何の判断材料にもならない
764:デフォルトの名無しさん
23/12/29 21:52:37.44 fWvRNSV1.net
バージョンナンバーを考慮することはないって意見、同意はしないけど逆裏対偶みたいな基本的な誤りはないのでまあ分野によってはそうかもって感じ
俺も年単位でサポートする気がない書き捨てに近いプログラム書くときはそうだし
765:デフォルトの名無しさん
23/12/29 23:21:04.71 QVcmgKmp.net
バージョンおじさん見苦しい
766:デフォルトの名無しさん
23/12/30 00:00:54.19 xE8SJEDn.net
所有権の複製のときといっしょの流れになってない?w
しょーもないところで食い下がってゴールポスト動かして居座るやつ
767:デフォルトの名無しさん
23/12/30 00:42:52.50 slhZof7h.net
対偶と裏の違いがわかってないから変なゴールポストを幻視してしまうのでは?
768:デフォルトの名無しさん
23/12/30 01:02:25.15 CdBdHENn.net
『「バージョン1未満」は「信頼出来ない」と判断しているが「バージョンだけで判断」していない』
複製オジさんもビックリしてそう
769:デフォルトの名無しさん
23/12/30 01:56:09.99 slhZof7h.net
>>753
はい中卒
>>751
居座るというか、俺へのレスがあるからお返事書いてあげているだけなんだよな
どっちかというと召喚されている
770:デフォルトの名無しさん
23/12/30 04:10:17.11 +VY2mXpj.net
>>754
具体的にどのクレートをバージョンナンバーにより採用した採用しなかったのかを書きなさい
771:デフォルトの名無しさん
23/12/30 04:20:00.71 slhZof7h.net
>>755
人にものを聞く態度か? それが?
「しなさい」とか言う奴に対してまともな返事を書く気はない
772:デフォルトの名無しさん
23/12/30 04:25:37.61 slhZof7h.net
いやそれはそれと俺が選ばなかったライブラリの話、真面目に答えると結構ちゃんと選ばないと分野がバレるな
773:デフォルトの名無しさん
23/12/30 04:26:52.37 +VY2mXpj.net
>>756
一度も具体的な話を書けないエアプログラマーはこのスレから去れ
774:デフォルトの名無しさん
23/12/30 04:56:11.37 slhZof7h.net
>>758
自分もそうだろ
ブーメラン得意か
775:デフォルトの名無しさん
23/12/30 05:03:26.73 slhZof7h.net
不毛な話に返信している自覚はあるので、俺に言及する奴が消えたら俺も書かなくはなるんだよな
ID:+VY2mXpjが具体的な話をしてくれたらそっちに話題が移るんじゃないだろうか
776:デフォルトの名無しさん
23/12/30 05:10:37.63 +VY2mXpj.net
>>759
バージョンナンバーで選んだことはないためそんな具体例は当然ない
バージョンナンバーで選んでいるおまえが具体例を出せ
777:デフォルトの名無しさん
23/12/30 05:19:08.00 slhZof7h.net
>>761
「出してください」な
778:デフォルトの名無しさん
23/12/30 05:21:27.73 slhZof7h.net
まあちゃんと「出してください」って言われても俺の分野がバレない奴があったか悩ましいが
779:デフォルトの名無しさん
23/12/30 05:28:06.55 slhZof7h.net
こういうのは具体的を出すということ自体が結構難しいんだよな
>>761が使っているライブラリでバージョンが1未満のものを上げるとかしてくれたら話が早い
780:デフォルトの名無しさん
23/12/30 06:29:39.39 GnED1sKw.net
Rust勉強中。アノテーション注釈が出てきたところで流行らない理由をなんとなく察する
ヌルポとメモリーリークを防げるから個人開発で使う分にはいいけど。会社で広める気にはならない
学習コスト高いわ
781:デフォルトの名無しさん
23/12/30 10:07:43.55 bcJEqtzR.net
async traitが安定化されてる!!!
URLリンク(blog.rust-lang.org)
782:デフォルトの名無しさん
23/12/30 10:32:04.21 Q
783:Gv3PFfa.net
784:デフォルトの名無しさん
23/12/30 11:16:50.31 kCUZZSzY.net
>>765
ライフタイム注釈ってタイプしたつもりで全然ちがう文字を打ち込んでた
the bookを読んでるだけだよ。疲れてたんだ…
785:デフォルトの名無しさん
23/12/30 11:33:27.15 d4YZn3CY.net
the book はきついよね
786:デフォルトの名無しさん
23/12/30 11:41:42.24 scaDM36O.net
staticを自粛する言語はみんな高コスト
チェリーピッキングみたいに最高値の近辺だけが高いという指摘はうさんくさい
787:デフォルトの名無しさん
23/12/30 12:22:34.64 WjlNag1n.net
>>768
非公式翻訳版を読んでるだろ
あれで学習したやつは例外なく使えないのが出来上がるからやめとけよ
788:デフォルトの名無しさん
23/12/30 18:18:48.80 Ycw4kjfb.net
>>759
自分が具体的なことを書いていないという指摘は否定しないw
789:デフォルトの名無しさん
23/12/31 05:11:31.11 15iRFp/+.net
>>765
ライフタイム注釈はたいてい一意に定まりその時は省略できるから面倒にならないよ
省略できず明示的にライフタイム注釈を指定しないといけない場合は
例えば複数の参照を受け取り参照を返す関数などでそれら参照間の関係を指定する
790:デフォルトの名無しさん
23/12/31 10:19:28.53 kd8WxVq5.net
>>765
>ヌルポとメモリーリークを防げるから
メモリリークは防げない
ヌルポとメモリリークが防げればいいだけならNull Safetyを備えたGC言語で十分
791:デフォルトの名無しさん
23/12/31 10:35:21.39 NOiZF6ke.net
なまじライフタイムを省略できるせいでライフタイム未修得でも書けてしまう言語なので、いざライフタイム省略出来ない時が来た時に脳がバグる
792:デフォルトの名無しさん
23/12/31 11:15:14.55 sbs7ggSq.net
ライフタイムの記述は省略できることはあっても常にライフタイムを意識しながら書かなきゃいけない
それに省略できない場面にも日々遭遇するから「省略できるから面倒にならない」みたいな初心者釣りはやめた方がいい
暗黙的に意識しなきゃいけないC++に比べればある意味面倒ではないという程度
793:デフォルトの名無しさん
23/12/31 11:24:54.37 rKdc/qeD.net
マクロやFFIのようなやや高度な機能を除いた基本機能の中ではライフタイムが一番難しくて一番面倒
性能と引き換えに受け入れなければいけない面倒臭さ
794:デフォルトの名無しさん
23/12/31 12:07:26.58 8Uv46fmp.net
ライフタイム意識しなくても良いと騙されて書き始めた人間のがライフタイムに恐れを抱いて迂回しながら書いた至る所でcloneして値渡するコード
795:デフォルトの名無しさん
23/12/31 13:31:13.38 K3mMRoqD.net
まあ C++ と比較するとおおよそ良くなってると思うが C++ で不都合なく寿命管理できる能力があるなら Rust でライフタイムを明記するのを面倒と感じることはあるだろうな。
人類は駄目なので実際には頻繁に問題を起こすという現実があるんだけどさ。 わかってても間違うのが人類。
796:デフォルトの名無しさん
23/12/31 13:50:46.98 PS1jMjj+.net
お金を賭ければ失敗することもあるけど賭けなければどうということはない
どっちも現実なんだけどリスク回避=現実逃避だと思ってるのが人類あるある
797:デフォルトの名無しさん
23/12/31 14:00:16.32 8Uv46fmp.net
C++で不都合なく寿命管理出来る能力があったらライフタイム管理なんて数文字タイプが増えるだけになのでは
798:デフォルトの名無しさん
23/12/31 14:02:49.07 JAX3toXP.net
>>779
Rustで性能&安全性優位になるのは積極的にスタックに積んで参照使いまくった場合だろうけど、c++だとスマートポインタとアロケータで最適化しとけという話になるからなぁ。
どんくらい性能差あるのかわからん。
799:デフォルトの名無しさん
23/12/31 14:05:38.66 K3mMRoqD.net
>>781
出来ると思ってるが実際には出来てないって話さ
800:デフォルトの名無しさん
23/12/31 16:01:28.24 r3ulhjhy.net
もうRustじゃ無理なんだよ
801:デフォルトの名無しさん
23/12/31 17:31:22.31 15iRFp/+.net
>>784
Rustが有利という話の流れの中で唐突にRustが何か無理なことある?
802:デフォルトの名無しさん
23/12/31 18:02:32.92 K3mMRoqD.net
プログラミング出来ない人は本当に出来ない。
C++ を使えているくらいの人なら Rust を (良いと思うかどうかは別として) 真面目に学べば使いこなせるだろうけど、初心者が最初に学び始めるには全く向いてないなぁと思うくらいのハードルの高さはあると思う。
803:デフォルトの名無しさん
23/12/31 18:29:47.72 15iRFp/+.net
プログラミング出来ない人にRustはハードルが高いという主張か
804:デフォルトの名無しさん
23/12/31 19:12:47.61 SnRIdEnt.net
ゴミには何触らせてもゴミ
805:デフォルトの名無しさん
23/12/31 20:25:01.01 d6XbubcX.net
>>786
単に最近のスクリプト言語が簡単過ぎるだけだと思うけどね
ブイブイ言わせてる()モダンなスクリプト言語使いが
俺たちRustも書けるっしょwみたいなノリで挑戦して
書けなくて諦めるというのを何度も見てきた
本来プログラミングってのはこの程度は難しいものよ
806:デフォルトの名無しさん
23/12/31 20:41:56.95 Asz1BteV.net
Rustを書けず断念するような低レベルの人ならば
他の言語でもまともなプログラムは書けないと思うけどな
807:デフォルトの名無しさん
23/12/31 22:03:37.75 682wQwxe.net
バージョンおじさんの次はスクリプトコンプおじさんか
808:デフォルトの名無しさん
23/12/31 22:07:53.39 fB+p+szm.net
ライフタイムは関数に渡すときborrowするだけなら何も難しいことはないんだが型に参照を含めていろんな操作をしたり持ち回ったりし始めると複雑度が急上昇する
809:デフォルトの名無しさん
23/12/31 22:22:03.06 Asz1BteV.net
そこは同じ
型に含まれてる参照のライフタイムがその型にも付くだけ
810:デフォルトの名無しさん
24/01/01 00:50:09.76 X6Py91w/.net
あけましておめでとうございます
ライフタイム面倒なので捨ててstaticにしたいそんな貴方へ魔法の関数プレゼント!
fn to_static_str(input: &str) -> &'static str {
input.to_owned().leak()
}
811:デフォルトの名無しさん
24/01/01 19:58:44.82 SMFNndU8.net
the book で勉強中だけど覚えること多いなあ
構文を覚えるだけで70時間はかかりそう
デザインパターンの勉強は必要なさそうだけど
実践投入するには読経も20時間分ぐらい必要だろうな
812:デフォルトの名無しさん
24/01/01 22:17:40.22 nmIunYxl.net
90時間でも約11日稼働ならオンボーディングで
極端に辛いというほどじゃなくね
813:デフォルトの名無しさん
24/01/01 22:29:17.37 pmJAVvpO.net
>>795
Rustの構文は諸言語のバリエーション範囲内でほとんど同じ
強力なパターンマッチングとその構文が新規なくらいですぐ習得できる
814:デフォルトの名無しさん
24/01/02 00:14:27.39 SHn+5kOU.net
Rustの勉強が大変なら勉強なんかせんでええ
Copilotに書かせてコンパイル通ればOKや!
815:デフォルトの名無しさん
24/01/02 08:32:02.80 xTyEZXhx.net
copilot は予測変換の賢いやつって感じ。
個々の場面では思ったよりも賢くて使い物になるが全体を構成するのに人の思考がいらないほど、全部丸投げ出来るほどではない。
出来る人が楽をするツールであって、できない人が使ってもまともなものは作れない。
816:デフォルトの名無しさん
24/01/02 22:18:53.42 3cCPTdjI.net
>>792
どっちかというとそういうもち回しによる複雑な操作するなってのがrustの思想だろ
817:デフォルトの名無しさん
24/01/03 00:45:56.91 cT5UAedN.net
他の言語の習慣を捨てないとなかなか実践できないと思う
しばらく使ってるとRust特有のプラクティスが見えてくるけど
818:デフォルトの名無しさん
24/01/03 00:58:25.14 WEsHc8Hy.net
全体を構成する部分が問題になってRustにノータイムで移行できない人間が書くスクリプト言語で書かれたプログラム、読みたくなさすぎる
819:デフォルトの名無しさん
24/01/03 18:10:43.49 AJuUFyM+.net
VSCodeとrust-analyzerでrustを書いている人にちょっとお聞きしたいんだけど、
rustのコード補完で、必ずabc順になっちゃうんだけど
直前に使用したメソッドを優先的に上位に表示させることってできないの?
VSCodeのエディタの設定でrecently usedを設定してもabc順でしか表示さない
InteliJIdeaでは学習した結果、使用頻度の高いものを上位に表示してくれてたのに・・
820:デフォルトの名無しさん
24/01/03 23:00:13.67 parSgmbo.net
質問の仕方が間違っているぞ
そういう時は「補完もまともに出来ないクソ言語」って言えば信者が頑張って探してくれる
821:デフォルトの名無しさん
24/01/04 17:30:55.33 mYBU2Jpa.net
InteliJでは出来てたって書いてあるの読めない人なのかな?
こういう人がテストケースとか書いてると思うと怖くてたまらんね
822:デフォルトの名無しさん
24/01/04 17:56:16.02 dLQyUrS8.net
>>804は頭の弱いRustアンチの人だから無視しとけ
823:デフォルトの名無しさん
24/01/04 18:21:30.81 mYBU2Jpa.net
ごめんよ
rustが難しくて理解できない可愛そうな人だったか
824:デフォルトの名無しさん
24/01/04 19:32:15.16 lFo5UMLf.net
誰も問題解決出来てなくて草
マジで糞言語なのか?
VSCodeでもPythonなら出来るぞこれ
825:デフォルトの名無しさん
24/01/04 20:05:26.49 9Tnu7Lk1.net
>>776
これはそう思うわ。
そこが面倒ならそもそもrust使うことが面倒だろって気にしかならん。
826:デフォルトの名無しさん
24/01/04 20:44:14.40 5w1EWT82.net
普通にバグ報告すればいいのに
827:デフォルトの名無しさん
24/01/04 20:47:26.53 mYBU2Jpa.net
>>808
あらためてVSCode再起動したら普通に直近に選択したメソッドや変数が上位に表示されるようになった
ごめんね ぺこり
ちなPythonは入れ子のループの内側から外側のbreakができないから嫌い
828:デフォルトの名無しさん
24/01/04 21:51:07.65 dt0a6v34.net
InteliJ は rust-analyzer 使ってないんじゃなかった?
開発支援機能の基盤が違えば細かい挙動が一致しないのなんて当たり前過ぎて何が言いたいのかわからない。
829:デフォルトの名無しさん
24/01/04 22:28:32.21 4GGvVaU9.net
>>795の読経って何?
830:デフォルトの名無しさん
24/01/05 08:39:06.77 wSd1e+VK.net
>>813
URLリンク(github.com)
この人のリポジトリひとつ読んだら実装に移るわ
831:デフォルトの名無しさん
24/01/05 09:40:39.59 K2XmLAOd.net
Rustで書かれたLinux互換OS「Maestro」が爆誕
URLリンク(softantenna.com)
832:デフォルトの名無しさん
24/01/05 09:43:03.49 QSnLODWj.net
>>814
ああ、コードを読むのを読経と言ってるのか。ありがとう。
833:デフォルトの名無しさん
24/01/05 13:58:06.60 p8td/CWz.net
読経なんかせんでええ
GPTに書かせろ
834:デフォルトの名無しさん
24/01/05 14:50:07.45 5Ddnqo9+.net
ソースはお経じゃねえぞ
835:デフォルトの名無しさん
24/01/05 16:26:15.51 qm5+loRz.net
写すと写経
読むと読経か
般若心経に波羅蜜多という単語が出て来る
修行の意味だが、修行を行った量という意味でもあり
英単語のparameterと同語源だという
引数か
ヤシの木palmとparameterも同語源って説がある
palmは手の平の意味だが手の指で文字を数えるとも繋がる
これがまた修行の量とか引数って概念に繋がる
またヤシの葉で分厚いパルミラヤシと呼ばれるものは経文を書くのに使われていた
経文を書いた量がまた修行のパラメーターとなった
ナツメヤシのことをdateというが日にちも数えるもの、デートも日にちを重ねて交流を深めるものとされた
ヤシの葉と修行と日にちと引数は常に数えるものとされた
一方で波羅蜜、パラミツというスイカの5倍くらいある果物もある
果実を輪切りにするとアナログ時計のように果肉が並び
時間を象徴するものだから?という話があるが、パラミツと波羅蜜多は特に関係がないという方が多い
インドにRust外注したら動くものは帰ってくるのかどうか
836:デフォルトの名無しさん
24/01/05 17:09:23.62 FktlJzQH.net
parameterのpara-はギリシア語由来の「離れている」では
parallel(平行)のpara-
837:デフォルトの名無しさん
24/01/05 19:03:58.53 kJ7MyVdE.net
>>815
爆誕出来てないじゃん。
仮に互換するにした場合、バグも再現するんかね?
838:デフォルトの名無しさん
24/01/06 15:29:56.82 NPThFXTg.net
無理にひねくれたこと書かんでよろしい
839:デフォルトの名無しさん
24/01/07 02:08:36.16 eqr3i2HS.net
rustちょっと書いたけどなんかハマらんな
つまんない
刺激が少ない
俺は別に言語に安全性なんて求めてないんだ
刺激がほしいんだ
840:デフォルトの名無しさん
24/01/07 02:15:40.93 k7dl9y2N.net
>>823
お前のチームのバグ出しまくる同僚に使わせたら?
841:デフォルトの名無しさん
24/01/07 02:41:23.33 KA2Mqlfb.net
プログラミングそのものに刺激を求めるんじゃない
刺激はプログラミングで実現したいものに求めろ
842:デフォルトの名無しさん
24/01/07 09:36:48.73 qkYZiPZe.net
rustはコンパイラにムチを打たれながらコーディングする性癖ドM言語だよ
自身の性癖と合う言語を使ってけ
843:デフォルトの名無しさん
24/01/07 15:48:04.06 ujkX2rEF.net
Rustがムチ打つかレビューでムチ打つかの違いでしかないんだよな
誰にも見せないコードなら関係ないけど
844:デフォルトの名無しさん
24/01/07 16:53:56.32 FD9BMc1I.net
男は黙ってSegmentation Fault
845:デフォルトの名無しさん
24/01/07 21:59:04.51 k7dl9y2N.net
>>827
レビューは体裁しか見ないやついるからな。内容読まないとかレビューになってねーから。
コンパイラにチェックさせたほうがマシ。
846:デフォルトの名無しさん
24/01/08 12:20:12.43 JTfbpR0w.net
刺激ってメモリリークでクラッシュとか、ストレージフォーマットとかか?
847:デフォルトの名無しさん
24/01/08 20:41:35.20 6GvPzxXI.net
スマートポインタについて勉強中。強い参照、弱い参照という概念が出てきて目が回る
RefCell……所有権の共有が発生する参照……参照???
言葉遊びが過ぎないか。。。
848:デフォルトの名無しさん
24/01/08 21:50:36.68 VjyRCTjd.net
何書いてるかによるけど、出来ればスマートポインタ使わずに書きたい
849:デフォルトの名無しさん
24/01/08 21:56:10.69 a9mjVCEv.net
>>831
強い参照、弱い参照はRustやC++だけでなくJavaやC#、PythonやJavaScriptでさえ出てくる一般的な概念だぞ
RefCellは所有権の共有じゃないぞ
スマートポインタや参照という言葉もRustの定義を理解した上で学ぶ必要があるんだけどちゃんとした資料で勉強してるか?
850:デフォルトの名無しさん
24/01/08 22:02:17.92 6GvPzxXI.net
>>833
目が回って頭が混乱してた。Rcのことです
the bookを読んでます。英語版と日本語版を読み比べならが進めてます
851:デフォルトの名無しさん
24/01/08 22:04:58.02 6GvPzxXI.net
>>832
FSTという決定木を呼び出す実装を書く予定なんだよね
どこまで既存のクレートを使えるか次第だけど。たぶんスマートポインタ必須だろうなあ……胃が重い
852:デフォルトの名無しさん
24/01/08 22:45:23.91 U+1fQP74.net
853:target="_blank">>>831 説明するのには言葉を使うしかしょうがないだろう。 それとも小難しい記号だらけの操作的意味論を読み解くほうがマシとでもいうか?
854:デフォルトの名無しさん
24/01/08 22:56:58.99 DdO69zqE.net
>>835
まず前提環境が重要になる
たとえば並行はあるのか?並列はあるのか?両方あるのか?
あるとしても共有が必要なそれらの範囲はどこまでなのか?
それとは別の話で参照の共有と所有権の共有についても前者だけで済むのか後者も必要なのか?
など
855:デフォルトの名無しさん
24/01/09 00:03:40.70 8DV95bbu.net
>>835
木構造は普通にポインタ使うと地獄だよ
Nodeにポインタを持たせる実装ならRefCellとRcとOptionの組み合わせでゴニョゴニョやることになる
856:デフォルトの名無しさん
24/01/09 00:15:41.68 nS4EcHpr.net
配列にどんどん詰め込んでいって
ポインタのかわりにインデックスで管理するという方法も取れなくはない。
Rust で参照の取り扱いが面倒くさくなったときは割とよく使われる。
857:デフォルトの名無しさん
24/01/09 00:41:55.42 p6fXuzFt.net
Rustだから面倒になるのではなく
同じ方針ならばC/C++でも同じようになる
そしてどの言語でも同じく色んな方針を取ることができる
たとえばプログラム終了まであるメモリを解放しない&しなくてよい状況と方針ならば
CだけでなくRustでもそのようにプログラミングすることで簡単になる
858:デフォルトの名無しさん
24/01/09 00:48:52.81 71QF1ibn.net
Array/VecとMapでやる方が普通
てかスマートポインタで胃が重いとか言ってる人にFST実装させようとするのはどうなのか
学生さんの宿題ならいいんだけど
859:デフォルトの名無しさん
24/01/09 13:46:52.23 cAvIdAYQ.net
>>815
windowsこそrustで書き直して欲しい
860:デフォルトの名無しさん
24/01/09 14:29:03.17 ZeSQ9HCg.net
いやWindowsは消滅してくれ
Windowsのパス区切り文字がバックスラッシュだと面倒くさいんだよ
いつになったら他のOSのようにスラッシュになるんだ
861:デフォルトの名無しさん
24/01/09 14:42:13.51 W90zSzbf.net
そこでいまどき困るか?
ライブラリで吸収してくれるだろ
862:デフォルトの名無しさん
24/01/09 15:03:46.95 mDjH0FU9.net
困るのはそんなポイントではないわな
863:デフォルトの名無しさん
24/01/09 15:51:14.16 LmJT0Ko+.net
UNIX
URLリンク(learn.microsoft.com)
プログラムを UNIX に移植する場合は、次のガイドラインに従ってください。
・引数としてパスとファイル名を表す文字列を実行するルーチンでは、UNIX と互換性のあるパス区切り記号を使用します。 UNIX は、この目的でスラッシュ (/) のみをサポートしますが、Win32 オペレーティング システムでは、円記号 (\) とスラッシュ (/) の両方をサポートします。
864:デフォルトの名無しさん
24/01/09 16:00:24.31 OfKvL6VZ.net
WindowsはWSL2のおかげで立ち位置を少し取り戻した感ある
Docker×WSL最強なんだ
865:デフォルトの名無しさん
24/01/09 16:26:04.96 dEgljR3a.net
Rustを学習していてよくわかんないんだけど、なんで&mut演算子って=の右側に書くの?
演算子を分けて&を右でmutを左にすべきことじゃないのか
866:デフォルトの名無しさん
24/01/09 16:31:10.75 T7+wXIHZ.net
>>848
変数がmutなのと参照がmutなのと意味が違うでしょ
867:デフォルトの名無しさん
24/01/09 16:38:48.96 7APTEGxI.net
不変なT型 T
不変な不変参照 &T
不変な可変参照 &mut T
可変なT型 mut T
可変な不変参照 mut &T
可変な可変参照 mut &mut T
868:デフォルトの名無しさん
24/01/09 16:51:10.28 /HMizx3H.net
それ複オジがよく書いてたやつだけど
そうやって書くと型の違いと変数のmutabilityの違いを混同しちゃうから良くないんだよね
869:デフォルトの名無しさん
24/01/09 16:57:39.62 FRUFivso.net
fn main() {
let mut foo = String::from("foo");
let mut bar = String::from("bar");
let a1 = &foo;
// a1の値も参照先(foo)も変更できない
// a1.push('o'); // 不可
// a1 = &bar; // 不可
println!("{a1}"); // foo
let a2 = &mut foo;
// a2の値は変更できないが参照先(foo)は変更できる
a2.push('o');
// a2 = &mut bar; // 不可
println!("{a2}"); // fooo
let mut a3 = &foo;
// a3の値は変更できるが参照先(foo)は変更できない
// a3.push('o'); // 不可
a3 = &bar;
println!("{a3}"); // bar
let mut a4 = &mut foo;
// a4の値も参照先(foo)も変更できる
a4.push('o');
a4 = &mut bar;
println!("{foo} {a4}"); // foooo bar
}
870:デフォルトの名無しさん
24/01/09 17:54:54.96 yDV9ZPsZ.net
>>815
先にfirefox互換のブラウザをRustで作れよ
871:デフォルトの名無しさん
24/01/09 20:29:20.32 OfKvL6VZ.net
>>815
ついにRustで書き切ったカーネルが出たか
素晴らしい😎
872:デフォルトの名無しさん
24/01/09 21:43:46.90 ba97u6j0.net
JythonみたいにRinuxとか呼ばれる様になるんかね
873:デフォルトの名無しさん
24/01/09 23:30:54.91 kFOi0b9p.net
>>847
わかる
874:デフォルトの名無しさん
24/01/09 23:33:35.76 kFOi0b9p.net
>>850
>可変な不変参照 mut &T
>可変な可変参照 mut &mut T
そこは
mut& T
mut& mut T
のほうが良くないか?
875:デフォルトの名無しさん
24/01/09 23:44:10.92 VWF/HjAU.net
>>857
なんでmut& Tやmut& mut Tのほうがいいと思うの?
876:デフォルトの名無しさん
24/01/10 00:26:25.61 50jzIioV.net
変数は不変 参照先も不変
【Rust】 let ptr: &i32 = ...
【C/C++】 const int* const ptr = ...
変数は可変 参照先は不変
【Rust】 let mut ptr: &i32 = ...
【C/C++】 const int* ptr = ...
変数は不変 参照先は可変
【Rust】 let ptr: &mut i32 = ...
【C/C++】 int* const ptr = ...
変数は可変 参照先も可変
【Rust】 let mut ptr: &mut i32 = ...
【C/C++】 int* ptr = ...
877:デフォルトの名無しさん
24/01/15 07:32:23.77 GWa8/EJ0.net
プログラミングをしていて最も出現頻度が高いのがその4つのうちこのパターンだな
>変数は不変 参照先も不変
>【Rust】 let ptr: &i32 = ...
>【C/C++】 const int* const ptr = ...
したがって可変部分のみmutを付加するRust方式が理に適っている
878:デフォルトの名無しさん
24/01/15 09:26:21.36 87NFfbL3.net
C/C++のconstとRustのletを対比するなよ
コンパイル時の定数と変数は違うから
879:デフォルトの名無しさん
24/01/15 10:46:44.96 6ZDKWey9.net
C/C++のconstはコンパイル時の定数とは限らない
> 変数は不変 参照先も不変
C++はconst int*で定義した変数経由では参照先を変更出来なくても他から参照先が変更されることがあるので「参照先が不変」とは言えない
880:デフォルトの名無しさん
24/01/15 11:01:12.76 AliX8x8r.net
>>861
コンパイル時の定数は
Rustではconst
C/C++ではconstexpr
881:デフォルトの名無しさん
24/01/15 11:06:03.10 YtourOsv.net
C/C++のconstはコンパイル時の定数となることもあるのがややこしいところ
constexprはそれを矯正するもの
1対1の単純な比較では抜け落ちるものが多すぎる
882:デフォルトの名無しさん
24/01/15 18:27:24.64 8IhMbXbn.net
イミュータブルの観点でこの対応は合ってる。
Rust: let foo: &i32 = ...
C++: const int* const foo = ...
ただし違いとしては、
Rustではfooが生きている間は参照先が(内部可変性を除いて)真に書き変わらない保証がある点が異なる。
883:デフォルトの名無しさん
24/01/17 18:48:37.40 6S0S7+zy.net
この件はC++と比較しても刺激が少ない
mutがない関数型言語と比較するほうがいい
884:デフォルトの名無しさん
24/01/17 19:39:11.45 gS91WelD.net
ミュータブルを無くすと美しく見える反面
ガベージコレクションが多数発生し効率が悪くなる
アルゴリズムも制約を受けてしまい効率が悪くなる
885:デフォルトの名無しさん
24/01/17 19:42:50.91 NPS8JVAZ.net
Linuxカーネルについに実用的なコードが
マージされたと話題になってるな
886:デフォルトの名無しさん
24/01/17 20:07:47.38 ouelKdFS.net
>>868
新規追加するドライバにだけ採用とか前に言ってなかったっけ?
887:デフォルトの名無しさん
24/01/17 21:08:18.79 6S0S7+zy.net
>>867
ガベコレが多数発生することをRust風に言うと、
実行時の参照カウントが激しく増減する
888:デフォルトの名無しさん
24/01/17 21:16:06.79 gS91WelD.net
>>870
ミュータブルがない関数型言語との比較の話だから
ミュータブル非導入で起きていることは使い捨て一時ガベージの大量発生
889:デフォルトの名無しさん
24/01/17 23:31:19.01 6S0S7+zy.net
cloneに似た処理をしてからオリジナルをdropするんだよね
890:デフォルトの名無しさん
24/01/18 04:18:08.52 p4+mv2Ay.net
RustはカーネルやOSコアの開発で存分に活躍してくれ🙏
891:デフォルトの名無しさん
24/01/18 06:21:12.49 vxth9lRp.net
ぺたんこおっぱい
ぽっこりおなか
つるつるわれめ
892:デフォルトの名無しさん
24/01/19 01:46:37.00 qsekRxP5.net
プログラミング言語利用実態調査でRustが急落
URLリンク(www.nikkei.com)
893:デフォルトの名無しさん
24/01/19 08:43:59.73 q7Fi5Auv.net
>>875
それ日本だけのアンケートじゃん
894:デフォルトの名無しさん
24/01/19 08:55:08.16 v7odrc0V.net
登録が必要な記事貼るとか
895:デフォルトの名無しさん
24/01/19 10:17:52.92 9hGbEahh.net
>>875
日本でもクソ言語ってバレ始めてるなw
896:デフォルトの名無しさん
24/01/19 10:49:32.99 Z0EBK6tx.net
そもそもrustを使う場面があるか?って話
wasmは始まる前からオワコンだし、組み込みシステム開発してる人なんて割合で見ればプログラマの中でごく一部だし
897:デフォルトの名無しさん
24/01/19 11:13:07.05 vjpbBz8R.net
>>879
ごく一部だというのが仮に事実だとしても、少ないからって要らないってわけでもないだろ。
そこそこの規模だと C よりは Rust のほうがいいわ。
898:デフォルトの名無しさん
24/01/19 11:19:17.56 EYCY+PGA.net
>>875
ちゃんとリンク貼れ無能
スキルアップしたい言語はPythonとJavaScript、不動の不人気言語はCOBOL
安藤 正芳 日経クロステック/日経コンピュータ
URLリンク(xtech.nikkei.com)
899:デフォルトの名無しさん
24/01/19 11:27:47.52 uugkJRQ7.net
「実際に仕事で使われているプログラミング言語」(2023)
URLリンク(qiita.com)
日本でのRustの使用実態が全く見られないの笑えるな
900:デフォルトの名無しさん
24/01/19 11:34:00.68 EoDClT2o.net
Rustは業務で使用する言語ではない
901:デフォルトの名無しさん
24/01/19 11:36:55.28 arzVgFZ3.net
使われてる言語ランキング見てると、CやC++、Rustみたいな組み込み開発用言語は全体から見ればもはやプログラミングの中でもマニアックな分類なんやね
ブログラマといえばWebサービス関連の人ってイメージになっちゃった
902:デフォルトの名無しさん
24/01/19 11:48:30.00 vjpbBz8R.net
とはいえそれを支えるホスト環境 (OS) や処理系は大抵の場合に C とかで書かれてるんだけどな。
903:デフォルトの名無しさん
24/01/19 11:49:23.47 pW7O4nZv.net
RustがC/C++の代わりになるのは間違いないのだけれどね
富士通さんはRustの普及をもっと頑張ってくれよ
904:デフォルトの名無しさん
24/01/19 12:01:24.14 pW7O4nZv.net
>>885
C/C++からRustへの書き換え作業は大変だからね
脆弱性の解消のために徐々にRustへの置き換えが進んでるから2030年頃にはだいぶ完了してるっしょ
905:デフォルトの名無しさん
24/01/19 12:05:10.29 pW7O4nZv.net
有名どころだと
ProssimoがsudoやzlibのRust実装を頑張ってるよね
URLリンク(github.com)
906:デフォルトの名無しさん
24/01/19 12:05:22.87 vjpbBz8R.net
デバイスドライバとかは C のほうが楽だけど
言語処理系くらいのレイヤだと大部分は Rust で書いたほうが楽そうだなーとは思う。
907:デフォルトの名無しさん
24/01/19 12:26:38.25 CZFLW0PQ.net
そろそろ実装に入れそうだけど。Rustを勉強したことを少し後悔ぎみ
オブジェクト指向言語しか触ったことなかったから取得するのにガチで一ヶ月(130時間)かかった
chatgptに聞いた感じだと、これでも割と早い方らしい。おとなしくC/C++を使えばよかった
908:デフォルトの名無しさん
24/01/19 12:33:55.04 3hcnICbb.net
【AI】Googleの医療面接特化AI「AMIE」は人間よりも正確な診断が可能&患者への印象に優れるという研究結果 [すらいむ★]
スレリンク(scienceplus板)
【AI】Google DeepMindが数学オリンピックレベルの幾何学問題を解けるAIを発表、人間の金メダリストに近い性能を発揮 [すらいむ★]
スレリンク(scienceplus板)
【AI】大学入試共通テスト、3つのチャットAIに解かせてみたら? GPT-4はバケモノだった [すらいむ★]
スレリンク(scienceplus板)
【ナゾロジー】「株価の変動を粒子の振動として理解」量子力学で株式市場の法則を読む! [すらいむ★]
スレリンク(scienceplus板)
【AI】NTT、自分の分身AIを低コストで作る技術。自分の合成音声を簡単に作れる技術も [すらいむ★]
スレリンク(scienceplus板)
ボイス・トォ・スカルのコアプログラムの一部は上記を統合している
909:デフォルトの名無しさん
24/01/19 13:26:04.84 eEzmAF9q.net
>>890
130時間はサンクコストなので0時間の時点における正解は現時点でも正解
ってAIは教えてくれなかったの?
910:デフォルトの名無しさん
24/01/19 13:41:00.69 CZFLW0PQ.net
C/C++, java, pythonの経験があるから、Rustを取得するのに50時間かからないだろうと思ってた時期が僕にもありました
ヌルポが怖いからRustを使うけど……歯を食いしばって捻出した130時間を投資回収できるかは神のみぞ知る
911:デフォルトの名無しさん
24/01/19 13:47:10.87 vjpbBz8R.net
C/C++ の経験があってそんなに時間かかるか?
「習得」というのがどの程度の基準で見るかにもよるけど
いわゆる the book を一通り読んだ後なら
コンパイラがあまり助けてくれないところ (unsafe) を除けば
マニュアルを見ながら書けばだいたいなんとかなる程度には使えそうなもんだと思うんだが。
912:デフォルトの名無しさん
24/01/19 13:56:01.98 arzVgFZ3.net
C/C++を適当にやってたせいでRustでつまづくってのはありそう
913:デフォルトの名無しさん
24/01/19 14:12:09.59 CZFLW0PQ.net
>>894
最近はpythonで仕事する機会が多くて、C/C++を4年ほど触ってなかったのと、
仕事の後に疲れた頭で勉強したから体力的にキツかったのと。。。
the bookを読むだけで90時間はかかったわ。検索モジュールを開発しようと思ってるんだけど
いきなり実装に入るより読経した方がマシな感じで、regexのコードを読んでる
既に10時間読経に捧げて、あと10時間は追加の読経が必要な感じ
この後、形態素解析エンジンのコードも読む必要があるから、追加で20時間はお勉強する予定であわせて130時間
……重いです
914:デフォルトの名無しさん
24/01/19 14:23:24.55 arzVgFZ3.net
>>896
おつかれよくがんばった
915:デフォルトの名無しさん
24/01/19 14:50:46.17 tvouuqwU.net
>>896
the bookでの90時間の中身がわからないので何とも言えないかな
bookだけを読んだのか
それともdocsやreferenceと行き来して読んだのか
サンプルコードくらいのことを書けるようになっただけなのか
それとも各機構や機能を本質的に理解したのでdocsなど見ればbookに書かれてないことも書けるようになったのか
などピンキリだよね
916:デフォルトの名無しさん
24/01/19 15:08:45.88 IG9zAVYP.net
>>890
一般的にですが、
自分が使いたい新たな言語の学習で、辛いとかキツいとか後悔とか感じる人はプログラマーに向いていません。
プログラマーに向いてる人たちにとっては、新たな学習や会得はワクワク楽しくてその時間を後悔することもありません。
917:デフォルトの名無しさん
24/01/19 15:23:39.42 w30sYh7E.net
>>899
禿同だな
918:デフォルトの名無しさん
24/01/19 15:25:17.10 1KLWZB9m.net
件の人は質問がどれもバカっぽかったから習得からは程遠い印象
919:デフォルトの名無しさん
24/01/19 16:19:14.85 vjpbBz8R.net
Rust の個々の機能が難しいとは感じないけど
綺麗に噛み合うように全体を設計するのは C++ とは違う感覚が要るから
大きいプログラムを綺麗に設計しようとしたら最初はしんどいかも。
ボトムアップ的なスタイルで書いていくのをオススメする。
920:デフォルトの名無しさん
24/01/19 16:39:45.44 8qrrLmZj.net
逆かな
みんなリファクタリングが機能しないからRustだとボトムアップじゃだめだと分かっかんだよ
921:デフォルトの名無しさん
24/01/19 16:40:26.29 Rx8gKVuk.net
the book自体の難しさがあるというか
922:デフォルトの名無しさん
24/01/19 17:22:29.33 5TL7zSTv.net
the bookを頭から読むやつなんているんだ
大してわかりやすくもないし
説明が冗長な感じだからChatGPT使った方が良いぞ
923:デフォルトの名無しさん
24/01/19 17:23:51.53 vjpbBz8R.net
初心者にとって知らんことが書いてあるんだからそんなにスラスラとは読めないのは当たり前だし、文章自体に問題があるようには感じないな。
改善すべき点がゼロなわけではないが、少なくとも C++ を分かっているくらいの人が最初に読むには十分すぎるほどに良書じゃないの。
924:デフォルトの名無しさん
24/01/19 17:34:10.12 vjpbBz8R.net
説明対象がもつ難易度より分かりやすい説明があったとしたらその説明は嘘であるか不足しているってことだ。
本来の難易度は後にならないと分からないから学習者本人には見分けられない。
925:デフォルトの名無しさん
24/01/19 17:55:40.81 88sLHWJm.net
ガリ勉完璧主義者ほど隅から隅まで理解しようとするけど
要領よくChatGPTを使いこなすチャラ男に天然GPTとしてカモられている
926:デフォルトの名無しさん
24/01/19 18:00:19.70 88sLHWJm.net
天然GPT本人はマウントして気持ち良くなりたいから他のみんなと勉強会じゃなくて家でガリ勉なんだ
927:デフォルトの名無しさん
24/01/19 18:05:32.43 5TL7zSTv.net
作りたいものを決めてそれを実現するための知識をChatGPTで調べるというやり方のほうがはるかに効率が良いよ
多少間違ったこと教えてきたり
古かったりするけどそれはもう気にしてたら仕方がないので
無視してどんどん手を動かすほうが良い
928:デフォルトの名無しさん
24/01/19 18:15:21.92 1hwMDgMT.net
The Bookは簡潔にまとめるために説明をやや端折り気味
書いてる内容自体が難しいわけじゃないけど深い理解には至らないから腹落ち感を得にくい
あんまり期待しすぎず無料で読める基本チュートリアルとして捉えておくべき
929:デフォルトの名無しさん
24/01/19 18:26:39.26 OWRF5bQs.net
ところでこのスレには組み込み開発でRustを使ってる人はいるの?
930:デフォルトの名無しさん
24/01/19 18:38:50.67 5qNxVIXw.net
組み込みは頭おじいちゃんが支配してるからRust使える人いないよ
931:デフォルトの名無しさん
24/01/19 18:49:19.87 AbS8PLZw.net
そう組み込みも重要な分野だから、これにRustが皆無な時点で大手では大々的に採用されていないって事、せいぜい窓際
「実際に仕事で使われているプログラミング言語」(2023)
URLリンク(qiita.com)
932:デフォルトの名無しさん
24/01/19 18:52:09.31 wGMq60ju.net
そうだ窓際追い出し目的でおじいちゃんにRustやらよう
933:デフォルトの名無しさん
24/01/19 18:53:27.57 wGMq60ju.net
そうだ窓際追い出し目的でおじいちゃんにRustやらせよう
本当にあるな
934:デフォルトの名無しさん
24/01/19 18:54:40.94 75Zji/CQ.net
今時の組み込みって何使ってるんだろ?
935:デフォルトの名無しさん
24/01/19 18:55:15.30 Nlxayr7x.net
>>903
Rustでもリファクタリング前提で書き始めるのがいいよ
早すぎる構造決め打ちや早すぎる最適化などはせずリファクタリングで対応
936:デフォルトの名無しさん
24/01/19 19:00:48.51 SK8TlxrV.net
>>899
んなアホな。
一般的というなら「石の上にも三年」とも「下手の横好き」とも言うから、嫌いだからと言って不向きとは言えない。
937:デフォルトの名無しさん
24/01/19 19:08:03.87 pqBZI8v7.net
格言おじいちゃん、窓際組み込み?
938:デフォルトの名無しさん
24/01/19 19:08:58.61 pqBZI8v7.net
格言は説得力とは真逆だと思うの
939:デフォルトの名無しさん
24/01/19 19:10:50.73 +7/a4sFt.net
自分がこうだから他人もこうあれ
って考えは時代にそぐわない老害感がある
940:デフォルトの名無しさん
24/01/19 19:11:44.46 pqBZI8v7.net
論理的でもなく屁理屈にも劣ります
941:デフォルトの名無しさん
24/01/19 19:12:08.48 SK8TlxrV.net
>>896
Rustは絶壁の学習曲線だから、段階的な学習は難しい。少なくともスタックフレームの動きを意識できないとキツイと思う。
Rustを使った開発も、小さく始める段階的開発とかきついんじゃない?ひたすらスクラップ&ビルド繰り返しそう。
942:デフォルトの名無しさん
24/01/19 20:04:18.16 U1u9K+K0.net
>>924
スタックフレームはコンピュータの基礎知識であってC言語でも必須でありそれをRustの問題にする人はいない
段階的開発がキツいという主張もそんなことはなく根拠もない
943:デフォルトの名無しさん
24/01/19 21:01:18.97 vjpbBz8R.net
全体を綺麗に構成することはしづらくても小さなモジュール単位でならそれなりに構成できるからそれを繰り返せばいい。
全体の構成を考えてから作るよりは汚いだろうけど、綺麗な全体の構成を考えるなんていう出来もしないことをやるよりはそういうボトムアップ方式のほうが少なくとも途中まではまあまあに出来る。
もちろんちゃんと全部をまともに構成できるだけの能力を身に付けられるならそれに越したことはないよ。
でも実際問題として初心者にはできないじゃんと思ったからボトムアップ方式のほうが(初心者の内は)よさそうと考えてる。
944:デフォルトの名無しさん
24/01/19 21:22:17.40 U1u9K+K0.net
他の言語と同じ
そこにRust固有の問題はないな
945:デフォルトの名無しさん
24/01/19 22:20:52.17 5TL7zSTv.net
>>924
意識するのはヒープじゃないか?
スタックフレームは解放されるんだから意識しないで良いんだぞ
946:デフォルトの名無しさん
24/01/19 22:39:11.81 vjpbBz8R.net
変数の寿命と連動するから意識するよ。
C/C++ の世界だと当たり前のことだから意識してる自覚すらないレベルで自然に考えてるけど。
947:デフォルトの名無しさん
24/01/19 22:39:43.86 eEzmAF9q.net
人格をもたない書物は効率が悪いという風潮は面白い
人格がなければ報酬とか私刑とかができないってことだろうか
948:デフォルトの名無しさん
24/01/19 22:43:52.06 Hr4uH45j.net
進行が早くなったのでいつもの
次スレはなしで既存のワッチョイスレにしよう
過疎るのは既定路線なので頃合いでしょ
949:デフォルトの名無しさん
24/01/19 23:05:04.70 Rx8gKVuk.net
「スタックフレームを意識する」というのはどの程度を指してるんだろう。
どれがスタックに積まれるかとどうスタックに積まれるかは違うわけで。
950:デフォルトの名無しさん
24/01/19 23:24:13.49 LbAGY+B7.net
>>924
スタックフレームの動きってプログラミング初心者でも何の問題もなく理解できるやろ
学習曲線めちゃ緩やかじゃん
951:デフォルトの名無しさん
24/01/19 23:35:33.58 QqY+6sl7.net
オラから『Rustの練習帳』って新刊が出るんだね
タイトルがエモい
952:デフォルトの名無しさん
24/01/19 23:44:43.13 NtpPLEep.net
ワクワクすっぞ
953:デフォルトの名無しさん
24/01/20 00:29:37.21 zhjwtCng.net
オライリーをオラと略す人は初めて見た
954:デフォルトの名無しさん
24/01/20 00:46:25.56 B5JkVzvF.net
そう?
オラの村では普通だでね
955:デフォルトの名無しさん
24/01/20 01:10:08.13 ppE6WkEJ.net
都会は進んでるなあー
956:デフォルトの名無しさん
24/01/20 01:16:50.20 zhjwtCng.net
ミスチルはわかるんだ
ミスター・チルドレンは長いから
サザンもサザンオールスターズは長いからわかる
マクドもマクドナルドは長いからギリわかる
オライリーをオラは無いだろ
たかが2文字略すなと思った
ま、どうでもいいんだがな
957:デフォルトの名無しさん
24/01/20 01:51:39.52 HZE0SdTu.net
スクリプト言語出身者が増えたせいだよ
スタックフレームやヒープなんてCSやってりゃ習うでしょ
コンパイラかコンピュータアーキテクチャでやる
スクリプト言語はスタックフレームの開放も全てGCがやることになるから
全く意識しないんだよな
958:デフォルトの名無しさん
24/01/20 01:55:10.81 ppE6WkEJ.net
スクリプト言語に限らず、C/C++を書かなければそこら辺に気を使う機会はないよ
959:デフォルトの名無しさん
24/01/20 07:57:38.44 lqSANakz.net
>>937
公式にオラの村ってのがあるよね
960:デフォルトの名無しさん
24/01/20 08:33:10.42 QXcnqV7m.net
GCありでパフォーマンスも関係ないなら、スコープだけ気にしていれば困らないしね。
961:デフォルトの名無しさん
24/01/20 08:49:07.11 G76ZEaWY.net
>>939
マクドじゃなくてマックね
962:デフォルトの名無しさん
24/01/20 09:18:20.17 viZi/CYZ.net
webサービスまわりは全部スクリプト言語かGCランタイム付き言語だもんなあ
963:デフォルトの名無しさん
24/01/20 11:01:53.93 ppE6WkEJ.net
最近は組み込みもC/C++を使う理由がないことが多い
964:デフォルトの名無しさん
24/01/20 11:38:27.03 lE+lj03S.net
オラは「Rust for Rustaceans」の訳書出さないな
本格的にRustやるなら必読書なんだけどな
965:デフォルトの名無しさん
24/01/20 11:42:02.65 o5qofGYG.net
スクリプト言語はともかく静的にコンパイルする言語ならGC言語でもスタック/ヒープは意識するけどね
966:デフォルトの名無しさん
24/01/20 12:07:36.77 KBzblFQB.net
>>945
CPU時間(ミリ秒)あたりで課金されるからこそのRustだよ
967:デフォルトの名無しさん
24/01/20 12:23:09.39 +uoYRouQ.net
オンプレミスでも同じ
Rustで書くかスクリプト言語で書くかでサーバーやメモリの必要量が何倍も変わる
電気代も節約できRustはエコにも貢献
968:デフォルトの名無しさん
24/01/20 12:30:18.74 KBzblFQB.net
そう、CO2排出量を考えたら、Rust以外で書くのは社会にとっての悪
969:デフォルトの名無しさん
24/01/20 12:33:36.69 wJQgtkwZ.net
昔は全体の性能に余裕があって I/O (ストレージと通信) が極端に足を引っ張る状況だったから言語処理系の動作速度は問題にならなかったけど今は全ての性能をギリギリまで絞り出す勝負に変わってる感じだね。
970:デフォルトの名無しさん
24/01/20 12:46:54.29 +pH1NoHl.net
Rust言語は
・タイプセーフ、メモリセーフによる高い安全性
・並列プログラミング処理設計
・ガベージコレクタのようなランタイム無しに動作
だから、これらを活かせる製品に採用したらいいんじゃないかな
いまどきそんなのは組み込みロボットとかカーネルやエンコーダデコーダくらいしかないような気がするけど
971:デフォルトの名無しさん
24/01/20 12:56:12.54 UT8XEnd7.net
>>953
その条件ならウェブに向いてるね
そして実際に使われてるね
972:デフォルトの名無しさん
24/01/20 13:15:54.83 KWXCbsaH.net
ウェブっていうかwasmじゃね?
rustじゃないけどffmpegのwasm実装は使ったことある
973:デフォルトの名無しさん
24/01/20 13:17:39.73 NDqmkpk/.net
>>954
Webって言っても大規模なユーザーがいるようなものじゃない?
大した事無いサービスで、スペック高い人が必要なRustはまだまだ辛い気がする。Javascript並みに誰でも使えますって世の中になったらRust一択でも良いのかもしれないけれど。
974:デフォルトの名無しさん
24/01/20 13:22:10.20 KBzblFQB.net
AWSもGCPもサーバーレス環境とかのランタイムや下周りがだいたいRustで書いてある
975:デフォルトの名無しさん
24/01/20 13:22:24.95 lxegQoou.net
CO2排出量は難しいな
Rust書けない人間がCO2排出するだけのうんこ生産機になってしまうのもあんまエコじゃない気がする
976:デフォルトの名無しさん
24/01/20 13:24:24.78 tKcafxZR.net
actix-webはどうなん?自分はよく知らんのだが使ってる人いるんけ?
977:デフォルトの名無しさん
24/01/20 13:24:56.70 NDqmkpk/.net
>>958
そんなこと言ってると、Rustへのリスキリング時のco2排出量もRustのコストって言われちゃうぞ。
978:デフォルトの名無しさん
24/01/20 13:27:59.09 KBzblFQB.net
CO2排出量を考えて、コンパイル中は息を止めている
979:デフォルトの名無しさん
24/01/20 13:34:01.02 vYJJrZqN.net
JavaがOracle事件で終わって脱SpringでRustのActixがついに普及するかなと思ったらC#のASP.NETにみんな行っちゃった
980:デフォルトの名無しさん
24/01/20 13:39:08.81 tKcafxZR.net
>>962
そうなんか…
981:デフォルトの名無しさん
24/01/20 13:57:32.93 ngmk9luX.net
Javaが脱Springなんて馬鹿げた事言い出してるのかと見間違えたが
脱Javaの話か
Rustは学習コスト高いからJavaでやってた様な大人数プロジェクトには向かんだろう
982:デフォルトの名無しさん
24/01/20 14:59:14.28 ppE6WkEJ.net
みんな経済合理性でRustを選択するんだよな
983:デフォルトの名無しさん
24/01/20 15:49:27.64 w9m16ZcP.net
>>952
特に機械学習ではその方向が顕著
MLIRみたいにSIMDやGPUを使う前提でIRが設計されてる
Node.jsが切り開いた非同期IOの登場もでかい
これによってIOの比重が高いプログラムでもIO待ちがなくなり
さらにマルチコア、GPUを活かせる環境が整った
一方Rustはtokioなどの非同期IOを実現できるフレームワークが山のようにある
さらにSIMD命令を直接使える仕様も整備されてきている
(LLVMの最適化によって勝手に使われることも多いが)
マルチスレッドは言わずもがな
他の言語でこれらを全てサポートしている言語はない
現在の最先端の環境を活かせる言語は他に選択肢がない <
984:デフォルトの名無しさん
24/01/20 16:00:45.48 tKcafxZR.net
RustのWebアプリケーションは未履修だけどぜひやりたいなあ
985:デフォルトの名無しさん
24/01/20 18:46:27.21 PTOG17pe.net
>>954
Webで使うにはTokioなどの重量級ランタイムが必要
ただ利用するだけなら難しくはないけどエコシステム含めそこまで安定しているものじゃないのでランタイム含め自力で修正できる力が必須
986:デフォルトの名無しさん
24/01/20 18:55:33.87 I+Fu8n3P.net
>>964
90年代後半にコボラーがJavaでWebアプリを作れるようになるための学習コストに比べればRustの学習コストは断然低い
987:デフォルトの名無しさん
24/01/20 19:12:06.87 6DBgVQg4.net
>>969
その時期にいた純粋コボラーって定年間際のジジイじゃん。そりゃ学習コスト高いわ。
988:デフォルトの名無しさん
24/01/20 19:21:51.44 w9m16ZcP.net
httpclientもそれぞれのイベントループに対応したものをつかわないとダメだから割と面倒なんだよね
使い方もフレームワークによってかなりクセが違っていて面倒だし
ぶっちゃけWebはGoやpythonでいいんじゃねーかって思う
989:デフォルトの名無しさん
24/01/20 19:26:03.92 tKcafxZR.net
Goでいいは分かる
990:デフォルトの名無しさん
24/01/20 19:56:32.80 k6CjZuQW.net
Go のランタイムサポートは分厚めだがどうせ要るもの(やること)と考えればそんなに速度的に不利なわけではないよな。
991:デフォルトの名無しさん
24/01/20 20:11:15.24 u/fg5YR1.net
速度的にはGoで十分なんだけど型とか貧弱すぎるんだよな…
sumタイプとパターンマッチくらいは欲しい
992:デフォルトの名無しさん
24/01/20 20:17:19.49 tNrs3Odf.net
>>968
tokioは他言語と比べて大きくない
そして安定している
>>971
各言語に複数のイベントループライブラリがあってその通りだが
Rustはデファクトスタンダードがあるためそこで困ることはない
993:デフォルトの名無しさん
24/01/20 21:17:45.54 w9m16ZcP.net
>>975
いやデファクトがあるのは良いけど
例えばコマンド実行1つとっても
tokio::process::commandとか使わなきゃいけなくてなんだかなあと
非同期版じゃないのと区別しなきゃいけなくて嫌気が刺す
まあpythonもasync使えば同じことなのだけど
994:デフォルトの名無しさん
24/01/20 21:24:03.71 w9m16ZcP.net
まあ俺はRust信者だから使うのだけど普通の人はなかなか辛いんじゃないかなーと
その点Goは何も考えなくて良いしpythonもasync使わなけりゃ同期的に書けるし
995:デフォルトの名無しさん
24/01/20 21:48:04.29 USm4U3n4.net
>>976
PythonもasyncはそうだしJavaScript(Node)も同期execと非同期exec分かれているし
動作が異なるのだから別になるのは当たり前
もちろんRustでも同様で
そもそも関数の返り値が異なる
だから関数が分かれているのは正しい
したがって一番下位のライブラリが別であることに何ら問題はない
一方で中位ライブラリ作成側の視点に立つと
同期か非同期かだけの違いでasync/awitを除いて全く同じ構造の関数を作ることになる
そのため『?async』キーワードによるジェネリック化がRustでは進められている
期待しているのはこの話でよいのか?
996:デフォルトの名無しさん
24/01/20 23:05:04.71 w9m16ZcP.net
>>978
いや見た目は似ててもpythonとはだいぶ違うよ
まずpythonでのasync defは単なるコルーチンオブジェクトなので非同期とか関係ない
これにより恐ろしい柔軟性を持ってる
さらにWebにおいてはASGIという非同期Webフレームワークが満たすべき仕様をまず決めた
その仕様を満たしさえすればどのような実装でも非同期の機能を満たせるような仕様となっている
そこにはもうイベントループなどの概念は消え去っている
さらに同期版と同居できる仕様となっている
なのでdjangoなどは同期版と非同期版の切り替えが可能となっている
このように明らかにユーザーフレンドリーな姿勢を貫いている
997:デフォルトの名無しさん
24/01/20 23:17:14.31 wyzQTwgG.net
>>979
Rustのasyncもコルーチンだぞ
まずは理解してから出直して来い
998:デフォルトの名無しさん
24/01/20 23:26:48.19 HZE0SdTu.net
>>980
コルーチンではないでしょ
999:デフォルトの名無しさん
24/01/20 23:49:39.00 nUH4CzWh.net
Rustのasyncはstackless croutineでstate machineとなっている
個別stackのresouceもswitchingも不要なため軽くて有利
1000:デフォルトの名無しさん
24/01/20 23:50:29.43 u/fg5YR1.net
Rustのasyncは(スタックレス)コルーチンである
Rustのasyncは(スタックフル)コルーチンではない
どっちも正しいとは思うけど
1001:デフォルトの名無しさん
24/01/21 10:13:23.50 VnWGTEfZ.net
>>977
Rustが活きるのってやっぱり軍事系じゃないかな
兵器の制御とかGCなんてもってのほかだし速度も必要
メモリリークも起こせない
1002:デフォルトの名無しさん
24/01/21 11:18:24.63 JCOE1HZY.net
DAD御用達?
1003:デフォルトの名無しさん
24/01/21 11:24:54.33 8LqvrPkW.net
物理攻撃にソフトウェアを活用するってある意味「お花畑」だよな
1004:デフォルトの名無しさん
24/01/21 11:29:12.59 7K9itJgV.net
パパ活か?DoDだろ
DoD御用達はAdaだぞ
1005:デフォルトの名無しさん
24/01/21 11:46:34.67 VnWGTEfZ.net
やっぱりAdaしかないか
プリプロセッサ使うのもNGだからマクロがダメなんかな
1006:デフォルトの名無しさん
24/01/21 11:59:39.08 dFB+Bg2+.net
とはいえF-35はC++だったんだし、そのうちRust採用されてもおかしくはないけどな
1007:デフォルトの名無しさん
24/01/21 12:09:12.81 4CYZ0hXB.net
The Book読んでコード打ち込んだりしたが理解できた気がしない
次はどうすればいいの
1008:デフォルトの名無しさん
24/01/21 13:24:30.49 8LqvrPkW.net
仕様の次は実装とか
いま極端なところにいる奴は次はもう一方の極端に行けばいいし
ちょうどいい位置にいる奴は一生そこに居続ければいいのでは?
1009:デフォルトの名無しさん
24/01/21 14:20:11.30 sCtD39A+.net
>>990
理解できてないと感じるのがunsafeやasyncやマクロ辺りならそこは一旦放置して小さいCLIツールをいくつか書いて実践経験を一度積むほうがいいかもしれない
逆にownership/reference/lifetime/generic/traitといったコアなところが理解できてないと感じるならオライリー本など別の入門書をすすめる
1010:デフォルトの名無しさん
24/01/21 15:14:08.20 eSjvKxMy.net
>>989
Rustは使われない
ISOプロセスは産業界の評価が高い
1011:デフォルトの名無しさん
24/01/21 15:15:15.91 eSjvKxMy.net
F-15は50年以上空を飛んでいることを思い出してほしい
Rustは50年後存在しない
1012:デフォルトの名無しさん
24/01/21 15:44:39.63 cX88PWDV.net
>>993
Rustのスポンサー欄を見ればわかるけど将来Rustが使われるのは確定されたことだぞ
アンチさんどんまい
1013:デフォルトの名無しさん
24/01/21 15:46:08.09 4rk7TZPC.net
統計学的に会社や国家、生物種の存続見込みを解析した例を見たことが有るな。
これまでの歴史が長いものはこれからも長く続く可能性が高い。
1014:デフォルトの名無しさん
24/01/21 15:50:57.32 eziZnnQK.net
>>996
Javaみたいにホストがアホなことするとすぐ廃れるけどな
1015:デフォルトの名無しさん
24/01/21 16:55:47.23 4CYZ0hXB.net
>>992
ありがと
1016:デフォルトの名無しさん
24/01/21 19:43:22.00 /dcZ0aWP.net
次スレ
Rust part22
スレリンク(tech板)
1017:デフォルトの名無しさん
24/01/21 20:22:28.74 mpR7a4j6.net
>>994
C++みたいに、色々な実装がでてくれは、50年後にも生きてるんじゃない?
1018:1001
Over 1000 Thread Thread.net
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 158日 21時間 57分 50秒
1019:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています