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

nim

385 :デフォルトの名無しさん:2023/12/12(火) 22:53:30.64 ID:wCEkJKJx.net
>>383
CやC++やっててそんなこと言うやつ初めて聞いたぞ
本当に日々コード書いてる?

386 :デフォルトの名無しさん:2023/12/12(火) 23:44:06.92 ID:CyOM3fCk.net
そりゃ仕事で使える言語でオフサイドルールなのってPythonくらいだし
ほんとはオフサイドがいいけどC/C++の仕事してるって人くらいいるでしょ

387 :デフォルトの名無しさん:2023/12/13(水) 00:18:56.36 ID:YitMt0Fm.net
>>386
{}や;がノイズになるかどうかと
オフサイドがいいかどうかの話は別だよ

388 :デフォルトの名無しさん:2023/12/13(水) 04:42:50.35 ID:/pcasGi0.net
>>385
今はC/C++殆ど書いてないけど以前はほぼ毎日使ってたよ。
{}や;に慣れてもやっぱり余計な文字が少ない方がすっきりして読みやすいと思うのだが、そういう人は少数派なんかな?

389 :デフォルトの名無しさん:2023/12/13(水) 05:36:33.39 ID:R3z2LBuJ.net
主観で読みやすいかどうか力説しても結論でるわけない
オフサイドは誤ってインデントずれても気付かないままになってしまうのが問題

390 :デフォルトの名無しさん:2023/12/13(水) 06:48:31.89 ID:RhfHz66O.net
>>388
まぁ実際オフサイド採用の新規言語ってあまり出てこないし
少数派なんじゃないかな

391 :デフォルトの名無しさん:2023/12/13(水) 07:21:31.19 ID:vQeZuGNk.net
f#みたいに、使う側が選択できれば、解決なんじゃない?

392 :デフォルトの名無しさん:2023/12/13(水) 07:35:42.19 ID:q/L8o2wk.net
やれやれお前らCOBOLを知らんのか

393 :デフォルトの名無しさん:2023/12/13(水) 11:38:44.64 ID:rzHxkjlX.net
>>388
どちらの方がすっきりして読みやすいかと
{}や;が思考ノイズになるかどうかは別だよ

前者はそれなりにいる
後者はツチノコレベルで稀有

394 :デフォルトの名無しさん:2023/12/14(木) 19:26:43.32 ID:xAMEKx/6.net
エディタの色設定で{};を薄い色にすればいいだけやん

395 :デフォルトの名無しさん:2023/12/15(金) 03:05:56.17 ID:/ClHmJDY.net
{}がノイズになるようなら:や=はもちろんのことblock:なんて発狂ものだろうからNimは無理やろな

396 :デフォルトの名無しさん:2023/12/15(金) 05:55:25.21 ID:12rLPAnL.net
思考ノイズって
エロい事連想してるって意味だよな?

397 :デフォルトの名無しさん:2023/12/15(金) 06:50:06.26 ID:4QMbv0z8.net
Nimってオフサイドルール以外の所は目立った欠点の無い言語なんかな。
それに実際にオフサイドルールでコードを書いていて困ったことないし。
インデントがずれても困るという人はインデントの幅をスペース4個とか広めにすればいいのでは

398 :デフォルトの名無しさん:2023/12/15(金) 17:55:10.13 ID:BxRUp1+8.net
オフサイドルールは欠点だらけ

Pythonを例にすると
- カットペーストは命がけ
- ネット等で共有しにくい
- テキストエディタやIDEの支援が激弱
- dedentは手動タイピング必須
- 改行のために追加の()や\が結局必要
- インデントだけでは可読性が低いから余計な:が必要
- 空行の数まで厳密に意識する必要もある
- lambdaのone expression縛りのように言語の成長を阻害しやすい
- “explicit is better than implicit”と言いながらブロックはimplicit

399 :デフォルトの名無しさん:2023/12/15(金) 18:18:19.69 ID:b3hxnew5.net
次は、良い点を挙げてみて!

400 :デフォルトの名無しさん:2023/12/15(金) 18:24:50.43 ID:pkr2dCwK.net
>>399
プログラミング初心者を釣れる
以上

401 :デフォルトの名無しさん:2023/12/15(金) 20:46:34.27 ID:4QMbv0z8.net
Vim使ってるけどコピペは問題無くできるしインデントの深さもブロックごと'>'で調整できる。
vim-indentwiseでブロック毎カーソル移動可能。
スペース一個分だけでインデントするとかしない限りブロックの開始、終わりは前後の行のインデントの位置の違いでわかる。
vim-indentwiseでカーソル移動すればブロックの範囲も簡単にわかる。
以前はC/C++を書いてたけど{}や;が無くて読みづらいとか書きづらいとか思ったことは無いよ。
Nim書いていて改行のために追加の()や\が必要になることはほぼ無い
空行の数を厳密に意識する必要もない。
Nimを実際に書いたことあるの?

402 :デフォルトの名無しさん:2023/12/15(金) 21:02:40.08 ID:4QMbv0z8.net
https://wandbox.org/permlink/Nfe6exUFmtWPdWZj
NimのAnonymous proceduresでは複数行書けるし
こうしてコードを共有できてる。

403 :デフォルトの名無しさん:2023/12/15(金) 22:17:03.24 ID:kBMLRaUx.net
>>402
でもアロー関数にすると()を追加するなどしないと1行しか書けなくなる
これもオフサイドルールのせい
しかもこんな明らかなバグでも修正しようともしない
言語の成長を阻害するとはこういうこと

404 :デフォルトの名無しさん:2023/12/15(金) 22:29:33.41 ID:kBMLRaUx.net
>>401
論点理解せずにvim使いなら誰でも知ってる基本を必死に解説されても困るわ

>以前はC/C++を書いてたけど{}や;が無くて読みづらいとか書きづらいとか思ったことは無いよ。
{}や;が無くて読みづらいとか書きづらいとか誰もそんなこと言ってないだろ?
勝手に脳内変換するなや

ついでに言うとセミコロン無い方が書きやすいのは当たり前のこと
だから新しい言語の多くがセミコロンレスを採用してる(オフサイドは採用しないけど)

405 :デフォルトの名無しさん:2023/12/15(金) 23:45:28.85 ID:4QMbv0z8.net
>>403
アロー関数ってNimのsugarモジュールにある`=>`マクロのこと?
あくまでこの=>は二項演算子だから両辺は式になっていないといけない。
オフサイドルールに関係無く二項演算子の両辺に文を直接書けず式を置かないといけないのは殆どのプログラミング言語で同じじゃない?
複数文を書きたければanonymous procedureで書けばよいし。
オフサイドルールじゃない言語で無名関数に複数文を書くときは必ず{}で囲む必要があるし。
どうしてこれが言語の成長を阻害していることになるの?
明らかなバグなのに修正しようとしないって言うけどGithubのNimのリポジトリにそういうissueある?
無名関数を書くときはdo notationというのもあるよ。
https://nim-lang.org/docs/manual.html#procedures-do-notation

406 :デフォルトの名無しさん:2023/12/16(土) 08:47:38.44 ID:yzC0WAGQ.net
「vimを使えばいい」とか「無名関数を使えばいい」などと列挙されても
他の言語はそんな特別なケアなしに使えるわけでな…
このあたりがいまいち広まらない原因なんじゃない?

407 :デフォルトの名無しさん:2023/12/16(土) 08:53:10.18 ID:mPzLcjX0.net
以前インデントの代わりに{}を使える機能があったようだ。
https://github.com/nim-lang/Nim/commit/10bd488daafa79f52fec0d5e7ea76ec8d5902465
https://forum.nim-lang.org/t/10730#71570

けれども殆ど使われなかったのと、{}があるとgrammarとparserが発展するのが難しくなるので削除されたらしい。
https://forum.nim-lang.org/t/10349#68930

408 :デフォルトの名無しさん:2023/12/16(土) 09:38:42.94 ID:mPzLcjX0.net
>>406
現代では高機能なテキストエディタやIDEが使えるから
それを使うことを前提にプログラミング言語をデザインしたらいいんじゃね?
って話は聞いたことがある。

sugarの`=>`マクロはNim言語のanonymous procedureを特定の条件下で簡単に書けるよう作られたもので完全にanonymous procedureを置き換えられるものでない。
sugarモジュール自体がシンタックスシュガーのようなものを提供するマクロなどを集めたものだし。
制限とか気にせずにanonymous procedureを書きたかったら=>を使わずに書くしかない。

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

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

411 :デフォルトの名無しさん:2023/12/16(土) 20:00:00.36 ID:USjLXMUH.net
なんかどうでもいいことをいつまでも
うじうじと

気に入らないなら使わなきゃいいだけ
気に入ったら使えばいいだけ

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

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

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

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

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

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

https://nim-lang.org/docs/manual.html
を読み比べてみればわかると思うけどC++のほうがはるかに複雑だよ。

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

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

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

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

421 :デフォルトの名無しさん:2023/12/20(水) 12:37:14.01 ID:Cvw2c2UZ.net
バグ修正版のNim 2.0.2と1.6.18がリリースされました。
https://nim-lang.org/blog/2023/12/19/versions-1618-202-released.html

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

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

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

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

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

427 :デフォルトの名無しさん:2023/12/23(土) 18:13:17.30 ID:A6gu1Hml.net
Nimを使っている組織のリスト
https://github.com/nim-lang/Nim/wiki/Organizations-using-Nim

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

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

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

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

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

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

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

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

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

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

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

439 :デフォルトの名無しさん:2024/06/17(月) 22:36:28.67 ID:y0rZbngO.net
https://nim-lang.org/blog/2024/06/17/version-206-released.html
Nim version 2.0.6がリリースされました。

111 KB
新着レスの表示

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

read.cgi ver.24052200