次世代言語26 TypeScript Swift Go Kotlin Nim

■ このスレッドは過去ログ倉庫に格納されています
2022/06/21(火) 09:27:46.30ID:5vOFCGpG
スレタイ(順番はRedMonk準拠)以外の言語もok

※ Rustは現世代最強言語なので除外します

前スレ

次世代言語25 TypeScript Swift Go Kotlin Rust Nim
https://mevius.5ch.net/test/read.cgi/tech/1650185555/
2022/07/26(火) 23:12:57.71ID:gsmRiHCH
>>531
Nim言語はマルウェアを作る人達に使われているらしい。
アンチウィルスソフトは単純なパターンマッチングで動いているから、
悪いことしないNimのコードでもマルウェアだと誤検出されてしまうらしい。
2022/07/27(水) 00:56:57.97ID:DVht3D3b
>>537
これgrepが一番速いけどagとかripgrepだとどうなるの?
2022/07/27(水) 01:28:29.17ID:9E9DYfCO
Cで書かれたgrepより、Goで書かれたptのほうが早いし高機能だよ
2022/07/27(水) 01:34:47.64ID:mzblDH8U
まあぶっちゃけ他の言語でもgrepと同じように
trieみたいな文字列処理用のアルゴリズム使えば速度はだいぶ変わると思うけどね
なんで泥臭い処理を書いてるのか
そりゃgrepが1番早いだろと
2022/07/27(水) 02:00:24.66ID:mzblDH8U
言語の速度を比較するというのならアルゴリズムは揃えるべき
でないと何が何やらわからない
2022/07/27(水) 02:42:12.43ID:RFLOe/ZA
grepは`grep foobar`を実行してファイルをなめてるだけだぞ
544デフォルトの名無しさん
垢版 |
2022/07/27(水) 04:04:05.75ID:ogiMaWw7
RustコンパイラはC++で書かれている。
2022/07/27(水) 04:20:50.92ID:0dTQJF2a
NimコンパイラはNimで書かれている。
けどgccだけからNimコンパイラをビルドできるようにするためにNimのコンパイラのソースコードをC言語に変換したもの(csources_v1)がある。
2022/07/27(水) 06:50:28.42ID:mzblDH8U
>>543
だからgrepのアルゴリズムのことだよ
2022/07/27(水) 06:50:42.76ID:mzblDH8U
>>544
あの、rustで書かれてます
2022/07/27(水) 08:43:02.13ID:jeHuuvJh
毎月のようにバージョンアップしろと言ってくるこの原因はメモリ解放ミス?

Chrome version 103 脆弱性
[重要]CVE-2022-2477 : Guest View解放後の使用による問題
[重要]CVE-2022-2478 : PDF解放後の使用による問題
[重要]CVE-2022-2480 : Service Worker API解放後の使用による問題
[重要]CVE-2022-2481: Views解放後の使用による問題
2022/07/27(水) 09:03:50.25ID:xJ8anoa4
>>546
アルゴリズム以前にやってる事が違うだろ...
2022/07/27(水) 10:01:21.94ID:+1BW8lNB
>>548
解放のミスというより参照のミス(エスケープ)だね
2022/07/27(水) 10:53:41.19ID:eJc+JUck
>>548
Rustへ移行すればそういうバグはコンパイル時にエラーとなるため確実に防げる
2022/07/27(水) 10:56:48.68ID:BnCx/rjI
>>541
grepはBoyer-Mooreでトライ木は使わない

Rustでハッシュベースの辞書の代わりにトライ木使ってるバージョンがあってそっちの方が多少速かったけどアルゴリズム的に優れてるというよりは対象データ依存
2022/07/27(水) 11:24:12.26ID:u+Gi34S+
複数単語マッチングとかでもないのにトライ使う必要性がそもそもない。
めちゃくちゃな理解してる奴が多すぎだな。
2022/07/27(水) 14:15:44.70ID:KqwEERri
>そりゃgrepが1番早いだろと
>そりゃgrepが1番早いだろと
>そりゃgrepが1番早いだろと
2022/07/27(水) 16:20:29.48ID:U29fl458
>>549
だから>>541は全言語で同じアルゴリズムでgrepを実装してと比較せよと言ってるんでしょ

トライだろうかボイヤームーアだろうがなんでも良いが漸近的な計算量が確定してるようなデータ構造に揃える

データ構造依存するなら尚更
全ての文字列のprefixが同じだとしたらどうなるか?
めちゃくちゃ長い文字列だとしたら?
例えばGCが発動しない状態のGoは流石に速いでしょう

全部同じアルゴリズムかつ同じような状態を実現するコードでないと言語の速度比較など意味がないというのはわかる

今回のように実装者によってゴミコード書いて遅い!とか騒いでるバカには辟易する

自分がバカなのに他人をバカ呼ばわりしてるんだからな
2022/07/27(水) 16:48:07.16ID:9E9DYfCO
全く同じアルゴリズムで比較するべきとか言い出すならそもそもこんな複雑なタスクでベンチマークするのがおかしい
もっと簡単なタスクをいろいろ用意してそれぞれでベンチマーク比較したほうがいい
557デフォルトの名無しさん
垢版 |
2022/07/27(水) 17:31:41.43ID:ABAu9/vb
言語の生産性が低いからクソ遅いゴミコードがベンチマークにかけられてる説
生産性が高かったら、速いコードをシュッと書けるよね?
2022/07/27(水) 17:32:27.80ID:DVht3D3b
>>556
>>506で貼ったサイトがまさにそれをやっている
2022/07/27(水) 18:10:30.67ID:sVsDKGUs
>だから>>541は全言語で同じアルゴリズムでgrepを実装してと比較せよと言ってるんでしょ

全言語同じアルゴリズムでgrep実装したら
「そりゃgrepが1番早いだろと」という結論になるんだww
嘘つき加減がアベノシグサだね
2022/07/27(水) 18:18:20.30ID:H9RPm4O1
そうかな

一般的で複雑な機能を持った汎用性の高い標準ライブラリを使うと遅くなり
手書きでベタのアルゴリズムを書いたら早くなるとする

それは意味のある比較なんだろうか?
2022/07/27(水) 19:00:59.22ID:xJ8anoa4
>>555
だからアルゴリズム以前にやってる事が違うからgrepやwcなんて比較しても意味ないぞ
ワード毎のカウントにBoyer-Mooreなんて使えないし>>430のリンク先にも
Note that grep and wc don’t actually solve the word counting problem, they’re just here for comparison.
って書いてある
まあそもそもなんでgrepやwcを載せてるのかはよくわからんけど
2022/07/27(水) 19:12:28.53ID:H9RPm4O1
wcが乗ってる理由がわからないなら病気だと思うわ
2022/07/27(水) 19:46:09.22ID:4voLS+/5
https://res.cloudinary.com/practicaldev/image/fetch/s--n3XlUkmN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cqj6u280qmdwq7fgnw5h.png

deno=Rust

これがすべてじゃね?
2022/07/27(水) 20:07:25.39ID:xJ8anoa4
>>562
マジで言ってるのか?w
man wc でググった方がいいぞ
2022/07/27(水) 20:29:09.02ID:mzblDH8U
>>555
そうそう
全く違うものを比較しても無意味ってことを言いたかった
俺がバカすぎてみんなに伝わらなかったようだw
まあこの比較自体にそこまで本気になるのは俺らぐらいだと思うw
しかしあなたの計算量やアルゴリズムを考慮した考え方のセンスは素晴らしい
言語間のベンチマークなんて余程のことでない限り成立しないのにやたらやりたがるよな
Rust使い以外はこんな人ばっかなのか?
2022/07/27(水) 21:01:28.44ID:FD7fUZPx
散々書かれてるけどもgrepは存在しないfoobarを探したときの速度だしwcは単語数を数えてるだけでベンチに使われてるプログラムのように出てきた単語の数を数えたりはしてないぞ。
マシンパワーの指標と考えるべきだろうな
567デフォルトの名無しさん
垢版 |
2022/07/27(水) 21:14:23.71ID:Bpp5zdZY
そんなこと言ったら嬉々としてこのベンチマーク探してきたドヤってた >430 か顔真っ赤にしてしまうだろ。
2022/07/27(水) 21:20:19.70ID:U29fl458
>>565
少なくともC/C++/Rustの比較は無意味

メモリ使用量などを除けばマシンコードとして同一のものを吐き出すことは理論的には可能だから

突き詰めればそれが最速ということになる

つまり無意味

そういうことがわかってない人が言語間のベンチをやってるんだと思うよ
2022/07/27(水) 21:32:29.18ID:H9RPm4O1
>>568
理論的に可能?
馬鹿なんじゃない?
2022/07/27(水) 21:38:26.34ID:H9RPm4O1
声のデカい馬鹿がイキってるのがこのスレとRustスレ
2022/07/27(水) 21:40:35.04ID:mzblDH8U
>>568
Optimizeを出した時点でそうなるよね
一般的な書き方で速い言語はどれか?って切り口にしとけば面白かったのに
Optimizeとかしちゃったら余計なランタイムがついてくるGoや他の言語が速いわけがない
めちゃくちゃ勉強になる
2022/07/27(水) 21:44:09.15ID:H9RPm4O1
普通に意味あるだろ

普通にカスタマイズせずにその言語で普通に書くとどうなるかとある程度意識して書いたらどうか
それの比較に意味がないと思うならその程度なんだろうけど
2022/07/27(水) 21:46:34.35ID:H9RPm4O1
意味がないと思うなら書き込みするな
わざわざでてくんな
2022/07/27(水) 21:55:07.13ID:U29fl458
俺にとっては無意味と言ってるだけで別に意見は好きに言っていいよ

それが掲示板だ

それこそ*意味*があるなら好きにすればよろしい

俺は言語間のベンチマークは少なくとも平均計算量が理論的に導出されていて

そのアルゴリズムとデータを使い

外部ライブラリも使わずに極力プリミティブに書いて初めて意味があるものと思っている
2022/07/27(水) 21:58:12.88ID:U29fl458
ちなみに文字列処理のアルゴリズムは理論的に研究され尽くしてて

ほとんどのアルゴリズムの論文にきちんと計算量を求める式がある 

まあそれがない論文は相手にされないわけだが

話が逸れたが以上となる

これ以上言いたいこともないのでしばらくROMることにする

また面白い話題があれば口を挟むかもしれない
2022/07/27(水) 22:01:49.88ID:xJ8anoa4
>>567
いや、grepとwcは別だって明記してあるんだからそれ以外の比較は意味あるだろ
577デフォルトの名無しさん
垢版 |
2022/07/27(水) 23:31:40.93ID:ogiMaWw7
RustはPHPやPythonより遅かった。
PHPはなぜか速かった。
これが全て。
578デフォルトの名無しさん
垢版 |
2022/07/27(水) 23:36:21.59ID:ogiMaWw7
Rustの遅さより、PHPの早さに驚くベンチだろね。
579デフォルトの名無しさん
垢版 |
2022/07/27(水) 23:51:04.75ID:6nSf0k+r
意味の無いものでも普通に意味あると言い続ければ通るのが世の中よ。
580デフォルトの名無しさん
垢版 |
2022/07/27(水) 23:54:42.60ID:ogiMaWw7
どゆこと?
2022/07/27(水) 23:58:36.18ID:yuH/4Ewb
>>577
なぜそんな嘘を付くの?
Rustの方がはるかに速い結果が今回出たのに
582デフォルトの名無しさん
垢版 |
2022/07/27(水) 23:58:39.96ID:ogiMaWw7
https://news.yahoo.co.jp/articles/addb6c479375cce5a76ffeac75ef2d682f5c00aa

アワビには目や鼻、口があって、視力はもちろんあるし、海藻をかじってムシャムシャ食ってるらしいんですね。
カタツムリも巻貝で、虫ではないそうなんですよ。
カタツムリは目がありますよね。
アワビも巻貝なので目があるんだそうです。
583デフォルトの名無しさん
垢版 |
2022/07/27(水) 23:59:40.89ID:ogiMaWw7
>>581
うちではRustのほうが速かったと言い張ってる人がいるだけでしょ。
584デフォルトの名無しさん
垢版 |
2022/07/28(木) 00:00:06.26ID:GCXKHsjZ
むしろなんでRustはそんなに遅いの??
585デフォルトの名無しさん
垢版 |
2022/07/28(木) 00:01:18.06ID:GCXKHsjZ
Rustの遅さにお前が泣いた。
2022/07/28(木) 00:27:11.63ID:Prl5fpBJ
意味のあるベンチとなっていないという批判には同意だが
とりあえずこちらでも>>430の元のコードのまま確認の実行をしてみた

素人でも誰でも確認のための実行できるように実行したコマンドは以下
$ git clone https://github.com/benhoyt/countwords.git
$ cd countwords/
$ ./test.sh
$ ./benchmark.py
Timing `grep` 0.04 0.03
Timing `wc -w` 0.23 0.16
Timing C 0.74 0.19
Timing Go 0.91 0.33
Timing Rust 0.73 0.27
Timing C++ 1.49 0.24
Timing Python 1.70 1.05
Timing Ruby 2.79 2.06
...

このアルゴリズムなど各種バラバラの比較に意味があるとは思えないが
それでもRustが遅いという結果は出ていないな
2022/07/28(木) 01:19:15.66ID:pLtk3OpM
インタプ
>>578
rustは少なくともc++11よりは速い
588デフォルトの名無しさん
垢版 |
2022/07/28(木) 06:37:56.55ID:GCXKHsjZ
だが、PHPより遅い。
589デフォルトの名無しさん
垢版 |
2022/07/28(木) 07:12:43.60ID:ENEX/nTq
PHPが早い時点でベンチの方法に疑問を持つべき
2022/07/28(木) 10:51:31.30ID:GHBXY1WS
一般的な書き方で速いべき、という結論に誘導する手法に疑問を感じる

自分で断言すればすぐ終わることを他人の口から言わせることにエネルギーを使い過ぎ
2022/07/28(木) 11:44:26.44ID:Ohcf/kqZ
>>577
JITで実質コンパイルされた形になるのは分かるけどそれに最適化でも掛かってる?
2022/07/28(木) 13:06:21.33ID:rMVZEJvU
つまりはここまで全部PHPおじさんの自作自演てこと?
2022/07/28(木) 13:08:59.76ID:4pySRXlJ
PHPはインタプリタの割にはかなり速いのは事実だけど
流石にコンパイル言語より速いは普通は無いだろうなぁ
ただキャッシュされたら大きな差は出ない可能性はあるかもね
2022/07/28(木) 14:01:07.64ID:1GWFUzAq
JITをがんばればJavaやC#のような速度は出るだろう
2022/07/28(木) 14:05:09.32ID:XX9iY77s
だが、PHPより遅い。
2022/07/28(木) 18:04:41.85ID:egvelj9j
あーあ
壊れちゃった
597デフォルトの名無しさん
垢版 |
2022/07/28(木) 18:38:51.53ID:KME/vBwm
つまり >572 はPHPレベルということだ。
598デフォルトの名無しさん
垢版 |
2022/07/28(木) 19:00:49.91ID:dt3bZFXM
PHPごときに負けて恥ずかしくないの?
2022/07/28(木) 19:07:09.44ID:Vlf00JfE
でもメモリは安全だから
600デフォルトの名無しさん
垢版 |
2022/07/28(木) 19:08:34.61ID:dt3bZFXM
四季もあるの?
601デフォルトの名無しさん
垢版 |
2022/07/28(木) 19:36:49.43ID:Hv8PyQaz
PHPはNGワードで良いわもう
2022/07/28(木) 20:46:28.42ID:Prl5fpBJ
>>586で元のコード>>430のままでもRustがGoより速いとわかったが
RustがC++に負けている原因を探ると以下と判明
・Rust版の実行時間の6割以上がHashTableに費やされてる
・C版とC++版はカウント用Tableを自作しているため速い

そこで新Rust版ではC/C++版と同じアルゴリズム同じサイズのカウント用Tableを利用
またAndrew Gallant氏のRust optimized版はloop部分のコードがごちゃごちゃしているため
新Rust版ではひと目見ただけで分かる初心者でも書けるコードに改善した

これがその今回のRustコード
https://gist.github.com/rust-play/f03d2e73ee4e76acf69c98b7a8b8d322
これでC++版よりRust版が速くなった
2022/07/28(木) 20:54:03.33ID:Prl5fpBJ
>>602のRustコードを使った>>430の測定方法による結果(抜粋)

Language | Simple | Optimized | Notes
------------- | ------ | --------- | -----
Rust(New) | 0.73 | 0.21 | Optimizedが今回のソース
Rust | 0.73 | 0.27 | by Andrew Gallant
C | 0.74 | 0.19 |
Go | 0.91 | 0.33 |
PHP | 1.08 | | by Max Semenik
C++ | 1.49 | 0.24 | optimized by Jussi P, Adev, Nathan M

これでC言語よりはやや遅いが他の言語よりはRustが速くなった
Rustは「分かりやすく」「安全で」「高速な」コードを書けることが実証された
2022/07/28(木) 21:33:34.37ID:1GWFUzAq
実証された(主観)
605デフォルトの名無しさん
垢版 |
2022/07/28(木) 21:49:48.90ID:gNJf8oDl
>>604
主観の前に PHPerから見たが 抜けてるぞ
2022/07/28(木) 22:02:46.94ID:URQEvCBs
測定方法を含めて全てのソースコードが公開されて検証可能なのだから、
客観的に実証されたとみていいんじゃないの?
覆すにはRustより速いコードを出すしかない。
>>602のRustコードは、unsafeもトリッキーなところもなく、自然な容易なコードで速度が出てるのが凄い。
607デフォルトの名無しさん
垢版 |
2022/07/28(木) 22:41:13.22ID:Zn96MNxf
Cの後継はZig、C++の後継はCarbonというのが正しい認識である
Rustは一部の技術好きが個人開発に使う言語に留まるだろう
2022/07/28(木) 22:41:22.64ID:qCSJGPl5
なんだコロコロID変えんの
2022/07/28(木) 22:54:32.88ID:H9eYfDAM
Zigはsimpleのほうでいきなりarena使ってて
それありなんって感じ
610デフォルトの名無しさん
垢版 |
2022/07/28(木) 23:28:28.60ID:gNJf8oDl
>>607
はいはい、おじいちゃんもう寝る時間よ。
2022/07/29(金) 00:17:37.16ID:EtgvtbrZ
>>607
CarbonはC++と心中する人のための言語だよ
2022/07/29(金) 00:17:44.81ID:yNgWnjZL
>>602,606
この自演に気がつかないやつが一人でもいると思ってるのかな?
2022/07/29(金) 00:29:36.08ID:uVxzbE4m
>>602
やはりアルゴリズムの問題でそれが同じならC/C++/Rustで速度ほぼ同じなんだな
それなら抽象的にプログラミングしやすくコンパイラが安全保証してくれるRust一択だな
2022/07/29(金) 00:32:24.17ID:OiKISQZh
俺の環境だとPHPはそこまで速くないな
とはいえ確かにpythonとかよりは速い
C/C++/Rustはここと同じ感じ
2022/07/29(金) 00:38:05.70ID:OiKISQZh
俺の環境だとPHPとJavaScriptがほぼ五分の勝負をしてる
スクリプト言語最速はこの2つということで良いと思う
2022/07/29(金) 01:20:07.89ID:udomRyuy
スクリプト言語の差はコード実行の差じゃなくインタプリタの起動時間の差
617デフォルトの名無しさん
垢版 |
2022/07/29(金) 03:36:57.85ID:gYD9mcR9
安倍元総理がミネクールとかいう統一教会の信者さんが取り扱う水素水で調子が良いという記事がドンドン消えてるんだけど。
調べてみると、ミネクールって、神奈川県警とか神奈川県消防局とかに納入されてて警察官も水素水で調子が良いらしいですよ。
なぜかドンドン記事が消えてるけど。
618デフォルトの名無しさん
垢版 |
2022/07/29(金) 03:41:56.40ID:gYD9mcR9
防衛庁にも納入されてる・・・
統一教会凄いな。
619デフォルトの名無しさん
垢版 |
2022/07/29(金) 03:42:36.20ID:gYD9mcR9
安倍総理も飲んでるらしいよ。
水素水。
健康に良いんだって。
2022/07/29(金) 07:53:56.53ID:pXf+MkzI
>>603
Rustを遅いと叩くために持ち出してきたベンチマークだったはず
Rustが速いと証明されてしまったのか
2022/07/29(金) 08:12:44.41ID:SkJ6g9PS
よかった、Rustは遅くなかったんだね
2022/07/29(金) 08:26:08.76ID:eDL0B0tL
Rustが速い遅い以前にこんなの本当に流行るのか?
正直気持ちが悪い言語だと個人的には思う
2022/07/29(金) 08:42:53.70ID:CY+eCpzK
>>622
Rust参考に作ったコーダー向けサブセットc++か、所有権を使いやすく整理した別言語が出てくると思う。
624デフォルトの名無しさん
垢版 |
2022/07/29(金) 08:44:13.23ID:WJPXGLlJ
>>622
Visual Studioでデフォルトで選べるようになれば流行ると思う
2022/07/29(金) 09:00:33.06ID:WG/TpH2M
Rustのムーブセマンティクスに慣れると逆にC++が気持ち悪くてしょうがないな
個人的に所有権は十分洗練されてると思うからasync周りをなんとかした新言語希望
2022/07/29(金) 09:03:23.24ID:A+PRMWKN
分かる
Rustの気持ち悪さは異常
まず文法が気持ち悪い
selfの省略記法が気持ち悪い
2022/07/29(金) 09:11:36.03ID:EU2uG2Km
Nimがシンプル版で最強だから最強言語はNim
2022/07/29(金) 09:17:48.94ID:47SIIXKm
>>624
逆だろ
流行ればVSにもデフォもしくはNuGetで準備してくれるだろう
629デフォルトの名無しさん
垢版 |
2022/07/29(金) 10:15:19.91ID:nIcw6oQb
>>627
++

simple is best
2022/07/29(金) 10:49:05.42ID:jdcEhLWs
過去日本で広まった言語を見るとアメリカで流行ってからだいたい5年遅れで日本に広まる
今のアメリカの状況見れば日本でもRustが浸透するのは時間の問題だと思うよ
2022/07/29(金) 10:49:49.43ID:SkJ6g9PS
Rustはメモリが安全だからな
632デフォルトの名無しさん
垢版 |
2022/07/29(金) 11:05:34.34ID:+Yq4rvz3
>>628
C#が流行ったのは、MSが作ったからではなくてVSでデフォになったからでしょ
Rustもそうなれば間違いなく流行るよ

Windowsで採用され始めてるから、可能性はある
2022/07/29(金) 11:31:41.86ID:ML+JlgEx
rustが気持ち悪いというより信者の選民思想がやばいわ。そういう言語は流行らん
2022/07/29(金) 11:34:13.72ID:aU8JZHtJ
今現在C/C++を使ってない人はRustを無視していいよ
勉強してもどうせ使わないよ
2022/07/29(金) 11:47:52.27ID:0tQmABQP
メモリ自動解放なプログラミング言語で高速な言語がRustしかないけど
Rustを使っていて慣れてきたら非常に便利でプログラミングしやすい言語だと分かってきた
開発効率が上がるわけだと納得
2022/07/29(金) 11:48:22.21ID:WUKGFXgB
気持ち悪さをもうすこし具体的に分析してみてよ
お気持ちだけ言われても議論にならん
2022/07/29(金) 11:50:44.03ID:7qUIzVbZ
フクオジは確かにキモチワルイ
Rust使ってる身としてはこういうやつは消えてほしい
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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