次世代言語27 Nim Zig Pony Carbon Gleam (308レス)
1-

258: (ワッチョイ c767-NzXl) 2024/04/29(月)22:47 ID:6wHhtPFS0(1) AAS
死んでるの?
俺の中では同系統のコンセプトに対抗できてる言語が一切見られないので Rust 一強な勢いなんだが。
259: (ワッチョイ 2501-b/g4) 2024/06/08(土)08:52 ID:SAkY8LF70(1) AAS
Zigのリリースサイクル早いね、もう0.13.0がリリースされた
260: (ワッチョイ a575-eRYk) 2024/07/08(月)21:11 ID:EaEf11Cm0(1) AAS
待望の新言語

生成AIに疑似コードで指示すると自然言語よりも効率的にプログラムが生成できるというアイデアから生まれた、生成AI用の疑似言語「SudoLang」
外部リンク[html]:www.publickey1.jp
261: (ワッチョイ 1b16-tQMZ) 2024/07/09(火)01:43 ID:SMbKjjog0(1) AAS
本末転倒だろ
262
(2): (オイコラミネオ MM1b-qpqo) 2024/09/01(日)15:29 ID:f0nFMo6oM(1) AAS
RustがCより速くなるベンチマークは見たことがないです

NimのORCは明示的にオブジェクトプールを使ったプログラミングが必要ですが
ベンチマークがCより2倍以上速くなって、特にハードなリアルタイムシステム向け
のチューニングもできるようになっているようです
外部リンク:zenn.dev

NimがCより2倍以上速くなって、しかもORCでメモリ安全も担保されているなら
Rustを使う意味がなくなると思うのですが、このベンチマークは本当なのでしょうか?
263: (ワッチョイ eaad-voeu) 2024/09/08(日)01:45 ID:Hh5CAE6t0(1) AAS
>>262
nimは一旦cに変換してコンパイルするので、cより早くなる事はないです。

ベンチマークで早くなっているのは、メモリプールを使っているからです。
(個別にヒープメモリを確保するのではなく、大きなブロックで一度に確保して
自分で割り当てを管理しているから)

私もcでメモリプールを実装した事がありますが、ヒープのメモリ確保のコスト
は以外と大きくて、一括で確保するのはパフォーマンスの面で効果が大きいです。
またこのメモリプールの部分は自前でメモリ管理しているため、ORCとは関係が
ないです。(参照リンク元の記事の意図は、ORCと手動管理が混在できる事を
利点としているかと思います)

Rustは詳しくないのですが、おそらくこのレベルの実装は可能だと思うので、
同じように実装すれば同程度の速度向上になるかと思います。
(ただし一括メモリ確保->個別データに強制castが必要で安全性は落ちる)

参照リンク元の記事は、メモリプールのような低水準のコードでもNimは高い
可読性で書く事ができると言いたいのでは。(手動確保したメモリをdestroy定義
で自動解放できる所とか)
264: (ワッチョイ f9df-BHET) 2024/09/08(日)07:43 ID:vegiTRtO0(1) AAS
>>262
>ベンチマークがCより2倍以上速くなって
という記述は見当たらないけど

> NimがCより2倍以上速くなって、しかもORCでメモリ安全も担保されているなら
> Rustを使う意味がなくなると思うのですが、このベンチマークは本当なのでしょうか?
「メモリプールが速い」は本当だろう
「Cより速い」は、そもそもそんなことを書いてないのでダウト
Rustは分からんけどGCが無いぶんNimよりは有利なのでは
265: (アウアウエー Sadf-D2eP) 2024/10/02(水)13:03 ID:XbzwGALZa(1) AAS
RustがNimより速い訳がない
266
(1): (ワッチョイ ffad-4whB) 2024/10/03(木)12:29 ID:gQlcDFcc0(1) AAS
nim 2.2.0 リリース
久しぶりに速度をはかるとかなり高速化されているようだ。
単純なフィボナッチ計算45桁で実測
-d:releaseコンパイルで約26%, -d:dangerで約33%高速化している。
(実際の高速化はこの一つ前のバージョン2.0.10でされている)
267: (ワッチョイ 6f9f-xlWa) 2024/10/03(木)13:32 ID:/N1KY/IS0(1) AAS
実用コードでそこまでの差はないだろうけど
チェックの省略やTCOが上手になったのかな
Cコードで差分とってみてほしい
268: (ワッチョイ ffad-4whB) 2024/10/05(土)02:05 ID:dycfQkyl0(1) AAS
266です。

nimから出力されたCコードの差分を取った所、違っていた箇所は以下の2点でした。
?メイン処理に入る前のnim側の初期化処理(関数名が変わっている)
?フィボナッチ関数内のresult変数の0初期化
※gccのコンパイルオプションも全く同じ

特に高速化に繋がる変更はなく、なぜ早くなるのか不明でしたが、色々と試して
上記?が原因と分かりました。

nimのresult変数の初期化が入る事で、gcc側のコンパイル最適化で高速化
しているようです。
試しにnim2.0.8でresult変数を0初期化した所、nim2.2.0と同じ処理速度
が出る事が確認できました。
(フィボ関数内の先頭でresult変数を0初期化し、以降の算出値をresult変数に
格納するように変更した)
269: (ワッチョイ 231f-olmx) 2024/10/05(土)14:35 ID:tOSXTi2h0(1) AAS
>>266
Nimの場合はバックエンドに使うCコンパイラの最適化能力も実行速度に影響します。Nimのバージョン間の実行速度を比較するときにCコンパイラのバージョンを同じにしていますか?
面倒でなければCコンパイラの出力するアセンブリコードを読むと何故result変数を0初期化することが処理速度に影響するかわかると思います。
--passC:"-S"というコンパイラオプションをNimに渡すとnimcacheディレクトリにアセンブリコードが出力されます。
270: (ワッチョイ caad-6k2q) 2024/10/06(日)13:25 ID:yuNPVtUj0(1) AAS
>Nimの場合はバックエンドに使うCコンパイラの最適化能力も実行速度に影響します。Nimのバージョン間の実行速度を比較するときにCコンパイラのバージョンを同じにしていますか?

当然同じ環境です。choosenimでバージョン切り替えて確認してます。

私の疑問点は解消しましたし、gcc側の最適化内容まで追うつもりはないので、私の方の検証はこれで終了とします。
271: (ワッチョイ 3901-c8YC) 2024/10/26(土)14:10 ID:lE9emaTH0(1) AAS
Zig言語で開発したターミナルエミュレータだってさ

ミッチェル・ハシモト氏の個人開発によるターミナルエミュレータ「Ghostty 1.0」、12月に正式リリース予定。オープンソースとして公開へ
2024年10月25日
外部リンク[html]:www.publickey1.jp
272: (スプープ Sdbf-hCSs) 2024/11/29(金)13:35 ID:cbzvCkJwd(1) AAS
Crystalとかわりと新しめな言語っぽいけど次世代言語としてはあんま価値はない感じ?
273: (ワッチョイ 9f1c-ksDR) 2024/11/29(金)14:06 ID:kgssLEYJ0(1) AAS
対立煽りに荒らし尽くされて過疎ってるだけだから気にせんと何でも書いてってや
274: (ワッチョイ 7702-cdGy) 2024/11/29(金)18:48 ID:KH+D4ATv0(1) AAS
やはり、実際に採用されたプロダクトが出てくる頻度で見ると、Zigが頭一つ抜けてるな
275: (ワッチョイ 6208-Dngz) 2024/12/03(火)00:07 ID:SdCS4Rrb0(1) AAS
zigをCコンパイラもどきとして扱うのはよく見るけどzig言語の採用例ってあんまり多くなくない
276
(1): (ワッチョイ 96b3-jW52) 2024/12/03(火)06:50 ID:hGt3IOpB0(1/3) AAS
時雨堂もZig撤退しちゃったしなぁ
277
(1): (ワッチョイ 4502-WFUB) 2024/12/03(火)07:04 ID:JOdYPQk60(1/2) AAS
>>276
マジかよ
それはショックだな
278
(1): (ワッチョイ 967c-jW52) 2024/12/03(火)07:13 ID:hGt3IOpB0(2/3) AAS
>>277
非同期の仕様が全然決まらないかららしい
本家はLLVMに変わるコンパイラバックエンドに注力してるみたいだけど
そんなことより言語仕様とか標準ライブラリやったほうがいい気はする…
279: (ワッチョイ 4502-WFUB) 2024/12/03(火)07:40 ID:JOdYPQk60(2/2) AAS
>>278
本家は今のCの適用範囲をそのままZigで置換することを目指していて
範囲外にある非同期に関心薄いのはしょうがないのでは
280: (ワッチョイ 2af5-jW52) 2024/12/03(火)08:12 ID:13VhrJJT0(1) AAS
Cの適用範囲ってのが残ってるのかちょっと疑問はある
Rust for Linuxの騒動でも感じたけどCにこだわりのある人はC以外に移行しないと思う
移行してもいいって人はすでにRustなりに行ってる可能性高いし

組み込み系は残ってるけど認定コンパイラ必須だからハードル高いし
そもそもユーザ増えないと認定にお金出してくれる会社も現れないんだよな
281: (ワッチョイ a64d-5eKh) 2024/12/03(火)21:49 ID:FXu9rGH00(1) AAS
zigは結局メモリ安全じゃないからね
ならcでいいってなるね
282: (ワッチョイ 96b4-jW52) 2024/12/03(火)23:16 ID:hGt3IOpB0(3/3) AAS
zigは未使用変数がエラーになるとか今風の言語っぽく厳しい部分もC好きな人には合わなさそう
283: (ワッチョイ 7b5d-XATa) 2024/12/24(火)09:41 ID:Q1P/mCXL0(1) AAS
待望の新言語

WebAssemblyに特化した言語「MoonBit」のコンパイラがGitHubで公開
外部リンク[html]:www.publickey1.jp
284: (ワッチョイ 61f0-nFNZ) 2024/12/27(金)17:23 ID:G1CfTzeH0(1) AAS
記述言語OCamlじゃん‥
285: (ワッチョイ bbab-XATa) 2024/12/27(金)17:30 ID:ETOuh+5m0(1) AAS
Haxeを想起させる
286: (ササクッテロロ Spef-JlZ7) 2024/12/28(土)18:36 ID:6/sbywh9p(1) AAS
今更言語特有の変な記号とか覚えたく、ない
287: (ワッチョイ 2b01-ZJIG) 2024/12/28(土)18:41 ID:TMKvqX8o0(1) AAS
そもそもWebAssemblyをテキスト形式に書きゃいい
わざわざ別言語を挟む必要なし
1-
あと 21 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.018s