次世代言語21 Go Nim Rust Swift Kotlin TypeScript

■ このスレッドは過去ログ倉庫に格納されています
2020/04/19(日) 15:06:02.92ID:jAOW5aqE
スレタイ以外の言語もok

前スレ
次世代言語18 Go Rust Elixir Kotlin TypeScript (実質20)
https://mevius.5ch.net/test/read.cgi/tech/1569866283/
2021/02/14(日) 05:19:27.74ID:+oGfnxrk
年明けて過疎りだしてるな
472デフォルトの名無しさん
垢版 |
2021/02/16(火) 04:23:15.71ID:i2+BQGYO
今からnimerに入門するのありですか
473デフォルトの名無しさん
垢版 |
2021/02/16(火) 10:34:02.43ID:yhgiETSa
ハゲめ
2021/02/16(火) 12:06:45.72ID:Ng2tzs+U
誰がハゲやねん!
475デフォルトの名無しさん
垢版 |
2021/02/16(火) 17:47:18.34ID:i2+BQGYO
nimerがハゲってこと?
2021/02/21(日) 18:14:07.92ID:XsukC5HX
vim→vimmerなんだから
nim→nimmerなんじゃないの?
nimerではなく。
477デフォルトの名無しさん
垢版 |
2021/02/22(月) 00:22:55.21ID:hufyi6L+
>>476
たしかに。
このスレで返事ないところ見ると、
nimmer人口少ないんですね
2021/02/22(月) 12:13:29.30ID:8rA9Ts98
最近nimmerに入門しました!

golangのvscodeくらいの開発環境を探しているんだけど、
無さそうで、そういうところで使ってる人少ないのかなって感じる。
479デフォルトの名無しさん
垢版 |
2021/02/22(月) 13:25:25.28ID:u9bSLLBv
>>478
その辺の周辺ツール、プラグインが充実してないとつらいですね...そして入門者も減ると言う悪循環
2021/02/22(月) 15:23:47.78ID:loe37PP4
nim はもっとpythonにすり寄れ
2021/02/23(火) 01:02:42.90ID:90bPaZuU
NimとJuilliaは棲み分けできるんか?
2021/02/23(火) 03:11:07.41ID:xWwELnvI
>>478
https://github.com/pragmagic/vscode-nim
>>479
https://github.com/alaviss/nim.nvim
>>480
https://github.com/nim-lang/Nim/wiki/Nim-for-Python-Programmers
https://github.com/yglukhov/nimpy
2021/02/23(火) 07:39:59.89ID:JIMDon3c
>>482
rustのpyo3みたいなのがnimにもあるんだ
逆にnimから豊富なpythonのライブラリ呼べたりもする?
2021/02/23(火) 11:42:17.39ID:eeQBUcpI
>>481
方向が真逆だと思うけど。
485デフォルトの名無しさん
垢版 |
2021/02/23(火) 11:56:44.11ID:enuiuomY
Nimの仮想敵(?)はRustあたりでは?
2021/02/23(火) 12:30:41.78ID:0iI/BmGY
サーバーサイドの言語はもう伸びない
2021/02/23(火) 13:50:00.91ID:5+NO2QHa
サーバーサイドでやればiOSでもAndroidでも同じコードが動くんだろ?
一体なぜ伸びないんだ…
2021/02/23(火) 14:47:06.25ID:83B8ELn4
結局分けたほうがいい事ありそうだし
489デフォルトの名無しさん
垢版 |
2021/02/23(火) 17:25:16.05ID:0iI/BmGY
serverlessにシフトしよう
2021/02/23(火) 18:08:32.97ID:whD5xbd2
Nimは現状GCベースの時点でRustと同じ土俵には立たないよ
速度面でJava・Go、抽象度面でML系・Haskellと、両立の面ではMLton・Scala・Lisp系とかと比較される言語でしょ
ORCの速度面レイテンシ面の改善は興味深いけどRustのメモリを生でべたべた弄りやすい点とは競合しないと思うなぁ
2021/02/23(火) 22:17:25.21ID:VpyuW4/O
nimはいろんなGC選べるって言ってなかった?
GC無しも選べるとか…
2021/02/24(水) 07:46:47.30ID:alrdgmdA
デフォルトは、GCからARCへ移行したんだっけ?
2021/02/24(水) 19:10:12.66ID:3aV73sbd
nimのarc/orc情報です。
https://nim-lang.org/blog/2020/10/15/introduction-to-arc-orc-in-nim.html
2021/02/24(水) 21:35:05.72ID:U5tdQeil
TypeScript は補完が便利!ってなるけど、

コードジャンプで元のコードじゃなく d.ts に飛ぶのがうんk

d.ts がないライブラリみるとめっちゃがっかりしてしまう点もうんk

型情報の union とか intersection とか、
ぐちゃぐちゃになって頭もぐちゃぐちゃになる点もうんk

VSCode のポップアップヘルプ見にくい点もうんk
function のシグニチャ見にくすぎ

React とかと親和性が低い点もうんk

なんだかんだで型ヒントくらいの機能がちょうどいいのかなって思える

Java みたいにゴリゴリにょきにょき補完してくれるならいいんだけど、
やっぱり後ろに JavaScript さんが控えてるからいろいろ大変そう

でも、TypeScript 使っちゃうビクンビクン
2021/02/24(水) 22:38:38.73ID:KmBJy8lD
tsと来ればDeno、Denoと来ればRust
2021/02/24(水) 22:49:36.21ID:U5tdQeil
console.log がもうめんどくさい
System.out.println なんて論外
print ちゃんは好き
497デフォルトの名無しさん
垢版 |
2021/02/25(木) 18:41:49.97ID:rcOltu0H
Nipple なら延びたかもしれんね
2021/02/25(木) 19:38:03.28ID:U3JZ43Jo
kokaってやつ今日知ったんだが既出?
2021/02/25(木) 20:36:41.26ID:/SjIQ6wc
静的型付けで嫌なのって、ちょっとごちゃっとした構造のある引数を渡したいときに
毎回その引数のためだけにクラスつくるみたいな事がある点かな

それさえなくなれば他は静的型づけに特に不満ないんだけど

あ、でもやっぱりキャストと複雑なジェネリクスは面倒か
500デフォルトの名無しさん
垢版 |
2021/02/25(木) 20:40:00.64ID:twDFYCAL
>>491
--gc:noneでGC無しだが、このオプションを使用し、当然ながらRustのような所有権と借用は無いので
ヒープに関しては自分でproc dealloc(p: pointer)管理する必要がある。Rustはunsafeでなければ極端に
セキュリティ重視(リーク、オーバーフロー、再解放)でプログラマにそれを強要する。速度面ではGCが
無いので紙一重で早いが、所有権と借用のスコープで自動的にGCされるはず?なので--gc:noneで手動で
解放する方が紙一重で有利。ま、それを言ったらRustでunsafeを使って自分で解放も同じだがw

Nimは(Rustも?)コンパイル時のマクロ実行があるので、GC有りとGC無しはwhen defineで分岐すれば
同じコードベースに書ける。これが何の役に立つかといえばGCの時間が極端に問題になるメモリが潤沢な
ハードやシステムでGCをOFFにして、メモリが厳しい環境ではGCをORCにしておくとか書ける訳ね。
例えば、短期間しか走らないプログラムで(夜間)バッチ実行なども、毎回GCが走るのは嫌な訳だが
メモリが増え続けても良いならプログラムで随時メモリ解放なんてする意味があまりない。
当然ながらテストもしなくちゃならないけど、出来上がるバイナリはamd64, Linux, GC:ORC, SSLとか。
Rustの#[cfg(target_os = "linux")]もある意味同じだが、#[]とか言語と解離していて冗長的でキモい…
2021/02/25(木) 21:34:27.27ID:PF1Nn8ga
lispみたいに見た目で区別できずにコード追わなきゃマクロか関数呼び出しか分からんほうが嫌だから解離してるほうが見ただけで分かっていいわ
2021/02/25(木) 23:07:08.85ID:VZy10bT/
C/C++でいう&&や||の定義をライブラリに丸投げできないかという問題
その解決策の一つがマクロ
&&と||は見た目というか意味的に積と和なので関数と同じになるのは必然
503デフォルトの名無しさん
垢版 |
2021/02/26(金) 01:38:20.80ID:VseSftXI
まあ好みの問題でprintln!()とかが好みの人が居るだろうけど、nimのマクロはnimの構文でほとんど
書けて特殊性がほとんど無い。現状はAST木をそのまま使うのと、parseStmtで文字列のようにして
使うのと、quote do:するのと3通りあるが、Rustを完全に学習するなら当然ながら所有権と借用、
Optionなど、そして、何よりあちこちに出てくる全然構文が違うRust のマクロを理解しないとね。
Lispのようなバッククオートで呼び出し先でそれがマクロだと分かるのが嫌だという人も分かるがね。
それは関数の見た目で区別がつくだけで、引数の先が#[derive(xxx)]とかアトリビュートがついてたら
動きが変わるわけで、結局見なきゃいけないよね。一応言うとくとディスってる訳じゃなく好みの問題
2021/02/26(金) 01:47:12.14ID:ZAnS5D43
Rustはマクロの書き方は知らなくても問題ない
定義されたマクロを使う方法は誰でもわかるし実装内容を知りたければexpandすればいい
505デフォルトの名無しさん
垢版 |
2021/02/27(土) 00:29:29.15ID:tPG7SwEZ
Gleam はどうだろう?
erlang + ruby → elixir
erlang + rust → Gleam
2021/02/27(土) 01:20:01.88ID:JUgkZUPX
Gleamよさげだな
まだいろいろ不足しててElixirに追いつくには時間はかかりそうだけど
Phoenixレベルのフレームワークが出てくればそこそこ流行りそう
507デフォルトの名無しさん
垢版 |
2021/02/27(土) 02:48:38.99ID:aULfChep
ジェネリクスはswiftつかどっち側へも転べるobjectiveC++でワガママ通せるな
rustなんかも継承の相互性端折ったまでいいからobjectiveCオブジェクト導入すりゃいいのに
2021/02/27(土) 11:41:10.20ID:8JWxjtWT
Typescriptって次世代言語なんですか?
2021/02/27(土) 11:42:14.19ID:8JWxjtWT
jsのラッパーぐらいにしか思ってませんでした。
2021/02/27(土) 12:16:57.05ID:yTOj7AY/
altjsの一つでしかないtypescriptがはいってるのは確かに違和感あるな
2021/02/27(土) 12:20:33.35ID:Q1sJcSsB
それ言うたらKotlinなんかもそうならん?
2021/02/27(土) 12:27:59.86ID:yTOj7AY/
jvm上で動くけど一旦javaに置き換わるわけではないから微妙だな
2021/02/27(土) 12:29:59.07ID:sWAAltIA
とはいえaltjsはブラウザ上で動くのがjsであらざるをえない以上好きでaltjsやってるわけじゃないからな
wasmもjsを置き換えるものではないし置き換えを目指しているわけでもないのが大きい
そのへんは神経質になる必要はない気がするなぁ
2021/02/27(土) 12:31:20.83ID:8JWxjtWT
Typescript好きてすけど、
次世代って言われると??な気がします。
2021/02/27(土) 12:40:22.21ID:yTOj7AY/
jsのsyntax sugarである以外に何か新しさがあるかって点だろうか?
2021/02/27(土) 12:59:15.33ID:AQslqvPC
次世代環境は画面が狭い上に動画重視だから
GUIで新しさを演出するやり方自体が古くなった
2021/02/27(土) 13:47:19.13ID:vZ1ioaSe
え?w
518デフォルトの名無しさん
垢版 |
2021/02/27(土) 23:00:12.25ID:A2gkfgFy
TypeScriptを外して、Juliaを入れるべきだろう。
Kotlinは微妙だけど基本JVMで動作するけど、トランスコンパルではないからJavaの制限(例えば演算子の
オーバーロード)を超えてるわけで、過疎らない程度なら良いんじゃない?Scala-Nativeの方が次世代っぽい
けども流行らないだろうな。Zigでも良いけど誰も使ってなさそう、nimmerだけど
2021/02/27(土) 23:09:12.64ID:AQslqvPC
>>513
好きでやってるわけじゃないって気軽に言うけどかなりのネガティブ思考だよな
好きなことをやればいいのに
ブラウザ上でも動画やPDFを使う自由はあるし
2021/02/27(土) 23:11:49.58ID:vZ1ioaSe
ブラウザにそんなにたくさんの言語エンジンはコスト面からも載せられないだろ
2021/02/27(土) 23:15:35.39ID:NjMWacY/
Pythonを置き換えてほしいと思ってるのもしかして俺だけ?
2021/02/27(土) 23:30:27.95ID:Hg2wHc/X
Juliaは登場時期こそ新しいけど次世代言語というような言語自体の新しさはあまり感じないなぁ。
2021/02/28(日) 00:39:44.34ID:nPksHaq2
面接官「このままだとコミュ力採用だけど」
次世代言語「100の階乗とか計算できないやつを落とせばいいのでは」
524デフォルトの名無しさん
垢版 |
2021/02/28(日) 00:56:29.15ID:/UVkNIT2
@distributed (@parallel)とかmutable structとか他の言語とはちょっと違う部分があるよね
手続き系言語のコンピューター工学言語の新しさじゃなく、ベクタードット演算とか、外部ライブラリに
依存するPython系の自動学習やRなんかにはかなり競合する。分散性を考えると大規模なAI系は、これで
決まりだと思う、明らかに大規模分散を意識してる
2021/02/28(日) 02:18:43.91ID:IW6BdE6e
トランスパイルが駄目ならNimもアウトじゃね?
Cのソース生成してからコンパイルでしょたしか
526デフォルトの名無しさん
垢版 |
2021/02/28(日) 03:50:04.87ID:aU7a7SwI
vlangと同じ立ち位置だよね
527デフォルトの名無しさん
垢版 |
2021/02/28(日) 06:31:33.42ID:/UVkNIT2
言葉が足りなかった、トランスパイルがダメというより、ベースとなる言語の機能や域を出られない。
つまり言語の特徴としてES5/6/7/8と(ブラウサ)に「強く」依存するのはTSがブラウザネイティブで
動かない限り目新しさはそれほど無い・登場しないって事。NimはCに依存してるわけちゃうでしょ
TSはJSに比べシンタックスシュガーは掛けられるし、JSの悪習を禁止する言語制約はつけられるけどさ

Vlangも入れた方が良いかもしれない、ほとんど個人開発のVlangが嫌いな人もいるみたいだけどね。
目新しさはほとんど無いけどGo+Rustみたいな文法は、Nimの見た目だけPythonみたいより好きかな
GC/RTLが搭載しえないのは利点では無いと思うけど
2021/02/28(日) 07:38:04.49ID:YWIO641N
言語学的に次世代って言いわれてるのはなんなのよ。
2021/02/28(日) 08:11:20.85ID:4OVJxDt4
>>519
良くも悪くも実用志向の言語群だからね
このスレの一定数の人は挑戦的な機能や実装があることを次世代言語と認識してるけど、様々な言語に実用面で機能が足りてなかったり普及に障害がある点を指摘する人は以前のスレでもいくらか見かけた覚えはある
私は前者の方が好みだが、あくまで実用の為に普及の容易さも込みでjsを置き換えようとすると、TSのようになるというのは自然だと思うな

逆にaltjsでもElmは十分次世代的な機能の導入と実用の為の割り切りをしていたり、PureScriptなんかは数学的抽象化一直線突っ走ってて高階多相なんかも導入してるし単にaltjsというだけで次世代要素がないというのは違うと思うんだよな
それにTSの型機能はjsの動的な型に合わせるためとはいえ漸進的型付け言語として挑戦的な試みが沢山あるし、今なお追加もされてるので十分次世代的な要素があると個人的には思うよ
2021/02/28(日) 10:55:21.69ID:nPksHaq2
>>528
言語と標準ライブラリの密結合を避けること(非標準ライブラリは問題無い)
ができないと言語学的にはスタートラインにも立てないね
531デフォルトの名無しさん
垢版 |
2021/02/28(日) 12:32:21.00ID:A4uk6Kzo
>>522
Julia は形を変えた Fortran だと思った
2021/02/28(日) 14:32:24.19ID:iucjRJ2q
数値計算速いの?
2021/02/28(日) 17:53:08.55ID:BWTKlu0s
Elmはいい言語だと思う
もうすぐ2冊目の日本語の本が出るよ
純粋な関数型言語なのに実用面重視なのが今までの流れと違うところ
普通この手の言語は汎用性とか型クラスとかにこだわってしまうのにあえて外してる
2021/02/28(日) 18:04:40.20ID:TzXN37YB
普及してない時点でまったく実用できない
2021/02/28(日) 20:27:24.36ID:nPksHaq2
狼少年のパターンなら知名度が上がるほど駄目になる
その場合は、普及活動するべきという俗説には従わない方が実用的に正解
2021/02/28(日) 21:57:01.28ID:MOb8c/K3
Vlangみたいに凄い事をやりたいというタイプではなくやらない事を選ぶタイプなので悪い方向に転がっても狼少年にはならんと思う
2021/03/02(火) 22:28:04.28ID:xkSaUBtO
どうせなら借用も認めないとかとことん尖らせたらいいと思う。
2021/03/02(火) 23:12:40.45ID:3dhTBaxS
>>537
erlangとかアクターモデルの言語で良いのでは?
2021/03/03(水) 08:42:43.27ID:mCX6K/+k
ここのところDartが割といい言語じゃんってなってる。
クロスコンパイルできるようになったらGo並に使える気がするんだがなぁ。
Goでジェネリクスが使えるようになるのが先かな。
2021/03/03(水) 09:50:07.06ID:d6RCeNqz
PowerFx大勝利!
2021/03/03(水) 11:38:23.70ID:lsQqWTvf
借用を認めないみたいな意味の用語は「シェアードナッシング」でしょ
共有していないところでは副作用を認めるという発想はアクターモデルではあまり強調されなかった
2021/03/03(水) 12:46:08.86ID:Pm16geQl
DartのNULL安全はまだ来ないのか
2021/03/03(水) 18:31:04.85ID:9ncygIV6
null安全なんて言うほど安全じゃない
2021/03/03(水) 18:32:42.97ID:+TqkcVy7
Go lang 2.0はよ
2021/03/03(水) 19:00:19.95ID:vf+ENLg5
>>543
型無しのnullが危険すぎるだけだな。
2021/03/03(水) 20:39:48.06ID:9dLYGr/x
でも型があるとgoのような悪夢に
2021/03/04(木) 19:00:42.56ID:FwINCIAX
DartのNULL安全が来たっぽい(Dart 2.12)
2021/03/05(金) 00:10:29.44ID:ap8GROD4
記念してNULL安全日としようか
549デフォルトの名無しさん
垢版 |
2021/03/05(金) 11:27:53.31ID:6qFLuZG/
undefined「フフフ、nullの奴がやられおったか」
NaN「nullは我らの四天王のなかで最弱、面汚しよ」
-Inf「・・・」

フラッター2って誰が使ってんの?真顔でNULL安全でない言語はレガシーだと言われると
プッと笑い出しそうになる…
2021/03/05(金) 11:40:40.39ID:7wZZkSrv
ぬるぽ
2021/03/05(金) 12:49:21.47ID:CPRmMLwG
int型の値にもnullがあったら嫌だろ
それと64bitに移行してもまだ32bitのint型を使ってたらレガシーだろ
ライブラリの変更だけでできそうなことが、言語ごと作り直さないとできない設計がレガシーなんだ
2021/03/05(金) 13:34:46.07ID:gVgFrLj8
いうほどnullで困ってない。
553デフォルトの名無しさん
垢版 |
2021/03/05(金) 15:42:14.78ID:VbRCEJsj
困るってよりループの中でチェックが無駄に繰り返されるのを防ぐのがオモヨ
で、ヌル限定で排除するより総てのプリミティブを範囲型にするほうがいいと思うんだけどね
整数でゼロだけ除けるんも範囲の内だし
2021/03/05(金) 15:56:36.25ID:gVgFrLj8
心の底からどうでもいいと思う。くっだらないな。
2021/03/05(金) 16:56:49.67ID:37/sJ5bt
これが次世代について行けない奴の末路か
2021/03/05(金) 16:57:24.94ID:0LRxSrSM
まあDartのSound Null Safetyはネイティブコードにした時の実効速度アップ効果もあるし
2021/03/05(金) 17:35:05.91ID:ozzHXY/d
全てのバグをコンパイル通す前に消し去りたい…というのは言いすぎだが
やりたいことはそういうことなんよね
決して自分の足を撃ち抜かないスーパーハカー様には無用の長物に見えることだろう
2021/03/05(金) 18:26:31.58ID:gVgFrLj8
>>555
そんなしょっぱい機能で次世代ドヤとかやられてもw
2021/03/05(金) 18:27:21.92ID:gVgFrLj8
シンタックスによるバグなんてど素人だけだわ。
バグが発生するのはそんなところにはない。
2021/03/05(金) 18:48:33.41ID:EPnjm+FH
そういったド素人のやるような些末なミスチェックがforgettableになるというのもメリットなんだけどな
規模がでかけりゃ可能性は少なからず上がるし、何より人間の頭の良さはそういう機能をどれだけ上手く使えるかにもあると思わない?

ただ確かにその機能があるというだけで次世代だと錦の御旗を振るのは少し難しくて、それをどれだけ使用者が気にせずいい感じに導入できたかも重要と思う
2021/03/05(金) 21:12:55.25ID:5RYmOCrl
そもそも>>545の型無しのnullと>>551がなんのこと言ってんのかわからん。

>>545は動的型付けのnullのこと?

>>551は数値型のintがポインタ型のnullになることはないし、
option<int>ならpresentかabsentを表現するのにつかう。
それにnull safeな言語ってnon-zeroのときに最適化するだけでnoneの参照は普通のnullポインタ。
言語的には仕様かライブラリでnullableのハンドリングを工夫してるだけだから
既存の言語にも追加できる。javaも今やってる。
// まあ、アレは事あるごとに互換性維持したまま魔改造する常軌を逸した言語だが。

>>560
>些末なミスチェックがforgettable
対処としては漸進的型付けで早期エラーにするくらいかな。
最適化で実行前にエラーにできる場合もある。

TypeScriptが次世代かと言われると確かに違和感ある。js2/es4の方がまだ進んでる。
2021/03/06(土) 01:13:30.58ID:Tfz5lFd6
お前らnull safeの機能があって助かった〜なんてことが本当にあると思ってんの?
おめでてーな。結局考慮してない奴はそんな機能あってもつまづくよ。
それももっと酷い形でな。
2021/03/06(土) 01:32:39.74ID:DBO1vWCm
null safeな言語は助かった〜みたいなことになる前に
コンパイラやIDEに文句言われるから
確かに助かった〜なんてことにはならないな
2021/03/06(土) 01:51:36.56ID:4yCs4axt
しぬる
565デフォルトの名無しさん
垢版 |
2021/03/06(土) 02:06:07.77ID:Y4U2Cfcl
コーディング安全はほぼ関係ないつうのに
そこにこだわって文句垂れるクソw
2021/03/06(土) 03:18:37.29ID:jOZnXzPo
V言語にまだ期待している奴がいるってマジ?ガワだけGoっぽいCだぞあれは
clayやcycloneやbitCやらが色々試行錯誤して、何とか生き残ったrustがようやくそれなりの妥当性を見出した「GC無しで安全なメモリ管理」を
何の論文も書かずにWIPで放置しているのに「Rustのように安全」とかフカし続けている奴らだぞ

Cに毛が生えた程度の安全性を持った、Rustより謎な制約を課してきて、フカシた結果ASTも生成できずに最適化が使えない言語ができるぞ
2021/03/06(土) 06:46:27.22ID:lBapLpDG
だからVは詐欺だって言ったのに…
2021/03/06(土) 07:46:02.04ID:E5Tw2kdh
ガワがGoっぽいCならC2とZigがもっと素直に
2021/03/06(土) 08:01:57.54ID:Tfz5lFd6
rustの安全性もたかが知れてるのでまあそんなとこだろ。
実際セキュリティー分野でrustを使う機運はほとんどない。
2021/03/06(土) 08:05:43.60ID:E5Tw2kdh
セキュリティ分野でRustほど低レイヤーな言語を使う必要がある場面がそもそもあるのか?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況