次世代言語29 TypeScript Swift Go Kotlin Rust Nim
レス数が1000を超えています。これ以上書き込みはできません。
スレタイ以外の言語もok
前スレ
次世代言語28 TypeScript Swift Go Kotlin Rust Nim
https://mevius.5ch.net/test/read.cgi/tech/1661739736/ 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よりもな😄」https://youtu.be/RgIny6xvnSo 🆕
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はゴミと認めてなかったっけ。
反省点を踏まえて新言語を作るので期待してくれとか言ってたような。 C C言語がないぞ C言語がないぞ(大事なことだから2回)
C++ 三年ごとに改定されるので常に次世代言語🆕
php 原付 >静的型はブレーキ🛵 俺にブレーキはない 10年経って分かった <matz😚
Lisp JavaScriptと変わらん ブランディングした先人たちのマーケティング能力が驚き
惑星探査機🛰とか特殊な用途、身近なところでルンバ🤖がLisp
Awesome Lisp Company https://github.com/azzamsa/awesome-lisp-companies
プロトタイプから本番に移行 柔軟に改修しやすい common lisp あとから型書いてパフォーマンスUp
思い出 >https://practical-scheme.net/trans/beating-the-averages-j.html >オジさん🧓は言語を変えない
Clojure StackOverflow >愛され言語ランキング上位 2つあるawesome-clojureがどちらもマメに更新されてる
CircleCIとかいくつかの実用サービスに使われてるのがすごい 「本物のREPL」(未確認) LogSeq
Apple,CircleCI,Cisco,Cognitect,Nubank🏧,Walmart >使ってますが何か? https://docs.google.com/spreadsheets/d/1jBQD-rzOeGeKgLjsQ21r4YfEHp8XOpB_vl6TGJEBj3g/edit#gid=0 欧米企業「最初のバージョンは常に捨てられる」
「アイデアは価値がない、アイデアを誰より早く形にして価値がある」
Erlang 方向性が違う どっちも強い >お気楽Goはやっぱりつよいの?
php >原付🛵より遅いぞ https://benchmarksgame-team.pages.debian.net/benchmarksgame/box-plot-summary-charts.html
Jakt https://github.com/SerenityOS/jakt Memory safety(ARC), Math safety, performance, transpiles to C++, Inline C++
https://awesomekling.github.io/Memory-safety-for-SerenityOS/ 🆕
Jakt作者「Rustの方こそメモリ管理に絶え間ない気配りが必要で、自動のフリして実際にはプログラマーの負担」🆕
GC 究極的にはGCが勝利する(JARO⚠案件?)
メモリリーク C++ & GC(Java,C#,Go,etc)「バグです🪰」Wikipedia「バグです🪰」Rust「安全です 常識💀🙈🙉🙊」🆕
※ジョーク集です。「未確認」表示の有無に関わらず真偽を保証するものではありません。 >>3
Goは まだしも 突然LuaとかFortranとか出てきて 草生えた Goはすでに実用になってるので、次世代から新世代へ格上げかもしれん。 GoogleやMicrosoftがRust言語でOS開発
https://xtech.nikkei.com/atcl/nxt/column/18/00692/042700054/
【脆弱性の70%がメモリー管理バグに起因】
GoogleによればAndroidに存在した深刻なセキュリティー脆弱性の70%近くがメモリー安全に関するバグに起因するという。
同様にMicrosoftも、同社製品に存在したセキュリティー脆弱性の70%がメモリー安全に関するバグに起因すると述べている。
C/C++を使う限りセキュリティー脆弱性を根絶するのは不可能と考えて、Rustを採用するに至ったというわけだ。 >>1-11
乙
>>9
それなら「反省点リスト」を整備・公開したほうがいいと思うけどなぁ。
Rustはすでにビジネスになっているからそんなことしないだろうけど。 >>15
そのメモリ管理バグが引き起こしているセキュリティ脆弱性の根絶ができる新たな言語がRustしか登場しないのはなぜだろう
今世紀になってからも色んな言語が誕生してきたけどリスクを残す手動メモリ管理のままか戦力外のGCへ逃げるか両極端しかない気がする
現在求められている要件をRustしか満たしていないためにRustが唯一解となり採用されていってる感じだ 前スレのこれ
「Chrome」は「MiraclePtr」でさらに安全に 〜Googleが「解放後メモリ利用」対策を開設 診断性が向上するという副次的効果も
https://forest.watch.impress.co.jp/docs/news/1439971.html
「Chrome」で対処されているバグの種類
https://asset.watch.impress.co.jp/img/wf/docs/1439/971/image3.png
>ChromeはRustで書き直せばバグを1/4に減らせると言われているね
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
従来の言語でのプログラミングでゼロ値を特殊扱いで値が無いことを意味させていたケースも安全に扱えるみたい Zig Playgroundもあるんだがサーバーが弱っちい
https://zig-play.dev/
素直にローカルだな
https://zenn.dev/voluntas/scraps/4111a964e3e07f
学ぶモチベーション
> C++ や Rust は自分には難しい
> Wasm に出力してブラウザで利用したい
CGOでGoからZigのライブラリを呼び出す
https://zenn.dev/mazrean/articles/4b7d9ba78fd073
>Cの問題点を改善しつつ、Cの果たしていた役割を綺麗に代替できており、非常に良くできていると感じました。
潜在的ターゲット層は それなりにありそうだ C++とRustが難しいって単なるバカなんだろ
まとまな企業がZigを使うようになることはありえないな >>20
下の記事みたいに、ChromeはRustの良さが活かせないんじゃない?規模も大きいし。
https://postd.cc/tsc-go/ >>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-61 ほかスレで身バレしてたね 見苦しいよ ツベ頑張りなよ >>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はプログラミングしやすくて開発効率が高いのは事実だと思うぜ
その点まで否定する人はいないと思うが >>101-103
負債まみれでも、とりあえずRoRが良い 現実解>>27 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に強くなったと考えるべきでは?
日本やるじゃん! 日本人なら詐欺師の味方するよな!
応援しようぜ!
そんな弱小言語がどうだろうと俺たちには関係ないし。 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++に注力することで、人類の発展と未来が担保される。
と思います!! 低レイヤーでもRustは向いてない、何年もの経験のあるRust使いでも。
「Rust開発は呆れるほど程時間がかかる上に、楽しくない」そして移行先が話題のZig
Why I rewrote my Rust keyboard firmware in Zig: consistency, mastery, and fun
https://kevinlynagh.com/rust-zig/
https://kevinlynagh.com/rust-zig/typical_keyboards.jpg
高レイヤー参考
>>42
tscをGoに移植
https://postd.cc/tsc-go/ ZigならC++で良くね?って思う
C++のベストプラクティスが分かりにくいという問題なだけでしょう >>88
ソーシャル・クッキングって日本語で言うと闇鍋? >>139
お店の名前だろ
Social Cooking
+64 22 586 8633
https://maps.app.goo.
gl/syacaqL19Bdcso7d9 >>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への投資を回収できるかを定量的に評価せよ 言語に対して投資を回収とはどういうことかよくわからない
サーバーリソースは大きく減る見通し 以下聞きかじり(キッパリ)
LuaJITは開発者本人が天才過ぎて他がまねできない。バグ出しも殆ど終わった感があるし開発者本人もヘビーユーザーも5.1からの移行の必要性(移行コストの正当化)を感じてない。もちろんLuaJITメンテはされる。
>>154
forkがとん挫した例がある
https://github.com/moonjit/moonjit
今の注目?
Redhatが立ち上げた新規のJITエンジン(メイン目標はRubyへの適用)
https://github.com/vnmakarov/mir
c2m(MIR)が本JITの性能 gcc -O2やclang -O2(~gccの-O3)の比較
https://developers.redhat.com/sites/default/files/blog/2020/11/commet-lake-speed.png
JITエンジンだから優秀だと思う
JVMやV8との比較が欲しいところ
最新記事(Last updated: August 26, 2022)
https://developers.redhat.com/articles/2022/02/16/code-specialization-mir-lightweight-jit-compiler >>172
具体的に何円減るんだ?それは現在の事業や人員の規模に対して十分に意味のある金額と言えるか?
そういう計算できないならそらISUCON勝てないわな >>174
技術のスレで具体的な金額を求めて何をしたいんですか?
ISUCONを持ち出すのも唐突すぎて何を言いたいのでしょう
十分に意味があるから進めるわけですよ Scala難しくね? 開発者高くね? Netflix以上じゃないとpayしない HW投資しとけ
みたいな話を何かの講演動画だったかでみたけど思い出せない
>>175 >お金を儲けること
その通り。
自社開発で開発者が暇してるのでもなければ、HW投資かサバ代予算増額の方が良い。 >>163-171 >>177
TLDR
餅は餅屋 サバはサバ屋 メモリはGC でOK 速い言語を使えばいいだけなのに、
遅い言語を使って無駄にリソースコストを支払うのか。
遅い言語を使うとメリットあるなんてことは一切ないのに。 架空なのか自社サイト(いつでも再検討)なのか 好きにしたらいいよ。上司の許可は忘れずに 転職して最初の決算以降、誰も私に意見を言えなくなりましたよ。
結局のところ、実力が一番大事なのでは?
これは、会社員だけでなく、言語にも言えると思いますよ。
実力が大事。 開発コストはどの言語でも変わらない。
遅い言語だと開発コストが安い、なんてことはない。 >>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導入で手こずるなんて ない*
(*小規模な実験) >>197 == >>193 ? ポエムおじ
>>194
ポエムおじのカキコはポエム きにすな >>196
>>198
先に小規模な実験で色んなことを検証するフェーズがあります
これは新機能追加や一部システム改変など様々なことで必ず事前に行われます
他のところでも似たような感じで進めるのをよく見聞きしますが
何を問題にしていますか? >>199
別の人ですよ。
ID見ればわかるじゃないですか。 >>182
「真性の病気 」はなかなかないから、何かの一環で頑張ってるんだよきっと?
Goスレ663-664でめっちゃ「挑発的」聞き方で、「全訳」に挑んでいる奴がいるんだけど雰囲気似てる
何の「動機」で全訳に取り組んでいるのか、怪しい「ライセンスビジネス」とか「本」でも出すのか
「どこが全訳」だしてくるか後日「答え合わせ」しようや rustのボローチェッカーみたいにポエムチェックされた 複オジはね
もともとはRustスレでクソコード貼り付けてた子なのよ
あれみたらわかるけど決して職業マではないわ
暇を持て余した学生か無職よ
病気というより単にエアプ勢なのよ >>202
ライセンスビジネスや本にするにはあらゆる方向で無知すぎるからそれはない >>207
仕事でやってれば必要になる観点を持ってないから職業マじゃないのは同意するが
エアプで知ったかぶりするだけでなく
嘘までついて虚勢を張り続けるのは間違いなく病気 >>203
最初に書いたようにWebサーバーサイドとフロントエンドWasmです >>211
こいつがやり玉にあった最高潮でセキを切ったように複オジが現れた>>179 >>181 ソースをよく読むことが絶対正しいとは限らない
読まない方が効率が良いことが多い >>213=本日のポエムおじ
>ポエムおじのカキコはポエム きにすな >>214
ポエムとは何かが全然分からないが、どっちが善良でどっちが悪かは誰でも分かるぞ >>212-215
「ポエムおじ」つついてもセキを切ったように「複オジ」が出現するんじゃね? https://twitter.com/markrussinovich/status/1571995117233504257
Speaking of languages, it's time to halt starting any new projects in C/C++ and use Rust for those scenarios where a non-GC language is required.
For the sake of security and reliability. the industry should declare those languages as deprecated.
https://twitter.com/5chan_nel (5ch newer account) >>218
Microsoft AzureのCTOもC/C++を捨ててRustへ移行か >>217
ハノン ◆QZaw55cn4c かな?
トリップは付けたり付けなかったり、ワッチョイをたどると
C言語なら俺に聞け 159(現行)
https://mevius.5ch.net/test/read.cgi/tech/1659623547/212 (US 0H7f-G1yF) 馬鹿は死ね QZはまた別のコテよw
そいつは昔から定期的に叩かれてる 217ではないが
ポエムおじ?
C言語なら俺に聞け 159(現行)
(アウアウウー Sa5b-Di2O)
https://mevius.5ch.net/test/read.cgi/tech/1659623547/195,198,199,201,203,205
>>205
めちゃくちゃだよアンタw
文系ポエムは他でやんなさい >>219
このクラウド時代はRust一択だからさ >>224=ポエムおじ が>>223に反応している? >>223
さすがにそいつはこっちのポエおじとは別のポエマーだろ >>223 >>226
「ポエおじ」の方がゴロが良い MS Azureの人がわざわざこんなツイをするなんて
余程Rustが上手くいってないんだろ
自分たちでお金掛けずにOSSを煽ってる様だ ほしいのはrustの方向性を持った言語バリエーション
rustだけってのが良くない 2021/5にUS政府がexecutive order on cybersecurityを出して(Department of Commers & Nistに)対策の方策提出(60日以内)を要求したんだね
https://www.whitehouse.gov/briefing-room/presidential-actions/2021/05/12/executive-order-on-improving-the-nations-cybersecurity/
それで業界側に話が来て苦し紛れか、おあつらえ向きのRustの名前を挙げて「対応しているポーズ」をしてるのか
そっち方面疎いから、Rust関係なんか不自然だと思ってたけど、やっと謎が解けた
C/C++の人(Microsoft, ISO C++ committee)の講演 ためになる
Can C++ be 10x Simpler & Safer? - Herb Sutter - CppCon 2022
https://youtu.be/ELeZAKCN4tY?t=2457
MS Azureのツイもこの流れだな 単一の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ニュースで気をよくしたのか他スレで暴れだしました こんなの見つた
Rust part16
https://mevius.5ch.net/test/read.cgi/tech/1656285423/738
https://mevius.5ch.net/test/read.cgi/tech/1656285423/743
>「実装させない方法があるかどうか」
>Rust の初心者として様々な言語機能を理解したいという立場で疑問に思った部分を抜き出し
これ自分の学習用とは思えない
この人も、Rustの「全訳」に挑んでいるのかも
なんにしても、それぞれの言語の「公式以外」から「全訳」(全解説)と称するものが今後出てきたら要注意
>>202
後日「答え合わせ」しようや このスレが盛り上がるのは平日の20-26時くらいなんだよね
きれいな社畜で笑っちゃう
僕はRustで1600万ほどもらってます >>256
お客様が大手企業だからってことは無いの? この世界は二種類の人々に分かれている。
『言語・技術』に興味を持つ人々と、
『オジサン』に興味を持つ人々である。 >>211-212が言っていることに真実があるなら
複オジ は 職業マ
>>207は何か知ってるんじゃないの>>255について >>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強になっていく 大昔のゲームを今やってるおじさんは、ソフトが時代遅れになる恐怖を感じない LinuxのNVMeドライバのRust版がC版と同等の性能を出したとな
Western DigitalによるRust版実装がパフォーマンス測定でC版と同じ速度が出てる
Rust Linux Drivers Capable Of Achieving Performance Comparable To C Code
https://www.phoronix.com/news/LPC-2022-Rust-Linux 色んな業界が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で導入される」と述べた。
https://japan.zdnet.com/storage/2022/09/20/fbead5b1eeb6ff33e598cce49a17eb26/linustorvaldstedyoutubeb.jpg 律儀に有用記事をキッチリと上げてくれる人、それ要らないよ いよいよ 数学的証明のない 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の優良誤認詐欺か >>307
>>300に戻る
バカは何度説明してもバカなままなんだなw >>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の優良誤認詐欺か >>321
Rustは同じ方法に基づいているので
>>319の論文をベースにRustは作られている 「ベースとして作られ」
これが「証明」だと言ってるのか?
もしかして口だけ証明なのか?
>>306 >>318
>証明してる
お前が、さっさと「どれ」の「どこ」がその「証明」論文か出せ(>>308)
Rustese数学できねー、なさけねー、早くしろ
またRusteseの優良誤認詐欺か 「ベースとして作られ」
これが「証明」だと言ってるのか?
さっそくRustの方が劣化コピーじゃねえか
https://blog.waft.me/2017/09/24/region-based-03/
>Dangling pointerのデリファレンス、「メモリリークをコンパイル時に防ぐ」仕組みとしてリージョンを導入した
>>306 >>318
>証明してる
お前が、さっさと「どれ」の「どこ」がその「証明」論文か出せ(>>308)
Rustese数学できねー、なさけねー、早くしろ
またRusteseの優良誤認詐欺か >>323
しっかり>>319の論文で意味論も与えて証明している
論文中でのリージョンがRust におけるライフタイム さっそくRustの方が劣化コピーじゃねえか
Rustは「メモリリークをコンパイル時に防ぐ」は出来ない
https://blog.waft.me/2017/09/24/region-based-03/
>Dangling pointerのデリファレンス、「メモリリークをコンパイル時に防ぐ」仕組みとしてリージョンを導入した 「基づく」とか「ベース」は「証明」じゃねえ
>>325「論文中でのリージョンがRust におけるライフタイム」
って、さっそくRustの方が劣化コピーじゃねえか
https://blog.waft.me/2017/09/24/region-based-03/
>Dangling pointerのデリファレンス、「メモリリークをコンパイル時に防ぐ」仕組みとしてリージョンを導入した
*Rustは「メモリリークをコンパイル時に防ぐ」ことは出来ない
>>306 >>318
>証明してる
お前が、さっさと「どれ」の「どこ」がその「証明」論文か出せ(>>308)
Rustese数学できねー、なさけねー、早くしろ
またRusteseの優良誤認詐欺か 基地害がIdコロコロさせながら連投かよw
サクッとNGWしとくわ >>327
Cycloneのregion = Rustのlifetime だから
CycloneもRustもコンパイル時点でメモリ安全性を保証できることが>>319の論文により証明されている >>328-329「基づく」とか「ベース」は「証明」じゃねえ
「証明」ではない「反例」
>>325「論文中でのリージョンがRust におけるライフタイム」
>>329「Cycloneのregion = Rustのlifetime だから 」
って、
さっそくRustの方が劣化コピーじゃねえか
https://blog.waft.me/2017/09/24/region-based-03/
cyclone(>>319)>Dangling pointerのデリファレンス、「メモリリークをコンパイル時に防ぐ」仕組みとしてリージョンを導入した
*Rustは「メモリリークをコンパイル時に防ぐ」ことは出来ない
やっぱり口だけか
Rustese数学できねー、なさけねー
またRusteseの優良誤認詐欺か 「ベース」にあった性質が「派生」で失われた
「ベース」にあった他の性質が「派生」で保持されていると言う「保証」「証明」はない
「派生」で付け加えた性質には、「何の証明」も与えられていない
これが正しい論理的思考 キチガイが暴れているようだが
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は「メモリリークをコンパイル時に防ぐ」ことは出来ない)
A「Cyclone」にあった他の性質が「Rust」で保持されていると言う「保証」「証明」はない
B「Rust」で付け加えた性質には、「何の証明」も与えられていない
これが正しい論理的思考 「Cyclone Core」には数学的証明が与えられた性質が存在している(>>319)
しかし
@「Cyclone」にあった性質(*)が実際に「Rust」で失われた(*Rustは「メモリリークをコンパイル時に防ぐ」ことは出来ない)
A「Cyclone」にあった他の性質が「Rust」で保持されていると言う「保証」「証明」はない
B「Rust」で付け加えた性質には、「何の証明」も与えられていない
C「Rust」の「コンパイル時点でメモリ安全性」(仮 + *)は「証明」されていない
これが正しい論理的思考
Cを認めるのが「都合が悪い」Rusteseが 4~5名 存在します。深夜から早朝、日中まで。 >>319の論文を見たけど、regionをそのままlifetimeと読み替えれば論文でのセマンティクスは成立してるね
したがって、Rustはコンパイル時点でメモリ安全性を保証できることを意味してる、で合ってるね >>338 >Cを認めるのが「都合が悪い?」Rusteseが 4~5名 存在します。深夜から早朝、日中まで。
そして夕方〜夜間も。 片や火消しにRustしか使えない蟹道楽
片や同じ内容で罵倒するばかりの文鳥 「意味論」「セマンティクス」これ目立つ。しばらくwatchするか掘ってみるか >>342
バカの相手はバカしかつとまらないってことだよ >>343
それ某コテハンの人がよく使う
複オジ語録 「Rust」の「コンパイル時点でメモリ安全性」(仮 + *)は「証明」されていない
(*Rustは「メモリリークをコンパイル時に防ぐ」ことは出来ない)
>>325,335 >>339 YO
「意味論」「セマンティクス」についてしようや
前スレ
>>https://mevius.5ch.net/test/read.cgi/tech/1661739736/528
>あるいはRustでは保証するとか証明可能とか言う話は全て架空だ
>数学的証明された事実は一つもない
>>https://mevius.5ch.net/test/read.cgi/tech/1661739736/529
>まあ数学自体が架空だと思ってる奴もいるんだよな 「Rust」の「コンパイル時点でメモリ安全性」(仮 + *)は「証明」されていない
(*Rustは「メモリリークをコンパイル時に防ぐ」ことは出来ない)
>>325,335 >>339
お前ら、「意味論」「セマンティクス」の言葉を出せば、煙に巻いて、
嘘が通せると思ってんのか? >>348
なさけねーレス
複オジ社長w連れてこい >>348
今夜のレス常駐当番なの?
複オジ社長wと連絡とれた?
無視しろって言われた?
君、.NET MAUI担当なの? >>325,335 >>339
「数学自体が架空」って、おいおい、数学出来る奴はそんな発想すらねーんだよ >>343
意味論(semantics)はコンピューターサイエンスでは常識かつ必須のものであり
今回のような証明においてももちろん不可欠のもの
そして>>319の論文を見てみたら当然のように今回の核心部分で意味論(semantics)が出てきている
皆が言及しているのも当然なのであった >>352 Rusteseは素人だまして近々Rustで商売を始めるの? Cloudflare、NGINXに代えて自社開発のRust製HTTPプロキシ「Pingora」をグローバルCDNに採用。性能向上しつつCPUとメモリ消費を3分の1に
https://www.publickey1.jp/blog/22/cloudflarenginxrusthttppingoracdncpu31.html >>354
世界トップシェアのCloudflareがRustで書かれて動いているのかよ! この腐ったスレで仮定の話をしてみる
尋常ならざる「ヘイト」を集めた仮想集団Rustese(4~5名)が、近々 >>354
5chもCloudflareを使っているから
これでこのスレの住民が仲良く全員ともRust製にお世話になっていることになるね >>356
もしかして相手にしてるのが複オジ一人だと気付いてない? >>356 >>353
https://mevius.5ch.net/test/read.cgi/tech/1663409149/255
デフォルトの名無しさん 2022/09/20(火) 20:30:32.65 ID:poUTUsCs
こんなの見つた
Rust part16
https://mevius.5ch.net/test/read.cgi/tech/1656285423/738
https://mevius.5ch.net/test/read.cgi/tech/1656285423/743
>「実装させない方法があるかどうか」
>Rust の初心者として様々な言語機能を理解したいという立場で疑問に思った部分を抜き出し
これ自分の学習用とは思えない
この人も、Rustの「全訳」に挑んでいるのかも
なんにしても、それぞれの言語の「公式以外」から「全訳」(全解説)と称するものが今後出てきたら要注意
>>https://mevius.5ch.net/test/read.cgi/tech/1663409149/202
後日「答え合わせ」しようや 「ヘイト」を集めた「仮想集団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 が基本の言語がまだまだ(もしかしたらずっと)強いだろ。 >腐った設定を楽しむポエスレ
これでしばらく俯瞰してる
https://mevius.5ch.net/test/read.cgi/tech/1663409149/366 (一部設定加筆修正)
デフォルトの名無しさん 2022/09/22(木) 15:45:41.23 ID:llfSUMQF
なるほど、腐ったスレ -> 腐った設定を楽しむポエスレ
追加設定(仮):
Rust,Go,C#,C,組込み,低レイヤー,それぞれ担当分野の強みを集めて日本製VRヘッドセットなどのウェアラブルデバイスのキット、ソフトウェアソリューション事業(仮)を近々発表する設定
ソフトウェアスタックの一部がRust製、Rustの優良誤認(*)を巧に利用した宣伝
(* https://mevius.5ch.net/test/read.cgi/tech/1661739736/946,963)
Rust,Goの「全訳」(公式以外)を出してコンサル、受託開発もすると宣伝
近々リリース予定のLinux6.1(Rust製ドライバ実働ready)を宣伝材料に使う
Rustの真実(**)は宣伝に都合が悪いから5chで火消し作業w
(** https://mevius.5ch.net/test/read.cgi/tech/1663409149/338)
尋常ならざるネット行動で「ヘイト」を集めた「仮想集団Rustese」(4~5名)(仮定)の社長(仮)が複オジしゃちょー
(https://mevius.5ch.net/test/read.cgi/tech/1663409149/256,368)
着々と「ヘイト」を収集中
ネットメディアに取り上げられて「顔出し」インタビュー記事が出るw
> 後日「答え合わせ」しようや
(>>https://mevius.5ch.net/test/read.cgi/tech/1663409149/202,255) >>354
Nginxは静的webサーバーとしてはApacheより速いけど、HTTP(S) ProxyやリバースProxyでそんなに速くないし
ロードバランシングもあるけど、モニタリングとか簡素だもん。Cloudflareがいままで余りにもお粗末だっただけで
HAProxyやEnvoy(いずれもC系)でHTTPSでは99%タイルで3倍以上、Traefikの最新版だって2倍スループットの
差が出る。まあ上の記事にも書いてあるけどね
ちょっと古いけど、ベンチマーク(もちろんCPUやメモリ消費量の話じゃないけど、それはパフォーマンスに直結する)
https://www.loggly.com/blog/benchmarking-5-popular-load-balancers-nginx-haproxy-envoy-traefik-and-alb/ 嫌儲板にRustのスレが立つ日が来るとはwwww
Linux、開発言語としてRustの導入がほぼ確定!まだ覇権プログラミング言語Rustを学んでない奴おりゅ? [543236886]
https://greta.5ch.net/test/read.cgi/poverty/1663742232/ それとHTTP(S) ProxyなんてHTTPリクエストの入り口だけど、それを「フロントエンド」なんて言わないよね。
大体はミドルウェア扱いで、コンペティションならサーバーサイドの処理結果や連続する同一リクエストなどを
Proxyキャッシュから返すとか小細工するけどさ
ほとんどの実際のサーバーサイドの入り口のプログラミングだって普通にファイヤーウォールの中にあるので
そんな外で一体になるようなプログラミングは許されることは多くない
エッジサーバー言い換えるとエッジコンピューティングは、CDNやIoTのような特殊な業務には求められるけど
データーベースにつながってるようなシステムだと(工夫して非同期を使っても)結局データを取りに行って
戻ってこなくちゃならないし レールは続く】 Ruby on Rails Part21 【これからも
https://medaka.5ch.net/test/read.cgi/php/1545146635/103-104
Rails で世界最速!
表示速度が“異常な”Webサイト「dev.to」
これ、米国? なのに瞬時に表示される!
不思議 ファイル配信が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へのコンバータを代わりに用意していましゅ Carbonも入れよう
Go、Rust、Swift、Zig、Carbonはまつもとゆきひろ公認の次世代言語だからね
https://logmi.jp/tech/articles/327259 当時Zigに注目してなかったが、過去スレのこれ↓今度は「競プロ的視点」でZigのところ再現してくれ
ちなみに某一名が >それは専用プログラムでない限りプログラミングでやってはいけない行為 >"caller hash"
と批判しているが、"Rust@github rust/optimized-customhashmap"でも行われている。
https://github.com/benhoyt/countwords
https://mevius.5ch.net/test/read.cgi/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はなぜ開発者に愛されているのか、そして「人を選ぶ」理由とは? 実案件でRustを採用するゆめみに聞く
https://codezine.jp/article/detail/16416 まずは既存言語の延長として借用ベースでコードを書いてから
適切にムーブもするというスタイルをお勧めしたいね
本来の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とか調査主体の部署でやってもらうのが無難。 無能向けのルールに従っていたらせっかくの高い能力を発揮できないじゃん
妥当じゃないの >>616
ところが >>611 みたいのは能力が高いわけで無いという。 >>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
それって
コンパイラが教えないバグが一部存在してもコンパイラにペナルティがないこと
を問題視しているんだよね
全部教えると断言すればきっと罰を受けるのになあってことだよね >>627
バカにされてる、というか煽られている部分を感じなかった訳じゃないけど、そうだとしても煽ってくる人間は、型とテストが複合的にエラーを減らす手段であって排他なものではないということを、理解していないか少なくとも認識していないので、レスの内容は変わらないよ
大体実装が早くできて楽だよね、っていう動的型付け言語の特性を私は否定するつもりはないし
技術というのはメリット・デメリットを認識した上で選定するものであって、単に煽るだけとか無能呼ばわりするような人間がそれらを認識できてるとは思わないし、もし不勉強と言われたくないならテストを書くという単一の手段がエラーを防ぐという点でどういう十分さがあるのか説明しなきゃ
あと
>>630
Rustだって基本のツールチェーンでテストが実行できるように作られてるんだからテストが必要ないなんで事は少なくとも言語開発チームは思っちゃいないよ
テキトー言わんでくれるかな >>633
かつての静的型付け言語は型宣言が面倒だったため動的型付け言語は型宣言が必要ない僅かな分だけ有利だった
今の静的型付け言語は自動的に型推論が行われるため動的型付け言語が有利なことはない
実行時デバッグの手間が増える動的型付け言語は劣ったプログラミング言語 現実は違う
まるで不殺主人公みたいに動的型を殺さないし、コンパイルが通らなかった人を殺さない
検査しかしないくせに結構役に立つのが現実 FacebookがRust使ってると自慢レスがあったけど。
それでFacebookは使いにくいのかと納得してしまった。 >>636
クラウド世界トップのAWSも
CDN世界トップのCloudflareも
Rust製です Rust Foundationを共同設立したGoogle, Microsoft, Amazonなど各社は負け組になる可能性ありうる 型の話はRDBとNoSQLの比較で
schema on writeがいいかschema on readがいいかという話と同じ
どちらか一方がが常に言い訳ではなくそれぞれ良し悪しがある >>642
NoSQLデータベースの多くはschema on readではなく、単に入れたものをそのまま出すだけだ
多くのNoSQLはオンライン性能が重要なため、Elasticsearchのようにschema on writeを使用するものもある
schema on readはむしろデータ分析用途でリレーショナルモデルとSQLで使用される場合が多い OLTP用かつschema on readなNoSQL DBってあるっけ?
MongoやDynamoDBみたいなKVS+α系はキースキーマとインデックスの併用だから典型的なschema on writeだよな
インデックスなしのスキャン操作はschema on readと言えなくもないけどオンラインでは普通使わないよね >>643
原始的なアセンブラはアドレスに型が無く、アドレスに何が入っているかによって人間が命令を使い分ける。
その状態より型があるほうが便利なのでC言語は支持された。 a[i]の順序を逆にi[a]と書くのが何故マナー違反かって質問が存在することは誰も否定しなかったので
質問が存在するゆえに型が存在する >>646
アドレッシング用レジスタとデータ用レジスタの区別も無い罠
プログラムカウンタでさえただのレジスタと区別しないの好き >>637
OSが存在しないファイルシステムも存在しない環境でどうやって拡張子を定義するんだって話 >>633
>型とテストが複合的にエラーを減らす手段であって排他なものではないということを、理解していないか少なくとも認識していない
めっちゃ判ります
っていうか煽るためにわざと知らない気付かないフリしてるのかと思える ・動的型付け言語 ←動的動作のためメモリ上に型情報が必要となる
・GCあり言語 ←GCのためにメモリ上に一部型情報が必要となる
・GCなし言語 ←基本的にはメモリ上に型情報は必要ない
(ただし敢えて動的に型を扱いたい時は型情報をメモリ上に持たせる) >>644
>NoSQLデータベースの多くはschema on readではなく、単に入れたものをそのまま出すだけだ
schema on readの意味くらいは理解してからレスしろ >>645
おまえもschema on readの意味くらいは調べろよ 恥ずかしいから>>654こそ調べたほうがいいぞ
schema on readというのはデータ分析や大規模バッチ処理の文脈で出てくる言葉で、Hadoopのように検索時に生に近い形式のデータを力業でフルスキャンする方式だ
データ分析においてはデータの取り込みは柔軟にしつつ読むときに工夫しろというベストプラクティスがあって、それを端的に表している
対してschema on writeってのは普通のRDBやMongoDB、Elasticsearchのような、書き込み時にスキーマ情報を使ってインデックスを作る方式を指す >>650
それは実行環境であって、開発ビルド環境のソースファイルは関係ねーだろ?
それともお前はOSも無いファイルシステムもない環境で開発ビルドしたことあんのかよ?あ? >>656
そもそもソースがファイルかどうかもわからんのにお前は何を言ってるんだ?w >>657
ム板で、ソースがファイルじゃないなら何? >>658
ストリームとかじゃね
あるかどうかは知らんけどワンパスコンパイラなら標準入力からソースもらうとか可能なはず こういうとき絶対>>657本人じゃなくて
横から「○○じゃね?」っていうやつがやってくるの面白いよね >>660
知らんけど がついてたらモアベターだったよね。 ファイル以外のソースがあるとしてそれがファイルの拡張子が決まってないこととなんか関係あるのか?
知らんけどw こういう流れで>>657本人が出てきて
最後まできっちり議論に付き合うケースって皆無よねw そんな話じゃないでしょ…
C++の規格はフリースタンディングも想定してるから、ファイルシステムなんかそもそも規約に入れようが無く、結果、ソースファイルについても何の規約も無い、みたいな話ではないの?
規約が無いかは調べてないけど。 C言語のソースファイルは*.c
そしてヘッダファイルは*.h
決まっていて困ることはない
ファイルシステムがどうこう言い訳してるやつは屁理屈 >>662
ストリームに名前なんて無いんだから拡張子なんてつけようがないだろ
>>664
そもそも開発環境とかを規定してる言語の方が珍しいだろ 本人再登場ww
ファイルシステムなんて関係ねーだろw 知ってる範囲ではc#が規格内に拡張子が書かれてるけど、確かに規定では無いな。 汎用機とかでファイル名の最大長が短くて拡張子使わないケースとかはあるわな >>671
javaは拡張子やフォルダー構成も決まってたような気がするけど言語仕様なのか単なる開発環境の決め事なのかはよく知らん 俺様がベーシックやってた頃は拡張子なんて無かったぞ
誰か説明しろよ 最近読んだC++コードの拡張子がc++だったのはたまげたな c++は
.cpp
.cc
.cxx
.c++
.C
.hpp
.hh
.H
とか節操無さすぎ。 その点Rustは統一されてて安心安全
ついでにメモリも安心安全 c言語は UNIX という OSを実装するために作られたものだから
ファイルシステムとは表裏一体だったという歴史は捨てようがない
派生した言語や OS も色々引きずっている 拡張子なんてもんはいつからできたんだよ
誰か調べてこい >>681
もうC++の話はいいのか?w
C言語では *.[cC], *.[hH] でない処理系は見たことないな 拡張子の文化が広まったのは、
8ビットマイコン時代にCP/Mが普及したのがキッカケで
CP/M→MS-DOS→windows の系譜で定着したのだろう
当初は、アセンブリ言語のソースや実行ファイルを拡張子で区別したが
高水準言語(高級言語)が次第に移植された 拡張子の由来
https://ja.wikipedia.org/wiki/%E6%8B%A1%E5%BC%B5%E5%AD%90#%E6%8B%A1%E5%BC%B5%E5%AD%90%E3%81%AE%E7%94%B1%E6%9D%A5
拡張子は、もともとはDECのオペレーティングシステム (OS) 、たとえば、TOPS-10、OS/8やRT-11に利用されていた。
その後、CP/Mでも採用された。CP/Mのファイル名は8+3バイトの構成になっており、後ろの3バイトが拡張子と呼ばれた。
さらにCP/Mと互換性を取るため、MS-DOSやOS/2、Windowsなどに受け継がれた。現在のWindowsでは3バイトの制限はない。 そりゃ、K&Rの時代から .c .hが有ったにしても
DECのミニコンを庶民はそうそう導入できない そりゃ当然、コンピュータを使っている人への普及の話だろ。使ってもいない人に普及するわけはないが。 >>689
UNIXとCの話は先に書いたから、
次にマイコン時代の浸透と拡散の話に進めたけど、早かったか
それらの前、BCPL等の時代に拡張子やファイルの概念があったのかは調査中だ 簡単過ぎるから未解決のまま放置される問題というのがある
アクセルとブレーキどうやって区別するのかとか
拡張子を何にするかとか >>691
ナルセのワンペダルで解決しているよ。
(日産のパチもんじゃないので注意) >>691
優先度低いためにいつまでたっても解決されない問題とかあるわ。
本来なら時間経過とともに優先度は上げるべきなんだよな。 ホントに困ってたら優先順位上げるだろ
ずっと低いままと言う事はたいして困ってないってこと >>694
追加機能とか便利になる機能とかは困ってるわけじゃないからなぁ。 やっぱりヘッダーファイルができた
C言語あたりから拡張子が必要になったんじゃないか
それまではソースファイル一つとオブジェクトファイル一つで
データは外から読んで、外に書き出すものだったから そもそもwikipediaをソースにしちゃうひとってω >>675
.N88 とか .BAS より古いのか >>699
.inc はまだしも .m はみたことないな >>700
Csave命令に拡張子はなかった
何冊か確認した
80年代のキッズ向けゲームプログラミングの本だ Siv3DやDXライブラリ等のゲーム制作用のフレームワークを使用したくてC++に初めて手を出そうと思うのですが
世の中の風潮がC++での新規開発はナンセンスでありC++を代替する言語(主にRust?)を選択すべきとあるようです
正直C++もRustも構文が複雑ですぐに忘れそうなので、NimかZigが良さそうと感じました
Zigは安定版がまだまだ先なので採用できませんがNimが流行っていないのは何か致命的な欠点があるからでしょうか ゲーム作りたいならunityかc++じゃないの?rustはいずれ台頭するかも知れないけど今はまだ成熟してない気がする。 >>705
Unity等のゲームエンジンは使用せずプログラミング言語(GCは無しか軽めのやつ)でいきたいです
C++のフレームワークは最悪DLL化すればよいので、読みやすくコンパイルや実行速度が速い言語が良いです
総合するとNimが最有力かなと思いました
Nimがなぜこんなにも流行っていないのか不思議でなりません C++が嫌、Unityも嫌って趣味でするなら何でもいいけど
もし仕事ならそれは無理があるw 普通にフレームワーク使えば良くないか?
こだわりがあるわけでもないみたいだし Nimは別に致命的な欠陥があるとかではないんだろうけど
わざわざ使う理由もないんだよな
構文が好きな人はいるだろうけど結局個人の好みなので
みんなで移行するほどの動機にはならない レスどうもです
ひとまずC++でいこうと思います
C++20とかで昔よりは書きやすく見やすくなっている気がしますし
何より日本語の参考情報・コミュニティが多いのが長期的に見れば問題発生時に助かるはず IT土方を目指すならRust
趣味や個人でやるんならNim ゲームそのものを作るのはUnity/UE/cocos2dのいずれか又は全部で、それぞれの1stターゲットの言語を使ってやりつつ、エンジン自作はC++でやればいいと思う
一応Rustもこないだ見たらwindows-rsでDirectX 12も書けるしXamlも食えるようになってたのでナシではない
Windows以外のプラットフォーム向けなら何個かVulkanラッパーあるし
いずれにせよ修羅の道だけど >>706
ネイティブコンパイラじゃなくトランスレーターだから。
過去トランスレーターで流行ったのはTypescriptしかない。 >>716
初期のC++もトランスレーターだったから流行らない原因をトランスレーターと言うのはちょっと違うと思うな ゲームでは、Unity 以外は無理
特に、C++ なんて10年以上は掛かる >>717
それはMicrosoftが開発言語に採用したからだ。 >>721
それならますますトランスレーター関係ないだろw nim言語は普通にコンパイルして使う場合には
ネティブコードコンパイラと違いはない
nim c -d:danger -d:strip hello.nim
でバイナリの実行コードができるので。 イケてない最大の理由は名前
kotlinとかnimとか名前がダサい
響きが野暮ったい >>726
>>727
俺もそう思う。
初めて見た時なんで錆?って思ったわ。 ゴタクはいいよ
なんでnimが流行ってないかお前らも考えろよ
おおかたロゴかマスコットキャラがキモかったんじゃねーの 流行ってない泡沫言語なんて山のようにあるんだから考えるだけ無駄。
流行っている理由ならまだしも。 まあ流行自体が目的でない限り、真の目的のために流行を犠牲にするのはごく普通の手段でしょ
対価を一円たりとも支払わない方針のほうが珍しい CNET Japan: グーグル、Rustで書かれたセキュアなOS「KataOS」を発表.
http://japan.cnet.com/article/35194751/ >>735
> このOSは、デスクトップPCやスマートフォン向けではなく、モノのインターネット(IoT)、おそらくはスマートホームを対象としたものだ。 >>739
グーグルがRustで本格的にOSつくりだしたことで、Rustの覇権が決定的なものとなった Google Researchだから論文出して飽きたら終わりだよ ハードを遠隔操作するOSは飽きるんじゃなくてハードが規制される
言語は規制されないから終わらない >>741
RTOSだとRustの制約がきつすぎて他の言語と変わらなくなりそうだと思うがね。
特にAliasing XOR Mutabilityをマルチスレッドで有効活用するのはキツイんじゃね?Mutex、RwLock、Atomicの管理で破綻しそうだし、熟成するまでせっかちなGoogleが我慢できるとも思えん。 Rustが覇権取ってくれるのは一向に構わんがはよ流行れよとw
いつまで同じこといってんのよ~って感じやな
Goが下火になってきてるのはいいことやとは思う
はよGoを滅ぼしてくれよRustさんよぉ Rustも流行らないよ
borrow checkerが厳しすぎる >>745
用途が全然違うのになぜ比較したがるのか
RustはCとC++の代替言語な そりゃあどんな物でもお金と交換できると思ってるならなんでも比較できると思うだろう >>745
Webサービスに使うならGoで良いんじゃない?
GCあっても誤差レベルだし
ライブラリも豊富だから作りやすいでしょう
非同期ランタイムとか面倒なこともないし >>749
>GCあっても誤差レベルだし
これマジで言ってる?w Rustが覇権を握った世界でもCは使われるんじゃないの?
小さなプログラムでもRustが上なのか? >>751
メモリの開放処理が不要なツールとかだと、明示的にメモリ解放サボれるCが有利なケース作れたりするんかな。
そんなケースで勝てなくてもいいとは思うけど。 >>749
正直Webサービスって別にGoじゃなくてもいいよね感半端ない
JavaでもRubyでもC#でもいいし
Goの利点なんて全然ないわ
Goルーチンなんて全然いらんし >>754
でもISUCONでは一番人気だしスケールしやすく簡単にかけて可読性がよくパフォーマンスが出るのは事実なのでは?
Goが一番輝くのはDockerやKubernetesで使われてるようにクラウド関連の周辺ツールやバックエンドだな
CockroachDBやTiDBで使われてるように、その気になればDBみたいなプログラムにも適している
Rustはとっつきにくさがあるからここまで流行らないだろうね、そもそもGCが気になるケースってのは非常に稀だしOS開発ぐらいでしかまず使われないだろう
GCも当然進化しているわけだからJavaとかと比べてGoの停止時間は圧倒的に短いし、ある程度書き方を工夫することでスタックヒープにわける制御もできる
だからほとんどGCが問題になることもない
あくまでもRustはCを置き換える言語だね >>755
でもいらねーんだよ
JavaやらのGCだってどんどん進化してるし
別にGoじゃなくてもDocker、k8sでスケールできるし
Goじゃなきゃ非機能要件を満たせないなんてことまずねーんだよ
それにエラー処理が糞だからなぁ >>756
エラー処理がクソってのもお前の感想でしかない
例外の方がクソって考えてる人もそれなりにいるわけなんでね
俺からしたらGoよりJavaの方が終わってる点が圧倒的に多いと思ってるでね
俺はISUCONで一番Goが使われててJavaなんて誰も使ってないっていうデータを示してるわけだが
お前の感想なんか誰も聞いてないよ スケールできるってのはあくまでも効率よくって話な
ISUCON12の初期実装でもGoとJavaでは5倍ほど差があったとのことだし、同じように実装しても普通に差が出るんだから
当然効率よくスケールできるという話になるわけ >>758
いやー、Goのエラー処理は適当やってると問題起きた時につらいんだよね。スタックトレース付けてなかったりすると、どこで問題起きてるかがわからない。
スタックトレースをエラー処理に組み込んでないってのが、JVM言語やってた人間からすると信じがたい。 軽量スレッドを使った並行並列処理する上で例外は相性が悪いからオミットされて代わりに値として扱ってるってのがまずあるね
Goが作られた最大の理由は効率よくマルチコアを利用するってのだし
Nodeみたいにシングルスレッドなのであれば例外も扱えることができるが
これを両立してる言語は存在しないね 実際、D言語にはGCがあるけど、LLVMを使ってるLDCでコンパイルすれば
C++にかなり近い実行速度になるし、GCはそんなに遅くない気はする >>759
Javaの場合はフレームワークもそれなりに重いからね >>754
別に書き換える必要はないと思うよ
新規で始めるならGoとかRust使った方が面白いのではないかと言うこと そもそもJavaとWebって相性が悪い
なぜならオブジェクト指向とWebの相性がそもそも悪いから
アホがOOPを意識して書くとオーバーエンジリアリングになりがちで、基本的に手続型の方が適してる
Spring Bootとか重厚すぎて終わってる
OOPが向いてるのはGUIとか
public static void mainとかアホじゃねーの public static final int countdown 違うと思う
相性が悪いわけではなかった
「今後必要になるプログラミング言語」を見てみると当時javaがどう思われていたのかが分かる >>756
「でも」の意味がわからなすぎて草
「Goじゃなきゃ非機能要件を満たせない」なんて、その言語がチューリング完全じゃないみたいじゃん
極論過ぎて言いたいことがぼやけてるぞ >>760
適当にするからでしょ。
そもそもその場で処理しているはずであって、スタックトレースに頼る実質超巨gotoな例外の方がどうかしてると思う。 メッセージ送信とかいう概念がwebと相性がいいのは分かる
その概念が何故オブジェクトの概念と密結合になってるのかが分からない >>772
理想はまぁそうなんだけどさ。現実そうでないコードがどうやっても紛れ込むんだから根性で解決とかは勘弁。 >>774
errcheckとか活用すればいいし、コーディングする際は必ず戻り値を確認すればいい
漏れやすいのは確かだけど、エラー表現が全く統一されてないC、C++に比べると圧倒的に楽なのは事実 Rustのエラー処理に慣れると他の言語使えんよ
anyhowとthiserrorのコンボこそあらゆるプログラミング言語のエラー処理のエデンと感じる DelphiとC#とTypeScriptの関係みたいなもんでしょ >>776
InvalidArgumentみたいな標準的なのを各レイヤーごとにいちいち自分で名前決めて定義しないといけないのはどうかと思う
プロジェクトがかわってもRust使ってる場合に標準的に使えるエラー型は用意して欲しい
まあanyhowレベルで浸透するならcrateの形でも提供でもいい let hoge
try {
hoge = maybeThrow()
} catch (err)
{
エラー処理
}
hogeをここで使用
スコープが分断されるのが嫌い
かといって全部try catchでまとめて囲むのも嫌だ それ以上の描き方思いつかないならそれで我慢しろとしか言いようがねえな try {
const hage = ......
// ここでハゲる
}
catch ..... 思いついてやったぞ
3項演算子みたいに書けるトライキャッチがあればいいんだろう なんでこっちにしなかったんだろう
スコープを考えたら絶対こっちの方が良いのに
try {
.....
catch (e) {
.....
}
} let hoge = maybeThrow() ? catch(err){
//エラー処理1
//エラー処理2
//エラー処理3
};
こういう見映えだとラムダ式に似てるだろ そうか?
case e => HogeException
case e => FugaException
みたいにすればすげーわかりやすい気がするが
この構文は前から俺が温めていたものだ
特に出す機会はないがw >>787
例外ってすげー祖先まで遡る事もあるって知らないの? stderrに文字を書き込んでexitしてもターミナルは終了しない
というマルチタスク的なUIを
シングルタスクで擬似的に再発明する機能がcatchだ
catchしなければ全部終了するから 多分岐を前提としたエラーハンドリングはクソだと思うわ
GoやTSみたいに基本一つで必要に応じてエラーハンドラの中で分岐でいい >>794
それ、エラーハンドリングの書き方の違いで結局多分岐じゃん スタックフレームを遡る時点でとんでもない副作用だから
今の時代にはふさわしくないわな 日本ではどっちもサッパリだけど海外だとZig>>>Nimだな
次スレはNim外してZigでよろしく 日本ではどっちもサッパリだけど海外だとZig>>>Nimだな
次スレはNim外してZigでよろしく やたらZig人気あるけど理解できん
構文もそんなにわかりやすいか? ZigはZenでケチついたけど、トラブルは片付いたのかね? >>794
ワロタw
問題の本質を分かってない
Go推奨してるやつの半分以上はこのレベルなんだよなぁ いつも通り
何か言ってそうで 何も言ってなくて
ワロタw >>794はJavaですら catch (IOException | SQLException ex) とか書けるのを知らないアホ >>810
それはまさにJavaのcatchが多分岐を前提にしているからこそ必要になった構文だよね
後から追加されたってことは実際に多くの人が「多分岐を前提としたエラーハンドリングはクソ」と感じていたということでしょ
バカにされたからって無理筋でつっかかるなよみっともない 本質を選択する
本質に集中する
メンバーを書かなければ中身のないただの箱になる >>811
いや
多分岐は全然オッケーだけどまとめたい時もあるよねというだけ そもそも多分岐を前提としてないエラーハンドリングなんてないからw >>814
多分岐を想定してるのと多分岐が大前提でデフォなのはデザインの志向としては全然違うでしょ
例えばGoの言語仕様をデザインする上でそりゃ多分岐のエラーハンドリングを想定していないわけはないけど、結果としてエラーの多分岐に対する第一級のサポートは何もない スマン、こいつの言ってる多分岐のエラーハンドリングってはいったいどういうコードなのか誰かエスパーしてくれんか。 そもそも「多分岐」ってワードが聞き慣れないので
話が耳に入ってこない
自分で言葉作っちゃうやつと議論してもムダに終わる >>816
catch (〜) {
}
catch (〜) {
}
...
みたいなのじゃね?
こっちの方が中でifするよりネストが減ってエレガントだよね >>818
tryのネストがあるだろ。
ネストの深さだけでいうとifのほうがどちらかというと分があるんじゃね。
Goのエラー処理は、そもそも大域脱出したいとかスタックトレースをたどらないといけないような呼び出し階層の深いコード書くなというメッセージ的な側面もありそう。 >>819
tryのネスト?
try {
try {
...
こんなコード書く人居る?????? まあ呼び出し階層を削減しろって意見は分からんでもないが
それはエラーハンドリングとは別ベクトルの問題だろ Webで型なんかいるか?
型チェックしてエラーになっても死ぬのは許されないから
適当にごまかす処理を書くしかない
厳密なチェックしてもかえって厄介であんまり意味ないと思うんだよな >>826
俺はOption型強制ぐらいで十分だと思ってる IsやAsやtype switchやvalue switch使って
シコシコと手動でネストさせたコードを書かなきゃいけないのがクソじゃなかったらなんなんだろうな >>823
Typescriptは文法好きだけどこうやってあっという間にエコシステム入れ替わるから真面目なバックエンド、ビジネスでは使えんのよね
フロントはいつか総とっかえするからまあいいかって感じだけど 「シェルピンスキーのギャスケット」を描画する機会はあまり無いのでは extern "C" 以外のABIが意味不明 → 全部静的リンク → 一部変更があれば全部入れ替える 正直ここまでコンパイル前提にするならJSとの互換性なくても良くねーか?
開発者のレベルが上がってるし
そこはもう割り切ってやろうよ TypeScriptには変換後のJSに対してハックを入れない(ただしbabelを目的とする場合は除く)というポリシーがあるようで、
JSに対する後方互換性よりもそっちの方が重い足枷になっている >>829
新しいものが出てきたからってすぐに乗り換える必要はないんだぜ? >>834
新しく始めるときにあれ前とテンプレが違う、、、ってのが最悪なのよ すまん最近Blazor始めたけどTypeScript使うならC#使ったほうが良くね?って結論出てしまったわ
動的型付け言語だしオブジェクト指向だし作った人同じだし >>825
C#でいいもんなw
C#はバックエンドで使用可能だからハイブリット運用が楽
Node.jsとかいらんかったんや すまんなんか勢いで動的型付け言語って書いたけど静的型付けだったわ Blazorは面白いけど業務でお目にかかることはないだろう ふつうは用途によって使い分けると思うがBlazorとか言っているからWebアプリの話か。
UIフレームワークがRazorってところがネックだな。WPFなんかが使えたら喜んで乗り換えるんだが。 とは言ってもRazorしか使えない現状じゃあやっぱりReact+Typescriptだな。 素のhtml/cssだけでWebアプリ組むのはさすがに大変なんで。 >>845
?
ウェブコンポーネントの概念知らない? >React使う必要ある???
>ウェブコンポーネントの概念知らない?
この2つの質問はどう繋がっているんだろう? >>847
Reactを使う必要があるか?に対してHTML,CSSを使うのはめんどくさいからという問いが帰ってきたわけだな
それで俺はHTMLやCSSをゴリゴリ書く必要がないコンポーネント使えばよくね?
と返したわけだ >ウェブコンポーネントの概念知らない?
が
>それで俺はHTMLやCSSをゴリゴリ書く必要がないコンポーネント使えばよくね?
という意味だったと?
わかんねーよw まぁ伝わりづらかったのはすまんと思ってる
だがまぁ言いたいことは伝わったしいいや >>843
Razorも慣れると便利よ
Reactと違って直感的だしDIもサポートされてる うねいへの要望
・受け取りボックスの下の次ページと最終ページの間に次10ページと次100ページを追加する
・カードを選択した場合に、ピックアップ機能で絞り込んだ場合、絞り込み外をグレーアウトでなく非表示にする
・1つ1つ開封する機能に加えて、一斉開封機能を追加する
・開封したものがハロの場合、指定した機体に自動で合成する機能を追加する
開封を楽しむゲームじゃないんだから、ユーザの気持ちを考えて、ちゃんと利便性を上げるように! 0.1アップするのに10ヶ月かかったことから計算すれば
1 = 0.100.0 とすると
72年後くらい そんくらいは人月の威力でどうにかなるでしょ
作業者が10人だとすれば72年
100人で7年
700人だと1年
世界中から参加者を募ると爆速になる 「人月の威力 - 納期を短くする銀の弾丸」フレデリック・ブラックス 低位な階層のライブラリがそろえば、
高位階層のライブラリ開発・機能実装が捗り、
メジャーアップデートは目に見えて進むことであろう その前提条件はどうやって満たされるかと言うと、やっぱり集まる人数が増えるからじゃなかろうか もちろん、あらゆるプロジェクトに共通する事だが
「そうであったらいいなあ」という願望を含む >>729
流行ってないのは確かだが
流行れば良いってもんでもない 良い言語が流行るんじゃないんだ
流行った言語が良い言語なんだ なぜ流行ったかとするとやっぱり魅惑的な音の響きだな
つまり人前で堂々とパイパイと発音すること自体が主目的だ やっぱりキラーフレームワークやライブラリがないといかんね
大抵流行ったもんにはそういうのがつきもんや GCするなら思い切ってbetter pythonに舵を切っても良いと思うが
python使いならトランスパイラとか気にしないだろうし https://github.com/Naotonosato/Clawn
> メモリ管理
> Clawnはプログラム中の値の依存関係を静的に検証し、適切なタイミングでメモリの確保と解放を行うコードを自動的に挿入するメモリ管理機構を持っているため、プログラマがメモリについて意識する必要はありません。
>
> ただし、この機能は実験的で今後さらなる安定化及び最適化がなされる予定です。
次はClawn++でその次がDlawnかな?Clawn#かも
高校生だと思うんだけど勉強大丈夫なのかな?
開成中からどこ進んだんだろ? まあ確かにバックエンド、コンソール、Windowsデスクトップ、マルチプラットフォームならC#で良いと思う
でもフロントはやっぱReact使いたいんだわ
React.NETがあれば移行するんだけどねC#はXMLリテラルが無いから難しいだろうな >>877
XMLリテラルなんてJavaScriptにもないが。
JSXのことならあれプリプロセスで事前に単純な関数呼び出しに変換(たいていBabelで)してるだけだぞ?
<Foo><Bar attr1="test"/></Foo>
↓
React.createElement(Foo, null, React.createElement(Bar, {
attr1: "test"
}));
難しいもクソもない
プリプロセスなんだからあらゆる言語に同等なものを作れるだろう
価値を見出だされないないから作られないだけで >>878
プリプロセスで処理されるとか具体的な解析実装はどうでもよくて
TSXという言語の文法としてはあの要素はXMLリテラルとしか言いようがないだろう >>879
じゃXML使ったテンプレートエンジンじゃダメなの?
というかフロントでC#が使われないのはXMLリテラル()のあるなしの問題じゃないんだけどな
つまり>>877の
> でもフロントはやっぱReact使いたいんだわ
> React.NETがあれば移行するんだけどねC#はXMLリテラルが無いから難しいだろうな
だと、暗にC#にXMLリテラルが無いからC#でReactみたいに書けるReact.NETのようなものが出ないと言ってるようだが、
そうではなく単純にパフォーマンスとランタイムの容量の問題でやってないだけ(あるいはあるのかもしれないけど流行ってないだけ)だと思うよ
C#をフロントで動かすわけだから
知らんけどBlazorとかで挑戦したんじゃないの?
でも流行らなかったのは詰まるところこれでしょ rustはメモリリークを防ぐ事を目標とはしません。 メモリリークはRustにおいてはメモリ安全であることを意味します。 そもそも誰かが安全を約束した記憶がないぞ
まずは記録、次に記憶、最後に安全だ >>886
*メモリリーク除く
て書くべきだよなぁ。 問題は2種類ある
消してはいけない記憶を消すのは安全か?
記憶を消した方が得なのに記憶が残っているのは安全か? Rustならメモリーリークがあっても安心安全なんだよ メモリリークってメモリ安全ではないだろ
Rustのメモリ安全性に対する立場誤魔化しすぎやわ メモリリークって処理系が対処しうる脆弱性なのかね。
どんな言語使ってもそこはアプリケーション開発者の責任にせざるを得ない気がする。 メモリリークで迷惑すんのはOSやユーザなのに
何言ってんだ まぁよくあるのがイベントハンドラとかの登録解除忘れで
これはGCでも回収できないよね
そういう意味でもメモリリークは安全性に含まないという立場は妥当だと思うけど
(含めてもいいけど、そうすると全部の言語が不安全ということになるからあまり意味ない) それはリソースリーク。広義のメモリリークかもしれんが 言語処理系自身がどのように努力しても回収できないメモリリークは言語処理系自身のバグでしょ
イベントハンドラの登録解除はプログラマが努力すればリークは防げる
ただrustにはプログラマがどのように努力しても解放できないメモリリークが存在する
だからrustはメモリ安全ではない トロッコ問題も2種類ある
命に関わらないケースでじゃんじゃん犠牲者を出すタイプ
命に関わる時だけ突然必要悪や合理主義について語り出すタイプ メモリ安全性についてRustばかり注目されてるけど、Ponyも同等以上の安全性だよね
Ponyはアクターモデルで実現している >>901
アクターモデルの作り方わかってる?
アクターひとつひとつメッセージ待ち受けのループまわするだぜ?負荷が違いすぎるだろ Ponyはループで待ってんの?
普通はselectとか使うんでは? https://www.theregister.com/2022/11/11/nsa_urges_orgs_to_use/
> NSA は、組織が C や C++ などのプログラミング言語から、C#、Rust、Go、Java、Ruby、Swift などのメモリセーフな代替言語に移行することを奨励するガイダンスをリリースしました。
るるる、るびぃwwwww いつの間にかC++とか本屋で入門書すら売られてないんだよな >>907
でかい本屋しか売ってないね
しかも売れてなさそう まあ今から最初の言語としてC/C++選ぶのはかなりレアだろうししゃーないわな いやいや C や C++ は人気上位言語なので
入門書が売れすぎて品不足になっているだけ arduinoとかで使ってるCにちょっとC++要素が入ってる言語が丁度良い感じする >>912
基幹系・勘定系はJavaだけど
ウエブサイトのフロントエンジニアは今はなんだろ?
なんだかんだいってRubyかPHPだろ >>905
当然pselectのとこを見る。
お前は待ち受けループという言葉をどう思ってんだ? >>913
フロントはtypescriptがデファクトスタンダードじゃろ。
勘定系はCOBOLをJavaに書き写しただけのJOBOLだよ。クソ。 >>918
みずほが採用してるってことは、近寄ったらダメってことでは? >>916
epoll、kqueue、iocpを調べること。 >>916
うーん、確かにそういう意味ではループ回してるか。すまん、ビジーループでイベント待ってるのを想像してた。
グリーンスレッドにするにしても確かにメッセージポンプ的なのは回すわな。 リソース消費はともかく、各種安全性に関してはアクターモデルは強力だよ
MicrosoftがPonyに影響受けたveronaを公開して研究してるし C/C++ のメモリ管理を知ってて
手を抜くために別の言語を使うのは合理的だが
最初から C/C++ を知らなくて良いという結論にはならないな 知らなくていいだろ
んでCやったらアセンブリやれだろバカバカしい アセンブリからCよりも
パンチカードからアセンブリのほうがエポックメイキングだったよな
アセンブリとCはたいして変わらない
複数のターゲットCPUのためにそれぞれアセンブリ書きたくなかったから中間層ひとつ足しただけ アセンブラがマクロアセンブラに進化しただけで
それまでと大違いで、いたく感動したものだけどな
ましてC言語に触れた時はなおさら 今でもCが一番互換性高い言語になってるってのもなんか不思議な話だわな。 言語ランキング、首位Pythonが差を広げる中、新興言語でトップ20に入った注目株は?
https://atmarkit.itmedia.co.jp/ait/articles/2211/14/news050.html
TIOBE SoftwareでCEO(最高経営責任者)を務めるポール・ジャンセン氏は、「Rust」が2022年10月にトップ20入りし、11月も20位だったことに対し、次のように解説している(なお、Rustの過去最高順位は、2020年9月の18位)。
将来性のある新興プログラミング言語のほとんどは、ごく短い期間だけ脚光を浴びるものの、本当に流行することはない。われわれは『Kotlin』『Dart』『Julia』といった言語がTIOBEインデックスのトップ20に入るのを何年も待っているが、実現していない。そうした中で唯一の例外がRustのようだ。Rustの人気が上昇している主な理由は、速度と安全性のユニークな組み合わせにある。Rustの今後に要注目だ。 >>923
リソース消費をともかくで片付けるなよ
Rustみたいな低レイヤのプログラミング言語を語る上では全てといってもいい
Lispがなぜ理想で終わってて実用に向かないかと同じ。なんでも再帰で片付けられれば数学的には美しいが実用的ではない。 これJavaじゃなくてRustじゃないと速度面を犠牲にすることになるだろ
Rustがここで推奨されれば一気に覇権なんだが
米国家安全保障局、CやC++からメモリー安全性の高いJavaなどへの移行を推奨
https://japan.zdnet.com/article/35195997/ >>933
国家安全保障局なんだから、実績のある技術優先だわな。
Rustを推奨するのは実績できてからの話かと。 ここまでくるとfree ware潰しだろ
企業にハンドリングされてないコンパイラの存在を消そうとしてる >>933
ヌルポがあるJavaがメモリ安全とはこれいかに >>933
C#にすればいいのにMicrosoftからの強力なバックアップ受けれるのになぁ >>934
よく読んだらRustも推奨してるぞ
米国家安全保障局(NSA)は米国時間11月10日、ソフトウェアのメモリー安全性強化に向けたガイダンスを公開した。同機関はその中で開発者らに対して、ハッカーらによるリモートコード実行(RCE)をはじめとするさまざまな攻撃からコードを保護するために、C#やGo、Java、Ruby、Swift、Rustといったメモリー安全性の高い言語に移行するよう推奨している。 >>942
そしてこの中で低レイアのソフトウェアを開発できる言語はRustだけとなる >>944
なんの分野でもいいからオンリーワンというのは強いよね
メモリ安全性、低レイヤ、NSA推奨はRustだけ マルチスレッドデータ共有、結局mutexかactorで、stmでも実用的な速度を目指すとロック使ってるし、ロックフリーなstmやconcurrent revisionsみたいなのはなかなか実用に至らないね そもそもそんな細かい並列処理する?
Webだと、複数台に分散する必要がある程度に十分な数のリクエストがあるなら、CPUバウンドな処理をローカルで並列化する意味はほぼ無いからね ああ、もちろん画像処理みたいな単純に処理対象のデータ量が多いケースは別ね
でもその場合は並列処理といってもデータ並列なんで、結局ループを並列化してぶん回すだけであって>>946が期待してるような問題とはだいぶ違うよね 並列分散処理もいまや多岐に渡ってるから
ドメインによって問題が全く違うのよ
だから自分がしないからといって決めつけは良くない シングルスレッドのプロセスが、それぞれ複数のリクエストを処理するnginxは一定の成功をおさめた 決めつけてるんじゃなくて、実際のユースケースを知りたいんだ
反例も挙げずに人それぞれとだけ言われても、それこそ決めつけじゃないかな?
>>949はどんな並列処理してるのか教えてほしい 解きたい現実の問題がない計算方法がロックフリーかつ超並列可能でもしゃーねーからなぁ。 分野は違うけどニューラルネットワークとかも応用が見つかったから寂れてた分野が再び脚光浴びたわけで。 >>951
まず数値計算で使ってる
ゴリゴリの差分法(単なるクソでかい連立方程式)を解く
これを解くのに行列演算をするのだがこれにCUDAを使ってる
これはいわゆる「データ並列」
行列演算の個々の要素は完全に独立しているので並列処理が可能
GPUのグリッド、ブロック、スレッドを使った超並列処理をしている
次にそれらの計算を行うためのジョブキュー
これはグローバルに一つのキューがあって計算ジョブをエンキュー、デキューする必要がある
ここでキューの実装にロックフリーアルゴリズムいわゆるcompare and swapを使ってる
これを使うことでミューテックスにかかるコストをゼロにしながら高速にキューを処理できる
俺が普段並列処理をしている分野はこの程度だからしょぼいよ
分散環境の並列処理は分散サーバーに対してロックを取ったり
リーダー選挙問題などさらに上位の概念をしなきゃならんのでさらに難しい 目的が不明の仕様が最初から入っているのは仕様変更しないことが目的なんだろう
用途が判明してから言語仕様変更するのはJavaやGoのジェネリクスのようなパターン >>953
ディープラーニングは単なる応用じゃないぞ
リントンがやったことは応用じゃなくてブレークスルーだよ
しかもまだなぜそれがうまくいくのかわかっていないw >>956
応用とブレークスルーはべつに排他じゃないだろ >>959
sccacheを使うと少しマシになるかも 型推論を自動でするんじゃなくて手動でやればいい
明示するんだよ 次スレはZigとJai言語入れてください
Nimは引退で。 あとCarbonとCppfrontも入れて
SwiftとKotlinは引退で。 >>963
Carbonいるか?
誰も話題にしてないし、実際要らんと思う。 Carbonと聞いてもPHPの日時操作系のライブラリしか思い出さんわw RustとRubyは宣伝は凄いけど実力がイマイチだから、次スレからOUTで。 CarbonてObjective-CだかNeXTstepとかで聴いたようなMacのだっけ Zig製スクリプト言語buzz
これも入れよう
https://github.com/buzz-language/buzz
なんでクラス作る構文がObjectなんだろう? すまんみんなが確実に生き残ると確信した言語だけにせんか? zigにはstructはあるがclassがまだ無いので遠慮してobjectを使った
つまりzigには今後c++のようにclassが増える可能性がある
……あたりだと思われる Zigは一番残る可能性高そうだけどまだエコシステムがどうとかって段階じゃないし、消えてもおかしくはない
CarbonもGoogleはしれっと捨てそうだからChromeあたりに本格的に使われるようになるまでは信用し難いなぁ 型推論なんてビルド速度犠牲にしてまでやることじゃねーな。 Passerineも面白いから入れよう
まさに次世代言語だし >>958
Goのその仕様はわかりにくい上に使い勝手もよくないね
バグを引き起こしやすいから要注意だわ https://gigazine.net/news/20221117-github-top-programming-languages-2022/
GitHub上で使用されている2022年の最も使用されたプログラミング言語
1位:JavaScript
2位:Python
3位:Java
4位:TypeScript
5位:C#
6位:C++
7位:PHP
8位:シェルスクリプト
9位:C言語
10位:Ruby
2022年に前年比での使用率が最も増加したプログラミング言語
1位:HCL(成長率56.1%)
2位:Rust(成長率50.5%)
3位:TypeScript(成長率37.8%)
4位:Lua(成長率34.2%)
5位:Go(成長率28.3%)
6位:シェルスクリプト(成長率27.7%)
7位:Makefile(成長率23.7%)
8位:C言語(成長率23.5%)
9位:Kotlin(成長率22.9%)
10位:Python(成長率22.5%) Hclとはなにか
なぜ C 言語が上がっているのか Luaって名前はごく稀に聞くけど名前が可愛い言語のイメージしかないな Rustたかが50行程度のWebAPI作るだけでアホみたいな量の依存ライブラリをダウンロードしてコンパイルくそ時間かかるごみ
なんで正規表現、base64、hash、urlエンコードとかやるためにいちいちサードパーティのライブラリ入れないといけないの
これぐらい標準ライブラリで用意したらどうなの WebAPIは例に挙げただけで
あらゆるアプリで大量の依存ライブラリを必要としてクソビルド遅いのがゴミって言ってるんだが
ハッシュbase64正規表現なんてなんでも使うだろ >>982
Rust は
> 正規表現、base64、hash、urlエンコード
なんてものを使わない用途にも使われるからね 他の言語には当たり前にある内容だけど使わなければ当然バイナリには含まれないぞ
その辺用意してないのはただの怠慢でしかない
仕事で使う以上脆弱性対応やバージョンアップが面倒だからRustは論外だな
そもそもコンパイル言語じゃなくてスクリプト言語が流行った理由はコンパイルが遅すぎで生産性悪いからだし
Rustは遅すぎるからイライラするわな なんの目的でRustを検討してるのかしらんけど、
Rustはシステムプログラミング言語で、最大の競合はC/C++だよ
元々C/C++のような低水準言語を使ってたわけじゃないのなら、Rustが代替になれる可能性は低い システムプログラミング言語なわけだから
それこそ、正規表現なども
言語自身でいい感じで実装する底力があるはずだ C/C++の方が明らかに書く速度は速くなるよ
適当に書いても動くから >>986
> そもそもコンパイル言語じゃなくてスクリプト言語が流行った理由はコンパイルが遅すぎで生産性悪いからだし
君は一生スクリプト言語使ってなさいw 文句あるならWebはGoかJVM系いっとけという感じはあるな。
それだと到達できないパフォーマンスを求めて初めてRustの出番。
とはいえ最近は初手Rustでもそこまで困らない下地ができてきた感はあるね。 >>986
sccacheを使うと改善されるかもね
検索してみな ライブラリの維持管理問題はRustの最大の弱点
crate探しやアップデートの負荷を軽くする仕組みはみんな求めてる >Scudo hardened allocator, HWASAN, GWP-ASAN, and KFENCE on production Android devices
すげえC++安全性ツールの進化と成果だな。
もうRust要らないな。 このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 80日 19時間 44分 57秒 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php レス数が1000を超えています。これ以上書き込みはできません。