次世代言語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(土) 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
老害ロールプレイ楽しいか
2022/06/14(火) 23:27:33.27ID:jATTslXV
Rustは通常の言語仕様で欠落してる部分がある
それをマクロで補っている
2022/06/15(水) 00:03:02.45ID:clxQJqr6
>>826
デフォルト引数やキーワード引数が欲しいのは分かるけどオーバーロードが欲しいのはなぜ?
2022/06/15(水) 00:09:27.56ID:a3eoLX8e
>>844
JAVA出身だから
2022/06/15(水) 00:50:48.06ID:pzXtsAzL
オーバーロードは直感的だから
2022/06/15(水) 00:56:03.07ID:pzXtsAzL
デフォルト引数が必要だと思うならそれはもう関数オーバーロードが必要だとおもっていることと同義だろ
848デフォルトの名無しさん
垢版 |
2022/06/15(水) 01:27:19.31ID:SBK/Y+J6
>>825
C:f= open(out, O_WRONLY|O_CREAT|O_TRUNC, 0777);
D:auto to = File("output.txt", "wb");
Erlang:{ok, Contents} = file:read_file( "input.txt" ),
Fortran(2003):open(in, file="input.txt", status="old", action="read", access="stream", iostat=err)
Basic(Free Basic/VB):Open "input.txt" For Input As #1
Nim:var f = open "output.txt", fmWrite
Objective-C:NSData *data = [NSData dataWithContentsOfFile:@"input.txt"];
Perl:open my $fh_in, '<', 'input.txt' or die "$!";
Python:infile = open('input.txt', 'r')
Tcl:set infile [open "input.txt" r]

Rustは異質、ド変態はFortranとObjective-C。Swiftは知らん
2022/06/15(水) 03:18:03.71ID:x0I/jK+a
>>848
こう見るとPythonが一番美しいな
例外あるからエラー処理省略できるし
これが良いかどうかはまた別の話として
2022/06/15(水) 03:22:52.73ID:tT/4QRGb
一般的にデータを初期化する際にいくつもの数のオプション値指定が存在するものが多い
デフォルト引数にしても1つ目と2つ目はデフォルト値でいいけど3つ目は指定したいなど歯抜けでわかりにくくなる

そこで一般的にその問題を解決するオプション指定方法としてビルダー方式がある
ビルダー方式では指定したいオプション値のみをビルダーに対してオプション指定メソッド(の必要ならチェーン)で指定していくものである
あるオプション指定は同時に2つのデータを与えなければならない場合でもこのビルダー方式ではメソッド引数2個で矛盾なくシンプルに表せる
さらに型チェックの厳しい言語ともこのビルダー方式は相性が良く各オプション指定メソッド別に曖昧なく厳格に型宣言できる

ちなみにRustではこのビルダー方式の有用性&利便性が広まり後からこのビルダー方式に移行したものもあるほどである
2022/06/15(水) 03:32:06.02ID:tT/4QRGb
>>849
Rustは例外機構がないからもっとエラー処理がシンプル
「?」一文字付加するだけで(必要ならエラー自動変換しつつ)上位関数にエラー処理委任できる
そのため例外機構がなくても記述がシンプルかつ同様のことが出来るだけでなくエラー処理忘れなどもコンパイル時に指摘してくれて安全
2022/06/15(水) 06:09:36.05ID:sEZPBRlz
こんだけ色々な言語が乱立するってコンピュータの世界はバベルの塔だわ
853デフォルトの名無しさん
垢版 |
2022/06/15(水) 15:47:16.86ID:IEWflW3G
コンピューターはバビルの塔
2022/06/15(水) 18:32:44.57ID:oaz3/shQ
賽の河原での石積みに
昔から例えられている
855デフォルトの名無しさん
垢版 |
2022/06/15(水) 19:56:50.22ID:IqYclFLA
twitterの「スタバでMacを開くエンジニア」って奴ほんと嫌い
qiitaの記事も大したこと書いていないわりに結構な頻度でバズってて流れて来るから目障りだわ
技術力ないから逆にわかってませんアピールを武器にしていっている印象受けるんだがエンジニア畑にああいうネタ系の自虐するノリほんまいらねえよ
エンジニア畑でバズるの狙うなら純粋に技術力の高さで競っていけよって思う
2022/06/15(水) 23:05:23.86ID:a3eoLX8e
なおそのQiita記事に助けられてるもよう
2022/06/15(水) 23:58:49.93ID:NtuuvbZ6
大したことないって書いてあるだろ…
2022/06/16(木) 00:21:07.28ID:N0TE7UEH
その大したことない記事に助けられてるからバカにされてるんだろアスペw
2022/06/16(木) 10:40:11.20ID:oOjZlu3s
コピペしてすぐ使えるコードが出ている
Qiita記事は役に立つよ
具体的な手順が書いてない記事はゴミ
860デフォルトの名無しさん
垢版 |
2022/06/16(木) 10:47:19.76ID:OyMwP3lE
qiitaもワイもアカウント持ってて投稿したりしてるぐらいだから別に否定しているわけではないんだが
qiitaがクソだと言っている分けではなくてただこいつがqiitaに載せている記事すべてが糞だっていう意味を言っている
気になるんなら見とけよ内容もtwitter上を跋扈するいわゆる情報商材系サイトのそれに近くて技術的な要素を一切含んでいない
https://qiita.com/SMAC
2022/06/16(木) 11:28:53.21ID:jHsLwKQ/
ここはお前の日記帳かよ
というか「スタバでMacを開くエンジニア」って固有名詞かよ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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