スレタイ(順番はRedMonk準拠)以外の言語もok
※ Rustは現世代最強言語なので除外します
前スレ
次世代言語25 TypeScript Swift Go Kotlin Rust Nim
https://mevius.5ch.net/test/read.cgi/tech/1650185555/
次世代言語26 TypeScript Swift Go Kotlin Nim
レス数が950を超えています。1000を超えると書き込みができなくなります。
2022/06/21(火) 09:27:46.30ID:5vOFCGpG
851デフォルトの名無しさん
2022/08/01(月) 12:42:24.49ID:p2tKrs72852デフォルトの名無しさん
2022/08/01(月) 12:52:39.69ID:XdiV44rb853デフォルトの名無しさん
2022/08/01(月) 13:01:13.40ID:tnFadW7s854デフォルトの名無しさん
2022/08/01(月) 13:14:38.08ID:/SNhoAxJ >>846
大嘘くそ太郎
大嘘くそ太郎
855デフォルトの名無しさん
2022/08/01(月) 13:16:08.61ID:XSveJ/JR その分野ならRustが一番いいかな
所有権の取り扱いにミスがあればコンパイラが詳しく指摘してくれる
データ競合してるところがあればコンパイラが詳しく指摘してくれる
実行時エラー発生まで待たずに済み開発効率も高い
所有権の取り扱いにミスがあればコンパイラが詳しく指摘してくれる
データ競合してるところがあればコンパイラが詳しく指摘してくれる
実行時エラー発生まで待たずに済み開発効率も高い
856デフォルトの名無しさん
2022/08/01(月) 13:19:04.33ID:XSveJ/JR >>854
RustでもシームレスなM:Nスレッドが簡単に使えるよ
RustでもシームレスなM:Nスレッドが簡単に使えるよ
857デフォルトの名無しさん
2022/08/01(月) 13:24:02.26ID:/SNhoAxJ >>852
”チャネルによるデータの所有権の受け渡し”GoにもRustにもそんな概念はありませんが?おまえが考えたの?
”チャネルによるデータの所有権の受け渡し”GoにもRustにもそんな概念はありませんが?おまえが考えたの?
858デフォルトの名無しさん
2022/08/01(月) 13:41:40.37ID:wpl6Jivu >>856
Rustの標準ライブラリは、1:1スレッドの実装のみを提供しています。
さらに外部ライブラリでも、有名なものはかなり煩雑に書いてI/Oバウンドのものしか作れません、Rustの(多くのライブラリの)ポリシーとして勝手にタイマーなど時系列で特定の処理を実行しているCPUコアが切り替わったりしません。
これは大きいランタイムを嫌うからですが、kernelなどやハードウェアに近いものを書く分には良いですが、I/Oが詰まったら、他は実行できないでプログラム全体がフリーズします
これを”M:Nが簡単”というにはあまりに、お粗末であり、記述の煩雑さを見ても、”簡単に使える〇〇カラおすすめ”なんて人を騙すための背信行為です。
言語をススメたい、シェアを伸ばしたいと思うなら真摯で誠実になりなさい。
あんたに言ってもしょうがないけど、あと開発効率は全然高くない、コンパイル遅い、mut mutめんどくさい、いい加減改良しろや!ボケカスMozila!
Rustの標準ライブラリは、1:1スレッドの実装のみを提供しています。
さらに外部ライブラリでも、有名なものはかなり煩雑に書いてI/Oバウンドのものしか作れません、Rustの(多くのライブラリの)ポリシーとして勝手にタイマーなど時系列で特定の処理を実行しているCPUコアが切り替わったりしません。
これは大きいランタイムを嫌うからですが、kernelなどやハードウェアに近いものを書く分には良いですが、I/Oが詰まったら、他は実行できないでプログラム全体がフリーズします
これを”M:Nが簡単”というにはあまりに、お粗末であり、記述の煩雑さを見ても、”簡単に使える〇〇カラおすすめ”なんて人を騙すための背信行為です。
言語をススメたい、シェアを伸ばしたいと思うなら真摯で誠実になりなさい。
あんたに言ってもしょうがないけど、あと開発効率は全然高くない、コンパイル遅い、mut mutめんどくさい、いい加減改良しろや!ボケカスMozila!
859デフォルトの名無しさん
2022/08/01(月) 13:45:13.17ID:/T7zJm8q >>857
並列プログラミングでは常識
データの所有権を共有するか、共有を避けて所有権の受け渡しのみにするかなど、意識せざるを得ない
そのうちGoではデータの所有権を受け渡しをするチャネルの利用を推奨していて公式にも明記
Go公式ページ
https://github.com/golang/go/wiki/MutexOrChannel
Channel = passing ownership of data
並列プログラミングでは常識
データの所有権を共有するか、共有を避けて所有権の受け渡しのみにするかなど、意識せざるを得ない
そのうちGoではデータの所有権を受け渡しをするチャネルの利用を推奨していて公式にも明記
Go公式ページ
https://github.com/golang/go/wiki/MutexOrChannel
Channel = passing ownership of data
860デフォルトの名無しさん
2022/08/01(月) 14:06:14.34ID:dhRVNKzB >>857
言い方はオカシイ奴だけど、明確に所有権の概念のある言語から見たらそう見えるということは正しいだろう?
859の上に書いてある、channelがある言語によく聞くスレッドにまつわる話に
"Share memory by communicating, don't communicate by sharing memory."
「通信によってメモリを共有し、メモリを共有(して通信)しないで」というのが、golang的には正しいかもしれんが
golangだって実通信しているわけじゃなく、スレッド間のブロッキングの入るFIFOバッファへのデータのコピーに過ぎない
言い方はオカシイ奴だけど、明確に所有権の概念のある言語から見たらそう見えるということは正しいだろう?
859の上に書いてある、channelがある言語によく聞くスレッドにまつわる話に
"Share memory by communicating, don't communicate by sharing memory."
「通信によってメモリを共有し、メモリを共有(して通信)しないで」というのが、golang的には正しいかもしれんが
golangだって実通信しているわけじゃなく、スレッド間のブロッキングの入るFIFOバッファへのデータのコピーに過ぎない
861デフォルトの名無しさん
2022/08/01(月) 14:27:50.20ID:U9D47cKc >>858
本質を捉えらてないからそんな無駄な間違えた話になる
言語に関係なくGoでもRustでも、M:NのM部分つまりカーネルスレッドの標準起動数はCPUコアスレッド数と同じ最適化
これら全てを計算のみ実行し続けて強制奪取なくば塞ぐ使い方をM:Nですることは実際になく、仮にあったとしても容易に定期自主返納も可能だからフリーズを現実に起こすことはない
現実に影響する大きな違いは、Goroutineが個別にスタックを必要としてスタック切り替えコストもメモリコストもかかるのに対して、Rustタスクはスタックレスだから切り替えコストやメモリコストが生じない点
Rustではシンプルな状態マシンとしてそれを実現していて上手く機能している
本質を捉えらてないからそんな無駄な間違えた話になる
言語に関係なくGoでもRustでも、M:NのM部分つまりカーネルスレッドの標準起動数はCPUコアスレッド数と同じ最適化
これら全てを計算のみ実行し続けて強制奪取なくば塞ぐ使い方をM:Nですることは実際になく、仮にあったとしても容易に定期自主返納も可能だからフリーズを現実に起こすことはない
現実に影響する大きな違いは、Goroutineが個別にスタックを必要としてスタック切り替えコストもメモリコストもかかるのに対して、Rustタスクはスタックレスだから切り替えコストやメモリコストが生じない点
Rustではシンプルな状態マシンとしてそれを実現していて上手く機能している
862デフォルトの名無しさん
2022/08/01(月) 16:22:19.93ID:fWHteKMx >>861
>これら全てを計算のみ実行し続けて強制奪取なくば塞ぐ使い方をM:Nですることは実際になく
普通に?数千数万の要求に、並列・時分割でプログラムをCPUのコア数以上に動作させる要件は世界中にたくさんあるが?
多くの言語でOSスレッドがフリーズしたら、容易でもないし、定期自主返納なんてあり得ない。容易に自主返納するおまえの
コードの実力を見せてもらおうか?
ランタイムありのグリーンスレッドを提供している一部の言語の場合、スレッドの停止は致命ではないがRustは全くそうではない。
>Rustタスクはスタックレスだから切り替えコストやメモリコストが生じない点
OSスレッドにスタックが存在しない現代のOSはほぼ無い。
問題になるのはメモリやスタックにあるデータをスレッド間で共有したりメッセージパッシングしたりするときに、OSスレッドをまたいで
データやりとりしたり、排他ロックはコストが掛かるという話だけ。
そもそもグリーンスレッドはOSコンテキストスイッチを嫌ってそもそもスレッドを跨がない場合が多い。だからGoのメニーコア用の
M:Nランタイムは、他の糞のようなI/Oバウンドしか出来ない言語のライブラリより、遥かに軽量
切り替えコストやメモリコストが生じないのではなく、機能としてグリーンスレッドような存在がなく、軽量に切り替えるような事が
出来ないだけの出来ない尽くし、これはまったく誇れることではなくむしろ汚点
>Rustではシンプルな状態マシンとしてそれを実現していて上手く機能している
では、なぜシンプル・上手く機能なはずのRustにM:Nスケジューラーの実装標準搭載要望が多いのか?
>これら全てを計算のみ実行し続けて強制奪取なくば塞ぐ使い方をM:Nですることは実際になく
普通に?数千数万の要求に、並列・時分割でプログラムをCPUのコア数以上に動作させる要件は世界中にたくさんあるが?
多くの言語でOSスレッドがフリーズしたら、容易でもないし、定期自主返納なんてあり得ない。容易に自主返納するおまえの
コードの実力を見せてもらおうか?
ランタイムありのグリーンスレッドを提供している一部の言語の場合、スレッドの停止は致命ではないがRustは全くそうではない。
>Rustタスクはスタックレスだから切り替えコストやメモリコストが生じない点
OSスレッドにスタックが存在しない現代のOSはほぼ無い。
問題になるのはメモリやスタックにあるデータをスレッド間で共有したりメッセージパッシングしたりするときに、OSスレッドをまたいで
データやりとりしたり、排他ロックはコストが掛かるという話だけ。
そもそもグリーンスレッドはOSコンテキストスイッチを嫌ってそもそもスレッドを跨がない場合が多い。だからGoのメニーコア用の
M:Nランタイムは、他の糞のようなI/Oバウンドしか出来ない言語のライブラリより、遥かに軽量
切り替えコストやメモリコストが生じないのではなく、機能としてグリーンスレッドような存在がなく、軽量に切り替えるような事が
出来ないだけの出来ない尽くし、これはまったく誇れることではなくむしろ汚点
>Rustではシンプルな状態マシンとしてそれを実現していて上手く機能している
では、なぜシンプル・上手く機能なはずのRustにM:Nスケジューラーの実装標準搭載要望が多いのか?
863デフォルトの名無しさん
2022/08/01(月) 16:52:48.39ID:IUF0b1bQ なんか盛り上がってるな
おれはアクターモデルを安全に使いやすい言語が登場してほしい
おれはアクターモデルを安全に使いやすい言語が登場してほしい
864デフォルトの名無しさん
2022/08/01(月) 16:56:36.04ID:lJab6YiY ステートマシンの生成をゼロオーバーヘッドと言い張るのは流石に無理筋じゃないかね
ステートマシン手書きと同じというだけの言葉遊びやね
ステートマシン手書きと同じというだけの言葉遊びやね
865デフォルトの名無しさん
2022/08/01(月) 17:04:06.77ID:pETNc0gm >>864
rustが標榜してるのはzero cost abstractionで言わんとしてるのはまさにそういうことだよ
抽象化されたコード書いても手書きでステートマシン書くのと同じ性能特性になる
他の典型的な言語だとオーバーヘッドあるよね?という主張
長文レスは目が滑るから読んでないから的外れだったらスマン
rustが標榜してるのはzero cost abstractionで言わんとしてるのはまさにそういうことだよ
抽象化されたコード書いても手書きでステートマシン書くのと同じ性能特性になる
他の典型的な言語だとオーバーヘッドあるよね?という主張
長文レスは目が滑るから読んでないから的外れだったらスマン
866デフォルトの名無しさん
2022/08/01(月) 17:15:17.99ID:a+lwQcR6 グリーンスレッドは初期rubyのウリだったよね
マッツも誇らしげやったで
ワイもユーザとして誇らしかったのを覚えてる
マッツも誇らしげやったで
ワイもユーザとして誇らしかったのを覚えてる
867デフォルトの名無しさん
2022/08/01(月) 17:21:31.08ID:Ctxi9Kcc ここまでにponyおじさんが現れないことがそこはかとなく悲しい
868デフォルトの名無しさん
2022/08/01(月) 17:45:58.72ID:zlIOq9vz オブジェクト一つにつきスレッド一つ作れるようになったら
オブジェクト指向はただのマルチスレッド手続き型になってしまう
オブジェクト指向はただのマルチスレッド手続き型になってしまう
869デフォルトの名無しさん
2022/08/01(月) 18:38:15.71ID:xcPFI+XD Rustで実用的なソフトウェアを書くには、Java、C#、C/C++の5〜8倍ほどの労力が必要と言われてる。
870デフォルトの名無しさん
2022/08/01(月) 18:39:52.35ID:xcPFI+XD >>866
Linuxにスレッドがなかったからでは?
Linuxにスレッドがなかったからでは?
871デフォルトの名無しさん
2022/08/01(月) 18:42:48.07ID:Qe0j28fb ものりしっくですね
872デフォルトの名無しさん
2022/08/01(月) 18:44:36.03ID:xcPFI+XD グーグルトレンドによると、世界では存在感ゼロのRustが、日本では6月初めの一時期、Goを抜いたからね。
世界ではGoのほうが100倍ほど検索ボリュームがあるので、逆転はあり得ない。
なんか工作くせえ。
世界ではGoのほうが100倍ほど検索ボリュームがあるので、逆転はあり得ない。
なんか工作くせえ。
873デフォルトの名無しさん
2022/08/01(月) 18:46:31.09ID:xcPFI+XD スレッドがなかったころ、Linuxユーザーはスレッドの邪悪さを主張してて、Windowsはスレッドがあるからダメなんだとか言ってたのにな。
874デフォルトの名無しさん
2022/08/01(月) 19:15:06.90ID:gURUUmzn こいつKENTAおじさんと同じ病気だな
875デフォルトの名無しさん
2022/08/01(月) 20:02:40.94ID:xcPFI+XD ぶっちゃけ、C++が常に次世代言語では?
3年に一度改定され続けるんだし。
C++20は、C++11以来のメジャーバージョンアップと言えるのでは?
3年に一度改定され続けるんだし。
C++20は、C++11以来のメジャーバージョンアップと言えるのでは?
876デフォルトの名無しさん
2022/08/01(月) 20:06:43.75ID:zlIOq9vz 完全なコピーができるデータには
参照も参照カウントもGCも所有権もロックもスレッドも必要ない
プロセス間通信だけでいい
コピーを回避することが邪悪かどうかは知らんけど全ての元凶ではある
参照も参照カウントもGCも所有権もロックもスレッドも必要ない
プロセス間通信だけでいい
コピーを回避することが邪悪かどうかは知らんけど全ての元凶ではある
877デフォルトの名無しさん
2022/08/01(月) 20:18:48.94ID:xcPFI+XD ちょうどLinuxでスレッドが使えるようになったころ、世の中はC10K問題全盛期に入った。
しかし、Linuxユーザーはスレッドマンセーに宗旨替えしてしまい、C10Kには目もくれなくなってしまった。
そのころC++では、boostと黒魔術が広まりつつあり、5chではWTLなんかが流行ってた。
当然ながらC++では非同期が一つのキーワードであり、IOCPが関心を集めていた。
それがBoost.Asioへと繋がっていく。
しかし、Linuxユーザーはスレッドマンセーに宗旨替えしてしまい、C10Kには目もくれなくなってしまった。
そのころC++では、boostと黒魔術が広まりつつあり、5chではWTLなんかが流行ってた。
当然ながらC++では非同期が一つのキーワードであり、IOCPが関心を集めていた。
それがBoost.Asioへと繋がっていく。
878デフォルトの名無しさん
2022/08/01(月) 20:20:33.99ID:xcPFI+XD879デフォルトの名無しさん
2022/08/01(月) 20:27:15.17ID:XxSklYrz Tauriでデスクトップアプリ作りたくてRust始めようと思ったけど
なんかPythonやらNimやらもサポートされるらしい
じゃあRustやらなくていっか
なんかPythonやらNimやらもサポートされるらしい
じゃあRustやらなくていっか
880デフォルトの名無しさん
2022/08/01(月) 20:32:21.83ID:fIML+ep7 >>878
それ何てFORTH?
それ何てFORTH?
881デフォルトの名無しさん
2022/08/01(月) 20:36:12.25ID:xcPFI+XD C++11以前から見たら、C++20はやりたかったことが全てできるフルセットの言語になった。
もう使うしかないでしょコレ。
もう使うしかないでしょコレ。
882デフォルトの名無しさん
2022/08/01(月) 20:36:36.15ID:xcPFI+XD >>880
普通のFORTHです。
普通のFORTHです。
883デフォルトの名無しさん
2022/08/01(月) 20:38:40.87ID:OHxYp4mJ >>864
Rustプログラマーは抽象的に開発効率よく非同期プログラミングをすることができる
そこからステートマシンの生成は静的にコンパイラが自動的に行なう
手書きでステートマシンを最速化のために書いたのと同じ結果を得られる
プログラマーはそのステートマシンの存在を知る必要がない
実行時の付加コストもない
Rustプログラマーは抽象的に開発効率よく非同期プログラミングをすることができる
そこからステートマシンの生成は静的にコンパイラが自動的に行なう
手書きでステートマシンを最速化のために書いたのと同じ結果を得られる
プログラマーはそのステートマシンの存在を知る必要がない
実行時の付加コストもない
884デフォルトの名無しさん
2022/08/01(月) 20:40:36.23ID:xcPFI+XD その手のメタプログラミングするなら・・・
C++しかないでしょう!
C++しかないでしょう!
885デフォルトの名無しさん
2022/08/01(月) 20:46:52.01ID:xcPFI+XD 状態機械を作るときには、状態の圧縮が肝要なので、結局、外部のプログラムが必要になります。
必要にならないというのなら、せいぜい手書きと同レベルのものなんですよ。
必要にならないというのなら、せいぜい手書きと同レベルのものなんですよ。
886デフォルトの名無しさん
2022/08/01(月) 20:54:41.00ID:KVizZk4Y887デフォルトの名無しさん
2022/08/01(月) 20:56:30.57ID:xcPFI+XD >>886
よくわかんないので英語でお願いします。
よくわかんないので英語でお願いします。
888デフォルトの名無しさん
2022/08/01(月) 21:01:50.59ID:KVizZk4Y889デフォルトの名無しさん
2022/08/01(月) 21:06:27.96ID:xcPFI+XD std::unique_ptr<>使えば良いのでは?
890デフォルトの名無しさん
2022/08/01(月) 21:46:26.81ID:MtrpFMZN >>863
ス、ス、スウィ?
ス、ス、スウィ?
891デフォルトの名無しさん
2022/08/01(月) 21:48:32.95ID:DjsRD2G7 >>889
C++がダメな点はそれ
1. その面倒な指定が必要
2. それを使い忘れると実行時にアウト
3. 使い間違えると実行時にアウト
4. ムーブの指定なども記述が煩雑
5. それら全て正しく頑張っても所有権の問題を解決してるだけで参照の問題は解決できていない
C++は安全なメモリ自動解放がなされない欠陥言語
C++がダメな点はそれ
1. その面倒な指定が必要
2. それを使い忘れると実行時にアウト
3. 使い間違えると実行時にアウト
4. ムーブの指定なども記述が煩雑
5. それら全て正しく頑張っても所有権の問題を解決してるだけで参照の問題は解決できていない
C++は安全なメモリ自動解放がなされない欠陥言語
892デフォルトの名無しさん
2022/08/01(月) 21:49:39.23ID:SuXYGZGf893デフォルトの名無しさん
2022/08/01(月) 21:50:26.57ID:cpDeSwcY >>874
やっと気づいたの?
やっと気づいたの?
894デフォルトの名無しさん
2022/08/01(月) 21:53:44.40ID:xcPFI+XD895デフォルトの名無しさん
2022/08/01(月) 22:01:55.21ID:DjsRD2G7 >>894
そこで欠陥言語C++を使う意味が全く無い
そこで欠陥言語C++を使う意味が全く無い
896デフォルトの名無しさん
2022/08/01(月) 22:13:45.19ID:xcPFI+XD >>892
> ただし、このプログラム言語によって実用的なプログラムを作成するためには、
> C/C++/C#と比較して5〜10倍、Javaと比較して2〜3倍の労力を要する事は事実である。
と説明書に書いてあるよ?
> ただし、このプログラム言語によって実用的なプログラムを作成するためには、
> C/C++/C#と比較して5〜10倍、Javaと比較して2〜3倍の労力を要する事は事実である。
と説明書に書いてあるよ?
897デフォルトの名無しさん
2022/08/01(月) 22:40:21.87ID:67qbuqx0 Rust と言うゲームがあるみたい。
それで、Rustは言語ランキングが1位になるのかも
並行プログラミングでは、Elixir。
100GB ぐらいのメモリで、5,000万個の小プロセスが稼働する
Ruby on Rails と似ている
それで、Rustは言語ランキングが1位になるのかも
並行プログラミングでは、Elixir。
100GB ぐらいのメモリで、5,000万個の小プロセスが稼働する
Ruby on Rails と似ている
898デフォルトの名無しさん
2022/08/01(月) 22:46:46.79ID:Ctxi9Kcc Elixirは大元のErlangの実行が中々愉快なことになってるんだけどもそれを継承してるんだっけ?
899デフォルトの名無しさん
2022/08/01(月) 23:02:32.84ID:6UjeNpN/ >>896
それらのプログラミング言語で労力が10倍も変わるなんてありえない
変わるとしてもそのなぜか一緒にしているC/C++とC#の差が大きい程度
自動的にメモリ解放してくれないC/C++ではその分だけ労力がかかる
もちろんC#は多少労力が楽な分だけ遅くなるため優れていることを意味するわけではない
それらのプログラミング言語で労力が10倍も変わるなんてありえない
変わるとしてもそのなぜか一緒にしているC/C++とC#の差が大きい程度
自動的にメモリ解放してくれないC/C++ではその分だけ労力がかかる
もちろんC#は多少労力が楽な分だけ遅くなるため優れていることを意味するわけではない
900デフォルトの名無しさん
2022/08/01(月) 23:10:21.89ID:xcPFI+XD >>897
320GBのメモリーがあれば、国民一人一人にプロセスを与えられるね。
320GBのメモリーがあれば、国民一人一人にプロセスを与えられるね。
901デフォルトの名無しさん
2022/08/01(月) 23:11:24.47ID:xcPFI+XD >>899
いや、Rustなら10倍かかってもおかしくないでしょう。
いや、Rustなら10倍かかってもおかしくないでしょう。
902デフォルトの名無しさん
2022/08/01(月) 23:14:57.62ID:XSveJ/JR903デフォルトの名無しさん
2022/08/01(月) 23:16:39.89ID:xcPFI+XD キミは何でIDが変わるの?
904デフォルトの名無しさん
2022/08/01(月) 23:25:18.49ID:0OfTpNey 労力って使える人材探し始めてから完成するまでの時間でしょ?
Rust使える人を見つける時間考えたら、他の言語選んだ方が圧倒的に早くて安いよ
Rust使える人を見つける時間考えたら、他の言語選んだ方が圧倒的に早くて安いよ
905デフォルトの名無しさん
2022/08/01(月) 23:39:41.39ID:XSveJ/JR >>904
次世代言語スレでそれは意味のない話ですね
Rustも他の言語も使える普通の人にとって開発効率もその実行生産性も最も高い言語がRust
そしてRustコンパイラの親切さにより誰でもRustを使えるようになるところも大きなポイント
古き概念のみに固執して学習に失敗した人を除きみんなが学習に成功しています
次世代言語スレでそれは意味のない話ですね
Rustも他の言語も使える普通の人にとって開発効率もその実行生産性も最も高い言語がRust
そしてRustコンパイラの親切さにより誰でもRustを使えるようになるところも大きなポイント
古き概念のみに固執して学習に失敗した人を除きみんなが学習に成功しています
906デフォルトの名無しさん
2022/08/01(月) 23:39:51.69ID:zlIOq9vz オリジナルよりパクリの方が時間は短い
時刻はオリジナルの方が早い
時刻はオリジナルの方が早い
907デフォルトの名無しさん
2022/08/01(月) 23:43:41.81ID:QBiSvFw1908デフォルトの名無しさん
2022/08/01(月) 23:45:10.83ID:6UjeNpN/909デフォルトの名無しさん
2022/08/02(火) 00:00:32.68ID:4QK2QLWC あとメモリ効率ってそんなに大事なことなの?
OSや組み込みなど低レイヤーならわかるけど
高いコストを払ってまで得られる価値はないことが多いのでは?今までGC言語が流行ってきたわけだが?
むしろIOやCPUがボトルネックになる方が大半でメモリ効率がいいことによって恩恵が得られるケースってほとんどないのでは?
OSや組み込みなど低レイヤーならわかるけど
高いコストを払ってまで得られる価値はないことが多いのでは?今までGC言語が流行ってきたわけだが?
むしろIOやCPUがボトルネックになる方が大半でメモリ効率がいいことによって恩恵が得られるケースってほとんどないのでは?
910デフォルトの名無しさん
2022/08/02(火) 00:03:12.51ID:mFGD+3ik >>907
マジで知らんのか?
それはRustが新しい言語だから
Rustの大きな強みの並行プログラミングがまともに使えるようになったのが2019年から2020年にかけて
そしてその効率と実用性が幅広く確認されたためIT大手各社が共同でRust Foundationを設立したのが2021年
プログラム言語史上でも初めてIT大手各社が揃って共同で支持するほどの革命的な言語
マジで知らんのか?
それはRustが新しい言語だから
Rustの大きな強みの並行プログラミングがまともに使えるようになったのが2019年から2020年にかけて
そしてその効率と実用性が幅広く確認されたためIT大手各社が共同でRust Foundationを設立したのが2021年
プログラム言語史上でも初めてIT大手各社が揃って共同で支持するほどの革命的な言語
911デフォルトの名無しさん
2022/08/02(火) 00:05:28.81ID:mFGD+3ik912デフォルトの名無しさん
2022/08/02(火) 00:13:54.99ID:4QK2QLWC GC言語の方が生産性高いのでは?
GC言語より生産性が高い根拠は?
異常に速いとか言っておきながら単語カウントとかその辺にあるベンチマークでGoやNimに普通に負けることがあるのはなんで?
大手が採用しているのはあくまでもOS開発など低レイヤー用途でグーグルとかはサーバーサイドがGoで書かれているようだけどそれをRustにするという話はどこにも出ていないね
低レイヤー以外だとMetaとDiscordぐらいで日本でRust採用してる企業は特に存在しないね
グーグルトレンド見ればわかるようにRustは全然流行っていないな
GC言語より生産性が高い根拠は?
異常に速いとか言っておきながら単語カウントとかその辺にあるベンチマークでGoやNimに普通に負けることがあるのはなんで?
大手が採用しているのはあくまでもOS開発など低レイヤー用途でグーグルとかはサーバーサイドがGoで書かれているようだけどそれをRustにするという話はどこにも出ていないね
低レイヤー以外だとMetaとDiscordぐらいで日本でRust採用してる企業は特に存在しないね
グーグルトレンド見ればわかるようにRustは全然流行っていないな
913デフォルトの名無しさん
2022/08/02(火) 00:19:52.75ID:4QK2QLWC GoogleやMicrosoftはOSやカーネル開発でRustを採用することにしたらしいが
OSやカーネルやコンパイラだとかを開発しているエンジニアって全体の何%ぐらいだと思ってんの?
Rustは一部の数%程度の少数向けに向いているってのが事実だけど
ここにいるRust信者は他のあらゆるプログラミング用途でRustが最強で既存言語を置き換えていくとかほざいているわけだが
何の根拠もない妄想でしかないわ
適材適所って言葉を知らない無能
MetaとDiscord以外で採用している有名企業あげてみろや
OSやカーネルやコンパイラだとかを開発しているエンジニアって全体の何%ぐらいだと思ってんの?
Rustは一部の数%程度の少数向けに向いているってのが事実だけど
ここにいるRust信者は他のあらゆるプログラミング用途でRustが最強で既存言語を置き換えていくとかほざいているわけだが
何の根拠もない妄想でしかないわ
適材適所って言葉を知らない無能
MetaとDiscord以外で採用している有名企業あげてみろや
914デフォルトの名無しさん
2022/08/02(火) 00:25:19.06ID:/i6BuvyD ネットに嘘が多いのは、検査が足りないからじゃないかな
Rustコンパイラはある種の嘘を検査している
それが非効率だと思うなら嘘に寛容な効率化をやってみせろ
Rustコンパイラはある種の嘘を検査している
それが非効率だと思うなら嘘に寛容な効率化をやってみせろ
915デフォルトの名無しさん
2022/08/02(火) 00:28:37.12ID:mFGD+3ik916デフォルトの名無しさん
2022/08/02(火) 00:28:42.85ID:4QK2QLWC RustはGCがないからあらゆる面で最強で他のあらゆる言語を置き換える←妄言
RustはGCや手厚いランタイム環境が使えない、もしくは適さないようなシビアな要件で安全なプログラムを作成できるためC++を置き換えることがある←正しい
正しい理解をした上でRustを広めような
RustはGCや手厚いランタイム環境が使えない、もしくは適さないようなシビアな要件で安全なプログラムを作成できるためC++を置き換えることがある←正しい
正しい理解をした上でRustを広めような
917デフォルトの名無しさん
2022/08/02(火) 00:33:51.61ID:4QK2QLWC >>915
記事を見て言ってるわけだけど。記事の段階でGoに負けたのは事実でしょう
あとこれはベンチマークの一例ね。他にもネットで探せばRustが微妙な位置にいるのはよくあることだね。
そもそもハッシュが遅いだとかで最適化したバージョンが記事で使われてないのは何故だか考えてみようね
あとRustはNimにも負けているね。GC言語だけど。。
記事を見て言ってるわけだけど。記事の段階でGoに負けたのは事実でしょう
あとこれはベンチマークの一例ね。他にもネットで探せばRustが微妙な位置にいるのはよくあることだね。
そもそもハッシュが遅いだとかで最適化したバージョンが記事で使われてないのは何故だか考えてみようね
あとRustはNimにも負けているね。GC言語だけど。。
918デフォルトの名無しさん
2022/08/02(火) 00:38:10.10ID:4QK2QLWC CPU処理だけのプログラムでもGoに負けることがあるのだから
低レイヤー以外の用途でRustを採用する必要なんか皆無であることがよくわかるね
低レイヤー以外の用途でRustを採用する必要なんか皆無であることがよくわかるね
919デフォルトの名無しさん
2022/08/02(火) 00:40:03.84ID:4QK2QLWC ちなみに俺はRustアンチじゃないからね
何でもかんでもRustが最強!GC言語はゴミで駆逐されるとかほざいてて
Rust使ってる自分に酔ってて他人にマウント取るだけが生きがいのゴミが嫌いなだけだね
何でもかんでもRustが最強!GC言語はゴミで駆逐されるとかほざいてて
Rust使ってる自分に酔ってて他人にマウント取るだけが生きがいのゴミが嫌いなだけだね
920デフォルトの名無しさん
2022/08/02(火) 00:40:19.24ID:A0k69qij 全言語の中でCに次いでRustが最速となったプログラムのコード>>602を見てみよう
どの言語のプログラマーであってもすぐに理解できるほど抽象度が高く平易で分かりやすいコードとなっている
つまりRustを学習すれば誰もが分かりやすくてコード&C並みに高速を両立するプログラムを書けるようになることを意味している
どの言語のプログラマーであってもすぐに理解できるほど抽象度が高く平易で分かりやすいコードとなっている
つまりRustを学習すれば誰もが分かりやすくてコード&C並みに高速を両立するプログラムを書けるようになることを意味している
921デフォルトの名無しさん
2022/08/02(火) 01:56:40.26ID:+AA3LPDF このままRustでまるまる1スレッド潰すのか
922デフォルトの名無しさん
2022/08/02(火) 02:07:05.35ID:cWws5nRf 俺はRustでStringをcloneしまくるコード書いちゃうからなぁ
あんま速くないかも
あんま速くないかも
923デフォルトの名無しさん
2022/08/02(火) 02:24:14.36ID:u5Pbv834 クソコードがそもそも詠唱できない時点で
クソコードのおもりをさせられるエンジニアがいなくなる
このことは重要
クソコードのおもりをさせられるエンジニアがいなくなる
このことは重要
924デフォルトの名無しさん
2022/08/02(火) 05:52:39.70ID:LaxCL9ek RustはDropbox、Cloudflare、IBM、トヨタなども使っているね。
コストってなんのコストを指しているかわからないけど、個人的にはシステムの生涯でかかるコストは他言語より安く済むと思うよ。
コストってなんのコストを指しているかわからないけど、個人的にはシステムの生涯でかかるコストは他言語より安く済むと思うよ。
925デフォルトの名無しさん
2022/08/02(火) 06:21:12.68ID:9HUaTRvZ 基本的にRustは遅いよね。
実用的なソフトウェアを作るには10倍の労力がいるし。
ベンチマーク特化型言語なのに、ベンチマークも遅いし。
実用的なソフトウェアを作るには10倍の労力がいるし。
ベンチマーク特化型言語なのに、ベンチマークも遅いし。
926デフォルトの名無しさん
2022/08/02(火) 08:10:44.50ID:boBO3Fux >>915の認識は微妙に間違っていて、simpleは標準ライブラリにこだわって遅いhashmapを使ってて、バッファが噛んでないのはoptimizeの方。
927デフォルトの名無しさん
2022/08/02(火) 09:29:37.95ID:PkkC7YEU はいはいRust最強最強
とりあえず現時点で最強ってことらしいから、スレタイから外していいし、どっかいってくれ
次世代言語のスレだから既に最強のRustを語る必要はない
とりあえず現時点で最強ってことらしいから、スレタイから外していいし、どっかいってくれ
次世代言語のスレだから既に最強のRustを語る必要はない
928デフォルトの名無しさん
2022/08/02(火) 10:16:23.49ID:QkVXmXpB929デフォルトの名無しさん
2022/08/02(火) 10:44:19.34ID:zk210DB0 スピードなんかどうでもよくてメモリが安全なのがいいんだよ
930デフォルトの名無しさん
2022/08/02(火) 11:02:56.88ID:MHrspXIN 狭義のGC あり言語の欠点はGC走って処理が引っ掛かるところかと。
931デフォルトの名無しさん
2022/08/02(火) 11:04:01.76ID:SwmbA253932デフォルトの名無しさん
2022/08/02(火) 12:08:32.96ID:Xz99VLOB GC有りでPythonくらい所有権とか気にせず雑に扱えて、且つRustの効率性を実現できれば、次世代と呼べるのではないかな?
933デフォルトの名無しさん
2022/08/02(火) 12:21:54.19ID:Z7Qybw/O Nimのoptimize版のコードかなり頑張ってるのにC/C++/Rustより倍くらい遅いのはGC言語の限界なのかな
934デフォルトの名無しさん
2022/08/02(火) 12:54:54.89ID:aHuzTsGL tauriってどうなの?価値ある?
935デフォルトの名無しさん
2022/08/02(火) 13:01:21.17ID:YfIh+LzH さあ、Electronで十分だと思うが
936デフォルトの名無しさん
2022/08/02(火) 14:25:29.92ID:T6r67EvT スレタイにRustはないのにここで暴れる理由がわからん
Rustスレで啓蒙活動してればよろしい
Rustスレで啓蒙活動してればよろしい
938デフォルトの名無しさん
2022/08/02(火) 16:47:02.67ID:h0wFySH1 >>937
スレのルールに従えよ。
スレのルールに従えよ。
939デフォルトの名無しさん
2022/08/02(火) 17:38:35.92ID:AUryLawh > スレタイ(順番はRedMonk準拠)以外の言語もok
>
> ※ Rustは現世代最強言語なので除外します
※ Rustは現世代最強言語なので(話題にして良い言語から)除外します
※ Rustは現世代最強言語なので(スレタイから)除外します
どっち?
>
> ※ Rustは現世代最強言語なので除外します
※ Rustは現世代最強言語なので(話題にして良い言語から)除外します
※ Rustは現世代最強言語なので(スレタイから)除外します
どっち?
940デフォルトの名無しさん
2022/08/02(火) 18:09:03.75ID:67ChPJTw NimはGC言語って言われるけど、スタック上にobject(C++のstruct/class相当)をおけるし、コンパイル時にサイズが決まれば配列もスタック上における。
objectの内容が配列や親objectのメモリ上に連続して配置することも可能。
C++言語のように自由にスタック上にデータを置くことが可能。
継承使いたいときとか一つのオブジェクトを複数のreferenceから参照したいときにref objectを使うんだけどこれはヒープに確保されGCで管理される。
Nimは複数のGCを選べるんだけど、--mm:arcオプションをつけるとRustのRcのような参照カウント方式でヒープが管理される。
--mm:orcオプションを使うと循環参照があってもメモリを解放できるようにした参照カウント方式が使われる。
詳しくは
https://nim-lang.org/docs/mm.html
objectの内容が配列や親objectのメモリ上に連続して配置することも可能。
C++言語のように自由にスタック上にデータを置くことが可能。
継承使いたいときとか一つのオブジェクトを複数のreferenceから参照したいときにref objectを使うんだけどこれはヒープに確保されGCで管理される。
Nimは複数のGCを選べるんだけど、--mm:arcオプションをつけるとRustのRcのような参照カウント方式でヒープが管理される。
--mm:orcオプションを使うと循環参照があってもメモリを解放できるようにした参照カウント方式が使われる。
詳しくは
https://nim-lang.org/docs/mm.html
941デフォルトの名無しさん
2022/08/02(火) 18:25:25.25ID:VFwTK1q5 >>940
スタックに置けるのは当たり前だからそこはおいといて
[1] 継承を使うだけでヒープになるのは厳しい
[2] ヒープになるだけでGCとなるのは厳しい
[3] C++とRustで参照カウンタが使われる状況になるのはもっとレアケースのみ
中途半端な立ち位置だからNimは厳しい
スタックに置けるのは当たり前だからそこはおいといて
[1] 継承を使うだけでヒープになるのは厳しい
[2] ヒープになるだけでGCとなるのは厳しい
[3] C++とRustで参照カウンタが使われる状況になるのはもっとレアケースのみ
中途半端な立ち位置だからNimは厳しい
942デフォルトの名無しさん
2022/08/02(火) 18:41:12.53ID:6yaBS9ru943デフォルトの名無しさん
2022/08/02(火) 18:42:42.88ID:3Auutz71 Rustで実用的なソフトウェアを書くのは大変骨が折れる。
944デフォルトの名無しさん
2022/08/02(火) 18:45:25.03ID:3Auutz71 厨がウザいからRustは除外します(本音)。
945デフォルトの名無しさん
2022/08/02(火) 19:45:31.74ID:Ibj6PLNd valgrindもまともに使ったことなさげなバカが偉そうにしてるの見ると腹が立つってのはあるわな。
946デフォルトの名無しさん
2022/08/02(火) 19:49:07.82ID:3Auutz71 C/C++で書かれたOSの上で動作してるのに、大言壮語も甚だしいという意見もある。
947デフォルトの名無しさん
2022/08/02(火) 19:56:24.89ID:KsV0Heuv システムプログラミング(笑)に特化してるってんならとっととRust製のOS作れよな
948デフォルトの名無しさん
2022/08/02(火) 20:22:23.89ID:49BZsXJW RustでOSか。
一応 Linux は Rust で書いたソースも受け付けるようになったらしいな。ベースがCなのは変えないそうだが。
一応 Linux は Rust で書いたソースも受け付けるようになったらしいな。ベースがCなのは変えないそうだが。
949デフォルトの名無しさん
2022/08/02(火) 20:56:39.03ID:VFwTK1q5950デフォルトの名無しさん
2022/08/02(火) 21:03:37.39ID:67ChPJTw >>941
ヒープ使わずに継承を使うことはできるけどOOPするときは派生オブジェクトを基底オブジェクトのポインタ経由で使うことが多いでしょ。
QtのサンプルコードでGUI関係のクラスはnewしてヒープに確保している。
https://doc.qt.io/qt-6/qtwidgets-widgets-calculator-example.html
https://nim-lang.org/docs/mm.html
に書いてあるけど参照カウントが不要な場合はコンパイラが自動的に最適化してくれる。
そのおかげでunique_ptrとshared_ptrを使いわけるようなことは考えずに済む。
参照カウンタがどれだけ必要になるかは場合によりけり。
C++やRustでRcが不要なコードならたぶんNimでもref objectを使わずにコードを書けるよ。
ヒープ使わずに継承を使うことはできるけどOOPするときは派生オブジェクトを基底オブジェクトのポインタ経由で使うことが多いでしょ。
QtのサンプルコードでGUI関係のクラスはnewしてヒープに確保している。
https://doc.qt.io/qt-6/qtwidgets-widgets-calculator-example.html
https://nim-lang.org/docs/mm.html
に書いてあるけど参照カウントが不要な場合はコンパイラが自動的に最適化してくれる。
そのおかげでunique_ptrとshared_ptrを使いわけるようなことは考えずに済む。
参照カウンタがどれだけ必要になるかは場合によりけり。
C++やRustでRcが不要なコードならたぶんNimでもref objectを使わずにコードを書けるよ。
レス数が950を超えています。1000を超えると書き込みができなくなります。
