2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

次世代言語27 Nim Zig Pony Carbon Gleam

1 :デフォルトの名無しさん :2022/08/05(金) 09:40:50.22 ID:/hLfNpmA0.net
!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

205 :デフォルトの名無しさん :2023/11/23(木) 10:39:32.37 ID:h/UsGTLS0.net
nimは概要を読む限り全然いいと思えない。
C++をさらに悪化させたような言語じゃないの?

206 :デフォルトの名無しさん :2023/11/23(木) 10:41:14.18 ID:h/UsGTLS0.net
nim使うならC++で良いはずだよ。既に多用されてて信頼性あるし。

207 :デフォルトの名無しさん :2023/11/23(木) 10:53:59.84 ID:h/UsGTLS0.net
odinのアイデアはほぼzigと同じじゃないか?
zigの方が先に出てきて、その直後にodinが出てきたようだ
メモリ安全と言われているようだが全くそうではないというレビューも見かけた。
後出し追いかけ言語で政治力とエンジニアリングのパワーで優っているのがodinということじゃないか?
Cの代替がzigのようなものであるべきという着眼点を最初にもたらしたのはzigじゃないだろうか
他にそういう方向性の言語がzigより先にあったのだろうか

208 :デフォルトの名無しさん :2023/11/23(木) 11:21:12.37 ID:h/UsGTLS0.net
zigのwikipedia読んでたらCからの変更点という観点でzigが説明されてる。
Cを出発点としていくつかの改善点を加えた言語というのが重要なんだ。
その中でもメモリ安全とcomptimeによる類似関数をひとまとめにするというアイデアが重要と思う。

209 :デフォルトの名無しさん :2023/11/23(木) 12:21:13.00 ID:h/UsGTLS0.net
fn () err!val
みたいな共用体を返す構文はCのerrnoとかC#のoutとかの代用になるのかな
共用体はenumと連携させてswitchで使えるようだから中身に応じて処理を分けれる
実際使ってみないと分からんが、まあ学習は順調に進むし良い印象がある

210 :デフォルトの名無しさん :2023/11/23(木) 12:50:09.22 ID:45eqFX8V0.net
>>205
>>206
Nimのどこがダメなんでしょうか?
少なくともC++よりシンプルな言語だし読みやすく書きやすい言語だと思うのですが。

211 :デフォルトの名無しさん :2023/11/23(木) 13:59:38.28 ID:/UTIXb+w0.net
NimはまぁPythonっぽい構文が好きな人にはいいかもねって感じなだけで
わざわざ他言語から乗り換えるような特徴がないんだよね

212 :デフォルトの名無しさん (ワッチョイ 225b-rrr/):2023/11/23(木) 14:59:02.66 ID:h/UsGTLS0.net
NimはJavaとかC#みたいなクロスプラットフォーム性があるわけではないし
Cが使われているような領域で使えるものでもない
だからそういった領域では論外

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

という認識。Nimの言語仕様がJavaやCと比較して優れてる!とか言ってみても仕方ない。
競争相手になり得ない。
C++かRustと比較して総合的に優れてると言えたら重要なものになるだろうけど。

213 :デフォルトの名無しさん (ワッチョイ 225b-rrr/):2023/11/23(木) 15:03:11.78 ID:h/UsGTLS0.net
nimはgcありとなしモードあるけどライブラリちゃんと動くの?
gcありじゃないとほとんどのライブラリが動かないということになるなら、
C++にもRustにも到底比較対象にならない
どの領域に入るつもりなんだという印象

214 :デフォルトの名無しさん (ワッチョイ 225b-rrr/):2023/11/23(木) 15:16:17.32 ID:h/UsGTLS0.net
要するに、総合的に優れてるように思えても「あらゆる領域でちょっと負ける言語」は使われない。
戦略は?ということ。

C#やjavaと比較→ネイティブコード作れる!エレガントな文法!→java使ってる人達には全くどうでもいいです
Cと比較→たくさんの抽象的な言語概念!大規模開発に強い!→C使ってる人達には全くどうでもいいです
C++やRustと比較→GCがあって簡単にコーディングできるぞ!→彼らにはGCは不要あるいは邪魔です

215 :デフォルトの名無しさん (ワッチョイ ae6b-f5/H):2023/11/23(木) 15:46:50.74 ID:o2OM8ETk0.net
NimのライバルはZigじゃなくてV言語だと思う
ベターCっぽいけどCの置き換えできないしC++にも届かないって立ち位置の点でね
(文法もC系ではなくPython系って側面も込み)

216 :デフォルトの名無しさん :2023/11/23(木) 18:39:43.19 ID:AGqDCJM/0.net
>>207
>odinのアイデアはほぼzigと同じじゃないか?

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

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

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


>後出し追いかけ言語で政治力とエンジニアリングのパワーで優っているのがodinということじゃないか?

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


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

「zigのようなものであるべき」って言ったらzigしかないじゃん。
言ってることがメチャクチャ。

217 :デフォルトの名無しさん :2023/11/23(木) 18:51:14.02 ID:AGqDCJM/0.net
>>212
>NimはJavaとかC#みたいなクロスプラットフォーム性があるわけではないし

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

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

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

nimはトランスレーター系で、出力がcだったりjavascriptへだったりして、そこでリソース消費しちゃってる感あるのがな。
かつてhaxeという言語があったが結局流行らなかった。

218 :デフォルトの名無しさん :2023/11/23(木) 18:53:19.90 ID:AGqDCJM/0.net
>>208
zigはメモリ安全なんかじゃねーぞ

219 :デフォルトの名無しさん :2023/11/23(木) 18:54:51.91 ID:AGqDCJM/0.net
odinについて知りたかったらhacker newsを見てくれ。

220 :デフォルトの名無しさん (ワッチョイ a111-1See):2023/11/23(木) 19:18:19.30 ID:HQ3SaqO80.net
>>209
Error Union はペイロードを持てないので、erronoと同じと見て差し支えない。
ニュアンスとしてはgo言語のエラーと値を返すスタイルが近いかな。
go言語と違って、エラーがなければ値が保証される(毎度のエラーチェック不要)のと、エラーハンドリング不要ならtryで呼び出し元に押しつけられる楽さはある。

C#のTry〜メソッドのout引数を戻り値で扱えるが、zigはポインタ渡しもできるのでさらに強力。

221 :デフォルトの名無しさん (ワッチョイ a111-1See):2023/11/23(木) 19:25:49.77 ID:HQ3SaqO80.net
>>218
deferの使用を癖づけしておけば、おおむね安全だから・・・。

動的確保したu8のスライスを別の変数にも持たせ、
元の変数の破棄によるダングリングポインタで自分の足を撃ち抜くくらいかな?
よく事故るところは。

222 :デフォルトの名無しさん (ワッチョイ a111-1See):2023/11/23(木) 19:28:51.80 ID:HQ3SaqO80.net
>>217
haxeは構文マクロ書きやすくて好きなだけに悲しい

223 :デフォルトの名無しさん :2023/11/23(木) 21:24:37.29 ID:AGqDCJM/0.net
>>222
haxe知ってる人がいて嬉しい。
マイナーで終わったのが残念。

224 :デフォルトの名無しさん (アウアウウー Sa85-UHOz):2023/11/23(木) 22:52:57.39 ID:38VIgpCLa.net
>>212
おまえなんも判ってないな

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

使えるだろ

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

NimはC++とは競合しないC++と共存する

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

RustにCの置き換えはあっても
RustがC++を置き換えることは無いわ

225 :デフォルトの名無しさん (アウアウウー Sa85-UHOz):2023/11/23(木) 22:57:33.95 ID:38VIgpCLa.net
>>215
>文法もC系ではなくPython系って側面も込み

事実誤認だ
よくそんな平気で嘘が吐けるな

226 :デフォルトの名無しさん (アウアウウー Sa85-UHOz):2023/11/23(木) 22:58:53.23 ID:38VIgpCLa.net
>>214
君は表面的なところしか観れないhusianasann

227 :デフォルトの名無しさん (ワッチョイ 6e83-aicd):2023/11/23(木) 23:16:34.09 ID:45eqFX8V0.net
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 :デフォルトの名無しさん (ワッチョイ 6ecf-ekUX):2023/11/24(金) 00:02:43.09 ID:cA/HuquY0.net
俺も>>211と同じような印象を持ってるけど、一方でこうやって熱心に布教してくるユーザーが目につくんだよね。
温度差が面白い。
pythonスレで宣伝するのはさすがにスレチだからやめてほしいが。

229 :デフォルトの名無しさん :2023/11/24(金) 00:24:17.65 ID:Wcn967L80.net
>>218
rustほどではないけどcと比較すればかなりメモリ安全な言語

230 :デフォルトの名無しさん :2023/11/24(金) 00:45:17.10 ID:6OrpRj0R0.net
>>227
nimのマクロはASTいじれるから強いよな。
俺もnim好きだし。
一方で >>217 で書いたようにまだライブラリに旧いGC使ってるの混じってるのと、CだけじゃなくJavaScriptへのトランスレートとかして開発リソースを消費してるのが懸念。

あとRustのマクロならたぶん近いことできるんじゃないかね?
あれは hygienicマクロうたってるし。ただ複雑過ぎるとも思う。

231 :デフォルトの名無しさん :2023/11/24(金) 00:56:07.29 ID:Wcn967L80.net
C++もGCありの開発可能だからnimはC++と近いのでは?
主にC++が使われてるのはミドルウェア、webブラウザ、ゲームとかだけど
いずれもGCが動かない環境ではない

232 :デフォルトの名無しさん :2023/11/24(金) 01:04:25.73 ID:Wcn967L80.net
nimがcと競合すると考えるなら、
nimがカーネルやデバドラで使われると思うのか

233 :デフォルトの名無しさん (ワッチョイ e97e-OZuz):2023/11/24(金) 08:28:38.02 ID:ksIXeJJJ0.net
>>228
熱心に布教するユーザが目に付くというのがまさにとりたてて特徴がないということの証明になっているかもね
他言語だと多少気にいらなくても〇〇のために使っている、となるがNimはその思想に完全にマッチした人しか残っていないという

234 :デフォルトの名無しさん :2023/11/24(金) 13:19:56.18 ID:+HdIulh/0.net
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 :デフォルトの名無しさん :2023/11/27(月) 09:37:28.94 ID:BB7NmH0K0.net
>>234
Rustのいいところはコンパイルが通らないから誰が書いてもある程度同じようなコードが出来上がることだと思う
とても極端な話すればレビューもいらない
めちゃくちゃチーム開発に向いてる
Nimは既存の資産を活かせるかつ自由度が高いから小、中規模向けなのかな

236 :デフォルトの名無しさん :2023/11/27(月) 12:16:24.67 ID:0LRMXswf0.net
>>235
> 誰が書いてもある程度同じようなコードが出来上がる

これは幻想がひどい気がする。コンパイル通らない時にどう解決するか結構個性が出ると思う。
無限に unsafe 指摘されて切れたwebフレームワークのメンテナ居なかったか?

237 :デフォルトの名無しさん (アウアウウー Sa0b-6V65):2023/11/29(水) 06:07:56.97 ID:n75oaT1ga.net
>>236
>無限に unsafe 指摘されて切れた
このひとのことかな
https://wolfbash.hateblo.jp/entry/2017/07/30/193412

238 :デフォルトの名無しさん :2023/11/29(水) 12:33:39.58 ID:fVcl6vAK0.net
>>237
そこまでレベル低い人の話はしていない。

掘り直したら actix-web だった。
以下のページが日本語で問題まとまってる。
ttps://scrapbox.io/nekketsuuu/actix-web%E4%BA%8B%E4%BB%B6

239 :デフォルトの名無しさん :2023/12/06(水) 14:35:16.69 ID:FgD2yr5e0.net
Rust2006年、Nim2008年(or 2005年生誕説)、Go2009年にそれぞれオープン化して同期の中でNimの言語コンセプトだけ主要な席を取れなかったのはおかしい。
Nim好きユーザーとしてはここからの巻き返しを超絶妄想してる。
現世代言語の仕様に引けを取ってないし8月に本体2.0.0に上がったし周辺パッケージも育って熱心な布教者まで揃ってるのにそもそもの認知度が低すぎるままなのは不思議でならない。
いまNimで書いてる人たちは何用途で使ってる?まずは特定用途で知名度を上げることに突破口があると思うんだよね結局は。

240 :デフォルトの名無しさん :2023/12/06(水) 15:24:48.70 ID:MT5mgeUa0.net
>>239
個人で始めたか、法人所属の人が始めたか。
pythonはメジャーになるまで30年以上かかってる。
法人の後ろ楯あると早いね。
何かキラーアプリがでることを期待してる。俺はそんなスキル無い。

241 :デフォルトの名無しさん :2023/12/06(水) 15:53:12.48 ID:KVh/UeYmM.net
>>239
同期だからこそ、潜在ユーザをみんなGoとRustに取られた感はある
企業がついてない分エコシステムとかはどうしても負けるし

あとはC系の人にPython風構文はあまり歓迎されないというのはあるかも
MojoみたくPythonユーザを直接取りに行ったほうが良かったかもね

242 :デフォルトの名無しさん :2023/12/06(水) 16:40:19.51 ID:MT5mgeUa0.net
>>240
30年以上は言い過ぎ?30年近く。

243 :デフォルトの名無しさん :2023/12/06(水) 18:39:52.78 ID:Lg+sIo970.net
pythonは2000年代初頭にはperlよりメジャーになってただろ。

244 :デフォルトの名無しさん (ワッチョイ 8ab6-yDrh):2023/12/08(金) 03:22:50.77 ID:OHR+wWxR0.net
やっぱりrustなんだろうね
OSも徐々にRustになってくっぽい
主要OSが完全に移行するには100年かかるだろうけど

245 :デフォルトの名無しさん (ワッチョイ 6683-9d3Q):2023/12/08(金) 05:55:14.09 ID:xBCOoZoU0.net
LinuxカーネルのコードがRustに置き換わるとコンパイル時間が大幅に増加しないか心配。
Cだけのカーネルでもビルドに一時間くらいかかるのに

246 :デフォルトの名無しさん :2023/12/08(金) 09:48:35.93 ID:k3Bpg+TDa.net
コンパイルよりCargoのdb更新に時間掛かってるんだよないっつも

247 :デフォルトの名無しさん (ワッチョイ 7501-M0la):2023/12/08(金) 23:03:52.41 ID:Pln0qn0V0.net
>>246
それいくつか前のバージョンで改善されたやつじゃなくて?

248 :デフォルトの名無しさん (ワッチョイ 9734-C3j7):2023/12/13(水) 08:12:56.25 ID:SOLvnyCP0.net
待望の新言語

WebAssemblyへのコンパイルだけに特化した新言語「Onyx」登場、Wasmerが発表
https://www.publickey1.jp/blog/23/webassemblyonyxwasmer.html

249 :デフォルトの名無しさん :2024/02/06(火) 21:17:51.46 ID:vknt9k+q0.net
待望の新言語

Introducing Pkl, a programming language for configuration
https://pkl-lang.org/blog/introducing-pkl.html
Appleがシステム構成のためのプログラミング言語「Pkl」をオープンソースでリリース
https://gigazine.net/news/20240205-apple-pkl/

250 :デフォルトの名無しさん :2024/02/08(木) 14:58:56.60 ID:fJ9G9a/R0.net
>>249
DBスキーマみたいなストアドプロシージャ内蔵の静的型付けYAML作ってるってのはこれだったのか
トランスパイラ方式にしたんだな

251 :デフォルトの名無しさん :2024/03/29(金) 21:11:42.51 ID:F+7of5fq0.net
Erlangランタイムの静的型付け関数型言語Gleamがバージョン1.0に到達
https://www.infoq.com/jp/news/2024/03/gleam-erlang-virtual-machine-1-0/

252 :デフォルトの名無しさん :2024/03/29(金) 23:02:59.73 ID:JKQcuRe50.net
スレチかもしれないけど、この言語そのものというよりは、作者の目指す未来の言語像が可能性を感じる。

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

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

理想的なプログラミング言語
https://devroom.viscuit.com/2018/10/06/post-1615/

言語の進化とプログラミング教育
https://devroom.viscuit.com/2017/02/07/%e8%a8%80%e8%aa%9e%e3%81%ae%e9%80%b2%e5%8c%96%e3%81%a8%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%9f%e3%83%b3%e3%82%b0%e6%95%99%e8%82%b2/

プログラミングの大衆化
https://devroom.viscuit.com/2018/02/27/post-1472/

253 :デフォルトの名無しさん :2024/03/30(土) 02:29:10.46 ID:n/Lqlt000.net
Bun v1.1がついにWindowsネイティブ対応化を引っさげて4月1日リリース予定
日程がエイプリルフールでややザワついてるが敢えてこの日を選んでるっぽい?

Bunを作るZigもv0.12.0が4月2日リリース予定になってるが
こっちは既に数回無告知延期して公式すら話題にしなくなってるのでまたダメかもしれん

254 :デフォルトの名無しさん :2024/04/10(水) 00:48:05.23 ID:PZl/2Qvj0.net
どんぐりテスト

75 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
名前: E-mail (省略可) :

read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★