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

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2022/04/17(日) 17:52:35.38ID:KG26dcth
スレタイ(順番はRedMonk準拠)以外の言語もok

前スレ
次世代言語24 Go Nim Rust Swift Kotlin TypeScript
https://mevius.5ch.net/test/read.cgi/tech/1647887021/
2022/06/11(土) 14:30:04.70ID:gW5FFec0
Go→Rustになったのも遅いから理由だったしな
2022/06/11(土) 16:48:28.61ID:HmxRmWBo
> TypeScriptはJavaScriptの改良版と見なされることもありますが、実際はそうではない。
> 他の言語と同じように欠陥があります、最も重要なものの1つは、コンパイル時間が遅いことです。
> 小さなプロジェクトでは、純粋なJavaScriptからTypeScriptに切り替えるときにコンパイル時間が大幅に増加することはないかもしれませんが、複雑な、例えばReactのような大規模なプロジェクトでは顕著になります。
> ランタイムのサイズが大きいことを考えると、DenoがTypeScriptを止めるのも当然のことです。
>
> 開発中の型チェックは、コンパイル時にコストがかかります。

ようするにTypeScriptは巨大プロジェクトに向いてないのか
Microsoftは巨大プロジェクトのノウハウなんて膨大に持ってるだろ、なんとかしろよ・・・
2022/06/11(土) 17:15:19.17ID:Q3eIHQbE
時間掛かるから型チェックやめまーす
ってじゃあそのチェック何で代替すんねん
指さしヨシッでもすんのか?
バカじゃねーの
2022/06/11(土) 17:26:46.05ID:/CWj/UNa
テスト書くから必要ないって事だろ
文盲か(何故か変換できない)?
2022/06/11(土) 18:42:07.57ID:R6kVrTwR
wasmにコンパイルされる専用言語が待たれるという説
2022/06/11(土) 19:13:02.17ID:Lxou0O6d
TSにはインクリメンタルビルドの仕組みがなくてファイル変更のたび毎回フルビルドが必要なの?
2022/06/11(土) 19:29:52.04ID:s2pWM27P
本当に欲しいのは制約であって型ではないし
2022/06/11(土) 19:35:24.48ID:Lxou0O6d
>>748
制約を明示したり強制したりするのにリーズナブルだから型が使われているんだと思うが
何で代替しようとしているの?
2022/06/11(土) 19:46:54.60ID:DMnkzfH9
>>749
型は制約じゃないぞ
階層理論の産物さ
制約とはtrait systemのことさ
2022/06/11(土) 20:03:26.11ID:CaCwxZ5g
窓の杜: 「Rust」でOSの自作に挑戦! 低レイヤーシステム開発の解説書『Rustで始める自作組込みOS入門』が発売.
https://forest.watch.impress.co.jp/docs/bookwatch/news/1416093.html
752デフォルトの名無しさん
垢版 |
2022/06/11(土) 20:15:54.30ID:Kh7p4488
>>742
コンパイル時間でGoに勝てる言語ってある?
2022/06/11(土) 20:18:17.35ID:gW5FFec0
>>752
出来上がったバイナリ(deno本体)の実効速度の話ね
2022/06/11(土) 20:38:23.65ID:vVSWS2tb
>>752
DとGoはどちらが速い?
2022/06/11(土) 20:38:55.36ID:Q3eIHQbE
>>745
例えばある関数がnumberだけ返すことをテストで網羅できんの?
2022/06/11(土) 20:55:28.16ID:gW5FFec0
D言語って今ちょうどver2.100.0なんだね
2022/06/11(土) 21:05:03.93ID:DMnkzfH9
正直言ってD言語とかの存在価値がわからないんだが使っている人いるの?
758デフォルトの名無しさん
垢版 |
2022/06/11(土) 21:11:25.04ID:Kh7p4488
>>753
何言ってんだこいつ
Denoはコンパイル時間って言ってるんだが
2022/06/11(土) 21:14:34.94ID:Q3eIHQbE
これだからトーシロはダメ
2022/06/11(土) 21:26:17.06ID:gW5FFec0
>>758
Go→RustもTS→JS
どっちも一貫してDeno自体の実行速度を最優先してるわけよ
2022/06/11(土) 21:48:50.29ID:qsQNDkHz
tsで問題視してたのはコンパイル時間の方じゃね?
2022/06/11(土) 21:55:33.13ID:N9Pa64KK
Denoのjsってそんなに大規模か?
VSCodeなんかに比べたら全然大した量じゃないように見えるが
ビルドパイプラインがヘボいんじゃね
763デフォルトの名無しさん
垢版 |
2022/06/11(土) 22:14:50.96ID:Kh7p4488
>>760
文盲乙
2022/06/11(土) 22:17:19.48ID:gW5FFec0
>>761
その時間ってもろホットリロードのタイムラグなわけじゃん
2022/06/11(土) 23:00:17.90ID:Q3eIHQbE
Denoチームの連中が低学歴なんだろ
バカばっか
2022/06/11(土) 23:13:10.68ID:SJ0jyJTM
Rustのようにかなり強力にコンパイル時エラーでほとんどの問題を排除してくれる堅さとは異なり
TypeScriptは型チェックしかしてくれず元のJavaScriptの緩さから本質的には変わっていない
本体はがっちりRustで作りあとはJavaScriptという方針は間違っていない
2022/06/11(土) 23:15:22.91ID:Nh4QsFq2
確かにRustのコンパイルが遅いのが嫌だという意見はわかる。”C++より早いだろ?”とか”嘘つき!Rust速い!”とかコメントしなくてあ、結構です
仕組み上トレイトの組み合わせで遅くなるのはわかるんだが、もう少しどうにかならんかの?
2022/06/12(日) 00:08:25.22ID:GJbjpRb8
>>765
学歴コンプのある人はすーぐ学歴の問題にする
2022/06/12(日) 00:22:54.09ID:WtY28DSr
>>768
ハーバードでMBA持ってるけどな
F欄は口くせーから喋んなゴミ
2022/06/12(日) 00:34:08.70ID:C1U3DU3t
掲示板ではなんとでも言える
2022/06/12(日) 01:47:05.21ID:mpYnOnxd
>>769
知性のかけらも感じさせないレスだわね
2022/06/12(日) 02:09:11.61ID:p7K2g0W9
プログラミングにも理解があって英語ぺらっぺらな海外トップ学歴の経営人材なのに
日本語の匿名掲示板という狭い世界で推し言語の擁護にムキになってるとはご乱心だな
2022/06/12(日) 06:32:40.30ID:V1ZBG4pG
>>755
当然
774デフォルトの名無しさん
垢版 |
2022/06/12(日) 06:42:11.19ID:OtYNM0HI
Javascriptに対するTypescriptってCに対するC++みたいなもんだろ?
その気になればある程度まともな型システムは使うことができる程度
2022/06/12(日) 08:25:07.16ID:54GVQ0UL
結局地がjsな以上互換性を保ちながら完全に型で覆うのは難しいよねって
まぁPurescriptみたいになってもらっても困るんだが……
2022/06/12(日) 08:59:49.71ID:Znbho8o6
JVMバイトコードに対するScalaみたいなもん
Java書くより罠が多いけど圧倒的に便利
バイトコードを直接書く阿呆はいない
こんな感じ
2022/06/12(日) 09:50:18.87ID:6guykT66
さすがにそこまでじゃない
JSをそれなりの規模で使いたければTS使った方が楽なのは確か
2022/06/12(日) 10:29:55.16ID:UPLi/RM9
denoてどのくらいnodeからの移行が進んでるんだろ?
2022/06/12(日) 11:30:16.99ID:C1U3DU3t
serialportとかちゃんと使えるならラズパイとかで使ってみたいな
2022/06/12(日) 12:13:55.79ID:TLk1B+cK
>>778
進まないから今現在必死に最適化してるんだろう
2022/06/12(日) 13:11:27.34ID:eghQJQYK
少なくともそのQiitaには、Denoの実行速度が遅いからJavaScriptに移行した、とまでは書いてないと思うんだけど、なんか誤読してる人多い?
Denoの実行速度が遅いからじゃなくて、Deno自体のビルド速度が遅くてDenoを開発する人にとって辛いから移行したんでしょ?
2022/06/12(日) 13:21:32.88ID:Znbho8o6
いやそこ誤読してる文盲はおらんやろ・・・おらんやら?
2022/06/12(日) 15:26:48.02ID:QJCkSZm+
typescriptのコンパイラはtypescriptで書かれてJavascriptにして実行されてるから遅いんだろう
言語としてはセルフコンパイルしたいし、いろんな環境で動かすためでもあるし
でもrustとかで書いてもいいのでは
2022/06/12(日) 15:28:48.97ID:QJCkSZm+
マシン語にしてるわけでもないし、処理としてはコンパイラとしては軽い方だから
rustにしたら爆速になるのでは
2022/06/12(日) 15:49:11.35ID:kUS96AVF
Kotlinとか確か開発者がロシアじゃなかったっけ?もうオープンソースだから米国的にはOKなの?
2022/06/12(日) 20:58:25.55ID:+vN+62Vi
いち早くロシアの侵攻を批難する声明を出したから許されてるんだろう
2022/06/12(日) 22:01:47.21ID:L2pGDO9p
>>786
いち早く出してねーよ
ロシア政府なみの嘘つくな

最初のツイートはロシアのプロパガンダと同じ巧妙な内容で反感買いまくってから追加で声明出したんだろ
2022/06/12(日) 22:19:05.57ID:e/a7Unpq
JetBrainsのサンクトペテルブルクのオフィスとブラハのオフィス(本社)の写真みたけどすげぇ格差だったわ
ああいうの見ると建前上の本社を東京に置いてる中華企業と体質が同じに感じてもう一つ信用できない
789デフォルトの名無しさん
垢版 |
2022/06/13(月) 02:53:25.83ID:asZan2yI
tsの変換や型チェック処理する機能はgoやrustで書き直すプロジェクト進行中だから
そこは欠点じゃないよね
2022/06/13(月) 03:23:11.66ID:aNdPD0Bj
PHP+味付け程度にJSでシステム作ってる化石野郎でも応用効く言語教えやがれください
2022/06/13(月) 03:50:52.66ID:dm71PatD
またPHPの話してる
2022/06/13(月) 05:19:59.34ID:eNTeJ/va
PHPに勝ったところで次世代PHPにしかならないのに?
2022/06/13(月) 07:43:09.16ID:fjH64UU8
PHPってマジで話聞かなくなったよな
使ってるのって2010年代の旧システム?
2022/06/13(月) 09:29:29.62ID:dm71PatD
ワードプレスはもうPHPじゃなくなったのか?
2022/06/13(月) 09:30:42.95ID:eNTeJ/va
次世代言語すげー
2022/06/13(月) 19:42:18.44ID:FiSspViM
Goにオプショナル型とスプレッド構文とmap,reduce,filterのコネクション系操作が入ったら最高なんだけど
Go 2だとかで機能増やしてくれないかな
2022/06/13(月) 19:52:35.02ID:FiSspViM
Typescriptの糞なところ

標準ライブラリがゴミ、ゆえに依存が爆発的に増える
巨大node_modules、プロジェクトごとに作られるのが最高に糞
commonjsやらesmodulesやら統一されていないモジュール形式
prettierやらtsconfigやら大量の面倒な設定
サードパーティーのライブラリに向かってコードジャンプしても型定義ファイルに飛ぶせいでコードが読めない、ゆえにGithubを見に行く必要がある
例外の型定義がないので静的検査ができない、どこでエラーをどうハンドリングするべきかの判断が全くつかない、ゆえに全体をtry catchで囲むことになる

この辺がすべてGoでは問題ないから、あとは少し機能増やしてくれたら文句ないんだよなー
2022/06/13(月) 21:04:41.26ID:fjH64UU8
GoのMap糞過ぎて全く読めない
JSONをそのまま使えっておまけに型までつくTSさいつよってことなんよ
799デフォルトの名無しさん
垢版 |
2022/06/13(月) 21:39:05.94ID:G3CRt2bF
構造体作ってマッピングするのじゃ何がダメなの?必要なのだけ定義すればいいんだが?
Typescriptだと型ガードしっかり書かないとただのなんちゃって状態になる雑魚
2022/06/13(月) 21:47:26.95ID:SDmJj53H
>>797
>サードパーティーのライブラリに向かってコードジャンプしても型定義ファイルに飛ぶせいでコードが読めない、ゆえにGithubを見に行く必要がある

「Atom」を開発終了に追いやった「Visual Studio Code」、月例更新でさらに強力に
https://forest.watch.impress.co.jp/docs/news/1416263.html

TypeScript開発では「TypeScript 4.7」が導入されたほか、待望の[ソース定義への移動]がサポートされた。100%の確度ではないが、型定義ファイル(*.d.ts)ではなく、JavaScriptによる実装部分へ直接ジャンプできる。
https://twitter.com/mattbierner/status/1517182624917340162
https://twitter.com/5chan_nel (5ch newer account)
2022/06/13(月) 22:06:28.03ID:FiSspViM
>>800
おーこんなのあったんだ、ありがとー
適当に試してみたけどできないのも結構あるね
2022/06/13(月) 22:32:02.90ID:GDAgVCx4
標準ライブラリ大きいのと小さいのどっちが良いのかね
2022/06/13(月) 22:36:53.23ID:q8SxO5f8
大きくて、APIが安定していて、ゴミが少ないやつが良い
スレタイの中だとGoだろうな
2022/06/14(火) 00:15:44.86ID:FCklzJDr
goはpackageの命名が糞杉
_すら許さないからどいつもこいつも呪文みたいになって可読性最悪
805デフォルトの名無しさん
垢版 |
2022/06/14(火) 11:26:15.39ID:Rf4XfD/C
Dも_を変な扱いしてたな
2022/06/14(火) 11:32:38.45ID:8A+wXs8O
Effective Goでは、パッケージ名は1単語にしよう、って書かれてるけど、アンダースコアや大文字小文字が使えないわけではないよ

どうせ1単語とかいう命名規約はあまり守られてないだろうし、つらいならそのへんの規約も破っちゃえば?
2022/06/14(火) 12:24:42.88ID:yie2XOKe
アンダスコアはPythonが悪い
2022/06/14(火) 14:45:46.33ID:Hct9Q+tn
いまだにgenrandom, gen_raondom, genRandom, GenRandomのどれがいいかわからん
PythonやってるとgenrandomだがJavaScriptもやるからgenRandomも使う
GoもやるとなったらGenRandomまで使わんといかん
いったいどれがいいんだ?
誰か俺に教えてくれ
2022/06/14(火) 14:49:34.72ID:0h5AdYzJ
言語の推奨に従ってください
2022/06/14(火) 17:17:08.52ID:zltAtr9K
CSSならlong-name-propertyだし、JSONならLong_Name_Property、SQLならLONG_NAME_PROPERTYまたは
long_name_property、JSなど言語ならlongNamePropery、でも定数ならLONG_NAME_PROPERTY、CSVなどなら
Long Name Propertyだ。
そして、JavaやC#、C/C++、PythonやGoでもRustでも命名規則(多くは悪魔でも推奨)のようなものがあり、歴史的な経緯と
作者の今日子な意思、プログラミングのしずらさ、あるいはシヤスサ、あるいはコードレビューマウントのために脈々と受け継がれる。
つまり、人類はいまだに命名の正解を得ていない・・・
モジュール snake_case
型 CamelCase
トレイト CamelCase
Enumのバリアント CamelCase
関数 snake_case
2022/06/14(火) 17:26:35.25ID:OVbm/pyy
言語内で閉じるなら慣習に従うだけだけど言語またがる時は迷うよね
2022/06/14(火) 17:49:20.30ID:8A+wXs8O
標準ライブラリは名前が綺麗なのに、自分で命名しようとすると難しくて悲しい
2022/06/14(火) 17:55:42.15ID:jATTslXV
そうでもないぞ
RustのThe Bookに出てくる乱数のほぼ標準ライブラリは非常に名前が汚い
馬鹿が考えたような名前と構造
2022/06/14(火) 17:58:02.15ID:jATTslXV
Goも標準ライブラリが汚い
仕組みも複雑
2022/06/14(火) 17:58:54.42ID:yie2XOKe
C++とJavaも大概だわ
2022/06/14(火) 18:01:35.42ID:FCklzJDr
>>810
なおGoはlongnameproperty

ガイジか?
2022/06/14(火) 18:02:29.74ID:FCklzJDr
>>815
Goは後発の分際であの体たらく
どんな頭弱が作ったのか顔が見てみてーわ
2022/06/14(火) 18:08:01.45ID:jATTslXV
Goのstrconv::atoi()って

悲しくなるわ
2022/06/14(火) 18:13:47.77ID:Ypv3OCUB
>>804
_ "github.com/mattn/go-sqlite3"

>>806
だね、触ったこともない人が騒いでるだけ。とんでもねえアホ
2022/06/14(火) 18:18:15.24ID:wSQCOwvw
>>818
std::num::strconv::float_to_str_bytes_common
(´;ω;`)w
2022/06/14(火) 18:20:27.99ID:jATTslXV
golang入門したころにファイルの読み書きや文字の扱いのライブラリを見て愕然としたな
こういう世界がまだあるんだなって
2022/06/14(火) 18:31:08.14ID:OVbm/pyy
>>817
goの作者知らんのか...
2022/06/14(火) 18:32:45.87ID:FCklzJDr
>>819
golintでエラーだぞ
おまえこそエアプだろカス
PHPでも書いてろ
2022/06/14(火) 18:35:13.31ID:jATTslXV
goの作者の一人は有名人過ぎるけどもう後進に道を譲れよよ思う
825デフォルトの名無しさん
垢版 |
2022/06/14(火) 18:40:13.93ID:xmR5ySSw
>>821
file, err := os.OpenFile("foo.txt", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0777)
これがキレイだとは決して思わんが....

let mut file = File::options().read(true).write(true).open("foo.txt")?;
これもどうかと思うぞ?何故、直感的ではないoptionsでopenに繋げるチェーンなのか..確かにオプションの設定はpanicが起こらないから
言語的な理由(言い訳)は分かる。でもRustってオプション扱いを第二引数にしない思想があるんだろうか...

>>822
デニス・リッチーとかC言語の作者とかだからC言語のライブラリと似た名前になるはある意味当たり前だよなあ
2022/06/14(火) 18:46:33.92ID:jATTslXV
>>825
Rustの標準ライブラリが汚い理由はオーバーロードがない、デフォルト引数がないから
2022/06/14(火) 18:47:21.55ID:8A+wXs8O
デニス・リッチーが直接に関わったという話は聞いたことないけど、ケン・トンプソンと勘違いしているのだろうか
親しい人物たちではある
2022/06/14(火) 18:47:26.18ID:jATTslXV
そして弱点を補うためにマクロを使ってるから汚い
2022/06/14(火) 18:50:32.39ID:FCklzJDr
>>822
有名と有能は違うぞ
どこぞの通貨危機衰退先進国のゲリ首相は有名だが有能か?
2022/06/14(火) 18:54:01.24ID:jATTslXV
幼稚園児がいる模様
2022/06/14(火) 18:56:01.59ID:jATTslXV
>>829
画像あるから普通に顔見てみたいなら見ればいいでちゅよ?
2022/06/14(火) 19:02:21.29ID:OVbm/pyy
>>829
有名人だから顔なんてネットに溢れてるんだからとっとと見て好きなだけ罵倒してきなよ
2022/06/14(火) 19:15:33.51ID:eqeTk7gF
Goのモジュールシステムシンプルでわかりやすいと思うけどな
フォルダでパッケージ表すだけだし
名前で困るってのがよくわからないけど必要以上に作ってるんじゃないの?

Rustのほうが複雑で意味不明だと思うんだが
834デフォルトの名無しさん
垢版 |
2022/06/14(火) 19:21:23.05ID:bI70PJIL
Don't you know you know?
2022/06/14(火) 19:37:19.54ID:nghM89d8
>>825
メソッドチェーンでオプション書くの大嫌い
単なるデータは普通にデータとして書かせてくれ
2022/06/14(火) 19:52:21.06ID:0h5AdYzJ
>>825
君その話前にもRustスレでしてなかった?
2022/06/14(火) 19:54:38.26ID:GHB3UZAZ
ケン・トンプソンなんかおまえ
この業界に居たらまさに神様みたいな存在で
それより上がおらんくらいのハッカーなんだから
こんなクソスレで軽々しく名前出すのすら憚られるやろフツーに
2022/06/14(火) 20:00:51.53ID:GHB3UZAZ
> ile, err := os.OpenFile( os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0777)
> let mut file = File::options().read(true).write(true).open("foo.txt")?;

File.open('foo.txt', 'w'){|f| ... }
やっぱrubyがスッキリやね
2022/06/14(火) 20:30:21.52ID:FCklzJDr
>>837
The 老害やな
長いものに巻かれろ、年長者は無条件に敬え、右に倣え、出る杭は打て、死なば諸共
これが衰退先進国糞バカ中世ジャップランド土人村の末路
2022/06/14(火) 20:46:16.55ID:8A+wXs8O
異次元すぎて逆にかわいい
2022/06/14(火) 21:16:23.17ID:GHB3UZAZ
滑稽を通り越した何かだな
2022/06/14(火) 21:39:51.47ID:yie2XOKe
老害ロールプレイ楽しいか
■ このスレッドは過去ログ倉庫に格納されています