スレタイ以外の言語もok
前スレ
次世代言語27 TypeScript Swift Go Kotlin Rust Nim
https://mevius.5ch.net/test/read.cgi/tech/1659655598/
次世代言語28 TypeScript Swift Go Kotlin Rust Nim
レス数が1000を超えています。これ以上書き込みはできません。
2022/08/29(月) 11:22:16.48ID:5dAad4gs
2022/08/29(月) 13:57:56.66ID:rGElgR/G
3デフォルトの名無しさん
2022/08/29(月) 17:39:40.63ID:OPpJUiH3 文字列の変数sが与えられた時に
変数a (符号付き32bit整数)、
変数b (符号なし64bit整数)、
変数c (64bit浮動小数点数)へそれぞれ変換するコード
【Rust】
let s: &str = "12345";
let a: i32 = s.parse()?;
let b: u64 = s.parse()?;
let c: f64 = s.parse()?;
【Kotlin】
val s: String = "12345"
val a: Int = s.toInt()
val b: ULong = s.toULong()
val c: Double = s.toDouble()
【Swift】
let s: String = "12345"
let a: Int32 = Int32(s)!
let b: Uint64 = Uint64(s)!
let c: Double = Double(s)!
【Go】
var s string = "12345"
var err error
var a int32
a, err = strconv.ParseInt(s, 10, 32)
var b uint64
b, err = strconv.ParseUint(s, 10, 64)
var c float64
c, err = strconv.ParseFloat(s, 64)
変数a (符号付き32bit整数)、
変数b (符号なし64bit整数)、
変数c (64bit浮動小数点数)へそれぞれ変換するコード
【Rust】
let s: &str = "12345";
let a: i32 = s.parse()?;
let b: u64 = s.parse()?;
let c: f64 = s.parse()?;
【Kotlin】
val s: String = "12345"
val a: Int = s.toInt()
val b: ULong = s.toULong()
val c: Double = s.toDouble()
【Swift】
let s: String = "12345"
let a: Int32 = Int32(s)!
let b: Uint64 = Uint64(s)!
let c: Double = Double(s)!
【Go】
var s string = "12345"
var err error
var a int32
a, err = strconv.ParseInt(s, 10, 32)
var b uint64
b, err = strconv.ParseUint(s, 10, 64)
var c float64
c, err = strconv.ParseFloat(s, 64)
2022/08/29(月) 18:02:10.99ID:99yF6EBS
KotlinやSwiftは型推論できるやろ
それにパースとキャストは違うぞ
それにパースとキャストは違うぞ
5デフォルトの名無しさん
2022/08/29(月) 18:41:59.28ID:bPAqKnWj 全然書き込みが無いけど
ypeScript Swift Go Kotlin Rust Nimって、需要も人気も無いの?
ypeScript Swift Go Kotlin Rust Nimって、需要も人気も無いの?
2022/08/29(月) 18:50:03.71ID:9qXoEPFV
7デフォルトの名無しさん
2022/08/29(月) 19:09:28.15ID:bPAqKnWj 次世代言語と言われる
TypeScript も Swift も Go も Kotlin も Rust も Nim ←これらの言語を全然知らない、
昭和の時代から IT関連業で働き、稼いでいた者には、居場所が無いから別の職種に転業すべきかなぁ
TypeScript も Swift も Go も Kotlin も Rust も Nim ←これらの言語を全然知らない、
昭和の時代から IT関連業で働き、稼いでいた者には、居場所が無いから別の職種に転業すべきかなぁ
8デフォルトの名無しさん
2022/08/29(月) 19:33:16.23ID:iMDvJogZ >>7
TS、Go、Kotlinはいたるところで使われてるから、すでに現行言語では?
TS、Go、Kotlinはいたるところで使われてるから、すでに現行言語では?
2022/08/29(月) 19:46:28.38ID:vWUiNEGz
AWSがプログラミング言語「Rust」を使っている理由
https://japan.zdnet.com/article/35183866/
Amazon Web Services(AWS)は、同社のエンジニアたちがプログラミング言語「Rust」を
使っている大きな理由として、エネルギー効率の高さを挙げる。
AWSは早くからRustを採用し、GoogleやMicrosoftとともにRust Foundationの創設にも携わった。
現在もRustの普及に熱心に取り組んでいる。
AWSのソフトウェアエンジニアで、Rustの普及に取り組む、
Shane Miller氏と主任エンジニアのCarl Lerche氏の投稿によれば、
Rustはメモリー安全性を高め、セキュリティ関連の不具合を減らす役に立つだけでなく、
PythonやJavaよりもはるかに「エネルギー効率に優れている」という。
Amazonは、2025年までにデータセンターの100%を再生エネルギーでまかなうという目標を掲げ、
データセンターの環境負荷の軽減に取り組んでいる。
Rustの採用はその一翼を担うという。
Rustで構築されたAWSサービスの例としては、
コンテナーアプリ用のサーバーレスプラットフォーム「Lamba」を支える「Firecracker」、
「Amazon Simple Storage Service(S3)」「Amazon Elastic Compute Cloud(EC2)」、
コンテンツ配信ネットワーク「Amazon CloudFront」、
LinuxベースのコンテナーOS「Bottlerocket」がある。
「CやRustが他の言語よりもエネルギー効率に優れていることに驚きはない。
衝撃的なのは、その違いの大きさだ。CとRustを広範に採用すれば、
控えめに見積もってもコンピュートに使用されるエネルギーの量を50%削減できる可能性がある」と
Miller氏は述べ、その根拠として、C、GoogleのGo、Lua、Python、Ruby、Fortranなどをはじめとする
複数の言語のエネルギー効率を相対的に示した研究結果を紹介している。
https://japan.zdnet.com/article/35183866/
Amazon Web Services(AWS)は、同社のエンジニアたちがプログラミング言語「Rust」を
使っている大きな理由として、エネルギー効率の高さを挙げる。
AWSは早くからRustを採用し、GoogleやMicrosoftとともにRust Foundationの創設にも携わった。
現在もRustの普及に熱心に取り組んでいる。
AWSのソフトウェアエンジニアで、Rustの普及に取り組む、
Shane Miller氏と主任エンジニアのCarl Lerche氏の投稿によれば、
Rustはメモリー安全性を高め、セキュリティ関連の不具合を減らす役に立つだけでなく、
PythonやJavaよりもはるかに「エネルギー効率に優れている」という。
Amazonは、2025年までにデータセンターの100%を再生エネルギーでまかなうという目標を掲げ、
データセンターの環境負荷の軽減に取り組んでいる。
Rustの採用はその一翼を担うという。
Rustで構築されたAWSサービスの例としては、
コンテナーアプリ用のサーバーレスプラットフォーム「Lamba」を支える「Firecracker」、
「Amazon Simple Storage Service(S3)」「Amazon Elastic Compute Cloud(EC2)」、
コンテンツ配信ネットワーク「Amazon CloudFront」、
LinuxベースのコンテナーOS「Bottlerocket」がある。
「CやRustが他の言語よりもエネルギー効率に優れていることに驚きはない。
衝撃的なのは、その違いの大きさだ。CとRustを広範に採用すれば、
控えめに見積もってもコンピュートに使用されるエネルギーの量を50%削減できる可能性がある」と
Miller氏は述べ、その根拠として、C、GoogleのGo、Lua、Python、Ruby、Fortranなどをはじめとする
複数の言語のエネルギー効率を相対的に示した研究結果を紹介している。
10デフォルトの名無しさん
2022/08/29(月) 20:29:24.84ID:bPAqKnWj11デフォルトの名無しさん
2022/08/29(月) 20:37:11.19ID:bPAqKnWj2022/08/30(火) 08:16:39.53ID:6rcI0yHq
>>9
AWSていつのまに会社になったの?
AWSていつのまに会社になったの?
2022/08/30(火) 09:39:41.83ID:AsY/BIgk
文末がセミコロンで終わらない言語は流行らない
2022/08/30(火) 09:45:30.28ID:lk52xXWB
>>13
それなー
それなー
15デフォルトの名無しさん
2022/08/30(火) 09:52:15.23ID:hK2QX/pR Pythonはセミコロン非推奨だが。
2022/08/30(火) 12:29:02.78ID:OnpgRnR2
matzは構文に人間が寄り添うのではなく構文解析を言語が頑張るべき的なことを言ってたけど、現実は構文は厳格にしてformatterやlnterが曖昧さのないコードに導いてやるのが正解になってきたね。
人間なんてどこまでも適当な事をやらかせるんだから、それを実行時にうまく解釈してやるのは無理筋。
人間なんてどこまでも適当な事をやらかせるんだから、それを実行時にうまく解釈してやるのは無理筋。
2022/08/30(火) 12:39:56.18ID:BpLonSBR
2022/08/31(水) 00:25:17.21ID:h52EUFtB
Pythonは当初の頓珍漢な理想を捨ててpython2を見捨てなかったのがえらいんだよ
2022/08/31(水) 16:57:16.44ID:nshUFjI3
Rustを自分には向いてないと言った(恐らく本人は批判したつもりはない)一生懸命にmatzを叩くRust新興カルトが気持ちわる杉る....
CやC++でバリバリ書いてる人に所有権チェックなんて邪魔すぎるし、配列境界チェックだって速度が出ない足を引っ張る機能にしか見えないだろ
今は固定範囲の配列アクセスのチェックなんかは省略してるかもしれんが、恐らくそんな事はない(全てに係るから安全だと大口する)
CやC++でバリバリ書いてる人に所有権チェックなんて邪魔すぎるし、配列境界チェックだって速度が出ない足を引っ張る機能にしか見えないだろ
今は固定範囲の配列アクセスのチェックなんかは省略してるかもしれんが、恐らくそんな事はない(全てに係るから安全だと大口する)
2022/08/31(水) 18:05:12.54ID:0pp++Yd3
matzは静的型付け言語は
変数に型定義を書きまくるのが面倒くさい
というようなとこを言ってて
型推論とか知ってるくせにそれは
無いんじゃねと思ったな
変数に型定義を書きまくるのが面倒くさい
というようなとこを言ってて
型推論とか知ってるくせにそれは
無いんじゃねと思ったな
2022/08/31(水) 18:25:03.72ID:Fgf/9Zy6
CやC++で困ってない人に無理にrustを勧めてくる人は相手しなくて良いよ
2022/08/31(水) 18:30:28.99ID:kXQrZaUS
matzのおかげでプログラミング文化が進化したのはのは間違いない
RustもRuby文化のいい面をかなり受け継いでいる
RustもRuby文化のいい面をかなり受け継いでいる
2022/08/31(水) 18:32:18.02ID:SRFkQuBk
2022/08/31(水) 18:35:01.88ID:Fgf/9Zy6
>>23
Rustこそが銀の弾丸って主張かな?
Rustこそが銀の弾丸って主張かな?
2022/08/31(水) 18:36:59.70ID:Fgf/9Zy6
みんな所有権所有権言うけど、初学者がひっかかりがちなのって借用の方では
所有権というとRAIIの方を連想してしまうけど
C++でmove使いこなしてた人ならRustの所有権ではひっかからないだろうし、他の言語でもtry-with-resourcesとか類似の概念あるよね
所有権というとRAIIの方を連想してしまうけど
C++でmove使いこなしてた人ならRustの所有権ではひっかからないだろうし、他の言語でもtry-with-resourcesとか類似の概念あるよね
26デフォルトの名無しさん
2022/08/31(水) 18:55:37.66ID:hNAJwBIT うちの会社にもPHPで困ってないからと言いながらゴミを作り続けるおっさんいるわ
2022/08/31(水) 19:25:46.59ID:Fgf/9Zy6
2022/08/31(水) 19:48:33.02ID:SRFkQuBk
29デフォルトの名無しさん
2022/08/31(水) 19:56:05.14ID:D6khOQ0c >>27
おっさん自身は問題を理解できてないってことを言ってるんだよ
おっさん自身は問題を理解できてないってことを言ってるんだよ
30デフォルトの名無しさん
2022/08/31(水) 19:56:39.74ID:bi3oBo/Y どんなに優れたプログラマーでもミスをするしバグも作るって考え方は大事だと思うけどな
31デフォルトの名無しさん
2022/08/31(水) 19:58:59.48ID:mLZrYK8Z #define new old
で、全て解決では?
で、全て解決では?
32デフォルトの名無しさん
2022/08/31(水) 20:04:50.79ID:mLZrYK8Z でもウェブサイトの9割はPHPで出来てると言うからなあ。
2022/08/31(水) 20:33:48.91ID:TBd/y3ES
PHPを馬鹿にするやつにその資格はない
PHPの作者を馬鹿にするやつにその資格はない
PHPよりも作者よりも糞なやつが鏡すら見ずに薄ら笑ってる
PHPの作者を馬鹿にするやつにその資格はない
PHPよりも作者よりも糞なやつが鏡すら見ずに薄ら笑ってる
2022/08/31(水) 20:38:28.28ID:PQ5q9d58
>>26
ゴミって言ってもそれでお金稼いでいる訳じゃなくて?
ゴミって言ってもそれでお金稼いでいる訳じゃなくて?
35デフォルトの名無しさん
2022/08/31(水) 20:55:36.71ID:bW00GV9W36デフォルトの名無しさん
2022/08/31(水) 21:00:04.57ID:mLZrYK8Z Haskellが見向きもされなくなったら、Rustの宣伝が増えたな。
2022/08/31(水) 21:11:47.88ID:SRFkQuBk
2022/08/31(水) 21:22:47.94ID:10xvEXEy
Rust(笑) 時代はJavaだから
求人倍率はなんと21.8倍 「Java」を求める企業が絶えない理由とは
https://atmarkit.itmedia.co.jp/ait/articles/2208/31/news049.html
求人倍率はなんと21.8倍 「Java」を求める企業が絶えない理由とは
https://atmarkit.itmedia.co.jp/ait/articles/2208/31/news049.html
2022/08/31(水) 21:28:47.20ID:h52EUFtB
限られた情報から善と悪を判断できない人達が
まだ公開されていないクソどうでもいいデータを欲しがる
まだ公開されていないクソどうでもいいデータを欲しがる
2022/08/31(水) 22:11:23.35ID:tQxzKhe2
オラクルに丸め込まれた会社本当にかわいそう
2022/08/31(水) 22:21:51.07ID:PDiBd7bz
今日Helidonなるものを初めて知ったわ
オラクル足掻いてるよねー
オラクル足掻いてるよねー
2022/08/31(水) 23:06:38.28ID:1xLvm1yy
rustは死産だったんだよ
このスレで頑張ってるのは水子供養みたいなもん
このスレで頑張ってるのは水子供養みたいなもん
2022/08/31(水) 23:15:56.00ID:V71AUGNS
Facebook、開発言語に「Rust」採用 Javaからも移行
https://www.itmedia.co.jp/news/articles/2107/28/news152.html
Rustを用いることで、どのような利点があるのか。
Facebookは記事の中で次の4つの項目を挙げています。
①Rustのasync/awaitシンタックスは、非同期のコードをとてもスムーズに記述できますし、
Rustは複雑な並行処理の詳細を正しく理解するのに役立ちます。
BuckのJavaの計算を一つ一つ並行処理に移行するのは数カ月に及ぶ困難な作業でしたし、
シングルスレッドの大きなボトルネックがまだ存在しています。
②Rustには、開発をより簡単で楽しいものにしてくれる多くの高レベルな言語機能があります。
それらはenum、パターンマッチング、trait、手続き型マクロなどで、
Rustの開発者の多くに愛されています。
③Rust はメモリの割り当てをより細かく制御することができます。
ガベージコレクションのある言語では、たとえジェネレーショナルコレクションであっても、
Buckが行うようなインクリメンタルな演算に対応するのは困難です。
④Rustは高性能です。
Rustに移植することで劇的な性能向上を私たちは見てきました。
https://www.itmedia.co.jp/news/articles/2107/28/news152.html
Rustを用いることで、どのような利点があるのか。
Facebookは記事の中で次の4つの項目を挙げています。
①Rustのasync/awaitシンタックスは、非同期のコードをとてもスムーズに記述できますし、
Rustは複雑な並行処理の詳細を正しく理解するのに役立ちます。
BuckのJavaの計算を一つ一つ並行処理に移行するのは数カ月に及ぶ困難な作業でしたし、
シングルスレッドの大きなボトルネックがまだ存在しています。
②Rustには、開発をより簡単で楽しいものにしてくれる多くの高レベルな言語機能があります。
それらはenum、パターンマッチング、trait、手続き型マクロなどで、
Rustの開発者の多くに愛されています。
③Rust はメモリの割り当てをより細かく制御することができます。
ガベージコレクションのある言語では、たとえジェネレーショナルコレクションであっても、
Buckが行うようなインクリメンタルな演算に対応するのは困難です。
④Rustは高性能です。
Rustに移植することで劇的な性能向上を私たちは見てきました。
2022/08/31(水) 23:21:00.54ID:Fgf/9Zy6
>>35
いやいやC++で書かれたプログラムは無条件にRustで置き換えられるって主張は銀の弾丸って言ってるのと同じでしょ
いやいやC++で書かれたプログラムは無条件にRustで置き換えられるって主張は銀の弾丸って言ってるのと同じでしょ
2022/09/01(木) 00:44:24.52ID:cwSyLQRT
善行を勧めることと、善行が必勝法であると主張することを区別する必要がある
2022/09/01(木) 07:30:51.13ID:F4Y0rM7S
>>23
「最適化によりforでのチェックだけになり・・・つまりC言語と同じになる」
はい、明確すぎる嘘、Cは普通処理系によりけりだが通常は配列境界のチェックなんてしません。あほかwなにが、つまりだw
必死すぎるのがほんと痛々しい
「最適化によりforでのチェックだけになり・・・つまりC言語と同じになる」
はい、明確すぎる嘘、Cは普通処理系によりけりだが通常は配列境界のチェックなんてしません。あほかwなにが、つまりだw
必死すぎるのがほんと痛々しい
47デフォルトの名無しさん
2022/09/01(木) 07:32:21.78ID:fyMKlXgD 所有権を邪魔だと思ってる奴のC++コードは読みたくねえな
一緒に仕事したくねえ……
一緒に仕事したくねえ……
2022/09/01(木) 07:51:48.00ID:TMFOnHT0
2022/09/01(木) 07:57:15.00ID:F8jNf2Yy
>>48
Cって、配列のインデックスアクセスに境界チェックとか無くて、プログラマに委ねられているのかと思ってた。Cも意外に安全性を気にしているんだね。
Cって、配列のインデックスアクセスに境界チェックとか無くて、プログラマに委ねられているのかと思ってた。Cも意外に安全性を気にしているんだね。
50デフォルトの名無しさん
2022/09/01(木) 08:33:34.02ID:5fR61KJN >>38
javaのフレームワークって何使ってるの?
javaのフレームワークって何使ってるの?
51デフォルトの名無しさん
2022/09/01(木) 09:37:58.04ID:wgtUDrt552デフォルトの名無しさん
2022/09/01(木) 09:39:23.27ID:wgtUDrt553デフォルトの名無しさん
2022/09/01(木) 09:41:17.41ID:wgtUDrt5 >>48 はCを知らない素人以下
54デフォルトの名無しさん
2022/09/01(木) 09:48:59.81ID:5fR61KJN2022/09/01(木) 09:50:52.96ID:NH2cx+n6
2022/09/01(木) 09:57:04.30ID:oWUbfflz
2022/09/01(木) 09:57:34.15ID:oWUbfflz
実行時じゃないわ
コンパイルエラーね
コンパイルエラーね
2022/09/01(木) 09:59:00.80ID:oWUbfflz
いや動的配列ならやっぱ実行時か
どっちにしてもCみたいに変更しちゃいけないところを変更して暴走しないってこと
どっちにしてもCみたいに変更しちゃいけないところを変更して暴走しないってこと
2022/09/01(木) 10:09:23.03ID:flNKFTp5
2022/09/01(木) 10:23:52.21ID:oWUbfflz
>>59
動的配列のランダムアクセス時にC言語では入らない境界チェックが入るな
動的配列のランダムアクセス時にC言語では入らない境界チェックが入るな
2022/09/01(木) 10:30:39.30ID:KHPE1b9m
>>59
日本語で説明するよりコードと生成されるアセンブリ見せた方がわかりやすいのでは
日本語で説明するよりコードと生成されるアセンブリ見せた方がわかりやすいのでは
2022/09/01(木) 10:31:44.69ID:0sJGxogX
forループの例では同じ生成コードとなるが
範囲内かどうか不明なインデックス値がやってきてそれで配列をアクセスする場合は違いが出る
C/C++
プログラマーの自己責任で境界チェックを手動でしなければならない
忘れたときは未定義動作となりうるため危険
Rust含むその他の言語
プログラマーは気にせずとも自動的に境界チェックされるため安全
範囲内かどうか不明なインデックス値がやってきてそれで配列をアクセスする場合は違いが出る
C/C++
プログラマーの自己責任で境界チェックを手動でしなければならない
忘れたときは未定義動作となりうるため危険
Rust含むその他の言語
プログラマーは気にせずとも自動的に境界チェックされるため安全
2022/09/01(木) 11:17:36.46ID:nJgMln8j
>>43
もうRustの覇権確定だなw
もうRustの覇権確定だなw
2022/09/01(木) 12:16:04.06ID:tWaffXfX
その技術を作られたのがこれか
https://i.imgur.com/ymYXnQr.jpg
https://i.imgur.com/ymYXnQr.jpg
2022/09/01(木) 12:46:30.05ID:GpP6p1Yr
66デフォルトの名無しさん
2022/09/01(木) 13:36:52.33ID:wgtUDrt52022/09/01(木) 19:55:15.23ID:K2svajoy
2022/09/01(木) 20:39:52.39ID:Wlby5VAy
いや、for文でのループ条件とか書き間違えてバグる筆頭だろ。
人力チェックの限界が見える典型。
人力チェックの限界が見える典型。
2022/09/01(木) 21:06:01.62ID:ms47s476
Rust方式が速さと安全の両立でベストだろう
基本的には配列(スライス)アクセス時にインデックス境界チェックが行われて必ず安全
その上でインデックスforなどでループ内のアクセスがコンパイラにより安全と保証できる場合は
最適化によりループ内の配列(スライス)アクセス時にインデックス境界チェックが無くなり速さと安全を両立
基本的には配列(スライス)アクセス時にインデックス境界チェックが行われて必ず安全
その上でインデックスforなどでループ内のアクセスがコンパイラにより安全と保証できる場合は
最適化によりループ内の配列(スライス)アクセス時にインデックス境界チェックが無くなり速さと安全を両立
70デフォルトの名無しさん
2022/09/01(木) 21:29:24.74ID:xF4gFfdK >>38
単価の中央値は?
単価の中央値は?
2022/09/01(木) 22:04:15.15ID:cwSyLQRT
もしもポインタが組み込み型ではなく外部のライブラリだったら
ライブラリを変更するだけでCはそこそこ安全になれた
C++はスマートポインタを追加することはできても
元からあるポインタ型を改善することは全然できなかった
ライブラリを変更するだけでCはそこそこ安全になれた
C++はスマートポインタを追加することはできても
元からあるポインタ型を改善することは全然できなかった
2022/09/02(金) 00:56:06.09ID:itc/vw5Y
>>69
slice::Iterは<[] as Index>::index使わないから最適化関係なく境界チェックは一度だけになるが
slice::Iterは<[] as Index>::index使わないから最適化関係なく境界チェックは一度だけになるが
2022/09/02(金) 05:54:25.85ID:shSg4CAC
>>59
痛いRustおじさんの代表例だね、境界チェックが必ず入る処理系があったとしてそれを、C言語は!なんて表現しないぞ?
「結果としてCでもRustでも同じ生成コードとなる 」絶対ならないからwつーかアセンブラして貼り付けろよ?
それで常に100%が誰がやってもどのバージョンでもどの環境でも同じならあんたが正しい
そもそも配列ループの遅さをカバーするためにRustは速度を稼ぐために一部分ループ展開を勝手にするはずなので、gccとかなら
O2ではダメでO3でfunroll-loopsでコンパイルしないとならないよ
痛いRustおじさんの代表例だね、境界チェックが必ず入る処理系があったとしてそれを、C言語は!なんて表現しないぞ?
「結果としてCでもRustでも同じ生成コードとなる 」絶対ならないからwつーかアセンブラして貼り付けろよ?
それで常に100%が誰がやってもどのバージョンでもどの環境でも同じならあんたが正しい
そもそも配列ループの遅さをカバーするためにRustは速度を稼ぐために一部分ループ展開を勝手にするはずなので、gccとかなら
O2ではダメでO3でfunroll-loopsでコンパイルしないとならないよ
2022/09/02(金) 07:47:28.70ID:h0CkE7tZ
>>72
もちろんRustはイテレータが強力だから
インデックスで回すよりもイテレータ利用が断然に多く
スライス(配列)アクセスに境界チェックを毎回しないのはおっしゃる通りだが
様々な理由でイテレータではなくインデックスでforで回す場合もあり
その時ですらforの終端チェックのみで最適化によりスライス(配列)アクセス時の境界チェックは消えている
という話だから両立する話
もちろんRustはイテレータが強力だから
インデックスで回すよりもイテレータ利用が断然に多く
スライス(配列)アクセスに境界チェックを毎回しないのはおっしゃる通りだが
様々な理由でイテレータではなくインデックスでforで回す場合もあり
その時ですらforの終端チェックのみで最適化によりスライス(配列)アクセス時の境界チェックは消えている
という話だから両立する話
2022/09/02(金) 07:51:35.38ID:h0CkE7tZ
2022/09/02(金) 08:11:51.41ID:yReiMthF
他言語の範囲forとかイテレーターを無視して「Rustのforが一番」とかいうのは無知を通り越して無能。
「C++のforループは危険」というのはさすがに引っ込めたみたいだけど、cのforループと比較してRustを褒めるのは邪悪すぎるだろ。
「C++のforループは危険」というのはさすがに引っ込めたみたいだけど、cのforループと比較してRustを褒めるのは邪悪すぎるだろ。
2022/09/02(金) 08:20:26.86ID:xKAOCFMw
2022/09/02(金) 08:36:58.81ID:yReiMthF
2022/09/02(金) 09:00:49.10ID:r2oaJ0uT
ほんとダメだねえ、どうやっても遅いんだが?顔真っ赤にして人を罵倒する前にさ
https://play.rust-lang.org/?version=stable&mode=release&edition=2021&gist=f46924c1a775bf93703ca7aead58b36c
real 0m0.111s
https://wandbox.org/permlink/iP4fPQ7bODKrg7mC
real 0m0.006s
「C言語でもループ1回に付き必ず1回のインデックス値の境界比較が必ず入る」
まず根本的に勘違いしてるのがあなたの言ってるのは境界チェックじゃなく、終了条件のチェックであり、これも、gccなどの処理系では
最適化で固定値だったりしてループ展開したら必ず入るとは限らないんですよ・・・同様のことがRustの勝手にループ展開でも言えますが
いずれもループ終了チェックであり、そんなのは比較していませんし、またあとから出てきたイテレータの話は全く違う話ですね
https://play.rust-lang.org/?version=stable&mode=release&edition=2021&gist=f46924c1a775bf93703ca7aead58b36c
real 0m0.111s
https://wandbox.org/permlink/iP4fPQ7bODKrg7mC
real 0m0.006s
「C言語でもループ1回に付き必ず1回のインデックス値の境界比較が必ず入る」
まず根本的に勘違いしてるのがあなたの言ってるのは境界チェックじゃなく、終了条件のチェックであり、これも、gccなどの処理系では
最適化で固定値だったりしてループ展開したら必ず入るとは限らないんですよ・・・同様のことがRustの勝手にループ展開でも言えますが
いずれもループ終了チェックであり、そんなのは比較していませんし、またあとから出てきたイテレータの話は全く違う話ですね
2022/09/02(金) 09:05:50.01ID:kItyetcb
2022/09/02(金) 09:13:12.31ID:AlmyaYR1
前スレでも出てたけどrustがphpより遅いってマジっぽいね
2022/09/02(金) 09:17:24.54ID:NtJICGnn
2022/09/02(金) 09:24:36.61ID:r2oaJ0uT
>>74
レス番つけ忘れたけど、頑にCと(速度が)同じだ。遅くないというカルト信者みたいな態度はほんと反省してほしいわ・・・
根拠を示したのにキチガイと反論するばかりで、こんな簡単なプログラムにさえどこが悪いのか言えないし
レス番つけ忘れたけど、頑にCと(速度が)同じだ。遅くないというカルト信者みたいな態度はほんと反省してほしいわ・・・
根拠を示したのにキチガイと反論するばかりで、こんな簡単なプログラムにさえどこが悪いのか言えないし
2022/09/02(金) 09:32:20.12ID:r2oaJ0uT
誰も20倍速いなんて一言もいってませんが?timeごときでこの程度の差が出るのであれば、「同じ」なんて言えないと思いますが?
むしろ境界チェックが機能してる結果であり、一方でCはそのような境界チェックは通常の処理系ではありえない=チェックがないので
安全性はlintなどやプログラマーの能力に依存する
提言:”内容に反証を提示できず、人をキチガイ呼ばわりする人がキチガイ”
むしろ境界チェックが機能してる結果であり、一方でCはそのような境界チェックは通常の処理系ではありえない=チェックがないので
安全性はlintなどやプログラマーの能力に依存する
提言:”内容に反証を提示できず、人をキチガイ呼ばわりする人がキチガイ”
2022/09/02(金) 10:07:22.38ID:3EJXZ/Ye
> C言語でも他でもfor文で境界チェックが必ず入る
std::vectorだと両方あるから説明しやすいけど
reference at(size_type n);
n >= size()の場合、out_of_range例外を送出する。
reference operator[](size_type n);
vector型のオブジェクトvに対して、v[n] と *(v.begin()+ n) は同じ結果になる
n >= size()の場合、未定義動作となる
この関数は、at()メンバ関数とちがって境界チェックを行うことが規定されない。
境界チェックってこれの話じゃないの?
index側のどうこうはさておき、要素アクセスのときにケアできてるかどうかの話じゃないの?
std::vectorだと両方あるから説明しやすいけど
reference at(size_type n);
n >= size()の場合、out_of_range例外を送出する。
reference operator[](size_type n);
vector型のオブジェクトvに対して、v[n] と *(v.begin()+ n) は同じ結果になる
n >= size()の場合、未定義動作となる
この関数は、at()メンバ関数とちがって境界チェックを行うことが規定されない。
境界チェックってこれの話じゃないの?
index側のどうこうはさておき、要素アクセスのときにケアできてるかどうかの話じゃないの?
2022/09/02(金) 10:13:15.80ID:3EJXZ/Ye
ちなみにJavaのjava.util.Listは
https://docs.oracle.com/javase/jp/8/docs/api/java/util/List.html#get-int-
E get(int index)
例外: IndexOutOfBoundsException - インデックスが範囲外の場合(index < 0||index>= size())
となってる。
https://docs.oracle.com/javase/jp/8/docs/api/java/util/List.html#get-int-
E get(int index)
例外: IndexOutOfBoundsException - インデックスが範囲外の場合(index < 0||index>= size())
となってる。
2022/09/02(金) 10:33:22.77ID:icfpnsJw
現代のCPUなら投機的実行で境界チェックみたいな処理は時間コストかからんけどなあ
それとRustのprintln!は非バッファでロックもするから配列性能計測に混ぜたらいかんでしょ
性能計測の初歩だと思うんだけど
それとRustのprintln!は非バッファでロックもするから配列性能計測に混ぜたらいかんでしょ
性能計測の初歩だと思うんだけど
2022/09/02(金) 10:41:36.52ID:keejC7YG
ここが応仁の乱か
2022/09/02(金) 11:14:19.45ID:RkYzNFi/
Rustのスライスsでfor i in 0..s.len()でループ回して見たら
生成コードはforの終端チェックだけになってs[i]の境界チェックは消えるんだな
確かに論理的に正しい最適化だが賢いな
結局Cでfor (i = 0; i < len; i++) とした時と同じ
生成コードはforの終端チェックだけになってs[i]の境界チェックは消えるんだな
確かに論理的に正しい最適化だが賢いな
結局Cでfor (i = 0; i < len; i++) とした時と同じ
90デフォルトの名無しさん
2022/09/02(金) 12:00:55.17ID:kDm3gkwV println!取り除いてもCより遅いけど?
勝手にコードを変更してs.lenとか悦にはいってるし、この人たちって絶対objdumpした結果を上げないね
同じ(=100%一致)なんて絶対あり得ない、gccじゃなくclang/llvmにしたら分らんけど、それでも
”C言語は”なんてあんたさえも知らない処理系があるのに恥ずかし気もなくビックマウス披露出来るわけない
投機実行の境界チェックのバイパスは有名なスペクターとして脆弱性だから機能してないんちゃうか?知らんけどさ
勝手にコードを変更してs.lenとか悦にはいってるし、この人たちって絶対objdumpした結果を上げないね
同じ(=100%一致)なんて絶対あり得ない、gccじゃなくclang/llvmにしたら分らんけど、それでも
”C言語は”なんてあんたさえも知らない処理系があるのに恥ずかし気もなくビックマウス披露出来るわけない
投機実行の境界チェックのバイパスは有名なスペクターとして脆弱性だから機能してないんちゃうか?知らんけどさ
2022/09/02(金) 12:40:37.54ID:omdV4spc
>>80
固定長なら範囲チェック自体消えるだろ。
Rustの話をするなら、「ひとつの読み書き参照 xor 複数の読み取り参照のきっつい制約を課すことで範囲チェックの回数を減らしている」くらいの説明はできんのかね?オレも詳しくはないが。
固定長なら範囲チェック自体消えるだろ。
Rustの話をするなら、「ひとつの読み書き参照 xor 複数の読み取り参照のきっつい制約を課すことで範囲チェックの回数を減らしている」くらいの説明はできんのかね?オレも詳しくはないが。
2022/09/02(金) 18:35:42.02ID:itc/vw5Y
引数で与えられた配列の中の最大要素をインデックスアクセスで探す関数をC (clang 14) と Rust (rustc 1.63.0) で書いた
使ってるレジスタこそ違うけど同じコンパイル結果になった
https://godbolt.org/z/TvdGf3dYq
Rust は他の書き方も試してみたけど生成されたコードは同じっぽい
forでsliceをイテレートした場合:
https://godbolt.org/z/38s1819hr
イテレータアダプターだけで書いた場合:
https://godbolt.org/z/cjqqYjKfE
使ってるレジスタこそ違うけど同じコンパイル結果になった
https://godbolt.org/z/TvdGf3dYq
Rust は他の書き方も試してみたけど生成されたコードは同じっぽい
forでsliceをイテレートした場合:
https://godbolt.org/z/38s1819hr
イテレータアダプターだけで書いた場合:
https://godbolt.org/z/cjqqYjKfE
93デフォルトの名無しさん
2022/09/02(金) 19:48:54.34ID:SRTIVbJR っつーか今さらcでの開発なんて小規模じゃないとやりたくないわ。
2022/09/02(金) 20:22:00.68ID:AlmyaYR1
遅いくせにCと同等とか言い出したのが発端じゃね?
2022/09/02(金) 20:51:46.96ID:eOJxFMTK
2022/09/02(金) 20:58:00.60ID:eOJxFMTK
>>94
生成コードが同じだからCとRustは速さも同等っぽい
生成コードが同じだからCとRustは速さも同等っぽい
2022/09/02(金) 21:28:46.71ID:AlmyaYR1
>>96
マジか、rustすご過ぎ
マジか、rustすご過ぎ
2022/09/02(金) 21:41:46.84ID:TRifMPKk
わざわざ境界値チェックが不要になるケースで比べたらそりゃそうだろって感じ
最初のサンプルコードが酷すぎた
最初のサンプルコードが酷すぎた
99デフォルトの名無しさん
2022/09/02(金) 21:45:38.80ID:SRTIVbJR >>98
境界値チェックが必要なケースをよろ
境界値チェックが必要なケースをよろ
100デフォルトの名無しさん
2022/09/02(金) 22:15:29.02ID:ZICl4sMk 結論が出たな
Rustを攻撃してた人が以下のようなウソをついてた
> 「結果としてCでもRustでも同じ生成コードとなる 」絶対ならないからw
> つーかアセンブラして貼り付けろよ?
> そもそも配列ループの遅さをカバーするために
> Rustは速度を稼ぐために一部分ループ展開を勝手にするはず
生成アセンブラコード>92を見ると
CでもRustでも同じ生成コード
CもRustもループ内のインデックス境界チェックは無く同じコードとなっている
そしてCもRustも一部分ループ展開を同様にしてる
当然どちらも同じ速度となる
Rustを攻撃してた人が以下のようなウソをついてた
> 「結果としてCでもRustでも同じ生成コードとなる 」絶対ならないからw
> つーかアセンブラして貼り付けろよ?
> そもそも配列ループの遅さをカバーするために
> Rustは速度を稼ぐために一部分ループ展開を勝手にするはず
生成アセンブラコード>92を見ると
CでもRustでも同じ生成コード
CもRustもループ内のインデックス境界チェックは無く同じコードとなっている
そしてCもRustも一部分ループ展開を同様にしてる
当然どちらも同じ速度となる
101デフォルトの名無しさん
2022/09/02(金) 22:58:49.99ID:SRTIVbJR >>98
早くc言語で境界値チェックするコード出してよ。
早くc言語で境界値チェックするコード出してよ。
102デフォルトの名無しさん
2022/09/02(金) 23:27:03.89ID:lqMLDpPB 全然読まない、勝手にコードを変更してs.lenとか悦にはいってる
103デフォルトの名無しさん
2022/09/02(金) 23:59:11.14ID:VC9smmde104デフォルトの名無しさん
2022/09/03(土) 01:19:34.52ID:txSLq0y3 おじさん普通にC勉強した方が良いよ
Rust書ける人でC書けない人なんていないからズレまくった指摘してるんだよ
Rustであえてパフォーマンス出ないようなコードを書いてるとしか思えない
Rust書ける人でC書けない人なんていないからズレまくった指摘してるんだよ
Rustであえてパフォーマンス出ないようなコードを書いてるとしか思えない
105デフォルトの名無しさん
2022/09/03(土) 01:46:36.01ID:2EHZBEma >>92のシンプルなコードをこれ以上に速くするのは無理じゃね
そしてRustもCも同等のアセンブリコードを吐いてるから実行速度も同じで勝負ついた感じだな
そしてRustもCも同等のアセンブリコードを吐いてるから実行速度も同じで勝負ついた感じだな
106デフォルトの名無しさん
2022/09/03(土) 03:19:04.56ID:DRQBO0l9 バカ野郎!
Rustのおっちゃんは、日本を代表するトライアングル(楽器)奏者なんだぞ!
Rustのおっちゃんは、日本を代表するトライアングル(楽器)奏者なんだぞ!
107デフォルトの名無しさん
2022/09/03(土) 04:44:36.86ID:22c5U/VG 少なくとも配列範囲外アクセスするようなコードで比べなければ意味がない。
誰も勝負なんてしてないだろ
こんな事やってるからRustを嫌う人が割と増えていく、言い逃れそのものだろw
そもそもforの終了条件チェックと配列境界チェックの違いすら分かってないやつだ
カルトRust信者「C言語でもループ1回に付き必ず1回のインデックス値の境界比較が必ず入る」
固定長のループがclang/llvmで同じになったとして、壺カルトRust信者曰く、「C言語は」という
デカすぎる主語と、Rustでのすべての配列境界チェックが無くなるわけではなし何が勝ちなんだか...
誰も勝負なんてしてないだろ
こんな事やってるからRustを嫌う人が割と増えていく、言い逃れそのものだろw
そもそもforの終了条件チェックと配列境界チェックの違いすら分かってないやつだ
カルトRust信者「C言語でもループ1回に付き必ず1回のインデックス値の境界比較が必ず入る」
固定長のループがclang/llvmで同じになったとして、壺カルトRust信者曰く、「C言語は」という
デカすぎる主語と、Rustでのすべての配列境界チェックが無くなるわけではなし何が勝ちなんだか...
108デフォルトの名無しさん
2022/09/03(土) 05:27:05.78ID:lg2jZ6dQ >>107
コードを読めない人なの?
固定長のループではなく長さは関数の引数として与えられている
したがってC言語でもループ1回に付き必ずインデックス値の境界比較(=インデックス値が長さを超えないこと)がfor文の条件部で行われている
コードを読めない人なの?
固定長のループではなく長さは関数の引数として与えられている
したがってC言語でもループ1回に付き必ずインデックス値の境界比較(=インデックス値が長さを超えないこと)がfor文の条件部で行われている
109デフォルトの名無しさん
2022/09/03(土) 06:17:52.84ID:Xvi3nnOL >>92
例えばinline化とかで二つの配列/スライスがエイリアスされていることがコンパイラー(とプログラマー)に見えている場合があると思うんだけれど
Rustの方は自動ベクトル化してくれないのね。Cの方は自動ベクトル化されている。
極端に書くとこんな感じ。
ttps://godbolt.org/z/sbenoGEEa
inline
ttps://godbolt.org/z/M6qz3s3f7
max_value_slice_vwをどう書いたら自動ベクトル化されるの?
例えばinline化とかで二つの配列/スライスがエイリアスされていることがコンパイラー(とプログラマー)に見えている場合があると思うんだけれど
Rustの方は自動ベクトル化してくれないのね。Cの方は自動ベクトル化されている。
極端に書くとこんな感じ。
ttps://godbolt.org/z/sbenoGEEa
inline
ttps://godbolt.org/z/M6qz3s3f7
max_value_slice_vwをどう書いたら自動ベクトル化されるの?
110デフォルトの名無しさん
2022/09/03(土) 06:38:25.68ID:peyYEDe5 何の争いかよくわからんけどつまりRustでサイズ10の配列を作ってその11番目の要素にアクセスしたらどうなるん?
Cだと境界チェックしないから未定義になるしセグフォ出たり他の変数を書き換えたり暴走したりすることもある
Cだと境界チェックしないから未定義になるしセグフォ出たり他の変数を書き換えたり暴走したりすることもある
111デフォルトの名無しさん
2022/09/03(土) 06:40:51.52ID:peyYEDe5 11というのをリテラルで与えるともしかしたらコンパイルエラーになるかもしれんけどたとえばそれを乱数で生成した場合はどうなんの?
112デフォルトの名無しさん
2022/09/03(土) 06:53:51.31ID:peyYEDe5 Cが境界チェックしないと言うのは境界チェックがプログラマの責任だということだよね
Rust以外のモダンな言語では大抵範囲外の要素にアクセスしようとすると実行時例外を吐く
Cはそれをせず黙って暴走したりこっそり他の変数の値を書き換えたりして気づきにくいバグになる
Rustはどっち?
Rust以外のモダンな言語では大抵範囲外の要素にアクセスしようとすると実行時例外を吐く
Cはそれをせず黙って暴走したりこっそり他の変数の値を書き換えたりして気づきにくいバグになる
Rustはどっち?
113デフォルトの名無しさん
2022/09/03(土) 06:56:12.20ID:TWgTITK1114デフォルトの名無しさん
2022/09/03(土) 07:06:18.00ID:z9CaUV9k115デフォルトの名無しさん
2022/09/03(土) 07:13:36.64ID:z9CaUV9k つまり、Rustは安全性を常に保ちつつ、不要な境界チェックは最適化で無くすことで、安全かつ高速を実現。
116デフォルトの名無しさん
2022/09/03(土) 07:29:39.97ID:peyYEDe5 >>114
普通じゃね?
普通じゃね?
117デフォルトの名無しさん
2022/09/03(土) 07:34:10.00ID:/y6fxgdJ CとRustは同じアセンブリコードを生成すると>>92で示されているから
あとは他の言語でもそうなるならそれを示せばよい
あとは他の言語でもそうなるならそれを示せばよい
118デフォルトの名無しさん
2022/09/03(土) 07:37:07.45ID:lGqTIi1A どうでもいい内容で盛り上がってるな
for文の仕様がボトルネックになることなんかないんだからどうでもいい
for文の仕様がボトルネックになることなんかないんだからどうでもいい
119デフォルトの名無しさん
2022/09/03(土) 07:46:39.87ID:1xBXpDYn 例えばfor (i=0;i<len;i++) arr[i*2]=0;
Rustはこの時もCと同じコードになるんだよね?
Rustはこの時もCと同じコードになるんだよね?
120デフォルトの名無しさん
2022/09/03(土) 07:56:47.99ID:mdxH418+ gccのコミッターのものだけどそんな単純な話じゃないよ
Rustのスティーブとはよく話をするけどね
Rustのスティーブとはよく話をするけどね
121デフォルトの名無しさん
2022/09/03(土) 08:03:29.06ID:peyYEDe5 最後の一行で胡散臭さ出てくるの何なん
122デフォルトの名無しさん
2022/09/03(土) 08:04:34.15ID:2bPWyV3b まあこんなマイクロコードの比較だのベンチだのに意味は無いわな
コンパイラも局所だけ見て処理するわけでもなし
コンパイラも局所だけ見て処理するわけでもなし
123デフォルトの名無しさん
2022/09/03(土) 08:23:27.57ID:04g55wUA >>119
Rustのfor文はそういう構文ではない
あとRustではその処理関数は引数をスライスxで受けることになり
lenはx.len()となる
そしてfor i in 0..lenのループの時
x[i] = 0ならばそのアクセスには境界チェックは最適化により生じない (C言語と同じ)
x[i*2] = 0ならばそのアクセスには境界チェックが入りindex out of boundsとなる (C言語と異なる)
Rustのfor文はそういう構文ではない
あとRustではその処理関数は引数をスライスxで受けることになり
lenはx.len()となる
そしてfor i in 0..lenのループの時
x[i] = 0ならばそのアクセスには境界チェックは最適化により生じない (C言語と同じ)
x[i*2] = 0ならばそのアクセスには境界チェックが入りindex out of boundsとなる (C言語と異なる)
124デフォルトの名無しさん
2022/09/03(土) 08:27:29.75ID:1xBXpDYn125デフォルトの名無しさん
2022/09/03(土) 08:47:00.60ID:pNlcpp9D rust書けるやつはたいていcも書ける。
cは書けるがrust書けないなつはいる(俺とか)。
両方書けるほうがいいに決まってる。
cは書けるがrust書けないなつはいる(俺とか)。
両方書けるほうがいいに決まってる。
126デフォルトの名無しさん
2022/09/03(土) 08:47:14.13ID:oioC2Qy2127デフォルトの名無しさん
2022/09/03(土) 09:09:01.93ID:YIfnpCsY >>124
正しい使用ならば最適化されて境界チェックが消える点も重要やで
それによりRustのコードがCとほぼ同じ速度で動いている
一方で間違った範囲外のアクセスが起きうる場合には境界チェックがなされる点も重要やで
それによりRustはCとは異なり安全となっている
正しい使用ならば最適化されて境界チェックが消える点も重要やで
それによりRustのコードがCとほぼ同じ速度で動いている
一方で間違った範囲外のアクセスが起きうる場合には境界チェックがなされる点も重要やで
それによりRustはCとは異なり安全となっている
128デフォルトの名無しさん
2022/09/03(土) 09:12:44.80ID:qprMzk1R129デフォルトの名無しさん
2022/09/03(土) 09:21:53.95ID:YIfnpCsY >>128
配列の一部分はスライス (配列全体も可)
Vecの一部分もスライス (Vec全体も可)
スライスの一部分もスライス
なのでRustで関数を書くときはスライスを対象にして記述する
そしてスライスとして扱った時点で既に境界チェック済み(=元の範囲内)なので最適化が可能となる
配列の一部分はスライス (配列全体も可)
Vecの一部分もスライス (Vec全体も可)
スライスの一部分もスライス
なのでRustで関数を書くときはスライスを対象にして記述する
そしてスライスとして扱った時点で既に境界チェック済み(=元の範囲内)なので最適化が可能となる
130デフォルトの名無しさん
2022/09/03(土) 09:24:37.68ID:bVYJbA7l さすが複オジ隔離スレやで
今日もいい仕事しとるww
今日もいい仕事しとるww
131デフォルトの名無しさん
2022/09/03(土) 09:27:25.47ID:ezD68Vvz Rustの実行速度がCと同等だと何か困ることでもあるの?
132デフォルトの名無しさん
2022/09/03(土) 09:30:24.03ID:qprMzk1R >>129
関数内でlenが決まる場合でもいちいちスライス作るのか?
関数内でlenが決まる場合でもいちいちスライス作るのか?
133デフォルトの名無しさん
2022/09/03(土) 09:32:15.16ID:91ZlUxrs C/C++ で BITMAPINFOHEADER なんか扱うときは
意図的に範囲オーバーさせて bmp データにアクセスするよねω株 PI.3.14
意図的に範囲オーバーさせて bmp データにアクセスするよねω株 PI.3.14
134デフォルトの名無しさん
2022/09/03(土) 09:37:13.56ID:hKLkDwrb135デフォルトの名無しさん
2022/09/03(土) 09:45:26.31ID:peyYEDe5 困るとか困らないとかじゃなくCではやらない境界チェックがあるから現実に遅いよ
136デフォルトの名無しさん
2022/09/03(土) 09:47:19.22ID:peyYEDe5 Cと同じ速度で動くコード「も」あるというならその通り
他の言語でもある
他の言語でもある
137デフォルトの名無しさん
2022/09/03(土) 09:52:51.38ID:cKT2CTgA138デフォルトの名無しさん
2022/09/03(土) 09:54:03.17ID:peyYEDe5 境界チェックが消えたコードじゃなく消えてないコードで比べてみたらすぐわかるんじゃないですかね
139デフォルトの名無しさん
2022/09/03(土) 09:54:19.38ID:qprMzk1R >>135
コンパイルオプションでチェック無効に出来ないの?
コンパイルオプションでチェック無効に出来ないの?
140デフォルトの名無しさん
2022/09/03(土) 09:56:34.91ID:RRdFGJ7i >>139
C#はできるね
C#はできるね
141デフォルトの名無しさん
2022/09/03(土) 09:59:58.21ID:qprMzk1R >>137
> だからスライスを作るって大層なことではなくC言語で処理対象の先頭ポインタと長さを用意するのと同じ
いや、実装は想像できるからいちいち説明してもらわなくてもいいんだけどC言語だといちいちそんなもの作らないよ
先頭ポインタも長さ情報も既にあるのに同じ内容を持つスライスを作るのは(C言語脳としては)無駄に思える
> だからスライスを作るって大層なことではなくC言語で処理対象の先頭ポインタと長さを用意するのと同じ
いや、実装は想像できるからいちいち説明してもらわなくてもいいんだけどC言語だといちいちそんなもの作らないよ
先頭ポインタも長さ情報も既にあるのに同じ内容を持つスライスを作るのは(C言語脳としては)無駄に思える
142デフォルトの名無しさん
2022/09/03(土) 10:03:47.05ID:v+XVsXaf >>138
CよりRustが遅いコードを具体的に出してよ
array[i*2]の例は危険な範囲外アクセスとなるコードだから境界チェックをするRustに軍配が上がるね
だから安全な正しいコードなのにCよりRustが遅いコードを具体的に生成コードと共に出しましょう
CよりRustが遅いコードを具体的に出してよ
array[i*2]の例は危険な範囲外アクセスとなるコードだから境界チェックをするRustに軍配が上がるね
だから安全な正しいコードなのにCよりRustが遅いコードを具体的に生成コードと共に出しましょう
143デフォルトの名無しさん
2022/09/03(土) 10:06:50.84ID:RRdFGJ7i144デフォルトの名無しさん
2022/09/03(土) 10:11:51.77ID:774mvNvo145デフォルトの名無しさん
2022/09/03(土) 10:14:07.95ID:Rys3iPM9 実例と計測結果出さないと空論でしか無いわな
まあ速度差が無くて出せないんだろうけど
まあ速度差が無くて出せないんだろうけど
146デフォルトの名無しさん
2022/09/03(土) 10:17:36.98ID:RSYLNmWc チェックが入ると遅くなるから最適化でチェック省くことがあるんだろうに何で実測しなきゃわかんないんだよ
特定のスニペットじゃなく境界チェックが入る現実のコードの話をしてるのに実測なんてできるわけないだろ
境界チェックが原因で遅くなるコード作れと言うなら作るが、それ作ったら間違いを認めるんだろうな?
特定のスニペットじゃなく境界チェックが入る現実のコードの話をしてるのに実測なんてできるわけないだろ
境界チェックが原因で遅くなるコード作れと言うなら作るが、それ作ったら間違いを認めるんだろうな?
147デフォルトの名無しさん
2022/09/03(土) 10:20:44.15ID:qprMzk1R148デフォルトの名無しさん
2022/09/03(土) 10:20:52.59ID:0TSBfRU/ >>143
それは君が誤解してるようにみえるなあ
Rustでは安全に範囲内のアクセスとRustコンパイラが分析できれば境界チェックをしないためCと同じ速さが出る
そうでなく危険な範囲外のアクセスになりうるとRustコンパイラが判断すれば正しく境界チェックを行なう
C言語で書いても危険な範囲外のアクセスになりうる場合は手動で境界チェックをせざるを得ないから速さは同じ
それは君が誤解してるようにみえるなあ
Rustでは安全に範囲内のアクセスとRustコンパイラが分析できれば境界チェックをしないためCと同じ速さが出る
そうでなく危険な範囲外のアクセスになりうるとRustコンパイラが判断すれば正しく境界チェックを行なう
C言語で書いても危険な範囲外のアクセスになりうる場合は手動で境界チェックをせざるを得ないから速さは同じ
149デフォルトの名無しさん
2022/09/03(土) 10:22:44.18ID:RSYLNmWc >>148
同じじゃなく遅くなると認めろよ
同じじゃなく遅くなると認めろよ
150デフォルトの名無しさん
2022/09/03(土) 10:28:32.67ID:ypKv7OZi151デフォルトの名無しさん
2022/09/03(土) 10:32:05.60ID:iVxWWKBi いつもの嘘つき複オジに必死に突っかかるアホ
どっちもどっち
どっちもどっち
152デフォルトの名無しさん
2022/09/03(土) 10:49:11.71ID:qprMzk1R >>148
> そうでなく危険な範囲外のアクセスになりうるとRustコンパイラが判断すれば正しく境界チェックを行なう
C言語では外部からもらったデータは仕様で配列範囲に入るのが確実だからチェックをしないとかあるんだけど、Rustコンパイラとやらは仕様書まで読み込んでくれるのかなw
> そうでなく危険な範囲外のアクセスになりうるとRustコンパイラが判断すれば正しく境界チェックを行なう
C言語では外部からもらったデータは仕様で配列範囲に入るのが確実だからチェックをしないとかあるんだけど、Rustコンパイラとやらは仕様書まで読み込んでくれるのかなw
153デフォルトの名無しさん
2022/09/03(土) 10:52:15.27ID:BHvUMyM5 境界チェックによるペナルティが気になる箇所なら境界チェックのないget_unchecked使えば良いのでは
デフォルトは安全側に倒されてるけどプログラマの裁量で速度を優先することもできるので、適材適所でどちらを使うか選べば良い
C++でも境界チェックありのat()があるから、デフォルトが逆なだけでできることは同じだよね
デフォルトは安全側に倒されてるけどプログラマの裁量で速度を優先することもできるので、適材適所でどちらを使うか選べば良い
C++でも境界チェックありのat()があるから、デフォルトが逆なだけでできることは同じだよね
154デフォルトの名無しさん
2022/09/03(土) 11:03:40.39ID:7pWn865H 結局プログラマーの手に委ねていると必ずミスが起きうるから
境界チェック省略の件も含めて全てについて
コンパイラが分析して安全かどうか判定できた時にはチェックを省略し
そうでない場合は安全のために自動的にチェックをするのがベスト
という方向へ向かっているんじゃないかな
GoogleやMicrosoftがRust言語でOS開発
https://xtech.nikkei.com/atcl/nxt/column/18/00692/042700054/
【脆弱性の70%がメモリー管理バグに起因】
GoogleによればAndroidに存在した深刻なセキュリティー脆弱性の70%近くがメモリー安全に関するバグに起因するという。
同様にマMicrosoftも、同社製品に存在したセキュリティー脆弱性の70%がメモリー安全に関するバグに起因すると述べている。
C/C++を使う限りセキュリティー脆弱性を根絶するのは不可能と考えて、Rustを採用するに至ったというわけだ。
境界チェック省略の件も含めて全てについて
コンパイラが分析して安全かどうか判定できた時にはチェックを省略し
そうでない場合は安全のために自動的にチェックをするのがベスト
という方向へ向かっているんじゃないかな
GoogleやMicrosoftがRust言語でOS開発
https://xtech.nikkei.com/atcl/nxt/column/18/00692/042700054/
【脆弱性の70%がメモリー管理バグに起因】
GoogleによればAndroidに存在した深刻なセキュリティー脆弱性の70%近くがメモリー安全に関するバグに起因するという。
同様にマMicrosoftも、同社製品に存在したセキュリティー脆弱性の70%がメモリー安全に関するバグに起因すると述べている。
C/C++を使う限りセキュリティー脆弱性を根絶するのは不可能と考えて、Rustを採用するに至ったというわけだ。
155デフォルトの名無しさん
2022/09/03(土) 11:21:29.31ID:Vwpr/aZb マジキチだった
156デフォルトの名無しさん
2022/09/03(土) 11:53:26.95ID:MAChL+qh157デフォルトの名無しさん
2022/09/03(土) 11:55:04.03ID:OwwDkoRs この話題、ここ数年で最もレベル低いんじゃないか?大丈夫か?
158デフォルトの名無しさん
2022/09/03(土) 12:31:15.03ID:ytBZTWHu Rustは安心安全でC言語と同等の速度ってことでFAだな
159デフォルトの名無しさん
2022/09/03(土) 12:34:45.63ID:wLxz63Y2 体言止めおじさん
160デフォルトの名無しさん
2022/09/03(土) 12:53:59.17ID:91ZlUxrs 最近のレベル低下には目を見張るものがあるな
161デフォルトの名無しさん
2022/09/03(土) 12:58:26.77ID:91ZlUxrs >>142
>array[i*2]の例は危険な範囲外アクセスとなるコードだから境界チェックをするRustに軍配が上がるね
array[i*2]の例は危険な範囲外アクセスとなるコードだから境界チェックをしないCに軍配が上がる
が正しい
>array[i*2]の例は危険な範囲外アクセスとなるコードだから境界チェックをするRustに軍配が上がるね
array[i*2]の例は危険な範囲外アクセスとなるコードだから境界チェックをしないCに軍配が上がる
が正しい
162デフォルトの名無しさん
2022/09/03(土) 13:35:09.09ID:EiHHJiSw いやはや、時代についていけないCオジが暴れてるようだなw
Cオジもさぁ、自分の世界に引きこもってないでもっと外の世界見ないとねw
Cオジもさぁ、自分の世界に引きこもってないでもっと外の世界見ないとねw
163デフォルトの名無しさん
2022/09/03(土) 13:37:41.33ID:EiHHJiSw Cこそ最強!
1個でもCより遅いケースあったらダメね!
1個でもCより遅いケースあったらダメね!
164デフォルトの名無しさん
2022/09/03(土) 13:38:08.80ID:mKqqa6mD 次世代言語スレなんだから変数の境界越えたアクセスは落とす一択だろ。
もうちょっと別の話したいわ。
もうちょっと別の話したいわ。
165デフォルトの名無しさん
2022/09/03(土) 13:38:32.50ID:EiHHJiSw 1個でもCより遅い場合あったら、他にメリットあっても意味ないから!
166デフォルトの名無しさん
2022/09/03(土) 13:50:50.43ID:uXzSzfSl 誰も>>91の突っ込み無いんかよ。
Rustが速いのは非常にキツイxor条件を満たす範囲だけで、そこを超えるのはとても面倒。そこを無視して「Rustは安全で高速」とか言うのは詐欺じゃね?
あと、次世代スレなのに何でRustとcだけの比較なんだよ。rangeの最適化なんてイマドキc++ですらやるんじゃないの?
Rustが速いのは非常にキツイxor条件を満たす範囲だけで、そこを超えるのはとても面倒。そこを無視して「Rustは安全で高速」とか言うのは詐欺じゃね?
あと、次世代スレなのに何でRustとcだけの比較なんだよ。rangeの最適化なんてイマドキc++ですらやるんじゃないの?
167デフォルトの名無しさん
2022/09/03(土) 14:31:36.61ID:RWiDbqEQ このスレは何もかもをRustと比較したがる信者とそれに反応してしまうバカに乗っ取られた隔離スレです
次世代言語スレではありません
次世代言語の話がしたいかたはこちらへ↓
次世代言語27 Nim Zig Pony Carbon Gleam
https://mevius.5ch.net/test/read.cgi/tech/1659660050/
次世代言語スレではありません
次世代言語の話がしたいかたはこちらへ↓
次世代言語27 Nim Zig Pony Carbon Gleam
https://mevius.5ch.net/test/read.cgi/tech/1659660050/
168デフォルトの名無しさん
2022/09/03(土) 14:36:16.07ID:peyYEDe5 ていうかこいつほんとにRust使ってプログラミングできるの?って思ったんだけど
あまりにも頭が残念すぎて論理的思考の必要なプログラミングができるとは思えない
あまりにも頭が残念すぎて論理的思考の必要なプログラミングができるとは思えない
169デフォルトの名無しさん
2022/09/03(土) 14:49:28.41ID:BHvUMyM5170デフォルトの名無しさん
2022/09/03(土) 17:15:49.49ID:jD7rh1Hd >>167
最終レスが8月18日とか終わってんじゃねえか
最終レスが8月18日とか終わってんじゃねえか
171デフォルトの名無しさん
2022/09/03(土) 17:17:49.88ID:jD7rh1Hd TypeScriptは次世代なのか?
そろそろ枯れてきてるし何ならバニラが復権しかけてんだが
そろそろ枯れてきてるし何ならバニラが復権しかけてんだが
172デフォルトの名無しさん
2022/09/03(土) 17:37:42.10ID:ytBZTWHu >>169
そんなこと言ったらRsutを使う場面が無くなっちゃうだろ
そんなこと言ったらRsutを使う場面が無くなっちゃうだろ
173デフォルトの名無しさん
2022/09/03(土) 18:07:45.82ID:k38NcUnV Rustはスライスに対して境界チェックをしないでアクセスする方法もunsafeで用意されている
つまり最適なプログラミング方法はC/C++を絶対に使わずに全てをRustで記述し
「コンパイラによる安全保証で最適化により安全に境界チェックを省略してくれる部分以外」かつ「人間による安全保証で境界チェックを不要としたい部分」のところのみunsafeで人間が安全保証し
その部分以外は全てコンパイラにより自動的にあらゆるメモリ安全保証させるのが最適な方法となる
つまり最適なプログラミング方法はC/C++を絶対に使わずに全てをRustで記述し
「コンパイラによる安全保証で最適化により安全に境界チェックを省略してくれる部分以外」かつ「人間による安全保証で境界チェックを不要としたい部分」のところのみunsafeで人間が安全保証し
その部分以外は全てコンパイラにより自動的にあらゆるメモリ安全保証させるのが最適な方法となる
174デフォルトの名無しさん
2022/09/03(土) 18:32:15.93ID:5Mn7+zh6175デフォルトの名無しさん
2022/09/03(土) 18:40:11.28ID:ytBZTWHu176デフォルトの名無しさん
2022/09/03(土) 19:00:48.70ID:2joIss6C177デフォルトの名無しさん
2022/09/03(土) 19:10:31.55ID:UqPpASXs178デフォルトの名無しさん
2022/09/03(土) 19:29:43.18ID:MArlT4a7 >>174
Cのコードを書く必要はない
Rustには一部エリアのみプログラマーに安全性の保証の義務を負わせるunsafeブロックがありCと同じことができる
ベンチも#[bench]等ですぐ比較できるから速さにシビアな場合は本件に限らずアルゴリズムの差異も含めてコストをかけるだろう
その点はどんな言語でも同じ
Cのコードを書く必要はない
Rustには一部エリアのみプログラマーに安全性の保証の義務を負わせるunsafeブロックがありCと同じことができる
ベンチも#[bench]等ですぐ比較できるから速さにシビアな場合は本件に限らずアルゴリズムの差異も含めてコストをかけるだろう
その点はどんな言語でも同じ
179デフォルトの名無しさん
2022/09/03(土) 19:37:31.78ID:+aRAkEDC180デフォルトの名無しさん
2022/09/03(土) 20:06:47.23ID:BHvUMyM5181デフォルトの名無しさん
2022/09/03(土) 20:09:49.33ID:amOq/bcL >>109のコードを見てみたが書き方が酷いな
とりあえずそれと全く同じ関数仕様に合わせるとして
Rustならもっと簡潔にこのように書く
fn max_value_slice_vw(v: &[u32], w: &[u32]) -> u32 {
std::iter::zip(v, w)
.map(|(m, n)| m + n)
.max()
.unwrap_or_default()
}
C言語バージョンより遥かに分かりやすいし
通常Rustでは返り値をu32でなくOption<u32>とするから最後のunwrap_or_default()も不要となる
これでC言語バージョンと全く同じ結果を得られるし
境界チェックも行われないし
そのC言語バージョンと全く同等のアセンブリコードが生成されることも確認できる
つまり今回の>>109の件もRustとCは同じ速さで動作する
とりあえずそれと全く同じ関数仕様に合わせるとして
Rustならもっと簡潔にこのように書く
fn max_value_slice_vw(v: &[u32], w: &[u32]) -> u32 {
std::iter::zip(v, w)
.map(|(m, n)| m + n)
.max()
.unwrap_or_default()
}
C言語バージョンより遥かに分かりやすいし
通常Rustでは返り値をu32でなくOption<u32>とするから最後のunwrap_or_default()も不要となる
これでC言語バージョンと全く同じ結果を得られるし
境界チェックも行われないし
そのC言語バージョンと全く同等のアセンブリコードが生成されることも確認できる
つまり今回の>>109の件もRustとCは同じ速さで動作する
182デフォルトの名無しさん
2022/09/03(土) 20:17:46.35ID:yFkzTBSQ183デフォルトの名無しさん
2022/09/03(土) 20:34:30.71ID:0512mxP9 「最適化度合い」ってあれだな
「クイックソートは最悪のケースの計算量が多過ぎる」みたいな
ヒープソート最強伝説に似ている
「クイックソートは最悪のケースの計算量が多過ぎる」みたいな
ヒープソート最強伝説に似ている
184デフォルトの名無しさん
2022/09/03(土) 20:45:21.45ID:GmjcSeRW185デフォルトの名無しさん
2022/09/03(土) 20:48:32.94ID:nzn5OhxI >>181
RustはわかりやすくシンプルにプログラミングできてCと同じ速度なのが素晴らしいね
RustはわかりやすくシンプルにプログラミングできてCと同じ速度なのが素晴らしいね
186デフォルトの名無しさん
2022/09/03(土) 20:51:48.37ID:bnXlFS4K >>185もはや自虐ネタ。嫌味ですか?
187デフォルトの名無しさん
2022/09/03(土) 20:52:15.80ID:jD7rh1Hd Rustをむやみに褒めてるやつがアホすぎてRustのネガティブキャンペーンにしか見えない件
188デフォルトの名無しさん
2022/09/03(土) 21:07:27.69ID:ze3FTyL9 こういう争いは同じレベルのやつ同士でしか起きない
お互いに相手がアホだと思ってるけど両方同レベルのアホ
お互いに相手がアホだと思ってるけど両方同レベルのアホ
189デフォルトの名無しさん
2022/09/03(土) 21:10:15.24ID:amOq/bcL for文を使わずにメソッドチェーンで書いたことが気に入らないのならば
>>181はfor文を使って以下のように書ける
fn max_value_slice_vw2(v: &[u32], w: &[u32]) -> u32 {
let mut max = 0;
for (m, n) in std::iter::zip(v, w) {
if max < n + m {
max = n + m;
}
}
max
}
これもC言語バージョンと同じ動作をし
同等のアセンブリコードが生成されることも確認できる
>>181はfor文を使って以下のように書ける
fn max_value_slice_vw2(v: &[u32], w: &[u32]) -> u32 {
let mut max = 0;
for (m, n) in std::iter::zip(v, w) {
if max < n + m {
max = n + m;
}
}
max
}
これもC言語バージョンと同じ動作をし
同等のアセンブリコードが生成されることも確認できる
190デフォルトの名無しさん
2022/09/03(土) 21:13:41.03ID:sVwwSPBV せめてID変えずにやってくれればいいのにな
何回NGさせるんだか
何回NGさせるんだか
191デフォルトの名無しさん
2022/09/03(土) 21:15:53.68ID:jlSkT3Xm192デフォルトの名無しさん
2022/09/03(土) 21:25:28.83ID:jfkeSYrB Cだと速いけどRustだと遅くなるケースって存在しないの?
誰かそういう例を作ってほしい
ここまでRustがCと同じ速さで書ける例ばかりだから
誰かそういう例を作ってほしい
ここまでRustがCと同じ速さで書ける例ばかりだから
193デフォルトの名無しさん
2022/09/03(土) 21:30:23.63ID:fcrVCCYN 本人はバレてないと思ってるらしいw
194デフォルトの名無しさん
2022/09/03(土) 21:34:03.97ID:hQBDJOi4195デフォルトの名無しさん
2022/09/03(土) 21:55:58.00ID:wxRR+ldD Rustはfor文自体がイテレータを使うから、
for i in 0..s.len() {
println!("{}", s[i]);
}
とインデックスを使う書き方をするのは非常に稀で、
これはインデックスを使わず、
for n in s {
println!("{}", n);
}
と書くのがRustでは普通だから、
インデックス議論自体があまり意味のないものに思える。
そしてどちらの書き方をしてもCコードと同速度。
for i in 0..s.len() {
println!("{}", s[i]);
}
とインデックスを使う書き方をするのは非常に稀で、
これはインデックスを使わず、
for n in s {
println!("{}", n);
}
と書くのがRustでは普通だから、
インデックス議論自体があまり意味のないものに思える。
そしてどちらの書き方をしてもCコードと同速度。
196デフォルトの名無しさん
2022/09/03(土) 22:05:33.75ID:lGqTIi1A Rustがそんなに速いならなんで競プロはC++一択なの
197デフォルトの名無しさん
2022/09/03(土) 22:19:33.41ID:V+KjjP+f198デフォルトの名無しさん
2022/09/03(土) 22:30:44.07ID:0512mxP9 まあ、型を正確に宣言しても速くならないし遅くなるというのがもし本当なら
バニラJSが復権するのもPythonが支持されるのも当然といえば当然
バニラJSが復権するのもPythonが支持されるのも当然といえば当然
199デフォルトの名無しさん
2022/09/03(土) 22:31:15.35ID:pNlcpp9D >>196
解説本がc++が多いからかな
解説本がc++が多いからかな
200デフォルトの名無しさん
2022/09/03(土) 22:34:08.49ID:zAI/jpLH 例えば競プロAtCoderでABC182-E問題 i行目j列目のマス(i,j)を扱う問題
提出された各プログラミング言語別の実行時間分布
https://pbs.twimg.com/media/EmYvG8aVkAMdfFG.jpg
提出された各プログラミング言語別の実行時間分布
https://pbs.twimg.com/media/EmYvG8aVkAMdfFG.jpg
201デフォルトの名無しさん
2022/09/03(土) 22:38:11.41ID:DRQBO0l9 Rustはコーディングに時間がかかるから競プロでは使えない。
競プロにC++とPythonは良い選択。
競プロにC++とPythonは良い選択。
202デフォルトの名無しさん
2022/09/03(土) 22:41:39.07ID:nzn5OhxI >>200
競プロでもRustが速いね
競プロでもRustが速いね
203デフォルトの名無しさん
2022/09/03(土) 23:18:47.73ID:mp8eZIVB204デフォルトの名無しさん
2022/09/03(土) 23:28:32.01ID:DRQBO0l9 他言語を貶しても、Rustが使える言語にはならない。
205デフォルトの名無しさん
2022/09/03(土) 23:28:44.38ID:Ej5h9pmc206デフォルトの名無しさん
2022/09/03(土) 23:33:58.57ID:SEYCHGY8207デフォルトの名無しさん
2022/09/03(土) 23:43:22.86ID:0512mxP9 >>204
その定型文のどこが「使える」と思ったのかがさっぱり分からないよ
その定型文のどこが「使える」と思ったのかがさっぱり分からないよ
208デフォルトの名無しさん
2022/09/03(土) 23:47:27.33ID:YC+HIv6p209デフォルトの名無しさん
2022/09/04(日) 00:08:42.58ID:yt7jdRkq210デフォルトの名無しさん
2022/09/04(日) 00:27:20.06ID:ULs4IOBU で、その競プロでのc言語での参加率はどれくらい?> cオジ
211デフォルトの名無しさん
2022/09/04(日) 00:31:23.21ID:ygllKmJ5 4回ともC++コード同じだな
ただしその一つ前だけコードが違っていて二次元配列を一次元へと書き換えて改善してる
一方でRustの人は最初から一次元にしてるからその改善が必要なかった
つまり>>208はRustを叩きたいだけの完全に的外れ
ただしその一つ前だけコードが違っていて二次元配列を一次元へと書き換えて改善してる
一方でRustの人は最初から一次元にしてるからその改善が必要なかった
つまり>>208はRustを叩きたいだけの完全に的外れ
212デフォルトの名無しさん
2022/09/04(日) 02:03:59.28ID:1GJgU4m+ たぶん必要なのは
葡萄を食べるべきでない理由ではなく
食べない自由なんだな
葡萄を食べるべきでない理由ではなく
食べない自由なんだな
213デフォルトの名無しさん
2022/09/04(日) 08:04:17.58ID:IySRHUNr214デフォルトの名無しさん
2022/09/04(日) 08:07:09.64ID:gz8Ny9ff215デフォルトの名無しさん
2022/09/04(日) 08:19:18.55ID:ftO7cI3V216デフォルトの名無しさん
2022/09/04(日) 10:34:00.57ID:RQxkFcRF 本日のRustあげ会場はこちらですか?
217デフォルトの名無しさん
2022/09/04(日) 11:16:04.09ID:ubNPliW5 貶めれば誹謗中傷かも知れんけど、ほめれば気持ち悪いだけ
こんなの消去法でほめるに決まってんだろ
こんなの消去法でほめるに決まってんだろ
218デフォルトの名無しさん
2022/09/04(日) 11:23:49.03ID:YUzYugU5 参加者自体はRustも多い。
C++と同じくらい居る。
時間内に提出できる人が少ないだけ。
C++と同じくらい居る。
時間内に提出できる人が少ないだけ。
219デフォルトの名無しさん
2022/09/04(日) 11:27:19.04ID:eUUNIT4U つまりRustは生産性が低いor利用者の能力が低いってこと?
220デフォルトの名無しさん
2022/09/04(日) 11:52:32.99ID:r6qlMaZb 普通にガチ勢は昔からC++を使ってて今さら他の言語にしないというだけだろうな
221デフォルトの名無しさん
2022/09/04(日) 12:28:01.29ID:1n1CTU4P CオジはCとC++比べてもやっぱCの方が早いからC++はダメとか言うのかな?
222デフォルトの名無しさん
2022/09/04(日) 12:29:11.61ID:RQxkFcRF ダメな香具師が描いたダメなC++コードは本当に糞
Cのがマシ
Cのがマシ
223デフォルトの名無しさん
2022/09/04(日) 12:57:20.84ID:r6qlMaZb224デフォルトの名無しさん
2022/09/04(日) 13:11:43.10ID:MfsHP/8v pythonでアルゴリズム性能出ると思ってるのお前だけだよ。。
225デフォルトの名無しさん
2022/09/04(日) 13:31:05.58ID:r6qlMaZb お前がアルゴリズムという言葉を知らないと言うことがわかった
226デフォルトの名無しさん
2022/09/04(日) 14:04:04.57ID:ubNPliW5 行列の和と積を英単語ではなく記号で書けるだけでC++と互角みたいになったのがPython
argv + 1000000 がnullを返したり計算中に例外を投げる実装が可能なだけでRustと互角になれる
argv + 1000000 がnullを返したり計算中に例外を投げる実装が可能なだけでRustと互角になれる
227デフォルトの名無しさん
2022/09/04(日) 14:42:33.66ID:RQxkFcRF 何と戦ってるのか知らんがイミフな基準
228デフォルトの名無しさん
2022/09/04(日) 14:46:33.79ID:Pinnb9nG >>223
うーん、いろんな言語で競プロやってる青色だからついコメントしたくなってしまう
CPythonは知らんけど、pypyは実行速度速いからマラソンでもなければ困ることないよ
再帰がしんどいと言われる問題も、コドフォではよく使われてるbootstrapデコレータを使えば簡単に解決する
Rustはusizeの扱いのために余分なコードが必要になることが多かったし、クロージャ使おうとすると引数の型とかめんどいしで、最近は専らPythonを使ってる
Pythonはクロージャを短めに書けることも競プロ的には気が楽だな
うーん、いろんな言語で競プロやってる青色だからついコメントしたくなってしまう
CPythonは知らんけど、pypyは実行速度速いからマラソンでもなければ困ることないよ
再帰がしんどいと言われる問題も、コドフォではよく使われてるbootstrapデコレータを使えば簡単に解決する
Rustはusizeの扱いのために余分なコードが必要になることが多かったし、クロージャ使おうとすると引数の型とかめんどいしで、最近は専らPythonを使ってる
Pythonはクロージャを短めに書けることも競プロ的には気が楽だな
229デフォルトの名無しさん
2022/09/04(日) 15:31:08.56ID:YUzYugU5 Rustは競プロに向いて居ないからな。
避けるのが賢明。
避けるのが賢明。
230デフォルトの名無しさん
2022/09/04(日) 15:33:36.35ID:+XXjYupQ 複オジと
複オジにマジレスしちゃう人と
その両方を焚き付けて喜んでる人の三人でお送りしています
複オジにマジレスしちゃう人と
その両方を焚き付けて喜んでる人の三人でお送りしています
231デフォルトの名無しさん
2022/09/04(日) 16:44:07.43ID:nQgfFYZJ Cが普通はintインデクスなのになんで、配列というかスライスをusizeにしたか何回も疑問に上がるよね....
まあインデックスループじゃなく、イテレート操作するからとか、std::ops::Index<T>でusizeだからとか
色々な回答があるけど、どうにもスッキリしない
usize以外の型(より小さい型やsigned)を使えるようにすることは将来ありうるかという開発者への質問も
ライブラリの互換性上ではすぐに実現できないみたいだし、ま、使う人の利便性・プログラマーへの負担軽減を
優先的に考えて作られた言語じゃないからだけど、let mutと書いてる時点でそうだが、せめてこれだけでも
1キーワードに出来なかったんだろうかな
それとCだとint a = 0, b = 1, c = 2;と宣言できるけど、let (mut a, mut b, mut c) = (0, 1, 2);
文末セミコロンで複数行に分けても、理解しやすいという話はどこに行った?使いやすさを求めては
イケないんだろうけど、どうもね....
まあインデックスループじゃなく、イテレート操作するからとか、std::ops::Index<T>でusizeだからとか
色々な回答があるけど、どうにもスッキリしない
usize以外の型(より小さい型やsigned)を使えるようにすることは将来ありうるかという開発者への質問も
ライブラリの互換性上ではすぐに実現できないみたいだし、ま、使う人の利便性・プログラマーへの負担軽減を
優先的に考えて作られた言語じゃないからだけど、let mutと書いてる時点でそうだが、せめてこれだけでも
1キーワードに出来なかったんだろうかな
それとCだとint a = 0, b = 1, c = 2;と宣言できるけど、let (mut a, mut b, mut c) = (0, 1, 2);
文末セミコロンで複数行に分けても、理解しやすいという話はどこに行った?使いやすさを求めては
イケないんだろうけど、どうもね....
232デフォルトの名無しさん
2022/09/04(日) 16:46:11.53ID:/0DHyjSi ミュータブルを極力使うなということだろ
233デフォルトの名無しさん
2022/09/04(日) 17:40:27.34ID:YUzYugU5 韓国で最も愛される言語と銘打てば流行るのでは?
234デフォルトの名無しさん
2022/09/04(日) 17:47:06.26ID:rbLH55CO235デフォルトの名無しさん
2022/09/04(日) 17:48:26.12ID:qbvnu5SJ236デフォルトの名無しさん
2022/09/04(日) 18:06:41.17ID:mP7WKJy6 普通にprintln!使うと遅いんだけど教プロ上位なんだな
237デフォルトの名無しさん
2022/09/04(日) 18:17:28.78ID:6TwASNhD 競プロではRustは間違いなく最速レベルだし、proconioみたいなマクロを使えば入出力もめちゃくちゃ扱いやすい
でもまあそれ以外のとこでかなり慣れがいる
でもまあそれ以外のとこでかなり慣れがいる
238デフォルトの名無しさん
2022/09/04(日) 18:21:48.03ID:oPTKOfK9 安心安全最速、Rust最高じゃん
239デフォルトの名無しさん
2022/09/04(日) 19:10:58.79ID:brj4MXrP >>231
インデックスやその長さはusize型で絶対に正しい
まずインデックスは負の数になってはいけないからunsigned型
サイズとしてはポインタなどと同じそのCPUで使われるサイズでなければならないからusizeとなる
そして実際のほとんどの様々なプログラミングにおいてインデックスはusize型で上手く動く
ところが例外が二つある
例外の一つは自分たちで決められない外部指定APIなど規定においてインデックスや長さがusize型でない場合でas usizeにより解決
例外のもう一つは一部の数値アルゴリズムでプログラミングする上で一時的もしくは最初あるいは終端で負の数になると便利なことがある
もちろんその一時的な負の数である時ははインデックスとして使われないようにプログラマーの責任でプログラミングしてインデックスとして使う時はas usize
インデックスやその長さはusize型で絶対に正しい
まずインデックスは負の数になってはいけないからunsigned型
サイズとしてはポインタなどと同じそのCPUで使われるサイズでなければならないからusizeとなる
そして実際のほとんどの様々なプログラミングにおいてインデックスはusize型で上手く動く
ところが例外が二つある
例外の一つは自分たちで決められない外部指定APIなど規定においてインデックスや長さがusize型でない場合でas usizeにより解決
例外のもう一つは一部の数値アルゴリズムでプログラミングする上で一時的もしくは最初あるいは終端で負の数になると便利なことがある
もちろんその一時的な負の数である時ははインデックスとして使われないようにプログラマーの責任でプログラミングしてインデックスとして使う時はas usize
240デフォルトの名無しさん
2022/09/04(日) 19:29:23.15ID:OkswyjL5 浮動小数点数から符号無し整数へキャストする命令なくね?
最近の処理系は直接キャスト出来るようなったん?
最近の処理系は直接キャスト出来るようなったん?
241デフォルトの名無しさん
2022/09/04(日) 19:44:58.67ID:brj4MXrP >>231
その3-tupleはデータ型の一つでもありまとめて変数に格納できるし関数の引数や戻り値に3-tupleは使える
let foo = (1, 2, 3);
letはパターンマッチ文なので分解にも使う
let (a, mut b, c) = foo;
b += 100;
println!("{a} {b} {c}')
ここでbしかmutableを必要としていないのだから個別mut指定が自然
どの言語でも同様だがmutableをできる限り少なくするのがプログラミングのコツ
その3-tupleはデータ型の一つでもありまとめて変数に格納できるし関数の引数や戻り値に3-tupleは使える
let foo = (1, 2, 3);
letはパターンマッチ文なので分解にも使う
let (a, mut b, c) = foo;
b += 100;
println!("{a} {b} {c}')
ここでbしかmutableを必要としていないのだから個別mut指定が自然
どの言語でも同様だがmutableをできる限り少なくするのがプログラミングのコツ
242デフォルトの名無しさん
2022/09/04(日) 20:00:50.97ID:wyRxABNd >>231
Cも配列のインデックス関連は(s)size_tが基本では
strlenやmemcpyの引数や返値はsize_tだし
単にintから暗黙的にキャストできるというだけで
暗黙の数値キャストがないのは確かにめんどくさい
asでのキャストはリリースビルドだと範囲外の値になったときにエラーにならないし、
絶対成功するキャストと失敗する可能性のあるキャストが見た目からぱっと区別がつかないのもよろしくない
かといってn.try_into().unwrap()を書くのもだるい
せめてn.into()で済ませたいが16bitアーキもサポート対象だからusizeに From<u32> が実装されていない
ターゲットを32bit以上のアーキテクチャに限定するした場合はinto()使えるようにするとか、もう少し楽にできないだろうか
Cも配列のインデックス関連は(s)size_tが基本では
strlenやmemcpyの引数や返値はsize_tだし
単にintから暗黙的にキャストできるというだけで
暗黙の数値キャストがないのは確かにめんどくさい
asでのキャストはリリースビルドだと範囲外の値になったときにエラーにならないし、
絶対成功するキャストと失敗する可能性のあるキャストが見た目からぱっと区別がつかないのもよろしくない
かといってn.try_into().unwrap()を書くのもだるい
せめてn.into()で済ませたいが16bitアーキもサポート対象だからusizeに From<u32> が実装されていない
ターゲットを32bit以上のアーキテクチャに限定するした場合はinto()使えるようにするとか、もう少し楽にできないだろうか
243デフォルトの名無しさん
2022/09/04(日) 22:29:03.84ID:rWQ8XHaT >>242
Rustは基本としては正しい一貫した方針をとっていて
型変換が必ず成功するものはinto()つまりfrom()が定義されていて
型変換が成功しない可能性のあるものはtry_into()つまりtry_from()が定義されている
したがって基本的にはどちらかを用いればよい
新たな型に対しても同じ方針で実装していくしライブラリもそうなっている
usizeについても同様だが16bit環境もあるためbool, u8, u16からのみinto()となり一貫している
唯一の例外は浮動小数点で成功が定義されないためにinto()もtry_into()もない
上述のコンパイラが型変換を常に保証する方式に対して
プログラマーが型変換を保証する方式に利便性を兼ね備えたのがasによるキャスト
これは例えばu32を自動的に上位を切り捨ててu8に入れるといったことも含めた広義の型変換も含まれる
いずれのケースもキャストはプログラマーの責任で行なうという一貫した方針がある
わざわざ『as xxx』と記述させるのはそのためで意図的に目立つようにしている
プログラムをチェック、デバッグ、メンテする時にunsafeに準じてas xxxは注視すべきポイントとなる
Rustは基本としては正しい一貫した方針をとっていて
型変換が必ず成功するものはinto()つまりfrom()が定義されていて
型変換が成功しない可能性のあるものはtry_into()つまりtry_from()が定義されている
したがって基本的にはどちらかを用いればよい
新たな型に対しても同じ方針で実装していくしライブラリもそうなっている
usizeについても同様だが16bit環境もあるためbool, u8, u16からのみinto()となり一貫している
唯一の例外は浮動小数点で成功が定義されないためにinto()もtry_into()もない
上述のコンパイラが型変換を常に保証する方式に対して
プログラマーが型変換を保証する方式に利便性を兼ね備えたのがasによるキャスト
これは例えばu32を自動的に上位を切り捨ててu8に入れるといったことも含めた広義の型変換も含まれる
いずれのケースもキャストはプログラマーの責任で行なうという一貫した方針がある
わざわざ『as xxx』と記述させるのはそのためで意図的に目立つようにしている
プログラムをチェック、デバッグ、メンテする時にunsafeに準じてas xxxは注視すべきポイントとなる
244デフォルトの名無しさん
2022/09/04(日) 23:03:51.17ID:rWQ8XHaT >>243の基本を踏まえた上で
例えば16bit環境でなければu32からusizeへのtry_into()は常に成功し安全にunwrap()できる
生成コードも以下のようにコストゼロ
https://godbolt.org/z/cEc5fKGjh
キャストasと同様にunwrapも注視ポイントとなるため
利便性も含めてinlineのto_usize()を用意してしまうのがよいかもしれない
bit環境依存性はそのメソッドに押し込めることで注視ポイントが散らばるのを防げる
例えば16bit環境でなければu32からusizeへのtry_into()は常に成功し安全にunwrap()できる
生成コードも以下のようにコストゼロ
https://godbolt.org/z/cEc5fKGjh
キャストasと同様にunwrapも注視ポイントとなるため
利便性も含めてinlineのto_usize()を用意してしまうのがよいかもしれない
bit環境依存性はそのメソッドに押し込めることで注視ポイントが散らばるのを防げる
245デフォルトの名無しさん
2022/09/04(日) 23:05:01.26ID:ULs4IOBU 危険のある操作は面倒にするべきなんだよ。
246デフォルトの名無しさん
2022/09/04(日) 23:23:22.66ID:nQgfFYZJ >>239
それ絶対に正しいとは言えてないよね
下のほうに書いてるんだろうけど、よくある別の言語仕様だと、a[-1]が末尾を表したりできるし、数多くの言語でインデックスループだと
これもよくある相対位置やインデックス演算でa[i-1]とか書くけど、usizeをキャストしてi32にしてもう一度、スライスにアクセスするために
as usizeとか2回キャストを行う。これがどれほど醜くなるし、めんどくさくて労力を要するか
当然、メモリアドレッシングが0x00〜上に伸びていくことなんて言わなくてもわかるが、それが合理的であり、かつスライスがusizeで
支持できる理由かといえばどうだろう?少なくとも私はメンドクサイ
またもちろん、(a, b) = t がタプルのアンパッキングなどに使えるのも知ってるけど、それとまとめて変数の宣言と初期化を少ないタイプ量で
出来る話とは別だろう、上からアドバイス頂いてるようでケチをつけて申し訳ないけど、もちろん不変性はマルチスレッドでも有利だしコードの
リファクタリングなどもし易い、ファンクションの変更が良くわかる(そのくせ同じ変数名で別型再定義できたり)とか色々利点があるのは
当然分かってるけど、これもまたmutを多数宣言しなきゃならない時とは全く別の話だよ
それ絶対に正しいとは言えてないよね
下のほうに書いてるんだろうけど、よくある別の言語仕様だと、a[-1]が末尾を表したりできるし、数多くの言語でインデックスループだと
これもよくある相対位置やインデックス演算でa[i-1]とか書くけど、usizeをキャストしてi32にしてもう一度、スライスにアクセスするために
as usizeとか2回キャストを行う。これがどれほど醜くなるし、めんどくさくて労力を要するか
当然、メモリアドレッシングが0x00〜上に伸びていくことなんて言わなくてもわかるが、それが合理的であり、かつスライスがusizeで
支持できる理由かといえばどうだろう?少なくとも私はメンドクサイ
またもちろん、(a, b) = t がタプルのアンパッキングなどに使えるのも知ってるけど、それとまとめて変数の宣言と初期化を少ないタイプ量で
出来る話とは別だろう、上からアドバイス頂いてるようでケチをつけて申し訳ないけど、もちろん不変性はマルチスレッドでも有利だしコードの
リファクタリングなどもし易い、ファンクションの変更が良くわかる(そのくせ同じ変数名で別型再定義できたり)とか色々利点があるのは
当然分かってるけど、これもまたmutを多数宣言しなきゃならない時とは全く別の話だよ
247デフォルトの名無しさん
2022/09/04(日) 23:56:45.66ID:C1tkKKn6 >>246
Rustならばusize型そのままa[i-1]と書くことが出来ますが
2回キャスト面倒とは別の言語の話ですか?
例えば前の要素との差が指定のものを見つけてインデックスを返すRustコード例
fn find_diff(a: &[i32], diff: i32) -> Option<usize> {
for i in 1..a.len() {
if a[i] - a[i-1] == diff {
return Some(i);
}
}
None
}
もちろん最適化によりアクセス時のインデックス境界チェックは無くなります
Rustならばusize型そのままa[i-1]と書くことが出来ますが
2回キャスト面倒とは別の言語の話ですか?
例えば前の要素との差が指定のものを見つけてインデックスを返すRustコード例
fn find_diff(a: &[i32], diff: i32) -> Option<usize> {
for i in 1..a.len() {
if a[i] - a[i-1] == diff {
return Some(i);
}
}
None
}
もちろん最適化によりアクセス時のインデックス境界チェックは無くなります
248デフォルトの名無しさん
2022/09/05(月) 00:30:20.92ID:+iXq2ECO まともにプログラム書いたことなさそうだね
249デフォルトの名無しさん
2022/09/05(月) 00:34:33.72ID:BTzrk4g4 >>241
Rustはletとmut指定を分離することでそのようにできるから大成功だな
mut指定が分離していない言語ではそのようにすることができずいつも困っている
方法がないからimmutableで十分な変数も含めてまとめてmutableな変数宣言にせざるをえない
初めて知ったときRustはよく考えられているなあと感動した
Rustはletとmut指定を分離することでそのようにできるから大成功だな
mut指定が分離していない言語ではそのようにすることができずいつも困っている
方法がないからimmutableで十分な変数も含めてまとめてmutableな変数宣言にせざるをえない
初めて知ったときRustはよく考えられているなあと感動した
250デフォルトの名無しさん
2022/09/05(月) 00:43:43.47ID:+21R+/VD >>246
・Rustは、数値リテラルに多くの言語ある固定の型がなく、文脈によりu32とかi32とか変わる(型推測)
・下のほうで境界チェックがないのも1..a.len()としているから
当然ながら、これは胸を張って一貫性があるとは言えないがa[-1]は言語仕様ではコンパイルエラーになるが
for i in 0..a.len()とすれば境界チェックが入り実行時にpanicする
君が勘違いしてるのはa[i+b]とかはbを宣言した場合、as castが必要で、色々ごっちゃになってるYO
アンダースタンド?w
・Rustは、数値リテラルに多くの言語ある固定の型がなく、文脈によりu32とかi32とか変わる(型推測)
・下のほうで境界チェックがないのも1..a.len()としているから
当然ながら、これは胸を張って一貫性があるとは言えないがa[-1]は言語仕様ではコンパイルエラーになるが
for i in 0..a.len()とすれば境界チェックが入り実行時にpanicする
君が勘違いしてるのはa[i+b]とかはbを宣言した場合、as castが必要で、色々ごっちゃになってるYO
アンダースタンド?w
251デフォルトの名無しさん
2022/09/05(月) 00:44:27.92ID:ARttffD1 C++は型の特性を調べて、ユーザーがconst性を利用したバージョンの実装を生み出すことができる。
しかも利用時には、型の特性によってコンパイラにどのバージョンを使うか選択させる事が出来る。
しかも利用時には、型の特性によってコンパイラにどのバージョンを使うか選択させる事が出来る。
252デフォルトの名無しさん
2022/09/05(月) 00:48:14.12ID:g3RfqaIY RustもIndex<u32>とか実装はできるよ
標準のsliceに実装されてないというだけで
標準のsliceに実装されてないというだけで
253デフォルトの名無しさん
2022/09/05(月) 00:55:53.18ID:ARttffD1 C++は、型の計算ができるんですよ。
254デフォルトの名無しさん
2022/09/05(月) 01:07:57.19ID:9iTWKe04 すまん、誰が聖闘士星矢で例えてくれないか?
255デフォルトの名無しさん
2022/09/05(月) 01:12:56.84ID:ARttffD1 >>254
くちから たれている みつは 2きろ はなれていても はなが まがるほど もうれつに くさい。
くちから たれている みつは 2きろ はなれていても はなが まがるほど もうれつに くさい。
256デフォルトの名無しさん
2022/09/05(月) 01:19:02.56ID:JbiV7xYP >>211
一昨日は言葉が過ぎました。開発現場、携わっている人には心無い発言でした。反省してます。
強調したかったのは、最適化って難しいよ、速そうな言語を選んでコンパイラにお任せって言う易しい世界じゃないよ、という事です。
むしろ叩きたいのは、定期的に現れる無意味なRust上げ
スレッドの流れをフォローしている人間にはネガティブキャンペーンと受け取られているコメントです。
うすうす気づいているとは思いますが、これSEO対策なんですよ。
Rustをほとんど知らない人が検索をした時に、
チラッとその一部だけを見せてエコーチェンバーにはめ込むと言う仕掛けです
同様に時々現れる、会話の流れを修正したい時に持ち出す極論、逆説的にRustを卑下する冗談
これはわざとRsutとタイポしてチラ見に現れないようにしている。
複製おじとは別人だと思うのですがどんなんですかね。皆さんの意見を訊きたいな
一昨日は言葉が過ぎました。開発現場、携わっている人には心無い発言でした。反省してます。
強調したかったのは、最適化って難しいよ、速そうな言語を選んでコンパイラにお任せって言う易しい世界じゃないよ、という事です。
むしろ叩きたいのは、定期的に現れる無意味なRust上げ
スレッドの流れをフォローしている人間にはネガティブキャンペーンと受け取られているコメントです。
うすうす気づいているとは思いますが、これSEO対策なんですよ。
Rustをほとんど知らない人が検索をした時に、
チラッとその一部だけを見せてエコーチェンバーにはめ込むと言う仕掛けです
同様に時々現れる、会話の流れを修正したい時に持ち出す極論、逆説的にRustを卑下する冗談
これはわざとRsutとタイポしてチラ見に現れないようにしている。
複製おじとは別人だと思うのですがどんなんですかね。皆さんの意見を訊きたいな
257デフォルトの名無しさん
2022/09/05(月) 01:22:23.34ID:RaegMrzk >>246はまともにプログラミングしたことないとまでは言えないが多くの勘違いをしてるのは確かだな
usizeを上に伸びていくと書いてあるから引き算出来ないとでも勝手に思い込んでa[i-1]ができないと勘違いしたのかもしれない
もう一件
> よくある別の言語仕様だと、a[-1]が末尾を表したりできるし
その件はa[-1]やマイナスのインデックスに意味を持たせたプログラミング言語の仕様ミス
もしくはお子様向け言語であるとの結論が大昔に出ている
プログラミングのミスでマイナスのインデックスとなり本来はエラーでミス発覚となるべきところか不可能となった
つまり言語仕様ミスなのかそんなこと気にしないお子様向け言語なのかどちらかということになる
ほとんどの言語はまともなのでa[-i]はエラーとなり正しくa[len-i]と書く
usizeを上に伸びていくと書いてあるから引き算出来ないとでも勝手に思い込んでa[i-1]ができないと勘違いしたのかもしれない
もう一件
> よくある別の言語仕様だと、a[-1]が末尾を表したりできるし
その件はa[-1]やマイナスのインデックスに意味を持たせたプログラミング言語の仕様ミス
もしくはお子様向け言語であるとの結論が大昔に出ている
プログラミングのミスでマイナスのインデックスとなり本来はエラーでミス発覚となるべきところか不可能となった
つまり言語仕様ミスなのかそんなこと気にしないお子様向け言語なのかどちらかということになる
ほとんどの言語はまともなのでa[-i]はエラーとなり正しくa[len-i]と書く
258デフォルトの名無しさん
2022/09/05(月) 01:34:56.96ID:9oDekVHu259デフォルトの名無しさん
2022/09/05(月) 01:45:29.53ID:ARttffD1 実力のある者はC++を利用するべきでは?
260デフォルトの名無しさん
2022/09/05(月) 01:57:02.85ID:b0NkdPU/261デフォルトの名無しさん
2022/09/05(月) 02:02:44.86ID:7mfke0+F 欠陥言語C++を使うメリットは何?
今はこれだけ多数の安全な言語があって色々選べるのに
今はこれだけ多数の安全な言語があって色々選べるのに
262デフォルトの名無しさん
2022/09/05(月) 02:05:41.16ID:ARttffD1 アセンブラを使う理由はレジスタにアクセスできるから。
これはとても危険。
C/C++を使う理由はメモリーにアクセスできるから。
これはとても危険。
これはとても危険。
C/C++を使う理由はメモリーにアクセスできるから。
これはとても危険。
263デフォルトの名無しさん
2022/09/05(月) 02:07:30.95ID:ARttffD1 大いなる力には責任が伴う。
2019 - アフレシアさん
2019 - アフレシアさん
264デフォルトの名無しさん
2022/09/05(月) 02:14:43.00ID:ARttffD1 早くコンセプトが使いたいわー。
265デフォルトの名無しさん
2022/09/05(月) 02:16:22.39ID:E82kQidM266デフォルトの名無しさん
2022/09/05(月) 02:33:35.68ID:sgxkT6js C++にもメリットはありゼロじゃない
ただし世界的には>>154の結論が出ている
そして今回もC++で書かれたChromiumの穴のせいで、それを使うElectronを始め多數に影響が出て、それを使うVScodeにもセキュリティ脆弱性と連鎖
C++を使い続ける限りセキュリティの穴が量産されてしまう
ただし世界的には>>154の結論が出ている
そして今回もC++で書かれたChromiumの穴のせいで、それを使うElectronを始め多數に影響が出て、それを使うVScodeにもセキュリティ脆弱性と連鎖
C++を使い続ける限りセキュリティの穴が量産されてしまう
267デフォルトの名無しさん
2022/09/05(月) 02:57:07.57ID:5U2utJMj268デフォルトの名無しさん
2022/09/05(月) 03:10:33.61ID:9iTWKe04 何でもrustでやらんで、安全性第一のとことか機能が優れてるとこ(非同期やジェネリクス、健全なマクロ、パターンマッチ等)とかからでもrustを便利に使ってったらええ。
今のrustは少しずつ実用面で採用を広げて行ってる段階だろ。Linuxでの採用とかさ。
既存のcでやってることをイキなり全部rustで置き換えようとしてる人なんて居ない。
rustにその潜在能力があったもしてもマンパワーが足りない。だから大手は少しずつ小さな分野で使いだしてる、複数の大手でね。
ただrustはもっとc言語との連携が簡単だったらと思う。
今のrustは少しずつ実用面で採用を広げて行ってる段階だろ。Linuxでの採用とかさ。
既存のcでやってることをイキなり全部rustで置き換えようとしてる人なんて居ない。
rustにその潜在能力があったもしてもマンパワーが足りない。だから大手は少しずつ小さな分野で使いだしてる、複数の大手でね。
ただrustはもっとc言語との連携が簡単だったらと思う。
269デフォルトの名無しさん
2022/09/05(月) 03:31:45.52ID:hQwE/dE/270デフォルトの名無しさん
2022/09/05(月) 03:36:29.05ID:pmwagyd7 >>268
どの言語からどの言語の場合でも既存システムをそのまま言語置き換えはコストだけかかり効率がよろしくない
そのためシステム改修や新規システムを中心にRust採用となっているようだ
現在ある選択肢では人間が引き起こしうるミスをコンパイラに防止させてセキュリティ含む穴を無くしていく言語候補がRustの他にない
どの言語からどの言語の場合でも既存システムをそのまま言語置き換えはコストだけかかり効率がよろしくない
そのためシステム改修や新規システムを中心にRust採用となっているようだ
現在ある選択肢では人間が引き起こしうるミスをコンパイラに防止させてセキュリティ含む穴を無くしていく言語候補がRustの他にない
271デフォルトの名無しさん
2022/09/05(月) 06:42:39.68ID:ARttffD1 簡単に言えば、Pythonの代わりにRustを使うことはあっても、C/C++の代わりになることはない。
レジスタやメモリーを扱うのは大変危険だから。
レジスタやメモリーを扱うのは大変危険だから。
272デフォルトの名無しさん
2022/09/05(月) 07:16:47.41ID:yWe543y4273デフォルトの名無しさん
2022/09/05(月) 07:22:08.46ID:ARttffD1 >>272
じゃあ安全じゃないじゃん。
じゃあ安全じゃないじゃん。
274デフォルトの名無しさん
2022/09/05(月) 07:51:21.51ID:928S9Xdp 以前の言語
・プログラムのメモリ安全性、null安全性、データ競合安全性をプログラマーの責任で保証する
Rust
・それらの安全性を全てコンパイラが保証
・プログラマーの責任でCと同じメモリ操作やインラインasmなどを記述できるunsafeブロックもサポート
Swift, Kotlinなど
・null安全性をコンパイラが保証
・プログラムのメモリ安全性、null安全性、データ競合安全性をプログラマーの責任で保証する
Rust
・それらの安全性を全てコンパイラが保証
・プログラマーの責任でCと同じメモリ操作やインラインasmなどを記述できるunsafeブロックもサポート
Swift, Kotlinなど
・null安全性をコンパイラが保証
275デフォルトの名無しさん
2022/09/05(月) 08:33:46.56ID:HWNfM8e/ >>268
Rustを使うにはガッツリ勉強しないと無理だから……THE BOOK一通り勉強しないと無理だから……
Rustを使うにはガッツリ勉強しないと無理だから……THE BOOK一通り勉強しないと無理だから……
276デフォルトの名無しさん
2022/09/05(月) 09:45:50.25ID:KpRHtzI/ >>92
上に書いたように、当然gccでやったら同じコンパイル結果にならず全く違いますね?これを同じとは言えません
rustcの結果(-C opt-level=2)が138行あるが、x86-64 gcc 12.2(-O2)は16行です。
https://godbolt.org/z/v6TxTGGbT
max_value:
test rdi, rdi
je .L4
lea rcx, [rsi+rdi*4]
xor eax, eax
.L3:
mov edx, DWORD PTR [rsi]
cmp eax, edx
cmovb eax, edx
add rsi, 4
cmp rsi, rcx
jne .L3
ret
.L4:
xor eax, eax
ret
速度の比較はやはりrust(というかllvm)のほうが、ほんのちょっぴりから2倍以内ほど遅い結果になると思います。
今はC言語といえばclangなのかもしれませんが作られているソフトウェアはまだgccのほうが圧倒的に多いです。
gccを-O3にするとrustcと同じくSIMD拡張命令が使われますが、それでも84行と138行なので違います
それほど真剣に見ていませんが、C側はlenが引数として取るのに対して、もう一方はlen()を呼び出していますが
c/clangでほぼ同じになるのはなんでなんでしょうか?
上に書いたように、当然gccでやったら同じコンパイル結果にならず全く違いますね?これを同じとは言えません
rustcの結果(-C opt-level=2)が138行あるが、x86-64 gcc 12.2(-O2)は16行です。
https://godbolt.org/z/v6TxTGGbT
max_value:
test rdi, rdi
je .L4
lea rcx, [rsi+rdi*4]
xor eax, eax
.L3:
mov edx, DWORD PTR [rsi]
cmp eax, edx
cmovb eax, edx
add rsi, 4
cmp rsi, rcx
jne .L3
ret
.L4:
xor eax, eax
ret
速度の比較はやはりrust(というかllvm)のほうが、ほんのちょっぴりから2倍以内ほど遅い結果になると思います。
今はC言語といえばclangなのかもしれませんが作られているソフトウェアはまだgccのほうが圧倒的に多いです。
gccを-O3にするとrustcと同じくSIMD拡張命令が使われますが、それでも84行と138行なので違います
それほど真剣に見ていませんが、C側はlenが引数として取るのに対して、もう一方はlen()を呼び出していますが
c/clangでほぼ同じになるのはなんでなんでしょうか?
277デフォルトの名無しさん
2022/09/05(月) 09:57:13.85ID:DUaqFrRV278デフォルトの名無しさん
2022/09/05(月) 10:24:45.85ID:vkD3rEEb >>276
Cでは引数にlenを取り、Rustではlen()を使っていて、両者は全く異なるのに、なぜ、ほぼ同じ生成コードになるのかが分からないって!?
もう少しRustを勉強してからアンチ活動しましょ
Cは先頭ポインタと長さの二つの引数を別々に渡しているのに対して、
Rustはスライス1つのみ引数を渡しているけど、「スライス=ポインタと長さのセット」だから同じ情報を渡しています
そしてlen()はその長さ部分を示すだけだからCコード側のlenと同じ
そしてスライスとしてセットとなっているlen()だからこそデタラメな不正な値が来ることはなく、
コンパイラの管轄下で信頼できる正しい長さ数値情報として扱うことができて、
その長さ未満となるループ内でインデックス境界チェックも安全に省略できるのよ
そのためLLVMによりCのプログラムと同等の生成コードが出来上がります
Cでは引数にlenを取り、Rustではlen()を使っていて、両者は全く異なるのに、なぜ、ほぼ同じ生成コードになるのかが分からないって!?
もう少しRustを勉強してからアンチ活動しましょ
Cは先頭ポインタと長さの二つの引数を別々に渡しているのに対して、
Rustはスライス1つのみ引数を渡しているけど、「スライス=ポインタと長さのセット」だから同じ情報を渡しています
そしてlen()はその長さ部分を示すだけだからCコード側のlenと同じ
そしてスライスとしてセットとなっているlen()だからこそデタラメな不正な値が来ることはなく、
コンパイラの管轄下で信頼できる正しい長さ数値情報として扱うことができて、
その長さ未満となるループ内でインデックス境界チェックも安全に省略できるのよ
そのためLLVMによりCのプログラムと同等の生成コードが出来上がります
279デフォルトの名無しさん
2022/09/05(月) 12:00:09.73ID:g3RfqaIY >>276
rustにもgccバックエンドあるからそれで試してみてくれ
rustにもgccバックエンドあるからそれで試してみてくれ
280デフォルトの名無しさん
2022/09/05(月) 13:38:45.87ID:hgtSwHCO >>276
素晴らしいです。ブラウザで見るに留まらず実際に動かしたのですね。277 278は気にする必要なし
gccの中の人も訪れる場でおこがましいですが解説してみます
gccとclang/LLVMで同じ最適化オプションO2同士でも適用されるテクニックが異なるのです。
手っ取り早く最上級で比べる場合は gcc -O4 vs clang -O3 で比べたりします。
>>73の人も書いてますがclangはgccに比べてやたらとunrollしたがります。
clangが出始めの頃に持ち上げられた事がありましたが、新入りは背伸びをしたがるものです
大きなデータセットで見栄えのする、gccに引けを取らないベンチマーク結果が欲しかったのか
そういう状況にフォーカスした味付けがしてあったのかなと邪推したくなります
今回のケースで言うと
277 278はasmを表面的に見ただけの人で
データセットサイズに寄りけりだという常識(最速を目指すものには)がすっぽり抜けてます
gcc -O2 vs gcc -O3 vs clang -O2 (vs Rust)
ttps://godbolt.org/z/6E4Ksx34Y
gcc -O2 unroll なし blanchless move(cmovb)だけ
gcc -O3 unroll x 4 ( 4 byte/roll * 4roll/loop = 16 byte/loop = 128bit SSE LOAD x 1 / loop)
clang -O2 unroll x16 ( 4 byte/roll *16roll/loop = 64 byte/loop = 128bit SSE LOAD x 4 / loop)
lenが小さい時はせっかく用意したunroll loopに入れられず
unroll x 4 --> len <= 3 else の振り分け1回
unroll x 16 --> len <= 15 else len <= 7 else len <= 3 かどうかの振り分け3回
とunrollが大きいほど手間がかかり、CPUの分岐予測と投機実行の性能に寄りけりですが、
Benchmarkで数を回せば観測される確かな差が生まれます。
素晴らしいです。ブラウザで見るに留まらず実際に動かしたのですね。277 278は気にする必要なし
gccの中の人も訪れる場でおこがましいですが解説してみます
gccとclang/LLVMで同じ最適化オプションO2同士でも適用されるテクニックが異なるのです。
手っ取り早く最上級で比べる場合は gcc -O4 vs clang -O3 で比べたりします。
>>73の人も書いてますがclangはgccに比べてやたらとunrollしたがります。
clangが出始めの頃に持ち上げられた事がありましたが、新入りは背伸びをしたがるものです
大きなデータセットで見栄えのする、gccに引けを取らないベンチマーク結果が欲しかったのか
そういう状況にフォーカスした味付けがしてあったのかなと邪推したくなります
今回のケースで言うと
277 278はasmを表面的に見ただけの人で
データセットサイズに寄りけりだという常識(最速を目指すものには)がすっぽり抜けてます
gcc -O2 vs gcc -O3 vs clang -O2 (vs Rust)
ttps://godbolt.org/z/6E4Ksx34Y
gcc -O2 unroll なし blanchless move(cmovb)だけ
gcc -O3 unroll x 4 ( 4 byte/roll * 4roll/loop = 16 byte/loop = 128bit SSE LOAD x 1 / loop)
clang -O2 unroll x16 ( 4 byte/roll *16roll/loop = 64 byte/loop = 128bit SSE LOAD x 4 / loop)
lenが小さい時はせっかく用意したunroll loopに入れられず
unroll x 4 --> len <= 3 else の振り分け1回
unroll x 16 --> len <= 15 else len <= 7 else len <= 3 かどうかの振り分け3回
とunrollが大きいほど手間がかかり、CPUの分岐予測と投機実行の性能に寄りけりですが、
Benchmarkで数を回せば観測される確かな差が生まれます。
281デフォルトの名無しさん
2022/09/05(月) 13:42:00.23ID:KOsqPsuw len>=16の場合はどうか
L1/L2/L3に収まっているかどうか
それぞれのcache階層間のデータ転送granularity
Hardware prefetchの効き具合 on the fly loadの上限数
surrounding code間とのcache pollution
いろんな要因がありすぎて 結局やって比べるのが手っ取り早いです
gccはcache pollutionへの対策かどうか確認したことはありませんが
unrollは控えめな印象は確かです(オプションで調整できます)
この辺のトレードオフを評価するコストモデルはCPU vendorがPRを出したりしますが
タイムリーかどうかはその時々です
個人的な印象ですが-march=znver2と-march=znver3が長いこと同一だった気がしてます...
お使いのCPU次第ですが AVX(128bit -mavx) AVX2(256bit -mavx2)で試したら
更なる発見があると思います
compiler exploreで -mavx2のasmを見てみるだけでも面白いですよ
Apple Siliconの方は判りません。どなたか解説お願いします
L1/L2/L3に収まっているかどうか
それぞれのcache階層間のデータ転送granularity
Hardware prefetchの効き具合 on the fly loadの上限数
surrounding code間とのcache pollution
いろんな要因がありすぎて 結局やって比べるのが手っ取り早いです
gccはcache pollutionへの対策かどうか確認したことはありませんが
unrollは控えめな印象は確かです(オプションで調整できます)
この辺のトレードオフを評価するコストモデルはCPU vendorがPRを出したりしますが
タイムリーかどうかはその時々です
個人的な印象ですが-march=znver2と-march=znver3が長いこと同一だった気がしてます...
お使いのCPU次第ですが AVX(128bit -mavx) AVX2(256bit -mavx2)で試したら
更なる発見があると思います
compiler exploreで -mavx2のasmを見てみるだけでも面白いですよ
Apple Siliconの方は判りません。どなたか解説お願いします
282デフォルトの名無しさん
2022/09/05(月) 14:12:00.36ID:++1d7Ak5283デフォルトの名無しさん
2022/09/05(月) 15:11:00.05ID:kIS7nj8M 連投するのに何でいちいちID変えてるの?
284デフォルトの名無しさん
2022/09/05(月) 15:42:20.01ID:ORvHoQkv 気軽にNGされると困る
285デフォルトの名無しさん
2022/09/05(月) 15:43:39.27ID:4jBB7bRF まるでRustがキチガイ用言語に見えてきた
286デフォルトの名無しさん
2022/09/05(月) 16:07:08.66ID:ZY4XQhp4 ヒント:複オジはワッチョイスレに一回も来たことがない
287デフォルトの名無しさん
2022/09/05(月) 16:32:50.42ID:NIbO6JQn 複オジも昔はコテハン使ってイキってたんだが
恥ずかしいレスを叩かれて匿名複オジに
今でもそのコテハンで書き込んだりもしてる
迷惑だよな
恥ずかしいレスを叩かれて匿名複オジに
今でもそのコテハンで書き込んだりもしてる
迷惑だよな
288デフォルトの名無しさん
2022/09/05(月) 18:31:27.51ID:i8gFMMFV やっぱりワッチョイにしようぜ。
289デフォルトの名無しさん
2022/09/05(月) 19:04:14.83ID:iWQD5HeB Haskellの時もそうだったけど、世界でアカン空気が流れ始めると、日本で流行らせようと宣伝し始めるのは何でだろな?
290デフォルトの名無しさん
2022/09/05(月) 19:05:51.22ID:JwYYQerB 日本のIT技術を遅らせたい勢力が存在するのかも
291デフォルトの名無しさん
2022/09/05(月) 19:06:21.16ID:iWQD5HeB RoRの時みたいに、世界で流行るときは、日本ではアカン言うてアンチが増えるんだよね。
292デフォルトの名無しさん
2022/09/05(月) 19:08:02.01ID:XsUbtHe1 >>290
この件と関係あるかは知らんけどその勢力がいることだけは確か
この件と関係あるかは知らんけどその勢力がいることだけは確か
293デフォルトの名無しさん
2022/09/05(月) 19:11:19.28ID:iWQD5HeB このスレで紹介されるRustの良いところって、「定数の索引で配列アクセスする場合は、最適化されて境界チェックが消える、安心安全」だけでしょ?
定数の索引で配列アクセスなんて、一生に一度書くか書かないかくらいなんだから、そんな機能在っても嬉しくないわ。
定数の索引で配列アクセスなんて、一生に一度書くか書かないかくらいなんだから、そんな機能在っても嬉しくないわ。
294デフォルトの名無しさん
2022/09/05(月) 19:12:38.64ID:iWQD5HeB その点Javaは、実行時最適化でRustの5倍速い。
知らんけど。
知らんけど。
295デフォルトの名無しさん
2022/09/05(月) 19:23:11.04ID:g3RfqaIY >>289
Rustだめな理由知りたいからあかんとされてるブログ記事なりニュースなりフォーラムなり教えて
Rustだめな理由知りたいからあかんとされてるブログ記事なりニュースなりフォーラムなり教えて
296デフォルトの名無しさん
2022/09/05(月) 19:28:42.10ID:iWQD5HeB297デフォルトの名無しさん
2022/09/05(月) 19:51:44.37ID:wWfHpXgm298デフォルトの名無しさん
2022/09/05(月) 19:55:18.42ID:x/Xug50w 非同期関連がごちゃごちゃしてて面倒くさいってのはあるよな
ゼロランタイムコストが売りだから仕方がないんだろうが
その点Goはランタイムに強力な並行並列処理が組み込まれてるから、基本的な文法から標準ライブラリ、サードパーティライブラリで全て共通のgoroutine、channel、selectを使えて非常に扱いやすい
DockerやKubernetesとかクラウド関連で流行ってるのはこの並行並列処理が言語、ランタイムレベルでサポートされてるのが最大の要因だな
Nodeも非同期処理を言語レベルでサポートしてるからこれだけWeb系で流行ってる
その点Rustは弱い
ライブラリによってAはサポートしてるけどBはしてないとかあって色々面倒くさい
ゼロランタイムコストが売りだから仕方がないんだろうが
その点Goはランタイムに強力な並行並列処理が組み込まれてるから、基本的な文法から標準ライブラリ、サードパーティライブラリで全て共通のgoroutine、channel、selectを使えて非常に扱いやすい
DockerやKubernetesとかクラウド関連で流行ってるのはこの並行並列処理が言語、ランタイムレベルでサポートされてるのが最大の要因だな
Nodeも非同期処理を言語レベルでサポートしてるからこれだけWeb系で流行ってる
その点Rustは弱い
ライブラリによってAはサポートしてるけどBはしてないとかあって色々面倒くさい
299デフォルトの名無しさん
2022/09/05(月) 20:01:50.03ID:iWQD5HeB 基本的にRustは知られていないんだよね。
日本以外では。
とっくにオワコンだから。
日本以外では。
とっくにオワコンだから。
300デフォルトの名無しさん
2022/09/05(月) 20:04:19.99ID:g3RfqaIY301デフォルトの名無しさん
2022/09/05(月) 20:10:04.95ID:iWQD5HeB Rustなんか構ってる暇あったら、PHPやれよって話。
302デフォルトの名無しさん
2022/09/05(月) 20:13:42.10ID:9iTWKe04303デフォルトの名無しさん
2022/09/05(月) 20:20:47.93ID:kVCZ1c6R304デフォルトの名無しさん
2022/09/05(月) 20:25:02.75ID:5VtMLQd9 >>300
最後まで読むと結局仕事では使ってるみたいだし
どちらかというと不満がある人でも使うくらいには広まってきている、というべきな気はする
オワコンっていうには他言語に移行したみたいな事例が必要なのでは
最後まで読むと結局仕事では使ってるみたいだし
どちらかというと不満がある人でも使うくらいには広まってきている、というべきな気はする
オワコンっていうには他言語に移行したみたいな事例が必要なのでは
305デフォルトの名無しさん
2022/09/05(月) 20:36:11.44ID:e+uJj/tK306デフォルトの名無しさん
2022/09/05(月) 20:50:10.83ID:Xf3ARiO4 >>296
読んだけど少し偏った思想の人なだけだった
「いずれRustでガベージコレクターが人気になると予想する」とか今後も極一部の用途以外では使われないだろう
「XXXをRustで書き換えたら速くなったというのはRustのせいじゃない」は安全かつ速くなった利点を理解していない
「良いメンテされたコードを書いてるメンテナーは非同期を採用することに抵抗がある」は用途に応じて使い分ける人が正常なので抵抗なんてない
Rustを批判する人はちょっとおかしな人が多いと感じる
読んだけど少し偏った思想の人なだけだった
「いずれRustでガベージコレクターが人気になると予想する」とか今後も極一部の用途以外では使われないだろう
「XXXをRustで書き換えたら速くなったというのはRustのせいじゃない」は安全かつ速くなった利点を理解していない
「良いメンテされたコードを書いてるメンテナーは非同期を採用することに抵抗がある」は用途に応じて使い分ける人が正常なので抵抗なんてない
Rustを批判する人はちょっとおかしな人が多いと感じる
307デフォルトの名無しさん
2022/09/05(月) 21:07:54.27ID:bQN+7pEG >>293
さすがにそのツッコミはRustゴリ押しの自作自演級に低レベルだぞ
さすがにそのツッコミはRustゴリ押しの自作自演級に低レベルだぞ
308デフォルトの名無しさん
2022/09/05(月) 21:25:09.81ID:qPl0Yk8b Haskellてあかんやつだったの?
309デフォルトの名無しさん
2022/09/05(月) 21:39:30.67ID:wI2HBmBd >>305
Haskellはガベージを撒き散らしながら計算を進めるからRustとはその点で真逆な存在かな
強いて言えばHaskellの型クラスとRustのtraitが基本思想の一部で似てる程度
そのRustとHaskellを叩いてる人はどうせ何も理解していないでしょう
Haskellはガベージを撒き散らしながら計算を進めるからRustとはその点で真逆な存在かな
強いて言えばHaskellの型クラスとRustのtraitが基本思想の一部で似てる程度
そのRustとHaskellを叩いてる人はどうせ何も理解していないでしょう
310デフォルトの名無しさん
2022/09/05(月) 21:58:07.88ID:59/nx/yB 例えばRustでhttpクライアント使いたかったからhyperやらreqwestやらsurfやらサードパーティのライブラリを使うことになると思う
別にこれでもいいが他人のコードを読む上で共通のコードが出てくるってのはかなりアドバンテージがある
それに対してGoが標準ライブラリで用意されてるから通常サードパーティのライブラリは使わない
コネクションプーリングも勝手にやってくれる上にhttp2対応も完璧
テストもhttptestパッケージで簡単に作れる
サーバー作る時も標準ライブラリを学んでおけばサードパーティライブラリの習得は容易
RDB扱う時もGoは標準ライブラリレベルでインターフェースを共通化したりコネクションプーリングをサポートしてる
ということで標準ライブラリが強力ってのは実用的なソフトを複数人で作っていく上で非常に重要
別にこれでもいいが他人のコードを読む上で共通のコードが出てくるってのはかなりアドバンテージがある
それに対してGoが標準ライブラリで用意されてるから通常サードパーティのライブラリは使わない
コネクションプーリングも勝手にやってくれる上にhttp2対応も完璧
テストもhttptestパッケージで簡単に作れる
サーバー作る時も標準ライブラリを学んでおけばサードパーティライブラリの習得は容易
RDB扱う時もGoは標準ライブラリレベルでインターフェースを共通化したりコネクションプーリングをサポートしてる
ということで標準ライブラリが強力ってのは実用的なソフトを複数人で作っていく上で非常に重要
311デフォルトの名無しさん
2022/09/05(月) 22:16:25.49ID:LJb2ynoL >>310
hyperとreqwest/surfはレイヤーが異なり比較する対象でないからそこで例として持ち出すのは適切ではないね
あと標準ライブラリの範囲や意味するところは言語によって異なるのだからあまり意味のない議論だと思う
その思想だとあらゆるものが標準ライブラリにあり他のライブラリを一切使わない言語が最上となってしまう
それぞれにメリットとデメリットがあります
hyperとreqwest/surfはレイヤーが異なり比較する対象でないからそこで例として持ち出すのは適切ではないね
あと標準ライブラリの範囲や意味するところは言語によって異なるのだからあまり意味のない議論だと思う
その思想だとあらゆるものが標準ライブラリにあり他のライブラリを一切使わない言語が最上となってしまう
それぞれにメリットとデメリットがあります
312デフォルトの名無しさん
2022/09/05(月) 22:16:42.44ID:e+uJj/tK 実用品かどうかの定義が難しいけど
ほぼ原価で買える物は実用品と認定されやすい
原価より高い物は実用的ではない無駄な要素が入っている疑惑や誤解を招きやすい
ほぼ原価で買える物は実用品と認定されやすい
原価より高い物は実用的ではない無駄な要素が入っている疑惑や誤解を招きやすい
313デフォルトの名無しさん
2022/09/05(月) 22:20:06.23ID:5dvrlWbj しかしRustへの注目度たかいなw
もう実質 Rust vs その他次世代言語って感じw
もう実質 Rust vs その他次世代言語って感じw
314デフォルトの名無しさん
2022/09/05(月) 22:33:58.90ID:g3RfqaIY Rustがオワコン言うからGitHubのPullReqに占める言語毎の割合のデータ見てみたけどTypeScriptとGoが圧倒的ということが分かった
Nimは残念ながらランク外、他はだいたい横ばいみたい
https://madnight.github.io/githut/#/pull_requests/2022/1/TypeScript,Swift,Go,Kotlin,Rust,Nim
GitHub全体のPullReq数も増加していると思われるので、個々の言語の利用者の増減を見るには不向きなデータかも
割合じゃなくて言語毎のPullReq数が分かるサイトがあったら教えて欲しい
Nimは残念ながらランク外、他はだいたい横ばいみたい
https://madnight.github.io/githut/#/pull_requests/2022/1/TypeScript,Swift,Go,Kotlin,Rust,Nim
GitHub全体のPullReq数も増加していると思われるので、個々の言語の利用者の増減を見るには不向きなデータかも
割合じゃなくて言語毎のPullReq数が分かるサイトがあったら教えて欲しい
315デフォルトの名無しさん
2022/09/05(月) 22:39:25.77ID:LWnBOcCn 利用される分野が違う言語を比較して、なんの参考にしたいんだろう
分野は気にならんの?
分野は気にならんの?
316デフォルトの名無しさん
2022/09/05(月) 22:43:52.15ID:098gBdTn >>313
Rust以外は言語機能で本質的な改善になってないからね
Rust以外は言語機能で本質的な改善になってないからね
317デフォルトの名無しさん
2022/09/05(月) 22:45:04.42ID:4OHy49Sd318デフォルトの名無しさん
2022/09/05(月) 22:49:48.10ID:TWq6epN6 GoとTypescript書ければ仕事には困らないな、うん
Rustは仕事の需要はないけど趣味やOSS活動でやる分にはいいかもしれない
Rustは仕事の需要はないけど趣味やOSS活動でやる分にはいいかもしれない
319デフォルトの名無しさん
2022/09/05(月) 23:05:10.53ID:g3RfqaIY >>315
それを言うとそもそもこのスレのスレタイがどうなのよという話になる
それを言うとそもそもこのスレのスレタイがどうなのよという話になる
320デフォルトの名無しさん
2022/09/05(月) 23:11:05.60ID:LWnBOcCn このスレは言語機能そのものについて語るスレだと思ってた
人気について話したいひともたくさんいるんだろうけど
人気について話したいひともたくさんいるんだろうけど
321デフォルトの名無しさん
2022/09/05(月) 23:26:38.48ID:1hFtemgL322デフォルトの名無しさん
2022/09/05(月) 23:26:43.28ID:iWQD5HeB Rustはオワコンだから使たらアカンやで。
323デフォルトの名無しさん
2022/09/05(月) 23:27:36.08ID:9iTWKe04 >>311
全てを最初から用意するのは不可能だけど、標準ライブラリで事足りるってのは利用側としてはメリットでかいぞ。
もちろんrustがあえてコア重視してるのはわかるが、お陰で非同期とか今時普通なものも乱立してる。
全てを最初から用意するのは不可能だけど、標準ライブラリで事足りるってのは利用側としてはメリットでかいぞ。
もちろんrustがあえてコア重視してるのはわかるが、お陰で非同期とか今時普通なものも乱立してる。
324デフォルトの名無しさん
2022/09/05(月) 23:31:48.82ID:iWQD5HeB Rsutと云う泥船に乗せて一緒に沈没させようとしている奴らが居る。
どこの教団や!?
どこの教団や!?
325デフォルトの名無しさん
2022/09/05(月) 23:33:58.91ID:9iTWKe04 >>324
はいはい、おじいちゃんもう寝る時間よ。
はいはい、おじいちゃんもう寝る時間よ。
326デフォルトの名無しさん
2022/09/05(月) 23:36:58.16ID:iWQD5HeB Redditの今年最悪の言語に早くもリーチかけてるからな。
327デフォルトの名無しさん
2022/09/05(月) 23:57:58.08ID:g3RfqaIY >>326
どこで集計してるの?
どこで集計してるの?
328デフォルトの名無しさん
2022/09/06(火) 00:00:31.26ID:bpHcrLU1 >>318
俺は趣味ならnimにちょっと興味ありな感じ。まだ全く手は出せてないけど。
俺は趣味ならnimにちょっと興味ありな感じ。まだ全く手は出せてないけど。
329デフォルトの名無しさん
2022/09/06(火) 08:19:45.27ID:AHhd6ypa >>321
コンパイラの内部構造とかは勉強になるな。メモリ管理は種類多すぎな気もするが。
コンパイラの内部構造とかは勉強になるな。メモリ管理は種類多すぎな気もするが。
330デフォルトの名無しさん
2022/09/06(火) 09:44:45.25ID:9WMtC8UL >>322
Rubyのことなら同意
Rubyのことなら同意
331デフォルトの名無しさん
2022/09/06(火) 09:47:23.91ID:eR9fijNj Rust使えない癖に持ち上げまくってるキチガイとRustとRubyの区別のつかないやつが論争する地獄のようなスレ
332デフォルトの名無しさん
2022/09/06(火) 10:25:40.40ID:VRQQIzRo RustとRubyはほぼ同じや
333デフォルトの名無しさん
2022/09/06(火) 10:30:10.58ID:eR9fijNj CのライブラリとJavaのライブラリと.NETが使えてWebAssemblyも記述できる言語ができれば最強
と思ったけどそれってC#やF#じゃん
と思ったけどそれってC#やF#じゃん
334デフォルトの名無しさん
2022/09/06(火) 10:33:00.76ID:eR9fijNj335デフォルトの名無しさん
2022/09/06(火) 10:50:43.10ID:c9hFcGPw336デフォルトの名無しさん
2022/09/06(火) 10:54:20.03ID:eR9fijNj337デフォルトの名無しさん
2022/09/06(火) 10:55:43.20ID:eR9fijNj 要するにそのグラフの差は五十歩百歩でしかなくそれ以上の速度が必要ならスーパーコンピュータを視野に入れることになる
338デフォルトの名無しさん
2022/09/06(火) 11:22:14.85ID:7s2bxSL8 スーパーコンピュータなら速く動くとかいうことは全くないけどな
なんならオーバークロックしたゲーミングPCとかのほうが速い
スパコンはPCではそもそも実行不可能なレベルの超大規模な問題を解くためのもので
普通のプログラムが魔法のように速く動くという代物ではない
なんならオーバークロックしたゲーミングPCとかのほうが速い
スパコンはPCではそもそも実行不可能なレベルの超大規模な問題を解くためのもので
普通のプログラムが魔法のように速く動くという代物ではない
339デフォルトの名無しさん
2022/09/06(火) 11:23:08.83ID:VRQQIzRo 教プロで13乗も扱わねえよ
多くても7,8ぐらい
多くても7,8ぐらい
340デフォルトの名無しさん
2022/09/06(火) 11:38:16.60ID:hbXRPtoA >>331
そもそも地獄レベルの問題を処理する競技が流行ってるので
そもそも地獄レベルの問題を処理する競技が流行ってるので
341デフォルトの名無しさん
2022/09/06(火) 12:01:26.94ID:6ZyYoNhQ342デフォルトの名無しさん
2022/09/06(火) 12:04:20.22ID:6ZyYoNhQ >>338
競プロの問題は並列化で速く解けることも多いからスパコンの得意とするところだぞ
競プロの問題は並列化で速く解けることも多いからスパコンの得意とするところだぞ
343デフォルトの名無しさん
2022/09/06(火) 12:31:10.58ID:QxRWO4Sk Ruby は遅いから、1秒で100万回ループ。
これがJIT で、1千万回になる
でも、Rails などでは、10万個をJITしても、そんなに速くならない。
I/O 中心の処理では効果がない
外部にアクセスせずに、延々と行列演算を繰り返すような、
CPU セントリックな処理では効果があるのかも
これがJIT で、1千万回になる
でも、Rails などでは、10万個をJITしても、そんなに速くならない。
I/O 中心の処理では効果がない
外部にアクセスせずに、延々と行列演算を繰り返すような、
CPU セントリックな処理では効果があるのかも
344デフォルトの名無しさん
2022/09/06(火) 12:45:16.87ID:9WMtC8UL Nimは始まる前に終わりそう
がんがれ
がんがれ
345デフォルトの名無しさん
2022/09/06(火) 14:09:11.24ID:0lLJmQPI >>342
実際のスパコン触ってみれば分かるんだけど、競プロの問題って小さすぎて並列性がなさすぎるんよ
1秒以内で終わっちゃうようだとMPIのコストどころかGPUにオフロードするコストすら回収できるか怪しい
実際のスパコン触ってみれば分かるんだけど、競プロの問題って小さすぎて並列性がなさすぎるんよ
1秒以内で終わっちゃうようだとMPIのコストどころかGPUにオフロードするコストすら回収できるか怪しい
346デフォルトの名無しさん
2022/09/06(火) 14:13:42.45ID:zHtqeu+H347デフォルトの名無しさん
2022/09/06(火) 14:47:11.13ID:Uhu0FGeL Amazonが>>9の記事で書いているように
C/C++/Rustで書けば2〜10倍は速くなり
それは電気代やCo2排出も同様になる
さらに省メモリになる点も考慮すると
サーバーやクラウド利用コストは確実に数倍差
言語の選択を変えるだけで支出も激減
C/C++/Rustで書けば2〜10倍は速くなり
それは電気代やCo2排出も同様になる
さらに省メモリになる点も考慮すると
サーバーやクラウド利用コストは確実に数倍差
言語の選択を変えるだけで支出も激減
348デフォルトの名無しさん
2022/09/06(火) 14:57:13.57ID:zHtqeu+H ハードウェアアクセスの速度が変わらんのにベンチマークだけで胡散臭いこと言うなよ
349デフォルトの名無しさん
2022/09/06(火) 15:08:57.93ID:gWeaoLnz >>346
並列性がないというか、並列化しても元々の実行時間が短いからオーバーヘッドが大きすぎて割に合わないという話では
スパコンのジョブって短くても実行時間数十分だったりするから競プロとは前提が違う
並列性がないというか、並列化しても元々の実行時間が短いからオーバーヘッドが大きすぎて割に合わないという話では
スパコンのジョブって短くても実行時間数十分だったりするから競プロとは前提が違う
350デフォルトの名無しさん
2022/09/06(火) 15:28:54.40ID:VRQQIzRo 元々の問題設計がN^2で失格 NやNlogNオーダーで通るようなってるとしたら
N^2で並列化出来てもTLEだわ
N^2で並列化出来てもTLEだわ
351デフォルトの名無しさん
2022/09/06(火) 15:49:30.99ID:hbXRPtoA 誰でも思いつくのはGCの並列化だが
GCは何言語で書かれているのかを誰も知らない
GCは何言語で書かれているのかを誰も知らない
352デフォルトの名無しさん
2022/09/06(火) 17:20:08.41ID:ri7pjbsX コンパイル型の実行速度でスクリプトでも実行でき、コンパイルもできる言語が欲しい。反対を言えばbashのように
1行ずつ実行し、実行中で書き換えられることまでは必要ない。
単純なスカラーのループを書いたら、一台のCPUのレジスターだけをブン回す機械語のコードが生成されて欲しい。
A*Bと書くだけで千の計算を搭載されているメジャーなGPUで勝手に計算したり、あるいは千のマシンに分散して
実行して巨大な行列の積をポンと計算してもらいたい。
型だって必要ないなら指定したくない。もしポリモーフィックな関数が必要な時には、ジェネリックプログラミングを
使ってアルゴリズムを一度だけ書いて、あとは全ての型に使いたい。
ガーベージコレクション、あるいはメモリーマネージメントは循環参照や多重参照がなければRustのようにスコープを
抜けたら基本は消えるだけで十分でもあるが、循環参照をもったら自動でサイクリックGCも欲しい
並列化、あるいは非同期化に余計なコストを払いたくない、async/awaitなんてもってのほか論外、世紀の間違い。
ErlangやGoのようにspawnやGoで軽量プロセス起動は仕方ないにしても、これは必須ではなく、デコレーションで
あって並列ではなくとも動ける控えめなヒント情報であってほしい
ドライバ、あるいはOSやカーネルなどのハードウェアよりな開発にも利用できてほしいけど、例外あるいはpanicも欲しい
1行ずつ実行し、実行中で書き換えられることまでは必要ない。
単純なスカラーのループを書いたら、一台のCPUのレジスターだけをブン回す機械語のコードが生成されて欲しい。
A*Bと書くだけで千の計算を搭載されているメジャーなGPUで勝手に計算したり、あるいは千のマシンに分散して
実行して巨大な行列の積をポンと計算してもらいたい。
型だって必要ないなら指定したくない。もしポリモーフィックな関数が必要な時には、ジェネリックプログラミングを
使ってアルゴリズムを一度だけ書いて、あとは全ての型に使いたい。
ガーベージコレクション、あるいはメモリーマネージメントは循環参照や多重参照がなければRustのようにスコープを
抜けたら基本は消えるだけで十分でもあるが、循環参照をもったら自動でサイクリックGCも欲しい
並列化、あるいは非同期化に余計なコストを払いたくない、async/awaitなんてもってのほか論外、世紀の間違い。
ErlangやGoのようにspawnやGoで軽量プロセス起動は仕方ないにしても、これは必須ではなく、デコレーションで
あって並列ではなくとも動ける控えめなヒント情報であってほしい
ドライバ、あるいはOSやカーネルなどのハードウェアよりな開発にも利用できてほしいけど、例外あるいはpanicも欲しい
353デフォルトの名無しさん
2022/09/06(火) 18:45:34.78ID:txnX2wDb Amazonの言うこと信じる人もいるんだ。
そりゃ霊感商法もなくならないわ。
そりゃ霊感商法もなくならないわ。
354デフォルトの名無しさん
2022/09/06(火) 18:50:05.82ID:iU1ybZ8L GCしないでプロセスごと捨てるのがスマートよ
355デフォルトの名無しさん
2022/09/06(火) 20:47:28.58ID:NO/n5LTM >>321
https://nim-lang-081.osdn.jp/docs/tut1.html
> # 前方宣言:
> proc even(n: int): bool
前方宣言てw
これ書かされる言語まだあるんだ
> プロシージャで呼び出し元の引数を変更する必要があるならば、 var パラメータを使います。
> proc divmod(a, b: int; res, remainder: var int) =
パスカルのVariable parameterっぽいなこれ
ちなパスカルだと
https://wiki.freepascal.org/Variable_parameter
> procedure xorSwap(var left, right: integer);
こっち側にvarを書く
https://nim-lang-081.osdn.jp/docs/tut1.html
> # 前方宣言:
> proc even(n: int): bool
前方宣言てw
これ書かされる言語まだあるんだ
> プロシージャで呼び出し元の引数を変更する必要があるならば、 var パラメータを使います。
> proc divmod(a, b: int; res, remainder: var int) =
パスカルのVariable parameterっぽいなこれ
ちなパスカルだと
https://wiki.freepascal.org/Variable_parameter
> procedure xorSwap(var left, right: integer);
こっち側にvarを書く
356デフォルトの名無しさん
2022/09/06(火) 21:02:15.19ID:+TeoQt4K357デフォルトの名無しさん
2022/09/06(火) 21:05:47.04ID:NO/n5LTM ん?
パラメータのいわゆる参照渡しの話なんだけどな
パラメータのいわゆる参照渡しの話なんだけどな
358デフォルトの名無しさん
2022/09/06(火) 21:17:25.60ID:MV3crhGe ponylangだとbehaviorが終わるごとに該当アクターでGCを回すからプログラムとしては停止しないんだけども、これを並列GCですって言うのもなんだかなといった風情
359デフォルトの名無しさん
2022/09/06(火) 21:21:35.81ID:3wQQbwTr360デフォルトの名無しさん
2022/09/06(火) 21:31:19.57ID:ItiT2cL1 MPIバリバリ使ってるけど競プロの問題を解くようなタスクでは使わないよ
課題設定があまりにも違い過ぎる
課題設定があまりにも違い過ぎる
361デフォルトの名無しさん
2022/09/06(火) 21:37:52.05ID:6CvxnJgX >>357
Rustはその2種類の区別もmutの位置で区別できてるね
①引数が値渡しで来て関数内で値を書き換える場合
例: fn func1(mut x: i32) { …
→値渡しなので呼び出し元には影響なし
➁引数が参照渡しで来て関数内で参照元を書き換える場合
例: fn func2(x: &mut i32) { …
→可変参照渡しなので呼び出し元の対象は書き換わりうる
Rustはその2種類の区別もmutの位置で区別できてるね
①引数が値渡しで来て関数内で値を書き換える場合
例: fn func1(mut x: i32) { …
→値渡しなので呼び出し元には影響なし
➁引数が参照渡しで来て関数内で参照元を書き換える場合
例: fn func2(x: &mut i32) { …
→可変参照渡しなので呼び出し元の対象は書き換わりうる
362デフォルトの名無しさん
2022/09/06(火) 22:22:04.19ID:jOWG7AxE あんた上手に振る舞えって言われてたやつだろ
Rustは出来るじゃねえよw 当たり前だ
お前が議論を理解出来てなかっただけだろ
そういうところが周りをイラつかせてるんだぜ
Rustは出来るじゃねえよw 当たり前だ
お前が議論を理解出来てなかっただけだろ
そういうところが周りをイラつかせてるんだぜ
363デフォルトの名無しさん
2022/09/06(火) 22:30:02.86ID:NO/n5LTM364デフォルトの名無しさん
2022/09/06(火) 22:34:57.09ID:2HxKYUoj Rustだと両方ができて当たり前だが
プログラミング言語の中には
値を渡すか参照を渡すかをプログラマーが選べない言語も意外と多い
全てがどちらかに決められていたり
型によって各々どちらかに決められたり
メジャーな言語でも制限があったりする
プログラミング言語の中には
値を渡すか参照を渡すかをプログラマーが選べない言語も意外と多い
全てがどちらかに決められていたり
型によって各々どちらかに決められたり
メジャーな言語でも制限があったりする
365デフォルトの名無しさん
2022/09/06(火) 22:40:49.84ID:V53xvAGb366デフォルトの名無しさん
2022/09/06(火) 22:43:24.65ID:ZgGRtw1t367デフォルトの名無しさん
2022/09/06(火) 22:44:16.65ID:NO/n5LTM パスカル書いてた人なら
「パスカルなついw 引数んとこにvarって書いてたなw」
で終わる話
皆の衆なんか混乱させてすまんかったな(´・ω・`)
「パスカルなついw 引数んとこにvarって書いてたなw」
で終わる話
皆の衆なんか混乱させてすまんかったな(´・ω・`)
368デフォルトの名無しさん
2022/09/06(火) 22:47:53.44ID:ZgGRtw1t 上手いね 見習いたまえ
369デフォルトの名無しさん
2022/09/06(火) 22:53:11.35ID:tijl2CjL 複オジに相手にしてもイライラするだけやぞ
もう少しスルー力の鍛えようや
もう少しスルー力の鍛えようや
370デフォルトの名無しさん
2022/09/06(火) 22:53:17.60ID:2HxKYUoj 可変参照を渡すか可変じゃない参照を渡すかの区別がない言語もある
区別がある言語でもさらに2種類に分かれて
呼び出される関数でその参照が可変かどうか区別するだけの言語と
呼び出し側でも渡す参照が可変かどうか区別できる言語に分かれる
それら3種類のうち最後のタイプの言語が最も安全にプログラミングできる
区別がある言語でもさらに2種類に分かれて
呼び出される関数でその参照が可変かどうか区別するだけの言語と
呼び出し側でも渡す参照が可変かどうか区別できる言語に分かれる
それら3種類のうち最後のタイプの言語が最も安全にプログラミングできる
371デフォルトの名無しさん
2022/09/06(火) 22:58:14.58ID:ZgGRtw1t 野放しは危険やで NGワードでtag付けする?
>>NNN複オジ
>>NNN複オジ
372デフォルトの名無しさん
2022/09/06(火) 23:04:31.77ID:V53xvAGb &Tを渡すか&mut Tを渡すかを渡す側で区別できない言語だと書き換えられちゃうのか分からない点で困るね
その場合でも呼び出す関数の引数宣言を見に行けばいいけど、そこにも可変かどうか宣言できない言語もあって絶望的なことも
その場合でも呼び出す関数の引数宣言を見に行けばいいけど、そこにも可変かどうか宣言できない言語もあって絶望的なことも
373デフォルトの名無しさん
2022/09/06(火) 23:10:15.88ID:ZgGRtw1t374デフォルトの名無しさん
2022/09/06(火) 23:12:00.01ID:p3/oNdmv その点もRustが一番考えられてる仕様のような
色んな言語の中で一番ちゃんときちんと区別してくれていてプログラミングする上で安心感もあるなあ
色んな言語の中で一番ちゃんときちんと区別してくれていてプログラミングする上で安心感もあるなあ
375デフォルトの名無しさん
2022/09/06(火) 23:18:07.56ID:ZgGRtw1t376デフォルトの名無しさん
2022/09/06(火) 23:23:59.02ID:MV3crhGe ponyなら書き込みどころか読み込みまで制限できるぜ
参照の持ち方だけで6つもあるのやばいだろと思ったが減らせる見込みもないぜ
参照の持ち方だけで6つもあるのやばいだろと思ったが減らせる見込みもないぜ
377デフォルトの名無しさん
2022/09/06(火) 23:27:00.72ID:ZgGRtw1t >>376いいねこのスレにふさわしい
378デフォルトの名無しさん
2022/09/06(火) 23:29:15.38ID:ItiT2cL1 Nim好きなんだけど何で売れんかね
pythonからの乗り換えに最適なんだが
pythonからの乗り換えに最適なんだが
379デフォルトの名無しさん
2022/09/06(火) 23:30:19.86ID:ZgGRtw1t よく考えたらこれも組織票野党が投票率下がった方が有利なように、スレ乗っ取りの下地作り?
>>369複?オジ?
>>369複?オジ?
380デフォルトの名無しさん
2022/09/06(火) 23:30:47.03ID:3jr2SH77 ponyとか真面目な話がしたいならワッチョイスレ行ったほうがいいよ
複おじをいじって遊びたいならここでいいけど
複おじをいじって遊びたいならここでいいけど
381デフォルトの名無しさん
2022/09/06(火) 23:34:47.24ID:V53xvAGb 昔は変数もmutableとimmutableの区別をしないのが多数派だった時代もあったそうだから
新しく作られた言語のほうが色々と新たな進化ができて有利なのかもね
新しく作られた言語のほうが色々と新たな進化ができて有利なのかもね
382デフォルトの名無しさん
2022/09/06(火) 23:36:47.66ID:ZgGRtw1t >>378いいね ちょっと動かせるデモサイトで乗り換え例のようなものはあるの?
383デフォルトの名無しさん
2022/09/06(火) 23:39:56.37ID:W/Xh3l1r384デフォルトの名無しさん
2022/09/06(火) 23:42:44.75ID:ZgGRtw1t >>380いや このスレが乗っ取られないことが重要 tag付けhelp me pls
385デフォルトの名無しさん
2022/09/06(火) 23:50:57.29ID:ZgGRtw1t386デフォルトの名無しさん
2022/09/06(火) 23:55:28.57ID:k32oXi62 Ponyで参照はsingle writer xor multiple readersが課されているためwriterがいる時は読み込みができない
つまりRustと同じ
つまりRustと同じ
387デフォルトの名無しさん
2022/09/07(水) 00:17:09.26ID:ordz3g2+388デフォルトの名無しさん
2022/09/07(水) 00:39:18.74ID:8j1OJp6D ほとんどの言語はオブジェクトとかヒープで確保したものとか参照のみサポートが多いよね
参照を作らせなかったらどうやってアクセスするのだろう
移動しかないか
参照を作らせなかったらどうやってアクセスするのだろう
移動しかないか
389デフォルトの名無しさん
2022/09/07(水) 01:29:02.34ID:zcaR9K+x390デフォルトの名無しさん
2022/09/07(水) 02:20:15.23ID:NRm/XQ9U Rustなら&selfメソッドを作らずにselfメソッドだけを用意すれば
その型は参照に対して全く働かずに移動に対してのみ使える型にすることはできるな
もちろんそのままだと移動で消費してしまい消えるのでそれを避けたい時Selfで再び自分を返すことになる
不便だが参照を全く使わずともその範囲で色々やれるようだ
その型は参照に対して全く働かずに移動に対してのみ使える型にすることはできるな
もちろんそのままだと移動で消費してしまい消えるのでそれを避けたい時Selfで再び自分を返すことになる
不便だが参照を全く使わずともその範囲で色々やれるようだ
391デフォルトの名無しさん
2022/09/07(水) 02:31:29.39ID:nvFpxuri 移動も聞いてないぞ
392デフォルトの名無しさん
2022/09/07(水) 03:01:09.81ID:NRm/XQ9U393デフォルトの名無しさん
2022/09/07(水) 03:02:32.55ID:ossJLtb4394デフォルトの名無しさん
2022/09/07(水) 03:08:26.53ID:FVgAnmdd ははぁーん
聞かれたことに答えない
息をはくように話をそらす
それた話を修正しない
そもそも何を聞かれたかわかっていない
これって?
もしかして国語で苦労した?
tag付けて欲しい?
聞かれたことに答えない
息をはくように話をそらす
それた話を修正しない
そもそも何を聞かれたかわかっていない
これって?
もしかして国語で苦労した?
tag付けて欲しい?
395デフォルトの名無しさん
2022/09/07(水) 03:19:36.97ID:2H+EvabS Ponyでもconsumeにより参照を使わず移動になるよ
396デフォルトの名無しさん
2022/09/07(水) 03:25:07.36ID:Lg2r352+ それた話を修正しない
Goスレで論破されて敗走してきたんだ
でここに居つくために育成ゲームだとホザキ始めた
Goスレで論破されて敗走してきたんだ
でここに居つくために育成ゲームだとホザキ始めた
397デフォルトの名無しさん
2022/09/07(水) 04:13:08.28ID:2H+EvabS なんのことやら
参照を全く使わないのは無理だけど
単独参照となり読み書き自由に専有できるのならあるよー
Ponyならiso
Rustなら&mut
参照を全く使わないのは無理だけど
単独参照となり読み書き自由に専有できるのならあるよー
Ponyならiso
Rustなら&mut
398デフォルトの名無しさん
2022/09/07(水) 04:15:54.48ID:GNmKbNsR そらした話は修正しない
そもそも何を聞かれたかわかっていないフリ
Flutterスレ盛り上げてこいよ
そもそも何を聞かれたかわかっていないフリ
Flutterスレ盛り上げてこいよ
399デフォルトの名無しさん
2022/09/07(水) 05:49:18.66ID:a/SEXojX 誰にも参照されてないのにGCされない現象を実現したいわけではなさそう
ということは「参照を作らせない」とはいえ参照は作れるんだよね
ということは「参照を作らせない」とはいえ参照は作れるんだよね
400デフォルトの名無しさん
2022/09/07(水) 05:54:23.55ID:OvNIIrS4 そらした話は修正しない
すり替えた土俵ではRustと〜は同等
そもそも何を聞かれたかなんて知らない。無意味 気持ち悪い
参照とかGCの事は実はよく知らない。育成してくれ
Flutterスレ盛り上げてこいよ
すり替えた土俵ではRustと〜は同等
そもそも何を聞かれたかなんて知らない。無意味 気持ち悪い
参照とかGCの事は実はよく知らない。育成してくれ
Flutterスレ盛り上げてこいよ
401デフォルトの名無しさん
2022/09/07(水) 06:26:49.06ID:t2gi/CWf402デフォルトの名無しさん
2022/09/07(水) 06:52:15.00ID:ordz3g2+403デフォルトの名無しさん
2022/09/07(水) 06:53:00.83ID:nA6d9voX どうしても速さが必要なところだけRustにするとしても
それ以外はPythonで十分な気がする
それ以外はPythonで十分な気がする
404デフォルトの名無しさん
2022/09/07(水) 07:00:12.32ID:7SEt3XdA405デフォルトの名無しさん
2022/09/07(水) 07:13:06.99ID:+WGAm7/P406デフォルトの名無しさん
2022/09/07(水) 07:16:05.47ID:hRBB26Yn >>402
弱くなる方向は何も問題無いでしょう
しかもRustは参照のライフタイムもコンパイラが管理把握できているため大丈夫でしょう
Ponyはその分をプログラマーが細かく指定して更にrecoverなど変化させていくことで補うわけです
弱くなる方向は何も問題無いでしょう
しかもRustは参照のライフタイムもコンパイラが管理把握できているため大丈夫でしょう
Ponyはその分をプログラマーが細かく指定して更にrecoverなど変化させていくことで補うわけです
407デフォルトの名無しさん
2022/09/07(水) 07:18:00.16ID:ordz3g2+408デフォルトの名無しさん
2022/09/07(水) 07:21:36.81ID:6xyGFf7w409デフォルトの名無しさん
2022/09/07(水) 07:23:19.72ID:8x7iT+wj ponyは面倒すぎて萎える
こんな参照の管理くらいコンパイラが自動的にやるべきで人間に押し付けるのは悪手
こんな参照の管理くらいコンパイラが自動的にやるべきで人間に押し付けるのは悪手
410デフォルトの名無しさん
2022/09/07(水) 07:30:00.20ID:ANYrsupz411デフォルトの名無しさん
2022/09/07(水) 07:42:15.35ID:ordz3g2+412デフォルトの名無しさん
2022/09/07(水) 07:45:25.38ID:+d3zlyKh 参照とかスタックとかヒープ、移動、元の発言なんて実はよく知らない。
所有権の複製こそ最善手
永遠に分からなくてもコンパイラが保証してくれるRustすごい、俺すごい。成長した
だがいつでも育成を要求する扉は開いている
Flutterスレ盛り上げてこいよ
所有権の複製こそ最善手
永遠に分からなくてもコンパイラが保証してくれるRustすごい、俺すごい。成長した
だがいつでも育成を要求する扉は開いている
Flutterスレ盛り上げてこいよ
413デフォルトの名無しさん
2022/09/07(水) 07:57:54.75ID:eUEKoWnI >>412
すみません、所有権の複製ってなんですか...?
clone()とかでオブジェクトをコピーすると、複製後のオブジェクトに対して、別の新しい所有権がただ一つ代入先の変数に束縛されるという認識だったのですが...
すみません、所有権の複製ってなんですか...?
clone()とかでオブジェクトをコピーすると、複製後のオブジェクトに対して、別の新しい所有権がただ一つ代入先の変数に束縛されるという認識だったのですが...
414デフォルトの名無しさん
2022/09/07(水) 08:06:19.67ID:gZR3Yo8R415デフォルトの名無しさん
2022/09/07(水) 08:09:45.92ID:41cUJGIp >>387
>読み書きしないけど値の存在だけは確認したいときってどうすんの?
Null安全な言語では値が存在しないことを表すNullなどを普通の型には代入できないことでNull安全性を実現している
そのためNullを代入できるNullableな型が用意されておりNullかどうかは値自体の読み書きとは別に可能な言語が多い
RustならばOption<T>がNullableな型でNullはNoneと表記する
Option<T>のメソッドis_some()かis_none()によって値自体の読み書きをせずに値の存在だけを確認できる
>読み書きしないけど値の存在だけは確認したいときってどうすんの?
Null安全な言語では値が存在しないことを表すNullなどを普通の型には代入できないことでNull安全性を実現している
そのためNullを代入できるNullableな型が用意されておりNullかどうかは値自体の読み書きとは別に可能な言語が多い
RustならばOption<T>がNullableな型でNullはNoneと表記する
Option<T>のメソッドis_some()かis_none()によって値自体の読み書きをせずに値の存在だけを確認できる
416デフォルトの名無しさん
2022/09/07(水) 08:19:14.45ID:C9aPpQqG417デフォルトの名無しさん
2022/09/07(水) 08:23:50.75ID:E0QYSaMt Rustは低レベルの対応も必要だから、mutable必要なんだろうけれど、理想はImmutableだけじゃないの?
418デフォルトの名無しさん
2022/09/07(水) 08:26:20.07ID:AY0Q59m9 >>417
イミュータブルを使わないと再帰が増えてハードル上がるから
イミュータブルを使わないと再帰が増えてハードル上がるから
419デフォルトの名無しさん
2022/09/07(水) 08:34:10.43ID:ASjGwh81 同じforループでも
for (i = 0; i < 10; i++)
これは見るからにmutableだけど
for i in 0..10
これは毎回別のimmutableがやってくる感じ
for (i = 0; i < 10; i++)
これは見るからにmutableだけど
for i in 0..10
これは毎回別のimmutableがやってくる感じ
420デフォルトの名無しさん
2022/09/07(水) 08:39:03.96ID:SuR+St8r いいかげん 俺ウザいだろ
tagが自然発生したぞ
どうだ怖いか
Flutterスレ盛り上げてこいよ
tagが自然発生したぞ
どうだ怖いか
Flutterスレ盛り上げてこいよ
421デフォルトの名無しさん
2022/09/07(水) 09:44:51.32ID:XqqYtKGz イミュータブルはzero overhead abstractionとは対極だからな
特にRustの場合は関数型みたいにオブジェクトの一部を書き換える度に新しいオブジェクト作るとかやってたら細切れに解放が必要になってコンパイルも実行もクソ効率悪そう
特にRustの場合は関数型みたいにオブジェクトの一部を書き換える度に新しいオブジェクト作るとかやってたら細切れに解放が必要になってコンパイルも実行もクソ効率悪そう
422デフォルトの名無しさん
2022/09/07(水) 10:24:02.90ID:aeiTHGZS >>241
必要性もないコピーを部分可変にするアンパックは例が悪すぎる。let t = (0, 1, 2);として
let (a, mut b, c) = foo; こんな風に書くより
println!("{} {} {}", t.0, t.1+100, t.2);アンパックせず、このように書くか
let (a, b, c) = t;
println!("{} {} {}", a, b+100, c);アンパックしても即値計算ならわざわざmutは必要ないですよね
あるいはもっと複雑な算術する必要があるなら、単独でlet mut で、let mut b= t.1+100;
どっちにしてもlet (a, mut b, c) = foo; なんてほとんど使わないのではないか、なにより見た目が気持ち悪い。
これが最高だという人もいるけど、個人的にはなんかしっくりこないな
ほかの言語の多値戻り値のように()カッコさえなければ良いのに・・・・
必要性もないコピーを部分可変にするアンパックは例が悪すぎる。let t = (0, 1, 2);として
let (a, mut b, c) = foo; こんな風に書くより
println!("{} {} {}", t.0, t.1+100, t.2);アンパックせず、このように書くか
let (a, b, c) = t;
println!("{} {} {}", a, b+100, c);アンパックしても即値計算ならわざわざmutは必要ないですよね
あるいはもっと複雑な算術する必要があるなら、単独でlet mut で、let mut b= t.1+100;
どっちにしてもlet (a, mut b, c) = foo; なんてほとんど使わないのではないか、なにより見た目が気持ち悪い。
これが最高だという人もいるけど、個人的にはなんかしっくりこないな
ほかの言語の多値戻り値のように()カッコさえなければ良いのに・・・・
423デフォルトの名無しさん
2022/09/07(水) 11:56:35.70ID:a104GDG0424デフォルトの名無しさん
2022/09/07(水) 13:08:54.29ID:ossJLtb4 >>401
俺仕事でNLPやってるけどトークナイザの実装がクソ遅いんだよ
英語だとRustで実装されたfastバージョンがあるんだけど
日本語対応のやつはゼロ
作らしてくれーと言ってるけど許可降りない
俺仕事でNLPやってるけどトークナイザの実装がクソ遅いんだよ
英語だとRustで実装されたfastバージョンがあるんだけど
日本語対応のやつはゼロ
作らしてくれーと言ってるけど許可降りない
425デフォルトの名無しさん
2022/09/07(水) 13:44:11.23ID:AY0Q59m9426デフォルトの名無しさん
2022/09/07(水) 14:05:06.57ID:ossJLtb4427デフォルトの名無しさん
2022/09/07(水) 14:09:08.42ID:AY0Q59m9428デフォルトの名無しさん
2022/09/07(水) 18:37:19.13ID:eUEKoWnI >>421
オブジェクト作るって、ヒープのアロケーションを想定してる?
オブジェクト作るって、ヒープのアロケーションを想定してる?
429デフォルトの名無しさん
2022/09/07(水) 19:13:42.89ID:ge/fWvoV いるよな、知りもしない癖に口出してくるやつ。
430デフォルトの名無しさん
2022/09/07(水) 19:20:29.73ID:OCYL1nNS >>428
所有権の複製こそ最善手
所有権の複製こそ最善手
431デフォルトの名無しさん
2022/09/07(水) 20:04:27.92ID:t2gi/CWf >>429
論破されて自演はみっともないぞw
論破されて自演はみっともないぞw
432デフォルトの名無しさん
2022/09/07(水) 20:06:49.94ID:/qhkAnst 今夜のAAPLの発表まで暇つぶし
早いもので2年か、改めて見る
Scalaが日本で衰退し始めている理由を説明します
https://www.yout
ube.com/watch?v=kFzLia7YZQU
早いもので2年か、改めて見る
Scalaが日本で衰退し始めている理由を説明します
https://www.yout
ube.com/watch?v=kFzLia7YZQU
433デフォルトの名無しさん
2022/09/07(水) 20:17:13.33ID:dqzrycJl434デフォルトの名無しさん
2022/09/07(水) 20:18:37.12ID:dqzrycJl C++は3年ごとに改定されるので、歴史ある言語でありながら、次世代言語でもあるんだよね。
素晴らしいことだと思います。
素晴らしいことだと思います。
435デフォルトの名無しさん
2022/09/07(水) 20:21:49.10ID:F4QYab6d 3年ごとに改定って道路工事かよ
おいしい
おいしい
436デフォルトの名無しさん
2022/09/07(水) 20:31:13.48ID:g9jqSBBW SDGs的に完成は最悪手
発注側も分かってる
Scalaは完成しちゃったの?
発注側も分かってる
Scalaは完成しちゃったの?
437デフォルトの名無しさん
2022/09/07(水) 20:40:06.02ID:HmyZhEv1 Haskellも完成
Goはver2いつ出すんだレベル
Goはver2いつ出すんだレベル
438デフォルトの名無しさん
2022/09/07(水) 20:42:19.72ID:HmyZhEv1 いい意味で
言葉足らずでした
言葉足らずでした
439デフォルトの名無しさん
2022/09/07(水) 20:47:36.68ID:g+neltEd >>422
プログラミングをしたことがないからそんな発想になる
関数からタプルなどが返ってきて別々に使うなど日常茶飯事
例
let (tx, mut rx) = mpsc::channel(10);
個別にmut指定する仕様は尊い
プログラミングをしたことがないからそんな発想になる
関数からタプルなどが返ってきて別々に使うなど日常茶飯事
例
let (tx, mut rx) = mpsc::channel(10);
個別にmut指定する仕様は尊い
440デフォルトの名無しさん
2022/09/07(水) 20:52:51.19ID:nXW6tumg >>439
Goスレでpromise/channelの育成を要求して成長した
Goスレでpromise/channelの育成を要求して成長した
441デフォルトの名無しさん
2022/09/07(水) 20:58:01.38ID:g+neltEd442デフォルトの名無しさん
2022/09/07(水) 21:00:46.44ID:mFj19fp9443デフォルトの名無しさん
2022/09/07(水) 21:14:05.84ID:g+neltEd444デフォルトの名無しさん
2022/09/07(水) 21:28:44.94ID:hfhFNamj 機能追加はcrate/macroで起こってる だがcoreは封鎖した
Go動向を追う最善手はGoスレ見に行くことである
知らんけど
Go動向を追う最善手はGoスレ見に行くことである
知らんけど
445デフォルトの名無しさん
2022/09/07(水) 21:36:37.03ID:LgczABzT そろそろ風呂に入ってくる
だが隙あらばスタックとヒープ mpscとスレッド安全の育成を要求する扉はまだ開いている 乗り遅れるな
だが隙あらばスタックとヒープ mpscとスレッド安全の育成を要求する扉はまだ開いている 乗り遅れるな
446デフォルトの名無しさん
2022/09/07(水) 21:44:22.20ID:g+neltEd >>444
外部crateの話は一切していなくて
Rust言語が日々進化しているとは
Rustコンパイラによる機能追加と改善
および標準ライブラリの機能追加を指す
もちろんcoreライブラリ部分にも追加やstable化などがある
外部crateの話は一切していなくて
Rust言語が日々進化しているとは
Rustコンパイラによる機能追加と改善
および標準ライブラリの機能追加を指す
もちろんcoreライブラリ部分にも追加やstable化などがある
447デフォルトの名無しさん
2022/09/07(水) 21:53:02.05ID:En8I5Kb5448デフォルトの名無しさん
2022/09/07(水) 22:26:11.82ID:bnLUEQYt449デフォルトの名無しさん
2022/09/07(水) 22:36:50.03ID:g+neltEd ヒープ利用は確保と解放操作が必要だから必ず遅い
スタック利用はスタックポインタの増減を関数の最初と最後でまとめてするだけで速い
さらに最適化でレジスタ利用になりうるから超速い
スタック利用はスタックポインタの増減を関数の最初と最後でまとめてするだけで速い
さらに最適化でレジスタ利用になりうるから超速い
450デフォルトの名無しさん
2022/09/07(水) 22:37:48.00ID:SiZHOEm5451デフォルトの名無しさん
2022/09/07(水) 22:41:11.76ID:fqrBDyte >>449
隙をみて恥をかき捨てた事でたった今 1mm成長した。俺すごい
隙をみて恥をかき捨てた事でたった今 1mm成長した。俺すごい
452デフォルトの名無しさん
2022/09/07(水) 22:54:26.21ID:5lmH+vKI >>449
重箱の隅だけど malloc/freeは最適化で消えることがあるから "必ず遅い" は言い過ぎ
ヒープ利用でもレジスタが使われることもある
https://godbolt.org/z/crxTse4vG
重箱の隅だけど malloc/freeは最適化で消えることがあるから "必ず遅い" は言い過ぎ
ヒープ利用でもレジスタが使われることもある
https://godbolt.org/z/crxTse4vG
453デフォルトの名無しさん
2022/09/07(水) 23:04:02.99ID:JYc4oRyX454デフォルトの名無しさん
2022/09/07(水) 23:18:52.05ID:MCKgMvZG455デフォルトの名無しさん
2022/09/07(水) 23:25:44.51ID:4U49yzDh456デフォルトの名無しさん
2022/09/07(水) 23:27:02.51ID:g+neltEd457デフォルトの名無しさん
2022/09/07(水) 23:39:50.25ID:LgsdK3r3 >>456その謝り方リアルでやっちゃだめだぞ
458デフォルトの名無しさん
2022/09/07(水) 23:41:58.89ID:En8I5Kb5 >>452
その例は現実的ではないよね
実際の使われ方だと新規オブジェクト生成は通常は別関数だから
それをinline指定でもしない限りは別関数にあるmallocは消えないです
ヒープ確保は常に行われてしまいます
一方でRustでは新規オブジェクト生成が同様に別関数でinlineでなくても
オブジェクトを「値返し」するので大丈夫です
オブジェクト生成する別関数でも呼び出す側でもヒープの利用はありません
その例は現実的ではないよね
実際の使われ方だと新規オブジェクト生成は通常は別関数だから
それをinline指定でもしない限りは別関数にあるmallocは消えないです
ヒープ確保は常に行われてしまいます
一方でRustでは新規オブジェクト生成が同様に別関数でinlineでなくても
オブジェクトを「値返し」するので大丈夫です
オブジェクト生成する別関数でも呼び出す側でもヒープの利用はありません
459デフォルトの名無しさん
2022/09/07(水) 23:58:53.34ID:a/h0B3rR RustよりもCが遅いケースが生じる一因だな
460デフォルトの名無しさん
2022/09/08(木) 00:52:54.26ID:8UoQH6yi ヒープを使ってしまったら、>>452のような重箱の隅をつつくレアケースを除くと、最適化で消えないので不利
Rustのようにオブジェクトの生成すらスタック上で行なう方が有利
Rustはオブジェクトを値返しする点がそれを可能としている
オブジェクトをレジスタ群に格納して返せるときは最も速くなり、
その大きさを超えても、呼び出し元のスタック領域に確保された場所へ直接書き込んで渡すためこれも速い
Rustのようにオブジェクトの生成すらスタック上で行なう方が有利
Rustはオブジェクトを値返しする点がそれを可能としている
オブジェクトをレジスタ群に格納して返せるときは最も速くなり、
その大きさを超えても、呼び出し元のスタック領域に確保された場所へ直接書き込んで渡すためこれも速い
461デフォルトの名無しさん
2022/09/08(木) 01:00:14.34ID:U6/gufpm462デフォルトの名無しさん
2022/09/08(木) 01:01:41.29ID:U6/gufpm 必ず○○とか必要以上に強い言葉を使うから重箱の隅をつつきたくなってしまうわけで、
ほとんどの場合○○とか適切な言葉遣いをしてくれれば良いのに
ほとんどの場合○○とか適切な言葉遣いをしてくれれば良いのに
463デフォルトの名無しさん
2022/09/08(木) 01:21:29.31ID:bfKvyn62 >>461
inline化だけの話ならそうだね
でも今回はmalloc部分が消えるかどうかで単純なパターンだとinline化されて消えるときもある話じゃないかな
オブジェクト生成関数のmallocが常に消えたら大問題なのでそれは特殊なケースでしか起きないと思うよ
inline化だけの話ならそうだね
でも今回はmalloc部分が消えるかどうかで単純なパターンだとinline化されて消えるときもある話じゃないかな
オブジェクト生成関数のmallocが常に消えたら大問題なのでそれは特殊なケースでしか起きないと思うよ
464デフォルトの名無しさん
2022/09/08(木) 01:24:09.17ID:4nByTxu8 Vecとかヒープ使ってないと思ってそう
465デフォルトの名無しさん
2022/09/08(木) 01:25:35.66ID:N4CSjuGd 値返しおじさん
466デフォルトの名無しさん
2022/09/08(木) 01:50:13.51ID:bfKvyn62 >>464
RustではVec(オブジェクト)生成new()でヒープは使わないよ
サイズ1以上になって遅延して初めてヒープ確保
SmallVecを使えば指定サイズ以上になって遅延して初めてヒープ確保
それまではスタック上のみを使う
ArrayVecはヒープを一切使わない
スタック上の指定サイズの中でのみで使う
だから「上限サイズがなく、かつ、想定サイズを超えた」時でなければヒープを使わずに済むようになっているよ
RustではVec(オブジェクト)生成new()でヒープは使わないよ
サイズ1以上になって遅延して初めてヒープ確保
SmallVecを使えば指定サイズ以上になって遅延して初めてヒープ確保
それまではスタック上のみを使う
ArrayVecはヒープを一切使わない
スタック上の指定サイズの中でのみで使う
だから「上限サイズがなく、かつ、想定サイズを超えた」時でなければヒープを使わずに済むようになっているよ
467デフォルトの名無しさん
2022/09/08(木) 01:51:32.30ID:M4A7wjs7 TS以外だと実際どれやればいいん?
理由添えて教えてほしい
理由添えて教えてほしい
468デフォルトの名無しさん
2022/09/08(木) 02:21:09.08ID:KnWQjklo >>467
TypeScriptやっている人ならRustかな
まずウェブブラウザのフロントエンドで少し処理することが出てくるとWebAssemblyを使うがそこでの使用言語シェア1位はRust
次にブラウザではなくデスクトップ上などで作るときもJS/TSとRustを使った安全に高速なフレームワークTauriがある
もちろんサーバーサイドでもRustを使って安全に高速な構築ができてサーバーやクラウドコストも他言語より有利になる
TypeScriptやっている人ならRustかな
まずウェブブラウザのフロントエンドで少し処理することが出てくるとWebAssemblyを使うがそこでの使用言語シェア1位はRust
次にブラウザではなくデスクトップ上などで作るときもJS/TSとRustを使った安全に高速なフレームワークTauriがある
もちろんサーバーサイドでもRustを使って安全に高速な構築ができてサーバーやクラウドコストも他言語より有利になる
469デフォルトの名無しさん
2022/09/08(木) 02:43:12.05ID:M4A7wjs7 >>468
めっちゃ丁寧な解説ありがとう
汎用系のCOBOL3年から未経験でWEB系に最近転職したんだ
自主学習でReactやったんでとりあえずフロントエンドで採用されたけど
今後サーバーサイドやその他の技術を習得
しようとしたとき何をやろうか?と悩んでたんだ
参考にしてみます。本当にありがとう。
めっちゃ丁寧な解説ありがとう
汎用系のCOBOL3年から未経験でWEB系に最近転職したんだ
自主学習でReactやったんでとりあえずフロントエンドで採用されたけど
今後サーバーサイドやその他の技術を習得
しようとしたとき何をやろうか?と悩んでたんだ
参考にしてみます。本当にありがとう。
470デフォルトの名無しさん
2022/09/08(木) 06:11:54.46ID:fF3EwaLJ >>466-469
誘い球連投でほっこりした
誘い球連投でほっこりした
471デフォルトの名無しさん
2022/09/08(木) 07:07:05.36ID:KnWQjklo 連投なんてしていないぞ
472デフォルトの名無しさん
2022/09/08(木) 07:10:41.61ID:BSPkqs+x473デフォルトの名無しさん
2022/09/08(木) 08:06:25.89ID:VJlBI8uM474デフォルトの名無しさん
2022/09/08(木) 08:22:43.32ID:zqAFLdB2 こんなに優秀なRustなのになんでFirefoxは遅いし、著名なあまりソフトウェアが出てこないの?
475デフォルトの名無しさん
2022/09/08(木) 08:26:35.79ID:BdGA/lpu476デフォルトの名無しさん
2022/09/08(木) 08:37:41.52ID:WNih/Uq3 >>466
Rustはスタック上だけでVec操作できるよう充実してるね
Rustはスタック上だけでVec操作できるよう充実してるね
477デフォルトの名無しさん
2022/09/08(木) 08:51:41.58ID:+LoUe6Y0478デフォルトの名無しさん
2022/09/08(木) 09:47:44.75ID:RfxdukXg 俺仕事でPython NLPやってるチームに配属された どうだ怖いか
周りのDr持ちが段違過ぎてRustで戦いを挑むカードを推進してる
Rustで作らしてくれーと言ってるけど許可降りない
無意味な上司のせいでRustはパーソナルプロジェクトだ
そのプロジェクトとは CLI Tools だ
JetBrainsのDeveloper Ecosystem Surveyでは
2021に待望のCLI Toolsカテゴリーが新設された。
突然Systems Programmingが激減したのは誤差だ
周りのDr持ちが段違過ぎてRustで戦いを挑むカードを推進してる
Rustで作らしてくれーと言ってるけど許可降りない
無意味な上司のせいでRustはパーソナルプロジェクトだ
そのプロジェクトとは CLI Tools だ
JetBrainsのDeveloper Ecosystem Surveyでは
2021に待望のCLI Toolsカテゴリーが新設された。
突然Systems Programmingが激減したのは誤差だ
479デフォルトの名無しさん
2022/09/08(木) 09:51:36.54ID:JEMfdspa Project Crasher
480デフォルトの名無しさん
2022/09/08(木) 09:56:34.95ID:Txzh6OM/ 2020に新設された仕事での利用率は、2020→2021の伸びは0だが、
キャンペーンが実を結ぶのは今年2022だ
何しろ2022はtauriがv1に到達し Desktop/GUI Applications がエンタープライズで飛躍的に伸びる
WebAssemblyの使用言語シェア1位とかいう話もある
メモ帳レベル機能でもawesome扱いしてくれるのは今だけだ 車輪に乗り遅れるな
キャンペーンが実を結ぶのは今年2022だ
何しろ2022はtauriがv1に到達し Desktop/GUI Applications がエンタープライズで飛躍的に伸びる
WebAssemblyの使用言語シェア1位とかいう話もある
メモ帳レベル機能でもawesome扱いしてくれるのは今だけだ 車輪に乗り遅れるな
481デフォルトの名無しさん
2022/09/08(木) 10:52:23.96ID:PN9YNiO2 どうしてID変えるんですか?やめてください迷惑です
482デフォルトの名無しさん
2022/09/08(木) 10:56:40.75ID:+LoUe6Y0 迷惑かけるまでがハイリスクです
483デフォルトの名無しさん
2022/09/08(木) 11:06:23.80ID:KnWQjklo484デフォルトの名無しさん
2022/09/08(木) 11:23:21.29ID:JEMfdspa あと10年くらいかな
485デフォルトの名無しさん
2022/09/08(木) 12:25:34.25ID:gDKj2SJw >>480
曲芸師かよ >車輪に乗り遅れるな
曲芸師かよ >車輪に乗り遅れるな
486デフォルトの名無しさん
2022/09/08(木) 12:50:52.48ID:VIOSuMTh >>480
今は、Rustで実装ってバリューあるけれど、もう何年もしたら、当たり前になって誰も気にしなくなるんだろうね。
今は、Rustで実装ってバリューあるけれど、もう何年もしたら、当たり前になって誰も気にしなくなるんだろうね。
487デフォルトの名無しさん
2022/09/08(木) 13:45:08.90ID:WNih/Uq3 スクリプト言語で十分な分野はそのままじゃないかな
それ以外の分野はRustを使うことが当たり前に
それ以外の分野はRustを使うことが当たり前に
488デフォルトの名無しさん
2022/09/08(木) 14:10:48.26ID:+LoUe6Y0 言語仕様が優秀でも実装で失敗すれば終わり
標準ライブラリがーっていうのもどちらかといえば実装側の問題
標準ライブラリがーっていうのもどちらかといえば実装側の問題
489デフォルトの名無しさん
2022/09/08(木) 14:53:25.83ID:LIDvvnz0 ライブラリを選ぶコストや年単位で変更をウォッチしてアップデートの要否を判断して適用するコストって馬鹿にならんのよね
最近の言語なら言語そのものの生産性の差より言語の違いによるライブラリ周りの生産性の差の方が大きい
最近の言語なら言語そのものの生産性の差より言語の違いによるライブラリ周りの生産性の差の方が大きい
490デフォルトの名無しさん
2022/09/08(木) 19:00:05.87ID:aaaIAhtE そう考えるとBoostのあるC++は素晴らしいよね。
491デフォルトの名無しさん
2022/09/09(金) 19:27:35.69ID:J0h2kR8b https://www.jpcert.or.jp/sc-rules/00.introduction.html
CERT セキュアコーディングスタンダードは、C、C++、Javaを対象としたセキュアなコーディング標準を公開した。
RustとBashは安全なのでCERT/CCの対象外とした。
CERT セキュアコーディングスタンダードは、C、C++、Javaを対象としたセキュアなコーディング標準を公開した。
RustとBashは安全なのでCERT/CCの対象外とした。
492デフォルトの名無しさん
2022/09/09(金) 19:40:15.23ID:GpFRRbzJ >>491
マイナー言語はふつうにスルーされてるだけ
マイナー言語はふつうにスルーされてるだけ
493デフォルトの名無しさん
2022/09/09(金) 19:48:53.77ID:NJZb/x50494デフォルトの名無しさん
2022/09/09(金) 20:16:31.91ID:J0h2kR8b あ”あ”〜〜ワクワクが止まらねえ〜〜。
495デフォルトの名無しさん
2022/09/09(金) 22:47:37.83ID:B0h43lqZ >>491
CもC++も対象バージョンが古すぎ。
CもC++も対象バージョンが古すぎ。
496デフォルトの名無しさん
2022/09/10(土) 07:21:33.57ID:uXnvxxOp 本日のRustおつ夜会場はこちらですか?
>Rustで作らしてくれーと言ってるけど許可降りない
https://www.jetbrains.com/lp/devecosystem-2021/rust/
>Rustで作らしてくれーと言ってるけど許可降りない
https://www.jetbrains.com/lp/devecosystem-2021/rust/
497デフォルトの名無しさん
2022/09/10(土) 09:06:15.64ID:ZPKzDOJp >>352
途中までJuliaのコピペ乙
途中までJuliaのコピペ乙
498デフォルトの名無しさん
2022/09/10(土) 16:00:01.13ID:0VnbKdes >>491
そんな古いのどこから見つけてきたんだ?
そんな古いのどこから見つけてきたんだ?
499デフォルトの名無しさん
2022/09/10(土) 18:40:23.49ID:830ybrIN CERT知らんのか。
500デフォルトの名無しさん
2022/09/10(土) 19:10:24.81ID:OQaV5j6q >>498
さすがに恥ずかしいぞ
さすがに恥ずかしいぞ
501デフォルトの名無しさん
2022/09/10(土) 20:44:33.04ID:BhJh8aSd C固有の話やメモリ安全性に関わるものはともかく、
シグナル安全性とかモダンな言語でも気にしないといけない部分はそれなりにあると思うので、
モダンな言語向けにまとめ直したものがあると嬉しいとは思う
シグナル安全性とかモダンな言語でも気にしないといけない部分はそれなりにあると思うので、
モダンな言語向けにまとめ直したものがあると嬉しいとは思う
502デフォルトの名無しさん
2022/09/10(土) 20:56:11.13ID:R3UqRaV2 pythonみたくマルチスレッド禁止にすりゃええねん
503デフォルトの名無しさん
2022/09/10(土) 21:28:21.07ID:q8enYz1J goとnimに興味あります
rustはある程度触ってみたけどもういいや
rustはある程度触ってみたけどもういいや
504デフォルトの名無しさん
2022/09/10(土) 21:31:16.53ID:PkiDAnmE 小鳥んはいつまで次世代なんだよ
まだJavaから覇権を奪えないのか
まだJavaから覇権を奪えないのか
505デフォルトの名無しさん
2022/09/10(土) 23:11:12.68ID:pCQRIeiF Nimは本質的なメリットが何もないから
今後も企業が採用することがないと思うよ
今後も企業が採用することがないと思うよ
506デフォルトの名無しさん
2022/09/10(土) 23:23:36.54ID:a77H3leG Rustは本質的なメリットが何もないから
今後も企業が採用することがないと思うよ
今後も企業が採用することがないと思うよ
507デフォルトの名無しさん
2022/09/10(土) 23:50:11.76ID:I8LDMMGc >>502
Pythonはマルチスレッド禁止ではなく
グローバルインタプリタロックをしてるから真の並列処理ができないだけ
I/Oブロッキングされてる間に他が動けるなど完全に無意味というわけではない
これはRubyも同じで所詮はスクリプト言語だからしょうがない
Pythonはマルチスレッド禁止ではなく
グローバルインタプリタロックをしてるから真の並列処理ができないだけ
I/Oブロッキングされてる間に他が動けるなど完全に無意味というわけではない
これはRubyも同じで所詮はスクリプト言語だからしょうがない
508デフォルトの名無しさん
2022/09/10(土) 23:59:58.32ID:WfJh9xF9510デフォルトの名無しさん
2022/09/11(日) 00:47:20.06ID:XM7RcVpf 理解のある有能な上司・経営者がいる企業はRustを適切に導入しつつあり
ダメな企業はそれらの記事にもある多大なメリットを理解できないまま差が広がるのだろう
ダメな企業はそれらの記事にもある多大なメリットを理解できないまま差が広がるのだろう
511デフォルトの名無しさん
2022/09/11(日) 01:10:08.71ID:fTsZYMd7512デフォルトの名無しさん
2022/09/11(日) 01:26:31.38ID:VONtFQ6w513デフォルトの名無しさん
2022/09/11(日) 01:28:14.37ID:b0yVF+AE >>512
じゃあRustは危険だからだめだな
じゃあRustは危険だからだめだな
514デフォルトの名無しさん
2022/09/11(日) 01:31:47.64ID:VONtFQ6w >>513
ストローマン
ストローマン
515デフォルトの名無しさん
2022/09/11(日) 02:13:14.46ID:QQU6OFWg516デフォルトの名無しさん
2022/09/11(日) 02:47:04.45ID:St3yVzYk 企業体力がある企業が採用していってる感じ!
って感じ?
って感じ?
517デフォルトの名無しさん
2022/09/11(日) 03:35:13.96ID:7JragUBO 昔から同じ傾向だけど
余裕のない会社(人)や無学習な会社(人)はそのまま古い言語、遅い言語、安全でない言語を使い続けるね
これは言語に限らずあらゆる対象について同じ
余裕のない会社(人)や無学習な会社(人)はそのまま古い言語、遅い言語、安全でない言語を使い続けるね
これは言語に限らずあらゆる対象について同じ
518デフォルトの名無しさん
2022/09/11(日) 06:11:01.67ID:B/NO1QVJ 本日の もはやRustはどうでも良くて
Rustで誘い球 ヒント乞い儀式の会場はこちらですか?
異次元超大手GAFAM御用達 老舗第三者機関jetbrainsによる
大規模統計調査結果 #Rustの不都合な真実 #責任転嫁論法
尾ひれはひれ抜きで
一言でまとめ
>Rustで作らしてくれーと言ってるけど許可降りない
詳しくは JetBrains ソースで👆
Rustで誘い球 ヒント乞い儀式の会場はこちらですか?
異次元超大手GAFAM御用達 老舗第三者機関jetbrainsによる
大規模統計調査結果 #Rustの不都合な真実 #責任転嫁論法
尾ひれはひれ抜きで
一言でまとめ
>Rustで作らしてくれーと言ってるけど許可降りない
詳しくは JetBrains ソースで👆
519デフォルトの名無しさん
2022/09/11(日) 07:38:24.36ID:+BbjejVS 調査結果を誤読している人がいるようだけど
昔から良いプログラミング言語が出てきたらまずは趣味や個人的な用途から使われ始めるのでこの第一条件をクリアしていることを意味している
仕事で強いられるのとは異なり自ら選べるところで進んで使われることはプログラマーにとっても良い言語であることを意味する
一方で多くの会社や客先などで使われる言語は良い悪いと関係なく惰性的にもしくは周りに流されて決まることも多い
よってその大衆的な調査よりも第二条件としては趣味範囲に留まらず実用的なプログラミング言語かどうかが重要となる
その点では>>9や>>154の記事などで世界的な大手IT企業たちがRustの実用性を証明してくれている
昔から良いプログラミング言語が出てきたらまずは趣味や個人的な用途から使われ始めるのでこの第一条件をクリアしていることを意味している
仕事で強いられるのとは異なり自ら選べるところで進んで使われることはプログラマーにとっても良い言語であることを意味する
一方で多くの会社や客先などで使われる言語は良い悪いと関係なく惰性的にもしくは周りに流されて決まることも多い
よってその大衆的な調査よりも第二条件としては趣味範囲に留まらず実用的なプログラミング言語かどうかが重要となる
その点では>>9や>>154の記事などで世界的な大手IT企業たちがRustの実用性を証明してくれている
520デフォルトの名無しさん
2022/09/11(日) 07:44:27.84ID:uuKi7qIG RustスレやGoスレ、Pythonスレはレベルが低くて使えない
やっぱC/C++を煽らないと重箱の隅をつつく レアヒント情報は出てこない
4回線で戦ってるから、両側のサクラを演じてるが、本物がなかなか釣れない
やっぱC/C++を煽らないと重箱の隅をつつく レアヒント情報は出てこない
4回線で戦ってるから、両側のサクラを演じてるが、本物がなかなか釣れない
521デフォルトの名無しさん
2022/09/11(日) 08:16:22.32ID:Iv+s/rR9 Rustが実用的に使えるようになったからC/C++は既存メンテを除いて不要じゃないか?
しばらくの時間が経った以後は重箱の隅をつつくレアケースでしかC/C++は使われなくなると思う
しばらくの時間が経った以後は重箱の隅をつつくレアケースでしかC/C++は使われなくなると思う
522デフォルトの名無しさん
2022/09/11(日) 08:26:29.84ID:dBVHZlNB523デフォルトの名無しさん
2022/09/11(日) 08:44:00.50ID:iHJIv4qn そもそも今その言語が使われてるのって8割方保守だろ
524デフォルトの名無しさん
2022/09/11(日) 08:56:08.15ID:SEdmppON あるいは毎年、既存システム比、2割も新規があると考えるのは現実的ではない。
525デフォルトの名無しさん
2022/09/11(日) 09:13:21.98ID:iHJIv4qn RustがC/C++分野に食い込めても2割いくことはないということか
526デフォルトの名無しさん
2022/09/11(日) 09:15:04.75ID:LoCSxJxA あるいは新規があればRustであると考えるのは現実的ではない。すべて架空の話。英語で言えば仮定法過去
527デフォルトの名無しさん
2022/09/11(日) 09:44:14.66ID:+PEbrMUs C++は酷い言語だったが科学的な誤りはなかった
商業的に不要とか言われてもそれは倫理的に悪と言われる程度の説得力しかない
商業的に不要とか言われてもそれは倫理的に悪と言われる程度の説得力しかない
528デフォルトの名無しさん
2022/09/11(日) 09:50:44.97ID:WKW/SVys あるいはRustでは保証するとか証明可能とか言う話は全て架空だ
数学的証明された事実は一つもない
数学的証明された事実は一つもない
529デフォルトの名無しさん
2022/09/11(日) 09:59:03.59ID:+PEbrMUs まあ数学自体が架空だと思ってる奴もいるんだよな
複素数には不等号も最大も最小もないという事実は架空で
最大と最小しかない1bitも架空で
実数が現実だと思ってるようだ
複素数には不等号も最大も最小もないという事実は架空で
最大と最小しかない1bitも架空で
実数が現実だと思ってるようだ
530デフォルトの名無しさん
2022/09/11(日) 10:01:44.26ID:vhHBIWRc >Rustは数学自体が架空だと思ってる™
531デフォルトの名無しさん
2022/09/11(日) 10:06:19.83ID:sTwbodpe >Rustは数学自体が架空だと思ってる™
>Rustスレはレベルが低くて使えない
完全一致
>Rustスレはレベルが低くて使えない
完全一致
532デフォルトの名無しさん
2022/09/11(日) 10:12:56.55ID:qCGvqebh >Rustは数学自体が架空だと思ってる™ ←New
>Rustスレはレベルが低くて使えない
>Rustで作らしてくれーと言ってるけど許可降りない™
完全一致
>Rustスレはレベルが低くて使えない
>Rustで作らしてくれーと言ってるけど許可降りない™
完全一致
533デフォルトの名無しさん
2022/09/11(日) 11:42:55.72ID:1/0HqANi Scalaが実用的に使えるようになったからJavaは既存メンテを除いて不要じゃないか?
534デフォルトの名無しさん
2022/09/11(日) 12:14:21.26ID:P3VqydEe GAFAMが揃って採用したら実用的&安泰
1社のみだと細々と消える可能性あり
1社のみだと細々と消える可能性あり
535デフォルトの名無しさん
2022/09/11(日) 13:06:46.07ID:e58aNhcI アリババに採用されないと無理だろ。
536デフォルトの名無しさん
2022/09/11(日) 13:25:09.93ID:F0iOH4S5 >>529
実数が架空の可能性も出てきたけどな。
実数が架空の可能性も出てきたけどな。
537デフォルトの名無しさん
2022/09/11(日) 13:26:02.18ID:HFx3mOt8 日本の場合、Rust実務3級みたいな怪しい資格が出てきたら、人の確保に困らないレベルだと考えられるのでは。
538デフォルトの名無しさん
2022/09/11(日) 13:33:45.44ID:e58aNhcI 実数が存在する可能性もゼロではない。
539デフォルトの名無しさん
2022/09/11(日) 13:41:11.64ID:fLFeKmlL ゼロって実在したっけ?
540デフォルトの名無しさん
2022/09/11(日) 13:42:33.06ID:VMVpvyTB >>535
アリババのレポジトリ見たらRustで書いてるプロジェクトが既にあるのな
あとアリババクラウド公式ブログでもRust推奨
Why Should You Learn Rust?
https://www.alibabacloud.com/blog/why-should-you-learn-rust_598680
アリババのレポジトリ見たらRustで書いてるプロジェクトが既にあるのな
あとアリババクラウド公式ブログでもRust推奨
Why Should You Learn Rust?
https://www.alibabacloud.com/blog/why-should-you-learn-rust_598680
541デフォルトの名無しさん
2022/09/11(日) 15:00:31.37ID:e58aNhcI アリババのメイン言語になってるならワンチャンあるかもしれないなあ。
でも、日本で使われてるならダメそうじゃないか?
日本人が良いというものは、だいたいダメだったぞ。
この30年間。
でも、日本で使われてるならダメそうじゃないか?
日本人が良いというものは、だいたいダメだったぞ。
この30年間。
542デフォルトの名無しさん
2022/09/11(日) 15:06:26.74ID:e58aNhcI ある意味、日本を釣るためにGAFAが手を組んだのかもしれないしな。
543デフォルトの名無しさん
2022/09/11(日) 15:16:40.87ID:VMVpvyTB544デフォルトの名無しさん
2022/09/11(日) 15:24:35.80ID:e58aNhcI545デフォルトの名無しさん
2022/09/11(日) 15:44:25.20ID:9L9UahOO すべてのゼロに単位はない、オールハイルゼロ!
546デフォルトの名無しさん
2022/09/11(日) 16:37:16.95ID:vfKVIBQc GAFAというが
アップルはRustに言及してないだろ
社内でどうしてるかは知らんが
アップルはRustに言及してないだろ
社内でどうしてるかは知らんが
547デフォルトの名無しさん
2022/09/11(日) 16:42:02.78ID:F99gXeAJ そういや GAFA の F は Facebook の F だったので Meta に変わった今は GAMA になる筈だよね。
548デフォルトの名無しさん
2022/09/11(日) 16:43:11.94ID:XyeJ2q+G549デフォルトの名無しさん
2022/09/11(日) 16:47:35.25ID:PJg7Eu+i ID:e58aNhcIは陰謀論とかにころっと騙されそう
日航機墜落はアメリカの陰謀だとか信じてそう
日航機墜落はアメリカの陰謀だとか信じてそう
550デフォルトの名無しさん
2022/09/11(日) 16:48:54.21ID:y06ekIr1 >>541
CもJavaもPHPも日本じゃ昔から至るところで使われていたし、過去資産を一気に捨てるのでなけれこれからも世界中で使われるだろうけど?
CもJavaもPHPも日本じゃ昔から至るところで使われていたし、過去資産を一気に捨てるのでなけれこれからも世界中で使われるだろうけど?
551デフォルトの名無しさん
2022/09/11(日) 16:50:26.98ID:e58aNhcI 逆に、自民党は某宗教団体と無関係とか思ってる人のほうがオカシイのでは?
宗教と組んでるから安泰と党大会でも言ってるのに。
宗教と組んでるから安泰と党大会でも言ってるのに。
552デフォルトの名無しさん
2022/09/11(日) 17:02:25.87ID:p+Qu5PiK 陰謀論はたまに真実が混ざってるから厄介
9.11はサウジが糸を引いてたみたいなやつとかね
9.11はサウジが糸を引いてたみたいなやつとかね
553デフォルトの名無しさん
2022/09/11(日) 17:06:29.54ID:vF4tz2Bt554デフォルトの名無しさん
2022/09/11(日) 17:11:27.93ID:e58aNhcI555デフォルトの名無しさん
2022/09/11(日) 17:13:50.83ID:wKzSFZtE ☆js
var a = []
for (var i = 0; i < 3; i++) {
a.push(() => console.log(i))
}
a.forEach(f => f()) // 3 3 3
☆js let j = i
var a = []
for (var i = 0; i < 3; i++) {
let j = i
a.push(() => console.log(j))
}
a.forEach(f => f()) // 0 1 2
var a = []
for (var i = 0; i < 3; i++) {
a.push(() => console.log(i))
}
a.forEach(f => f()) // 3 3 3
☆js let j = i
var a = []
for (var i = 0; i < 3; i++) {
let j = i
a.push(() => console.log(j))
}
a.forEach(f => f()) // 0 1 2
556デフォルトの名無しさん
2022/09/11(日) 17:14:49.46ID:wKzSFZtE ☆go
package main
import "fmt"
func main(){
var a []func()
for i := 0; i < 3; i++ {
a = append(a, func() {fmt.Println(i)})
}
for _, f := range a {f()} // 3 3 3
}
☆go i := i
package main
import "fmt"
func main(){
var a []func()
for i := 0; i < 3; i++ {
i := i
a = append(a, func() {fmt.Println(i)})
}
for _, f := range a {f()} // 0 1 2
}
☆dart
void main() {
var a = [];
for (var i = 0; i < 3; i++) {
a.add(() => print(i));
}
a.forEach((f) => f()); // 0 1 2
}
package main
import "fmt"
func main(){
var a []func()
for i := 0; i < 3; i++ {
a = append(a, func() {fmt.Println(i)})
}
for _, f := range a {f()} // 3 3 3
}
☆go i := i
package main
import "fmt"
func main(){
var a []func()
for i := 0; i < 3; i++ {
i := i
a = append(a, func() {fmt.Println(i)})
}
for _, f := range a {f()} // 0 1 2
}
☆dart
void main() {
var a = [];
for (var i = 0; i < 3; i++) {
a.add(() => print(i));
}
a.forEach((f) => f()); // 0 1 2
}
557デフォルトの名無しさん
2022/09/11(日) 17:18:39.40ID:wKzSFZtE https://go.dev/doc/faq#closures_and_goroutines
> Even easier is just to create a new variable,
> using a declaration style that may seem odd but works fine in Go:
> Even easier is just to create a new variable,
> using a declaration style that may seem odd but works fine in Go:
558デフォルトの名無しさん
2022/09/11(日) 18:43:29.45ID:wKzSFZtE ☆js let
var a = []
for (let i = 0; i < 3; i++) {
a.push(() => console.log(i))
}
a.forEach(f => f()) // 0 1 2
var a = []
for (let i = 0; i < 3; i++) {
a.push(() => console.log(i))
}
a.forEach(f => f()) // 0 1 2
559デフォルトの名無しさん
2022/09/11(日) 21:41:46.79ID:+PEbrMUs 登場人物等が実在しないと意味がないのが陰謀論
実在してもしなくても仮定するだけでいい感じになるのは防災とか護身術とかかな
実在してもしなくても仮定するだけでいい感じになるのは防災とか護身術とかかな
560デフォルトの名無しさん
2022/09/11(日) 21:56:48.27ID:3JeGkSLy ☆rust
fn main() {
let mut a = vec![];
for i in 0..3 {
a.push(|| println!("{i}"));
}
a.iter().for_each(|f| f());
}
error[E0597]: `i` does not live long enough
☆rust
fn main() {
let mut a = vec![];
for i in 0..3 {
a.push(move || println!("{i}"));
}
a.iter().for_each(|f| f()); // 0 1 2
}
fn main() {
let mut a = vec![];
for i in 0..3 {
a.push(|| println!("{i}"));
}
a.iter().for_each(|f| f());
}
error[E0597]: `i` does not live long enough
☆rust
fn main() {
let mut a = vec![];
for i in 0..3 {
a.push(move || println!("{i}"));
}
a.iter().for_each(|f| f()); // 0 1 2
}
561デフォルトの名無しさん
2022/09/11(日) 22:01:38.23ID:PJg7Eu+i いい感じになってないからただの陰謀論だわな
562デフォルトの名無しさん
2022/09/11(日) 22:32:59.60ID:wKzSFZtE ☆ruby
a = []
for i in 0..2 do
a << lambda {print i}
end
a.each(&:call) # 222
☆ruby
(0..2).inject([]) {|a, i| a << lambda {print i}}.each(&:call) # 012
a = []
for i in 0..2 do
a << lambda {print i}
end
a.each(&:call) # 222
☆ruby
(0..2).inject([]) {|a, i| a << lambda {print i}}.each(&:call) # 012
563デフォルトの名無しさん
2022/09/11(日) 23:47:28.92ID:VMVpvyTB564デフォルトの名無しさん
2022/09/12(月) 12:00:10.83ID:hkEaTFQf それで最強?言語Rustで崇高なパーフェクト言語?Rustでいま何作ってるんですか?
ぜんぜんRust製の良いソフトウエアが出てこないですね
まさかウンコ臭い業務コードや、趣味のじこまんオナニーコード書いてるんですか?あ、ごめん業務ですら案件ほとんどないか!w
ぜんぜんRust製の良いソフトウエアが出てこないですね
まさかウンコ臭い業務コードや、趣味のじこまんオナニーコード書いてるんですか?あ、ごめん業務ですら案件ほとんどないか!w
565デフォルトの名無しさん
2022/09/12(月) 12:19:44.25ID:5bihwCS7 ごめんrustって駄目なの?
goとかのがいいんか?
goとかのがいいんか?
566デフォルトの名無しさん
2022/09/12(月) 12:20:19.70ID:pKAQjQJa >>564
オモチャと馬鹿にするのは筋が良くないよ。
適用領域や生産性が十分であればオモチャがエンタープライズ(笑)を置き換える例は枚挙にいとまがない。
下げたいなら欠点や解決できていない課題を指摘するのがよいよ。
オモチャと馬鹿にするのは筋が良くないよ。
適用領域や生産性が十分であればオモチャがエンタープライズ(笑)を置き換える例は枚挙にいとまがない。
下げたいなら欠点や解決できていない課題を指摘するのがよいよ。
567デフォルトの名無しさん
2022/09/12(月) 12:25:48.21ID:ks2jCYJ6568デフォルトの名無しさん
2022/09/12(月) 12:30:55.10ID:8xQYKjTB569デフォルトの名無しさん
2022/09/12(月) 12:50:12.25ID:tyJETXG8 >>565
Rustはプログラミングがめっちゃ快適なのでプログラマーたちに愛されている
「Stack Overflow」で7万人以上のITエンジニアの調査結果、最も愛されている言語は7年連続で「Rust」
https://survey.stackoverflow.co/2022/#most-loved-dreaded-and-wanted-language-love-dread
Rustはプログラミングがめっちゃ快適なのでプログラマーたちに愛されている
「Stack Overflow」で7万人以上のITエンジニアの調査結果、最も愛されている言語は7年連続で「Rust」
https://survey.stackoverflow.co/2022/#most-loved-dreaded-and-wanted-language-love-dread
570デフォルトの名無しさん
2022/09/12(月) 13:15:12.14ID:1QsSN3wZ571デフォルトの名無しさん
2022/09/12(月) 13:42:12.36ID:vGI5q7L7 料理下手な奴って
調味料とかの用法用量をガチガチに守らない方が美味しくなる
って思い込みが強いんだよな
調味料とかの用法用量をガチガチに守らない方が美味しくなる
って思い込みが強いんだよな
572デフォルトの名無しさん
2022/09/12(月) 13:53:17.15ID:QNBEnsOG カレーの箱には材料全て炒めて煮込めって書いてあるけど実際には炒めるのは玉ねぎだけでいいし煮込むのはジャガイモだけでいいんだよね
あとはレンジで下処理できる
全部同じ処理方法だと玉ねぎは香りが飛ぶしジャガイモのデンプンが十分スープに出なかったりする
火を止めてから仕上げにインスタントコーヒーを少し加えると味音痴でもはっきりわかるくらいコクが変わるがそれは書いてない
なぜなら商業的にはコーヒーはルーに最初から入っているべきもので必要なスパイスや味付け等を一つのパッケージで提供することがルーの役割だから
ところがコーヒーは最後に入れるもので最初から入れるとただ苦味を加えただけになる
従ってレシピには載ってない
俺って料理音痴だなあ
あとはレンジで下処理できる
全部同じ処理方法だと玉ねぎは香りが飛ぶしジャガイモのデンプンが十分スープに出なかったりする
火を止めてから仕上げにインスタントコーヒーを少し加えると味音痴でもはっきりわかるくらいコクが変わるがそれは書いてない
なぜなら商業的にはコーヒーはルーに最初から入っているべきもので必要なスパイスや味付け等を一つのパッケージで提供することがルーの役割だから
ところがコーヒーは最後に入れるもので最初から入れるとただ苦味を加えただけになる
従ってレシピには載ってない
俺って料理音痴だなあ
573デフォルトの名無しさん
2022/09/12(月) 14:23:43.00ID:vGI5q7L7 自分で作る時の規約と同じ規約を他人にすすめるのは正しい
574デフォルトの名無しさん
2022/09/12(月) 14:26:53.27ID:o/NFQNbK575デフォルトの名無しさん
2022/09/12(月) 14:53:09.61ID:nQ3vrjGe JetBrainsの方はテックメディアやblog等がこぞって取り上げてる印象がないけど日本だけ?
あと2~3週間で今年の結果が出る頃だけど、RustとGoをヘッドラインに入れ込んでViewが稼げそう
どっちがどう転んでもw
あと2~3週間で今年の結果が出る頃だけど、RustとGoをヘッドラインに入れ込んでViewが稼げそう
どっちがどう転んでもw
576デフォルトの名無しさん
2022/09/12(月) 15:23:46.11ID:/ImN/Q+4577デフォルトの名無しさん
2022/09/12(月) 15:35:48.60ID:1EVPKhq8 >>565
scalaって知ってる?
scalaって知ってる?
578デフォルトの名無しさん
2022/09/12(月) 15:45:21.43ID:U3gTQ3k2579デフォルトの名無しさん
2022/09/12(月) 15:52:19.48ID:D724xnZb >>565
Rustは史上最強のプログラミング言語だ
コンピュータサイエンスとプログラミング言語理論の成果を全て取り入れた唯一の言語だろう
安全性とパフォーマンスを両立させた唯一の言語
まずRustを使うべき
しかしスクリプト言語使いの人などはハードルが高いのでGoやNimなんかを経由するのはあり
最終的にRustへ至る道への修行と考えれば全然あり
Rustは史上最強のプログラミング言語だ
コンピュータサイエンスとプログラミング言語理論の成果を全て取り入れた唯一の言語だろう
安全性とパフォーマンスを両立させた唯一の言語
まずRustを使うべき
しかしスクリプト言語使いの人などはハードルが高いのでGoやNimなんかを経由するのはあり
最終的にRustへ至る道への修行と考えれば全然あり
580デフォルトの名無しさん
2022/09/12(月) 15:55:18.32ID:xojxIqPL キチガイがRustのアホな持ち上げ方するネガティブキャンペーンやめてくんないかな
いい加減流行ってくんないと不便なんだよいつまでも
いい加減流行ってくんないと不便なんだよいつまでも
581デフォルトの名無しさん
2022/09/12(月) 15:56:53.20ID:+dWR9IC9 Go 実稼働分野でバリバリ活躍中
Scala 実稼働分野でバリバリ活躍中
Rust 試食コーナーで食べてもらって狂喜乱舞
Scala 実稼働分野でバリバリ活躍中
Rust 試食コーナーで食べてもらって狂喜乱舞
582デフォルトの名無しさん
2022/09/12(月) 15:58:05.79ID:D724xnZb バリバリ使ってるレベルの高い人が周りにいないから知らないんだね
かわいそう
かわいそう
583デフォルトの名無しさん
2022/09/12(月) 16:00:17.03ID:xojxIqPL584デフォルトの名無しさん
2022/09/12(月) 16:04:01.87ID:mWclCycs 今すでにC/C++を使ってるようなプロジェクトでなければ、基本的にはRustなんて出番ないよ
Java、JavaScript、Python、Swift、Kotlinみたい言語が使われてる分野でRustが使われることはない。あっても非常にマレ
wasmでRustの需要があると騒ぐひともいるけどまだ新しすぎてなんともいえない
Java、JavaScript、Python、Swift、Kotlinみたい言語が使われてる分野でRustが使われることはない。あっても非常にマレ
wasmでRustの需要があると騒ぐひともいるけどまだ新しすぎてなんともいえない
585デフォルトの名無しさん
2022/09/12(月) 16:06:50.08ID:D724xnZb 「自分のレベルが低い」ことを認識できないとレベルアップなんてできないぞ
Rust書ける?って言って勉強すれば書けます!とか言ってるやつが数ヶ月後も書けなくて
どういう反応するのか見たら「学習コストが高い」とかいうよくわからない言い訳をしたことがあった
Rustチームに入ってもらおうと思ったけどやめた
Rust書ける?って言って勉強すれば書けます!とか言ってるやつが数ヶ月後も書けなくて
どういう反応するのか見たら「学習コストが高い」とかいうよくわからない言い訳をしたことがあった
Rustチームに入ってもらおうと思ったけどやめた
586デフォルトの名無しさん
2022/09/12(月) 16:10:13.94ID:D724xnZb 俺の経験上C/C++を書けないとRustは書けないと思う
だから急がば回れでC++の勉強をするのも良いと思う
Rustが持ってる機能の元ネタがそこらにあるから
やる価値はあると思う
なぜ継承がクソなのかコピーが悪なのか全て理解できると思う
この感覚を理解してないとRustの機能のありがたさはわからない
だから急がば回れでC++の勉強をするのも良いと思う
Rustが持ってる機能の元ネタがそこらにあるから
やる価値はあると思う
なぜ継承がクソなのかコピーが悪なのか全て理解できると思う
この感覚を理解してないとRustの機能のありがたさはわからない
587デフォルトの名無しさん
2022/09/12(月) 16:14:15.82ID:D724xnZb 結論を言うとRustから逃げてるエンジニアは二流 ここで逃げるとあらゆることから逃げるだろう
588デフォルトの名無しさん
2022/09/12(月) 16:16:36.57ID:tOT7j8yQ 完成した
Go 実稼働分野でバリバリ活躍中
Scala 実稼働分野でバリバリ活躍中
Rust 試食コーナーで食べてもらって狂喜乱舞
俺 >Rustで作らしてくれーと言ってるけど許可降りない
有能社員 >Rustは学習コストが高い割に使えない
有能社員 >C/C++を書けないとRustは書けない、Rustは意味なし
Nim 試食コーナーでスルーされて意気消沈
Pony 開店前
Go 実稼働分野でバリバリ活躍中
Scala 実稼働分野でバリバリ活躍中
Rust 試食コーナーで食べてもらって狂喜乱舞
俺 >Rustで作らしてくれーと言ってるけど許可降りない
有能社員 >Rustは学習コストが高い割に使えない
有能社員 >C/C++を書けないとRustは書けない、Rustは意味なし
Nim 試食コーナーでスルーされて意気消沈
Pony 開店前
589デフォルトの名無しさん
2022/09/12(月) 16:19:39.20ID:ogCOvAZv >>585
それが現実。
Rustを「とりあえず」使えるレベルになるだけでも深くプログラムに精通している必要があり、JavaとかPython開発で使えるレベルの人材では全く歯が立たない。
Rustコミニティは初心者にマウントする人間ばかりで教育手法は全然整備されていない。
こんなのでユーザーが増えるわけが無い。順当にHaskellと同じ道を歩んでいるわな。
それが現実。
Rustを「とりあえず」使えるレベルになるだけでも深くプログラムに精通している必要があり、JavaとかPython開発で使えるレベルの人材では全く歯が立たない。
Rustコミニティは初心者にマウントする人間ばかりで教育手法は全然整備されていない。
こんなのでユーザーが増えるわけが無い。順当にHaskellと同じ道を歩んでいるわな。
590デフォルトの名無しさん
2022/09/12(月) 16:21:55.50ID:mWclCycs 当然だけど万能な言語なんてないから、ユースケースに選んで使えばいいだけ
プログラミング言語なんて5個や10個使えて当然
プログラミング言語なんて5個や10個使えて当然
591デフォルトの名無しさん
2022/09/12(月) 16:27:17.65ID:a0Vw3QfF592デフォルトの名無しさん
2022/09/12(月) 16:29:46.69ID:pGdD9pkE593デフォルトの名無しさん
2022/09/12(月) 16:44:01.30ID:D724xnZb594デフォルトの名無しさん
2022/09/12(月) 16:45:35.34ID:D724xnZb とはいえRustが普及しないのは俺も困る
レベルが低いものが結託してRust を潰そうとする動きは感じてる
なので何とか使えるように指導したいとは思ってる
レベルが低いものが結託してRust を潰そうとする動きは感じてる
なので何とか使えるように指導したいとは思ってる
595デフォルトの名無しさん
2022/09/12(月) 16:47:00.99ID:p/0uZlw7596デフォルトの名無しさん
2022/09/12(月) 16:54:20.00ID:Sl+PHmf/ 入れ食い状態
Go 実稼働分野でバリバリ活躍中
Scala 実稼働分野でバリバリ活躍中
KENTA >日本では衰退しました ←New
Rust 試食コーナーで食べてもらって狂喜乱舞
俺 >Rustで作らしてくれーと言ってるけど許可降りない
レベルアップできない俺 >今はRustだけで良い。レベルアップはお断りだ ←New
レベルアップできない俺 >試食コーナーで食べてもらって狂喜乱舞 ←New
レベルアップできない俺 >数学出来ないけど有能社員を指導したいとは思ってる ←New
有能社員 >Rustは学習コストが高い割に使えない
有能社員 >C/C++を書けないとRustは書けない、Rustは意味なし
有能社員 >Rustは言語オタク Haskellと同じ道 ←New
Nim 試食コーナーでスルーされて意気消沈
Pony 開店前
Haskell 衰退しました ←New
Go 実稼働分野でバリバリ活躍中
Scala 実稼働分野でバリバリ活躍中
KENTA >日本では衰退しました ←New
Rust 試食コーナーで食べてもらって狂喜乱舞
俺 >Rustで作らしてくれーと言ってるけど許可降りない
レベルアップできない俺 >今はRustだけで良い。レベルアップはお断りだ ←New
レベルアップできない俺 >試食コーナーで食べてもらって狂喜乱舞 ←New
レベルアップできない俺 >数学出来ないけど有能社員を指導したいとは思ってる ←New
有能社員 >Rustは学習コストが高い割に使えない
有能社員 >C/C++を書けないとRustは書けない、Rustは意味なし
有能社員 >Rustは言語オタク Haskellと同じ道 ←New
Nim 試食コーナーでスルーされて意気消沈
Pony 開店前
Haskell 衰退しました ←New
597デフォルトの名無しさん
2022/09/12(月) 17:02:30.41ID:mWclCycs >>595
それも知ってるから、非常にマレと書いた
それも知ってるから、非常にマレと書いた
598デフォルトの名無しさん
2022/09/12(月) 17:02:59.62ID:D724xnZb 「できない人の気持ち」をずっと考えてたんだけど
スタックとかヒープとか所有権とかライフサイクルとか
そういう説明の仕方が悪いんじゃないかと
概念的な説明って意外と理解されないんだなと言うのが実感としてある
もう割り切って「この場合はこう書け」という説明の方が良いのではないかと思い始めた
スタックとかヒープとか所有権とかライフサイクルとか
そういう説明の仕方が悪いんじゃないかと
概念的な説明って意外と理解されないんだなと言うのが実感としてある
もう割り切って「この場合はこう書け」という説明の方が良いのではないかと思い始めた
599デフォルトの名無しさん
2022/09/12(月) 17:06:35.50ID:fbgm2yKh 入れ食い状態
ちょっと手加減してください
Rust
レベルアップできない俺 >スタックとかヒープとか、概念的 ←New
ちょっと手加減してください
Rust
レベルアップできない俺 >スタックとかヒープとか、概念的 ←New
600デフォルトの名無しさん
2022/09/12(月) 17:09:10.23ID:UHoWNRxl 言語だけで低レベルな連中を排除できるから便利よ
前の会社でOCaml,Haskell,Scalaできる奴限定チーム作ったら
お守りの要る奴が居なくなって超快適だったw
まあ社内のできる奴が皆来たから他チームからの技術問い合わせ集中→丸投げが始まったからウンザリして転職したけどw
Rustも活かして行こw
前の会社でOCaml,Haskell,Scalaできる奴限定チーム作ったら
お守りの要る奴が居なくなって超快適だったw
まあ社内のできる奴が皆来たから他チームからの技術問い合わせ集中→丸投げが始まったからウンザリして転職したけどw
Rustも活かして行こw
601デフォルトの名無しさん
2022/09/12(月) 17:10:31.29ID:MdKMUdvB602デフォルトの名無しさん
2022/09/12(月) 17:15:38.21ID:D724xnZb603デフォルトの名無しさん
2022/09/12(月) 17:16:14.15ID:pGdD9pkE まるで就職してるみたいなことを言うじゃないか
604デフォルトの名無しさん
2022/09/12(月) 17:17:24.65ID:6spEgeO/ 問題:ヒント乞い儀式は何処から始まって、何処まで続く?
今、何人目?
今、何人目?
605デフォルトの名無しさん
2022/09/12(月) 17:22:27.34ID:1EVPKhq8 こうしてRustはささやかに終わり、時代は変わっていくんですなぁ
606デフォルトの名無しさん
2022/09/12(月) 17:28:16.89ID:mWclCycs Rustでやってる案件いくつか見たことあるけどどれも最初の開発者がめちゃくちゃ優秀だから、
変なことになってないし後から参加する人も自然とベストプラクティスを学びやすい感じになってる
まあどれもドメインを絞ってて規模が小さいから社内ドキュメントなんてあんまないけど…
>>602
社内ドキュメントで入門記事とか書こうとしてるの…??
変なことになってないし後から参加する人も自然とベストプラクティスを学びやすい感じになってる
まあどれもドメインを絞ってて規模が小さいから社内ドキュメントなんてあんまないけど…
>>602
社内ドキュメントで入門記事とか書こうとしてるの…??
607デフォルトの名無しさん
2022/09/12(月) 17:30:40.29ID:GOcHN1Zf C/C++/低レイヤーの間違い指摘・揚げ足取りは思う壺です。
プロレスに終始してください。
プロレスに終始してください。
608デフォルトの名無しさん
2022/09/12(月) 17:36:03.29ID:vGI5q7L7 static変数でいいと思った人の気持ちをOO棒でぶん殴ってた時代に戻ってやり直せばいいのでは
609デフォルトの名無しさん
2022/09/12(月) 17:44:05.96ID:AXUzp/Io 感想
Rustが高速で省メモリで安全という新分野を切り開いたのは確かなようで
クラウドコスト・使用電力量・Co2排出量でも有利なのは間違いなさそうだから
今後のシナリオは以下の2パターンかな~?
パターン1
慣れれば大半のプログラマーがRustを使いこなせるようになりRustはコモディティ化して人類の役に立つ
パターン2
Rustを使いこなせる層と使えない層に二極化する
企業などもRustを使いこなせる人材を集められる層と無理な層に二極化する
そのためサーバー&クラウドコスト支出・使用電力量・Co2排出量などあらゆる点で二極化してしまう
Rustを使えない側は様々な点で不利を背負ってしまう
Rustが高速で省メモリで安全という新分野を切り開いたのは確かなようで
クラウドコスト・使用電力量・Co2排出量でも有利なのは間違いなさそうだから
今後のシナリオは以下の2パターンかな~?
パターン1
慣れれば大半のプログラマーがRustを使いこなせるようになりRustはコモディティ化して人類の役に立つ
パターン2
Rustを使いこなせる層と使えない層に二極化する
企業などもRustを使いこなせる人材を集められる層と無理な層に二極化する
そのためサーバー&クラウドコスト支出・使用電力量・Co2排出量などあらゆる点で二極化してしまう
Rustを使えない側は様々な点で不利を背負ってしまう
610デフォルトの名無しさん
2022/09/12(月) 18:36:26.99ID:w++AQN2S >>KENTA
Rustについてもいろんな過去動画で語ってるんだけど今一古い
古い動画では低レイヤー向けだから関係ないみたく言ってるけど最新版2022年下半期の意見が欲しい
KENTA周りでwasmってまだ見えてないんじゃないの?
過去の試食ニュースくらい?とか(tauriはKENTAに関係ないか)
だれか本人に伝えてきて下さいm(__)m
Rustについてもいろんな過去動画で語ってるんだけど今一古い
古い動画では低レイヤー向けだから関係ないみたく言ってるけど最新版2022年下半期の意見が欲しい
KENTA周りでwasmってまだ見えてないんじゃないの?
過去の試食ニュースくらい?とか(tauriはKENTAに関係ないか)
だれか本人に伝えてきて下さいm(__)m
611デフォルトの名無しさん
2022/09/12(月) 18:42:10.96ID:1EVPKhq8 Rust使うとIDを簡単に変えることができる裏技みたいなのがあるの?
612デフォルトの名無しさん
2022/09/12(月) 18:58:12.12ID:cIAUh/V3 あえてKENTA周り煽るような否定形で聞いてるあたり
最新版では提灯コメントが出てくると思ってるんだろ
KENTAはScalaコミュニティ分析してるしガリ勉オジ嫌いって言ってたから
内心は言語オタクRust(コミュニティ)を良く思ってない
でも表面上では良い顔してくれると思うよ
最新版では提灯コメントが出てくると思ってるんだろ
KENTAはScalaコミュニティ分析してるしガリ勉オジ嫌いって言ってたから
内心は言語オタクRust(コミュニティ)を良く思ってない
でも表面上では良い顔してくれると思うよ
613デフォルトの名無しさん
2022/09/12(月) 18:59:15.13ID:1QsSN3wZ 低レイヤー向きなのはガチ
Webやバッグエンドで扱うのはなかなかピーキーすぎるわ
Webやバッグエンドで扱うのはなかなかピーキーすぎるわ
614デフォルトの名無しさん
2022/09/12(月) 19:06:29.84ID:ctaSs0ih 低レイヤー向きなのはガチ(ただし既存システムは置き換えない)
Webやバッグエンド(その他もろもろ)はピーキー
こんなんじゃ提灯コメント出てこない
Webやバッグエンド(その他もろもろ)はピーキー
こんなんじゃ提灯コメント出てこない
615デフォルトの名無しさん
2022/09/12(月) 19:07:05.31ID:hOTkFqgR RustはHaskellと同じことを言ってる。
616デフォルトの名無しさん
2022/09/12(月) 19:08:23.81ID:M7cyS1TF617デフォルトの名無しさん
2022/09/12(月) 19:11:01.61ID:H3lrVzsc Haskellが衰退したという結果は判るけど、何を言ってたかとか経緯はよく知らない
618デフォルトの名無しさん
2022/09/12(月) 19:14:40.26ID:k0iYs0el こんな中、Clojureの勉強始めたわ。
Common Lispは、なかなか良い実装見つけられなくて挫折したけれど、ClojureはJVMの資産が使えるし、少し期待してる。
Common Lispは、なかなか良い実装見つけられなくて挫折したけれど、ClojureはJVMの資産が使えるし、少し期待してる。
619デフォルトの名無しさん
2022/09/12(月) 19:14:42.35ID:iaJVMLEF >フロントエンドもWasm記述言語トップ
どこぞのビルボード部門別1位みたいな言い方だな
どこぞのビルボード部門別1位みたいな言い方だな
620デフォルトの名無しさん
2022/09/12(月) 19:19:34.74ID:FpwHUZnr >>618
Clojureも愛され言語ランキング上位だったな ガンガレ
Clojureも愛され言語ランキング上位だったな ガンガレ
621デフォルトの名無しさん
2022/09/12(月) 19:21:10.92ID:D0TZxDhn WebAssemblyをGC言語で書くと実行速度もバイナリサイズも無駄すぎるため
現実的な記述言語がRustとC++しかないので当たり前
ただしこの対等勝負でC++にRustが勝っている点は注目に値するかもしれない
現実的な記述言語がRustとC++しかないので当たり前
ただしこの対等勝負でC++にRustが勝っている点は注目に値するかもしれない
622デフォルトの名無しさん
2022/09/12(月) 19:26:50.51ID:R6La1yEF623デフォルトの名無しさん
2022/09/12(月) 19:28:16.63ID:6xErrG1k WasmはJavaとか変わんないのになんでアセンブリ名乗ってんの
いくらなんでもリテラシーが低すぎないか
いくらなんでもリテラシーが低すぎないか
624デフォルトの名無しさん
2022/09/12(月) 19:58:51.59ID:M7cyS1TF >>623
そこは起源がasm.jsから来てるのだろうけど
決定的な違いとしてJava仮想マシンはガベージコレクション前提
Wasmはガベージコレクション無しで始まった点からもWasmがアセンブリに近いかな
そこは起源がasm.jsから来てるのだろうけど
決定的な違いとしてJava仮想マシンはガベージコレクション前提
Wasmはガベージコレクション無しで始まった点からもWasmがアセンブリに近いかな
625デフォルトの名無しさん
2022/09/12(月) 20:44:55.38ID:yQQmK+X7 コンパイル通れば問題ないとかそういうところやね
626デフォルトの名無しさん
2022/09/12(月) 20:55:33.71ID:o4fglLbA なるほど確かにそう言ってました
型システムが重厚長大でトランスフォーマーだらけで
「正しいコード」をコンパイラ通しづらくなるのよ。
とうせるんだけどそのための変更の労力が馬鹿になんなくなる。
で、やーめた、となる。。
型システムが重厚長大でトランスフォーマーだらけで
「正しいコード」をコンパイラ通しづらくなるのよ。
とうせるんだけどそのための変更の労力が馬鹿になんなくなる。
で、やーめた、となる。。
627デフォルトの名無しさん
2022/09/12(月) 21:06:58.74ID:UhYQaJnf コンパイル通れば問題ない
コンパイル通れば コードが成長すると加速度的にコンパイル通し辛くなる
コンパイル通っても 「問題ない」なんて理想でした
Rustでもどっちも当てはまる
コンパイル通れば コードが成長すると加速度的にコンパイル通し辛くなる
コンパイル通っても 「問題ない」なんて理想でした
Rustでもどっちも当てはまる
628デフォルトの名無しさん
2022/09/12(月) 21:13:22.93ID:o/NFQNbK コードが成長すると全体把握が難しくなるというのは分かるがコンパイル通すのが難しくなるというのは分からんな
イディオムに従えばコンパイルは通せるでしょ普通に
イディオムに従えばコンパイルは通せるでしょ普通に
629デフォルトの名無しさん
2022/09/12(月) 21:20:13.29ID:fZo/hnBr C/C++/低レイヤー/wasm/GC/大規模コード/概念的理解の精密化の
ヒント・間違い指摘・揚げ足取りは思う壺です。
プロレスに終始
ヒント・間違い指摘・揚げ足取りは思う壺です。
プロレスに終始
630デフォルトの名無しさん
2022/09/12(月) 21:41:14.55ID:M7cyS1TF631デフォルトの名無しさん
2022/09/12(月) 21:44:33.36ID:7cpDGgxf 荒らし本人は4回線で、ID維持、単発ID織り交ぜてサクラ、ごく稀に便乗
プロレスに終始
プロレスに終始
632デフォルトの名無しさん
2022/09/12(月) 22:18:50.83ID:CmFXNZxi Scalaレベルで着地できれば御の字、あるいは...
Haskellはアカデミック勢が根強い、果たしてRustは...
Haskellはアカデミック勢が根強い、果たしてRustは...
633デフォルトの名無しさん
2022/09/12(月) 22:27:46.58ID:68AKLxnx634デフォルトの名無しさん
2022/09/12(月) 22:29:18.43ID:Paw7Qaib しょうもない感想 プロレス乙
635デフォルトの名無しさん
2022/09/12(月) 23:18:05.19ID:vGI5q7L7 スタックとかヒープとかはC++の方から来た性質だから
Haskellは本当の敵ではないね
Haskellは本当の敵ではないね
636デフォルトの名無しさん
2022/09/12(月) 23:46:25.23ID:7g4swwEZ >>589
そこに上がってるのもほとんどがフレームワーク使ってシステム作ってますな使い方しか日本じゃしてないから、そういうとこにRustが入り込むにはもっと周辺が充実してからじゃないと日本じゃ無理じゃね?
そこに上がってるのもほとんどがフレームワーク使ってシステム作ってますな使い方しか日本じゃしてないから、そういうとこにRustが入り込むにはもっと周辺が充実してからじゃないと日本じゃ無理じゃね?
637デフォルトの名無しさん
2022/09/12(月) 23:47:46.93ID:7g4swwEZ >>596
COBOLとFORTRAN忘れてるぞ。
COBOLとFORTRAN忘れてるぞ。
638デフォルトの名無しさん
2022/09/13(火) 07:23:17.27ID:gWDv6hSm stackoverflow
73,268 response
fullプロ率は 73%
パート等込み 73+8+2 = 83%
JetBrains
31,743 developers →有効補正換算 47,000 people (Data cleaning 地域間格差補正が入る)
fullプロ率は 63+5+5 = 73%
パート等込み 73+7+2 = 82%
単純回答者数でstackoverflowが倍以上
調査参加者の構成割合は似たり寄ったり
JetBrains調査で関心したのがデータクリーニングの明確化
ちゃんとした集計であると言う信頼感はある
>Data cleaning process
>identical IP addresses
>overwhelmingly similar ... Szymkiewicz-Simpson overlap coefficient
>Surveys with conflicting answers
>...
stackoverflowがごみデータ混じりだと言うつもりはないけど同等の記述がないのは不安要素
stackoverflowはロックオンされやすい?
数のstackoverflow v.s. 質のJetBrains
こんなところ
73,268 response
fullプロ率は 73%
パート等込み 73+8+2 = 83%
JetBrains
31,743 developers →有効補正換算 47,000 people (Data cleaning 地域間格差補正が入る)
fullプロ率は 63+5+5 = 73%
パート等込み 73+7+2 = 82%
単純回答者数でstackoverflowが倍以上
調査参加者の構成割合は似たり寄ったり
JetBrains調査で関心したのがデータクリーニングの明確化
ちゃんとした集計であると言う信頼感はある
>Data cleaning process
>identical IP addresses
>overwhelmingly similar ... Szymkiewicz-Simpson overlap coefficient
>Surveys with conflicting answers
>...
stackoverflowがごみデータ混じりだと言うつもりはないけど同等の記述がないのは不安要素
stackoverflowはロックオンされやすい?
数のstackoverflow v.s. 質のJetBrains
こんなところ
639デフォルトの名無しさん
2022/09/13(火) 08:04:16.23ID:y6KzmKzo >>631
やっぱりワッチョイ必須だな。
やっぱりワッチョイ必須だな。
640デフォルトの名無しさん
2022/09/13(火) 08:14:25.37ID:y6KzmKzo >>636
Rustだと所有権とかsingle mutable xor immutable referenceとかのキツイ制約があるから、フレームワークを作るのも使うのも大変。
まぁ、Rustフレームワークが充実することなんて無いんじゃない?
Rustだと所有権とかsingle mutable xor immutable referenceとかのキツイ制約があるから、フレームワークを作るのも使うのも大変。
まぁ、Rustフレームワークが充実することなんて無いんじゃない?
641デフォルトの名無しさん
2022/09/13(火) 08:41:26.44ID:6PkwAjCS >>640 荒らし本人の主張
この後いつもの世迷言が始まる
この後いつもの世迷言が始まる
642デフォルトの名無しさん
2022/09/13(火) 09:59:52.44ID:zBh9FomI 小学生は方程式を使ってはならない的なキツイ規制が無いからこそ
C++やRustがやりたい放題やってる
C++やRustがやりたい放題やってる
643デフォルトの名無しさん
2022/09/13(火) 10:12:26.30ID:loRx10nA >>642
それを言うなら Rustはキツイ規制の鶴亀算
それを言うなら Rustはキツイ規制の鶴亀算
644デフォルトの名無しさん
2022/09/13(火) 10:43:48.12ID:eyEnRRRC 「なんで鶴亀算だけで全て解かなきゃなんねえんだよ」
「鶴亀算だけなら俺が安全性や正しさを確実に保証してやれるからだよ!!!」
「鶴亀算だけなら俺が安全性や正しさを確実に保証してやれるからだよ!!!」
645デフォルトの名無しさん
2022/09/13(火) 11:41:37.83ID:4BnmNWCa お待たせしました(1/2)
Go 実稼働分野でバリバリ活躍中
GitHub PullReq >TypeScriptとGoが圧倒的 ←New
Scala 実稼働分野でバリバリ活躍中
KENTA >日本では衰退しました
Clojure StackOverflow >愛され言語ランキング上位 ←New
Rust 試食コーナーで食べてもらって狂喜乱舞
StackOverflow >愛され言語ランキング1位
JetBrains >Rustで作らしてくれーと言ってるけど許可降りない
KENTA >提灯コメント出さない ←New
俺 >数学出来ないのでRustはキツイ規制の鶴亀算が史上最強 ←New
俺 >鶴亀算でRustフレームワークが充実することなんて無い ←New
Rust >鶴亀算だけなら俺が安全性や正しさを確実に保証 unsafeは関知しない お前の責任だ ←New
俺 >今はRustだけで良い。レベルアップはお断りだ
俺 >数学出来ないけど有能社員を指導したいとは思ってる
俺 >すべての理解が概念的 概念的に理解すれば簡単だ
有能社員 >Rustは学習コストが高い割に使えない
有能社員 >C/C++を書けないとRustは書けない、Rustは意味なし
有能社員 >Rustは言語オタク Haskellと同じ道
Nim 試食コーナーでスルーされて意気消沈
英語できないので言語マニュアルの日本語訳がスゴい ←New
Pythonからの乗り換えに最適(未確認 実例が待たれる) ←New
Pony 開店前
唯一無二の売りがある模様 ripgrep並みの実例が待たれる ←New
awesome-ponyが2年以上更新されていない ←New
Go 実稼働分野でバリバリ活躍中
GitHub PullReq >TypeScriptとGoが圧倒的 ←New
Scala 実稼働分野でバリバリ活躍中
KENTA >日本では衰退しました
Clojure StackOverflow >愛され言語ランキング上位 ←New
Rust 試食コーナーで食べてもらって狂喜乱舞
StackOverflow >愛され言語ランキング1位
JetBrains >Rustで作らしてくれーと言ってるけど許可降りない
KENTA >提灯コメント出さない ←New
俺 >数学出来ないのでRustはキツイ規制の鶴亀算が史上最強 ←New
俺 >鶴亀算でRustフレームワークが充実することなんて無い ←New
Rust >鶴亀算だけなら俺が安全性や正しさを確実に保証 unsafeは関知しない お前の責任だ ←New
俺 >今はRustだけで良い。レベルアップはお断りだ
俺 >数学出来ないけど有能社員を指導したいとは思ってる
俺 >すべての理解が概念的 概念的に理解すれば簡単だ
有能社員 >Rustは学習コストが高い割に使えない
有能社員 >C/C++を書けないとRustは書けない、Rustは意味なし
有能社員 >Rustは言語オタク Haskellと同じ道
Nim 試食コーナーでスルーされて意気消沈
英語できないので言語マニュアルの日本語訳がスゴい ←New
Pythonからの乗り換えに最適(未確認 実例が待たれる) ←New
Pony 開店前
唯一無二の売りがある模様 ripgrep並みの実例が待たれる ←New
awesome-ponyが2年以上更新されていない ←New
646デフォルトの名無しさん
2022/09/13(火) 11:43:15.62ID:t741VCGK お待たせしました(2/2)
↓New
Haskell アカデミック勢が根強い
それ以外は衰退しました
OCaml 関数型で速度を最優先するならこれ1択
StackOverflow >愛され言語ではない
FORTRAN 科学技術方面で強い、しばしば1択
Julia 科学技術方面開拓中
StackOverflow >愛され言語ランキング上位
COBOL 金融機関方面では既存システムで根強い
それ以外は衰退しました
↓New
Haskell アカデミック勢が根強い
それ以外は衰退しました
OCaml 関数型で速度を最優先するならこれ1択
StackOverflow >愛され言語ではない
FORTRAN 科学技術方面で強い、しばしば1択
Julia 科学技術方面開拓中
StackOverflow >愛され言語ランキング上位
COBOL 金融機関方面では既存システムで根強い
それ以外は衰退しました
647デフォルトの名無しさん
2022/09/13(火) 11:46:20.50ID:k/lRopxK 愛され言語で上位になったらかなり高確率で衰退言語になる。
648デフォルトの名無しさん
2022/09/13(火) 12:01:05.28ID:tpYV5tct649デフォルトの名無しさん
2022/09/13(火) 12:03:41.56ID:pHZbxmIz 愛され言語≒仕事で使ってない言語 楽しい趣味
650デフォルトの名無しさん
2022/09/13(火) 12:30:34.07ID:zBh9FomI お金を儲けることの何が苦痛なんですか?
651デフォルトの名無しさん
2022/09/13(火) 12:33:48.30ID:rcRzJ+qQ かなり高確率で新しいおもちゃを見つけて衰退言語になる
652デフォルトの名無しさん
2022/09/13(火) 12:41:31.43ID:y6KzmKzo >>650
苦痛だから他人が金を払うんだろ。
苦痛だから他人が金を払うんだろ。
653デフォルトの名無しさん
2022/09/13(火) 12:43:32.14ID:gIIyLcDU >>646
関数型最速はF#
関数型最速はF#
654デフォルトの名無しさん
2022/09/13(火) 12:52:26.68ID:x5Pd+Z34 >>653
実例根拠が待たれる
実例根拠が待たれる
655デフォルトの名無しさん
2022/09/13(火) 13:22:39.32ID:B87y3gGt >>609
既にそのパターン2で進んでるように見える
状況を認識できている世界的IT大手はいずれもRustを採用して高速と安全の両立へ
そしてまともなところは今後追随していくのが確実だからダメなクズが取り残される
既にそのパターン2で進んでるように見える
状況を認識できている世界的IT大手はいずれもRustを採用して高速と安全の両立へ
そしてまともなところは今後追随していくのが確実だからダメなクズが取り残される
656デフォルトの名無しさん
2022/09/13(火) 13:32:39.70ID:C2XVu2lz657デフォルトの名無しさん
2022/09/13(火) 13:41:48.64ID:zBh9FomI 弱肉強食がもう通用しない
早く生まれた年寄りが遅く生まれた子供の肉を食うから
早く生まれた年寄りが遅く生まれた子供の肉を食うから
658デフォルトの名無しさん
2022/09/13(火) 13:43:26.99ID:H2N4SaFr C++だって誕生当初からこれまで、先行投資なんか必要なく、
陳腐コモディティでも二極化でもないんだから
Rustも先行投資なんて必要なくてGAFAMのトリクルダウンをどっしり待つくらいで十分
トリクルダウンなんて期待してないけど
陳腐コモディティでも二極化でもないんだから
Rustも先行投資なんて必要なくてGAFAMのトリクルダウンをどっしり待つくらいで十分
トリクルダウンなんて期待してないけど
659デフォルトの名無しさん
2022/09/13(火) 13:46:36.71ID:m7X9WFNl GAFAMって、、永遠に試食タイムでしょ
660デフォルトの名無しさん
2022/09/13(火) 13:50:43.06ID:/+RM8oAP 「甘ま〜〜い」ってさけんでる食レポ
661デフォルトの名無しさん
2022/09/13(火) 14:16:27.24ID:/5hyl5nT Rustの動きが興味深いのは、
C++の分野だけでなく幅広い分野で用いられてる点だが、
C++と異なり現代的な様々なパラダイムを簡潔に扱えるようシンプルに統合されてることも大きいのではないか。
もちろん、常に安全に自動的にメモリが解放される手軽さを得つつ、
少し注視するだけでC並みの高速化を安全に得られることが決定打なのだろうが。
C++の分野だけでなく幅広い分野で用いられてる点だが、
C++と異なり現代的な様々なパラダイムを簡潔に扱えるようシンプルに統合されてることも大きいのではないか。
もちろん、常に安全に自動的にメモリが解放される手軽さを得つつ、
少し注視するだけでC並みの高速化を安全に得られることが決定打なのだろうが。
662デフォルトの名無しさん
2022/09/13(火) 14:30:44.11ID:37EvHtEx663デフォルトの名無しさん
2022/09/13(火) 15:06:51.76ID:xxUpITvK 全プログラミング学習者へ。ハーバード大の入門講座「CS50」が無償かつ日本語で学べるようになりました!
https://www.lifehacker.jp/article/2209_cs50_new/
>「CS50」ではコンピュータサイエンスとプログラミングに関する概念や考え方、C、Python、SQL、JavaScriptなど主要言語を学べる
Rustは対象外(笑)
https://www.lifehacker.jp/article/2209_cs50_new/
>「CS50」ではコンピュータサイエンスとプログラミングに関する概念や考え方、C、Python、SQL、JavaScriptなど主要言語を学べる
Rustは対象外(笑)
664デフォルトの名無しさん
2022/09/13(火) 15:16:31.24ID:H/rIRvnD >>663
GAFAMの一角が協賛してるのにどうしてこうなった(笑)
https://media.loom-app.com/loom/2022/09/07/6d29489f-719f-4f30-91ec-bed1c0a7d52c/original.png
GAFAMの一角が協賛してるのにどうしてこうなった(笑)
https://media.loom-app.com/loom/2022/09/07/6d29489f-719f-4f30-91ec-bed1c0a7d52c/original.png
665デフォルトの名無しさん
2022/09/13(火) 15:16:52.14ID:Eka/sYHG >>609の二極化が進みそうだな
企業もプログラマーもRustを使いこなして高速と安全とリソースコスト削減をできるか否か
企業もプログラマーもRustを使いこなして高速と安全とリソースコスト削減をできるか否か
666デフォルトの名無しさん
2022/09/13(火) 15:22:08.86ID:dmYNCuvg667デフォルトの名無しさん
2022/09/13(火) 15:28:18.43ID:hXvJppW6668デフォルトの名無しさん
2022/09/13(火) 15:31:30.15ID:i/Efddbm >>667
ショックを隠しきれない(笑)
ショックを隠しきれない(笑)
669デフォルトの名無しさん
2022/09/13(火) 15:35:59.10ID:T+71Yrjk >>645
1行に収まらない文章は見た目悪いから短くして
1行に収まらない文章は見た目悪いから短くして
670デフォルトの名無しさん
2022/09/13(火) 15:38:06.45ID:urKAOro+671デフォルトの名無しさん
2022/09/13(火) 15:39:48.42ID:ywmd5ThV672デフォルトの名無しさん
2022/09/13(火) 15:44:54.29ID:nrX2Avhq673デフォルトの名無しさん
2022/09/13(火) 15:45:37.89ID:zuI+ipCK >>667
あーあ、D言語と戦争すんのか....
あーあ、D言語と戦争すんのか....
674デフォルトの名無しさん
2022/09/13(火) 16:26:40.14ID:NZjV2Lo6 Rustを使える企業とプログラマーが有利になるだけで
あとは置いてきぼりを喰らって不利になるだけだろう
あとは置いてきぼりを喰らって不利になるだけだろう
675デフォルトの名無しさん
2022/09/13(火) 16:28:34.29ID:MR/SvflR こんな風に攻撃的に擁護する人のいる言語は使ってはいけない
高確率で地雷
高確率で地雷
676デフォルトの名無しさん
2022/09/13(火) 16:33:18.32ID:tpYV5tct677デフォルトの名無しさん
2022/09/13(火) 16:35:31.99ID:O8KoebnP >>646
明らかによくわかってなくて草
明らかによくわかってなくて草
678デフォルトの名無しさん
2022/09/13(火) 16:38:07.57ID:uqmbOE3c >>676
MITのことを言っているなら勘違いが過ぎる
MITのことを言っているなら勘違いが過ぎる
679デフォルトの名無しさん
2022/09/13(火) 16:38:33.78ID:O8KoebnP680デフォルトの名無しさん
2022/09/13(火) 16:44:59.43ID:0TrGa1vI >>679
Clojureの人たちは「本物のREPL」とか言ってるよね
Clojureの人たちは「本物のREPL」とか言ってるよね
681デフォルトの名無しさん
2022/09/13(火) 17:04:48.92ID:zuI+ipCK プログラミング言語で闘争を続けて、1つも新しいソフトウエアやサービスを生み出せない日本の縮図だな・・・
欧米企業なら、「最初のバージョンは常に捨てられる」の格言通り、いかにいち早く世に出すか注力する。
なんで書いてあるかは余り関係ない
日本にも有名なソフトウェアのコミッターは数多くいるけど、コンピューターサイエンスというほとんど役に立たない事が
ものすごいマウントポジションをとるだけに使われ、人より早く書くや、人より多く書く人はありがたがらない。
欧米だと「アイデアは価値がない、アイデアを誰より早く形にして価値がある」とまでされる
欧米企業なら、「最初のバージョンは常に捨てられる」の格言通り、いかにいち早く世に出すか注力する。
なんで書いてあるかは余り関係ない
日本にも有名なソフトウェアのコミッターは数多くいるけど、コンピューターサイエンスというほとんど役に立たない事が
ものすごいマウントポジションをとるだけに使われ、人より早く書くや、人より多く書く人はありがたがらない。
欧米だと「アイデアは価値がない、アイデアを誰より早く形にして価値がある」とまでされる
682デフォルトの名無しさん
2022/09/13(火) 17:14:35.35ID:jv6QQJzV そもそも向こうの技術者土方じゃないだろ
683デフォルトの名無しさん
2022/09/13(火) 17:15:56.27ID:Zt4ZmGLP >>681
はい、言語選択が決定的要因だとは思いません。
相関はあると思うのであえて言語/frameworkで聞きますが
Ruby(Rails)は現在で良い選択だと思いますか?
スタートアップだとかのサイト作成の場合
はい、言語選択が決定的要因だとは思いません。
相関はあると思うのであえて言語/frameworkで聞きますが
Ruby(Rails)は現在で良い選択だと思いますか?
スタートアップだとかのサイト作成の場合
684デフォルトの名無しさん
2022/09/13(火) 17:20:10.04ID:zBh9FomI 書くのが遅いというか
お金をいくらもらえるか決めるのが早過ぎるのでは
カンバン方式みたいな
お金をいくらもらえるか決めるのが早過ぎるのでは
カンバン方式みたいな
685デフォルトの名無しさん
2022/09/13(火) 17:24:48.85ID:v8x42YYy >>684
Rustは書くのが遅いという前提の話かな
Rustは書くのが遅いという前提の話かな
686デフォルトの名無しさん
2022/09/13(火) 17:28:11.67ID:rqfJwBbj システムプログラミング系の講義ならrust使うものとかあるんじゃないの
687デフォルトの名無しさん
2022/09/13(火) 17:30:11.70ID:TeDe9n0i >>686
ないと思うけど、どこかで見つけた?
ないと思うけど、どこかで見つけた?
688デフォルトの名無しさん
2022/09/13(火) 17:40:05.78ID:rqfJwBbj689デフォルトの名無しさん
2022/09/13(火) 17:44:48.56ID:G/TOqvaV690デフォルトの名無しさん
2022/09/13(火) 17:49:57.23ID:5oUbDcyQ サイバーエージェントの広告配信サーバーもRustだし
クックパッドもRustだし
日本でもどんどんRustへ置き換わっていってるな
クックパッドもRustだし
日本でもどんどんRustへ置き換わっていってるな
691デフォルトの名無しさん
2022/09/13(火) 17:51:04.29ID:rqfJwBbj rust system programming course university
でググったらUMDとかTUMとか出てくるわ
大学で教えられないほど教育コスト高いということはなさそう
でググったらUMDとかTUMとか出てくるわ
大学で教えられないほど教育コスト高いということはなさそう
692デフォルトの名無しさん
2022/09/13(火) 17:56:03.03ID:RVIrK5TX >>690 >>691
じゃあなんでRustがTIOBEで20位に入れないのか
https://news.mynavi.jp/techplus/article/20220907-2448116/
>Rustのように20位以内の常任入りが予測されつつも長期にわたって実現していないプログラミング言語
じゃあなんでRustがTIOBEで20位に入れないのか
https://news.mynavi.jp/techplus/article/20220907-2448116/
>Rustのように20位以内の常任入りが予測されつつも長期にわたって実現していないプログラミング言語
693デフォルトの名無しさん
2022/09/13(火) 18:10:20.77ID:zBh9FomI ソフトは無料でも教科書には課金した方が
教科書の劣化コピーがネット上で大量生産されやすい
教科書の劣化コピーがネット上で大量生産されやすい
694デフォルトの名無しさん
2022/09/13(火) 18:35:59.90ID:Ouug8JCC695デフォルトの名無しさん
2022/09/13(火) 18:41:40.88ID:rqfJwBbj >>692
大学で教えられているかどうかとTIOBEのランクに関係がある理屈がよくわからんのだけど
大学で教えられているかどうかとTIOBEのランクに関係がある理屈がよくわからんのだけど
696デフォルトの名無しさん
2022/09/13(火) 19:16:06.70ID:da5BeFTI >>694
スゲー
スゲー
697デフォルトの名無しさん
2022/09/13(火) 19:26:53.80ID:y6KzmKzo698デフォルトの名無しさん
2022/09/13(火) 19:44:23.64ID:9HVO2bc+ ClojureはあれでCircleCIとかいくつかの実用サービスに使われてるのがすごいよ。
lispは遊びでいくつか書いたけど、実用的なサービスをこれで書く気はなかなか起きないんだよなぁ。
lispは遊びでいくつか書いたけど、実用的なサービスをこれで書く気はなかなか起きないんだよなぁ。
699デフォルトの名無しさん
2022/09/13(火) 23:26:20.76ID:CJstPXh2 >>663
コンパイル方式がメインな言語はCしかないの?
コンパイル方式がメインな言語はCしかないの?
700デフォルトの名無しさん
2022/09/14(水) 07:41:49.23ID:JkmtTv17 ClojureにはLogSeqでお世話になってる。Obsidianと併用
701デフォルトの名無しさん
2022/09/14(水) 09:46:52.30ID:ZrnGb3cN702デフォルトの名無しさん
2022/09/14(水) 09:49:05.48ID:RK5VR+Qw703デフォルトの名無しさん
2022/09/14(水) 10:07:19.36ID:K2Ymv4YJ 上ので思い出したけど
先にtypescriptやったあとrust入ったせいでリテラル型がないの違和感なんだけどなんか理由あるん?
enumでいいじゃん的な理由?
先にtypescriptやったあとrust入ったせいでリテラル型がないの違和感なんだけどなんか理由あるん?
enumでいいじゃん的な理由?
704デフォルトの名無しさん
2022/09/14(水) 10:42:39.99ID:gVevfQX/705デフォルトの名無しさん
2022/09/14(水) 11:18:49.59ID:qMxoDGM7 お待たせしました(awesomeレス 1of2 ※)
Clojure StackOverflow >愛され言語ランキング上位
2つあるawesome-clojureがどちらもマメに更新される ←🆕
CircleCIとかいくつかの実用サービスに使われてるのがすごい ←🆕
「本物のREPL」(未確認) ←🆕 LogSeq(未確認) ←🆕
D C言語と同等に高速で安全も満たす言語 ←🆕
better C/C++の先駆者 breaking changeは日常茶飯事 awesome-d 老舗の割にマメ ←🆕
Rust 試食コーナーで食べてもらって狂喜乱舞
GAFAM >Rustエコシステムには投資しない トリクルダウン無し 寡占する ←🆕
GAFAM >だか今は試食タイムだ ←🆕
GAFAM >「あま〜〜い」ってさけんで食レポしてる😏みんな食べに来てね😛 ←🆕
StackOverflow >愛され言語ランキング1位
JetBrains >Rustで作らしてくれーと言ってるけど許可降りない
KENTA >提灯コメント出さない
俺 >数学出来ないのでRustはキツイ規制の鶴亀算が史上最強
俺 >鶴亀算でRustフレームワークが充実することなんて無い
Rust >鶴亀算だけなら俺が安全性や正しさを確実に保証 unsafeは関知しない お前の責任だ
俺 >今はRustだけで良い。レベルアップはお断りだ
俺 >数学出来ないけど有能社員を指導したいとは思ってる
俺 >すべての理解が概念的 概念的に理解すれば簡単だ
有能社員 >Rustは学習コストが高い割に使えない
有能社員 >C/C++を書けないとRustは書けない、Rustは意味なし
有能社員 >Rustは言語オタク 二極化だと思ってたらHaskell衰退の道を追う ←🆕
有能社員 >Rustには興味のアンテナ張るだけ 先行投資なんてしない ←🆕
OCaml 関数型で速度を最優先するならこれ1択(or F#?) ←🆕 StackOverflow >愛され言語ではない
F# 関数型最速はF#(実例根拠が待たれる) ←🆕
Clojure StackOverflow >愛され言語ランキング上位
2つあるawesome-clojureがどちらもマメに更新される ←🆕
CircleCIとかいくつかの実用サービスに使われてるのがすごい ←🆕
「本物のREPL」(未確認) ←🆕 LogSeq(未確認) ←🆕
D C言語と同等に高速で安全も満たす言語 ←🆕
better C/C++の先駆者 breaking changeは日常茶飯事 awesome-d 老舗の割にマメ ←🆕
Rust 試食コーナーで食べてもらって狂喜乱舞
GAFAM >Rustエコシステムには投資しない トリクルダウン無し 寡占する ←🆕
GAFAM >だか今は試食タイムだ ←🆕
GAFAM >「あま〜〜い」ってさけんで食レポしてる😏みんな食べに来てね😛 ←🆕
StackOverflow >愛され言語ランキング1位
JetBrains >Rustで作らしてくれーと言ってるけど許可降りない
KENTA >提灯コメント出さない
俺 >数学出来ないのでRustはキツイ規制の鶴亀算が史上最強
俺 >鶴亀算でRustフレームワークが充実することなんて無い
Rust >鶴亀算だけなら俺が安全性や正しさを確実に保証 unsafeは関知しない お前の責任だ
俺 >今はRustだけで良い。レベルアップはお断りだ
俺 >数学出来ないけど有能社員を指導したいとは思ってる
俺 >すべての理解が概念的 概念的に理解すれば簡単だ
有能社員 >Rustは学習コストが高い割に使えない
有能社員 >C/C++を書けないとRustは書けない、Rustは意味なし
有能社員 >Rustは言語オタク 二極化だと思ってたらHaskell衰退の道を追う ←🆕
有能社員 >Rustには興味のアンテナ張るだけ 先行投資なんてしない ←🆕
OCaml 関数型で速度を最優先するならこれ1択(or F#?) ←🆕 StackOverflow >愛され言語ではない
F# 関数型最速はF#(実例根拠が待たれる) ←🆕
706デフォルトの名無しさん
2022/09/14(水) 11:21:13.69ID:puz0kIZm お待たせしました(awesomeレス 2of2 ※)
Go 実稼働分野でバリバリ活躍中 GitHub PullReq >TypeScriptとGoが圧倒的
Scala 実稼働分野でバリバリ活躍中 KENTA >日本では衰退しました
ScalaでのNetflix分岐点(未確認) ←🆕
Nim 試食コーナーでスルーされて意気消沈 英語できないので言語マニュアルの日本語訳がスゴい
Pythonからの乗り換えに最適(未確認 実例が待たれる)
Pony 開店前 唯一無二の売りがある模様 ripgrep並みの実例が待たれる awesome-ponyが2年以上更新されていない
参照の持ち方だけで6つもある(Reference Capability) ←🆕
behaviorが終わるごとに該当アクターでGCを回す ←🆕
Haskell アカデミック勢が根強い それ以外は衰退しました
FORTRAN 科学技術方面で強い、しばしば1択
Julia 科学技術方面開拓中 StackOverflow >愛され言語ランキング上位
COBOL 金融機関方面では既存システムで根強い それ以外は衰退しました
LISP JavaScriptと変わらん ブランディングした先人たちのマーケティング能力が驚き ←🆕
※ジョーク集です。「未確認」表示の有無に関わらず真偽を保証するものではありません。
Go 実稼働分野でバリバリ活躍中 GitHub PullReq >TypeScriptとGoが圧倒的
Scala 実稼働分野でバリバリ活躍中 KENTA >日本では衰退しました
ScalaでのNetflix分岐点(未確認) ←🆕
Nim 試食コーナーでスルーされて意気消沈 英語できないので言語マニュアルの日本語訳がスゴい
Pythonからの乗り換えに最適(未確認 実例が待たれる)
Pony 開店前 唯一無二の売りがある模様 ripgrep並みの実例が待たれる awesome-ponyが2年以上更新されていない
参照の持ち方だけで6つもある(Reference Capability) ←🆕
behaviorが終わるごとに該当アクターでGCを回す ←🆕
Haskell アカデミック勢が根強い それ以外は衰退しました
FORTRAN 科学技術方面で強い、しばしば1択
Julia 科学技術方面開拓中 StackOverflow >愛され言語ランキング上位
COBOL 金融機関方面では既存システムで根強い それ以外は衰退しました
LISP JavaScriptと変わらん ブランディングした先人たちのマーケティング能力が驚き ←🆕
※ジョーク集です。「未確認」表示の有無に関わらず真偽を保証するものではありません。
707デフォルトの名無しさん
2022/09/14(水) 14:26:54.73ID:zwrBt+Xf wsl2のdebian入れたら何故かgrepコマンドがなくてrust製のripgrep(rg)をいれたわ
708デフォルトの名無しさん
2022/09/14(水) 14:47:41.31ID:MCTxAUZT それ遅くないの?
709デフォルトの名無しさん
2022/09/14(水) 15:08:53.33ID:Xp2DUV88710デフォルトの名無しさん
2022/09/14(水) 17:43:41.36ID:glLuISAD WSL2にdebianの方の話だろ?
711デフォルトの名無しさん
2022/09/14(水) 17:45:19.09ID:e1B1zDJm712デフォルトの名無しさん
2022/09/14(水) 17:52:32.97ID:9tETuf2A >>711
値が"foo"という文字列以外が渡されるとコンパイルエラーになる関数とか書けないでしょ
値が"foo"という文字列以外が渡されるとコンパイルエラーになる関数とか書けないでしょ
713デフォルトの名無しさん
2022/09/14(水) 18:00:21.72ID:jv9cR4Ls ただ単にコンパイルがこれ以上遅くなる言語仕様を入れたくないだけ、何がゼロコスト抽象化だわwまったく見当違いも良いところ
714デフォルトの名無しさん
2022/09/14(水) 18:22:00.72ID:e1B1zDJm715デフォルトの名無しさん
2022/09/14(水) 18:26:53.48ID:9tETuf2A >>714
うん、分からないから教えてよ
うん、分からないから教えてよ
716デフォルトの名無しさん
2022/09/14(水) 18:35:03.91ID:v4ijbwnI typescript(+javascript)を言語機能(優劣、同等性)で敵に回すのは無謀だ
数的優位、実績が半端ない Rustがゴミの様だ
https://madnight.github.io/githut/#/pull_requests/2022/1/JavaScript,TypeScript,Swift,Go,Kotlin,Rust,Scala
数的優位、実績が半端ない Rustがゴミの様だ
https://madnight.github.io/githut/#/pull_requests/2022/1/JavaScript,TypeScript,Swift,Go,Kotlin,Rust,Scala
717デフォルトの名無しさん
2022/09/14(水) 18:40:04.75ID:fEwp+zOJ マクロでコンパイル時型エラーにできる?
実行時ならアサーション入れたりでマクロで何とかなりそうだけどコンパイル時に検出は無理くない?
個人的にはTypeScriptみたいな複雑さって本来過剰で、ブラウザ上のJSという特別な実行環境がゆえに必要になったもので、本来はenumとかで済までいいと思う。
実行時ならアサーション入れたりでマクロで何とかなりそうだけどコンパイル時に検出は無理くない?
個人的にはTypeScriptみたいな複雑さって本来過剰で、ブラウザ上のJSという特別な実行環境がゆえに必要になったもので、本来はenumとかで済までいいと思う。
718デフォルトの名無しさん
2022/09/14(水) 18:45:22.21ID:NFr/kVLx719デフォルトの名無しさん
2022/09/14(水) 18:49:12.89ID:lL+9RYqC720デフォルトの名無しさん
2022/09/14(水) 18:53:12.24ID:KdAr4qV+ >>717
マクロの引数をリテラル限定にしてその値をコンパイル時にチェックするくらいならできそうだけど
変数経由で渡されたときにその中身を確認するのは無理だろうな
Rustの依存型は提案されたけど入らなかったね(理由は忘れた)
マクロの引数をリテラル限定にしてその値をコンパイル時にチェックするくらいならできそうだけど
変数経由で渡されたときにその中身を確認するのは無理だろうな
Rustの依存型は提案されたけど入らなかったね(理由は忘れた)
721デフォルトの名無しさん
2022/09/14(水) 18:56:03.38ID:eqqO6UXU 自動車 船舶 航空宇宙のプログラムで求められる安全性ってRustは保証しないの?
722デフォルトの名無しさん
2022/09/14(水) 19:13:40.15ID:Jmciqxd+723デフォルトの名無しさん
2022/09/14(水) 19:22:13.99ID:KdAr4qV+ いや別人
自分はマクロを使っても完全なサポートは無理だと思ってるよ
マクロを使ってなんとか実現できそうなことを書いてみただけで
自分はマクロを使っても完全なサポートは無理だと思ってるよ
マクロを使ってなんとか実現できそうなことを書いてみただけで
724デフォルトの名無しさん
2022/09/14(水) 19:35:40.12ID:ynFB7Nxb 現実派の>>723さん、>>721についてはどう思いますか?
突き詰めるとメモリ安全性って自動車 船舶 航空宇宙でも大きなウェイトを占めていてもおかしくない気がするのです。
Rust方面の意識として乗り物関連は避けたいとかあるんですか?
「Chrome」で対処されているバグの種類
https://asset.watch.impress.co.jp/img/wf/docs/1439/971/image3.png
突き詰めるとメモリ安全性って自動車 船舶 航空宇宙でも大きなウェイトを占めていてもおかしくない気がするのです。
Rust方面の意識として乗り物関連は避けたいとかあるんですか?
「Chrome」で対処されているバグの種類
https://asset.watch.impress.co.jp/img/wf/docs/1439/971/image3.png
725デフォルトの名無しさん
2022/09/14(水) 19:39:33.00ID:9tETuf2A 中身読んでないけどこんなのがあるらしい
https://codezine.jp/article/detail/15541
https://codezine.jp/article/detail/15541
726デフォルトの名無しさん
2022/09/14(水) 19:41:21.82ID:ynFB7Nxb >>724画像の記事
「Chrome」は「MiraclePtr」でさらに安全に 〜Googleが「解放後メモリ利用」対策を開設 診断性が向上するという副次的効果も
https://forest.watch.impress.co.jp/docs/news/1439971.html
「Chrome」は「MiraclePtr」でさらに安全に 〜Googleが「解放後メモリ利用」対策を開設 診断性が向上するという副次的効果も
https://forest.watch.impress.co.jp/docs/news/1439971.html
727デフォルトの名無しさん
2022/09/14(水) 19:44:04.15ID:PyjIicam728デフォルトの名無しさん
2022/09/14(水) 19:46:27.51ID:ynFB7Nxb >>725
>安全を認定されたAdaツールチェーンの開発で培ってきた専門知識をRustコミュニティへ拡大する機会を提供する。
こういうのを待ってました!
>Ferrocene Rustコンパイラ
多分有償なんだろなorz
>安全を認定されたAdaツールチェーンの開発で培ってきた専門知識をRustコミュニティへ拡大する機会を提供する。
こういうのを待ってました!
>Ferrocene Rustコンパイラ
多分有償なんだろなorz
729デフォルトの名無しさん
2022/09/14(水) 19:50:08.79ID:BmzwXpH0730デフォルトの名無しさん
2022/09/14(水) 19:53:28.65ID:ynFB7Nxb >>727
トヨタはRust資産をOSSしてくれるんだろうか...
トヨタはRust資産をOSSしてくれるんだろうか...
731デフォルトの名無しさん
2022/09/14(水) 19:54:27.88ID:KdAr4qV+ >>728
FerroceneはRustコンパイラのISO26262認証取得を目指してるから
通れば自動車とかへの採用はあり得るよ
スポンサーもついているようだから少なくとも興味のある企業があるのは間違いない
Ferrocene自体はRustの特定バージョンの仕様を文書化して認証を取るという試みだから
コンパイラが別途有償になる予定はないはず
FerroceneはRustコンパイラのISO26262認証取得を目指してるから
通れば自動車とかへの採用はあり得るよ
スポンサーもついているようだから少なくとも興味のある企業があるのは間違いない
Ferrocene自体はRustの特定バージョンの仕様を文書化して認証を取るという試みだから
コンパイラが別途有償になる予定はないはず
732デフォルトの名無しさん
2022/09/14(水) 19:55:03.16ID:AxsRNHLb >>726
その記事を読むとChromeはC++のまま情けない解決策を取ろうとしてるなあ
特に参照カウンタ方式を強制するのは敗北に見える
メモリ使用量が増えると明記されているのはともかく
参照カウンタのデータ競合回避保護のためのオーバヘッドでパフォーマンスも大幅に悪化が予想されているのか
その記事を読むとChromeはC++のまま情けない解決策を取ろうとしてるなあ
特に参照カウンタ方式を強制するのは敗北に見える
メモリ使用量が増えると明記されているのはともかく
参照カウンタのデータ競合回避保護のためのオーバヘッドでパフォーマンスも大幅に悪化が予想されているのか
733デフォルトの名無しさん
2022/09/14(水) 19:58:45.25ID:ynFB7Nxb734デフォルトの名無しさん
2022/09/14(水) 20:00:07.72ID:c3IeBynX735デフォルトの名無しさん
2022/09/14(水) 20:05:15.38ID:ynFB7Nxb736デフォルトの名無しさん
2022/09/14(水) 20:09:59.80ID:c3IeBynX >>735
データ競合をコンパイル時点でゼロにすることに成功したのがRust
データ競合をコンパイル時点でゼロにすることに成功したのがRust
737デフォルトの名無しさん
2022/09/14(水) 20:16:19.59ID:tyPb8uvV Rustのデータ競合防止のやり方は効率性を犠牲にして安全側に倒してるだけでしょ
程度の違いこそあれ、純粋関数型で全部イミュータブルにすりゃデータ競合なんか起こらねえというのと同じようなもんだ
程度の違いこそあれ、純粋関数型で全部イミュータブルにすりゃデータ競合なんか起こらねえというのと同じようなもんだ
738デフォルトの名無しさん
2022/09/14(水) 20:16:52.96ID:ynFB7Nxb739デフォルトの名無しさん
2022/09/14(水) 20:27:11.32ID:KdAr4qV+ ゼロってことはないよ
標準ライブラリ内とか人間がデータ競合しないことを保証してるところはそれなりにあって、そこにバグが入ることはありうる
実際過去に発見されたことはあったはず
ただまぁ他言語はほとんどなにも保証してくれないから
それに比べれば十分メリットはあると思うけど
標準ライブラリ内とか人間がデータ競合しないことを保証してるところはそれなりにあって、そこにバグが入ることはありうる
実際過去に発見されたことはあったはず
ただまぁ他言語はほとんどなにも保証してくれないから
それに比べれば十分メリットはあると思うけど
740デフォルトの名無しさん
2022/09/14(水) 20:33:35.83ID:KdAr4qV+ あと今人間が保証してるとこを機械的に証明しようという試みはあって
そういうのがうまくいけばゼロだと言える日がくるかもね
(そうはいっても証明手順に抜けがあるかもとかあるので真にゼロとはいえないかもだけど)
そういうのがうまくいけばゼロだと言える日がくるかもね
(そうはいっても証明手順に抜けがあるかもとかあるので真にゼロとはいえないかもだけど)
741デフォルトの名無しさん
2022/09/14(水) 20:34:31.90ID:SxGO9/pM 並行安全がーとかいうけど言語自体やライブラリを跨いで共通のお作法で並行並列処理を書けるGoと違って
Rustはあまりにもお粗末すぎるから結局無駄なことしてるだけとしか思わない
Rustはあまりにもお粗末すぎるから結局無駄なことしてるだけとしか思わない
742デフォルトの名無しさん
2022/09/14(水) 20:42:58.80ID:9tETuf2A >>737
効率が必要ならunsafe使うとか、適材適所で手段を選べるようにしてるから純粋関数型のたとえはちょっと違う気もする
効率が必要ならunsafe使うとか、適材適所で手段を選べるようにしてるから純粋関数型のたとえはちょっと違う気もする
743デフォルトの名無しさん
2022/09/14(水) 20:49:55.99ID:7hx6Nwjm >>737
一般的にデータ競合安全性のためには
1. まず前提としてデータ競合の可能性がある場合にコンパイル時に自動的に必ず検知できること
2. プログラマーはデータ競合の可能性がある部分のうち下記3.以外の方法(アルゴリズムやデータ構造などの変更)が取れる場合は変更
3. データ競合の可能性があるとして残った部分はロックなどで競合回避
Rustが用意しているのは1.の実施と3.の機構の提供
効率性を高めるか犠牲にするかは2.の実施と3.の利用をどう行なうか次第でありプログラマーによる自由度がある
一般的にデータ競合安全性のためには
1. まず前提としてデータ競合の可能性がある場合にコンパイル時に自動的に必ず検知できること
2. プログラマーはデータ競合の可能性がある部分のうち下記3.以外の方法(アルゴリズムやデータ構造などの変更)が取れる場合は変更
3. データ競合の可能性があるとして残った部分はロックなどで競合回避
Rustが用意しているのは1.の実施と3.の機構の提供
効率性を高めるか犠牲にするかは2.の実施と3.の利用をどう行なうか次第でありプログラマーによる自由度がある
744デフォルトの名無しさん
2022/09/14(水) 20:58:16.45ID:tyPb8uvV うん、だからそれデフォルトの挙動が安全側になってるという話だよね
そのレベルなら、デフォルトで全部immutableで必要に応じてmutableにできる言語なら十分に対策になってると言えるのでは
そのレベルなら、デフォルトで全部immutableで必要に応じてmutableにできる言語なら十分に対策になってると言えるのでは
745デフォルトの名無しさん
2022/09/14(水) 20:59:30.08ID:1TdDwC+y746デフォルトの名無しさん
2022/09/14(水) 21:07:13.43ID:PNfc8XBO >>744
mutableを使った時点でデータ競合の可能性が発生するためコンパイラ等が検出する必要がある
一方で全てをimmutableにすると大量のガベージが発生して効率が悪い
効率と安全性を両立しているのはRust言語のみ
mutableを使った時点でデータ競合の可能性が発生するためコンパイラ等が検出する必要がある
一方で全てをimmutableにすると大量のガベージが発生して効率が悪い
効率と安全性を両立しているのはRust言語のみ
747デフォルトの名無しさん
2022/09/14(水) 21:15:24.31ID:c9vZvFEM GCあり言語ならストップザワールドやGCスパイクとか体験できるじゃん。
でもRustだとそれができなくなる。
でもRustだとそれができなくなる。
748デフォルトの名無しさん
2022/09/14(水) 21:18:22.32ID:I1qCwdEP >>747
だからなに?
だからなに?
749デフォルトの名無しさん
2022/09/14(水) 21:23:32.90ID:9tETuf2A750デフォルトの名無しさん
2022/09/14(水) 21:58:51.43ID:VKXXNtX1 全部immutableと言うけど、スレッド間で通信するメッセージがimmutableなだけで
スレッド自体の状態は刻々と変化する
マルチスレッドが何の役に立つのかさっぱり分からない人にとっては
状態遷移をするにはスレッドを使うしかない言語の方が分かりやすい
スレッド自体の状態は刻々と変化する
マルチスレッドが何の役に立つのかさっぱり分からない人にとっては
状態遷移をするにはスレッドを使うしかない言語の方が分かりやすい
751デフォルトの名無しさん
2022/09/14(水) 22:33:42.94ID:ynFB7Nxb752デフォルトの名無しさん
2022/09/14(水) 23:00:59.98ID:wGnSnwqD >>751
Rustは一貫して以下のルールでシンプルに安全性を保証している
「Rustコンパイラはunsafe部分を除いてプログラム全体の安全性を自動的に保証する」
「unsafe部分の保証と影響を外部に出さない保証のみプログラマーの責任となる」
つまりunsafeを用いたとしてもその局所的なコードのみ人間が注視するだけでプログラム全体が保証される仕組みをRustが提供している
従来の言語は安全でない部分がプログラム全体に散らばっている、かつ、言語が安全を保証する仕組みがない、という悲惨な状況であった
Rustは一貫して以下のルールでシンプルに安全性を保証している
「Rustコンパイラはunsafe部分を除いてプログラム全体の安全性を自動的に保証する」
「unsafe部分の保証と影響を外部に出さない保証のみプログラマーの責任となる」
つまりunsafeを用いたとしてもその局所的なコードのみ人間が注視するだけでプログラム全体が保証される仕組みをRustが提供している
従来の言語は安全でない部分がプログラム全体に散らばっている、かつ、言語が安全を保証する仕組みがない、という悲惨な状況であった
753デフォルトの名無しさん
2022/09/14(水) 23:22:08.01ID:c9vZvFEM >>751
自動車業界はCやC++を使ってる。
自動車業界はCやC++を使ってる。
754デフォルトの名無しさん
2022/09/14(水) 23:41:24.29ID:ynFB7Nxb755デフォルトの名無しさん
2022/09/14(水) 23:48:26.40ID:9tETuf2A756デフォルトの名無しさん
2022/09/14(水) 23:51:29.95ID:ynFB7Nxb757デフォルトの名無しさん
2022/09/14(水) 23:56:26.57ID:ynFB7Nxb 普段は見てるだけなのですが、いいタイミングで便乗出来ました。
こういう現場もあるよという話が出来てよかったです。では。
こういう現場もあるよという話が出来てよかったです。では。
758デフォルトの名無しさん
2022/09/15(木) 00:02:18.55ID:PSTi1Gas GoogleとMicrosoftが共に各々で語っているようにC/C++で書かれた大規模ソフトのバグの7割はメモリ関係
例えば>>724のChromeでも7割がメモリ管理バグ
これがRustに移行すれば無くせるのだから新たなシステム作りでC/C++を採用するのはバカだけ
例えば>>724のChromeでも7割がメモリ管理バグ
これがRustに移行すれば無くせるのだから新たなシステム作りでC/C++を採用するのはバカだけ
759デフォルトの名無しさん
2022/09/15(木) 00:05:23.23ID:nmd+p/jZ760デフォルトの名無しさん
2022/09/15(木) 00:32:04.75ID:RdLyWE92 ファブルって最初は絵が受け付けなくて読んでなかったけど、いざ読んでみたら面白かった。
761デフォルトの名無しさん
2022/09/15(木) 00:34:56.77ID:YqiJR5lb >>759
Rustの場合は常に安全が成立するから安全は選択肢ではない
アルゴリズムやデータ構造などを工夫することにより排他ロックなどを必要最小限にして効率化することはプログラマーの自由裁量
Rustにおいて安全と効率は両立できる
Rustの場合は常に安全が成立するから安全は選択肢ではない
アルゴリズムやデータ構造などを工夫することにより排他ロックなどを必要最小限にして効率化することはプログラマーの自由裁量
Rustにおいて安全と効率は両立できる
762デフォルトの名無しさん
2022/09/15(木) 02:14:17.68ID:/Qo8z/Hb Rust「統一教会のほうから来ました」
763デフォルトの名無しさん
2022/09/15(木) 08:27:21.28ID:fhKzGp48 Rustは教官付き教習車だから、コンパイラの言うとおりに運転しないとブレーキ踏まれて前に進めない。
ソースコードのマネージャーにとっては福音だけどな。自分でコーティング規約を用意してコーダーに強制しなくても、コーダーが自分勝手にプログラムしてトラブルになる可能性が減る。
コーダーがコーティングしやすいかどうか、とかどうでもいい。
企業がRustを推奨し始めたのは、企業がマネージャーサイドでソースコードの管理コストを減らしたいから。コーダーは言うこと聞くやつを連れてくればいいという発想だよ。
ソースコードのマネージャーにとっては福音だけどな。自分でコーティング規約を用意してコーダーに強制しなくても、コーダーが自分勝手にプログラムしてトラブルになる可能性が減る。
コーダーがコーティングしやすいかどうか、とかどうでもいい。
企業がRustを推奨し始めたのは、企業がマネージャーサイドでソースコードの管理コストを減らしたいから。コーダーは言うこと聞くやつを連れてくればいいという発想だよ。
764デフォルトの名無しさん
2022/09/15(木) 08:31:31.13ID:P/wAPOM3 >>762
統一教会は違くね?
統一教会は違くね?
765デフォルトの名無しさん
2022/09/15(木) 08:56:48.93ID:Z4cppPos766デフォルトの名無しさん
2022/09/15(木) 09:07:58.83ID:P/wAPOM3767デフォルトの名無しさん
2022/09/15(木) 10:01:50.79ID:rrfffa1i お待たせしました(awesomeレス 1of2 ※)
Clojure StackOverflow >愛され言語ランキング上位 2つあるawesome-clojureがどちらもマメに更新されてる
CircleCIとかいくつかの実用サービスに使われてるのがすごい 「本物のREPL」(未確認) LogSeq
Apple,CircleCI,Cisco,Cognitect,Nubank🏧,Walmart >使ってますが何か? https://docs.google.com/spreadsheets/d/1jBQD-rzOeGeKgLjsQ21r4YfEHp8XOpB_vl6TGJEBj3g/edit#gid=0 🆕
Rust 試食コーナーで食べてもらって狂喜乱舞
GAFAM >Rustエコシステムには投資しない トリクルダウン無し 寡占する GAFAM >だが今は試食タイムだ
GAFAM >「あま〜〜い」ってさけんで食レポしてる😏みんな食べに来てね😛
StackOverflow >愛され言語ランキング1位
JetBrains >Rustで作らしてくれーと言ってるけど許可降りない
KENTA >提灯コメント出さない
俺 >数学出来ないのでRustはキツイ規制の鶴亀算が史上最強
俺 >鶴亀算でRustフレームワークが充実することなんて無い
Rust >鶴亀算だけなら俺が安全性や正しさを確実に保証 unsafeは関知しない お前の責任だ
俺 >今はRustだけで良い。レベルアップはお断りだ
俺 >数学出来ないけど有能社員を指導したいとは思ってる
俺 >すべての理解が概念的 概念的に理解すれば簡単だ
有能社員 >Rustは学習コストが高い割に使えない
有能社員 >C/C++を書けないとRustは書けない、Rustは意味なし
有能社員 >Rustは言語オタク 二極化だと思ってたらHaskell衰退の道を追う
有能社員 >Rustには興味のアンテナ張るだけ 先行投資なんてしない
現実派 >データ競合がコンパイル時点でゼロってことはない。JARO⚠案件だ 🆕
下っ端社員 >RustはGAFAMなんかより自動車ISO認証級(仮)の実績積み上げがないと、言い出すのも怖い😩 🆕
Rustは教官付き教習車だから、コンパイラの言うとおりに運転しないとブレーキ踏まれて前に進めない。 🆕
Clojure StackOverflow >愛され言語ランキング上位 2つあるawesome-clojureがどちらもマメに更新されてる
CircleCIとかいくつかの実用サービスに使われてるのがすごい 「本物のREPL」(未確認) LogSeq
Apple,CircleCI,Cisco,Cognitect,Nubank🏧,Walmart >使ってますが何か? https://docs.google.com/spreadsheets/d/1jBQD-rzOeGeKgLjsQ21r4YfEHp8XOpB_vl6TGJEBj3g/edit#gid=0 🆕
Rust 試食コーナーで食べてもらって狂喜乱舞
GAFAM >Rustエコシステムには投資しない トリクルダウン無し 寡占する GAFAM >だが今は試食タイムだ
GAFAM >「あま〜〜い」ってさけんで食レポしてる😏みんな食べに来てね😛
StackOverflow >愛され言語ランキング1位
JetBrains >Rustで作らしてくれーと言ってるけど許可降りない
KENTA >提灯コメント出さない
俺 >数学出来ないのでRustはキツイ規制の鶴亀算が史上最強
俺 >鶴亀算でRustフレームワークが充実することなんて無い
Rust >鶴亀算だけなら俺が安全性や正しさを確実に保証 unsafeは関知しない お前の責任だ
俺 >今はRustだけで良い。レベルアップはお断りだ
俺 >数学出来ないけど有能社員を指導したいとは思ってる
俺 >すべての理解が概念的 概念的に理解すれば簡単だ
有能社員 >Rustは学習コストが高い割に使えない
有能社員 >C/C++を書けないとRustは書けない、Rustは意味なし
有能社員 >Rustは言語オタク 二極化だと思ってたらHaskell衰退の道を追う
有能社員 >Rustには興味のアンテナ張るだけ 先行投資なんてしない
現実派 >データ競合がコンパイル時点でゼロってことはない。JARO⚠案件だ 🆕
下っ端社員 >RustはGAFAMなんかより自動車ISO認証級(仮)の実績積み上げがないと、言い出すのも怖い😩 🆕
Rustは教官付き教習車だから、コンパイラの言うとおりに運転しないとブレーキ踏まれて前に進めない。 🆕
768デフォルトの名無しさん
2022/09/15(木) 10:04:34.27ID:HopAynZ9 お待たせしました(awesomeレス 2of2 ※)
D C言語と同等に高速で安全も満たす言語 better C/C++の先駆者 breaking changeは日常茶飯事 awesome-d 老舗の割にマメ
OCaml 関数型で速度を最優先するならこれ1択(or F#?) StackOverflow >愛され言語ではない
F# 関数型最速はF#(実例根拠が待たれる)
Go 実稼働分野でバリバリ活躍中 GitHub PullReq >TypeScriptとGoが圧倒的
Scala 実稼働分野でバリバリ活躍中 KENTA >日本では衰退しました ScalaでのNetflix分岐点(未確認)
Nim 試食コーナーでスルーされて意気消沈 英語できないので言語マニュアルの日本語訳がスゴい
Pythonからの乗り換えに最適(未確認 実例が待たれる)
Pony 開店前 唯一無二の売りがある模様 ripgrep並みの実例が待たれる awesome-ponyが2年以上更新されていない
参照の持ち方だけで6つもある(Reference Capability)
behaviorが終わるごとに該当アクターでGCを回す
Haskell アカデミック勢が根強い それ以外は衰退しました(未確認)
Tesla,Microsoft,Meta,GitHub,一流銀行🏧 >使ってますが何か? https://serokell.io/blog/top-software-written-in-haskell 🆕
Tesla >We use Haskell to auto-generate C code that is compiled into vehicle🚗 firmware. 🆕
下っ端社員 >いい話だ。だが結局☪かよ 🆕
Julia 科学技術方面開拓中 StackOverflow >愛され言語ランキング上位
FORTRAN 科学技術方面で強い、しばしば1択
COBOL 金融機関方面では既存システムで根強い それ以外は衰退しました
Lisp JavaScriptと変わらん ブランディングした先人たちのマーケティング能力が驚き
惑星探査機🛰とか特殊な用途、身近なところでルンバ🤖がLisp 🆕
Awesome Lisp Company https://github.com/azzamsa/awesome-lisp-companies 🆕
※ジョーク集です。「未確認」表示の有無に関わらず真偽を保証するものではありません。
D C言語と同等に高速で安全も満たす言語 better C/C++の先駆者 breaking changeは日常茶飯事 awesome-d 老舗の割にマメ
OCaml 関数型で速度を最優先するならこれ1択(or F#?) StackOverflow >愛され言語ではない
F# 関数型最速はF#(実例根拠が待たれる)
Go 実稼働分野でバリバリ活躍中 GitHub PullReq >TypeScriptとGoが圧倒的
Scala 実稼働分野でバリバリ活躍中 KENTA >日本では衰退しました ScalaでのNetflix分岐点(未確認)
Nim 試食コーナーでスルーされて意気消沈 英語できないので言語マニュアルの日本語訳がスゴい
Pythonからの乗り換えに最適(未確認 実例が待たれる)
Pony 開店前 唯一無二の売りがある模様 ripgrep並みの実例が待たれる awesome-ponyが2年以上更新されていない
参照の持ち方だけで6つもある(Reference Capability)
behaviorが終わるごとに該当アクターでGCを回す
Haskell アカデミック勢が根強い それ以外は衰退しました(未確認)
Tesla,Microsoft,Meta,GitHub,一流銀行🏧 >使ってますが何か? https://serokell.io/blog/top-software-written-in-haskell 🆕
Tesla >We use Haskell to auto-generate C code that is compiled into vehicle🚗 firmware. 🆕
下っ端社員 >いい話だ。だが結局☪かよ 🆕
Julia 科学技術方面開拓中 StackOverflow >愛され言語ランキング上位
FORTRAN 科学技術方面で強い、しばしば1択
COBOL 金融機関方面では既存システムで根強い それ以外は衰退しました
Lisp JavaScriptと変わらん ブランディングした先人たちのマーケティング能力が驚き
惑星探査機🛰とか特殊な用途、身近なところでルンバ🤖がLisp 🆕
Awesome Lisp Company https://github.com/azzamsa/awesome-lisp-companies 🆕
※ジョーク集です。「未確認」表示の有無に関わらず真偽を保証するものではありません。
769デフォルトの名無しさん
2022/09/15(木) 10:16:05.31ID:AewR1FC3770デフォルトの名無しさん
2022/09/15(木) 10:17:45.56ID:P/wAPOM3 >>768
C言語がないぞ
C言語がないぞ
771デフォルトの名無しさん
2022/09/15(木) 10:18:10.05ID:P/wAPOM3 >>768
C言語がないぞ
C言語がないぞ
772デフォルトの名無しさん
2022/09/15(木) 10:39:25.20ID:zVxtxmNw773デフォルトの名無しさん
2022/09/15(木) 10:59:43.56ID:OR8C0I/3774デフォルトの名無しさん
2022/09/15(木) 11:07:06.60ID:P/wAPOM3 Rust を使用した Windows での開発の概要
https://docs.microsoft.com/ja-jp/windows/dev-environment/rust/overview
https://docs.microsoft.com/ja-jp/windows/dev-environment/rust/overview
775デフォルトの名無しさん
2022/09/15(木) 12:17:06.07ID:YIKrY0vS なんでRust信者ってID変えんの?
自信ないからかな?
自信ないからかな?
776デフォルトの名無しさん
2022/09/15(木) 12:24:52.85ID:Yrdeu38e777デフォルトの名無しさん
2022/09/15(木) 12:49:54.52ID:6n/goZ6T 「教官、時速40キロで走っていると原付に追い抜かれて行きます。それに時間に遅れます!」
「奴は自己責任だ。お前は俺だけを見ろ」
「はい! あっ、事故っちゃいました、テヘ」
「ばっかも〜ん。しょうがないやつだな」
Rust、愛され言語No.1
「奴は自己責任だ。お前は俺だけを見ろ」
「はい! あっ、事故っちゃいました、テヘ」
「ばっかも〜ん。しょうがないやつだな」
Rust、愛され言語No.1
778デフォルトの名無しさん
2022/09/15(木) 13:02:27.27ID:AewR1FC3779デフォルトの名無しさん
2022/09/15(木) 13:21:46.17ID:N+NQH7M1780デフォルトの名無しさん
2022/09/15(木) 14:34:36.53ID:7O/O6eid まあ実際はrustで開発なんてほとんどしてないからな。
だから自信のない奴が無理矢理褒めてるんだよ。
だから自信のない奴が無理矢理褒めてるんだよ。
781デフォルトの名無しさん
2022/09/15(木) 14:42:23.71ID:AewR1FC3 >>780
褒めてる側に怪しい人がいるのはそうだけど貶してる側も具体的な話に乏しくて印象だけで語っている人がいるような
褒めてる側に怪しい人がいるのはそうだけど貶してる側も具体的な話に乏しくて印象だけで語っている人がいるような
782デフォルトの名無しさん
2022/09/15(木) 14:58:36.52ID:YdvnBlXp Rustは荒れるので話題転換
Clojure Haskell Lisp辺りの過去に一世風靡?した言語が先端分野で地道に使われ続けてるのは
単純に個別要因(研究者の好みとか)なのだろうか。
Lispくらいの歴史があるのならともかくClojure Haskellである必要性必然性が理解できない。
リストにあるNimも何を目指してるのか、何が得意なのか見えない。
Pythonからの乗り換えに最適、って出てくるのはNumpyも使ってないPythonコードの高速化例が主で、
この程度で「研究者の好み」に響くのか疑問
Clojure Haskell Lisp辺りの過去に一世風靡?した言語が先端分野で地道に使われ続けてるのは
単純に個別要因(研究者の好みとか)なのだろうか。
Lispくらいの歴史があるのならともかくClojure Haskellである必要性必然性が理解できない。
リストにあるNimも何を目指してるのか、何が得意なのか見えない。
Pythonからの乗り換えに最適、って出てくるのはNumpyも使ってないPythonコードの高速化例が主で、
この程度で「研究者の好み」に響くのか疑問
783デフォルトの名無しさん
2022/09/15(木) 15:09:17.30ID:YdvnBlXp 率直に言うと、Nimには開発者、コミュニティの言語オタク感が、、(いい意味で)
784デフォルトの名無しさん
2022/09/15(木) 15:26:45.00ID:5tgK0LqN785デフォルトの名無しさん
2022/09/15(木) 15:28:52.49ID:YnVRyWH8 >>782
エンジニアの単なる個人的な好みだよ
スタートアップの開発はだいたいエンジニア1人~せいぜい2,3人で始まり、作り方について外から誰も口出さないから、何でも好きなものを採用できる
とはいえあまり変なものは後からリプレースされることも多いが、あえて関数型使いたがるような奴は比較的優秀だから結果的に生き残りやすいんだろうね
エンジニアの単なる個人的な好みだよ
スタートアップの開発はだいたいエンジニア1人~せいぜい2,3人で始まり、作り方について外から誰も口出さないから、何でも好きなものを採用できる
とはいえあまり変なものは後からリプレースされることも多いが、あえて関数型使いたがるような奴は比較的優秀だから結果的に生き残りやすいんだろうね
786デフォルトの名無しさん
2022/09/15(木) 17:40:49.72ID:DPUhxpSw >>776
どの言語もそうだけど慣れの問題だけだよ
慣れるまでは躓きやすいけど
慣れてしまえばそこに何か支障があるわけではなく快適
もちろん手続き型言語しか使ったことがなかった人が関数型言語を始めれば 最初だけカルチャーショック的なものもあるかもしれない
Rustは従来の手続き型言語のバリエーションの範囲内であり難しい点はなにもない
最近は増えてる関数型プログラミングを積極的にサポートしているだけの普通の手続き型言語である
どの言語もそうだけど慣れの問題だけだよ
慣れるまでは躓きやすいけど
慣れてしまえばそこに何か支障があるわけではなく快適
もちろん手続き型言語しか使ったことがなかった人が関数型言語を始めれば 最初だけカルチャーショック的なものもあるかもしれない
Rustは従来の手続き型言語のバリエーションの範囲内であり難しい点はなにもない
最近は増えてる関数型プログラミングを積極的にサポートしているだけの普通の手続き型言語である
787デフォルトの名無しさん
2022/09/15(木) 18:14:28.13ID:OR8C0I/3 ブレーキ云々は関数型ではなく静的型に責任がある
と理解するまでに10年単位の時間を消費してるのが現実
と理解するまでに10年単位の時間を消費してるのが現実
788デフォルトの名無しさん
2022/09/15(木) 18:19:41.49ID:uryhzbE3 lispはプロトタイプから本番に移行するに向いている的な事をどこかで見かけたんだけど、何か理由あるのかな?
本番であれば、今時は静的型付けの方が実行前にミスを減らせて良さそうって思うんだけど。
本番であれば、今時は静的型付けの方が実行前にミスを減らせて良さそうって思うんだけど。
789デフォルトの名無しさん
2022/09/15(木) 18:30:04.54ID:AewR1FC3 lispで思い出される文章はこれ
http://practical-scheme.net/trans/beating-the-averages-j.html
http://practical-scheme.net/trans/beating-the-averages-j.html
790デフォルトの名無しさん
2022/09/15(木) 18:42:43.79ID:/dOm+x1c Concurrencyについては詳しくないんだけど
goはやっぱりつよいの?
erlangよりつよいの?
goはやっぱりつよいの?
erlangよりつよいの?
791デフォルトの名無しさん
2022/09/15(木) 18:55:22.88ID:fhKzGp48792デフォルトの名無しさん
2022/09/15(木) 19:08:20.73ID:QksYVlPK >>777
そういえば前スレでrustは原付(php)に速度で負けてたよね
そういえば前スレでrustは原付(php)に速度で負けてたよね
793デフォルトの名無しさん
2022/09/15(木) 19:48:17.43ID:/Qo8z/Hb 統一教会「Rustをお持ちしました」
794デフォルトの名無しさん
2022/09/15(木) 20:20:12.75ID:+mjTxJT1 嫌いなものにはとりあえず統一教会と絡ませておけば批判したことにできる頭の具合が羨ましい
795デフォルトの名無しさん
2022/09/15(木) 21:03:43.45ID:/Qo8z/Hb 統一教会「晋三を捧げよ」
796デフォルトの名無しさん
2022/09/15(木) 21:29:46.27ID:/Qo8z/Hb >>794
いやあ、それほどでも(照
いやあ、それほどでも(照
797デフォルトの名無しさん
2022/09/15(木) 21:32:22.04ID:z9CUv+9j 世界統一平和自民党から怒られるぞw
798デフォルトの名無しさん
2022/09/15(木) 21:55:28.22ID:/Qo8z/Hb マジか。
799デフォルトの名無しさん
2022/09/15(木) 22:18:19.78ID:rqzHv7Xe >>788
common lisp とかだとあとから型書いてパフォーマンス上がる処理系とかあった気がするし、プロトタイプから色々柔軟に改修しやすいとかあったのかもね。
common lisp とかだとあとから型書いてパフォーマンス上がる処理系とかあった気がするし、プロトタイプから色々柔軟に改修しやすいとかあったのかもね。
800デフォルトの名無しさん
2022/09/15(木) 23:09:10.28ID:KFRYW2wo801デフォルトの名無しさん
2022/09/15(木) 23:18:38.32ID:M8k2LDUe バージョンが 1.0 に達していない言語は混乱するだけだから入れなくていいよ
必要なら専用スレを立てた方がいい
必要なら専用スレを立てた方がいい
802デフォルトの名無しさん
2022/09/16(金) 00:51:51.14ID:T6py8i07 genesisを入れろ
803デフォルトの名無しさん
2022/09/16(金) 01:45:52.39ID:gYqpDin4 ちゃんと>>1に「スレタイ以外の言語もok」と書かれているように
それ以外の言語の話もこのスレでは歓迎です
スレタイは文字数制限があるため全ての言語を列挙することはできません
もし話題の多い言語が出てくれば話題の少ない言語と交代することになるでしょう
登場して20年以上経つ古い言語はもちろん対象外です
それ以外の言語の話もこのスレでは歓迎です
スレタイは文字数制限があるため全ての言語を列挙することはできません
もし話題の多い言語が出てくれば話題の少ない言語と交代することになるでしょう
登場して20年以上経つ古い言語はもちろん対象外です
804デフォルトの名無しさん
2022/09/16(金) 06:52:08.13ID:fjE4y/uE Rustを外せ(コッソリ
805デフォルトの名無しさん
2022/09/16(金) 06:56:42.28ID:3KsrPmkI ここが隔離スレだろ
806デフォルトの名無しさん
2022/09/16(金) 07:49:14.15ID:9X7PH4Bp Rustの話題はRustスレでいいだろ
807デフォルトの名無しさん
2022/09/16(金) 07:52:17.18ID:ATWJ//93 >>796
彼女が企画もののAVに出てそう
彼女が企画もののAVに出てそう
808デフォルトの名無しさん
2022/09/16(金) 08:18:42.51ID:g+vpwU6C >>790
goは聞きかじりだけどもシングルスレッドのコードを気楽に拡張して同時実行にできることが売りに見える
erlangは最初から並列であることを求めてるから方向性が違う
どっちも強いは成り立つんじゃないかな
goは聞きかじりだけどもシングルスレッドのコードを気楽に拡張して同時実行にできることが売りに見える
erlangは最初から並列であることを求めてるから方向性が違う
どっちも強いは成り立つんじゃないかな
809デフォルトの名無しさん
2022/09/16(金) 10:19:44.03ID:0Y0F2QEG お待たせしました(awesomeレス 1of3 ※)
Clojure StackOverflow >愛され言語ランキング上位 2つあるawesome-clojureがどちらもマメに更新されてる
CircleCIとかいくつかの実用サービスに使われてるのがすごい 「本物のREPL」(未確認) LogSeq
Apple,CircleCI,Cisco,Cognitect,Nubank🏧,Walmart >使ってますが何か? https://docs.google.com/spreadsheets/d/1jBQD-rzOeGeKgLjsQ21r4YfEHp8XOpB_vl6TGJEBj3g/edit#gid=0
Rust 試食コーナーで食べてもらって狂喜乱舞
GAFAM >Rustエコシステムには投資しない トリクルダウン無し 寡占する GAFAM >だが今は試食タイムだ
GAFAM >「あま〜〜い」ってさけんで食レポしてる😏みんな食べに来てね😛
StackOverflow >愛され言語ランキング1位
JetBrains >Rustで作らしてくれーと言ってるけど許可降りない
KENTA >提灯コメント出さない
俺 >数学出来ないのでRustはキツイ規制の鶴亀算が史上最強 鶴亀算でRustフレームワークが充実することなんて無い
Rust >鶴亀算だけなら俺が安全性や正しさを確実に保証 unsafe☢は関知しない お前の責任だ
俺 >今はRustだけで良い。レベルアップはお断りだ 数学出来ないけど有能社員を指導したいとは思ってる すべての理解が概念的 概念的に理解すれば簡単だ
有能社員 >Rustは学習コストが高い割に使えない C/C++を書けないとRustは書けない、Rustは意味なし
有能社員 >Rustは言語オタク 二極化だと思ってたらHaskell衰退の道を追う Rustには興味のアンテナ張るだけ 先行投資なんてしない
現実派 >データ競合がコンパイル時点でゼロってことはない。JARO⚠案件だ
下っ端社員 >RustはGAFAMなんかより自動車ISO認証級(仮)の実績積み上げがないと、言い出すのも怖い😩
Rustは教官付き教習車だから、コンパイラの言うとおりに運転しないとブレーキ踏まれて前に進めない。
現実派 >具体的な話マダー?😡 >絶壁の学習曲線はRustの重大な問題 🆕
Clojure StackOverflow >愛され言語ランキング上位 2つあるawesome-clojureがどちらもマメに更新されてる
CircleCIとかいくつかの実用サービスに使われてるのがすごい 「本物のREPL」(未確認) LogSeq
Apple,CircleCI,Cisco,Cognitect,Nubank🏧,Walmart >使ってますが何か? https://docs.google.com/spreadsheets/d/1jBQD-rzOeGeKgLjsQ21r4YfEHp8XOpB_vl6TGJEBj3g/edit#gid=0
Rust 試食コーナーで食べてもらって狂喜乱舞
GAFAM >Rustエコシステムには投資しない トリクルダウン無し 寡占する GAFAM >だが今は試食タイムだ
GAFAM >「あま〜〜い」ってさけんで食レポしてる😏みんな食べに来てね😛
StackOverflow >愛され言語ランキング1位
JetBrains >Rustで作らしてくれーと言ってるけど許可降りない
KENTA >提灯コメント出さない
俺 >数学出来ないのでRustはキツイ規制の鶴亀算が史上最強 鶴亀算でRustフレームワークが充実することなんて無い
Rust >鶴亀算だけなら俺が安全性や正しさを確実に保証 unsafe☢は関知しない お前の責任だ
俺 >今はRustだけで良い。レベルアップはお断りだ 数学出来ないけど有能社員を指導したいとは思ってる すべての理解が概念的 概念的に理解すれば簡単だ
有能社員 >Rustは学習コストが高い割に使えない C/C++を書けないとRustは書けない、Rustは意味なし
有能社員 >Rustは言語オタク 二極化だと思ってたらHaskell衰退の道を追う Rustには興味のアンテナ張るだけ 先行投資なんてしない
現実派 >データ競合がコンパイル時点でゼロってことはない。JARO⚠案件だ
下っ端社員 >RustはGAFAMなんかより自動車ISO認証級(仮)の実績積み上げがないと、言い出すのも怖い😩
Rustは教官付き教習車だから、コンパイラの言うとおりに運転しないとブレーキ踏まれて前に進めない。
現実派 >具体的な話マダー?😡 >絶壁の学習曲線はRustの重大な問題 🆕
810デフォルトの名無しさん
2022/09/16(金) 10:22:00.77ID:RyrM8365 お待たせしました(awesomeレス 2of2 ※)
D C言語と同等に高速で安全も満たす言語 better C/C++の先駆者 breaking changeは日常茶飯事 awesome-d 老舗の割にマメ
OCaml 関数型で速度を最優先するならこれ1択(or F#?) StackOverflow >愛され言語ではない
F# 関数型最速はF#(実例根拠が待たれる)
Go 実稼働分野でバリバリ活躍中 GitHub PullReq >TypeScriptとGoが圧倒的
Scala 実稼働分野でバリバリ活躍中 KENTA >日本では衰退しました ScalaでのNetflix分岐点(未確認)
Nim 試食コーナーでスルーされて意気消沈 英語できないので言語マニュアルの日本語訳がスゴい
Pythonからの乗り換えに最適(未確認 Numpy使ってないPythonコードの高速化例が主?) 🆕
Pony 開店前 awesome-ponyが2年以上更新されていない
参照の持ち方だけで6つもある(Reference Capability) behaviorが終わるごとに該当アクターでGCを回す
湧く沸くRust >High-Performance Safe Actor Programming https://news.ycombinator.com/item?id=25957307 🆕
Haskell アカデミック勢が根強い それ以外は衰退しました(未確認)
Tesla,Microsoft,Meta,GitHub,一流銀行🏧 >使ってますが何か? https://serokell.io/blog/top-software-written-in-haskell
Tesla >We use Haskell to auto-generate C code that is compiled into vehicle🚗 firmware.
下っ端社員 >いい話だ。だが結局☪かよ
Julia 科学技術方面開拓中 StackOverflow >愛され言語ランキング上位
FORTRAN 科学技術方面で強い、しばしば1択
COBOL 金融機関方面では既存システムで根強い それ以外は衰退しました
D C言語と同等に高速で安全も満たす言語 better C/C++の先駆者 breaking changeは日常茶飯事 awesome-d 老舗の割にマメ
OCaml 関数型で速度を最優先するならこれ1択(or F#?) StackOverflow >愛され言語ではない
F# 関数型最速はF#(実例根拠が待たれる)
Go 実稼働分野でバリバリ活躍中 GitHub PullReq >TypeScriptとGoが圧倒的
Scala 実稼働分野でバリバリ活躍中 KENTA >日本では衰退しました ScalaでのNetflix分岐点(未確認)
Nim 試食コーナーでスルーされて意気消沈 英語できないので言語マニュアルの日本語訳がスゴい
Pythonからの乗り換えに最適(未確認 Numpy使ってないPythonコードの高速化例が主?) 🆕
Pony 開店前 awesome-ponyが2年以上更新されていない
参照の持ち方だけで6つもある(Reference Capability) behaviorが終わるごとに該当アクターでGCを回す
湧く沸くRust >High-Performance Safe Actor Programming https://news.ycombinator.com/item?id=25957307 🆕
Haskell アカデミック勢が根強い それ以外は衰退しました(未確認)
Tesla,Microsoft,Meta,GitHub,一流銀行🏧 >使ってますが何か? https://serokell.io/blog/top-software-written-in-haskell
Tesla >We use Haskell to auto-generate C code that is compiled into vehicle🚗 firmware.
下っ端社員 >いい話だ。だが結局☪かよ
Julia 科学技術方面開拓中 StackOverflow >愛され言語ランキング上位
FORTRAN 科学技術方面で強い、しばしば1択
COBOL 金融機関方面では既存システムで根強い それ以外は衰退しました
811デフォルトの名無しさん
2022/09/16(金) 10:24:50.31ID:bc2jlm7t Lisp JavaScriptと変わらん ブランディングした先人たちのマーケティング能力が驚き
惑星探査機🛰とか特殊な用途、身近なところでルンバ🤖がLisp
Awesome Lisp Company https://github.com/azzamsa/awesome-lisp-companies
プロトタイプから本番に移行 柔軟に改修しやすい common lisp あとから型書いてパフォーマンスUp 🆕
思い出 >https://practical-scheme.net/trans/beating-the-averages-j.html >オジさん🧓は言語を変えない 🆕
C C言語がないぞ C言語がないぞ(大事なことだから2回) 🆕
php 原付 >静的型はブレーキ🛵 俺にブレーキはない 10年経って分かった <matz😚 🆕
欧米企業「最初のバージョンは常に捨てられる」 🆕
「アイデアは価値がない、アイデアを誰より早く形にして価値がある」 🆕
Jakt https://github.com/SerenityOS/jakt 🆕
Memory safety, Math safety, performance, transpiles to C++, Inline C++ 🆕
Zig https://ziglang.org/(ja/) en >英語勉強しろ 話はそれからだ 🆕
Erlang 方向性が違う どっちも強い >お気楽Goはやっぱりつよいの? 🆕
php >原付🛵より遅いぞ https://benchmarksgame-team.pages.debian.net/benchmarksgame/box-plot-summary-charts.html 🆕
※ジョーク集です。「未確認」表示の有無に関わらず真偽を保証するものではありません。
惑星探査機🛰とか特殊な用途、身近なところでルンバ🤖がLisp
Awesome Lisp Company https://github.com/azzamsa/awesome-lisp-companies
プロトタイプから本番に移行 柔軟に改修しやすい common lisp あとから型書いてパフォーマンスUp 🆕
思い出 >https://practical-scheme.net/trans/beating-the-averages-j.html >オジさん🧓は言語を変えない 🆕
C C言語がないぞ C言語がないぞ(大事なことだから2回) 🆕
php 原付 >静的型はブレーキ🛵 俺にブレーキはない 10年経って分かった <matz😚 🆕
欧米企業「最初のバージョンは常に捨てられる」 🆕
「アイデアは価値がない、アイデアを誰より早く形にして価値がある」 🆕
Jakt https://github.com/SerenityOS/jakt 🆕
Memory safety, Math safety, performance, transpiles to C++, Inline C++ 🆕
Zig https://ziglang.org/(ja/) en >英語勉強しろ 話はそれからだ 🆕
Erlang 方向性が違う どっちも強い >お気楽Goはやっぱりつよいの? 🆕
php >原付🛵より遅いぞ https://benchmarksgame-team.pages.debian.net/benchmarksgame/box-plot-summary-charts.html 🆕
※ジョーク集です。「未確認」表示の有無に関わらず真偽を保証するものではありません。
812デフォルトの名無しさん
2022/09/16(金) 10:25:11.62ID:FmJF7Gxj 病気の人かな
書き込むなよ
書き込むなよ
813デフォルトの名無しさん
2022/09/16(金) 14:24:20.93ID:JbBUDOVI >>jakt 追加は
Bounds checking, Sound null safety
try/catchは文
Dict Set TupleがPython並みに簡単 この辺はlife-time-analysysに頼らないでARCで実行時管理してるからかな
Bounds checking, Sound null safety
try/catchは文
Dict Set TupleがPython並みに簡単 この辺はlife-time-analysysに頼らないでARCで実行時管理してるからかな
814デフォルトの名無しさん
2022/09/16(金) 15:16:00.68ID:5FcoWQIv ARCメインの言語はいずれも遅いから興味ないな
とはいえZigの手動メモリ管理の面倒さと危険さは今の時代ニッチに終わるだろう
とはいえZigの手動メモリ管理の面倒さと危険さは今の時代ニッチに終わるだろう
815デフォルトの名無しさん
2022/09/16(金) 15:25:53.62ID:EVJZN8ya あっちのスレでやりなよ
こっちは隔離スレ
こっちは隔離スレ
816デフォルトの名無しさん
2022/09/16(金) 15:55:51.13ID:lXNxdC5B ワッチョイスレのリンク見たら
Written on May 19, 2022 時点で >It’s two weeks old.
っていくらなんでもホヤホヤ過ぎでしょw
Written on May 19, 2022 時点で >It’s two weeks old.
っていくらなんでもホヤホヤ過ぎでしょw
817デフォルトの名無しさん
2022/09/16(金) 16:35:54.10ID:5ihvg/eP https://awesomekling.github.io/Memory-safety-for-SerenityOS/
には
>Q: Why ARC (automatic reference counting) instead of a borrow checker?
>ARC allows the language to feel lightweight without constantly asking the user to make decisions about memory management.
Jakt作者の考えは、Rustの方こそメモリ管理に絶え間ない気配りが必要で、自動のフリして実際にはプログラマーの負担、という事
これも具体的な話がない
>ARCメインの言語は「いずれも」遅い
Rustは都合の良い例だけ持ち出して「境界チェックは消える」とか言いがち
には
>Q: Why ARC (automatic reference counting) instead of a borrow checker?
>ARC allows the language to feel lightweight without constantly asking the user to make decisions about memory management.
Jakt作者の考えは、Rustの方こそメモリ管理に絶え間ない気配りが必要で、自動のフリして実際にはプログラマーの負担、という事
これも具体的な話がない
>ARCメインの言語は「いずれも」遅い
Rustは都合の良い例だけ持ち出して「境界チェックは消える」とか言いがち
818デフォルトの名無しさん
2022/09/16(金) 16:47:16.92ID:74dom6Tp スマポの時点で自動じゃないわなw
循環参照はWeak使ってなんとかしてくれっていうね
あとライフタイムにも参照の排他にも
全部頑張って気をつけないといけないのは書き手
メモリはGCに押しつけてしまうのがスッキリなのかもね
そっちはそっちで工夫してねっていう分離ができてる
nimなんかはそこを交換可能にしてて清々しいよね
循環参照はWeak使ってなんとかしてくれっていうね
あとライフタイムにも参照の排他にも
全部頑張って気をつけないといけないのは書き手
メモリはGCに押しつけてしまうのがスッキリなのかもね
そっちはそっちで工夫してねっていう分離ができてる
nimなんかはそこを交換可能にしてて清々しいよね
819デフォルトの名無しさん
2022/09/16(金) 17:31:52.57ID:EVJZN8ya メモリに気配りしたいからこそrustを使うのであってGCで良ければGC言語使えば良いよ
820デフォルトの名無しさん
2022/09/16(金) 17:39:38.21ID:hXa4CTix821デフォルトの名無しさん
2022/09/16(金) 17:50:54.65ID:5FcoWQIv プログラマーに負担と責任を押し付けるZigは安全を軽視している
822デフォルトの名無しさん
2022/09/16(金) 17:51:15.64ID:rsr6X2sj GC言語使いたいなら止めはしないけど
それならスクリプト言語使った方がマシだよ
それならスクリプト言語使った方がマシだよ
823デフォルトの名無しさん
2022/09/16(金) 17:54:38.33ID:l9zi2+Dh824デフォルトの名無しさん
2022/09/16(金) 18:01:54.76ID:5FcoWQIv ARC方式のSwiftはクソ遅い
825デフォルトの名無しさん
2022/09/16(金) 18:21:34.07ID:fQY5NM7R >>818
嫁や彼女が援交やってそうだな。
嫁や彼女が援交やってそうだな。
826デフォルトの名無しさん
2022/09/16(金) 18:26:14.43ID:nvdAwR8L プロレス終わった?
827デフォルトの名無しさん
2022/09/16(金) 18:28:16.66ID:fQY5NM7R GCはメモリ確保やコンパクションや解放をまとめてやりやすいからパフォーマンス出しやすい。
そのおかげでストップザワールドやGCスパイクも享受できる。
負荷を予測したい奴には向いてないかもな。
そういう意味ではGC言語はピーキーなんよ。
お前にはまだ早いかもしれん。
そのおかげでストップザワールドやGCスパイクも享受できる。
負荷を予測したい奴には向いてないかもな。
そういう意味ではGC言語はピーキーなんよ。
お前にはまだ早いかもしれん。
828デフォルトの名無しさん
2022/09/16(金) 18:32:35.16ID:fQY5NM7R >>824
swiftは問答無用でretain,releaseもつくからじゃんよ
swiftは問答無用でretain,releaseもつくからじゃんよ
829デフォルトの名無しさん
2022/09/16(金) 18:38:52.62ID:9KGaiKu/ GCは〜って言って思考停止してるとRustでも使っているepochとか知らなそう
830デフォルトの名無しさん
2022/09/16(金) 18:46:51.84ID:RqiYn650 いずれGCがメモリレイアウトを動的に最適化したり必要に応じて確定的なメモリ解放を行うように動的にJITしたりするようになるから、究極的にはGCが勝利するだろうね
831デフォルトの名無しさん
2022/09/16(金) 18:48:15.45ID:j69kQS4p Zigの良さがよくわからない
C言語より安全なのはわかるけどでもそれって結局Cでいいじゃんってなるよね
Rustみたいに静的メモリ安全は実現するのは端から諦めてC言語よりちょっと安全な言語を目指しているんだよね
本当にニッチって言葉が似合いすぎている
構文も無駄に複雑だし汚いし将来性ないと思う
C言語より安全なのはわかるけどでもそれって結局Cでいいじゃんってなるよね
Rustみたいに静的メモリ安全は実現するのは端から諦めてC言語よりちょっと安全な言語を目指しているんだよね
本当にニッチって言葉が似合いすぎている
構文も無駄に複雑だし汚いし将来性ないと思う
832デフォルトの名無しさん
2022/09/16(金) 18:49:54.01ID:LN15iZX2 >>830
それ結構難しい話に聞こえるけど、具体的な進展があるの?
それ結構難しい話に聞こえるけど、具体的な進展があるの?
833デフォルトの名無しさん
2022/09/16(金) 18:52:48.51ID:LN15iZX2 >>831 ZigはBinary生成が優秀だから、依存dll/soとかクロスコンパイルとか。Rustでも使っているよ
834デフォルトの名無しさん
2022/09/16(金) 18:59:55.32ID:xvE1RXjk Zigは構文が好きじゃない
わかりにくいよね
わかりにくいよね
835デフォルトの名無しさん
2022/09/16(金) 19:00:01.75ID:EVJZN8ya >>820
変なこと言ってる人と同一視するのは勘弁してくれ
変なこと言ってる人と同一視するのは勘弁してくれ
836デフォルトの名無しさん
2022/09/16(金) 19:04:06.25ID:xvE1RXjk >>820
そういう決めつけで妄想してると統合失調症になるよ
そういう決めつけで妄想してると統合失調症になるよ
837デフォルトの名無しさん
2022/09/16(金) 19:04:06.82ID:LN15iZX2 Zigは作者が会社辞めて専念してるから、華々しくブレイクしなくてもずっと続けてくコミットがすごい
「安全性」は流行っているからリップサービス。マインドは常に実行速度。キレイなBinary。低レイヤー。
構文はちょこちょこ変わるイメージ。ときどき触るだけだけと直ぐに昔のがコンパイル通らなくなる。
「安全性」は流行っているからリップサービス。マインドは常に実行速度。キレイなBinary。低レイヤー。
構文はちょこちょこ変わるイメージ。ときどき触るだけだけと直ぐに昔のがコンパイル通らなくなる。
838デフォルトの名無しさん
2022/09/16(金) 19:13:49.58ID:LN15iZX2 Faster than Cが自慢なのはぶっ飛んでるように聞こえるけど、一時期あったVは嘘だったけど、Zigはときどき本当。
LuaJitでもHaskellでもハマる処理では「簡単な記述で」Cより速いときがある。やってみないとわからない。
LuaJitでもHaskellでもハマる処理では「簡単な記述で」Cより速いときがある。やってみないとわからない。
839デフォルトの名無しさん
2022/09/16(金) 19:19:50.21ID:LN15iZX2 構文なんて飾りですよ。狭い特定の処理がたまたま「簡単な記述で」書けるかどうかだけ。今はまだ時々実験するくらいで十分。深入りは先の話。
840デフォルトの名無しさん
2022/09/16(金) 19:23:23.65ID:HUefBg/J Zigの時代キタ━━━━(゚∀゚)━━━━!!
841デフォルトの名無しさん
2022/09/16(金) 19:24:40.95ID:LN15iZX2 >>830 これ嘘大袈裟かな?w
842デフォルトの名無しさん
2022/09/16(金) 19:25:42.72ID:LN15iZX2 まいいや
843デフォルトの名無しさん
2022/09/16(金) 19:35:28.83ID:xvE1RXjk >>830
それインクリメンタルコピーCGのことでは?
それインクリメンタルコピーCGのことでは?
844デフォルトの名無しさん
2022/09/16(金) 19:36:49.01ID:xvE1RXjk 今のところZig使うならCで良いかな
使う気にはなれないな
使う気にはなれないな
845デフォルトの名無しさん
2022/09/16(金) 19:54:10.89ID:eTFy07in ム板のゲハスレ
846デフォルトの名無しさん
2022/09/16(金) 20:01:08.19ID:0J+L4jjc すみませんZigはまだβ、Nimはver1.6という事で....
>>818
>nimなんかはそこを交換可能
NimのGC/ORC/ARCは興味深いですね
https://nim-lang.org/blog/2020/12/08/introducing-orc.html
もっと選べるようだけど、循環参照などデータ構造別に切り替えて混在出来るのかな?
https://nim-lang.github.io/Nim/mm.html
>>843 上記のリストに入ってますか?
>>818
>nimなんかはそこを交換可能
NimのGC/ORC/ARCは興味深いですね
https://nim-lang.org/blog/2020/12/08/introducing-orc.html
もっと選べるようだけど、循環参照などデータ構造別に切り替えて混在出来るのかな?
https://nim-lang.github.io/Nim/mm.html
>>843 上記のリストに入ってますか?
847デフォルトの名無しさん
2022/09/16(金) 20:08:18.02ID:0J+L4jjc848デフォルトの名無しさん
2022/09/16(金) 20:23:30.89ID:74dom6Tp GCの研究が進んでよりよいものができるようになったとき
GC言語はそれをまんまと拝借できるから旨味あるよな
GC言語はそれをまんまと拝借できるから旨味あるよな
849デフォルトの名無しさん
2022/09/16(金) 20:34:49.53ID:0J+L4jjc850デフォルトの名無しさん
2022/09/16(金) 20:51:30.89ID:paysycNa GC活用するだけじゃなくて、スタックフレームからエスケープしにくくする仕組みがあると面白いと思うけどね。
Rustほどガチガチだとだるいから、エスケープをコントロールするスマポみたいなクラスを用意するとか。
Rustほどガチガチだとだるいから、エスケープをコントロールするスマポみたいなクラスを用意するとか。
851デフォルトの名無しさん
2022/09/16(金) 21:07:42.67ID:8k9s5Jiv GC以外だと、JVMや. NetなんかのVMも結構に改善してるんじゃない?
852デフォルトの名無しさん
2022/09/16(金) 21:21:31.00ID:74dom6Tp GCもVMもどんどん改善してくれたまへ
JavaでHotSpotだのJITだの言い出したころワクワク感あったな
プログラマはプラットフォームに対してでなくて
これからはGCやVMに対してプログラミングをするだけでよくて
さらにGCやVMは誰かのおかげで勝手に改善されていくらしいという
JavaでHotSpotだのJITだの言い出したころワクワク感あったな
プログラマはプラットフォームに対してでなくて
これからはGCやVMに対してプログラミングをするだけでよくて
さらにGCやVMは誰かのおかげで勝手に改善されていくらしいという
853デフォルトの名無しさん
2022/09/16(金) 21:27:14.70ID:z5XcLMe6 http://www.kmonos.net/alang/d/garbage.html
ガベージコレクトされたプログラムの方が高速です。 これは直感に反するかもしれませんが、その理由は:
明示的なメモリ管理の際によく使われる手法は、参照カウントです。 代入があるたびにカウントを増やしたり減らしたリソースを挿入するのは、 速度低下の原因になっています。スマートポインタクラスでラップしても、 速度的な解決にはなりません。
(またいずれにせよ、 循環参照を削除できない参照カウント方式は、 一般的な解決策ではありません。)
オブジェクトによって獲得されたリソースの解放には、 デストラクタが使用されます。多くのクラスでは、このリソースとは 割り当てられたメモリのことです。
GCを使えば、 ほとんどのデストラクタが空になり、完全に削除してしまえます。
メモリ管理のためのデストラクタは、 オブジェクトがスタックに置かれたときに影響が顕著になります。
例外が発生したときに、全てのスタックフレームでデストラクタが呼び出され、 メモリを解放するような仕組みが必要となるのです。 もしデストラクタが関係しなければ、例外を処理する特別なスタックフレームを 設定する必要がなくなり、コードは高速に実行されます。
メモリ管理に必要なコードは全てを合わせるとちょっとした量になります。 大きなプログラムになるほど、キャッシュに入らない部分が増え、 ページングが多く発生し、 プログラムが遅くなります。
GCは、メモリが残り少なくなってきたときのみ実行されます。 メモリに余裕があれば、プログラムは全速力で実行され、 メモリ解放に一切時間を取られません。
モダンなGCは、過去の遅いものより遙かに発展しています。 世代型のコピーGCには、 昔のマーク&スイープアルゴリズムの非効率さはありません。
モダンなGCはヒープの詰め直しを行います。 これによってプログラムが活発に参照するページの数を減らし、 キャッシュヒット率を高め、 スワップ回数が減ります。
GCを使うプログラムは、メモリリークの積み重ねで次第にパフォーマンスが悪化、 という事態に縁がありません。
ガベージコレクトされたプログラムの方が高速です。 これは直感に反するかもしれませんが、その理由は:
明示的なメモリ管理の際によく使われる手法は、参照カウントです。 代入があるたびにカウントを増やしたり減らしたリソースを挿入するのは、 速度低下の原因になっています。スマートポインタクラスでラップしても、 速度的な解決にはなりません。
(またいずれにせよ、 循環参照を削除できない参照カウント方式は、 一般的な解決策ではありません。)
オブジェクトによって獲得されたリソースの解放には、 デストラクタが使用されます。多くのクラスでは、このリソースとは 割り当てられたメモリのことです。
GCを使えば、 ほとんどのデストラクタが空になり、完全に削除してしまえます。
メモリ管理のためのデストラクタは、 オブジェクトがスタックに置かれたときに影響が顕著になります。
例外が発生したときに、全てのスタックフレームでデストラクタが呼び出され、 メモリを解放するような仕組みが必要となるのです。 もしデストラクタが関係しなければ、例外を処理する特別なスタックフレームを 設定する必要がなくなり、コードは高速に実行されます。
メモリ管理に必要なコードは全てを合わせるとちょっとした量になります。 大きなプログラムになるほど、キャッシュに入らない部分が増え、 ページングが多く発生し、 プログラムが遅くなります。
GCは、メモリが残り少なくなってきたときのみ実行されます。 メモリに余裕があれば、プログラムは全速力で実行され、 メモリ解放に一切時間を取られません。
モダンなGCは、過去の遅いものより遙かに発展しています。 世代型のコピーGCには、 昔のマーク&スイープアルゴリズムの非効率さはありません。
モダンなGCはヒープの詰め直しを行います。 これによってプログラムが活発に参照するページの数を減らし、 キャッシュヒット率を高め、 スワップ回数が減ります。
GCを使うプログラムは、メモリリークの積み重ねで次第にパフォーマンスが悪化、 という事態に縁がありません。
854デフォルトの名無しさん
2022/09/16(金) 21:34:12.96ID:W9x6+yw/ >>830
どちらもJVMで実現済みのことに思えるが…。
メモリレイアウトの最適化
→ 世代別GC(長寿命なオブジェクトは頻繁にGCしない領域に移動する)
確定的なメモリはJITで開放
→ エスケープ解析(短命でスタックに乗せても構わないオブジェクトはスタックに乗せる)
どちらもJVMで実現済みのことに思えるが…。
メモリレイアウトの最適化
→ 世代別GC(長寿命なオブジェクトは頻繁にGCしない領域に移動する)
確定的なメモリはJITで開放
→ エスケープ解析(短命でスタックに乗せても構わないオブジェクトはスタックに乗せる)
855デフォルトの名無しさん
2022/09/16(金) 21:36:23.95ID:9X7PH4Bp deno=Rust
bun=zig
https://res.cloudinary.com/practicaldev/image/fetch/s--HAhtlbw8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/oi6yfxenbfcuhlrkl6j7.png
bun=zig
https://res.cloudinary.com/practicaldev/image/fetch/s--HAhtlbw8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/oi6yfxenbfcuhlrkl6j7.png
856デフォルトの名無しさん
2022/09/16(金) 21:39:12.85ID:paysycNa857デフォルトの名無しさん
2022/09/16(金) 21:39:55.16ID:W9x6+yw/ >>855
それも言語の良し悪しよりもbanがやるべきことをやってないだけだったり、nodeが本質的には不必要なことをやりすぎているだけっぽいと思うんだよな。
それも言語の良し悪しよりもbanがやるべきことをやってないだけだったり、nodeが本質的には不必要なことをやりすぎているだけっぽいと思うんだよな。
858デフォルトの名無しさん
2022/09/16(金) 21:44:51.39ID:PbYmvI2Z >>854 等号の左右、ずいぶん曲解しましたね。
859デフォルトの名無しさん
2022/09/16(金) 21:45:22.11ID:lW11Z1GI GC言語、メモリを山のように積んでるマシンだと走りきるまでGC走らなかったりするしな。
mallocしてfreeしないアプリみたいなもんで、ケースによってはそりゃ速い。
mallocしてfreeしないアプリみたいなもんで、ケースによってはそりゃ速い。
860デフォルトの名無しさん
2022/09/16(金) 21:55:33.67ID:9X7PH4Bp >>857
そうなんだね
そうなんだね
861デフォルトの名無しさん
2022/09/16(金) 22:04:21.30ID:N1Gu8JHK >>857
要約すると、RustはZigに比べて本質的には不必要なことをやりすぎている、という事でOK
要約すると、RustはZigに比べて本質的には不必要なことをやりすぎている、という事でOK
862デフォルトの名無しさん
2022/09/16(金) 22:10:48.13ID:oJjxTP0V Rust「zero overhead abstraction」は嘘でした
863デフォルトの名無しさん
2022/09/16(金) 22:15:51.87ID:8FnpT4Fe >>856
C++使ってないな。C#ユーザー
C++使ってないな。C#ユーザー
864デフォルトの名無しさん
2022/09/16(金) 22:19:05.45ID:EVJZN8ya >>853
この文章10年以上前からあるけど今でも成り立つのだろうか
確かにメモリ解放を遅延させることによって実行命令数がGCの方が少なくなる場合はあると思う
一方でいくつかのmalloc実装がやっているような、直近にfreeされた領域を優先的に再割り当てするようなことは、GCが走らない限り、つまり、メモリを使い切るまではできない
freeされた領域はキャッシュに載っていて高速にアクセスできる可能性が高いので、直近にfreeされた領域を使い回すことはキャッシュヒット率を高める効果がある
GC言語は命令数は少なかったとしても、メモリのアクセスレイテンシの影響をより多く受け、トータルでは遅かったりしないだろうか
この文章の元ネタのベンチマークがあるなら現在のマシンで比較してみたら面白そう
この文章10年以上前からあるけど今でも成り立つのだろうか
確かにメモリ解放を遅延させることによって実行命令数がGCの方が少なくなる場合はあると思う
一方でいくつかのmalloc実装がやっているような、直近にfreeされた領域を優先的に再割り当てするようなことは、GCが走らない限り、つまり、メモリを使い切るまではできない
freeされた領域はキャッシュに載っていて高速にアクセスできる可能性が高いので、直近にfreeされた領域を使い回すことはキャッシュヒット率を高める効果がある
GC言語は命令数は少なかったとしても、メモリのアクセスレイテンシの影響をより多く受け、トータルでは遅かったりしないだろうか
この文章の元ネタのベンチマークがあるなら現在のマシンで比較してみたら面白そう
865デフォルトの名無しさん
2022/09/16(金) 22:26:31.57ID:EVJZN8ya >>861
アプリの実装の善し悪しの話と実装言語の善し悪しを意図的に混同させるのはよくないよ
アプリの実装の善し悪しの話と実装言語の善し悪しを意図的に混同させるのはよくないよ
866デフォルトの名無しさん
2022/09/16(金) 22:34:26.05ID:TcXL+FD0 >>865 Chrome by C++の場合について聞かせて
867デフォルトの名無しさん
2022/09/16(金) 22:44:06.52ID:67q+IuG6 >>864
それソースある?
必ず再利用するにあたって領域を書き換えてんだから、直前にfreeしたかどうかに関わらず書き換え直後にキャッシュに乗るのは当たり前じゃないの?
チープな環境でスワップインを回避する効果はあるかもしれんが
それソースある?
必ず再利用するにあたって領域を書き換えてんだから、直前にfreeしたかどうかに関わらず書き換え直後にキャッシュに乗るのは当たり前じゃないの?
チープな環境でスワップインを回避する効果はあるかもしれんが
868デフォルトの名無しさん
2022/09/16(金) 22:47:07.20ID:W9x6+yw/869デフォルトの名無しさん
2022/09/16(金) 22:47:38.62ID:aq1cgc5a870デフォルトの名無しさん
2022/09/16(金) 22:54:48.64ID:aq1cgc5a871デフォルトの名無しさん
2022/09/16(金) 23:06:36.63ID:yQqW5GbJ escapeするかしないか、静的と動的でそんなに違うもんかね。
むしろエラー以外はescapeする・しないは静的で相当範囲カバー出来てそう。データはないけど。
むしろエラー以外はescapeする・しないは静的で相当範囲カバー出来てそう。データはないけど。
872デフォルトの名無しさん
2022/09/16(金) 23:12:50.46ID:lW11Z1GI >>864
これはそう。ただ投機的実行(と昨今のその去勢)とかを考えると結構難しいかなとは。
これはそう。ただ投機的実行(と昨今のその去勢)とかを考えると結構難しいかなとは。
873デフォルトの名無しさん
2022/09/16(金) 23:22:07.28ID:rsr6X2sj GCを止めたら速いという話は藁人形論法なのでやめませんか?
874デフォルトの名無しさん
2022/09/16(金) 23:25:00.60ID:lW11Z1GI どこが藁人形なの?
875デフォルトの名無しさん
2022/09/16(金) 23:26:02.22ID:3cBZTpx6 >>872 vulnerability詳しくないけど、mitigationでfree->mallocがどの程度影響するのか気になるな。
876デフォルトの名無しさん
2022/09/16(金) 23:34:42.72ID:ATWJ//93877デフォルトの名無しさん
2022/09/16(金) 23:42:23.80ID:n2V9aTfB GCは解放の実タイミングは調整するけど「メモリリーク」とは見なしてないのでは。
むしろ Rust「メモリリークはメモリ安全性保障の範囲外」 の方なんとかして
むしろ Rust「メモリリークはメモリ安全性保障の範囲外」 の方なんとかして
878デフォルトの名無しさん
2022/09/16(金) 23:44:19.41ID:EVJZN8ya >>867
GCはそもそもfreeから再利用まで間が開くのでその間にキャッシュから外れる可能性が高くなるし、
再利用に当たって領域を書き換えるなら、キャッシュに載ってない場合書き換え処理に時間がかかるのでは
スワップインはよくわからない
GCはそもそもfreeから再利用まで間が開くのでその間にキャッシュから外れる可能性が高くなるし、
再利用に当たって領域を書き換えるなら、キャッシュに載ってない場合書き換え処理に時間がかかるのでは
スワップインはよくわからない
879デフォルトの名無しさん
2022/09/16(金) 23:45:28.20ID:EVJZN8ya >>877
メモリリークを静的に検知するのはプログラムに対する制限が相当大きくなってしまうのでは
メモリリークを静的に検知するのはプログラムに対する制限が相当大きくなってしまうのでは
880デフォルトの名無しさん
2022/09/16(金) 23:53:17.42ID:MTo4LOAu >>879 動的にでも検知する仕組み/試みがあったりするのかな。テスト、プロファイル、そりゃあるかな。
881デフォルトの名無しさん
2022/09/17(土) 00:04:48.75ID:Qv9rB708 >>880
valgrindとかAddressSanitizerとかmallocをhookするやつとかいろいろあるよ
valgrindとかAddressSanitizerとかmallocをhookするやつとかいろいろあるよ
882デフォルトの名無しさん
2022/09/17(土) 00:05:17.29ID:guSBFHBz GCはいわばメモリ管理の専門家に幅広い裁量を持たせて仕事させているわけで、
それに比べるとアプリケーションコード内でのメモリ管理はCenter of Excellence的な意味では原理的にどうしても不利よね
メモリ管理の専門家が十分な裁量を持って仕事できるのはせいぜいアロケータの実装くらいで、ほかは高水準のプログラミングモデルやプログラマの能力の制約を強く受けることになる
それに比べるとアプリケーションコード内でのメモリ管理はCenter of Excellence的な意味では原理的にどうしても不利よね
メモリ管理の専門家が十分な裁量を持って仕事できるのはせいぜいアロケータの実装くらいで、ほかは高水準のプログラミングモデルやプログラマの能力の制約を強く受けることになる
883デフォルトの名無しさん
2022/09/17(土) 00:13:57.81ID:WaM/gYIx Javaは実行時最適化によりRustの3倍速い。
884デフォルトの名無しさん
2022/09/17(土) 00:21:14.46ID:Qv9rB708 >>883
(場合もある)
(場合もある)
885デフォルトの名無しさん
2022/09/17(土) 00:44:08.92ID:wgXFenVD スパイクの出ないGC出たら即乗り換える予定
886デフォルトの名無しさん
2022/09/17(土) 01:02:29.41ID:HP4MaZ5C それ以来30年間GC技術が進んだ結果の現状が既出のこれ
>>200
>> https://pbs.twimg.com/media/EmYvG8aVkAMdfFG.jpg
全く対等に同条件で多くの人々が同じ問題に対して様々な言語で記述した結果の各実行時間
速く実行できた言語はRustとCとC++の3つでいずれもGCなし
GCする言語は軒並み遅い
一部をGC対象とならないよう回避の努力をしているGoがGC言語の中で最も速い
そうでない普通のGC言語は遅すぎる
>>200
>> https://pbs.twimg.com/media/EmYvG8aVkAMdfFG.jpg
全く対等に同条件で多くの人々が同じ問題に対して様々な言語で記述した結果の各実行時間
速く実行できた言語はRustとCとC++の3つでいずれもGCなし
GCする言語は軒並み遅い
一部をGC対象とならないよう回避の努力をしているGoがGC言語の中で最も速い
そうでない普通のGC言語は遅すぎる
887デフォルトの名無しさん
2022/09/17(土) 01:35:11.26ID:Qv9rB708 >>886
これってGC性能が支配的になる問題なの?
これってGC性能が支配的になる問題なの?
888デフォルトの名無しさん
2022/09/17(土) 01:41:35.46ID:wgXFenVD pythonさん
889デフォルトの名無しさん
2022/09/17(土) 01:47:29.96ID:5sn184WB >>887
(1) GCが発生している場合
→ GC性能が改善された現在でもGC言語は遅い
(2) GCが発生していない場合
→ GC性能と関係なくGCが起きない段階でもGC言語は遅い
どちらのケースであってもGC言語はダメな存在になってしまいますね
(1) GCが発生している場合
→ GC性能が改善された現在でもGC言語は遅い
(2) GCが発生していない場合
→ GC性能と関係なくGCが起きない段階でもGC言語は遅い
どちらのケースであってもGC言語はダメな存在になってしまいますね
890デフォルトの名無しさん
2022/09/17(土) 01:50:03.67ID:6EmGuQEd あれ、D言語はかなり早いイメージだったけど、Goに負けることもあるのか
891デフォルトの名無しさん
2022/09/17(土) 01:52:02.97ID:WaM/gYIx >>884
無いよ(笑
無いよ(笑
892デフォルトの名無しさん
2022/09/17(土) 01:53:36.44ID:6EmGuQEd LDCじゃなくてGDC使ってんのかな
893デフォルトの名無しさん
2022/09/17(土) 01:57:29.45ID:5J0Fty65 Goは速いよ。
アンチGCはGC言語じゃなければ速い、と思い込みすぎでは?
ミッション車みたいなもんで、自分の設計力の無さがパフォーマンス劣化に直結するというか、いわゆるベンチのスペックは素直には出ないよ。
Rustアンチじゃないけど、これはRustの目的でもない(あくまで安全が目的)
GC言語みたいにだれでも80点が取れます、エンストしませんよ、みたいなもんじゃないんよ。
コンパイラが叱ってくれるからハイパフォーマンスとか、書いてて言ってんのかほんとに謎。
アンチGCはGC言語じゃなければ速い、と思い込みすぎでは?
ミッション車みたいなもんで、自分の設計力の無さがパフォーマンス劣化に直結するというか、いわゆるベンチのスペックは素直には出ないよ。
Rustアンチじゃないけど、これはRustの目的でもない(あくまで安全が目的)
GC言語みたいにだれでも80点が取れます、エンストしませんよ、みたいなもんじゃないんよ。
コンパイラが叱ってくれるからハイパフォーマンスとか、書いてて言ってんのかほんとに謎。
894デフォルトの名無しさん
2022/09/17(土) 01:58:13.17ID:g4Vhwu4S ゲハでやれ
895デフォルトの名無しさん
2022/09/17(土) 01:59:07.17ID:WaM/gYIx >>886
そいつの読み方は「C++とPyPy3圧倒的じゃないか」ですよ。
新参者から熟練者まで数と質すべてが圧倒的。
C++は熟練すると、黒魔術を含め、やりたいことが全てできる言語なので、突き詰めていく性質の企業におすすめ。
逆に、手数で勝負の乱打スタイル企業には、PythonやRoRがお勧め。
そいつの読み方は「C++とPyPy3圧倒的じゃないか」ですよ。
新参者から熟練者まで数と質すべてが圧倒的。
C++は熟練すると、黒魔術を含め、やりたいことが全てできる言語なので、突き詰めていく性質の企業におすすめ。
逆に、手数で勝負の乱打スタイル企業には、PythonやRoRがお勧め。
896デフォルトの名無しさん
2022/09/17(土) 02:01:08.18ID:WaM/gYIx897デフォルトの名無しさん
2022/09/17(土) 02:04:15.85ID:WaM/gYIx ハードウェアを売りたい言語だから、ハードウェアに対する要求が少し厳しかったですね。
898デフォルトの名無しさん
2022/09/17(土) 02:25:11.61ID:YHpfxvp6899デフォルトの名無しさん
2022/09/17(土) 03:31:52.64ID:5J0Fty65900デフォルトの名無しさん
2022/09/17(土) 03:42:09.24ID:o0T2dyfd901デフォルトの名無しさん
2022/09/17(土) 03:53:04.00ID:5J0Fty65 >>900
abc 182-eはakariって問題なんだけど、読んだ?
Javaで雑に書くとパフォーマンスでない類の問題だよ。
このグラフは言語オタ勢には有名かと思ってたけど、ベンチマークのグラフではなくて、あくまで競技者が書いた言語毎の統計のグラフなので、ポンコツが多ければそれが表現される。
言語人口が多いものの箱ひげが偉いことになってるでしょ。
abc 182-eはakariって問題なんだけど、読んだ?
Javaで雑に書くとパフォーマンスでない類の問題だよ。
このグラフは言語オタ勢には有名かと思ってたけど、ベンチマークのグラフではなくて、あくまで競技者が書いた言語毎の統計のグラフなので、ポンコツが多ければそれが表現される。
言語人口が多いものの箱ひげが偉いことになってるでしょ。
902デフォルトの名無しさん
2022/09/17(土) 04:54:39.17ID:1eeK5YMC903デフォルトの名無しさん
2022/09/17(土) 07:28:28.63ID:8assD4qG >>877
これ訳わからんよね。
そこまでして「GC不要でメモリ安全」を売りにしたかったのか、と思うわ。
c++とかだとメモリリークも普通にバグ扱いされるのに、それを「メモリ安全」と言い切るのは詐欺臭い。
これ訳わからんよね。
そこまでして「GC不要でメモリ安全」を売りにしたかったのか、と思うわ。
c++とかだとメモリリークも普通にバグ扱いされるのに、それを「メモリ安全」と言い切るのは詐欺臭い。
904デフォルトの名無しさん
2022/09/17(土) 07:39:14.89ID:8assD4qG >>902
そもそもRust使える人間は他の言語に詳しい人間しか居ないだろ。
他の言語に詳しく無い人間がRustの絶壁の学習曲線をクリアできるとは思えん。
「Rustしか使えません」なんて人間は存在するのかね?
そもそもRust使える人間は他の言語に詳しい人間しか居ないだろ。
他の言語に詳しく無い人間がRustの絶壁の学習曲線をクリアできるとは思えん。
「Rustしか使えません」なんて人間は存在するのかね?
905デフォルトの名無しさん
2022/09/17(土) 07:46:13.48ID:TM5e0HO7 >>903
それは常識
一般的に循環参照の安全な解放を静的に記述したり静的にチェックすることは不可能
デッドロックも同じで静的に発生をチェックして防止することは不可能
だからコンパイラ(=静的にチェックする存在)がそれらを防ぐことは対象外となる
それは常識
一般的に循環参照の安全な解放を静的に記述したり静的にチェックすることは不可能
デッドロックも同じで静的に発生をチェックして防止することは不可能
だからコンパイラ(=静的にチェックする存在)がそれらを防ぐことは対象外となる
906デフォルトの名無しさん
2022/09/17(土) 07:50:22.53ID:XDvVGFlj >>904
バカは遅い言語や危険な言語を使い続ければよい
時代の要請は高速で安全でプログラミング効率の良い言語でありそれはRust
使えないバカがついていけずに切り捨てられていくことは業界にとっても朗報だ
バカは遅い言語や危険な言語を使い続ければよい
時代の要請は高速で安全でプログラミング効率の良い言語でありそれはRust
使えないバカがついていけずに切り捨てられていくことは業界にとっても朗報だ
907デフォルトの名無しさん
2022/09/17(土) 08:47:42.31ID:+hLuAY/P 早い言語は適当に書いても2秒の時間制限に間に合うけど
遅い言語は問題の想定解法じゃないと通らないから結果的に早い言語は上髭多くなるだけ
遅い言語は問題の想定解法じゃないと通らないから結果的に早い言語は上髭多くなるだけ
908デフォルトの名無しさん
2022/09/17(土) 09:18:54.40ID:vRd8nzJr >>902
execution timeの単位はミリ秒だぞ
ベンチヲタは気にするが1000000回ループして1秒か2秒しか差がつかないのに現実的に問題になることってないぞw
現実のループは多くてもせいぜい1000回程度だろ
execution timeの単位はミリ秒だぞ
ベンチヲタは気にするが1000000回ループして1秒か2秒しか差がつかないのに現実的に問題になることってないぞw
現実のループは多くてもせいぜい1000回程度だろ
909デフォルトの名無しさん
2022/09/17(土) 09:57:15.90ID:BhE3E6/v910デフォルトの名無しさん
2022/09/17(土) 10:21:27.92ID:ktSmkMDB Rustの他の言語と比べた速度向上って、俺にじゃなく世のほとんどのプロジェクトにとって五十歩百歩の微々たるものなんですわw
911デフォルトの名無しさん
2022/09/17(土) 10:29:26.87ID:KEhwIc0k 前に、rustでtsc実装した人、さらにgoで作り直すって、理由がrustには向いてないからって。翻訳記事だからニュアンス違うのかもしれないけれど。
912デフォルトの名無しさん
2022/09/17(土) 10:29:40.60ID:8assD4qG >>905
プログラマサイドにそんな「常識」は無い。プログラマ視点なら「メモリリークはバグ。メモリを圧迫してトラブルになる危険がある」の方が常識。Rust関係者はそういうことを説明の奥の方に隠して「メモリ安全」とか誇大広告するから詐欺だと指摘しているわけで。
常識とかけ離れた俺俺定義を使うならちゃんと注意書きしろよ。
「メモリ安全*」
*メモリリークを除きます。
みたいに。
プログラマサイドにそんな「常識」は無い。プログラマ視点なら「メモリリークはバグ。メモリを圧迫してトラブルになる危険がある」の方が常識。Rust関係者はそういうことを説明の奥の方に隠して「メモリ安全」とか誇大広告するから詐欺だと指摘しているわけで。
常識とかけ離れた俺俺定義を使うならちゃんと注意書きしろよ。
「メモリ安全*」
*メモリリークを除きます。
みたいに。
913デフォルトの名無しさん
2022/09/17(土) 10:35:04.81ID:xfq0iQEs Amazonの>>9の記事にもあるけど
Rustへ書き換えるだけだけでリソースコストや電気代それに伴うCo2排出量などが少なくとも50%は削減できる
さらにセキュリティの要請から安全性も求められている
土方でないまもともなプログラマーならばJavaでもRustでも他の言語でもプログラミングに支障なく書ける
それらの状況から選ぶべき言語がRust一択になっているだけでしょう
Rustへ書き換えるだけだけでリソースコストや電気代それに伴うCo2排出量などが少なくとも50%は削減できる
さらにセキュリティの要請から安全性も求められている
土方でないまもともなプログラマーならばJavaでもRustでも他の言語でもプログラミングに支障なく書ける
それらの状況から選ぶべき言語がRust一択になっているだけでしょう
914デフォルトの名無しさん
2022/09/17(土) 10:39:04.61ID:ktSmkMDB https://stackoverflow.com/questions/55553048/is-it-possible-to-cause-a-memory-leak-in-rust
> Is it possible to cause a memory leak in Rust?
> You can also leak memory if you create a cycle of shared references:
> You can also use Box::leak to create a static reference, or Box::into_raw in an FFI situation.
> You might've forgotten about Box::leak and Box::into_raw which are pretty common in ffi situations for passing around states.
https://doc.rust-lang.org/book/ch15-06-reference-cycles.html#reference-cycles-can-leak-memory
> Reference Cycles Can Leak Memory
> Is it possible to cause a memory leak in Rust?
> You can also leak memory if you create a cycle of shared references:
> You can also use Box::leak to create a static reference, or Box::into_raw in an FFI situation.
> You might've forgotten about Box::leak and Box::into_raw which are pretty common in ffi situations for passing around states.
https://doc.rust-lang.org/book/ch15-06-reference-cycles.html#reference-cycles-can-leak-memory
> Reference Cycles Can Leak Memory
915デフォルトの名無しさん
2022/09/17(土) 10:46:39.42ID:vRd8nzJr RustでなくVBAを使うことでエネルギー削減になることもあるな
916デフォルトの名無しさん
2022/09/17(土) 10:55:22.36ID:8assD4qG >>913
Rustを学習した人間の感想の多くが「Rustは難解」と言っているのに、「まともなプログラマなら支障なく書ける」とする根拠は?
根拠が個人の感想なら、「まともなドライバーならマニュアル車を支障なく運転できる」と言うくらい傲慢だと思うがね。
Rustを学習した人間の感想の多くが「Rustは難解」と言っているのに、「まともなプログラマなら支障なく書ける」とする根拠は?
根拠が個人の感想なら、「まともなドライバーならマニュアル車を支障なく運転できる」と言うくらい傲慢だと思うがね。
917デフォルトの名無しさん
2022/09/17(土) 10:55:41.70ID:gI44iNXP >>912
それはちょっと知識不足じゃないかしら
もし循環参照を作っちゃった場合はそれを安全に解放する局所的な方法は理論的に存在しないんですよ
GCでも局所的に解決できる参照カウント方式では循環参照を解放できないため
GCの中でも全体のマークスイープ方式や全体の使用中分コピー方式でようやく解放されます
そららは非常にコストが重いだけでなく発動までに時差もあります
したがってプログラミング言語界ではそんなコストがかかるものに依存するのではなく
最初から循環参照を作らない方向で進んでいます
そのため最近は多くの言語で弱参照がサポートされており循環参照の発生を防ぐことができます
今回の話のJavaでももちろん弱参照が用意されていて最初から循環参照を作らないようにプログラミングします
そのほうが有利だからです
それはちょっと知識不足じゃないかしら
もし循環参照を作っちゃった場合はそれを安全に解放する局所的な方法は理論的に存在しないんですよ
GCでも局所的に解決できる参照カウント方式では循環参照を解放できないため
GCの中でも全体のマークスイープ方式や全体の使用中分コピー方式でようやく解放されます
そららは非常にコストが重いだけでなく発動までに時差もあります
したがってプログラミング言語界ではそんなコストがかかるものに依存するのではなく
最初から循環参照を作らない方向で進んでいます
そのため最近は多くの言語で弱参照がサポートされており循環参照の発生を防ぐことができます
今回の話のJavaでももちろん弱参照が用意されていて最初から循環参照を作らないようにプログラミングします
そのほうが有利だからです
918デフォルトの名無しさん
2022/09/17(土) 11:04:35.77ID:ktSmkMDB >>917
C#では参照はツリーで管理されるから循環参照も問題なく一瞬で開放される
C#では参照はツリーで管理されるから循環参照も問題なく一瞬で開放される
919デフォルトの名無しさん
2022/09/17(土) 11:12:08.51ID:/Lpl+zOG >>917
Wikipediaですら「メモリ安全性」の解説でメモリリークをメモリエラーとしているのに、実装側の都合で一般に使われている用語の意味をひん曲げて「常識」とな?
そういうのが詐欺だと指摘しているだけだけどなぁ。
今度からちゃんと
「メモリ安全*」
*メモリリークを除きます。
と注釈付けろよ。
Wikipediaですら「メモリ安全性」の解説でメモリリークをメモリエラーとしているのに、実装側の都合で一般に使われている用語の意味をひん曲げて「常識」とな?
そういうのが詐欺だと指摘しているだけだけどなぁ。
今度からちゃんと
「メモリ安全*」
*メモリリークを除きます。
と注釈付けろよ。
920デフォルトの名無しさん
2022/09/17(土) 11:17:11.83ID:gI44iNXP >>918
それはC#でもJavaでもRustでも他の言語でも全て同じ方法です
どの言語も弱参照を併用して参照はツリー状のみにすることで循環参照の発生を防ぎます
もちろんそこには弱参照による弱い循環参照がありますが通常の参照はツリー状なので
おっしゃる通りに一瞬で解放することが可能です
それはC#でもJavaでもRustでも他の言語でも全て同じ方法です
どの言語も弱参照を併用して参照はツリー状のみにすることで循環参照の発生を防ぎます
もちろんそこには弱参照による弱い循環参照がありますが通常の参照はツリー状なので
おっしゃる通りに一瞬で解放することが可能です
921デフォルトの名無しさん
2022/09/17(土) 11:20:08.51ID:Qv9rB708 >>919
wikipediaのメモリ安全性のメモリリークで挙げられてる項目は循環参照によるリークは含まれてないっぽいが
https://ja.m.wikipedia.org/wiki/%E3%83%A1%E3%83%A2%E3%83%AA%E5%AE%89%E5%85%A8%E6%80%A7
wikipediaのメモリ安全性のメモリリークで挙げられてる項目は循環参照によるリークは含まれてないっぽいが
https://ja.m.wikipedia.org/wiki/%E3%83%A1%E3%83%A2%E3%83%AA%E5%AE%89%E5%85%A8%E6%80%A7
922デフォルトの名無しさん
2022/09/17(土) 11:32:35.56ID:yVMylSLT ところで所有権は複製されるってことでいいの?
923デフォルトの名無しさん
2022/09/17(土) 11:33:28.06ID:8assD4qG >>921
リンク先にある「メモリリーク」の項ぐらい読めよ。
リンク先にある「メモリリーク」の項ぐらい読めよ。
924デフォルトの名無しさん
2022/09/17(土) 11:34:17.29ID:ktSmkMDB 今時循環参照くらいでメモリリークするような言語でよく安全を名乗れたもんだ
退化してるやん
退化してるやん
925デフォルトの名無しさん
2022/09/17(土) 11:39:26.07ID:/MEkW9dR 昔は保守的GCというGCに人気があった
本当はゴミなのにゴミではないと判断することはバグではなく安全、という注釈つきのGCだった
この注釈は嘘だったという見方の方が今は優勢
本当はゴミなのにゴミではないと判断することはバグではなく安全、という注釈つきのGCだった
この注釈は嘘だったという見方の方が今は優勢
926デフォルトの名無しさん
2022/09/17(土) 11:42:22.70ID:yVMylSLT 予想される次の手:
・循環参照の矮小化
循環参照なんてめったに起こらないし
普通に書いてたら発生しようがない
・問題の転嫁
循環参照なんて書くほうが悪い
循環参照によるメモリリークなんかを問題視するほうが悪い
・飛躍した結論
とにかくRustは素晴らしい
・循環参照の矮小化
循環参照なんてめったに起こらないし
普通に書いてたら発生しようがない
・問題の転嫁
循環参照なんて書くほうが悪い
循環参照によるメモリリークなんかを問題視するほうが悪い
・飛躍した結論
とにかくRustは素晴らしい
927デフォルトの名無しさん
2022/09/17(土) 11:43:45.86ID:5J0Fty65 >>902
「この設問は」ね。だから競プロは複数言語できると面白い。
「この設問は」ね。だから競プロは複数言語できると面白い。
928デフォルトの名無しさん
2022/09/17(土) 11:45:32.10ID:bMZyj00L 今は強い循環参照を作ってしまったら負けの世界
Pythonですら強い循環参照を避けるために弱参照が用意されていて回避できる
もちろんC#やJavaにKotlinやSwiftにも弱参照が当然あって回避できる
Rustなどのように強い循環参照が自然には発生しない言語仕様だと更に良い
Pythonですら強い循環参照を避けるために弱参照が用意されていて回避できる
もちろんC#やJavaにKotlinやSwiftにも弱参照が当然あって回避できる
Rustなどのように強い循環参照が自然には発生しない言語仕様だと更に良い
929デフォルトの名無しさん
2022/09/17(土) 11:46:24.15ID:w5Ud45eS メモリ安全とは何なのがまとまってるページとかは作れないんだろうか
930デフォルトの名無しさん
2022/09/17(土) 11:48:55.60ID:5J0Fty65 >>925
Bohemとかもそうだっけ?
循環参照に関しては、確かにメモリリークだけど、危険ではないんでは?
Dangling pointerにならんかったら良いんじゃ無いかなあ。
循環参照で放置されているものの解放に時間がかかっても、別に問題ないと思うんだけどな。メモリに極端な制約がある環境下でなければ。
最初から循環参照を作らないというのは一つなんだけど、そういうわけにもいかんのよ。
最近書いたけど、グラフなオブジェクトなんかは循環参照するじゃん。
Bohemとかもそうだっけ?
循環参照に関しては、確かにメモリリークだけど、危険ではないんでは?
Dangling pointerにならんかったら良いんじゃ無いかなあ。
循環参照で放置されているものの解放に時間がかかっても、別に問題ないと思うんだけどな。メモリに極端な制約がある環境下でなければ。
最初から循環参照を作らないというのは一つなんだけど、そういうわけにもいかんのよ。
最近書いたけど、グラフなオブジェクトなんかは循環参照するじゃん。
931デフォルトの名無しさん
2022/09/17(土) 11:49:36.37ID:5J0Fty65932デフォルトの名無しさん
2022/09/17(土) 11:57:30.35ID:w5Ud45eS ようやくわかってきたよ
C 言語 に大量にある 未定義な挙動が ないことをsafeって言ってんのか
ならメモリリークっていう現象事態はたしかにsafeだ
C 言語 に大量にある 未定義な挙動が ないことをsafeって言ってんのか
ならメモリリークっていう現象事態はたしかにsafeだ
933デフォルトの名無しさん
2022/09/17(土) 12:01:39.81ID:Qv9rB708 >>923
単にメモリリークと言ったら含まれるけど、
メモリ安全性に関わるメモリリークの文脈では循環参照は言及されてなさそうなんだよね
メモリ安全性という言葉の定義だけの問題で、実用上問題になるという点ではよろしくないとは思うけど
単にメモリリークと言ったら含まれるけど、
メモリ安全性に関わるメモリリークの文脈では循環参照は言及されてなさそうなんだよね
メモリ安全性という言葉の定義だけの問題で、実用上問題になるという点ではよろしくないとは思うけど
934デフォルトの名無しさん
2022/09/17(土) 12:02:36.48ID:rp+oVngt 循環参照はコールバック等で普通に発生する
トレーシングGCでは全く何の問題にもならないから弱参照なんか使わんよ
トレーシングGCでは全く何の問題にもならないから弱参照なんか使わんよ
935デフォルトの名無しさん
2022/09/17(土) 12:05:32.37ID:w5Ud45eS ttps://doc.rust-jp.rs/book-ja/ch15-06-reference-cycles.html
循環参照は、メモリをリークすることもある
ここか
なるほど
循環参照は、メモリをリークすることもある
ここか
なるほど
936デフォルトの名無しさん
2022/09/17(土) 12:06:42.34ID:ktSmkMDB >>928
強い弱いの意味がわかってなくて草
強い弱いの意味がわかってなくて草
937デフォルトの名無しさん
2022/09/17(土) 12:07:05.26ID:8assD4qG >>931
今まである「メモリ安全性」の常識を無視して『メモリ安全性』という言葉を使わなきゃいいんだけどねぇ。
「プログラムの安全性にこだわった」くらいの宣伝ならまだわかる。
Rustはわざわざ「メモリ安全性」という言葉を使って宣伝しているんだからダメだろ。
今まである「メモリ安全性」の常識を無視して『メモリ安全性』という言葉を使わなきゃいいんだけどねぇ。
「プログラムの安全性にこだわった」くらいの宣伝ならまだわかる。
Rustはわざわざ「メモリ安全性」という言葉を使って宣伝しているんだからダメだろ。
938デフォルトの名無しさん
2022/09/17(土) 12:24:51.56ID:J+gZaL34 確定的なタイミングでトレーシングGCしてくれるようなスマートポインタって実現不可能なの?
939デフォルトの名無しさん
2022/09/17(土) 12:27:39.54ID:bwIIEGYu 勘違いしてる人がいるようなので正しい知識をまとめておきます
C++やRustのような非GC言語やリファレンスカウント方式のGC言語では(強い)循環参照の解放は原理的に不可能です
これらの言語ではデッドロック等と同様に(強い)循環参照は発生させてはいけない禁忌として扱われ発生自体を避けます
対処方法としては弱い参照を用いた弱い循環参照を用いるのが主流ですが
プログラムが自分で管理する範囲内で循環参照を作ってまとめて解放したり範囲内GCなどを用いる方式もあります
マーク&スイープ方式やコピー方式のGC言語ならば(強い)循環参照も解放することができます
ただしそれらの方式は全体空間を全てマークしたり辿ったりコピーしたりとコストが重いことの裏返しでもあります
さらにGCが起こるまで無駄にメモリを専有してしまう問題もあります
そのためこれらの方式のGC言語でも弱参照が用意されて(強い)循環参照を作らないようにすることが一般化しつつあります
C++やRustのような非GC言語やリファレンスカウント方式のGC言語では(強い)循環参照の解放は原理的に不可能です
これらの言語ではデッドロック等と同様に(強い)循環参照は発生させてはいけない禁忌として扱われ発生自体を避けます
対処方法としては弱い参照を用いた弱い循環参照を用いるのが主流ですが
プログラムが自分で管理する範囲内で循環参照を作ってまとめて解放したり範囲内GCなどを用いる方式もあります
マーク&スイープ方式やコピー方式のGC言語ならば(強い)循環参照も解放することができます
ただしそれらの方式は全体空間を全てマークしたり辿ったりコピーしたりとコストが重いことの裏返しでもあります
さらにGCが起こるまで無駄にメモリを専有してしまう問題もあります
そのためこれらの方式のGC言語でも弱参照が用意されて(強い)循環参照を作らないようにすることが一般化しつつあります
940デフォルトの名無しさん
2022/09/17(土) 12:35:09.02ID:w5Ud45eS >>939
ちなみに誰が勘違いしてんの?
ちなみに誰が勘違いしてんの?
941デフォルトの名無しさん
2022/09/17(土) 12:37:10.60ID:8assD4qG942デフォルトの名無しさん
2022/09/17(土) 12:39:43.66ID:vRd8nzJr >>939
ちょっと本垢でQiitaにでも書いてくれマサカリ投げに行くから
ちょっと本垢でQiitaにでも書いてくれマサカリ投げに行くから
943デフォルトの名無しさん
2022/09/17(土) 13:12:35.27ID:5J0Fty65944デフォルトの名無しさん
2022/09/17(土) 13:18:40.25ID:Ct2ljdlf >>938
無理だよ
だから各言語は現実的な対応をとってる
例えばC++のshared_ptrでも循環参照を起こしたらメモリ解放できない
回避策は強い循環参照を作らないようにweak_ptrを使う
Rustでは意図的に頑張らない限り循環参照が勝手に作られることはないけど
同様に参照をWeakにできるからメモリ解放可能な弱参照を用いた循環参照にして扱う
これはARC方式のSwiftでも同様で循環参照を起こしたらメモリ解放できない
Swiftでもweak宣言で弱参照にできるので解放できない循環参照を避けられる
いずれの言語もほぼ同じ仕組み
無理だよ
だから各言語は現実的な対応をとってる
例えばC++のshared_ptrでも循環参照を起こしたらメモリ解放できない
回避策は強い循環参照を作らないようにweak_ptrを使う
Rustでは意図的に頑張らない限り循環参照が勝手に作られることはないけど
同様に参照をWeakにできるからメモリ解放可能な弱参照を用いた循環参照にして扱う
これはARC方式のSwiftでも同様で循環参照を起こしたらメモリ解放できない
Swiftでもweak宣言で弱参照にできるので解放できない循環参照を避けられる
いずれの言語もほぼ同じ仕組み
945デフォルトの名無しさん
2022/09/17(土) 13:55:15.51ID:Dua3tl/G >>944 >Rustでは意図的に頑張らない限り循環参照が勝手に作られることはない
よくわからないので聞くけど、
Rustでは意図的に頑張れば、Weakにせずに循環参照データ構造を定義してzeroじゃない実データ構築をするコードがコンパイル通るの?
よくわからないので聞くけど、
Rustでは意図的に頑張れば、Weakにせずに循環参照データ構造を定義してzeroじゃない実データ構築をするコードがコンパイル通るの?
946デフォルトの名無しさん
2022/09/17(土) 13:59:18.77ID:8assD4qG >>943
ならトップページに「Rustにおけるメモリ安全性」として「*メモリリークは除く」くらいはやらないと優良誤認だろ。
ならトップページに「Rustにおけるメモリ安全性」として「*メモリリークは除く」くらいはやらないと優良誤認だろ。
947デフォルトの名無しさん
2022/09/17(土) 14:14:04.83ID:Qv9rB708948デフォルトの名無しさん
2022/09/17(土) 14:16:59.16ID:Dua3tl/G >>947 ありがとう
949デフォルトの名無しさん
2022/09/17(土) 14:26:47.74ID:Dua3tl/G >>945
https://play.rust-lang.org/?version=stable&mode=release&edition=2021&gist=0d4932743de9a2d3f91b215fe3a4757b
>最後のprintln!のコメントを外してプログラムを実行したら、aがbを指して、bがaを指してと、 スタックがオーバーフローするまでコンパイラはこの循環を出力しようとするでしょう。
確かに
thread 'main' has overflowed its stack
fatal runtime error: stack overflow
timeout: the monitored command dumped core
https://play.rust-lang.org/?version=stable&mode=release&edition=2021&gist=0d4932743de9a2d3f91b215fe3a4757b
>最後のprintln!のコメントを外してプログラムを実行したら、aがbを指して、bがaを指してと、 スタックがオーバーフローするまでコンパイラはこの循環を出力しようとするでしょう。
確かに
thread 'main' has overflowed its stack
fatal runtime error: stack overflow
timeout: the monitored command dumped core
950デフォルトの名無しさん
2022/09/17(土) 14:30:22.04ID:Qv9rB708 >>937
循環参照によるリークを含むようにメモリ安全性を定義してる文献ってある?
Wikipediaの定義ではメモリリークという分類はあるけど、
"メモリ使用量が追跡されていない又は誤って追跡されている場合"
と説明されていて、前者は当てはまらないし、後者はダングリングポインタなどを意図しているようで、循環参照は含まないように読める
SwiftやChromeやAOSPやDのメモリ安全性に関するドキュメントでもメモリリークについては触れられていないようだった
循環参照によるリークを含むようにメモリ安全性を定義してる文献ってある?
Wikipediaの定義ではメモリリークという分類はあるけど、
"メモリ使用量が追跡されていない又は誤って追跡されている場合"
と説明されていて、前者は当てはまらないし、後者はダングリングポインタなどを意図しているようで、循環参照は含まないように読める
SwiftやChromeやAOSPやDのメモリ安全性に関するドキュメントでもメモリリークについては触れられていないようだった
951デフォルトの名無しさん
2022/09/17(土) 14:33:34.46ID:Dua3tl/G >>949
[BUILD]にしてみたが「循環しるよ」的なwarningはないのね
[BUILD]にしてみたが「循環しるよ」的なwarningはないのね
952デフォルトの名無しさん
2022/09/17(土) 14:37:56.61ID:Dua3tl/G953デフォルトの名無しさん
2022/09/17(土) 14:42:00.12ID:Dua3tl/G 潜伏した循環参照が後々深刻な事態になるかどうかは別の話だが
Rustだからと言って、コンパイル通ったからと言って、油断は禁物で
Rustだからと言って、コンパイル通ったからと言って、油断は禁物で
954デフォルトの名無しさん
2022/09/17(土) 14:43:28.60ID:Dua3tl/G 「常識」でしょw
955デフォルトの名無しさん
2022/09/17(土) 14:44:11.19ID:EEEbWrXO956デフォルトの名無しさん
2022/09/17(土) 15:27:41.65ID:lGXhfZzC すげーくだらないことで盛り上がってんなw
さすが次世代w言語wwスレwww
さすが次世代w言語wwスレwww
957デフォルトの名無しさん
2022/09/17(土) 15:28:08.55ID:5J0Fty65 メモリリークだけでは安全性には差し障らんでしょ。一般的に。
スタック、ヒープが枯渇することはメモリ安全性に差し障るけど。
リークしてるけど走りきった、とか、GCがまとめて解放した、はセーフだと思うよ。
スタック、ヒープが枯渇することはメモリ安全性に差し障るけど。
リークしてるけど走りきった、とか、GCがまとめて解放した、はセーフだと思うよ。
958デフォルトの名無しさん
2022/09/17(土) 15:58:19.63ID:8assD4qG959デフォルトの名無しさん
2022/09/17(土) 16:03:03.55ID:37/3YRxM >>957
いやメモリリークはDoS攻撃に対する脆弱性になりうるから安全性に差し障るよ
いやメモリリークはDoS攻撃に対する脆弱性になりうるから安全性に差し障るよ
960デフォルトの名無しさん
2022/09/17(土) 16:11:02.02ID:Qv9rB708 >>958
「メモリ安全性」という用語の定義の話に変な造語持ち込んで話題そらすのやめてよ
Rustによるメモリ安全性の定義が俺俺というなら、ちゃんとした定義を示して欲しいな
「常識だから分かるでしょ?」というのは自分の思いの表明にしかならないよ
「メモリ安全性」という用語の定義の話に変な造語持ち込んで話題そらすのやめてよ
Rustによるメモリ安全性の定義が俺俺というなら、ちゃんとした定義を示して欲しいな
「常識だから分かるでしょ?」というのは自分の思いの表明にしかならないよ
961デフォルトの名無しさん
2022/09/17(土) 16:15:15.87ID:EEEbWrXO962デフォルトの名無しさん
2022/09/17(土) 16:22:09.35ID:8assD4qG >>957
だとするとRustで常駐系のプログラムの開発をするのは安全では無いですな。
常駐系プログラムがメモリを食い潰すのは良くあるバグだけど、Rustだとそれは「仕様」で「メモリ安全の対象外」なんだから。
まぁ、Rcの循環参照だけの話だから、外部のコードを含めてRc使っていないor循環参照していないことを検証できれば安全なんだろうけど、Rustファンが言うような「Rustを使えば安全」というようなことは無い。
>>960
素直にWikipediaの「RAMアクセス時に発生するバグやセキュリティホールなどから保護されている状態のこと」でいいだろ。
Rust公式はなんて定義しているの?>>931は定義じゃないよな。
だとするとRustで常駐系のプログラムの開発をするのは安全では無いですな。
常駐系プログラムがメモリを食い潰すのは良くあるバグだけど、Rustだとそれは「仕様」で「メモリ安全の対象外」なんだから。
まぁ、Rcの循環参照だけの話だから、外部のコードを含めてRc使っていないor循環参照していないことを検証できれば安全なんだろうけど、Rustファンが言うような「Rustを使えば安全」というようなことは無い。
>>960
素直にWikipediaの「RAMアクセス時に発生するバグやセキュリティホールなどから保護されている状態のこと」でいいだろ。
Rust公式はなんて定義しているの?>>931は定義じゃないよな。
963デフォルトの名無しさん
2022/09/17(土) 17:12:30.63ID:Y2R7c2nA 「定義」や「常識」「一般的に」の話とは別だが、このスレ見てる個人的印象だと、
Rustで宣伝商売したい人たちは、Rustを知らない人(意思決定者)が「メモリ安全性」を「優良誤認」(自己責任)するのを密かに期待してそう
Rustプログラマーはそうじゃないと言い切れるのか
Rustで宣伝商売したい人たちは、Rustを知らない人(意思決定者)が「メモリ安全性」を「優良誤認」(自己責任)するのを密かに期待してそう
Rustプログラマーはそうじゃないと言い切れるのか
964デフォルトの名無しさん
2022/09/17(土) 17:14:19.56ID:d1cxOtJi965デフォルトの名無しさん
2022/09/17(土) 17:28:19.48ID:HhHvs5OG966デフォルトの名無しさん
2022/09/17(土) 17:33:54.35ID:F49YQPus >>925
今はしらんがrubyのgcも保守的gcだったよ。
今はしらんがrubyのgcも保守的gcだったよ。
967デフォルトの名無しさん
2022/09/17(土) 17:35:17.75ID:F49YQPus >>934
じゃあなんで弱参照が用意されてるんですかねぇ?
じゃあなんで弱参照が用意されてるんですかねぇ?
968デフォルトの名無しさん
2022/09/17(土) 17:40:51.90ID:nFfh6PUY969デフォルトの名無しさん
2022/09/17(土) 17:42:57.37ID:Qv9rB708 >>962
メモリ安全性に循環参照によるメモリリークの抑止が含まれないことは認めてくれた感じかな?
Rustを使えば絶対安全とか言ってる人の言うことを信じるのは良くないよ
匿名掲示板の変な人の発言じゃなくてちやんとしたドキュメントを読んだ方が良い
Rustはメモリ安全性について独自の定義はしてなくて、Wikipediaに書かれているような意味でのメモリ安全性を保証するよ
メモリ安全性に循環参照によるメモリリークの抑止が含まれないことは認めてくれた感じかな?
Rustを使えば絶対安全とか言ってる人の言うことを信じるのは良くないよ
匿名掲示板の変な人の発言じゃなくてちやんとしたドキュメントを読んだ方が良い
Rustはメモリ安全性について独自の定義はしてなくて、Wikipediaに書かれているような意味でのメモリ安全性を保証するよ
970デフォルトの名無しさん
2022/09/17(土) 17:46:34.02ID:37/3YRxM971デフォルトの名無しさん
2022/09/17(土) 17:54:50.07ID:8assD4qG972970
2022/09/17(土) 17:57:12.28ID:37/3YRxM なお、トレーシングGCにおいて循環強参照を避けることを目的に弱参照を使用することは全く何の意味もない
トレーシングGCのアルゴリズムを知っていれば循環強参照がGCのパフォーマンスやメモリ効率を悪化させることが無いのは明らかであるし、
弱参照の使用はレアケース故に概してあまり最適化されていないため、パフォーマンスは大抵の処理系においてむしろ悪化する
トレーシングGCのアルゴリズムを知っていれば循環強参照がGCのパフォーマンスやメモリ効率を悪化させることが無いのは明らかであるし、
弱参照の使用はレアケース故に概してあまり最適化されていないため、パフォーマンスは大抵の処理系においてむしろ悪化する
973デフォルトの名無しさん
2022/09/17(土) 18:01:07.97ID:F49YQPus GCあるほうが楽だと思うんだけど、スパイクの無いGCって実現できないの?
974デフォルトの名無しさん
2022/09/17(土) 18:02:24.90ID:cg31Hi2x >965
>Rubyよりは使われてるみたいだな
逆逆 Stackoverflowは精度がイマイチ
jetbrains
Ruby https://i.imgur.com/zqmf96u.png お一人様 7% ほとんどの人が仕事で使っている
Rust https://i.imgur.com/olB9F6L.png お一人様 86% ほとんどの人が個人の趣味
>Rubyよりは使われてるみたいだな
逆逆 Stackoverflowは精度がイマイチ
jetbrains
Ruby https://i.imgur.com/zqmf96u.png お一人様 7% ほとんどの人が仕事で使っている
Rust https://i.imgur.com/olB9F6L.png お一人様 86% ほとんどの人が個人の趣味
975デフォルトの名無しさん
2022/09/17(土) 18:03:21.53ID:8assD4qG >>969
いや?全然。
循環参照によるメモリリークはメモリエラーだろ。メモリ安全「RAMアクセス時に発生するバグやセキュリティホールなどから保護されている状態」じゃない。
それにRustファンの言うことを信じているとか、冗談を言うのはやめてくれよ。気持ち悪いから。
いや?全然。
循環参照によるメモリリークはメモリエラーだろ。メモリ安全「RAMアクセス時に発生するバグやセキュリティホールなどから保護されている状態」じゃない。
それにRustファンの言うことを信じているとか、冗談を言うのはやめてくれよ。気持ち悪いから。
976デフォルトの名無しさん
2022/09/17(土) 18:04:26.55ID:RkjWnqae977デフォルトの名無しさん
2022/09/17(土) 18:05:04.82ID:5J0Fty65 >>962
「どの言語でも基本的には、OOMキラーに殺される前にGCが走らせたり、手動でメモリーを解放できること」ができないと安全では無いんじゃないかな。なので環境依存よ。
そう、Rustを使えば安全では無い。
「どの言語でも基本的には、OOMキラーに殺される前にGCが走らせたり、手動でメモリーを解放できること」ができないと安全では無いんじゃないかな。なので環境依存よ。
そう、Rustを使えば安全では無い。
978デフォルトの名無しさん
2022/09/17(土) 18:07:30.72ID:37/3YRxM979デフォルトの名無しさん
2022/09/17(土) 18:17:28.35ID:DwuaYi+a 今回の件でGC言語がなぜ何倍も遅いのかよく分かった
世代別ガベージコレクションをするため頻繁にコピーGCを行なうことが遅くなる敗因の一つ
世代別ガベージコレクションをするため頻繁にコピーGCを行なうことが遅くなる敗因の一つ
980デフォルトの名無しさん
2022/09/17(土) 18:27:42.60ID:nd18Koff >>973
昔、ハードウェア側でGCするJVM(?)があったような…。
昔、ハードウェア側でGCするJVM(?)があったような…。
981デフォルトの名無しさん
2022/09/17(土) 18:30:08.29ID:NCiJs45P >>973
RustはGC無いけど即座に自動的にメモリ解放されて楽だよ
RustはGC無いけど即座に自動的にメモリ解放されて楽だよ
982デフォルトの名無しさん
2022/09/17(土) 18:36:24.89ID:w5Ud45eS 参照カウントって GC じゃないの?
983デフォルトの名無しさん
2022/09/17(土) 18:37:21.32ID:5PJHomtk 四天王で最弱のGC。
984デフォルトの名無しさん
2022/09/17(土) 18:37:25.76ID:DA06Eolw >>981 それの何が楽だと言っているの?
985デフォルトの名無しさん
2022/09/17(土) 18:38:14.76ID:5PJHomtk 俺の考えたGCが最強だけど、サブマリン特許やる予定だから教えない。
986デフォルトの名無しさん
2022/09/17(土) 18:39:44.29ID:iNOCwuLa はよ次スレ
987デフォルトの名無しさん
2022/09/17(土) 18:40:19.19ID:ykXCo787 GC言語を使うと大して楽になるわけではないのに劇的に遅くなるからな
無能にはGC言語が向いている
無能にはGC言語が向いている
988デフォルトの名無しさん
2022/09/17(土) 18:40:33.78ID:5J0Fty65989デフォルトの名無しさん
2022/09/17(土) 18:42:13.95ID:5PJHomtk Java製アプリはオメガテーつこてるけど、遅いとか重いとか一切ない。
サクサク快適。
だがしかし、キャレットの位置が異常なのでテキストの選択がやりにくい。
この動作はJava GUIの仕様だが、仕様が間違っていると思う。
Windowsと同じ動作にするべき。
サクサク快適。
だがしかし、キャレットの位置が異常なのでテキストの選択がやりにくい。
この動作はJava GUIの仕様だが、仕様が間違っていると思う。
Windowsと同じ動作にするべき。
990デフォルトの名無しさん
2022/09/17(土) 18:47:25.27ID:lRvi//fY >>980 次スレ気づいてない 誰か代理 俺は無理
991デフォルトの名無しさん
2022/09/17(土) 18:47:35.21ID:kG69OWVT >>982
プログラマー指定せずとも自動的に参照カウントが使われる言語(PerlとかPythonとかSwiftなど)の場合はGCで合ってるよ
C++のshared_ptrやRustのRcのように特殊な用途のみにプログラマーが明示的に指定して使うものはGCとは呼ばれず単なるデータ管理構造
プログラマー指定せずとも自動的に参照カウントが使われる言語(PerlとかPythonとかSwiftなど)の場合はGCで合ってるよ
C++のshared_ptrやRustのRcのように特殊な用途のみにプログラマーが明示的に指定して使うものはGCとは呼ばれず単なるデータ管理構造
992デフォルトの名無しさん
2022/09/17(土) 18:48:56.73ID:KEhwIc0k993デフォルトの名無しさん
2022/09/17(土) 18:51:00.89ID:fAQVBQ3R994デフォルトの名無しさん
2022/09/17(土) 18:51:29.16ID:5PJHomtk お子様 → Python
おんな → Ruby
真の男 → Rust
こう言いたいのでは?
岡くんは。
おんな → Ruby
真の男 → Rust
こう言いたいのでは?
岡くんは。
995デフォルトの名無しさん
2022/09/17(土) 18:52:46.32ID:5PJHomtk >>993
ってことは、2~3倍遅くても何も問題ないってことだろ。
ってことは、2~3倍遅くても何も問題ないってことだろ。
996デフォルトの名無しさん
2022/09/17(土) 18:55:08.60ID:5PJHomtk パイソンとかジャッカルには厨二を惹きつける響きがある。
女がなぜRubyを使いたがるのかはよく知らん。
岡くんがRust推しなのは本読んでわかった気になったから。
女がなぜRubyを使いたがるのかはよく知らん。
岡くんがRust推しなのは本読んでわかった気になったから。
997デフォルトの名無しさん
2022/09/17(土) 18:55:32.40ID:lBhMDjlR998デフォルトの名無しさん
2022/09/17(土) 18:56:42.77ID:8assD4qG 次スレはワッチョイ付けるよね。
999デフォルトの名無しさん
2022/09/17(土) 18:57:28.27ID:8assD4qG >>997
循環参照除く
循環参照除く
1000デフォルトの名無しさん
2022/09/17(土) 18:58:09.16ID:8assD4qG 1000
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 19日 7時間 35分 53秒
新しいスレッドを立ててください。
life time: 19日 7時間 35分 53秒
10021002
Over 1000Thread 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 「中国側も日本機のレーダーを感知していた」 中国メディアが報道 [♪♪♪★]
- 【YouTuber】バイク事故で入院のゆたぼん、振込で「お見舞金」募る [muffin★]
- 高市早苗首相、消費税減税に後ろ向き 足かせはレジシステム? 「責任ある積極財政」期待高いが [蚤の市★]
- 堀江貴文、キャッシュレス非対応の店にモヤッ 『PayPay』立ち上げの人物にまさかの直談判「現金決済しかできないんだけど…」 [冬月記者★]
- 低所得層のマクドナルド離れが深刻に 広がる「ファストフード格差」の真相 米国 [少考さん★]
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★7 [七波羅探題★]
- 防衛省、中国を完全論破www 「事前通告があったのは海自であって空自ではない」 高市早苗勝利 [175344491]
- 勃起させた状態でパンツを下ろすとチンコがバイィーンってなるだろ
- 【悲報】JA「全然米が売れなくて倉庫を圧迫してる。助けて!」米卸売り業者「安売りしたら赤字になる…助けて!」 [802034645]
- 【悲惨】中国軍が自衛隊に「事前通告」し自衛隊も返答した音声が公開されてしまうwwwこれは高市チェックアウトゕ★4 [597533159]
- 高市早苗さん、もう自決でしか許されないレベルになる [402859164]
- 韓国政府、高市早苗の「竹島領土」発言にブチギレwwwwwwwwwwwwwwww [834922174]
