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

1
(1): (ワッチョイ c35f-St8y) 2022/08/05(金)09:40 ID:/hLfNpmA0(1) AAS
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512

スレタイ(順番はRedMonk準拠)以外の言語もok

前スレ

次世代言語26 TypeScript Swift Go Kotlin Nim
2chスレ:tech VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
182: (ワッチョイ 8501-8Mb1) 2023/10/04(水)15:32 ID:N8iC4Qef0(1) AAS
外部リンク:harelang.org
(海外の)FOSS、ミニマリスト、アンチRust界隈で流行ってる言語 Hare
C言語プログラマのために作られたとのこと
メモリ管理は自前だがいろいろ安全対策がされてるっぽい
Windows, Macは対応しないと宣言
183: (ワッチョイ a37c-X5bY) 2023/10/04(水)16:37 ID:2V79m8iF0(1/2) AAS
Cの代替言語オーディン
外部リンク:odin-lang.org
184: (ワッチョイ a37c-X5bY) 2023/10/04(水)16:42 ID:2V79m8iF0(2/2) AAS
Cの代替言語オーディン
データ指向、カスタムアロケータ
外部リンク:odin-lang.org

GitHubリポジトリ
外部リンク:github.com
185: (アウアウウー Sa89-5C2y) 2023/10/05(木)17:09 ID:WXXGTjkDa(1) AAS
Are
186: (ワッチョイ 937c-cQ99) 2023/10/30(月)01:15 ID:SHIqNVOV0(1) AAS
ちょっとOdin触ってみた。
Zigより気に入った。
最適化がまだC/C++より弱いからエッジケースではC/C++,Rustにはパフォーマンスかなわないようがた、ぶっちゃけRustよりOdinのほうが書きやすい。
187: (ワッチョイ b137-eepm) 2023/11/02(木)09:20 ID:+8WanLaR0(1) AAS
WebAssemblyのガベージコレクションが正式機能に、最新版のChrome 119で。Firefoxも今月リリースのFirefox 120で正式機能になる見通し
外部リンク[html]:www.publickey1.jp
188: (ワッチョイ 22f1-rrr/) 2023/11/21(火)03:00 ID:60zWiP9n0(1/8) AAS
zigのcompiletはCのatoi、atofみたいなのを1関数にまとめれるということ?
189: (ワッチョイ 22f1-rrr/) 2023/11/21(火)03:09 ID:60zWiP9n0(2/8) AAS
wasmはどうせgcを採用するんだろうなと思ってたがやっぱりか
jdkと変わらん
190: (ワッチョイ 22f1-rrr/) 2023/11/21(火)03:12 ID:60zWiP9n0(3/8) AAS
wasmは初期の頃jdkと何が違うの?と言われてた
jdkはバグが多いからとか説明してたが、実際そうでもない
なぜかその界隈の人達が漠然とjavaを嫌ってるだけだな
191: 188 (ワッチョイ 22f1-rrr/) 2023/11/21(火)04:46 ID:60zWiP9n0(4/8) AAS
compiletじゃなくてcomptimeだった
192
(1): (ワッチョイ 22f1-rrr/) 2023/11/21(火)05:27 ID:60zWiP9n0(5/8) AAS
zigのジェネリック、やりたいことは分かるんだけど構文がよく分からん
外部リンク:ziglang.org
fn List(comptime T: type) type {
return struct {
items: []T,
len: usize,
};
}

// The generic List data structure can be instantiated by passing in a type:
var buffer: [10]i32 = undefined;
省7
193
(1): (ワッチョイ 22f1-rrr/) 2023/11/21(火)05:34 ID:60zWiP9n0(6/8) AAS
List()の型は匿名のstructだな
でもじゃあこれはなに?っていう
fn List(comptime T: type) type
引数に入力されたtypeの型が返値の型じゃないの?
194: (ワッチョイ cd26-1See) 2023/11/21(火)10:29 ID:Z3uiTyFT0(1) AAS
>>193
>>192の例で説明すると、引数として渡されたtypeはitemsフィールドの要素の型。
戻り値のtypeは匿名structの型。

引数の方のtypeは、匿名struct内の関数の引数や戻り値、その関数の戻り値を組み立てるための型引数などにも使える(文字で書くとややこしい)。

戻り値の方のtypeは、builtin.Typeでサポートされてるものが返せる。

あと引数に渡されるtypeは、戻り値を組み立てる型の中で、例えば「T.foo()」と書くことでT型はfoo関数の存在を制約として与えることもできる(foo関数を持たない型が渡されたらコンパイルエラー)。
195: (ワッチョイ 22f1-rrr/) 2023/11/21(火)11:43 ID:60zWiP9n0(7/8) AAS
ありがとう分かった。
typeはzig標準型全体を指すものということか。
任意の標準型を受け取って、任意の標準型を返す総称型関数ということね。

ダックタイピングも分かった。
宣言じゃなくコードの内容から推論してコンパイルエラー出してくということね。
196
(1): (ワッチョイ 226b-rrr/) 2023/11/21(火)14:41 ID:60zWiP9n0(8/8) AAS
チュートリアル読んでるけどzig良い。
Cの代替としては最有力かな?
世の中はメモリ安全のためにRust推奨なんだろうけど。
本当はそっちに進んじゃいけない、と思ってる。
197: (ワッチョイ aedc-f5/H) 2023/11/21(火)21:16 ID:NcXE8D4H0(1) AAS
Zigのマイルストーン見ると先送りしてきたv0.11.1のバグ180件以上残ったままv0.12.0側のissueばっかり片付けてるな
これはついにマイナーバージョンアップ近づいて来たのかな
198: (ワッチョイ 22f8-rrr/) 2023/11/22(水)01:53 ID:bjqLP0h40(1/3) AAS
linux kernelがrustのサポートを確定したという記事を読んだ。
だったらrustなのかなあ。googleもandroidをrustで書くらしい。
rustなのか。
199: (ワッチョイ 22f8-rrr/) 2023/11/22(水)03:30 ID:bjqLP0h40(2/3) AAS
俺はzigやってこう・・・。
200: (ワッチョイ 22f8-rrr/) 2023/11/22(水)07:56 ID:bjqLP0h40(3/3) AAS
いや、やっぱりrustかなあ。
将来のベアメタルプログラマーは抽象的な言語概念から逃げられないね。
そうなると、初学者はむしろマネージド言語から入るのかな。
201
(1): (ブーイモ MM66-OZuz) 2023/11/22(水)12:13 ID:Xn3ar1UbM(1) AAS
Cの後継としてZigは結構ありだと思うけど、
Cが残ってる分野ってISO標準とか組み込みベンダーサポートとかが必須な分野が多くて
Zigがそこまでたどり着くには10年とかかかりそうだよな…
202: (スプッッ Sd82-ts/j) 2023/11/22(水)12:17 ID:o4kbjPDBd(1) AAS
Odinはいかが?
203: (アウアウウー Sa85-UHOz) 2023/11/23(木)09:55 ID:mHKDjshta(1/2) AAS
>>196
わかります
204: (アウアウウー Sa85-UHOz) 2023/11/23(木)09:55 ID:mHKDjshta(2/2) AAS
>>201
10年待てない人はNimで
205
(1): (ワッチョイ 226d-rrr/) 2023/11/23(木)10:39 ID:h/UsGTLS0(1/8) AAS
nimは概要を読む限り全然いいと思えない。
C++をさらに悪化させたような言語じゃないの?
206
(1): (ワッチョイ 226d-rrr/) 2023/11/23(木)10:41 ID:h/UsGTLS0(2/8) AAS
nim使うならC++で良いはずだよ。既に多用されてて信頼性あるし。
207
(1): (ワッチョイ 226d-rrr/) 2023/11/23(木)10:53 ID:h/UsGTLS0(3/8) AAS
odinのアイデアはほぼzigと同じじゃないか?
zigの方が先に出てきて、その直後にodinが出てきたようだ
メモリ安全と言われているようだが全くそうではないというレビューも見かけた。
後出し追いかけ言語で政治力とエンジニアリングのパワーで優っているのがodinということじゃないか?
Cの代替がzigのようなものであるべきという着眼点を最初にもたらしたのはzigじゃないだろうか
他にそういう方向性の言語がzigより先にあったのだろうか
208
(1): (ワッチョイ 226d-rrr/) 2023/11/23(木)11:21 ID:h/UsGTLS0(4/8) AAS
zigのwikipedia読んでたらCからの変更点という観点でzigが説明されてる。
Cを出発点としていくつかの改善点を加えた言語というのが重要なんだ。
その中でもメモリ安全とcomptimeによる類似関数をひとまとめにするというアイデアが重要と思う。
209
(1): (ワッチョイ 226d-rrr/) 2023/11/23(木)12:21 ID:h/UsGTLS0(5/8) AAS
fn () err!val
みたいな共用体を返す構文はCのerrnoとかC#のoutとかの代用になるのかな
共用体はenumと連携させてswitchで使えるようだから中身に応じて処理を分けれる
実際使ってみないと分からんが、まあ学習は順調に進むし良い印象がある
210: (ワッチョイ 6e83-aicd) 2023/11/23(木)12:50 ID:45eqFX8V0(1/2) AAS
>>205
>>206
Nimのどこがダメなんでしょうか?
少なくともC++よりシンプルな言語だし読みやすく書きやすい言語だと思うのですが。
211
(1): (ワッチョイ aeb4-OZuz) 2023/11/23(木)13:59 ID:/UTIXb+w0(1) AAS
NimはまぁPythonっぽい構文が好きな人にはいいかもねって感じなだけで
わざわざ他言語から乗り換えるような特徴がないんだよね
212
(2): (ワッチョイ 225b-rrr/) 2023/11/23(木)14:59 ID:h/UsGTLS0(6/8) AAS
NimはJavaとかC#みたいなクロスプラットフォーム性があるわけではないし
Cが使われているような領域で使えるものでもない
だからそういった領域では論外

C++と競合するが、置き換えれるほどの何かがない
恐らくC++から置き換えるならRustになる

という認識。Nimの言語仕様がJavaやCと比較して優れてる!とか言ってみても仕方ない。
競争相手になり得ない。
C++かRustと比較して総合的に優れてると言えたら重要なものになるだろうけど。
213: (ワッチョイ 225b-rrr/) 2023/11/23(木)15:03 ID:h/UsGTLS0(7/8) AAS
nimはgcありとなしモードあるけどライブラリちゃんと動くの?
gcありじゃないとほとんどのライブラリが動かないということになるなら、
C++にもRustにも到底比較対象にならない
どの領域に入るつもりなんだという印象
214
(1): (ワッチョイ 225b-rrr/) 2023/11/23(木)15:16 ID:h/UsGTLS0(8/8) AAS
要するに、総合的に優れてるように思えても「あらゆる領域でちょっと負ける言語」は使われない。
戦略は?ということ。

C#やjavaと比較→ネイティブコード作れる!エレガントな文法!→java使ってる人達には全くどうでもいいです
Cと比較→たくさんの抽象的な言語概念!大規模開発に強い!→C使ってる人達には全くどうでもいいです
C++やRustと比較→GCがあって簡単にコーディングできるぞ!→彼らにはGCは不要あるいは邪魔です
215
(1): (ワッチョイ ae6b-f5/H) 2023/11/23(木)15:46 ID:o2OM8ETk0(1) AAS
NimのライバルはZigじゃなくてV言語だと思う
ベターCっぽいけどCの置き換えできないしC++にも届かないって立ち位置の点でね
(文法もC系ではなくPython系って側面も込み)
216: (ワッチョイ 427c-ts/j) 2023/11/23(木)18:39 ID:AGqDCJM/0(1/5) AAS
>>207
>odinのアイデアはほぼzigと同じじゃないか?

違うな。
zigはcをそのまま取り込む感じだが、odinはあくまでもodin。
cとの連携もzigみたいにそのままでは無い。

>メモリ安全と言われているようだが全くそうではないというレビューも見かけた。

odinはメモリ安全なんかじゃ全くないぞ。別なもの見てないか?

>後出し追いかけ言語で政治力とエンジニアリングのパワーで優っているのがodinということじゃないか?
省5
217
(2): (ワッチョイ 427c-ts/j) 2023/11/23(木)18:51 ID:AGqDCJM/0(2/5) AAS
>>212
>NimはJavaとかC#みたいなクロスプラットフォーム性があるわけではないし

JavaとかC#はマルチプラットフォームという。
マルチプラットフォームとクロスプラットフォームの違いは自分で調べてね。

>C++と競合するが、置き換えれるほどの何かがない

GCあるから置き換えは無理だね。
使わないようにも出きるし、その方向に向かってるけど既にあるライブラリがGC前提だったりするし。

nimはトランスレーター系で、出力がcだったりjavascriptへだったりして、そこでリソース消費しちゃってる感あるのがな。
かつてhaxeという言語があったが結局流行らなかった。
218
(2): (ワッチョイ 427c-ts/j) 2023/11/23(木)18:53 ID:AGqDCJM/0(3/5) AAS
>>208
zigはメモリ安全なんかじゃねーぞ
219: (ワッチョイ 427c-ts/j) 2023/11/23(木)18:54 ID:AGqDCJM/0(4/5) AAS
odinについて知りたかったらhacker newsを見てくれ。
220: (ワッチョイ a111-1See) 2023/11/23(木)19:18 ID:HQ3SaqO80(1/3) AAS
>>209
Error Union はペイロードを持てないので、erronoと同じと見て差し支えない。
ニュアンスとしてはgo言語のエラーと値を返すスタイルが近いかな。
go言語と違って、エラーがなければ値が保証される(毎度のエラーチェック不要)のと、エラーハンドリング不要ならtryで呼び出し元に押しつけられる楽さはある。

C#のTry〜メソッドのout引数を戻り値で扱えるが、zigはポインタ渡しもできるのでさらに強力。
221: (ワッチョイ a111-1See) 2023/11/23(木)19:25 ID:HQ3SaqO80(2/3) AAS
>>218
deferの使用を癖づけしておけば、おおむね安全だから・・・。

動的確保したu8のスライスを別の変数にも持たせ、
元の変数の破棄によるダングリングポインタで自分の足を撃ち抜くくらいかな?
よく事故るところは。
222
(1): (ワッチョイ a111-1See) 2023/11/23(木)19:28 ID:HQ3SaqO80(3/3) AAS
>>217
haxeは構文マクロ書きやすくて好きなだけに悲しい
223: (ワッチョイ 427c-ts/j) 2023/11/23(木)21:24 ID:AGqDCJM/0(5/5) AAS
>>222
haxe知ってる人がいて嬉しい。
マイナーで終わったのが残念。
224: (アウアウウー Sa85-UHOz) 2023/11/23(木)22:52 ID:38VIgpCLa(1/3) AAS
>>212
おまえなんも判ってないな

>Cが使われているような領域で使えるものでもない

使えるだろ

>C++と競合するが、置き換えれるほどの何かがない

NimはC++とは競合しないC++と共存する
省3
225: (アウアウウー Sa85-UHOz) 2023/11/23(木)22:57 ID:38VIgpCLa(2/3) AAS
>>215
>文法もC系ではなくPython系って側面も込み

事実誤認だ
よくそんな平気で嘘が吐けるな
226: (アウアウウー Sa85-UHOz) 2023/11/23(木)22:58 ID:38VIgpCLa(3/3) AAS
>>214
君は表面的なところしか観れないhusianasann
227
(1): (ワッチョイ 6e83-aicd) 2023/11/23(木)23:16 ID:45eqFX8V0(2/2) AAS
Nim言語はC言語やJavascript言語を出力するのでそれらの言語が動くプラットフォームならほぼ動く。
Raspberry Pi zeroやTermux上でもNimコンパイラが動くし
Goodboy GalaxyっていうNim言語で書かれたGame boy advanceで動くゲームもあるしRaspberry Pi Picoで動くプログラムも作れる。

GC付き言語だとすべてのオブジェクトがヒープに作成されると勘違いする人がいるけどNimでもC++のようにオブジェクトをヒープに確保するかスタックに確保するか選ぶことができる。
NimではGCの代わりにARCっていうメモリ管理方法を選択できてこれはC++のshared_ptrやRustのRcと同じ参照カウンタ方式でヒープを管理する。
なのでARCが使えるかどうかは循環参照があるかないかで決まる。
Nim2.0からはORC(循環参照があっても解放できるようにARCに機能を追加したもの)がデフォルトになっている。

Nimのマクロは式や文のASTを受け取ってそのASTを読んだりASTを生成して返すのでいろんなことができる。
例えばNimの標準機能にあるstrformatモジュールを使えばfmt"x*y={x*y}"のように文字列の中の{}で囲まれた部分に直接式を書くことができる。
fmtマクロはコンパイル時に文字列リテラルを読んで"x*y="という文字列にx*yの結果を文字列化したものを付け足すコードを生成する。
省1
228
(1): (ワッチョイ 6ecf-ekUX) 2023/11/24(金)00:02 ID:cA/HuquY0(1) AAS
俺も>>211と同じような印象を持ってるけど、一方でこうやって熱心に布教してくるユーザーが目につくんだよね。
温度差が面白い。
pythonスレで宣伝するのはさすがにスレチだからやめてほしいが。
229
(1): (ワッチョイ 22fa-rrr/) 2023/11/24(金)00:24 ID:Wcn967L80(1/3) AAS
>>218
rustほどではないけどcと比較すればかなりメモリ安全な言語
230: (ワッチョイ 427c-ts/j) 2023/11/24(金)00:45 ID:6OrpRj0R0(1) AAS
>>227
nimのマクロはASTいじれるから強いよな。
俺もnim好きだし。
一方で >>217 で書いたようにまだライブラリに旧いGC使ってるの混じってるのと、CだけじゃなくJavaScriptへのトランスレートとかして開発リソースを消費してるのが懸念。

あとRustのマクロならたぶん近いことできるんじゃないかね?
あれは hygienicマクロうたってるし。ただ複雑過ぎるとも思う。
231: (ワッチョイ 22fa-rrr/) 2023/11/24(金)00:56 ID:Wcn967L80(2/3) AAS
C++もGCありの開発可能だからnimはC++と近いのでは?
主にC++が使われてるのはミドルウェア、webブラウザ、ゲームとかだけど
いずれもGCが動かない環境ではない
232: (ワッチョイ 22fa-rrr/) 2023/11/24(金)01:04 ID:Wcn967L80(3/3) AAS
nimがcと競合すると考えるなら、
nimがカーネルやデバドラで使われると思うのか
233: (ワッチョイ e97e-OZuz) 2023/11/24(金)08:28 ID:ksIXeJJJ0(1) AAS
>>228
熱心に布教するユーザが目に付くというのがまさにとりたてて特徴がないということの証明になっているかもね
他言語だと多少気にいらなくても〇〇のために使っている、となるがNimはその思想に完全にマッチした人しか残っていないという
234
(1): (ワッチョイ 6e83-aicd) 2023/11/24(金)13:19 ID:+HdIulh/0(1) AAS
Nimユーザーから見るとRustなどの他の言語はいちいち;とか{}を入力したりそれらの文字で少し見づらくなるがそれを大きく上回るメリットがあるとは思えない。
RustやC++やZigで書いたコードがNimより速くなるわけではない。
NimはGC使ってるから遅いみたいに言う人はいるがヒープメモリを使わないようにするとかヒープメモリをループの外側でのみ確保するようにすればメモリ管理のコストがボトルネックにならない。
どうしてもヒープ確保が必要になる場合でもARCかORCを使えばshared_ptrやRcと同じように参照数が0になったら即解放するようになる。
Rustはメモリ安全だというが普通にNimのコードを書いていてメモリ関係のバグで困ったことは無い。
Win32 APIとかLinuxのシステムコールを呼ぶときはポインタを使うからメモリ安全性に気を付けないといけなくなるがRustでもそういう関数を呼ぶときにはunsafeコードを書かないといけないらしいし。
C/C++はライブラリが豊富にあるがNimからその殆どが使える。
NimはCかC++を出力するからCのマクロとかC++のテンプレートクラス/関数まで呼べる。
C++言語はC++14,17,2xと言語仕様がどんどん複雑になっているから完全に対応は難しいかもしれんが。
235
(1): (ワッチョイ 075f-fzX6) 2023/11/27(月)09:37 ID:BB7NmH0K0(1) AAS
>>234
Rustのいいところはコンパイルが通らないから誰が書いてもある程度同じようなコードが出来上がることだと思う
とても極端な話すればレビューもいらない
めちゃくちゃチーム開発に向いてる
Nimは既存の資産を活かせるかつ自由度が高いから小、中規模向けなのかな
236
(1): (ワッチョイ a737-psIa) 2023/11/27(月)12:16 ID:0LRMXswf0(1) AAS
>>235
> 誰が書いてもある程度同じようなコードが出来上がる

これは幻想がひどい気がする。コンパイル通らない時にどう解決するか結構個性が出ると思う。
無限に unsafe 指摘されて切れたwebフレームワークのメンテナ居なかったか?
237
(1): (アウアウウー Sa0b-6V65) 2023/11/29(水)06:07 ID:n75oaT1ga(1) AAS
>>236
>無限に unsafe 指摘されて切れた
このひとのことかな
外部リンク:wolfbash.hateblo.jp
238: (ワッチョイ a7fd-psIa) 2023/11/29(水)12:33 ID:fVcl6vAK0(1) AAS
>>237
そこまでレベル低い人の話はしていない。

掘り直したら actix-web だった。
以下のページが日本語で問題まとまってる。
外部リンク:scrapbox.io
239
(2): (ワッチョイ a6ac-fxPS) 2023/12/06(水)14:35 ID:FgD2yr5e0(1) AAS
Rust2006年、Nim2008年(or 2005年生誕説)、Go2009年にそれぞれオープン化して同期の中でNimの言語コンセプトだけ主要な席を取れなかったのはおかしい。
Nim好きユーザーとしてはここからの巻き返しを超絶妄想してる。
現世代言語の仕様に引けを取ってないし8月に本体2.0.0に上がったし周辺パッケージも育って熱心な布教者まで揃ってるのにそもそもの認知度が低すぎるままなのは不思議でならない。
いまNimで書いてる人たちは何用途で使ってる?まずは特定用途で知名度を上げることに突破口があると思うんだよね結局は。
240
(1): (ワッチョイ 2a7c-1JZ4) 2023/12/06(水)15:24 ID:MT5mgeUa0(1/2) AAS
>>239
個人で始めたか、法人所属の人が始めたか。
pythonはメジャーになるまで30年以上かかってる。
法人の後ろ楯あると早いね。
何かキラーアプリがでることを期待してる。俺はそんなスキル無い。
241: (ブーイモ MM3e-vHfD) 2023/12/06(水)15:53 ID:KVh/UeYmM(1) AAS
>>239
同期だからこそ、潜在ユーザをみんなGoとRustに取られた感はある
企業がついてない分エコシステムとかはどうしても負けるし

あとはC系の人にPython風構文はあまり歓迎されないというのはあるかも
MojoみたくPythonユーザを直接取りに行ったほうが良かったかもね
242: (ワッチョイ 2a7c-1JZ4) 2023/12/06(水)16:40 ID:MT5mgeUa0(2/2) AAS
>>240
30年以上は言い過ぎ?30年近く。
243: (ワッチョイ 66cf-tBUZ) 2023/12/06(水)18:39 ID:Lg+sIo970(1) AAS
pythonは2000年代初頭にはperlよりメジャーになってただろ。
244: (ワッチョイ 8ab6-yDrh) 2023/12/08(金)03:22 ID:OHR+wWxR0(1) AAS
やっぱりrustなんだろうね
OSも徐々にRustになってくっぽい
主要OSが完全に移行するには100年かかるだろうけど
245: (ワッチョイ 6683-9d3Q) 2023/12/08(金)05:55 ID:xBCOoZoU0(1) AAS
LinuxカーネルのコードがRustに置き換わるとコンパイル時間が大幅に増加しないか心配。
Cだけのカーネルでもビルドに一時間くらいかかるのに
246
(1): (アウアウウー Sa21-wVFe) 2023/12/08(金)09:48 ID:k3Bpg+TDa(1) AAS
コンパイルよりCargoのdb更新に時間掛かってるんだよないっつも
247: (ワッチョイ 7501-M0la) 2023/12/08(金)23:03 ID:Pln0qn0V0(1) AAS
>>246
それいくつか前のバージョンで改善されたやつじゃなくて?
248: (ワッチョイ 9734-C3j7) 2023/12/13(水)08:12 ID:SOLvnyCP0(1) AAS
待望の新言語

WebAssemblyへのコンパイルだけに特化した新言語「Onyx」登場、Wasmerが発表
外部リンク[html]:www.publickey1.jp
249
(1): (ワッチョイ 57c2-MO48) 2024/02/06(火)21:17 ID:vknt9k+q0(1) AAS
待望の新言語

Introducing Pkl, a programming language for configuration
外部リンク[html]:pkl-lang.org
Appleがシステム構成のためのプログラミング言語「Pkl」をオープンソースでリリース
外部リンク:gigazine.net
250: (ワッチョイ ffce-KLri) 2024/02/08(木)14:58 ID:fJ9G9a/R0(1) AAS
>>249
DBスキーマみたいなストアドプロシージャ内蔵の静的型付けYAML作ってるってのはこれだったのか
トランスパイラ方式にしたんだな
251: (ワッチョイ 5903-T9th) 2024/03/29(金)21:11 ID:F+7of5fq0(1) AAS
Erlangランタイムの静的型付け関数型言語Gleamがバージョン1.0に到達
外部リンク:www.infoq.com
252: (ワッチョイ adda-VtrB) 2024/03/29(金)23:02 ID:JKQcuRe50(1) AAS
スレチかもしれないけど、この言語そのものというよりは、作者の目指す未来の言語像が可能性を感じる。

Viscuit
外部リンク:www.viscuit.com
言語そのもののイメージとしてはProlog版Scratchから、さらに子供に分かりにくい機能を外したもの。

感銘を受けた記事を2,3貼っておきます。

理想的なプログラミング言語
外部リンク:devroom.viscuit.com

言語の進化とプログラミング教育
外部リンク:devroom.viscuit.com
省2
253: (ワッチョイ 9edd-rfcW) 2024/03/30(土)02:29 ID:n/Lqlt000(1) AAS
Bun v1.1がついにWindowsネイティブ対応化を引っさげて4月1日リリース予定
日程がエイプリルフールでややザワついてるが敢えてこの日を選んでるっぽい?

Bunを作るZigもv0.12.0が4月2日リリース予定になってるが
こっちは既に数回無告知延期して公式すら話題にしなくなってるのでまたダメかもしれん
254: (ワッチョイ c24b-7+Gk) 2024/04/10(水)00:48 ID:PZl/2Qvj0(1) AAS
どんぐりテスト
255: (ワッチョイ 6760-+hba) 2024/04/28(日)22:41 ID:UPZ0W4Nj0(1) AAS
hoshu
256: (ワッチョイ a7f9-y8PE) 2024/04/29(月)13:16 ID:bo2jVeD+0(1) AAS
で?結局どれがいいんだい
257: (ワッチョイ 2701-Ufki) 2024/04/29(月)16:50 ID:12eKztj20(1) AAS
Rustが死んだからZigかCarbonかな
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と手動管理が混在できる事を
利点としているかと思います)
省6
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と同じ処理速度
省3
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をテキスト形式に書きゃいい
わざわざ別言語を挟む必要なし
288: (ワッチョイ bbd6-XATa) 2024/12/28(土)20:01 ID:BjukJolw0(1) AAS
ocamlが癌だよなあ
llvmにすりゃよかったのに
今時コンパイラをセルフホスト出来てないのは厳しい
289
(2): (ワッチョイ 5ff0-godm) 2024/12/29(日)00:15 ID:iFrxiC4m0(1) AAS
テキスト形式ってWATのことかな?
Component Modelの実装もWATで全部記述するってことだろうけど、つよつよな人だー。
290: (ワッチョイ 8b01-XQZH) 2024/12/29(日)10:54 ID:xYvb8s8e0(1) AAS
>>289
現状Wasmを使いたくなるケースがJS系より高速な数値計算くらいなんだからテキスト形式で十分
ブラウザゲームのような特殊な用途ではない限り、現行では未だ課題の多いWasmが従来のJS系+Htmlを食らうことはない
Wasmでstdの規格が制定されてWasmファイル容量の大幅削減が実現してからが本番
291: (ワッチョイ 1a45-Nl0t) 2024/12/29(日)11:34 ID:+BdQ0YDt0(1) AAS
外部リンク:x.com
一応llvmで書き直す構想はあるみたいだ
292: (ワッチョイ 03f0-FsiX) 2024/12/29(日)14:55 ID:uE2S0Bjb0(1/2) AAS
今時のコンパイラならrust+llvmが鉄板なんじゃないの?
ライブラリも豊富になってきたし
293: (ワッチョイ 03f0-FsiX) 2024/12/29(日)14:58 ID:uE2S0Bjb0(2/2) AAS
>>289
Lispかける人なら余裕だと思うよ
知らんけど
294: (ワッチョイ 3e0f-8EYK) 01/03(金)03:33 ID:REb2C/h00(1) AAS
Perlの$%@は良かった
295: (アウアウエー Sa23-Y8TR) 01/05(日)10:08 ID:8kdOFrcZa(1) AAS
そう思える人はRubyも好きなはず
296
(1): (ワッチョイ cf57-VyPR) 01/19(日)19:22 ID:zgJXkwkZ0(1) AAS
Zigは0.14.0がリリースできず2月に先延ばしされました
今回issue残件が脅威の1000件超えのままだけど来月までに選別していつも通り大半を持ち越し

目玉の増分ビルドは正式リリースに届かないっぽいかな
他も根本から書き直しってのが多くて新機能は何が正式に入るのか謎だ
297: (ワッチョイ fff4-Rgmu) 01/20(月)07:55 ID:/rx6KXgc0(1) AAS
>>296
増分ビルドはnightlyでマージ済み
298: (ワッチョイ 0b2a-7Nk8) 03/06(木)15:04 ID:Y61FoeXm0(1) AAS
zig-0.14.0出たよ!恒例の延期はあったけどね

増分ビルドはテスト不足でデフォルトだと無効になっちゃってるようだ
> this feature is not ready to be enabled by default,
> it can be opted into via the -fincremental flag passed to zig build.
使ってみたいなら -fincremental オプションで明示的にオプトインしてねってことなので
有効化したらメッチャ高速になった…!ええやん!
299: (ワッチョイ 3102-TLa3) 03/06(木)19:12 ID:l4jw4h0Z0(1) AAS
Zig 1.0はいつ出るの?
300: (ワッチョイ 112b-K6h+) 03/06(木)19:46 ID:38v8ReeR0(1) AAS
最後の大物、コルーチンをサポートしてzig 1.0かなぁって予想。
301: (ワッチョイ 454b-bZOK) 03/24(月)18:22 ID:mpEtAgOm0(1) AAS
>>229
きりのいいとろこで2030年ごろじゃね?
302
(1): (ワッチョイ c269-JIbt) 03/24(月)22:03 ID:+P7EWERr0(1) AAS
MoonBitでLLVMを再構築するとのこと
> We will rebuild a better LLVM in MoonBit starting this year,
> modern compiler toolchain in a modern language and it will be deveoped in OSS
303: (ワッチョイ e1f0-Y8I3) 03/25(火)13:53 ID:z+9Q790S0(1) AAS
>>302
は?別にそこはいいじゃん
304: (ワッチョイ 9b27-iF7r) 05/20(火)08:58 ID:wvxe5xAp0(1) AAS
待望の新言語

魔法陣のようなプログラミング言語「Mystical」
外部リンク:gigazine.net
305: (ワッチョイ 4f54-gGGB) 05/21(水)05:37 ID:tVhMy6rt0(1) AAS
元はforthかな
306: (ワッチョイ 46a2-CQkj) 07/13(日)21:25 ID:ttim25hJ0(1) AAS
待望の新言語

jank programming language
外部リンク:jank-lang.org
307: (ワッチョイ a65e-bbtO) 07/14(月)13:40 ID:qata7TEE0(1) AAS
lisp方言が増える感じなのかな?
clojureは、結構javaのクラスライブラリ呼んでなんとかしてる感じしたので、その点どうなるのかね。
308: (ワッチョイ cab3-AbPb) 07/17(木)12:44 ID:TY8Q4fcO0(1) AAS
Unison 言語から、「次」の言語を考察したい
外部リンク:zenn.dev
1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.815s*