!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
スレタイ(順番はRedMonk準拠)以外の言語もok
前スレ
次世代言語26 TypeScript Swift Go Kotlin Nim
https://mevius.5ch.net/test/read.cgi/tech/1655771266/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
次世代言語27 Nim Zig Pony Carbon Gleam
1デフォルトの名無しさん (ワッチョイ c35f-St8y)
2022/08/05(金) 09:40:50.22ID:/hLfNpmA031デフォルトの名無しさん (ワッチョイ 422c-GRcq)
2022/08/14(日) 19:43:04.36ID:H+Dty+yM0 可変長配列とか文字列型などの必要なメモリ量が実行時に決まるものや
関数やブロックのスコープと変数の寿命が対応しないもの(GCで管理されるオブジェクト)などはヒープ使うしかないでしょ。
けどローカル変数などをヒープに置くと効率悪いし。
関数やブロックのスコープと変数の寿命が対応しないもの(GCで管理されるオブジェクト)などはヒープ使うしかないでしょ。
けどローカル変数などをヒープに置くと効率悪いし。
32デフォルトの名無しさん (ワッチョイ 4201-8lLW)
2022/08/14(日) 19:55:23.52ID:osAuRY7C0 >>29
ハードウェアスタックがないマシン(汎用機とか)もあるから実装依存なのは確かだけどそういうマシンでもソフトウェアでスタック作ってるので実装としてはたいして変わらん
ハードウェアスタックがないマシン(汎用機とか)もあるから実装依存なのは確かだけどそういうマシンでもソフトウェアでスタック作ってるので実装としてはたいして変わらん
33デフォルトの名無しさん (ワッチョイ 422c-GRcq)
2022/08/14(日) 19:58:39.91ID:H+Dty+yM0 >>30
関数の外にある変数やstatic変数はstatic storageというプロセスが生まれてから死ぬまで存在し続ける領域に置かれるよ。
詳しくはdata segmentとかbssとかで検索してね。
static変数は値を保持し続けないといけないからスタックに置けないし、
関数の外にある変数は複数の関数から共有されるのでコンパイル時かリンク時にアドレスが決まってないといけないと思うのでおそらくスタックに置けない。
関数の外にある変数やstatic変数はstatic storageというプロセスが生まれてから死ぬまで存在し続ける領域に置かれるよ。
詳しくはdata segmentとかbssとかで検索してね。
static変数は値を保持し続けないといけないからスタックに置けないし、
関数の外にある変数は複数の関数から共有されるのでコンパイル時かリンク時にアドレスが決まってないといけないと思うのでおそらくスタックに置けない。
34デフォルトの名無しさん (アウアウウー Saa5-xzlL)
2022/08/14(日) 20:34:35.63ID:d/RE/iMKa C++の定石としてオブジェクトはスタックに置くのが基本だよ
デストラクタを動かしたいからね
ヒープにデータを割り当てたい時は構造体やクラスでラップするのが基本
デストラクタを動かしたいからね
ヒープにデータを割り当てたい時は構造体やクラスでラップするのが基本
35デフォルトの名無しさん (ワッチョイ adda-TI6p)
2022/08/14(日) 20:39:54.05ID:lDco67Nc036デフォルトの名無しさん (スプッッ Sd62-IWzR)
2022/08/14(日) 20:50:39.49ID:/dHI52Jsd 可変長配列に限って言えばCは一応VLAがある
11からオプションだけど
11からオプションだけど
37デフォルトの名無しさん (ブーイモ MMb6-Rl2g)
2022/08/15(月) 08:38:26.95ID:qDRL1WTlM >>34
スマポ使えばいいだけだからそれはない
スマポ使えばいいだけだからそれはない
38デフォルトの名無しさん (アウアウウー Saa5-xzlL)
2022/08/15(月) 13:39:10.26ID:SFJl5V0da39デフォルトの名無しさん (ワッチョイ 027c-5Ix7)
2022/08/15(月) 15:41:07.32ID:qHbAfBQi0 スマートポインタwって正直使う必要殆ど無いのに
全てのインスタンス生成で使うバカがいるよねw
全てのインスタンス生成で使うバカがいるよねw
40デフォルトの名無しさん (ワッチョイ 4201-8lLW)
2022/08/15(月) 16:32:14.78ID:zxOEKBbO0 今時生ポインタでイキルバカが出てくるとはw
41デフォルトの名無しさん (ワッチョイ e9e6-xzlL)
2022/08/16(火) 18:56:36.29ID:1oXHhIiq0 スタックに確保されるのがポインタなのかクラスや構造体の実態なのかをちゃんと理解してない人が多すぎるね
コンパイラとかコンピュータアーキテクチャの勉強すべき
そこを避けてたら絶対に使いこなせない
コンパイラとかコンピュータアーキテクチャの勉強すべき
そこを避けてたら絶対に使いこなせない
42デフォルトの名無しさん (ワッチョイ 027c-5Ix7)
2022/08/16(火) 19:04:37.29ID:JSsOGCvC0 そもそもスタックやらヒープやらちゃんと意味が分かっている奴って
アセンブラレベルで組んだことがあるとかじゃないと
知らなくても仕方ない気がするなぁ
アセンブラレベルで組んだことがあるとかじゃないと
知らなくても仕方ない気がするなぁ
43デフォルトの名無しさん (ワッチョイ 460f-U+eq)
2022/08/16(火) 19:50:02.47ID:RYKZv1s10 使いこなす必要は無くて、理解が足りなくてもやりたい事が出来れば、それで良いと思うよ。
44デフォルトの名無しさん (アウアウウー Saa5-xzlL)
2022/08/17(水) 15:25:42.74ID:DfCxGnRFa 理解してなくてやりたいことができるってそれはたまたま動いてるか
その機能が必要ないことをやってるだけ
壁が来た時ぶち当たって手遅れになる
最近スクリプト言語系のエンジニアがRustとかのモダン言語で苦しんでるのを見ると
何が理解できてないのか?を理解することってのはすごく大事
その機能が必要ないことをやってるだけ
壁が来た時ぶち当たって手遅れになる
最近スクリプト言語系のエンジニアがRustとかのモダン言語で苦しんでるのを見ると
何が理解できてないのか?を理解することってのはすごく大事
45デフォルトの名無しさん (ワッチョイ 3104-GRcq)
2022/08/17(水) 16:47:04.91ID:hcUDPGl30 Compiler explorerとかでコードがどんな風に最適化されてアセンブリ言語になるか読んでみるといいかもね。
スタックに割り当てられたローカル変数はレジスタに割り当てられる場合はあるけどグローバル変数やヒープにある変数はかならずメモリ上におかれるから毎回メモリからレジスタにロードして値を計算してからメモリにストアされる。
スタックに割り当てられたローカル変数はレジスタに割り当てられる場合はあるけどグローバル変数やヒープにある変数はかならずメモリ上におかれるから毎回メモリからレジスタにロードして値を計算してからメモリにストアされる。
46デフォルトの名無しさん (ワッチョイ ed7c-n+Ky)
2022/08/17(水) 17:41:05.70ID:J/baCQNr0 最適化でキャッシュの考慮や制御までするんだから
volatileないと実際どうなるかはわからんとちゃうかな
volatileないと実際どうなるかはわからんとちゃうかな
47デフォルトの名無しさん (ワッチョイ 9901-5Ix7)
2022/08/17(水) 17:53:10.26ID:cnWCAZlk0 Rustやるなら当然アセンブラが理解できないとってことだね
メモリ安心安全のためには必要なコストだよね
メモリ安心安全のためには必要なコストだよね
48デフォルトの名無しさん (ワッチョイ 9901-U+eq)
2022/08/17(水) 20:56:42.47ID:9RiCNb2+0 プログラム書くのが本業の人なら、どうやってプログラムが動くのか知らなきゃっていうのは分かるけれど、プログラムば手段であって、コピペでも何でも良いから欲しい結果が得られるなら良いって人もいるから。
それで、Rustがそんな人に合わせる必要はないし、そんなのはPython辺りに任せて、Rustはプロフェッショナルの道具でいいんじゃないの?
それで、Rustがそんな人に合わせる必要はないし、そんなのはPython辺りに任せて、Rustはプロフェッショナルの道具でいいんじゃないの?
49デフォルトの名無しさん (ワッチョイ dd5f-FS65)
2022/08/17(水) 21:08:17.88ID:3noakHYk0 それでいいよ
あっちのスレの空気持ち込まないでくれ
あっちのスレの空気持ち込まないでくれ
50デフォルトの名無しさん (ワッチョイ adda-TI6p)
2022/08/17(水) 22:39:10.52ID:SgLVBpM30 >>47
アセンブリ知ってて損することはないけど、必須な知識ではないよ
スタックやヒープの区別について分かっていればよくて、理解のための手段のひとつとしてアセンブリが提案されているだけ
他の手段で理解できるならそれで良い
Cを使いこなすのにアセンブリの知識が必須ではないのと同じ
アセンブリ知ってて損することはないけど、必須な知識ではないよ
スタックやヒープの区別について分かっていればよくて、理解のための手段のひとつとしてアセンブリが提案されているだけ
他の手段で理解できるならそれで良い
Cを使いこなすのにアセンブリの知識が必須ではないのと同じ
51デフォルトの名無しさん (ワッチョイ 79f0-mhOm)
2022/08/17(水) 23:44:30.76ID:C+o8slGL0 書いたコードがどんな機械語になってるか、確認してない層が一定数存在するって事?
周りに居たら嫌だなぁ
周りに居たら嫌だなぁ
52デフォルトの名無しさん (ワッチョイ a5a4-n+Ky)
2022/08/18(木) 00:15:49.61ID:uPozsGij0 どんなバイナリになるかイメージはするけど確認なんてしないだろ
最適化ビルドするとまるで想像通りじゃなくてびびったりはする
最適化ビルドするとまるで想像通りじゃなくてびびったりはする
53デフォルトの名無しさん (ワッチョイ 827c-Z8r5)
2022/08/18(木) 00:23:55.46ID:K1uqUAUE0 >>52
だよね。
だよね。
54デフォルトの名無しさん (ワッチョイ e9e6-xzlL)
2022/08/18(木) 01:11:39.51ID:yLDzsouG055デフォルトの名無しさん (アウアウウー Saa5-oUG4)
2022/08/18(木) 11:25:09.48ID:p/limWqpa https://www.kinokuniya.co.jp/f/dsg-01-9784797337952
ISBN 4797337958
ISBN 4797337958
56デフォルトの名無しさん (ワッチョイ e9e6-xzlL)
2022/08/18(木) 12:21:45.00ID:yLDzsouG0 >>55
これはまあまあおすすめ
ただ32bitCPU時代に書かれた本なのでそこが微妙なのと
理論的なものがほとんどなく構文解析もJavaCC使ってるし
コード生成も毎回演算結果をスタックにpushするようなことをやってた気がする
allocaも自前で実装するし
ただCのような言語をアセンブリ言語へコンパイルするための勉強としては悪くない
これはまあまあおすすめ
ただ32bitCPU時代に書かれた本なのでそこが微妙なのと
理論的なものがほとんどなく構文解析もJavaCC使ってるし
コード生成も毎回演算結果をスタックにpushするようなことをやってた気がする
allocaも自前で実装するし
ただCのような言語をアセンブリ言語へコンパイルするための勉強としては悪くない
57デフォルトの名無しさん (アウアウウー Saa5-oUG4)
2022/08/18(木) 14:58:14.10ID:qt1eMpHHa 著者はruby厨
racc使う予定だったらしい
racc使う予定だったらしい
58デフォルトの名無しさん (ワッチョイ e936-4eON)
2022/08/18(木) 21:22:03.04ID:1X5HVpNn0 intel ISAのドキュメントがオレオレ用語多くて意味わからん
59デフォルトの名無しさん (ドコグロ MM4f-06yp)
2022/09/05(月) 00:54:15.45ID:cFc+MJ1wM あげ
60デフォルトの名無しさん (ワッチョイ 5f7c-eJ3+)
2022/09/05(月) 01:08:51.55ID:9iTWKe040 nimも早くnull安全にしてくれないかね。
61デフォルトの名無しさん (ワッチョイ 0701-Jj1I)
2022/09/05(月) 01:34:04.91ID:ARttffD10 ドラゴンブックを見て一つ一つ実装していくのが良いですよ。
誤植が猛烈に多いのも練習問題のような気がしてきますよ。
誤植が猛烈に多いのも練習問題のような気がしてきますよ。
62デフォルトの名無しさん (テテンテンテン MM8f-jyuF)
2022/09/05(月) 08:15:38.43ID:HWNfM8e/M63デフォルトの名無しさん (ワッチョイ 5f4b-Iguz)
2022/09/05(月) 22:33:29.07ID:1hFtemgL064デフォルトの名無しさん (ワッチョイ 4704-Ka/N)
2022/09/06(火) 04:20:51.68ID:6xx96XME0 Not nil annotationはversion2.xで使えるようになるらしいよ。
https://github.com/nim-lang/RFCs/issues/437
https://github.com/nim-lang/RFCs/issues/437
65デフォルトの名無しさん (テテンテンテン MMff-jyuF)
2022/09/06(火) 08:29:06.48ID:AHhd6ypaM >>64
not nil がデフォルトになるとあるね。
not nil がデフォルトになるとあるね。
66デフォルトの名無しさん (ワッチョイ 5f4b-Iguz)
2022/09/06(火) 13:26:12.50ID:3wQQbwTr067デフォルトの名無しさん (テテンテンテン MM8f-jyuF)
2022/09/08(木) 12:38:55.89ID:H4D+Re2GM スタックフレームて大抵の実行環境で使用されているのに、スタックフレームに特化した言語て無いよね。
なんでなんだろう?
なんでなんだろう?
68デフォルトの名無しさん (ワッチョイ 4704-Ka/N)
2022/09/08(木) 17:28:20.37ID:cKTVDYCV0 世の中のほとんどのプログラムにはヒープメモリが必要だからでしょ。
実行時じゃないとサイズがわからないことがあるし、スタック上に動的にメモリ領域を確保できるようにするとかなり大きめにスタックを確保しなくてはならくなるだろうし。
実行時じゃないとサイズがわからないことがあるし、スタック上に動的にメモリ領域を確保できるようにするとかなり大きめにスタックを確保しなくてはならくなるだろうし。
69デフォルトの名無しさん (ワッチョイ e7da-ZIhe)
2022/09/08(木) 18:05:59.15ID:U6/gufpm0 スタックフレームに特化した言語ってどういうものを想定してるの?
Forthみたいなスタック指向の言語とは違うよね
Forthみたいなスタック指向の言語とは違うよね
70デフォルトの名無しさん (ワッチョイ 5fe0-InTp)
2022/09/08(木) 18:22:30.25ID:ydRaiFc90 実CPUのスタック操作なんて仕様にいれたら足枷だしね
関数のABIとは別に仮想的なローカルスタックを扱えるかんじ?
関数のABIとは別に仮想的なローカルスタックを扱えるかんじ?
71デフォルトの名無しさん (ブーイモ MM8f-W2iS)
2022/09/08(木) 18:50:48.63ID:11l7kxGRM >>69
COBOL++でしょ
COBOL++でしょ
72デフォルトの名無しさん (テテンテンテン MM8f-jyuF)
2022/09/08(木) 19:36:15.16ID:gDKj2SJwM >>69
スタックフレームならではの特性をコードに明記できる、といったイメージ。
例えばスタックにあるインスタンスしか受け付けない(参照)引数とかあれば、shared ptrとかunique ptrの参照渡しも安全に使える。
Rustがそこそこいい感じなんだけど、なんか中途半端。
スタックフレームならではの特性をコードに明記できる、といったイメージ。
例えばスタックにあるインスタンスしか受け付けない(参照)引数とかあれば、shared ptrとかunique ptrの参照渡しも安全に使える。
Rustがそこそこいい感じなんだけど、なんか中途半端。
73デフォルトの名無しさん (ブーイモ MM8f-W2iS)
2022/09/08(木) 21:06:39.94ID:g68A8C0LM >>72
Rustなら実用上はCopyで十分
Rustなら実用上はCopyで十分
74デフォルトの名無しさん (ワッチョイ 0701-Iguz)
2022/09/08(木) 22:22:15.01ID:D8Erj63H0 >>73
rustの話は向こうのスレでお願い
rustの話は向こうのスレでお願い
75デフォルトの名無しさん (ワッチョイ bf8c-jyuF)
2022/09/09(金) 07:32:44.98ID:v1OYGNdb0 >>73
そういうのが中途半端だと言っている。日本語も読めないのかよ。
そういうのが中途半端だと言っている。日本語も読めないのかよ。
76デフォルトの名無しさん (ワッチョイ a95f-Yvh5)
2022/09/16(金) 11:26:01.87ID:eTFy07in0 800 デフォルトの名無しさん sage 2022/09/15(木) 23:09:10.28 ID:KFRYW2wo
次スレはこれらの言語を入れてください
Zig
https://ziglang.org/ja/
Jakt
https://github.com/SerenityOS/jakt
次スレはこれらの言語を入れてください
Zig
https://ziglang.org/ja/
Jakt
https://github.com/SerenityOS/jakt
77デフォルトの名無しさん (ワッチョイ a563-jxjI)
2022/09/16(金) 11:34:21.79ID:CoCetj5m0 Jaktは知らないな
どんな処理系かな
どんな処理系かな
78デフォルトの名無しさん (ワッチョイ a563-FZWc)
2022/09/16(金) 11:58:16.96ID:CoCetj5m0 パッと見の構文はRustソックリ
borrow checkerはなく、代わりにARCを使って実行時にメモリ管理しようとしてるっぽい
なんでRustやZig使わないんだろうと気になったけど、自作したSerenityOSのためのエコシステムはできるだけすべて自作したい、くらいの動機みたい
参考: https://awesomekling.github.io/Memory-safety-for-SerenityOS/
まあZig未満のドマイナー言語にとどまりそう
borrow checkerはなく、代わりにARCを使って実行時にメモリ管理しようとしてるっぽい
なんでRustやZig使わないんだろうと気になったけど、自作したSerenityOSのためのエコシステムはできるだけすべて自作したい、くらいの動機みたい
参考: https://awesomekling.github.io/Memory-safety-for-SerenityOS/
まあZig未満のドマイナー言語にとどまりそう
79デフォルトの名無しさん (ワッチョイ a563-FZWc)
2022/09/16(金) 12:01:00.82ID:CoCetj5m0 書き忘れた
jaktはC++へのトランスパイラ、ってのも特徴
SerenityOSはC++で作ってたから、C++トランスパイラにすれば移行しやすかったってことだろう
jaktはC++へのトランスパイラ、ってのも特徴
SerenityOSはC++で作ってたから、C++トランスパイラにすれば移行しやすかったってことだろう
80デフォルトの名無しさん (アウアウウー Sa5b-8eP5)
2022/09/18(日) 13:44:05.76ID:KpBP36NGa トンズラパイラに観えた
81デフォルトの名無しさん (ワッチョイ 1e66-JEMU)
2022/09/28(水) 19:48:23.69ID:Tun9Z/EC0 Nim追加
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))
Nim(clang) 0.211 1.171 2.245 4.372 4.2MB (CustomCountTable,LTO,ARC,caller-hash) New
C(gcc) 0.136 1.146 2.271 4.531 2.0MB (optimized.c,binary IO,jemalloc,O4,LTO)
C(clang/LLVM) 0.137 1.147 2.280 4.544 2.0MB (optimized.c,binary IO,jemalloc,O3,LTO)
Go 0.152 1.233 2.428 4.832 3.9MB (caller hash,better loop)
Go 0.164 1.346 2.654 5.279 3.8MB (caller hash)
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)<--マルチスレッド
Nim(clang) 0.218 1.255 2.401 4.691 4.2MB (CustomCountTable,LTO,ARC) 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)
Rust(LLVM) 0.214 1.725 3.396 6.715 3.5MB (optimized,fxhash,O3,LTO)
Nim(clang) 0.316 2.241 4.371 8.633 4.2MB (optimized.nim,std/CountTable,65536,LTO,ARC,FNV) New
Nim(clang) 0.332 2.387 4.652 9.152 4.2MB (optimized.nim,std/CountTable,65536,LTO,ARC) New
zig 0.10.0-dev/gcc 12.2.0/clang 15.0.0/Nim 1.6.8/go go1.19.1/rust 1.64.0
CPU Zen3@boost~4.75GHz
https://github.com/benhoyt/countwords
https://mevius.5ch.net/test/read.cgi/tech/1663409149/529,450,461,478
今回の検証では、「C」は定点観測用として固定。
Nim/CustomCountTableはinc呼び出しの引数string copyを抑制。
Nimが想像より遥かに速くて「Cと同程度」以上の結果が出た。
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))
Nim(clang) 0.211 1.171 2.245 4.372 4.2MB (CustomCountTable,LTO,ARC,caller-hash) New
C(gcc) 0.136 1.146 2.271 4.531 2.0MB (optimized.c,binary IO,jemalloc,O4,LTO)
C(clang/LLVM) 0.137 1.147 2.280 4.544 2.0MB (optimized.c,binary IO,jemalloc,O3,LTO)
Go 0.152 1.233 2.428 4.832 3.9MB (caller hash,better loop)
Go 0.164 1.346 2.654 5.279 3.8MB (caller hash)
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)<--マルチスレッド
Nim(clang) 0.218 1.255 2.401 4.691 4.2MB (CustomCountTable,LTO,ARC) 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)
Rust(LLVM) 0.214 1.725 3.396 6.715 3.5MB (optimized,fxhash,O3,LTO)
Nim(clang) 0.316 2.241 4.371 8.633 4.2MB (optimized.nim,std/CountTable,65536,LTO,ARC,FNV) New
Nim(clang) 0.332 2.387 4.652 9.152 4.2MB (optimized.nim,std/CountTable,65536,LTO,ARC) New
zig 0.10.0-dev/gcc 12.2.0/clang 15.0.0/Nim 1.6.8/go go1.19.1/rust 1.64.0
CPU Zen3@boost~4.75GHz
https://github.com/benhoyt/countwords
https://mevius.5ch.net/test/read.cgi/tech/1663409149/529,450,461,478
今回の検証では、「C」は定点観測用として固定。
Nim/CustomCountTableはinc呼び出しの引数string copyを抑制。
Nimが想像より遥かに速くて「Cと同程度」以上の結果が出た。
82デフォルトの名無しさん (ワッチョイ 6bf0-rqSc)
2022/10/09(日) 07:33:11.55ID:alq59Sy20 検証 https://blog.fascode.net/2021/10/24/try_julia/
Language 10^5 10^6 Comment
----------------------------------
C++(clang) 0.032 1.029 (O3,LTO,vector,fastmod)
Nim(clang) 0.033 1.031 (O3,LTO,Seq,fastmod)
Nim(gcc) 0.041 1.339 (O4,Seq,fastmod)
C++(gcc) 0.042 1.502 (O4,vector,fastmod)
以下、fastmodではない
Odin(LLVM) 0.073 3.784 (o:speed,[dynamic]int)
Nim(clang) 0.074 3.784 (O3,LTO,Seq)
C++(clang) 0.074 3.785 (O3,vector)
Cython(clang) 0.089 3.797 (O3,libcpp.vector)
Nim(gcc) 0.083 4.410 (O4,Seq)
C++(gcc) 0.085 4.412 (O4,vector)
Zig(LLVM) 0.083 4.410 (OReleaseFast,ArrayList)
Julia(LLVM) 0.254 4.583 (JIT,O3,Int[])
Python(Numba) 0.602 5.236 (JIT,list[int])
PyPy 0.162 7.046 (JIT,list[int])
Cython(clang) 0.696 39.603 (O3,list[int])
Python 1.187 75.740 (list[int])
https://odin-lang.org/
https://github.com/lemire/fastmod
zig 0.10.0-dev/gcc 12.2.0/clang 15.0.2/Nim 1.6.8/Odin dev-2022-10-nightly/
julia 1.8.2/Python 3.10.7/PyPy 7.3.9/Cython 0.29.32/numba 0.56.2
CPU Zen3@boost~4.75GHz
Language 10^5 10^6 Comment
----------------------------------
C++(clang) 0.032 1.029 (O3,LTO,vector,fastmod)
Nim(clang) 0.033 1.031 (O3,LTO,Seq,fastmod)
Nim(gcc) 0.041 1.339 (O4,Seq,fastmod)
C++(gcc) 0.042 1.502 (O4,vector,fastmod)
以下、fastmodではない
Odin(LLVM) 0.073 3.784 (o:speed,[dynamic]int)
Nim(clang) 0.074 3.784 (O3,LTO,Seq)
C++(clang) 0.074 3.785 (O3,vector)
Cython(clang) 0.089 3.797 (O3,libcpp.vector)
Nim(gcc) 0.083 4.410 (O4,Seq)
C++(gcc) 0.085 4.412 (O4,vector)
Zig(LLVM) 0.083 4.410 (OReleaseFast,ArrayList)
Julia(LLVM) 0.254 4.583 (JIT,O3,Int[])
Python(Numba) 0.602 5.236 (JIT,list[int])
PyPy 0.162 7.046 (JIT,list[int])
Cython(clang) 0.696 39.603 (O3,list[int])
Python 1.187 75.740 (list[int])
https://odin-lang.org/
https://github.com/lemire/fastmod
zig 0.10.0-dev/gcc 12.2.0/clang 15.0.2/Nim 1.6.8/Odin dev-2022-10-nightly/
julia 1.8.2/Python 3.10.7/PyPy 7.3.9/Cython 0.29.32/numba 0.56.2
CPU Zen3@boost~4.75GHz
83デフォルトの名無しさん (ワッチョイ 6bf0-rqSc)
2022/10/09(日) 07:34:33.26ID:alq59Sy20 感想:
Juliaは確かに速いが、他との比較は最適化オプションしだい。
動的配列/リストのベンチになるかと思ったが、やってみたらgccが振るわない。
原因はmodulo計算の最適化の違い? https://godbolt.org/z/T7bKK14fr
ZigはLLVMのmodulo最適化をトリガー出来なかったか。
OdinはLLVM AOTコンパイラとしての性能を引き出せている(今回は)
まだ言語機能の特徴をつかんでいないが、映画、ゲームグラフィックス分野で使う様な
ライブラリが最初から入っているのが売り?
Nimは殴り書きとか、書き捨てとか、簡潔に書けて、gcc/clangの速い方を選べて、
fastmodの様なC++「header only」のライブラリを手軽に利用できるのが良い。
Cythonも慣れたらNimと同じように出来るのだろうか。
Juliaは確かに速いが、他との比較は最適化オプションしだい。
動的配列/リストのベンチになるかと思ったが、やってみたらgccが振るわない。
原因はmodulo計算の最適化の違い? https://godbolt.org/z/T7bKK14fr
ZigはLLVMのmodulo最適化をトリガー出来なかったか。
OdinはLLVM AOTコンパイラとしての性能を引き出せている(今回は)
まだ言語機能の特徴をつかんでいないが、映画、ゲームグラフィックス分野で使う様な
ライブラリが最初から入っているのが売り?
Nimは殴り書きとか、書き捨てとか、簡潔に書けて、gcc/clangの速い方を選べて、
fastmodの様なC++「header only」のライブラリを手軽に利用できるのが良い。
Cythonも慣れたらNimと同じように出来るのだろうか。
84デフォルトの名無しさん (ワッチョイ 074b-kHT+)
2022/10/09(日) 11:10:02.48ID:hHOnLIUR0 並べるときは速度の早い順で書いて下さい
85デフォルトの名無しさん (ワッチョイ d9f0-ofdD)
2022/10/31(月) 12:29:04.61ID:RFzpfvk70 「Python 3.11」がリリース、4年で5倍の高速化を目指す「Faster Cpython」計画が始動
https://forest.watch.impress.co.jp/docs/news/1451751.html
200万ドル程度と見積もられる資金はMicrosoftが協力
参考
Faster-Cpython Microsoft
Pyjion Microsoft
Cinder Instagram/Facebook/Meta
GraalPy Oracle
Pyston Dropbox->pyston-lite
Ruby3 3倍速->rya
https://forest.watch.impress.co.jp/docs/news/1451751.html
200万ドル程度と見積もられる資金はMicrosoftが協力
参考
Faster-Cpython Microsoft
Pyjion Microsoft
Cinder Instagram/Facebook/Meta
GraalPy Oracle
Pyston Dropbox->pyston-lite
Ruby3 3倍速->rya
86デフォルトの名無しさん (ワッチョイ 8901-HLP5)
2022/10/31(月) 13:03:53.85ID:4lYEr6WH0 Rust「…」
87デフォルトの名無しさん (ワッチョイ e5f0-FFna)
2022/11/13(日) 10:14:16.92ID:lA0JSaU/088デフォルトの名無しさん (ワッチョイ 234b-H0Ic)
2022/11/13(日) 17:19:42.67ID:vYboHCwy089デフォルトの名無しさん (アウアウウー Saa9-FFna)
2022/11/14(月) 11:28:56.72ID:EWF0SvAna >Nimが想像より遥かに速くて「Cと同程度」以上の結果
Nimが速いのはトランスパイラだからな
Nimが速いのはトランスパイラだからな
90デフォルトの名無しさん (ワッチョイ c34b-TaOI)
2022/11/19(土) 20:53:35.05ID:7QNjN12J0 Nimの実行速度はGCCと同等と思って良い
91デフォルトの名無しさん (アウアウウー Sa5b-tkFl)
2022/11/28(月) 15:07:09.33ID:6X8/W5dUa 他人が比較したやつを載せるんじゃなくてお前が比較したやつ載せろよ
92デフォルトの名無しさん (JP 0Hcf-RPwI)
2022/11/28(月) 17:49:52.29ID:SIJnWXGqH なら >>91 が 比較しろ
93デフォルトの名無しさん (アウアウウー Sa5b-tkFl)
2022/11/28(月) 18:00:59.49ID:6X8/W5dUa 何でやねん
94デフォルトの名無しさん (ワッチョイ ffcf-ykd8)
2022/11/28(月) 18:40:44.25ID:LDNjf6uN0 今更だけど、スレタイが前スレとは違う言語だらけで
マイナーなのをウォッチする別スレかと思ってたわ
マイナーなのをウォッチする別スレかと思ってたわ
95デフォルトの名無しさん (ワッチョイ b7a4-O5Hl)
2022/11/29(火) 00:59:42.07ID:QobrmxBH0 TypeScript、Go、Swift、Kotlinって次世代でも何でもなく普及しきってる現役言語で、それぞれ言語別のスレが伸びてるし、
ここはこのスレタイで良いと思うわ
ここはこのスレタイで良いと思うわ
96デフォルトの名無しさん (ワッチョイ b74e-WfGi)
2022/11/29(火) 12:05:03.27ID:zwTDTYOm0 Gleamだけ知らんのだがどんな言語?
97デフォルトの名無しさん (ワッチョイ 97f0-hCdI)
2022/11/29(火) 15:23:09.06ID:Vcr0dhdC098デフォルトの名無しさん (ササクッテロ Sp1b-8//E)
2022/12/12(月) 11:40:34.09ID:X5LmWbdvp 新言語Verse
https://simon.peytonjones.org/assets/pdfs/haskell-exchange-22.pdf
関数型でUnreal Engineに組み込むらしい
https://simon.peytonjones.org/assets/pdfs/haskell-exchange-22.pdf
関数型でUnreal Engineに組み込むらしい
99デフォルトの名無しさん (ワッチョイ dbf0-TXpN)
2022/12/18(日) 01:37:12.14ID:xkWav1uF0 Nested Choice面白いな
100デフォルトの名無しさん (オッペケ Srb3-s5ol)
2022/12/18(日) 11:18:36.47ID:9uYd/N4Nr おお、まだJuliaの名前が見られるとは
101デフォルトの名無しさん (ワッチョイ 2101-1FQR)
2022/12/24(土) 17:31:02.76ID:sDckaCi+0 Zigは一般運用していいレベルだと触って感じた
102デフォルトの名無しさん (ワッチョイ a34b-dxp0)
2022/12/25(日) 14:55:22.12ID:KZAI5vpb0 一般運用が何をさしてるか不明だけど
仕事で広範囲に使うのは厳しいんじゃ ?
1.0に達して無くて仕様も変更され続けてるし
仕事で広範囲に使うのは厳しいんじゃ ?
1.0に達して無くて仕様も変更され続けてるし
103デフォルトの名無しさん (スッップ Sdba-TwI4)
2023/01/03(火) 23:06:21.96ID:EF4+Zmp+d いつの間にかスレタイNim以外聞いた事ない言語名になってた
104デフォルトの名無しさん (ワッチョイ fa4b-TwI4)
2023/01/05(木) 00:37:52.42ID:Xf8DhQg+0 Cyber言語
https://cyberscript.dev/index.html
Luajitの3倍高速な組み込み用のスクリプト言語
Pythonライクなインデント
Luaよりも人気でるかも
組み込み用途なので汎用的には流行らないと思うけど
https://cyberscript.dev/index.html
Luajitの3倍高速な組み込み用のスクリプト言語
Pythonライクなインデント
Luaよりも人気でるかも
組み込み用途なので汎用的には流行らないと思うけど
105デフォルトの名無しさん (ワッチョイ 5a7c-WW1s)
2023/01/05(木) 01:10:08.86ID:Ymjh5Awz0 >>104
lua嫌いだから頑張ってほしいな。
lua嫌いだから頑張ってほしいな。
106デフォルトの名無しさん (ワッチョイ 5b4b-SFMD)
2023/01/10(火) 00:06:39.20ID:lqMsrQlz0 TEST
107デフォルトの名無しさん (アウアウウー Saa7-iWdX)
2023/01/21(土) 14:23:16.05ID:tJUqTfCaa Googleって何個流行らん言語開発する気なんやろな
コトリンも結局流行らんかったし
goも流行ってるかと言われると微妙やし
カーボンなんて絶対はやらんわ
コトリンも結局流行らんかったし
goも流行ってるかと言われると微妙やし
カーボンなんて絶対はやらんわ
108デフォルトの名無しさん (ワッチョイ c35f-QR4B)
2023/01/21(土) 15:29:58.89ID:6AMuhJZU0 Google Chrome、プログラミング言語「Rust」の採用を発表
https://news.mynavi.jp/techplus/article/20230113-2561774/
https://news.mynavi.jp/techplus/article/20230113-2561774/
109デフォルトの名無しさん (ワッチョイ 439b-jMD/)
2023/01/21(土) 18:31:14.57ID:DGuAb7AB0 >>107
kotlinはGoogleちゃうぞ。JetBrains。
kotlinはGoogleちゃうぞ。JetBrains。
110デフォルトの名無しさん (アウアウウー Saa7-iWdX)
2023/01/21(土) 19:13:09.85ID:mrhEz1eCa111デフォルトの名無しさん (スッップ Sd1f-CAvY)
2023/01/26(木) 11:26:58.76ID:AA1/dHsVd112デフォルトの名無しさん (ワッチョイ ff4b-+rQD)
2023/02/01(水) 15:25:14.11ID:HrKHxNtD0 Zig言語が v1.0 でリリースされるのは
3年後らしい
うまくいっての話だから普通ならさらに2,3年は遅れるかも
3年後らしい
うまくいっての話だから普通ならさらに2,3年は遅れるかも
113デフォルトの名無しさん (ワッチョイ 4f5f-gpJN)
2023/02/06(月) 08:25:04.30ID:2pHg0M5D0 WebAssemblyにガベージコレクション機能が登場、Chrome 111で試験的実装に。Dartなど高級言語のWebAssembly対応へ前進
https://www.publickey1.jp/blog/23/webassemblychrome_111dartwebassembly.html
https://www.publickey1.jp/blog/23/webassemblychrome_111dartwebassembly.html
114デフォルトの名無しさん (テテンテンテン MM4f-G+++)
2023/02/06(月) 09:11:15.73ID:JuD75zQDM おお
115デフォルトの名無しさん (ワッチョイ 0f50-JSkD)
2023/02/06(月) 09:44:38.64ID:fVls87ar0 すべてのGC言語に対応するGC実装を決められない
から困難と言ってたと思うがまとまるんだろうか
から困難と言ってたと思うがまとまるんだろうか
116デフォルトの名無しさん (ワッチョイ 8fa4-Cjv8)
2023/02/06(月) 11:44:22.80ID:t4UlNWb00 https://github.com/WebAssembly/gc/blob/master/proposals/gc/Overview.md
この辺みても到底詳細仕様が決まるようには見えないし
先陣を切って自分の都合の良いように決めるために、Googleがゴリ押し始めたんだろうね
まあQUICはうまくいった感あるし、Chromeの影響力を考えると一気に進みそうだね
この辺みても到底詳細仕様が決まるようには見えないし
先陣を切って自分の都合の良いように決めるために、Googleがゴリ押し始めたんだろうね
まあQUICはうまくいった感あるし、Chromeの影響力を考えると一気に進みそうだね
117デフォルトの名無しさん (テテンテンテン MM4f-G+++)
2023/02/06(月) 12:44:04.53ID:s421rGzSM ここからが勝負なのよね
ライセンス上の制約が少ない言語なら何でもいいから早く覇権決めて欲しい
ライセンス上の制約が少ない言語なら何でもいいから早く覇権決めて欲しい
118デフォルトの名無しさん (ワッチョイ 835f-LsVv)
2023/02/17(金) 08:18:49.77ID:qlaClCnE0 FirefoxもWebAssemblyのガベージコレクション機能を実装中であることが明らかに
https://www.publickey1.jp/blog/23/firefoxwebassembly.html
https://www.publickey1.jp/blog/23/firefoxwebassembly.html
119デフォルトの名無しさん (アウアウウー Sa95-3MUS)
2023/03/18(土) 09:36:05.92ID:GmA34DaYa120デフォルトの名無しさん (ワッチョイ 027c-3uzD)
2023/03/25(土) 22:53:18.43ID:BSe5gihC0 所詮トランスパイルするだけの言語は終わる
TSやKotlinなど
TSやKotlinなど
121デフォルトの名無しさん (ワッチョイ e95f-jS6D)
2023/03/26(日) 09:50:29.12ID:t5F8xIRn0 C++は元々トランスパイルするだけの言語だったけど未だに終わってないぞ
122デフォルトの名無しさん (ワッチョイ 027c-3uzD)
2023/03/27(月) 14:32:28.74ID:CEoRbIwo0123デフォルトの名無しさん (ワッチョイ e510-uluY)
2023/03/27(月) 21:45:38.89ID:ZY+RQ7940 Types as Commentsが通ったらTypeScriptは安泰
124デフォルトの名無しさん (ワッチョイ 495f-EkyU)
2023/04/08(土) 09:14:03.61ID:WXwwqEgX0 SafariもWebAssemblyのガベージコレクション機能の実装に着手。Technology Preview 167で明らかに
https://www.publickey1.jp/blog/23/safariwebassemblytechnology_preview_167.html
https://www.publickey1.jp/blog/23/safariwebassemblytechnology_preview_167.html
125デフォルトの名無しさん (ワッチョイ 495f-2jjA)
2023/04/13(木) 09:31:47.71ID:VEQIQK6j0 王者Pythonのトップ陥落もあり得るか? C++とJavaが猛追 2023年4月言語人気ランキング
https://atmarkit.itmedia.co.jp/ait/articles/2304/13/news044.html
TIOBE SoftwareのCEOを務めるポール・ジャンセン氏は、2023年4月に「Zig」が46位となり、初めてトップ50入りしたことについて、次のようにコメントしている。
「昨今では、膨大な量のデータを高速で処理する必要が生じていることから、高性能なプログラミング言語が人気を呼んでいる。CとC++はトップ10の上位を維持し続け、『Rust』もトップ20に定着しつつある。こうした中で、CとC++のもう1つの注目すべきライバルであるZigも、トップ50に入ってきた」
「Zigは非常に実用的な言語であり、C/C++プログラムとスムーズにやりとりする。そのため、C/C++からZigへの移行は簡単だ。Zigは、CとC++の優れた機能(オプション型で強化された明示的なメモリ管理など)を全て備え、あまり優れていない機能(前処理など)は放棄している。トップ50入りは成功を保証しないが、少なくとも注目に値する第一歩だ」(ジャンセン氏)
https://atmarkit.itmedia.co.jp/ait/articles/2304/13/news044.html
TIOBE SoftwareのCEOを務めるポール・ジャンセン氏は、2023年4月に「Zig」が46位となり、初めてトップ50入りしたことについて、次のようにコメントしている。
「昨今では、膨大な量のデータを高速で処理する必要が生じていることから、高性能なプログラミング言語が人気を呼んでいる。CとC++はトップ10の上位を維持し続け、『Rust』もトップ20に定着しつつある。こうした中で、CとC++のもう1つの注目すべきライバルであるZigも、トップ50に入ってきた」
「Zigは非常に実用的な言語であり、C/C++プログラムとスムーズにやりとりする。そのため、C/C++からZigへの移行は簡単だ。Zigは、CとC++の優れた機能(オプション型で強化された明示的なメモリ管理など)を全て備え、あまり優れていない機能(前処理など)は放棄している。トップ50入りは成功を保証しないが、少なくとも注目に値する第一歩だ」(ジャンセン氏)
126デフォルトの名無しさん (ワッチョイ 975f-ixN4)
2023/05/06(土) 21:37:15.59ID:Ljj/ks5m0127デフォルトの名無しさん (ワッチョイ b7cf-O5MS)
2023/05/07(日) 10:45:52.48ID:2alg5WM70 最終的にPython互換を目指すということだからPyInstallerの軽量な代替になってくれないか期待したいところだけど
まだclassもサポートされてないのね。
まだclassもサポートされてないのね。
128デフォルトの名無しさん (ワッチョイ a701-KeI6)
2023/05/07(日) 10:46:24.88ID:IEgposGn0 Nimじゃ駄目なんですか?
129デフォルトの名無しさん (ワッチョイ cbda-0v65)
2023/05/07(日) 17:32:47.00ID:souVRU9G0130デフォルトの名無しさん (ワッチョイ df01-O5MS)
2023/05/08(月) 00:18:12.54ID:7UdtJzN/0 Mojoの発音はそのまま喪女でいいんか?
レスを投稿する
ニュース
- 【子ども・子育て支援金】来年4月から徴収、月収50万円なら月600円程度…健保連試算 [蚤の市★]
- 【札幌】「アニメのキャラのまねをするためだった」上半身はダウンジャケット・下半身はスッポンポン…43歳無職の男を逮捕 [nita★]
- 高市首相告白「『なめられない服』を選ぶことに数時間を費やしました」「外交交渉でマウント取れる服、買わなくてはいかんかもなぁ」★4 [ぐれ★]
- 【芸能】篠田麻里子「水戸黄門」のオフショット公開!「くの一姿が可愛い」「うっひゃー」「スケさんカクさんが羨ましい!」 [湛然★]
- 「加熱式たばこ」の受動喫煙、「紙巻き」同様の対策強化を検討へ…厚労省の専門委が議論スタート [蚤の市★]
- 【🐼】パンダ、日本で会えなくなる? 中国との関係悪化で不安の声 ★2 [ぐれ★]
- 竹中平蔵氏、万博を批判していた人たちにチクリ「反省の弁聞きたい」 [686538148]
- 京都のホテル、暴落wwwwwwwwwwwwwwwwwwwwwwwwwwwww [329329848]
- 【速報】高市、今度はロシアに喧嘩を売る [329271814]
- ラーメンは500円くらいでいいよな
- (;ヽ´ん`)「ヤバい、遠足のバスの手配忘れてた…どうしたらいいんだ...そうだ!」 [977261419]
- 国宝みたんだけど
