nimat TECH
nim - 暇つぶし2ch408:デフォルトの名無しさん
23/12/16 09:38:42.94 mPzLcjX0.net
>>406
現代では高機能なテキストエディタやIDEが使えるから
それを使うことを前提にプログラミング言語をデザインしたらいいんじゃね?
って話は聞いたことがある。
sugarの`=>`マクロはNim言語のanonymous procedureを特定の条件下で簡単に書けるよう作られたもので完全にanonymous procedureを置き換えられるものでない。
sugarモジュール自体がシンタックスシュガーのようなものを提供するマクロなどを集めたものだし。
制限とか気にせずにanonymous procedureを書きたかったら=>を使わずに書くしかない。

409:デフォルトの名無しさん
23/12/16 09:56:43.39 yzC0WAGQ.net
>>408
そのへんがまさに省略記法の悪い点が出てる感じするな
省略するってことはソースコードの情報量は減っていて、それはタダではない
「OOのときにはXXを使う」みたいな規則がたくさん発生するというコストがあるんだよね
これはセミコロンレスもそうで、時々変なエッジケースが発生したりする

410:デフォルトの名無しさん
23/12/16 16:45:38.17 kvk3r8Lt.net
オフサイドルールと違ってセミコロンレス(optional semicolon)は多くの言語で妥当なトレードオフ
オフサイドルールが妥当なトレードオフとして成立してるのはHaskell系の言語くらい

411:デフォルトの名無しさん
23/12/16 20:00:00.36 USjLXMUH.net
なんかどうでもいいことをいつまでも
うじうじと
気に入らないなら使わなきゃいいだけ
気に入ったら使えばいいだけ

412:デフォルトの名無しさん
23/12/17 07:10:31.29 clYlz397.net
>>411
気に入っていても:
  ある日突然:
    気に入らなくなる事ってあるよね?
気に入らなくても:
  ちょっとしたきっかけで:
    すごく気に入ってしまうことも
    あるよね?

そういう時はどうすればいいの?

413:デフォルトの名無しさん
23/12/17 12:19:34.98 WUPd6f5k.net
>>412
>    すごく気に入ってしまうことも
>    あるよね?
Error: invalid indentation

414:デフォルトの名無しさん
23/12/17 18:41:59.56 F9NekDqG.net
Nimはよく考えずに機能追加して既にC++並みに複雑化してる
目新しさだけで飛びつくと後悔するぞ

415:デフォルトの名無しさん
23/12/18 02:13:02.65 DdCrjTir.net
そうなの? じゃあもうC++でいいじゃん

416:デフォルトの名無しさん
23/12/18 08:55:26.31 DG+uqCiP.net
例えば最近実装している変更についてもちゃんとここに理由とか書いてあるよ。
URLリンク(github.com)
このあたりをよく読めばちゃんと考えて機能を実装していることがわかるよ。
URLリンク(github.com)
URLリンク(github.com)
Discord/Nimのinternalチャンネルをときどき読んでるけど
開発者は論文読んだり他のプログラミング言語の機能を調査しているようだよ。
URLリンク(en.cppreference.com)

URLリンク(nim-lang.org)
を読み比べてみればわかると思うけどC++のほうがはるかに複雑だよ。

417:デフォルトの名無しさん
23/12/18 20:40:29.88 DG+uqCiP.net
Nim言語がどのような考えで設計されたか知りたい人はNimのblogを読むといいよ。
URLリンク(nim-lang.org)
URLリンク(nim-lang.org)

418:デフォルトの名無しさん
23/12/18 20:49:37.54 CbnA3O4k.net
Nimの現状を知りたい人はこれを読むといい
URLリンク(forum.nim-lang.org)

419:デフォルトの名無しさん
23/12/19 00:16:35.74 mrSFrPG8.net
議論をよく読めば何やらちゃんと考えて実装しているらしいのはC++も同じなんだよなあ

420:デフォルトの名無しさん
23/12/19 08:00:58.06 w9OEXcqM.net
>>419
単純に >>414 への反論なだけじゃない?

421:デフォルトの名無しさん
23/12/20 12:37:14.01 Cvw2c2UZ.net
バグ修正版のNim 2.0.2と1.6.18がリリースされました。
URLリンク(nim-lang.org)

422:デフォルトの名無しさん
23/12/23 09:16:16.92 VfEmk1mn.net
寂しいスポンサーページだな😢
URLリンク(nim-lang.org)
こりゃnimが普及しないのも当然か
rustとは大違い
URLリンク(foundation.rust-lang.org)

423:デフォルトの名無しさん
23/12/23 10:35:51.40 M8dtHAyN.net
でもRustは誰も使ってないじゃん

424:デフォルトの名無しさん
23/12/23 11:58:51.47 BXldyzev.net
Rust言語はトヨタ自動車が採用してると
どこかで読んだ

425:デフォルトの名無しさん
23/12/23 13:41:38.19 fLdoaHTJ.net
>>423
誰も使ってないは草

426:デフォルトの名無しさん
23/12/23 13:46:35.58 6J3b/0Sr.net
Nimと書き間違えたんだと思うが

427:デフォルトの名無しさん
23/12/23 18:13:17.30 A6gu1Hml.net
Nimを使っている組織のリスト
URLリンク(github.com)

428:デフォルトの名無しさん
23/12/27 19:41:58.29 g/RhhP+m.net
プログラムをビルドするためにC++だったらCMake、Rustだったらcargo.tomlにTOMLを使う。
Nimだったらconfig.nimsも.nimbleファイルもNim言語で書ける。
一つの言語でコンパイル言語としてもスクリプト言語としても使えて便利。
Nimはマクロやconstなどをコンパイル時に実行するためにVM使ってるんだけど、そのVMを使ってNimをスクリプト言語のように実行できるらしい。

429:デフォルトの名無しさん
23/12/27 19:50:00.04 J2C6aYvl.net
rustも複雑なことをしようと思ったらbuild.rsに書けるけど、それはそうとして依存関係をプログラム言語で書きたいかと言われると

430:デフォルトの名無しさん
23/12/27 20:16:43.40 E4kPlntL.net
あれもこれもできて便利!みたいなのはぱっと見良さそうでも
大規模・多人数・長期開発になると負債になりがちではある

431:デフォルトの名無しさん
23/12/27 20:24:29.72 qErwbOrg.net
happyxが起爆剤にならないかなぁ、、🙏

432:デフォルトの名無しさん
23/12/27 23:05:07.37 LUGQIuRd.net
zigなら全部zigで書ける(便乗)

433:デフォルトの名無しさん
23/12/27 23:27:30.38 7WiLoZ1Z.net
一体なにがエレガントなんだろうなこの言語って

434:デフォルトの名無しさん
23/12/27 23:34:47.36 qmMlPacq.net
まあアイコンはエレガントなんじゃない?王冠だし

435:デフォルトの名無しさん
23/12/27 23:51:57.04 Ra91RrOg.net
procとmethodとfuncを使い分けつつ{.global.}や{.async.}なとの{.pragma.}とmacroでぐちゃぐちゃにかき混ぜられるのが超エレガントw
他の言語では類を見ない

436:デフォルトの名無しさん
23/12/28 22:46:05.11 u+MANgUc.net
エレガントすぎてついていけないわ

437:デフォルトの名無しさん
23/12/28 23:18:44.60 u+MANgUc.net
エレガントすぎてついていけないわ

438:デフォルトの名無しさん
24/02/20 19:40:26.76 iQdtjO/s.net
新年の記念 保守

439:デフォルトの名無しさん
24/06/17 22:36:28.67 y0rZbngO.net
URLリンク(nim-lang.org)
Nim version 2.0.6がリリースされました。

440:デフォルトの名無しさん
24/10/04 21:03:40.29 jm0g8/rX.net
URLリンク(github.com)
から派生させた、Atkin Sieveベンチマーク
計算本体だけの計測に改め、更に桁を増やし、途中計算がオーバーフローしないように関係変数はすべて64bit
UPPER_BOUND: 500_000_000
Zig 1912ms
g++ 1916ms
Nim 1920ms gcc
Nim 1969ms clang
clang++ 2151ms
Rust 2411ms overflow-checks = false
Rust 2430ms overflow-checks = true
Zigが速かったので他は色々と変更した
Zigの変更は最小限なので再現検証をする場合は各自のZig計測値を基準にしてください

441:デフォルトの名無しさん
24/10/04 21:11:00.73 jm0g8/rX.net
特にデータ構造で
Nim seq[bool]
Rust Vec<bool>
は遅いので直ぐに取り換えてください
C++のvector<bool>は最適化がされていますが、最終的に別のものにしました

442:デフォルトの名無しさん
24/10/04 21:12:20.19 jm0g8/rX.net
>>440は取り換えた後の計測値です


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch