次世代言語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
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★
本文 スレッドタイトル 投稿者