次世代言語27 Nim Zig Pony Carbon Gleam (308レス)
上下前次1-新
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;
var list = List(i32){
.items = &buffer,
.len = 0,
};
List()の返値はList型じゃなくてi32型なの?
でもi32の変数があったときにいつもその構造体への初期化処理みたいなのかけるわけじゃないでしょ。
でもfn Listの宣言によれば返値の型はtype=i32なんでしょ?謎すぎ
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にも到底比較対象にならない
どの領域に入るつもりなんだという印象
上下前次1-新書関写板覧索設栞歴
あと 95 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.022s