C++は三年ごとに改定されるので常に次世代言語です。
AWSがプログラミング言語「Rust」を使っている理由 https://japan.zdnet.com/article/35183866/ Amazon Web Services(AWS)は、同社のエンジニアたちがプログラミング言語「Rust」を 使っている大きな理由として、エネルギー効率の高さを挙げる。 AWSは早くからRustを採用し、GoogleやMicrosoftとともにRust Foundationの創設にも携わった。 現在もRustの普及に熱心に取り組んでいる。 AWSのソフトウェアエンジニアで、Rustの普及に取り組む、 Shane Miller氏と主任エンジニアのCarl Lerche氏の投稿によれば、 Rustはメモリー安全性を高め、セキュリティ関連の不具合を減らす役に立つだけでなく、 PythonやJavaよりもはるかに「エネルギー効率に優れている」という。 Amazonは、2025年までにデータセンターの100%を再生エネルギーでまかなうという目標を掲げ、 データセンターの環境負荷の軽減に取り組んでいる。 Rustの採用はその一翼を担うという。 Rustで構築されたAWSサービスの例としては、 コンテナーアプリ用のサーバーレスプラットフォーム「Lamba」を支える「Firecracker」、 「Amazon Simple Storage Service(S3)」「Amazon Elastic Compute Cloud(EC2)」、 コンテンツ配信ネットワーク「Amazon CloudFront」、 LinuxベースのコンテナーOS「Bottlerocket」がある。 「CやRustが他の言語よりもエネルギー効率に優れていることに驚きはない。 衝撃的なのは、その違いの大きさだ。CとRustを広範に採用すれば、 控えめに見積もってもコンピュートに使用されるエネルギーの量を50%削減できる可能性がある」と Miller氏は述べ、その根拠として、C、GoogleのGo、Lua、Python、Ruby、Fortranなどをはじめとする 複数の言語のエネルギー効率を相対的に示した研究結果を紹介している。 >>2 多くの言語が機能強化してるからそこはあまり意味がない C++はポンコツ土台に増築工事を何度も重ねていて質がよくない C++は過去資産しかメリットが亡くなっている >>3 でAWSが新規システムにC++を使わなかったのもメリットが既に何もないため お待たせしました(awesomeレス※) Zig https://ziglang.org/ Faster🚀 than Cが自慢「当然Rustよりもな😄」VIDEO 🆕 Bun(Zig) >Rustは本質的には不必要なことをやりすぎ「zero overhead abstraction」どこ行った?🆕 >Rust「アプリの実装と実装言語の善し悪しを混同すんな😡」<「Chrome(C++)について一言🎤」>黙秘🙊🆕 Rust 試食コーナーで食べてもらって狂喜乱舞 GAFAM >Rustエコシステムには投資しない トリクルダウン無し 寡占する GAFAM >だが今は試食タイムだ GAFAM >「あま~~い」ってさけんで食レポしてる😏みんな食べに来てね😛 StackOverflow >愛され言語ランキング1位 JetBrains >Rustで作らしてくれーと言ってるけど許可降りない KENTA >提灯コメント出さない 俺 >数学出来ないのでRustはキツイ規制の鶴亀算が史上最強 鶴亀算でRustフレームワークが充実することなんて無い Rust >鶴亀算だけなら俺が安全性や正しさを確実に保証 unsafe☢は関知しない お前の責任だ 俺 >今はRustだけで良い。レベルアップはお断りだ 数学出来ないけど有能社員を指導したいとは思ってる すべての理解が概念的 概念的に理解すれば簡単だ 有能社員 >Rustは学習コストが高い割に使えない C/C++を書けないとRustは書けない、Rustは意味なし 有能社員 >Rustは言語オタク 二極化だと思ってたらHaskell衰退の道を追う Rustには興味のアンテナ張るだけ 先行投資なんてしない 現実派 >データ競合がコンパイル時点でゼロってことはない。JARO⚠案件だ 下っ端社員 >RustはGAFAMなんかより自動車ISO認証級(仮)の実績積み上げがないと、言い出すのも怖い😩 Rust Rustは教官付き教習車だから、コンパイラの言うとおりに運転しないとブレーキ踏まれて前に進めない。 現実派 >具体的な話マダー?😡 >絶壁の学習曲線はRustの重大な問題 俺 >バカは遅い言語や危険な言語を使い続ければよい🆕 TypeScript実装した天才「Rustには向いてない、Goで作り直す」🆕 D C言語と同等に高速で安全も満たす言語 awesome-d 老舗の割にマメ 「ガベージコレクトされたプログラムの方が高速(10年以上前)」🆕 OCaml 関数型で速度を最優先するならこれ1択(or F#?) StackOverflow >愛され言語ではない F# 関数型最速はF#(実例根拠が待たれる) Go 実稼働分野でバリバリ活躍中 GitHub PullReq >TypeScriptとGoが圧倒的 Scala 実稼働分野でバリバリ活躍中 KENTA >日本では衰退しました ScalaでのNetflix分岐点(未確認) Nim Pythonからの乗り換えに最適(未確認 Numpy使ってないPythonコードの高速化例が主?) awesome-nim https://github.com/ringabout/awesome-nim🆕 ; メモリ管理はGCに押しつけさらに交換可能 https://nim-lang.github.io/Nim/mm.html🆕 ; Pony 開店前 awesome-ponyが2年以上更新されていない 参照の持ち方だけで6つもある(Reference Capability) behaviorが終わるごとに該当アクターでGCを回す 湧く沸くRust >High-Performance Safe Actor Programming https://news.ycombinator.com/item?id=25957307 Haskell アカデミック勢が根強い それ以外は衰退しました(未確認) Tesla,Microsoft,Meta,GitHub,一流銀行🏧 >使ってますが何か? https://serokell.io/blog/top-software-written-in-haskell Tesla >We use Haskell to auto-generate C code that is compiled into vehicle🚗 firmware. 下っ端社員 >いい話だ。だが結局☪かよ Julia 科学技術方面開拓中 StackOverflow >愛され言語ランキング上位 FORTRAN 科学技術方面で強い、しばしば1択 COBOL 金融機関方面では既存システムで根強い それ以外は衰退しました たしか開発者もRustはゴミと認めてなかったっけ。 反省点を踏まえて新言語を作るので期待してくれとか言ってたような。
>>3 Goは まだしも 突然LuaとかFortranとか出てきて 草生えた Goはすでに実用になってるので、次世代から新世代へ格上げかもしれん。
>>1-11 乙 >>9 それなら「反省点リスト」を整備・公開したほうがいいと思うけどなぁ。 Rustはすでにビジネスになっているからそんなことしないだろうけど。 >>15 そのメモリ管理バグが引き起こしているセキュリティ脆弱性の根絶ができる新たな言語がRustしか登場しないのはなぜだろう 今世紀になってからも色んな言語が誕生してきたけどリスクを残す手動メモリ管理のままか戦力外のGCへ逃げるか両極端しかない気がする 現在求められている要件をRustしか満たしていないためにRustが唯一解となり採用されていってる感じだ FirefoxってChrome対比で深刻なバグないの?
>>19 Rustでは禁忌の循環参照を除きメモリリークすることは絶対にない。 一般的に、循環参照を解放するにはコストが非常に高いトレーシングGCを用いるしかないため、 高速性が求められる言語では循環参照を作らずにツリー構造+弱参照という形にする。 >>23 コードを読めないのか? わざわざ複雑なことをして自分で循環させてるじゃん 自然には循環参照が起きないことの証明となっている >>22 現実世界でも禁忌を避けられると良いですね。 会社や客先の方針で無理やり使わされるプログラミング言語と違って 個人的な趣味で自由に言語を選べる状況でも使われるRustはやっぱりプログラミングがしやすいため?
ヌルポインタには解放前も解放後もないわけで 生ポインタの解放後メモリ利用というのはポインタがヌルではないから深刻なバグになる 弱参照は解放後は絶対にヌルになる(絶対に解放されるとは言ってない) 生ポインタと弱参照を比較するのが正しい それ以外の比較は誤解を助長している
Rustのやり方は賢面白くて賢いなあと思った ①まずRustでは言語仕様からNullポインタ(Null参照)を排除 ➁従来のNullポインタ相当を使いたいときはenum Option型のNone値を使用 ③None値はポインタ(参照)とは全く別の型だからそのまま使えば型エラーにできる ④しかしOption型はenumすなわちタグ付きだから毎回メモリが無駄に使用される??と思ったら ⑤言語仕様上Nullポインタを完全に排除したのでNone値を示すために生成コードではNullポインタを使える 概念上の安全性と生成コードの効率性を分離して両立させているんだな
>>33 「zero overhead abstraction」抜けてるぞ Rustではポインタだけでなく数値もNonZeroXxx型が各サイズ用意されたね 例えばOption<NonZeroU64>型はu64型と同じ64bitで表現されNoneの時に値0 従来の言語でのプログラミングでゼロ値を特殊扱いで値が無いことを意味させていたケースも安全に扱えるみたい
C++とRustが難しいって単なるバカなんだろ まとまな企業がZigを使うようになることはありえないな
>>42 興味深い >tscをGoに移植する作業は、Vercelがスポンサーとして資金を提供しています。 VercelってSvelteも囲い込んだな あとRustのままだとお金出なかったのか 規模ねぇ ripgrepにはお世話になってるけど、tscとかに比べたら規模も大きいとは言えないだろうし。
>>15 これは凄いなあ。 メモリーアクセスをコンパイラが管理するRustでは、出来ないのでは? C++は熟練するとやりたいことが全てできるようになる。 制限フリー。
>>38 ゼロ値を特殊扱いするケースってほぼ名義尺度だから直和型(あるいはenum)で十分じゃね? 算術演算できるような値の場合は負の値を特別扱いすることが多いような >>45-46 tsc-rust中止の tsc-goの教訓で言うと「向いてない」 このスレ的には「軍事予算級じゃないと不可能」 >>15 このスレの住人が書きそうな口調で笑った こんな記事を 聖書のように毎回持ち出してたのかw > 周期的な可変参照を持っています。 原文 > cyclical mutable reference Circular reference(循環参照)の事言ってるのか? >>47 C++は、トレイツやコンセプトで自由に出来るね。 さらに一歩進んでコンパイル時に3Dモデルの静的レンダリングやってる人も居たね。 おっそろしほど何でもできる。 制限フリー。 >>42 それ大規模だからできなかったのではなく単なるそのまま移植だからしなかったんだよ そこでの選択肢はそのRustで作製して62倍速となったプロトタイプをそのまま完成させていくか お手軽に同じGC言語へ文法や言語依存部分だけ書き直すかのどちらかの選択 速さよりもお手軽かつたまたまスポンサーが付いた方を選んだ ライバルが出現したり利益に直結しないならいくら遅くても構わない あと今までが遅すぎたから僅かな速度向上でも喜ばれる >>50 > Rustで作製して62倍速となったプロトタイプ Bun(Zig) vs deno(Rust)について一言🎤 >>51 その件は言語は全く関係ない Node.js(by C++)がそれらの中で一番遅い原因はC++が遅いためか? 違うだろ >>48 >>15 を確認せず適当に答えるけど、書き込める記憶域を予測可能な周期性でアクセスすると、それが(攻撃者が知りたい情報を読み取れるような)脆弱性となる。 ・ユーザーが同じ操作を繰り返すなどの理由で、先ほどと同じサイズの記憶域をアロケートし、また開放することを繰り返す。 ・同じサイズであるがゆえに、システムは先ほど解放されたばかりの記憶域を効率よく返してしまう。 これを防ぐために、返却された記憶域をすぐには使わず、一時退避させる。 ということでは? >>52 いや、それはC++が悪いであろう。 なぜならC++は光の速度を超えるために作られたのだから。 反省してC++26に反映するべし。 C++において、コンパイル時定数(constexpr)は、コンパイル時計算が適用される。 したがって、コンパイル時定数としてデータを渡すなら、コンパイル時に3Dオブジェクトのレンダリングを完了してしまえるということである。 もちろん、3Dに限らず制限フリーです。 そんな道楽にうつつを抜かすのがC++黒魔術部です。 入部に特別な条件はありません。 さああなたも今日から黒魔術士を目指しましょう。
>>52 二枚舌が捗ってるね 素直に Bun vs node vs deno -> 速度 Zig > C++、Zig > Rust tsc-rust vs tsc-js -> 速度 Rust > javascript なのでは >>56 二枚舌って、安倍元総理生き返ったの? 統一教会やるじゃん。 >>55 おまえさん初心者なんだな コンパイル時確定定数をコンパイル時に算出できるプログラミング言語くらいいくらでもある >>57 おやおや Rust無理筋上げが逆効果だと気づいて C++無理筋上げに応用しようとしているMAUI/C#erですか? C++ならconstexprは0秒実行です。 なぜならコンパイル時に計算が終わっているからです。 これは凄いです。 プロシュート兄貴も言っています。 > 「計算する」と心の中で思ったならッ! > その時スデに計算は終わっているんだッ! > 「計算した」なら、使ってもいいッ! まさにC++です。
ペッシ「分かったよプロシュート兄ィ!!兄貴の覚悟が!“言葉”でなく“心”で理解できた!」
>>60 コンパイル時に計算を終わらせるくらいなら君の大嫌いなRustでもできるし凄いことでも何でもない >>62 その御方は私ではないけれど、私は本名を名乗ってインターネッツしてるので、身バレも糞もないのですよ。 ツイッターもフェイスブックも本名アカウントで認証バッジもついております。 キミの限界は、きみ自身にあるんじゃない。 言語の限界が君の限界を決めるのだ。 さあC++で限界を超えろ!
>>60 C++は単なるimmutableをconstで表すため 本当の定数つまりコンパイル時定数をcostexprで表さざるを得なくなっちゃってるよな Rustではconstがコンパイル時定数だからわかりやすい もちろん同様にコンパイル時に関数を呼んで計算させて定数をコンパイル時点で算出確定させることができる >>68 だめだ!それじゃあダメなんだッ! 「本当の定数がある」じゃないッ!!! 俺たち黒魔術部員ならッ!「ファッ!??」「実行時定数が無いのッ!?」 と考える!!!! コンパイル時計算は理屈上はJITの方が有利でしょ 実行時の統計に基いて頻出パターンを事前計算するとかできるからな
>>71 よし、その理論をC++26へ提案する栄誉を貴様に与えよう。 >>48 それは単にVercelの人の能力がないのでは? rustcはRustで書かれてるんだしコンパイラは得意分野なんだけど なんで実装できないなんて判断をしたのか謎すぎる >>71 JITの方が当然不利 実行前にコンパイルを済ませてしまうC++に勝つことはできない Vercelの人のブログ見たけどtscをそのまま移植しようとしたのか? 流石にそれは無理でしょ typecheckerの仕様だけリバースエンジニアリングして その仕様をrustで実装するようにしないと あらゆるオブジェクトが参照であるtypescriptのコードを移植するとか流石にそんなことをやる発想が微妙
確かにGoならあらゆるオブジェクトを参照にできるし クロージャもあるしそのまま移植するのには向いてるかもな
元のtscのコードの多くの部分がガベージコレクションに依存していると書いているから それらを治して本格的に高速にする道を選ぶか サボって同じGC言語へ移植する道を選ぶか 今回は後者にしただけだろう 普通にある一般的なケースでは システムに何らかの限界が来て新たな設計をする機会で他の言語にする 何もかもほぼそのままで言語だけ変える特殊なケースならばGC言語の範囲内の中で選ぶしかない 世界中の人々が今後も使い続けるものならば非GC言語へ移植する価値もあるとは思うが
tscが遅いからそれより早いトランスパイラを作るという目的なら別にGoでも良い気はするね ただどこかで踏ん張ってRustに移植するという作業は人類にとっても価値があると思うけどね
GC言語使って参照を持ち放題で問題ないって それってプログラマがデータ構造とメモリレイアウトを正確に理解していない つまり副作用を追跡できないことを意味する でかいコードベースでその状態はかなりまずいよ
副作用を追跡できないからテストコードを書く必要が出てくる 参照と書き換えの制限はテストコードも不要にする tscを再設計する時が来てる
>>79 GC言語はプログラム設計やその中のデータ構造設計が酷くてもなんとなく動いてしまいがち もちろんバグは発生しやすくなるしデバッグしにくいしメンテもしにくいし機能追加や改善など大変 非GC言語が苦手な人や難しいという人はそのあたりのデータ構造含めたプログラム設計をきちんと出来ていないダメな人 >>81 困ったら適当に参照持たせたら終わりだしな しかもそれを書き換えたりもする めちゃくちゃだよな じゃあここにいるRust玄人たちでRust使ってtsc作り直せよ Vercelの人は能力不足だとかほざいちゃってるし
>>39-41 このコンボで精神崩壊したのか。 それで>>84 でUber disやら深夜のVercel dis GAFAMのやらかしなんてキリがない 二枚舌が捗ってる Rustが失敗だったからCarbonの開発が始まったんだよな
前スレ >GCで良ければGC言語使えば良いよ Google >Rustで良ければRust使えば良いよ Google >Rust使えないから Carbon始めました
>>84 それソーシャルクラッキングだから言語なんて1mmも関係ないぞ >>86 Carbon公式FAQを読みなさい If you can use Rust, ignore Carbon とのサブタイトルから始まりRustの方が良いと書かれている Carbonは既存C++コードのための存在 Google >Rustで良ければRust使えば良いよ Google >Rust使えないから Carbon始めました まんまじゃねーか
CarbonはC++に強く依存したプロジェクトのためのものなので、そうじゃないならRustを使え、 とわざわざ書いてあるんだな
Google >Rustで良ければ Rust使えば良いよ Google >Rust使えないから Carbon始めました まんまじゃねーか
RustはRustに強く依存したプロジェクトになるという欠点があるからな。 Rusteseはそれが狙いなんだろうけど。
>>94 Rustese>こっちの水は甘いよ Google >Rust沼はスルーする >>95 GoogleはRustを使いまくっていて AndroidとLinuxがRust導入することになったのもGoogleの強いRust推しがあったためだよ 一方で既存のC++によるシステムは次に大規模システム改変があるまではこのまま使い続けたいけど C++には問題が多すぎるからCarbonでそれまで延命するっていう話だよ >>96 もうRustは諦めな 向いてなかった Goスレの自己紹介レスうける そもそもGoogleはRustを安定的に支えるために設立したRust Foundationの発起人やんけ
>>84 こういうのはだいたい最初の突破口はクラウドの設定ミスかソーシャルエンジニアリング C/C++用のライブラリ書く機会多いもんなぁ だがここにRust使ううまみは全く無い
Rustはなんでも「Rustなら最高に安全に、高効率でできる」と言って、開発効率を無視するのがなんか違うよなって思ってる。 すぐに「長期的にはRustの方が開発効率が良い」とか言うし。 「最初は負債を負ってでもプロダクト出さなきゃしゃーねーだろ、後で返済しろ」みたいなまともなビジネス要件を完全に無視されるので、なんなのよって思うことが多い。
大風呂敷はともかく 言語仕様に絞ればRustはプログラミングしやすくて開発効率が高いのは事実だと思うぜ その点まで否定する人はいないと思うが
C++には自由がありそうでないんだよな bad_allocを投げない自由があるとか綺麗事を言うが実質的にそんな自由はない
>>105 (26) 前スレまでのC/C++のレベル見てC++に寄生すな >>106 (26) www Zigも攻撃対象か。zenが全面的に悪い 競技プログラミングでC++が好まれるのは、脳汁が出るからです。 ランナーズハイやクライマーズハイと同じ、あるいはゾーンに入ると表現されることもあります。 RPGで言えば、加護を受けて無敵状態の時間帯です。 どうだ!C++凄いだろ!!
ぜ語尾でマウントの複おじ な語尾で主観垂れ流しの複おじ 体言止めで証明失敗の複おじ 各種取り揃えております
ツイ 12年前「19の大学生です」か 完全一致 とんだ泥棒やろうじゃないか
まともにRoRやれば良いんじゃない? 現実解>>27 法的な泥棒には当たらないけどOSS倫理的にはNG Zigがわざわざ日本語の声明を出している Zigソフトウェア財団とZenプログラミング言語に関する声明 https://ziglang.org/news/statement-regarding-zen-programming-language/ >コネクトフリー社の創設者であるテイト氏は、不完全な技術論により彼自身の行動を正当化しようとすると同時に、契約条項を利用してZigの貢献者がこのオープンソースプロジェクトに更に貢献する事を阻止しています。また、コネクトフリー社のZenはZigを表面的にリブランディングしたものに過ぎません。このようなテイト氏の過去と現在の振舞いから、日本の専門家や会社がこうしたクローズドソース製品に頼り生計をたてようとするのは、私どもの良識としてはお勧めできません。 >>114 >法的な泥棒には当たらないけどOSS倫理的にはNG > >契約条項を利用してZigの貢献者がこのオープンソースプロジェクトに更に貢献する事を阻止しています。 倫理置いとくと法的にはZigのほうがヤバそうね。 詐欺出来るくらい、ITに強くなったと考えるべきでは? 日本やるじゃん!
Zig怖いわ 日本人なら詐欺師の味方するよな! 応援しようぜ! そんな弱小言語がどうだろうと俺たちには関係ないし。
OSSのクローズドフォークで金儲けなんてRust信も大好きGAFAMだってやりまくってるからなあ Zig開発陣にとってはいい勉強になったねとしか
そのへんの経緯を知りたいけどよくわからない Zen側が貢献してきたZigソースコードは全て他で置き換えられてZigから抹殺されたのでZen側にはZigに対する権利は無くなったと主張しているってことなの?
「ライセンスを持つものは、他者にライセンスを分け与えることが出来る」 「それ以外の方法でライセンスを得ることはできない」 という、繋がり重視のライセンスを考えたんだが。 特許とっていい?
>>114 Zigのライセンスにはリブランディング禁止条項ないから リブランディングは無問題 当然Zigのライセンスには従う >>109 競プロってC++の機能を大して使ってなくね? 最近出た競プロの本立ち読みしたけど普通に90年代のC++だった Bit とかいうずぼらなやつが使えるからじゃないか
>>104 RoRだけは無い、と思うんだけど、これも多分自分がやってる事と違うだけなんだろうな。 Jaktの人、精力的でええやん C++の置き換えに一番期待できる言語仕様だから早く安定板にしてほしい この人なら専用IDEも作ってくれそうな勢いを感じる 他の言語はIDEに無頓着だから困る
人類の資産の8割がC/C++で出来ている。 したがって、C/C++に注力することで、人類の発展と未来が担保される。 と思います!!
ZigならC++で良くね?って思う C++のベストプラクティスが分かりにくいという問題なだけでしょう
>>88 ソーシャル・クッキングって日本語で言うと闇鍋? >>132 そう思うとrustって愛されてるのに誰も何も作ってないよな せいぜいunixコマンドの移植ぐらいじゃね? 何か作るならPythonでいいよな Pythonが否定されるまで次世代言語の出番はない
lua使ってたの? それはそれで心配になる技術レベル
Luaはゲーム開発なんかではよく使われてるし、スクリプト言語の中では相当速いはず そりゃCloudFlareほどの規模ならCやRustで書き直したほうがいいのは確かだけど 別に選択として悪くはないと思うけどな
Lua使ってたという話は10年以上前には時々聞いていたけど最近でもゲームで使ったりするのかな・・・
C++の適当なサブセットをベターCとする戦略が失敗したから LuaがベターCになってしまった それにJavaScriptをブラウザ以外で使うのもあまり成功してないから
肝心のLuaJITのソースコードが汚くて協力者が集まらないと聞いた事がある
>>144 マジでこの人胡散臭いよな なんで外国人なのにわざわざ日本に来て活動してんだろう nodejsが出たときJSがサーバーサイドも覇権を取るみたいな言説が一瞬湧いたけど、今となっては絶望的だな。 フロントエンドの事情が漏れ出て足引っ張られまくり。モジュールとかfetchとかバンドルとか。
>>154 あれはマジで読めない dynasmっていうオレオレJITライブラリを使ってるんだけど 既存のluaのソースにそれを埋め込んでるからマジで酷いんよ >>157 React.jsやVue.jsなどでサーバーサイドレンダリングもする場合は サーバーサイドを別言語で改めて書くなんてバカなことはせずに そのまま同じJavaScriptコードをサーバーサイドで実行するのでNode.js等が使われている これをしないと各ページは中身のない雛形のみサーバーが送出するので ブラウザで表示が遅くなったりSEOで不利となったり様々なデメリットがある だからサーバーサイドでNode.js等のJavaScript実行環境が使われている >>157 サーバーサイドの前段に置くというので落ち着きつつあるよ つまりさらにややこしくなった ブラウザで実行可能なバイナリを送りつければいいんや
もちろん例えばサーバーサイドをRustにしてフロントエンドをWasm(by Rust)にすることで共通コードを走らせたり
>>159 の時点では断定できなかったが >>162 でただの聞きかじり、知ったかだと判明した そうならそうと言えよ >>163 実際にNode.jsで動かしてるんだが何が不満なんだ? >>164 Rust/wasmはどうした? deno(w)じゃないぞ >>165 Denoは使っていない サーバーサイドでのJavaScript実行が最大の負荷ネックなのでRustへの移行を試みている >>166 正直に言えたね SSGとかedgeとか検討してね >>167 SSGも当然しているがSSRと同じで各ページ生成のJavaScriptコード実行が負荷ネック CDN edgeも当然検討していてedgeでのWasm実行があるのでその点でもRustが良いとの結論になった >>168 検討ばっかし 胡散臭い結論 もういいよ >>169 もしRust/Wasm以外に負荷コストを下げる方法があるならば提案してみるので知りたい 無さそうならばこの方針のまま進むと思う そもそも負荷コストが問題になっているのか、Rustへの投資を回収できるかを定量的に評価せよ
言語に対して投資を回収とはどういうことかよくわからない サーバーリソースは大きく減る見通し
>>172 具体的に何円減るんだ?それは現在の事業や人員の規模に対して十分に意味のある金額と言えるか? そういう計算できないならそらISUCON勝てないわな >>174 技術のスレで具体的な金額を求めて何をしたいんですか? ISUCONを持ち出すのも唐突すぎて何を言いたいのでしょう 十分に意味があるから進めるわけですよ Scala難しくね? 開発者高くね? Netflix以上じゃないとpayしない HW投資しとけ みたいな話を何かの講演動画だったかでみたけど思い出せない >>175 >お金を儲けること その通り。 自社開発で開発者が暇してるのでもなければ、HW投資かサバ代予算増額の方が良い。 速い言語を使えばいいだけなのに、 遅い言語を使って無駄にリソースコストを支払うのか。 遅い言語を使うとメリットあるなんてことは一切ないのに。
架空なのか自社サイト(いつでも再検討)なのか 好きにしたらいいよ。上司の許可は忘れずに
転職して最初の決算以降、誰も私に意見を言えなくなりましたよ。 結局のところ、実力が一番大事なのでは? これは、会社員だけでなく、言語にも言えると思いますよ。 実力が大事。
開発コストはどの言語でも変わらない。 遅い言語だと開発コストが安い、なんてことはない。
>>179 PythonもRubyもNode.js・Javascriptも、果てはRustさえ敵に回す、迂闊な発言だわ。 「全員宇宙開発で使われる安全なアセンブラで書けばいいのにね、りそーすこすと!」 >>183 だよね cloudflareでも今の今までRust導入に手こずってるんだから cloudflareの規模があれば回収できるが、中小は無理でしょ じゃあバッチとか書かないで、全部おすすめの言語で書きなよ?MS Officeのマクロも書かないで、あんたの信じる言語で書きなよ? だれも止めてないよ?ただ単にアドバイスしてるだけでね、りそーすこすと!
アセンブラはプログラミング言語ではない。 アセンブラとほぼ同じ速さを出せる言語が多数あり、 それらで書くとコンパイラによる最適化フェーズもあり有利だ。
>>186 Rust導入で手こずるなんてことがあるんですか? 他の言語と同様に手こずることはありませんでしたが 外貨じゃないと買えない電気と いくらでも発行できるとかいう無限のリソースで買えるシステムとの対立なのかな
>>193 この人いつもポエム挟んでくる スルーしてたけど、 >>153 >C++の適当なサブセットをベターCとする戦略 これ何のことか聞かせて >>192 検討とは何のこと? Rustへの移行を試みていると>>166 に書いたように 既に小規模な実験をかなり進めていて見込みは良好です >>195 >小規模な実験 お一人様Rustの虚言 >>194 でも、真髄を突いたポエムでは? これ、円をいくら発行しようとも、エネルギーを外国に頼ってるから無理、って意味でしょ? Rust導入で手こずるなんて ない* (*小規模な実験)
>>196 >>198 先に小規模な実験で色んなことを検証するフェーズがあります これは新機能追加や一部システム改変など様々なことで必ず事前に行われます 他のところでも似たような感じで進めるのをよく見聞きしますが 何を問題にしていますか? >>199 別の人ですよ。 ID見ればわかるじゃないですか。 >>182 「真性の病気 」はなかなかないから、何かの一環で頑張ってるんだよきっと? Goスレ663-664でめっちゃ「挑発的」聞き方で、「全訳」に挑んでいる奴がいるんだけど雰囲気似てる 何の「動機」で全訳に取り組んでいるのか、怪しい「ライセンスビジネス」とか「本」でも出すのか 「どこが全訳」だしてくるか後日「答え合わせ」しようや rustのボローチェッカーみたいにポエムチェックされた
複オジはね もともとはRustスレでクソコード貼り付けてた子なのよ あれみたらわかるけど決して職業マではないわ 暇を持て余した学生か無職よ 病気というより単にエアプ勢なのよ
>>202 ライセンスビジネスや本にするにはあらゆる方向で無知すぎるからそれはない >>207 仕事でやってれば必要になる観点を持ってないから職業マじゃないのは同意するが エアプで知ったかぶりするだけでなく 嘘までついて虚勢を張り続けるのは間違いなく病気 >>203 最初に書いたようにWebサーバーサイドとフロントエンドWasmです ソースをよく読むことが絶対正しいとは限らない 読まない方が効率が良いことが多い
>>213 =本日のポエムおじ >ポエムおじのカキコはポエム きにすな >>214 ポエムとは何かが全然分からないが、どっちが善良でどっちが悪かは誰でも分かるぞ >>212-215 「ポエムおじ」つついてもセキを切ったように「複オジ」が出現するんじゃね? >>218 Microsoft AzureのCTOもC/C++を捨ててRustへ移行か QZはまた別のコテよw そいつは昔から定期的に叩かれてる
>>219 このクラウド時代はRust一択だからさ >>223 さすがにそいつはこっちのポエおじとは別のポエマーだろ MS Azureの人がわざわざこんなツイをするなんて 余程Rustが上手くいってないんだろ 自分たちでお金掛けずにOSSを煽ってる様だ
ほしいのはrustの方向性を持った言語バリエーション rustだけってのが良くない
単一のWebリクエストの処理だったりスケジュールバッチだったりゲームのステージだったりと、 リソースのスコープが何らかの一連のコンテキストに対応しているケースは多いと思うんだけど そういったコンテキストに基づいたリソース管理を言語組み込みで自然に記述できる言語ってないのかな もちろんコンテキストが同期的に完結するならRAIIで実装できるけど、非同期も考慮するとGoのContextみたいにライブラリになっちゃってどうしても強制力や記述性は劣るよね
>>231 マイクロソフトCTOがRust推奨ツイートしたのは今日だぞ US政府は1年4ヶ月前 2021/5「対応しているポーズ」 その後遅々として進まず 今日「みんなRustやろうぜ ポーズ」(俺のせいじゃないアピール) >>233 この件(>>231 )に対する意見は? >>232 Rustならば非同期であろうとリソースを使う主体へ所有権が移動していってリソースを使うものがいなくなると自動的に解放されるべ >>231 この動画の公開が昨日(unlisted) >>218 今日「みんなRustやろうぜ ポーズ」(俺のせいじゃないアピール) >>229 >ほしいのはrustの方向性を持った言語バリエーション そう 時間稼いで新バージョン作って結局C++のまま。一部新規の簡単なところだけRust Rust、俺も好きだよ Linuxカーネルにも6.1でやっと入るしね でも好きなんだけどwinui3対応来ないしdirectx 12対応も公式サポートも来ないし(コミュニティのd3d12-sysなんて6年前だぞ!)、fsharpがあらゆる.NETエコシステム非対応になってる再来に見えて仕方がない Microsoftのやるやる詐欺にはいい加減懲りてるんだ
>>231 GAFAMの一致点がRustだけなので近いうちにUS政府の方針となるのは間違いない >>240 GAFAMwww cloudflareも入れてやれよ でも真面目な話で>>237 が現実解 >>238 >Rust、俺も好きだよ 俺もRustが普通の時代(仮 遠い目)が来るなら拒まない >>238 >Microsoftのやるやる詐欺にはいい加減懲りてるんだ Rustの件は「莫大な軍事予算が下りる」くらいないと>>237 で着地 「莫大な軍事予算」マダー?>US政府 結局>>15 の問題が様々なインフラに影響を及ぼしているので 新たなシステムから順にC/C++を捨ててRust採用て話なんやろな みんなRustやろうな マジでこれからはこの言語一択
>>239 >>246 牛歩ポーズでも1年半まえから(一部は)許可下りた訳だから jetbrainsの数字(>>27 )に期待だね Rubyに追いついたかも >>218 Microsoftの人でもGC以外の言語が必要な場合はって感じなんだね。当たり前と言えば当たり前だけど。 >>249 興味があるなら時間見つけて動画リンク(時間指定 >>231 )のさわりの部分だけでも見た方が良いよ US政府要求に沿ってるだけ RustのUS裏事情かLinux6.1ニュースで気をよくしたのか他スレで暴れだしました
このスレが盛り上がるのは平日の20-26時くらいなんだよね きれいな社畜で笑っちゃう 僕はRustで1600万ほどもらってます
>>256 お客様が大手企業だからってことは無いの? この世界は二種類の人々に分かれている。 『言語・技術』に興味を持つ人々と、 『オジサン』に興味を持つ人々である。
>>256 が言っていることに真実があるなら 複オジ は 会社(零細スタートアップか何か)の社長(or COO) >>207-210 は連係プレーで職業マを否定 >>207 は何か知ってるんじゃないの? 複オジの虚言癖を真に受けちゃうのも結構やばいぞ 至る所に嘘だと分かるヒントが散りばめられてるだろ
長期視点で見ると以下の通り python →今からやるのは機械学習の人たちだけオッケー Go →Rustで良い C/C++ →Rustで良い TypeScript →wasm-bindgenがdomなどをサポートしてるのでいらない Zig →生ポインタとかメモリアロケーションとかCに先祖返りしてるRustで良い Carbon →C++どうでも良い場合はRustで良い よって長期視点で見るとRustだけでよろしい
>>259 メカニズムに興味を持つ人とポリシーに興味を持つ人 デバッグが苦手な人は、人間の意図と関係ない現象に興味を持つのが苦手なんじゃないかと思う メカニズム以前の問題だから複オジは馬鹿にされとんのよw
長期的視点で見るならRustの最大のリスクは、クールでセクシーな新言語の出現だろうな Scalaの悲劇を忘れてはならない
ScalaはJVM言語だったのが最大のミス オラクル支配の言語なんか使えるわけない
特定の言語に固執するのは技術力の低さの証 その状態が許されるのは人を動かす仕事ではなく人に動かされる仕事をしてる間だけ
クールでセクシーって進次郎のことか。 進次郎構文のプログラミング言語なんて誰が使うのさ。 統一教会が売りつけてきそう。 自民党だし。
ScalaはJVMワールド内でもKotlinに惨敗したでしょ 思慮が浅い、やり直し
>>265 言語はメカニズムじゃない 言語設計者以外にとっては Scalaは関数型を積極的に取り込んだよね よーく見ていくと詰めが甘いと言うか苦しいとこあるけど 部分適用させようとしてアンダースコア書かないといけないとことか
Scalaはしばらく使ってたけどライブラリの破壊的変更が酷くてやめちゃった 半年ぶりにコンパイルすると全く通らない状態だったし 最近は落ち着いたらしいけど今なら他に選択肢もあるし戻ろうとは思わないなぁ
YouTube で有名な雑食系エンジニア・KENTA が、 Scala, PHP をオワコン認定した それで、ScalaのTwitter、Laravel のZOZO が、やばくなった。 まともな開発者が集まらない これでオワコンと言われた、Ruby on Rails がますます1強になっていく
大昔のゲームを今やってるおじさんは、ソフトが時代遅れになる恐怖を感じない
色んな業界がRustへ移行しようとしてるんだな ドライバはバグでセキュリティホールになりがちだったから今後C禁止Rust必須の方向へ進むかもしれない
>>279 覇権だな もうRustを使わない理由がない >>220-221 こっちで話出てからC言語スレの様子が変わった ハノン ◆QZaw55cn4cと雰囲気の似ているスレに注目してる Flutter vs .NET MAUIで口の悪いC#erも注目してるが 昨晩>>261 以降の怒涛の「>>255 を受けての連係プレー?」の際も自前の動画作業をしていたようなので こっちのRusteseとは一旦切り離してみる >>278 結構昔のゲームでもModが今だに更新されたり新しく出たりしていて、楽しいんだよね… 「Linux」、バージョン6.1でRustを導入へ--トーバルス氏が明言 https://japan.zdnet.com/article/35193491/ LinuxにRustを導入するかどうかという議論は終わりを迎えた。Rustの実装は既に始まっている。Linuxの父であるLinus Torvalds氏は電子メールによる筆者との対話の中で「何かおかしなことが発生しない限り、それ(Rust)は6.1で導入される」と述べた。 律儀に有用記事をキッチリと上げてくれる人、それ要らないよ
いよいよ 数学的証明のない Rustの安全性が 試される 時の試練はこれからだ
>>288 C++は欠点だらけだとして一切受け入れなかったLinux開発陣が Rustは有用だとして正式に受け入れることが決まったのか Rustは保証とか証明可能って軽率に言う CSや数学勢、敵にまわし過ぎ
>>296 色々条件つけての保証なり証明だろ 数学屋さんが扱うものとはレベルが違うぞ >>297 これだからRusteseは証明が何か、まるで分かって無い >>298 そんなフワフワしたレスしか返せないなら黙ってりゃ馬鹿がバレないのにw >>299 そういえばRusteseって数学できないんだったな >>297 >色々条件つけての保証なり証明 お前、さっさとその「証明」論文(仮)持ってこい それとも、また優良誤認詐欺かよ >>300-301 どの機能についての話だよ そこを明確にしないからフワフワした話だって言われるんだろw >>297 >色々条件つけての保証なり証明 >>302 なら、お前がもってこい、存在するならな それとも、またRusteseの優良誤認詐欺か >>303 おいおい、お前が言い始めた「色々条件」だろーが お前が想定した「条件」で良いのに、ひとつも「証明」が存在しなかったのか またRusteseの優良誤認詐欺か >>304-305 まじでバカなのか? 個々の機能について条件付けて正しいことを証明してるんだぞ 別に世界の真理について証明してるわけじゃないのにアホすぎるだろw >>306 >証明してる お前、さっさとその「証明」論文(仮)持ってこい もしかして口だけ証明なのか? またRusteseの優良誤認詐欺か >>306 >証明してる お前、良かったな、どれがその「証明」論文かさっさと出せ(>>308 ) もしかして口だけ証明なのか? またRusteseの優良誤認詐欺か >>306 >>310 >証明してる お前、さっさとどれがその「証明」論文か出せ(>>308 ) もしかして口だけ証明なのか? またRusteseの優良誤認詐欺か >>308 に示されたRust論文一覧をアンチ側が全て論破すべきターンとなりました その通り >>306 >>310 >証明してる お前、さっさとどれがその「証明」論文か出せ(>>308 ) もしかして口だけ証明なのか? またRusteseの優良誤認詐欺か おいおい、まだかよ 「どれ」の「どこ」だよ >>306 >>310 >証明してる お前、さっさとどれがその「証明」論文か出せ(>>308 ) もしかして口だけ証明なのか? またRusteseの優良誤認詐欺か >>312 横からだけど、そりゃ無茶だろ。 数学的証明でない論文が大半じゃない?初っ端から実験的手法の論文みたいだし。 まずは数学的証明の論文を提示したほうがいいと思うわ。メモリ安全性に関する論文はRust公式も宣伝していなかったっけ? おいおい、まだかよ、Rustese数学できねー、なさけねー、早くしろ 「どれ」の「どこ」だよ >>306 >>310 >証明してる お前、さっさとどれがその「証明」論文か出せ(>>308 ) もしかして口だけ証明なのか? またRusteseの優良誤認詐欺か >>311 ,313-314,317 基地害か? 全部知りたいなら>>308 が挙げてくれた論文見ればいいし、個別に聞きたいならなにが聞きたいのか示せよ >>306 >>318 >証明してる お前が、さっさと「どれ」の「どこ」がその「証明」論文か出せ(>>308 ) もしかして口だけ証明なのか? Rustese数学できねー、なさけねー、早くしろ またRusteseの優良誤認詐欺か cycloneじゃなく、さっさとRustの「証明」だせ >>306 >>318 >証明してる お前が、さっさと「どれ」の「どこ」がその「証明」論文か出せ(>>308 ) もしかして口だけ証明なのか? Rustese数学できねー、なさけねー、早くしろ またRusteseの優良誤認詐欺か 「ベースとして作られ」 これが「証明」だと言ってるのか? もしかして口だけ証明なのか? >>306 >>318 >証明してる お前が、さっさと「どれ」の「どこ」がその「証明」論文か出せ(>>308 ) Rustese数学できねー、なさけねー、早くしろ またRusteseの優良誤認詐欺か >>323 しっかり>>319 の論文で意味論も与えて証明している 論文中でのリージョンがRust におけるライフタイム 基地害がIdコロコロさせながら連投かよw サクッとNGWしとくわ
>>327 Cycloneのregion = Rustのlifetime だから CycloneもRustもコンパイル時点でメモリ安全性を保証できることが>>319 の論文により証明されている 「ベース」にあった性質が「派生」で失われた 「ベース」にあった他の性質が「派生」で保持されていると言う「保証」「証明」はない 「派生」で付け加えた性質には、「何の証明」も与えられていない これが正しい論理的思考
キチガイが暴れているようだが Cycloneのregion = Rustのlifetime なので Rustはコンパイル時点でメモリ安全性を保証できることが>>319 の論文により証明されている >>332 まさにこれ だからRustの「証明」を出せ、と言っているが、数学的論理的思考の出来ないRusteseが永遠にエコーチェンバーで陶酔してる 「Cyclone Core」には数学的証明が与えられた性質が存在している(>>319 ) しかし 「Cyclone」にあった性質(*)が「Rust」で失われた (*Rustは「メモリリークをコンパイル時に防ぐ」ことは出来ない) 「Cyclone」にあった他の性質が「Rust」で保持されていると言う「保証」「証明」はない 「Rust」で付け加えた性質には、「何の証明」も与えられていない これが正しい論理的思考 論文中のCycloneのregionとRustのlifetimeは同じことを意味しているから >>319 の論文の意味論そのままRustにも適用できますね コンパイル時点でメモリ安全性を保証できることになります 「Cyclone Core」には数学的証明が与えられた性質が存在している(>>319 ) しかし ①「Cyclone」にあった性質(*)が「Rust」で失われた(*Rustは「メモリリークをコンパイル時に防ぐ」ことは出来ない) ②「Cyclone」にあった他の性質が「Rust」で保持されていると言う「保証」「証明」はない ③「Rust」で付け加えた性質には、「何の証明」も与えられていない これが正しい論理的思考 「Cyclone Core」には数学的証明が与えられた性質が存在している(>>319 ) しかし ①「Cyclone」にあった性質(*)が実際に「Rust」で失われた(*Rustは「メモリリークをコンパイル時に防ぐ」ことは出来ない) ②「Cyclone」にあった他の性質が「Rust」で保持されていると言う「保証」「証明」はない ③「Rust」で付け加えた性質には、「何の証明」も与えられていない ④「Rust」の「コンパイル時点でメモリ安全性」(仮 + *)は「証明」されていない これが正しい論理的思考 ④を認めるのが「都合が悪い」Rusteseが 4~5名 存在します。深夜から早朝、日中まで。 >>319 の論文を見たけど、regionをそのままlifetimeと読み替えれば論文でのセマンティクスは成立してるね したがって、Rustはコンパイル時点でメモリ安全性を保証できることを意味してる、で合ってるね >>338 >④を認めるのが「都合が悪い?」Rusteseが 4~5名 存在します。深夜から早朝、日中まで。 そして夕方~夜間も。 片や火消しにRustしか使えない蟹道楽 片や同じ内容で罵倒するばかりの文鳥
「意味論」「セマンティクス」これ目立つ。しばらくwatchするか掘ってみるか
>>342 バカの相手はバカしかつとまらないってことだよ >>343 それ某コテハンの人がよく使う 複オジ語録 「Rust」の「コンパイル時点でメモリ安全性」(仮 + *)は「証明」されていない (*Rustは「メモリリークをコンパイル時に防ぐ」ことは出来ない) >>325 ,335 >>339 お前ら、「意味論」「セマンティクス」の言葉を出せば、煙に巻いて、 嘘が通せると思ってんのか? >>348 なさけねーレス 複オジ社長w連れてこい >>348 今夜のレス常駐当番なの? 複オジ社長wと連絡とれた? 無視しろって言われた? 君、.NET MAUI担当なの? >>325 ,335 >>339 「数学自体が架空」って、おいおい、数学出来る奴はそんな発想すらねーんだよ >>343 意味論(semantics)はコンピューターサイエンスでは常識かつ必須のものであり 今回のような証明においてももちろん不可欠のもの そして>>319 の論文を見てみたら当然のように今回の核心部分で意味論(semantics)が出てきている 皆が言及しているのも当然なのであった >>352 Rusteseは素人だまして近々Rustで商売を始めるの? >>354 世界トップシェアのCloudflareがRustで書かれて動いているのかよ! この腐ったスレで仮定の話をしてみる 尋常ならざる「ヘイト」を集めた仮想集団Rustese(4~5名)が、近々
>>354 5chもCloudflareを使っているから これでこのスレの住民が仲良く全員ともRust製にお世話になっていることになるね >>356 もしかして相手にしてるのが複オジ一人だと気付いてない? 「ヘイト」を集めた「仮想集団Rustese」(4~5名)(仮定)はどういう設定なの?
各スレをそれぞれ荒らしている集団 それぞれ担当分野をいくつか持っている
日本のITの発展を阻害するのが目的な裏組織でもあるんじゃないかと妄想したくなるなw
なるほど、腐ったスレ -> 腐った設定を楽しむポエスレ 追加設定(仮): Rust,Go,C#,組込み,低レイヤー,それぞれ担当分野の強みを集めて日本製VRヘッドセットなどのウェアラブルデバイスのキット、総合ソリューション商売(仮)を近々発表する設定 ファームウェア、デバイスドライバがRust製、Rustの優良誤認を巧に利用したセールス Rust,Goの「全訳」(公式以外)を出してコンサル、受託開発もすると宣伝 近々予定のLinux6.1を良い弾みに使う Rustの>>338 は都合が悪いから火消し作業@5ch w ネットメディアに取り上げられて「顔出し」インタビュー記事が出るw 尋常ならざるネット行動で「ヘイト」を集めた「仮想集団Rustese」(4~5名)(仮定)の社長(仮)が複オジ社長(>>256 )w >>354 Web方面もRustが使われるとは驚いた 5ch常駐&自演癖&妄想癖の複オジしゃちょーがまともに仕事してるわけないでしょ おまえは何と戦ってるんだ?
>>367 そもそもMozillaがFirefoxのために作った言語だし >>367 Web 方面って言うか CDN なんてゴリゴリのサーバーソフトだからむしろ組込ソフトに近い分野だぞ そこらへんはFPGAでは? FPGAの回路合成にC/C++は使えるけど、Rustが使えるという話は聞いたことがない。
CDNは普通にHTTPを解釈してその様々な指定に応じて様々な対応処理をするウェブプロキシサーバー(ソフトウェア)
>>371 FPGA はもう一つレイヤーが下 ルーターとかスイッチの世界 CDNというものは、所詮、ファイルを送出してるにすぎないんですよ。 しかし、非常に高速性が要求される。
nginx使ってたのを独自Rust実装にしたという話で FPGAの話がどっから出てくるんだ
いまどき、ソフトウェアとか言ってたら、もしかして:自宅警備員。 と言われちゃいますよ。
>>378 どこにもCDN自体をFPGA化したなんて書いてなくて笑うしかないんだけど そもそも画像処理のFPGA化なんていつの時代の話してるんだよw CDNにFPGAは無理 処理すべきバリエーションが多すぎる さらに設定ファイル毎に異なる動作をしたり機能も追加されていく もちろんCDN各社ともproxy server softwareを用いている
>>383 無理かどうかは分からんけどデータ自体を処理するわけじゃない(そう言うのはルーターなりスイッチの役目)だからあんまり効果は無いだろうね じゃあ今ならRustで構築するのがベストか Cloudflareは当たり前のことをしただけ
>>354 うおおおおおお ついにエッジサーバー開発のメインストリームになるか >>377 同意。 記事もろくに読まずに >>371 みたいな自分の勝手なオレ常識を垂れ流すやつには呆れる。 SystemC とか知ってる俺スゲー君だろ 8年近くも前の記事をドヤ顔で出すあたり上っ面だけの知識っぽいけどw
>>367 おそらくフロントエンドは全部Rustになります CDNエッジサーバーで「フロントエンドの処理を全部動かす」のが確定的になったから そこではRustが暴れまくる コンパイラとシステムプログラミング、OSだけでなく Webの世界もRustが支配しそうだ >>389 Cからの動作合成が使い物になると思ってる時点で実際FPGAやったことないのバレバレなんだよな ちゃんとパフォーマンス出そうと思ったらVerilogで書くのは当然として配置やクロック系までちゃんと調整しないといけないわけで フロントエンドでもバチクソに速さを求められて要件もシンプルな場所にはそれなりに Rust が使われると思うけど、業務アプリとかみたいに要件にも揺れがある領域では GC が基本の言語がまだまだ(もしかしたらずっと)強いだろ。
>腐った設定を楽しむポエスレ これでしばらく俯瞰してる http://2chb.net/r/tech/1663409149/366 (一部設定加筆修正) デフォルトの名無しさん 2022/09/22(木) 15:45:41.23 ID:llfSUMQF なるほど、腐ったスレ -> 腐った設定を楽しむポエスレ 追加設定(仮): Rust,Go,C#,C,組込み,低レイヤー,それぞれ担当分野の強みを集めて日本製VRヘッドセットなどのウェアラブルデバイスのキット、ソフトウェアソリューション事業(仮)を近々発表する設定 ソフトウェアスタックの一部がRust製、Rustの優良誤認(*)を巧に利用した宣伝 (* http://2chb.net/r/tech/1661739736/946,963 ) Rust,Goの「全訳」(公式以外)を出してコンサル、受託開発もすると宣伝 近々リリース予定のLinux6.1(Rust製ドライバ実働ready)を宣伝材料に使う Rustの真実(**)は宣伝に都合が悪いから5chで火消し作業w (** http://2chb.net/r/tech/1663409149/338 ) 尋常ならざるネット行動で「ヘイト」を集めた「仮想集団Rustese」(4~5名)(仮定)の社長(仮)が複オジしゃちょー (http://2chb.net/r/tech/1663409149/256,368 ) 着々と「ヘイト」を収集中 ネットメディアに取り上げられて「顔出し」インタビュー記事が出るw > 後日「答え合わせ」しようや (>>http://2chb.net/r/tech/1663409149/202,255 ) それとHTTP(S) ProxyなんてHTTPリクエストの入り口だけど、それを「フロントエンド」なんて言わないよね。 大体はミドルウェア扱いで、コンペティションならサーバーサイドの処理結果や連続する同一リクエストなどを Proxyキャッシュから返すとか小細工するけどさ ほとんどの実際のサーバーサイドの入り口のプログラミングだって普通にファイヤーウォールの中にあるので そんな外で一体になるようなプログラミングは許されることは多くない エッジサーバー言い換えるとエッジコンピューティングは、CDNやIoTのような特殊な業務には求められるけど データーベースにつながってるようなシステムだと(工夫して非同期を使っても)結局データを取りに行って 戻ってこなくちゃならないし
ファイル配信がFPGAに置き換わってることを知らなかったのでは?
>>399 ファイル配信がどのレイヤーのこと言ってるのか知らんけどフルFPGAの配信サーバーなんて見たことないけど? ホントにRust利用分野のトップがサーバーサイド/バックエンドなんだな
C 言語の代替を標榜して作られたんだから そりゃそうなるわな
お前らは、標榜したことを実現するためにあらゆる手段を使うべきだと刷り込まれている だがそれは数学ではないし道徳的にも正しくない
おまえら次のスレでは別の言語が覇権!ってしてるんだもんなあ なんていうか世の中からズレまくってるよ
次世代言語の話というより、格付けをしたいだけのキッズが混ざってるからな
トーバルズ氏、Rust導入やM2搭載「MacBook Air」について語る https://japan.zdnet.com/article/35193521/2/ Rustがまだカーネルに導入されていない理由の1つは、一部の開発者が、Linuxで動かすには非標準のRustの拡張がたくさん必要になることを懸念していることだ。 例えば、Rustで書かれたLinuxの新しいNVMeドライバーを動かすには、70以上の拡張が必要になる。 しかしTorvalds氏は、自分たちはすでに何十年も、標準のC言語にはないものを使い続けてきたと指摘した。 「私は以前から、この分野の標準はゴミだと大声で主張してきた。標準が間違っているので、私たちは標準を無視している。Rustについても同じことが言えるだろう」と同氏は言う。 少なくともTorvalds氏は、重要なのはむしろRustのコンパイラーの信頼性と安全性だと考えている。 今ある問題の1つは、「GCC Rust」の信頼性と安定性が低いことだ。このため現実的には、今のところ、LinuxでRustを使用するには「Clang」を使うしかない。 しかしTorvalds氏は、「Clangは十分使える。Rustをマージすればおそらく有益だろうし、カーネルに害を与えることもないだろう」と語った。 最近はClangが賢いしLLVM方式は多言語をサポートできて有利だな 技術力のない次世代言語はLLVMコードを吐かずにCコードを吐いて最適化の機会を失っている
勝利条件が間違っているのでチャンスを与えても無視されているケースもあるけど
Rust普通にfor文回すだけでもコンパイルエラーになって草 なんだこの言語は
複数のCコンパイラ(gcc, g++, clang, vc, intel c++, tccなどなど)に対応するより、1つのほうが楽だからそうしてるだけで 技術力がない訳じゃないんだわ。アホ信者だろうからどうでもええけど
>>409 そのLLVMはC++で作られてるわけで ある言語などの処理系がどの言語で書かれているかは全く無関係 例えばPythonで書かれていても動作が遅くなるだけで問題なく動く そしてLLVMの出現時期がたまたま既にC++が標準化され普及した直後だったからC++で作られただけの話 もっと以前ならCで書かれただろうし現在開始のプロジェクトならRustで書かれただろう
Rustブームの次はLLVMを教えてくれるのか 乗るしかない知の高速道路に
LLVM相当をRustで実装とかもう誰かやってそう
>>413 様々なコンパイラに対応するという目標からして間違っているよ 本来の目標は様々なアーキテクチャに対応することだね その目標を達成するための様々な方法の一つとしてCに変換する方法があるけど LLVMに変換する方法と比べてCに変換する方法は様々な点で劣ってしまうね >>419 各プログラミング言語とも各アーキテクチャとも独立した中間コードにあたる命令セットと型システムを持つLLVMでは 各言語のコンパイラはその命令セットによるLLVM中間コードを吐くだけで LLVMが一般的な最適化と各アーキテクチャに対する最適化を行なって最終コード生成をしてくれる GCCは時代遅れのシステム設計なのでそのへんが上手く行っていない GCCのRTLも知らない知ったかなんて相手するなよ
まぁgccも3くらいの頃はRTLがあるとはいえ結構密結合していて改造するのも大変だった記憶 4以降くらいで中間表現がちゃんとなって今はLLVMと変わらないんじゃないかな どちらかというとライセンスの問題のほうが違いとしては大きいかもね
RTLはあくまでもGCCによるGCCフロントのための内部の存在から脱しきれていない LLVMのように外部の独立した主体が中間コードを生成しても使える状況には程遠い
パーツ化するのをrmsが反対してたのが 大きいんじゃないの?
>>425 もしかして GCC = GNU C Compiler って思ってるおじいちゃんなのかな?w linuxはいつまでgccを使い続けるつもりなのか
Cのheaderと型情報のないバイナリをパーツ化していたのに 一体化してどうすんの
GCCとLLVMって 各種ベンチマーク見ると ほぼサイズも実行速度も同程度っていうのが現実 だからどっちでも いっしょしょ
>>431 性能はほぼ一緒だね しかしこのスレに一番関連ある関心事は新たな次世代言語が作られた時のコード生成のためにどちらが利用できるか利用しやすいかかな 現状だとほぼ間違いなくLLVMが選ばれると思う 選ばれるとは何かが分からない wasmを選んだ奴はllvmを却下したのか
>>434 Wasmは多々あるアーキテクチャの一つ LLVMコードからWasmコードが生成されるという関係 各言語コード→LLVMコード→Wasmコード(あるいはx64コードなど) >>433 後発なので色々改善されてるとは思うけどぶっちゃけ慣れのレベルじゃね? パーツ化を進めた結果が、llvmをwasmに変換する作業なのか
”様々なコンパイラに対応するという目標からして間違っているよ 本来の目標は様々なアーキテクチャに対応すること” また変な事言い出してきた。llvm13.0でllvm/ADT/Triple.hを確認すると59種のアーキテクチャが確認できて 手元のgccが79種、こいつは足し算もできないどころか、自分の文章に矛盾だらけなことに気づいていない..... 劣ってるのは、何でもかんでも引っ張り出してきて他言語を攻撃する品性のないあんたの頭であって、優れているのは 地道に言語実装を担当するコミッターであり、決してあんたではない。「〇〇を勉強してる俺スゲー!」www
俺スゲーっていうか 自分の力量も相手の力量も両方見えてないのが初心者の特徴 フワフワした断片的な知識で夢心地になれるのも初心者の特徴
Cコードを生成してるNimはマイナー言語のまま終わりそうよ
>>437 後から慌ててパーツ化を進めたのはGCC このスレに出てくる言語だと SwiftやRustやZigやKotlin(ネイティブ生成時)などみんな各コンパイラがバックエンドとしてLLVMを使っている もちろんC系各言語はClangがLLVMバックエンド
GCでも似たような話を聞いた 多々ある言語がみんなGCを使っているのに何故ARCなのかって おそらく、多々あるアーキテクチャの一つにならない方が得をする可能性もあるからじゃないか
gccのほうが変則的ながらサポートするアーキテクチャが多いのは歴史が長いからだろうけど、gcc rustとか linusが言ってるように存在する(だがいまいち)んだから、攻撃性だけ高いバカは相手にしちゃいかんのな? 公式じゃないとしても様々なコンパイラに対応はrustですら行っていて自分に返ってきた諸刃の剣になっとるわ 何が言いたいのか1つも分らんし、結局はマイナーだの、みんながLLVMだの。マジ気持ち悪い
nimはコンパイラを作らない方針よ Cへのコンバータを代わりに用意していましゅ
当時Zigに注目してなかったが、過去スレのこれ↓今度は「競プロ的視点」でZigのところ再現してくれ ちなみに某一名が >それは専用プログラムでない限りプログラミングでやってはいけない行為 >"caller hash" と批判しているが、"Rust@github rust/optimized-customhashmap"でも行われている。 https://github.com/benhoyt/countwords http://2chb.net/r/tech/1655771266/ 976デフォルトの名無しさん2022/08/05(金) 07:34:10.27ID:BZGh0CoX Time in seconds for each data size: kjvbible.txt x10 x100 x200 x400 Mem Comment 0.018 0.052 0.089 0.174 ***MB baseline/cat 0.036 0.089 0.147 0.260 ***MB baseline/rg foobar (ripgrep, no match) 0.032 0.091 0.159 0.290 ***MB baseline/ugrep foobar (no match) 0.058 0.457 0.889 1.789 1.1MB baseline/grep foobar (no match) 0.219 2.108 4.127 8.263 0.9MB baseline/wc -w (word count, total only) 0.154 1.271 2.551 5.079 2.0MB C (caller hash,stdin=binary-mode) 0.177 1.412 2.733 5.446 3.8MB Go (caller hash) 0.161 1.458 2.903 5.671 1.4MB C++ (caller hash,cin=binary-mode) 0.175 1.513 2.953 5.863 4.6MB Zig @github fixed ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 0.176 1.572 3.124 6.045 2.6MB Rust@github rust/optimized-customhashmap <------実は"caller hash" 0.180 1.597 3.219 6.267 3.1MB Rust@5ch res >>602 Ryzen9 5900X windows11 そんなことより条件揃えないベンチは何も価値がない どうでもいい話を今ごろ蒸し返すのは病気
Nim下げしたいがためだけにgccよりllvmとか言ってたのか くだらな
Cコードを生成するNim LLVMコードを生成するZig どちらがまともか一目瞭然
唯一確かなのは言語のスレで実装でマウント取ろうとする奴がまともでないことだな
ある言語で誰かにより書かれた特定のアプリやシステムやプログラムコードをもってその言語自体を叩く人がいつもいるね 区別がつかないのかも
そもそも言語を叩くって意味が分からんわ いや、意味は分かるんだけど動機が分からんわ プログラミング言語に好きも嫌いもなくて必要なもんを使うだけ←わかる 嫌いな言語なんてない←わかる 嫌いな言語がある←わかる 嫌いな(?)言語を叩く←???
>>450 次世代言語は遅いくせにメモリー食いすぎだな。 >>456 5chでRustやRubyが叩かれるのは理由があるからな。 RubyはガイジのせいだけどRustにもガイジがいるの?
実装で特別なことはしてないが「競プロ的視点」という事で: Language x10 x100 x200 x400 Memory Comment -------------------------------------------------------------- Zig 0.118 1.073 2.113 4.203 3.2MB (std.HashMap + "caller hash" by Context(std.hash.Fnv1a_64.hash)) Zig 0.162 1.493 2.970 5.935 4.6MB (std.StringHashMap) zig version 0.10.0-dev.4166+cae76d829 CPU Zen3@boost max~4.75GHz Faster than C になってる(Cはまだまだ最適化の余地があると思うが)
バカだな 言語間で異なるアルゴリズムを使っていたら それは言語の比較ではなくアルゴリズムの比較だ
実際に速くても、RustよりZigのほうが速い証明にならんのか?
ZigもRustもコードを合わせればほぼ同じLLVMコードを吐いてほぼ同じ結果になるやろな 無論Clang使用したCも
叩かれる側に原因があるっていうのはアフォーダンス 物を売りつければ、買う側に原因があるという ちょうど猫が入りそうな箱に猫を入れたら、箱に原因があるという
おーいつもやつ帰ってきたか 寂しかったぞ 三連休どこに消えてたんだ 家族サービスでもしてたか? 書き込み減って悲しかったぞ
C言語へのトランスレート自体は悪くない。 でもマイナー言語でリソース足りないのに色んな言語へのトランスレートをやろうとするのは無理すぎ。
>>467 > 色んな言語へのトランスレートをやろうとするのは無理すぎ。 そんな言語あるの? JVM 系言語が Kotlin Native, Scale.js, GraalVM あたりで JVM 以外に色気出すのは筋悪いと思うね。 そこに魅力を感じる層は結局自分が今習得しているツールに縛られた技術選定しかできない人々という意味でも、発展性がない。
>>469 視野が狭い末端プログラマーらしい意見だね。 君は結局自分が今置かれた立場に縛られた物事の見方しかできない人という意味でも、発展性がない。 >>453 nlvmというトランスレーターではないllvm IRを直接吐き出す実装があるんだわ。もちろん、公式じゃないし こんな事する意味があまりないから全然流行ってないけど、上のほうで暴れてたLLVM=Rust信者だって もともとはRustだってOCamlで書かれた最初のコンパイラを辞めて、LLVMのセルフホストになった。 そこにコンパイラ基盤がLLVMだから良いとか・優秀だという考えはない、単にコンパイルを速くしたかったか 開発リソースを集中させたかっただけ。現にgccrsはllvmだと宜しくない場合があるから作られてるわけで 言語へのトランスレートが無理なんじゃなく、作者は開発コスト問題から数多ある無数のCコンパイラへ対応は 辞めたがってるけど、それだってマイナーなTiny C/tccがC標準から少し逸脱してるから辞めたいだけ >>469 根拠を示していないから、ただの誹謗中傷にしかなっていない。 煽るにしても、もうちょっとそれらしい主張にしたら? 例えば「JVM系の言語はだらしなくヒープを使うからネイティブにしても速くならない。そんなのをやるんだったら、安全性と速さを両立したRustを勉強したほうがいい」とか。 ruby は ruby で実装されています 遅くなる罠
>>471 LLVMなんてどこでも使っているのに LLVMというだけでRust信者と思い込むのは浅はか なんでもかんでもRustにもって来たがるのはアンチの悪い癖 >>469 JVM言語の唯一のメリットであるポータブルな点は当時と比べて重要度を失っているんじゃないかな もちろんポータブル自体は有利だけどJVMよりもっと様々な必要や要素を兼ね備えたWASMの出現が大きかったね 後発だから色んな改善がされているのは当たり前だけどWASM>JVMであることは否定しようがないもんね https://github.com/benhoyt/countwords Language x10 x100 x200 x400 Memory Comment -------------------------------------------------------------- Zig 0.118 1.073 2.113 4.203 3.2MB (std.HashMap + "caller hash" by Context(std.hash.Fnv1a_64.hash)) C(gcc) 0.136 1.146 2.271 4.531 2.0MB (optimized.c, binIO,jemalloc,O4,LTO) NEW C(clang/LLVM) 0.137 1.147 2.280 4.544 2.0MB (optimized.c, binIO,jemalloc,O3,LTO) NEW Go 0.177 1.412 2.733 5.446 3.8MB (caller hash)<--from過去スレ Rust(LLVM) 0.154 1.425 2.838 5.674 2.6MB (optimized-customhashmap,O3,LTO,caller-hash) NEW 以下、caller-hashではない Zig 0.162 1.493 2.970 5.935 4.6MB (std.StringHashMap) Rust(LLVM) 0.214 1.725 3.396 6.715 3.5MB (optimized,fxhash,O3,LTO) NEW zig version 0.10.0-dev.4166+cae76d829 gcc 12.2.0/clang 15.0.0 rustc 1.64.0 (a55dd71d5 2022-09-19) CPU Zen3@boost max~4.75GHz Go Ryzen9 5900X windows11 <-- Boost Clock. Up to 4.8GHz.? Rust(optimized-customhashmap)はC(optimized.c)と「コードを合わせ」てあるはずだが、コンパイルオプション程度の「簡単」な工夫を試した限りではgcc/clangと「ほぼ同じ結果にはならなかった」 「コードを合わせたRust」がCと比べて「2~3割程度遅い」のは「そういう場合もあるよね」で驚きも失望もない 意外なのは過去スレGoがRustと同水準だ(起動時間0.03s程度以外むしろGoの方が速い)という事。(こちらで再現したわけではない) またキチガイが粘着にデマを蒸し返してるのか RustがC/C++と同等の速さで動くことは世界中で様々なケースで確認済み 今は次の段階へ進んでいて新たなシステム構築からRustへ置き換わって行ってる
Rustはコードがスパゲッティになっちゃうから その分遅くなる可能性あるよね スパゲッティにならなきゃCと同等だよ
>>480 Rustで書くと素直な整理されたデータ構造に改善する方へ寄せられていくから スパゲティにはならずむしろスパゲティ解消のメンテしやすい良いコードになってしまいますね 保守性の悪いスパゲッティなコードを書く人がRustを嫌っているのはそこだな Rustだといつもの汚い思い通りのコードが書けないからイライラするのだろう
Rustスレで自己満クソコードをいっぱい貼った子がおってなw あれたぶん自分ではきれいな非スパゲッティコードだと思ってるんやろな
>>484 最近Rustスレ見ているけどそんなの見たことないな 別の言語の話なのかな Rustはある種のBDUFを強制するから良い場合もあれば良くない場合もある
具体的にその汚いコードというのを見てみたい もし本当にあるならば
自分ではキレイと思ってるから自分では自信があったのかなw スレ住民にクソコード貼るなって言われても意固地になってたよw その流れを再放送するなら無意味だよね 聞く耳持たないだけだから
仕様をよっぽど気に入らない限りコードなんて見なければいい 仕様が憎ければコードまで汚く見える
スパゲティコード見せて Rustで見かけたことないので興味ある
>>489 「ママー、きょうこんなコードかいたんだよ、みてみてー」ってノリだったから汚いかどうかは眼中になかったんだろ 気持ち悪いおっさんが幼稚園児メンタルで汚コードを一日中貼り続けるからマジキモかったけどな >>491 ・>>1 から過去スレをたどっていくことができない情弱 ・酷評されたコードを汚くないと再反駁するためのネタ振り どっち? スパゲッティな汚いコードが貼られているスレどこよ?
昔はgotoだらけの制御が絡み合って個々に分解しにくいコードを指してスパゲティと呼んだものだが 今時そんなgotoだらけのコードはないだろうから、どんなコードを指してスパゲティと呼んだのか興味はある。
コードを示せない上にスレも示せないって、スパコードが実在しないんじゃね
きれい a + (b + c) = (a + b) + c 汚い (= (+ a (+ b c)) (+ (+ a b) c))
Rustでスパゲッテイなコードは起きないだろうから >>484 がRustを叩きたくて嘘をついていて引くに引けなくなっただけだと思うよ 最初から「Rustスレ」でって書いてあるじゃん ディープコピーすら知らなかった複オジの黒歴史を見てこいよw
>>500 本人だから相手しちゃダメ また汚コードペタペタされるぞ Rustスレもいつも眺めているがスパゲティコードらしきものを見たことないな そもそもRustでスパゲッティコードというものが想像つかん
結局Rustアンチの人による妄想なの? 次世代言語でのスパゲッティ見てみたかった
>>482 「改善する方向に誘導」は嘘。 マズそうなデータ構造で助言してくれるわけじゃない。 実際は「煮詰まってきたときにコンパイルが拒否する」が正解。Rustはにっちもさっちもいかなくなってから「これはダメ」と放り投げる。 テスト駆動によれば、テストが通らない状態から始めるように誘導しなければ 改善へ誘導したと言えなくなる
Rustが叩かれてるというよりは単に複オジが叩かれてるだけなんだがw このへんの区別がつかない人と話になる?w
このスレはなぜJuliaの話題が無いのか 単純な計算やループだとRustのようにCと同等のネイティブコードで実行でき簡単に並列化・分散化してスケールする。 行列を標準で扱え、コンパイルも出来てスクリプト言語のように手軽にcliで実行できる。面倒な型は普通に型推論だが 逆行する推論を備え、それによってコンパイル言語でありえない動的さと、Lispのような真のマクロを備える それともどこかにある最適な実装を、シコシコとオレ様実装してしまう泥臭く真の漢のシステムプログラマーばかりなのか
>>509 その単純な計算やループはたまにしか使わない JuliaはGC言語なのにヒープメモリをできる限り少なくするプログラミングをプログラマーがしなければいけない そのへんに気を使わずプログラムを作ると速さに大きな差が出る つまりメモリ管理は気にせず言語に任せておけばいいという言語じゃない なのにガベージコレクションが発生する >>509 今時数値計算をCPUでやるおじさんは老害 Juliaは多重ディスパッチでデータ型とアルゴリズム実装を自由に組み合わせられるみたいなのが売りの一つだと思うけど ちゃんとテストされてない組み合わせだと簡単に計算結果を間違うという指摘が結構あって 数値計算向けの言語としては致命的なんではないかなぁと思っている
カリー化の要領で単一ディスパッチに帰着するパターンの正式名称が致命的だった
>>511 本当に触ったことありますか?どんな言語だとしても、ループ内でのヒープメモリ割り当てなんて気を付けて書く。 それはRustだって同じ事、GCというかスコープを外れたらOSが回収するが、決してメモリーを気にしないような プログラミングなんてしない、これはGoでもJavaでも同じ。これを気にしない人はカッコ付けて再帰呼び出しを してみたりスタックさえ気にしない人が稀にいる 本当に言いたいことを最後に書く日本人の典型だと思うが、そりゃGCはGC系なので発生するでしょうね >>512 いまどきならCUDA.jlやAMDGPU.jlというものがある。だがRustだとかGoだとかもGPUを普通は使ったりしない。 前者は標準の高階関数で悦に入ってるのがその証拠であり、後者は多数のgoroutineで疑似パラレル処理を するわけだが稀にGPUを使うとしても特殊例に過ぎない >>513 そりゃテストされてない組み合わせなんてまともに動くほうが稀だとおもうけど。Rustでいえば少し昔のactixを async-stdで動かすようなもんだろう、動的呼び出しのコストを気にして、動的性がほとんどないRustやGoと 比べるのが違うんだろうと思うが、letだのvarだの書かないのは、型推測の究極系からいうとありだと思う。 パターンマッチングもあるし、ライバルはRustとかじゃなく、PythonのDeepleaning系やRなんだろうと思うが >>515 > どんな言語だとしても、ループ内でのヒープメモリ割り当てなんて気を付けて書く。 多くのGC言語では、そんなことを気にせずGC任せのプログラマーが多数派だと思います > GCというかスコープを外れたらOSが回収するが、 ありえません Rustみたいなバリバリの実用土方向け言語と比べるのは間違い。
>>518 Rustは管理部門がコーダーに押し付けたい言語。 社員監視用にマナー講師を雇うようなもんだ。 >>522 このまえはRustを趣味で使われる割合が多いと叩いていたのに叩く方針変更かね Rustはプログラマーに愛されているプログラミング言語7年連続1位と記事が出ているけどどうするのかね >>515 各組み合わせごとに厳密にテストしないと組み合わせられないなら 「多重ディスパッチで簡単に組み合わせられます」とか言うなよってこと そもそも静的型ならコンパイルエラーになるしPythonとかなら巨大なライブラリにみんなで乗っかる方式だから、組み合わせの問題が発生しやすいのはJulia固有の話 >>523 今までも同じ主張しかしとらんよ。 これからは他人のために使うRustユーザーが増えていくから、愛され言語1位を維持するのは無理だろ。 PythonとかJavaの規模のなっても維持できているなら本物だな。 Rustは他の言語よりコーティングしやすいしプログラマーにとっては嬉しい言語っす
1から自分で好きなように書くならRustは気持ち良い言語なのは同意するけどね Rustは個人の好みや癖が出やすい言語だから、他人のオナニーの後片付けは辛いぞ Rubyしかり、創意工夫()の余地が大きくて楽しい()言語はレガシー化すると激しくプログラマに嫌われる傾向がある
>>527 プログラミングしたことのない人には RubyとRustは創意工夫の余地があって辛くて 他の言語には創意工夫の余地がないように見えているのか そんなデタラメ書き散らす前にプログラミング経験積んで出直してこい Go追加>>478 (>>450 ,461) 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)) C(gcc) 0.136 1.146 2.271 4.531 2.0MB (optimized.c, binIO,jemalloc,O4,LTO) C(clang/LLVM) 0.137 1.147 2.280 4.544 2.0MB (optimized.c, binIO,jemalloc,O3,LTO) Go 0.152 1.233 2.428 4.832 3.9MB (caller hash,better loop) New Go 0.164 1.346 2.654 5.279 3.8MB (caller hash)手元再現 New Go 0.177 1.412 2.733 5.446 3.8MB (caller hash)<--参考値from過去スレ 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)<--マルチスレッド 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) New Rust(LLVM) 0.214 1.725 3.396 6.715 3.5MB (optimized,fxhash,O3,LTO) zig version 0.10.0-dev.4166+cae76d829 gcc 12.2.0/clang 15.0.0 go version go1.19.1 rustc 1.64.0 (a55dd71d5 2022-09-19) CPU Zen3@boost max~4.75GHz https://github.com/benhoyt/countwords 予想以上にGoが速かったが、最近の成果かもしれない。 https://go.dev/blog/go1.19 (2 August 2022) >Go 1.19 includes a wide variety of performance and implementation improvements アルゴリズムの比較と言語の比較の区別がつかない人が未だに無意味なことを続けてるな~
>>522 そんなホワイト企業があるなら名前教えてくれよ くせぇ、くせぇ、泥だらけ漢だらけで土方臭え!forループじゃなくmap使えとか親方ァは細かすぎる・・・ 何がワシだって「下積みの頃はC未定義動作で行間を読んだもんだ!」だ!未定義動作書くなよ!?基本だろうが!# 何が「ここは大手の偉い人が書いたから変えらなかったんだよ!」だ! Displayトレイトが滅多に表示しない方に使ってて頻繁に表示する方はいちいちdisp_xxxなんて呼ばないといけないんだ! 設計根本から間違ってるだろうが! 「Rustは気持ち良い言語、Rustは気持ちよく書ける」なんて2020年代前半に言われてたらしいが、もう憎しみしかない お百度参りしても、この恨み晴れるとは思えない オレこのデスマが終わったら、高給取りのAIのPython業界に転職するんだ・・・
>>534 ことごとく勘違いしてるでしょ? mapは単なる写像にすぎなくてループと対応するものではなくループの中の写像の文 let y = f(x); に対応するものです 未定義動作はunsafeを使わない限り発生しません disp_xxxといったものは標準ライブラリにありません 以上から貴方はRustではなく異なる別のものを使っている可能性が高いです rustは、haskellみたいにはならないと思う。 ロマンが足りない。オナニーしても気持ち良くない的な。 その点、juliaの方がロマン感じる。
嫌いなのはわかるけど消去法でもRust一択だよ まずスクリプト言語は速度と安全性がゴミなので論外 (書き捨てのスクリプトにのみ使うならアリ) C/C++は論外 世界中のバグはこの言語から生まれている JavaやC#もぬるぽ排除失敗 副作用まみれを助長する言語仕様 クソ重GCとJVM運用でオワコン Goも結局ジェネリクス導入の失敗で標準ライブラリがジェネリクスなしの涙目に 安全性とは程遠い 言語仕様も一部よくわからない謎 さらにゴルーチンの書きにくさで並行処理の言語としても微妙 その他のモダン言語は結局本質的解決にはなってないから論外 よってRust一択
>>539 Goはnil安全性すらないから前世紀の言語っぽい Goは色んな機能を削りすぎていて苦痛 ジェネリック導入で明るい未来を期待していたけどあんな使えない仕様になるとは
>>540 あーそれもあるか err != nilには笑ったわ なんかエディタのスニペットに登録してるから問題ないらしい 正直NULL安全みたいな機能いるか? Kotlinとかにもあるけど、結局NULL許容型も書けるし中途半端過ぎる
>>539 Rustは絶壁の学習曲線で多数の初学者が挫折し、エンスー以外使えないエンドコンテンツで終わるだろう。 せめてライブラリとかフレームワークを初心者向けに作り込むことができればまだ可能性はあるが、所有権とライフタイムがラフな使い方を拒否するからそういうことも困難。 まぁ、「3番目に学習する言語」くらいの位置になれれば万々歳だな。 >>543 関数型界隈以外ではその重要性に気がついてなかった いわゆるシステムプログラミング言語でRustが唯一まともにNULL安全性を持って生まれた言語 >>544 初心者が挫折しがちというのは理解できるのだが (俺自身C/C++のヘビーユーザーだったが最初はコンパイルを通すのに苦労した) しかし一旦理解するとコンパイルエラーはほぼ起きないし Rustの気持ちになって考えることができるようになる 本当にコンパイラの気持ちがわかる >>543 Javaのヌルポは散々馬鹿にされていたからなぁ。 実際には、正常値としてのNullならnull objectの方が素性が良い。optionalみたいなNullが良いのは、異質なケースとして明示的に処理したい場合のみ。 >>546 その「一旦理解する」というのが絶壁だっつうの。 データ構造含めてスパゲッティでも動いてくれるGC言語と データ構造が整理されていないとコンパイラが通ってくれないRust 保守性の良いコードを強制してくるRustはウザいよな
>>547 ポインタであろうとデータであろうと nullやnilなどはその型と全く別の型であるべきであり 型が異なればコンパイルエラーとすることができるため nullやnilをうっかり使ってしまう悲劇を確実に回避できる この仕組みを備えることをnull安全性と言う >>543 kotlinは割りとバランスいいと思う。 Option<T> みたいな冗長な型にならず T? で済ませてるから。 Rust はそこはちょっとダルい。 >>539 そんな優等生な実用性は求めてないんだよ。 次世代なら、超すごいGCとかなんでも推論してハマればすごいけれど外れるとクソみたいなのをやってくれよ。 >>553 その辺はcopilotなど最新のAIの分野だと思われる モダン言語としてはまず言語仕様をしっかり安全性の高いものにするのが大事 それに俺はヤンキーを否定してるわけではない pythonとかライブラリの充実度は世界一だろうし 雑なツールを作るには一番早くできるだろう TypeScriptもスクリプト言語の型システムとしてはよくできている しかしその手の言語を最初に使っても結局そのスクリプトを人がどんどん改造してスパゲッティになる様子を見てきた スクリプト言語である程度実装可能なことがわかったら すぐにRustに切り替えるべき >>548 C/C++を理解していないと難しいとは思う 所有権の移動はあらゆる変数参照で起きうるから ひとまず借用しまくること Rustの借用はコンパイルが通る限り安全なのだ 所有権を移動しない これで既存の言語のように書けるのではないかな >>555 move不要説って、RefCellで複雑なことやろうとするでしょ Cellでreplaceしまくったほうが簡単だよ moveでもborrowでも呼び出し階層のどのレイヤーで所有権を持つか常に意識しないといけないから既存の言語と同じ感覚では書けないよ それが良い面もあれば悪い面もある
>>556 Cellや動かせないOptionの中身に対してはreplaceだな 生成コストかかるものならtakeで一時的に借りるしな moveはいつでもコスト安い >>543 いるに決まってんだろ。 お前意味なくいつもnull許容ばかり使ってるのか?ありえねーわ。 >>557 それは>>515 も書いているように どんな言語でもまともなプログラマーならば内心で意識してプログラミングするっしょ そしてその意識の差で速度が大きく変わって来るから言語に関係なく重要な moveは速い cloneも速くするためにはRcに入れて循環参照とかいうリスクを取る 逆に言えば、最適化の意識が低いスタイルを確立すれば循環参照問題が無くなるのでは?
>>561 聞きかじりだけでRustを使ったことがないからそんな間違えをする Rcのcloneと中身のcloneは全く別物かつ独立 例えば中身がclone実装なく不可でもRcはcloneできる 循環参照は意図的に作らない限りRustでは自然に生じることはない そして作らないことが正解 >>560 GC言語では全く意識する必要ないよ 性能にも関係ない話 >>563 GC言語でも意識しないと性能に直結するぞ >>515 が言うループの内外どちらかで速度差を測ればすぐ分かる >>562 聞きかじりがどうのと、そんなメンドクサイ言語はダメだわ。 バグのもとだわ。 >>560 >>562 そんな前提が無いと使えないんじゃ、やっぱりRustは絶壁の学習コストだな。 コミニティも初心者に配慮する気配無いし、>>544 が正解か。 >>566 >>567 じゃあC++についても知らないのね C++のshared_ptrもRustのRc/Arcもどちらも機能もその件も同じで そのスマートポインタのコピー(clone)をしても中身はコピーされないんだよ 中身はそのままで共有する仕組みであって基本知識の入門レベル GCのある言語でもオブジェクトの参照のコピーとオブジェクト自体のコピーの違いがありますね それと同じことだからこの2種類のコピーの違いを理解できていないのはマズいですよー ホントRustをわざと嫌われるように仕向けてるように見えるよなあ
まずは既存言語の延長として借用ベースでコードを書いてから 適切にムーブもするというスタイルをお勧めしたいね 本来のRustのスタイルとしてはムーブベースで考えるべきなのだけど ハードルがかなり高いと思う (C++のムーブコンストラクタやムーブ代入演算子を使いまくってた俺クラスの人間じゃないと無理) 借用の乱用でライフタイムの指定が嫌になったころにムーブを覚える これこそアハ体験
>>568 2種類のコピーが同じではない証拠があればそうなる 証拠を得ることができない仕組みをわざと作れば、両者は速度以外同じになるので最適化に利用される 自分の名刺に知らない会社の名前が書いてある理由は?
Rust初心者なのになぜ強がって墓穴を掘りたがるのか 複オジ病の心理が理解できん
>>575 承認欲求だろ 他で承認されることがないから 匿名掲示板で嘘ついても虚勢を張ってでも 承認してもらいたくてしょうがない心理状態 子供が親に褒めてもらおうと嘘をつくのと同じ 大人でそれが常態化してれば病気だよね >>571 消費する時はムーブ 消費しない時は借用 >>572 参照のコピーと実体のコピーは異なる 後者はそれ以後二つの実体へ分岐となる ファミコンで動作するGUI付きOS「NESOS」が爆誕 2022年09月30日 11時06分 ファミリーコンピュータ上で動作するGUI付きのOS「NESOS」が開発されました。 NESOSではタスクバー付きのデスクトップ画面を表示したり、デスクトップ上のアイコンを自由に並び替えたり、テキストの編集を実行したりできます。 デスクトップ上のアイコンは自由に並び替え可能で、タスクバーにファイルやアプリを配置することもできます。 テキストエディタでは、ファミリーベーシック用のキーボードを使ってアルファベットと各種記号を入力可能。 NESOSは無料配布されており、公式ページのダウンロードリンクからダウンロード可能です。 https://gigazine.net/news/20220930-family-computer-nesos/ 最近の流行りが静的型付けと型付きラムダ系FPからの便利機能輸入だから逆風だけど、雑に書くのに向いてる言語ってなんだろうね Nimはかなり書き味意識してるって話だし、ベタッと実装するならGolangは向いてると思ってる
開発環境も含めてならC#は雑に書くのに向いてると感じたな 最近のバージョンだとクラスやmainメソッドを省いてスクリプト言語みたいに書けるし、IDEの補助が神がかってるから迷わずに書けてミスしにくい まあ書き味も大事だが、雑に書く場合は極力テストの手間も抑えたいから、ミスしないことは超重要
C#はF#みたいにネイティブでスクリプト実行できるようになった?
nodeとgoとrustで/helloを受け取ったら、hello worldと返すだけのAPIを立ててベンチマークしたんだけど何でここまで差が出るかわかる人いる?30倍も違うんだけど 12スレッドのwsl linuxだけどtaskset -c 1で1コアに制限しても Goでは 36345.50rps avg102.03ms, Rustでは 82382.92rps avg43.57ms と依然として差があるんだが シンプルなAPIでもここまで差が出るんだから、Nodeは論外ってことなのかな コード: https://pastebin.com/cWdaC2rZ wrkを使用 $ wrk -c 4000 -d 5 http://localhost:3000/hello node (express) Thread Stats Avg Stdev Max +/- Stdev Latency 466.94ms 73.50ms 669.37ms 81.57% Req/Sec 4.09k 678.72 4.82k 82.98% 38284 requests in 5.07s, 8.73MB read Requests/sec: 7547.73 Transfer/sec: 1.72MB go (net/http) Latency 8.72ms 5.33ms 102.98ms 96.17% Req/Sec 122.50k 6.37k 135.10k 69.57% 1163747 requests in 5.10s, 144.28MB read Requests/sec: 228242.97 Transfer/sec: 28.30MB rust (active-web) Latency 8.77ms 3.15ms 31.07ms 76.16% Req/Sec 115.76k 18.13k 156.46k 62.22% 1085310 requests in 5.08s, 133.52MB read Requests/sec: 213464.53 Transfer/sec: 26.26MB ひょっとすると JavaScript だから遅いんじゃなかろうか
IO処理が主体ならそんなに変わらない認識だったけど10行程度のWebAPIでここまで変わると思ってなかった
Goは1コアに制限したらGCのペナルティが大きいんじゃね。今は複数コアある前提でコンカレントマークでしょ?
>>584 起動時にモジュールを大量に読み込んでるしJITもしてるからそんなベンチじゃ遅いのは当たり前 スクリプト言語とコンパイル言語を比較する場合はランタイムのオーバーヘッドに差がありすぎるのだから そこで差が出るようなベンチは無意味 実際のアプリケーション相当の処理を想定しないと
>>590 はあ? 1分やっても2分やっても全く同じだけど? もしかして平均の意味すら知らないのかな? >>593 いやだから10秒だろうが1分だろうが5分だろうが変わらないって 偉そうなこと言ってるのはお前だろ あらゆるノイズを排除してここまで差が出るんだから起動時のコストなんて関係ないだろ 適当なこと言ってマウント取ってんじゃねーよゴミ >>594 ゴミはお前 論点ずらしするな ただのストローマンだぞ 俺の言ったことをまずやれ そしてそれでも差があるなら反論しろ それが正当なやり方だろ お前は手を動かさずに自分の意見が正しいと言ってるだけ もしかして数分実行しただけでキャッシュができると思ってる? しかもそんなよくわからんサンプルで? そもそもキャッシュができる条件など仕様にはない できない可能性もある そういうことを含めてのベンチなんだよ 「俺の意見が間違ってる」ことをコードで証明しろ ストローマンの口八百で語ってもなんの意味もない それこそただのマウント野郎だろ
いくらなんでもNode遅すぎで気になるね レスポンスしてるヘッダの内容とかも比べてみなよ HTTP/1.1が使われてるのか、cookieセットされてるかとか、keep-aliveはどうかとか
俺の意見を無視するならここに書く意味はないし はろーわーるどのベンチでnodeは遅いね、で終わる話 ここに書かずに1人で納得しとけ ここに書く以上何か意見を求めてるんだろ? その意見を言ってやってるのに無視する 正しい人間の態度とは思えんな あまりの自分勝手さに怒りさえ覚える
とりあえず家帰ったら動かしてみる 俺のローカル環境だが
>>597 試したけどcurl -vで複数回投げた時にconnection left intactとRe-using出るからコネクション使いまわせてるね HTTP1.1だからデフォルトでkeepaliveになってる wrkはHTTP1.1対応 Nodeは日付とか色々ヘッダに入ってみたいだから公平な比較にはなってないけどそれにしても差があるすぎると感じるね >>584 Q:なぜ何でここまで差が出るのか? A:この場合、rust (active-web) は、asyncなどでI/O待ちを切り替え起点とした非同期処理を行うが goは1リクエストに対してgoroutineが1つ付く。細かく言うとRustはソケットI/Oへ受・送信が終わらないと 次のリクエストは処理待ちになる。 結果はReq/Secに出て高速で(効率的な)スイッチングを行えるgo (net/http)のほうが最終的に処理できる リクエスト数は高いが、平均処理時間avgはRustのほうがほんの少し速くなる。 goでavgが遅くなるのは、処理中にI/Oを起点としない時分割で別リクエスト処理へ切り替えるために 切り替えコスト+処理コストの合計で1つのリクエストを完了する時間は長くなる 余談だが、wrkは5秒だと並列テストなどをするには短い。より厳密な計測ができるwrk2とかあるが この場合は並列での負荷テストではないのでそんなに変わらない。ただ最初の1秒が参考にならない 上の例はあくまで1コアだが、多コア高負荷環境(1000同時スレッド・3万リクエスト・30秒ぐらい)だと 50%はgoのほうが速くなり、Req/SecはRustのほうが多くなる node(express)は、express自体の重厚さJS/TS自体の重さがかなり効いていると思う ただWSLであってもLinuxのbacklog当たりのカーネルパラメータを弄れば結果は変わるかもしれない。 並列・高負荷ではなくても4000コネクションだと標準の状態だと足りない気がする $ sudo sysctl -a 2>&1 | grep -E 'somaxconn|tcp_max_syn_backlog' net.core.somaxconn = 128 net.ipv4.tcp_max_syn_backlog = 512
WSLでやってんのか、WSLってパフォーマンス的にはなんか特徴あるのか? このあと気が向いたらおれもちょっと気になるとこのベンチ比較してみる
とりあえずNodeは遅いゴミってのが証明されてるな
もう1つ言うと高負荷で比べるならrust (active-web) なら、go側はSO_REUSEPORT/SO_REUSEADDRを 効くようにするか、fasthttp系(fiber)などを使用すべきで、net/httpを普通に使っただけだと極限の性能では 無いので注意が必要です、今回は高負荷でないので関係ありませんが
利用者数が全然違うので、今はGo言語を使うほうが良いのでは? もしもRustが使われるようになったなら、その時使えば良い。 今はまだHaskell候補の状態。 そのうちHaskellのように誰も見向きもしなくなるんだろうなあと。
殊更に型の重要性を連呼する人間は、本人が有能か無能かはともかく、自分含めて人間の技能と精度を信用していないというのは確かだと思うよ
>>611 では質問するがなぜMicrosoftはJavascriptは不十分だと認識してTypescriptを開発したの?そして普及したの? なぜPythonなどのスクリプト言語はしきりに型ヒント機能を追加してるの? 無能は型の重要性を理解できないお前、エンタープライズでは必須 >>611 みんな無能だよ。 たまに型無しで完璧にやれるやつはいるけど、そういう奴は他の人と一緒に仕事しても自分の高い能力を盾にルールに従ってもらえないから面倒だわ。 一人でR&Dとか調査主体の部署でやってもらうのが無難。 無能向けのルールに従っていたらせっかくの高い能力を発揮できないじゃん 妥当じゃないの
>>594 >あらゆるノイズを排除してここまで差が出る 全然ノイズ排除できてないじゃんww 意味のないベンチだよ >>613 型パズルで開発者にできた感を与えられるから で実際、型を合わせるだけで正常系は大体うまく動くからね >>611 100%同意 適材適所で選ぶ能力が無いだけ >実際、型を合わせるだけで正常系は大体うまく動くからね ほら無能じゃんw
まあ実際動的型付け言語でやるプロジェクトは 少数精鋭のチーム編成ができないと厳しいわな メンバーが多くてコミュニケーションコストが高かったり入れ替わりが頻繁だったり下請け孫請けから最低ラインを下回るメンツが入ってくるようなら静的型付け言語のほうが楽
>>618 どこができてない?ヘッダに多少差があるとはいえ明確な差が出てるよね Nodeはhttpモジュール使っても遅いし言語自体がゴミとしか言いようがない APIに存在しうるCPU処理、IO処理を排除してミニマムな状態でもGoやRustと比べるとここまで差が出る だからISUCONで誰もNodeなんか使わないんだよ Goは手軽でスピードが出るから人気なのは自明だな
>>622 このスレに居てその質問は流石に不勉強じゃないかな…… 静的型付け言語での実装においてもテストはもちろん書かれるよ 当然テストに網羅性は無いわけだけど、型はそれを補ってくれて、テストで調べるべき範囲を絞ってくれる訳だ スイスチーズモデルにしても型は理論的に一定の範囲に穴がないことを保証してくれるのでテストの良き友だよ ランタイムやコンパイラの型の実装が間違ってるかもしれないとかいう意見は、構文解析が間違ってるとか最適化が間違ってる並の、有り得はするけど議論するレイヤーが異なる難癖なので無視するよ >>626 バカにされてることがわからず斜め上のレスをしちゃう無能w アンカーを付けるときはまず無知無能異常者認定する複おじしぐさ
Rustなら安心安全だからテストは必要ない コンパイラーが全部教えてくれる
>>630 Rustはプログラムを書き始めるためのcargo new --lib した時にテスト用mod testsの雛形が自動的に生成用意されるくらいテスト重視主義の言語 もちろん強力な型システムによりRustコンパイラがコンパイル時点でデータ競合を含む多くのバグを実行する前に指摘してくれるのも事実 その分だけテスト記述は本来のロジックに関するテストに対して専念できる >>630 それって コンパイラが教えないバグが一部存在してもコンパイラにペナルティがないこと を問題視しているんだよね 全部教えると断言すればきっと罰を受けるのになあってことだよね