X



次世代言語29 TypeScript Swift Go Kotlin Rust Nim
■ このスレッドは過去ログ倉庫に格納されています
0002デフォルトの名無しさん垢版2022/09/17(土) 19:07:37.22ID:5PJHomtk
C++は三年ごとに改定されるので常に次世代言語です。
0003デフォルトの名無しさん垢版2022/09/17(土) 19:09:04.07ID:nFJbShxf
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などをはじめとする
複数の言語のエネルギー効率を相対的に示した研究結果を紹介している。
0004デフォルトの名無しさん垢版2022/09/17(土) 19:15:28.09ID:5PJHomtk
俺の感想では、Rustはゴミだけどな。
0005デフォルトの名無しさん垢版2022/09/17(土) 19:16:07.28ID:PsPhq2bV
>>2
多くの言語が機能強化してるからそこはあまり意味がない
C++はポンコツ土台に増築工事を何度も重ねていて質がよくない
C++は過去資産しかメリットが亡くなっている
>>3でAWSが新規システムにC++を使わなかったのもメリットが既に何もないため
0006デフォルトの名無しさん垢版2022/09/17(土) 19:18:43.58ID:5PJHomtk
>>5
あーごめん聞いてなかった。
0007デフォルトの名無しさん垢版2022/09/17(土) 19:18:58.28ID:atFLdkbV
お待たせしました(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認証級(仮)の実績積み上げがないと、言い出すのも怖い😩
0008デフォルトの名無しさん垢版2022/09/17(土) 19:20:10.63ID:607aMy6Q
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  金融機関方面では既存システムで根強い それ以外は衰退しました
0009デフォルトの名無しさん垢版2022/09/17(土) 19:22:27.44ID:5PJHomtk
たしか開発者もRustはゴミと認めてなかったっけ。
反省点を踏まえて新言語を作るので期待してくれとか言ってたような。
0010デフォルトの名無しさん垢版2022/09/17(土) 19:24:13.73ID:9njT45J7
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
0011デフォルトの名無しさん垢版2022/09/17(土) 19:25:42.16ID:kPDe7Hj+
欧米企業「最初のバージョンは常に捨てられる」
    「アイデアは価値がない、アイデアを誰より早く形にして価値がある」
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「安全です 常識💀🙈🙉🙊」🆕

※ジョーク集です。「未確認」表示の有無に関わらず真偽を保証するものではありません。
0013デフォルトの名無しさん垢版2022/09/17(土) 19:28:33.83ID:5PJHomtk
>>5
で、なんだったっけ?
0014デフォルトの名無しさん垢版2022/09/17(土) 19:30:31.00ID:5PJHomtk
Goはすでに実用になってるので、次世代から新世代へ格上げかもしれん。
0015デフォルトの名無しさん垢版2022/09/17(土) 19:31:11.58ID:bQ4OxUjV
GoogleやMicrosoftがRust言語でOS開発
https://xtech.nikkei.com/atcl/nxt/column/18/00692/042700054/

【脆弱性の70%がメモリー管理バグに起因】
GoogleによればAndroidに存在した深刻なセキュリティー脆弱性の70%近くがメモリー安全に関するバグに起因するという。
同様にMicrosoftも、同社製品に存在したセキュリティー脆弱性の70%がメモリー安全に関するバグに起因すると述べている。
C/C++を使う限りセキュリティー脆弱性を根絶するのは不可能と考えて、Rustを採用するに至ったというわけだ。
0016デフォルトの名無しさん垢版2022/09/17(土) 19:33:06.93ID:8assD4qG
>>1-11


>>9
それなら「反省点リスト」を整備・公開したほうがいいと思うけどなぁ。
Rustはすでにビジネスになっているからそんなことしないだろうけど。
0017デフォルトの名無しさん垢版2022/09/17(土) 19:41:09.59ID:5PJHomtk
>>16
知ったかぶってしまいました。
0018デフォルトの名無しさん垢版2022/09/17(土) 19:54:28.59ID:3w7tQPkF
>>15
そのメモリ管理バグが引き起こしているセキュリティ脆弱性の根絶ができる新たな言語がRustしか登場しないのはなぜだろう
今世紀になってからも色んな言語が誕生してきたけどリスクを残す手動メモリ管理のままか戦力外のGCへ逃げるか両極端しかない気がする
現在求められている要件をRustしか満たしていないためにRustが唯一解となり採用されていってる感じだ
0020デフォルトの名無しさん垢版2022/09/17(土) 20:16:48.13ID:Z2rSXL0e
前スレのこれ
「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での循環参照、メモリーリークのことを考慮すると ちょっと話は変わるんじゃない?
0022デフォルトの名無しさん垢版2022/09/17(土) 20:25:47.68ID:pdrl4Ikl
>>19
Rustでは禁忌の循環参照を除きメモリリークすることは絶対にない。
一般的に、循環参照を解放するにはコストが非常に高いトレーシングGCを用いるしかないため、
高速性が求められる言語では循環参照を作らずにツリー構造+弱参照という形にする。
0024デフォルトの名無しさん垢版2022/09/17(土) 20:31:42.43ID:F49YQPus
rustはエラーメッセージがc++より親切
0025デフォルトの名無しさん垢版2022/09/17(土) 20:34:45.17ID:E0C8fvLs
>>23
コードを読めないのか?
わざわざ複雑なことをして自分で循環させてるじゃん
自然には循環参照が起きないことの証明となっている
0027デフォルトの名無しさん垢版2022/09/17(土) 20:37:43.52ID:yoERXsay
数のstackoverflow v.s. 質のJetBrains

stackoverflow
https://insights.stackoverflow.com/survey/2021#section-most-popular-technologies-programming-scripting-and-markup-languages

jetbrains
https://www.jetbrains.com/lp/devecosystem-2021/ruby/
https://www.jetbrains.com/lp/devecosystem-2021/rust/
https://www.jetbrains.com/lp/devecosystem-2021/go/

Ruby https://i.imgur.com/zqmf96u.png お一人様 7% ほとんどの人が仕事で使っている
Rust https://i.imgur.com/olB9F6L.png お一人様 86% ほとんどの人が個人の趣味
0028デフォルトの名無しさん垢版2022/09/17(土) 20:45:40.72ID:eg8z8VIG
会社や客先の方針で無理やり使わされるプログラミング言語と違って
個人的な趣味で自由に言語を選べる状況でも使われるRustはやっぱりプログラミングがしやすいため?
0030デフォルトの名無しさん垢版2022/09/17(土) 20:56:06.27ID:/MEkW9dR
ヌルポインタには解放前も解放後もないわけで
生ポインタの解放後メモリ利用というのはポインタがヌルではないから深刻なバグになる

弱参照は解放後は絶対にヌルになる(絶対に解放されるとは言ってない)

生ポインタと弱参照を比較するのが正しい
それ以外の比較は誤解を助長している
0033デフォルトの名無しさん垢版2022/09/17(土) 21:16:27.18ID:TKBxI3h2
Rustのやり方は賢面白くて賢いなあと思った

①まずRustでは言語仕様からNullポインタ(Null参照)を排除
➁従来のNullポインタ相当を使いたいときはenum Option型のNone値を使用
③None値はポインタ(参照)とは全く別の型だからそのまま使えば型エラーにできる
④しかしOption型はenumすなわちタグ付きだから毎回メモリが無駄に使用される??と思ったら
⑤言語仕様上Nullポインタを完全に排除したのでNone値を示すために生成コードではNullポインタを使える

概念上の安全性と生成コードの効率性を分離して両立させているんだな
0034デフォルトの名無しさん垢版2022/09/17(土) 21:18:59.74ID:F49YQPus
C23の話は無いのか?
0038デフォルトの名無しさん垢版2022/09/17(土) 21:35:45.30ID:taDdn0lF
Rustではポインタだけでなく数値もNonZeroXxx型が各サイズ用意されたね
例えばOption<NonZeroU64>型はu64型と同じ64bitで表現されNoneの時に値0
従来の言語でのプログラミングでゼロ値を特殊扱いで値が無いことを意味させていたケースも安全に扱えるみたい
0039デフォルトの名無しさん垢版2022/09/17(土) 21:46:11.34ID:vONeYgK2
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の果たしていた役割を綺麗に代替できており、非常に良くできていると感じました。

潜在的ターゲット層は それなりにありそうだ
0040デフォルトの名無しさん垢版2022/09/17(土) 21:53:11.57ID:aNLH35VS
C++とRustが難しいって単なるバカなんだろ
まとまな企業がZigを使うようになることはありえないな
0043デフォルトの名無しさん垢版2022/09/17(土) 22:15:29.24ID:gU/Uk4Er
>>42
興味深い
>tscをGoに移植する作業は、Vercelがスポンサーとして資金を提供しています。
VercelってSvelteも囲い込んだな

あとRustのままだとお金出なかったのか
0044デフォルトの名無しさん垢版2022/09/17(土) 22:32:25.64ID:SnY0M+Bf
規模ねぇ
ripgrepにはお世話になってるけど、tscとかに比べたら規模も大きいとは言えないだろうし。
0045デフォルトの名無しさん垢版2022/09/17(土) 22:50:28.88ID:5PJHomtk
>>15
これは凄いなあ。
メモリーアクセスをコンパイラが管理するRustでは、出来ないのでは?
0046デフォルトの名無しさん垢版2022/09/17(土) 22:51:25.05ID:5PJHomtk
C++は熟練するとやりたいことが全てできるようになる。
制限フリー。
0047デフォルトの名無しさん垢版2022/09/17(土) 23:02:39.03ID:caFhGbeO
>>38
ゼロ値を特殊扱いするケースってほぼ名義尺度だから直和型(あるいはenum)で十分じゃね?
算術演算できるような値の場合は負の値を特別扱いすることが多いような
0048デフォルトの名無しさん垢版2022/09/17(土) 23:06:01.91ID:XaNIN122
>>45-46 tsc-rust中止の tsc-goの教訓で言うと「向いてない」
このスレ的には「軍事予算級じゃないと不可能」

>>15 このスレの住人が書きそうな口調で笑った
こんな記事を 聖書のように毎回持ち出してたのかw

> 周期的な可変参照を持っています。
原文
> cyclical mutable reference
Circular reference(循環参照)の事言ってるのか?
0049デフォルトの名無しさん垢版2022/09/17(土) 23:09:44.26ID:5PJHomtk
>>47
C++は、トレイツやコンセプトで自由に出来るね。
さらに一歩進んでコンパイル時に3Dモデルの静的レンダリングやってる人も居たね。
おっそろしほど何でもできる。
制限フリー。
0050デフォルトの名無しさん垢版2022/09/17(土) 23:12:09.98ID:rfXB8s8a
>>42
それ大規模だからできなかったのではなく単なるそのまま移植だからしなかったんだよ
そこでの選択肢はそのRustで作製して62倍速となったプロトタイプをそのまま完成させていくか
お手軽に同じGC言語へ文法や言語依存部分だけ書き直すかのどちらかの選択
速さよりもお手軽かつたまたまスポンサーが付いた方を選んだ
ライバルが出現したり利益に直結しないならいくら遅くても構わない
あと今までが遅すぎたから僅かな速度向上でも喜ばれる
0051デフォルトの名無しさん垢版2022/09/17(土) 23:15:13.11ID:XaNIN122
>>50
> Rustで作製して62倍速となったプロトタイプ
Bun(Zig) vs deno(Rust)について一言🎤
0052デフォルトの名無しさん垢版2022/09/17(土) 23:19:18.85ID:VYLVWvRi
>>51
その件は言語は全く関係ない
Node.js(by C++)がそれらの中で一番遅い原因はC++が遅いためか?
違うだろ
0053デフォルトの名無しさん垢版2022/09/17(土) 23:19:47.08ID:5PJHomtk
>>48
>>15 を確認せず適当に答えるけど、書き込める記憶域を予測可能な周期性でアクセスすると、それが(攻撃者が知りたい情報を読み取れるような)脆弱性となる。

・ユーザーが同じ操作を繰り返すなどの理由で、先ほどと同じサイズの記憶域をアロケートし、また開放することを繰り返す。
・同じサイズであるがゆえに、システムは先ほど解放されたばかりの記憶域を効率よく返してしまう。

これを防ぐために、返却された記憶域をすぐには使わず、一時退避させる。
ということでは?
0054デフォルトの名無しさん垢版2022/09/17(土) 23:21:47.17ID:5PJHomtk
>>52
いや、それはC++が悪いであろう。
なぜならC++は光の速度を超えるために作られたのだから。
反省してC++26に反映するべし。
0055デフォルトの名無しさん垢版2022/09/17(土) 23:27:38.60ID:5PJHomtk
C++において、コンパイル時定数(constexpr)は、コンパイル時計算が適用される。
したがって、コンパイル時定数としてデータを渡すなら、コンパイル時に3Dオブジェクトのレンダリングを完了してしまえるということである。
もちろん、3Dに限らず制限フリーです。
そんな道楽にうつつを抜かすのがC++黒魔術部です。
入部に特別な条件はありません。
さああなたも今日から黒魔術士を目指しましょう。
0056デフォルトの名無しさん垢版2022/09/17(土) 23:29:58.26ID:RB3RigiG
>>52 二枚舌が捗ってるね
素直に Bun vs node vs deno -> 速度 Zig > C++、Zig > Rust
tsc-rust vs tsc-js -> 速度 Rust > javascript
なのでは
0057デフォルトの名無しさん垢版2022/09/17(土) 23:33:02.02ID:5PJHomtk
>>56
二枚舌って、安倍元総理生き返ったの?
統一教会やるじゃん。
0058デフォルトの名無しさん垢版2022/09/17(土) 23:35:54.87ID:P9I9DZHJ
>>55
おまえさん初心者なんだな
コンパイル時確定定数をコンパイル時に算出できるプログラミング言語くらいいくらでもある
0059デフォルトの名無しさん垢版2022/09/17(土) 23:37:52.85ID:ECgAkAfZ
>>57 おやおや
Rust無理筋上げが逆効果だと気づいて
C++無理筋上げに応用しようとしているMAUI/C#erですか?
0060デフォルトの名無しさん垢版2022/09/17(土) 23:39:34.68ID:5PJHomtk
C++ならconstexprは0秒実行です。
なぜならコンパイル時に計算が終わっているからです。
これは凄いです。

プロシュート兄貴も言っています。
> 「計算する」と心の中で思ったならッ!
> その時スデに計算は終わっているんだッ!
> 「計算した」なら、使ってもいいッ!
まさにC++です。
0061デフォルトの名無しさん垢版2022/09/17(土) 23:42:17.56ID:5PJHomtk
ペッシ「分かったよプロシュート兄ィ!!兄貴の覚悟が!“言葉”でなく“心”で理解できた!」
0063デフォルトの名無しさん垢版2022/09/17(土) 23:47:37.11ID:g/OWYbYT
>>60
コンパイル時に計算を終わらせるくらいなら君の大嫌いなRustでもできるし凄いことでも何でもない
0064デフォルトの名無しさん垢版2022/09/17(土) 23:48:30.63ID:5PJHomtk
>>62
その御方は私ではないけれど、私は本名を名乗ってインターネッツしてるので、身バレも糞もないのですよ。
ツイッターもフェイスブックも本名アカウントで認証バッジもついております。
0065デフォルトの名無しさん垢版2022/09/17(土) 23:55:34.21ID:5PJHomtk
キミの限界は、きみ自身にあるんじゃない。
言語の限界が君の限界を決めるのだ。
さあC++で限界を超えろ!
0066デフォルトの名無しさん垢版2022/09/17(土) 23:56:40.04ID:5PJHomtk
Just do it!!
0067デフォルトの名無しさん垢版2022/09/17(土) 23:57:14.61ID:5PJHomtk
ハァハァ、興奮して鼻が膨らんできた(笑
0068デフォルトの名無しさん垢版2022/09/18(日) 00:01:22.70ID:BY+z9QuY
>>60
C++は単なるimmutableをconstで表すため
本当の定数つまりコンパイル時定数をcostexprで表さざるを得なくなっちゃってるよな

Rustではconstがコンパイル時定数だからわかりやすい
もちろん同様にコンパイル時に関数を呼んで計算させて定数をコンパイル時点で算出確定させることができる
0069デフォルトの名無しさん垢版2022/09/18(日) 00:05:06.77ID:a87PubfG
>>68
だめだ!それじゃあダメなんだッ!
「本当の定数がある」じゃないッ!!!
俺たち黒魔術部員ならッ!「ファッ!??」「実行時定数が無いのッ!?」
と考える!!!!
0071デフォルトの名無しさん垢版2022/09/18(日) 00:11:17.78ID:XVqHa/Kg
コンパイル時計算は理屈上はJITの方が有利でしょ
実行時の統計に基いて頻出パターンを事前計算するとかできるからな
0072デフォルトの名無しさん垢版2022/09/18(日) 00:13:17.20ID:a87PubfG
>>71
よし、その理論をC++26へ提案する栄誉を貴様に与えよう。
0073デフォルトの名無しさん垢版2022/09/18(日) 00:15:59.99ID:ds+slurx
>>48
それは単にVercelの人の能力がないのでは?
rustcはRustで書かれてるんだしコンパイラは得意分野なんだけど
なんで実装できないなんて判断をしたのか謎すぎる
0075デフォルトの名無しさん垢版2022/09/18(日) 00:39:41.33ID:ds+slurx
Vercelの人のブログ見たけどtscをそのまま移植しようとしたのか?
流石にそれは無理でしょ
typecheckerの仕様だけリバースエンジニアリングして
その仕様をrustで実装するようにしないと
あらゆるオブジェクトが参照であるtypescriptのコードを移植するとか流石にそんなことをやる発想が微妙
0076デフォルトの名無しさん垢版2022/09/18(日) 00:42:56.71ID:ds+slurx
確かにGoならあらゆるオブジェクトを参照にできるし
クロージャもあるしそのまま移植するのには向いてるかもな
0077デフォルトの名無しさん垢版2022/09/18(日) 01:08:52.24ID:NvpAysHg
元のtscのコードの多くの部分がガベージコレクションに依存していると書いているから
それらを治して本格的に高速にする道を選ぶか
サボって同じGC言語へ移植する道を選ぶか
今回は後者にしただけだろう

普通にある一般的なケースでは
システムに何らかの限界が来て新たな設計をする機会で他の言語にする
何もかもほぼそのままで言語だけ変える特殊なケースならばGC言語の範囲内の中で選ぶしかない
世界中の人々が今後も使い続けるものならば非GC言語へ移植する価値もあるとは思うが
0078デフォルトの名無しさん垢版2022/09/18(日) 01:28:43.72ID:ds+slurx
tscが遅いからそれより早いトランスパイラを作るという目的なら別にGoでも良い気はするね
ただどこかで踏ん張ってRustに移植するという作業は人類にとっても価値があると思うけどね
0079デフォルトの名無しさん垢版2022/09/18(日) 01:30:28.35ID:ds+slurx
GC言語使って参照を持ち放題で問題ないって
それってプログラマがデータ構造とメモリレイアウトを正確に理解していない
つまり副作用を追跡できないことを意味する
でかいコードベースでその状態はかなりまずいよ
0080デフォルトの名無しさん垢版2022/09/18(日) 01:36:10.67ID:ds+slurx
副作用を追跡できないからテストコードを書く必要が出てくる
参照と書き換えの制限はテストコードも不要にする
tscを再設計する時が来てる
0081デフォルトの名無しさん垢版2022/09/18(日) 01:40:45.22ID:GdQa7W3N
>>79
GC言語はプログラム設計やその中のデータ構造設計が酷くてもなんとなく動いてしまいがち
もちろんバグは発生しやすくなるしデバッグしにくいしメンテもしにくいし機能追加や改善など大変
非GC言語が苦手な人や難しいという人はそのあたりのデータ構造含めたプログラム設計をきちんと出来ていないダメな人
0082デフォルトの名無しさん垢版2022/09/18(日) 01:42:28.72ID:ds+slurx
>>81
困ったら適当に参照持たせたら終わりだしな
しかもそれを書き換えたりもする
めちゃくちゃだよな
0083デフォルトの名無しさん垢版2022/09/18(日) 07:35:50.11ID:0NeU1sXt
じゃあここにいるRust玄人たちでRust使ってtsc作り直せよ
Vercelの人は能力不足だとかほざいちゃってるし
0085デフォルトの名無しさん垢版2022/09/18(日) 08:09:37.13ID:AdQM9ytP
>>39-41
このコンボで精神崩壊したのか。
それで>>84でUber disやら深夜のVercel dis

GAFAMのやらかしなんてキリがない 二枚舌が捗ってる
0087デフォルトの名無しさん垢版2022/09/18(日) 08:27:50.32ID:2mHUQDo2
前スレ >GCで良ければGC言語使えば良いよ

Google >Rustで良ければRust使えば良いよ

Google >Rust使えないから Carbon始めました
0089デフォルトの名無しさん垢版2022/09/18(日) 09:08:02.19ID:3N6sN2Xv
>>86
Carbon公式FAQを読みなさい
If you can use Rust, ignore Carbon
とのサブタイトルから始まりRustの方が良いと書かれている
Carbonは既存C++コードのための存在
0090デフォルトの名無しさん垢版2022/09/18(日) 09:09:29.57ID:MnGgqwog
Google >Rustで良ければRust使えば良いよ

Google >Rust使えないから Carbon始めました

まんまじゃねーか
0092デフォルトの名無しさん垢版2022/09/18(日) 09:23:45.71ID:NszbSvOd
CarbonはC++に強く依存したプロジェクトのためのものなので、そうじゃないならRustを使え、
とわざわざ書いてあるんだな
0093デフォルトの名無しさん垢版2022/09/18(日) 09:29:02.34ID:u3D6XzAD
Google >Rustで良ければ Rust使えば良いよ

Google >Rust使えないから Carbon始めました

まんまじゃねーか
0094デフォルトの名無しさん垢版2022/09/18(日) 09:30:03.67ID:tyxU6yRV
RustはRustに強く依存したプロジェクトになるという欠点があるからな。
Rusteseはそれが狙いなんだろうけど。
0096デフォルトの名無しさん垢版2022/09/18(日) 09:59:36.68ID:7lE3L7eF
>>95
GoogleはRustを使いまくっていて
AndroidとLinuxがRust導入することになったのもGoogleの強いRust推しがあったためだよ
一方で既存のC++によるシステムは次に大規模システム改変があるまではこのまま使い続けたいけど
C++には問題が多すぎるからCarbonでそれまで延命するっていう話だよ
■ このスレッドは過去ログ倉庫に格納されています

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