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

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ということじゃないか?

政治力っていったいなんのことよ。
イチャモン着けたいだけか?

>Cの代替がzigのようなものであるべきと

「zigのようなものであるべき」って言ったらzigしかないじゃん。
言ってることがメチャクチャ。
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++と共存する

>恐らくC++から置き換えるならRustになる

RustにCの置き換えはあっても
RustがC++を置き換えることは無いわ
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の結果を文字列化したものを付け足すコードを生成する。
C++やRustで言語に備わった機能だけでfmtマクロのようなものを作ることは無理じゃない?
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で書いてる人たちは何用途で使ってる?まずは特定用途で知名度を上げることに突破口があると思うんだよね結局は。
1-
あと 69 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.019s