スレタイ(順番はRedMonk準拠)以外の言語もok
※ Rustは現世代最強言語なので除外します
前スレ
次世代言語25 TypeScript Swift Go Kotlin Rust Nim
https://mevius.5ch.net/test/read.cgi/tech/1650185555/
探検
次世代言語26 TypeScript Swift Go Kotlin Nim
レス数が1000を超えています。これ以上書き込みはできません。
2022/06/21(火) 09:27:46.30ID:5vOFCGpG
2022/06/21(火) 09:44:18.82ID:GTnizZ2U
文字列の変数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)
3デフォルトの名無しさん
2022/06/21(火) 12:56:04.76ID:/ETIo2hH オーバーロードが無いと、
例えばライブラリ無いからシステムコール利用する便利ラッパー機能を提供しようとする。例えばソケット関係のAPIをまとめたやつとか。
で socket(2)の場合、
第3引数なんていつも0しか使わないからと第2引数までを取るAPIとして公開、後になって第3引数必要になった(例えばSCTP利用)ってなった場合、オーバーロードできないとAPI変える必要あるじゃん。
例えばライブラリ無いからシステムコール利用する便利ラッパー機能を提供しようとする。例えばソケット関係のAPIをまとめたやつとか。
で socket(2)の場合、
第3引数なんていつも0しか使わないからと第2引数までを取るAPIとして公開、後になって第3引数必要になった(例えばSCTP利用)ってなった場合、オーバーロードできないとAPI変える必要あるじゃん。
2022/06/21(火) 13:12:00.12ID:vSYkmcQ8
>>3
プログラムを書いたことのないキチガイだな
socketの第3引数はgetaddrinfoで得たai_protocolを引き渡すのが常識
あるいはgetaddrinfoを使わないならばgetprotobynameの結果を引き渡すものだ
まともなコードを書けないからそんな意味不明な主張になる
プログラムを書いたことのないキチガイだな
socketの第3引数はgetaddrinfoで得たai_protocolを引き渡すのが常識
あるいはgetaddrinfoを使わないならばgetprotobynameの結果を引き渡すものだ
まともなコードを書けないからそんな意味不明な主張になる
5デフォルトの名無しさん
2022/06/21(火) 13:15:46.21ID:wIb095hs 必要なら変えればいいじゃん
2022/06/21(火) 14:09:10.86ID:l/hCBOZ3
なんでオーバーロードが無いCでうまくやっている例を挙げてオーバーロードの必要性を主張しようと思ったんだろう
2022/06/21(火) 17:22:04.63ID:AK5VMxpO
/ ,.----―‐、ヽ. \
/ / ヽ ヽヽ、_ヽ
/ _,.-‐''" ヽ ヽ `ヽ
/ _,,.-‐'" ヽ ヽ ヽ
/ _,.-'" ヽ ヽ ヽ
/ _,.-‐'" i! i! .._ i
人_,.-‐" _,,... _;;.::='' \ i! i!/ >'
/ _,,..-''_,.-‐''" 入 /_____/ ,.イ'
| ,.-ヽ、 _,.-'"_,.- ‐┬:.:ァ‐──┬: :ァ= ┬─―-|ヾ r i!
|/ ヽ.. ,.-'" r |/ ,L:厶\_, |: / _/二│ / | .| |
i ヽ | |; 〃  ̄`ヾ |/ 〃 ̄`∨ i | |ヽ
i! ヽ | .| {{ }} {{ }} { | | | また新スレだ!いつもいつも!
| i | | ゞ' ==彡 ゞ ==彡 l | | | 1000にも届かないで!!わたしを弄んで!!
ヽ | | |! ヽヽ ヽヽ l | | i!
ヽ、 | | | /⌒¨¨¨¨¨¨¨¨¨⌒ヽ / | i/
ヽ、 / ヽ ヽ、 { 丿 / /,! ,i!
ヾ`ヽー' `ヽ、 `ヽ、 ェ-―‐-く / ./ /
``―、_ ` ‐、_ ` ー--/ __ `ヽ/ ./ /
`゙゙‐-、 ゙`ー、.._/ i'" `ヽ /,/
/ / ヽ ヽヽ、_ヽ
/ _,.-‐''" ヽ ヽ `ヽ
/ _,,.-‐'" ヽ ヽ ヽ
/ _,.-'" ヽ ヽ ヽ
/ _,.-‐'" i! i! .._ i
人_,.-‐" _,,... _;;.::='' \ i! i!/ >'
/ _,,..-''_,.-‐''" 入 /_____/ ,.イ'
| ,.-ヽ、 _,.-'"_,.- ‐┬:.:ァ‐──┬: :ァ= ┬─―-|ヾ r i!
|/ ヽ.. ,.-'" r |/ ,L:厶\_, |: / _/二│ / | .| |
i ヽ | |; 〃  ̄`ヾ |/ 〃 ̄`∨ i | |ヽ
i! ヽ | .| {{ }} {{ }} { | | | また新スレだ!いつもいつも!
| i | | ゞ' ==彡 ゞ ==彡 l | | | 1000にも届かないで!!わたしを弄んで!!
ヽ | | |! ヽヽ ヽヽ l | | i!
ヽ、 | | | /⌒¨¨¨¨¨¨¨¨¨⌒ヽ / | i/
ヽ、 / ヽ ヽ、 { 丿 / /,! ,i!
ヾ`ヽー' `ヽ、 `ヽ、 ェ-―‐-く / ./ /
``―、_ ` ‐、_ ` ー--/ __ `ヽ/ ./ /
`゙゙‐-、 ゙`ー、.._/ i'" `ヽ /,/
8デフォルトの名無しさん
2022/06/21(火) 18:27:05.65ID:/ETIo2hH2022/06/21(火) 18:45:23.25ID:cgA+HP5m
例がアカンわそれ
オーバーロードがある言語でもオーバーロードすべき時とメソッドを分けるべき時が当然ある
fcntlなんかはオーバーロードを考えるより先に分割を検討すべきものだから議論がとっちらかる
オーバーロードがある言語でもオーバーロードすべき時とメソッドを分けるべき時が当然ある
fcntlなんかはオーバーロードを考えるより先に分割を検討すべきものだから議論がとっちらかる
10デフォルトの名無しさん
2022/06/21(火) 18:55:56.41ID:n99R/Leg2022/06/21(火) 18:56:25.10ID:l/hCBOZ3
2022/06/21(火) 19:00:59.44ID:XqbO80NY
求めてるのはオーバーロードじゃなくてデフォルト引数だね
13デフォルトの名無しさん
2022/06/21(火) 19:02:06.03ID:n99R/Leg オーバーロードできるからと、いつもオーバーロードするわけではない。
だがオーバーロードが適切な場合はオーバーロードできたほうが良い。
単にそれだけ。
原理主義者になるな。
だがオーバーロードが適切な場合はオーバーロードできたほうが良い。
単にそれだけ。
原理主義者になるな。
14デフォルトの名無しさん
2022/06/21(火) 19:15:17.39ID:n99R/Leg2022/06/21(火) 19:19:23.26ID:zS+KQ1el
オーバーロードは関数を値として持とうとしたときに関数の実体を取得するのがくそほど面倒臭かった記憶
2022/06/21(火) 19:34:47.92ID:bYqCGEc9
オーバーロードの追加はAPIの変更に含まれますか?
2022/06/21(火) 19:36:24.38ID:l8WwdmAr
ジェネリクス以外でわざわざ同じ関数名使う必然性がないわな。
2022/06/21(火) 19:39:33.13ID:hzkld3Bb
Objective-Cの関数名って長かったよなあ(遠い目)
2022/06/21(火) 19:45:56.46ID:8AFmzPLe
オーバーロードの有無で使用する言語を選ぶ人っているのか?
いないなら些末な議論
いないなら些末な議論
2022/06/21(火) 20:30:16.16ID:vSYkmcQ8
>>8
よく考えてから反論の例を挙げよう
fcntlこそオーバーロードに不向きだろ
まずfcntlの引数は代数的データ型になっていることを理解できるか?
つまりRustならばそれはenumなので例えばこんな風に解決される
enum FcntlArgs {
F_GETFL,
F_SETFL(O_Flag),
F_DUPFD(FileDescriptor),
F_SETLK(Flock),
...
}
これでlibcインタフェースよりもシンプルかつ分かりやすく間違いなく表現できる
関数の引数はもちろんfdとこのFcntlArgsの2つに固定される
fn fnctl(fd: FileDescriptor, args: FcntlArgs) -> Result<FcntlReturn, Error>
と戻り値も様々なものが返るからenum FcntlReturnを用意すればミス防止になるだろう
エラーもそのenumに混ぜる手もあるがここでは分けて汎用的にResultとしている
その場合の使い方はこんな感じのコードになるだろう
if let O_Flag(o) = fcntl(fd, F_GETFL)? {
o |= O_NONBLOCK;
fcntl(fd, F_SETFL(o))?;
}
よく考えてから反論の例を挙げよう
fcntlこそオーバーロードに不向きだろ
まずfcntlの引数は代数的データ型になっていることを理解できるか?
つまりRustならばそれはenumなので例えばこんな風に解決される
enum FcntlArgs {
F_GETFL,
F_SETFL(O_Flag),
F_DUPFD(FileDescriptor),
F_SETLK(Flock),
...
}
これでlibcインタフェースよりもシンプルかつ分かりやすく間違いなく表現できる
関数の引数はもちろんfdとこのFcntlArgsの2つに固定される
fn fnctl(fd: FileDescriptor, args: FcntlArgs) -> Result<FcntlReturn, Error>
と戻り値も様々なものが返るからenum FcntlReturnを用意すればミス防止になるだろう
エラーもそのenumに混ぜる手もあるがここでは分けて汎用的にResultとしている
その場合の使い方はこんな感じのコードになるだろう
if let O_Flag(o) = fcntl(fd, F_GETFL)? {
o |= O_NONBLOCK;
fcntl(fd, F_SETFL(o))?;
}
2022/06/21(火) 21:43:34.03ID:gx+wq5uQ
2022/06/21(火) 21:57:39.81ID:Z7u4GR2t
>>19
>オーバーロードの有無で使用する言語を選ぶ人っているのか?
ドカタは低脳、ゆとり、基地外でも大歓迎な職業なもんだから、
へんな奴が多い。そして、5chのム板に来る奴にはそれの重度な奴が多い。
そんな奴(重度の基地系)だと些細なことでも異常ににこだわる(超粘着する)のが普通なんだよ。
で、俺的にはオーバーロード必死な人が使っている言語(メイン言語)が何なのか興味あるが
>オーバーロードの有無で使用する言語を選ぶ人っているのか?
ドカタは低脳、ゆとり、基地外でも大歓迎な職業なもんだから、
へんな奴が多い。そして、5chのム板に来る奴にはそれの重度な奴が多い。
そんな奴(重度の基地系)だと些細なことでも異常ににこだわる(超粘着する)のが普通なんだよ。
で、俺的にはオーバーロード必死な人が使っている言語(メイン言語)が何なのか興味あるが
2022/06/21(火) 22:00:18.48ID:Z0vonPWK
2022/06/21(火) 22:24:10.62ID:PKuk2WhK
2022/06/21(火) 22:33:00.05ID:vSYkmcQ8
>>23
別のメソッドにしなくても
もし使用ミスがあればコンパイル時エラーとなるため>>20の仕様でも全く問題ない
そしてこの手法はRustでは常套
例えばHTTPのメソッドはGETやPOSTやDELETEなど39種類が定められているが
Rustでは39種類のメソッド関数を用意せず今回の例のようにenumに39種類を並べて用いている
今回のfcntlでも大量のメソッド関数を作るのは好ましくないと考える
さらに今回は>>8がオーバーロードがない場合は関数を分けてfcntl_getfl()やfcntl_setfl()などと大量に作らざるを得なくなる例として持ち出してきた流れ
だからオーバーロードなんか無くてもfcntl()一つで済むことを示した
そしてこれは汎用的な手法である
別のメソッドにしなくても
もし使用ミスがあればコンパイル時エラーとなるため>>20の仕様でも全く問題ない
そしてこの手法はRustでは常套
例えばHTTPのメソッドはGETやPOSTやDELETEなど39種類が定められているが
Rustでは39種類のメソッド関数を用意せず今回の例のようにenumに39種類を並べて用いている
今回のfcntlでも大量のメソッド関数を作るのは好ましくないと考える
さらに今回は>>8がオーバーロードがない場合は関数を分けてfcntl_getfl()やfcntl_setfl()などと大量に作らざるを得なくなる例として持ち出してきた流れ
だからオーバーロードなんか無くてもfcntl()一つで済むことを示した
そしてこれは汎用的な手法である
2022/06/21(火) 22:52:38.19ID:NotgbbUa
相手にしたら負け
学習しましょう
学習しましょう
2022/06/21(火) 23:20:14.77ID:Z7u4GR2t
オーバーロードが無いと嫌だ嫌だな人はオーバーロードを変態にした
C++の可変引数テンプレート(可変長ジェネリクス引数)のようなものが実は欲しいってことなんじゃないのか
C++の可変引数テンプレート(可変長ジェネリクス引数)のようなものが実は欲しいってことなんじゃないのか
2022/06/21(火) 23:42:15.69ID:aTTVmXQa
新しく作る前提ならfcntlみたいに責務の異なる複数の処理は
1つの関数ではなく1つのクラスやモジュールにまとめたほうがいいのは間違いない
ただ既存APIのラッパーなら使いやすい形にAPIを変更した方がいいケースもあれば
既存と同じ感覚で使える形に留めたほうがいいケースもあるから
分割がいいかどうかはケースバイケース
1つの関数ではなく1つのクラスやモジュールにまとめたほうがいいのは間違いない
ただ既存APIのラッパーなら使いやすい形にAPIを変更した方がいいケースもあれば
既存と同じ感覚で使える形に留めたほうがいいケースもあるから
分割がいいかどうかはケースバイケース
2022/06/22(水) 00:47:54.76ID:OgTLLOot
2022/06/22(水) 01:52:24.75ID:li50soYi
ここまですべてスレタイにない言語の話題
2022/06/22(水) 03:03:24.75ID:SASaungr
2022/06/22(水) 07:15:40.26ID:KrJiTw7R
>>29
Rustはtraitを用いたジェネリクスやenumなど便利で強力な機構を備えているため
具体的な現実の問題のほとんどはオーバーロードを使わずともそれらを用いてもっと良い解決を取ることが出来てしまう
Rustはtraitを用いたジェネリクスやenumなど便利で強力な機構を備えているため
具体的な現実の問題のほとんどはオーバーロードを使わずともそれらを用いてもっと良い解決を取ることが出来てしまう
2022/06/22(水) 08:41:50.14ID:lobyXiUO
幼稚園児の発想だね
34デフォルトの名無しさん
2022/06/22(水) 08:59:15.48ID:s09CCxIL nim ってどうよ?
2022/06/22(水) 10:00:29.78ID:V1lHcDUa
>>34
かなりいいよ
かなりいいよ
36デフォルトの名無しさん
2022/06/22(水) 10:53:23.20ID:tHEXzaPe flutter で dart だろ。Swift UIとか覚える気ない、というかApple終わってるし
2022/06/22(水) 11:56:08.73ID:4fUU5ZCa
nimダウンロードできない。
なぜか、消える。ノートンが削除してるの?
なぜか、消える。ノートンが削除してるの?
2022/06/22(水) 12:27:18.00ID:dG1UKNjk
>>37
この文面からして明らかにプログラミング向いてなさそう
この文面からして明らかにプログラミング向いてなさそう
2022/06/22(水) 17:58:01.91ID:jR4emiFb
GUIフレームワークがついてる言語が少ないので嫌だな
2022/06/22(水) 23:42:43.21ID:DzsA87OB
ノートンなどアンチウイルスソフトが必ず隔離や削除する、インストールの際はインストール先を例外にする必要があります
全部誤判定なんだがアンチウイルスソフトの会社は殿様商売だな
全部誤判定なんだがアンチウイルスソフトの会社は殿様商売だな
2022/06/24(金) 13:42:32.48ID:Z+V4WXYl
>>40
ここまで日本語不自由だと生きるのつらそう
ここまで日本語不自由だと生きるのつらそう
2022/06/24(金) 19:59:44.23ID:AZl692OH
【IT】世界中のIT技術者から愛されているプログラミング言語 3位は「Clojure」、2位は「Elixir」 1位は? [田杉山脈★]
https://egg.5ch.net/test/read.cgi/bizplus/1656048302/
スレタイはこの上位といれかえたら?
https://egg.5ch.net/test/read.cgi/bizplus/1656048302/
スレタイはこの上位といれかえたら?
2022/06/24(金) 20:12:58.51ID:UJITbcs3
ClojureもElixirもいいけど次世代かって聞かれるとう~ん
なんだろうね次世代って
なんだろうね次世代って
2022/06/25(土) 09:52:11.80ID:+nqB0HMQ
>>42
毎年恒例の1位となってるな
>世界中のIT技術者から愛されているプログラミング言語はなにか。
>プログラミング関連のQ&Aサイト「Stack Overflow」を運営する米Stack Exchangeが
>そのような調査結果を発表した。
>各言語の「Loved」(愛している)と「Dreaded」(恐れている)の比率で
>Lovedが最も高かったのは「Rust」(86.73%)で7年連続で1位になった。
>回答数は7万1467件。
毎年恒例の1位となってるな
>世界中のIT技術者から愛されているプログラミング言語はなにか。
>プログラミング関連のQ&Aサイト「Stack Overflow」を運営する米Stack Exchangeが
>そのような調査結果を発表した。
>各言語の「Loved」(愛している)と「Dreaded」(恐れている)の比率で
>Lovedが最も高かったのは「Rust」(86.73%)で7年連続で1位になった。
>回答数は7万1467件。
2022/06/25(土) 12:36:15.24ID:ul9cRZkF
2022/06/25(土) 15:33:06.41ID:KZ/E7BkI
食わず嫌いだったけど
使うようになってRustが最もコーティングしやすいプログラミング言語だとわかった
使うようになってRustが最もコーティングしやすいプログラミング言語だとわかった
2022/06/25(土) 17:07:59.40ID:XFOsSqRc
どのへんがとは全く言わない、糞言語Rustアゲおじさん
2022/06/25(土) 17:31:49.13ID:Ubwsp+uM
どういうレベルの人か察してやれ
2022/06/25(土) 20:40:59.84ID:/UVjDglo
次世代って響きは良いけど従来の言語の穴を塞いだ発展型の方が好まれそうと感じる
でもその結果C++とかObjective-Cが生まれたと思うとその考えも合ってるんだか自信がない
でもその結果C++とかObjective-Cが生まれたと思うとその考えも合ってるんだか自信がない
50デフォルトの名無しさん
2022/06/27(月) 14:02:27.16ID:kVADuAyl その意味合いでいうなら
v言語が宣伝してる内容を全部まともに実装できたら次世代と言っていいんじゃないすかね
v言語が宣伝してる内容を全部まともに実装できたら次世代と言っていいんじゃないすかね
2022/06/27(月) 14:24:04.88ID:6DiYUBn7
もっといい言語ないかな~
2022/06/27(月) 14:25:31.64ID:BV1DTZv2
過去にない新たなパラダイムを開く言語こそ次世代言語
それが何かは知らんが
それが何かは知らんが
2022/06/27(月) 16:35:25.69ID:2zgfe4St
YouTube で有名な雑食系エンジニア・KENTA が、既に結論を言ってる。
文系のキャリアパスは、Ruby on Rails → Go のみ
Rust, Elixir は普及のキャズムを越えなかった。
越えたのはGo だけ
いつも思うけど、Stack Overflow にいる香具師は、プロじゃないと思う。
転職に適さない
文系のキャリアパスは、Ruby on Rails → Go のみ
Rust, Elixir は普及のキャズムを越えなかった。
越えたのはGo だけ
いつも思うけど、Stack Overflow にいる香具師は、プロじゃないと思う。
転職に適さない
5453
2022/06/27(月) 16:50:49.51ID:2zgfe4St AWS Lambda のデフォルト言語は、
Node.js, Python, Ruby,
Java, Go,
PowerShell, C#
Rust, Elixir, PHP は入っていない。
カスタムコンテナを作るしかない
でも、Elixirは5千万プロセスが、130GB ぐらいのメモリ使用量らしいから、
32GBでも、1千万プロセスぐらい動くかも
IoT で、Nerves には期待している。
Ruby on Rails の本を書いている、黒田努の本も出たし
Node.js, Python, Ruby,
Java, Go,
PowerShell, C#
Rust, Elixir, PHP は入っていない。
カスタムコンテナを作るしかない
でも、Elixirは5千万プロセスが、130GB ぐらいのメモリ使用量らしいから、
32GBでも、1千万プロセスぐらい動くかも
IoT で、Nerves には期待している。
Ruby on Rails の本を書いている、黒田努の本も出たし
2022/06/27(月) 17:13:12.52ID:rnJb8tm1
GoはLambdaの新しいAL2環境においては単なるカスタムランタイム扱いに格下げされており、Rustとの違いは無くなっている
キチガイに触るつもりはないが他の人への情報提供として
キチガイに触るつもりはないが他の人への情報提供として
2022/06/27(月) 17:20:17.54ID:gf8cGZwe
Erlang系の話題も少ないけどGleamとかどうよ
程々にホットだけどフレームワークはまだできてない、現状はそんな感じ
BEAMで動いて型が付いてて開発が動いてるってだけで機能として珍しい所はあんまり無いんだけどさ
そんな関数型関数型しい仕様でもないしギークが喜ぶリッチな型があるわけでもない
あとはjsがこないだ吐けるようになった
程々にホットだけどフレームワークはまだできてない、現状はそんな感じ
BEAMで動いて型が付いてて開発が動いてるってだけで機能として珍しい所はあんまり無いんだけどさ
そんな関数型関数型しい仕様でもないしギークが喜ぶリッチな型があるわけでもない
あとはjsがこないだ吐けるようになった
2022/06/27(月) 17:41:40.73ID:hsXMzH39
未だにKENTAのゴミ動画を当てにしてるやつが湧くのか
2022/06/27(月) 20:09:14.72ID:7Bf+48fI
本人でしょw
2022/06/27(月) 21:32:09.95ID:BV1DTZv2
>>55
rustとの違いがないってことはRAIIパターン使えるようになるの?
rustとの違いがないってことはRAIIパターン使えるようになるの?
2022/06/27(月) 22:04:16.27ID:6JaS2WC8
2022/06/28(火) 14:36:14.98ID:1wirEm3f
Rust is coming to Linux, says Torvalds
https://cloud7.news/linux/rust-is-coming-to-linux-says-torvalds/
Torvalds also announced some changes he plans to implement into Linux soon.
Most significantly, the open-source programming language, Rust might be included in the next release. Torvalds stated that Rust will be introduced in a limited way.
https://cloud7.news/linux/rust-is-coming-to-linux-says-torvalds/
Torvalds also announced some changes he plans to implement into Linux soon.
Most significantly, the open-source programming language, Rust might be included in the next release. Torvalds stated that Rust will be introduced in a limited way.
2022/06/28(火) 15:53:32.16ID:L5XiZwek
>>61
きたーーーーーーーーーーー
きたーーーーーーーーーーー
6353
2022/06/29(水) 18:00:11.30ID:zCehF1Jn KENTA の天敵・モローも、遂にRuby on Rails のキャリア相談までやり出したw
2020年には、Railsはオワコンと言っていたが、
Railsの仕事が増えたため、急きょRailsに鞍替えw
主張が、KENTAと全く同じになったw
【2022年版】Ruby on Railsの将来性
www.youtube.com/watch?v=YWKxh3KoNsY
スタートアップ企業の第一選択肢で、リモートワークも多い。
給料450〜500万円、業務委託は月50〜60万円
データベース設計、React, TypeScript も勉強すると良い
キャリアパスは、
Rails → Go, SRE、エンジニアリング・マネージャー
2020年には、Railsはオワコンと言っていたが、
Railsの仕事が増えたため、急きょRailsに鞍替えw
主張が、KENTAと全く同じになったw
【2022年版】Ruby on Railsの将来性
www.youtube.com/watch?v=YWKxh3KoNsY
スタートアップ企業の第一選択肢で、リモートワークも多い。
給料450〜500万円、業務委託は月50〜60万円
データベース設計、React, TypeScript も勉強すると良い
キャリアパスは、
Rails → Go, SRE、エンジニアリング・マネージャー
6453
2022/06/29(水) 18:08:23.13ID:zCehF1Jn 今までのモローの主張は、
KENTA がRuby on Rails サロンをやる目的は、
ポートフォリオを作るための学習期間が長いので、
サロンに長期間入ってもらって、KENTAがもうかるので、Railsを勧めている
Railsはオワコンなので、サロンに入っても、仕事は減っていく一方と言ってたのに、
今じゃ、KENTAと全く同じ事を言ってるw
KENTA がRuby on Rails サロンをやる目的は、
ポートフォリオを作るための学習期間が長いので、
サロンに長期間入ってもらって、KENTAがもうかるので、Railsを勧めている
Railsはオワコンなので、サロンに入っても、仕事は減っていく一方と言ってたのに、
今じゃ、KENTAと全く同じ事を言ってるw
2022/06/29(水) 18:15:54.85ID:5n1aZHdk
Linux開発にRustで掛かれたコードが解禁された
しかし
Cで書かれたものを置き換えることはしない
APIを変えることはしない
しかし
Cで書かれたものを置き換えることはしない
APIを変えることはしない
2022/06/29(水) 22:16:42.10ID:a+duSEZX
相変わらず三流ユーチューバーを引き合いに出すやついるのな
2022/07/01(金) 21:34:11.78ID:12jEq8hC
2022/07/01(金) 21:52:53.35ID:JFBfOGuK
あまりにも既存コードが膨大だからね
長らくあらゆる環境で機能してたコードをリプレイスするほどまでのメリットはないだろう
もし仮にそこまでメリットあるんだったら、即刻世界中からC/C++のコードを絶滅させてほしいわ
長らくあらゆる環境で機能してたコードをリプレイスするほどまでのメリットはないだろう
もし仮にそこまでメリットあるんだったら、即刻世界中からC/C++のコードを絶滅させてほしいわ
69デフォルトの名無しさん
2022/07/02(土) 07:56:01.10ID:lUSnA9b+ 誰もリプレイスするべき、なんて言ってないよ
2022/07/02(土) 09:01:16.19ID:hTSqv50e
そうやってCOBOLのコードが維持それ続けてるんだよなぁ
2022/07/14(木) 20:22:39.85ID:ZkG98XYT
COBOLを舐めてはいけない
そもそも基本的に動的アロケーションをしないから、メモリ管理に関してはRustなんかに比べても信頼性が無茶苦茶高い
そもそも基本的に動的アロケーションをしないから、メモリ管理に関してはRustなんかに比べても信頼性が無茶苦茶高い
72デフォルトの名無しさん
2022/07/15(金) 08:41:12.46ID:LdUI0ldE >>71
でDATA DIVISIONが半分を占める悪夢のようなコードが蔓延するんですね
でDATA DIVISIONが半分を占める悪夢のようなコードが蔓延するんですね
2022/07/16(土) 02:22:35.47ID:wu6dkzng
2022/07/16(土) 07:08:19.77ID:vxjrsiXW
rustじゃ駄目だったのかなあ
2022/07/16(土) 07:25:23.59ID:6ZY7uA4U
多様性があった方が良いんじゃないの?
2022/07/16(土) 12:38:54.49ID:730D9OZt
Zigなかなかおもしろいね
エラーハンドリングがSwift風で好感が持てた
エラーハンドリングがSwift風で好感が持てた
2022/07/17(日) 00:52:05.19ID:vN6ol9NM
Zigやるわ
2022/07/17(日) 01:03:33.43ID:KV4hrNVX
Rustの終わりの始まり
2022/07/17(日) 01:25:06.31ID:0s/4JmSD
Rustは安全性と高速性と書きやすさの両立を実現した
ZigはC++と同じで安全性は保証しない
Rustに対しては相対的にZigのメリットは無い
C/C++で書くよりはZigの方がおすすめではある
ZigはC++と同じで安全性は保証しない
Rustに対しては相対的にZigのメリットは無い
C/C++で書くよりはZigの方がおすすめではある
2022/07/17(日) 02:03:08.49ID:vKjp9uxK
Zenはどう?
2022/07/17(日) 02:05:03.30ID:vN6ol9NM
Zig軽く見たけどメモリ管理自前なのがキツいな
ここまでむき出しにするかー
ここまでむき出しにするかー
2022/07/17(日) 02:45:01.72ID:Zp8ItUSG
zigはそのままCのコンパイラになってかつクロスコンパイルが簡単ってのが良いね
既存のCプロジェクトのコンパイラをzigに置き換えるだけでもメリットがあるし、そうなると徐々にソースもzigに置き換えたくなってきそう
既存のCプロジェクトのコンパイラをzigに置き換えるだけでもメリットがあるし、そうなると徐々にソースもzigに置き換えたくなってきそう
2022/07/17(日) 03:42:19.20ID:Ur3sSwLC
2022/07/17(日) 09:19:07.01ID:dwElkP1X
2022/07/17(日) 11:37:18.91ID:bCNgPTt6
流行るかどうかは別にしてZigはスレタイに相応しい言語だな
今のスレタイはNimを除いて全て現世代の言語になっちゃったから
今のスレタイはNimを除いて全て現世代の言語になっちゃったから
2022/07/17(日) 11:47:40.57ID:vKjp9uxK
TypeScript、Swift、Go、Kotlinはとっくに普通の言語で、
これから新規プロジェクトやるならその辺の言語しか触らなくてもおかしくないね、ってレベルでもう一般的
これから新規プロジェクトやるならその辺の言語しか触らなくてもおかしくないね、ってレベルでもう一般的
87デフォルトの名無しさん
2022/07/17(日) 11:50:14.03ID:+NC/ggVn >>1
typescript swift go kotlin は十分メジャーだから次スレからは外すように
typescript swift go kotlin は十分メジャーだから次スレからは外すように
2022/07/17(日) 14:04:28.95ID:AoTZ8TcP
まだ普及してなくて気になっているのはZig, Nim, V, Valeくらいかな
2022/07/17(日) 14:14:11.96ID:vN6ol9NM
Zig触ってるとRustの所有権ってめちゃくちゃ優れた概念だったんだなと実感できるね
2022/07/17(日) 15:07:20.14ID:SLeX0Vy/
従来のプログラミング言語と違って革命的に新たな概念をもたらした次世代言語はRustだと思うのですが
どうしてスレタイに入れないのですか?
どうしてスレタイに入れないのですか?
91デフォルトの名無しさん
2022/07/17(日) 15:35:25.31ID:AlxrTtXq 次世代言語ではなくすでに現世代の覇権言語だから
92デフォルトの名無しさん
2022/07/17(日) 16:35:29.89ID:WgvrEhxC C++0xのパクリだからでは?
2022/07/17(日) 17:26:25.41ID:0s/4JmSD
安全性の保証を実現したC並みの高速な言語はRustしかない
94デフォルトの名無しさん
2022/07/17(日) 17:42:03.18ID:3i/TeYSj もし今までC/C++でシステム開発をしてきた会社で
モダンなシステムプログラミング言語が試用されるとしたら
それはRustではなくZigもしくはNimだろう
モダンなシステムプログラミング言語が試用されるとしたら
それはRustではなくZigもしくはNimだろう
2022/07/17(日) 18:00:29.39ID:SLeX0Vy/
2022/07/17(日) 18:36:18.24ID:occ/cz9x
数名のプロジェクトで、納期も緩ければあるかもね。
2022/07/17(日) 18:51:09.61ID:Zp8ItUSG
>>95
CとC++の欠点は安全性だけだと思ってる?
CとC++の欠点は安全性だけだと思ってる?
2022/07/17(日) 18:56:55.96ID:+DL/3zgJ
NimはともかくZigはまだ1.0でもないから会社で使える感じはしないけどな
将来的にCの代替としては期待している
将来的にCの代替としては期待している
99デフォルトの名無しさん
2022/07/17(日) 19:06:00.51ID:WgvrEhxC そもそもRustの利点と宣伝されてるものって、C++20のコンセプトを簡易的に実装したものでは?
100デフォルトの名無しさん
2022/07/17(日) 19:13:13.63ID:Ur3sSwLC Rustの話しかしねーなお前ら
101デフォルトの名無しさん
2022/07/17(日) 19:48:29.77ID:CH5pcs5m const std = @import("std");
pub fn main() !void {
const stdout = std.io.getStdOut().writer(); ←ここすこ
try stdout.print("Hello, {s}!\n", .{"world"});
}
writerを変数に取れるとなんか安心する
Rustとかだといきなりマクロでprint!()だしモヤる
pub fn main() !void {
const stdout = std.io.getStdOut().writer(); ←ここすこ
try stdout.print("Hello, {s}!\n", .{"world"});
}
writerを変数に取れるとなんか安心する
Rustとかだといきなりマクロでprint!()だしモヤる
102デフォルトの名無しさん
2022/07/17(日) 21:24:39.01ID:D6jSpq7E Rustでもこんな感じで書いてもいいのよ
use std::io::{self, Write};
fn main() {
let mut stdout = io::stdout().lock();
stdout.write_all(b"hello world").unwrap();
}
use std::io::{self, Write};
fn main() {
let mut stdout = io::stdout().lock();
stdout.write_all(b"hello world").unwrap();
}
103デフォルトの名無しさん
2022/07/17(日) 21:44:39.47ID:PMMdo41Y >>101
(1) Cのprintfと同じ機能がRustのprint!であり分かりやすく使いやすい
(2) Rustでも色々な指定は可能
(3) プログラミング言語毎に様々な書き方がなされている中では些細な話
(1) Cのprintfと同じ機能がRustのprint!であり分かりやすく使いやすい
(2) Rustでも色々な指定は可能
(3) プログラミング言語毎に様々な書き方がなされている中では些細な話
104デフォルトの名無しさん
2022/07/17(日) 22:16:39.96ID:PMMdo41Y105デフォルトの名無しさん
2022/07/17(日) 22:23:33.10ID:Zp8ItUSG >>101
これってフォーマット指示と引数があっているかのチェックはいつ行われるの?
これってフォーマット指示と引数があっているかのチェックはいつ行われるの?
106デフォルトの名無しさん
2022/07/17(日) 22:26:33.06ID:SZhCYswt Zigだけどやっぱスコープ抜けた時に一斉に不要なメモリ解放する機構ぐらいは欲しいなあ
そういうのないよね?
Obj-Cにおけるautoreleasepoolとかv8におけるHandleScopeみたいなやつ
そういうのないよね?
Obj-Cにおけるautoreleasepoolとかv8におけるHandleScopeみたいなやつ
107デフォルトの名無しさん
2022/07/17(日) 22:33:23.76ID:CH5pcs5m >>102
ありがとうございます
import java.io.*;
class Ideone {
public static void main (String[] args) {
final PrintStream out = (new java.util.Random()).nextBoolean() ? System.out : System.err;
out.printf("Hello, %s!\n", "world");
}
}
JavaのIOまわりはすこ
ありがとうございます
import java.io.*;
class Ideone {
public static void main (String[] args) {
final PrintStream out = (new java.util.Random()).nextBoolean() ? System.out : System.err;
out.printf("Hello, %s!\n", "world");
}
}
JavaのIOまわりはすこ
108デフォルトの名無しさん
2022/07/18(月) 00:06:45.58ID:KMiFC5Pb109デフォルトの名無しさん
2022/07/18(月) 00:50:41.17ID:u6hhGzsh Zigの特徴はCよりも未定義動作を増やすことでコンパイラによる最適化を過激にできて場合によってはCよりも高速になることを狙う点
つまり未定義動作を無くすことで安全と高速を両立させるRustとは真逆の戦略を採っていること
つまり未定義動作を無くすことで安全と高速を両立させるRustとは真逆の戦略を採っていること
110デフォルトの名無しさん
2022/07/18(月) 01:42:15.77ID:S/imfak8 >>109
UBの種類はさすがにCより少ないよ
UBの種類はさすがにCより少ないよ
111デフォルトの名無しさん
2022/07/18(月) 06:06:03.85ID:4eOAm5LE >>109
お前、未定義動作の意味わかってないだろ...
お前、未定義動作の意味わかってないだろ...
112デフォルトの名無しさん
2022/07/18(月) 06:17:28.08ID:u6hhGzsh 未定義動作によりコンパイラが最適化を進められる話
https://cpplover.blogspot.com/2014/06/old-new-thing.html
https://cpplover.blogspot.com/2014/06/old-new-thing.html
113デフォルトの名無しさん
2022/07/18(月) 07:01:28.61ID:ssl6Co9E マジキチかよw
114デフォルトの名無しさん
2022/07/18(月) 08:19:25.09ID:mVdITidT Rust信者ってこんなに低脳なん?w
ヤバっ...
ヤバっ...
115デフォルトの名無しさん
2022/07/18(月) 11:04:54.36ID:5guVnF2o てかcにもdefer入るしそれで良くね?
116デフォルトの名無しさん
2022/07/18(月) 11:21:45.49ID:1omE+gQa そもそもC/C++がまともに使えない低能のための言語がRustですし
117デフォルトの名無しさん
2022/07/18(月) 11:36:06.98ID:biPIwclR118デフォルトの名無しさん
2022/07/18(月) 11:40:31.18ID:biPIwclR >>115
決定したの?
決定したの?
119デフォルトの名無しさん
2022/07/18(月) 15:04:52.06ID:n//xSWhh 僕は職業プログラマーじゃないんで
新しいBASICたるswiftとswift playgroundでいいです。
ちょっと数学的解析するのに使ったらすげぇ楽だこれ
ちにゃ〜
新しいBASICたるswiftとswift playgroundでいいです。
ちょっと数学的解析するのに使ったらすげぇ楽だこれ
ちにゃ〜
120デフォルトの名無しさん
2022/07/18(月) 16:31:30.05ID:o05Sk4F2 >>119
Mathematicaとかmaxmaとか使ったほうがいいんじゃない
Mathematicaとかmaxmaとか使ったほうがいいんじゃない
121デフォルトの名無しさん
2022/07/18(月) 23:29:01.81ID:V4/YV6GP122デフォルトの名無しさん
2022/07/19(火) 00:44:59.22ID:gapBBEtz よく考えて設計したがためにtraitにasync fnを定義するためにGATsが必要で
コンパイラにSATソルバーを入れる必要が出てきてたりして大変そう
コンパイラにSATソルバーを入れる必要が出てきてたりして大変そう
123デフォルトの名無しさん
2022/07/19(火) 09:36:36.78ID:wQVGctip タイトルにRustが無いのに、こいつらは文字も読めなければ知性すらない。そりゃ嫌われるわな
124デフォルトの名無しさん
2022/07/19(火) 22:42:59.43ID:MhwTnkaY 比較としてrustが出るならいいが、単独で出されると何だかなぁ感があるよな。
125デフォルトの名無しさん
2022/07/20(水) 01:23:22.22ID:x6yfnsIC Google?の新言語
https://github.com/carbon-language/carbon-lang
https://github.com/carbon-language/carbon-lang
126デフォルトの名無しさん
2022/07/20(水) 01:33:59.92ID:xi/WqfXE127デフォルトの名無しさん
2022/07/20(水) 01:40:05.72ID:nOwUi7j2128デフォルトの名無しさん
2022/07/20(水) 10:38:59.85ID:+8MBpHfA129デフォルトの名無しさん
2022/07/20(水) 13:53:08.57ID:QduY8YNs 名前は置いておいてついに決定版の言語が出たか
Rustの次の言語だなこれは
Rustの次の言語だなこれは
130デフォルトの名無しさん
2022/07/20(水) 14:18:06.41ID:ThH+Z+BW 見たところZigのC++版ってとこかな
131デフォルトの名無しさん
2022/07/20(水) 14:18:06.52ID:GOFKDz27 Rsutは死産だったな
132デフォルトの名無しさん
2022/07/20(水) 14:36:18.32ID:CC/ADkRB Nim言語ならC++の関数だけでなくテンレート関数/クラスを呼び出せる機能があり、std::vectorやstd::stringを使うことも可能。
compileプラグマを使えばC++のコードをコンパイルしてリンクできる。
emitプラグマ使えばNimのコードの中にC++コードを入れることができる。
Nim言語はC++言語を生成してからgcc/clang/vcc等のC++コンパイラを呼び出して実行ファイルを生成するからC++と簡単に連帯できる。
compileプラグマを使えばC++のコードをコンパイルしてリンクできる。
emitプラグマ使えばNimのコードの中にC++コードを入れることができる。
Nim言語はC++言語を生成してからgcc/clang/vcc等のC++コンパイラを呼び出して実行ファイルを生成するからC++と簡単に連帯できる。
133デフォルトの名無しさん
2022/07/20(水) 15:42:59.72ID:qJwz0nM8 Nimはもっと評価されて良いと思う
134デフォルトの名無しさん
2022/07/20(水) 16:04:11.13ID:QduY8YNs Goはオワコンということでよろしいか?
135デフォルトの名無しさん
2022/07/20(水) 16:15:14.40ID:LSK66KxM なんでセミコロンありなの?
136デフォルトの名無しさん
2022/07/20(水) 17:02:44.97ID:ThH+Z+BW 開発者の趣味
137デフォルトの名無しさん
2022/07/20(水) 18:42:51.78ID:5UvTR+16 GC言語 GCによる自動メモリ解放
Rust 即時の自動メモリ解放
C/C++/Carbon(現在0.1) 自動メモリ解放ではない
Rust 即時の自動メモリ解放
C/C++/Carbon(現在0.1) 自動メモリ解放ではない
138デフォルトの名無しさん
2022/07/20(水) 19:19:34.59ID:XnEgORKH >>137
Rustはスタックに積んでいる&生ポインタが無いから自動回収されるだけ。c/c++と一緒。
そんなことよりもスタック重視で基本は何でもスタックということを強調したほうがRustらしさの説明になるだろ。
Rustはスタックに積んでいる&生ポインタが無いから自動回収されるだけ。c/c++と一緒。
そんなことよりもスタック重視で基本は何でもスタックということを強調したほうがRustらしさの説明になるだろ。
139デフォルトの名無しさん
2022/07/20(水) 20:40:05.79ID:xdIX6xM1 Rustはあらゆる面で安全と高速を両立する抽象化を実現した言語
Carbonのドキュメントを見ると目標はそこでなくRustの領分に入って来ていないでしょう
Carbonのドキュメントを見ると目標はそこでなくRustの領分に入って来ていないでしょう
140デフォルトの名無しさん
2022/07/20(水) 20:43:23.04ID:CC/ADkRB ほとんどのシステムプログラミング言語と呼ばれるものは変数がスタックに確保されるかヒープに確保するかはコントロールできるはず。
ただし可変長な配列や文字列型はヒープにデータを格納される。
違いはヒープに変数を確保したときに手動で解放する手法、スコープ抜けたら解放する手法、参照カウンタが0になったら解放する手法、GCを使う手法などがあるところ。(valeのgenerational referencesというのもあるけど)
Nim言語でもrefがついてないobjectはスタックに置かれるしRustでもBoxやRc使えばヒープに確保されるしC++でもscoped_ptr使えば参照カウンタでヒープが管理される。
基本的に変数はスタックに確保して、どうしても必要であれば(一つのオブジェクトを複数の変数から参照したい、OOPしたいなど)ヒープを確保するという感じの書き方になると思うけど。
ただし可変長な配列や文字列型はヒープにデータを格納される。
違いはヒープに変数を確保したときに手動で解放する手法、スコープ抜けたら解放する手法、参照カウンタが0になったら解放する手法、GCを使う手法などがあるところ。(valeのgenerational referencesというのもあるけど)
Nim言語でもrefがついてないobjectはスタックに置かれるしRustでもBoxやRc使えばヒープに確保されるしC++でもscoped_ptr使えば参照カウンタでヒープが管理される。
基本的に変数はスタックに確保して、どうしても必要であれば(一つのオブジェクトを複数の変数から参照したい、OOPしたいなど)ヒープを確保するという感じの書き方になると思うけど。
141デフォルトの名無しさん
2022/07/20(水) 20:52:32.44ID:5UvTR+16 Rustでは自動的に安全に即座にメモリ解放される
ここが重要なポイント
だからRustは高速と安全を両立させることができている
それに加えてRustではメモリ競合なども完全に防止する
ここが重要なポイント
だからRustは高速と安全を両立させることができている
それに加えてRustではメモリ競合なども完全に防止する
142デフォルトの名無しさん
2022/07/20(水) 21:03:41.80ID:5UvTR+16 そしてCarbonの目標文書を読んでもその目標は書かれていない
つまりRustの本質と競合する言語ではない
つまりRustの本質と競合する言語ではない
143デフォルトの名無しさん
2022/07/21(木) 00:23:47.84ID:F7Gtvv1S 変数をヒープに確保するという言い方はなんか気持ち悪いな
144デフォルトの名無しさん
2022/07/21(木) 00:34:40.13ID:MOkaWH3B 結局CarbonはC++の変種に過ぎないのか
新たなプロジェクトではRustを利用する流れは変わりそうにないな
Carbon採用の動機や利点が全くない
新たなプロジェクトではRustを利用する流れは変わりそうにないな
Carbon採用の動機や利点が全くない
145デフォルトの名無しさん
2022/07/21(木) 00:49:33.21ID:JPxznSjw Googleが推してるのではなくGoogle社員のプロジェクトやからね
146デフォルトの名無しさん
2022/07/21(木) 00:50:32.86ID:mCQN4Yoj なんでそんな必死なん?
147デフォルトの名無しさん
2022/07/21(木) 01:20:47.87ID:F7Gtvv1S 将来的にはcarbon freeにしたいという自虐ネタを込めた命名
148デフォルトの名無しさん
2022/07/21(木) 01:25:08.23ID:qcok3Xr6 人によりけりだけど、一つのプログラミング言語を学習してそれをずっと使いつづけたい、他の言語の勉強したくないという人は多い。
Rustは比較的学習コストが高め。
もし他のプログラミング言語がメジャーになったりもっと優れたプログラミング言語が現れると苦労してRustを勉強した努力が無駄になってしまう。
だから新しい言語の話題がでるとRustを苦労して勉強した努力が無駄になってしまうという恐怖感が生まれて必死に否定するんじゃないかと。
異なるプログラミング言語間でも似た所はあるし、新しい言語を学ぶときにRust言語を学んだ経験が全く無駄になることはないだろうと思うけど。
Rustは比較的学習コストが高め。
もし他のプログラミング言語がメジャーになったりもっと優れたプログラミング言語が現れると苦労してRustを勉強した努力が無駄になってしまう。
だから新しい言語の話題がでるとRustを苦労して勉強した努力が無駄になってしまうという恐怖感が生まれて必死に否定するんじゃないかと。
異なるプログラミング言語間でも似た所はあるし、新しい言語を学ぶときにRust言語を学んだ経験が全く無駄になることはないだろうと思うけど。
149デフォルトの名無しさん
2022/07/21(木) 01:25:42.94ID:nOpNTAAx Carbonでオブジェクトをヒープに確保するのどうやるの?
なんかよーわからん
ドキュメントがなさすぎる
流石にまだこれを使うのは難しいな
なんかよーわからん
ドキュメントがなさすぎる
流石にまだこれを使うのは難しいな
150デフォルトの名無しさん
2022/07/21(木) 01:34:26.10ID:nOpNTAAx Rustの欠点として可変参照の扱いがC/C++互換をかなり難しくしてるんだよな
既存プロジェクトとのinteropにおいては無視できないケースが多い
特にGoogleなどの大企業は
その結果生まれたのがCarbon
既存プロジェクトとのinteropにおいては無視できないケースが多い
特にGoogleなどの大企業は
その結果生まれたのがCarbon
151デフォルトの名無しさん
2022/07/21(木) 01:56:23.59ID:F7Gtvv1S Carbon本家もRustが使えるならRustを使えと言っている
でかいC++プロジェクト抱えてる人が使うものだよね
https://github.com/carbon-language/carbon-lang/blob/trunk/docs/project/faq.md#why-not-rust
でかいC++プロジェクト抱えてる人が使うものだよね
https://github.com/carbon-language/carbon-lang/blob/trunk/docs/project/faq.md#why-not-rust
152デフォルトの名無しさん
2022/07/21(木) 02:05:12.80ID:hbmQrHo+ >>148
Rustが出現して以来これだけ時間が経過しても
Rustが実現した『高速と安全の両立』を満たす他の言語が出てこなかった
その結果が大手IT各社による共同でのRustへの支援表明とRust Foundation設立
そしてC++を拒否していたLinux開発陣営までもがRust採用発表
つまり既にこの業界では雌雄が決している
Rustが出現して以来これだけ時間が経過しても
Rustが実現した『高速と安全の両立』を満たす他の言語が出てこなかった
その結果が大手IT各社による共同でのRustへの支援表明とRust Foundation設立
そしてC++を拒否していたLinux開発陣営までもがRust採用発表
つまり既にこの業界では雌雄が決している
153デフォルトの名無しさん
2022/07/21(木) 02:06:50.27ID:hbmQrHo+ >>148
次に学習コストが高いといっても
他との大きな違いは所有権とライフタイムだけでありその概念は一日あれば誰でも理解できる
そして後は具体的にコードを書いて身につけてくのも他の概念と同じ
さらにRustが実現した『高速と安全の両立』のためには所有権とライフタイムによるのが最も適切とわかってきた
つまりRust以外に両立を満たす言語が出てきても学習必須の概念となる
同時にそれは画期的な発明がなされない限りRustの二番煎じの言語しか出現しないことを意味する
次に学習コストが高いといっても
他との大きな違いは所有権とライフタイムだけでありその概念は一日あれば誰でも理解できる
そして後は具体的にコードを書いて身につけてくのも他の概念と同じ
さらにRustが実現した『高速と安全の両立』のためには所有権とライフタイムによるのが最も適切とわかってきた
つまりRust以外に両立を満たす言語が出てきても学習必須の概念となる
同時にそれは画期的な発明がなされない限りRustの二番煎じの言語しか出現しないことを意味する
154デフォルトの名無しさん
2022/07/21(木) 02:13:15.45ID:hbmQrHo+ >>150
データ競合安全性に関しては誰が考えても可変参照の不可変参照との区別が必要となる
むしろその区別をはっきりさせてこなかったために従来の言語はデータ競合の入りうる隙きを許してきた
過渡的には既存の安全でないものと組み合わせる時に扱いが大変だとしても
最終的には可能な限り全て安全なもので組み立てていくことになろう
データ競合安全性に関しては誰が考えても可変参照の不可変参照との区別が必要となる
むしろその区別をはっきりさせてこなかったために従来の言語はデータ競合の入りうる隙きを許してきた
過渡的には既存の安全でないものと組み合わせる時に扱いが大変だとしても
最終的には可能な限り全て安全なもので組み立てていくことになろう
155デフォルトの名無しさん
2022/07/21(木) 02:17:23.88ID:F7Gtvv1S156デフォルトの名無しさん
2022/07/21(木) 02:41:33.10ID:SY914jbi157デフォルトの名無しさん
2022/07/21(木) 04:57:34.89ID:tF9h1cCP ifの条件のとこ括弧必要なのかよ!
158デフォルトの名無しさん
2022/07/21(木) 05:28:59.67ID:aDWah/z9159デフォルトの名無しさん
2022/07/21(木) 06:11:50.65ID:EDO+eFgH 恐らくCarbonはRustのいいところだけを抽出した感じだな
CarbonのほうがC++やTypeScriptに近いのでRustよりも馴染むだろう
Carbon派とRust派で分かれそうだ
CarbonのほうがC++やTypeScriptに近いのでRustよりも馴染むだろう
Carbon派とRust派で分かれそうだ
160デフォルトの名無しさん
2022/07/21(木) 06:23:11.04ID:aDWah/z9161デフォルトの名無しさん
2022/07/21(木) 08:20:01.30ID:WJJWa/BR C++の後継目指すプログラミング言語「Carbon Language」、Googleの技術者が実験的公開。C++は技術的負債で改良が困難と
https://www.publickey1.jp/blog/22/ccarbon_languagegooglec.html
https://www.publickey1.jp/blog/22/ccarbon_languagegooglec.html
162デフォルトの名無しさん
2022/07/21(木) 09:57:08.94ID:6/eI+t+6163デフォルトの名無しさん
2022/07/21(木) 11:18:14.67ID:BsoCJ7d4 所有権どころかシャローコピーとディープコピーの違いも知らずにRust通を気取ってるアタオカさんだからRustスレでは鼻つまみもの
164デフォルトの名無しさん
2022/07/21(木) 11:19:06.12ID:9tbOXQd/ キモキモRustマン、ワッショイワッショイはRustスレでやれ。二度と来んな
165デフォルトの名無しさん
2022/07/21(木) 12:02:23.44ID:nj8XyhCb Rustスレ民が学習して構ってもらえなくなっちゃったから来てるんでしょ
166デフォルトの名無しさん
2022/07/21(木) 13:04:30.75ID:nOpNTAAx ここ以外でもツイッターとかでやたらRust難しいと印象操作しようとしてるやついるよな
C/C++をまともに書いたこと有ればたいして難しくもないのに
C/C++をまともに書いたこと有ればたいして難しくもないのに
167デフォルトの名無しさん
2022/07/21(木) 13:47:25.39ID:LMMByu3R >C/C++をまともに書いたこと有ればたいして難しくもない
その通り
で結局C/C++でええやんという話に戻る
その通り
で結局C/C++でええやんという話に戻る
168デフォルトの名無しさん
2022/07/21(木) 13:47:41.33ID:dTNn2Vwx 色んな言語をやってきてRustが特に難しいとは思わなかった
むしろ便利さと書きやすさで気に入った
他の言語より抽象化されてる感じが良いね
そこが頭の弱い人には逆に難しく感じるのかも
むしろ便利さと書きやすさで気に入った
他の言語より抽象化されてる感じが良いね
そこが頭の弱い人には逆に難しく感じるのかも
169デフォルトの名無しさん
2022/07/21(木) 13:53:10.37ID:dTNn2Vwx170デフォルトの名無しさん
2022/07/21(木) 14:00:17.21ID:MFhv3qMI C++はmove semanticsの建て増し感が特に厳しいな
後付するならあれしかなかったのは分かるけど
そこがちゃんとしてるというだけでもRustの方が楽に感じる
後付するならあれしかなかったのは分かるけど
そこがちゃんとしてるというだけでもRustの方が楽に感じる
171デフォルトの名無しさん
2022/07/21(木) 14:02:26.54ID:cxEc0/aI RustのC++との相互運用性を改善する方向性で頑張ってくれたらよかったのにな
C++の保守専用言語なんか普及するわけないじゃん
C++の保守専用言語なんか普及するわけないじゃん
172デフォルトの名無しさん
2022/07/21(木) 14:11:46.30ID:dTNn2Vwx >>171
Carbonを新たな開発で使うことはないだろうからC++の保守専用言語という表現いいね
Carbonを新たな開発で使うことはないだろうからC++の保守専用言語という表現いいね
173デフォルトの名無しさん
2022/07/21(木) 14:57:52.79ID:j9ULkGXf174デフォルトの名無しさん
2022/07/21(木) 15:55:40.07ID:Q1uK5/Rv175デフォルトの名無しさん
2022/07/21(木) 16:06:53.27ID:iRk5Je6N そんなにシステムプログラミング言語が必要な事をやってるの?
私の場合は、Pythonでほとんど困らなくて、偶に.net系くらいなもんだから、Rustの話が続いても別世界の話過ぎて、付いていない…
私の場合は、Pythonでほとんど困らなくて、偶に.net系くらいなもんだから、Rustの話が続いても別世界の話過ぎて、付いていない…
176デフォルトの名無しさん
2022/07/21(木) 16:25:46.06ID:PcF3TGn3177デフォルトの名無しさん
2022/07/21(木) 16:28:02.22ID:mCQN4Yoj こういう奴が一番危険なんだよな。。実際仕事すると洒落にならんことし始める。
178デフォルトの名無しさん
2022/07/21(木) 17:45:24.11ID:aer6+S9Z メモリやらリソース管理、分散処理の課題をRust以上まともに解決してない言語だと、次世代って感じしないなぁ。
柔軟さ動的さに極振りだったRubyや、関数型のパラダイムを持ち込んだHaskellとかもなんか新しさがあったわけで。
柔軟さ動的さに極振りだったRubyや、関数型のパラダイムを持ち込んだHaskellとかもなんか新しさがあったわけで。
179デフォルトの名無しさん
2022/07/21(木) 18:05:35.14ID:lCXJwEni rubyは目新しさというよりは
perlよりマシっていう感じだったよね実際は
perlよりマシだしOOPLを自称してるし
イテレータがあるしで
(当初は内部イテレータがあるのをウリにしてた記憶)
「ザ・ちょうどそういうの欲しかってん言語」って感じ
perlよりマシっていう感じだったよね実際は
perlよりマシだしOOPLを自称してるし
イテレータがあるしで
(当初は内部イテレータがあるのをウリにしてた記憶)
「ザ・ちょうどそういうの欲しかってん言語」って感じ
180デフォルトの名無しさん
2022/07/21(木) 18:09:56.47ID:nOpNTAAx Rustわからんって言ってる人ってスタックとヒープを理解してない
せめてメモリのレイアウトぐらい理解しとこうよ
せめてメモリのレイアウトぐらい理解しとこうよ
181デフォルトの名無しさん
2022/07/21(木) 18:22:38.41ID:iRk5Je6N >>180
スタックとヒープの違いやメモリ解放とOSへ返却が違う位は分かるけれど、私にはRustは過剰で難しい。
スタックとヒープの違いやメモリ解放とOSへ返却が違う位は分かるけれど、私にはRustは過剰で難しい。
182デフォルトの名無しさん
2022/07/21(木) 18:37:11.06ID:nOpNTAAx183デフォルトの名無しさん
2022/07/21(木) 18:50:15.74ID:ppiq2d/L >元がダメだからボロ屋の上に建て増し違法建築みたいになっちゃってる
まあ同意は出来るが
「C/C++を*まとも*に使える」
という意味の捉え方によるな
違法建築になってるのは「*まとも*に使えてない」人のコード
まあ同意は出来るが
「C/C++を*まとも*に使える」
という意味の捉え方によるな
違法建築になってるのは「*まとも*に使えてない」人のコード
184デフォルトの名無しさん
2022/07/21(木) 18:52:26.12ID:HGs+QJMA >>183
やっぱりc++のダメな部分を削ったsmart c++欲しいな。
やっぱりc++のダメな部分を削ったsmart c++欲しいな。
185デフォルトの名無しさん
2022/07/21(木) 18:54:02.97ID:ppiq2d/L186デフォルトの名無しさん
2022/07/21(木) 19:14:35.47ID:F7Gtvv1S C/C++をやればスタックとヒープの概念が身につくのであればRustをやってそれらが身につかない理由もないと思うが
187デフォルトの名無しさん
2022/07/21(木) 19:18:49.81ID:vhEYvTLl >>184
それがRustの狙いでは?
それがRustの狙いでは?
188デフォルトの名無しさん
2022/07/21(木) 19:19:07.93ID:ipycKOwR >>185
遠回りになるがそこから始めるのもありかもな
メモリ関連はそれなりの失敗経験がないと体で理解できないから
Cでクソでかい構造体をスタックに置いてしまって
スタックオーバーフロー起こしてシステム停止したり
C++でコピーコンストラクタの実装ミスって
ダングリングポインタ作ってシステム停止したり
デストラクタでdelete忘れてメモリリーク起こして
システム停止したり
それなりの地獄を味わってる俺が言うんだ間違いない
遠回りになるがそこから始めるのもありかもな
メモリ関連はそれなりの失敗経験がないと体で理解できないから
Cでクソでかい構造体をスタックに置いてしまって
スタックオーバーフロー起こしてシステム停止したり
C++でコピーコンストラクタの実装ミスって
ダングリングポインタ作ってシステム停止したり
デストラクタでdelete忘れてメモリリーク起こして
システム停止したり
それなりの地獄を味わってる俺が言うんだ間違いない
189デフォルトの名無しさん
2022/07/21(木) 19:44:43.35ID:F7Gtvv1S 趣味プログラミングならどんどん変なことしてクラッシュさせれば良いけど
業務ならもっと安全を期したいなぁ
業務ならもっと安全を期したいなぁ
190デフォルトの名無しさん
2022/07/21(木) 19:52:05.48ID:lCXJwEni > それなりの地獄
かわいい地獄でつねw
かわいい地獄でつねw
191デフォルトの名無しさん
2022/07/21(木) 19:54:55.78ID:qQS6uOSz C/C++のよくある業務ってやっぱり組み込み?
それかゲーム開発?
それかゲーム開発?
192デフォルトの名無しさん
2022/07/21(木) 20:25:53.32ID:n+UC1473 無料で答える業務はない
193デフォルトの名無しさん
2022/07/21(木) 20:54:05.56ID:rGFlKcYB194デフォルトの名無しさん
2022/07/21(木) 21:04:39.89ID:v1bwr09c >>191
スマホの課金ゲームのバックグランド鯖の開発とかもあるよ
スマホの課金ゲームのバックグランド鯖の開発とかもあるよ
195デフォルトの名無しさん
2022/07/21(木) 22:23:39.66ID:EhpLe0Nv PythonやJavaScript書くときはでかいアロケーションの有無くらいしか意識しないけど
C#やSwift書くときはvalue typeとreference typeの使い分けがあるからスタックとヒープもそれなりに意識する
Goの場合は気になるところでescape analysis
C#やSwift書くときはvalue typeとreference typeの使い分けがあるからスタックとヒープもそれなりに意識する
Goの場合は気になるところでescape analysis
196デフォルトの名無しさん
2022/07/21(木) 23:33:08.48ID:n+UC1473 三角関数や薬剤師の存在を意識してる人は大体が
「コスト」を強く意識した方がメリットが大きいと思い込んで意識している
「コスト」を強く意識した方がメリットが大きいと思い込んで意識している
197デフォルトの名無しさん
2022/07/21(木) 23:43:19.63ID:U3FKAWyk 自分でも何を書いてるのか理解できてなさそう
思い込んで意識するというのも意味不明
思い込んで意識するというのも意味不明
198デフォルトの名無しさん
2022/07/21(木) 23:53:17.15ID:vrEITS91 >>195
PythonやRubyやJavaScriptなどのオモチャ言語しか使ったことのない人だけがスタックとヒープを意識しないわけか
PythonやRubyやJavaScriptなどのオモチャ言語しか使ったことのない人だけがスタックとヒープを意識しないわけか
199デフォルトの名無しさん
2022/07/22(金) 06:54:41.09ID:WiEbw06Y コンピューターの動作を隠蔽すればオモチャに近づくのなら究極的にはアセンブラ以外は全てオモチャなのではないだろうか
200デフォルトの名無しさん
2022/07/22(金) 07:02:16.68ID:FhKnOINS アセンブラはスタックやメモリーにアクセスするプログラムを書かされる。
Cはメモリーにアクセスするプリグラムを書かされる。
Javaはスタックもメモリーも意識する必要がない。
すなわちJavaが最も優れている。
Cはメモリーにアクセスするプリグラムを書かされる。
Javaはスタックもメモリーも意識する必要がない。
すなわちJavaが最も優れている。
201デフォルトの名無しさん
2022/07/22(金) 07:23:24.99ID:oyZ2TNIq >>199
メモリについてもそれ以外についても
抽象度が高い方がプログラミングしやすい
アセンブラよりもスタックとヒープというメモリについての抽象化をした言語の方が扱いやすい
一方で過度の抽象化は実用性を失う
例えばメモリとローカルディスクとネット上のディスクを全て統合して一つの巨大なメモリ空間に抽象化すると
巨大なメモリ空間を扱う極一部の用途を除いて過度の抽象化となってしまい速度差があるものは別々のままの方が好ましい
スタックとヒープを意識せずに済むPythonやRubyやJavaScriptなどの言語も同様な面がある
スタックとヒープには速度差があるため速さを重視する用途から見ると過渡の抽象化といえる
速さを重視せず意識しない用途をオモチャ用途と呼ぶならばPythonやRubyやJavaScriptはオモチャ用途すなわちオモチャ言語とも言えないことはない
メモリについてもそれ以外についても
抽象度が高い方がプログラミングしやすい
アセンブラよりもスタックとヒープというメモリについての抽象化をした言語の方が扱いやすい
一方で過度の抽象化は実用性を失う
例えばメモリとローカルディスクとネット上のディスクを全て統合して一つの巨大なメモリ空間に抽象化すると
巨大なメモリ空間を扱う極一部の用途を除いて過度の抽象化となってしまい速度差があるものは別々のままの方が好ましい
スタックとヒープを意識せずに済むPythonやRubyやJavaScriptなどの言語も同様な面がある
スタックとヒープには速度差があるため速さを重視する用途から見ると過渡の抽象化といえる
速さを重視せず意識しない用途をオモチャ用途と呼ぶならばPythonやRubyやJavaScriptはオモチャ用途すなわちオモチャ言語とも言えないことはない
202デフォルトの名無しさん
2022/07/22(金) 08:16:15.80ID:FDKNW5k7 >>187
サブセットが欲しいのであって、併用できないのは要らん。
サブセットが欲しいのであって、併用できないのは要らん。
203デフォルトの名無しさん
2022/07/22(金) 08:17:52.69ID:8hejYpL6 おもちゃ程度の事しかしないので、おもちゃ言語で困ってないんだよね。
Rustが、安全で効率良い速いって言われても、書き捨てのPythonでも10秒程度で処理が終わってしまうようなものだと、わざわざRustでってならないさ。
システムプログラミング向け次世代と、もっと緩いおもちゃ向け次世代みたいな感じに分けないと、話が噛み合わない気がする。
Rustが、安全で効率良い速いって言われても、書き捨てのPythonでも10秒程度で処理が終わってしまうようなものだと、わざわざRustでってならないさ。
システムプログラミング向け次世代と、もっと緩いおもちゃ向け次世代みたいな感じに分けないと、話が噛み合わない気がする。
204デフォルトの名無しさん
2022/07/22(金) 09:02:33.80ID:bANXE+J8 >>198
動的言語コンプレックス恥ずかしい
動的言語コンプレックス恥ずかしい
205デフォルトの名無しさん
2022/07/22(金) 09:15:01.41ID:50nE7LhG206デフォルトの名無しさん
2022/07/22(金) 09:57:43.45ID:q3/dBWm5 だからOS、ドライバとかの低レイヤーとWebみたいなのを分けて考えるべきだろ
何でもかんでもRustとはならない
適材適所
何でもかんでもRustとはならない
適材適所
207デフォルトの名無しさん
2022/07/22(金) 10:34:06.65ID:YNBeKdpL コンパイル時のメタプログラミングを駆使すると実行時の電気代が安いんよ
ランニングコストを情報隠蔽とはならない
ランニングコストを情報隠蔽とはならない
208デフォルトの名無しさん
2022/07/22(金) 11:20:36.22ID:emgmw9dd209デフォルトの名無しさん
2022/07/22(金) 11:22:08.43ID:emgmw9dd210デフォルトの名無しさん
2022/07/22(金) 11:39:15.65ID:YNBeKdpL Cのプリプロセッサの存在自体が納得できない人のために
マクロ言語ではなく型システムなら納得できるだろうとなったのがC++
コンパイラではなくインタプリタに近い方式なら前処理が無くなるだろうとなったのがPython
マクロ言語ではなく型システムなら納得できるだろうとなったのがC++
コンパイラではなくインタプリタに近い方式なら前処理が無くなるだろうとなったのがPython
211デフォルトの名無しさん
2022/07/22(金) 11:45:23.20ID:LVIZaCij >>205
それを他人に強制できる、標準orデファクトとして確立したものが欲しい、ということだよ。
コーティングスタンダードでもいいんだけど、独自に作るのは重たいし、教育するのも大変だから、出来合いのものが欲しいところ。
それを他人に強制できる、標準orデファクトとして確立したものが欲しい、ということだよ。
コーティングスタンダードでもいいんだけど、独自に作るのは重たいし、教育するのも大変だから、出来合いのものが欲しいところ。
212デフォルトの名無しさん
2022/07/22(金) 11:59:28.82ID:ZDp8+ZKO213デフォルトの名無しさん
2022/07/22(金) 12:21:12.21ID:G8DPlZOX214デフォルトの名無しさん
2022/07/22(金) 12:23:13.63ID:LVIZaCij >>212
コストとか単価を気にしない富豪はうらやましいですなぁ。
コストとか単価を気にしない富豪はうらやましいですなぁ。
215デフォルトの名無しさん
2022/07/22(金) 12:46:18.43ID:65NBtvCk216デフォルトの名無しさん
2022/07/22(金) 12:47:04.23ID:efNbKFVE >>211
適当なリポジトリからclang-tidy等の静的検証ツールのルール設定をパクってくるとかはどうですか
適当なリポジトリからclang-tidy等の静的検証ツールのルール設定をパクってくるとかはどうですか
217デフォルトの名無しさん
2022/07/22(金) 13:32:14.29ID:YNBeKdpL 趣味のコミュニティなら駄目なコードはどんどん捨てる富豪になれば問題ないけど
趣味じゃない場合は貧乏というかケチになる
趣味じゃない場合は貧乏というかケチになる
218デフォルトの名無しさん
2022/07/22(金) 14:03:33.19ID:50nE7LhG219デフォルトの名無しさん
2022/07/22(金) 14:30:36.22ID:ZDp8+ZKO いやケチるなら余計に人は選べよ。
220デフォルトの名無しさん
2022/07/22(金) 15:07:10.50ID:hnGDX2CP >>207
サーバーコスト(クラウドコスト)を考えると使う言語を変えることで速さと省メモリにより数倍~十数倍差が出るのは大きいもんな
あとは避けられる実行時エラー(例外含む)をできる限りコンパイル時に静的に解決したいわけだろ
ならばRustがベストチョイス
サーバーコスト(クラウドコスト)を考えると使う言語を変えることで速さと省メモリにより数倍~十数倍差が出るのは大きいもんな
あとは避けられる実行時エラー(例外含む)をできる限りコンパイル時に静的に解決したいわけだろ
ならばRustがベストチョイス
221デフォルトの名無しさん
2022/07/22(金) 15:17:47.41ID:dO8Qo8Lr >>206
むしろWebはRustむけ
むしろWebはRustむけ
222デフォルトの名無しさん
2022/07/22(金) 17:13:14.54ID:efNbKFVE Webという括り方が雑すぎる
223デフォルトの名無しさん
2022/07/22(金) 17:45:58.45ID:iaUAG8EO どうせあれとあれを区別出来てないんだろうな
224デフォルトの名無しさん
2022/07/22(金) 18:08:11.96ID:8hejYpL6 そのうち、HTMLやCSSのコーダーが、Rustで書き始めるわけか。
テスト工数は減らなさそうだし、制作費上がりそうで嫌だなぁ。
テスト工数は減らなさそうだし、制作費上がりそうで嫌だなぁ。
225デフォルトの名無しさん
2022/07/22(金) 18:24:55.78ID:hnGDX2CP >>221
こちらもWeb関係でRustを使っている
こちらもWeb関係でRustを使っている
226デフォルトの名無しさん
2022/07/22(金) 18:31:07.28ID:YNBeKdpL アルゴリズムとデータ(構造)を区別するのやめようって言い始めた人も悪いのだよ
227デフォルトの名無しさん
2022/07/22(金) 19:46:38.86ID:56UVShba 型推論がモダンなら、動作推論でスタックヒープ最適化ぐらいあって良いのではないか
228デフォルトの名無しさん
2022/07/22(金) 21:07:06.38ID:Fn4mSUKv >>227
そう、Goならね
そう、Goならね
229デフォルトの名無しさん
2022/07/23(土) 00:56:36.98ID:xoLMiefm230デフォルトの名無しさん
2022/07/23(土) 07:49:46.21ID:i/T78yqA もしかして、Rust製のWordpressみたいなCMSあったりします?
231デフォルトの名無しさん
2022/07/23(土) 08:34:42.30ID:+NLDKrMc こういう奴に限ってロクなアルゴリズム書いてない、遅いうえに負荷だらけなのはお前のせい
232デフォルトの名無しさん
2022/07/23(土) 08:45:37.01ID:YgKX3LKM233デフォルトの名無しさん
2022/07/23(土) 09:08:24.13ID:z+0uNfVv なくはないが、1要素に過ぎない
そういうやつに限って実行環境について無頓着で、クソ巨大なコンテナイメージ作ったりするし
そういうやつに限って実行環境について無頓着で、クソ巨大なコンテナイメージ作ったりするし
234デフォルトの名無しさん
2022/07/23(土) 09:12:35.67ID:YgKX3LKM IOバウンドが主体の現代プログラムで積極的にRustを採用したがる理由がわからない
OSやドライバみたいな低レイヤーならわかる
OSやドライバみたいな低レイヤーならわかる
235デフォルトの名無しさん
2022/07/23(土) 09:30:42.73ID:h0kR6t/A >>234
単一のリクエストの処理についてはその通りだけど、
1ノードで同時に処理するリクエストが増えていけばCPUまたはメモリが上限に達してスケールアウトが必要になる
つまりCPUやメモリの消費を削減することでノード数を少なくでき、コストを抑えられる
まあ現実にはDBや人件費の方が金かかるから大した効果はないんだからね
単一のリクエストの処理についてはその通りだけど、
1ノードで同時に処理するリクエストが増えていけばCPUまたはメモリが上限に達してスケールアウトが必要になる
つまりCPUやメモリの消費を削減することでノード数を少なくでき、コストを抑えられる
まあ現実にはDBや人件費の方が金かかるから大した効果はないんだからね
236デフォルトの名無しさん
2022/07/23(土) 10:35:13.77ID:PgM2fTTz >>234
IOバウンドが現代プログラムの主体というのはさすがに特定分野しか見てなさ過ぎ
IOバウンドが現代プログラムの主体というのはさすがに特定分野しか見てなさ過ぎ
237デフォルトの名無しさん
2022/07/23(土) 11:04:56.52ID:zqWGCIwO 最近覚えたIOバウンドって言葉を使ってみたかったんだろうな
って感想しかない
って感想しかない
238デフォルトの名無しさん
2022/07/23(土) 11:22:01.68ID:YgKX3LKM >>235
NodeやGoに比べて何%効率がいいの?なんかデータある?
NodeやGoに比べて何%効率がいいの?なんかデータある?
239デフォルトの名無しさん
2022/07/23(土) 11:24:44.12ID:YgKX3LKM このスレにいるなんでもかんでもRustにしろおじさんはRust使ってる日本の企業是非あげてほしい
240デフォルトの名無しさん
2022/07/23(土) 11:37:34.85ID:Oc+8bztj MirakurunとMirakcとか見ればわかるけどメモリ効率が劇的にRustは優れてるけどCPUは大して変わらない
そこにコストをかけるモチベーションがどこまであるかって話じゃないの、録画サーバーはラズパイとか低スペPCで動かすっていうモチベーションがある
Rust推しの人はなんで実行コストのばかり話をして開発効率を軽視するのか?OS開発以外で企業で使われることはほとんどないだろうね。
そこにコストをかけるモチベーションがどこまであるかって話じゃないの、録画サーバーはラズパイとか低スペPCで動かすっていうモチベーションがある
Rust推しの人はなんで実行コストのばかり話をして開発効率を軽視するのか?OS開発以外で企業で使われることはほとんどないだろうね。
241デフォルトの名無しさん
2022/07/23(土) 11:37:55.41ID:XVn4RLKh242デフォルトの名無しさん
2022/07/23(土) 11:39:54.42ID:lSlSJyR5 >>239
ボッチの自宅開発者にそういうの求めるのは酷
ボッチの自宅開発者にそういうの求めるのは酷
243デフォルトの名無しさん
2022/07/23(土) 11:50:03.97ID:gjUW5TY/244デフォルトの名無しさん
2022/07/23(土) 11:56:58.24ID:PgM2fTTz245デフォルトの名無しさん
2022/07/23(土) 12:26:01.80ID:zqWGCIwO246デフォルトの名無しさん
2022/07/23(土) 12:54:16.63ID:KTZwFAzP247デフォルトの名無しさん
2022/07/23(土) 12:56:45.10ID:KTZwFAzP そもそもIPAが土方のやり方を推奨してるのが問題
248デフォルトの名無しさん
2022/07/23(土) 13:05:43.74ID:xNUThAwD 主観的にはRustはかなり開発効率高い
言語そのものもいいし周辺のエコシステムもいい
学習コストなんて二束三文だし
言語そのものもいいし周辺のエコシステムもいい
学習コストなんて二束三文だし
249デフォルトの名無しさん
2022/07/23(土) 13:09:35.85ID:bizn9oDX ScalaやHaskellでも同じこと言ってた
250デフォルトの名無しさん
2022/07/23(土) 13:14:10.92ID:gjUW5TY/ 他の言語で、初期化と代入の違いを学習したコスト
初期化時には参照カウントが2以上にならないという事実を認識するコスト
こういうのはRustの学習コストにはあたらない
初期化時には参照カウントが2以上にならないという事実を認識するコスト
こういうのはRustの学習コストにはあたらない
251デフォルトの名無しさん
2022/07/23(土) 14:13:31.48ID:vuZXWhrA 今更な話じゃなく次世代言語の話してくれ。
252デフォルトの名無しさん
2022/07/23(土) 14:30:45.45ID:7X2pFb00 現状Rustはライブラリの選択と学習と継続的な監査のコストが著しく高い
速度やリソース面でそれを補って余りあるメリットがあるようなシステムにしか採用されない
言語だけでみればライフタイム周りの煩雑さがある分だけC#よりもやや面倒という程度
速度やリソース面でそれを補って余りあるメリットがあるようなシステムにしか採用されない
言語だけでみればライフタイム周りの煩雑さがある分だけC#よりもやや面倒という程度
253デフォルトの名無しさん
2022/07/23(土) 14:41:37.43ID:tu3rIwC3 rustが向いてるのは明らかにミドルウェア層だわな。
アプリ層で使おうとするとかまともに仕事で使ったことない奴の戯言でしかないわ。
アプリ層で使おうとするとかまともに仕事で使ったことない奴の戯言でしかないわ。
254デフォルトの名無しさん
2022/07/23(土) 14:51:11.37ID:zqWGCIwO255デフォルトの名無しさん
2022/07/23(土) 15:00:55.50ID:Bnag5ryf むしろメモリ効率こそ現代の言語で重要なんだぞ?
CPUの性能は頭打ちというのを知らず?
機械学習みたいな行列演算するなら別だが普通のシステムプログラミングやWebアプリ、組み込みみたいな要件ではコアのパフォーマンスなど無意味
スクリプト言語みたいなGCコテコテの言語が速いことは絶対にない
現代のメモリアーキテクチャを知ってればあんなに参照を作りまくって
オブジェクトに触りまくって速いわけない
それはGoも同じ
現にGoは遅い
現代の言語での要件はスタックとヒープをプログラマが明確に意識でき
かつメモリ管理を安全にできる
これができているのは今のところRustのみ
CPUの性能は頭打ちというのを知らず?
機械学習みたいな行列演算するなら別だが普通のシステムプログラミングやWebアプリ、組み込みみたいな要件ではコアのパフォーマンスなど無意味
スクリプト言語みたいなGCコテコテの言語が速いことは絶対にない
現代のメモリアーキテクチャを知ってればあんなに参照を作りまくって
オブジェクトに触りまくって速いわけない
それはGoも同じ
現にGoは遅い
現代の言語での要件はスタックとヒープをプログラマが明確に意識でき
かつメモリ管理を安全にできる
これができているのは今のところRustのみ
256デフォルトの名無しさん
2022/07/23(土) 15:14:50.07ID:QXN0FRoF >>255
DockerとかKubernetesとかコンテナ技術を活用してマシンのリソースを有効活用するって流れになってるのはそうだけど
Rustで置き換えるってのは聞いたことがないな
> スクリプト言語みたいなGCコテコテの言語が速いことは絶対にない
それはIO待ちがほとんどないCPU処理が主体なプログラムでの話じゃない?
Goは適当に並行処理書いても極力処理がブロックしないように動作するけど
Rustは中断ポイントを自分で記述する必要があるから注意して書かないとGoより遅いなんてことはザラにある
このスレッドにあるベンチマークとか見ればいかにGoが優秀であるかがわかる
https://www.reddit.com/r/rust/comments/lg0a7b/benchmarking_tokio_tasks_and_goroutines/
IO待ち主体のプログラムはいかにブロックせずに処理するかが大事なのであってメモリ効率がボトルネックになることはないわ
DockerとかKubernetesとかコンテナ技術を活用してマシンのリソースを有効活用するって流れになってるのはそうだけど
Rustで置き換えるってのは聞いたことがないな
> スクリプト言語みたいなGCコテコテの言語が速いことは絶対にない
それはIO待ちがほとんどないCPU処理が主体なプログラムでの話じゃない?
Goは適当に並行処理書いても極力処理がブロックしないように動作するけど
Rustは中断ポイントを自分で記述する必要があるから注意して書かないとGoより遅いなんてことはザラにある
このスレッドにあるベンチマークとか見ればいかにGoが優秀であるかがわかる
https://www.reddit.com/r/rust/comments/lg0a7b/benchmarking_tokio_tasks_and_goroutines/
IO待ち主体のプログラムはいかにブロックせずに処理するかが大事なのであってメモリ効率がボトルネックになることはないわ
257デフォルトの名無しさん
2022/07/23(土) 15:31:18.71ID:Bnag5ryf >>255
そういう特定のユースケースの話をしてるわけじゃないよ
そりゃベンチマークによって速かったり遅かったり
特定のエッジケースで速かったり遅かったりはあるでしょう
もっと数学的かつ抽象的に考えよう
ヒープにオブジェクトが1000個あります
しかしそのうち本当にヒープに乗せる必要があるオブジェクトが100個しかありませんでした
本来ヒープに100個しか必要のないオブジェクトなのに無駄な
ヒープアクセスが900個も起きてしまう
これをメモリ効率が悪いという
Goでもこれは起きうる
もちろんそれが*起きないように*書くこともできなくはないが
エスケープ解析などをしないとわからないし非常に難しいでしょう
しかしrustではこのようなことは起きない
そういう特定のユースケースの話をしてるわけじゃないよ
そりゃベンチマークによって速かったり遅かったり
特定のエッジケースで速かったり遅かったりはあるでしょう
もっと数学的かつ抽象的に考えよう
ヒープにオブジェクトが1000個あります
しかしそのうち本当にヒープに乗せる必要があるオブジェクトが100個しかありませんでした
本来ヒープに100個しか必要のないオブジェクトなのに無駄な
ヒープアクセスが900個も起きてしまう
これをメモリ効率が悪いという
Goでもこれは起きうる
もちろんそれが*起きないように*書くこともできなくはないが
エスケープ解析などをしないとわからないし非常に難しいでしょう
しかしrustではこのようなことは起きない
258デフォルトの名無しさん
2022/07/23(土) 15:31:55.55ID:Bnag5ryf レス番間違えた
259デフォルトの名無しさん
2022/07/23(土) 15:40:38.68ID:FAO+OpS7 自演失敗お
260デフォルトの名無しさん
2022/07/23(土) 16:04:31.85ID:zqWGCIwO261デフォルトの名無しさん
2022/07/23(土) 16:08:37.49ID:Bnag5ryf262デフォルトの名無しさん
2022/07/23(土) 16:14:43.93ID:PgM2fTTz >>252
ライブラリの選択コストが低い言語ってのは標準ライブラリがでかい言語のこと?
ライブラリの選択コストが低い言語ってのは標準ライブラリがでかい言語のこと?
263デフォルトの名無しさん
2022/07/23(土) 16:22:30.56ID:zqWGCIwO264デフォルトの名無しさん
2022/07/23(土) 16:33:12.53ID:L+Wx1/B2 自演rust狂信者の圧倒的な敗北.....
Rc<T>で無駄なメモリアクセスが起きてることを分かってない。参照カウントで、かなり無駄なカウントアップ・ダウンが現実に起きてるし非効率。
エスケープ解析なんぞでわかるのはほんの一部、goでメモリアクセスが遅めに見えるのは、goroutine間の変数への排他制御が無いからだしGCのせいでもない
古典的なメニーコアを素直に活用できない言語では起きない事を同じ土俵で無理に比べようとしている
確かにgoやrustがstructを使って、javaのようにobjectではないのはメモリー効率を考えているけど、ピープなんちゃらの説明はホントに
分かってないアホの説明。GCで掃除される対象の変数へのアクセスのことを言いたいのだと思うけど、そんなのアクセスするかはGCアルゴリズム次第だ
1回でいいから参照カウントの欠点を調べてこい
Rc<T>で無駄なメモリアクセスが起きてることを分かってない。参照カウントで、かなり無駄なカウントアップ・ダウンが現実に起きてるし非効率。
エスケープ解析なんぞでわかるのはほんの一部、goでメモリアクセスが遅めに見えるのは、goroutine間の変数への排他制御が無いからだしGCのせいでもない
古典的なメニーコアを素直に活用できない言語では起きない事を同じ土俵で無理に比べようとしている
確かにgoやrustがstructを使って、javaのようにobjectではないのはメモリー効率を考えているけど、ピープなんちゃらの説明はホントに
分かってないアホの説明。GCで掃除される対象の変数へのアクセスのことを言いたいのだと思うけど、そんなのアクセスするかはGCアルゴリズム次第だ
1回でいいから参照カウントの欠点を調べてこい
265デフォルトの名無しさん
2022/07/23(土) 16:47:16.76ID:GCyS0Uey AndroidアプリをKotlinベースで作っているんですが、
一定時間スマホ操作ができなくなるような機能を作りたいのですが、どうやればできますかね?
いわゆるデジタルデトックスアプリみたいに、一定時間画面を覆って操作できなくなるアプリ
(バックグラウンド写ったりしないやつ)を想定してます
一定時間スマホ操作ができなくなるような機能を作りたいのですが、どうやればできますかね?
いわゆるデジタルデトックスアプリみたいに、一定時間画面を覆って操作できなくなるアプリ
(バックグラウンド写ったりしないやつ)を想定してます
266デフォルトの名無しさん
2022/07/23(土) 17:07:56.92ID:ObegvUfD267デフォルトの名無しさん
2022/07/23(土) 17:11:14.32ID:4etWwAtX >>265
セキュリティ的に問題があるから無理
何もできないホームアプリを作って設定するくらいじゃないかな
それでも抜け道を完全に防ぐことはできないと思う
奥の手としては、バックグラウンドサービスでマルチスレッドで無駄な計算をぶん回して使用に耐えないくらい重くすればいい
セキュリティ的に問題があるから無理
何もできないホームアプリを作って設定するくらいじゃないかな
それでも抜け道を完全に防ぐことはできないと思う
奥の手としては、バックグラウンドサービスでマルチスレッドで無駄な計算をぶん回して使用に耐えないくらい重くすればいい
268デフォルトの名無しさん
2022/07/23(土) 17:30:04.86ID:zqWGCIwO269デフォルトの名無しさん
2022/07/23(土) 18:08:33.07ID:jqS/WIc6 >>264
プログラミング経験が少なく勘違いしてるのだと思うけど
C++のshared_ptrやRustのRc/Arcはほとんどのプログラムではその出現が0個~数えられる程度
別の者が同時に同じ物を指し誰が使い終わるかわからないという特殊な状況でしか使われないため出現がレア
実際にプログラミングをするとそのようなケースは多くを避けることができるため極一部でのみ使用となっている
ガベージコレクション言語が全てをガベージとして捨てて回収するコストと比較してC++とRustのこの極一部のみを参照カウントで管理する方式は圧倒的に速くて有利となっている
プログラミング経験が少なく勘違いしてるのだと思うけど
C++のshared_ptrやRustのRc/Arcはほとんどのプログラムではその出現が0個~数えられる程度
別の者が同時に同じ物を指し誰が使い終わるかわからないという特殊な状況でしか使われないため出現がレア
実際にプログラミングをするとそのようなケースは多くを避けることができるため極一部でのみ使用となっている
ガベージコレクション言語が全てをガベージとして捨てて回収するコストと比較してC++とRustのこの極一部のみを参照カウントで管理する方式は圧倒的に速くて有利となっている
270デフォルトの名無しさん
2022/07/23(土) 18:17:12.38ID:IVV76sYn > C++のshared_ptrやRustのRc/Arcはほとんどのプログラムではその出現が0個~数えられる程度
🤭
🤭
271デフォルトの名無しさん
2022/07/23(土) 18:23:45.94ID:1dNQWzE2 >>256
それは無意味な比較
いくつもリプライコメントが付いて指摘されているように
まずまもともな並行処理コードの比較となっていない
次にそのコードのことをしたいならば別の適用をすることでGoとRustでほぼ同じ時間となることもリプライで示されている
きちんと読まずにそんなことでRust叩きをするアンチは愚か
それは無意味な比較
いくつもリプライコメントが付いて指摘されているように
まずまもともな並行処理コードの比較となっていない
次にそのコードのことをしたいならば別の適用をすることでGoとRustでほぼ同じ時間となることもリプライで示されている
きちんと読まずにそんなことでRust叩きをするアンチは愚か
272デフォルトの名無しさん
2022/07/23(土) 18:28:20.30ID:PgM2fTTz273デフォルトの名無しさん
2022/07/23(土) 18:43:45.96ID:QXN0FRoF >>271
リプライ読んだ上で言ってるけど?文盲か?
Goはランタイムが賢いから適当に書いても極力ブロックしない様に高速に動作する
Rustは中断ポイントを自分で指定する必要があるから無駄にブロックしないように注意しないといけないって書いたよね?
つまり適当に書いたGo>>>適当に書いたRust
となるわけ。
リプライ読んだ上で言ってるけど?文盲か?
Goはランタイムが賢いから適当に書いても極力ブロックしない様に高速に動作する
Rustは中断ポイントを自分で指定する必要があるから無駄にブロックしないように注意しないといけないって書いたよね?
つまり適当に書いたGo>>>適当に書いたRust
となるわけ。
274デフォルトの名無しさん
2022/07/23(土) 18:45:49.99ID:1dNQWzE2275デフォルトの名無しさん
2022/07/23(土) 18:50:33.61ID:1dNQWzE2276デフォルトの名無しさん
2022/07/23(土) 19:26:59.84ID:zqWGCIwO277デフォルトの名無しさん
2022/07/23(土) 20:04:44.48ID:C7rfIgjP >>276
ちよっと違う
その部分の話に限定すると
Goは他に選択肢なく書けてそこそこの性能が出る素人向け
C++/Rustはもっと多様な選択肢を取れてGoより高い性能を出せる玄人向け
そのことに加えてGoはランタイムコストが高くメモリについてもGCコストがかかる
あとGoは使用が適している分野が狭い
ちよっと違う
その部分の話に限定すると
Goは他に選択肢なく書けてそこそこの性能が出る素人向け
C++/Rustはもっと多様な選択肢を取れてGoより高い性能を出せる玄人向け
そのことに加えてGoはランタイムコストが高くメモリについてもGCコストがかかる
あとGoは使用が適している分野が狭い
278デフォルトの名無しさん
2022/07/23(土) 20:24:12.66ID:z/1+plFJ つまりエンタープライズに適してるのはGoで
選ばれた人が作る出来のいいOSSに適してるのはRustだな
玄人によるRust>>>>>>素人によるGo>>>ここにいる自称玄人によるRust
ということだな
選ばれた人が作る出来のいいOSSに適してるのはRustだな
玄人によるRust>>>>>>素人によるGo>>>ここにいる自称玄人によるRust
ということだな
279デフォルトの名無しさん
2022/07/23(土) 20:37:54.47ID:1dNQWzE2280デフォルトの名無しさん
2022/07/23(土) 20:43:18.42ID:z/1+plFJ とか自称玄人がほざいておりますわw
281デフォルトの名無しさん
2022/07/23(土) 20:59:08.03ID:wfVoITZZ >>279
さすがにお前が言うと説得力ゼロ
さすがにお前が言うと説得力ゼロ
282デフォルトの名無しさん
2022/07/23(土) 21:00:05.36ID:uphZtYPd Goの出自からしてpythonの置き換えみたいなとこあるし。
283デフォルトの名無しさん
2022/07/23(土) 21:02:59.95ID:C7rfIgjP Goは言語仕様が弱すぎて開発に向かないが並行プログラミングが上手くできるスクリプト言語と捉えると優秀なスクリプト言語
284デフォルトの名無しさん
2022/07/23(土) 21:13:25.84ID:PT0x9Gwm Googleはわざわざ開発に向かない言語を開発して社内で使ってるわけかw
Google社員ですらC++は扱えずに問題だらけだったからそれらを解決するためにGoを開発したわけだけどな
Rustは明らかにC++の代替だね。つまりOS開発やドライバ開発、OSS用途に向いてるだろうね
で、WebプログラミングをC++ってやりますかって話ですよ
ここにいる自称玄人の方々はOS開発とかドライバ開発とかしてないくせにRustという言語使ってることだけにアイデンティティを感じる可哀想なおっさんなんだよな結局
だから他言語を馬鹿にしてマウント取ることに生きがいを持った人生を送ってるわけだね
Goで作られた素晴らしいソフトでDockerやKubernetesやGoogleサービスがあるわけだけど、重要なのは何を問題解決するであって特定の言語をこだわって作るわけじゃないよ、自称玄人さんw
Google社員ですらC++は扱えずに問題だらけだったからそれらを解決するためにGoを開発したわけだけどな
Rustは明らかにC++の代替だね。つまりOS開発やドライバ開発、OSS用途に向いてるだろうね
で、WebプログラミングをC++ってやりますかって話ですよ
ここにいる自称玄人の方々はOS開発とかドライバ開発とかしてないくせにRustという言語使ってることだけにアイデンティティを感じる可哀想なおっさんなんだよな結局
だから他言語を馬鹿にしてマウント取ることに生きがいを持った人生を送ってるわけだね
Goで作られた素晴らしいソフトでDockerやKubernetesやGoogleサービスがあるわけだけど、重要なのは何を問題解決するであって特定の言語をこだわって作るわけじゃないよ、自称玄人さんw
285デフォルトの名無しさん
2022/07/23(土) 21:33:42.76ID:7qigD5jo >>284
RustをC++の代替としてしかとらえることが出来ないのは理解不足だな
CやC++とは異なりRustは自動メモリ解放だからという理由だけではないが現実にJavaからRustへの移行も起きている
さらにスクリプト言語からの移行例もある
これらは高速さや省メモリの観点からだけではなく並行並列プログラミングにおけるデータ競合の問題までもRustは解決していることが大きい
Rustがデータ競合をコンパイル時にエラーとして見つけ出してくれることはバグの減少や実行時デバッグの激減ももたらしている
RustをC++の代替としてしかとらえることが出来ないのは理解不足だな
CやC++とは異なりRustは自動メモリ解放だからという理由だけではないが現実にJavaからRustへの移行も起きている
さらにスクリプト言語からの移行例もある
これらは高速さや省メモリの観点からだけではなく並行並列プログラミングにおけるデータ競合の問題までもRustは解決していることが大きい
Rustがデータ競合をコンパイル時にエラーとして見つけ出してくれることはバグの減少や実行時デバッグの激減ももたらしている
286デフォルトの名無しさん
2022/07/23(土) 21:34:22.09ID:yM9izZ/V webやってる人間ならむしろrustに好意的になるよ
子供にはわからんか
子供にはわからんか
287デフォルトの名無しさん
2022/07/23(土) 21:36:09.58ID:u2Y0Vizw docker,kubernetesを実装しても開発言語に向かないとか言われちゃうの意味わからんわ。
288デフォルトの名無しさん
2022/07/23(土) 21:44:18.63ID:PT0x9Gwm >>285
日本企業の採用例は?どこに移行例があるの?
メルカリはGo使いまくってるみたいだけどそういう企業ってRustあるの?
GoogleやMicrosoftもOS開発で注目してるだけだよね?
データ競合なんて多数あるバグのほんの一部でしかないしそれだけ持ち出されても何も響かないね
競合状態は防げないわけだし、データ競合ならGoでもランタイムだか検知する機能はある、テストでも検知できる、それで十分としか思わないね。
日本企業の採用例は?どこに移行例があるの?
メルカリはGo使いまくってるみたいだけどそういう企業ってRustあるの?
GoogleやMicrosoftもOS開発で注目してるだけだよね?
データ競合なんて多数あるバグのほんの一部でしかないしそれだけ持ち出されても何も響かないね
競合状態は防げないわけだし、データ競合ならGoでもランタイムだか検知する機能はある、テストでも検知できる、それで十分としか思わないね。
289デフォルトの名無しさん
2022/07/23(土) 21:44:33.34ID:C7rfIgjP290デフォルトの名無しさん
2022/07/23(土) 21:53:20.94ID:PT0x9Gwm >>289
〇〇の機能がある自慢ならHaskellやScalaもよくされていたけどこれらの言語って普及しましたかね?
継承を排除してるのがその代表例。
Goの割り切ったシンプルさはエンタープライズでの大規模スケールするソフトウエアの開発を促進させている
RustはOS開発やドライバ、組み込みには普及することはあるけどWebやバックエンドといった高レイヤーでは確実に普及しない。理由はScala、Haskellが普及しないのと同じ。
機能自慢だけで企業で使っていくための実用性がない。
Googleでさえ社員がC++など複雑な言語を使いこなせないからあえて機能を削ったGoを採用している。
〇〇の機能がある自慢ならHaskellやScalaもよくされていたけどこれらの言語って普及しましたかね?
継承を排除してるのがその代表例。
Goの割り切ったシンプルさはエンタープライズでの大規模スケールするソフトウエアの開発を促進させている
RustはOS開発やドライバ、組み込みには普及することはあるけどWebやバックエンドといった高レイヤーでは確実に普及しない。理由はScala、Haskellが普及しないのと同じ。
機能自慢だけで企業で使っていくための実用性がない。
Googleでさえ社員がC++など複雑な言語を使いこなせないからあえて機能を削ったGoを採用している。
291デフォルトの名無しさん
2022/07/23(土) 21:55:03.92ID:7qigD5jo >>288
日本企業にこだわるところが理解できないが
例えばクックパッドがRubyで遅いのをRustへ移行した例などあるだろう
Goはランタイムがデータ競合を検知するとの主張は実行時の時点でGoの敗北を意味している
データ競合を静的に実行前に検知できるようにしたRustを使うほうがよい
日本企業にこだわるところが理解できないが
例えばクックパッドがRubyで遅いのをRustへ移行した例などあるだろう
Goはランタイムがデータ競合を検知するとの主張は実行時の時点でGoの敗北を意味している
データ競合を静的に実行前に検知できるようにしたRustを使うほうがよい
292デフォルトの名無しさん
2022/07/23(土) 21:55:41.92ID:PT0x9Gwm 低レイヤー何も触ってないくせにマウント取るためにRust使って他言語貶めてるゴミクズが多すぎるわ
もはやマウント取ることが目的になってる
もはやマウント取ることが目的になってる
293デフォルトの名無しさん
2022/07/23(土) 21:55:49.25ID:PgM2fTTz294デフォルトの名無しさん
2022/07/23(土) 22:00:23.38ID:PT0x9Gwm >>291
開発コストはなんで度外視するの?
例えば単体テストはカバレッジ100%行かなくてもリリースするわけでしょ?それは開発コストとトレードオフをかけた結果80%とか基準を下げてるって面もあるわけ
データ競合は防げても競合状態はRustでも防げないわけで並行処理プログラミングが確実に安全に書けるって保証されてるわけでもないぞ
データ競合なんで数あるバグのうちの1つしかないわけで
GoとRustだと明らかに開発コストは桁違いであって特に新規にプロジェクトに参加したメンバーがいる場合に差が出てくるね
開発コストはなんで度外視するの?
例えば単体テストはカバレッジ100%行かなくてもリリースするわけでしょ?それは開発コストとトレードオフをかけた結果80%とか基準を下げてるって面もあるわけ
データ競合は防げても競合状態はRustでも防げないわけで並行処理プログラミングが確実に安全に書けるって保証されてるわけでもないぞ
データ競合なんで数あるバグのうちの1つしかないわけで
GoとRustだと明らかに開発コストは桁違いであって特に新規にプロジェクトに参加したメンバーがいる場合に差が出てくるね
295デフォルトの名無しさん
2022/07/23(土) 22:02:31.75ID:PT0x9Gwm296デフォルトの名無しさん
2022/07/23(土) 22:03:24.19ID:PT0x9Gwm Discordしか知らないだろう自称玄人どもはw
297デフォルトの名無しさん
2022/07/23(土) 22:08:40.01ID:PT0x9Gwm Web業界でC++よりRubyが流行ったのも開発コストの削減が目的なのであって
RustがRubyみたいにWeb業界で普及することはないだろうね。
自称玄人は実行コストのことしか考えないがそれならアセンブリが最強だろ。
結局開発コストと実行コストが優れてるGoが現時点での最適解となる。時点でNode(Deno)
RustがWeb企業で普及することはまずないね。OS開発の用途では普及していくだろう、
RustがRubyみたいにWeb業界で普及することはないだろうね。
自称玄人は実行コストのことしか考えないがそれならアセンブリが最強だろ。
結局開発コストと実行コストが優れてるGoが現時点での最適解となる。時点でNode(Deno)
RustがWeb企業で普及することはまずないね。OS開発の用途では普及していくだろう、
298デフォルトの名無しさん
2022/07/23(土) 22:12:19.51ID:RQhphYGe >>290
勉強してからRustを批判した方がいいよ
継承を排除したことをGoの利点と言われてもRustも継承がなくGoと同じだよ
Rustは従来の言語にあった不要な部分や古い部分をばっさりと切り捨てて最新の高機能なパラダイムを組み合わせてシンプルに作った言語
だからRustもGoと同じくクラスも無いし例外(try-throw-catch)も無い
一方でRustは例えば代数的データ型のようなシンプルかつ有用なものを採用
代数的データ型を採用せずに次世代言語を名乗るのはおこがましいので例に出しました
Goとの比較で言えばGoは代数的データ型を欠いているためにエラー返り値の面倒な扱いを招いています
同じように例外を無くしてもGoは記述が面倒になりRustは便利になっていますね
勉強してからRustを批判した方がいいよ
継承を排除したことをGoの利点と言われてもRustも継承がなくGoと同じだよ
Rustは従来の言語にあった不要な部分や古い部分をばっさりと切り捨てて最新の高機能なパラダイムを組み合わせてシンプルに作った言語
だからRustもGoと同じくクラスも無いし例外(try-throw-catch)も無い
一方でRustは例えば代数的データ型のようなシンプルかつ有用なものを採用
代数的データ型を採用せずに次世代言語を名乗るのはおこがましいので例に出しました
Goとの比較で言えばGoは代数的データ型を欠いているためにエラー返り値の面倒な扱いを招いています
同じように例外を無くしてもGoは記述が面倒になりRustは便利になっていますね
299デフォルトの名無しさん
2022/07/23(土) 22:51:05.66ID:jaxJ03Ml だからお前ら次世代言語の話しろよ。
それ以外は別スレ建ててやれや。
それ以外は別スレ建ててやれや。
300デフォルトの名無しさん
2022/07/23(土) 22:53:24.42ID:IVV76sYn Rust賛否議論に最適なスレッドがこちら!
https://mevius.5ch.net/test/read.cgi/tech/1657382429/
https://mevius.5ch.net/test/read.cgi/tech/1657382429/
301デフォルトの名無しさん
2022/07/23(土) 23:07:13.56ID:7L6l8ELk 実際、次世代言語でやるべきメモリ管理や並行処理の課題はRustだけが取り組んでる感じがあって、それ以外の次世代言語はなんかパンチがないよな。
このスレで次世代言語として上がってるTypeScriptやSwiftやKotlinとかも、既存資産を使いつつモダン言語に緩やかに移行できます~がウリで、言語自体の挑戦があまり感じられないというか。
このスレで次世代言語として上がってるTypeScriptやSwiftやKotlinとかも、既存資産を使いつつモダン言語に緩やかに移行できます~がウリで、言語自体の挑戦があまり感じられないというか。
302デフォルトの名無しさん
2022/07/24(日) 00:59:14.24ID:POYobNlQ Goのシングルバイナリは魅力的だけどRustはどうなの
簡単にexe作れる?
簡単にexe作れる?
303デフォルトの名無しさん
2022/07/24(日) 01:00:34.35ID:cSogl1Kz >>302
簡単に作れるよ
簡単に作れるよ
304デフォルトの名無しさん
2022/07/24(日) 01:01:51.95ID:POYobNlQ 素晴らしい
Rustやるわ
Rustやるわ
305デフォルトの名無しさん
2022/07/24(日) 01:13:50.56ID:RIVbLJGX >>301
次スレからはtypescript, swift, go, kotlinはスレタイから外せよ。
次スレからはtypescript, swift, go, kotlinはスレタイから外せよ。
306デフォルトの名無しさん
2022/07/24(日) 01:30:40.07ID:iVL8opWs 次世代言語ってどういう意味
そこに序列されるためには既存言語にない画期的な仕組みが必要なのか
そこに序列されるためには既存言語にない画期的な仕組みが必要なのか
307デフォルトの名無しさん
2022/07/24(日) 01:45:52.41ID:RIVbLJGX308デフォルトの名無しさん
2022/07/24(日) 02:35:17.60ID:40vv7Sn8 >>306
画期的な仕組みでなくてもインパクトのあるものは多い
例えば>>298の代数的データ型なんて古くからある概念で特に関数型言語では昔から使われてきたものだけど
手続き型言語では導入されなかったり導入されていても有効活用できていなかったり
ようするに代数的データ型は無縁か役に立たないか相性が悪いものと思われていた
ところがRustがその代数的データ型をタグ付きunionとなる形の値付きenumとして採り入れて
さらにこれも関数型ではお馴染みのOptionやEither (RustではResult)を
そのenumで表現してRust標準ライブラリの中枢に据えることで
非常に便利で言語の中心として機能する重要なインフラとして一気に昇華させてしまった
つまり古くからある概念や仕組みであっても
有用な形で言語に採り入れることでインパクトのあるものになりうる
次世代言語と称せられる言語はそういうインパクトのある何かが多数あるのだろう
画期的な仕組みでなくてもインパクトのあるものは多い
例えば>>298の代数的データ型なんて古くからある概念で特に関数型言語では昔から使われてきたものだけど
手続き型言語では導入されなかったり導入されていても有効活用できていなかったり
ようするに代数的データ型は無縁か役に立たないか相性が悪いものと思われていた
ところがRustがその代数的データ型をタグ付きunionとなる形の値付きenumとして採り入れて
さらにこれも関数型ではお馴染みのOptionやEither (RustではResult)を
そのenumで表現してRust標準ライブラリの中枢に据えることで
非常に便利で言語の中心として機能する重要なインフラとして一気に昇華させてしまった
つまり古くからある概念や仕組みであっても
有用な形で言語に採り入れることでインパクトのあるものになりうる
次世代言語と称せられる言語はそういうインパクトのある何かが多数あるのだろう
309デフォルトの名無しさん
2022/07/24(日) 02:40:05.18ID:A2ivE9+A もうワッチョイつけろ
310デフォルトの名無しさん
2022/07/24(日) 03:54:31.36ID:QogZ4c3I swiftでアプリ作るか〜って弄ってるので次世代実用言語なら外してもらっちゃ困るし
次世代にはなんとかなるんじゃないかな〜って寝言言語のスレなら外してもらっていいよー
次世代にはなんとかなるんじゃないかな〜って寝言言語のスレなら外してもらっていいよー
311デフォルトの名無しさん
2022/07/24(日) 07:13:10.20ID:a/nVuE5F >>298
RustにはWebプログラミングには不要な要素が多いって言ってんだろ
文盲乙
OS開発しないのに細かいメモリ管理をプログラマにまかすのは完全に不要な負担である
これはまつもとひろゆきもいってる
RustにはWebプログラミングには不要な要素が多いって言ってんだろ
文盲乙
OS開発しないのに細かいメモリ管理をプログラマにまかすのは完全に不要な負担である
これはまつもとひろゆきもいってる
312デフォルトの名無しさん
2022/07/24(日) 07:18:35.77ID:a/nVuE5F とにかくWebやバックエンドといった高レイヤー層でRustが流行ることはないのは事実である
論破してみろよ自称玄人は
具体的に移行している企業もDiscordしか知らないみたいだし、Discordでも一部の部分しか採用してない
〇〇の機能があるから優れてる自慢はHaskellやScalaでも起こってた、でも流行らなかった
流行るのはGoやPythonのように機能を削った言語
RustにはOS開発など低レイヤーには必要な要素が詰まっているが高レイヤーでは不要なものだらけである、だから普及しないんだよ自称玄人さん
論破してみろよ自称玄人は
具体的に移行している企業もDiscordしか知らないみたいだし、Discordでも一部の部分しか採用してない
〇〇の機能があるから優れてる自慢はHaskellやScalaでも起こってた、でも流行らなかった
流行るのはGoやPythonのように機能を削った言語
RustにはOS開発など低レイヤーには必要な要素が詰まっているが高レイヤーでは不要なものだらけである、だから普及しないんだよ自称玄人さん
313デフォルトの名無しさん
2022/07/24(日) 07:25:40.56ID:POYobNlQ 確かにWebでどうなるかはよくわからないな
ひょっとしたらJavaみたいにエンタープライズが使い出すのかもしれん
Webとの関連でいうと個人的にTauriには大いに期待している
ひょっとしたらJavaみたいにエンタープライズが使い出すのかもしれん
Webとの関連でいうと個人的にTauriには大いに期待している
314デフォルトの名無しさん
2022/07/24(日) 07:26:19.38ID:a/nVuE5F 自称玄人はOS開発やドライバ開発など低レイヤーの経験など一度もないのに、畑違いであるRustを使ってるだけにアイデンティティを感じている孤独なおっさん
だから高レイヤー層では流行らない言われても論理的に反論できず、他言語を貶めて他人にマウントを取ることしかが脳がない
Rustを使っていることが唯一のアイデンティティの哀れなおっさん
だから高レイヤー層では流行らない言われても論理的に反論できず、他言語を貶めて他人にマウントを取ることしかが脳がない
Rustを使っていることが唯一のアイデンティティの哀れなおっさん
315デフォルトの名無しさん
2022/07/24(日) 07:51:53.73ID:CneNKog7 俺もWeb周りで使われるのはかなり限定的になるんじゃないかと思うな。良い言語だけど採用しただけの価値が出る領域はかなり狭いよ。
316デフォルトの名無しさん
2022/07/24(日) 07:59:04.44ID:bdlqmtah Web と一括りにしてる時点で議論の対象にならんクズレスでしかない
317デフォルトの名無しさん
2022/07/24(日) 08:07:30.03ID:eIrt9sO8 valeのGenerational Referencesって面白くない?
https://verdagon.dev/blog/generational-references
所有者は一つだけだけど非所有者の参照はいくつも持てる。
各ヒープメモリに世代カウントを付けて、参照はポインタ+世代カウント+オフセット値のようなデータになる。
参照先にアクセスするときはヒープの世代カウントと参照の世代カウントを比較して不一致だったら解放されたメモリにアクセスしたと見なせる。
参照をコピーするときは参照カウンタのようなカウントを増減する必要は無い。参照をそのままコピーするだけ。
https://verdagon.dev/blog/generational-references
所有者は一つだけだけど非所有者の参照はいくつも持てる。
各ヒープメモリに世代カウントを付けて、参照はポインタ+世代カウント+オフセット値のようなデータになる。
参照先にアクセスするときはヒープの世代カウントと参照の世代カウントを比較して不一致だったら解放されたメモリにアクセスしたと見なせる。
参照をコピーするときは参照カウンタのようなカウントを増減する必要は無い。参照をそのままコピーするだけ。
318デフォルトの名無しさん
2022/07/24(日) 08:20:10.22ID:+L63FAhG ときどき現れる、自分んとこにRustがやってくるのが怖くて吠えまくるおじさん
Rustが使えるだけでマウントなんてとるわけないのに、劣等感で震えすぎ
Rustが使えるだけでマウントなんてとるわけないのに、劣等感で震えすぎ
319デフォルトの名無しさん
2022/07/24(日) 08:24:03.54ID:bdlqmtah320デフォルトの名無しさん
2022/07/24(日) 08:36:32.88ID:a/nVuE5F >>318
やってこないから(笑)
やってこないから(笑)
321デフォルトの名無しさん
2022/07/24(日) 09:01:53.33ID:eIrt9sO8 >>319
それは確かに怪しいっぽい
それは確かに怪しいっぽい
322デフォルトの名無しさん
2022/07/24(日) 09:25:03.61ID:Y1YiiPBC 前はRustなんてどの領域でも採用されないと主張していた
その後は大手は採用しないとか、言語オタクしか使わないとか言い出して、今はwebに来ませんようにとお祈りしてる
その後は大手は採用しないとか、言語オタクしか使わないとか言い出して、今はwebに来ませんようにとお祈りしてる
323デフォルトの名無しさん
2022/07/24(日) 09:26:39.85ID:hnBeY/7d いや、使われていないだろう。
324デフォルトの名無しさん
2022/07/24(日) 09:35:45.64ID:hnBeY/7d 黒魔術を禁止したいRust。
それはものすごく正しい。
Javaと同じ理念なので、Javaと同じように成功するだろう。
しかし、黒魔術使いがRustを使いたいと思うこともないだろう。
それはものすごく正しい。
Javaと同じ理念なので、Javaと同じように成功するだろう。
しかし、黒魔術使いがRustを使いたいと思うこともないだろう。
325デフォルトの名無しさん
2022/07/24(日) 09:36:39.31ID:hnBeY/7d 魔導士がRustを作ったが、魔導士はRustを使わない。
326デフォルトの名無しさん
2022/07/24(日) 09:51:49.50ID:TkuAh24s >>322
WebAssemblyが普通になってきたらRustが来るかもね
WebAssemblyが普通になってきたらRustが来るかもね
327デフォルトの名無しさん
2022/07/24(日) 10:05:58.70ID:nz/s3YoW >>324
黒魔術が具体的に何を指してるか分からんがunsafeではだめか?
黒魔術が具体的に何を指してるか分からんがunsafeではだめか?
328デフォルトの名無しさん
2022/07/24(日) 10:10:15.29ID:mNErqOPr webassemblyは
高レイヤーのC++を変えなくても低レイヤーの機械語を変えれば安全になるという
C++を高レイヤーと見抜けない人には難しい技術
高レイヤーのC++を変えなくても低レイヤーの機械語を変えれば安全になるという
C++を高レイヤーと見抜けない人には難しい技術
329デフォルトの名無しさん
2022/07/24(日) 10:14:42.11ID:RIVbLJGX >>310
swiftは個別スレあるだろう
swiftは個別スレあるだろう
330デフォルトの名無しさん
2022/07/24(日) 10:17:08.35ID:RIVbLJGX >>317
こういうレスを待ってた
こういうレスを待ってた
331デフォルトの名無しさん
2022/07/24(日) 10:20:14.22ID:yHbyxFst332デフォルトの名無しさん
2022/07/24(日) 10:33:10.43ID:VggJFBUh ここは次世代か現世代に限らず言語マウンティングしたいやつらの巣窟
333デフォルトの名無しさん
2022/07/24(日) 10:40:42.93ID:mNErqOPr メモリ管理アルゴリズムを変えるたんびに言語を変えるのをやめよう
ライブラリを変えればいいだけ
ライブラリを変えればいいだけ
334デフォルトの名無しさん
2022/07/24(日) 11:15:14.23ID:ss1h8/Fs >>267
難しいのですかね?
下みたいなアプリがあったのでできるのかと思ったのですが、、
なにか特殊な方法が必要なんでしょうか
https://play.google.com/store/apps/details?id=forinnovation.phoneaddiction&hl=ja
難しいのですかね?
下みたいなアプリがあったのでできるのかと思ったのですが、、
なにか特殊な方法が必要なんでしょうか
https://play.google.com/store/apps/details?id=forinnovation.phoneaddiction&hl=ja
335デフォルトの名無しさん
2022/07/24(日) 11:55:06.92ID:0MXf6lNW 不正確:ここは次世代か現世代に限らず言語マウンティングしたいやつらの巣窟
ここはRust言語マウンティングしたいやつら(ただしコーディング能力はゼロに近い低め)の巣窟、まともに話し合うことすら不可能
ここはRust言語マウンティングしたいやつら(ただしコーディング能力はゼロに近い低め)の巣窟、まともに話し合うことすら不可能
336デフォルトの名無しさん
2022/07/24(日) 12:08:17.54ID:sqWRJTqj337デフォルトの名無しさん
2022/07/24(日) 12:13:46.77ID:KMd5I8Sy RustはOSの開発でもあんま使われてないよね
でも将来JavaみたいなIT土方専用言語になりそうな気がする
でも将来JavaみたいなIT土方専用言語になりそうな気がする
338デフォルトの名無しさん
2022/07/24(日) 12:59:53.34ID:nz/s3YoW339デフォルトの名無しさん
2022/07/24(日) 13:35:49.98ID:mNErqOPr 土方うんぬんはマウンティングではなく職業差別だよな
差別された業種はプロよりアマの方が強くなる
これ資本主義への挑戦だろ
差別された業種はプロよりアマの方が強くなる
これ資本主義への挑戦だろ
340デフォルトの名無しさん
2022/07/24(日) 16:01:06.79ID:kgHpDwre >>317
> valeのGenerational References
> 参照先にアクセスするときはヒープの世代カウントと参照の世代カウントを比較して不一致だったら解放されたメモリにアクセスしたと見なせる。
それは重すぎる設計で実用的ではないですね
C++のshared_ptrもRustのRc/Arcも
参照先にアクセスするときは参照カウントへのアクセスがなくコストゼロです
RAIIによる自動解放時にようやく参照カウントを見てヒープも解放するか判断します
やはりC++のshared_ptrとRustのRc/Arcの方式が最も優れた方式と言えるでしょう
> valeのGenerational References
> 参照先にアクセスするときはヒープの世代カウントと参照の世代カウントを比較して不一致だったら解放されたメモリにアクセスしたと見なせる。
それは重すぎる設計で実用的ではないですね
C++のshared_ptrもRustのRc/Arcも
参照先にアクセスするときは参照カウントへのアクセスがなくコストゼロです
RAIIによる自動解放時にようやく参照カウントを見てヒープも解放するか判断します
やはりC++のshared_ptrとRustのRc/Arcの方式が最も優れた方式と言えるでしょう
341デフォルトの名無しさん
2022/07/24(日) 16:34:59.98ID:RaX1YBir342デフォルトの名無しさん
2022/07/24(日) 16:44:13.25ID:A2ivE9+A >>300のスレにコピペしといたで続きはそっちでお願いな
343デフォルトの名無しさん
2022/07/24(日) 17:06:52.19ID:bdlqmtah344デフォルトの名無しさん
2022/07/24(日) 17:11:06.10ID:dVy5+utd そもそもRustというかスタックベースのRAIIって結構ヒープアロケーションしてるからな
生存スコープの管理にスタックを使ってるだけ
生存スコープの管理にスタックを使ってるだけ
345デフォルトの名無しさん
2022/07/24(日) 17:17:44.35ID:5fSI//2c >>336
google的にもflutterをメインにしたいんじゃないかと邪推してる。
google的にもflutterをメインにしたいんじゃないかと邪推してる。
346デフォルトの名無しさん
2022/07/24(日) 17:20:42.68ID:5fSI//2c >>337
今それを言ったらOSのカーネル開発で使われてる言語なんてC以外あるんかね?
今それを言ったらOSのカーネル開発で使われてる言語なんてC以外あるんかね?
347デフォルトの名無しさん
2022/07/24(日) 17:26:44.89ID:5fSI//2c 研究でだったらhaskellでだってカーネル開発あるけどな
348デフォルトの名無しさん
2022/07/24(日) 17:37:32.00ID:Tcg6NKxY > スタックベースのRAII
ほかに何ベースのRAIIがあるの?
> 生存スコープの管理にスタックを使ってるだけ
変数のスコープを静的に解釈してデストラクタ呼び出しを追加してるだけでは?
スタックをいつどうやって使うの?
ほかに何ベースのRAIIがあるの?
> 生存スコープの管理にスタックを使ってるだけ
変数のスコープを静的に解釈してデストラクタ呼び出しを追加してるだけでは?
スタックをいつどうやって使うの?
349デフォルトの名無しさん
2022/07/24(日) 17:40:37.46ID:nz/s3YoW メジャーどころのOSのカーネルだとCかC++かアセンブリだよね
かろうじてLinuxにRustが取り込まれそうだけど当面はドライバのみで使途は限定的
かろうじてLinuxにRustが取り込まれそうだけど当面はドライバのみで使途は限定的
350デフォルトの名無しさん
2022/07/24(日) 17:46:35.54ID:kgHpDwre >>349
LinuxだけでなくAndroidもRust導入した
LinuxだけでなくAndroidもRust導入した
351デフォルトの名無しさん
2022/07/24(日) 18:27:24.20ID:RaX1YBir >>343
見苦しい言い訳をするな
1000個アロケーションされてると書いてるんだから1000個アロケーションされてるんだよ
配列がどうとかの話は言ってない
お前が読み飛ばした部分だよ
適当にしか読んでないから飛んだんだろ
人の文章を読みない上に話を変えようとしてる
お前こそがプラグラマに向いてないぞ
残念ながらお前の負け
見苦しい言い訳をするな
1000個アロケーションされてると書いてるんだから1000個アロケーションされてるんだよ
配列がどうとかの話は言ってない
お前が読み飛ばした部分だよ
適当にしか読んでないから飛んだんだろ
人の文章を読みない上に話を変えようとしてる
お前こそがプラグラマに向いてないぞ
残念ながらお前の負け
352デフォルトの名無しさん
2022/07/24(日) 18:27:44.09ID:DhgJf/Tp >>269
たしかにRustでRc/Arcが使われるのは限定されたケースのみではあるが、
例えばスレッド間での共有では使わざるを得なかった。
しかし来月リリースのRust 1.63では、スコープ付きスレッド生成(spawn)がstableとなるため更に使用頻度が減ることになる。
これにより参照カウントを使わずとも共有(借用)できるようになり、Rustの高速化と利便性が更に進む。
たしかにRustでRc/Arcが使われるのは限定されたケースのみではあるが、
例えばスレッド間での共有では使わざるを得なかった。
しかし来月リリースのRust 1.63では、スコープ付きスレッド生成(spawn)がstableとなるため更に使用頻度が減ることになる。
これにより参照カウントを使わずとも共有(借用)できるようになり、Rustの高速化と利便性が更に進む。
353デフォルトの名無しさん
2022/07/24(日) 18:30:59.25ID:bdlqmtah >>351
1000個アロケーションされることと1000回アロケーションされることの区別もつかない馬鹿は黙ってろw
1000個アロケーションされることと1000回アロケーションされることの区別もつかない馬鹿は黙ってろw
354デフォルトの名無しさん
2022/07/24(日) 18:33:44.43ID:RaX1YBir 論点がズレたからもう一度まとめておく
Goでは無意識的にヒープにアロケーションされてしまう可能性がある
それはエスケープ解析をしないとわからない
つまりメモリ使用量も実行効率も落ちる
これは一般論
恣意的な特定のベンチの数字を言ってるわけではない
rustは明示的にヒープに置くように書くのでそのようなことは起きない
つまり理論的にはrustが1番速いし最高の言語
もう一度言うが特定のベンチの話をしているのではない
Goでは無意識的にヒープにアロケーションされてしまう可能性がある
それはエスケープ解析をしないとわからない
つまりメモリ使用量も実行効率も落ちる
これは一般論
恣意的な特定のベンチの数字を言ってるわけではない
rustは明示的にヒープに置くように書くのでそのようなことは起きない
つまり理論的にはrustが1番速いし最高の言語
もう一度言うが特定のベンチの話をしているのではない
355デフォルトの名無しさん
2022/07/24(日) 18:35:55.52ID:RaX1YBir356デフォルトの名無しさん
2022/07/24(日) 18:41:01.38ID:RaX1YBir もう一度まとめておく
おれに喧嘩を売ってきたやつはメモリ使用量と実行効率をわかってないと言ったが以下のように考えている
メモリ使用量については1000個ヒープにアロケーションされる可能性があるGoが不利
そして実行効率もヒープアロケーションによってGCが動くため悪い
シンプルすぎる当たり前のことを言ってるだけなのだから単に喧嘩を売りたいだけか?
まあ論破ごっこも自爆で負けとるが
おれに喧嘩を売ってきたやつはメモリ使用量と実行効率をわかってないと言ったが以下のように考えている
メモリ使用量については1000個ヒープにアロケーションされる可能性があるGoが不利
そして実行効率もヒープアロケーションによってGCが動くため悪い
シンプルすぎる当たり前のことを言ってるだけなのだから単に喧嘩を売りたいだけか?
まあ論破ごっこも自爆で負けとるが
357デフォルトの名無しさん
2022/07/24(日) 18:44:26.04ID:RaX1YBir しつこいと言われるかもしれんが特定のベンチマークの話をしているのではない
もっと普遍的で一般論の話をしている
なのでこのベンチの結果は〜というのは受け付けない
同じように普遍的な理論で話してくれ
rustの普遍性は理想的な言語モデルなんだよ
もっと普遍的で一般論の話をしている
なのでこのベンチの結果は〜というのは受け付けない
同じように普遍的な理論で話してくれ
rustの普遍性は理想的な言語モデルなんだよ
358デフォルトの名無しさん
2022/07/24(日) 18:47:19.90ID:RaX1YBir メモリの安全性
メモリの自動解放
スタックヒープを意識したコードを書ける
実行効率
モダンな構文
これら全てを満たした奇跡のような言語
今のところ勝てる言語は存在しない
メモリの自動解放
スタックヒープを意識したコードを書ける
実行効率
モダンな構文
これら全てを満たした奇跡のような言語
今のところ勝てる言語は存在しない
359デフォルトの名無しさん
2022/07/24(日) 18:50:46.35ID:t1gCi00f 結局アンセーフを使ってしまうから無駄
360デフォルトの名無しさん
2022/07/24(日) 18:51:09.20ID:RaX1YBir 唯一の欠点はC++とのInteropぐらいだ
なのでCarbonの存在意義は理解できるが
その代償としてメモリ安全性を失ってしまった
これでは元の木阿弥
まあInterop特化言語だろうからそれで良いのかもしれん
普通の人はrustで良いです
なのでCarbonの存在意義は理解できるが
その代償としてメモリ安全性を失ってしまった
これでは元の木阿弥
まあInterop特化言語だろうからそれで良いのかもしれん
普通の人はrustで良いです
361デフォルトの名無しさん
2022/07/24(日) 18:55:55.77ID:RaX1YBir しつこく言ってるが特定のベンチマークの結果だけで鵜呑みにするのは間違っている
ソフトウェアに必要なのは普遍性なんだよ
そう言う観点で語ると一つ上の議論ができる
ソフトウェアに必要なのは普遍性なんだよ
そう言う観点で語ると一つ上の議論ができる
362デフォルトの名無しさん
2022/07/24(日) 18:58:18.60ID:RaX1YBir rustはゼロコスト抽象化とメモリ安全性という「普遍性」から生まれた
優れた開発者は必ずこの普遍性を設計に取り入れてる
優れた開発者は必ずこの普遍性を設計に取り入れてる
363デフォルトの名無しさん
2022/07/24(日) 18:59:20.76ID:mNErqOPr 言語と言語が対戦する異世界があればどちらか一方は必ずハッピーエンドだが
現実は違うんだよな
C++でできなかったことをRustにやらせても、できない理由の方が多い
現実は違うんだよな
C++でできなかったことをRustにやらせても、できない理由の方が多い
364デフォルトの名無しさん
2022/07/24(日) 19:02:10.29ID:kgHpDwre >>352
Rustコンパイラの進化が素晴らしいね
それら安全であるとコンパイル時に静的に確定できることの範囲をどんどん広げていってる
これは他のプログラミング言語には無い思想でまさに次世代言語
そしてそれら安全となった操作がコスト最小で実行できるようになるのだからRustが安全最速を独走
Rustコンパイラの進化が素晴らしいね
それら安全であるとコンパイル時に静的に確定できることの範囲をどんどん広げていってる
これは他のプログラミング言語には無い思想でまさに次世代言語
そしてそれら安全となった操作がコスト最小で実行できるようになるのだからRustが安全最速を独走
365デフォルトの名無しさん
2022/07/24(日) 19:28:58.17ID:bdlqmtah366デフォルトの名無しさん
2022/07/24(日) 19:30:50.45ID:nz/s3YoW367デフォルトの名無しさん
2022/07/24(日) 19:39:14.02ID:nz/s3YoW プログラムが使用するメモリの総量の話をするなら
そもそもスタックにはたかだかプロセスのスタックサイズ分のデータしか載らないので
メモリ使用量の観点でスタックとヒープの差違を議論しても有用な比較にはならないのでは
メモリ使用量に占めるデータと管理領域の比率という意味ならスタックの方が良いだろうけど
そもそもスタックにはたかだかプロセスのスタックサイズ分のデータしか載らないので
メモリ使用量の観点でスタックとヒープの差違を議論しても有用な比較にはならないのでは
メモリ使用量に占めるデータと管理領域の比率という意味ならスタックの方が良いだろうけど
368デフォルトの名無しさん
2022/07/24(日) 20:03:40.53ID:PZRaLu/1 IO待ちが主体のプログラムでそのメモリ効率とやらがボトルネックになることはないといってるのでは?
>>255
でメモリ効率がいいからパフォーマンスがいいとか言ってわけだけど、そんなことよりIOがボトルネックになるからいかにブロックしないように書く方が大事ってのはまさにそうだね
そのメモリ効率云々ってのが重視されるのって組み込みとかでWebサーバーなどでそんなのどうでもいいに決まって
>>255
でメモリ効率がいいからパフォーマンスがいいとか言ってわけだけど、そんなことよりIOがボトルネックになるからいかにブロックしないように書く方が大事ってのはまさにそうだね
そのメモリ効率云々ってのが重視されるのって組み込みとかでWebサーバーなどでそんなのどうでもいいに決まって
369デフォルトの名無しさん
2022/07/24(日) 20:20:14.69ID:tGMReMFw >>366
Androidは新しいBluetoothスタックとかDNSリゾルバなんかがRustになってるよ
Androidは新しいBluetoothスタックとかDNSリゾルバなんかがRustになってるよ
370デフォルトの名無しさん
2022/07/24(日) 20:39:49.97ID:KMd5I8Sy まるでRustのネガティブキャンペーンやってるようだな
371デフォルトの名無しさん
2022/07/24(日) 20:45:08.03ID:a/nVuE5F IOバウンドなプログラムでRustを積極的に採用するメリットなんかほとんどない
Goが現在ではベストな選択、次点でNodeなわけだけどなんでかっていうと
GoはC言語+GC+並行処理ってなぐらいでものすごいシンプルだから。
普通の手続き言語触ったことがあるなら、並行処理以外は全く覚えることはないから1週間あればすぐにチーム開発に参加できるぐらいの容易さがあるわけ。
エンタープライズではまずこの容易さがないと流行らない。
それに比べRustはまず並行処理がランタイムに組み込まれておらず、tokioとかいうライブラリを使うわけだけど
そもそも並行処理以外の言語部分での学習コストが高すぎるから、C++での豊富な経験でもない限りチーム開発の戦力になることは難しい。
tokioもGoみたいに抽象化されていて簡単に扱えるわけじゃないからこれも非常に学習コストが高い。
そもそもそんなパフォーマンスが重要ならC++で非同期プログラミングでもやればいいわけだけど、こんなのやってソフトウェア作ってる企業なんてほとんど存在しない。
つまりバカでも扱えるような言語ではないと企業で流行ることはない。(OS開発などは別)
DenoはRustで作られてるけどバカではRustは使いこなせないからわざわざ労力をかけてDenoを作ってるんだよ
Rustが優れてるからDenoがいらないとはならない。
Rustはあくまでも選ばれし人間にのみ使われる言語。自称玄人が背伸びして使う言語ではない。
Goが現在ではベストな選択、次点でNodeなわけだけどなんでかっていうと
GoはC言語+GC+並行処理ってなぐらいでものすごいシンプルだから。
普通の手続き言語触ったことがあるなら、並行処理以外は全く覚えることはないから1週間あればすぐにチーム開発に参加できるぐらいの容易さがあるわけ。
エンタープライズではまずこの容易さがないと流行らない。
それに比べRustはまず並行処理がランタイムに組み込まれておらず、tokioとかいうライブラリを使うわけだけど
そもそも並行処理以外の言語部分での学習コストが高すぎるから、C++での豊富な経験でもない限りチーム開発の戦力になることは難しい。
tokioもGoみたいに抽象化されていて簡単に扱えるわけじゃないからこれも非常に学習コストが高い。
そもそもそんなパフォーマンスが重要ならC++で非同期プログラミングでもやればいいわけだけど、こんなのやってソフトウェア作ってる企業なんてほとんど存在しない。
つまりバカでも扱えるような言語ではないと企業で流行ることはない。(OS開発などは別)
DenoはRustで作られてるけどバカではRustは使いこなせないからわざわざ労力をかけてDenoを作ってるんだよ
Rustが優れてるからDenoがいらないとはならない。
Rustはあくまでも選ばれし人間にのみ使われる言語。自称玄人が背伸びして使う言語ではない。
372デフォルトの名無しさん
2022/07/24(日) 21:27:37.48ID:BBPBBue7373デフォルトの名無しさん
2022/07/24(日) 21:34:55.30ID:hnBeY/7d RustはJavaの遺伝子を受け継ぐから組み込みやウェブでも流行するだろ。
Androidアプリの開発言語に採用されるかもしれん。
Javaではありませんよ言語とか苦しい言い訳しないで済むし。
Androidアプリの開発言語に採用されるかもしれん。
Javaではありませんよ言語とか苦しい言い訳しないで済むし。
374デフォルトの名無しさん
2022/07/24(日) 21:37:15.31ID:hnBeY/7d picojavaのようにpicorustプロセッサが出来るかもしれませんよ。
と思ったらすでに在った。
と思ったらすでに在った。
375デフォルトの名無しさん
2022/07/24(日) 21:40:01.27ID:hnBeY/7d 5chで次世代言語と言えば、織田信長しかないんだけど。
忘れてやしませんか?
それとも意図的に無視してんの?
忘れてやしませんか?
それとも意図的に無視してんの?
376デフォルトの名無しさん
2022/07/24(日) 21:43:31.89ID:bneWR3CV >>371
その用途ならばRustがオススメです
Goとの比較で言えばRustの方が高速かつ省メモリにすることができるだけでなく
Goの貧弱な言語仕様とは異なりRustは開発効率も高いです
NodeとDinoはJavaScriptなのでそれらよりも遅くメモリも多く必要とするだけでなく
Worker以外はシングルスレッドの中でしか展開できない限界もあります
その用途ならばRustがオススメです
Goとの比較で言えばRustの方が高速かつ省メモリにすることができるだけでなく
Goの貧弱な言語仕様とは異なりRustは開発効率も高いです
NodeとDinoはJavaScriptなのでそれらよりも遅くメモリも多く必要とするだけでなく
Worker以外はシングルスレッドの中でしか展開できない限界もあります
377デフォルトの名無しさん
2022/07/24(日) 21:45:28.55ID:POYobNlQ Denoは言語じゃないだろ
なんでRustと比較できるの?
なんでRustと比較できるの?
378デフォルトの名無しさん
2022/07/24(日) 21:46:24.07ID:GNBIcaHU マジでヤベェやつしかいないww
次世代老人スレ
次世代老人スレ
379デフォルトの名無しさん
2022/07/24(日) 21:46:25.88ID:hnBeY/7d パラダイムシフトです。
380デフォルトの名無しさん
2022/07/24(日) 21:47:28.08ID:hnBeY/7d 次世代老人とは、今は老人ではない、つまり若者のことである。
381デフォルトの名無しさん
2022/07/24(日) 21:49:59.66ID:bneWR3CV382デフォルトの名無しさん
2022/07/24(日) 22:03:49.93ID:POYobNlQ383デフォルトの名無しさん
2022/07/24(日) 22:25:39.05ID:iVL8opWs >>375
おれも大学でGHC/KL1やったことあって、5ch関係なくその辺なんとなく好きだからせめてリンクを貼ってやろう
https://www.fun.ac.jp/~hirata/Papers/spa99-on-slides.pdf
おれも大学でGHC/KL1やったことあって、5ch関係なくその辺なんとなく好きだからせめてリンクを貼ってやろう
https://www.fun.ac.jp/~hirata/Papers/spa99-on-slides.pdf
384デフォルトの名無しさん
2022/07/24(日) 23:05:50.30ID:eIrt9sO8 >>340
shared_ptrとarc/rcが参照カウンタを増減するのは参照をコピーするときとそれがスコープ抜けるときだけどその前後に参照先にアクセスするとは限らないので参照カウンタにアクセスするときにキャッシュミスが発生するかもしれない。
generational referencesではdereferenceするときだけ参照先の世代カウンタを読むので、世代カウンタにアクセスしたときは必ず参照先にアクセスする。キャッシュミスが起きても世代カウンタと参照先が同じキャッシュラインに存在する可能性が高いのであまり問題にならない。
generational referencesは参照カウンタと違ってヒープを確保するとき以外はメモリに書き込みを行わない。
なので単純に遅いとは言い切れないと思う。
shared_ptrとarc/rcが参照カウンタを増減するのは参照をコピーするときとそれがスコープ抜けるときだけどその前後に参照先にアクセスするとは限らないので参照カウンタにアクセスするときにキャッシュミスが発生するかもしれない。
generational referencesではdereferenceするときだけ参照先の世代カウンタを読むので、世代カウンタにアクセスしたときは必ず参照先にアクセスする。キャッシュミスが起きても世代カウンタと参照先が同じキャッシュラインに存在する可能性が高いのであまり問題にならない。
generational referencesは参照カウンタと違ってヒープを確保するとき以外はメモリに書き込みを行わない。
なので単純に遅いとは言い切れないと思う。
385デフォルトの名無しさん
2022/07/24(日) 23:34:47.76ID:T/C/xh5e >>384
実際のプログラミングを考えれば分かるように、その利用のほとんどが参照先にアクセスすること。
つまり解放の頻度が非相対的に常に低いのが特徴。
なぜなら、解放の頻度が高くてすぐに解放されるような用途ならばヒープは使われないか、ヒープわ使ってもunique_ptrやBox等で多くは済む。
つまりshared_ptrやRc/Arcが使われるのは比較的に長期に保持されて解放の頻度は相対的にも低い。
いずにしても、「解放の頻度」よりも「参照先へのアクセス」がプログラムで起きる頻度の多い主流な出来事。
「参照先へのアクセス」のコスト
【shared_ptrとRc/Arc】コストゼロ (参照カウントは全く使用されない)
【valeのGenerational References】コストが高い (ヒープの世代カウントと参照の世代カウントを比較が必要)
したがってC++/Rustの方法が有利。
実際のプログラミングを考えれば分かるように、その利用のほとんどが参照先にアクセスすること。
つまり解放の頻度が非相対的に常に低いのが特徴。
なぜなら、解放の頻度が高くてすぐに解放されるような用途ならばヒープは使われないか、ヒープわ使ってもunique_ptrやBox等で多くは済む。
つまりshared_ptrやRc/Arcが使われるのは比較的に長期に保持されて解放の頻度は相対的にも低い。
いずにしても、「解放の頻度」よりも「参照先へのアクセス」がプログラムで起きる頻度の多い主流な出来事。
「参照先へのアクセス」のコスト
【shared_ptrとRc/Arc】コストゼロ (参照カウントは全く使用されない)
【valeのGenerational References】コストが高い (ヒープの世代カウントと参照の世代カウントを比較が必要)
したがってC++/Rustの方法が有利。
386デフォルトの名無しさん
2022/07/24(日) 23:36:40.59ID:hnBeY/7d いえいえ、C++はそんな魔法のようなことはできませんよ。
物理法則を超越するのはRustだけです。
物理法則を超越するのはRustだけです。
387デフォルトの名無しさん
2022/07/24(日) 23:59:50.37ID:DhgJf/Tp >>386
Rustでは出来ている
Rustでは出来ている
388デフォルトの名無しさん
2022/07/25(月) 00:06:36.72ID:e1+lLaZG RustのRc<T>のソースコードを見てみた
参照先へのアクセス時つまりTへのアクセス時には参照カウントは全くノータッチ
つまり>>385で正しいようだ
参照カウントは解放のためだけに使うものだから普段は使わないのは当たり前か
参照先へのアクセス時つまりTへのアクセス時には参照カウントは全くノータッチ
つまり>>385で正しいようだ
参照カウントは解放のためだけに使うものだから普段は使わないのは当たり前か
389デフォルトの名無しさん
2022/07/25(月) 00:40:50.97ID:e1+lLaZG したがってこのRust叩きしてる人がウソをついていた
>>264
> Rc<T>で無駄なメモリアクセスが起きてることを分かってない。
> 参照カウントで、かなり無駄なカウントアップ・ダウンが現実に起きてるし非効率。
正解は解放時にようやく初めてカウントダウンつまり1を引いて0と比較するだけの小さなコスト
>>264
> Rc<T>で無駄なメモリアクセスが起きてることを分かってない。
> 参照カウントで、かなり無駄なカウントアップ・ダウンが現実に起きてるし非効率。
正解は解放時にようやく初めてカウントダウンつまり1を引いて0と比較するだけの小さなコスト
390デフォルトの名無しさん
2022/07/25(月) 01:06:45.81ID:GF1rw+EH んなわけないでしょ。
391デフォルトの名無しさん
2022/07/25(月) 01:17:32.30ID:esXLF7ue 誰も問題にしてない問題の解決をありがとう
それで参照の複製と破棄のコストは?
それで参照の複製と破棄のコストは?
392デフォルトの名無しさん
2022/07/25(月) 01:24:22.28ID:1U7Sp33P >>385
shared_ptrとかRCのような参照カウンタ方式は参照がスコープ抜けるときだけじゃなく参照を増やすときに参照カウンタを+1してるでしょ。
shared_ptrとかRCのような参照カウンタ方式は参照がスコープ抜けるときだけじゃなく参照を増やすときに参照カウンタを+1してるでしょ。
393デフォルトの名無しさん
2022/07/25(月) 01:26:08.06ID:GF1rw+EH ええええ!
そこ??
そこ??
394デフォルトの名無しさん
2022/07/25(月) 01:38:55.49ID:8gSNeQFu >>391
それは完全にコストゼロ
Rustでは(Rc/Arcの参照を含めて)参照を使ってもその参照を破棄(自動的)しても付加コストはかからない
対象がRc/ArcであろうがそのRc/Arc内の参照カウントを見ることは当然ない
例
let x = Rc::new(123);
let xx = &x; // xの参照
foo(xx);
ここでxの参照が複製されて関数fooに渡される
当然Rcの内部の参照カウントの読み書きは発生しない
コストはゼロ
それは完全にコストゼロ
Rustでは(Rc/Arcの参照を含めて)参照を使ってもその参照を破棄(自動的)しても付加コストはかからない
対象がRc/ArcであろうがそのRc/Arc内の参照カウントを見ることは当然ない
例
let x = Rc::new(123);
let xx = &x; // xの参照
foo(xx);
ここでxの参照が複製されて関数fooに渡される
当然Rcの内部の参照カウントの読み書きは発生しない
コストはゼロ
395デフォルトの名無しさん
2022/07/25(月) 01:40:09.84ID:8gSNeQFu396デフォルトの名無しさん
2022/07/25(月) 02:08:28.73ID:GF1rw+EH Rustユーザーはこのレベルか。
エアユーザーと認定する。
エアユーザーと認定する。
397デフォルトの名無しさん
2022/07/25(月) 02:13:24.40ID:7j5KuiPU おまえは何もわかってない。セマンティックムーブを備える言語の複数の所有権では意味が違う...
392が言ってるのは文脈で言ってる参照は、明らかに複数の所有権のことであり、コピーされた値とは違う。
参照カウントである以上、アルゴリズム的にどんな言い訳をしてもカウンタの上げ下げでボトルネックは生じるものであり
それを認めずにこういう馬鹿がゼロコストだとか現代のコンパイラー型言語で多くがやってることを、意味不明に連呼して
言語の普及に不利益を与える。
いい加減こんなバカなことは考え直せ
392が言ってるのは文脈で言ってる参照は、明らかに複数の所有権のことであり、コピーされた値とは違う。
参照カウントである以上、アルゴリズム的にどんな言い訳をしてもカウンタの上げ下げでボトルネックは生じるものであり
それを認めずにこういう馬鹿がゼロコストだとか現代のコンパイラー型言語で多くがやってることを、意味不明に連呼して
言語の普及に不利益を与える。
いい加減こんなバカなことは考え直せ
398デフォルトの名無しさん
2022/07/25(月) 02:20:06.89ID:XtVjY1m0 >>396
君たちRustアンチが壮大な勘違いをしていることが今回わかった
参照で参照カウンタが増えていくと思い込んでいたのか
Rustでは参照をいくつ増やしてもコストが全くかからない
Rustには所有権とライフタイムがあるため参照カウントを増加させるなどは全く不要で参照についてはコストが全くかからない
もちろん参照先へのアクセスについてもそのような付加コストはかからない
これがRustの強み
コストをかけずに安全&高速なのがRust
君たちRustアンチが壮大な勘違いをしていることが今回わかった
参照で参照カウンタが増えていくと思い込んでいたのか
Rustでは参照をいくつ増やしてもコストが全くかからない
Rustには所有権とライフタイムがあるため参照カウントを増加させるなどは全く不要で参照についてはコストが全くかからない
もちろん参照先へのアクセスについてもそのような付加コストはかからない
これがRustの強み
コストをかけずに安全&高速なのがRust
399デフォルトの名無しさん
2022/07/25(月) 02:30:53.81ID:7j5KuiPU ここの狂信者は389のようなことを言う。
例えば「正解は解放時にようやく初めてカウントダウンつまり1を引いて0と比較するだけの小さなコスト」のようなことを言うが
264の言うことと全く矛盾しない。たとえ参照カウントが1だとしても明らかにstrong countの上げ下げは発生しており
これが参照カウントのアルゴリズムでは常に問題になる。多くの場合大きな問題は表面化しないが良くある通例として
プログラム終了時に参照カウントの0が連鎖するため非常に時間を要するなどの場合がある
日本に良くいるタイプで1つでも否定句を入れると、発狂したように「嘘だッ!」と食って掛かる。
例えば「Cargoが不味いのでRustはコンパイルが、同様の10年以内に現れたGoやVと比べ遅いね」というと
「Rustは速い!ふざけんな!」と発狂し、最後にはCargoバンザイと礼賛まで始める...
これがgithubや海外フォーラムだと
これ遅くね?→確かに遅い→どこが遅いのか→なら遅いからどうするか
という改善すべき提案までされるのに、ここにいる気持ち悪いこのような輩はそんな事をしない。
壊れたレコードよりも高性能なCDのように永遠と同じことを繰り返す、ゼロコスト!強み!安全!
ゼロコストは多くのコンパイル型言語でほぼ同様であり、Rustの公式自体も認めているがRustはメモリーリークを認めているし
メモリリークそのものを安全として処理する。これを強弁して「メモリーリークが起こらない!」と言い張るのは明らかにおかしい
例えば「正解は解放時にようやく初めてカウントダウンつまり1を引いて0と比較するだけの小さなコスト」のようなことを言うが
264の言うことと全く矛盾しない。たとえ参照カウントが1だとしても明らかにstrong countの上げ下げは発生しており
これが参照カウントのアルゴリズムでは常に問題になる。多くの場合大きな問題は表面化しないが良くある通例として
プログラム終了時に参照カウントの0が連鎖するため非常に時間を要するなどの場合がある
日本に良くいるタイプで1つでも否定句を入れると、発狂したように「嘘だッ!」と食って掛かる。
例えば「Cargoが不味いのでRustはコンパイルが、同様の10年以内に現れたGoやVと比べ遅いね」というと
「Rustは速い!ふざけんな!」と発狂し、最後にはCargoバンザイと礼賛まで始める...
これがgithubや海外フォーラムだと
これ遅くね?→確かに遅い→どこが遅いのか→なら遅いからどうするか
という改善すべき提案までされるのに、ここにいる気持ち悪いこのような輩はそんな事をしない。
壊れたレコードよりも高性能なCDのように永遠と同じことを繰り返す、ゼロコスト!強み!安全!
ゼロコストは多くのコンパイル型言語でほぼ同様であり、Rustの公式自体も認めているがRustはメモリーリークを認めているし
メモリリークそのものを安全として処理する。これを強弁して「メモリーリークが起こらない!」と言い張るのは明らかにおかしい
400デフォルトの名無しさん
2022/07/25(月) 02:41:14.40ID:esXLF7ue >>394
その例と説明はRcとは何も関係ないよね
例えばfooが&RcではなくRcを取り、fooを呼んだ後もxを使うとしたら?
実際にはこうしたプログラムフローじゃなくて、データ構造的要請から参照カウンタを使う選択をとるのが多いとは思うけど
その例と説明はRcとは何も関係ないよね
例えばfooが&RcではなくRcを取り、fooを呼んだ後もxを使うとしたら?
実際にはこうしたプログラムフローじゃなくて、データ構造的要請から参照カウンタを使う選択をとるのが多いとは思うけど
401デフォルトの名無しさん
2022/07/25(月) 02:47:14.81ID:GF1rw+EH 魔導士はstd::shared_ptr<>を使うことになったら設計を疑えと心得ている。
402デフォルトの名無しさん
2022/07/25(月) 02:48:21.55ID:SbhYwl+v Rustに対して無知な人が、何を勘違いしてRustを叩いているのか、ようやく理解できた。
稀にしか登場することのないRcをなぜか連呼して叩く理由もわかった。
複数の参照がある場合に、Rcを使う必要があると勘違いしてるわけだ。
そして参照の数だけカウンターが増える、と勘違いしてるわけだ。
参照カウンタ方式のGC言語とは異なり、Rustではそんな無駄なことはしていないです。
稀にしか登場することのないRcをなぜか連呼して叩く理由もわかった。
複数の参照がある場合に、Rcを使う必要があると勘違いしてるわけだ。
そして参照の数だけカウンターが増える、と勘違いしてるわけだ。
参照カウンタ方式のGC言語とは異なり、Rustではそんな無駄なことはしていないです。
403デフォルトの名無しさん
2022/07/25(月) 02:50:11.86ID:GF1rw+EH > Rustでは参照をいくつ増やしてもコストが全くかからない
こういうのが反論されてるだけでは?
こういうのが反論されてるだけでは?
404デフォルトの名無しさん
2022/07/25(月) 02:56:01.87ID:SbhYwl+v405デフォルトの名無しさん
2022/07/25(月) 03:02:58.57ID:GF1rw+EH C++にもstd::unique_ptr<>とstd::shared_ptr<>があるけど、C++のスマートポインタはゼロコストでいくらでも参照を増やせると言えば反論されるでしょう。
Arcの欠点を指摘されるとまるでそれがArcの特徴であるかのようにRcの解説をし、Rcの欠点を指摘されるとまるでそれがRcの特徴であるかのようにArcの解説をする。
それがまずいのでは?
Arcの欠点を指摘されるとまるでそれがArcの特徴であるかのようにRcの解説をし、Rcの欠点を指摘されるとまるでそれがRcの特徴であるかのようにArcの解説をする。
それがまずいのでは?
406デフォルトの名無しさん
2022/07/25(月) 03:07:04.80ID:GF1rw+EH 基本的にRustは余計なことが出来ないように設計されているので、PythonやJavaのように使われるようになると思います。
初心者向きに良く練られていると思います。
初心者向きに良く練られていると思います。
407デフォルトの名無しさん
2022/07/25(月) 03:07:39.44ID:SbhYwl+v408デフォルトの名無しさん
2022/07/25(月) 03:08:57.43ID:GF1rw+EH ↑
しかし、知ったかぶりの初心者を量産してしまったのは、Rustの罪の部分ですね。
しかし、知ったかぶりの初心者を量産してしまったのは、Rustの罪の部分ですね。
409デフォルトの名無しさん
2022/07/25(月) 03:14:13.96ID:azxTxG7t >>405
Rustの参照、つまりC++で言うところのunique_ptrは、Rustではコストゼロです
コンパイラによりライフタイムと借用ルールに反していないと保証されて、参照は単なるポインタ(アドレス)になります
アドレス以外の付加情報を持つファットなスマートポインタではありません
Rustの参照、つまりC++で言うところのunique_ptrは、Rustではコストゼロです
コンパイラによりライフタイムと借用ルールに反していないと保証されて、参照は単なるポインタ(アドレス)になります
アドレス以外の付加情報を持つファットなスマートポインタではありません
410デフォルトの名無しさん
2022/07/25(月) 03:16:23.43ID:GF1rw+EH しかしそれではGC付き言語のマナーでプログラムする人には使いにくいでしょう。
Rustは次世代じゃないんですよ。
Rustは次世代じゃないんですよ。
411デフォルトの名無しさん
2022/07/25(月) 03:19:01.13ID:GF1rw+EH コンセプトが入った以上、C++は次世代です。
progress_displayが入れば世界最新だったのですが。
なかなか採択されませんね。
progress_displayが入れば世界最新だったのですが。
なかなか採択されませんね。
412デフォルトの名無しさん
2022/07/25(月) 03:23:21.39ID:FtUkeJZV >>409
ほとんど合ってるけど
C++に関するところだけちょっと違う
unique_ptrに相当するのはRustでは自動的に無条件でその機能を持つことになる
もちろん付加的な情報を必要としない
いずれにせよBoxでもVecでもStringでもRustで参照は複数いくつでもコスト無しで持てる
もちろん参照カウンタは必要としない
ほとんど合ってるけど
C++に関するところだけちょっと違う
unique_ptrに相当するのはRustでは自動的に無条件でその機能を持つことになる
もちろん付加的な情報を必要としない
いずれにせよBoxでもVecでもStringでもRustで参照は複数いくつでもコスト無しで持てる
もちろん参照カウンタは必要としない
413デフォルトの名無しさん
2022/07/25(月) 03:36:04.97ID:FtUkeJZV Rustではライフタイムの概念の導入によって参照が複数いくつもあろうがコスト無く扱える
ライフタイムを超えた参照が存在しないことをコンパイルが通れば保証されるため
参照が複数あっても参照カウンタなどの付加的なコストをRustは必要としない
ライフタイムを超えた参照が存在しないことをコンパイルが通れば保証されるため
参照が複数あっても参照カウンタなどの付加的なコストをRustは必要としない
414デフォルトの名無しさん
2022/07/25(月) 03:50:26.54ID:nik6Zqry415デフォルトの名無しさん
2022/07/25(月) 03:54:57.80ID:7j5KuiPU 顔真っ赤になってほとんど人がいない深夜に、これをやる。マトモだと思いますか?
こんな事書いてる暇があるなら、ましなコード書けよ。おまえの汚いコードで大勢が苦労してんだよ
こんな事書いてる暇があるなら、ましなコード書けよ。おまえの汚いコードで大勢が苦労してんだよ
416デフォルトの名無しさん
2022/07/25(月) 04:30:16.31ID:4yx4R0Hn >>414
何の参照を欲しいかに依る
中身の参照を欲しいならば
let x: Rc<i32> = Rc::new(123);
let p: &i32 = x.as_ref();
これで直接ポインタ
もちろん参照カウンタが増えることもなくコストはかからない
何の参照を欲しいかに依る
中身の参照を欲しいならば
let x: Rc<i32> = Rc::new(123);
let p: &i32 = x.as_ref();
これで直接ポインタ
もちろん参照カウンタが増えることもなくコストはかからない
417デフォルトの名無しさん
2022/07/25(月) 04:35:50.04ID:4yx4R0Hn Rust叩きしてる人の頭の中はこんな感じの妄想か
複数の参照を利用 → 参照カウンタが必要となるはずだ! → Rcを使う必要があるはずだ!
もちろんこれは間違いで
Rustでは複数の参照を利用しても
参照カウンタもRcも不要
複数の参照を利用 → 参照カウンタが必要となるはずだ! → Rcを使う必要があるはずだ!
もちろんこれは間違いで
Rustでは複数の参照を利用しても
参照カウンタもRcも不要
418デフォルトの名無しさん
2022/07/25(月) 05:58:18.25ID:1U7Sp33P それじゃそもそもRCって何で存在しているの?
何の為に参照カウンタがあるの?
何の為に参照カウンタがあるの?
419デフォルトの名無しさん
2022/07/25(月) 06:15:33.82ID:XNFIHMnD Rustの話題はRustスレでやった方がいいんじゃね?
なんかもうRustって見るだけで吐き気がしてきた
なんかもうRustって見るだけで吐き気がしてきた
420デフォルトの名無しさん
2022/07/25(月) 06:18:34.46ID:AKrlxTbS421デフォルトの名無しさん
2022/07/25(月) 06:25:52.20ID:8J+uEmne422デフォルトの名無しさん
2022/07/25(月) 06:37:19.48ID:8J+uEmne423デフォルトの名無しさん
2022/07/25(月) 06:39:01.08ID:GF1rw+EH >>418
俺に反論できなくなったので、要らないことになったのでは?
俺に反論できなくなったので、要らないことになったのでは?
424デフォルトの名無しさん
2022/07/25(月) 07:13:41.21ID:nBUvMOxq425デフォルトの名無しさん
2022/07/25(月) 07:39:05.16ID:Vq8THFea >>424
速いとか省メモリとか何か動機がないと
速いとか省メモリとか何か動機がないと
426デフォルトの名無しさん
2022/07/25(月) 07:55:15.70ID:nBUvMOxq >>425
なんでC++はNodeやGoに変わって使われないの?
なんでC++はNodeやGoに変わって使われないの?
427デフォルトの名無しさん
2022/07/25(月) 08:06:04.72ID:Vq8THFea >>426
安全じゃないと
安全じゃないと
428デフォルトの名無しさん
2022/07/25(月) 08:21:13.01ID:nBUvMOxq429デフォルトの名無しさん
2022/07/25(月) 08:52:04.73ID:9VZD4LMs430デフォルトの名無しさん
2022/07/25(月) 08:59:06.96ID:nBUvMOxq >>429
キチガイではなく一般論を話しているのみ。Nodeが流行った理由知らないのか
単語をカウントするプログラムのベンチマークをした記事
Goがシンプル版、最適化版両方Rustより速いようだけどRust玄人さんはこれどう解釈するの?
メモリ効率がいいから速いんじゃねーの?
https://benhoyt.com/writings/count-words/
Goがライターが書いていて、Rustはripgrepの作者が作ってるみたいだけどw
キチガイではなく一般論を話しているのみ。Nodeが流行った理由知らないのか
単語をカウントするプログラムのベンチマークをした記事
Goがシンプル版、最適化版両方Rustより速いようだけどRust玄人さんはこれどう解釈するの?
メモリ効率がいいから速いんじゃねーの?
https://benhoyt.com/writings/count-words/
Goがライターが書いていて、Rustはripgrepの作者が作ってるみたいだけどw
431デフォルトの名無しさん
2022/07/25(月) 09:31:41.84ID:LVt6e5K4432デフォルトの名無しさん
2022/07/25(月) 09:33:37.20ID:X3gippUK433デフォルトの名無しさん
2022/07/25(月) 09:39:39.23ID:6EAs3JIP434デフォルトの名無しさん
2022/07/25(月) 09:40:42.26ID:4fLf8Vq5 >>418
普通にデータなどを格納するコレクションを作るときに直接使用する、例えばVecとか
上のほうで書いてある「Rcが滅多に使われない」は大変な間違い。
多くのプログラムは間接的にほぼ間違いなく多く使用している、もちろん全く使用しないプログラムもあるがそちらのほうが例外。
当然、参照カウントはセマンティックムーブのある言語で所有権の複製時にはカウントアップされる
https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=39acf5e2c625c2e5ccd8f9cca466f64c
スキル学習で分かりにくいのは、この種の言語の一般的な用語である「(ただ単に)参照」とは所有権の複製ではないという事
対して「可変参照」をとる場合、mutableな借用とされ参照カウントが0/1以外にもカウントアップされる。よって参照カウントが
実行時にボトルネックになる可能性があるという話は正しく、無意味に「コストゼロ、コストを必要としない」などを連呼する事は
とても近寄りがたい雰囲気を醸し出す
普通は中身を見るだけではなく格納している値を処理するので、可変参照を使うので、参照カウントがコストが無いなんていう
ふざけた説明は論外。この種の宗教的な勧誘は「コストゼロ、コストを必要としない」などを連呼する狂信性を発病する
普通にデータなどを格納するコレクションを作るときに直接使用する、例えばVecとか
上のほうで書いてある「Rcが滅多に使われない」は大変な間違い。
多くのプログラムは間接的にほぼ間違いなく多く使用している、もちろん全く使用しないプログラムもあるがそちらのほうが例外。
当然、参照カウントはセマンティックムーブのある言語で所有権の複製時にはカウントアップされる
https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=39acf5e2c625c2e5ccd8f9cca466f64c
スキル学習で分かりにくいのは、この種の言語の一般的な用語である「(ただ単に)参照」とは所有権の複製ではないという事
対して「可変参照」をとる場合、mutableな借用とされ参照カウントが0/1以外にもカウントアップされる。よって参照カウントが
実行時にボトルネックになる可能性があるという話は正しく、無意味に「コストゼロ、コストを必要としない」などを連呼する事は
とても近寄りがたい雰囲気を醸し出す
普通は中身を見るだけではなく格納している値を処理するので、可変参照を使うので、参照カウントがコストが無いなんていう
ふざけた説明は論外。この種の宗教的な勧誘は「コストゼロ、コストを必要としない」などを連呼する狂信性を発病する
435デフォルトの名無しさん
2022/07/25(月) 09:47:57.99ID:pT/R/RrL436デフォルトの名無しさん
2022/07/25(月) 10:02:55.50ID:2pceaDTd >>428-429
基本的なことを全くわかってないでなんでも独自解釈で間違った判断してると思うわ
なんでも狂っていたりそう簡単にぶっ壊れたりするもんじゃないから、
自分の予測と違った結果になったら基本的な用語とか使いかたを勉強し直さないと先に進めないと思う
基本的なことを全くわかってないでなんでも独自解釈で間違った判断してると思うわ
なんでも狂っていたりそう簡単にぶっ壊れたりするもんじゃないから、
自分の予測と違った結果になったら基本的な用語とか使いかたを勉強し直さないと先に進めないと思う
437デフォルトの名無しさん
2022/07/25(月) 10:10:53.79ID:YiK1YmC6 >>435
Rustはプログラマーへ負担を大変に強制する言語でありながら、問題解決している分野はとても狭い....
メモリーを限界まで使用してアクセスが高負荷な環境では確かに良いかもしれないが
Pythonなどの自動学習ライブラリ(多くはC/C++で書かれる)やNodeやTypescript/JSなどが主流であるフロントエンドには非常に使いづらい。
またスマートフォンのアプリ開発も出来なくは無いが両陣営からあまり重視されていない、最近では大企業も使用をしているが
Googleなどは多くはまだメニーコアを素直に活用できるGoを使用する(社内の標準言語)
ここまで否定的なことを、ハッキリ言える狂信者は居ないとおもう
Rustはプログラマーへ負担を大変に強制する言語でありながら、問題解決している分野はとても狭い....
メモリーを限界まで使用してアクセスが高負荷な環境では確かに良いかもしれないが
Pythonなどの自動学習ライブラリ(多くはC/C++で書かれる)やNodeやTypescript/JSなどが主流であるフロントエンドには非常に使いづらい。
またスマートフォンのアプリ開発も出来なくは無いが両陣営からあまり重視されていない、最近では大企業も使用をしているが
Googleなどは多くはまだメニーコアを素直に活用できるGoを使用する(社内の標準言語)
ここまで否定的なことを、ハッキリ言える狂信者は居ないとおもう
438デフォルトの名無しさん
2022/07/25(月) 10:31:51.75ID:qMC/1j9+ C/C++は危険だよ問題という
狭い問題のために過大なコストを消費するのは
Rust以前の時代からあった非合理的行動なんだよな
狭い問題のために過大なコストを消費するのは
Rust以前の時代からあった非合理的行動なんだよな
439デフォルトの名無しさん
2022/07/25(月) 11:25:18.08ID:dJJE5upa 新興勢力の宣伝の常套手段の一つ
既存の勢力を貶めること
個人的には好きではないしむしろ忌み嫌うやり方
既存の勢力を貶めること
個人的には好きではないしむしろ忌み嫌うやり方
440デフォルトの名無しさん
2022/07/25(月) 12:45:23.61ID:PJasBk3j >>430
Nimが良いな。
Nimが良いな。
441デフォルトの名無しさん
2022/07/25(月) 12:55:06.04ID:NiS5Jdh/ Nim++
Nim#
Nim#
442デフォルトの名無しさん
2022/07/25(月) 14:26:21.66ID:qfCVZU8h >>437
Rustはれっきとした機械学習のライブラリや言語処理系を*作るため*の言語だよ
Rustは機械語を吐くコンパイラやトランスパイラのようなものに向いてるし
それってフロントエンドが今必死になって取り組んでる分野ではないの?
簡単に書けて省メモリかつ速い言語なんてないよ
夢見すぎ
Rustはれっきとした機械学習のライブラリや言語処理系を*作るため*の言語だよ
Rustは機械語を吐くコンパイラやトランスパイラのようなものに向いてるし
それってフロントエンドが今必死になって取り組んでる分野ではないの?
簡単に書けて省メモリかつ速い言語なんてないよ
夢見すぎ
443デフォルトの名無しさん
2022/07/25(月) 14:42:37.10ID:PJasBk3j >>441
Nimが十分抽象表現できてるからNim++は意味ねーだろ
Nimが十分抽象表現できてるからNim++は意味ねーだろ
444デフォルトの名無しさん
2022/07/25(月) 14:47:29.52ID:MBqXfUDU >>437
Pythonの自動学習ライブラリはフロントエンドではない
さらに多くがC++で書かれている自動学習ライブラリに対してRustが非常に使いづらいと主張するなら根拠を書くべき
C++が多いのは長年の時間の差だけであり現在はPythonからRustを呼び出すこともできるようになったので今後は色々と出て来るだろう
Pythonの自動学習ライブラリはフロントエンドではない
さらに多くがC++で書かれている自動学習ライブラリに対してRustが非常に使いづらいと主張するなら根拠を書くべき
C++が多いのは長年の時間の差だけであり現在はPythonからRustを呼び出すこともできるようになったので今後は色々と出て来るだろう
445デフォルトの名無しさん
2022/07/25(月) 15:03:49.84ID:ZKQpDD7R 自動学習?
446デフォルトの名無しさん
2022/07/25(月) 15:20:21.13ID:/ac3g8+o >>434
デタラメな説明はよろしくないな
君はRustを叩きたい側だからだろうが根本的な理解ができていない
特に酷いのは「所有権の複製」
Rustにそんな概念も用法も無い
Rcが滅多に使われないというのは事実
様々なRustのライブラリ(クレート)を見てもRcの出現は非常に少なくArcよりも圧倒的に少ない
Arcが多い理由はマルチスレッドでデータを共有するためで別々の所有者だから
Rcはシングルスレッド用だから別々の所有者を必要とすることが非常に少ない
まれにRcを必要とすることもあるが本当に必要なのかをまずは疑うべき
さらにRc/Arcでカウントアップ/ダウンは滅多に起きない事象であるため負荷を批判するのもおかしい
例えばマルチスレッド間のデータ共有でArcを使うとしてもスレッド生成で+1されスレッド終了で−1されるのみだからスレッド生成に対して誤差である
このように新たな所有主体が現れること自体の負荷と比べて数値を+1することは誤差
デタラメな説明はよろしくないな
君はRustを叩きたい側だからだろうが根本的な理解ができていない
特に酷いのは「所有権の複製」
Rustにそんな概念も用法も無い
Rcが滅多に使われないというのは事実
様々なRustのライブラリ(クレート)を見てもRcの出現は非常に少なくArcよりも圧倒的に少ない
Arcが多い理由はマルチスレッドでデータを共有するためで別々の所有者だから
Rcはシングルスレッド用だから別々の所有者を必要とすることが非常に少ない
まれにRcを必要とすることもあるが本当に必要なのかをまずは疑うべき
さらにRc/Arcでカウントアップ/ダウンは滅多に起きない事象であるため負荷を批判するのもおかしい
例えばマルチスレッド間のデータ共有でArcを使うとしてもスレッド生成で+1されスレッド終了で−1されるのみだからスレッド生成に対して誤差である
このように新たな所有主体が現れること自体の負荷と比べて数値を+1することは誤差
447デフォルトの名無しさん
2022/07/25(月) 16:01:59.92ID:N2Q3Sx/d448デフォルトの名無しさん
2022/07/25(月) 16:04:20.43ID:LpioO7nY449デフォルトの名無しさん
2022/07/25(月) 16:06:38.58ID:LxBh6KBX >>432
例えばC言語でグラフを実装する時も生のポインタのみで実装されることはありません
なぜなら各ノードのメモリを解放するタイミングがわからなくなるためです
そこで主に三つの方法が取られます
一つは各ノード一覧を配列などで持っておくとともに定期的にルートから到達可能か到達フラグを用意します
そしてノード一覧の中で到達フラグが立っていないものをメモリ解放します
この方法の欠点は4つあり
(1) ノード一覧を管理する配列が別途必要となる
(2) 到達フラグが必要となる
(3) 定期的に到達可能かを調べる必要がある
(4) 使われなくなったノードがすぐには解放されない
もう一つの方法は定期的コピー方式です
ルートから到達可能な部分を定期的に別の場所にコピーします
コピーされなかった部分が到達できない使われていない部分なのでまとめて解放となります
この方法の欠点は
(1) この方法も定期的な実行が必要となる
(2) メモリ空間が2倍必要となる
(3) 使われてる全体が定期的にメモリコピーされる負荷
(4) 使われなくなったノードがすぐには解放されない
残りの方法は参照カウンタ方式です
おなじみなので略します
いずれの方法も様々な欠点があります
このグラフのノード解放問題は
ガベージコレクションを必要とするプログラミング言語にそのまま当てはまります
GCの負荷コストを理解していただけましたでしょうか?
例えばC言語でグラフを実装する時も生のポインタのみで実装されることはありません
なぜなら各ノードのメモリを解放するタイミングがわからなくなるためです
そこで主に三つの方法が取られます
一つは各ノード一覧を配列などで持っておくとともに定期的にルートから到達可能か到達フラグを用意します
そしてノード一覧の中で到達フラグが立っていないものをメモリ解放します
この方法の欠点は4つあり
(1) ノード一覧を管理する配列が別途必要となる
(2) 到達フラグが必要となる
(3) 定期的に到達可能かを調べる必要がある
(4) 使われなくなったノードがすぐには解放されない
もう一つの方法は定期的コピー方式です
ルートから到達可能な部分を定期的に別の場所にコピーします
コピーされなかった部分が到達できない使われていない部分なのでまとめて解放となります
この方法の欠点は
(1) この方法も定期的な実行が必要となる
(2) メモリ空間が2倍必要となる
(3) 使われてる全体が定期的にメモリコピーされる負荷
(4) 使われなくなったノードがすぐには解放されない
残りの方法は参照カウンタ方式です
おなじみなので略します
いずれの方法も様々な欠点があります
このグラフのノード解放問題は
ガベージコレクションを必要とするプログラミング言語にそのまま当てはまります
GCの負荷コストを理解していただけましたでしょうか?
450デフォルトの名無しさん
2022/07/25(月) 16:46:22.65ID:PkQCRHsR >>446
このように顔真っ赤になって、怒り心頭で攻撃してきます、激おこぷんぷん...マジでRustコミュニティはこういう輩の扱い考えたほうが良い....
>特に酷いのは「所有権の複製」
頭から「君はRustを叩きたい側だからだろう」という下種な勘ぐりを持って色眼鏡で相手と話し合う事はできませんし、これ以上
狂者を相手をするつもりもありませんが、デタラメ/間違いなら、より正しい言葉で説明したら良いじゃない?
なぜ1番先に書いたことを無説明で流し、Rc/Arcなんかの長文説明でグチグチ言ってるんです?
下のコメで「メモリーを限界まで使用してアクセスが高負荷な環境では確かに良い」と認めているのがあなたの目には見えませんか?
>Rcが滅多に使われないというのは事実
RcはStringにさえ使われています。あなたから薄ら頭に付いてる目から見える「事実」は隠されたライブラリの中に存在しているようですが
そこでもArcの話なんてしていません。Rcのスレッドセーフ版がArcなだけで、グダクダと口臭いArcの説明なんて誰も求めていません。
さらに参照カウントの一般的な欠点を説明しているのに、「批判するのがおかしい」と「誤差」なんてそれだから一般的なプログラマーから
ドン引きされるんですよ。
このように顔真っ赤になって、怒り心頭で攻撃してきます、激おこぷんぷん...マジでRustコミュニティはこういう輩の扱い考えたほうが良い....
>特に酷いのは「所有権の複製」
頭から「君はRustを叩きたい側だからだろう」という下種な勘ぐりを持って色眼鏡で相手と話し合う事はできませんし、これ以上
狂者を相手をするつもりもありませんが、デタラメ/間違いなら、より正しい言葉で説明したら良いじゃない?
なぜ1番先に書いたことを無説明で流し、Rc/Arcなんかの長文説明でグチグチ言ってるんです?
下のコメで「メモリーを限界まで使用してアクセスが高負荷な環境では確かに良い」と認めているのがあなたの目には見えませんか?
>Rcが滅多に使われないというのは事実
RcはStringにさえ使われています。あなたから薄ら頭に付いてる目から見える「事実」は隠されたライブラリの中に存在しているようですが
そこでもArcの話なんてしていません。Rcのスレッドセーフ版がArcなだけで、グダクダと口臭いArcの説明なんて誰も求めていません。
さらに参照カウントの一般的な欠点を説明しているのに、「批判するのがおかしい」と「誤差」なんてそれだから一般的なプログラマーから
ドン引きされるんですよ。
451デフォルトの名無しさん
2022/07/25(月) 16:51:48.53ID:Yk1WTUPx452デフォルトの名無しさん
2022/07/25(月) 17:01:49.95ID:PkQCRHsR >>451
https://doc.rust-lang.org/src/alloc/string.rs.html
pub struct String {
vec: Vec<u8>,
}
これだと言葉足らずですが、リテラルから生成するString::fromなどはこのようになります
https://doc.rust-lang.org/src/alloc/string.rs.html
pub struct String {
vec: Vec<u8>,
}
これだと言葉足らずですが、リテラルから生成するString::fromなどはこのようになります
453デフォルトの名無しさん
2022/07/25(月) 17:05:57.06ID:mpRQ8kqk >>450
> RcはStringにさえ使われています。
嘘つき!
RcはStringで当然使われていないだけだなく
Rust標準ライブラリの中でも(Rc自体の
部分を除き)Rcは全く使われていない
一般的にもRcは使われることが少ない
もちろんRcを使うべき例外も一部あるがRcを使う前に構造の見直しを勧める
> RcはStringにさえ使われています。
嘘つき!
RcはStringで当然使われていないだけだなく
Rust標準ライブラリの中でも(Rc自体の
部分を除き)Rcは全く使われていない
一般的にもRcは使われることが少ない
もちろんRcを使うべき例外も一部あるがRcを使う前に構造の見直しを勧める
454デフォルトの名無しさん
2022/07/25(月) 17:28:44.47ID:RV7OdbkD 標準ライブラリでRcが使われてないのは
オーバーヘッドを嫌ってunsafeを使った代替実装が使われてるからだぞ
オーバーヘッドを嫌ってunsafeを使った代替実装が使われてるからだぞ
455デフォルトの名無しさん
2022/07/25(月) 17:32:52.00ID:JQ4EiZH/456デフォルトの名無しさん
2022/07/25(月) 17:35:20.01ID:8LuMiuhM 人を嘘つき呼ばわりするキチガイを使う前に見直しを勧める
Rustは一人でやる分には良いけど、こういう奴とは絶対組みたくない、stdしか見えないアホ、ドアホォ
std::collectionsにないコレクションを使いたければ自分で実装するかgithubなどで拾ってくる必要があるのに、お前の顔見直せよ
Rustは一人でやる分には良いけど、こういう奴とは絶対組みたくない、stdしか見えないアホ、ドアホォ
std::collectionsにないコレクションを使いたければ自分で実装するかgithubなどで拾ってくる必要があるのに、お前の顔見直せよ
457デフォルトの名無しさん
2022/07/25(月) 17:57:22.48ID:eESAVdRW458デフォルトの名無しさん
2022/07/25(月) 18:18:18.06ID:qMC/1j9+459デフォルトの名無しさん
2022/07/25(月) 18:57:52.01ID:xyOpOgqp Python代替を狙いたいなら、脳死スニペットコピペで、
Excelファイルが編集できて便利ね。くらいを目指さないと無理じね?
Excelファイルが編集できて便利ね。くらいを目指さないと無理じね?
460デフォルトの名無しさん
2022/07/25(月) 19:33:13.71ID:GF1rw+EH 自分で使わないならダメじゃん?
Rc。
Rc。
461デフォルトの名無しさん
2022/07/25(月) 19:37:10.91ID:GF1rw+EH だいたい、Haskell全然流行っていないじゃんか。
世界のすべてがHaskellに代わるんじゃなかったのかよ?
Rustが流行るとか言われてももう信じられんわ。
D言語だって全然流行らなかったし。
世界のすべてがHaskellに代わるんじゃなかったのかよ?
Rustが流行るとか言われてももう信じられんわ。
D言語だって全然流行らなかったし。
462デフォルトの名無しさん
2022/07/25(月) 19:48:55.75ID:GF1rw+EH 結局一番使える凄いやつはExcel VBAだと思うね。
一番役に立つじゃん。
一番役に立つじゃん。
463デフォルトの名無しさん
2022/07/25(月) 19:54:28.52ID:8fqJaMrc >>460
RcをRust標準ライブラリや多くの外部ライブラリが使っていない理由は、Rcがダメだからではなく、
Rcが対象とするシングルスレッド環境においては、所有者が複数となることがない、もしくは、避けられることが多いため。
使わなくてよい時は使わず、どうしてもRcを使う必要がある時のみ使う、という当たり前の行動の結果。
RcをRust標準ライブラリや多くの外部ライブラリが使っていない理由は、Rcがダメだからではなく、
Rcが対象とするシングルスレッド環境においては、所有者が複数となることがない、もしくは、避けられることが多いため。
使わなくてよい時は使わず、どうしてもRcを使う必要がある時のみ使う、という当たり前の行動の結果。
464デフォルトの名無しさん
2022/07/25(月) 19:55:45.54ID:GF1rw+EH 言い訳は要らないんだよ。
465デフォルトの名無しさん
2022/07/25(月) 19:56:57.83ID:GF1rw+EH RustよりGoのほうが速いじゃん。
466デフォルトの名無しさん
2022/07/25(月) 20:00:32.25ID:GF1rw+EH こんな遅いんだったらRustなんか使うんじゃなかったってみんな言ってるわ。
467デフォルトの名無しさん
2022/07/25(月) 20:06:54.34ID:AMmqdU+/ >>466
RustはC++よりも速い結果が出ることも多い中で何を言ってるんだ??
RustはC++よりも速い結果が出ることも多い中で何を言ってるんだ??
468デフォルトの名無しさん
2022/07/25(月) 20:08:53.16ID:cWo2MzNn >>449
延々と変なことを書いてるなとしか
延々と変なことを書いてるなとしか
469デフォルトの名無しさん
2022/07/25(月) 20:16:00.56ID:GF1rw+EH RustはHaskellの後継言語では?
口だけ番長みたいな。
口だけ番長みたいな。
470デフォルトの名無しさん
2022/07/25(月) 20:18:22.01ID:qMC/1j9+ 速い遅いは1bit的な100パーセントの保証ができないからね
逆に、変数の型を全く書かない、ゼロを保証するPythonのようなものは誠実な印象になる
逆に、変数の型を全く書かない、ゼロを保証するPythonのようなものは誠実な印象になる
471デフォルトの名無しさん
2022/07/25(月) 20:29:29.58ID:n2SYQgGe >>455
それ測定方法がおかしい
解いていないとはいえ、grepが一番速くて、次にwcが速くて、それらはC言語で書いたものより速くなっている
解いているシェルスクリプトですら1.83秒しかかかっておらず、Rubyの最適化版に至ってはシェルスクリプトより遅い結果となっている
最適化版のコードも一人が提供しただけであり、これでは意味がなかろう
その程度の課題でプログラミング言語間の時間比較に意味あるのか?
それ測定方法がおかしい
解いていないとはいえ、grepが一番速くて、次にwcが速くて、それらはC言語で書いたものより速くなっている
解いているシェルスクリプトですら1.83秒しかかかっておらず、Rubyの最適化版に至ってはシェルスクリプトより遅い結果となっている
最適化版のコードも一人が提供しただけであり、これでは意味がなかろう
その程度の課題でプログラミング言語間の時間比較に意味あるのか?
472デフォルトの名無しさん
2022/07/25(月) 20:30:15.46ID:8BHj2ErZ よく分からんけれど、CPythonに代わる速くて安全で効率の良いRustPythonを作るのが良いのではないだろうか?
473デフォルトの名無しさん
2022/07/25(月) 20:32:58.49ID:GF1rw+EH RustはPHPと変わらないじゃん。
PHP速いわー。
PHP速いわー。
474デフォルトの名無しさん
2022/07/25(月) 20:34:05.94ID:GF1rw+EH Haskellおっそ。
なんなんこれ。
12.81だって。
なんなんこれ。
12.81だって。
475デフォルトの名無しさん
2022/07/25(月) 20:38:25.47ID:GF1rw+EH 仮にも地球を代表するプログラマが遅い速いは時の運とか言っちゃだめだと思うわ。
476デフォルトの名無しさん
2022/07/25(月) 20:44:28.71ID:nBUvMOxq477デフォルトの名無しさん
2022/07/25(月) 20:47:52.05ID:GF1rw+EH こんだけ凝って、こんだけ遅いって、Rustの見事な性能の表れでしょ。
そりゃ誰も使いませんわ。
こんなの使ってたら宗教ですよ。
信徒ですよ。
そりゃ誰も使いませんわ。
こんなの使ってたら宗教ですよ。
信徒ですよ。
478デフォルトの名無しさん
2022/07/25(月) 20:52:51.88ID:GF1rw+EH はい、エビデンス出ましたー。
479デフォルトの名無しさん
2022/07/25(月) 20:56:02.00ID:aidYcMa/ >>476
ちょっとコードを見てみたけど両者でやっていることが異なるね
例えばGoのコードと異なりRustのコードはバッファ内をcopy_withinでコピーしていたりするなどGoにはないコードがあるような
ちょっとコードを見てみたけど両者でやっていることが異なるね
例えばGoのコードと異なりRustのコードはバッファ内をcopy_withinでコピーしていたりするなどGoにはないコードがあるような
480デフォルトの名無しさん
2022/07/25(月) 20:59:34.44ID:GF1rw+EH また言い訳が始まった。
481デフォルトの名無しさん
2022/07/25(月) 21:05:06.38ID:+hqW1c0q まだコードをよく見ていないが、
他のベンチマークではGoがいつも負けていて、
今回だけGoが勝っているのだから、
何か裏があると推測できる。
他のベンチマークではGoがいつも負けていて、
今回だけGoが勝っているのだから、
何か裏があると推測できる。
482デフォルトの名無しさん
2022/07/25(月) 21:07:28.31ID:GF1rw+EH トイプログラムやベンチマークではRustのほうが速いけど、こういう実用的なプログラムではGoのほうが速いってことじゃないの?
483デフォルトの名無しさん
2022/07/25(月) 21:08:19.44ID:X7PH+Zk7 もしデータが間違っているなら理屈と直感で判断すればいい
全ての情報源が正直者でなければ何もできないことを性善説という
全ての情報源が正直者でなければ何もできないことを性善説という
484デフォルトの名無しさん
2022/07/25(月) 21:09:45.71ID:GF1rw+EH 4Kb未満のデータはRustのほうが速いけど、
それ以上のデータでは、Goのほうが速いのでは?
それ以上のデータでは、Goのほうが速いのでは?
485デフォルトの名無しさん
2022/07/25(月) 21:11:43.19ID:GF1rw+EH わし、単体テストにベンチマークも入れてるよ?
486デフォルトの名無しさん
2022/07/25(月) 21:19:04.59ID:GF1rw+EH キャッシュを上手に使えるGoと、全く考慮しないRustの違いが出てるのでは?
487デフォルトの名無しさん
2022/07/25(月) 21:19:28.30ID:7b2W3YWe >>430
まずCのコードを読んだが特にトリッキーなことをしていないので
そのままRustに書き換えればいつものC→RustのようにRustでほぼCと同じ速さが出るだろうな
一方でそこに書かれているRustのコードはCの2倍近く遅くて普通にありえない結果となってるな
まずCのコードを読んだが特にトリッキーなことをしていないので
そのままRustに書き換えればいつものC→RustのようにRustでほぼCと同じ速さが出るだろうな
一方でそこに書かれているRustのコードはCの2倍近く遅くて普通にありえない結果となってるな
488デフォルトの名無しさん
2022/07/25(月) 21:21:31.99ID:GF1rw+EH また言い訳かよ。
負けたんだよ、Rustは。
負けたんだよ、Rustは。
489デフォルトの名無しさん
2022/07/25(月) 21:23:25.12ID:GF1rw+EH じゃあ、Rustにprogress_displayはあるのかよ?
490デフォルトの名無しさん
2022/07/25(月) 21:26:07.93ID:GF1rw+EH progress_display無かったら要らんわ。
しかも遅いし。
しかも遅いし。
491デフォルトの名無しさん
2022/07/25(月) 21:58:27.37ID:4KCQJPyi492デフォルトの名無しさん
2022/07/25(月) 22:00:37.54ID:SeYpjqPN >>430のベンチマークの方法とか見てたんだが
1. 時間はpythonのsubprocess.runで独立した試行を5回行っている。
2. 5回のうち最速のものを記録にしている。
だから、Javaみたいに起動時に重い言語は不利なのと、同じくらいの速度だと計算機の機嫌で順位が入れ替わりそう。
1. 時間はpythonのsubprocess.runで独立した試行を5回行っている。
2. 5回のうち最速のものを記録にしている。
だから、Javaみたいに起動時に重い言語は不利なのと、同じくらいの速度だと計算機の機嫌で順位が入れ替わりそう。
493デフォルトの名無しさん
2022/07/25(月) 22:03:54.64ID:GF1rw+EH Rustは糞遅いから入れ替わらない。
494デフォルトの名無しさん
2022/07/25(月) 22:06:10.72ID:krXhYbIy Juliaって愛される言語5位とかに入っていたけど、あんまり流行る気配ないよね
PythonからJulia主体にならんか
PythonからJulia主体にならんか
495デフォルトの名無しさん
2022/07/25(月) 22:06:51.57ID:FztPljLn あとRustのCっぽいバージョンは何に対してas fastなんだろう
496デフォルトの名無しさん
2022/07/25(月) 22:08:02.42ID:GF1rw+EH ちょっと検索してみたんだがGoは並行処理が得意らしいぞ。
俺の12900HX16コア24スレッドが有効に使えるのでは?
もしかして。
俺の12900HX16コア24スレッドが有効に使えるのでは?
もしかして。
497デフォルトの名無しさん
2022/07/25(月) 22:08:47.70ID:GF1rw+EH Cっぽくないバージョンに対してだろね。
498デフォルトの名無しさん
2022/07/25(月) 22:19:58.19ID:4KCQJPyi HashMapを高速なハッシュに変えたらRustの勝ち
解散
解散
499デフォルトの名無しさん
2022/07/25(月) 22:31:12.16ID:FztPljLn500デフォルトの名無しさん
2022/07/25(月) 22:51:30.63ID:m2kvc7p2 俺の環境だとRustの方が少しだけ速かったな
バージョンアップで多少改善されたのかも。誤差程度だけど
バージョンアップで多少改善されたのかも。誤差程度だけど
501デフォルトの名無しさん
2022/07/25(月) 22:53:16.38ID:7b2W3YWe >>499
(衝突攻撃安全性に優れるが遅い)Rust標準ライブラリのHashMapよりも
今回は(Rustコンパイラ等でも使われている)速いfxhashを使った方が良いとのアドバイスがあっただけで
実際に使っているコードはHashMapのままになってるような
(衝突攻撃安全性に優れるが遅い)Rust標準ライブラリのHashMapよりも
今回は(Rustコンパイラ等でも使われている)速いfxhashを使った方が良いとのアドバイスがあっただけで
実際に使っているコードはHashMapのままになってるような
502デフォルトの名無しさん
2022/07/25(月) 23:18:27.95ID:SeYpjqPN >>501
optimizedのmain.rsは
use fxhash::{FxHashMap as HashMap};
となってるんだけど
これはfxhashを使って高速化してるわけではない?
それともベンチマークに反映してないのか?
optimizedのmain.rsは
use fxhash::{FxHashMap as HashMap};
となってるんだけど
これはfxhashを使って高速化してるわけではない?
それともベンチマークに反映してないのか?
503デフォルトの名無しさん
2022/07/26(火) 00:27:41.06ID:6K/UlhEh >>472
つ Nim
つ Nim
504デフォルトの名無しさん
2022/07/26(火) 00:30:04.25ID:6K/UlhEh505デフォルトの名無しさん
2022/07/26(火) 00:33:32.10ID:7eeTS5R1 Rustがこんなに遅いとは知らんかった。
506デフォルトの名無しさん
2022/07/26(火) 01:36:48.26ID:gGUkeHRo いつものやつ貼っておくか
https://benchmarksgame-team.pages.debian.net/benchmarksgame/box-plot-summary-charts.html
ChapelとJuliaすごいじゃん
https://benchmarksgame-team.pages.debian.net/benchmarksgame/box-plot-summary-charts.html
ChapelとJuliaすごいじゃん
507デフォルトの名無しさん
2022/07/26(火) 05:00:13.51ID:O8zJADrT ワードカウントの結果だけで性能評価してしまうプログラマがいるんですか!?
508デフォルトの名無しさん
2022/07/26(火) 08:14:27.14ID:sEULh4Zl509デフォルトの名無しさん
2022/07/26(火) 08:27:06.16ID:B/e7/0Va Rustのコードがおかしいと言うなら、改善したコード出せばいいんじゃない?
ワードカウントじゃ言語の性能はわからないとか言うんだったら、Rust有利なベンチマーク作ればいいんじゃない?
Rust簡単とか言っているやつなら余裕だろ。
ワードカウントじゃ言語の性能はわからないとか言うんだったら、Rust有利なベンチマーク作ればいいんじゃない?
Rust簡単とか言っているやつなら余裕だろ。
510デフォルトの名無しさん
2022/07/26(火) 08:44:40.79ID:/siOCA+g 批判されていることは「性能が悪い」というより「コストの割には性能が微妙」というニュアンスなので
コードを一行も書かないことがコスト最小なんだよ
コストの話をするとコードを書く奴がいなくなる
コードを一行も書かないことがコスト最小なんだよ
コストの話をするとコードを書く奴がいなくなる
511デフォルトの名無しさん
2022/07/26(火) 10:02:50.90ID:dWbaeKdQ 高級機能があってランタイム最強!っていう厨二病的なモチベーションだからほっとけばいいんだよ。
そのうち気づくし、気づかなくても知ったこっちゃない。
そのうち気づくし、気づかなくても知ったこっちゃない。
512デフォルトの名無しさん
2022/07/26(火) 10:11:09.19ID:cX/Q+77r513デフォルトの名無しさん
2022/07/26(火) 10:29:35.69ID:NhFYQzcJ Rust遅すぎじゃね?
https://res.cloudinary.com/practicaldev/image/fetch/s--n3XlUkmN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cqj6u280qmdwq7fgnw5h.png
https://res.cloudinary.com/practicaldev/image/fetch/s--n3XlUkmN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cqj6u280qmdwq7fgnw5h.png
514デフォルトの名無しさん
2022/07/26(火) 10:43:17.89ID:/siOCA+g RAIIだけの問題ならGoは使わない方がよさそう
C++だけで書いてexitとabortを比較とかすればいいのでは
C++だけで書いてexitとabortを比較とかすればいいのでは
515デフォルトの名無しさん
2022/07/26(火) 11:52:47.41ID:gfJAfx82 RAIIはメモリ解放タイミングが決定的なのがスッとするんよ
ガベコレの場合に開放を保留しておいて
プログラムの終了がすぐだから個別の開放はしないってときは
そりゃかえってガベコレ方式のほうがメモリ関係の全体コスト少なくてもおかしくない
ガベコレの場合に開放を保留しておいて
プログラムの終了がすぐだから個別の開放はしないってときは
そりゃかえってガベコレ方式のほうがメモリ関係の全体コスト少なくてもおかしくない
516デフォルトの名無しさん
2022/07/26(火) 12:04:42.36ID:04PZVssu CPUバウンドでも対してGoと変わらないことがあるんだから
IOバウンドの用途でRustを使うメリットなんて皆無
メモリ効率ガーGCガーとかクソどうでもいい
OS開発とか組み込みとかなら重要なんだろうけど
IOバウンドの用途でRustを使うメリットなんて皆無
メモリ効率ガーGCガーとかクソどうでもいい
OS開発とか組み込みとかなら重要なんだろうけど
517デフォルトの名無しさん
2022/07/26(火) 12:08:48.07ID:DIb0h0GI >>516
組み込みはC/C++の独壇場なのだから、ここにRustが入ればより良い製品が増えるだろ
組み込みはC/C++の独壇場なのだから、ここにRustが入ればより良い製品が増えるだろ
518デフォルトの名無しさん
2022/07/26(火) 12:14:19.45ID:m36KkBXx CPUバウンドだったとしても実装に使ったアルゴリズムで劣ってればそりゃRustやCでも余裕で負けるだろう
519デフォルトの名無しさん
2022/07/26(火) 12:18:31.42ID:MxJrqhMY そもそも非最適化版でベンチマーク比較する意味ねーだろ、デバッグ中や開発中でもねーのに。
520デフォルトの名無しさん
2022/07/26(火) 12:21:17.66ID:kU0OGDST >>519
そういう意味の非最適化じゃねーから
そういう意味の非最適化じゃねーから
521デフォルトの名無しさん
2022/07/26(火) 12:56:48.38ID:cX/Q+77r >>519
Rustの "Zero Overhead Abstruction" を活用した結果遅くなったということだ
Rustの "Zero Overhead Abstruction" を活用した結果遅くなったということだ
522デフォルトの名無しさん
2022/07/26(火) 16:33:28.70ID:gGUkeHRo プロファイルとって分析した上で遅い原因について語ってるの?ただの憶測?
523デフォルトの名無しさん
2022/07/26(火) 16:41:00.17ID:lSrKh9WN 昔あったc++よりc#の方が速いケースがあるみたいなどうでもいい内容に思えるけど
524デフォルトの名無しさん
2022/07/26(火) 16:51:02.98ID:g3j+kypL >>523
dotnetの方がCPUに対して最適化された命令セットにできるってのはまああり得るっちゃあり得るよね
dotnetの方がCPUに対して最適化された命令セットにできるってのはまああり得るっちゃあり得るよね
525デフォルトの名無しさん
2022/07/26(火) 16:57:23.19ID:m36KkBXx 命令セット?
C++のコンパイラがクソい命令セットを使うことがあり得る、って話?
そりゃ処理系によってはそうだろうけど
C++のコンパイラがクソい命令セットを使うことがあり得る、って話?
そりゃ処理系によってはそうだろうけど
526デフォルトの名無しさん
2022/07/26(火) 17:06:31.29ID:IrL7txwd NTTグループで7月から3万人が原則テレワークに、遠方からの飛行機出社もOK
NTTグループは、従業員の勤務形態を原則としてテレワークとする新制度を
2022年7月1日から導入する。まず持ち株会社のNTTやNTT東日本、NTT西日本、
NTTドコモ、NTTデータなどの主要会社から導入する。当初は約3万人を対象とする。
テレワークを原則とする部署は各社で決める。
まずは人事や総務といった間接部門や企画、システム開発などテレワークに
向く部署が対象となる見込みだ。新制度では、従業員の居住地の制限もなくす。
従来は「通勤時間が2時間程度」という制限があったが、国内のどこにでも
居住して勤務できるようになる。出社が必要な場合は、出張扱いとして航空機を
利用した出社も認める。日付をまたぐ場合は、宿泊費も会社が負担する。
NTTグループは、従業員の勤務形態を原則としてテレワークとする新制度を
2022年7月1日から導入する。まず持ち株会社のNTTやNTT東日本、NTT西日本、
NTTドコモ、NTTデータなどの主要会社から導入する。当初は約3万人を対象とする。
テレワークを原則とする部署は各社で決める。
まずは人事や総務といった間接部門や企画、システム開発などテレワークに
向く部署が対象となる見込みだ。新制度では、従業員の居住地の制限もなくす。
従来は「通勤時間が2時間程度」という制限があったが、国内のどこにでも
居住して勤務できるようになる。出社が必要な場合は、出張扱いとして航空機を
利用した出社も認める。日付をまたぐ場合は、宿泊費も会社が負担する。
527デフォルトの名無しさん
2022/07/26(火) 18:18:56.01ID:sEULh4Zl >>525
AMDとIntelの違いや世代でも違うし、同じ命令でも特性が違ったりするんじゃね?
AMDとIntelの違いや世代でも違うし、同じ命令でも特性が違ったりするんじゃね?
528デフォルトの名無しさん
2022/07/26(火) 18:26:22.14ID:/siOCA+g 仮にそれが原因だったとして
その実験データって再現性とかあるんですか
その実験データって再現性とかあるんですか
529デフォルトの名無しさん
2022/07/26(火) 18:54:20.86ID:lSrKh9WN twiterでMSX3と言うのが流れてきた
このハードで勝負だ!とはならんなあw
このハードで勝負だ!とはならんなあw
530デフォルトの名無しさん
2022/07/26(火) 19:09:11.50ID:gd/liWqB countwordsを試してみたけど
optimizedで速い順にC > Rust > Go > Nim
(比率 1 : 1.69 : 2.03 : 3.42)
simpleは Nim > Go > C > Rust
(比率 1 : 1.09 : 1.22 : 1.38)
simpleでRustが遅いのはUTF-8チェックとhash関数の遅さと考えれば納得できる範囲かな
ZigやC++はコンパイルエラーになったから除いた
optimizedで速い順にC > Rust > Go > Nim
(比率 1 : 1.69 : 2.03 : 3.42)
simpleは Nim > Go > C > Rust
(比率 1 : 1.09 : 1.22 : 1.38)
simpleでRustが遅いのはUTF-8チェックとhash関数の遅さと考えれば納得できる範囲かな
ZigやC++はコンパイルエラーになったから除いた
531デフォルトの名無しさん
2022/07/26(火) 19:15:29.79ID:lSrKh9WN Nimは毎回インストールするけどwindowsが警告が出すんだよな
防疫して一部のファイル消したりしていじわるしてくる
防疫して一部のファイル消したりしていじわるしてくる
532デフォルトの名無しさん
2022/07/26(火) 20:25:55.51ID:GQvz79KS 意地悪というよりイジメじゃん。
慰謝料、億とれるよ。
慰謝料、億とれるよ。
533デフォルトの名無しさん
2022/07/26(火) 20:39:29.27ID:GQvz79KS RustはC/C++にダブルスコアで負けてるじゃん。
534デフォルトの名無しさん
2022/07/26(火) 20:45:27.29ID:m36KkBXx イジメはイジメられるほうに原因がある
いじめられる側が悪い
いじめられる側が悪い
535デフォルトの名無しさん
2022/07/26(火) 21:21:03.08ID:ceC8PDvA cは単語ごとに細切れで確保
item.key = strdup(word); // simple.c
char* word_copy = malloc(word_len); // optimized.c
するんじゃなくてこっちもwordコピー用の領域をおっきく取っておいて
そっちをちまちま端から使っていってみたいけど
item.key = strdup(word); // simple.c
char* word_copy = malloc(word_len); // optimized.c
するんじゃなくてこっちもwordコピー用の領域をおっきく取っておいて
そっちをちまちま端から使っていってみたいけど
536デフォルトの名無しさん
2022/07/26(火) 21:48:16.70ID:/siOCA+g プログラミングでは原因と結果というより命令と実行という方がわかりやすい
命令する側が生殺与奪の権を握っている事実が
命令する側が生殺与奪の権を握っている事実が
537デフォルトの名無しさん
2022/07/26(火) 22:00:26.74ID://WUsWcW とりあえずこんなもん
Language | Simple | Optimized | Notes
------------- | ------ | --------- | -----
`grep` | 0.15 | 0.15 | `grep` baseline; optimized sets `LC_ALL=C`
`wc -w` | 1.20 | 0.99 | `wc` baseline; optimized sets `LC_ALL=C`
C | 3.34 | 0.93 |
Go | 3.38 | 1.30 |
Rust | 3.69 | 1.40 | by Andrew Gallant
Rust-fixhm | 3.25 | | by Andrew Gallant
Rust-buf | | 1.31 | by Andrew Gallant
Rust-unsafe | | 1.18 | by Andrew Gallant
Rust-customhm | | 0.98 | by Andrew Gallant
Python | 12.15 | 5.27 |
Rustは懸念点が多いのでいくつかやった。
-fixhmがハッシュマップを速いものに切り替えたやつ、-bufが標準出力にバッファが噛んでなかったのを直したやつ、-unsafeと-customhmが同梱されてたより高速なやつ。
こうしてみるとRustは標準ライブラリが生っぽかったりセキュリティのために性能を犠牲にしたりとちぐはぐな感じがあるな。
Language | Simple | Optimized | Notes
------------- | ------ | --------- | -----
`grep` | 0.15 | 0.15 | `grep` baseline; optimized sets `LC_ALL=C`
`wc -w` | 1.20 | 0.99 | `wc` baseline; optimized sets `LC_ALL=C`
C | 3.34 | 0.93 |
Go | 3.38 | 1.30 |
Rust | 3.69 | 1.40 | by Andrew Gallant
Rust-fixhm | 3.25 | | by Andrew Gallant
Rust-buf | | 1.31 | by Andrew Gallant
Rust-unsafe | | 1.18 | by Andrew Gallant
Rust-customhm | | 0.98 | by Andrew Gallant
Python | 12.15 | 5.27 |
Rustは懸念点が多いのでいくつかやった。
-fixhmがハッシュマップを速いものに切り替えたやつ、-bufが標準出力にバッファが噛んでなかったのを直したやつ、-unsafeと-customhmが同梱されてたより高速なやつ。
こうしてみるとRustは標準ライブラリが生っぽかったりセキュリティのために性能を犠牲にしたりとちぐはぐな感じがあるな。
538デフォルトの名無しさん
2022/07/26(火) 23:12:57.71ID:gsmRiHCH >>531
Nim言語はマルウェアを作る人達に使われているらしい。
アンチウィルスソフトは単純なパターンマッチングで動いているから、
悪いことしないNimのコードでもマルウェアだと誤検出されてしまうらしい。
Nim言語はマルウェアを作る人達に使われているらしい。
アンチウィルスソフトは単純なパターンマッチングで動いているから、
悪いことしないNimのコードでもマルウェアだと誤検出されてしまうらしい。
539デフォルトの名無しさん
2022/07/27(水) 00:56:57.97ID:DVht3D3b >>537
これgrepが一番速いけどagとかripgrepだとどうなるの?
これgrepが一番速いけどagとかripgrepだとどうなるの?
540デフォルトの名無しさん
2022/07/27(水) 01:28:29.17ID:9E9DYfCO Cで書かれたgrepより、Goで書かれたptのほうが早いし高機能だよ
541デフォルトの名無しさん
2022/07/27(水) 01:34:47.64ID:mzblDH8U まあぶっちゃけ他の言語でもgrepと同じように
trieみたいな文字列処理用のアルゴリズム使えば速度はだいぶ変わると思うけどね
なんで泥臭い処理を書いてるのか
そりゃgrepが1番早いだろと
trieみたいな文字列処理用のアルゴリズム使えば速度はだいぶ変わると思うけどね
なんで泥臭い処理を書いてるのか
そりゃgrepが1番早いだろと
542デフォルトの名無しさん
2022/07/27(水) 02:00:24.66ID:mzblDH8U 言語の速度を比較するというのならアルゴリズムは揃えるべき
でないと何が何やらわからない
でないと何が何やらわからない
543デフォルトの名無しさん
2022/07/27(水) 02:42:12.43ID:RFLOe/ZA grepは`grep foobar`を実行してファイルをなめてるだけだぞ
544デフォルトの名無しさん
2022/07/27(水) 04:04:05.75ID:ogiMaWw7 RustコンパイラはC++で書かれている。
545デフォルトの名無しさん
2022/07/27(水) 04:20:50.92ID:0dTQJF2a NimコンパイラはNimで書かれている。
けどgccだけからNimコンパイラをビルドできるようにするためにNimのコンパイラのソースコードをC言語に変換したもの(csources_v1)がある。
けどgccだけからNimコンパイラをビルドできるようにするためにNimのコンパイラのソースコードをC言語に変換したもの(csources_v1)がある。
546デフォルトの名無しさん
2022/07/27(水) 06:50:28.42ID:mzblDH8U >>543
だからgrepのアルゴリズムのことだよ
だからgrepのアルゴリズムのことだよ
547デフォルトの名無しさん
2022/07/27(水) 06:50:42.76ID:mzblDH8U >>544
あの、rustで書かれてます
あの、rustで書かれてます
548デフォルトの名無しさん
2022/07/27(水) 08:43:02.13ID:jeHuuvJh 毎月のようにバージョンアップしろと言ってくるこの原因はメモリ解放ミス?
Chrome version 103 脆弱性
[重要]CVE-2022-2477 : Guest View解放後の使用による問題
[重要]CVE-2022-2478 : PDF解放後の使用による問題
[重要]CVE-2022-2480 : Service Worker API解放後の使用による問題
[重要]CVE-2022-2481: Views解放後の使用による問題
Chrome version 103 脆弱性
[重要]CVE-2022-2477 : Guest View解放後の使用による問題
[重要]CVE-2022-2478 : PDF解放後の使用による問題
[重要]CVE-2022-2480 : Service Worker API解放後の使用による問題
[重要]CVE-2022-2481: Views解放後の使用による問題
549デフォルトの名無しさん
2022/07/27(水) 09:03:50.25ID:xJ8anoa4 >>546
アルゴリズム以前にやってる事が違うだろ...
アルゴリズム以前にやってる事が違うだろ...
550デフォルトの名無しさん
2022/07/27(水) 10:01:21.94ID:+1BW8lNB >>548
解放のミスというより参照のミス(エスケープ)だね
解放のミスというより参照のミス(エスケープ)だね
551デフォルトの名無しさん
2022/07/27(水) 10:53:41.19ID:eJc+JUck >>548
Rustへ移行すればそういうバグはコンパイル時にエラーとなるため確実に防げる
Rustへ移行すればそういうバグはコンパイル時にエラーとなるため確実に防げる
552デフォルトの名無しさん
2022/07/27(水) 10:56:48.68ID:BnCx/rjI >>541
grepはBoyer-Mooreでトライ木は使わない
Rustでハッシュベースの辞書の代わりにトライ木使ってるバージョンがあってそっちの方が多少速かったけどアルゴリズム的に優れてるというよりは対象データ依存
grepはBoyer-Mooreでトライ木は使わない
Rustでハッシュベースの辞書の代わりにトライ木使ってるバージョンがあってそっちの方が多少速かったけどアルゴリズム的に優れてるというよりは対象データ依存
553デフォルトの名無しさん
2022/07/27(水) 11:24:12.26ID:u+Gi34S+ 複数単語マッチングとかでもないのにトライ使う必要性がそもそもない。
めちゃくちゃな理解してる奴が多すぎだな。
めちゃくちゃな理解してる奴が多すぎだな。
554デフォルトの名無しさん
2022/07/27(水) 14:15:44.70ID:KqwEERri >そりゃgrepが1番早いだろと
>そりゃgrepが1番早いだろと
>そりゃgrepが1番早いだろと
>そりゃgrepが1番早いだろと
>そりゃgrepが1番早いだろと
555デフォルトの名無しさん
2022/07/27(水) 16:20:29.48ID:U29fl458 >>549
だから>>541は全言語で同じアルゴリズムでgrepを実装してと比較せよと言ってるんでしょ
トライだろうかボイヤームーアだろうがなんでも良いが漸近的な計算量が確定してるようなデータ構造に揃える
データ構造依存するなら尚更
全ての文字列のprefixが同じだとしたらどうなるか?
めちゃくちゃ長い文字列だとしたら?
例えばGCが発動しない状態のGoは流石に速いでしょう
全部同じアルゴリズムかつ同じような状態を実現するコードでないと言語の速度比較など意味がないというのはわかる
今回のように実装者によってゴミコード書いて遅い!とか騒いでるバカには辟易する
自分がバカなのに他人をバカ呼ばわりしてるんだからな
だから>>541は全言語で同じアルゴリズムでgrepを実装してと比較せよと言ってるんでしょ
トライだろうかボイヤームーアだろうがなんでも良いが漸近的な計算量が確定してるようなデータ構造に揃える
データ構造依存するなら尚更
全ての文字列のprefixが同じだとしたらどうなるか?
めちゃくちゃ長い文字列だとしたら?
例えばGCが発動しない状態のGoは流石に速いでしょう
全部同じアルゴリズムかつ同じような状態を実現するコードでないと言語の速度比較など意味がないというのはわかる
今回のように実装者によってゴミコード書いて遅い!とか騒いでるバカには辟易する
自分がバカなのに他人をバカ呼ばわりしてるんだからな
556デフォルトの名無しさん
2022/07/27(水) 16:48:07.16ID:9E9DYfCO 全く同じアルゴリズムで比較するべきとか言い出すならそもそもこんな複雑なタスクでベンチマークするのがおかしい
もっと簡単なタスクをいろいろ用意してそれぞれでベンチマーク比較したほうがいい
もっと簡単なタスクをいろいろ用意してそれぞれでベンチマーク比較したほうがいい
557デフォルトの名無しさん
2022/07/27(水) 17:31:41.43ID:ABAu9/vb 言語の生産性が低いからクソ遅いゴミコードがベンチマークにかけられてる説
生産性が高かったら、速いコードをシュッと書けるよね?
生産性が高かったら、速いコードをシュッと書けるよね?
558デフォルトの名無しさん
2022/07/27(水) 17:32:27.80ID:DVht3D3b559デフォルトの名無しさん
2022/07/27(水) 18:10:30.67ID:sVsDKGUs >だから>>541は全言語で同じアルゴリズムでgrepを実装してと比較せよと言ってるんでしょ
全言語同じアルゴリズムでgrep実装したら
「そりゃgrepが1番早いだろと」という結論になるんだww
嘘つき加減がアベノシグサだね
全言語同じアルゴリズムでgrep実装したら
「そりゃgrepが1番早いだろと」という結論になるんだww
嘘つき加減がアベノシグサだね
560デフォルトの名無しさん
2022/07/27(水) 18:18:20.30ID:H9RPm4O1 そうかな
一般的で複雑な機能を持った汎用性の高い標準ライブラリを使うと遅くなり
手書きでベタのアルゴリズムを書いたら早くなるとする
それは意味のある比較なんだろうか?
一般的で複雑な機能を持った汎用性の高い標準ライブラリを使うと遅くなり
手書きでベタのアルゴリズムを書いたら早くなるとする
それは意味のある比較なんだろうか?
561デフォルトの名無しさん
2022/07/27(水) 19:00:59.22ID:xJ8anoa4562デフォルトの名無しさん
2022/07/27(水) 19:12:28.53ID:H9RPm4O1 wcが乗ってる理由がわからないなら病気だと思うわ
563デフォルトの名無しさん
2022/07/27(水) 19:46:09.22ID:4voLS+/5 https://res.cloudinary.com/practicaldev/image/fetch/s--n3XlUkmN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cqj6u280qmdwq7fgnw5h.png
deno=Rust
これがすべてじゃね?
deno=Rust
これがすべてじゃね?
564デフォルトの名無しさん
2022/07/27(水) 20:07:25.39ID:xJ8anoa4565デフォルトの名無しさん
2022/07/27(水) 20:29:09.02ID:mzblDH8U >>555
そうそう
全く違うものを比較しても無意味ってことを言いたかった
俺がバカすぎてみんなに伝わらなかったようだw
まあこの比較自体にそこまで本気になるのは俺らぐらいだと思うw
しかしあなたの計算量やアルゴリズムを考慮した考え方のセンスは素晴らしい
言語間のベンチマークなんて余程のことでない限り成立しないのにやたらやりたがるよな
Rust使い以外はこんな人ばっかなのか?
そうそう
全く違うものを比較しても無意味ってことを言いたかった
俺がバカすぎてみんなに伝わらなかったようだw
まあこの比較自体にそこまで本気になるのは俺らぐらいだと思うw
しかしあなたの計算量やアルゴリズムを考慮した考え方のセンスは素晴らしい
言語間のベンチマークなんて余程のことでない限り成立しないのにやたらやりたがるよな
Rust使い以外はこんな人ばっかなのか?
566デフォルトの名無しさん
2022/07/27(水) 21:01:28.44ID:FD7fUZPx 散々書かれてるけどもgrepは存在しないfoobarを探したときの速度だしwcは単語数を数えてるだけでベンチに使われてるプログラムのように出てきた単語の数を数えたりはしてないぞ。
マシンパワーの指標と考えるべきだろうな
マシンパワーの指標と考えるべきだろうな
567デフォルトの名無しさん
2022/07/27(水) 21:14:23.71ID:Bpp5zdZY そんなこと言ったら嬉々としてこのベンチマーク探してきたドヤってた >430 か顔真っ赤にしてしまうだろ。
568デフォルトの名無しさん
2022/07/27(水) 21:20:19.70ID:U29fl458 >>565
少なくともC/C++/Rustの比較は無意味
メモリ使用量などを除けばマシンコードとして同一のものを吐き出すことは理論的には可能だから
突き詰めればそれが最速ということになる
つまり無意味
そういうことがわかってない人が言語間のベンチをやってるんだと思うよ
少なくともC/C++/Rustの比較は無意味
メモリ使用量などを除けばマシンコードとして同一のものを吐き出すことは理論的には可能だから
突き詰めればそれが最速ということになる
つまり無意味
そういうことがわかってない人が言語間のベンチをやってるんだと思うよ
569デフォルトの名無しさん
2022/07/27(水) 21:32:29.18ID:H9RPm4O1570デフォルトの名無しさん
2022/07/27(水) 21:38:26.34ID:H9RPm4O1 声のデカい馬鹿がイキってるのがこのスレとRustスレ
571デフォルトの名無しさん
2022/07/27(水) 21:40:35.04ID:mzblDH8U >>568
Optimizeを出した時点でそうなるよね
一般的な書き方で速い言語はどれか?って切り口にしとけば面白かったのに
Optimizeとかしちゃったら余計なランタイムがついてくるGoや他の言語が速いわけがない
めちゃくちゃ勉強になる
Optimizeを出した時点でそうなるよね
一般的な書き方で速い言語はどれか?って切り口にしとけば面白かったのに
Optimizeとかしちゃったら余計なランタイムがついてくるGoや他の言語が速いわけがない
めちゃくちゃ勉強になる
572デフォルトの名無しさん
2022/07/27(水) 21:44:09.15ID:H9RPm4O1 普通に意味あるだろ
普通にカスタマイズせずにその言語で普通に書くとどうなるかとある程度意識して書いたらどうか
それの比較に意味がないと思うならその程度なんだろうけど
普通にカスタマイズせずにその言語で普通に書くとどうなるかとある程度意識して書いたらどうか
それの比較に意味がないと思うならその程度なんだろうけど
573デフォルトの名無しさん
2022/07/27(水) 21:46:34.35ID:H9RPm4O1 意味がないと思うなら書き込みするな
わざわざでてくんな
わざわざでてくんな
574デフォルトの名無しさん
2022/07/27(水) 21:55:07.13ID:U29fl458 俺にとっては無意味と言ってるだけで別に意見は好きに言っていいよ
それが掲示板だ
それこそ*意味*があるなら好きにすればよろしい
俺は言語間のベンチマークは少なくとも平均計算量が理論的に導出されていて
そのアルゴリズムとデータを使い
外部ライブラリも使わずに極力プリミティブに書いて初めて意味があるものと思っている
それが掲示板だ
それこそ*意味*があるなら好きにすればよろしい
俺は言語間のベンチマークは少なくとも平均計算量が理論的に導出されていて
そのアルゴリズムとデータを使い
外部ライブラリも使わずに極力プリミティブに書いて初めて意味があるものと思っている
575デフォルトの名無しさん
2022/07/27(水) 21:58:12.88ID:U29fl458 ちなみに文字列処理のアルゴリズムは理論的に研究され尽くしてて
ほとんどのアルゴリズムの論文にきちんと計算量を求める式がある
まあそれがない論文は相手にされないわけだが
話が逸れたが以上となる
これ以上言いたいこともないのでしばらくROMることにする
また面白い話題があれば口を挟むかもしれない
ほとんどのアルゴリズムの論文にきちんと計算量を求める式がある
まあそれがない論文は相手にされないわけだが
話が逸れたが以上となる
これ以上言いたいこともないのでしばらくROMることにする
また面白い話題があれば口を挟むかもしれない
576デフォルトの名無しさん
2022/07/27(水) 22:01:49.88ID:xJ8anoa4 >>567
いや、grepとwcは別だって明記してあるんだからそれ以外の比較は意味あるだろ
いや、grepとwcは別だって明記してあるんだからそれ以外の比較は意味あるだろ
577デフォルトの名無しさん
2022/07/27(水) 23:31:40.93ID:ogiMaWw7 RustはPHPやPythonより遅かった。
PHPはなぜか速かった。
これが全て。
PHPはなぜか速かった。
これが全て。
578デフォルトの名無しさん
2022/07/27(水) 23:36:21.59ID:ogiMaWw7 Rustの遅さより、PHPの早さに驚くベンチだろね。
579デフォルトの名無しさん
2022/07/27(水) 23:51:04.75ID:6nSf0k+r 意味の無いものでも普通に意味あると言い続ければ通るのが世の中よ。
580デフォルトの名無しさん
2022/07/27(水) 23:54:42.60ID:ogiMaWw7 どゆこと?
581デフォルトの名無しさん
2022/07/27(水) 23:58:36.18ID:yuH/4Ewb582デフォルトの名無しさん
2022/07/27(水) 23:58:39.96ID:ogiMaWw7 https://news.yahoo.co.jp/articles/addb6c479375cce5a76ffeac75ef2d682f5c00aa
アワビには目や鼻、口があって、視力はもちろんあるし、海藻をかじってムシャムシャ食ってるらしいんですね。
カタツムリも巻貝で、虫ではないそうなんですよ。
カタツムリは目がありますよね。
アワビも巻貝なので目があるんだそうです。
アワビには目や鼻、口があって、視力はもちろんあるし、海藻をかじってムシャムシャ食ってるらしいんですね。
カタツムリも巻貝で、虫ではないそうなんですよ。
カタツムリは目がありますよね。
アワビも巻貝なので目があるんだそうです。
583デフォルトの名無しさん
2022/07/27(水) 23:59:40.89ID:ogiMaWw7 >>581
うちではRustのほうが速かったと言い張ってる人がいるだけでしょ。
うちではRustのほうが速かったと言い張ってる人がいるだけでしょ。
584デフォルトの名無しさん
2022/07/28(木) 00:00:06.26ID:GCXKHsjZ むしろなんでRustはそんなに遅いの??
585デフォルトの名無しさん
2022/07/28(木) 00:01:18.06ID:GCXKHsjZ Rustの遅さにお前が泣いた。
586デフォルトの名無しさん
2022/07/28(木) 00:27:11.63ID:Prl5fpBJ 意味のあるベンチとなっていないという批判には同意だが
とりあえずこちらでも>>430の元のコードのまま確認の実行をしてみた
素人でも誰でも確認のための実行できるように実行したコマンドは以下
$ git clone https://github.com/benhoyt/countwords.git
$ cd countwords/
$ ./test.sh
$ ./benchmark.py
Timing `grep` 0.04 0.03
Timing `wc -w` 0.23 0.16
Timing C 0.74 0.19
Timing Go 0.91 0.33
Timing Rust 0.73 0.27
Timing C++ 1.49 0.24
Timing Python 1.70 1.05
Timing Ruby 2.79 2.06
...
このアルゴリズムなど各種バラバラの比較に意味があるとは思えないが
それでもRustが遅いという結果は出ていないな
とりあえずこちらでも>>430の元のコードのまま確認の実行をしてみた
素人でも誰でも確認のための実行できるように実行したコマンドは以下
$ git clone https://github.com/benhoyt/countwords.git
$ cd countwords/
$ ./test.sh
$ ./benchmark.py
Timing `grep` 0.04 0.03
Timing `wc -w` 0.23 0.16
Timing C 0.74 0.19
Timing Go 0.91 0.33
Timing Rust 0.73 0.27
Timing C++ 1.49 0.24
Timing Python 1.70 1.05
Timing Ruby 2.79 2.06
...
このアルゴリズムなど各種バラバラの比較に意味があるとは思えないが
それでもRustが遅いという結果は出ていないな
587デフォルトの名無しさん
2022/07/28(木) 01:19:15.66ID:pLtk3OpM588デフォルトの名無しさん
2022/07/28(木) 06:37:56.55ID:GCXKHsjZ だが、PHPより遅い。
589デフォルトの名無しさん
2022/07/28(木) 07:12:43.60ID:ENEX/nTq PHPが早い時点でベンチの方法に疑問を持つべき
590デフォルトの名無しさん
2022/07/28(木) 10:51:31.30ID:GHBXY1WS 一般的な書き方で速いべき、という結論に誘導する手法に疑問を感じる
自分で断言すればすぐ終わることを他人の口から言わせることにエネルギーを使い過ぎ
自分で断言すればすぐ終わることを他人の口から言わせることにエネルギーを使い過ぎ
591デフォルトの名無しさん
2022/07/28(木) 11:44:26.44ID:Ohcf/kqZ >>577
JITで実質コンパイルされた形になるのは分かるけどそれに最適化でも掛かってる?
JITで実質コンパイルされた形になるのは分かるけどそれに最適化でも掛かってる?
592デフォルトの名無しさん
2022/07/28(木) 13:06:21.33ID:rMVZEJvU つまりはここまで全部PHPおじさんの自作自演てこと?
593デフォルトの名無しさん
2022/07/28(木) 13:08:59.76ID:4pySRXlJ PHPはインタプリタの割にはかなり速いのは事実だけど
流石にコンパイル言語より速いは普通は無いだろうなぁ
ただキャッシュされたら大きな差は出ない可能性はあるかもね
流石にコンパイル言語より速いは普通は無いだろうなぁ
ただキャッシュされたら大きな差は出ない可能性はあるかもね
594デフォルトの名無しさん
2022/07/28(木) 14:01:07.64ID:1GWFUzAq JITをがんばればJavaやC#のような速度は出るだろう
595デフォルトの名無しさん
2022/07/28(木) 14:05:09.32ID:XX9iY77s だが、PHPより遅い。
596デフォルトの名無しさん
2022/07/28(木) 18:04:41.85ID:egvelj9j あーあ
壊れちゃった
壊れちゃった
597デフォルトの名無しさん
2022/07/28(木) 18:38:51.53ID:KME/vBwm つまり >572 はPHPレベルということだ。
598デフォルトの名無しさん
2022/07/28(木) 19:00:49.91ID:dt3bZFXM PHPごときに負けて恥ずかしくないの?
599デフォルトの名無しさん
2022/07/28(木) 19:07:09.44ID:Vlf00JfE でもメモリは安全だから
600デフォルトの名無しさん
2022/07/28(木) 19:08:34.61ID:dt3bZFXM 四季もあるの?
601デフォルトの名無しさん
2022/07/28(木) 19:36:49.43ID:Hv8PyQaz PHPはNGワードで良いわもう
602デフォルトの名無しさん
2022/07/28(木) 20:46:28.42ID:Prl5fpBJ >>586で元のコード>>430のままでもRustがGoより速いとわかったが
RustがC++に負けている原因を探ると以下と判明
・Rust版の実行時間の6割以上がHashTableに費やされてる
・C版とC++版はカウント用Tableを自作しているため速い
そこで新Rust版ではC/C++版と同じアルゴリズム同じサイズのカウント用Tableを利用
またAndrew Gallant氏のRust optimized版はloop部分のコードがごちゃごちゃしているため
新Rust版ではひと目見ただけで分かる初心者でも書けるコードに改善した
これがその今回のRustコード
https://gist.github.com/rust-play/f03d2e73ee4e76acf69c98b7a8b8d322
これでC++版よりRust版が速くなった
RustがC++に負けている原因を探ると以下と判明
・Rust版の実行時間の6割以上がHashTableに費やされてる
・C版とC++版はカウント用Tableを自作しているため速い
そこで新Rust版ではC/C++版と同じアルゴリズム同じサイズのカウント用Tableを利用
またAndrew Gallant氏のRust optimized版はloop部分のコードがごちゃごちゃしているため
新Rust版ではひと目見ただけで分かる初心者でも書けるコードに改善した
これがその今回のRustコード
https://gist.github.com/rust-play/f03d2e73ee4e76acf69c98b7a8b8d322
これでC++版よりRust版が速くなった
603デフォルトの名無しさん
2022/07/28(木) 20:54:03.33ID:Prl5fpBJ >>602のRustコードを使った>>430の測定方法による結果(抜粋)
Language | Simple | Optimized | Notes
------------- | ------ | --------- | -----
Rust(New) | 0.73 | 0.21 | Optimizedが今回のソース
Rust | 0.73 | 0.27 | by Andrew Gallant
C | 0.74 | 0.19 |
Go | 0.91 | 0.33 |
PHP | 1.08 | | by Max Semenik
C++ | 1.49 | 0.24 | optimized by Jussi P, Adev, Nathan M
これでC言語よりはやや遅いが他の言語よりはRustが速くなった
Rustは「分かりやすく」「安全で」「高速な」コードを書けることが実証された
Language | Simple | Optimized | Notes
------------- | ------ | --------- | -----
Rust(New) | 0.73 | 0.21 | Optimizedが今回のソース
Rust | 0.73 | 0.27 | by Andrew Gallant
C | 0.74 | 0.19 |
Go | 0.91 | 0.33 |
PHP | 1.08 | | by Max Semenik
C++ | 1.49 | 0.24 | optimized by Jussi P, Adev, Nathan M
これでC言語よりはやや遅いが他の言語よりはRustが速くなった
Rustは「分かりやすく」「安全で」「高速な」コードを書けることが実証された
604デフォルトの名無しさん
2022/07/28(木) 21:33:34.37ID:1GWFUzAq 実証された(主観)
605デフォルトの名無しさん
2022/07/28(木) 21:49:48.90ID:gNJf8oDl >>604
主観の前に PHPerから見たが 抜けてるぞ
主観の前に PHPerから見たが 抜けてるぞ
606デフォルトの名無しさん
2022/07/28(木) 22:02:46.94ID:URQEvCBs 測定方法を含めて全てのソースコードが公開されて検証可能なのだから、
客観的に実証されたとみていいんじゃないの?
覆すにはRustより速いコードを出すしかない。
>>602のRustコードは、unsafeもトリッキーなところもなく、自然な容易なコードで速度が出てるのが凄い。
客観的に実証されたとみていいんじゃないの?
覆すにはRustより速いコードを出すしかない。
>>602のRustコードは、unsafeもトリッキーなところもなく、自然な容易なコードで速度が出てるのが凄い。
607デフォルトの名無しさん
2022/07/28(木) 22:41:13.22ID:Zn96MNxf Cの後継はZig、C++の後継はCarbonというのが正しい認識である
Rustは一部の技術好きが個人開発に使う言語に留まるだろう
Rustは一部の技術好きが個人開発に使う言語に留まるだろう
608デフォルトの名無しさん
2022/07/28(木) 22:41:22.64ID:qCSJGPl5 なんだコロコロID変えんの
609デフォルトの名無しさん
2022/07/28(木) 22:54:32.88ID:H9eYfDAM Zigはsimpleのほうでいきなりarena使ってて
それありなんって感じ
それありなんって感じ
610デフォルトの名無しさん
2022/07/28(木) 23:28:28.60ID:gNJf8oDl >>607
はいはい、おじいちゃんもう寝る時間よ。
はいはい、おじいちゃんもう寝る時間よ。
611デフォルトの名無しさん
2022/07/29(金) 00:17:37.16ID:EtgvtbrZ >>607
CarbonはC++と心中する人のための言語だよ
CarbonはC++と心中する人のための言語だよ
612デフォルトの名無しさん
2022/07/29(金) 00:17:44.81ID:yNgWnjZL >>602,606
この自演に気がつかないやつが一人でもいると思ってるのかな?
この自演に気がつかないやつが一人でもいると思ってるのかな?
613デフォルトの名無しさん
2022/07/29(金) 00:29:36.08ID:uVxzbE4m614デフォルトの名無しさん
2022/07/29(金) 00:32:24.17ID:OiKISQZh 俺の環境だとPHPはそこまで速くないな
とはいえ確かにpythonとかよりは速い
C/C++/Rustはここと同じ感じ
とはいえ確かにpythonとかよりは速い
C/C++/Rustはここと同じ感じ
615デフォルトの名無しさん
2022/07/29(金) 00:38:05.70ID:OiKISQZh 俺の環境だとPHPとJavaScriptがほぼ五分の勝負をしてる
スクリプト言語最速はこの2つということで良いと思う
スクリプト言語最速はこの2つということで良いと思う
616デフォルトの名無しさん
2022/07/29(金) 01:20:07.89ID:udomRyuy スクリプト言語の差はコード実行の差じゃなくインタプリタの起動時間の差
617デフォルトの名無しさん
2022/07/29(金) 03:36:57.85ID:gYD9mcR9 安倍元総理がミネクールとかいう統一教会の信者さんが取り扱う水素水で調子が良いという記事がドンドン消えてるんだけど。
調べてみると、ミネクールって、神奈川県警とか神奈川県消防局とかに納入されてて警察官も水素水で調子が良いらしいですよ。
なぜかドンドン記事が消えてるけど。
調べてみると、ミネクールって、神奈川県警とか神奈川県消防局とかに納入されてて警察官も水素水で調子が良いらしいですよ。
なぜかドンドン記事が消えてるけど。
618デフォルトの名無しさん
2022/07/29(金) 03:41:56.40ID:gYD9mcR9 防衛庁にも納入されてる・・・
統一教会凄いな。
統一教会凄いな。
619デフォルトの名無しさん
2022/07/29(金) 03:42:36.20ID:gYD9mcR9 安倍総理も飲んでるらしいよ。
水素水。
健康に良いんだって。
水素水。
健康に良いんだって。
620デフォルトの名無しさん
2022/07/29(金) 07:53:56.53ID:pXf+MkzI621デフォルトの名無しさん
2022/07/29(金) 08:12:44.41ID:SkJ6g9PS よかった、Rustは遅くなかったんだね
622デフォルトの名無しさん
2022/07/29(金) 08:26:08.76ID:eDL0B0tL Rustが速い遅い以前にこんなの本当に流行るのか?
正直気持ちが悪い言語だと個人的には思う
正直気持ちが悪い言語だと個人的には思う
623デフォルトの名無しさん
2022/07/29(金) 08:42:53.70ID:CY+eCpzK >>622
Rust参考に作ったコーダー向けサブセットc++か、所有権を使いやすく整理した別言語が出てくると思う。
Rust参考に作ったコーダー向けサブセットc++か、所有権を使いやすく整理した別言語が出てくると思う。
624デフォルトの名無しさん
2022/07/29(金) 08:44:13.23ID:WJPXGLlJ >>622
Visual Studioでデフォルトで選べるようになれば流行ると思う
Visual Studioでデフォルトで選べるようになれば流行ると思う
625デフォルトの名無しさん
2022/07/29(金) 09:00:33.06ID:WG/TpH2M Rustのムーブセマンティクスに慣れると逆にC++が気持ち悪くてしょうがないな
個人的に所有権は十分洗練されてると思うからasync周りをなんとかした新言語希望
個人的に所有権は十分洗練されてると思うからasync周りをなんとかした新言語希望
626デフォルトの名無しさん
2022/07/29(金) 09:03:23.24ID:A+PRMWKN 分かる
Rustの気持ち悪さは異常
まず文法が気持ち悪い
selfの省略記法が気持ち悪い
Rustの気持ち悪さは異常
まず文法が気持ち悪い
selfの省略記法が気持ち悪い
627デフォルトの名無しさん
2022/07/29(金) 09:11:36.03ID:EU2uG2Km Nimがシンプル版で最強だから最強言語はNim
628デフォルトの名無しさん
2022/07/29(金) 09:17:48.94ID:47SIIXKm629デフォルトの名無しさん
2022/07/29(金) 10:15:19.91ID:nIcw6oQb630デフォルトの名無しさん
2022/07/29(金) 10:49:05.42ID:jdcEhLWs 過去日本で広まった言語を見るとアメリカで流行ってからだいたい5年遅れで日本に広まる
今のアメリカの状況見れば日本でもRustが浸透するのは時間の問題だと思うよ
今のアメリカの状況見れば日本でもRustが浸透するのは時間の問題だと思うよ
631デフォルトの名無しさん
2022/07/29(金) 10:49:49.43ID:SkJ6g9PS Rustはメモリが安全だからな
632デフォルトの名無しさん
2022/07/29(金) 11:05:34.34ID:+Yq4rvz3633デフォルトの名無しさん
2022/07/29(金) 11:31:41.86ID:ML+JlgEx rustが気持ち悪いというより信者の選民思想がやばいわ。そういう言語は流行らん
634デフォルトの名無しさん
2022/07/29(金) 11:34:13.72ID:aU8JZHtJ 今現在C/C++を使ってない人はRustを無視していいよ
勉強してもどうせ使わないよ
勉強してもどうせ使わないよ
635デフォルトの名無しさん
2022/07/29(金) 11:47:52.27ID:0tQmABQP メモリ自動解放なプログラミング言語で高速な言語がRustしかないけど
Rustを使っていて慣れてきたら非常に便利でプログラミングしやすい言語だと分かってきた
開発効率が上がるわけだと納得
Rustを使っていて慣れてきたら非常に便利でプログラミングしやすい言語だと分かってきた
開発効率が上がるわけだと納得
636デフォルトの名無しさん
2022/07/29(金) 11:48:22.21ID:WUKGFXgB 気持ち悪さをもうすこし具体的に分析してみてよ
お気持ちだけ言われても議論にならん
お気持ちだけ言われても議論にならん
637デフォルトの名無しさん
2022/07/29(金) 11:50:44.03ID:7qUIzVbZ フクオジは確かにキモチワルイ
Rust使ってる身としてはこういうやつは消えてほしい
Rust使ってる身としてはこういうやつは消えてほしい
638デフォルトの名無しさん
2022/07/29(金) 11:51:43.26ID:47SIIXKm639デフォルトの名無しさん
2022/07/29(金) 12:12:59.08ID:q4ocpYlW >>638
Windowsアプリの安定性が上がることはMSにとって十分なメリットがある
今はGCを避けようとすれば、MFCしか選択肢がない
これにRust+Win32が選択肢に加われば、
開発者もユーザーもMSもみんなwin-winだと思うけどな
Windowsアプリの安定性が上がることはMSにとって十分なメリットがある
今はGCを避けようとすれば、MFCしか選択肢がない
これにRust+Win32が選択肢に加われば、
開発者もユーザーもMSもみんなwin-winだと思うけどな
640デフォルトの名無しさん
2022/07/29(金) 12:33:18.20ID:tOqM8gS+ MSはもう自社言語にこだわって無くない?
VSCodeのJava拡張とかMSが提供してるくらいだし
Azure使ってくれればなんでもいいのでは
VSCodeのJava拡張とかMSが提供してるくらいだし
Azure使ってくれればなんでもいいのでは
641デフォルトの名無しさん
2022/07/29(金) 12:34:59.20ID:SkJ6g9PS じゃあlinuxもmacOSもandroidもiosもRustをメインに使えばwin-winじゃん
楽しみだなあ
楽しみだなあ
642デフォルトの名無しさん
2022/07/29(金) 13:11:50.16ID:jt8KW6vh >>638
あえて教えてやるけどC++もMSが作ったんじゃないんだぜ。
あえて教えてやるけどC++もMSが作ったんじゃないんだぜ。
643デフォルトの名無しさん
2022/07/29(金) 14:12:18.97ID:47SIIXKm644デフォルトの名無しさん
2022/07/29(金) 16:38:45.38ID:idOVuMm7 Code::Blocks + wxWidgets
645デフォルトの名無しさん
2022/07/29(金) 17:53:11.03ID:pZ+qmh4r >>643
MFC相当なのはWinUI3が妥当でしょ
新しく別に作る必要もない
まだ不具合はあるけど、バージョン1.0がリリースされてるようだよ
これがRustに対応したらいいだけじゃね?
それにRust for Windowsもある
MFC相当なのはWinUI3が妥当でしょ
新しく別に作る必要もない
まだ不具合はあるけど、バージョン1.0がリリースされてるようだよ
これがRustに対応したらいいだけじゃね?
それにRust for Windowsもある
646デフォルトの名無しさん
2022/07/29(金) 17:53:19.31ID:1YBbzHzx C#使ってるような人にもRustを押し付けるなら、GC必要だと思います。
647デフォルトの名無しさん
2022/07/29(金) 17:56:23.42ID:pZ+qmh4r648デフォルトの名無しさん
2022/07/29(金) 18:33:58.37ID:A4eriK/j649デフォルトの名無しさん
2022/07/29(金) 18:54:27.51ID:gYD9mcR9 遅いから流行らないのでは?
650デフォルトの名無しさん
2022/07/29(金) 19:00:13.10ID:fUMXhqEW651デフォルトの名無しさん
2022/07/29(金) 19:01:18.72ID:HcmmeRJK >>646
C#使ってるような人って一口にいっても全く異なる3つの層がある
そのうち一番技術力の低い層はRustみたいな言語を使うことにはまずならない
C#使ってるのもVS+GUIフレームワークのおまけ
C#使ってるような人って一口にいっても全く異なる3つの層がある
そのうち一番技術力の低い層はRustみたいな言語を使うことにはまずならない
C#使ってるのもVS+GUIフレームワークのおまけ
652デフォルトの名無しさん
2022/07/29(金) 19:04:17.53ID:gYD9mcR9 PHPより速くなれば流行るのでは?
653デフォルトの名無しさん
2022/07/29(金) 19:04:55.75ID:gYD9mcR9 RustのライバルはPHPだと思います。
654デフォルトの名無しさん
2022/07/29(金) 19:05:05.90ID:47SIIXKm655デフォルトの名無しさん
2022/07/29(金) 19:05:27.58ID:9Ryq8AOh C#はSaaS系とゲーム系と業務系がいて、業務系を除けばスキルは高い
656デフォルトの名無しさん
2022/07/29(金) 19:06:02.67ID:A4eriK/j657デフォルトの名無しさん
2022/07/29(金) 19:12:08.53ID:gYD9mcR9 >>656
うちの環境ではPHPより速い!と言い張ってる人が一人いるだけでしょ。
うちの環境ではPHPより速い!と言い張ってる人が一人いるだけでしょ。
658デフォルトの名無しさん
2022/07/29(金) 19:25:21.19ID:nPzGnkgm carbonのが速いとかなったら発狂しそうだなrust信者
659デフォルトの名無しさん
2022/07/29(金) 19:43:45.36ID:7fuXYmQf <Rustアンチ死亡のお知らせ>
Meta(旧facebook)がRustをサーバーサイド言語に採用
旧来C++が使用されてきた領域にRustを用いていく模様
https://engineering.fb.com/2022/07/27/developer-tools/programming-languages-endorsed-for-server-side-use-at-meta/
Meta(旧facebook)がRustをサーバーサイド言語に採用
旧来C++が使用されてきた領域にRustを用いていく模様
https://engineering.fb.com/2022/07/27/developer-tools/programming-languages-endorsed-for-server-side-use-at-meta/
660デフォルトの名無しさん
2022/07/29(金) 19:45:53.55ID:gYD9mcR9 フェイスブックが採用したらオワコンでは?
661デフォルトの名無しさん
2022/07/29(金) 19:46:54.87ID:gYD9mcR9 オワコンどころかディスコン。
新規設計には非推奨。
新規設計には非推奨。
662デフォルトの名無しさん
2022/07/29(金) 19:51:06.76ID:aU8JZHtJ Facebookが採用した言語を数えてみろよ笑
663デフォルトの名無しさん
2022/07/29(金) 20:00:46.59ID:47SIIXKm >>658
そのレベルだと言語と言うより処理系の最適化度合いの差になるだろうな
そのレベルだと言語と言うより処理系の最適化度合いの差になるだろうな
664デフォルトの名無しさん
2022/07/29(金) 20:00:56.02ID:gYD9mcR9 >>662
あんたもしかして伝説のスーパーコリアン、朴さんかい?
あんたもしかして伝説のスーパーコリアン、朴さんかい?
665デフォルトの名無しさん
2022/07/29(金) 20:22:38.90ID:9nWBxo2F >>643
有償なのにC++は広まったということだ。
有償なのにC++は広まったということだ。
666デフォルトの名無しさん
2022/07/29(金) 20:59:03.95ID:6gcgNyrj C「そんなに早くしたいんならワイを使えばいいだけやん
667デフォルトの名無しさん
2022/07/29(金) 21:15:37.97ID:lSGvRf0K668デフォルトの名無しさん
2022/07/29(金) 21:18:08.60ID:Jb8ywqQ6 Mozila財団ブラウザではGoogleに負けたけど言語では勝ってるね
669デフォルトの名無しさん
2022/07/29(金) 21:24:30.33ID:47SIIXKm >>665
で、何が言いたいの?w
で、何が言いたいの?w
670デフォルトの名無しさん
2022/07/29(金) 21:28:14.46ID:7fuXYmQf まじでNimがGC標準搭載したの痛恨のミスだろ
あれがなきゃ今頃Rustの位置にNimいたんじゃないの
NimのほうがシンタックスすきなんだけどRustやらざる負えないわな
あれがなきゃ今頃Rustの位置にNimいたんじゃないの
NimのほうがシンタックスすきなんだけどRustやらざる負えないわな
671デフォルトの名無しさん
2022/07/29(金) 21:37:38.73ID:6gcgNyrj GCありのほうがラクでしょ
まかせっきりの完全自動のほうがラク
今更 shared_ptr / weak_ptr をシコシコ使い分けたい?
まかせっきりの完全自動のほうがラク
今更 shared_ptr / weak_ptr をシコシコ使い分けたい?
672デフォルトの名無しさん
2022/07/29(金) 22:10:14.12ID:7fuXYmQf GCがないほうが高速だからシステムプログラミング言語はGCがないほうがいいって認識だった
でもD言語の公式ではGCのほうが全体的に高速に動作するとある
もしD言語公式が正しいならNim最強じゃねえか
でもD言語の公式ではGCのほうが全体的に高速に動作するとある
もしD言語公式が正しいならNim最強じゃねえか
673デフォルトの名無しさん
2022/07/29(金) 22:12:45.43ID:gYD9mcR9 JavaはC++の20倍速いってサイト無くなっちゃったね。
674デフォルトの名無しさん
2022/07/29(金) 22:51:36.99ID:FbazT+JV JavaはVM上で動いているから、昔のコンピューターなら少し遅くて当然。
C++なんてオブジェクト指向プログラミングをすれば、遅くなるのも当たり前。
C++なんてオブジェクト指向プログラミングをすれば、遅くなるのも当たり前。
675デフォルトの名無しさん
2022/07/29(金) 23:03:16.63ID:A4eriK/j 抽象的に記述ができる&記述することで遅くなることはないよ
676デフォルトの名無しさん
2022/07/29(金) 23:17:38.43ID:FbazT+JV >>675
高水準言語と速度は完全なトレードオフの関係だよ
高水準言語と速度は完全なトレードオフの関係だよ
677デフォルトの名無しさん
2022/07/29(金) 23:20:57.60ID:ML+JlgEx >>675
こういうバカって最近多いな。
こういうバカって最近多いな。
678デフォルトの名無しさん
2022/07/30(土) 00:21:22.07ID:ubkbv7J1679デフォルトの名無しさん
2022/07/30(土) 00:39:25.79ID:jLcNrHr1680デフォルトの名無しさん
2022/07/30(土) 00:47:59.08ID:YI8isAMR サーバサイドやOSのそういう分野はRust
後は別の言語
後は別の言語
681デフォルトの名無しさん
2022/07/30(土) 00:49:11.37ID:7D+RM/xA >>672
領域をこまめに解放するより、あとになってからまとめて解放する方が全体的な性能は良いでしょうよ。
領域をこまめに解放するより、あとになってからまとめて解放する方が全体的な性能は良いでしょうよ。
682デフォルトの名無しさん
2022/07/30(土) 00:56:14.93ID:vZ7IHR0I どうせRustなんて流行らずに消えるよ
サーバーサイドで使う理由が無い
Goもそうだけど何かこういう変な独自性がある自己満足言語は消える
サーバーサイドで使う理由が無い
Goもそうだけど何かこういう変な独自性がある自己満足言語は消える
683デフォルトの名無しさん
2022/07/30(土) 01:06:34.71ID:7D+RM/xA 大企業がバックについて広めようとしたら広まるよ。
C++なんてあんなヘンテコな言語が広まったのもMSが広めたようなもんだし。
当初はSTLも無かったからな。
C++なんてあんなヘンテコな言語が広まったのもMSが広めたようなもんだし。
当初はSTLも無かったからな。
684デフォルトの名無しさん
2022/07/30(土) 01:13:21.06ID:vZ7IHR0I C++は言うほどヘンテコでも無くね?
Cを使っていれば構造体にメソッドが追加出来るだけぐらいなもんだし
クラスの継承やら仮想関数みたいなC++の要素はあるけど別に使わなくてもいいし
今まで使わずに書いてて何の問題も無かった訳で
むしろSTLやらそういう余計な要素がヘンテコみたいに思える原因では?
後はMSの独自拡張とかな
Cを使っていれば構造体にメソッドが追加出来るだけぐらいなもんだし
クラスの継承やら仮想関数みたいなC++の要素はあるけど別に使わなくてもいいし
今まで使わずに書いてて何の問題も無かった訳で
むしろSTLやらそういう余計な要素がヘンテコみたいに思える原因では?
後はMSの独自拡張とかな
685デフォルトの名無しさん
2022/07/30(土) 01:30:32.56ID:GJbGwXKe >>684
構造体にメソッドを追加というのはC言語そのものだぞ。
構造体に関数へのポインタを持たせるのは、よくゲームプログラムのキャラクタに使われた。
C言語はOSの進化についていけなかった。C++だとコード量を一気に減らせる。
オープンソースソフトウェアだと、ほぼC++で作られている。C言語で高度なものを作る時代なんてとっくに終わっている。
構造体にメソッドを追加というのはC言語そのものだぞ。
構造体に関数へのポインタを持たせるのは、よくゲームプログラムのキャラクタに使われた。
C言語はOSの進化についていけなかった。C++だとコード量を一気に減らせる。
オープンソースソフトウェアだと、ほぼC++で作られている。C言語で高度なものを作る時代なんてとっくに終わっている。
686デフォルトの名無しさん
2022/07/30(土) 01:34:19.10ID:zk4vAp+v >>681
どこを解放すべきか事前にわかってるならね
どこを解放すべきか事前にわかってるならね
687デフォルトの名無しさん
2022/07/30(土) 01:41:46.71ID:GJbGwXKe おまえら、解放するかどうかはOS次第だから、あまり解放と言わない方がいい。
語弊がある。
語弊がある。
688デフォルトの名無しさん
2022/07/30(土) 02:10:34.73ID:EFDLI0My >>676
ゼロコスト抽象化が可能なことも多い
だから抽象的に書くと常に遅くなるわけではない
そして遅くならない抽象的な書き方が可能ならそれをなるべくした方が好ましい
また遅くならない抽象的な書き方をできることの多いプログラミング言語を使った方が好ましい
更に、差が非常にわずかならば少しだけ遅くなりうる抽象化であっても生産性や保守面から抽象的に書いた方が好ましい
ゼロコスト抽象化が可能なことも多い
だから抽象的に書くと常に遅くなるわけではない
そして遅くならない抽象的な書き方が可能ならそれをなるべくした方が好ましい
また遅くならない抽象的な書き方をできることの多いプログラミング言語を使った方が好ましい
更に、差が非常にわずかならば少しだけ遅くなりうる抽象化であっても生産性や保守面から抽象的に書いた方が好ましい
689デフォルトの名無しさん
2022/07/30(土) 02:16:12.90ID:EFDLI0My690デフォルトの名無しさん
2022/07/30(土) 03:26:11.17ID:GJbGwXKe >>688
だから多少、遅くなることはデメリットではないと自分で言ってしまっているじゃないか。
だから多少、遅くなることはデメリットではないと自分で言ってしまっているじゃないか。
691デフォルトの名無しさん
2022/07/30(土) 03:28:20.76ID:GJbGwXKe692デフォルトの名無しさん
2022/07/30(土) 03:57:27.65ID:5b4tKXes693デフォルトの名無しさん
2022/07/30(土) 04:45:42.22ID:EFDLI0My >>691
レイヤ切り分けが出来ていないのは致命的
プログラミング言語を用いるプログラマーとしては言語が提供する何らかのアロケータへ言語が提供する機構により引き渡されれば「解放」はおしまい
アロケータ内部のメモリ管理もOSへの各種システムコールもOSによるメモリ管理もいずれも詳細を知らずともプログラミングできる
レイヤの切り分けが明確になされているから他のレイヤの内部の仕組みに依存せず扱える
レイヤ切り分けが出来ていないのは致命的
プログラミング言語を用いるプログラマーとしては言語が提供する何らかのアロケータへ言語が提供する機構により引き渡されれば「解放」はおしまい
アロケータ内部のメモリ管理もOSへの各種システムコールもOSによるメモリ管理もいずれも詳細を知らずともプログラミングできる
レイヤの切り分けが明確になされているから他のレイヤの内部の仕組みに依存せず扱える
694デフォルトの名無しさん
2022/07/30(土) 06:17:34.81ID:PTbJKKoA どれだけ言い訳しようとも、RustがPHPに負けた事実は覆らない。
695デフォルトの名無しさん
2022/07/30(土) 06:17:46.92ID:KSdXIpAO そのうちnim風Rust出てくるんじゃない?
Rust初心者お断りだし、つけ入る隙はあるかと。
Rust初心者お断りだし、つけ入る隙はあるかと。
696デフォルトの名無しさん
2022/07/30(土) 06:27:42.95ID:H9aJG6PT697デフォルトの名無しさん
2022/07/30(土) 06:32:28.04ID:zHogqexf698デフォルトの名無しさん
2022/07/30(土) 06:41:15.45ID:KSdXIpAO699デフォルトの名無しさん
2022/07/30(土) 07:15:11.54ID:SG/QuGLs700デフォルトの名無しさん
2022/07/30(土) 07:22:44.08ID:niU/nXdl701デフォルトの名無しさん
2022/07/30(土) 07:35:49.92ID:PTbJKKoA Rustは速さではなく精密さを目指しているのです。
したがってPHPに負けたことは問題になりません。
したがってPHPに負けたことは問題になりません。
702デフォルトの名無しさん
2022/07/30(土) 07:56:05.87ID:gpkGfFAa703デフォルトの名無しさん
2022/07/30(土) 07:59:49.65ID:aLG5Mg1K >>695
Rustは非GC言語の中で最も初心者向けでしょ
メモリ解放は自動だし完全なnull安全やデータ競合安全などRustは初心者でも困らないようになっているよ
あとプログラミングをしやすいことも大きいね
Rustは非GC言語の中で最も初心者向けでしょ
メモリ解放は自動だし完全なnull安全やデータ競合安全などRustは初心者でも困らないようになっているよ
あとプログラミングをしやすいことも大きいね
704デフォルトの名無しさん
2022/07/30(土) 08:24:37.30ID:22goHl66 負けたっていいじゃない。にんげんだもの。
705デフォルトの名無しさん
2022/07/30(土) 08:24:59.98ID:wHG6g3qw Facebook(現Meta)が本格的にRust利用を広げるってよ
サーバーサイドとツール類にRust採用らしい
https://engineering.fb.com/2022/07/27/developer-tools/programming-languages-endorsed-for-server-side-use-at-meta/
サーバーサイドとツール類にRust採用らしい
https://engineering.fb.com/2022/07/27/developer-tools/programming-languages-endorsed-for-server-side-use-at-meta/
706デフォルトの名無しさん
2022/07/30(土) 08:30:05.00ID:PTbJKKoA PHPで大きくなったのにな。
Rustで小さくなるのかな。
Rustで小さくなるのかな。
707デフォルトの名無しさん
2022/07/30(土) 08:55:54.39ID:1qBADAB3 レトロゲーは永久保存され
クラウドはサービス終了する
クラウドとはそういうもの
クラウドはサービス終了する
クラウドとはそういうもの
708デフォルトの名無しさん
2022/07/30(土) 09:19:48.59ID:nZbTiPiA >>705
Rustのプログラミング生産性の高さから当然そういう流れになっていくわな
Rustのプログラミング生産性の高さから当然そういう流れになっていくわな
709デフォルトの名無しさん
2022/07/30(土) 09:29:11.23ID:YI8isAMR >>705
多分ザッカーバーグはRust使えないと思うわ
多分ザッカーバーグはRust使えないと思うわ
710デフォルトの名無しさん
2022/07/30(土) 09:54:29.08ID:zHogqexf いきなりどうした?
ザッカーバーグがrust使う必要なんてないだろ
ザッカーバーグがrust使う必要なんてないだろ
711デフォルトの名無しさん
2022/07/30(土) 10:01:43.95ID:5YkC3TrK >>705
そのように多くの分野で今後じわじわとRustが主流になっていくのだろう
そのように多くの分野で今後じわじわとRustが主流になっていくのだろう
712デフォルトの名無しさん
2022/07/30(土) 10:03:14.41ID:BLhd9RDX 生産性はGoが最強
ソースはKubernetesやGoogleなど大規模なソフトウェアで使われててコンテナ周りのツールはほぼGo製であること
生産性を考えたらGC言語であることは必須である
ソースはKubernetesやGoogleなど大規模なソフトウェアで使われててコンテナ周りのツールはほぼGo製であること
生産性を考えたらGC言語であることは必須である
713デフォルトの名無しさん
2022/07/30(土) 10:13:42.65ID:5YkC3TrK714デフォルトの名無しさん
2022/07/30(土) 10:35:49.96ID:ubkbv7J1 facebookなら、大規模だから効率性にコスト割いても効果があるし、維持する為の人も確保できるだろうし、いいじゃん。
715デフォルトの名無しさん
2022/07/30(土) 11:02:06.99ID:BLhd9RDX >>713
なんかそういうデータあるんですか?それってあなたの感想ですよね?
なんかそういうデータあるんですか?それってあなたの感想ですよね?
716デフォルトの名無しさん
2022/07/30(土) 11:07:03.94ID:ekgh2oqS Rustは書きやすさと保守性の良さがええね
717デフォルトの名無しさん
2022/07/30(土) 11:16:02.54ID:BN91FBRx 悔しかったらrustでdockerなりkubernetesなり作ったらいいのに。
できないよね?
できないよね?
718デフォルトの名無しさん
2022/07/30(土) 11:16:50.46ID:YI8isAMR え?
Rustは学びにくく書きにくく保守しにくいんだけど
もしかしてc++なんかと比較してる?
Rustは学びにくく書きにくく保守しにくいんだけど
もしかしてc++なんかと比較してる?
719デフォルトの名無しさん
2022/07/30(土) 11:17:59.70ID:BLhd9RDX ちなみにGoが広く使われているソースね
https://landscape.cncf.io/
有名なのを適当に上げるだけでも
prometheus,helm,vitess,jaeger,argocd,istio,influxdb
とか最近のコンテナ・クラウド周りのツールはほとんどGo製だね
Rustはあまり使われてないな、使われているにしてもリソース効率やパフォーマンスがシビアなソフトウェアであって
これは生産性を犠牲にしコストを払ったうえでリソース効率やパフォーマンスを追い求めて選択しているようなソフトウェアしかない
リソース効率やパフォーマンスより生産性を重視する場合はRustがGoに勝ることは100%ありえない
当たり前ながらGC言語が生産性で勝ることはないから、ソフトウェアの特性によってRustが適していることがあるのであって
Rust信者が全てGoを置き換えるとか吹聴しているの見ると笑ってしまうわ
https://landscape.cncf.io/
有名なのを適当に上げるだけでも
prometheus,helm,vitess,jaeger,argocd,istio,influxdb
とか最近のコンテナ・クラウド周りのツールはほとんどGo製だね
Rustはあまり使われてないな、使われているにしてもリソース効率やパフォーマンスがシビアなソフトウェアであって
これは生産性を犠牲にしコストを払ったうえでリソース効率やパフォーマンスを追い求めて選択しているようなソフトウェアしかない
リソース効率やパフォーマンスより生産性を重視する場合はRustがGoに勝ることは100%ありえない
当たり前ながらGC言語が生産性で勝ることはないから、ソフトウェアの特性によってRustが適していることがあるのであって
Rust信者が全てGoを置き換えるとか吹聴しているの見ると笑ってしまうわ
720デフォルトの名無しさん
2022/07/30(土) 11:30:44.56ID:oF6V4sWv クラウド周りと相性いいのはgoroutineが便利だから
Goはエラーハンドリングどうにかしてくれないと仕方なく使うことはあっても積極的に使う気にはなれない
Goはエラーハンドリングどうにかしてくれないと仕方なく使うことはあっても積極的に使う気にはなれない
721デフォルトの名無しさん
2022/07/30(土) 11:54:45.44ID:m0SGpnW3 Rust作った人(Graydon Hoare)より
Go作った人(ケン・トンプソン)のほうが賢くて偉大だよね
Go作った人(ケン・トンプソン)のほうが賢くて偉大だよね
722デフォルトの名無しさん
2022/07/30(土) 12:07:35.65ID:1qBADAB3 多神教を許さない者だけが二者択一しなさい
723デフォルトの名無しさん
2022/07/30(土) 12:09:21.35ID:m0SGpnW3 腕が四本頭脳が二個あったら二つ言語選んでいいと思うけど
724デフォルトの名無しさん
2022/07/30(土) 12:10:40.26ID:YI8isAMR そんなことを言いだしたら
結局人類はjavascriptかcの二択になってしまう
この二つは今のところ替えが効かない
そんなの嫌だ
結局人類はjavascriptかcの二択になってしまう
この二つは今のところ替えが効かない
そんなの嫌だ
725デフォルトの名無しさん
2022/07/30(土) 12:12:50.66ID:v+3Xyc3D C++がウンコすぎるからGoが活躍する余地があった
726デフォルトの名無しさん
2022/07/30(土) 12:33:28.27ID:s2073y24 >>700
オブジェクト生成が多くなると、GC実行コストよりメモリ領域確保・解放コストの方が高くなるという話があったかと思うけど、どこだか忘れた。
スタックの話をするなら、Javaとかでもエスケープ解析してスタック利用していると思うけど。どうなのかね?
オブジェクト生成が多くなると、GC実行コストよりメモリ領域確保・解放コストの方が高くなるという話があったかと思うけど、どこだか忘れた。
スタックの話をするなら、Javaとかでもエスケープ解析してスタック利用していると思うけど。どうなのかね?
727デフォルトの名無しさん
2022/07/30(土) 12:50:07.02ID:zwdjEDGk728デフォルトの名無しさん
2022/07/30(土) 12:51:57.77ID:s2073y24 そういや、c/c++みたいにスタックに置くインスタンスとヒープに置くインスタンスを区別する言語てどれくらいあるのかしらん?
729デフォルトの名無しさん
2022/07/30(土) 12:54:04.01ID:EF2/0cvh Rustさえ使えばメモリは安心安全
730デフォルトの名無しさん
2022/07/30(土) 12:57:52.28ID:YI8isAMR >>729
コードが書き終わるかどうかは保証なし
コードが書き終わるかどうかは保証なし
731デフォルトの名無しさん
2022/07/30(土) 13:03:07.00ID:s2073y24732デフォルトの名無しさん
2022/07/30(土) 13:09:33.66ID:/CjwjaIl Haskellになれるんなら上出来じゃん
733デフォルトの名無しさん
2022/07/30(土) 13:11:20.56ID:YI8isAMR もうHaskellでしかコード書かないとかいう記事がいっぱいあったけど
あの人たちどうしたん?
副作用とかのご高説投げ飛ばして
もうRustでしかコード書かないって言ってそうなんだけど
あの人たちどうしたん?
副作用とかのご高説投げ飛ばして
もうRustでしかコード書かないって言ってそうなんだけど
734デフォルトの名無しさん
2022/07/30(土) 13:18:47.71ID:ZTMi/t93 ここまで全然次世代言語の話無し
735デフォルトの名無しさん
2022/07/30(土) 13:26:07.79ID:lvsm0et/ >>727
アロケータの性能が問題になる場合はc/c++はそれ専用のアロケータモジュールを自前で用意するのが普通。
アロケータの性能が問題になる場合はc/c++はそれ専用のアロケータモジュールを自前で用意するのが普通。
736デフォルトの名無しさん
2022/07/30(土) 13:34:22.66ID:PTbJKKoA >>733
上位互換のRustへ移行したのでは?
上位互換のRustへ移行したのでは?
737デフォルトの名無しさん
2022/07/30(土) 13:41:46.57ID:YBnrvLJY >>734
このスレはRustゴブリンやGoゴブリンに乗っ取られたのでシン・次世代言語スレを建ててそこでちゃんとした次世代言語の話に花を咲かせればよいのでは。
このスレはRustゴブリンやGoゴブリンに乗っ取られたのでシン・次世代言語スレを建ててそこでちゃんとした次世代言語の話に花を咲かせればよいのでは。
738デフォルトの名無しさん
2022/07/30(土) 13:45:54.51ID:PTbJKKoA だから5chで次世代言語と言えば織田信長しかないのに、なんで無視するのさ。
739デフォルトの名無しさん
2022/07/30(土) 14:03:54.41ID:7y/PdVwP だって君たちFlixもGleamもスルーするじゃん……
740デフォルトの名無しさん
2022/07/30(土) 14:15:21.87ID:YI8isAMR ファッションプログラマはいりません
741デフォルトの名無しさん
2022/07/30(土) 14:23:08.85ID:PTbJKKoA >>740
ファッションプログラマで検索してみると、株式会社オプトの人事部インタビューが出てきた。
ずいぶん上からなご意見をお持ちのようで、これじゃあ利益を上げる優秀な人間は採用できないだろうと思った。
ファッションプログラマで検索してみると、株式会社オプトの人事部インタビューが出てきた。
ずいぶん上からなご意見をお持ちのようで、これじゃあ利益を上げる優秀な人間は採用できないだろうと思った。
742デフォルトの名無しさん
2022/07/30(土) 14:43:34.19ID:5b4tKXes >>739
話題を振ってください
話題を振ってください
743デフォルトの名無しさん
2022/07/30(土) 15:02:59.30ID:v+3Xyc3D 次世代言語といえばPonyが良いと思うよ
744デフォルトの名無しさん
2022/07/30(土) 15:04:59.08ID:v+3Xyc3D PonyはRustよりも安全
データ競合だけでなく、デッドロック、実行時例外が起きないことも保証されてる
データ競合だけでなく、デッドロック、実行時例外が起きないことも保証されてる
745デフォルトの名無しさん
2022/07/30(土) 15:08:15.54ID:PTbJKKoA 良いかもしれんね。
746デフォルトの名無しさん
2022/07/30(土) 15:23:50.77ID:jrTi3WXO >>735
arenaで検索してね
arenaで検索してね
747デフォルトの名無しさん
2022/07/30(土) 15:27:43.89ID:1qBADAB3748デフォルトの名無しさん
2022/07/30(土) 15:34:56.21ID:YI8isAMR 昔聞いた話
大隈重信が若いころ
字を書くのは自分が一番上手だ誰にも負けないと吹聴していた
ある時明らかに自分より上手な人が現れてそれでもう字は書かない
書かないから下手もクソもないって言いだして残りの人生で字を書かなかった
大隈重信が若いころ
字を書くのは自分が一番上手だ誰にも負けないと吹聴していた
ある時明らかに自分より上手な人が現れてそれでもう字は書かない
書かないから下手もクソもないって言いだして残りの人生で字を書かなかった
749デフォルトの名無しさん
2022/07/30(土) 15:38:59.20ID:5b4tKXes750デフォルトの名無しさん
2022/07/30(土) 15:39:13.75ID:ubkbv7J1 >>729
メモリ安全は、CやC++みたいな代替になり得る言語に対してはアピールになるけれど、GC有り言語に対しては、意味ないよね。
メモリ安全は、CやC++みたいな代替になり得る言語に対してはアピールになるけれど、GC有り言語に対しては、意味ないよね。
751デフォルトの名無しさん
2022/07/30(土) 15:58:08.34ID:1qBADAB3 並行並列マルチタスクに対してはGCがアピールになりにくい
ブラウザのクッキーを消してもサーバー側のゴミは消えないから
ブラウザのクッキーを消してもサーバー側のゴミは消えないから
752デフォルトの名無しさん
2022/07/30(土) 15:59:01.24ID:KHG8L45z >>750
メモリリークは「メモリ安全」だから仕様としてカバーしないおまけ付き。
メモリリークは「メモリ安全」だから仕様としてカバーしないおまけ付き。
753デフォルトの名無しさん
2022/07/30(土) 16:19:21.47ID:JJS+3w9D >>750
GC言語ならNull安全機構が現代言語の基礎機能
GC言語ならNull安全機構が現代言語の基礎機能
754デフォルトの名無しさん
2022/07/30(土) 16:34:35.02ID:3yfXvlmT755デフォルトの名無しさん
2022/07/30(土) 18:48:59.58ID:PTbJKKoA ジョジョかよ。
756デフォルトの名無しさん
2022/07/30(土) 19:17:35.02ID:7D+RM/xA GCあり言語はもうお腹いっぱいなのでGC無しorGC制御できる言語で頼みますわ。
757デフォルトの名無しさん
2022/07/30(土) 19:20:31.68ID:PTbJKKoA C++はメモリー管理を自由に変更できる。
しかし、GCはほとんど使われていない。
ということは、メモリー云々はほとんど需要がないのでは?
しかし、GCはほとんど使われていない。
ということは、メモリー云々はほとんど需要がないのでは?
758デフォルトの名無しさん
2022/07/30(土) 19:33:32.66ID:2sMkvp6M759デフォルトの名無しさん
2022/07/30(土) 20:34:13.98ID:1qBADAB3 C++以外のOOPでは、null安全は実装継承のボーナスみたいな感じ
実装継承を使わなければ無駄なポインタが増える
スタックガーヒープガーと同じ理屈で実装継承を使う方が勝つ
実装継承を使わなければ無駄なポインタが増える
スタックガーヒープガーと同じ理屈で実装継承を使う方が勝つ
760デフォルトの名無しさん
2022/07/30(土) 20:52:20.28ID:BN91FBRx その欠点のある言語のが有名な基盤ソフトを作ってることについてもっと頭を使って考えようね。
761デフォルトの名無しさん
2022/07/30(土) 21:13:52.36ID:SZsGBOts Goは並行並列プログラミングを特殊化したC言語って感じ
今さらそんな貧弱な言語を使うのはヤダ
今さらそんな貧弱な言語を使うのはヤダ
762デフォルトの名無しさん
2022/07/30(土) 21:26:41.67ID:YNdaXkm1 >>758
ところがNull安全は本当に絶対必須でしょうか?あなたのコードはmatchでキチンとNoneを考慮しているでしょうか?
ログあるいはコンソールにメッセージを出し、終了あるいはpanicしているだけではありませんか?
言うほど熟練のプログラマになればなるほどNull安全など、どうでも良い事を「次世代」と言うことに疑問を感じるものです
ニワカと、口だけ雄弁で高い志と低い能力を持つものは、大変に有難がる
本当のNull安全の意味は、それはNoneでもNilでもなく、関数型言語のように変数の宣言と初期化が同時一体になっている言語のことです。
関数型言語の真似をするプログラミング言語が手続き型言語が増えていますが、
Result/Optionなどというプログラミング例外からの反動から来た戻り値の粘着的統一誇るようなNullが存在できない言語を
次世代言語と呼ぶのは*甚だ*滑稽でもあります
ところがNull安全は本当に絶対必須でしょうか?あなたのコードはmatchでキチンとNoneを考慮しているでしょうか?
ログあるいはコンソールにメッセージを出し、終了あるいはpanicしているだけではありませんか?
言うほど熟練のプログラマになればなるほどNull安全など、どうでも良い事を「次世代」と言うことに疑問を感じるものです
ニワカと、口だけ雄弁で高い志と低い能力を持つものは、大変に有難がる
本当のNull安全の意味は、それはNoneでもNilでもなく、関数型言語のように変数の宣言と初期化が同時一体になっている言語のことです。
関数型言語の真似をするプログラミング言語が手続き型言語が増えていますが、
Result/Optionなどというプログラミング例外からの反動から来た戻り値の粘着的統一誇るようなNullが存在できない言語を
次世代言語と呼ぶのは*甚だ*滑稽でもあります
763デフォルトの名無しさん
2022/07/30(土) 21:32:41.56ID:YI8isAMR764デフォルトの名無しさん
2022/07/30(土) 21:32:55.93ID:xwnMTwge765デフォルトの名無しさん
2022/07/30(土) 21:54:11.36ID:RPaCgO4f >>717
OCIコンテナはRust実装あるよ
OCIコンテナはRust実装あるよ
766デフォルトの名無しさん
2022/07/30(土) 22:09:21.95ID:MuK8+gHd 言うほどGo流行ってないけどな
それに使われてる理由は言語がシンプルだからじゃないんだよな
それに使われてる理由は言語がシンプルだからじゃないんだよな
767デフォルトの名無しさん
2022/07/30(土) 22:15:12.45ID:PnFWbFUc >>762
Rustを叩くならRustをもう少しちゃんと学ぼうよ
RustのNoneはOption<T>型
つまりT型の変数にNoneは絶対に代入できない
コンパイル時点で静的にNull安全が保証される
もちろん最近の言語は当然備えている必須の性質(退化しているGoを除く)
Rustを叩くならRustをもう少しちゃんと学ぼうよ
RustのNoneはOption<T>型
つまりT型の変数にNoneは絶対に代入できない
コンパイル時点で静的にNull安全が保証される
もちろん最近の言語は当然備えている必須の性質(退化しているGoを除く)
768デフォルトの名無しさん
2022/07/30(土) 23:25:28.07ID:zHogqexf > 本当のNull安全の意味は、それはNoneでもNilでもなく、関数型言語のように変数の宣言と初期化が同時一体になっている言語のことです。
とかアホなこと言ってる自称熟練プログラマの相手すんなよ...
とかアホなこと言ってる自称熟練プログラマの相手すんなよ...
769デフォルトの名無しさん
2022/07/31(日) 00:03:18.44ID:yCe0hy+/ >>767
Noneが代入できる・できないなんて話はしていない。Noneを正確に処理しているかという話をしている、「コンパイル時点で静的に」なんて話もしていない。
Nullを表すことが出来ないという話をしている
Noneが代入できる・できないなんて話はしていない。Noneを正確に処理しているかという話をしている、「コンパイル時点で静的に」なんて話もしていない。
Nullを表すことが出来ないという話をしている
770デフォルトの名無しさん
2022/07/31(日) 00:26:51.03ID:FStFDS54771デフォルトの名無しさん
2022/07/31(日) 00:34:03.03ID:AhwAlAAo >>768
その難解?な文章が理解てきるなんておまえスゴイナー
その難解?な文章が理解てきるなんておまえスゴイナー
772デフォルトの名無しさん
2022/07/31(日) 01:13:59.69ID:1Fc8vI4A >>769
普通の型(ポインタや数値や文字列など全て)がNullを表すことができないのがNull安全
Null安全な言語でNullを表すときは元の普通の型に対して特殊なNullableな型を用いる
そしてNullableな型はNullableを外して元の普通の型にしないとNullableなままでは元の型として使えない
つまり元の型とは別の型となっているためコンパイラが静的にエラーとすることができる
具体的にはRustならぱ元の普通の型Tに対してNullableな型はOption<T>となりNullはNoneと表記するNull安全な言語
このように表記は異なるがSwiftやKotlinなどもNull安全な言語
一方でGoはNullをnilと表記するがそのnilがそのままポインタなどに代入可能
つまり実行時にヌルポ参照のランタイムパニックが起きるNull安全でない言語
普通の型(ポインタや数値や文字列など全て)がNullを表すことができないのがNull安全
Null安全な言語でNullを表すときは元の普通の型に対して特殊なNullableな型を用いる
そしてNullableな型はNullableを外して元の普通の型にしないとNullableなままでは元の型として使えない
つまり元の型とは別の型となっているためコンパイラが静的にエラーとすることができる
具体的にはRustならぱ元の普通の型Tに対してNullableな型はOption<T>となりNullはNoneと表記するNull安全な言語
このように表記は異なるがSwiftやKotlinなどもNull安全な言語
一方でGoはNullをnilと表記するがそのnilがそのままポインタなどに代入可能
つまり実行時にヌルポ参照のランタイムパニックが起きるNull安全でない言語
773デフォルトの名無しさん
2022/07/31(日) 04:44:43.27ID:pdOIFS3A C++20のコンセプトのほうが色々使えて良いのでは?
774デフォルトの名無しさん
2022/07/31(日) 05:29:20.33ID:21uzlcdA >>772
>具体的にはRustならぱ元の普通の型Tに対してNullableな型はOption<T>となりNullはNoneと表記するNull安全な言語
なんだよこの説明w
おっさんもNull安全の意味わかってねーじゃん
長文書く度に墓穴掘るな
>具体的にはRustならぱ元の普通の型Tに対してNullableな型はOption<T>となりNullはNoneと表記するNull安全な言語
なんだよこの説明w
おっさんもNull安全の意味わかってねーじゃん
長文書く度に墓穴掘るな
775デフォルトの名無しさん
2022/07/31(日) 06:15:29.02ID:j7G9Xjcb >>774
KotlinやSwiftといったNull安全な言語は全て同じその方式だぜ
T型にNullは許容されず、Nullable<T>型にのみNullを許容
両者の型を厳格に区別することでNull安全を保証
Nullable<T>型は言語毎に記述が異なり「T?」型だったりOption<T>型だったり様々
KotlinやSwiftといったNull安全な言語は全て同じその方式だぜ
T型にNullは許容されず、Nullable<T>型にのみNullを許容
両者の型を厳格に区別することでNull安全を保証
Nullable<T>型は言語毎に記述が異なり「T?」型だったりOption<T>型だったり様々
776デフォルトの名無しさん
2022/07/31(日) 06:33:53.74ID:pdOIFS3A その程度ならtype_traitsで十分では?
777デフォルトの名無しさん
2022/07/31(日) 06:53:26.13ID:j7G9Xjcb C++は何でもあるとともに、ほとんどの機能は皆に使われない、失敗した言語
言語の機能は有効に洗練して採り入れてこそ、初めて意味を持つことを示した反面教師
Null安全に関しては、言語としてNull許容を制限できなければ意味を持たず、C++はもちろんNull安全ではない
言語の機能は有効に洗練して採り入れてこそ、初めて意味を持つことを示した反面教師
Null安全に関しては、言語としてNull許容を制限できなければ意味を持たず、C++はもちろんNull安全ではない
778デフォルトの名無しさん
2022/07/31(日) 07:06:06.96ID:pdOIFS3A でも、C++そのものは、みんなに使われてるよね?
Rustが足元にすら近づけないほどに。
Rustが足元にすら近づけないほどに。
779デフォルトの名無しさん
2022/07/31(日) 07:13:07.41ID:UwyiR8NW780デフォルトの名無しさん
2022/07/31(日) 07:16:07.63ID:pdOIFS3A C++で使われない機能を主役にした言語を作っても使われないのでは?
実際、使われていないし。
実際、使われていないし。
781デフォルトの名無しさん
2022/07/31(日) 07:19:03.47ID:pdOIFS3A なんだかんだ言ってC++は強力で便利なんだよな。
自分のやりたいことが実現できる。
何でもできるのは良くないことだから機能を制限するのは理論的に正しいのかもしれない。
しかしそれが使われるようになるのは難しいと思う。
自分のやりたいことが実現できる。
何でもできるのは良くないことだから機能を制限するのは理論的に正しいのかもしれない。
しかしそれが使われるようになるのは難しいと思う。
782デフォルトの名無しさん
2022/07/31(日) 07:36:22.56ID:kBDjWwI8 >>781
C++が失敗したから山のように様々な言語が出来てきた
C++は何でも出来るのではなく整理されていない後付け機能が多数あるだけ
ようやくC++と同じ速度で動く諸言語が出揃ったので過去からの蓄積維持を除いて今後はC++を使うメリットは全く無い
C++が失敗したから山のように様々な言語が出来てきた
C++は何でも出来るのではなく整理されていない後付け機能が多数あるだけ
ようやくC++と同じ速度で動く諸言語が出揃ったので過去からの蓄積維持を除いて今後はC++を使うメリットは全く無い
783デフォルトの名無しさん
2022/07/31(日) 07:50:16.84ID:pdOIFS3A C++はあからさまに成功した言語だと思いますが。
784デフォルトの名無しさん
2022/07/31(日) 08:06:27.82ID:yP580+hE ++してないC言語は今でも組込みやらカーネル界隈では現役バリバリだけど
C++として使ってるものに関しては必ずしもC++でやらなきゃいけないわけじゃないんだよな
C++として使ってるものに関しては必ずしもC++でやらなきゃいけないわけじゃないんだよな
785デフォルトの名無しさん
2022/07/31(日) 08:29:01.99ID:ytAzHhbq みんなの共通認識
C言語は1階平屋の素朴だけど長く住めるしっかりした家
C++はそこへ2階3階とどんどん縦へ建て増し横にも増築と違法建築状態のダメな家
部屋は大量に増えたけど住みにくいので使われていない部屋が多数
C言語は1階平屋の素朴だけど長く住めるしっかりした家
C++はそこへ2階3階とどんどん縦へ建て増し横にも増築と違法建築状態のダメな家
部屋は大量に増えたけど住みにくいので使われていない部屋が多数
786デフォルトの名無しさん
2022/07/31(日) 08:29:30.15ID:UwyiR8NW787デフォルトの名無しさん
2022/07/31(日) 10:36:19.32ID:MJ3nboxa788デフォルトの名無しさん
2022/07/31(日) 12:12:18.58ID:pdOIFS3A C++20のコンセプトのほうが良いのでは?
789デフォルトの名無しさん
2022/07/31(日) 12:13:40.14ID:FStFDS54 C++にborrow checkerがあればC++でもいいかもな
790デフォルトの名無しさん
2022/07/31(日) 12:15:54.80ID:pdOIFS3A 静的解析ツール使えば良いだけでは?
791デフォルトの名無しさん
2022/07/31(日) 12:20:57.48ID:rndY06V7792デフォルトの名無しさん
2022/07/31(日) 12:24:56.81ID:pdOIFS3A 静的解析ツールなら、コンパイラとは次元の違うレポートを得られる。
793デフォルトの名無しさん
2022/07/31(日) 12:28:11.09ID:XG1p6vz6 静的解析ツールタダじゃないじゃん。やたら時間もかかるし。
794デフォルトの名無しさん
2022/07/31(日) 12:58:08.09ID:UwyiR8NW795デフォルトの名無しさん
2022/07/31(日) 13:06:46.97ID:QQQkQO80 なんで仕事でもないのにC++使うんだろ
何にも意味がないのに
何にも意味がないのに
796デフォルトの名無しさん
2022/07/31(日) 13:21:03.75ID:jgEDwA8h 高抽象度なものはC++向けのインターフェースしか提供されてなくて、自前でCからのFFIラッパー書かなきゃないけないけど書きたくないからかな……
797デフォルトの名無しさん
2022/07/31(日) 13:29:59.32ID:FStFDS54 既存のOSSがC++が多いからな
みんなRustに移植されてればいいのに
みんなRustに移植されてればいいのに
798デフォルトの名無しさん
2022/07/31(日) 13:35:33.83ID:pdOIFS3A >>795
何でもできるからでは?
何でもできるからでは?
799デフォルトの名無しさん
2022/07/31(日) 13:38:21.32ID:pdOIFS3A 極端な話、高位合成によってC/C++をハードウェア記述に使うことが当たり前に行われているけども、Rustでは無理でしょう。
800デフォルトの名無しさん
2022/07/31(日) 13:39:24.24ID:hztgN1yG でもRustはメモリが安全だよ
801デフォルトの名無しさん
2022/07/31(日) 13:41:40.43ID:pdOIFS3A 2021年秋にRustへの移行を発表して以来、Metaの時価総額はどんどん下がってますしね。
市場の評価は正直だと思いますよ。
市場の評価は正直だと思いますよ。
802デフォルトの名無しさん
2022/07/31(日) 13:44:03.00ID:QQQkQO80 >>797
いうほどC++のOSSって多くないような…
いうほどC++のOSSって多くないような…
803デフォルトの名無しさん
2022/07/31(日) 13:45:52.08ID:pdOIFS3A Rustへ移行する。
↓
お花畑系か?
↓
企業価値が下がる。
当然の成り行き。
↓
お花畑系か?
↓
企業価値が下がる。
当然の成り行き。
804デフォルトの名無しさん
2022/07/31(日) 13:55:24.43ID:QQQkQO80 メタクエスト2とか1.5倍以上に値上げするのを発表したばかり
売り上げが下がってもおかしくない
売り上げが下がってもおかしくない
805デフォルトの名無しさん
2022/07/31(日) 13:56:08.98ID:pdOIFS3A https://trends.google.co.jp/trends/explore?q=%2Fm%2F0dsbpg6,%2Fm%2F0jgqg
どうやらRustは日本でだけ突出して関心を集めてるようだけど。
どうやらRustは日本でだけ突出して関心を集めてるようだけど。
806デフォルトの名無しさん
2022/07/31(日) 13:59:52.84ID:QQQkQO80 メモリリークするかもしれないC++を使う理由は本当にあるのか?
pythonやjavaやC#
それか次世代言語使えばいいじゃないか?
C++使う意味は本当に薄れてる
pythonやjavaやC#
それか次世代言語使えばいいじゃないか?
C++使う意味は本当に薄れてる
807デフォルトの名無しさん
2022/07/31(日) 14:03:41.92ID:pdOIFS3A 誰か仕掛け人がいるんだろうな。
地域を日本に限定すると、6月初めに急激に検索ボリュームが増えて、その後低下し始める。
この時、何かがあったのであろう。
本の宣伝のためにQiitaで記事を書くとか、5chでスレ立てとか。
他の国では一貫してGoのようなライバルより検索ボリュームが低い。
10倍とかではなく、たとえばGoと比較すると、Rustは100倍ほど検索ボリュームが低い。
ところが日本では6月に一時的とはいえ、RustがGoを超える。
100倍の差を乗り越えて。
韓国面に落ちてそう。
地域を日本に限定すると、6月初めに急激に検索ボリュームが増えて、その後低下し始める。
この時、何かがあったのであろう。
本の宣伝のためにQiitaで記事を書くとか、5chでスレ立てとか。
他の国では一貫してGoのようなライバルより検索ボリュームが低い。
10倍とかではなく、たとえばGoと比較すると、Rustは100倍ほど検索ボリュームが低い。
ところが日本では6月に一時的とはいえ、RustがGoを超える。
100倍の差を乗り越えて。
韓国面に落ちてそう。
808デフォルトの名無しさん
2022/07/31(日) 14:06:22.51ID:uG3GBCfz 令和にもなってC++マンセーする低能クソジャップさん…w
809デフォルトの名無しさん
2022/07/31(日) 14:08:34.98ID:pdOIFS3A Rust、C++、Goで比較すると、地域によって関心度がはっきりと色分けされる。
北米、中国、オーストラリアはGoの関心度が高い。
欧州、カナダ、ロシア、日本はC++の関心度が高い。
ただし、Rustの色はどこにもつかない。(百分の一のボリュームしかないから。)
北米、中国、オーストラリアはGoの関心度が高い。
欧州、カナダ、ロシア、日本はC++の関心度が高い。
ただし、Rustの色はどこにもつかない。(百分の一のボリュームしかないから。)
810デフォルトの名無しさん
2022/07/31(日) 14:33:18.26ID:3aGOnqYZ YouTube で有名な雑食系エンジニア・KENTA は、
初心者のキャリアパスは、Ruby on Rails → Go だけと言ってる。
Laravel, Django を使わないように言ってる
Rust, Elixir は、普及のキャズムを越えなかった。
越えたのはGoだけ
でも、Stack Overflow では、Rust, Elixirの人気がトップ。
めちゃめちゃw
初心者をRust, Elixirの仕事で使うわけない
TIOBE は、Rubyは難しすぎて滅ぶから使ってはいけないと言ってる。
KENTA天敵・モローも、YouTubeで言ってた。
Rubyは滅ぶ。これからはJava・PHP の時代だと
それが今になって急に、Railsのキャリア相談までやり出したw
Java・PHPのSES・客先の仕事はどうなったの?w
YouTubeのモローの動画。
【2022年版】Ruby on Railsの将来性
初心者のキャリアパスは、Ruby on Rails → Go だけと言ってる。
Laravel, Django を使わないように言ってる
Rust, Elixir は、普及のキャズムを越えなかった。
越えたのはGoだけ
でも、Stack Overflow では、Rust, Elixirの人気がトップ。
めちゃめちゃw
初心者をRust, Elixirの仕事で使うわけない
TIOBE は、Rubyは難しすぎて滅ぶから使ってはいけないと言ってる。
KENTA天敵・モローも、YouTubeで言ってた。
Rubyは滅ぶ。これからはJava・PHP の時代だと
それが今になって急に、Railsのキャリア相談までやり出したw
Java・PHPのSES・客先の仕事はどうなったの?w
YouTubeのモローの動画。
【2022年版】Ruby on Railsの将来性
811デフォルトの名無しさん
2022/07/31(日) 14:37:31.33ID:qRvFCaIs812デフォルトの名無しさん
2022/07/31(日) 15:52:49.59ID:KfEgiHCF Haskellいいよね
813デフォルトの名無しさん
2022/07/31(日) 15:57:42.86ID:QQQkQO80 えっ
814デフォルトの名無しさん
2022/07/31(日) 16:00:43.28ID:UwyiR8NW >>799
それはそう言う処理系がまだ作られてないだけで技術的にできない理由はないと思うけど?
それはそう言う処理系がまだ作られてないだけで技術的にできない理由はないと思うけど?
815デフォルトの名無しさん
2022/07/31(日) 16:19:34.85ID:swJh8Av0 >>807
それゲームのほうのRustやで
それゲームのほうのRustやで
816デフォルトの名無しさん
2022/07/31(日) 16:58:04.44ID:pdOIFS3A >>815
プログラミング言語のRustと指定できるのですよ。
プログラミング言語のRustと指定できるのですよ。
817デフォルトの名無しさん
2022/07/31(日) 17:02:31.12ID:CJiuqKJm >>816
ゲームの方のRustで6月頃にYoutuber向けのイベント?か何かがあって急激に検索が増えている
逆に言語の方は特に増える要因はない
つまり「プログラミング言語のRust」という指定でも指定しきれていないということ
ゲームの方のRustで6月頃にYoutuber向けのイベント?か何かがあって急激に検索が増えている
逆に言語の方は特に増える要因はない
つまり「プログラミング言語のRust」という指定でも指定しきれていないということ
818デフォルトの名無しさん
2022/07/31(日) 17:08:43.44ID:g6mgJ8gi Google Trendsの詳細データがわからないしなんともいえんね
「日本の友達に聞いたらみんなRust好きって言ってたもん」程度の信頼性
「日本の友達に聞いたらみんなRust好きって言ってたもん」程度の信頼性
819デフォルトの名無しさん
2022/07/31(日) 17:25:45.61ID:CJiuqKJm まぁなんともいえんのはそう
とはいえGoogle検索に影響するほどバズったQiita記事やら5chスレなんていう
存在しないものを仮定するよりはゲームの影響を排除できてない
と見るほうが自然だろう
とはいえGoogle検索に影響するほどバズったQiita記事やら5chスレなんていう
存在しないものを仮定するよりはゲームの影響を排除できてない
と見るほうが自然だろう
820デフォルトの名無しさん
2022/07/31(日) 17:27:41.53ID:Y9nAVmbr キミらって井戸端会議みたいなん好きよね
どっちが人気あるとかどーのとか
技術的な話してるやつ少ないね
どっちが人気あるとかどーのとか
技術的な話してるやつ少ないね
821デフォルトの名無しさん
2022/07/31(日) 17:35:17.35ID:pdOIFS3A >>817
トレンド見たならわかると思うけど、Rustなんて世界では全く注目されていなくて存在しないも同然。
しかし、5chではRust推しが異様に多くないか?
トレンドではGoが注目を浴びていて、Rustは存在しないも同然だぞ。
やはり、日本は特殊なのでは?
トレンド見たならわかると思うけど、Rustなんて世界では全く注目されていなくて存在しないも同然。
しかし、5chではRust推しが異様に多くないか?
トレンドではGoが注目を浴びていて、Rustは存在しないも同然だぞ。
やはり、日本は特殊なのでは?
822デフォルトの名無しさん
2022/07/31(日) 17:40:54.26ID:pdOIFS3A そもそもRustは使いたいと思うような特徴が無いんだよな。
何か理由があってRust推ししてる人が、たかだか数人いる状況では?
例えばセミナー商法始めたとか。
何か理由があってRust推ししてる人が、たかだか数人いる状況では?
例えばセミナー商法始めたとか。
823デフォルトの名無しさん
2022/07/31(日) 17:55:36.40ID:SahQ8VsR824デフォルトの名無しさん
2022/07/31(日) 17:55:42.92ID:pdOIFS3A Rust本の著者とかが怪しいな。
825デフォルトの名無しさん
2022/07/31(日) 17:57:48.82ID:SahQ8VsR826デフォルトの名無しさん
2022/07/31(日) 17:58:52.41ID:5HP0foYy 最近はAIだの大規模分散処理だのk8sだの、小手先のプログラミング技術よりもずっと上位のレイヤばかりが注目される風潮があったから、
久々にプログラミング言語だけでマウント取れるチャンスが来て嬉しいんだろう
小手先のコードで難しい風のことをやるのが好きな割にそんなに頭良くないからHaskellとか本質的な概念の難しさでマウント取れるほどでもない、Scalaとかあのへんの人達
久々にプログラミング言語だけでマウント取れるチャンスが来て嬉しいんだろう
小手先のコードで難しい風のことをやるのが好きな割にそんなに頭良くないからHaskellとか本質的な概念の難しさでマウント取れるほどでもない、Scalaとかあのへんの人達
827デフォルトの名無しさん
2022/07/31(日) 18:01:52.52ID:pdOIFS3A もしかして統一教会がRustの取り扱い始めたのか?
日本だけなんだかおかしいぞ?
日本だけなんだかおかしいぞ?
828デフォルトの名無しさん
2022/07/31(日) 18:13:00.39ID:ZX6dnszB コンパイル通れば全部オッケー、ランタイム速度最高!みたいなのが子供ウケいいんだよ。
829デフォルトの名無しさん
2022/07/31(日) 18:14:29.51ID:pdOIFS3A PHPより遅いのにか。
830デフォルトの名無しさん
2022/07/31(日) 19:08:26.53ID:qRvFCaIs831デフォルトの名無しさん
2022/07/31(日) 20:26:31.89ID:4ur5gTNi >>826
ダウンロードできる成果物 (コンパイラ等) が最上位のレイヤーだと思うよ
マウントしても物は増えないのに何が嬉しいんだろうか
物欲がない人なのか
あるいは物欲を捨てなければならないと信じているのか
ダウンロードできる成果物 (コンパイラ等) が最上位のレイヤーだと思うよ
マウントしても物は増えないのに何が嬉しいんだろうか
物欲がない人なのか
あるいは物欲を捨てなければならないと信じているのか
832デフォルトの名無しさん
2022/07/31(日) 20:45:35.96ID:HfV8iC7X >>831
最上位のレイヤは成果物の運用でしょ
仮にハリボテシステムで人間が裏で手動で操作してたとしても、
それでビジネス目標が達成できていてシステム作るより早く安上がりに構築運用できるならそのほうが良い
最上位のレイヤは成果物の運用でしょ
仮にハリボテシステムで人間が裏で手動で操作してたとしても、
それでビジネス目標が達成できていてシステム作るより早く安上がりに構築運用できるならそのほうが良い
833デフォルトの名無しさん
2022/07/31(日) 21:15:03.74ID:fu2FWHQK834デフォルトの名無しさん
2022/07/31(日) 22:01:58.99ID:4ur5gTNi >>832
他人の目標を変更させるのは困難だから人間は少ない方がいい
他人の目標を変更させるのは困難だから人間は少ない方がいい
835デフォルトの名無しさん
2022/07/31(日) 22:53:26.31ID:BbMxlT50 もともとRubyで作られていたプロダクトで実行速度の改善が必要となった場合
代替言語としてGoではなくCrystalが採用される流れになってほしい
代替言語としてGoではなくCrystalが採用される流れになってほしい
836デフォルトの名無しさん
2022/07/31(日) 23:54:15.32ID:L4Fpf8TN >>821
Stackoverflowは存在しなかったか
Stackoverflowは存在しなかったか
837デフォルトの名無しさん
2022/08/01(月) 00:18:15.12ID:0mZ68SoW838デフォルトの名無しさん
2022/08/01(月) 06:22:36.34ID:Mnuo77rk Rubyを選んでRustってセンスがなさすぎるわ。
839デフォルトの名無しさん
2022/08/01(月) 08:12:25.09ID:p2tKrs72 Rubyの代替ならNimだと思うわ。
RustはRubyのコンセプト (手軽なオブジェクト指向プログラミング)から遠すぎるわな。
RustはRubyのコンセプト (手軽なオブジェクト指向プログラミング)から遠すぎるわな。
840デフォルトの名無しさん
2022/08/01(月) 09:26:24.18ID:pETNc0gm Rubyの代替というか高速化のため従来Cで書いていた部分の置き換えなのでは
841デフォルトの名無しさん
2022/08/01(月) 09:31:38.40ID:gtXPpwlS Rubyの代替でgoとか言ってるの見たことあるな
個人的には疑問だったが
個人的には疑問だったが
842デフォルトの名無しさん
2022/08/01(月) 09:43:29.86ID:IeJPEKz9 web関連として使うなら普通にts使えと思うわ
843デフォルトの名無しさん
2022/08/01(月) 09:59:40.05ID:qGmq8aN9 Ruby屋にtsはないだろう
・優れた開発者体験で静的型陣営を勝利に導いた
・ランタイムのパフォーマンスは動的型でありながらRubyを圧倒
・Railsの公式言語でありRubyの思想を色濃く受け継いでいたCoffeeScriptを駆逐
・SPAの隆盛を支えRailsをオワコン化させた
Rubyの敗北の象徴みたいな言語なんだから
・優れた開発者体験で静的型陣営を勝利に導いた
・ランタイムのパフォーマンスは動的型でありながらRubyを圧倒
・Railsの公式言語でありRubyの思想を色濃く受け継いでいたCoffeeScriptを駆逐
・SPAの隆盛を支えRailsをオワコン化させた
Rubyの敗北の象徴みたいな言語なんだから
844デフォルトの名無しさん
2022/08/01(月) 10:57:22.59ID:fTUFEmPR tsはそろそろ不要だな
845デフォルトの名無しさん
2022/08/01(月) 11:15:13.18ID:IUF0b1bQ GoはランタイムにM:N threadingが統合されててシームレスに使えるってとこだけがとても良い
JavaScriptとかRubyはその辺ウンコすぎ
JavaScriptとかRubyはその辺ウンコすぎ
846デフォルトの名無しさん
2022/08/01(月) 12:01:33.28ID:y096ffFE >>845
Rustも同様にM:N threadingがシームレスに簡単に使えるようになったのでRustがおすすめ
Rustも同様にM:N threadingがシームレスに簡単に使えるようになったのでRustがおすすめ
847デフォルトの名無しさん
2022/08/01(月) 12:05:37.75ID:sGNBeuA5 >>846
あらゆるライブラリ通して共通のやり方で並行プログラミングできんの?
あらゆるライブラリ通して共通のやり方で並行プログラミングできんの?
848デフォルトの名無しさん
2022/08/01(月) 12:18:20.24ID:pETNc0gm849デフォルトの名無しさん
2022/08/01(月) 12:32:25.99ID:y096ffFE >>847
何を意味してその質問しているのかな
一般的に基盤として共通の枠組みと共通のインタフェースになるのは当たり前だし
その中でちゃんと目的毎に適した多様なパーツを提供しているのも当たり前だし
Goで出来てることは全て出来るし
Goより粒度の細かいこともできるのでRustがおすすめ
何を意味してその質問しているのかな
一般的に基盤として共通の枠組みと共通のインタフェースになるのは当たり前だし
その中でちゃんと目的毎に適した多様なパーツを提供しているのも当たり前だし
Goで出来てることは全て出来るし
Goより粒度の細かいこともできるのでRustがおすすめ
850デフォルトの名無しさん
2022/08/01(月) 12:37:14.24ID:y096ffFE >>848
それはもっと狭くGoのランタイムを選択してることになるから同じことであり説得力がない
それはもっと狭くGoのランタイムを選択してることになるから同じことであり説得力がない
851デフォルトの名無しさん
2022/08/01(月) 12:42:24.49ID:p2tKrs72852デフォルトの名無しさん
2022/08/01(月) 12:52:39.69ID:XdiV44rb853デフォルトの名無しさん
2022/08/01(月) 13:01:13.40ID:tnFadW7s854デフォルトの名無しさん
2022/08/01(月) 13:14:38.08ID:/SNhoAxJ >>846
大嘘くそ太郎
大嘘くそ太郎
855デフォルトの名無しさん
2022/08/01(月) 13:16:08.61ID:XSveJ/JR その分野ならRustが一番いいかな
所有権の取り扱いにミスがあればコンパイラが詳しく指摘してくれる
データ競合してるところがあればコンパイラが詳しく指摘してくれる
実行時エラー発生まで待たずに済み開発効率も高い
所有権の取り扱いにミスがあればコンパイラが詳しく指摘してくれる
データ競合してるところがあればコンパイラが詳しく指摘してくれる
実行時エラー発生まで待たずに済み開発効率も高い
856デフォルトの名無しさん
2022/08/01(月) 13:19:04.33ID:XSveJ/JR >>854
RustでもシームレスなM:Nスレッドが簡単に使えるよ
RustでもシームレスなM:Nスレッドが簡単に使えるよ
857デフォルトの名無しさん
2022/08/01(月) 13:24:02.26ID:/SNhoAxJ >>852
”チャネルによるデータの所有権の受け渡し”GoにもRustにもそんな概念はありませんが?おまえが考えたの?
”チャネルによるデータの所有権の受け渡し”GoにもRustにもそんな概念はありませんが?おまえが考えたの?
858デフォルトの名無しさん
2022/08/01(月) 13:41:40.37ID:wpl6Jivu >>856
Rustの標準ライブラリは、1:1スレッドの実装のみを提供しています。
さらに外部ライブラリでも、有名なものはかなり煩雑に書いてI/Oバウンドのものしか作れません、Rustの(多くのライブラリの)ポリシーとして勝手にタイマーなど時系列で特定の処理を実行しているCPUコアが切り替わったりしません。
これは大きいランタイムを嫌うからですが、kernelなどやハードウェアに近いものを書く分には良いですが、I/Oが詰まったら、他は実行できないでプログラム全体がフリーズします
これを”M:Nが簡単”というにはあまりに、お粗末であり、記述の煩雑さを見ても、”簡単に使える〇〇カラおすすめ”なんて人を騙すための背信行為です。
言語をススメたい、シェアを伸ばしたいと思うなら真摯で誠実になりなさい。
あんたに言ってもしょうがないけど、あと開発効率は全然高くない、コンパイル遅い、mut mutめんどくさい、いい加減改良しろや!ボケカスMozila!
Rustの標準ライブラリは、1:1スレッドの実装のみを提供しています。
さらに外部ライブラリでも、有名なものはかなり煩雑に書いてI/Oバウンドのものしか作れません、Rustの(多くのライブラリの)ポリシーとして勝手にタイマーなど時系列で特定の処理を実行しているCPUコアが切り替わったりしません。
これは大きいランタイムを嫌うからですが、kernelなどやハードウェアに近いものを書く分には良いですが、I/Oが詰まったら、他は実行できないでプログラム全体がフリーズします
これを”M:Nが簡単”というにはあまりに、お粗末であり、記述の煩雑さを見ても、”簡単に使える〇〇カラおすすめ”なんて人を騙すための背信行為です。
言語をススメたい、シェアを伸ばしたいと思うなら真摯で誠実になりなさい。
あんたに言ってもしょうがないけど、あと開発効率は全然高くない、コンパイル遅い、mut mutめんどくさい、いい加減改良しろや!ボケカスMozila!
859デフォルトの名無しさん
2022/08/01(月) 13:45:13.17ID:/T7zJm8q >>857
並列プログラミングでは常識
データの所有権を共有するか、共有を避けて所有権の受け渡しのみにするかなど、意識せざるを得ない
そのうちGoではデータの所有権を受け渡しをするチャネルの利用を推奨していて公式にも明記
Go公式ページ
https://github.com/golang/go/wiki/MutexOrChannel
Channel = passing ownership of data
並列プログラミングでは常識
データの所有権を共有するか、共有を避けて所有権の受け渡しのみにするかなど、意識せざるを得ない
そのうちGoではデータの所有権を受け渡しをするチャネルの利用を推奨していて公式にも明記
Go公式ページ
https://github.com/golang/go/wiki/MutexOrChannel
Channel = passing ownership of data
860デフォルトの名無しさん
2022/08/01(月) 14:06:14.34ID:dhRVNKzB >>857
言い方はオカシイ奴だけど、明確に所有権の概念のある言語から見たらそう見えるということは正しいだろう?
859の上に書いてある、channelがある言語によく聞くスレッドにまつわる話に
"Share memory by communicating, don't communicate by sharing memory."
「通信によってメモリを共有し、メモリを共有(して通信)しないで」というのが、golang的には正しいかもしれんが
golangだって実通信しているわけじゃなく、スレッド間のブロッキングの入るFIFOバッファへのデータのコピーに過ぎない
言い方はオカシイ奴だけど、明確に所有権の概念のある言語から見たらそう見えるということは正しいだろう?
859の上に書いてある、channelがある言語によく聞くスレッドにまつわる話に
"Share memory by communicating, don't communicate by sharing memory."
「通信によってメモリを共有し、メモリを共有(して通信)しないで」というのが、golang的には正しいかもしれんが
golangだって実通信しているわけじゃなく、スレッド間のブロッキングの入るFIFOバッファへのデータのコピーに過ぎない
861デフォルトの名無しさん
2022/08/01(月) 14:27:50.20ID:U9D47cKc >>858
本質を捉えらてないからそんな無駄な間違えた話になる
言語に関係なくGoでもRustでも、M:NのM部分つまりカーネルスレッドの標準起動数はCPUコアスレッド数と同じ最適化
これら全てを計算のみ実行し続けて強制奪取なくば塞ぐ使い方をM:Nですることは実際になく、仮にあったとしても容易に定期自主返納も可能だからフリーズを現実に起こすことはない
現実に影響する大きな違いは、Goroutineが個別にスタックを必要としてスタック切り替えコストもメモリコストもかかるのに対して、Rustタスクはスタックレスだから切り替えコストやメモリコストが生じない点
Rustではシンプルな状態マシンとしてそれを実現していて上手く機能している
本質を捉えらてないからそんな無駄な間違えた話になる
言語に関係なくGoでもRustでも、M:NのM部分つまりカーネルスレッドの標準起動数はCPUコアスレッド数と同じ最適化
これら全てを計算のみ実行し続けて強制奪取なくば塞ぐ使い方をM:Nですることは実際になく、仮にあったとしても容易に定期自主返納も可能だからフリーズを現実に起こすことはない
現実に影響する大きな違いは、Goroutineが個別にスタックを必要としてスタック切り替えコストもメモリコストもかかるのに対して、Rustタスクはスタックレスだから切り替えコストやメモリコストが生じない点
Rustではシンプルな状態マシンとしてそれを実現していて上手く機能している
862デフォルトの名無しさん
2022/08/01(月) 16:22:19.93ID:fWHteKMx >>861
>これら全てを計算のみ実行し続けて強制奪取なくば塞ぐ使い方をM:Nですることは実際になく
普通に?数千数万の要求に、並列・時分割でプログラムをCPUのコア数以上に動作させる要件は世界中にたくさんあるが?
多くの言語でOSスレッドがフリーズしたら、容易でもないし、定期自主返納なんてあり得ない。容易に自主返納するおまえの
コードの実力を見せてもらおうか?
ランタイムありのグリーンスレッドを提供している一部の言語の場合、スレッドの停止は致命ではないがRustは全くそうではない。
>Rustタスクはスタックレスだから切り替えコストやメモリコストが生じない点
OSスレッドにスタックが存在しない現代のOSはほぼ無い。
問題になるのはメモリやスタックにあるデータをスレッド間で共有したりメッセージパッシングしたりするときに、OSスレッドをまたいで
データやりとりしたり、排他ロックはコストが掛かるという話だけ。
そもそもグリーンスレッドはOSコンテキストスイッチを嫌ってそもそもスレッドを跨がない場合が多い。だからGoのメニーコア用の
M:Nランタイムは、他の糞のようなI/Oバウンドしか出来ない言語のライブラリより、遥かに軽量
切り替えコストやメモリコストが生じないのではなく、機能としてグリーンスレッドような存在がなく、軽量に切り替えるような事が
出来ないだけの出来ない尽くし、これはまったく誇れることではなくむしろ汚点
>Rustではシンプルな状態マシンとしてそれを実現していて上手く機能している
では、なぜシンプル・上手く機能なはずのRustにM:Nスケジューラーの実装標準搭載要望が多いのか?
>これら全てを計算のみ実行し続けて強制奪取なくば塞ぐ使い方をM:Nですることは実際になく
普通に?数千数万の要求に、並列・時分割でプログラムをCPUのコア数以上に動作させる要件は世界中にたくさんあるが?
多くの言語でOSスレッドがフリーズしたら、容易でもないし、定期自主返納なんてあり得ない。容易に自主返納するおまえの
コードの実力を見せてもらおうか?
ランタイムありのグリーンスレッドを提供している一部の言語の場合、スレッドの停止は致命ではないがRustは全くそうではない。
>Rustタスクはスタックレスだから切り替えコストやメモリコストが生じない点
OSスレッドにスタックが存在しない現代のOSはほぼ無い。
問題になるのはメモリやスタックにあるデータをスレッド間で共有したりメッセージパッシングしたりするときに、OSスレッドをまたいで
データやりとりしたり、排他ロックはコストが掛かるという話だけ。
そもそもグリーンスレッドはOSコンテキストスイッチを嫌ってそもそもスレッドを跨がない場合が多い。だからGoのメニーコア用の
M:Nランタイムは、他の糞のようなI/Oバウンドしか出来ない言語のライブラリより、遥かに軽量
切り替えコストやメモリコストが生じないのではなく、機能としてグリーンスレッドような存在がなく、軽量に切り替えるような事が
出来ないだけの出来ない尽くし、これはまったく誇れることではなくむしろ汚点
>Rustではシンプルな状態マシンとしてそれを実現していて上手く機能している
では、なぜシンプル・上手く機能なはずのRustにM:Nスケジューラーの実装標準搭載要望が多いのか?
863デフォルトの名無しさん
2022/08/01(月) 16:52:48.39ID:IUF0b1bQ なんか盛り上がってるな
おれはアクターモデルを安全に使いやすい言語が登場してほしい
おれはアクターモデルを安全に使いやすい言語が登場してほしい
864デフォルトの名無しさん
2022/08/01(月) 16:56:36.04ID:lJab6YiY ステートマシンの生成をゼロオーバーヘッドと言い張るのは流石に無理筋じゃないかね
ステートマシン手書きと同じというだけの言葉遊びやね
ステートマシン手書きと同じというだけの言葉遊びやね
865デフォルトの名無しさん
2022/08/01(月) 17:04:06.77ID:pETNc0gm >>864
rustが標榜してるのはzero cost abstractionで言わんとしてるのはまさにそういうことだよ
抽象化されたコード書いても手書きでステートマシン書くのと同じ性能特性になる
他の典型的な言語だとオーバーヘッドあるよね?という主張
長文レスは目が滑るから読んでないから的外れだったらスマン
rustが標榜してるのはzero cost abstractionで言わんとしてるのはまさにそういうことだよ
抽象化されたコード書いても手書きでステートマシン書くのと同じ性能特性になる
他の典型的な言語だとオーバーヘッドあるよね?という主張
長文レスは目が滑るから読んでないから的外れだったらスマン
866デフォルトの名無しさん
2022/08/01(月) 17:15:17.99ID:a+lwQcR6 グリーンスレッドは初期rubyのウリだったよね
マッツも誇らしげやったで
ワイもユーザとして誇らしかったのを覚えてる
マッツも誇らしげやったで
ワイもユーザとして誇らしかったのを覚えてる
867デフォルトの名無しさん
2022/08/01(月) 17:21:31.08ID:Ctxi9Kcc ここまでにponyおじさんが現れないことがそこはかとなく悲しい
868デフォルトの名無しさん
2022/08/01(月) 17:45:58.72ID:zlIOq9vz オブジェクト一つにつきスレッド一つ作れるようになったら
オブジェクト指向はただのマルチスレッド手続き型になってしまう
オブジェクト指向はただのマルチスレッド手続き型になってしまう
869デフォルトの名無しさん
2022/08/01(月) 18:38:15.71ID:xcPFI+XD Rustで実用的なソフトウェアを書くには、Java、C#、C/C++の5〜8倍ほどの労力が必要と言われてる。
870デフォルトの名無しさん
2022/08/01(月) 18:39:52.35ID:xcPFI+XD >>866
Linuxにスレッドがなかったからでは?
Linuxにスレッドがなかったからでは?
871デフォルトの名無しさん
2022/08/01(月) 18:42:48.07ID:Qe0j28fb ものりしっくですね
872デフォルトの名無しさん
2022/08/01(月) 18:44:36.03ID:xcPFI+XD グーグルトレンドによると、世界では存在感ゼロのRustが、日本では6月初めの一時期、Goを抜いたからね。
世界ではGoのほうが100倍ほど検索ボリュームがあるので、逆転はあり得ない。
なんか工作くせえ。
世界ではGoのほうが100倍ほど検索ボリュームがあるので、逆転はあり得ない。
なんか工作くせえ。
873デフォルトの名無しさん
2022/08/01(月) 18:46:31.09ID:xcPFI+XD スレッドがなかったころ、Linuxユーザーはスレッドの邪悪さを主張してて、Windowsはスレッドがあるからダメなんだとか言ってたのにな。
874デフォルトの名無しさん
2022/08/01(月) 19:15:06.90ID:gURUUmzn こいつKENTAおじさんと同じ病気だな
875デフォルトの名無しさん
2022/08/01(月) 20:02:40.94ID:xcPFI+XD ぶっちゃけ、C++が常に次世代言語では?
3年に一度改定され続けるんだし。
C++20は、C++11以来のメジャーバージョンアップと言えるのでは?
3年に一度改定され続けるんだし。
C++20は、C++11以来のメジャーバージョンアップと言えるのでは?
876デフォルトの名無しさん
2022/08/01(月) 20:06:43.75ID:zlIOq9vz 完全なコピーができるデータには
参照も参照カウントもGCも所有権もロックもスレッドも必要ない
プロセス間通信だけでいい
コピーを回避することが邪悪かどうかは知らんけど全ての元凶ではある
参照も参照カウントもGCも所有権もロックもスレッドも必要ない
プロセス間通信だけでいい
コピーを回避することが邪悪かどうかは知らんけど全ての元凶ではある
877デフォルトの名無しさん
2022/08/01(月) 20:18:48.94ID:xcPFI+XD ちょうどLinuxでスレッドが使えるようになったころ、世の中はC10K問題全盛期に入った。
しかし、Linuxユーザーはスレッドマンセーに宗旨替えしてしまい、C10Kには目もくれなくなってしまった。
そのころC++では、boostと黒魔術が広まりつつあり、5chではWTLなんかが流行ってた。
当然ながらC++では非同期が一つのキーワードであり、IOCPが関心を集めていた。
それがBoost.Asioへと繋がっていく。
しかし、Linuxユーザーはスレッドマンセーに宗旨替えしてしまい、C10Kには目もくれなくなってしまった。
そのころC++では、boostと黒魔術が広まりつつあり、5chではWTLなんかが流行ってた。
当然ながらC++では非同期が一つのキーワードであり、IOCPが関心を集めていた。
それがBoost.Asioへと繋がっていく。
878デフォルトの名無しさん
2022/08/01(月) 20:20:33.99ID:xcPFI+XD879デフォルトの名無しさん
2022/08/01(月) 20:27:15.17ID:XxSklYrz Tauriでデスクトップアプリ作りたくてRust始めようと思ったけど
なんかPythonやらNimやらもサポートされるらしい
じゃあRustやらなくていっか
なんかPythonやらNimやらもサポートされるらしい
じゃあRustやらなくていっか
880デフォルトの名無しさん
2022/08/01(月) 20:32:21.83ID:fIML+ep7 >>878
それ何てFORTH?
それ何てFORTH?
881デフォルトの名無しさん
2022/08/01(月) 20:36:12.25ID:xcPFI+XD C++11以前から見たら、C++20はやりたかったことが全てできるフルセットの言語になった。
もう使うしかないでしょコレ。
もう使うしかないでしょコレ。
882デフォルトの名無しさん
2022/08/01(月) 20:36:36.15ID:xcPFI+XD >>880
普通のFORTHです。
普通のFORTHです。
883デフォルトの名無しさん
2022/08/01(月) 20:38:40.87ID:OHxYp4mJ >>864
Rustプログラマーは抽象的に開発効率よく非同期プログラミングをすることができる
そこからステートマシンの生成は静的にコンパイラが自動的に行なう
手書きでステートマシンを最速化のために書いたのと同じ結果を得られる
プログラマーはそのステートマシンの存在を知る必要がない
実行時の付加コストもない
Rustプログラマーは抽象的に開発効率よく非同期プログラミングをすることができる
そこからステートマシンの生成は静的にコンパイラが自動的に行なう
手書きでステートマシンを最速化のために書いたのと同じ結果を得られる
プログラマーはそのステートマシンの存在を知る必要がない
実行時の付加コストもない
884デフォルトの名無しさん
2022/08/01(月) 20:40:36.23ID:xcPFI+XD その手のメタプログラミングするなら・・・
C++しかないでしょう!
C++しかないでしょう!
885デフォルトの名無しさん
2022/08/01(月) 20:46:52.01ID:xcPFI+XD 状態機械を作るときには、状態の圧縮が肝要なので、結局、外部のプログラムが必要になります。
必要にならないというのなら、せいぜい手書きと同レベルのものなんですよ。
必要にならないというのなら、せいぜい手書きと同レベルのものなんですよ。
886デフォルトの名無しさん
2022/08/01(月) 20:54:41.00ID:KVizZk4Y887デフォルトの名無しさん
2022/08/01(月) 20:56:30.57ID:xcPFI+XD >>886
よくわかんないので英語でお願いします。
よくわかんないので英語でお願いします。
888デフォルトの名無しさん
2022/08/01(月) 21:01:50.59ID:KVizZk4Y889デフォルトの名無しさん
2022/08/01(月) 21:06:27.96ID:xcPFI+XD std::unique_ptr<>使えば良いのでは?
890デフォルトの名無しさん
2022/08/01(月) 21:46:26.81ID:MtrpFMZN >>863
ス、ス、スウィ?
ス、ス、スウィ?
891デフォルトの名無しさん
2022/08/01(月) 21:48:32.95ID:DjsRD2G7 >>889
C++がダメな点はそれ
1. その面倒な指定が必要
2. それを使い忘れると実行時にアウト
3. 使い間違えると実行時にアウト
4. ムーブの指定なども記述が煩雑
5. それら全て正しく頑張っても所有権の問題を解決してるだけで参照の問題は解決できていない
C++は安全なメモリ自動解放がなされない欠陥言語
C++がダメな点はそれ
1. その面倒な指定が必要
2. それを使い忘れると実行時にアウト
3. 使い間違えると実行時にアウト
4. ムーブの指定なども記述が煩雑
5. それら全て正しく頑張っても所有権の問題を解決してるだけで参照の問題は解決できていない
C++は安全なメモリ自動解放がなされない欠陥言語
892デフォルトの名無しさん
2022/08/01(月) 21:49:39.23ID:SuXYGZGf893デフォルトの名無しさん
2022/08/01(月) 21:50:26.57ID:cpDeSwcY >>874
やっと気づいたの?
やっと気づいたの?
894デフォルトの名無しさん
2022/08/01(月) 21:53:44.40ID:xcPFI+XD895デフォルトの名無しさん
2022/08/01(月) 22:01:55.21ID:DjsRD2G7 >>894
そこで欠陥言語C++を使う意味が全く無い
そこで欠陥言語C++を使う意味が全く無い
896デフォルトの名無しさん
2022/08/01(月) 22:13:45.19ID:xcPFI+XD >>892
> ただし、このプログラム言語によって実用的なプログラムを作成するためには、
> C/C++/C#と比較して5〜10倍、Javaと比較して2〜3倍の労力を要する事は事実である。
と説明書に書いてあるよ?
> ただし、このプログラム言語によって実用的なプログラムを作成するためには、
> C/C++/C#と比較して5〜10倍、Javaと比較して2〜3倍の労力を要する事は事実である。
と説明書に書いてあるよ?
897デフォルトの名無しさん
2022/08/01(月) 22:40:21.87ID:67qbuqx0 Rust と言うゲームがあるみたい。
それで、Rustは言語ランキングが1位になるのかも
並行プログラミングでは、Elixir。
100GB ぐらいのメモリで、5,000万個の小プロセスが稼働する
Ruby on Rails と似ている
それで、Rustは言語ランキングが1位になるのかも
並行プログラミングでは、Elixir。
100GB ぐらいのメモリで、5,000万個の小プロセスが稼働する
Ruby on Rails と似ている
898デフォルトの名無しさん
2022/08/01(月) 22:46:46.79ID:Ctxi9Kcc Elixirは大元のErlangの実行が中々愉快なことになってるんだけどもそれを継承してるんだっけ?
899デフォルトの名無しさん
2022/08/01(月) 23:02:32.84ID:6UjeNpN/ >>896
それらのプログラミング言語で労力が10倍も変わるなんてありえない
変わるとしてもそのなぜか一緒にしているC/C++とC#の差が大きい程度
自動的にメモリ解放してくれないC/C++ではその分だけ労力がかかる
もちろんC#は多少労力が楽な分だけ遅くなるため優れていることを意味するわけではない
それらのプログラミング言語で労力が10倍も変わるなんてありえない
変わるとしてもそのなぜか一緒にしているC/C++とC#の差が大きい程度
自動的にメモリ解放してくれないC/C++ではその分だけ労力がかかる
もちろんC#は多少労力が楽な分だけ遅くなるため優れていることを意味するわけではない
900デフォルトの名無しさん
2022/08/01(月) 23:10:21.89ID:xcPFI+XD >>897
320GBのメモリーがあれば、国民一人一人にプロセスを与えられるね。
320GBのメモリーがあれば、国民一人一人にプロセスを与えられるね。
901デフォルトの名無しさん
2022/08/01(月) 23:11:24.47ID:xcPFI+XD >>899
いや、Rustなら10倍かかってもおかしくないでしょう。
いや、Rustなら10倍かかってもおかしくないでしょう。
902デフォルトの名無しさん
2022/08/01(月) 23:14:57.62ID:XSveJ/JR903デフォルトの名無しさん
2022/08/01(月) 23:16:39.89ID:xcPFI+XD キミは何でIDが変わるの?
904デフォルトの名無しさん
2022/08/01(月) 23:25:18.49ID:0OfTpNey 労力って使える人材探し始めてから完成するまでの時間でしょ?
Rust使える人を見つける時間考えたら、他の言語選んだ方が圧倒的に早くて安いよ
Rust使える人を見つける時間考えたら、他の言語選んだ方が圧倒的に早くて安いよ
905デフォルトの名無しさん
2022/08/01(月) 23:39:41.39ID:XSveJ/JR >>904
次世代言語スレでそれは意味のない話ですね
Rustも他の言語も使える普通の人にとって開発効率もその実行生産性も最も高い言語がRust
そしてRustコンパイラの親切さにより誰でもRustを使えるようになるところも大きなポイント
古き概念のみに固執して学習に失敗した人を除きみんなが学習に成功しています
次世代言語スレでそれは意味のない話ですね
Rustも他の言語も使える普通の人にとって開発効率もその実行生産性も最も高い言語がRust
そしてRustコンパイラの親切さにより誰でもRustを使えるようになるところも大きなポイント
古き概念のみに固執して学習に失敗した人を除きみんなが学習に成功しています
906デフォルトの名無しさん
2022/08/01(月) 23:39:51.69ID:zlIOq9vz オリジナルよりパクリの方が時間は短い
時刻はオリジナルの方が早い
時刻はオリジナルの方が早い
907デフォルトの名無しさん
2022/08/01(月) 23:43:41.81ID:QBiSvFw1908デフォルトの名無しさん
2022/08/01(月) 23:45:10.83ID:6UjeNpN/909デフォルトの名無しさん
2022/08/02(火) 00:00:32.68ID:4QK2QLWC あとメモリ効率ってそんなに大事なことなの?
OSや組み込みなど低レイヤーならわかるけど
高いコストを払ってまで得られる価値はないことが多いのでは?今までGC言語が流行ってきたわけだが?
むしろIOやCPUがボトルネックになる方が大半でメモリ効率がいいことによって恩恵が得られるケースってほとんどないのでは?
OSや組み込みなど低レイヤーならわかるけど
高いコストを払ってまで得られる価値はないことが多いのでは?今までGC言語が流行ってきたわけだが?
むしろIOやCPUがボトルネックになる方が大半でメモリ効率がいいことによって恩恵が得られるケースってほとんどないのでは?
910デフォルトの名無しさん
2022/08/02(火) 00:03:12.51ID:mFGD+3ik >>907
マジで知らんのか?
それはRustが新しい言語だから
Rustの大きな強みの並行プログラミングがまともに使えるようになったのが2019年から2020年にかけて
そしてその効率と実用性が幅広く確認されたためIT大手各社が共同でRust Foundationを設立したのが2021年
プログラム言語史上でも初めてIT大手各社が揃って共同で支持するほどの革命的な言語
マジで知らんのか?
それはRustが新しい言語だから
Rustの大きな強みの並行プログラミングがまともに使えるようになったのが2019年から2020年にかけて
そしてその効率と実用性が幅広く確認されたためIT大手各社が共同でRust Foundationを設立したのが2021年
プログラム言語史上でも初めてIT大手各社が揃って共同で支持するほどの革命的な言語
911デフォルトの名無しさん
2022/08/02(火) 00:05:28.81ID:mFGD+3ik912デフォルトの名無しさん
2022/08/02(火) 00:13:54.99ID:4QK2QLWC GC言語の方が生産性高いのでは?
GC言語より生産性が高い根拠は?
異常に速いとか言っておきながら単語カウントとかその辺にあるベンチマークでGoやNimに普通に負けることがあるのはなんで?
大手が採用しているのはあくまでもOS開発など低レイヤー用途でグーグルとかはサーバーサイドがGoで書かれているようだけどそれをRustにするという話はどこにも出ていないね
低レイヤー以外だとMetaとDiscordぐらいで日本でRust採用してる企業は特に存在しないね
グーグルトレンド見ればわかるようにRustは全然流行っていないな
GC言語より生産性が高い根拠は?
異常に速いとか言っておきながら単語カウントとかその辺にあるベンチマークでGoやNimに普通に負けることがあるのはなんで?
大手が採用しているのはあくまでもOS開発など低レイヤー用途でグーグルとかはサーバーサイドがGoで書かれているようだけどそれをRustにするという話はどこにも出ていないね
低レイヤー以外だとMetaとDiscordぐらいで日本でRust採用してる企業は特に存在しないね
グーグルトレンド見ればわかるようにRustは全然流行っていないな
913デフォルトの名無しさん
2022/08/02(火) 00:19:52.75ID:4QK2QLWC GoogleやMicrosoftはOSやカーネル開発でRustを採用することにしたらしいが
OSやカーネルやコンパイラだとかを開発しているエンジニアって全体の何%ぐらいだと思ってんの?
Rustは一部の数%程度の少数向けに向いているってのが事実だけど
ここにいるRust信者は他のあらゆるプログラミング用途でRustが最強で既存言語を置き換えていくとかほざいているわけだが
何の根拠もない妄想でしかないわ
適材適所って言葉を知らない無能
MetaとDiscord以外で採用している有名企業あげてみろや
OSやカーネルやコンパイラだとかを開発しているエンジニアって全体の何%ぐらいだと思ってんの?
Rustは一部の数%程度の少数向けに向いているってのが事実だけど
ここにいるRust信者は他のあらゆるプログラミング用途でRustが最強で既存言語を置き換えていくとかほざいているわけだが
何の根拠もない妄想でしかないわ
適材適所って言葉を知らない無能
MetaとDiscord以外で採用している有名企業あげてみろや
914デフォルトの名無しさん
2022/08/02(火) 00:25:19.06ID:/i6BuvyD ネットに嘘が多いのは、検査が足りないからじゃないかな
Rustコンパイラはある種の嘘を検査している
それが非効率だと思うなら嘘に寛容な効率化をやってみせろ
Rustコンパイラはある種の嘘を検査している
それが非効率だと思うなら嘘に寛容な効率化をやってみせろ
915デフォルトの名無しさん
2022/08/02(火) 00:28:37.12ID:mFGD+3ik916デフォルトの名無しさん
2022/08/02(火) 00:28:42.85ID:4QK2QLWC RustはGCがないからあらゆる面で最強で他のあらゆる言語を置き換える←妄言
RustはGCや手厚いランタイム環境が使えない、もしくは適さないようなシビアな要件で安全なプログラムを作成できるためC++を置き換えることがある←正しい
正しい理解をした上でRustを広めような
RustはGCや手厚いランタイム環境が使えない、もしくは適さないようなシビアな要件で安全なプログラムを作成できるためC++を置き換えることがある←正しい
正しい理解をした上でRustを広めような
917デフォルトの名無しさん
2022/08/02(火) 00:33:51.61ID:4QK2QLWC >>915
記事を見て言ってるわけだけど。記事の段階でGoに負けたのは事実でしょう
あとこれはベンチマークの一例ね。他にもネットで探せばRustが微妙な位置にいるのはよくあることだね。
そもそもハッシュが遅いだとかで最適化したバージョンが記事で使われてないのは何故だか考えてみようね
あとRustはNimにも負けているね。GC言語だけど。。
記事を見て言ってるわけだけど。記事の段階でGoに負けたのは事実でしょう
あとこれはベンチマークの一例ね。他にもネットで探せばRustが微妙な位置にいるのはよくあることだね。
そもそもハッシュが遅いだとかで最適化したバージョンが記事で使われてないのは何故だか考えてみようね
あとRustはNimにも負けているね。GC言語だけど。。
918デフォルトの名無しさん
2022/08/02(火) 00:38:10.10ID:4QK2QLWC CPU処理だけのプログラムでもGoに負けることがあるのだから
低レイヤー以外の用途でRustを採用する必要なんか皆無であることがよくわかるね
低レイヤー以外の用途でRustを採用する必要なんか皆無であることがよくわかるね
919デフォルトの名無しさん
2022/08/02(火) 00:40:03.84ID:4QK2QLWC ちなみに俺はRustアンチじゃないからね
何でもかんでもRustが最強!GC言語はゴミで駆逐されるとかほざいてて
Rust使ってる自分に酔ってて他人にマウント取るだけが生きがいのゴミが嫌いなだけだね
何でもかんでもRustが最強!GC言語はゴミで駆逐されるとかほざいてて
Rust使ってる自分に酔ってて他人にマウント取るだけが生きがいのゴミが嫌いなだけだね
920デフォルトの名無しさん
2022/08/02(火) 00:40:19.24ID:A0k69qij 全言語の中でCに次いでRustが最速となったプログラムのコード>>602を見てみよう
どの言語のプログラマーであってもすぐに理解できるほど抽象度が高く平易で分かりやすいコードとなっている
つまりRustを学習すれば誰もが分かりやすくてコード&C並みに高速を両立するプログラムを書けるようになることを意味している
どの言語のプログラマーであってもすぐに理解できるほど抽象度が高く平易で分かりやすいコードとなっている
つまりRustを学習すれば誰もが分かりやすくてコード&C並みに高速を両立するプログラムを書けるようになることを意味している
921デフォルトの名無しさん
2022/08/02(火) 01:56:40.26ID:+AA3LPDF このままRustでまるまる1スレッド潰すのか
922デフォルトの名無しさん
2022/08/02(火) 02:07:05.35ID:cWws5nRf 俺はRustでStringをcloneしまくるコード書いちゃうからなぁ
あんま速くないかも
あんま速くないかも
923デフォルトの名無しさん
2022/08/02(火) 02:24:14.36ID:u5Pbv834 クソコードがそもそも詠唱できない時点で
クソコードのおもりをさせられるエンジニアがいなくなる
このことは重要
クソコードのおもりをさせられるエンジニアがいなくなる
このことは重要
924デフォルトの名無しさん
2022/08/02(火) 05:52:39.70ID:LaxCL9ek RustはDropbox、Cloudflare、IBM、トヨタなども使っているね。
コストってなんのコストを指しているかわからないけど、個人的にはシステムの生涯でかかるコストは他言語より安く済むと思うよ。
コストってなんのコストを指しているかわからないけど、個人的にはシステムの生涯でかかるコストは他言語より安く済むと思うよ。
925デフォルトの名無しさん
2022/08/02(火) 06:21:12.68ID:9HUaTRvZ 基本的にRustは遅いよね。
実用的なソフトウェアを作るには10倍の労力がいるし。
ベンチマーク特化型言語なのに、ベンチマークも遅いし。
実用的なソフトウェアを作るには10倍の労力がいるし。
ベンチマーク特化型言語なのに、ベンチマークも遅いし。
926デフォルトの名無しさん
2022/08/02(火) 08:10:44.50ID:boBO3Fux >>915の認識は微妙に間違っていて、simpleは標準ライブラリにこだわって遅いhashmapを使ってて、バッファが噛んでないのはoptimizeの方。
927デフォルトの名無しさん
2022/08/02(火) 09:29:37.95ID:PkkC7YEU はいはいRust最強最強
とりあえず現時点で最強ってことらしいから、スレタイから外していいし、どっかいってくれ
次世代言語のスレだから既に最強のRustを語る必要はない
とりあえず現時点で最強ってことらしいから、スレタイから外していいし、どっかいってくれ
次世代言語のスレだから既に最強のRustを語る必要はない
928デフォルトの名無しさん
2022/08/02(火) 10:16:23.49ID:QkVXmXpB929デフォルトの名無しさん
2022/08/02(火) 10:44:19.34ID:zk210DB0 スピードなんかどうでもよくてメモリが安全なのがいいんだよ
930デフォルトの名無しさん
2022/08/02(火) 11:02:56.88ID:MHrspXIN 狭義のGC あり言語の欠点はGC走って処理が引っ掛かるところかと。
931デフォルトの名無しさん
2022/08/02(火) 11:04:01.76ID:SwmbA253932デフォルトの名無しさん
2022/08/02(火) 12:08:32.96ID:Xz99VLOB GC有りでPythonくらい所有権とか気にせず雑に扱えて、且つRustの効率性を実現できれば、次世代と呼べるのではないかな?
933デフォルトの名無しさん
2022/08/02(火) 12:21:54.19ID:Z7Qybw/O Nimのoptimize版のコードかなり頑張ってるのにC/C++/Rustより倍くらい遅いのはGC言語の限界なのかな
934デフォルトの名無しさん
2022/08/02(火) 12:54:54.89ID:aHuzTsGL tauriってどうなの?価値ある?
935デフォルトの名無しさん
2022/08/02(火) 13:01:21.17ID:YfIh+LzH さあ、Electronで十分だと思うが
936デフォルトの名無しさん
2022/08/02(火) 14:25:29.92ID:T6r67EvT スレタイにRustはないのにここで暴れる理由がわからん
Rustスレで啓蒙活動してればよろしい
Rustスレで啓蒙活動してればよろしい
938デフォルトの名無しさん
2022/08/02(火) 16:47:02.67ID:h0wFySH1 >>937
スレのルールに従えよ。
スレのルールに従えよ。
939デフォルトの名無しさん
2022/08/02(火) 17:38:35.92ID:AUryLawh > スレタイ(順番はRedMonk準拠)以外の言語もok
>
> ※ Rustは現世代最強言語なので除外します
※ Rustは現世代最強言語なので(話題にして良い言語から)除外します
※ Rustは現世代最強言語なので(スレタイから)除外します
どっち?
>
> ※ Rustは現世代最強言語なので除外します
※ Rustは現世代最強言語なので(話題にして良い言語から)除外します
※ Rustは現世代最強言語なので(スレタイから)除外します
どっち?
940デフォルトの名無しさん
2022/08/02(火) 18:09:03.75ID:67ChPJTw NimはGC言語って言われるけど、スタック上にobject(C++のstruct/class相当)をおけるし、コンパイル時にサイズが決まれば配列もスタック上における。
objectの内容が配列や親objectのメモリ上に連続して配置することも可能。
C++言語のように自由にスタック上にデータを置くことが可能。
継承使いたいときとか一つのオブジェクトを複数のreferenceから参照したいときにref objectを使うんだけどこれはヒープに確保されGCで管理される。
Nimは複数のGCを選べるんだけど、--mm:arcオプションをつけるとRustのRcのような参照カウント方式でヒープが管理される。
--mm:orcオプションを使うと循環参照があってもメモリを解放できるようにした参照カウント方式が使われる。
詳しくは
https://nim-lang.org/docs/mm.html
objectの内容が配列や親objectのメモリ上に連続して配置することも可能。
C++言語のように自由にスタック上にデータを置くことが可能。
継承使いたいときとか一つのオブジェクトを複数のreferenceから参照したいときにref objectを使うんだけどこれはヒープに確保されGCで管理される。
Nimは複数のGCを選べるんだけど、--mm:arcオプションをつけるとRustのRcのような参照カウント方式でヒープが管理される。
--mm:orcオプションを使うと循環参照があってもメモリを解放できるようにした参照カウント方式が使われる。
詳しくは
https://nim-lang.org/docs/mm.html
941デフォルトの名無しさん
2022/08/02(火) 18:25:25.25ID:VFwTK1q5 >>940
スタックに置けるのは当たり前だからそこはおいといて
[1] 継承を使うだけでヒープになるのは厳しい
[2] ヒープになるだけでGCとなるのは厳しい
[3] C++とRustで参照カウンタが使われる状況になるのはもっとレアケースのみ
中途半端な立ち位置だからNimは厳しい
スタックに置けるのは当たり前だからそこはおいといて
[1] 継承を使うだけでヒープになるのは厳しい
[2] ヒープになるだけでGCとなるのは厳しい
[3] C++とRustで参照カウンタが使われる状況になるのはもっとレアケースのみ
中途半端な立ち位置だからNimは厳しい
942デフォルトの名無しさん
2022/08/02(火) 18:41:12.53ID:6yaBS9ru943デフォルトの名無しさん
2022/08/02(火) 18:42:42.88ID:3Auutz71 Rustで実用的なソフトウェアを書くのは大変骨が折れる。
944デフォルトの名無しさん
2022/08/02(火) 18:45:25.03ID:3Auutz71 厨がウザいからRustは除外します(本音)。
945デフォルトの名無しさん
2022/08/02(火) 19:45:31.74ID:Ibj6PLNd valgrindもまともに使ったことなさげなバカが偉そうにしてるの見ると腹が立つってのはあるわな。
946デフォルトの名無しさん
2022/08/02(火) 19:49:07.82ID:3Auutz71 C/C++で書かれたOSの上で動作してるのに、大言壮語も甚だしいという意見もある。
947デフォルトの名無しさん
2022/08/02(火) 19:56:24.89ID:KsV0Heuv システムプログラミング(笑)に特化してるってんならとっととRust製のOS作れよな
948デフォルトの名無しさん
2022/08/02(火) 20:22:23.89ID:49BZsXJW RustでOSか。
一応 Linux は Rust で書いたソースも受け付けるようになったらしいな。ベースがCなのは変えないそうだが。
一応 Linux は Rust で書いたソースも受け付けるようになったらしいな。ベースがCなのは変えないそうだが。
949デフォルトの名無しさん
2022/08/02(火) 20:56:39.03ID:VFwTK1q5950デフォルトの名無しさん
2022/08/02(火) 21:03:37.39ID:67ChPJTw >>941
ヒープ使わずに継承を使うことはできるけどOOPするときは派生オブジェクトを基底オブジェクトのポインタ経由で使うことが多いでしょ。
QtのサンプルコードでGUI関係のクラスはnewしてヒープに確保している。
https://doc.qt.io/qt-6/qtwidgets-widgets-calculator-example.html
https://nim-lang.org/docs/mm.html
に書いてあるけど参照カウントが不要な場合はコンパイラが自動的に最適化してくれる。
そのおかげでunique_ptrとshared_ptrを使いわけるようなことは考えずに済む。
参照カウンタがどれだけ必要になるかは場合によりけり。
C++やRustでRcが不要なコードならたぶんNimでもref objectを使わずにコードを書けるよ。
ヒープ使わずに継承を使うことはできるけどOOPするときは派生オブジェクトを基底オブジェクトのポインタ経由で使うことが多いでしょ。
QtのサンプルコードでGUI関係のクラスはnewしてヒープに確保している。
https://doc.qt.io/qt-6/qtwidgets-widgets-calculator-example.html
https://nim-lang.org/docs/mm.html
に書いてあるけど参照カウントが不要な場合はコンパイラが自動的に最適化してくれる。
そのおかげでunique_ptrとshared_ptrを使いわけるようなことは考えずに済む。
参照カウンタがどれだけ必要になるかは場合によりけり。
C++やRustでRcが不要なコードならたぶんNimでもref objectを使わずにコードを書けるよ。
951デフォルトの名無しさん
2022/08/02(火) 21:35:54.41ID:zaqp+NKw NimはObjectとref Objectを区別して扱わなきゃいけない時点で既に不便。
例えばRustでもそんな区別はなく、
スタック上のデータのみで完結しているオブジェクトなのか、
ヒープ上のデータを付随するオブジェクトなのか、
プログラマーはどちらなのか意識せず区別せずとも自動的に安全にメモリ解放される。
例えばRustでもそんな区別はなく、
スタック上のデータのみで完結しているオブジェクトなのか、
ヒープ上のデータを付随するオブジェクトなのか、
プログラマーはどちらなのか意識せず区別せずとも自動的に安全にメモリ解放される。
952デフォルトの名無しさん
2022/08/02(火) 22:18:46.88ID:3Auutz71 CRTPでおk。
953デフォルトの名無しさん
2022/08/02(火) 22:24:30.00ID:+AA3LPDF 次スレのスレタイはNim Zig Pony Carbon Gleamあたりでいいっすか?
954デフォルトの名無しさん
2022/08/02(火) 22:40:59.73ID:A0k69qij >>945
それ本気で言ってたら笑われる
Valgrind使って実行時にエラー検出と
Rustでコンパイル時にエラー検出の
現在どちらをとるべきか100%答えは出ている
RustでValgrindを使うことも稀にあるが
大半がC/C++とのFFIがらみでありC/C++が足を引っ張っている
それ本気で言ってたら笑われる
Valgrind使って実行時にエラー検出と
Rustでコンパイル時にエラー検出の
現在どちらをとるべきか100%答えは出ている
RustでValgrindを使うことも稀にあるが
大半がC/C++とのFFIがらみでありC/C++が足を引っ張っている
955デフォルトの名無しさん
2022/08/02(火) 23:38:50.10ID:yShK5RND >>953
ウィ
ウィ
956デフォルトの名無しさん
2022/08/02(火) 23:51:57.52ID:zk210DB0 >>948
だってRustってめっちゃ遅いから
だってRustってめっちゃ遅いから
957デフォルトの名無しさん
2022/08/02(火) 23:58:05.26ID:zaqp+NKw RustならCとほとんど変わらない最高速
開発効率も上がる
開発効率も上がる
958デフォルトの名無しさん
2022/08/03(水) 07:24:58.64ID:EBW1aqTx んなわけない。
959デフォルトの名無しさん
2022/08/04(木) 06:52:08.63ID:hgV/iHpj Rust保守できなくて他の言語に書き直す案件多すぎじゃね?
960デフォルトの名無しさん
2022/08/04(木) 07:38:09.36ID:YMWE04jW961デフォルトの名無しさん
2022/08/04(木) 08:27:29.63ID:czcxYRnn 貶めたいだけだから、あげられないと思う
962デフォルトの名無しさん
2022/08/04(木) 09:05:31.59ID:MbWp6BMN963デフォルトの名無しさん
2022/08/04(木) 09:35:45.18ID:jqJhSpad >>960
すみません、嘘いいいました
すみません、嘘いいいました
964デフォルトの名無しさん
2022/08/04(木) 09:44:49.51ID:hgV/iHpj965デフォルトの名無しさん
2022/08/04(木) 09:53:00.83ID:YMWE04jW >>964
どう見てもrustからの移植よりrustへの移植の話の方が多くないか?
どう見てもrustからの移植よりrustへの移植の話の方が多くないか?
966デフォルトの名無しさん
2022/08/04(木) 10:33:52.33ID:qcYVxnZx 今まで長年色々と携わってきた一般的な話として
移植するほど価値のあるものは滅多にないのと
同じ物を長く使い続けるよりある段階で設計から作り直した方が効率が良いのと
その時は古い言語を引きずらずにRustやKotlinやSwiftなど改善された良い言語を採用した方が効率良い
移植するほど価値のあるものは滅多にないのと
同じ物を長く使い続けるよりある段階で設計から作り直した方が効率が良いのと
その時は古い言語を引きずらずにRustやKotlinやSwiftなど改善された良い言語を採用した方が効率良い
967デフォルトの名無しさん
2022/08/04(木) 10:54:52.94ID:GwRVgwm4 でもRustを使えばメモリは安心安全だよ
968デフォルトの名無しさん
2022/08/04(木) 11:32:27.68ID:hgV/iHpj 移植と逆移植の需要が噛み合って無限の雇用を創出するわけだ
969デフォルトの名無しさん
2022/08/04(木) 12:34:53.02ID:rpL8+iTc >>965
既存コードの数が違うんだから当然だろ。
既存コードの数が違うんだから当然だろ。
970デフォルトの名無しさん
2022/08/04(木) 13:00:46.06ID:pLEfRi/j 保守できなくて書き直しで言うと JS/TypeScript 界隈が深刻なんじゃねえの?
未成熟なモジュールシステム、幅広い要件、多彩すぎる処理系、本来の目的と違う使い方をされるView層(DOM)、流行りの影響を受けやすいドメイン。初学者に人気がある。
まぁ、言語側で頑張れることも限界があるけど…。
未成熟なモジュールシステム、幅広い要件、多彩すぎる処理系、本来の目的と違う使い方をされるView層(DOM)、流行りの影響を受けやすいドメイン。初学者に人気がある。
まぁ、言語側で頑張れることも限界があるけど…。
971デフォルトの名無しさん
2022/08/04(木) 13:17:32.31ID:YMWE04jW >>969
それはそうだが
> Rust保守できなくて他の言語に書き直す案件多すぎじゃね?
って吠えてた人がいるからもっとあるのかと思ったら意外にショボくてワロタ
よくこんなものをドヤ顔で出せるもんだなw
それはそうだが
> Rust保守できなくて他の言語に書き直す案件多すぎじゃね?
って吠えてた人がいるからもっとあるのかと思ったら意外にショボくてワロタ
よくこんなものをドヤ顔で出せるもんだなw
972デフォルトの名無しさん
2022/08/04(木) 20:50:36.26ID:+PIU9Mos でもPHPの方が速いよね
973デフォルトの名無しさん
2022/08/04(木) 20:54:22.20ID:9TNfUmNd npmは反面教師としてめちゃくちゃ活躍した
後発のパッケージツールはみんな参考にしてる
後発のパッケージツールはみんな参考にしてる
974デフォルトの名無しさん
2022/08/04(木) 22:46:04.19ID:RbD+Gsia プロジェクト毎に切り替えてインストールする、
Ruby のBundler を真似て、npm/yarn が出来た
Ruby のBundler を真似て、npm/yarn が出来た
975デフォルトの名無しさん
2022/08/04(木) 23:00:37.24ID:mEx9pPO3 何さらっと嘘言っているんだよw
パッケージ管理ツールなんて昔からあるのに
パッケージ管理ツールなんて昔からあるのに
976デフォルトの名無しさん
2022/08/05(金) 07:34:10.27ID:BZGh0CoX Time in seconds for each data size: kjvbible.txt
x10 x100 x200 x400 Mem Comment
0.018 0.052 0.089 0.174 ***MB baseline/cat
0.036 0.089 0.147 0.260 ***MB baseline/rg foobar (ripgrep, no match)
0.032 0.091 0.159 0.290 ***MB baseline/ugrep foobar (no match)
0.058 0.457 0.889 1.789 1.1MB baseline/grep foobar (no match)
0.219 2.108 4.127 8.263 0.9MB baseline/wc -w (word count, total only)
0.154 1.271 2.551 5.079 2.0MB C (caller hash,stdin=binary-mode)
0.177 1.412 2.733 5.446 3.8MB Go (caller hash)
0.161 1.458 2.903 5.671 1.4MB C++ (caller hash,cin=binary-mode)
0.175 1.513 2.953 5.863 4.6MB Zig @github fixed
0.176 1.572 3.124 6.045 2.6MB Rust@github rust/optimized-customhashmap
0.180 1.597 3.219 6.267 3.1MB Rust@5ch res >>602
Ryzen9 5900X windows11
x10 x100 x200 x400 Mem Comment
0.018 0.052 0.089 0.174 ***MB baseline/cat
0.036 0.089 0.147 0.260 ***MB baseline/rg foobar (ripgrep, no match)
0.032 0.091 0.159 0.290 ***MB baseline/ugrep foobar (no match)
0.058 0.457 0.889 1.789 1.1MB baseline/grep foobar (no match)
0.219 2.108 4.127 8.263 0.9MB baseline/wc -w (word count, total only)
0.154 1.271 2.551 5.079 2.0MB C (caller hash,stdin=binary-mode)
0.177 1.412 2.733 5.446 3.8MB Go (caller hash)
0.161 1.458 2.903 5.671 1.4MB C++ (caller hash,cin=binary-mode)
0.175 1.513 2.953 5.863 4.6MB Zig @github fixed
0.176 1.572 3.124 6.045 2.6MB Rust@github rust/optimized-customhashmap
0.180 1.597 3.219 6.267 3.1MB Rust@5ch res >>602
Ryzen9 5900X windows11
977976
2022/08/05(金) 07:37:51.09ID:BZGh0CoX データサイズを大きくしたら結構景色が変わったよ
もともとのサイズは左端のx10ね
もともとのサイズは左端のx10ね
978976
2022/08/05(金) 07:44:17.90ID:BZGh0CoX caller hashはoptimized.cと同じようにメインループでhash計算を済ませておいてhashテーブル関数に渡す用にしたもの
これ結構効果的だった
これ結構効果的だった
979デフォルトの名無しさん
2022/08/05(金) 07:49:10.83ID:WXp5Dd4L こちらでもGoがC++やRustよりも遅い結果しか出ないのだが
GoがC++やRustよりも速い結果になる人は何が違うのだろう?バージョン?CPU?計測方法?
GoがC++やRustより速くなるのは他でも見かけないから何らか別の理由があるはず
GoがC++やRustよりも速い結果になる人は何が違うのだろう?バージョン?CPU?計測方法?
GoがC++やRustより速くなるのは他でも見かけないから何らか別の理由があるはず
980976
2022/08/05(金) 07:50:28.70ID:BZGh0CoX rustはよくわからないので、caller hash版は大先生にお願いしたいです
Mem:
メモリ使用量はタスクマネージャーでの表示です。cat/rg/ugrepは早すぎて見えませんでした
x10~x400で違いはなかったです
Mem:
メモリ使用量はタスクマネージャーでの表示です。cat/rg/ugrepは早すぎて見えませんでした
x10~x400で違いはなかったです
981デフォルトの名無しさん
2022/08/05(金) 07:54:28.24ID:WXp5Dd4L >>978
それは専用プログラムでない限りプログラミングでやってはいけない行為
単語を渡すだけのインタフェースになっているべきであり、その利用側はハッシュ関数が何かを知ってはいけない
さらに、そのような逸脱した最適化アルゴリズムを特定の言語にだけ適用しても、言語間の比較とならない
それは専用プログラムでない限りプログラミングでやってはいけない行為
単語を渡すだけのインタフェースになっているべきであり、その利用側はハッシュ関数が何かを知ってはいけない
さらに、そのような逸脱した最適化アルゴリズムを特定の言語にだけ適用しても、言語間の比較とならない
982デフォルトの名無しさん
2022/08/05(金) 07:58:44.14ID:Zs6c3yJt 次世代言語27 Nim Zig Rust Carbon
983デフォルトの名無しさん
2022/08/05(金) 08:03:18.30ID:caRFuKmx 要はアルゴリズムが大事で言語の差異はスクリプト言語でもない限りどうでもいいってことだろ
もうこの話は終わりでいいよ
もうこの話は終わりでいいよ
984デフォルトの名無しさん
2022/08/05(金) 08:06:44.88ID:8m5I520h アルゴリズムが同じならばGoが常に遅い
なので今回GoはイカサマをしたらC++/Rustより速くなったという話
なので今回GoはイカサマをしたらC++/Rustより速くなったという話
985デフォルトの名無しさん
2022/08/05(金) 08:12:34.92ID:caRFuKmx Goはパラレル版もリポジトリに置いてあるけど当然そっちの方がRustより早いぞ
Rustも並列処理すれば速いんだろうけど
ということで大事なのはアルゴリズムで言語差はわりとどうでもいいね
Rustがアピールするべきなのはパフォーマンスというよりは低ランタイムコストでメモリ安全ってとこじゃないの
当然コストが高いわけでそれに見合うほどのパフォーマンスが必ずしも得られるわけではない
パフォーマンスを改善するには言語を変えて作り直すより、アルゴリズムを改善したり、並行並列処理に切り替えたりする方が効果的
Rustも並列処理すれば速いんだろうけど
ということで大事なのはアルゴリズムで言語差はわりとどうでもいいね
Rustがアピールするべきなのはパフォーマンスというよりは低ランタイムコストでメモリ安全ってとこじゃないの
当然コストが高いわけでそれに見合うほどのパフォーマンスが必ずしも得られるわけではない
パフォーマンスを改善するには言語を変えて作り直すより、アルゴリズムを改善したり、並行並列処理に切り替えたりする方が効果的
986デフォルトの名無しさん
2022/08/05(金) 08:15:37.58ID:brBAgkMt その0.1秒で終わる処理ですら同じ条件ならばGoが遅いけど
現実にはサーバーからアプリまでそれよりはるかに長い時間使われる
そしてGCが何度も起こりGoの遅さが致命的になる
現実にはサーバーからアプリまでそれよりはるかに長い時間使われる
そしてGCが何度も起こりGoの遅さが致命的になる
987デフォルトの名無しさん
2022/08/05(金) 08:17:56.43ID:m/sE4zJr988デフォルトの名無しさん
2022/08/05(金) 08:18:55.11ID:caRFuKmx 次スレはワッチョイありで立ててくれ
Rust盲信者がIDころころ変えるので
Rust盲信者がIDころころ変えるので
989デフォルトの名無しさん
2022/08/05(金) 08:25:55.99ID:H5hHfEm1990デフォルトの名無しさん
2022/08/05(金) 08:29:18.89ID:w1fJ4NWZ 元のGoブログの人を含めて全員おかしい
アルゴリズムを揃えないベンチマークは何も意味を持たない
アルゴリズムを揃えないベンチマークは何も意味を持たない
991デフォルトの名無しさん
2022/08/05(金) 08:56:59.64ID:T6EdcM/7 >>982
rustはもう外せよ
rustはもう外せよ
992デフォルトの名無しさん
2022/08/05(金) 09:25:07.37ID:caRFuKmx そんなにRustがあらゆるプログラムでパフォーマンス、生産性が優れているなら
なんで頭のいいエンジニア達はわざわざRustを使ってDenoっていうランタイム作ってんの???
GCがあるとRust狂信者によるとWebサーバーでもクリティカルに影響が出てしまうらしいけど
なんでGCのないRustで狂信者曰くあらゆる面でゴミなGCありのDeno作ってんのよ
なんで頭のいいエンジニア達はわざわざRustを使ってDenoっていうランタイム作ってんの???
GCがあるとRust狂信者によるとWebサーバーでもクリティカルに影響が出てしまうらしいけど
なんでGCのないRustで狂信者曰くあらゆる面でゴミなGCありのDeno作ってんのよ
993デフォルトの名無しさん
2022/08/05(金) 09:40:18.52ID:h+76NvX5 >>978
その通りだがその時点でこのベンチマークが現実離れした意味のないものであることを意味している
以前から指摘が出ているように、このベンチマークの実行時間のほとんどは単語カウントに費やされていて、だからこそそのハッシュ計算のオプティマイズで大きく改善される
この筋の悪いベンチマークをどうしても行なうならば、最低限アルゴリズムとテーブルサイズなど条件を揃えるべき
現状では意味のない比較となっている
その通りだがその時点でこのベンチマークが現実離れした意味のないものであることを意味している
以前から指摘が出ているように、このベンチマークの実行時間のほとんどは単語カウントに費やされていて、だからこそそのハッシュ計算のオプティマイズで大きく改善される
この筋の悪いベンチマークをどうしても行なうならば、最低限アルゴリズムとテーブルサイズなど条件を揃えるべき
現状では意味のない比較となっている
994デフォルトの名無しさん
2022/08/05(金) 09:43:12.76ID:/hLfNpmA995デフォルトの名無しさん
2022/08/05(金) 09:45:30.76ID:oRWix6dW996デフォルトの名無しさん
2022/08/05(金) 09:48:57.07ID:AYAQMvzY 【次スレ】
次世代言語27 TypeScript Swift Go Kotlin Rust Nim
https://mevius.5ch.net/test/read.cgi/tech/1659655598/
【前スレ】
次世代言語25 TypeScript Swift Go Kotlin Rust Nim
https://mevius.5ch.net/test/read.cgi/tech/1650185555/
次世代言語27 TypeScript Swift Go Kotlin Rust Nim
https://mevius.5ch.net/test/read.cgi/tech/1659655598/
【前スレ】
次世代言語25 TypeScript Swift Go Kotlin Rust Nim
https://mevius.5ch.net/test/read.cgi/tech/1650185555/
997デフォルトの名無しさん
2022/08/05(金) 09:49:10.13ID:dkIhDSME 全ての証言を信じれば矛盾する
なぜかといえば自白強要や誘導尋問から生み出される証言もあるから
なぜかといえば自白強要や誘導尋問から生み出される証言もあるから
998デフォルトの名無しさん
2022/08/05(金) 10:18:49.46ID:Zpgmgnev999デフォルトの名無しさん
2022/08/05(金) 11:53:10.74ID:GYd+Bl11 全く同じアルゴリズムで比較するべきとか言い出すならそもそもこんな複雑なタスクでベンチマークするのがおかしい
もっと簡単なタスクをいろいろ用意してそれぞれでベンチマーク比較したほうがいい
もっと簡単なタスクをいろいろ用意してそれぞれでベンチマーク比較したほうがいい
1000デフォルトの名無しさん
2022/08/05(金) 12:02:08.53ID:/hLfNpmA どうすべきかなんて目的次第ですよ
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 45日 2時間 34分 22秒
新しいスレッドを立ててください。
life time: 45日 2時間 34分 22秒
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を超えています。これ以上書き込みはできません。
ニュース
- 中居正広、周囲に「引退したい」と進退について弱音 ★2 [Anonymous★]
- 元文春記者、被害女性はフジテレビに怒りあらわ「私以外にもいる」 “上納システム”あったのか、なかったのか…大きな焦点に★3 [muffin★]
- 本人が申し出!中居正広TBS系「金スマ」26日収録が急きょ取り止め ★5 [ひかり★]
- トランプ氏「トランスジェンダーの狂気止める」「排除するため大統領令に署名する」 ★2 [お断り★]
- 【日テレ】中居正広 女性トラブル報道で『ナカイの窓』スポンサー対応に集まる注目 松本の文春報道直後は提供クレジットなし [阿弥陀ヶ峰★]
- 2039年、日本のGDP世界5位に、イタリアが上位10から脱落、英仏は6、7位、インドネシア10位入り ★2 [お断り★]
- 【悲報】中学校で男性の遺体が発見👶
- 【中居正広】フジテレビ、渡邊渚アナに「病名公表するな」と圧力 会社ぐるみのSEX上納システムを隠蔽 [187477461]
- 中居正広、周囲に引退したいと吐露 [633746646]
- 【速報】中居正広、引退
- アル中モメン、これやりはじめたら終わりって飲み方教えてくれ [289416686]
- 【悲報】まゆゆこと渡辺麻友さんの引退理由ガチで謎。中居正広さんMC番組を突如体調不良で欠席した後に表舞台に姿を表さず引退 [517459952]