スレタイ以外の言語もok
前スレ
次世代言語22 Go Nim Rust Swift Kotlin TypeScript
https://mevius.5ch.net/test/read.cgi/tech/1629590343/
次世代言語23 Go Nim Rust Swift Kotlin TypeScript
レス数が1000を超えています。これ以上書き込みはできません。
2021/11/28(日) 16:59:19.16ID:gZqbEyz/
922デフォルトの名無しさん
2022/03/20(日) 15:28:04.92ID:w4XPcyom lock要求された順番を検証して、
順序にループがあればlock要求時にthrowする仕組みは作れそう
lock/unlockのたびに全threadのlock状況を検証する必要があるからパフォーマンスがお察しになるが
順序にループがあればlock要求時にthrowする仕組みは作れそう
lock/unlockのたびに全threadのlock状況を検証する必要があるからパフォーマンスがお察しになるが
923デフォルトの名無しさん
2022/03/20(日) 15:39:08.57ID:meh5jYAs >>915
どの言語でも、間違った使い方をすればデッドロックはする。
(Task.Waitなどを使うという、明らかに間違った事をせず、)
async/awaitだけで(ジョブ間に依存性がないように)書けばデッドロックしない。
これはC#でもJSでも他言語でも同じのはずだけど。
ID:1+CNf8az だけが
まちがったつかいかたもできるし、それがぼくにとってはわかりにくいからもんだいだ!!!
と言ってるだけ。
どの言語でも、間違った使い方をすればデッドロックはする。
(Task.Waitなどを使うという、明らかに間違った事をせず、)
async/awaitだけで(ジョブ間に依存性がないように)書けばデッドロックしない。
これはC#でもJSでも他言語でも同じのはずだけど。
ID:1+CNf8az だけが
まちがったつかいかたもできるし、それがぼくにとってはわかりにくいからもんだいだ!!!
と言ってるだけ。
924デフォルトの名無しさん
2022/03/20(日) 15:39:50.43ID:1+CNf8az >>921
何を言ってるの????
共有データを作らないためのchannelではないの?
channelだけではどうしても無理な場合だけmutex使って共有データにアクセスするだけだろw
まずは例を出せw
何を言ってるの????
共有データを作らないためのchannelではないの?
channelだけではどうしても無理な場合だけmutex使って共有データにアクセスするだけだろw
まずは例を出せw
925デフォルトの名無しさん
2022/03/20(日) 15:42:03.81ID:1+CNf8az926デフォルトの名無しさん
2022/03/20(日) 15:45:30.35ID:1+CNf8az >>922
function method1() { lock(objA) { lock(objB) {
処理;
}}}
function method2() { lock(objB) { lock(objA) {
処理;
}}}
みたいなmethod1とmethod2が別のスレッドで同時に動いたときにデッドロックする
function method1() { lock(objA) { lock(objB) {
処理;
}}}
function method2() { lock(objB) { lock(objA) {
処理;
}}}
みたいなmethod1とmethod2が別のスレッドで同時に動いたときにデッドロックする
927デフォルトの名無しさん
2022/03/20(日) 16:07:28.81ID:KN3blaKP928デフォルトの名無しさん
2022/03/20(日) 16:12:06.86ID:1+CNf8az >>927
バカはお前w デッドロックを検出することは可能だが、順序がループするわけではないw
バカはお前w デッドロックを検出することは可能だが、順序がループするわけではないw
929デフォルトの名無しさん
2022/03/20(日) 16:16:25.61ID:JT8vl7rT 順序がループ?w
930デフォルトの名無しさん
2022/03/20(日) 16:28:20.05ID:1+CNf8az931デフォルトの名無しさん
2022/03/20(日) 17:43:56.42ID:sUfYxNf/ https://github.com/ghc/ghc/blob/d45bb70178e044bc8b6e8215da7bc8ed0c95f2cb/libraries/base/Control/Concurrent.hs#L643-L649
Haskellは参照されていない=デッドロックしているスレッドをGCが検出しているらしい。素人意見ですが、もしかして他のGC言語も同じことをすると良いのでは?
Haskellは参照されていない=デッドロックしているスレッドをGCが検出しているらしい。素人意見ですが、もしかして他のGC言語も同じことをすると良いのでは?
932デフォルトの名無しさん
2022/03/20(日) 18:10:14.51ID:1+CNf8az 別にGCじゃなくても検出はできるよw ただのバグだから余計なコストがかかる処理を入れてないだけでw
933デフォルトの名無しさん
2022/03/20(日) 18:40:40.29ID:ED0sGA+M 毎度毎度、c#もあんまり詳しくないよねこの人。
Rustは俺はわからんのだけど、c#とgoの話だとこの人が言ってんのは重箱の隅をつついて「これが大問題であるっ!!」って騒いでるような感じ。
まあGoでコンパイラ書いたらGCから逃れられないみたいなアホも居たわけだからアレなんだけど。
Rustは俺はわからんのだけど、c#とgoの話だとこの人が言ってんのは重箱の隅をつついて「これが大問題であるっ!!」って騒いでるような感じ。
まあGoでコンパイラ書いたらGCから逃れられないみたいなアホも居たわけだからアレなんだけど。
934デフォルトの名無しさん
2022/03/20(日) 18:48:20.78ID:OVL9TeC6 >>933
GC言語はどうしてもそれ故の種々の制限があるからしょうがない
もちろんGC言語はその代わりに有利な面もある
そこへGC言語でないRustが初めてGC言語と対等に比較可能な存在として登場した
しかもGCのない有利さを保ったままで
GC言語はどうしてもそれ故の種々の制限があるからしょうがない
もちろんGC言語はその代わりに有利な面もある
そこへGC言語でないRustが初めてGC言語と対等に比較可能な存在として登場した
しかもGCのない有利さを保ったままで
935デフォルトの名無しさん
2022/03/20(日) 18:57:31.06ID:3v4+I3Ge この人rustスレではc++に比べてrustはクソと
同じように知ったかぶりでトンチンカンな叩き
してるからまあこういうことやるのが目的なんだろ
同じように知ったかぶりでトンチンカンな叩き
してるからまあこういうことやるのが目的なんだろ
936デフォルトの名無しさん
2022/03/20(日) 18:57:43.35ID:eHF+L46q > そこへGC言語でないRustが初めてGC言語と対等に比較可能な存在として登場した
SwiftにもGCは無いよね
ARC(Automatic Reference Counting)でやりくりするんよね
Swift使っこと無いし完全に俺はニワカだけど
SwiftにもGCは無いよね
ARC(Automatic Reference Counting)でやりくりするんよね
Swift使っこと無いし完全に俺はニワカだけど
937デフォルトの名無しさん
2022/03/20(日) 19:14:52.51ID:ED0sGA+M >>934
Goでコンパイラ書いたらバイナリにもGCが入るっていう誤解の正当化?
Goでコンパイラ書いたらバイナリにもGCが入るっていう誤解の正当化?
938デフォルトの名無しさん
2022/03/20(日) 19:16:00.62ID:NhMlqBrF >>936
C++とRustでも所有権を共有する時だけはARCと同じ方法を使っている
しかしC++とRustはそういう特殊なケースでのみ使用だからGC言語とは言われない
一方でSwiftは常にインスタンスに対してARCでメモリ管理をするため非常に重く効率が悪い
そしてARCが常に行われるということは参照カウント方式のGCそのものである
そのためSwiftは非GC言語とは言い難い
C++とRustでも所有権を共有する時だけはARCと同じ方法を使っている
しかしC++とRustはそういう特殊なケースでのみ使用だからGC言語とは言われない
一方でSwiftは常にインスタンスに対してARCでメモリ管理をするため非常に重く効率が悪い
そしてARCが常に行われるということは参照カウント方式のGCそのものである
そのためSwiftは非GC言語とは言い難い
939デフォルトの名無しさん
2022/03/20(日) 19:21:33.37ID:x160hDIc >>937
そのGo製コンパイラ自体はGCランタイムを含むしGCを起こすよ
他にもGoで記述して例えばWebAssemblyをブラウザ上で動かそうとすると
当然GCを含むGoの巨大なランタイムがWASM上でそのまま必要となるため
Goを使うと巨大で重くて遅い
そのGo製コンパイラ自体はGCランタイムを含むしGCを起こすよ
他にもGoで記述して例えばWebAssemblyをブラウザ上で動かそうとすると
当然GCを含むGoの巨大なランタイムがWASM上でそのまま必要となるため
Goを使うと巨大で重くて遅い
940デフォルトの名無しさん
2022/03/20(日) 19:50:10.66ID:eHF+L46q > そのためSwiftは非GC言語とは言い難い
https://docs.swift.org/swift-book/LanguageGuide/AutomaticReferenceCounting.html
> In systems that use garbage collection, (略).
> However, with ARC, (略).
ここでは「ガベージコレクションを使用するシステム」と「ARC」を対比させてるっぽいね
あと個人的にもやっぱりスマートポインタの一種でしか無いように見える
RustのRcといっしょ
循環参照はプログラマが頑張ってweak使ってなんとかしてね、ってのも
ただおっしゃるとおりRustはRcを全部に使うわけじゃあないからまた雰囲気も違うのは確か
https://docs.swift.org/swift-book/LanguageGuide/AutomaticReferenceCounting.html
> In systems that use garbage collection, (略).
> However, with ARC, (略).
ここでは「ガベージコレクションを使用するシステム」と「ARC」を対比させてるっぽいね
あと個人的にもやっぱりスマートポインタの一種でしか無いように見える
RustのRcといっしょ
循環参照はプログラマが頑張ってweak使ってなんとかしてね、ってのも
ただおっしゃるとおりRustはRcを全部に使うわけじゃあないからまた雰囲気も違うのは確か
941デフォルトの名無しさん
2022/03/20(日) 22:21:15.61ID:RXl78SgQ C++のshared_ptrやRustのRcは必要不可欠な最小限でしか用いないから必須なコストを払っているだけと言えるが
SwiftのARCは全てのインスタンスに適用されるから無駄なコストを浪費しているとしか言いようがない
SwiftのARCは全てのインスタンスに適用されるから無駄なコストを浪費しているとしか言いようがない
942デフォルトの名無しさん
2022/03/20(日) 23:09:41.16ID:1+CNf8az >>933
実際大問題だっつーのw
C#の非同期系の諸問題は大抵これが原因w
ごく稀にスレッド間の同期(排他制御)が不足してる競合が原因のがあるって感じ
お前こそC#使った開発とか本当にしたことあるのか?w
実際大問題だっつーのw
C#の非同期系の諸問題は大抵これが原因w
ごく稀にスレッド間の同期(排他制御)が不足してる競合が原因のがあるって感じ
お前こそC#使った開発とか本当にしたことあるのか?w
943デフォルトの名無しさん
2022/03/20(日) 23:37:15.53ID:1+CNf8az あとgoについて何か文句を言ったことはないw
944デフォルトの名無しさん
2022/03/20(日) 23:38:33.20ID:gQLNPKUR なんかそういうデータあるんですか?
945デフォルトの名無しさん
2022/03/20(日) 23:47:54.68ID:1+CNf8az どういうデータだよおバカさんw
946デフォルトの名無しさん
2022/03/20(日) 23:56:02.86ID:meh5jYAs >>942
それは主にお前の問題だな
それは主にお前の問題だな
947デフォルトの名無しさん
2022/03/21(月) 00:04:44.37ID:BAdp3agq >>946
仕事で作った数人x半年レベルのWindowsアプリ(製品)の話だよw
全然違う分野のだけど、C#は1.xと2.0と4.6?で作ったかなw
なので俺の問題ではないw 全員C#の練度はお前よりは上だったけどw
仕事で作った数人x半年レベルのWindowsアプリ(製品)の話だよw
全然違う分野のだけど、C#は1.xと2.0と4.6?で作ったかなw
なので俺の問題ではないw 全員C#の練度はお前よりは上だったけどw
948デフォルトの名無しさん
2022/03/21(月) 00:15:23.07ID:g32P+Ld/949デフォルトの名無しさん
2022/03/21(月) 00:31:38.49ID:IPXTt6Bp >>947-948
ならそれはお前らの技量が足りなかっただけだ。
そもそもデッドロックするかどうかは言語関係ないだろ。
新旧の仕様を混ぜて使えるようになってるのが落とし穴だ、というのなら、
それはそうかもしれんが、C#としてはそこをすぐに塞ぐのは無理だ。
それでRust使えば全く問題ない!と思うのならガンガン使ってみればいいだけ。
そんな単純な話ではないと思うけどね。
ならそれはお前らの技量が足りなかっただけだ。
そもそもデッドロックするかどうかは言語関係ないだろ。
新旧の仕様を混ぜて使えるようになってるのが落とし穴だ、というのなら、
それはそうかもしれんが、C#としてはそこをすぐに塞ぐのは無理だ。
それでRust使えば全く問題ない!と思うのならガンガン使ってみればいいだけ。
そんな単純な話ではないと思うけどね。
950デフォルトの名無しさん
2022/03/21(月) 00:58:46.04ID:BAdp3agq >>949
俺は助っ人で行っただけだからなw
現象はデッドロックだけではないし、まあお前には想像もできないし、遭遇しても解決できないから安心しろw
そして何度でも言うが、彼らはお前よりはC#についての知見が遥かに多かったよw
デッドロックの話にピンと来ないC#erは初めて見たし、await後のスレッドの話、GUIにおけるUIスレッドの役割に対する見解の話、全ての話において、お前は最低限C#技術者に必要な知見を有していないw
俺は助っ人で行っただけだからなw
現象はデッドロックだけではないし、まあお前には想像もできないし、遭遇しても解決できないから安心しろw
そして何度でも言うが、彼らはお前よりはC#についての知見が遥かに多かったよw
デッドロックの話にピンと来ないC#erは初めて見たし、await後のスレッドの話、GUIにおけるUIスレッドの役割に対する見解の話、全ての話において、お前は最低限C#技術者に必要な知見を有していないw
951デフォルトの名無しさん
2022/03/21(月) 08:32:36.49ID:t8rbivUy 小学生ですがみなさんの情報たいへんおもしろいです
でもどうして大人のひとってけんかばかりしてるのですか?
でもどうして大人のひとってけんかばかりしてるのですか?
952デフォルトの名無しさん
2022/03/21(月) 08:45:38.05ID:BAdp3agq こんなところに来る小学生はあんまり小学生とか言わないで使いそうだけどなw
喧嘩なんてしなくて、じゃれ合ってるだけだからだよw
喧嘩なんてしなくて、じゃれ合ってるだけだからだよw
953デフォルトの名無しさん
2022/03/21(月) 08:48:32.48ID:2Zu3Swq+954デフォルトの名無しさん
2022/03/21(月) 08:56:52.04ID:BAdp3agq もちろん.NET Frameworkのバージョンだよw C#のバージョンなんて誰も覚えてないだろw
955デフォルトの名無しさん
2022/03/21(月) 09:13:23.58ID:IPXTt6Bp >>950
それはやり方を間違ってるからおかしな事になってるだけ。
例えて言うなら、舗装道路が用意されてるのにイキって荒地を走行してパンクしてるようなもの。
天の邪鬼も自由だが、それでフレームワークや言語のせいにするのは違う。
それはやり方を間違ってるからおかしな事になってるだけ。
例えて言うなら、舗装道路が用意されてるのにイキって荒地を走行してパンクしてるようなもの。
天の邪鬼も自由だが、それでフレームワークや言語のせいにするのは違う。
956デフォルトの名無しさん
2022/03/21(月) 09:56:39.42ID:+0SCi87t 結局程度の低いプログラマーがC#が悪い!って言ってるだけだろ?
話を見てるだけでも.netのフレームワークも別に悪くない
C++で文字コードの扱いが悪いと言うならわかるけど…
話を見てるだけでも.netのフレームワークも別に悪くない
C++で文字コードの扱いが悪いと言うならわかるけど…
957デフォルトの名無しさん
2022/03/21(月) 09:57:03.43ID:BAdp3agq お前まだいたの?w ここでの話は
・.NETのモデルは出来が悪い
・お前C#erに必要な最低限の知見がない
これだけだし結論出てんだよw
・.NETのモデルは出来が悪い
・お前C#erに必要な最低限の知見がない
これだけだし結論出てんだよw
958デフォルトの名無しさん
2022/03/21(月) 10:08:50.17ID:bf5EvDSb >>957
C#erって言葉を使ってるだけで相手を見下してるよね
Rustで同じ状況じゃ競合が起きないとかいうならわかるけどそういう話でもないし
あなたが勝手に出来が悪いと言ってるようにしか見えないんだから
出された例も馬鹿らしくて.NETのモデルも別に悪くないと思う
誰もあなたに同意できない
それだけの技量があなたにはない
他人を見下したり自分が悪いと思える謙虚さがないと低級プログラマにしかなれない
いい加減に静かにしてもらえないかな
それかどこか別に行ってやるか
C#erって言葉を使ってるだけで相手を見下してるよね
Rustで同じ状況じゃ競合が起きないとかいうならわかるけどそういう話でもないし
あなたが勝手に出来が悪いと言ってるようにしか見えないんだから
出された例も馬鹿らしくて.NETのモデルも別に悪くないと思う
誰もあなたに同意できない
それだけの技量があなたにはない
他人を見下したり自分が悪いと思える謙虚さがないと低級プログラマにしかなれない
いい加減に静かにしてもらえないかな
それかどこか別に行ってやるか
959デフォルトの名無しさん
2022/03/21(月) 10:12:21.44ID:bf5EvDSb デッドロックに対応できないのは言語やフレームワークのせいじゃないだろ
実際にモデルが悪いのはそっちの設計の方だろ?
実際にモデルが悪いのはそっちの設計の方だろ?
960デフォルトの名無しさん
2022/03/21(月) 10:38:31.66ID:BAdp3agq まだ言ってるしwwwww
普通にTaskをwaitするのがawaitなのにTask.Waitって名前でデッドロックする仕様はモデルが悪いとしか言いようがないだろwwww
普通にTaskをwaitするのがawaitなのにTask.Waitって名前でデッドロックする仕様はモデルが悪いとしか言いようがないだろwwww
961デフォルトの名無しさん
2022/03/21(月) 10:39:34.38ID:BAdp3agq 謙虚さとかプログラマには要らないからw
色眼鏡かけてなければ問題ないよw
色眼鏡かけてなければ問題ないよw
962デフォルトの名無しさん
2022/03/21(月) 11:52:23.94ID:1IpbvO/Q >>961
謙虚さがないからおまえみたいに色眼鏡かけるようになるんだよ。少しは学べよ。
謙虚さがないからおまえみたいに色眼鏡かけるようになるんだよ。少しは学べよ。
963デフォルトの名無しさん
2022/03/21(月) 11:56:12.36ID:4nBaVoJg ろくに調べもしないで不具合だしてるだけじゃん
名前で判断するなよ
名前で判断するなよ
964デフォルトの名無しさん
2022/03/21(月) 12:07:23.76ID:BAdp3agq 色眼鏡かけてるのはお前だけだよw
公平に見るために謙虚さはむしろ要らないw
謙虚にすると周囲に合わせることになり、自分の意見が100%反映されなくなるw
迎合してエコーチェンバーの一部になると、色眼鏡をかけることになり、公平な判断は出来なくなるw
不具合出したわけではなく、.NETのモデルが悪いだけw 日本語不自由なんだねw
公平に見るために謙虚さはむしろ要らないw
謙虚にすると周囲に合わせることになり、自分の意見が100%反映されなくなるw
迎合してエコーチェンバーの一部になると、色眼鏡をかけることになり、公平な判断は出来なくなるw
不具合出したわけではなく、.NETのモデルが悪いだけw 日本語不自由なんだねw
965デフォルトの名無しさん
2022/03/21(月) 12:20:03.99ID:9hJO1ac5 Tas.Waitでデッドロックする条件分かってんだからライブラリ側で例外投げてくれよとは思うが
1ライブラリのクソ要素を根拠に言語自体をクソと言い張る思考には感心するよ
1ライブラリのクソ要素を根拠に言語自体をクソと言い張る思考には感心するよ
966デフォルトの名無しさん
2022/03/21(月) 12:38:23.15ID:BAdp3agq C#をクソと言ったことはないぞw 日本語不自由さには事欠かないねw
マルチスレッド同期機構と非同期処理を言語で比較する話で、やれデッドロックがどうのと言っており、かつC#が良いという結論を出していたので、>>876で.NET Frameworkのモデルの悪さを指摘し、goでいいのでは?と言っただけだろうにw
話を続けた結果、彼は案の定デッドロックの話を把握しておらず、Task機構についても誤解しており、await後のスレッドについても知見がなかったので、彼の知見は一般のC#erに劣るという結論を出しただけw
マルチスレッド同期機構と非同期処理を言語で比較する話で、やれデッドロックがどうのと言っており、かつC#が良いという結論を出していたので、>>876で.NET Frameworkのモデルの悪さを指摘し、goでいいのでは?と言っただけだろうにw
話を続けた結果、彼は案の定デッドロックの話を把握しておらず、Task機構についても誤解しており、await後のスレッドについても知見がなかったので、彼の知見は一般のC#erに劣るという結論を出しただけw
967デフォルトの名無しさん
2022/03/21(月) 14:48:44.25ID:bf5EvDSb いい加減に辞めたら?
それを持ってライブラリのモデルが悪いと言うのは変じゃないか
あなたの主張が誰一人説得できないのはあなたの問題であってスレの住人の問題じゃない
それを持ってライブラリのモデルが悪いと言うのは変じゃないか
あなたの主張が誰一人説得できないのはあなたの問題であってスレの住人の問題じゃない
968デフォルトの名無しさん
2022/03/21(月) 14:55:29.99ID:+0SCi87t 次スレでも不毛な話が続く予感
と言うか最初からこのスレは不毛地帯だった
と言うか最初からこのスレは不毛地帯だった
969デフォルトの名無しさん
2022/03/21(月) 18:06:00.78ID:BAdp3agq こんなに分かりやすいモデルの悪さを納得できないとか、お前がプログラマ向いてないだけwwww
970デフォルトの名無しさん
2022/03/21(月) 21:10:25.40ID:lQjpcq8E この人色々なスレでスレごとに違うもの叩いてるから
おかしな人なんだろ
おかしな人なんだろ
971デフォルトの名無しさん
2022/03/21(月) 21:29:05.60ID:BAdp3agq ついに俺のファンまで出現w
972デフォルトの名無しさん
2022/03/21(月) 22:18:23.01ID:IPXTt6Bp >>966
まあ君は「ぼくはわるくない!まわりがわるいんだ!」のタイプで、一生間違いを認めないんだろうけどさ。
C#はasync/awaitの導入で、『正しく使えば』、同期周りをユーザーが全く書く必要がなくなった。
結果、『意図的に間違えるような事をしなければ』、デッドロックはしなくなった。
そして見た目はほぼ同期であり、素晴らしく分かりやすかったので、他も追従した。
(だから他言語でもasync/awaitを『正しく』使ってる限りデッドロックはしないはず)
『正しく使えば』『意図的に間違えるような事をしなければ』なんて一々言わずともまともな人には大前提だし、
そもそもフレームワークは規定通り使わないとまともに動かない。
君がイカレてるから君の周りも同様の人しか居らず、自分達が掘った墓穴に落ちて大騒ぎしてただけだと思うぞ。
(「正しく使おう」とか、君は考えた事ないだろ)
とはいえ、平行線だし、合意を取る必要はないので、まあこれで終わりだね。
まあ君は「ぼくはわるくない!まわりがわるいんだ!」のタイプで、一生間違いを認めないんだろうけどさ。
C#はasync/awaitの導入で、『正しく使えば』、同期周りをユーザーが全く書く必要がなくなった。
結果、『意図的に間違えるような事をしなければ』、デッドロックはしなくなった。
そして見た目はほぼ同期であり、素晴らしく分かりやすかったので、他も追従した。
(だから他言語でもasync/awaitを『正しく』使ってる限りデッドロックはしないはず)
『正しく使えば』『意図的に間違えるような事をしなければ』なんて一々言わずともまともな人には大前提だし、
そもそもフレームワークは規定通り使わないとまともに動かない。
君がイカレてるから君の周りも同様の人しか居らず、自分達が掘った墓穴に落ちて大騒ぎしてただけだと思うぞ。
(「正しく使おう」とか、君は考えた事ないだろ)
とはいえ、平行線だし、合意を取る必要はないので、まあこれで終わりだね。
973デフォルトの名無しさん
2022/03/21(月) 22:18:46.22ID:IPXTt6Bp ちなRustの所有権とか見直してみたが、
以前読んだ時よりは大分文面が修正されてるのか、マシな印象だが、
いずれにしてもゴミなのは事実だね。RustはC++の出来損ないになってる。
一番の問題は、所有権でライフタイム管理を「入れ子」ではなく「投げ捨て」型にした事であり、
これで余分に手間が増えてしまってる。
「入れ子」の方が自然なので殆どの言語で採用されており、
問題は「入れ子」にならない場合にどうするかだが、
C:全部プログラマが管理しろ
C++:スマポ入荷しました
Rust:スマポと所有権(投げ捨て型)
なら、全く進歩してない。
必要なのはスマポに変わる何かであり、Rustは何ら役に立つ新規提案がない。
基本的にC++の構成をなぞっただけであり、おかしな補助輪を付けてしまってるので、
C++で苦労してない人にとってはC++の方がマシだろう。
それで改善点がメモリリークしなくなった程度では、流行りようがないよ。
(そもそもC++も『正しく使えば』メモリリークはしない。
君の視点だと文法的に問題がない=コンパイルが通る=正しく使う、なのだろうし、
実際こう出来ればいいのも確かだが、現状のプログラミング言語の大半はこうなってない。
これは一概に悪いというわけでもなく、プログラミングスタイルに自由度を与える為には必要でもある。
文法エラー=新しいスタイルを試しようがない=進歩しない言語、という事になるので)
以前読んだ時よりは大分文面が修正されてるのか、マシな印象だが、
いずれにしてもゴミなのは事実だね。RustはC++の出来損ないになってる。
一番の問題は、所有権でライフタイム管理を「入れ子」ではなく「投げ捨て」型にした事であり、
これで余分に手間が増えてしまってる。
「入れ子」の方が自然なので殆どの言語で採用されており、
問題は「入れ子」にならない場合にどうするかだが、
C:全部プログラマが管理しろ
C++:スマポ入荷しました
Rust:スマポと所有権(投げ捨て型)
なら、全く進歩してない。
必要なのはスマポに変わる何かであり、Rustは何ら役に立つ新規提案がない。
基本的にC++の構成をなぞっただけであり、おかしな補助輪を付けてしまってるので、
C++で苦労してない人にとってはC++の方がマシだろう。
それで改善点がメモリリークしなくなった程度では、流行りようがないよ。
(そもそもC++も『正しく使えば』メモリリークはしない。
君の視点だと文法的に問題がない=コンパイルが通る=正しく使う、なのだろうし、
実際こう出来ればいいのも確かだが、現状のプログラミング言語の大半はこうなってない。
これは一概に悪いというわけでもなく、プログラミングスタイルに自由度を与える為には必要でもある。
文法エラー=新しいスタイルを試しようがない=進歩しない言語、という事になるので)
974デフォルトの名無しさん
2022/03/21(月) 22:34:35.67ID:uhwdA/oK 記述や理解が楽になる言語、ってわけじゃなくて、そもそも安全で高性能な言語であることが前提の言語だし、別にRustはメモリリークは解決してない
手間が少なく、安全である必要もないなら、Rustを使う必要性は薄れる
手間が少なく、安全である必要もないなら、Rustを使う必要性は薄れる
975デフォルトの名無しさん
2022/03/21(月) 22:37:08.58ID:uhwdA/oK >手間が少なく、
手間を少なくしたくて、
の書き間違い
手間を少なくしたくて、
の書き間違い
976デフォルトの名無しさん
2022/03/21(月) 22:55:29.48ID:yRnc3iuh977デフォルトの名無しさん
2022/03/21(月) 23:25:18.39ID:IPXTt6Bp >>974,976
「GC無しで!!!」と謳ってたから「メモリリーク無し」は当然だと思ってたのだが違うのか?
(なお見てるのは主に公式勝手訳日本語版。そこすら全部読んでもないので)
> 手間を少なくしたくて、安全である必要もないなら
手間は少なくなってない気もするが。
安全って型安全の事?なら俺は型無しでもまあいいや程度なので、
確かに俺には意味がない言語なんだろう。
(型があっても困らないが、
C++みたいに関数ポインタを常用しようとするとテンプレートを書きまくらなくてはいけなくなるのは困る。
この点、関数型やスクリプト言語がどれもこれも型無しなのは非常に納得)
見た目Rustは、C++をある特定の使い方(と言っても多分本流本筋だが)に特化しただけのように見える。
だからそのプログラミングスタイルだった人には素晴らしく嵌るのだろうけど。
「GC無しで!!!」と謳ってたから「メモリリーク無し」は当然だと思ってたのだが違うのか?
(なお見てるのは主に公式勝手訳日本語版。そこすら全部読んでもないので)
> 手間を少なくしたくて、安全である必要もないなら
手間は少なくなってない気もするが。
安全って型安全の事?なら俺は型無しでもまあいいや程度なので、
確かに俺には意味がない言語なんだろう。
(型があっても困らないが、
C++みたいに関数ポインタを常用しようとするとテンプレートを書きまくらなくてはいけなくなるのは困る。
この点、関数型やスクリプト言語がどれもこれも型無しなのは非常に納得)
見た目Rustは、C++をある特定の使い方(と言っても多分本流本筋だが)に特化しただけのように見える。
だからそのプログラミングスタイルだった人には素晴らしく嵌るのだろうけど。
978デフォルトの名無しさん
2022/03/21(月) 23:37:51.67ID:5Szv6JZQ >>973
あまりにもデタラメすぎてむしろ苦笑
理解できなかったこと自体は仕方がないが
それにも関わらず他の言語をデタラメに叩くのはまともな人がすることではない
あまりにも間違いが多すぎて指摘しきれないが
例えば所有権はC++のスマートポインタ(unique_ptr/shared_ptr)で導入された概念
それなのになぜかC++にはスマポと書きながら所有権がなくRustのみに所有権と書いている
まずこの時点でC++の所有権とスマートポインタからして理解が出来ていない
さらにその後のRustに関することは妄想だらけになってしまっている
あまりにもデタラメすぎてむしろ苦笑
理解できなかったこと自体は仕方がないが
それにも関わらず他の言語をデタラメに叩くのはまともな人がすることではない
あまりにも間違いが多すぎて指摘しきれないが
例えば所有権はC++のスマートポインタ(unique_ptr/shared_ptr)で導入された概念
それなのになぜかC++にはスマポと書きながら所有権がなくRustのみに所有権と書いている
まずこの時点でC++の所有権とスマートポインタからして理解が出来ていない
さらにその後のRustに関することは妄想だらけになってしまっている
979デフォルトの名無しさん
2022/03/21(月) 23:38:20.57ID:VmldphcS980デフォルトの名無しさん
2022/03/21(月) 23:51:09.41ID:Juhg7nIl981デフォルトの名無しさん
2022/03/21(月) 23:54:59.16ID:IPXTt6Bp >>978
書き方が悪かったかもしれんが、
ブロックスコープで済み、それが最適な場所にすら所有権を強制して、
結果的に無駄に借用とかする羽目になってるのは事実だろ。
問題は、プログラミングでは大半の場合で「入れ子」が最適な事。
「投げ捨て」が向いてるのは、上から下に流れて終わり、のようなプログラムで、
サーバーは確かにそうだが。
書き方が悪かったかもしれんが、
ブロックスコープで済み、それが最適な場所にすら所有権を強制して、
結果的に無駄に借用とかする羽目になってるのは事実だろ。
問題は、プログラミングでは大半の場合で「入れ子」が最適な事。
「投げ捨て」が向いてるのは、上から下に流れて終わり、のようなプログラムで、
サーバーは確かにそうだが。
982デフォルトの名無しさん
2022/03/21(月) 23:58:58.49ID:uhwdA/oK あの子みたいにまともに議論する気がないのはお話にもならないけど、
知識が足りないのはまあしょうがないやろ
全部わかってるひとなんてこんなスレには1人もいないだろうし
>>977
伝わらなかったみたいだけど、そうそう、Rustは手間を少なくする言語でもないよ
データ競合なくして型も省略しまくりたい、みたいなのだったらHaskellみたいに型推論がやたら強い言語とかもあるし
知識が足りないのはまあしょうがないやろ
全部わかってるひとなんてこんなスレには1人もいないだろうし
>>977
伝わらなかったみたいだけど、そうそう、Rustは手間を少なくする言語でもないよ
データ競合なくして型も省略しまくりたい、みたいなのだったらHaskellみたいに型推論がやたら強い言語とかもあるし
983デフォルトの名無しさん
2022/03/21(月) 23:59:10.41ID:cgJvFkX3 >>981
入れ子って何?
入れ子って何?
984デフォルトの名無しさん
2022/03/22(火) 00:10:38.80ID:5pgpy3FW >>981
他の言語を批判したいなら、せめてもう少しは勉強したほうがいいよ
その意味不明な文章は理解不足が引き起こしている
もしどうしてもRustについて理解できないのならば、先にC++のunique_ptrを学んで所有権とは何かを理解すべき
あと他の人たちも指摘しているが「入れ子」や「投げ捨て」が意味不明
他の言語を批判したいなら、せめてもう少しは勉強したほうがいいよ
その意味不明な文章は理解不足が引き起こしている
もしどうしてもRustについて理解できないのならば、先にC++のunique_ptrを学んで所有権とは何かを理解すべき
あと他の人たちも指摘しているが「入れ子」や「投げ捨て」が意味不明
985デフォルトの名無しさん
2022/03/22(火) 00:14:23.89ID:JFwrpdmf >>982
なら何を目指してんのよ?
他に謳ってたのは「ゼロコスト抽象化」だが。
公式勝手訳日本語版まえがき、には
> 既に低レベルコードに取り組んでいるプログラマは、Rustを使用してさらなる高みを目指せます。
> 例えば、 Rustで並列性を導入することは、比較的低リスクです: コンパイラが伝統的なミスを捕捉してくれるのです。
一文目は素晴らしい。
が、二文目は、無いよりまし程度だし、そもそも無駄に手間が増えてる部分もあるから意味なくね?
なら何を目指してんのよ?
他に謳ってたのは「ゼロコスト抽象化」だが。
公式勝手訳日本語版まえがき、には
> 既に低レベルコードに取り組んでいるプログラマは、Rustを使用してさらなる高みを目指せます。
> 例えば、 Rustで並列性を導入することは、比較的低リスクです: コンパイラが伝統的なミスを捕捉してくれるのです。
一文目は素晴らしい。
が、二文目は、無いよりまし程度だし、そもそも無駄に手間が増えてる部分もあるから意味なくね?
986デフォルトの名無しさん
2022/03/22(火) 00:14:49.50ID:5pgpy3FW >>982
Rustを使うことで様々な手間が省けるのは事実
もちろん元の言語が何であるかによって、どんな手間が省けるようになるのか変わる
だから手間が省ける議論に関しては、比較対象を毎回固定しないと一般的な議論は無意味
Rustを使うことで様々な手間が省けるのは事実
もちろん元の言語が何であるかによって、どんな手間が省けるようになるのか変わる
だから手間が省ける議論に関しては、比較対象を毎回固定しないと一般的な議論は無意味
987デフォルトの名無しさん
2022/03/22(火) 00:23:48.60ID:RldJWe6f988デフォルトの名無しさん
2022/03/22(火) 00:31:00.32ID:1lLSjjDL 知識不足指摘されて意味のわからん逆ギレ起こすのは
同程度だったな
同程度だったな
989デフォルトの名無しさん
2022/03/22(火) 00:37:24.63ID:TacRn98V Rustの利点はプログラミングがしやすいことに尽きるかな
とにかく書きやすくて全体の効率がいい
自分にとっては安全とか保証とかはオマケで付いてくる位置付け
とにかく書きやすくて全体の効率がいい
自分にとっては安全とか保証とかはオマケで付いてくる位置付け
990デフォルトの名無しさん
2022/03/22(火) 01:10:05.14ID:JFwrpdmf >>987
それについてはさんざん言ってきたが、同様に前書きには
> 伝統的にこの分野は難解で、年月をかけて
> やっかいな落とし穴を回避する術を --- (A)
> 習得した選ばれし者にだけ可能と見なされています。
> そのように鍛錬を積んだ者でさえ注意が必要で、 --- (B)
これも事実だが、逆に(A)が存在するのも事実なんだよ。
ただ、(B)も事実だから、やってくれる事に越した事はないが、
それでも「全部完璧にやってくれる」のでなければ丸投げは出来ない。
具体的に言えば、GCならメモリ管理一切しなくて済むけど、そういうわけでもないし、
並列時のロックや競合も完璧にはやってくれない(だろう)から、手間自体は大して減らないよ。
例えば(A)だけどさ、
> データ競合が起きないことをRustは保証する
実際Rustがどこまで検出出来るのか知らんが、データ競合を回避したいのなら、
そもそもディスパッチ前に全部解決してしまう
(共有部分に書き込み出来るのはメインスレッドだけにする、
ディスパッチ以降は不変、無理ならディープコピーを渡す)のがセオリーで、
この形式でメインスレッドからサブスレッドをこき使うのがC#のasync/awaitの形であり、
こう「正しく使えば」全く問題ないわけ。(上位構造で問題を解決する)
このセオリーを知らない=『術を習得もしてないし選ばれてもない者』にはRustは役に立つかもしれんけど、それは、
> Rustを使用してさらなる高みを目指せます。
なら、嘘だね、という話だよ。術を修得してれば同じ事は既に出来てる。
だから何度も言ってるように、
Rustが得意(らしい)、細かく共有しないと無理か、爆速になるアプリは何?
(セオリー通りに構成した時に性能が出ないアプリは何?)
と聞いてきてたわけ。
馬鹿向けの杖ならいらねえ、な奴はいくらでもいるでしょ。
(俺が賢いというのではなく、ノウハウは既に溜まってるという意味で)
それについてはさんざん言ってきたが、同様に前書きには
> 伝統的にこの分野は難解で、年月をかけて
> やっかいな落とし穴を回避する術を --- (A)
> 習得した選ばれし者にだけ可能と見なされています。
> そのように鍛錬を積んだ者でさえ注意が必要で、 --- (B)
これも事実だが、逆に(A)が存在するのも事実なんだよ。
ただ、(B)も事実だから、やってくれる事に越した事はないが、
それでも「全部完璧にやってくれる」のでなければ丸投げは出来ない。
具体的に言えば、GCならメモリ管理一切しなくて済むけど、そういうわけでもないし、
並列時のロックや競合も完璧にはやってくれない(だろう)から、手間自体は大して減らないよ。
例えば(A)だけどさ、
> データ競合が起きないことをRustは保証する
実際Rustがどこまで検出出来るのか知らんが、データ競合を回避したいのなら、
そもそもディスパッチ前に全部解決してしまう
(共有部分に書き込み出来るのはメインスレッドだけにする、
ディスパッチ以降は不変、無理ならディープコピーを渡す)のがセオリーで、
この形式でメインスレッドからサブスレッドをこき使うのがC#のasync/awaitの形であり、
こう「正しく使えば」全く問題ないわけ。(上位構造で問題を解決する)
このセオリーを知らない=『術を習得もしてないし選ばれてもない者』にはRustは役に立つかもしれんけど、それは、
> Rustを使用してさらなる高みを目指せます。
なら、嘘だね、という話だよ。術を修得してれば同じ事は既に出来てる。
だから何度も言ってるように、
Rustが得意(らしい)、細かく共有しないと無理か、爆速になるアプリは何?
(セオリー通りに構成した時に性能が出ないアプリは何?)
と聞いてきてたわけ。
馬鹿向けの杖ならいらねえ、な奴はいくらでもいるでしょ。
(俺が賢いというのではなく、ノウハウは既に溜まってるという意味で)
991デフォルトの名無しさん
2022/03/22(火) 01:12:15.32ID:pDa7kf85992デフォルトの名無しさん
2022/03/22(火) 01:29:51.72ID:vkqcnRJV993デフォルトの名無しさん
2022/03/22(火) 01:38:14.59ID:JFwrpdmf >>991
> 結果としてベアメタル環境でも利用可能です
ちなみに、以下の
> Rustの非同期プログラミングで出来るようになること
> 組み込み
> https://tech-blog.optim.co.jp/entry/2019/11/08/163000
この「組み込み」は面白いと思ったよ。(妄想らしいが)
見た目ポーリングにしか見えない点が問題だが。(慣れかもしれんが)
> 結果としてベアメタル環境でも利用可能です
ちなみに、以下の
> Rustの非同期プログラミングで出来るようになること
> 組み込み
> https://tech-blog.optim.co.jp/entry/2019/11/08/163000
この「組み込み」は面白いと思ったよ。(妄想らしいが)
見た目ポーリングにしか見えない点が問題だが。(慣れかもしれんが)
994デフォルトの名無しさん
2022/03/22(火) 02:21:54.43ID:q+lZbjeY データ競合なんて言葉を使うから議論がかみ合わないのであって
例えばgolangでforループで逐次処理してた部分をgoroutine使って並列動作するよう修正したときに
うっかりループカウンタをgoroutine内でそのまま使ってしまって意図通り動かなくなったりすることがある
普通はテストなりで検出できるけど、条件が込み入ってくると検出するのが難しいバグの原因になるかもしれない
rustの場合こういったうっかりをコンパイル時にできるだけ検出できるように言語仕様が考えられている
rustを使えばあらゆるミスを検出できるわけではないけど、うっかりの入り込む余地を減らせるだけでも嬉しい人はいるだろう
逆にそんなうっかりはしないから好きに書かせてくれよという人もいるかもしれない
それぞれの考えに合った言語を選べば良い、と言ってしまうこのスレのテーマの否定になってしまうか
例えばgolangでforループで逐次処理してた部分をgoroutine使って並列動作するよう修正したときに
うっかりループカウンタをgoroutine内でそのまま使ってしまって意図通り動かなくなったりすることがある
普通はテストなりで検出できるけど、条件が込み入ってくると検出するのが難しいバグの原因になるかもしれない
rustの場合こういったうっかりをコンパイル時にできるだけ検出できるように言語仕様が考えられている
rustを使えばあらゆるミスを検出できるわけではないけど、うっかりの入り込む余地を減らせるだけでも嬉しい人はいるだろう
逆にそんなうっかりはしないから好きに書かせてくれよという人もいるかもしれない
それぞれの考えに合った言語を選べば良い、と言ってしまうこのスレのテーマの否定になってしまうか
995デフォルトの名無しさん
2022/03/22(火) 02:41:35.79ID:w7t1sqYz996デフォルトの名無しさん
2022/03/22(火) 02:59:56.03ID:ZDHdo9X7997デフォルトの名無しさん
2022/03/22(火) 03:07:47.73ID:ZDHdo9X7 Rustのメモリ安全については、いかなる条件でも「保証する」と言われない限りは突っ込んだ人の負けだぞw
循環参照については、
https://doc.rust-lang.org/book/ch15-06-reference-cycles.html
を読んでそれに従って苦情を言えw そうでないと反論にならないw
循環参照については、
https://doc.rust-lang.org/book/ch15-06-reference-cycles.html
を読んでそれに従って苦情を言えw そうでないと反論にならないw
998デフォルトの名無しさん
2022/03/22(火) 03:24:04.52ID:ZDHdo9X7999デフォルトの名無しさん
2022/03/22(火) 03:25:57.77ID:iVTUF9ds 質問いいですか?
1000デフォルトの名無しさん
2022/03/22(火) 04:14:24.11ID:SFGcZaAi だめです
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 113日 11時間 15分 5秒
新しいスレッドを立ててください。
life time: 113日 11時間 15分 5秒
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 【速報】東京・足立区のひき逃げ事故 警視庁が運転手とみられる人物確保 80代男性の死亡確認、20代女性心肺停止 ★3 [Ailuropoda melanoleuca★]
- 【速報】東京・足立区のひき逃げ事故 警視庁が運転手とみられる人物確保 心肺停止の2人は20代女性と80代男性 ★2 [Ailuropoda melanoleuca★]
- 【国防】衝撃を与えた米シンクタンクの「台湾侵攻シミュレーション」日本の被害は? [1ゲットロボ★]
- 【東京】乗用車が歩行者をはね11人ケガ、うち2人重体 現場に残されたセダンの運転手が衝突後に逃走…ひき逃げ事件として捜査 足立 [ぐれ★]
- 【宅急便】ヤマト運輸がベトナム人ドライバー500人採用…不安視される「運転技術」「コミュニケーション」「助成金」 ★2 [シャチ★]
- スペイン、移民受け入れで成長 1人当たりGDP日本超え ★3 [蚤の市★]
- 「高市早苗」にある意味一番驚いたのはそのペラペラさ。バカ市早苗と言ってもいい。菅、岸田、石破とレベルが違う。 [592058334]
- 【高市悲報】日本人、足立区11人ひき逃げ犯の国籍で大荒れwwwwwwwwwwwwwwwwwwwwww [316257979]
- 高市早苗、国際会議で全然会話せず速攻で帰国か。「米連邦議会」で働いてた経験もあるのになぜ?😲 [861717324]
- ぽこちんで出来た🏡
- 高市応援団「国連の常任理事国は中華民国(台湾)で中国は常任理事国じゃない」急速に広がる🙀 [931948549]
- 【悲報】足立区ひき逃げ犯、精神病!責任能力なしへ [347751896]
