Mozilla発のRust言語のスレ
公式
https://www.rust-lang.org/
https://blog.rust-lang.org/
https://github.com/rust-lang/rust
Web上の実行環境
https://play.rust-lang.org
前スレ
Rust Part6
http://mevius.5ch.net/test/read.cgi/tech/1532714678/
Rust Part7
レス数が1000を超えています。これ以上書き込みはできません。
2019/07/14(日) 23:31:47.54ID:PySyhRf9
2019/07/15(月) 14:42:37.66ID:Xch0qlQL
>>1おtsuR
3デフォルトの名無しさん
2019/07/15(月) 17:56:25.13ID:9ryZm2UI ビルドエラーが出るのですが、なにか解決策はありますか?
Compiling backtrace-sys v0.1.30
error: failed to run custom build command for `backtrace-sys v0.1.30`
process didn't exit successfully: `C:\Programming\Rust_project\socket_programming\target\debug\build\backtrace-sys-159a954e4a82ac78\build-script-build` (exit code: 1)
--- stdout
cargo:rustc-cfg=rbt
TARGET = Some("x86_64-pc-windows-gnu")
OPT_LEVEL = Some("0")
HOST = Some("x86_64-pc-windows-gnu")
CC_x86_64-pc-windows-gnu = None
CC_x86_64_pc_windows_gnu = None
HOST_CC = None
CC = None
CFLAGS_x86_64-pc-windows-gnu = None
CFLAGS_x86_64_pc_windows_gnu = None
HOST_CFLAGS = None
CFLAGS = None
CRATE_CC_NO_DEFAULTS = None
CARGO_CFG_TARGET_FEATURE = Some("fxsr,sse,sse2")
running: "gcc.exe" "-O0" "-ffunction-sections" "-fdata-sections" "-m64" "-I" "src/libbacktrace" "-I"
"C:\\Programming\\Rust_project\\socket_programming\\target\\debug\\build\\backtrace-sys-361946668d7e8f79\\out"
cargo:warning=cc1.exe: sorry, unimplemented: 64-bit mode not compiled in
exit code: 1
--- stderr
error occurred: Command "gcc.exe" "-O0" "-ffunction-sections" "-fdata-sections" "-m64" "-I" "src/libbacktrace" "-I"
"C:\\Programming\\Rust_project\\socket_programming\\target\\debug\\build\\backtrace-sys-361946668d7e8f79\\out" with args "gcc.exe" did not execute successfully (status code exit code: 1).
Compiling backtrace-sys v0.1.30
error: failed to run custom build command for `backtrace-sys v0.1.30`
process didn't exit successfully: `C:\Programming\Rust_project\socket_programming\target\debug\build\backtrace-sys-159a954e4a82ac78\build-script-build` (exit code: 1)
--- stdout
cargo:rustc-cfg=rbt
TARGET = Some("x86_64-pc-windows-gnu")
OPT_LEVEL = Some("0")
HOST = Some("x86_64-pc-windows-gnu")
CC_x86_64-pc-windows-gnu = None
CC_x86_64_pc_windows_gnu = None
HOST_CC = None
CC = None
CFLAGS_x86_64-pc-windows-gnu = None
CFLAGS_x86_64_pc_windows_gnu = None
HOST_CFLAGS = None
CFLAGS = None
CRATE_CC_NO_DEFAULTS = None
CARGO_CFG_TARGET_FEATURE = Some("fxsr,sse,sse2")
running: "gcc.exe" "-O0" "-ffunction-sections" "-fdata-sections" "-m64" "-I" "src/libbacktrace" "-I"
"C:\\Programming\\Rust_project\\socket_programming\\target\\debug\\build\\backtrace-sys-361946668d7e8f79\\out"
cargo:warning=cc1.exe: sorry, unimplemented: 64-bit mode not compiled in
exit code: 1
--- stderr
error occurred: Command "gcc.exe" "-O0" "-ffunction-sections" "-fdata-sections" "-m64" "-I" "src/libbacktrace" "-I"
"C:\\Programming\\Rust_project\\socket_programming\\target\\debug\\build\\backtrace-sys-361946668d7e8f79\\out" with args "gcc.exe" did not execute successfully (status code exit code: 1).
2019/07/15(月) 18:45:30.04ID:y88H95dP
>cargo:warning=cc1.exe: sorry, unimplemented: 64-bit mode not compiled in
「rust unimplemented: 64-bit mode」で検索すれば?
「rust unimplemented: 64-bit mode」で検索すれば?
2019/07/15(月) 23:08:24.27ID:VplRLaA9
32bit mingwで64bitのコンパイルしようとした時のエラーの話だからrust付けると出てこないだろうな。
*-pc-windows-gnuはツールチェーン含んでるから余計な環境でビルドせずに含んでるもの使えばいいんだよ。
*-pc-windows-gnuはツールチェーン含んでるから余計な環境でビルドせずに含んでるもの使えばいいんだよ。
2019/07/16(火) 15:23:57.01ID:jMFvbE2f
Rustで
port0.od = 0; // 0b00000000
port0.od.b0 = 1; // 0b00000001
port0.od.b5 = 1; // 0b00100001
port0.od.b0 = 0; // 0b00100000
みたいな実装って出来るんだっけ?
port0.od = 0; // 0b00000000
port0.od.b1(1); // 0b00000010
とか
port0.od = 0; // 0b00000000
port0.od.bitset(6); // 0b01000000
みたいに関数を介せば出来ると思うけど
port0.od = 0; // 0b00000000
port0.od.b0 = 1; // 0b00000001
port0.od.b5 = 1; // 0b00100001
port0.od.b0 = 0; // 0b00100000
みたいな実装って出来るんだっけ?
port0.od = 0; // 0b00000000
port0.od.b1(1); // 0b00000010
とか
port0.od = 0; // 0b00000000
port0.od.bitset(6); // 0b01000000
みたいに関数を介せば出来ると思うけど
2019/07/16(火) 19:08:19.57ID:JinG5ry6
bitflags?
8デフォルトの名無しさん
2019/07/16(火) 19:17:48.80ID:HPUIeONI できない
2019/07/16(火) 20:14:44.06ID:56kV8Vkg
>6 標準では用意されてないけど、名前の通りbitfieldってcrateがあるから試してみて
https://github.com/dzamlo/rust-bitfield
https://github.com/dzamlo/rust-bitfield
106
2019/07/16(火) 22:09:31.51ID:mK/lXdx0 サンキュ。やっぱ無理か
こういう記法が出来る処理系って少ないですよね。言語レベルで対応しているか=の上書きと括弧無し関数呼び出しが出来るとかじゃないと難しい
どうやって実装しよう
1.読み出し:b0()、書き込み:b0set([0|1])
2.読み出し:bit(n)、書き込み:bitset(n)、bitclear(n)
どちらもスマートじゃないな。Rustだと引数の初期値を取れないから一つの関数で読み書き兼用というのも出来ないし
>>7
機能上はマスクで足りるのですが名前でビットを指定できた方が読みやすいので
>>9
読み出し:bit、書き込み:set_bitと実装されているみたいですね。こんな書き方しかないのかな
こういう記法が出来る処理系って少ないですよね。言語レベルで対応しているか=の上書きと括弧無し関数呼び出しが出来るとかじゃないと難しい
どうやって実装しよう
1.読み出し:b0()、書き込み:b0set([0|1])
2.読み出し:bit(n)、書き込み:bitset(n)、bitclear(n)
どちらもスマートじゃないな。Rustだと引数の初期値を取れないから一つの関数で読み書き兼用というのも出来ないし
>>7
機能上はマスクで足りるのですが名前でビットを指定できた方が読みやすいので
>>9
読み出し:bit、書き込み:set_bitと実装されているみたいですね。こんな書き方しかないのかな
2019/07/16(火) 22:19:22.64ID:BU48xkSV
bitmapで良くない?外部クレートなかったっけ?
2019/07/16(火) 22:25:39.33ID:BU48xkSV
間違えたbitsetだ。
2019/07/16(火) 22:30:18.97ID:p9rPVFUU
マクロ使えば見た目は似せられるかも?
bit! {
od = 0;
od.b0 = 1;
}
みたいにしてASTいじって関数呼び出し形式に変換する感じの。
bit! {
od = 0;
od.b0 = 1;
}
みたいにしてASTいじって関数呼び出し形式に変換する感じの。
14デフォルトの名無しさん
2019/07/17(水) 00:27:23.47ID:OvMw+j5/ 初心者です。苦戦してます。お知恵を貸してください。
仮想端末を含んだ GTK+3 アプリを C++ で作りたいです。
gtkmm だと vte が使えない(?)ので、gtk-3.0 を使って試してます。
サンプルを下のリンクに置きました。
make すると main 最後の return app->run(window); の所で、
[no member named 'run' in '_GtkApplication']とエラーになってしまいます。
この部分は gtkmm の例から持って来たもなので、変える必要があるのですが、
gtk+3 ではどう書くのが正解でしょうか?よろしくお願いします。
あるいは、gtkmm でも vte を使う簡単な方法がもしあれば、教えてください。
Makefile
http://codepad.org/wldK76KY
main_test_3.cc
http://codepad.org/NopgbNXP
sample_3.h
http://codepad.org/BiQt354F
sample_3.cc
http://codepad.org/I1B7AyJL
仮想端末を含んだ GTK+3 アプリを C++ で作りたいです。
gtkmm だと vte が使えない(?)ので、gtk-3.0 を使って試してます。
サンプルを下のリンクに置きました。
make すると main 最後の return app->run(window); の所で、
[no member named 'run' in '_GtkApplication']とエラーになってしまいます。
この部分は gtkmm の例から持って来たもなので、変える必要があるのですが、
gtk+3 ではどう書くのが正解でしょうか?よろしくお願いします。
あるいは、gtkmm でも vte を使う簡単な方法がもしあれば、教えてください。
Makefile
http://codepad.org/wldK76KY
main_test_3.cc
http://codepad.org/NopgbNXP
sample_3.h
http://codepad.org/BiQt354F
sample_3.cc
http://codepad.org/I1B7AyJL
1514
2019/07/17(水) 00:29:17.38ID:OvMw+j5/ すみません。誤爆しました。14は無視してください。
16デフォルトの名無しさん
2019/07/17(水) 04:37:31.38ID:0r3gt+vm >>10
配列でいいじゃん
配列でいいじゃん
2019/07/17(水) 06:40:54.65ID:miXA5FV0
Rustって、なんでRustっていう名前なんですか
2019/07/17(水) 14:51:22.82ID:HPA9WgE0
196
2019/07/17(水) 17:35:45.39ID:rYwqYjNV2019/07/17(水) 17:43:48.56ID:qxRR1SXW
そういや、マクロって保守性悪くなるんじゃない?
2019/07/17(水) 18:02:15.81ID:v7+Dn7CU
Cみたいに
port0 = BIT5
port0 = BIT2 | BIT4
val = port0 & BIT4
じゃあかんの?
port0 = BIT5
port0 = BIT2 | BIT4
val = port0 & BIT4
じゃあかんの?
22デフォルトの名無しさん
2019/07/17(水) 21:24:51.41ID:0r3gt+vm2019/07/17(水) 23:44:22.07ID:7KdSCzvc
VSCodeにrustupとrlsとC++のツールチェーンを入れてcargo new hello --bin
をShift+Ctrl+Bでビルドしてデバッグ実行もできるようにしたのですが、
できたファイルのうちのどれとどれをGitにコミットすれば一番幸せになれるの?
(1) .gitignore
(2) Cargo.toml
(3) Cargo.lock
(4) main.rs
(5) main.exe
(6) main.pdb
(7) ./vscode/task.json
をShift+Ctrl+Bでビルドしてデバッグ実行もできるようにしたのですが、
できたファイルのうちのどれとどれをGitにコミットすれば一番幸せになれるの?
(1) .gitignore
(2) Cargo.toml
(3) Cargo.lock
(4) main.rs
(5) main.exe
(6) main.pdb
(7) ./vscode/task.json
24デフォルトの名無しさん
2019/07/18(木) 05:56:44.97ID:5vDlE6vb (1) .gitignore
に書かれてないやつ
に書かれてないやつ
2019/07/18(木) 22:17:54.85ID:tHz4DA4Z
レスdクス、実はcargo cleanして残ったやつ全部コミットにしといた…
それはそうとして分割コンパイル&リンクまでするには一体どうすれば…orz
実はmake不要でcargoが面倒を見てくれる…?
いやしかし次のサイトでは(VSCode環境ではないが)めっちゃmakefile書いてるし…
ttps://yoshitsugu.net/posts/2019-06-04-haribote-os-in-rust-day3.html
それはそうとして分割コンパイル&リンクまでするには一体どうすれば…orz
実はmake不要でcargoが面倒を見てくれる…?
いやしかし次のサイトでは(VSCode環境ではないが)めっちゃmakefile書いてるし…
ttps://yoshitsugu.net/posts/2019-06-04-haribote-os-in-rust-day3.html
2019/07/18(木) 22:23:30.40ID:cexb+rGl
>>25
普通はmake不要でcargoのみ。そのサイトはどこかから持ってきたアセンブラをnasmするのにmakeつかってるだけっぽいのでrust関係ない。
普通はmake不要でcargoのみ。そのサイトはどこかから持ってきたアセンブラをnasmするのにmakeつかってるだけっぽいのでrust関係ない。
2019/07/18(木) 23:36:01.21ID:JZFbYeti
Microsoft、安全で高効率のプログラミング言語として「Rust」を高く評価:メモリ破壊
バグを避けるには 2019年07月18日 19時00分 公開
https://www.atmarkit.co.jp/ait/articles/1907/18/news122.html
Microsoft Security Response Center(MSRC)は2019年7月16日(米国時間)、ソフト
ウェアのセキュリティを確保しつつ、効率性も保ちたい場合、利用可能なシステムプロ
グラミング言語として、「Rust」を高く評価した。
MSRCによれば、Microsoftが「CVE(共通脆弱性識別子)」を割り当て、修正してきた同社
ソフトウェアのセキュリティ脆弱(ぜいじゃく)性の大部分は1つの要因から起こっている。
開発者がC/C++コードにうっかりメモリ破壊バグを作り込んでしまったことだ。(中略)
C#とC++のメリットを兼ね備えるのは
C#のような言語が提供するメモリ関連のセキュリティと、C++の効率性を兼ね備えた言語
があれば、開発者にとって理想的だ。MSRCは、両方の要件を満たす最も有望なシステムプロ
グラミング言語として、Mozillaの公式プロジェクトとして進化してきた「Rust」を挙げて
いる。
さらにMSRCは、業界として真のセキュリティ対策を進めるには、脆弱性に対処するための
ツールやガイダンスを提供するよりもむしろ、「開発者にそもそも脆弱性を発生させない
ための取り組みを行わなければならない」との見解を示した。
MSRCは、安全性の低いレガシー言語から、モダンで安全なシステムプログラミング言語
への移行を促進するという観点から、Rustをはじめとする安全なシステムプログラミング
言語の活用に向けて、Microsoftが行ってきた取り組みを今後も紹介していくという。
バグを避けるには 2019年07月18日 19時00分 公開
https://www.atmarkit.co.jp/ait/articles/1907/18/news122.html
Microsoft Security Response Center(MSRC)は2019年7月16日(米国時間)、ソフト
ウェアのセキュリティを確保しつつ、効率性も保ちたい場合、利用可能なシステムプロ
グラミング言語として、「Rust」を高く評価した。
MSRCによれば、Microsoftが「CVE(共通脆弱性識別子)」を割り当て、修正してきた同社
ソフトウェアのセキュリティ脆弱(ぜいじゃく)性の大部分は1つの要因から起こっている。
開発者がC/C++コードにうっかりメモリ破壊バグを作り込んでしまったことだ。(中略)
C#とC++のメリットを兼ね備えるのは
C#のような言語が提供するメモリ関連のセキュリティと、C++の効率性を兼ね備えた言語
があれば、開発者にとって理想的だ。MSRCは、両方の要件を満たす最も有望なシステムプロ
グラミング言語として、Mozillaの公式プロジェクトとして進化してきた「Rust」を挙げて
いる。
さらにMSRCは、業界として真のセキュリティ対策を進めるには、脆弱性に対処するための
ツールやガイダンスを提供するよりもむしろ、「開発者にそもそも脆弱性を発生させない
ための取り組みを行わなければならない」との見解を示した。
MSRCは、安全性の低いレガシー言語から、モダンで安全なシステムプログラミング言語
への移行を促進するという観点から、Rustをはじめとする安全なシステムプログラミング
言語の活用に向けて、Microsoftが行ってきた取り組みを今後も紹介していくという。
2019/07/19(金) 01:03:06.37ID:GCRlNtpT
ああついにMicrosoftまでMozillaのステマの犠牲に…
296
2019/07/19(金) 03:55:32.80ID:vDoYj/5c30デフォルトの名無しさん
2019/07/19(金) 06:34:47.15ID:hHIdkAH02019/07/19(金) 08:09:28.17ID:1jAR2vN7
>>29
and or orと値の両方を変更せねばならずってどういうこと?
and or orと値の両方を変更せねばならずってどういうこと?
326
2019/07/19(金) 11:55:39.50ID:vDoYj/5c >>31
port0.od = 0b00000000 // 右端を0ビット目とする
port0.od |= 0b00000100 // 2ビット目を1に → 0b00000100
port0.od |= 0b00100000 // 5ビット目を1に → 0b00100100
port0.od &= 0b11111011 // 2ビット目を0に → 0b00100000
ビット列は抽象化できるけどANDとORは一連の処理をラップできない限り手動で変更する必要があります
Cやアセンブラで低レベルの処理をする場合は多用される書き方だと思いますが結構危なっかしいと思います
port0.od = 0b00000000 // 右端を0ビット目とする
port0.od |= 0b00000100 // 2ビット目を1に → 0b00000100
port0.od |= 0b00100000 // 5ビット目を1に → 0b00100100
port0.od &= 0b11111011 // 2ビット目を0に → 0b00100000
ビット列は抽象化できるけどANDとORは一連の処理をラップできない限り手動で変更する必要があります
Cやアセンブラで低レベルの処理をする場合は多用される書き方だと思いますが結構危なっかしいと思います
2019/07/19(金) 12:19:48.14ID:4A+dpHhz
ビット反転するという脳味噌がないって話?
2019/07/19(金) 17:33:35.07ID:ARm0Ww4L
2019/07/19(金) 21:01:17.76ID:wRHB2w4J
翻訳しないと読めないやつ
36デフォルトの名無しさん
2019/07/19(金) 21:05:45.56ID:g6GhiJm/ 義務教育受けてたらwhy rustの訳だろうなってすぐ分かるよなたとえ翻訳かけてたとしても
376
2019/07/19(金) 21:40:27.14ID:EuFVnXjl Index、IndexMutが何でこんな仕様なのかと思ったらC++の[]に合わせたのか
C++ぽく使えるがそれ以外の使い方は想定されていないと
結局普通の関数で妥協するしかないのかな。抽象度はCに毛が生えた程度、C++未満?か
どのみち組み込み用に拡張された処理系相当には出来そうにないっぽい
C++ぽく使えるがそれ以外の使い方は想定されていないと
結局普通の関数で妥協するしかないのかな。抽象度はCに毛が生えた程度、C++未満?か
どのみち組み込み用に拡張された処理系相当には出来そうにないっぽい
2019/07/19(金) 22:09:36.92ID:0WNLW8m0
>>37
Rustは構文的な自由度あんまりないからね。Scalaが自由度ありすぎて混乱してた反省を踏まえてるのかな、って思ってる。どうしてもやりたいならマクロがあるし、妥当な落とし所では。
Rustは構文的な自由度あんまりないからね。Scalaが自由度ありすぎて混乱してた反省を踏まえてるのかな、って思ってる。どうしてもやりたいならマクロがあるし、妥当な落とし所では。
2019/07/19(金) 23:31:27.88ID:ysC8gi5X
groovyと同じast変換するマクロもあるしcompiler pluginもあるし拡張は簡単。
2019/07/20(土) 12:57:28.24ID:rHpvZKFq
rayonでzipイテレータを並列処理できますか?
2019/07/20(土) 22:15:20.44ID:AjHY8stg
rust未経験者がwebプログラミングをrustで始めるのってどう思う?
俺の背景としてはocamlを1年ぐらいやってて「Real World OCaml」みたいな定番書を読んで簡単なコンパイラとかVMを作ったっていうレベル
rustでやるモチベーションとしては
・OCaml誰もやってなくて未来が見えない
・最低でもバリアントとパターンマッチが欲しい
・ネイティブが良いからscala/F#は嫌だ
こういう理由
web自体が初心者だからrailsとかのチュートリアルぐらいは先にやっておくつもり
俺の背景としてはocamlを1年ぐらいやってて「Real World OCaml」みたいな定番書を読んで簡単なコンパイラとかVMを作ったっていうレベル
rustでやるモチベーションとしては
・OCaml誰もやってなくて未来が見えない
・最低でもバリアントとパターンマッチが欲しい
・ネイティブが良いからscala/F#は嫌だ
こういう理由
web自体が初心者だからrailsとかのチュートリアルぐらいは先にやっておくつもり
2019/07/20(土) 22:46:21.59ID:wwp1044b
どうも何もWebアプリは言語の選定は大した問題じゃなくて、Webアプリの基礎がわかってるかどうかだぞ
セッション管理、Rest、クライアントスクリプト、見た目とロジックの分離等々
セッション管理、Rest、クライアントスクリプト、見た目とロジックの分離等々
2019/07/21(日) 00:44:57.93ID:Ct/mrgVP
そうは言っても情報量の多さとかで挫折しにくい言語ってのはあるでしょ
Rustは明らかにきついほうだろうけど...
Rustは明らかにきついほうだろうけど...
2019/07/21(日) 01:53:54.94ID:iF1O4o5j
>ocamlを1年ぐらいやってて
>コンパイラとかVMを作った
能力的にはRustでWebするのも余裕なんじゃね;
もっとも、SQLインジェクションみたいな文字列解釈やセッション絡みの脆弱性を
思わず作りこんでしまうことはRustでも避けられないから>>42のは真実だと思うが
>コンパイラとかVMを作った
能力的にはRustでWebするのも余裕なんじゃね;
もっとも、SQLインジェクションみたいな文字列解釈やセッション絡みの脆弱性を
思わず作りこんでしまうことはRustでも避けられないから>>42のは真実だと思うが
2019/07/21(日) 22:07:53.58ID:SjT3tKFm
ocaml辺りやる人間にはつまらんぞwebは。
2019/07/25(木) 18:18:35.03ID:lKY1yvEr
rustむずい
gcのついたrustが欲しい
gcのついたrustが欲しい
2019/07/25(木) 19:38:42.91ID:5L4KGe8+
存在意義を否定してどうするよ
go使えば
go使えば
2019/07/25(木) 20:37:16.64ID:lKY1yvEr
最低でもヴァリアントとレコードとパターンマッチがあって全体的に式指向な言語が良い
ocamlがマルチスレッドに対応しててもっと流行ってれば...
scala/f#がネイティブであれば...
haskellが正格評価でもっとパフォーマンスが良ければ...
皆さんc/c++の置き換えとしてrustやってるの?
自分は関数型言語由来の機能が多くてネイティブで動く言語が欲しい
そういう理由でrustに手を出す人って少ないのかな
rust製のcliツールとかめっちゃ多いし、低レイヤのためだけにrustやってる人のほうが少ないんじゃないかな
ocamlがマルチスレッドに対応しててもっと流行ってれば...
scala/f#がネイティブであれば...
haskellが正格評価でもっとパフォーマンスが良ければ...
皆さんc/c++の置き換えとしてrustやってるの?
自分は関数型言語由来の機能が多くてネイティブで動く言語が欲しい
そういう理由でrustに手を出す人って少ないのかな
rust製のcliツールとかめっちゃ多いし、低レイヤのためだけにrustやってる人のほうが少ないんじゃないかな
2019/07/25(木) 21:49:12.38ID:E2feltVj
多いか少ないかが気になる年頃
50デフォルトの名無しさん
2019/07/25(木) 21:54:26.88ID:6TAkPITO 難しいからなんなんだよってかんじ
勉強すればそのうち使えるようになるんだからどうでもいいことじゃん
俺はPHPの置き換えで使ってるけど
勉強すればそのうち使えるようになるんだからどうでもいいことじゃん
俺はPHPの置き換えで使ってるけど
2019/07/25(木) 22:40:39.89ID:PNoIdPh5
rust, c++より少しはマシくらいの言語だわな。
実装系含めたらまだc++のがマシになるが。
実装系含めたらまだc++のがマシになるが。
2019/07/25(木) 22:50:06.02ID:w/leXg8D
C++がましってどのへん?学習コストはどうしようもないとして、学習してしまった今となってはC++に戻る気とか一切しないんだけど。
2019/07/26(金) 15:42:10.78ID:I3xx9WAP
54デフォルトの名無しさん
2019/07/26(金) 18:13:40.72ID:a+EwZNsG ながいから要約たのむ
2019/07/26(金) 18:54:02.12ID:EH3/YLuD
初代wiiもいらんだろ
2019/07/26(金) 22:09:00.78ID:6wMSM/4s
>>46
pony。cliツールっていうかcoreutilsとbusyboxの代替実装とかならあるけど。
pony。cliツールっていうかcoreutilsとbusyboxの代替実装とかならあるけど。
2019/07/27(土) 01:35:00.73ID:KwccJBez
>>52
cとかより低いレイヤーの言語をバインドしようとした時、より素直。
cとかより低いレイヤーの言語をバインドしようとした時、より素直。
2019/07/27(土) 10:26:09.62ID:T7BomvTp
お前らが本当に必要としてるのはRustじゃなくて
ziglangなのでは?
ziglangなのでは?
2019/07/27(土) 10:58:34.72ID:S2cl2wQi
流行ってる言語じゃないとしんどいってocamlで学んだ
2019/07/27(土) 12:01:40.60ID:4xSO5KPL
デストラクタ的なのがあればなんでも良い
61デフォルトの名無しさん
2019/07/27(土) 17:07:58.74ID:lIukHdgf >>58
zigはGCあるからダメ
zigはGCあるからダメ
2019/07/27(土) 23:21:52.36ID:YuLtVEnV
rustがリアルタイムで使われてるの聞いたこと無いんだけど
どうせgcあるから駄目とか言ってるやつはメモリの開放タイミングが
予測不能でも致命的にならない事しかしてないんだろ?
どうせgcあるから駄目とか言ってるやつはメモリの開放タイミングが
予測不能でも致命的にならない事しかしてないんだろ?
2019/07/27(土) 23:56:46.19ID:90NMqXYM
Option<char>とStringを結合させたいんですけど、どうすればいいんですか?
2019/07/28(日) 00:12:52.45ID:BWTSPDmr
2019/07/28(日) 02:05:17.30ID:5UHV96py
let x: String = "Hello World!".toString();
s += Some(x)?;
いや知らんけど
s += Some(x)?;
いや知らんけど
2019/07/28(日) 02:07:09.62ID:5UHV96py
xはcharやったorz,
67デフォルトの名無しさん
2019/07/28(日) 09:18:55.32ID:t62k8itt リアルタイムでってなに?
目の前でrust書いてくれるってこと?
目の前でrust書いてくれるってこと?
2019/07/28(日) 09:43:05.38ID:2BtEWPhc
致命的(画面が時々固まる)
2019/07/28(日) 11:22:38.76ID:pMfSdwXX
2019/07/28(日) 12:16:23.87ID:G72VT/2G
GCは結局メモリ以外のリソースはまともに管理できなくて、自分でデストラクタ呼ぶはめになるのがつらい
2019/07/28(日) 12:24:41.52ID:p9n7KwZ9
rustでc++のtemplate<class T, size_t N>struct array{T elm[N];}みたいな事可能なの?
2019/07/28(日) 13:40:28.12ID:GSiaruU8
抜け道はあるかも知れんがジェネリクスでは型しか取れない
2019/07/28(日) 14:40:16.56ID:+9hlsOXW
2019/07/28(日) 15:01:36.78ID:+9hlsOXW
まだ実装終わってないけどnightlyなら一応使えるっぽいよ
#![feature(const_generics)]
#![feature(const_generics)]
75デフォルトの名無しさん
2019/07/28(日) 19:04:25.79ID:5UHV96py 高機能なマクロもクロージャも使えるのだから値パラメータなジェネリクスは冗長
なキモス
なキモス
2019/07/28(日) 19:07:52.98ID:XzK5p4st
C++から機能取り入れるとクソ言語化するからやめてほしい
77デフォルトの名無しさん
2019/07/28(日) 19:22:39.84ID:5UHV96py んまー値パラメータなクラステンプレートを実現しようとしたらマクロでは済まないのか
そうか
そうか
2019/07/28(日) 19:31:07.73ID:jklii+Ft
2019/07/28(日) 19:45:22.37ID:B+3CJM6Y
この国語力はやばい
2019/07/28(日) 20:15:28.70ID:60uqYffv
>>78
RustやC++のスマートポインタならスコープ抜けたときのデストラクタできれいにリソース解放できるけどGCだとできないね、って話なんだが。
それを部分的に解決する方法としてC#のusingとかがあるけど、関数を跨ぐような寿命の長いリソースには使えない。
try-finallyやGoのdeferなんて、絶対書き忘れてリソースリークするパターンだろ。
RustやC++のスマートポインタならスコープ抜けたときのデストラクタできれいにリソース解放できるけどGCだとできないね、って話なんだが。
それを部分的に解決する方法としてC#のusingとかがあるけど、関数を跨ぐような寿命の長いリソースには使えない。
try-finallyやGoのdeferなんて、絶対書き忘れてリソースリークするパターンだろ。
2019/07/28(日) 21:21:52.37ID:GSiaruU8
現状静的配列が使い物にならないから const generics は必要だと思う
2019/07/28(日) 21:26:23.70ID:B+3CJM6Y
いらねーだろ
それでどんだけ速くなんだよ
それでどんだけ速くなんだよ
2019/07/28(日) 21:30:14.25ID:GSiaruU8
ゼロコスト抽象化を標榜してる以上は行列計算をVecでやれとは言えんだろ
2019/07/28(日) 21:36:32.69ID:B+3CJM6Y
それはzero costの履き違え
2019/07/28(日) 21:37:48.82ID:GSiaruU8
お前にとってはそうなんだろう
2019/07/28(日) 23:01:30.64ID:jklii+Ft
>try-finallyやGoのdeferなんて、絶対書き忘れてリソースリークするパターンだろ。
一理あるが、資源を正しく管理するデストラクタ書くのそんなに楽じゃねーぞ。
舐めすぎだわ。
一理あるが、資源を正しく管理するデストラクタ書くのそんなに楽じゃねーぞ。
舐めすぎだわ。
2019/07/28(日) 23:39:20.86ID:G08azDw2
>>86
他言語でもさんざん書いたからデストラクタの難しさは知ってるつもりだけど、
ライブラリ作成者が注意深く書いたデストラクタをみんなで使うのと、各自finallyやdeferを正しく実装しましょう、なら前者がましでは?
他言語でもさんざん書いたからデストラクタの難しさは知ってるつもりだけど、
ライブラリ作成者が注意深く書いたデストラクタをみんなで使うのと、各自finallyやdeferを正しく実装しましょう、なら前者がましでは?
88デフォルトの名無しさん
2019/07/28(日) 23:58:54.12ID:5UHV96py ちょっデストラクタで開放処理を書けない資源とかもはやプロセスをkillするしか、
2019/07/29(月) 00:07:34.10ID:9xGY09/M
90sage
2019/07/29(月) 00:09:11.34ID:bStHYZl0 ていうかデストラクタ自体は問答無用に資源を開放するように作ればよいのであって
そうならないのは上位の設計がおかしい
例外のスローが許されないなどただでさえ制約が厳しいところに小難しいロジックを押し込んでどうするんじゃ…
資源の開放に一定の手順が必要ならそれはデストラクタの中ではなくデストラクタが呼ばれる前にすませるべきだし、
必要な手順が抜かされたみたいなバグのケースの救済までデストラクタの任に負わせるのはおかしい
資源の開放自体にエラーの危険性があるならインスタンスの製造元(ファクトリ)にエラー通知してから死ぬ等の
パターンに従うべき
そうならないのは上位の設計がおかしい
例外のスローが許されないなどただでさえ制約が厳しいところに小難しいロジックを押し込んでどうするんじゃ…
資源の開放に一定の手順が必要ならそれはデストラクタの中ではなくデストラクタが呼ばれる前にすませるべきだし、
必要な手順が抜かされたみたいなバグのケースの救済までデストラクタの任に負わせるのはおかしい
資源の開放自体にエラーの危険性があるならインスタンスの製造元(ファクトリ)にエラー通知してから死ぬ等の
パターンに従うべき
2019/07/29(月) 00:23:30.71ID:ovYGqPmP
>>89
ref objectがなんなのかよく分からないが、GCにリソース解放させる場合の問題はタイミングを制御できないことだと思ってる。
スコープを抜けて回収可能になったからといってすぐ回収されるわけではないから次の確保が早すぎると死ぬ。
まぁたいていの場合問題ないってのはあるけど、本質的にはGCに合ってないと思う。
ref objectがなんなのかよく分からないが、GCにリソース解放させる場合の問題はタイミングを制御できないことだと思ってる。
スコープを抜けて回収可能になったからといってすぐ回収されるわけではないから次の確保が早すぎると死ぬ。
まぁたいていの場合問題ないってのはあるけど、本質的にはGCに合ってないと思う。
2019/07/29(月) 00:34:54.17ID:bStHYZl0
すぐに開放されないだけの問題なら開放されるまで待てば良いではありませんか、
さすがに今日日のGCは開放可能な資源の発生と資源の獲得要求がmeetした場合に何もしないほど馬鹿ではないと思われ
(meetのトリガタイミングがなんと2回もある
致命的に問題なのはGCには資源に空きがあるように見えるが、GCが知りようがない上位のロジックで循環依存が生じる場合
ファイルをN個まで同時に複数開けるシステムで、a、bの2個しかファイルが開かれていないんだけど
スレッドAがファイルaを出力し終えた後ファイルbのクローズを待っており、スレッドBはファイルaのクローズを待ってからbを出力せんとしている場合等、
さすがに今日日のGCは開放可能な資源の発生と資源の獲得要求がmeetした場合に何もしないほど馬鹿ではないと思われ
(meetのトリガタイミングがなんと2回もある
致命的に問題なのはGCには資源に空きがあるように見えるが、GCが知りようがない上位のロジックで循環依存が生じる場合
ファイルをN個まで同時に複数開けるシステムで、a、bの2個しかファイルが開かれていないんだけど
スレッドAがファイルaを出力し終えた後ファイルbのクローズを待っており、スレッドBはファイルaのクローズを待ってからbを出力せんとしている場合等、
2019/07/29(月) 01:10:00.62ID:X0vpIRmF
2019/07/29(月) 01:17:46.83ID:ovYGqPmP
>>92
実際問題例えばC#のGCはそれくらい馬鹿ではある。
というかファイルハンドルの中身と次のリソース要求を見て、適切に回収してくれるGCってあるの?
メモリ解放のタイミングでたまたまその他のリソースも解放されてるだけでは?
実際問題例えばC#のGCはそれくらい馬鹿ではある。
というかファイルハンドルの中身と次のリソース要求を見て、適切に回収してくれるGCってあるの?
メモリ解放のタイミングでたまたまその他のリソースも解放されてるだけでは?
2019/07/29(月) 21:42:08.32ID:CSar0obt
96デフォルトの名無しさん
2019/07/30(火) 00:57:12.66ID:ZDjzCSg/ >>95
グロ
グロ
2019/07/31(水) 21:59:30.06ID:BBGtrgFp
効率的なTreeの書き方どこかに書いてあったはずなんだけど忘れてしまった
どこにかいてあるかわかるひといますか?
どこにかいてあるかわかるひといますか?
2019/07/31(水) 22:04:33.03ID:BBGtrgFp
enumをつかっていたような気がするんですが・・・
2019/08/01(木) 00:10:45.06ID:zC1laZAw
効率的なTreeってなに?
代数的データ型なら普通はsum type(rustのenum)で書くけど。
代数的データ型なら普通はsum type(rustのenum)で書くけど。
100デフォルトの名無しさん
2019/08/03(土) 11:04:41.72ID:RLY9hdXo ???@???
Rustとの戦いにつかれたのでDを触った次第
↑RustでコンパイラとかVM作ってる人のツイート
Rustってそんなに難しい?
Rustとの戦いにつかれたのでDを触った次第
↑RustでコンパイラとかVM作ってる人のツイート
Rustってそんなに難しい?
101デフォルトの名無しさん
2019/08/03(土) 13:51:49.63ID:aqiFUikh 配列で親ノードIDや子ノードのID持たせるとかじゃなかったか。
所有権引っかからんようにするとそんな感じになる。
所有権引っかからんようにするとそんな感じになる。
102デフォルトの名無しさん
2019/08/03(土) 22:29:28.05ID:Pq9Lnt2C 他言語でもGUIのグラフとかは結局そうなるんだけどな。
103デフォルトの名無しさん
2019/08/05(月) 09:41:10.02ID:VmFTmeN2 >>100
面倒くさい
面倒くさい
104デフォルトの名無しさん
2019/08/06(火) 13:13:46.53ID:trr4oLNQ Javaとの違いは何
105デフォルトの名無しさん
2019/08/07(水) 01:19:35.26ID:go9nzBX4 今日知って驚愕したのだがJavaは構造体の参照を返すということができず、
どうしても参照返ししたいときは構造体のメンバを書き換えて返すという歪な手段を使う
↓こんなやつ
class CWDPath {
String mPath = "";
}
boolean getCWD(CWDPath result) {
result.mPath = "SomeDir";
return true; // 性交ステータス
}
これはresultの寿命がmPathに代入するデータの寿命を下回らないケースでしかRustでは書けないハズ
つまりJavaはRustのアンチパターンで大々的に書くことを余儀なくされる危険な言語
どうしても参照返ししたいときは構造体のメンバを書き換えて返すという歪な手段を使う
↓こんなやつ
class CWDPath {
String mPath = "";
}
boolean getCWD(CWDPath result) {
result.mPath = "SomeDir";
return true; // 性交ステータス
}
これはresultの寿命がmPathに代入するデータの寿命を下回らないケースでしかRustでは書けないハズ
つまりJavaはRustのアンチパターンで大々的に書くことを余儀なくされる危険な言語
106デフォルトの名無しさん
2019/08/07(水) 01:49:51.15ID:KVZqz5pU 性交ステータス
107デフォルトの名無しさん
2019/08/07(水) 08:31:50.75ID:eqkXQjzY Javaすら理解できてないのにRustを使おうとするとは勇ましい
108デフォルトの名無しさん
2019/08/07(水) 12:04:18.71ID:Fq68/ECQ 何もかも間違っていて突っ込む気も起こらん
109デフォルトの名無しさん
2019/08/07(水) 21:02:26.47ID:bj+hpOaY javaに構造体はないってことくらい突っ込んでやれ。
value typeは当分先だ。
value typeは当分先だ。
110デフォルトの名無しさん
2019/08/08(木) 05:27:28.23ID:FTUf1Nuq いや正しいていうかこの話にvalue typeは関係無い(返そうとしているStringは参照型
間違っているというならreturn mPath以外の方法でgetCWD()からStringを返してみると良い
間違っているというならreturn mPath以外の方法でgetCWD()からStringを返してみると良い
111デフォルトの名無しさん
2019/08/08(木) 05:51:36.26ID:FTUf1Nuq んまー不用意に構造体と書いてしまったのは陳謝するのですよ
112デフォルトの名無しさん
2019/08/08(木) 07:38:49.45ID:097LZjtE 組み込みの値型以外は全て参照型で管理されてる事が理解できてないって事?
113デフォルトの名無しさん
2019/08/08(木) 13:27:41.32ID:+iXEwaHu Javaにおける参照はオブジェクトへのポインタのことで、RustやC++の参照とは違う概念なのだよ
114デフォルトの名無しさん
2019/08/08(木) 13:30:51.54ID:+iXEwaHu だから参照を返すという言葉の意味も Java と Rust では違う
115デフォルトの名無しさん
2019/08/08(木) 14:49:51.48ID:bpfrenBa 何言いたいのかさっぱりわからん
コンパイルエラーになるがやりたいことを書いてくれ
コンパイルエラーになるがやりたいことを書いてくれ
116デフォルトの名無しさん
2019/08/08(木) 15:16:04.89ID:6plAwatI JVM上で動くJRustはまだか?
117デフォルトの名無しさん
2019/08/08(木) 15:54:03.06ID:YYsAu0ua 皮肉や冗句を言うにも一定のセンスと知能が必要と言う証左
118デフォルトの名無しさん
2019/08/08(木) 22:35:10.82ID:FTUf1Nuq >>115
C#の例(これは動く
void Main() { string str = new string(); bool bResult = getCWD(ref str); Console.WriteLn(str); // "some_dir"が表示される }
bool getCWD(ref string str) { str = "some_dir"; return true; // 性交ステータスとしてのtrue }
Javaで同じ事をしようとすると>>105になって、Stringを返すためだけのためにCWDPathみたいなクラスを作らねばならない
>>117
藻前は顔だけは賢そうだな
C#の例(これは動く
void Main() { string str = new string(); bool bResult = getCWD(ref str); Console.WriteLn(str); // "some_dir"が表示される }
bool getCWD(ref string str) { str = "some_dir"; return true; // 性交ステータスとしてのtrue }
Javaで同じ事をしようとすると>>105になって、Stringを返すためだけのためにCWDPathみたいなクラスを作らねばならない
>>117
藻前は顔だけは賢そうだな
119デフォルトの名無しさん
2019/08/08(木) 22:43:00.72ID:+Da//rmi 脳がC言語で止まってると色々気苦労が多くて大変だな
120デフォルトの名無しさん
2019/08/08(木) 22:49:15.66ID:FTUf1Nuq121デフォルトの名無しさん
2019/08/08(木) 22:54:58.10ID:FTUf1Nuq122デフォルトの名無しさん
2019/08/08(木) 23:28:59.60ID:+Da//rmi とりあえず参照渡しという単語を調べなよ
123デフォルトの名無しさん
2019/08/08(木) 23:33:17.49ID:FTUf1Nuq 調べてなお問題があると言うなら>>122の理解にこそ問題がある
124デフォルトの名無しさん
2019/08/09(金) 00:50:26.80ID:3pQudWDx125デフォルトの名無しさん
2019/08/09(金) 01:47:43.61ID:A3Et6VBe ・カレントディレクトリを取得する
・取得の失敗を検出したい
というのが要求だとして
Javaでそんな変なことせずに
もっとまともな書き方あるから批判する前に
勉強しろや
・取得の失敗を検出したい
というのが要求だとして
Javaでそんな変なことせずに
もっとまともな書き方あるから批判する前に
勉強しろや
126デフォルトの名無しさん
2019/08/09(金) 02:00:37.01ID:hvzVkerT127デフォルトの名無しさん
2019/08/09(金) 07:24:48.24ID:L3ygUsvb optional型とかnullable型みたいなヤツは色んな言語であるわな
128デフォルトの名無しさん
2019/08/09(金) 10:03:40.29ID:Fvfs1Ycj >>120
gcあるからそんなことしない
gcあるからそんなことしない
129デフォルトの名無しさん
2019/08/09(金) 21:22:16.39ID:0u6cxkej CWDてなんなんそもそもw
pwdコマンドにあるようにワーキングディレクトリってことでいいの?
それが失敗する時があるってのが想像できない
pwdコマンドにあるようにワーキングディレクトリってことでいいの?
それが失敗する時があるってのが想像できない
130デフォルトの名無しさん
2019/08/09(金) 21:48:39.98ID:hvzVkerT 想像力が足りない
Unix だと実行中のプロセスのカレントディレクトリを消すことができるので、
そこでそのプロセスが getcwd すると No such file or directory のエラーになる
Unix だと実行中のプロセスのカレントディレクトリを消すことができるので、
そこでそのプロセスが getcwd すると No such file or directory のエラーになる
131デフォルトの名無しさん
2019/08/09(金) 22:06:06.07ID:0u6cxkej132デフォルトの名無しさん
2019/08/09(金) 22:07:54.17ID:f7i7jNks Cの知識しか無いけどJava語っちゃう痛い人が、参照渡しだの値渡しだのを問題にしたがる
Cを使えるからってプログラミングの技術全てが語れるわけじゃないのにね
Cを使えるからってプログラミングの技術全てが語れるわけじゃないのにね
133デフォルトの名無しさん
2019/08/09(金) 23:42:56.34ID:W/azuYkt go9nzBX4が最初から間違ってるのは置いといてFTUf1Nuqは結局なんだったの?
134デフォルトの名無しさん
2019/08/10(土) 00:03:38.47ID:6zXh0uMN 僕はこう解釈したんだという日記
135デフォルトの名無しさん
2019/08/10(土) 13:42:02.08ID:lQ/anG82 >>124
一連のレスの中で漏れが一度も「参照渡し」という用語を使っていない件について:
参照型の参照渡しする、という状況は比較的新しい話で、
Javaはあえてかなんだか知らんが古来からある値型の参照渡しに類似の動作に対応していない
つまり呼び出し先で引数として渡された参照型自体を交換したり出力したりできない
JavaScriptやC#は対応している(呼び出し先で参照型自体を交換できいる。C#の例は>>118。refよりoutキーワードを使ったほうが良かったかもしれん…)
>>126
それで十分使いやすいと思われたのならそれで良いが、後発言語が参照型の参照渡しに対応しているという事実、
>>133
C++脳に汚染されていたのでclassとstructの区別がなかったんじゃ
一連のレスの中で漏れが一度も「参照渡し」という用語を使っていない件について:
参照型の参照渡しする、という状況は比較的新しい話で、
Javaはあえてかなんだか知らんが古来からある値型の参照渡しに類似の動作に対応していない
つまり呼び出し先で引数として渡された参照型自体を交換したり出力したりできない
JavaScriptやC#は対応している(呼び出し先で参照型自体を交換できいる。C#の例は>>118。refよりoutキーワードを使ったほうが良かったかもしれん…)
>>126
それで十分使いやすいと思われたのならそれで良いが、後発言語が参照型の参照渡しに対応しているという事実、
>>133
C++脳に汚染されていたのでclassとstructの区別がなかったんじゃ
136デフォルトの名無しさん
2019/08/10(土) 13:45:47.02ID:lQ/anG82 すまんまつがえたorz
JavaScriptの参照の渡し方はJavaと同じやった、
JavaScriptの参照の渡し方はJavaと同じやった、
137デフォルトの名無しさん
2019/08/10(土) 13:58:32.51ID:lQ/anG82138デフォルトの名無しさん
2019/08/10(土) 14:09:40.55ID:HCvhh7in 書き込むスレをいつまで経っても間違ったまま
そのことにすら無自覚で気付けないやつは
何してもだめ
そのことにすら無自覚で気付けないやつは
何してもだめ
139デフォルトの名無しさん
2019/08/10(土) 16:21:29.50ID:SX6PRfyx とりあえずrust全く関係なくね?
140デフォルトの名無しさん
2019/08/10(土) 16:31:04.83ID:dHQR6WD8 Java入門スレに来て何言ってるの?
141デフォルトの名無しさん
2019/08/10(土) 17:36:21.57ID:EB3chQuK Cのときからある混乱だよな
単にポインタ渡してるだけなのに
ポインタを値渡してるだけなのに
「ポインタ渡し」だとか「参照渡し」だとか言っちゃう
そーいうブログや個人サイトが今もいっぱいある
そもそもこんな状況だから
これについての議論はスタート地点からもうやる気ほぼ出ない
単にポインタ渡してるだけなのに
ポインタを値渡してるだけなのに
「ポインタ渡し」だとか「参照渡し」だとか言っちゃう
そーいうブログや個人サイトが今もいっぱいある
そもそもこんな状況だから
これについての議論はスタート地点からもうやる気ほぼ出ない
142デフォルトの名無しさん
2019/08/10(土) 18:04:04.89ID:lQ/anG82 >ポインタを値渡してるだけ
フォートランスレにでもしてほしいのけ?
フォートランスレにでもしてほしいのけ?
143デフォルトの名無しさん
2019/08/10(土) 18:12:12.30ID:0AyH8q+k144デフォルトの名無しさん
2019/08/10(土) 18:38:36.22ID:EB3chQuK ×単にポインタ渡してるだけなのに
○単にポインタを渡してるだけなのに
失礼、こう書いたほうが良かったねこの場合
○単にポインタを渡してるだけなのに
失礼、こう書いたほうが良かったねこの場合
145デフォルトの名無しさん
2019/08/10(土) 18:39:45.26ID:EB3chQuK ×ポインタを値渡してるだけなのに
○ポインタを値渡ししてるだけなのに
こっちは完全なるタイプミス
○ポインタを値渡ししてるだけなのに
こっちは完全なるタイプミス
146デフォルトの名無しさん
2019/08/10(土) 18:41:40.47ID:SA5rOGgq 佐渡さんと書いて、サドさんと読む人と、サワタリさんと読む人がいるから、紛らわしい!
147デフォルトの名無しさん
2019/08/10(土) 21:24:12.25ID:IjQF8yoC Javaに文句付ける以前に色々基礎知識足りない
148デフォルトの名無しさん
2019/08/10(土) 22:21:45.80ID:Wv9w5VNh じゃばはお茶ですか?
149デフォルトの名無しさん
2019/08/10(土) 23:44:39.00ID:lQ/anG82 Rustは身から出た錆
150デフォルトの名無しさん
2019/08/10(土) 23:47:37.52ID:nUaGQOUP 名前渡しとか嫌いじゃないよ
151デフォルトの名無しさん
2019/08/11(日) 23:57:30.28ID:8dEtrjnB 結局、JITがあるからRustよりJavaの方が速いんじゃないんの?
152デフォルトの名無しさん
2019/08/12(月) 02:07:24.69ID:Enx+gBa4 ベンチマークサイトだとRustのが早いっぽい
https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/rust-java.html
gcがない分p999とかのレイテンシはRustの圧勝になりそう
https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/rust-java.html
gcがない分p999とかのレイテンシはRustの圧勝になりそう
153デフォルトの名無しさん
2019/08/12(月) 07:11:17.23ID:SKKCu+1X RustとかC/C++は機械語までコンパイルするから速いんじゃなくて無駄なことをしないから速いのでJITとかそういう問題ではない
154デフォルトの名無しさん
2019/08/12(月) 09:05:01.58ID:QXujyVaw JITコンパイルで性的コンパイル結果より速くなるというのは都市伝説
JITのしくみを考えたらワカル
理論上は分岐の実行時統計をとって最適化することによりローカルループがありえないぐらい爆速になって
JITコンパイラ大勝利!と言うことも考えられないではないが統計をとるオーバーヘッドが生じるし
そこまでやっているJITコンパイラは商用のにはないはず
JITのしくみを考えたらワカル
理論上は分岐の実行時統計をとって最適化することによりローカルループがありえないぐらい爆速になって
JITコンパイラ大勝利!と言うことも考えられないではないが統計をとるオーバーヘッドが生じるし
そこまでやっているJITコンパイラは商用のにはないはず
155デフォルトの名無しさん
2019/08/12(月) 09:21:07.56ID:87XSRLvd 性的コンパイル
156デフォルトの名無しさん
2019/08/13(火) 02:44:50.22ID:6DdfCCpK えっち
157デフォルトの名無しさん
2019/08/13(火) 08:48:40.97ID:fZHFtPHB 僕の女の子とのリンカーはどこ?
158デフォルトの名無しさん
2019/08/13(火) 09:05:59.58ID:6zR84Szz 優しいリンカー
159デフォルトの名無しさん
2019/08/16(金) 18:52:17.34ID:0C07dzAa Rust学び始めたけど難しすぎる...
慣れるのにどれくらいかかるだろうか
ちなc/c++経験ほとんどなし
関数型言語は少しだけ分かるっていう程度
手を出すのは無謀?
慣れるのにどれくらいかかるだろうか
ちなc/c++経験ほとんどなし
関数型言語は少しだけ分かるっていう程度
手を出すのは無謀?
160デフォルトの名無しさん
2019/08/16(金) 19:38:11.01ID:T3AL3pts なにを作ろうとしてるのかによるよ
わたしは二ヶ月くらいかかったかな
わたしは二ヶ月くらいかかったかな
161デフォルトの名無しさん
2019/08/16(金) 21:24:02.93ID:eUh+GOjO async/await、勉強するのに良いものある?
162デフォルトの名無しさん
2019/08/16(金) 23:18:30.16ID:T3AL3pts まだstableじゃないからなんとも
tokio::netとかはasync/awaitでサンプル出してたりするけどどうかな
tokio::netとかはasync/awaitでサンプル出してたりするけどどうかな
163デフォルトの名無しさん
2019/08/16(金) 23:43:23.26ID:wNXKziRk164デフォルトの名無しさん
2019/08/16(金) 23:44:14.39ID:thOVjQYW cくらいはやっとらんとなんでこんな事してるんだって思うだけだろ。
メモリイメージがないならrustなんか使う意味がない。
メモリイメージがないならrustなんか使う意味がない。
165デフォルトの名無しさん
2019/08/17(土) 06:44:20.91ID:7ZAIflK1 そんなに大仰なことかなあ?
書いてればそのうち分かるっしょ
書いてればそのうち分かるっしょ
166デフォルトの名無しさん
2019/08/17(土) 07:11:11.72ID:vMO96NW+ メモリイメージちゃんとしてるならCでいいだろ
167デフォルトの名無しさん
2019/08/17(土) 09:56:37.40ID:wqyoFpBF それな
168デフォルトの名無しさん
2019/08/17(土) 10:00:51.09ID:BwITc4Uh169デフォルトの名無しさん
2019/08/17(土) 10:46:08.44ID:9n/jDoCG 寧ろ関数型プログラミングに慣れ親しんだ人ならimmutableなオブジェクトだけでプログラミングしてしまい、
Rustが何も言わなかったりして…
Rustが何も言わなかったりして…
170デフォルトの名無しさん
2019/08/17(土) 10:51:56.69ID:0Qq/TjEN171デフォルトの名無しさん
2019/08/17(土) 11:28:04.92ID:w0cmMCtq >>170
ガンバ
ガンバ
172デフォルトの名無しさん
2019/08/17(土) 12:01:03.69ID:ZxqGKdv4 なんでこんなめんどくさいことやってんだ
というのを理解するにはC/C++の知識があると早い
というのを理解するにはC/C++の知識があると早い
173デフォルトの名無しさん
2019/08/17(土) 12:55:15.72ID:5bHKRRQf C++で痛い目にあった人達が作った言語だからな
174デフォルトの名無しさん
2019/08/17(土) 13:26:05.40ID:ON6K/mb3 苦しめられたほうがラクなんよね
一見苦しい縛りの結果、整理された構造という一粒の宝石を残してくれる
一見苦しい縛りの結果、整理された構造という一粒の宝石を残してくれる
175デフォルトの名無しさん
2019/08/18(日) 13:26:59.04ID:j9EKYeL3 お邪魔します
エディタを紹介してもらえませんか?
The Rust Programming Language を読みながら自習しています
第12章 Refactoring to Improve Modularity and Error Handling の最後の節
Splitting Code into a Library Crate まできたのですが
( https://doc.rust-lang.org/book/ch12-03-improving-error-handling-and-modularity.html#splitting-code-into-a-library-crate )
Listing 12-14 のように src/main.rs を変更すると
エディタが minigrep なんて知らんと文句を言いはじめました
これでは Config や run を補完で出してくれません
mod lib;
use lib as minigrep
を入れれば補完してくれますが、cargo build が通りません
この状況に対応しているエディタを紹介してくださると大変助かります
エディタを紹介してもらえませんか?
The Rust Programming Language を読みながら自習しています
第12章 Refactoring to Improve Modularity and Error Handling の最後の節
Splitting Code into a Library Crate まできたのですが
( https://doc.rust-lang.org/book/ch12-03-improving-error-handling-and-modularity.html#splitting-code-into-a-library-crate )
Listing 12-14 のように src/main.rs を変更すると
エディタが minigrep なんて知らんと文句を言いはじめました
これでは Config や run を補完で出してくれません
mod lib;
use lib as minigrep
を入れれば補完してくれますが、cargo build が通りません
この状況に対応しているエディタを紹介してくださると大変助かります
176デフォルトの名無しさん
2019/08/18(日) 16:43:08.87ID:HnqnQvDm -use lib as minigrep
+use lib::Config;
+use lib::Config;
177デフォルトの名無しさん
2019/08/18(日) 16:53:31.22ID:HnqnQvDm ごめんなんか勘違いしてた
vscodeで普通に通るよ
vscodeで普通に通るよ
178デフォルトの名無しさん
2019/08/18(日) 17:36:07.73ID:j9EKYeL3 助かります
ありがとう
ありがとう
179デフォルトの名無しさん
2019/08/20(火) 14:01:19.61ID:gT4uMEVl トレイト境界をトレイト拘束に置換する拡張機能を書いた
180デフォルトの名無しさん
2019/08/20(火) 15:27:32.97ID:hKY2TKrp RustのArcとかBoxとか複数組み合わせてちゃんと動くってイメージが湧かないんだけどそんなもん?
181デフォルトの名無しさん
2019/08/20(火) 15:37:20.44ID:WLDVnSvX トレイトしばり
182デフォルトの名無しさん
2019/08/20(火) 18:36:33.19ID:oenkL37i そんなもんってどんなもんや?
183デフォルトの名無しさん
2019/08/21(水) 12:01:21.04ID:inIEkQey ちゃんと動く
184デフォルトの名無しさん
2019/08/21(水) 22:01:34.30ID:YTqLEh4a >>180
それ関連のバグが確か上がってたはず。
それ関連のバグが確か上がってたはず。
185デフォルトの名無しさん
2019/08/21(水) 22:17:56.76ID:zqKd/4GT 嘘乙。
違うというなら証拠を出せ。
違うというなら証拠を出せ。
186デフォルトの名無しさん
2019/08/22(木) 12:21:26.09ID:7th+iyEr バグを見たことがあるからちゃんと動くというイメージが沸かないのか?
187デフォルトの名無しさん
2019/08/26(月) 20:55:57.18ID:hNXwMePN https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=8c44bed658726ada0deff031799664b7
1. std::env::current_exe()で実行ファイルのフルパスを得る
2. file_name()でファイル名だけにする
3. to_str()で&strにする
4. 途中でErrやNoneが返ってきた場合はデフォルトの値"foo"を使う
ということをやりたいのですが、エラーでビルドできません。
どのように書けばいいでしょうか?
1. std::env::current_exe()で実行ファイルのフルパスを得る
2. file_name()でファイル名だけにする
3. to_str()で&strにする
4. 途中でErrやNoneが返ってきた場合はデフォルトの値"foo"を使う
ということをやりたいのですが、エラーでビルドできません。
どのように書けばいいでしょうか?
188デフォルトの名無しさん
2019/08/26(月) 21:16:34.03ID:e+wL38/M std::env::current_exe() は PathBuf の"値"を返す
PathBuf::file_name() は PathBuf の中身の部分的な参照を返す
PathBuf::file_name() で生成される &OsStr を参照から値に変換するか、
std::env::current_exe() で生成されるPathBufを変数に束縛して所有権取らせてから、改めて参照を取得するかしないとダメ
PathBuf::file_name() は PathBuf の中身の部分的な参照を返す
PathBuf::file_name() で生成される &OsStr を参照から値に変換するか、
std::env::current_exe() で生成されるPathBufを変数に束縛して所有権取らせてから、改めて参照を取得するかしないとダメ
189デフォルトの名無しさん
2019/08/27(火) 19:57:54.12ID:u0PkUgfg >>188
ありがとうございます、所有権を意識してto_ownedを使ったらいけました。
ありがとうございます、所有権を意識してto_ownedを使ったらいけました。
190デフォルトの名無しさん
2019/08/29(木) 18:47:18.36ID:DitGoMrU >>27の元ネタだが
We need a safer systems programming language
ttps://msrc-blog.microsoft.com/2019/07/18/we-need-a-safer-systems-programming-language/
Why Rust for safe systems programming
ttps://msrc-blog.microsoft.com/2019/07/22/why-rust-for-safe-systems-programming/
あたりを読むとあっちの会社はホント合理的だなと痛感する。C/C++を用いた安全な大規模システムの開発はムリゲーとし
同業他社の方針やツールを認め導入してしまう。日本の大手システム屋にこういう事を出来るところってあるんだろうか
We need a safer systems programming language
ttps://msrc-blog.microsoft.com/2019/07/18/we-need-a-safer-systems-programming-language/
Why Rust for safe systems programming
ttps://msrc-blog.microsoft.com/2019/07/22/why-rust-for-safe-systems-programming/
あたりを読むとあっちの会社はホント合理的だなと痛感する。C/C++を用いた安全な大規模システムの開発はムリゲーとし
同業他社の方針やツールを認め導入してしまう。日本の大手システム屋にこういう事を出来るところってあるんだろうか
191デフォルトの名無しさん
2019/08/29(木) 20:39:56.79ID:7sVXLGAA 合理的ね。。
「戦うプログラマー」読む限りはそうは思えんが。
都合のいいとこだけ切り取ってるな。
むしろ無理やり言語使わせるとかもろSIerのやり口だろ。ばかすぎる。
「戦うプログラマー」読む限りはそうは思えんが。
都合のいいとこだけ切り取ってるな。
むしろ無理やり言語使わせるとかもろSIerのやり口だろ。ばかすぎる。
192デフォルトの名無しさん
2019/08/29(木) 21:33:28.37ID:Bp0lvm+/ 闘うプログラマーと言えば当時からC++は魔境過ぎてヤベェみたいな記載があって笑った記憶ある。
193デフォルトの名無しさん
2019/08/30(金) 12:23:15.14ID:Q74gFuRN 無理矢理使わせてるということは今後出てくるMSプロダクトは全部Rust製になるのか?
194デフォルトの名無しさん
2019/08/30(金) 12:35:18.57ID:ATaHXAWZ195デフォルトの名無しさん
2019/08/30(金) 13:06:45.92ID:KMS/yKjh JavaScript → TypeScript(型チェック) とか C++ → Rust(借用チェック) みたいな
用途・特性が似通った言語でより安全な方を使わせるってのは、単なるリスクマネジメントであって
SIerのナンデモJava事案とは違うと思う
用途・特性が似通った言語でより安全な方を使わせるってのは、単なるリスクマネジメントであって
SIerのナンデモJava事案とは違うと思う
196デフォルトの名無しさん
2019/08/30(金) 15:21:18.59ID:cnXxJRuX ポストC/C++の座にRustを据えるかどうかはともかくC/C+お払い箱は確定事項じゃね
つーかMSRCの記事の何処にも無理矢理使わせているなんて書いていないぞ?
つーかMSRCの記事の何処にも無理矢理使わせているなんて書いていないぞ?
197デフォルトの名無しさん
2019/08/30(金) 15:28:58.11ID:GEn/r+mZ Cは永遠に不滅です
C++は知らん
C++は知らん
198デフォルトの名無しさん
2019/08/30(金) 18:16:53.32ID:XBvkkCPm Rust学び始めたけど噂通りむずい...
やりたいのはcli/tuiとかwebなので習得が無理そうだったら大人しくGoを使うことにする...(´・ω・`)
やりたいのはcli/tuiとかwebなので習得が無理そうだったら大人しくGoを使うことにする...(´・ω・`)
199デフォルトの名無しさん
2019/08/30(金) 18:25:46.18ID:uWYoaax5 結局C以外でOSは厳しくないかと思うのよね
200デフォルトの名無しさん
2019/08/30(金) 22:21:40.26ID:Q3blvaVM201デフォルトの名無しさん
2019/08/30(金) 22:22:25.51ID:HNXTienF OSはアセンブラで書くのが常識だった
202デフォルトの名無しさん
2019/08/30(金) 22:58:53.71ID:Okk0GWIA >>200
OS書かなくても自家製メモリ管理作ってみれば想像できるだろ。
OS書かなくても自家製メモリ管理作ってみれば想像できるだろ。
203デフォルトの名無しさん
2019/08/31(土) 00:42:16.72ID:aUMbNTSE ちゃんとしたmallocを作ること自体が難しいのであってCかRustかは難しさへは影響しない
204デフォルトの名無しさん
2019/08/31(土) 15:15:02.18ID:j8rV2wO1 GCはクソ!だからRust最高!
とイキがってた奴がボローチェッカにボコボコにされてGCの良さを体感するまでが通過儀礼
どっかにドリルないですかね。>187みたいな問題がサラッと解けるようになりたい
とイキがってた奴がボローチェッカにボコボコにされてGCの良さを体感するまでが通過儀礼
どっかにドリルないですかね。>187みたいな問題がサラッと解けるようになりたい
205デフォルトの名無しさん
2019/08/31(土) 16:16:15.52ID:pCVRgCCA GCがクソだと思ったからRust使うという意識なかったな
206デフォルトの名無しさん
2019/08/31(土) 20:44:28.04ID:BqsPi00f >>187 みたいな感じのはリファレンス読んで関数やメソッドが参照返すのか値返すのか調べるだけ
207デフォルトの名無しさん
2019/08/31(土) 21:13:02.78ID:apjBRhon Rustはボローチェッカーのご機嫌取りが必要だが
GCある言語で性能が欲しいとか言い出すとGCのご機嫌取りが始まる
GCある言語で性能が欲しいとか言い出すとGCのご機嫌取りが始まる
208デフォルトの名無しさん
2019/08/31(土) 21:20:45.92ID:ny+pXiR9 結局乗りこなしたものが勝ちか、
209デフォルトの名無しさん
2019/08/31(土) 21:23:30.02ID:z8QlYv6E 所有権という概念をつかむのに苦労はしたけど、結果的にはプログラミングを簡単にしてくれていると思う
210デフォルトの名無しさん
2019/08/31(土) 23:46:50.72ID:4X1UTBje ライブラリの開発者以外に所有権意識させたのは良いと思う
211デフォルトの名無しさん
2019/09/01(日) 01:29:28.40ID:sYwYgS29 GCが糞っていうより
糞実装のGCが多過ぎて
大抵の人はGCで糞な思いをするから
GCが糞だと言う誤解というか評判になってるだけ
実際糞だが
糞実装のGCが多過ぎて
大抵の人はGCで糞な思いをするから
GCが糞だと言う誤解というか評判になってるだけ
実際糞だが
212デフォルトの名無しさん
2019/09/01(日) 02:04:31.88ID:n9Ep1hQW ガベッジだって言う人もいるけど
俺は宝物って呼んでる
俺は宝物って呼んでる
213デフォルトの名無しさん
2019/09/01(日) 04:36:12.23ID:t9AOVqXM 世界を止めて宝物集めするプログラム
214デフォルトの名無しさん
2019/09/01(日) 10:19:52.00ID:ee5jndrf それで >>187 はどう書くのが定番なの?
215デフォルトの名無しさん
2019/09/01(日) 10:31:43.36ID:kCJZVLuH 続きを読むには会員登録が必要です
216デフォルトの名無しさん
2019/09/01(日) 11:33:11.94ID:gzRpR9B4 ライフタイムパラメータの省略ルールはマジ糞
217デフォルトの名無しさん
2019/09/01(日) 17:44:41.81ID:ugxLNVG7 >>198
ぼくも(´・ω・`)
ぼくも(´・ω・`)
218デフォルトの名無しさん
2019/09/01(日) 20:06:47.18ID:WaPsmCL5 クロージャの中で?が使えない…
パトラッシュ、僕はもう疲れたよ(´・ω・`)
パトラッシュ、僕はもう疲れたよ(´・ω・`)
219デフォルトの名無しさん
2019/09/01(日) 21:46:45.96ID:M++YO15h 同じ処理するにしてもRustだと複雑で冗長になるんだよな
もしかして糞言語なんじゃね?
もしかして糞言語なんじゃね?
220デフォルトの名無しさん
2019/09/01(日) 21:54:48.86ID:yg5jHaTZ221デフォルトの名無しさん
2019/09/02(月) 00:09:16.32ID:O1/eX6ND メモリ壊して苦労するか
パフォーマンスで苦労するか
コーディングで苦労するか
お好きな物をどうぞ
パフォーマンスで苦労するか
コーディングで苦労するか
お好きな物をどうぞ
222デフォルトの名無しさん
2019/09/02(月) 01:49:49.02ID:ZvAgdUy5 >>221
C++17以降なら全部実現できるよ
C++17以降なら全部実現できるよ
223デフォルトの名無しさん
2019/09/02(月) 04:32:52.76ID:VKrglic+ >>219
+1
+1
224デフォルトの名無しさん
2019/09/02(月) 10:25:41.82ID:+zTucd5y Bookを6章まで読んだ俺が >>187 を書いたらこうなった
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=dc60559b7af47298d305be80b340ee98
&strじゃなくてStringだけど
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=dc60559b7af47298d305be80b340ee98
&strじゃなくてStringだけど
225デフォルトの名無しさん
2019/09/02(月) 17:43:48.84ID:c28qQK2V 俺はこう
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=aa72b77d2eebc44833b647e46b13e020
Stringは必然と思う
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=aa72b77d2eebc44833b647e46b13e020
Stringは必然と思う
226デフォルトの名無しさん
2019/09/02(月) 17:52:48.76ID:XClX12is そういや、String(のclone)を一生懸命に避けてほんとに意味があるのか
コードを無駄に複雑化させただけなんじゃないかと悩む事が多い
コードを無駄に複雑化させただけなんじゃないかと悩む事が多い
227デフォルトの名無しさん
2019/09/02(月) 21:13:54.24ID:c28qQK2V 執着する必要はないと思うけど、そんな複雑になる?
228デフォルトの名無しさん
2019/09/02(月) 21:43:41.81ID:+zTucd5y >>225 だとOsStringですけど、Stringにするにはどうすれば・・・?
229デフォルトの名無しさん
2019/09/02(月) 22:09:52.04ID:c28qQK2V こうかな
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=91e57950a6bf6c922ff4f3d0b7531a0b
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=91e57950a6bf6c922ff4f3d0b7531a0b
230デフォルトの名無しさん
2019/09/02(月) 22:48:02.88ID:+zTucd5y なるほど
Derefが必要ない場合は直接書いちゃえばいけるのか
ありがとうございます
Derefが必要ない場合は直接書いちゃえばいけるのか
ありがとうございます
231デフォルトの名無しさん
2019/09/02(月) 23:19:28.73ID:IDvyRsTF >>229
curry化と部分束縛が欲しくなる
curry化と部分束縛が欲しくなる
232デフォルトの名無しさん
2019/09/02(月) 23:39:57.31ID:c28qQK2V え、こんな短いコードで?
233デフォルトの名無しさん
2019/09/03(火) 00:05:15.13ID:i5o7yZzz なんでもかんでもメソッドチェーンにしないで適当なところで束縛した方がRustのコードは読みやすくなる
234デフォルトの名無しさん
2019/09/03(火) 00:26:49.25ID:vCzpmz3O それはあるな。シャドーイングできるから変数名に悩まないし、
単に長くなったところで再束縛すればいい。
単に長くなったところで再束縛すればいい。
235デフォルトの名無しさん
2019/09/03(火) 11:07:53.94ID:CeNKL5mb 界隈の潮流では「部分的なc++化」というものがあり、Javaですらジェネリクス/テンプレートを取り入れた
rustもそうなる
rustもそうなる
236デフォルトの名無しさん
2019/09/03(火) 12:43:41.50ID:JzHlK+VD あれ?もうあるもんかと思ってた
237デフォルトの名無しさん
2019/09/03(火) 16:01:22.65ID:BrE32zWk ジェネリクスはあるよね
238デフォルトの名無しさん
2019/09/03(火) 16:30:08.77ID:9SeNEnhh 関数型言語で優雅にやってたことを
マクロの延長みたいな形で泥臭く実装するのがC++化
マクロの延長みたいな形で泥臭く実装するのがC++化
239デフォルトの名無しさん
2019/09/03(火) 18:15:35.61ID:sT1C29Io そもそもC++化の潮流なんてあるか?
各言語それぞれ取り入れあってるとは思うが。
各言語それぞれ取り入れあってるとは思うが。
240デフォルトの名無しさん
2019/09/03(火) 18:21:34.78ID:kwJMCUaG 仕様がごちゃごちゃすることをC++化と呼んでるだけでしょ
241デフォルトの名無しさん
2019/09/03(火) 19:54:14.07ID:66Dg9oep ランタイム速度は落ちない?じゃいれるべ。
がc++の潮流
がc++の潮流
242デフォルトの名無しさん
2019/09/03(火) 22:37:59.52ID:++bLAvti いや、javaのジェネリックスとC++のテンプレートの区別が付かないやつの言うことがそもそもおかしい。
パラメタ多相とメタプログラミングは別もんだぞ。むしろ最近のテンプレートがパラメタ多相に寄ってきたんだろ。
パラメタ多相とメタプログラミングは別もんだぞ。むしろ最近のテンプレートがパラメタ多相に寄ってきたんだろ。
243デフォルトの名無しさん
2019/09/03(火) 22:50:06.30ID:BrE32zWk なんだか難しい言葉がいっぱいあるんだね
rustのが簡単でいいや
rustのが簡単でいいや
244デフォルトの名無しさん
2019/09/03(火) 22:52:35.24ID:k5ZNWOhV Rustむずい😭
245デフォルトの名無しさん
2019/09/04(水) 07:28:03.17ID:YY7F2+PA Rustは難しくないよ
ただコンパイラがいけずなだけ
ただコンパイラがいけずなだけ
246デフォルトの名無しさん
2019/09/04(水) 08:42:51.41ID:PFx+vIBX >>242
こういう輩が一番何もわかってないタイプ。
そりゃとりあえず違う言う解けば違うところは一つくらいは見つかるだろうよ。
どこが違ってどこが同じか話さずに用語を使ってけんかにしかならん。
少なくともこれくらいの説明は必要。
https://qiita.com/matarillo/items/4870bb974f7a1900ef7c
こういう輩が一番何もわかってないタイプ。
そりゃとりあえず違う言う解けば違うところは一つくらいは見つかるだろうよ。
どこが違ってどこが同じか話さずに用語を使ってけんかにしかならん。
少なくともこれくらいの説明は必要。
https://qiita.com/matarillo/items/4870bb974f7a1900ef7c
247デフォルトの名無しさん
2019/09/04(水) 11:39:08.73ID:IWibi2Vo >>246
結局人の文章引用してる()
結局人の文章引用してる()
248デフォルトの名無しさん
2019/09/04(水) 11:39:12.24ID:IWibi2Vo >>246
結局人の文章引用してる()
結局人の文章引用してる()
249デフォルトの名無しさん
2019/09/04(水) 11:53:42.64ID:2WEW3nlz 本人の可能性
250デフォルトの名無しさん
2019/09/04(水) 12:02:33.30ID:rDpqFBPU 俺は一流のエンジニアだぞ
なんてったって毎日Qiitaを見てるし足りてない知識はQiitaで検索して補ってる
なんてったって毎日Qiitaを見てるし足りてない知識はQiitaで検索して補ってる
251デフォルトの名無しさん
2019/09/04(水) 13:07:39.19ID:OPoewtpz そんなもんちょっと調べりゃすぐわかるのに
252デフォルトの名無しさん
2019/09/04(水) 18:49:08.58ID:U5+bjz/t 俺はなんとか多相なんて調べない
どうでもいいし
どうでもいいし
253デフォルトの名無しさん
2019/09/04(水) 19:02:15.65ID:2Txd6K3L こないだ秋葉原で「まれいたそーまれいたそー」ってうつむきながら呟いてた黒髪ロン毛のデブがいたんだけど、
この「マレイ多相」とは何ですか?
この「マレイ多相」とは何ですか?
254デフォルトの名無しさん
2019/09/04(水) 19:57:18.15ID:IIaKpyB5 ???「黙れ多相!」
255デフォルトの名無しさん
2019/09/04(水) 21:12:03.63ID:QzZNrHDq m array 多相といってモナディックな扱いの配列における多相性である(民明書房「世界の多相」より)
256デフォルトの名無しさん
2019/09/05(木) 00:15:36.96ID:QWLCfgVe 袖すり合うも多相の縁
257デフォルトの名無しさん
2019/09/05(木) 00:56:25.25ID:FxCb5fYw では中世においてしばしば見られた介錯い多相とは?
258デフォルトの名無しさん
2019/09/05(木) 08:01:29.13ID:3AoluiiY 結局誰も理解してないっていうw
259デフォルトの名無しさん
2019/09/05(木) 09:14:01.74ID:z5gxm4PC パラメタ多相とテンプレートを並べるのはおかしい
多相は性質
多相は性質
260デフォルトの名無しさん
2019/09/05(木) 09:14:42.45ID:Y6QHjuf9 じゃあ >>242 に言及するけどC++のテンプレートも本来はパラメトリック多相としての役割を元々は期待して導入された
パラメトリック多相は >>246 のリンクでもあるように元々の型記述に追加パラメータとなるトークンを渡す事で多相性、誤解を恐れずに言えば型の制約を緩くして記述量を減らすものである
よって多相性によって単一の記述から複数の型に対する実装の様に見えるものを生成できる
この単一の記述から複数の実装を生成できるというのが本質的にメタプログラミング的で、C++のテンプレートはそのレイヤーがハードウェアに近いが故にコンパイル時に展開される事
また再帰が可能である事と幽霊型のような型を作れる事とSFINAEに加えて非型テンプレートパラメタにより複数の実装を生成するメタプログラミング的な運用が特別目立った
これのコンパイルエラーの煩雑さや理解の難しさからC++以降のパラメトリック多相用言語機能は敢えてメタプログラミングがしにくいようにRustでは非型パラメタは与えられなかったり(そうする提案も現在あるが)
多相性の側面を強調して利便性を上げるために部分型や構造的部分型(これまた >>246 のサブタイピング多相の一種で、同等のメソッド(関数)やフィールドがある場合にそれらを派生型と見做す)の記述構文を導入したりしている
最後の型パラメタに対する部分型記述に関してはC++もConceptとして導入するとのことだがそれはまた別の話だろう
長文失礼
パラメトリック多相は >>246 のリンクでもあるように元々の型記述に追加パラメータとなるトークンを渡す事で多相性、誤解を恐れずに言えば型の制約を緩くして記述量を減らすものである
よって多相性によって単一の記述から複数の型に対する実装の様に見えるものを生成できる
この単一の記述から複数の実装を生成できるというのが本質的にメタプログラミング的で、C++のテンプレートはそのレイヤーがハードウェアに近いが故にコンパイル時に展開される事
また再帰が可能である事と幽霊型のような型を作れる事とSFINAEに加えて非型テンプレートパラメタにより複数の実装を生成するメタプログラミング的な運用が特別目立った
これのコンパイルエラーの煩雑さや理解の難しさからC++以降のパラメトリック多相用言語機能は敢えてメタプログラミングがしにくいようにRustでは非型パラメタは与えられなかったり(そうする提案も現在あるが)
多相性の側面を強調して利便性を上げるために部分型や構造的部分型(これまた >>246 のサブタイピング多相の一種で、同等のメソッド(関数)やフィールドがある場合にそれらを派生型と見做す)の記述構文を導入したりしている
最後の型パラメタに対する部分型記述に関してはC++もConceptとして導入するとのことだがそれはまた別の話だろう
長文失礼
261デフォルトの名無しさん
2019/09/05(木) 13:08:36.58ID:aevPv9ig https://doc.rust-lang.org/std/pin/index.html
このページのExample: self-referential structの構造体Unmovableのフィールドslice: NonNull<String>を、
Stringの実装してるトレイトのトレイトオブジェクト(slice: NoneNull<Box<Display>> みたいに)とすることって出来ないでしょうか
このページのExample: self-referential structの構造体Unmovableのフィールドslice: NonNull<String>を、
Stringの実装してるトレイトのトレイトオブジェクト(slice: NoneNull<Box<Display>> みたいに)とすることって出来ないでしょうか
262デフォルトの名無しさん
2019/09/05(木) 18:33:11.32ID:FLvFWYrW >>260
Rust の const generics はすでに提案段階を過ぎてて短期的目標に入ってるゾ
Rust の const generics はすでに提案段階を過ぎてて短期的目標に入ってるゾ
263デフォルトの名無しさん
2019/09/05(木) 21:06:15.78ID:Y6QHjuf9264デフォルトの名無しさん
2019/09/05(木) 21:34:25.18ID:B6sVqyux Python歴半年(=プログラミング歴)とかの人がいきなりRustに手を出すのって無謀でしょうか?
265デフォルトの名無しさん
2019/09/05(木) 22:31:27.10ID:O7Dd9aK6 いいんじゃないの
ただなんでわざわざこんな事すんだよやりずれぇわ死ね
と思う回数が経験積んだ人より増えそうだけど
ただなんでわざわざこんな事すんだよやりずれぇわ死ね
と思う回数が経験積んだ人より増えそうだけど
266デフォルトの名無しさん
2019/09/05(木) 23:11:49.08ID:KiRcB+KC それはすらいね
267デフォルトの名無しさん
2019/09/06(金) 19:19:12.72ID:d+J9jL2b いろんな言語やったあげくC++に不満がある人にとっての解がRust
この両方を満たしていない人にとってはピンとこねえのがRust
この両方を満たしていない人にとってはピンとこねえのがRust
268デフォルトの名無しさん
2019/09/06(金) 19:40:53.97ID:1QpLZiiB メモリをぶっ壊して涙目になったことがある人向け
269デフォルトの名無しさん
2019/09/06(金) 23:45:30.10ID:f24aCaox 謎のメモリリークで徹夜するハメになった人向け
俺か
俺か
270デフォルトの名無しさん
2019/09/07(土) 02:53:55.86ID:VkB2thai メモリぶっ壊して(物理)涙目
271デフォルトの名無しさん
2019/09/07(土) 10:51:27.79ID:rn3Y4CEm Rust使うよりメモリモジュール買い換えた方が良くない?
272デフォルトの名無しさん
2019/09/07(土) 20:04:48.19ID:KiJcQcmB rustは安全に開発できるというのは本当か??何故バッファエラーは起きた?
https://jvndb.jvn.jp/ja/contents/2019/JVNDB-2019-008825.html
JVNDB-2019-008825
Rust 用 slice-deque crate におけるバッファエラーの脆弱性
https://jvndb.jvn.jp/ja/contents/2019/JVNDB-2019-008825.html
JVNDB-2019-008825
Rust 用 slice-deque crate におけるバッファエラーの脆弱性
273デフォルトの名無しさん
2019/09/07(土) 20:58:29.50ID:6BNVy7tp (´-`).。oO(なんでだろう?)
274デフォルトの名無しさん
2019/09/07(土) 22:06:13.68ID:914xKiQ0 crates.ioでunsafe何ヶ所使ってるか表示して欲しいわ
275デフォルトの名無しさん
2019/09/07(土) 22:19:57.54ID:fv/Y0QyY そしてunsafeがモナドで包まれるように…
276デフォルトの名無しさん
2019/09/08(日) 00:03:54.78ID:KXmQOAwm スライスみたいなことをしようとしたら本質的にはどうにもならんだろ。
安全性か効率化か結局選ぶことになる。
安全性か効率化か結局選ぶことになる。
277デフォルトの名無しさん
2019/09/08(日) 01:39:50.98ID:D+CIKcq7 モナドって、、もすかすてRustってHaskell並に面倒なん?
278デフォルトの名無しさん
2019/09/08(日) 09:53:10.07ID:46Wp6heU 21世紀の現代では何を作っても一週間程度で複雑さはMAXに達する
プログラミング言語のRustでもそれは同じ
プログラミング言語のRustでもそれは同じ
279デフォルトの名無しさん
2019/09/09(月) 09:56:40.65ID:950wQDvR let mut v = vec!["zero".to_string(), "one".to_string()];
v[0] = v[1];
これがダメなのも対処も、まあわかるようになったのですが
error[E0507]: cannot move out of index of `std::vec::Vec<std::string::String>`
というエラーメッセージがわかりません
どういう流れでこのメッセージが出るのでしょうか
v[0] = v[1];
これがダメなのも対処も、まあわかるようになったのですが
error[E0507]: cannot move out of index of `std::vec::Vec<std::string::String>`
というエラーメッセージがわかりません
どういう流れでこのメッセージが出るのでしょうか
280デフォルトの名無しさん
2019/09/09(月) 10:08:00.36ID:elDbcwTD >>279
StringがCopy traitを実装してないからコピーできない
StringがCopy traitを実装してないからコピーできない
281デフォルトの名無しさん
2019/09/09(月) 10:16:14.57ID:950wQDvR いやそれはわかる
エラーメッセージの意味がわからない
どこがどうだからこのメッセージになるのか具体的に理解したい
エラーメッセージの意味がわからない
どこがどうだからこのメッセージになるのか具体的に理解したい
282デフォルトの名無しさん
2019/09/09(月) 10:51:58.70ID:950wQDvR なんというかメッセージのindexがよくわからない感じ
メッセージを日本語にするとどうなるんでしょう
メッセージを日本語にするとどうなるんでしょう
283デフォルトの名無しさん
2019/09/09(月) 11:06:00.37ID:elDbcwTD >>281
逆に考えて v[1] をまんまとムーブ出来たら、その跡地はどうなるの?
逆に考えて v[1] をまんまとムーブ出来たら、その跡地はどうなるの?
284デフォルトの名無しさん
2019/09/09(月) 11:12:50.90ID:01u4b8kP out of indexっていうけど、index内なんじゃないの?って疑問じゃないの?
俺はわからない
俺はわからない
285デフォルトの名無しさん
2019/09/09(月) 11:16:35.82ID:8pEaV4bB out of indexではなくてmove out ofで出ていくって意味。
move out of borrowed contentとかと同じ。
move out of borrowed contentとかと同じ。
286デフォルトの名無しさん
2019/09/09(月) 11:17:42.46ID:950wQDvR なんか move out of 〜で引っ越すとか出ていくという意味があるらしいんだけど
それでも index がよくわからなくて悩んでます
それでも index がよくわからなくて悩んでます
287デフォルトの名無しさん
2019/09/09(月) 11:32:45.67ID:8pEaV4bB indexは[]演算子を提供してるIndexトレイトのindexメソッドかな。
288デフォルトの名無しさん
2019/09/09(月) 11:39:50.47ID:xIOozne9 v[0]使うからindexの意味がややこしいんでは
let x = v[1]; でも同じエラーになるのを見たら、indexアクセス経由で値をmoveする(=引き剥がす)のはまかりならんと分かる
でコピーできるなら値が残るので問題にならない
let x = v[1]; でも同じエラーになるのを見たら、indexアクセス経由で値をmoveする(=引き剥がす)のはまかりならんと分かる
でコピーできるなら値が残るので問題にならない
289デフォルトの名無しさん
2019/09/09(月) 11:43:51.77ID:950wQDvR Vec<String>のindex (メソッドの戻り値) はmoveできない
と言ってるわけね。理解した。ありがとう。
と言ってるわけね。理解した。ありがとう。
290デフォルトの名無しさん
2019/09/09(月) 11:45:42.52ID:950wQDvR ん? こっちかも。
Vec<String>のindex (メソッドの) 戻り値はmoveできない
Vec<String>のindex (メソッドの) 戻り値はmoveできない
291デフォルトの名無しさん
2019/09/09(月) 11:46:37.64ID:xIOozne9 279 と 284 別人だった。ゴメン
292デフォルトの名無しさん
2019/09/09(月) 11:47:06.05ID:+2RtkJJ5 ……エラーメッセージの検討と解釈が必要なところまで真似なくてもいいのに
293デフォルトの名無しさん
2019/09/09(月) 11:53:41.02ID:elDbcwTD Trait std::ops::Index
container[index] is actually syntactic sugar for *container.index(index), but only when used as an immutable value. If a mutable value is requested, IndexMut is used instead.
This allows nice things such as let value = v[index] if the type of value implements Copy.
container[index] is actually syntactic sugar for *container.index(index), but only when used as an immutable value. If a mutable value is requested, IndexMut is used instead.
This allows nice things such as let value = v[index] if the type of value implements Copy.
294デフォルトの名無しさん
2019/09/09(月) 12:50:41.27ID:950wQDvR まず move out of を一塊にして、index は添え字と考えてわけがわからなく・・・。
out of index を indexの戻り値 とはまったく思いつきませんでした。
わかってしまうともう他の読み方はできません。
最初から日本語に訳して欲しいとお願いすべきだったかも。
お騒がせしました。
out of index を indexの戻り値 とはまったく思いつきませんでした。
わかってしまうともう他の読み方はできません。
最初から日本語に訳して欲しいとお願いすべきだったかも。
お騒がせしました。
295デフォルトの名無しさん
2019/09/09(月) 18:32:42.49ID:SJyzIZeS rustの日本語ブック、ドキュメントはかなり前からプルリクがマージされてないから期待薄いかも
296デフォルトの名無しさん
2019/09/10(火) 19:31:44.26ID:q6JhvtCo >>295
どこのリポジトリの話?
どこのリポジトリの話?
297デフォルトの名無しさん
2019/09/12(木) 10:55:58.45ID:LoRkJG5F 思い付きなんだけど
Box を &!、 Rc を &# で書けるシンタックスシュガーがあったらどうだろう
Box<T>を&!Tと書いたり、Rc::new(data)を&#dataと書けたりしたら?
Box を &!、 Rc を &# で書けるシンタックスシュガーがあったらどうだろう
Box<T>を&!Tと書いたり、Rc::new(data)を&#dataと書けたりしたら?
298デフォルトの名無しさん
2019/09/12(木) 12:01:05.66ID:oxTdK/zC プログラマがコストを払うことに罪悪感を抱くようにあえて冗長にしてるんじゃなかったかな
299デフォルトの名無しさん
2019/09/12(木) 12:42:23.02ID:nmIq/oGm ゴルファーは来んな
300デフォルトの名無しさん
2019/09/12(木) 13:22:56.79ID:+G4RGhf3 そういう記法実装するような思想の言語なら真っ先に mut が簡略化されてると思う
301デフォルトの名無しさん
2019/09/12(木) 18:15:04.09ID:Meniefv0 環境毎のクレートのバージョン違いでコンパイル通らないようなことがないようにバージョン指定させるくせにコンパイラのバージョン違いのせいでコンパイル通らないとかクソ過ぎひん?
302デフォルトの名無しさん
2019/09/12(木) 18:20:44.52ID:oxTdK/zC rust-toolchainを作りなされ
303デフォルトの名無しさん
2019/09/12(木) 19:29:03.99ID:hoEtlcNn 無知な煽りカスにまで親切に教えてくれてありがとうおかげで無事通った(`;ω;´)
304デフォルトの名無しさん
2019/09/12(木) 21:04:34.30ID:jNKjrGpq オレオレ糖衣構文が欲しければ一対一変換するトランスパイラでも書けばいいだろ
305デフォルトの名無しさん
2019/09/13(金) 00:04:32.53ID:hO7OHJyv 昔は Box が ~ で Rc が @ だった
306デフォルトの名無しさん
2019/09/13(金) 00:19:06.54ID:17Jpcv+R 俺は逆にlifetimeパラメータ省略をやめるべきだと思ってる。
307デフォルトの名無しさん
2019/09/13(金) 09:11:20.49ID:ccyj1bAE ちゃんと勉強しようと思ったらオライリー本を読むべき?
308デフォルトの名無しさん
2019/09/13(金) 09:57:21.64ID:LrhujYjR 日本の場合オライリー本買ったら原著はマニングだった、なんてことも。
309デフォルトの名無しさん
2019/09/13(金) 14:13:51.27ID:ohNILJsT 公式リファレンスで良いやん
310デフォルトの名無しさん
2019/09/13(金) 14:57:59.88ID:R+lGpgh7 俺は物理本の方がやるぞという気になるから買った
311デフォルトの名無しさん
2019/09/13(金) 15:01:06.58ID:8tLP3I45 test.rs:
fn main() {
println!("{}", "hoge");
}
でコンパイル出来るのに、rust/src/libcore/num/dec2flt/algorithm.rsの関数内にprintln!を書いても
error: cannot find macro `println!` in this scope
となるのは何でなん?
コンパイル出来る用に教えてください
ちなみに、rustc自体はちゃんとコンパイル出来てtest.rsのビルドと実行は出来てます
fn main() {
println!("{}", "hoge");
}
でコンパイル出来るのに、rust/src/libcore/num/dec2flt/algorithm.rsの関数内にprintln!を書いても
error: cannot find macro `println!` in this scope
となるのは何でなん?
コンパイル出来る用に教えてください
ちなみに、rustc自体はちゃんとコンパイル出来てtest.rsのビルドと実行は出来てます
312デフォルトの名無しさん
2019/09/13(金) 15:13:08.13ID:8tLP3I45 use std;
use std::io;
と先頭に追加しても
error[E0432]: unresolved import `std`
と言われる…
stdすら簡単に使わせてくれないとか恐ろしく敷居が高い言語なのは分かったけど、>>311のprintln!だけは何とか動かしたいので、
よろしくお願いしますm(_ _)m
use std::io;
と先頭に追加しても
error[E0432]: unresolved import `std`
と言われる…
stdすら簡単に使わせてくれないとか恐ろしく敷居が高い言語なのは分かったけど、>>311のprintln!だけは何とか動かしたいので、
よろしくお願いしますm(_ _)m
313デフォルトの名無しさん
2019/09/13(金) 16:13:13.40ID:FZa6ZvSI 釣れますか?
314デフォルトの名無しさん
2019/09/13(金) 16:22:57.80ID:8tLP3I45315デフォルトの名無しさん
2019/09/13(金) 17:00:45.98ID:ucGTEY8O 正直釣りにしか見えないが…。
なぜ初心者がいきなりcoreライブラリいじろうとしてるの?
あとcoreはmallocとかもない環境で動く必要があるから
とてもprintlnなんて無理だと思うけど。
なぜ初心者がいきなりcoreライブラリいじろうとしてるの?
あとcoreはmallocとかもない環境で動く必要があるから
とてもprintlnなんて無理だと思うけど。
316デフォルトの名無しさん
2019/09/14(土) 18:11:14.79ID:vJ0EfuKq (V) (V)
ヽ∧∧∧ 丿
┌<┌ ゚ ∀ ゚>┐ ラスタシアーン!!
ヽ∧∧∧ 丿
┌<┌ ゚ ∀ ゚>┐ ラスタシアーン!!
317デフォルトの名無しさん
2019/09/14(土) 18:17:32.07ID:wDFkwEGw318デフォルトの名無しさん
2019/09/15(日) 00:25:56.87ID:84ndTw+e ヌルポチェック境界チェックしてたら遅くなるに決まってるやん
Cはそんなことしなくて済むから爆速な訳で
Cはそんなことしなくて済むから爆速な訳で
319デフォルトの名無しさん
2019/09/15(日) 11:32:00.80ID:iFCAy1qK 絶対にめくれないからパンツいらないスカートで
アスレチックでもスカイダイビングだもなんでもするのがCだわな
アスレチックでもスカイダイビングだもなんでもするのがCだわな
320デフォルトの名無しさん
2019/09/15(日) 11:37:40.55ID:Ms2MnLBB 素晴らしい例えだ
感動した
感動した
321デフォルトの名無しさん
2019/09/15(日) 12:03:39.49ID:IVfbaIvY いいねw
322デフォルトの名無しさん
2019/09/15(日) 12:40:15.54ID:RmuGhz/Y そして落っこちて死ぬと
http://peaceman.jugem.jp/?eid=2290
http://peaceman.jugem.jp/?eid=2290
323デフォルトの名無しさん
2019/09/15(日) 12:41:41.15ID:p6YweuI4 何だこのストレートに脳天に突き刺さる説明!?
324デフォルトの名無しさん
2019/09/15(日) 14:06:50.28ID:JVfSd4XU 風呂でもセックスでもパンツ脱がないのがRustだわな
325デフォルトの名無しさん
2019/09/15(日) 14:41:05.29ID:CYqvBFjr スカートも不要なのがC
326デフォルトの名無しさん
2019/09/15(日) 15:51:33.74ID:+SG+NzSN デバッガー「見えたぁ!!!」
327デフォルトの名無しさん
2019/09/15(日) 17:00:20.75ID:kg331Dv1 パンツ履かないC言語
鉄壁のパンツRust
鉄壁のパンツRust
328デフォルトの名無しさん
2019/09/15(日) 22:55:46.82ID:IVfbaIvY Rustはむしろ貞操帯
329デフォルトの名無しさん
2019/09/16(月) 01:53:49.38ID:6Bt41uEu Rust勉強し始めたんだけど、公式ドキュメント読み終わったら何しよう
330デフォルトの名無しさん
2019/09/16(月) 02:52:51.25ID:h38vlOtE その貞操帯鍵穴錆びてるよ…
331デフォルトの名無しさん
2019/09/16(月) 08:18:42.11ID:jUyoTXTl 何をするにも貞操帯外したり付けたりガチャガチャして複雑になるんだよなあ
332デフォルトの名無しさん
2019/09/16(月) 08:35:42.66ID:K83on/o4 >>331
これ
これ
333デフォルトの名無しさん
2019/09/16(月) 08:38:49.73ID:5uT5V90s そんなふうに考えていた時期が俺にもありました
でも今はderef coercionでハッピーな毎日です
でも今はderef coercionでハッピーな毎日です
334デフォルトの名無しさん
2019/09/17(火) 05:38:58.62ID:yfhtQLgD これ読んでたんだけど
https://stackoverflow.com/questions/50786894/rust-trait-and-its-default-implementation
やっぱ 回答みたいに impl 側でがちゃがちゃやるしかないん?
おまいらならもっとうまくヤりそう
https://stackoverflow.com/questions/50786894/rust-trait-and-its-default-implementation
やっぱ 回答みたいに impl 側でがちゃがちゃやるしかないん?
おまいらならもっとうまくヤりそう
335デフォルトの名無しさん
2019/09/17(火) 08:51:01.90ID:/BOEHyZy Tのままでチェックするからこうなるんでu32にしてチェックしていいならそうする
TもCopy + Into<u32>でトレイト拘束するだけですむ
TもCopy + Into<u32>でトレイト拘束するだけですむ
336デフォルトの名無しさん
2019/09/17(火) 08:53:25.78ID:tflGIHXS 単にv1.0相当のコードをマクロで生成するのでいい気がするが。
337デフォルトの名無しさん
2019/09/17(火) 23:28:59.67ID:yfhtQLgD なんだかんだマクロ最強か
338デフォルトの名無しさん
2019/09/18(水) 00:07:56.14ID:H2DpgLxy 数年後、Rustの世間的な評価はマクロが濫用されてるからクソ
になってる気がする
になってる気がする
339デフォルトの名無しさん
2019/09/18(水) 08:28:44.98ID:no1kSscq そりゃ言語拡張性からいったらマクロは最強だよ。
そんなことは30前にlispが示してる。
そんなことは30前にlispが示してる。
340デフォルトの名無しさん
2019/09/18(水) 08:40:04.21ID:PxzURkNk 何をマクロにするかだよね
341デフォルトの名無しさん
2019/09/18(水) 10:23:10.82ID:L8SHYgAR342デフォルトの名無しさん
2019/09/18(水) 10:47:59.35ID:pbP4krHb ✗ Rustのマクロが汎用されているからクソ
○ プリプロセッサで単純に置換する不健全なマクロを汎用するからクソ
Rustはまだましなほう
○ プリプロセッサで単純に置換する不健全なマクロを汎用するからクソ
Rustはまだましなほう
343デフォルトの名無しさん
2019/09/18(水) 11:34:11.09ID:RM25JK7K ライブラリで定義するのはいいがプロジェクト内ではレビューの時に面倒だからなるべく書きたくないな
344デフォルトの名無しさん
2019/09/18(水) 13:02:58.98ID:TjjBk4yd 頻出パターンならマクロになってる方がレビューしやすい
345デフォルトの名無しさん
2019/09/18(水) 13:03:25.81ID:TjjBk4yd Cのマクロと違って見た目からマクロであることが明らかだし害は少ない
346デフォルトの名無しさん
2019/09/18(水) 13:41:17.68ID:1cXUqFYA 汎用する?
347デフォルトの名無しさん
2019/09/18(水) 14:40:03.73ID:5wL1TG3Q 直接依存するクレートのfeatureはdependenciesに記述できますが、依存するクレートが更に依存するクレートのfeatureをセットしたいときはどうすれば良いんでしょうか
348デフォルトの名無しさん
2019/09/18(水) 15:00:15.00ID:f+hbVZ57 エアプだからよく知らんけど依存クレートが依存x2クレートのfeature使うなら依存クレートのtomlにfeature書いてあるし、
依存クレート経由しないで依存x2クレート使うなら自クレートが直接依存してるわけだから自クレートのtomlにfeature書くだけじゃないの?
依存クレート経由しないで依存x2クレート使うなら自クレートが直接依存してるわけだから自クレートのtomlにfeature書くだけじゃないの?
349デフォルトの名無しさん
2019/09/21(土) 22:48:09.77ID:KOc79te2 TRPLのPDF版10章まで読んだけど挫折しそう
350デフォルトの名無しさん
2019/09/21(土) 23:26:15.34ID:ajCyJ6wo アホに良いコードは書けないのだ
アホでも書けるとかいう奴は、アホかアホな組織に属してるかその両方かだ
その両方かだ、って一度言ってみたかったんだ
アホでも書けるとかいう奴は、アホかアホな組織に属してるかその両方かだ
その両方かだ、って一度言ってみたかったんだ
351デフォルトの名無しさん
2019/09/21(土) 23:27:32.62ID:ajCyJ6wo 書くところ間違ったアホです
352デフォルトの名無しさん
2019/09/21(土) 23:54:56.27ID:B7P1QhOW 世の中アホが書いたコンパイラの教科書が広く出回っているから紛らわしいな
353デフォルトの名無しさん
2019/09/22(日) 12:11:36.94ID:8mgJSnoC アホじゃなくてエイホだっつーの
354デフォルトの名無しさん
2019/09/22(日) 12:22:35.80ID:OEThTvH6 ajo ← スペイン語で発音しろ
355デフォルトの名無しさん
2019/09/22(日) 13:20:45.75ID:NWulzMwt AWK
356デフォルトの名無しさん
2019/09/25(水) 16:41:02.11ID:GHCxkzpX ローカル変数を意図的に snake_case じゃなく書きたいんだが、警告を出さない方法ある?
例えば win32 API 関連を扱う時にやはり camelCase がスマートに思えるシーンがあるんだ
例えば win32 API 関連を扱う時にやはり camelCase がスマートに思えるシーンがあるんだ
357デフォルトの名無しさん
2019/09/25(水) 16:56:24.39ID:r0+GDB9/ allow(non_snake_case)
を使いたまへ
を使いたまへ
358356
2019/09/25(水) 18:23:59.57ID:GHCxkzpX359デフォルトの名無しさん
2019/09/25(水) 18:52:38.83ID:YV2E2PPu そんなことで警告出るのか
360デフォルトの名無しさん
2019/09/25(水) 18:54:51.99ID:it7hFznu ノンスネークケースを表す識別子がスネークケースとはいかがなものか。
allow(non_snake_case)
これ自身を
allow(nonSnakeCase)
と書きたいものである
allow(non_snake_case)
これ自身を
allow(nonSnakeCase)
と書きたいものである
361デフォルトの名無しさん
2019/09/25(水) 20:08:08.16ID:r0+GDB9/ そんなことって言うけど大事なことだよね
362デフォルトの名無しさん
2019/09/25(水) 20:21:48.81ID:bkoUXP+/ ErrorやWarningを出力するときにHelpやNoteで解説も出力してくれてすごく助かる
363デフォルトの名無しさん
2019/09/25(水) 22:38:57.35ID:LBtfjA7U IEEE top programming language 2019が公開
https://spectrum.ieee.org/computing/software/the-top-programming-languages-2019
Rは5位や
https://spectrum.ieee.org/computing/software/the-top-programming-languages-2019
Rは5位や
364デフォルトの名無しさん
2019/09/25(水) 22:53:25.25ID:68BFbOjP えっ
365デフォルトの名無しさん
2019/09/25(水) 23:26:32.08ID:rQhNlpv9 どういうことなの…
366デフォルトの名無しさん
2019/09/25(水) 23:55:26.38ID:mTIaTH5b ここはRはRでもRustスレだぞ
367デフォルトの名無しさん
2019/09/25(水) 23:57:15.10ID:8yvlK+3a ほとんどいっしょじゃん
368デフォルトの名無しさん
2019/09/26(木) 16:03:54.65ID:JiUn+jUB ジェネリクスとPhantomData使って特定の関数呼んだかとかの条件付けるんならせめてエラーメッセージもちゃんとして欲しい(´・ω・`)
369デフォルトの名無しさん
2019/09/26(木) 16:19:41.45ID:qa4bTo/t 要らない何も捨ててしまおう君を探し彷徨うマイソウッ!
370デフォルトの名無しさん
2019/09/26(木) 17:11:23.47ID:RE9M+3kx 関数呼んだかチェックを実行時でなくてコンパイル時にできるってこと?
371デフォルトの名無しさん
2019/09/26(木) 23:30:20.63ID:HeylAp30 Rust 1.38.0リリース!
372デフォルトの名無しさん
2019/09/27(金) 02:38:10.86ID:boczQ2su キタ━━━━(゚∀゚)━━━━!!
373デフォルトの名無しさん
2019/09/27(金) 13:19:26.24ID:I3+hYE7s RustとRの違い
R
データサイエンティストが仕事で使う
言語として結果を出している
速度は残念ながら遅い
Rust
陰キャが気持ちよくなるために使う
実績ナシ
速度は速いらしい(ソース無し)
R
データサイエンティストが仕事で使う
言語として結果を出している
速度は残念ながら遅い
Rust
陰キャが気持ちよくなるために使う
実績ナシ
速度は速いらしい(ソース無し)
374デフォルトの名無しさん
2019/09/27(金) 13:24:28.05ID:bGFj4S5H R指定
375デフォルトの名無しさん
2019/09/27(金) 14:09:17.54ID:foryHhOm RustとRubyの違い
とか書くとスレが荒れる時代はもう過去なのかな
とか書くとスレが荒れる時代はもう過去なのかな
376デフォルトの名無しさん
2019/09/27(金) 15:06:25.40ID:I3+hYE7s RubyとRustの違い
Ruby
陽キャのおもちゃ
負債作成の実績がある
遅い
Rust
陰キャのおもちゃ
なにも作られてないので負債も作られていない
さすがにRubyよりは速い
Ruby
陽キャのおもちゃ
負債作成の実績がある
遅い
Rust
陰キャのおもちゃ
なにも作られてないので負債も作られていない
さすがにRubyよりは速い
377デフォルトの名無しさん
2019/09/27(金) 15:10:10.66ID:FRvVNNut FirefoxのCSSエンジンとかFirecrackerとかDropboxとかnpmとかあるけど見たくないヤツには見えないからなあ
378デフォルトの名無しさん
2019/09/27(金) 18:38:35.49ID:/s5L2MEw 自分では書きたくない言語
確定申告のようなコーディングスタイル
確定申告のようなコーディングスタイル
379デフォルトの名無しさん
2019/09/27(金) 19:04:11.92ID:ikgA/i06 >確定申告
わかる
わかる
380デフォルトの名無しさん
2019/09/27(金) 20:01:19.53ID:PO8lPJ5D dieselなんかこれじゃない感あるなと思ったらアクティブRecord作った人が作ってるのか
代替ないのかね
代替ないのかね
381デフォルトの名無しさん
2019/09/28(土) 13:12:58.36ID:VxLIFoZc382デフォルトの名無しさん
2019/09/28(土) 19:09:22.19ID:kbZ6IYig RustネイティブでQtやGtkレベルのツールキットがほすぃ(´・ω・`)
383デフォルトの名無しさん
2019/09/28(土) 22:50:10.69ID:gNXUW3Qt どれもやる気なくてダメポ
ttps://gitlab.com/bloom42/research/rust_gui_ecosystem
ttps://gitlab.com/bloom42/research/rust_gui_ecosystem
384デフォルトの名無しさん
2019/09/29(日) 02:52:49.38ID:TRtZnyIq >>382
ぼくも(´・ω・`)
ぼくも(´・ω・`)
385デフォルトの名無しさん
2019/09/29(日) 13:43:42.91ID:FBG2HAFw 人それぞれだと思うんであくまで参考に聞かせて欲しいんだけど
どれくらいのサイズまで#[derive(Copy)]つけます?
どれくらいのサイズまで#[derive(Copy)]つけます?
386デフォルトの名無しさん
2019/09/29(日) 15:19:26.29ID:i6efVVcg Copyって所有権の話であってサイズとは関係なくない?
387デフォルトの名無しさん
2019/09/29(日) 16:30:03.01ID:L34oTjKk 所有権の観点からCopy実装してはならないケースはあるだろうけど、
してもしなくてもいい場合に考慮するのはサイズと意味だろ。
サイズに関して言えば、自分はu64の10倍くらいまでって感じ。
してもしなくてもいい場合に考慮するのはサイズと意味だろ。
サイズに関して言えば、自分はu64の10倍くらいまでって感じ。
388デフォルトの名無しさん
2019/09/29(日) 18:25:18.99ID:hzqyoCtf389デフォルトの名無しさん
2019/09/29(日) 19:21:30.01ID:GZbu7mvl 極力付けないな
ぱっと見分かんないから
ぱっと見分かんないから
390デフォルトの名無しさん
2019/09/29(日) 20:25:18.89ID:FBG2HAFw いろいろ感謝
よく例題にありそうな
struct Point { x: i32, y: i32 }
みたいなのなら#[derive(Copy)]しても害はないかなと思って聞いてみた
速度を考えてサイズがusizeの3〜4倍ぐらいまでが相場かなと思ったんだけどね
よく例題にありそうな
struct Point { x: i32, y: i32 }
みたいなのなら#[derive(Copy)]しても害はないかなと思って聞いてみた
速度を考えてサイズがusizeの3〜4倍ぐらいまでが相場かなと思ったんだけどね
391デフォルトの名無しさん
2019/09/29(日) 20:46:09.39ID:SwLAQNn/ 俺が間違ってんのかな、どうもCopyとMoveの意味を勘違いしてるような…
https://doc.rust-lang.org/std/marker/trait.Copy.html
こことかにも書いてあるけどMoveでもCopyでも構造体の値自体は(所有権の意味ではなくmemcpyとしての意味での)コピーされるんだから一緒じゃないの?
https://doc.rust-lang.org/std/marker/trait.Copy.html
こことかにも書いてあるけどMoveでもCopyでも構造体の値自体は(所有権の意味ではなくmemcpyとしての意味での)コピーされるんだから一緒じゃないの?
392デフォルトの名無しさん
2019/09/29(日) 21:03:36.26ID:L34oTjKk 例えば
let x = y;
と
let x = y.clone();
があったときに前者はノーコストで後者は結構重いかもしれないって感覚があると思うけど、
大きなstructにCopyを実装すると前者で大きなmemcpyが発生してびっくりする、という話。
let x = y;
と
let x = y.clone();
があったときに前者はノーコストで後者は結構重いかもしれないって感覚があると思うけど、
大きなstructにCopyを実装すると前者で大きなmemcpyが発生してびっくりする、という話。
393デフォルトの名無しさん
2019/09/29(日) 21:26:23.34ID:FBG2HAFw イメージした状況は違うけどそんな感じ
参照経由で扱いたい大きなデータなのに
うっかりコピーされる状況にしちゃって勝手にコピーされるのはちょっと
でも小さいデータならコピーされてもいい
参照経由で扱いたい大きなデータなのに
うっかりコピーされる状況にしちゃって勝手にコピーされるのはちょっと
でも小さいデータならコピーされてもいい
394デフォルトの名無しさん
2019/09/29(日) 21:30:49.24ID:PihB9u3J MicrosoftのC#のドキュメントに何バイトまでstruct (C#における#[derive(Copy)])使う方がいいか
書いてあるのを見た気がする
値は忘れた
書いてあるのを見た気がする
値は忘れた
395デフォルトの名無しさん
2019/09/29(日) 21:33:28.20ID:GZbu7mvl Sizedなのは当然としてクリッピーなりラストシーが怒ってくれれば気軽に使えるだけどな
396デフォルトの名無しさん
2019/09/29(日) 22:03:15.24ID:ciotleRh >>394
クラスまたは構造体の選択
https://docs.microsoft.com/ja-jp/dotnet/standard/design-guidelines/choosing-between-class-and-struct
> インスタンスのサイズは 16 バイト未満である。
C#では16byte (128bit) か
クラスまたは構造体の選択
https://docs.microsoft.com/ja-jp/dotnet/standard/design-guidelines/choosing-between-class-and-struct
> インスタンスのサイズは 16 バイト未満である。
C#では16byte (128bit) か
397デフォルトの名無しさん
2019/09/29(日) 23:57:00.22ID:6uuCovZS 使用頻度にも依るんだから計測しろよ
別に難しいことじゃ無いし
別に難しいことじゃ無いし
398デフォルトの名無しさん
2019/09/30(月) 00:27:00.93ID:k5ErHMsi >>392>>393
Copyを実装してようがいまいが(=Move)
let x = y;
したのならどちらも同様にその構造体自体のmemcpyによる複製は行われてるよ?
(もちろんフィールド内の参照が指す先の話じゃなく)
Copyを実装してようがいまいが(=Move)
let x = y;
したのならどちらも同様にその構造体自体のmemcpyによる複製は行われてるよ?
(もちろんフィールド内の参照が指す先の話じゃなく)
399デフォルトの名無しさん
2019/09/30(月) 06:40:12.68ID:URkXaUjC それはわかってるつもり
関数定義で引数を参照にしそこねた場合とかをイメージしてた
Copyつきだとmoveされずに残るから気づきにくい
関数定義で引数を参照にしそこねた場合とかをイメージしてた
Copyつきだとmoveされずに残るから気づきにくい
400デフォルトの名無しさん
2019/09/30(月) 08:53:42.19ID:i9kRAMDA それで問題なく動いてるならどうでもいいだろ
遅かったら直せば?
どれだけ速かろうが、なんら価値を産まないプログラムの価値はゼロだよ
遅かったら直せば?
どれだけ速かろうが、なんら価値を産まないプログラムの価値はゼロだよ
401デフォルトの名無しさん
2019/09/30(月) 09:35:07.62ID:URkXaUjC402デフォルトの名無しさん
2019/09/30(月) 09:49:38.90ID:Fmg7ESu9 呼び出し規約でレジスタに乗る範囲は意識するかな
大きいのは論外だとして、小さいのは
プロファイルとっても表面化しないまま積み重なっていくだけだから
遅かったらあとで直すってのはまず実施されないよね
大きいのは論外だとして、小さいのは
プロファイルとっても表面化しないまま積み重なっていくだけだから
遅かったらあとで直すってのはまず実施されないよね
403デフォルトの名無しさん
2019/09/30(月) 10:10:48.53ID:4XC9Ks9U 価値を生まないプログラムの価値はゼロ
とかいうひどい重言
とかいうひどい重言
404デフォルトの名無しさん
2019/09/30(月) 10:27:48.78ID:Fmg7ESu9 でも速いソフトウェアは価値があるよね、一般的に
405デフォルトの名無しさん
2019/09/30(月) 10:45:45.14ID:mReccqCd >>399
しつこくてごめんね、でも分かってるようには思えないなぁ
CopyだろうがMoveだろうがメモリの使用量も速度も何も変わらないよ?
>>391に書いてあるけど複製前の値が使えるか使えないかっていう、所有権の違いだけ
It's important to note that in these two examples, the only difference is whether you are allowed to access x after the assignment.
Under the hood, both a copy and a move can result in bits being copied in memory, although this is sometimes optimized away.
CopyとMoveの違いはassign後のxにアクセスできるか出来ないかの違いしかない
内部的にはどちらもビット単位のコピーが行われる
When should my type be Copy?
Generally speaking, if your type can implement Copy, it should.
Keep in mind, though, that implementing Copy is part of the public API of your type.
If the type might become non-Copy in the future, it could be prudent to omit the Copy implementation now, to avoid a breaking API change.
一般的にCopyが実装可能ならするべき
将来的に非Copyになる予定ならAPIが変わることになるので実装しないべき
しつこくてごめんね、でも分かってるようには思えないなぁ
CopyだろうがMoveだろうがメモリの使用量も速度も何も変わらないよ?
>>391に書いてあるけど複製前の値が使えるか使えないかっていう、所有権の違いだけ
It's important to note that in these two examples, the only difference is whether you are allowed to access x after the assignment.
Under the hood, both a copy and a move can result in bits being copied in memory, although this is sometimes optimized away.
CopyとMoveの違いはassign後のxにアクセスできるか出来ないかの違いしかない
内部的にはどちらもビット単位のコピーが行われる
When should my type be Copy?
Generally speaking, if your type can implement Copy, it should.
Keep in mind, though, that implementing Copy is part of the public API of your type.
If the type might become non-Copy in the future, it could be prudent to omit the Copy implementation now, to avoid a breaking API change.
一般的にCopyが実装可能ならするべき
将来的に非Copyになる予定ならAPIが変わることになるので実装しないべき
406デフォルトの名無しさん
2019/09/30(月) 11:23:56.92ID:ZVXF2Iws moveのmemcpy()って最適化でだいたい消えるんじゃないの?
407デフォルトの名無しさん
2019/09/30(月) 11:43:56.12ID:URkXaUjC408デフォルトの名無しさん
2019/09/30(月) 12:46:09.32ID:/ExrEdFZ >>382
X.orgとWin32はいいとしてCocoaが厄介だな
X.orgとWin32はいいとしてCocoaが厄介だな
409デフォルトの名無しさん
2019/09/30(月) 13:02:43.26ID:7L7I6CKJ 128bitくらいまでならコピーでいいんじゃね
ttps://www.forrestthewoods.com/blog/should-small-rust-structs-be-passed-by-copy-or-by-borrow/
ttps://www.forrestthewoods.com/blog/should-small-rust-structs-be-passed-by-copy-or-by-borrow/
410デフォルトの名無しさん
2019/09/30(月) 15:22:11.50ID:zXgxGRIB although this is sometimes optimized away.
の部分も訳してよ
の部分も訳してよ
411デフォルトの名無しさん
2019/09/30(月) 16:59:35.99ID:/ExrEdFZ じょぶじょぶ〜
とりま、場合によっては最適化されるっしょ
とりま、場合によっては最適化されるっしょ
412デフォルトの名無しさん
2019/10/01(火) 20:25:14.82ID:lajlXQ9x moveでも何かコピーされるの知らんかった。どうしてなの?
413デフォルトの名無しさん
2019/10/01(火) 20:50:44.63ID:fK9M+/VL このレベルの高速化が必要な処理なら #[inline] つけたら
414デフォルトの名無しさん
2019/10/01(火) 22:05:50.22ID:iKbLcHR3415デフォルトの名無しさん
2019/10/01(火) 23:19:08.32ID:5ranOfZi め、memmove()はmemcpy()、、
moveが真にmoveになるのはハンドルや参照やFATで指し示されたブツだけなのではないか
bittableなオブジェクトでcopyメソッドの付加をケチっても仕方が無い
bittableなコピーは所有権フリーでふつくしい
moveが真にmoveになるのはハンドルや参照やFATで指し示されたブツだけなのではないか
bittableなオブジェクトでcopyメソッドの付加をケチっても仕方が無い
bittableなコピーは所有権フリーでふつくしい
416デフォルトの名無しさん
2019/10/02(水) 00:51:11.12ID:Eszh3Zaw >>413
今や言語を超えてもLTO出来るので#[inline]を付ける意味ないんじゃないかな
今や言語を超えてもLTO出来るので#[inline]を付ける意味ないんじゃないかな
417デフォルトの名無しさん
2019/10/02(水) 09:53:31.95ID:QICDvY23 LTOは重い
418デフォルトの名無しさん
2019/10/02(水) 09:56:56.52ID:79uWriwX LTOってよく分からん
.soとかどうなるの?
.soとかどうなるの?
419デフォルトの名無しさん
2019/10/02(水) 10:06:07.00ID:QICDvY23 その境界は当然越えられないよ
静的なリンクのものだけ
静的なリンクのものだけ
420デフォルトの名無しさん
2019/10/02(水) 13:10:54.18ID:GoUXMchS Result<(),Box<dyn Error>>を返す関数の中で、Errorトレイトを実装していない外部のクレートのエラーFooErrorを返す関数
fn f() -> Result<(),FooError>{}
に対して f()? のように?演算子を使いたい場合どうすれば良いんでしょうか?
fn f() -> Result<(),FooError>{}
に対して f()? のように?演算子を使いたい場合どうすれば良いんでしょうか?
421デフォルトの名無しさん
2019/10/02(水) 13:43:42.50ID:Ra0M0x2i Errorトレイトが自分で作ったものならFooErrorにimplする
そうでないならenun MyErrorを作ってErrorをimplし、From<FooError> for MyErrorを実装する
規模が大きいなら後者のパターンで全てのエラーを包んでResult<(), MyError>を返すようにした方がよいっぽい
そうでないならenun MyErrorを作ってErrorをimplし、From<FooError> for MyErrorを実装する
規模が大きいなら後者のパターンで全てのエラーを包んでResult<(), MyError>を返すようにした方がよいっぽい
422デフォルトの名無しさん
2019/10/02(水) 14:03:30.89ID:GoUXMchS https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=7e31f88718f5c8a1e9a11cdda48e91e4
>>421
ありがとうございます
Foo::f()?の部分はどうやって書けば良いんでしょうか…
>>421
ありがとうございます
Foo::f()?の部分はどうやって書けば良いんでしょうか…
423デフォルトの名無しさん
2019/10/02(水) 14:19:47.22ID:qs4Bbmku すまん不完全な解答だった
外出ちゃったからコードいじれないんだすまん
はintoを自動的に発行するので対応するFromを書けばいけるはず
ただBoxだとどうかな、やってみて
外出ちゃったからコードいじれないんだすまん
はintoを自動的に発行するので対応するFromを書けばいけるはず
ただBoxだとどうかな、やってみて
424デフォルトの名無しさん
2019/10/02(水) 14:24:05.29ID:GoUXMchS425デフォルトの名無しさん
2019/10/02(水) 22:03:54.08ID:+yvFYHag https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=54aff502bb9829108b97270581494855
帰ってきたよ
これでいけたよ
帰ってきたよ
これでいけたよ
426デフォルトの名無しさん
2019/10/02(水) 23:45:01.99ID:xTOjXinC moveってしゃろーこぴー?
427デフォルトの名無しさん
2019/10/03(木) 10:09:25.46ID:UFT9wl4W >>425
ありがとうございます!
ありがとうございます!
428デフォルトの名無しさん
2019/10/05(土) 11:22:10.79ID:Kz6nPZqe LTOって何ですか?
long transfer object? great teacher Onizuka?
long transfer object? great teacher Onizuka?
429デフォルトの名無しさん
2019/10/05(土) 11:41:40.70ID:IzmeWHwu レズ・トランスジェンダー・おっぱいの略。
430デフォルトの名無しさん
2019/10/05(土) 11:45:44.92ID:oRBX06Fv 磁気テープ
431デフォルトの名無しさん
2019/10/05(土) 15:31:30.78ID:JszGfLQj DebugとDisplayってどう使い分けたり実装すれば良いんでしょうか
ドキュメントには前者はプログラマ向け、後者ははユーザー向けの出力とかって書いてあるので例えば数値なんかは
前者は「99u8」、後者はただ「99」みたいに表示されるのかと思ったんですが実際はどっちも同様にただ「99」としか表示されないですよね?
ドキュメントには前者はプログラマ向け、後者ははユーザー向けの出力とかって書いてあるので例えば数値なんかは
前者は「99u8」、後者はただ「99」みたいに表示されるのかと思ったんですが実際はどっちも同様にただ「99」としか表示されないですよね?
432デフォルトの名無しさん
2019/10/05(土) 16:20:44.53ID:Kz6nPZqe Debug は
ID: 530, name: "ほのおのつるぎ(売却可)", attack: 63, equippable: "戦士、勇者"
みたいにユーザーに見せるもんじゃない詳細とかを適当なフォーマットで含むじゃろ。
Display は
ほのおのつるぎ
みたいにエンドユーザーにフォーマルにみせる情報を、変にフォーマットせずに含むのが普通じゃろ
ID: 530, name: "ほのおのつるぎ(売却可)", attack: 63, equippable: "戦士、勇者"
みたいにユーザーに見せるもんじゃない詳細とかを適当なフォーマットで含むじゃろ。
Display は
ほのおのつるぎ
みたいにエンドユーザーにフォーマルにみせる情報を、変にフォーマットせずに含むのが普通じゃろ
433デフォルトの名無しさん
2019/10/06(日) 14:09:28.34ID:UJBvNAqw RustでVulkanを使いたいのですが、現状非公式のバインディングを使うしか無いのでしょうか…?
434デフォルトの名無しさん
2019/10/06(日) 16:42:20.66ID:u0a4L4+0 デバッグビルドの時に、リリースビルドした依存クレートを使う簡単な方法はありますか?
target/release/depsをtarget/debug/depsに名前を調整して移すとできてる感じですが
もっと簡単にできないでしょうか。
target/release/depsをtarget/debug/depsに名前を調整して移すとできてる感じですが
もっと簡単にできないでしょうか。
435デフォルトの名無しさん
2019/10/06(日) 19:52:43.72ID:vdo0Vbvr436デフォルトの名無しさん
2019/10/06(日) 21:45:30.41ID:u0a4L4+0 なるほど
当面自作のスクリプトでdebug/depsいじります
当面自作のスクリプトでdebug/depsいじります
437デフォルトの名無しさん
2019/10/07(月) 19:36:11.62ID:ygKDuPd1 Rustに限った話じゃないんだがGUIツールキットもゲームエンジンもC++が主流
でもC/C++以外でC++の呼び出しが出来る処理系はほとんどない。うぼあー
でもC/C++以外でC++の呼び出しが出来る処理系はほとんどない。うぼあー
438デフォルトの名無しさん
2019/10/07(月) 19:40:49.20ID:PWOdjrjM スマホゲームとか一時はUnityだらけだと思ったけど今は違うの?
439デフォルトの名無しさん
2019/10/07(月) 20:36:38.94ID:MItW4Ls8 「C/C++以外で」ってCで呼べるんだ・・・
440デフォルトの名無しさん
2019/10/07(月) 20:52:58.22ID:QQWXmaql CどころかC++同士の異コンパイラ間ですら呼べなかったと思うけど。
441デフォルトの名無しさん
2019/10/07(月) 23:30:27.88ID:AKFeYH7t (´・ω・`)
442デフォルトの名無しさん
2019/10/08(火) 00:43:17.33ID:EV6VUNWa ウィンドーズホンだとC#からC++/CXを経由してネイティブなC++が呼べたお
443デフォルトの名無しさん
2019/10/08(火) 00:45:06.10ID:0ezsQlmk なるほど。開発環境が決まっててABI決めうちできるならいけるのか。
444デフォルトの名無しさん
2019/10/09(水) 09:16:04.87ID:ffKM9u5G Dがあるじゃん
445デフォルトの名無しさん
2019/10/09(水) 11:04:16.03ID:+5ZYxB02 ここの住民の低レベルさが確定した
446デフォルトの名無しさん
2019/10/09(水) 11:15:47.99ID:7UOBKYJf レベルの高い話題くれ
447デフォルトの名無しさん
2019/10/09(水) 17:58:10.09ID:PhcKq1+0 Cは社交界のオキテを知らない村娘だから
不用意に呼ぶとズッキュウウウンしちゃったりするのよ
だから簡単に呼べなかったりするけど呼べるときはシャワーも浴びずにすっ飛んでくる、そんな子
不用意に呼ぶとズッキュウウウンしちゃったりするのよ
だから簡単に呼べなかったりするけど呼べるときはシャワーも浴びずにすっ飛んでくる、そんな子
448デフォルトの名無しさん
2019/10/09(水) 19:00:00.88ID:xdNe6xdo C++のライブラリへのバインディングでほとんどのAPIがunsafe&unsafeって書いて無い奴もunsafeかもしれんから自分で気をつけてね☆
みたいのがあるんやが
これってRustで書く意味無くね…?
みたいのがあるんやが
これってRustで書く意味無くね…?
449デフォルトの名無しさん
2019/10/10(木) 00:27:32.81ID:sVTH7Uak 貴方がRustで書き直せば喜ぶ人もいるんじゃない?
450デフォルトの名無しさん
2019/10/10(木) 09:54:53.26ID:yMym0WfO ま〜つもと
いけいけまつもと
がんばれまつもと
いけいけまつもと
がんばれまつもと
451デフォルトの名無しさん
2019/10/10(木) 10:51:54.74ID:LImRHacY452デフォルトの名無しさん
2019/10/10(木) 13:45:05.68ID:sZ93Becg Box<T>のTを初期化せずに返すunsafe fn box_t() -> Box<T> があったとして
let mut t;
unsafe {
t = box_t();
// Tの初期化
}
にするのと
let mut t = unsafe { box_t() };
// Tの初期化
ですますのとどっちが良いRust?
let mut t;
unsafe {
t = box_t();
// Tの初期化
}
にするのと
let mut t = unsafe { box_t() };
// Tの初期化
ですますのとどっちが良いRust?
453デフォルトの名無しさん
2019/10/10(木) 14:05:19.62ID:p3GDnYn8 Rustプログラミング入門
https://www.ohmsha.co.jp/book/9784274224355/
https://www.ohmsha.co.jp/book/9784274224355/
454デフォルトの名無しさん
2019/10/10(木) 14:59:57.87ID:MXl+fq4L455デフォルトの名無しさん
2019/10/10(木) 19:40:43.29ID:tKt5RHA7 なんでUnsafeメモリ領域にしなかったんだ…
456デフォルトの名無しさん
2019/10/10(木) 21:10:29.28ID:emWne1To ムンッ
457デフォルトの名無しさん
2019/10/11(金) 09:08:20.83ID:15rXT0oG >>448
unsafeなAPIに対してrustで安全なラッパーを被せてやれれば意味がある
unsafeなAPIに対してrustで安全なラッパーを被せてやれれば意味がある
458デフォルトの名無しさん
2019/10/11(金) 09:11:01.85ID:+EEmVP7L unsafe fn vec_t_n(n: usize) -> Vec<T> {
let mut v: Vec<T> = Vec::with_capacity(n);
v.set_len(n);
v
}
fn vec_t_n(n: usize) -> Vec<T> {
let mut v: Vec<T> = Vec::with_capacity(n);
unsafe { v.set_len(n); }
v
}
unsafe fnにするかfnにするか
例えばutf-8を保証するStringのようにTがなにかを保証する型だとして
Vec<T>の中身がTでないかもしれないからunsafe fnが良いRustでOK?
let mut v: Vec<T> = Vec::with_capacity(n);
v.set_len(n);
v
}
fn vec_t_n(n: usize) -> Vec<T> {
let mut v: Vec<T> = Vec::with_capacity(n);
unsafe { v.set_len(n); }
v
}
unsafe fnにするかfnにするか
例えばutf-8を保証するStringのようにTがなにかを保証する型だとして
Vec<T>の中身がTでないかもしれないからunsafe fnが良いRustでOK?
459デフォルトの名無しさん
2019/10/11(金) 11:00:26.28ID:hkXt1Gtm >>455
1文字ずつ文字間開いてるとucs2で書かれてるように見える
1文字ずつ文字間開いてるとucs2で書かれてるように見える
460デフォルトの名無しさん
2019/10/11(金) 15:38:54.43ID:LwZAFcHp >>458
そのコードだけで言えばset_len()を使うことで保証されなくなるlengthの正しさを
呼び出し側が保証する必要があるのかどうか
from_utf8_uncheckedみたいな別のunsafe fn使ってればそれによって壊される安全性があるなら
その安全性を呼び出し側が保証する必要があるのかどうか
そのコードだけで言えばset_len()を使うことで保証されなくなるlengthの正しさを
呼び出し側が保証する必要があるのかどうか
from_utf8_uncheckedみたいな別のunsafe fn使ってればそれによって壊される安全性があるなら
その安全性を呼び出し側が保証する必要があるのかどうか
461デフォルトの名無しさん
2019/10/15(火) 20:37:26.43ID:NGLZQHSs https://keens.github.io/blog/2015/09/23/rustwokakutokinochiken/
move semanticsのお陰でGCがないので本当に小さい。hello, worldが277KBだった。
Javaででかいのが当たり前で大昔の感覚を忘れてしまったんだが
ちいさい?
move semanticsのお陰でGCがないので本当に小さい。hello, worldが277KBだった。
Javaででかいのが当たり前で大昔の感覚を忘れてしまったんだが
ちいさい?
462デフォルトの名無しさん
2019/10/15(火) 21:56:51.61ID:m8AinitX その千分の一でもまだでかい
463デフォルトの名無しさん
2019/10/15(火) 22:12:04.54ID:Ko1HPs1y バイナリゴルフが流行ってんの?
464デフォルトの名無しさん
2019/10/15(火) 22:36:57.07ID:icVT30E7 たった13バイトの文字列をコンソールに出力するだけで283648バイトを浪費wwwww
465デフォルトの名無しさん
2019/10/15(火) 22:39:45.49ID:hhqZ1XTX minimal runtimeってタイトルなんだからランタイムが小さいって話だろ。比較対象はGoとかHaskellとかであって、Cが小さいなんてのは当たり前。
466デフォルトの名無しさん
2019/10/16(水) 08:58:56.22ID:OaKYrwsF 270kBは何が入ってるの
467デフォルトの名無しさん
2019/10/16(水) 13:15:16.66ID:dmmazo8P468デフォルトの名無しさん
2019/10/16(水) 13:29:20.87ID:lb+wp7Wk ファミコン版のスターフォースのROMは16KBやったんやで
469デフォルトの名無しさん
2019/10/16(水) 13:39:20.98ID:KKGk/G0e 一方ルーストはhello, worldとコンソールに表示させるだけで277KBwww
470デフォルトの名無しさん
2019/10/16(水) 18:54:57.62ID:7R9Tu3z4 ファミコンのドラクエ3が256KBだっけ
471デフォルトの名無しさん
2019/10/16(水) 19:33:59.18ID:rINTnV3z Kbitじゃない?
472デフォルトの名無しさん
2019/10/16(水) 21:08:46.19ID:9tVPGt2A エミュROMでぐぐったら出てきた
ドラクエ3が256KByte
ドラクエ3が128KByte
ドラクエ1が64KByte
どれもKbitではない
ドラクエ3が256KByte
ドラクエ3が128KByte
ドラクエ1が64KByte
どれもKbitではない
473デフォルトの名無しさん
2019/10/17(木) 00:23:19.63ID:TtVNUhvN N88-BASICとかディスク拡張命令とか考えなければ32 KBに収まってた
数十KBというのは広大な情報量
人間の遺伝子もジャンクDNAを除けば10 KB強ぐらいなのではないか
数十KBというのは広大な情報量
人間の遺伝子もジャンクDNAを除けば10 KB強ぐらいなのではないか
474デフォルトの名無しさん
2019/10/17(木) 00:25:43.60ID:z0Xtc2vv475デフォルトの名無しさん
2019/10/17(木) 17:16:51.68ID:TwA5RghT go だと Hello, work! だけで 2MB でした本当にありがとうございました
476デフォルトの名無しさん
2019/10/17(木) 18:57:57.40ID:yPX5iNuE 日本は欧米と比べてココがダメ!
↓
韓国のほうがもっとダメなのでセーフ!
↓
韓国のほうがもっとダメなのでセーフ!
477デフォルトの名無しさん
2019/10/17(木) 20:26:17.00ID:Osa6WCSE >>475
デバッグ情報をストリップしてください
デバッグ情報をストリップしてください
478デフォルトの名無しさん
2019/10/17(木) 20:41:23.80ID:8y1HJh15 https://www.atmarkit.co.jp/ait/articles/1910/17/news088.html
「Rust」言語を採用したAWS、Rustプロジェクト支援を開始
Amazon Web Services(AWS)は2019年10月14日(米国時間)、オープンソースのシステムプログラミング言語「Rust」について、開発プロジェクトをスポンサーとして支援することを発表した。
Rustは、高速で信頼性が高く、効率的なコードを作成、保守できるように設計されている。2015年に最初の安定版がリリースされて以来、実システムへの導入が大きく進んでおり、GoogleやMicrosoft、Mozillaのような企業がいずれもRustを使用している。
例えばMicrosoftは自社製品の脆弱(ぜいじゃく)性の約7割を占めるメモリ安全性の問題を解決するためにRustが役立つと指摘している(関連記事)。
AWSでもRustの利用は大幅に拡大しており、「Lambda」「EC2」「S3」のようなサービスにおいて、パフォーマンスに敏感なコンポーネント用の言語として採用している。
AWSは先ごろ、軽量のマイクロ仮想マシン(microVM)を数秒で起動できる安全な仮想化技術「Firecracker」をオープンソースとして公開したが、ここでもRustが採用されている(関連記事)。
「Rust」言語を採用したAWS、Rustプロジェクト支援を開始
Amazon Web Services(AWS)は2019年10月14日(米国時間)、オープンソースのシステムプログラミング言語「Rust」について、開発プロジェクトをスポンサーとして支援することを発表した。
Rustは、高速で信頼性が高く、効率的なコードを作成、保守できるように設計されている。2015年に最初の安定版がリリースされて以来、実システムへの導入が大きく進んでおり、GoogleやMicrosoft、Mozillaのような企業がいずれもRustを使用している。
例えばMicrosoftは自社製品の脆弱(ぜいじゃく)性の約7割を占めるメモリ安全性の問題を解決するためにRustが役立つと指摘している(関連記事)。
AWSでもRustの利用は大幅に拡大しており、「Lambda」「EC2」「S3」のようなサービスにおいて、パフォーマンスに敏感なコンポーネント用の言語として採用している。
AWSは先ごろ、軽量のマイクロ仮想マシン(microVM)を数秒で起動できる安全な仮想化技術「Firecracker」をオープンソースとして公開したが、ここでもRustが採用されている(関連記事)。
479デフォルトの名無しさん
2019/10/18(金) 01:27:06.30ID:RRRrLQ0r それでも数秒かかるんか…
コールドスタートの悪夢未だ醒めず
コールドスタートの悪夢未だ醒めず
480デフォルトの名無しさん
2019/10/18(金) 08:13:39.39ID:dDUU5P0o >例えばMicrosoftは自社製品の脆弱(ぜいじゃく)性の約7割を占めるメモリ安全性の問題を解決するためにRustが役立つと指摘している(関連記事)。
これWindowsの脆弱性の話だろうけど、
静的解析ツールでは解決しないってことなのか?
これWindowsの脆弱性の話だろうけど、
静的解析ツールでは解決しないってことなのか?
481デフォルトの名無しさん
2019/10/18(金) 15:26:11.27ID:/rPuRJSX482デフォルトの名無しさん
2019/10/18(金) 17:46:16.42ID:lmpJOwiE mut を マットって読んでる人いる?
コアチーム含めミュート派が大勢なのは知ってるけど
eがないとミュートって読むのは不自然だし、時々eをタイプしそうになるから
マット派になろうかと思ってるんだが
コアチーム含めミュート派が大勢なのは知ってるけど
eがないとミュートって読むのは不自然だし、時々eをタイプしそうになるから
マット派になろうかと思ってるんだが
483デフォルトの名無しさん
2019/10/18(金) 17:52:26.42ID:+uRRCvkS おれはミューツ派
484デフォルトの名無しさん
2019/10/18(金) 17:55:14.75ID:uhy/qlU/485デフォルトの名無しさん
2019/10/18(金) 17:59:19.15ID:G0LYzWL6 どう見てもムッと
486デフォルトの名無しさん
2019/10/18(金) 18:12:40.01ID:7Ocq1iZd むーと
487デフォルトの名無しさん
2019/10/18(金) 18:29:52.38ID:lmpJOwiE 結構いろんな読み方してんのね
マット派いたから安心して転向するわ
ちなみにドイツ語ではムートって読んで勇気って意味らしい
マット派いたから安心して転向するわ
ちなみにドイツ語ではムートって読んで勇気って意味らしい
488デフォルトの名無しさん
2019/10/18(金) 20:27:28.69ID:4X7KT/ZF Rustの単語のセンスだけはどうも好きになれん
489デフォルトの名無しさん
2019/10/18(金) 20:30:24.39ID:uhy/qlU/ わかる
fnとかpubとかunwrapとか普通にわかりにくい
fnとかpubとかunwrapとか普通にわかりにくい
490デフォルトの名無しさん
2019/10/18(金) 21:57:09.28ID:lmpJOwiE pubはまあわかるけど
fnとunwrapは他言語でもあるし普通にわかりやすいと思ってたわ
IntoIteratorとかは素直にIterableでいいのにとは思う
fnとunwrapは他言語でもあるし普通にわかりやすいと思ってたわ
IntoIteratorとかは素直にIterableでいいのにとは思う
491デフォルトの名無しさん
2019/10/19(土) 00:46:14.72ID:ZEJ60z1R しかしRustでOS作ったらCより性能悪かったという記事があったはず
新しくOS用のプログラミング言語を作った方が良いのでは
RustはOS開発を主眼にしてるわけじゃないだろう
新しくOS用のプログラミング言語を作った方が良いのでは
RustはOS開発を主眼にしてるわけじゃないだろう
492デフォルトの名無しさん
2019/10/19(土) 01:22:54.66ID:+gqAFVgo OSの性能って曖昧過ぎて何測ってるのかわからん
493デフォルトの名無しさん
2019/10/19(土) 04:43:06.59ID:VYVT60v2 Redoxめっちゃマッハやった
494デフォルトの名無しさん
2019/10/19(土) 07:34:16.56ID:uIADZHgb Rustは配列の境界値チェックがあるから普通に使うとCよりちょっと遅いよ
495デフォルトの名無しさん
2019/10/19(土) 13:01:40.81ID:sh4W9dNy >>494
分岐予測があるので理由はそこじゃない
分岐予測があるので理由はそこじゃない
496デフォルトの名無しさん
2019/10/19(土) 13:28:05.60ID:a3cu9K9L は?
497デフォルトの名無しさん
2019/10/19(土) 13:43:06.95ID:ZEJ60z1R OS組もうとするとRustの言語概念を無視するような書き方をしなきゃいけない
みたいに書いてあったんだけど
みたいに書いてあったんだけど
498デフォルトの名無しさん
2019/10/19(土) 13:44:39.15ID:xHh5MvNF 「Rust」言語はCよりも遅いのか、研究者がベンチマーク結果を解説
ttps://www.atmarkit.co.jp/ait/articles/1909/13/news133.html
このソースは
A high-speed network driver written in C, Rust, Go, C#, Java, OCaml, Haskell, Swift, Javascript, and Python
ttps://github.com/ixy-languages/ixy-languages
これかな
ttps://www.atmarkit.co.jp/ait/articles/1909/13/news133.html
このソースは
A high-speed network driver written in C, Rust, Go, C#, Java, OCaml, Haskell, Swift, Javascript, and Python
ttps://github.com/ixy-languages/ixy-languages
これかな
499デフォルトの名無しさん
2019/10/19(土) 17:05:59.60ID:xnS8qN86500デフォルトの名無しさん
2019/10/19(土) 18:07:21.38ID:Xn59Im0u いや普通にOSソース見ればそらrust向いてねーわってなるよ。
杓子定規にrust使おうってほうが気が狂ってるわ。
杓子定規にrust使おうってほうが気が狂ってるわ。
501デフォルトの名無しさん
2019/10/19(土) 18:16:31.77ID:JHoWAbaJ Rustを使わないからそうなっているのかもしれんぞ
どこでRustだと不利なのか説明してくれ
どこでRustだと不利なのか説明してくれ
502デフォルトの名無しさん
2019/10/19(土) 18:58:13.46ID:VwkXsBh7 ストレージからプロセスを読んで起動する、とか
そもそもコンテキストスイッチングの処理とかは所有権の概念(データの寿命が入れ子)から外れてくる
気がするが、別にunsafeにせねばならないほどでもないキモス
他に何かある?
そもそもコンテキストスイッチングの処理とかは所有権の概念(データの寿命が入れ子)から外れてくる
気がするが、別にunsafeにせねばならないほどでもないキモス
他に何かある?
503デフォルトの名無しさん
2019/10/19(土) 19:38:38.55ID:fKOzCfED その昔はlispやforthでもos書いたりしたんだからrustで書けないことないだろう。
504デフォルトの名無しさん
2019/10/20(日) 00:31:55.71ID:huwBBQor redoxがあるけど。
505デフォルトの名無しさん
2019/10/20(日) 11:39:50.17ID:Q377Ee/+ それで実際Rustはバグ発生率低いの?
506デフォルトの名無しさん
2019/10/20(日) 12:22:34.24ID:f+d3Kcps バグ発生率ってどうやってカウントするのが一般的なんやろか?
完全にただの思いつきで無意味な比較だけどgithubのgoとrustで総issue数/contributor数だと1人あたり2倍ぐらいgoのが多いね
完全にただの思いつきで無意味な比較だけどgithubのgoとrustで総issue数/contributor数だと1人あたり2倍ぐらいgoのが多いね
507デフォルトの名無しさん
2019/10/20(日) 13:14:08.41ID:Df2Q09El issueってバグじゃないだろ。
機能要望とか議論とかあるじゃん。
機能要望とか議論とかあるじゃん。
508デフォルトの名無しさん
2019/10/20(日) 23:15:26.37ID:ADDbXmaX 小さめのサイズの本で、初心者向けの本が出た!
Rustプログラミング入門、酒井 和哉、2019/10/13
Rustプログラミング入門、酒井 和哉、2019/10/13
509デフォルトの名無しさん
2019/10/20(日) 23:22:23.45ID:ADDbXmaX >>506
バグ発生率は、バスタブ曲線だろ。
初期によくバグる
土方をやってると、バグを多く出さないと、客に提出できないw
漏れは、平均的なIQ レベルより、間違いが少ないから、
いつも、アホみたいなバグを、わざと自分で作って、バグ発生数を増やしていたw
あらかじめ勉強している人は、滅多に間違わないから、バグ発生数基準だと困るw
一方、全く勉強していない香具師は、バグが多い
バグ発生率は、バスタブ曲線だろ。
初期によくバグる
土方をやってると、バグを多く出さないと、客に提出できないw
漏れは、平均的なIQ レベルより、間違いが少ないから、
いつも、アホみたいなバグを、わざと自分で作って、バグ発生数を増やしていたw
あらかじめ勉強している人は、滅多に間違わないから、バグ発生数基準だと困るw
一方、全く勉強していない香具師は、バグが多い
510デフォルトの名無しさん
2019/10/21(月) 03:46:22.99ID:15XQsNX7 俺は世界で一番この本を待ってた!!!!!
511デフォルトの名無しさん
2019/10/21(月) 13:21:09.04ID:c9dhXgWB 仕様書にバグが多いのはあれわざと仕込んでるのかなるほど
512デフォルトの名無しさん
2019/10/22(火) 20:56:02.71ID:pBzGAt4J ネストした構造体のコンストラクトパターンみたいなやつはもっとチュートリアルで
説明した方がいいんでないのとは思う。
多分めんどくさい書き方にしかならんからやらんのだろうけれど。
説明した方がいいんでないのとは思う。
多分めんどくさい書き方にしかならんからやらんのだろうけれど。
513デフォルトの名無しさん
2019/10/23(水) 15:46:33.91ID:/ejQejyx ?の便利さに感動している
514デフォルトの名無しさん
2019/10/23(水) 16:06:56.63ID:77J5IX+m え、なに?
文字化けしてますよ
文字化けしてますよ
515デフォルトの名無しさん
2019/10/23(水) 17:55:49.61ID:GdFoVnvN 三項演算子は便利だったなぁ、と他言語を思い出して感動してるってことかな
516デフォルトの名無しさん
2019/10/23(水) 18:12:17.77ID:AT7YtDx+ 普通にResultの話じゃなくて?
517デフォルトの名無しさん
2019/10/23(水) 20:07:35.94ID:r6mLYpNF 組み込みもネットワークツールもほとんどc以上の生産性を出すことないしな。。
一番有効な領域ってデバッガーじゃねーの?とは思う。
一番有効な領域ってデバッガーじゃねーの?とは思う。
518デフォルトの名無しさん
2019/10/23(水) 20:47:39.59ID:/ejQejyx Bookを6章まで読んだ俺が >>224 で書いたのが
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=dc60559b7af47298d305be80b340ee98
?の便利さに気づいた俺が書いたのが
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=308e7fe634f1e539c1f936c3989022f0
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=dc60559b7af47298d305be80b340ee98
?の便利さに気づいた俺が書いたのが
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=308e7fe634f1e539c1f936c3989022f0
519デフォルトの名無しさん
2019/10/23(水) 21:06:25.79ID:5Hzic27k .file_name()?.to_str()?.to_string()
Rustだっさ
Rustだっさ
520デフォルトの名無しさん
2019/10/23(水) 21:12:36.43ID:s8yqv2t4 公式に呼びやすい名前をつけないのがよくない
question mark operatorじゃわかりにくいから
error propagating operatorかerror handling operatorで
question mark operatorじゃわかりにくいから
error propagating operatorかerror handling operatorで
521デフォルトの名無しさん
2019/10/23(水) 21:26:40.40ID:AT7YtDx+ ダサいかどうかとかどうでもよすぎる
性能、書きやすさ、読みやすさ、安全性がすべて
性能、書きやすさ、読みやすさ、安全性がすべて
522デフォルトの名無しさん
2019/10/23(水) 21:31:02.23ID:5Hzic27k 性能 境界チェックのせいでだいぶおそい
書きやすさ 地獄
読みやすさ 悪夢
安全性 噂ではあるらしい
?まみれになるぐらいだったらヌルポで落ちても変わらんやん
どうせ無理に回復とかしないほうがいい類のだろ
書きやすさ 地獄
読みやすさ 悪夢
安全性 噂ではあるらしい
?まみれになるぐらいだったらヌルポで落ちても変わらんやん
どうせ無理に回復とかしないほうがいい類のだろ
523デフォルトの名無しさん
2019/10/23(水) 22:05:27.50ID:B/jcGWye ぬるぽで落ちるのは運が良かっただけで何でも起きうるし最悪スーパーハカーの餌食になる
?はちゃんとエラーで終了してくれる
って理解でおk?
?はちゃんとエラーで終了してくれる
って理解でおk?
524デフォルトの名無しさん
2019/10/23(水) 22:31:31.88ID:xt74prfP ヌルポって、javaのあれのこと?
シンタックスだけ比較して意味あんのかな
シンタックスだけ比較して意味あんのかな
525デフォルトの名無しさん
2019/10/23(水) 23:02:51.06ID:5Hzic27k526デフォルトの名無しさん
2019/10/23(水) 23:10:47.86ID:5Hzic27k モナドだろうがなんだろうがNullはNullだ
へたに回復してしまうとほかに影響が波及して大惨事につながりやすい
むしろ最初からNullにならないことを保証してくれる方がうれしい
なのになんでOKで帰ってきた結果からfileNaeme取るのまで?つけさせられとんじゃ
へたに回復してしまうとほかに影響が波及して大惨事につながりやすい
むしろ最初からNullにならないことを保証してくれる方がうれしい
なのになんでOKで帰ってきた結果からfileNaeme取るのまで?つけさせられとんじゃ
527デフォルトの名無しさん
2019/10/24(木) 00:25:03.31ID:M5uvwdA8 まあNULLで潔く死んでくれた方がってのは確かにあるわな。
528デフォルトの名無しさん
2019/10/24(木) 00:39:21.69ID:1+d2lllL エラーかどうかのチェックは、NULLかどうかのチェックとは違う
ここ大事なところなので間違えちゃダメ
ここ大事なところなので間違えちゃダメ
529デフォルトの名無しさん
2019/10/24(木) 01:03:58.72ID:LM2wjPr+ 潔く死んで欲しいなら明示的にunwrapなりexceptなりすればよい
バグなのか想定されたエラーなのかを区別して明示的にコーディングできるのがrustの利点では
バグなのか想定されたエラーなのかを区別して明示的にコーディングできるのがrustの利点では
530デフォルトの名無しさん
2019/10/24(木) 05:35:47.09ID:nklp1qoa OptionとかResultにケチつけてるのは加齢臭キツすぎる
531デフォルトの名無しさん
2019/10/24(木) 06:50:04.06ID:G12eboer 下手に回復して大惨事になるのは、下手だからでしょ
file_nameに?付けてるのはディレクトリの場合無いからでしょ
なんでそんなことが疑問になるのか分からない
file_nameに?付けてるのはディレクトリの場合無いからでしょ
なんでそんなことが疑問になるのか分からない
532デフォルトの名無しさん
2019/10/24(木) 09:03:26.66ID:M5uvwdA8 Optionとか中途半端でたちわりーわ。
てかrustみたいにライフタイム意識する言語の場合、あんまり役割ない気がするけどね。
てかrustみたいにライフタイム意識する言語の場合、あんまり役割ない気がするけどね。
533デフォルトの名無しさん
2019/10/24(木) 12:28:38.87ID:8vd5prrh メソッドチェーンの中で「owned -> borrowed -> owned」するのはアンチパターンだと思うんだよね
不必要な処理が入るし可読性も下がるのでいいことない
fn main() -> Result<(), std::io::Error> {
let path = std::env::current_exe()?;
let file = path.file_name().unwrap();
println!("{:?}", file);
Ok(())
}
不必要な処理が入るし可読性も下がるのでいいことない
fn main() -> Result<(), std::io::Error> {
let path = std::env::current_exe()?;
let file = path.file_name().unwrap();
println!("{:?}", file);
Ok(())
}
534デフォルトの名無しさん
2019/10/24(木) 12:51:50.95ID:1+d2lllL そもそものお題がこちら
>187 デフォルトの名無しさん2019/08/26(月) 20:55:57.18 ID:hNXwMePN >>206>>214>>224
>https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=8c44bed658726ada0deff031799664b7
>1. std::env::current_exe()で実行ファイルのフルパスを得る
>2. file_name()でファイル名だけにする
>3. to_str()で&strにする
>4. 途中でErrやNoneが返ってきた場合はデフォルトの値"foo"を使う
>
>ということをやりたいのですが、エラーでビルドできません。
>どのように書けばいいでしょうか?
>187 デフォルトの名無しさん2019/08/26(月) 20:55:57.18 ID:hNXwMePN >>206>>214>>224
>https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=8c44bed658726ada0deff031799664b7
>1. std::env::current_exe()で実行ファイルのフルパスを得る
>2. file_name()でファイル名だけにする
>3. to_str()で&strにする
>4. 途中でErrやNoneが返ってきた場合はデフォルトの値"foo"を使う
>
>ということをやりたいのですが、エラーでビルドできません。
>どのように書けばいいでしょうか?
535デフォルトの名無しさん
2019/10/24(木) 20:32:12.47ID:8vd5prrh >>534
お題があったのね
referenceを受け取ってreferenceを返す関数に抽出すればto_ownedやto_stringは不要
use std::path::PathBuf;
fn main() {
let path = std::env::current_exe().ok();
let file = file_name(path.as_ref()).unwrap_or("foo");
println!("{}", file);
}
fn file_name(path: Option<&PathBuf>) -> Option<&str> {
path?.file_name()?.to_str()
}
お題があったのね
referenceを受け取ってreferenceを返す関数に抽出すればto_ownedやto_stringは不要
use std::path::PathBuf;
fn main() {
let path = std::env::current_exe().ok();
let file = file_name(path.as_ref()).unwrap_or("foo");
println!("{}", file);
}
fn file_name(path: Option<&PathBuf>) -> Option<&str> {
path?.file_name()?.to_str()
}
536デフォルトの名無しさん
2019/10/24(木) 21:22:39.45ID:1+d2lllL 勉強になりました
let file = {|| Some(path.as_ref()?.file_name()?.to_str()?)}()
.unwrap_or("foo");
でも動くようですけど関数に抽出した方が良いですか?
let file = {|| Some(path.as_ref()?.file_name()?.to_str()?)}()
.unwrap_or("foo");
でも動くようですけど関数に抽出した方が良いですか?
537デフォルトの名無しさん
2019/10/24(木) 21:41:02.37ID:7Zw0jZ/m それ関数作って呼んでるのとほぼ同じだし名前がついてるかどうかの違いだから好きにせえ
538デフォルトの名無しさん
2019/10/24(木) 21:55:47.24ID:8vd5prrh Someで囲ったOptionalチェーンを返すクロージャってのが
Rustのイディオムとして認知されて来ればそういうやり方も有りかもだけど
俺は関数に抽出したほうが型が見えて読みやすいので良いんじゃないかと思う
Rustのイディオムとして認知されて来ればそういうやり方も有りかもだけど
俺は関数に抽出したほうが型が見えて読みやすいので良いんじゃないかと思う
539デフォルトの名無しさん
2019/10/24(木) 22:25:03.94ID:LM2wjPr+ try blockを待て
540デフォルトの名無しさん
2019/10/25(金) 20:57:15.75ID:ZeSKDyBG これまではto_string()がチェーン末尾だったからSomeに入れてたけど
末尾がto_str()になってOption返すから必要なかった
let file = {|| path.as_ref()?.file_name()?.to_str()}().unwrap_or("foo");
なぜ昨日は気が付かなかったんだろう……
末尾がto_str()になってOption返すから必要なかった
let file = {|| path.as_ref()?.file_name()?.to_str()}().unwrap_or("foo");
なぜ昨日は気が付かなかったんだろう……
541デフォルトの名無しさん
2019/10/25(金) 21:01:12.42ID:d+xtEa5D try block
ずっと待ってるあなたのことを
意味もなくクロージャで囲む日々
ずっと待ってるあなたのことを
意味もなくクロージャで囲む日々
542デフォルトの名無しさん
2019/10/25(金) 21:29:24.66ID:JK+efETy モナド早くきてくれー
543デフォルトの名無しさん
2019/10/25(金) 21:51:56.35ID:AfveIyxL モナドられると、ややこしい人が顔出してくるんでノーセンキュー
544デフォルトの名無しさん
2019/10/26(土) 06:18:18.43ID:ajDsHp6T 関数型信者がうるさくなった言語は衰退する
545デフォルトの名無しさん
2019/10/26(土) 09:43:29.54ID:eCInqrX9 関数型ことごとくすたれてない?
546デフォルトの名無しさん
2019/10/26(土) 10:13:18.36ID:ERKSSgX1 モナド(高階型)来てもいいんじゃない?OptionとResultで同じようなことやってるし
547デフォルトの名無しさん
2019/10/26(土) 13:48:16.66ID:3B/2CauT オプショナルチェーンを矛盾なく繋げるモナドが入れば覇権だと思う
正直それだけできれば小難しい理論はいらないし
正直それだけできれば小難しい理論はいらないし
548デフォルトの名無しさん
2019/10/26(土) 14:36:55.83ID:SyjizfQh チェーンは滅んでほしい
549デフォルトの名無しさん
2019/10/26(土) 14:53:14.83ID:z1scFH36 チェーンってひとくくりにするなよ。メソッドチェーンは糞だが。
550デフォルトの名無しさん
2019/10/26(土) 15:11:41.74ID:eCInqrX9 チェーン評価ってのも聞いたことがあるな
551デフォルトの名無しさん
2019/10/26(土) 16:45:06.90ID:ZMkO6rZZ552デフォルトの名無しさん
2019/10/26(土) 19:08:07.88ID:2tVQRscY この板で否定的な言い分を魔に受けないほうがいい
冗談で言ってるか、冗談みたいな馬鹿の言い分だから
冗談で言ってるか、冗談みたいな馬鹿の言い分だから
553デフォルトの名無しさん
2019/10/26(土) 23:02:43.13ID:JvDQOGiO おっぱい好きだけど爆乳は好きじゃない。
554デフォルトの名無しさん
2019/10/26(土) 23:16:28.89ID:yM1vAjNy 奇乳きらい
556デフォルトの名無しさん
2019/10/27(日) 20:10:25.95ID:M2w7+A6p π
557デフォルトの名無しさん
2019/10/27(日) 21:47:29.52ID:29EcE5aV 雄π
558デフォルトの名無しさん
2019/10/28(月) 07:30:15.50ID:JN5lVu+u ちっぱいだいすき
559デフォルトの名無しさん
2019/10/28(月) 11:04:07.07ID:24j/k5v2 たかが乳ですら意見割れてるのに関数型の話がまとまるわけないな
560デフォルトの名無しさん
2019/10/29(火) 22:37:06.24ID:mgVguoQK うまいことドメイン駆動設計をオブジェクト指向から切り離せないかな?
Javaでアーキテクチャを考えると、「このコードはどこに書くべきか」がずっと分からなくなる
関数のシグネチャ読めばそれがMなのかCなのか業務ロジックなのか入出力なのか、全部分かるように書けないものか
Javaでアーキテクチャを考えると、「このコードはどこに書くべきか」がずっと分からなくなる
関数のシグネチャ読めばそれがMなのかCなのか業務ロジックなのか入出力なのか、全部分かるように書けないものか
561デフォルトの名無しさん
2019/10/29(火) 23:45:32.33ID:2LlnWJID スレチ? それどもRustで考えてるのかな
JavaでもC#でもシグニチャ読めばMなのかCなのかくらいはわかるように書けると思うが
それはいいとしてDDDの本質はOOとは関係ないよ
Functional DDDの本がScalaとF#を例にしたのがそれぞれ出てるから読んでみるといいかも
F#のほうの著者のサイトみればRustのEnumでも同じような事できるのがわかるはず
https://fsharpforfunandprofit.com/ddd/
JavaでもC#でもシグニチャ読めばMなのかCなのかくらいはわかるように書けると思うが
それはいいとしてDDDの本質はOOとは関係ないよ
Functional DDDの本がScalaとF#を例にしたのがそれぞれ出てるから読んでみるといいかも
F#のほうの著者のサイトみればRustのEnumでも同じような事できるのがわかるはず
https://fsharpforfunandprofit.com/ddd/
562デフォルトの名無しさん
2019/10/30(水) 00:09:30.97ID:FUp1HJ0i はえ〜
563デフォルトの名無しさん
2019/11/01(金) 14:20:55.93ID:uczmPzhO Vulkanが公式でRustをサポートしてくれればRust製のゲームとかもっと出てくるのかなぁ
564デフォルトの名無しさん
2019/11/01(金) 15:16:52.33ID:tfmUKGIE enumの配列はメモリやばい?
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=0eeab60af9f7385db00275b2d168ac2c
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=0eeab60af9f7385db00275b2d168ac2c
565デフォルトの名無しさん
2019/11/01(金) 15:49:15.26ID:zrbJp7o3 >>564
enum MyEnum {
Foo,
Bar(i32),
Baz(i32, i32, i32, i32, i32),
}
今のRustはEnumの一番大きいvariantに合わせてメモリを確保する
Baz(i32, i32, i32, i32, i32)が、4バイト x 5 = 20バイト
どのvariantかを示すTagバイトで+1バイトと パディングで+3バイト=24バイト
配列の要素数が3なら24 x 3 = 72バイト
enum MyEnum {
Foo,
Bar(i32),
Baz(i32, i32, i32, i32, i32),
}
今のRustはEnumの一番大きいvariantに合わせてメモリを確保する
Baz(i32, i32, i32, i32, i32)が、4バイト x 5 = 20バイト
どのvariantかを示すTagバイトで+1バイトと パディングで+3バイト=24バイト
配列の要素数が3なら24 x 3 = 72バイト
566デフォルトの名無しさん
2019/11/01(金) 19:25:13.98ID:+nuKsb5/ 現職エントリ()のドワンゴや
タイ全裸Wantedlyの推してる言語って時点で使う気起きなくなるよね
タイ全裸Wantedlyの推してる言語って時点で使う気起きなくなるよね
567デフォルトの名無しさん
2019/11/01(金) 19:29:17.10ID:CgKHPMXI タイ全裸って?
568デフォルトの名無しさん
2019/11/01(金) 21:28:00.41ID:/XSkjXU3569デフォルトの名無しさん
2019/11/01(金) 21:55:41.28ID:/XSkjXU3 どんなに「こんなに素晴らしい機能がある言語!」とか言われても
「でもあの個人情報お漏らし泥箱や現職エントリ()ドワンゴとかDMCA乱用のWantedlyとかが推してる時点で……」ってなるのが
正しい社会人としてのあり方
「でもあの個人情報お漏らし泥箱や現職エントリ()ドワンゴとかDMCA乱用のWantedlyとかが推してる時点で……」ってなるのが
正しい社会人としてのあり方
570デフォルトの名無しさん
2019/11/01(金) 22:09:13.26ID:tfmUKGIE >>565
つまりどんなenum作るでもたくさん値を持たせないほうが余計なメモリ使わずベストってことか
つまりどんなenum作るでもたくさん値を持たせないほうが余計なメモリ使わずベストってことか
571デフォルトの名無しさん
2019/11/01(金) 22:57:41.39ID:RJfnLfVj アンチドワンゴがみんなC言語使ってると思うと抜ける
572デフォルトの名無しさん
2019/11/01(金) 22:57:51.68ID:RJfnLfVj ↑思うとワロタ
573デフォルトの名無しさん
2019/11/02(土) 02:27:34.58ID:lY37zOLC まあ正直、いまだにえんじにゃーのファッションって部分がでかいわな。
574デフォルトの名無しさん
2019/11/02(土) 07:38:49.45ID:m1PoQplx 他人がなに使ってのかチラチラ伺いながら自分の使うもの決めるのか
小物すぎるだろ
小物すぎるだろ
575デフォルトの名無しさん
2019/11/02(土) 13:57:08.64ID:uxGQ1L3w >>574
つっても現職エントリ様やタイ全裸と一緒にされたくはねえしなあ
つっても現職エントリ様やタイ全裸と一緒にされたくはねえしなあ
576デフォルトの名無しさん
2019/11/02(土) 14:20:09.97ID:m1PoQplx 同じ言語使ってるだけで同一視すんのはお前だけだよ
577デフォルトの名無しさん
2019/11/02(土) 14:32:51.71ID:ygDc/lgM それらの企業はRustなんか採用する前からボロボロだっただろ。
578デフォルトの名無しさん
2019/11/02(土) 15:40:16.76ID:lY37zOLC んでもって一発逆転をねらって水物のに飛びつくっていうアンチパターンね。
579デフォルトの名無しさん
2019/11/02(土) 20:44:05.92ID:J/DFBFnF あそこは一人が有名なだけだと思うがな
580デフォルトの名無しさん
2019/11/02(土) 22:56:34.85ID:VM95VN5u https://github.com/woboq/qmetaobject-rs
このcrateの中で"rust!"というマクロが使われてるんですがクレート内や依存するクレートの中を探してみても定義してる箇所が見つかりません
どこで定義してるのかわかる方いませんか?
このcrateの中で"rust!"というマクロが使われてるんですがクレート内や依存するクレートの中を探してみても定義してる箇所が見つかりません
どこで定義してるのかわかる方いませんか?
581デフォルトの名無しさん
2019/11/02(土) 23:31:33.69ID:t8MMHk4t582デフォルトの名無しさん
2019/11/02(土) 23:48:47.52ID:VM95VN5u583デフォルトの名無しさん
2019/11/03(日) 01:36:39.62ID:G+Mc14wF マクロの中で独自マクロ定義とか、、、
そんなことされたら俺の脳はメタメタにされてしまう。
そんなことされたら俺の脳はメタメタにされてしまう。
584デフォルトの名無しさん
2019/11/03(日) 02:21:28.16ID:EBkVjL7h C++テンプレートの悪夢を再現しようとしてる人たち
585デフォルトの名無しさん
2019/11/03(日) 14:24:34.21ID:smmSGOst C++を理解したプログラマーはRustを使う必要がなく、C++が理解できないプログラマ―にはRustも同様に理解できない。
https://developers.srad.jp/story/15/02/20/2132207/
https://developers.srad.jp/story/15/02/20/2132207/
586デフォルトの名無しさん
2019/11/03(日) 17:45:13.54ID:jtCsbY8B >>585
古い記事のリンクなんてはるな、うざい
古い記事のリンクなんてはるな、うざい
587デフォルトの名無しさん
2019/11/03(日) 20:33:09.59ID:r9lfrX/A traitでコピーかムーブかの判断をするようにしたのはrustの最大の失敗だな。
588デフォルトの名無しさん
2019/11/03(日) 22:07:42.86ID:1Y+jqSBq 直すならいまのうち
大丈夫だろ
大丈夫だろ
589デフォルトの名無しさん
2019/11/03(日) 23:21:37.95ID:M7pbBVsi どうだったらよかったのか
590デフォルトの名無しさん
2019/11/04(月) 02:00:10.34ID:emAGOeO/591デフォルトの名無しさん
2019/11/04(月) 02:02:58.89ID:emAGOeO/ http://wolfbash.hateblo.jp/entry/2017/07/30/193412
そーいや結局この記事へのまともな反論は以前のスレでも出てこなかったよな
そーいや結局この記事へのまともな反論は以前のスレでも出てこなかったよな
592デフォルトの名無しさん
2019/11/04(月) 02:16:17.42ID:O4QbPTeM ネタフリはいいけどもうちょっと生産的なのにしてよ
593デフォルトの名無しさん
2019/11/04(月) 02:22:13.55ID:q2ozowgo594デフォルトの名無しさん
2019/11/04(月) 07:58:19.81ID:hfizXHxK 生産的というが、Rustが言語として生産的なことは過去にあったか?
それよりはNimへの乗り換えという前向きな選択肢を出すことの方が生産的だと思うが
それよりはNimへの乗り換えという前向きな選択肢を出すことの方が生産的だと思うが
595デフォルトの名無しさん
2019/11/04(月) 09:12:04.34ID:b9TWlX4+ AWSも支援--プログラミング言語「Rust」人気が拡大
https://japan.zdnet.com/article/35144661/
https://japan.zdnet.com/article/35144661/
596デフォルトの名無しさん
2019/11/04(月) 09:16:30.74ID:TNJ/Yj6e597デフォルトの名無しさん
2019/11/04(月) 10:29:24.02ID:pD4BmXAp 個人的にはC/Zig/C2・C++/D/Rust・Go/Nimという棲み分けだと思っているので別にという感じだ
まぁそもそも論としてNimの話したいなら次世代言語スレかNimスレでやれよという気持ち
せっかく専用スレあるのにメインユーザーにすら使われないとか可哀想すぎるでしょう?
まぁそもそも論としてNimの話したいなら次世代言語スレかNimスレでやれよという気持ち
せっかく専用スレあるのにメインユーザーにすら使われないとか可哀想すぎるでしょう?
598デフォルトの名無しさん
2019/11/04(月) 11:26:47.69ID:TQlb0Fo2 NimはPythonでパフォーマンスに困ってる人にはいい言語じゃないかと思う。Pythonスレで宣伝してくればいいのに。
Rust使ってる人が移行したくなる要素はあまりない気がするけどな。
Rust使ってる人が移行したくなる要素はあまりない気がするけどな。
599デフォルトの名無しさん
2019/11/04(月) 12:05:28.47ID:q2ozowgo600デフォルトの名無しさん
2019/11/04(月) 12:16:27.30ID:TNJ/Yj6e 「すべきでなかった〜」とか断言したわりにしょぼい回答でがっかりだよ
601デフォルトの名無しさん
2019/11/04(月) 12:41:59.38ID:x85TCC2R Rustの良さはCと同レベルの速さをキープしつつ
Cよりは安全にかけるところが良いのだから
言語についてごちゃごちゃ言うのは筋違い
多少面倒でも安全に倒した方が良いって人が使うもの
Cよりは安全にかけるところが良いのだから
言語についてごちゃごちゃ言うのは筋違い
多少面倒でも安全に倒した方が良いって人が使うもの
602デフォルトの名無しさん
2019/11/04(月) 12:43:51.83ID:f7Qy6XgK インデックス1始まりの地獄はVBAでさんざん味わった
一貫してるとまた違うのか?
一貫してるとまた違うのか?
603デフォルトの名無しさん
2019/11/04(月) 14:56:29.79ID:YPBZbHG1 RustはCより身持ちが堅いけどお作法と親戚づきあいが滅茶苦茶面倒な嫁って感じ
NimとPythonは巨乳姉妹で姉は大学生、妹はフリーター
Perlはヤンデレ妹
NimとPythonは巨乳姉妹で姉は大学生、妹はフリーター
Perlはヤンデレ妹
604デフォルトの名無しさん
2019/11/04(月) 17:01:43.91ID:R+mKKMUr まあ確かにC++のauto_ptrと同じミスをしてるとは言えるよねCopyトレイトに関しては
こっちはCopyトレイトになれるものが相当限られてるのと
コンパイラがC++よりわかりやすいエラーを吐くことでギリギリ妥協の範囲を攻めてる感じ?
まあ全体的にはauto_ptrよりはマシだと思うよ
許容できるかは人次第だけど
こっちはCopyトレイトになれるものが相当限られてるのと
コンパイラがC++よりわかりやすいエラーを吐くことでギリギリ妥協の範囲を攻めてる感じ?
まあ全体的にはauto_ptrよりはマシだと思うよ
許容できるかは人次第だけど
605デフォルトの名無しさん
2019/11/04(月) 18:52:40.96ID:q2ozowgo606デフォルトの名無しさん
2019/11/05(火) 01:02:39.53ID:AzzdNH9H607デフォルトの名無しさん
2019/11/05(火) 19:53:18.47ID:FsOBPMBu 自転車置き場の屋根の色は何色にするべきか?と同レベルの議題にしか見えない
せめてどんなコードを読んでor書いてそう思ったのかを言えよ。主観の元になった客観をよ
せめてどんなコードを読んでor書いてそう思ったのかを言えよ。主観の元になった客観をよ
608デフォルトの名無しさん
2019/11/06(水) 11:16:50.77ID:o3tEvZiY アワビやウニを獲りに行くのに
アクアラング使うか素潜りかの違いでしかない
アクアラング使うか素潜りかの違いでしかない
609デフォルトの名無しさん
2019/11/06(水) 13:06:01.28ID:mtXJ9XYX それはアクアラングのほうがいいだろ…
610デフォルトの名無しさん
2019/11/06(水) 16:41:33.93ID:35bri3id 機材背負ってアワビ捕る海女がいるかよw
611デフォルトの名無しさん
2019/11/06(水) 16:46:31.15ID:yiWzW/nI それなら「アクアラングより素潜りのほうがよい」ということになるが…
自転車置き場の例えはそういうことじゃないが。
自転車置き場の例えはそういうことじゃないが。
612デフォルトの名無しさん
2019/11/06(水) 19:54:52.61ID:NaAqW+TO たとえが下手すぎてわかんねーよ
613デフォルトの名無しさん
2019/11/06(水) 21:23:00.27ID:i85ttsqs 潜水服が一番良い
614デフォルトの名無しさん
2019/11/07(木) 13:42:50.63ID:4E24WBqM Rustやってるとこんなに知能下がるのかこわ
615デフォルトの名無しさん
2019/11/07(木) 16:06:15.56ID:wJeAdMrJ Rの発音が難しい
616デフォルトの名無しさん
2019/11/08(金) 11:30:10.82ID:3E1/z7K0 ネーミングは失敗してるよな
617デフォルトの名無しさん
2019/11/08(金) 15:18:16.25ID:6uXznXC5 async来たけど、普通のプログラムには必要ないよね?
618デフォルトの名無しさん
2019/11/08(金) 18:04:49.98ID:IDNGhAox 普通って何だ
619デフォルトの名無しさん
2019/11/08(金) 18:37:06.96ID:FQ4gd7yJ 平均以上の学歴で
平均以上の収入で
平均以上のルックスの人が書いた、
平均以上に速く
平均以上に小さく
平均以上に美しいプログラムのことだろ
平均以上の収入で
平均以上のルックスの人が書いた、
平均以上に速く
平均以上に小さく
平均以上に美しいプログラムのことだろ
620デフォルトの名無しさん
2019/11/08(金) 18:43:36.10ID:J02ga/Ws 平均と同じではいかんのか?
621デフォルトの名無しさん
2019/11/09(土) 03:17:35.20ID:gvjWq9Ft お前らってRust使って何作ってんの?それともただの言語マニア?
622デフォルトの名無しさん
2019/11/09(土) 06:26:46.96ID:jVCSonN8 ウェブアプリケーション
今五個目
今五個目
623デフォルトの名無しさん
2019/11/09(土) 06:36:27.73ID:wLC8XRoz >>621
もちろんwebブラウザ
もちろんwebブラウザ
624デフォルトの名無しさん
2019/11/09(土) 06:55:04.49ID:lNA75F4e PoCでwasmに使ってるわ
625デフォルトの名無しさん
2019/11/09(土) 10:19:17.47ID:PlRJlzfP jsで15分でできるようなものを3時間かけて作るバカ
626デフォルトの名無しさん
2019/11/09(土) 11:12:14.52ID:3G853X2x メモリの安全のためには仕方がないんだよ
627デフォルトの名無しさん
2019/11/09(土) 14:11:20.38ID:d07pJzzX 早くできてもわりとしょうがない
628デフォルトの名無しさん
2019/11/09(土) 17:19:37.60ID:hkI1EgUJ629デフォルトの名無しさん
2019/11/09(土) 18:17:21.85ID:AHKmnAtf ターミナルで動くテキストエディタとCコンパイラ
630デフォルトの名無しさん
2019/11/10(日) 15:18:40.14ID:47iDVxCF 開発サイクルが遅くなってデメリットが上回る
仕事で使うアホはいないと思う
仕事で使うアホはいないと思う
631デフォルトの名無しさん
2019/11/10(日) 16:00:19.02ID:6dzdFLZi 現実には使ってる企業・製品が続々と出てくるわけで
632デフォルトの名無しさん
2019/11/10(日) 17:54:33.79ID:agcAAuVW どちらかというとアホは仕事で使えない
633デフォルトの名無しさん
2019/11/10(日) 22:43:25.53ID:KB1QaEbz wasmて
ウェブブラウザアプリでRust的な安全性ガッツリ必要なことあるの?
ウェブブラウザアプリでRust的な安全性ガッツリ必要なことあるの?
634デフォルトの名無しさん
2019/11/11(月) 19:57:31.41ID:EVqu4APJ てかメモリ安全なスクリプト言語さえまともに使えないやつに限ってrustとか騒いでんだよね。。
バカバカしい。。
バカバカしい。。
635デフォルトの名無しさん
2019/11/11(月) 20:07:59.59ID:khjQBy11 コンパイラより自分の腕を信じるって…
やっぱりジャップにはかなわねえや
やっぱりジャップにはかなわねえや
636デフォルトの名無しさん
2019/11/11(月) 20:20:19.17ID:GWl6h/g/ てか で始める
限って によるガバガバなレッテル貼り
クソバカ
限って によるガバガバなレッテル貼り
クソバカ
637デフォルトの名無しさん
2019/11/11(月) 20:48:06.84ID:dcucGLEU Cなら3で済みことを馬鹿に合わせてRustで20かけて作ることの意味があるのかどうかが問題だ
638デフォルトの名無しさん
2019/11/11(月) 21:23:31.49ID:vNU4oQAO 3で済みこと
639デフォルトの名無しさん
2019/11/11(月) 21:42:08.98ID:dcucGLEU あれw
640デフォルトの名無しさん
2019/11/11(月) 22:00:50.85ID:yLtQAUtP いきなりコント始めんなや
641デフォルトの名無しさん
2019/11/11(月) 22:28:55.57ID:GWl6h/g/ イニシャルコストだけ論じても意味ないしょ
作って終わりの製品もあるのは確かだだけど
作って終わりの製品もあるのは確かだだけど
642デフォルトの名無しさん
2019/11/11(月) 22:30:05.95ID:199KzUbd >>633
ない
ない
643デフォルトの名無しさん
2019/11/11(月) 23:21:00.62ID:/mnflr/W644デフォルトの名無しさん
2019/11/12(火) 01:23:13.19ID:xaPlPvgO そんなこと言うなよ
コンパイラちゃんはどこが悪いかいつも教えてくれてるんだぞ
コンパイラちゃんの気持ちも考えろよ
コンパイラちゃんはどこが悪いかいつも教えてくれてるんだぞ
コンパイラちゃんの気持ちも考えろよ
645デフォルトの名無しさん
2019/11/12(火) 01:50:34.68ID:UmQHVT6w Item1とItem2で同じ構造しててそれぞれに似たような処理をしているのにItem2にだけCloneつけろとエラー出るんですが
理由がわかりません
エラーが出るコード
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=39e9b4899374d1aca90c64836d71c161
Item2にだけCloneつけて動くコード
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=568c3f827c59a417f8d1c0f91b6bc9e4
理由がわかりません
エラーが出るコード
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=39e9b4899374d1aca90c64836d71c161
Item2にだけCloneつけて動くコード
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=568c3f827c59a417f8d1c0f91b6bc9e4
646デフォルトの名無しさん
2019/11/12(火) 03:38:31.37ID:+Tj6wPob >>645
vec!マクロで要素数指定する形はその型がClone実装してないとだめ
Item1も要素数指定すればCloneを要求される
let mut vs = vec![Item1 {a: 0, b: 0};10];
vec!マクロで要素数指定する形はその型がClone実装してないとだめ
Item1も要素数指定すればCloneを要求される
let mut vs = vec![Item1 {a: 0, b: 0};10];
647デフォルトの名無しさん
2019/11/12(火) 05:17:14.07ID:UmQHVT6w648デフォルトの名無しさん
2019/11/12(火) 07:41:14.54ID:QX/VSHUG >>643
そんな短絡的なことを言っているんじゃないよ
そんな短絡的なことを言っているんじゃないよ
649デフォルトの名無しさん
2019/11/12(火) 12:52:39.30ID:75A3JV4a コンパイラがやかましければプログラムの質が上がるっていう
短絡的なこと言ってるのはどっちだか
短絡的なこと言ってるのはどっちだか
650デフォルトの名無しさん
2019/11/12(火) 12:56:25.17ID:p8WdjJyB 安全な言語を開発するようメーカーの方に心がけていただき、
kidsが安心してプログラムできるような、コンパイルできるような世の中になってほしい。
kidsが安心してプログラムできるような、コンパイルできるような世の中になってほしい。
651デフォルトの名無しさん
2019/11/12(火) 14:55:56.85ID:QDjqh8Or 「Rust言語」をWindowsプロジェクトに適用してみた、Microsoftの事例
https://www.atmarkit.co.jp/ait/articles/1911/12/news050.html
欲しい機能がまだまだある、Rustコミュニティーとも協調
Rustは比較的歴史が浅いため、Microsoft社内の開発に使うことを考えると、よく使う言語機能であっても欠けているものがあるという。
その最たるものは、安全な変換(“プレーンな古いデータ”型をrawバイトと間で相互に安全にキャストする)やCスタイルの共用体の安全なサポート、誤りを許容する割り当て(割り当ての失敗でパニックに陥らず、所定の手順で停止する)だ。
Cargoには優れた単体テスト機能が組み込まれているため、開発者が本番コードと同じファイルにユニットテストを記述して、開発中に簡単に実行することができる。だが、Microsoft社内の大規模で複雑なビルドシステムでは、Cargoをビルドツールとして利用できない。
そこでCargoチームとの間で、複雑なビルドシステムを持つ大企業がCargoを利用できるようにするための話し合いを開始している。
https://www.atmarkit.co.jp/ait/articles/1911/12/news050.html
欲しい機能がまだまだある、Rustコミュニティーとも協調
Rustは比較的歴史が浅いため、Microsoft社内の開発に使うことを考えると、よく使う言語機能であっても欠けているものがあるという。
その最たるものは、安全な変換(“プレーンな古いデータ”型をrawバイトと間で相互に安全にキャストする)やCスタイルの共用体の安全なサポート、誤りを許容する割り当て(割り当ての失敗でパニックに陥らず、所定の手順で停止する)だ。
Cargoには優れた単体テスト機能が組み込まれているため、開発者が本番コードと同じファイルにユニットテストを記述して、開発中に簡単に実行することができる。だが、Microsoft社内の大規模で複雑なビルドシステムでは、Cargoをビルドツールとして利用できない。
そこでCargoチームとの間で、複雑なビルドシステムを持つ大企業がCargoを利用できるようにするための話し合いを開始している。
652デフォルトの名無しさん
2019/11/12(火) 15:08:35.31ID:YVK5A4co 「誤りを許容する割り当て」ってなんだ?
malloc失敗した時になんか処理したいって話?
malloc失敗した時になんか処理したいって話?
653デフォルトの名無しさん
2019/11/12(火) 15:54:18.41ID:BAhwfPb/ 要約すると今のcargoはクソで落ち着く
654デフォルトの名無しさん
2019/11/12(火) 16:32:19.58ID:+Tj6wPob >>652
fallible allocation (fail gracefully from allocation failure, rather than panic).
https://msrc-blog.microsoft.com/2019/11/07/using-rust-in-windows/
fallible allocation (fail gracefully from allocation failure, rather than panic).
https://msrc-blog.microsoft.com/2019/11/07/using-rust-in-windows/
655デフォルトの名無しさん
2019/11/12(火) 20:55:32.21ID:QX/VSHUG >>649
そんな短絡的なことを言っているんじゃないよ
そんな短絡的なことを言っているんじゃないよ
656デフォルトの名無しさん
2019/11/12(火) 21:02:47.09ID:H9gS/H0a 口で説明できないことは
大体は説明するとすごくろくでもないことだ
大体は説明するとすごくろくでもないことだ
657デフォルトの名無しさん
2019/11/12(火) 21:04:03.04ID:H9gS/H0a おまえが理解してると信じ込んでるものが真実だという保証は一切ない
658デフォルトの名無しさん
2019/11/12(火) 21:07:52.77ID:QX/VSHUG 欠点を論うだけの雑魚に対し、フィードバックして改善しようとするMS様は立派だな
現場でも文句ばかり垂れてるお爺さんいるよな
現場でも文句ばかり垂れてるお爺さんいるよな
659デフォルトの名無しさん
2019/11/12(火) 21:09:26.54ID:H9gS/H0a 何にも言わないで偉そうにしてるだけのやつが言うセリフじゃねえええええええ
660デフォルトの名無しさん
2019/11/12(火) 21:19:42.81ID:xi8txZuF > 何にも言わないで偉そうにしてるだけ
なぜバレた!?
なぜバレた!?
661デフォルトの名無しさん
2019/11/12(火) 21:46:17.93ID:QX/VSHUG 茶々入れ小僧がわめくなよ
662デフォルトの名無しさん
2019/11/12(火) 21:49:03.55ID:QwsLzoNY MSはCargoでどういう場合困るんだろ
小さいものしか作ったことないし技術力も低いからわからない…
小さいものしか作ったことないし技術力も低いからわからない…
663デフォルトの名無しさん
2019/11/12(火) 22:11:56.20ID:QX/VSHUG 俺も。。
664デフォルトの名無しさん
2019/11/13(水) 00:32:15.20ID:LQUpdw6j GoogleのBazelみたいな分散環境でスケールする独自のビルドシステムを持ってるから
cargo testとかやった時にcargoのインクリメンタルビルドの仕組みじゃなく
自分たちの仕組みと連携させたいってことなんじゃないかと
cargo testとかやった時にcargoのインクリメンタルビルドの仕組みじゃなく
自分たちの仕組みと連携させたいってことなんじゃないかと
665デフォルトの名無しさん
2019/11/13(水) 03:04:21.12ID:DP/YD1iU666デフォルトの名無しさん
2019/11/13(水) 05:44:21.88ID:HjWmYEnS Copyトレイトはプリミティブ型のように値としてコピーされるのが自然な型に付ける
コピーされるのは自然でない型でコピーをしたい場合にCloneトレイトでコピーを行なってると明示できるclone()メソッドを使ってコピーする
コピーされるのは自然でない型でコピーをしたい場合にCloneトレイトでコピーを行なってると明示できるclone()メソッドを使ってコピーする
667デフォルトの名無しさん
2019/11/13(水) 07:36:30.61ID:HNnV6bHC あっちの企業って大企業でもOSSプロジェクトが使えると判断されたら支援もするけど日本じゃさっぱりだよな
668デフォルトの名無しさん
2019/11/13(水) 08:07:59.49ID:h/RstPgQ くれくれが多いと難しい
669デフォルトの名無しさん
2019/11/13(水) 08:59:29.70ID:6gbwvDDZ670デフォルトの名無しさん
2019/11/13(水) 09:00:49.38ID:87kgxo9f 近いうちにマイクロソフトはMustを発表するんだろ
671デフォルトの名無しさん
2019/11/13(水) 09:15:39.91ID:+TK0hitd >>666
せめてCopyトレイトのドキュメントぐらい嫁や
せめてCopyトレイトのドキュメントぐらい嫁や
672デフォルトの名無しさん
2019/11/13(水) 16:05:23.57ID:qoeka4FL 「トレイト」って訳語はないの?
673デフォルトの名無しさん
2019/11/13(水) 16:14:33.46ID:CN9wALpQ 特徴
674デフォルトの名無しさん
2019/11/13(水) 19:27:48.53ID:hjs0qnAg 確かにマイクロソフトならこのくらいの言語なら勝手に作りそうではあるな。
そもそもの実装系がカスだし。
そもそもの実装系がカスだし。
675デフォルトの名無しさん
2019/11/14(木) 08:40:42.25ID:/QwfH319 MSがネイティブでゼロオーバーヘッドのF#を出したら用済みだね
676デフォルトの名無しさん
2019/11/14(木) 11:58:42.24ID:YSMwOav4 トイレット
677デフォルトの名無しさん
2019/11/15(金) 00:00:29.64ID:csRpQu7P678デフォルトの名無しさん
2019/11/17(日) 22:19:43.87ID:Pgjwxo9T D言語のdebugブロックみたいなデバッグビルド時のみ有効になるコードブロックってRustにあります?
679デフォルトの名無しさん
2019/11/17(日) 22:53:19.86ID:vz8eXEG6 #[cfg(debug_assertions)] か cfg!(debug_assertions)を使う
https://doc.rust-lang.org/reference/conditional-compilation.html
https://doc.rust-lang.org/reference/conditional-compilation.html
681デフォルトの名無しさん
2019/11/18(月) 18:57:03.41ID:CjfZ5YZK &strに含まれる各文字のUTF-8のバイナリ表現を
文字単位でprintしたいんだけどもう少し簡単な方法ない?
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=95162e453b679ff50c779695e9b545bf
&strをchars()でイテレートすると
char.encode_utf8でUTF8に戻するのがなんとも気持ち悪い
文字単位でprintしたいんだけどもう少し簡単な方法ない?
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=95162e453b679ff50c779695e9b545bf
&strをchars()でイテレートすると
char.encode_utf8でUTF8に戻するのがなんとも気持ち悪い
682デフォルトの名無しさん
2019/11/18(月) 19:16:24.62ID:z+VV/8hn >>681
char_indicesでイテレートすればposと(char.len_utf8で)lenが取れるから、それで元のスライスにアクセスする、とかかな。
そんなに短くはならないけど、bufferはいらなくなるはず。
char_indicesでイテレートすればposと(char.len_utf8で)lenが取れるから、それで元のスライスにアクセスする、とかかな。
そんなに短くはならないけど、bufferはいらなくなるはず。
683デフォルトの名無しさん
2019/11/18(月) 22:15:40.78ID:CjfZ5YZK >>682
なるほど
このやり方のほうが素直な気がするね
とりあえずありがとう
let baz = "aあ🦀";
for (pos, char) in baz.char_indices(){
println!("¥n{}:", char);
for byte in baz[pos..pos + char.len_utf8()].bytes() {
println!("{:b}", byte);
}
}
なるほど
このやり方のほうが素直な気がするね
とりあえずありがとう
let baz = "aあ🦀";
for (pos, char) in baz.char_indices(){
println!("¥n{}:", char);
for byte in baz[pos..pos + char.len_utf8()].bytes() {
println!("{:b}", byte);
}
}
684デフォルトの名無しさん
2019/11/19(火) 00:27:09.27ID:IXdZpGti rustも32bitのwindows向けのメンテやサポートは終了が確定してるよね…
685デフォルトの名無しさん
2019/11/19(火) 16:20:24.11ID:473MwB5J 2次元配列から最大値を有するデータ(with index)を取り出したいとき
イテレータのmax_by等を二段がけにするのと
従来プログラミング言語のように二重のforループで取り出すのと
どっちがおすすめ?
イテレータのmax_by等を二段がけにするのと
従来プログラミング言語のように二重のforループで取り出すのと
どっちがおすすめ?
686デフォルトの名無しさん
2019/11/19(火) 17:18:54.68ID:iUfotOQ6 >>685
読んだ人に意図が明確に伝わる方
読んだ人に意図が明確に伝わる方
687デフォルトの名無しさん
2019/11/19(火) 17:44:40.62ID:IXdZpGti forでやるとmutな変数の更新を自分でやることになるから安全性が落ちる
更新ミスによるデバッグコストのリスクがある
更新ミスによるデバッグコストのリスクがある
688デフォルトの名無しさん
2019/11/20(水) 21:08:08.17ID:1bHauA1T 変なやり方するより自然なfor使った方が
結局は可読性によって安全性やデバッグコスト低下になる。
結局は可読性によって安全性やデバッグコスト低下になる。
689デフォルトの名無しさん
2019/11/20(水) 22:09:44.36ID:kQh16pu+ こういうお爺ちゃんはほんと迷惑
長いというだけで関数に切り出したりするし
長いというだけで関数に切り出したりするし
690デフォルトの名無しさん
2019/11/20(水) 22:18:02.26ID:ZJ0yiBhZ え?長いのわけたらいかんの?
691デフォルトの名無しさん
2019/11/20(水) 22:22:05.63ID:kQh16pu+ いかんからもうやらないでね
692デフォルトの名無しさん
2019/11/20(水) 22:42:01.28ID:5+rTFt1E テストが書きやすい単位で分ければそう長くもならんだろ
693デフォルトの名無しさん
2019/11/20(水) 22:42:36.59ID:5+rTFt1E テストが書きやすい単位で分ければそう長くもならんだろ
694デフォルトの名無しさん
2019/11/20(水) 22:44:50.09ID:5+rTFt1E 専ブラが荒ぶった
連投スマソ
連投スマソ
695デフォルトの名無しさん
2019/11/20(水) 22:48:38.35ID:ykGdicPs 組み込みのCだとアセンブラを意識して減算カウンタでdo...while使ったりするけど
PCでそれはないな。イテレータが使える状況なら使ったほうが安全だし
PCでそれはないな。イテレータが使える状況なら使ったほうが安全だし
696デフォルトの名無しさん
2019/11/20(水) 23:40:48.65ID:1bHauA1T697デフォルトの名無しさん
2019/11/20(水) 23:43:20.92ID:ZhXfBtsy 関数切り出しがダメなのかRustでは
おじいちゃん驚きだわ
理由を何なの?
シャドウイングあるからとか?
おじいちゃん驚きだわ
理由を何なの?
シャドウイングあるからとか?
698デフォルトの名無しさん
2019/11/21(木) 00:12:22.19ID:ajP/wB6Z 競プロで見かける色んな人のコードでは
forループのほうが自然なとこを無理矢理イテレータのメソッドチェーンにしてたり、その逆があったり
forループのほうが自然なとこを無理矢理イテレータのメソッドチェーンにしてたり、その逆があったり
699デフォルトの名無しさん
2019/11/21(木) 00:26:18.38ID:i/7SJRFV 読みやすさが犠牲にならない範囲で短く書けるってことはよいことだけど
高階関数とかクロージャがまざるとトレースがめんどいのは確かだよね
デバッグ時にいらいらする
高階関数とかクロージャがまざるとトレースがめんどいのは確かだよね
デバッグ時にいらいらする
700デフォルトの名無しさん
2019/11/21(木) 01:07:26.22ID:GN1h9TxM >>685
1. 2重forループ
2. forループ + max系
3. fold + max系
の3択になると思うんだけど並列化も考えるような処理なら3がいい
そこまでの処理じゃないならメソッド抽出してテストを書いとけば中身はどれでもいいと思う
1. 2重forループ
2. forループ + max系
3. fold + max系
の3択になると思うんだけど並列化も考えるような処理なら3がいい
そこまでの処理じゃないならメソッド抽出してテストを書いとけば中身はどれでもいいと思う
702デフォルトの名無しさん
2019/11/21(木) 08:07:30.46ID:bRawZfWI forの方が自然てどういうケースだろうね
703デフォルトの名無しさん
2019/11/21(木) 08:37:51.52ID:i/7SJRFV704デフォルトの名無しさん
2019/11/21(木) 09:05:05.54ID:t44F/vpr 関数切り出しでスコープが広くなるとか、プログラミング言語として致命的な欠陥だろ
705デフォルトの名無しさん
2019/11/21(木) 09:32:00.36ID:i/7SJRFV 切り出すと特定の関数から一度しか呼ばれない関数がででるから、
それが無意味というか、むしろ関数のシンボルが増えるし
上から下に連続的にソースコード読めなくなるしでダメだと言っているのだろう
でもそれってRust以外の言語でも同様の話であって、なぜそれでもなぜ切り出すべきかは語りつくされてる
それでもRust固有の事情で反論があるなら書いてくれ
それが無意味というか、むしろ関数のシンボルが増えるし
上から下に連続的にソースコード読めなくなるしでダメだと言っているのだろう
でもそれってRust以外の言語でも同様の話であって、なぜそれでもなぜ切り出すべきかは語りつくされてる
それでもRust固有の事情で反論があるなら書いてくれ
706デフォルトの名無しさん
2019/11/21(木) 11:40:09.30ID:suwFOuwq scanとかinspect使う処理はforの方が読みやすいこと多いように思う
707デフォルトの名無しさん
2019/11/21(木) 12:20:05.12ID:YlKoSulN >>705
全くあなたの言う通り、そしてRust固有の話ではない
全くあなたの言う通り、そしてRust固有の話ではない
708デフォルトの名無しさん
2019/11/21(木) 13:17:36.82ID:ymw8VtjB709デフォルトの名無しさん
2019/11/21(木) 15:03:38.41ID:ByfXIyid 行儀の良くないプログラミングスタイルが
コンパイラに怒られてるだけに聞こえるなあ
例出してよ
コンパイラに怒られてるだけに聞こえるなあ
例出してよ
710デフォルトの名無しさん
2019/11/21(木) 17:54:01.27ID:Ju9cDeqK711デフォルトの名無しさん
2019/11/21(木) 20:17:44.56ID:BfqobOk+ まあバカにrust使わせるとどうなるかってことがよくわかる事例だな。
712デフォルトの名無しさん
2019/11/21(木) 20:54:42.20ID:yV25mt1X グローバルな型推論が無いのと型シグネチャが人に全然優しくないことに起因する、関数大きくなりがち問題はRust特有ですよ
最初から完成形があるわけでもないのに試行錯誤のコストを無視しちゃ駄目だ
最初から完成形があるわけでもないのに試行錯誤のコストを無視しちゃ駄目だ
713デフォルトの名無しさん
2019/11/21(木) 21:02:13.57ID:YlKoSulN >>710
小物臭すごいんで寄らないでください
小物臭すごいんで寄らないでください
714デフォルトの名無しさん
2019/11/21(木) 21:26:52.12ID:2mT9kv+U 抽象的な話じゃなくてコード出せよ
715デフォルトの名無しさん
2019/11/21(木) 21:32:48.48ID:gmc8FBJo 関数内関数を活用しよう
716デフォルトの名無しさん
2019/11/22(金) 09:52:07.52ID:G2a56k/U 苦労ぢゃ
717デフォルトの名無しさん
2019/11/22(金) 10:24:47.28ID:aoRVpdgs メソッドチェーン万歳
718デフォルトの名無しさん
2019/11/22(金) 13:02:23.70ID:sYczQ2I8719デフォルトの名無しさん
2019/11/22(金) 14:48:50.24ID:ZeXcMQQW 確かにimpl traitなかった頃のクロージャ返しとか、asyncなかった頃のFuture返しとかは煩雑だったけど
現時点でそんな大変な型シグネチャってあるか?
現時点でそんな大変な型シグネチャってあるか?
720デフォルトの名無しさん
2019/11/22(金) 19:24:09.78ID:EyqF2Cmi721デフォルトの名無しさん
2019/11/22(金) 19:42:58.93ID:sZn84uzB impl trait がない時代しか知らんのだろう
722デフォルトの名無しさん
2019/11/22(金) 20:26:37.15ID:aoRVpdgs バージョンアップごとにリリースノート確認するくらいの手間をかけろ
723デフォルトの名無しさん
2019/11/23(土) 00:04:27.77ID:OWOiuO7H んな手間かけるくらいならまともなテストコード書くほうが
よっぽど安全性上がるわ。
バランスがおかしい。
よっぽど安全性上がるわ。
バランスがおかしい。
724デフォルトの名無しさん
2019/11/23(土) 00:14:14.42ID:ykHu5UNS >>708
C/C++では関数分離は大事なこと考えずにやってたのかな?バグバグバグ
C/C++では関数分離は大事なこと考えずにやってたのかな?バグバグバグ
725デフォルトの名無しさん
2019/11/23(土) 00:14:39.49ID:8L2VfF1O リリースノート一回読む程度もやらない人が
Rustコンパイラと同等な網羅テストを毎回書けるとは思えんけどな。
Rustコンパイラと同等な網羅テストを毎回書けるとは思えんけどな。
726デフォルトの名無しさん
2019/11/23(土) 00:39:42.82ID:8xX8HZu8 関数に抽出するからというよりも
関数に抽出してジェネリックにしようとすると簡単にコンパイル通らないことが多々ある
例えば少し前に出てた2次元配列からmaxとindexを取得する例だけど
main関数から、配列やVecを受け取って結果だけをprintする関数を抽出したり
foldに渡すクロージャを関数として抽出したりするのに一苦労
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=160e0290cba2c67d8090326a54c7ab62
関数に抽出してジェネリックにしようとすると簡単にコンパイル通らないことが多々ある
例えば少し前に出てた2次元配列からmaxとindexを取得する例だけど
main関数から、配列やVecを受け取って結果だけをprintする関数を抽出したり
foldに渡すクロージャを関数として抽出したりするのに一苦労
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=160e0290cba2c67d8090326a54c7ab62
727デフォルトの名無しさん
2019/11/23(土) 03:05:15.71ID:lsT6kO8T >>726
デバッグしてあげました
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=31427b62cf0ac30ea340084d6b7e515e
デバッグしてあげました
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=31427b62cf0ac30ea340084d6b7e515e
728デフォルトの名無しさん
2019/11/23(土) 03:13:22.52ID:lsT6kO8T filter_mapしゃんを使って書き換えるのは諸君らへの宿題とする
729デフォルトの名無しさん
2019/11/23(土) 03:23:24.33ID:8xX8HZu8 >>727
ま、ありがとう
超バグってたね
ちょっと手直し
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=be7300d6fb44b350f1b190fa79e88d6a
ま、ありがとう
超バグってたね
ちょっと手直し
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=be7300d6fb44b350f1b190fa79e88d6a
730デフォルトの名無しさん
2019/11/23(土) 03:39:19.44ID:lsT6kO8T filter_mapしゃんをご存知ないのでしゅか
バグを出しにくい安全設計とはこうしゅるものでしゅ
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=5c184061ecdc7537d8eb8ccc1c146238
バグを出しにくい安全設計とはこうしゅるものでしゅ
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=5c184061ecdc7537d8eb8ccc1c146238
731デフォルトの名無しさん
2019/11/23(土) 03:44:01.49ID:lsT6kO8T 真の安全性はunwrap_or(init)なんて与えないことなんでしゅがね
取得したインデックスを使うことがある場合は空の2次元配列で死にましゅよ
取得したインデックスを使うことがある場合は空の2次元配列で死にましゅよ
732デフォルトの名無しさん
2019/11/23(土) 04:57:43.99ID:OVg6D0Jq インデックスとして使わなくても嘘の結果が表示されちゃうからOptionのままにして適切に表示を分けないといかんでしょな
733デフォルトの名無しさん
2019/11/23(土) 12:05:56.79ID:cBKKqL2b Rust用にソース書くときに結局Cでどうなってるか意識しないといけないのなら
最初からCで書いた方が良くね?ってなるよね
最初からCで書いた方が良くね?ってなるよね
734デフォルトの名無しさん
2019/11/23(土) 15:06:34.21ID:OVg6D0Jq そういう世界もあるかもしれないけど意識しないでしょ
Cで書いてたって、Cでどうなってるか意識してないじゃん
Cで書いてたって、Cでどうなってるか意識してないじゃん
735デフォルトの名無しさん
2019/11/23(土) 19:35:16.54ID:2/gd1mxA どういうアセンブリが出てるか確認しろよ
736デフォルトの名無しさん
2019/11/23(土) 22:15:20.19ID:OVg6D0Jq そんなら最初からアセンブリで書いた方が良くね?
ってなるじゃん
アホくさ
ってなるじゃん
アホくさ
737デフォルトの名無しさん
2019/11/24(日) 00:42:51.11ID:np+ynBzF うちは新しいコンパイラ出たらチームで逆アセ眺めて品評会してる
738デフォルトの名無しさん
2019/11/24(日) 09:08:56.80ID:Oi+jYcGL コンパイラだって人間が作った物だ。希に間違える事はある
739デフォルトの名無しさん
2019/11/24(日) 10:36:10.48ID:L4eQsSCt >>736
してないのか?低能
してないのか?低能
740デフォルトの名無しさん
2019/11/24(日) 11:56:22.50ID:ce9gfhz8 朝起きたら一杯のアセンブリ茶。
毎日欠かしたことはありません。
毎日欠かしたことはありません。
741デフォルトの名無しさん
2019/11/24(日) 13:02:06.02ID:CSNbk4W0 アセンブリ茶って体にいいの?
742デフォルトの名無しさん
2019/11/24(日) 17:36:26.10ID:vCPUEEji Clangで組み込みをする場合はアセンブリを見るがRustでWEBやCLIを作るときはあまりIRは気にしないな
Rust書いていてClangを意識したことは一度もない。普通LLVM IRだろ
Rust書いていてClangを意識したことは一度もない。普通LLVM IRだろ
743デフォルトの名無しさん
2019/11/24(日) 18:25:39.51ID:Ks3HYb8S >>739
なにをだよ三下
なにをだよ三下
744デフォルトの名無しさん
2019/11/24(日) 20:12:55.63ID:kcqeQudy 低レイヤー向け言語だけど低レイヤーは触りたくないという
よくわからんユーザー向け言語
よくわからんユーザー向け言語
745デフォルトの名無しさん
2019/11/24(日) 20:47:11.96ID:zJ3lZEAa shiftjisってRustで使えるの?
746デフォルトの名無しさん
2019/11/25(月) 01:07:44.42ID:qlZVJnnp 巨乳レイヤーは触りたい。
747デフォルトの名無しさん
2019/11/25(月) 11:16:58.97ID:OXWkeipl >>745
「使える」の定義次第
Firefoxで使ってるやつはコレ
https://docs.rs/encoding_rs/latest/encoding_rs/
https://github.com/hsivonen/encoding_rs
「使える」の定義次第
Firefoxで使ってるやつはコレ
https://docs.rs/encoding_rs/latest/encoding_rs/
https://github.com/hsivonen/encoding_rs
748デフォルトの名無しさん
2019/11/25(月) 13:05:19.75ID:pjJuONFZ >>744
ほんそれ
ほんそれ
749デフォルトの名無しさん
2019/11/25(月) 13:33:41.16ID:Gs3bQI7D 出来て当たり前の事をやって「やったぜ!」→「いいね!」になるのが今の日本
他の人がやらない事をやる人は「奴は特別だ(俺は出来なくてもしょうがない)」とレッテルが貼られる
アセンブラを馬鹿にする奴をしばしば見かけるがマイコンとかだとアセンブラが使えると可能になる処理ってまだあるしな
他の人がやらない事をやる人は「奴は特別だ(俺は出来なくてもしょうがない)」とレッテルが貼られる
アセンブラを馬鹿にする奴をしばしば見かけるがマイコンとかだとアセンブラが使えると可能になる処理ってまだあるしな
750デフォルトの名無しさん
2019/11/25(月) 13:39:32.23ID:pjJuONFZ っ https://twitter.com/KSY_RasPi_Shop/status/1197084483020677121
https://twitter.com/5chan_nel (5ch newer account)
https://twitter.com/5chan_nel (5ch newer account)
751デフォルトの名無しさん
2019/11/25(月) 14:22:19.37ID:VBqp5949 Rustグラマの平均年収3000万くらいいってそう
マイクロソフト、「Rust」試用は概ね順調--不足する機能にも言及 - ZDNet Japan
https://japan.zdnet.com/article/35145098/
マイクロソフト、「Rust」試用は概ね順調--不足する機能にも言及 - ZDNet Japan
https://japan.zdnet.com/article/35145098/
752デフォルトの名無しさん
2019/11/25(月) 16:33:29.05ID:TS/Fak3X 小学校高学年から中学二年くらいまでのアセンブリをペロペロしたいです
753デフォルトの名無しさん
2019/11/25(月) 17:00:15.74ID:veETdbiQ ペロペロ
>>746
巨乳がそんなにいいとは思いませんね、貧乳こそ正義
巨乳がそんなにいいとは思いませんね、貧乳こそ正義
755デフォルトの名無しさん
2019/11/25(月) 20:35:18.87ID:qlZVJnnp フツ乳好き以外は精神異常者。
757デフォルトの名無しさん
2019/11/25(月) 20:53:02.62ID:kVXiwW2u 今日からお前はフツ乳だし、あいつはツチ乳だからな
758デフォルトの名無しさん
2019/11/25(月) 21:02:57.89ID:kvlqke/V ここからルワンダの内戦が始まった
759デフォルトの名無しさん
2019/11/26(火) 00:08:01.25ID:1kDxX+p6760デフォルトの名無しさん
2019/11/26(火) 03:53:06.11ID:bRozRvY7 Yo!Yo!
761デフォルトの名無しさん
2019/12/02(月) 16:08:55.09ID:0BLlGnXD rustの親切コンパイラに慣れちゃった人は
他言語でもrustの親切コンパイラ感覚で雑なコーティングで不親切コンパイラを使ってバグを生み出すマシーンと化す
rust以外使えない体に…
他言語でもrustの親切コンパイラ感覚で雑なコーティングで不親切コンパイラを使ってバグを生み出すマシーンと化す
rust以外使えない体に…
762デフォルトの名無しさん
2019/12/02(月) 16:40:00.68ID:xKYi6RDA アホな書き方するとすぐ怒られるから
むしろまともになるのでは
むしろまともになるのでは
763デフォルトの名無しさん
2019/12/03(火) 12:05:39.67ID:n+J6zrpQ Microsoft: We're creating a new Rust-based programming language for secure coding
https://www.zdnet.com/article/microsoft-were-creating-a-new-rust-based-programming-language-for-secure-coding/
https://www.zdnet.com/article/microsoft-were-creating-a-new-rust-based-programming-language-for-secure-coding/
764デフォルトの名無しさん
2019/12/03(火) 12:13:06.00ID:yN5r9ueQ またオレオレ増やしたんか
それとも破壊工作か
それとも破壊工作か
765デフォルトの名無しさん
2019/12/03(火) 13:20:15.63ID:AhWfHQH2 これ前のニュースと同じじゃね?
windowsの開発に利用するのに必要なカスタムしてるだけだろ。いち利用者として。
windowsの開発に利用するのに必要なカスタムしてるだけだろ。いち利用者として。
766デフォルトの名無しさん
2019/12/03(火) 13:29:34.30ID:3xgyI5/y RustってDCTのイメージ
ポルシェとかフェラーリが使ってるあれ
ポルシェとかフェラーリが使ってるあれ
767デフォルトの名無しさん
2019/12/03(火) 14:06:53.14ID:LOAssVxZ ライフタイムパラメータの省略だったり、
derefやcopyをtraitで暗黙的な動作にしてたり
そういうのがバグを生みやすいってことわからんのかね。
derefやcopyをtraitで暗黙的な動作にしてたり
そういうのがバグを生みやすいってことわからんのかね。
768デフォルトの名無しさん
2019/12/03(火) 14:18:20.74ID:Ay4LfeTT 具体的にどういうケースでどんなバグになるの?
769デフォルトの名無しさん
2019/12/03(火) 14:25:00.78ID:jDo5c24e >>765
前のニュースとは違うね
https://vimeo.com/376180843
- 現状はProductionレベルのruntimeが出来たところ
- プロトタイプレベルのインタプリタとタイプチェッカーもある
- コンパイラはまだ開発を始めてない
- 数週間以内にGithubに公開
前のやつも動画公開されてたけどあんまり中身なかった
https://youtu.be/o01QmYVluSw?t=1228
前のニュースとは違うね
https://vimeo.com/376180843
- 現状はProductionレベルのruntimeが出来たところ
- プロトタイプレベルのインタプリタとタイプチェッカーもある
- コンパイラはまだ開発を始めてない
- 数週間以内にGithubに公開
前のやつも動画公開されてたけどあんまり中身なかった
https://youtu.be/o01QmYVluSw?t=1228
770デフォルトの名無しさん
2019/12/03(火) 20:59:01.41ID:u7b+W8Ww 要約すると
M$「Rustゴミだけどコンセプトはいいからコンセプト部分パクるはwww
OSSなんやし文句は言わさんwww
あ、俺はライセンスで売るけどなwww」
か
M$「Rustゴミだけどコンセプトはいいからコンセプト部分パクるはwww
OSSなんやし文句は言わさんwww
あ、俺はライセンスで売るけどなwww」
か
771デフォルトの名無しさん
2019/12/03(火) 21:21:57.12ID:yGKYf8HM J++みたいなやつかな
772デフォルトの名無しさん
2019/12/03(火) 22:19:43.57ID:1I2DD2lf やってるのはMSの研究部門
この部門は幾多の研究をしているが直接製品になるものはとても少ない、研究部門だから
たんにRustにダイブして良し悪しを知ろうとしているだけ
この部門は幾多の研究をしているが直接製品になるものはとても少ない、研究部門だから
たんにRustにダイブして良し悪しを知ろうとしているだけ
773デフォルトの名無しさん
2019/12/03(火) 23:09:05.32ID:S0RbQ8S1 昔MS Researchがハードウェア記述言語向けの開発ツールを本格的に作るって言ったことがあってすごく期待したんだけど、
結局大した成果もなく立ち消えになったのを思い出した…。
結局大した成果もなく立ち消えになったのを思い出した…。
774デフォルトの名無しさん
2019/12/04(水) 10:23:20.50ID:sb3P/SSe 昔二羽ンゴが動画配信向けのFPGAを本格的に作るって言ったことがあってすごく期待したんだけど、
結局大した成果もなく立ち消えになったのを思い出した…。
結局大した成果もなく立ち消えになったのを思い出した…。
775デフォルトの名無しさん
2019/12/04(水) 11:38:14.73ID:7DVYyWf8 たくさん失敗しないと成功できないしどんどん失敗して欲しい
776デフォルトの名無しさん
2019/12/04(水) 14:40:34.27ID:yxObKB0u MS Researchって「Winodwsを置き換える新OS作るぜ」とか言ってた事もあるんだぞ
現状はご存じの通りWindowsはいまだ健在
MSのポストWindows「Midori」の構想が明らかに
https://www.itmedia.co.jp/anchordesk/articles/0807/30/news076.html
現状はご存じの通りWindowsはいまだ健在
MSのポストWindows「Midori」の構想が明らかに
https://www.itmedia.co.jp/anchordesk/articles/0807/30/news076.html
777デフォルトの名無しさん
2019/12/04(水) 14:52:56.01ID:O7fLJ+Es 海荷
778デフォルトの名無しさん
2019/12/04(水) 15:05:23.66ID:Icg49EkL OCaml.NETことF#さんは一定の評価を得ているイメージ
779デフォルトの名無しさん
2019/12/04(水) 16:32:55.05ID:zuKEiXSP C#使ってるやつらが乗り換えるとも思えんな
780デフォルトの名無しさん
2019/12/04(水) 17:09:35.24ID:oHIt+BCl781デフォルトの名無しさん
2019/12/04(水) 17:18:14.61ID:oHIt+BCl782デフォルトの名無しさん
2019/12/05(木) 20:30:38.35ID:LdDpTgsU >>781
だって結局Rustじゃ何も作れないんだもん
だって結局Rustじゃ何も作れないんだもん
783デフォルトの名無しさん
2019/12/05(木) 20:55:53.44ID:8H7awdOo なぜなんだぜ
784デフォルトの名無しさん
2019/12/05(木) 21:23:07.86ID:BGzE2aqD とりあえずGUIフレームワークとゲームエンジンを・・・
785デフォルトの名無しさん
2019/12/05(木) 22:13:17.54ID:tXHfD70q 自分で作れよ
786デフォルトの名無しさん
2019/12/06(金) 10:11:30.49ID:uUae0oO6 Rustみたいに開発効率良くてデバッグもし易い言語ωなら
GUIフレームワークもゲームエンジンも爆高速で開発出来るよね
GUIフレームワークもゲームエンジンも爆高速で開発出来るよね
787デフォルトの名無しさん
2019/12/06(金) 11:31:33.35ID:+xYMF8dR ゲームエンジンはAmethystとかggezが頑張ってるのかな
GUIは作りかけができては放置されるの繰り返しであまり進まないね
moxie-native 試そうとしたけどビルド通らんかった
GUIは作りかけができては放置されるの繰り返しであまり進まないね
moxie-native 試そうとしたけどビルド通らんかった
788デフォルトの名無しさん
2019/12/06(金) 19:29:06.37ID:SuzkeVSk ライフタイム見直したら結局structから設計し直しとかそんな感じになる。
それが開発効率を下げてる。
それが開発効率を下げてる。
789デフォルトの名無しさん
2019/12/06(金) 22:54:20.00ID:TijxbTpR Azulつかっていたがクロスプラットフォーム対応が辛くてやめたわ
今はデカイ変更を加えているようだが頑張ってREADMEの内容ぐらいは完璧にして欲しい
今はデカイ変更を加えているようだが頑張ってREADMEの内容ぐらいは完璧にして欲しい
790デフォルトの名無しさん
2019/12/07(土) 06:42:16.65ID:L/BKwpgN このコンテストにRustで参加して優勝してRustのすごさを世間に知らしめようぜ!
第5回 Asprova プログラミングコンテスト
https://atcoder.jp/contests/asprocon5
第5回 Asprova プログラミングコンテスト
https://atcoder.jp/contests/asprocon5
791デフォルトの名無しさん
2019/12/07(土) 12:34:40.83ID:ZsYnLuoj もう少しコネクション保持したサーバープログラムをどうすんのとかサンプルほしいわ。
792デフォルトの名無しさん
2019/12/07(土) 12:45:27.09ID:erYV0nIU そんなものはGoを使えばよい
793デフォルトの名無しさん
2019/12/07(土) 12:49:57.95ID:ZsYnLuoj それはそうだが、オブジェクトの寿命を意識したプログラム例として参考にしたい。
794デフォルトの名無しさん
2019/12/07(土) 20:37:03.33ID:RmCIdZSZ tokioのサンプルじゃいかんのけ?
795デフォルトの名無しさん
2019/12/07(土) 21:02:50.74ID:ZsYnLuoj サンキュー。これでよさげ。listener周りが参考になりそう。
796デフォルトの名無しさん
2019/12/08(日) 23:03:36.89ID:GCQCtNmD みんなでMSが新しいRust出すのを待とうぜ!
797デフォルトの名無しさん
2019/12/09(月) 00:11:16.05ID:tIleS1RP Rust#
798デフォルトの名無しさん
2019/12/09(月) 00:13:28.83ID:JoeodElM Rustはまず名前変えないと無理だろ
Rustってググってもゲェムしか出てこねぇよ
Rustってググってもゲェムしか出てこねぇよ
799デフォルトの名無しさん
2019/12/09(月) 00:40:52.81ID:BygidCaR rust langでググればよくね?
800デフォルトの名無しさん
2019/12/09(月) 00:44:07.34ID:FD9BPIub Rustでググってもほぼほぼ言語のことしか出てこない
グーグル先生のカスタマイズ次第やろ
グーグル先生のカスタマイズ次第やろ
801デフォルトの名無しさん
2019/12/09(月) 06:49:32.48ID:c9WUFjLw 新しい名前はMicrosoft Rust
802デフォルトの名無しさん
2019/12/09(月) 07:15:46.16ID:P5GHtIan MSみたいな大企業的にRust(錆)ってネーミングは敬遠するんじゃね
803デフォルトの名無しさん
2019/12/09(月) 08:27:48.55ID:dsA8mCuW そんなの気にしないって
しょうもないゲン担ぎを気にする日本企業じゃあるまいし
しょうもないゲン担ぎを気にする日本企業じゃあるまいし
804デフォルトの名無しさん
2019/12/09(月) 08:34:08.93ID:lEQBdu8/ Visual Rust
805デフォルトの名無しさん
2019/12/09(月) 10:51:01.09ID:RLwtKsqp MSが関わるとろくなことにならない
806デフォルトの名無しさん
2019/12/09(月) 10:55:01.56ID:FD9BPIub Visual Crust
パリッとサクサク!
パリッとサクサク!
807デフォルトの名無しさん
2019/12/11(水) 06:49:16.28ID:5CG8kH4I メソッドとかに副作用を明示出来る構文あったりする?(引数のmut明示以外の副作用で)
808デフォルトの名無しさん
2019/12/11(水) 08:36:28.70ID:9rEgLiZN orbtkが0.3.1alpha1になっていた。native, elctron,browserに対応していて、どれも一発で動いた。windows, Linuxで検証。
809デフォルトの名無しさん
2019/12/11(水) 14:23:59.12ID:LIaQQ7bv crust懐かしいな
810デフォルトの名無しさん
2019/12/11(水) 16:37:17.47ID:NScZxG9p811デフォルトの名無しさん
2019/12/11(水) 18:30:33.47ID:glAHoJ/D wxRustが欲しい
812デフォルトの名無しさん
2019/12/11(水) 18:37:01.74ID:wJaDkA9Q813デフォルトの名無しさん
2019/12/12(木) 02:04:36.99ID:Nnj2Mpq2 DCESみたいなオリジナルのecsと違う技術的に説明すらされてないオレオレecsが増えてゆくな。
814デフォルトの名無しさん
2019/12/12(木) 12:12:21.57ID:G9zUefNb Rustいまいち盛り上がらんなあ
どこもGoばっか使いやがってコノヤロー
どこもGoばっか使いやがってコノヤロー
815デフォルトの名無しさん
2019/12/12(木) 17:19:37.23ID:ZgrZOUXi816デフォルトの名無しさん
2019/12/12(木) 17:31:07.39ID:Ijd1d2r8 >>815
そもそもプラットフォームにWebを選んだ時点でリアルタイム性や実行速度はそこそこで十分だからなあ
それらが重要になるのはもっと保守的な領域なので、Rustとかいうポッと出の言語は知られてすらいない
そもそもプラットフォームにWebを選んだ時点でリアルタイム性や実行速度はそこそこで十分だからなあ
それらが重要になるのはもっと保守的な領域なので、Rustとかいうポッと出の言語は知られてすらいない
817デフォルトの名無しさん
2019/12/12(木) 17:56:12.23ID:40jm9Rb/ 【急募】Rustでwebサーバー建てるお仕事〔ゲーム会社除く)
818デフォルトの名無しさん
2019/12/12(木) 18:32:44.32ID:Lo+C9eAO 引越は引越のANT
819デフォルトの名無しさん
2019/12/12(木) 20:51:45.28ID:Rc7qy7fw ライフタイムの考えは面白いけどそれだけだな。
820デフォルトの名無しさん
2019/12/12(木) 21:37:13.27ID:QcnezoE2 俺はRustでいいじゃんと思うけど
821デフォルトの名無しさん
2019/12/12(木) 22:14:18.36ID:G9zUefNb でも案件無いんだなこれが
822デフォルトの名無しさん
2019/12/12(木) 22:17:59.83ID:VqiNoJ2J 世界が必要としてるのは新言語ではない
Innullable Javaだ
Innullable Javaだ
823デフォルトの名無しさん
2019/12/12(木) 22:26:30.76ID:fj3dIJyl >>817
url貼らないけど自転車本の著者の一人がそれやってる会社にいる
url貼らないけど自転車本の著者の一人がそれやってる会社にいる
824デフォルトの名無しさん
2019/12/12(木) 22:28:50.79ID:QcnezoE2 その人のブログはとても勉強になる
825デフォルトの名無しさん
2019/12/13(金) 00:13:33.89ID:WNmLBJqN Webって技術的には正直面白くないからなあ
だからリビドーを持て余した連中は変な言語に走る
だからリビドーを持て余した連中は変な言語に走る
826デフォルトの名無しさん
2019/12/13(金) 01:57:25.93ID:vrg8AVXf orbtkが熱いと聞きますた
まだ触ってない
まだ触ってない
827デフォルトの名無しさん
2019/12/13(金) 06:03:41.34ID:GlNmi7Tq じゃ、orbtkがWindowsでうごくとこ動画で見せて
828デフォルトの名無しさん
2019/12/13(金) 07:00:10.85ID:vrg8AVXf 甘えんなハゲ
829デフォルトの名無しさん
2019/12/13(金) 12:21:49.28ID:RHHuV/p6 取ってきて cargo run --example ... するだけなのになんで動画?
830デフォルトの名無しさん
2019/12/13(金) 21:22:09.48ID:AirhCkz9 example動かしてみたけど
これはゲームUI専用のやつなんだな
OSのウィジェット使ってないからクリップボード使えないし
日本語入力も出来ない
これはゲームUI専用のやつなんだな
OSのウィジェット使ってないからクリップボード使えないし
日本語入力も出来ない
831デフォルトの名無しさん
2019/12/13(金) 22:27:30.69ID:wVI96F7k C ABIから使えるネイティブウィジェットのGUIツールキットTcl/Tkが候補に挙がるくらい少ない
832デフォルトの名無しさん
2019/12/14(土) 23:18:55.66ID:g6QtWyIm そこまでメモリ管理にシビアなプログラムの需要が日本にはもうない。
833デフォルトの名無しさん
2019/12/17(火) 21:59:30.10ID:xN+qS68V Iced も example tour 見てみた感じよさそうに思った
ただご多分に漏れず日本語は入力できない(□になった)
難しいんかね ttps://github.com/hecrj/iced/issues/103
ただご多分に漏れず日本語は入力できない(□になった)
難しいんかね ttps://github.com/hecrj/iced/issues/103
834デフォルトの名無しさん
2019/12/18(水) 02:09:28.71ID:Y1VmG9h8 >>833
あんまり詳しく見てないけど、Elmと同じモデルを採用してるというのがセンスいいね
あんまり詳しく見てないけど、Elmと同じモデルを採用してるというのがセンスいいね
835デフォルトの名無しさん
2019/12/23(月) 14:56:30.58ID:FLE8lYOm JavaScript 今から覚えるくらいなら Elm やれ
836デフォルトの名無しさん
2019/12/23(月) 20:42:31.88ID:sS1JWXeN elmは絶対に流行らない首をかけてもいい
837デフォルトの名無しさん
2019/12/23(月) 21:58:51.00ID:j6aRoIp6 Rustの立ち位置も似たようなもんやで
838デフォルトの名無しさん
2019/12/23(月) 22:27:56.54ID:0aHLh1ru もじらが作ってmsがおうえんしてくれてふだろ。
で?elmは?w
で?elmは?w
839デフォルトの名無しさん
2019/12/24(火) 00:47:07.34ID:4c9jV6+e erlang見て小ルーチンええな〜言ってるレベルだがな。
840デフォルトの名無しさん
2019/12/24(火) 01:08:10.92ID:9irKuexe 軽量プロセスはコルーチンではないぞ
841デフォルトの名無しさん
2019/12/24(火) 07:17:39.18ID:1am5/M78 TEAベースのKaguraもよろしくお願いしますね
842デフォルトの名無しさん
2019/12/25(水) 23:32:33.59ID:MA63ugKX 軽量プロセスはコルーチンちゃうんか
843デフォルトの名無しさん
2019/12/25(水) 23:38:34.92ID:rtgRmFxx プロセスはスレッドが別のこともあるけど、別スレッドで動作するものをふつうコルーチンとは呼ばないね。
844デフォルトの名無しさん
2019/12/26(木) 00:26:57.90ID:AhAD5nXk ほなコルーチンと違うかぁ
もうちょっと詳しく教えてくれる?
もうちょっと詳しく教えてくれる?
845デフォルトの名無しさん
2019/12/26(木) 10:48:13.00ID:s9rWqp86 名古屋コルーチン
846デフォルトの名無しさん
2019/12/27(金) 20:54:40.66ID:zMa/58Jf 軽量「プロセス」とか言い出したのは誰だよ…
847デフォルトの名無しさん
2019/12/27(金) 20:57:38.45ID:zMa/58Jf848デフォルトの名無しさん
2019/12/27(金) 23:08:45.63ID:mZEWK1vc なーにちょっとセグフォったぐらいヘーキヘーキ
849デフォルトの名無しさん
2019/12/27(金) 23:11:02.66ID:uyqJfPGf Rustクソむかつく
訳わからんとこでエラー吐いて遅々として進まない
訳わからんとこでエラー吐いて遅々として進まない
850デフォルトの名無しさん
2019/12/27(金) 23:40:09.93ID:CoHNsOHu それをロンチ後に味わうよりずっといい
851デフォルトの名無しさん
2019/12/27(金) 23:55:25.45ID:URhJW9sD 可能性の塊やぞ
852デフォルトの名無しさん
2019/12/28(土) 09:01:50.45ID:vlOag0kC https://www.redox-os.org/jp/
密かに期待してる
密かに期待してる
853デフォルトの名無しさん
2019/12/28(土) 18:55:04.32ID:IqI7wbUC854デフォルトの名無しさん
2019/12/28(土) 23:58:48.46ID:REPcOsSU >>849
Rust難しいけど相応の対価はあると思うぜ
Rust難しいけど相応の対価はあると思うぜ
855デフォルトの名無しさん
2020/01/01(水) 08:04:30.24ID:6zSEt3Eo 重量プロセス
856デフォルトの名無しさん
2020/01/03(金) 00:21:36.29ID:4CdCqvzm なんか,外部クレートを取ってこれなくなってない?
サーバ側がバグってる?
サーバ側がバグってる?
857856
2020/01/03(金) 00:32:48.86ID:4CdCqvzm858856
2020/01/03(金) 00:40:14.08ID:4CdCqvzm859デフォルトの名無しさん
2020/01/13(月) 02:25:37.87ID:kbEHI+CO C系のワンラインifや?演算子は悪しき文化だと思うこの頃
最近書かれたOSSのコードにも多用されていたりするから笑えない
もちろんRustでそんな邪悪な書き方は許されていないけど
最近書かれたOSSのコードにも多用されていたりするから笑えない
もちろんRustでそんな邪悪な書き方は許されていないけど
860デフォルトの名無しさん
2020/01/13(月) 06:53:45.05ID:j6Sgy/j5 ?演算子が無いとこれができん↓↓↓
const int y = (x > 0) ? 1 : -1;
if文を使うと
int y;
if (x > 0) {
y = 1;
} else {
y = -1;
}
となってyがmutableにせざるおえない
const int y = (x > 0) ? 1 : -1;
if文を使うと
int y;
if (x > 0) {
y = 1;
} else {
y = -1;
}
となってyがmutableにせざるおえない
861デフォルトの名無しさん
2020/01/13(月) 09:12:02.94ID:Xv6FKp77 >>859
Rustは糞だな
それが好きならお前が整形ツール使えばいいだけの話
>>860
> let y = if x == 5 { 10 } else { 15 }; // y: i32
https://doc.rust-jp.rs/the-rust-programming-language-ja/1.6/book/if.html
Rustは糞だな
それが好きならお前が整形ツール使えばいいだけの話
>>860
> let y = if x == 5 { 10 } else { 15 }; // y: i32
https://doc.rust-jp.rs/the-rust-programming-language-ja/1.6/book/if.html
862デフォルトの名無しさん
2020/01/13(月) 09:13:06.23ID:Xv6FKp77 すまん、言い忘れたが、俺は出来るだけ ? を使う派だ
863デフォルトの名無しさん
2020/01/13(月) 15:23:43.45ID:xcD2sz0v そんなカスな書き方にこだわるくらいならconstでなくても困らんくらいに関数きれや。
864デフォルトの名無しさん
2020/01/13(月) 16:29:03.41ID:axFuJyFl C
x = y == a ? A : B
x = y == a ? A : y == b ? B : C
Python
x = A if y == a else B
x = A if y == a else B if y == b else C
優先順が判りにくい
x = y == a ? A : B
x = y == a ? A : y == b ? B : C
Python
x = A if y == a else B
x = A if y == a else B if y == b else C
優先順が判りにくい
865デフォルトの名無しさん
2020/01/13(月) 18:52:00.24ID:BwoUkKtw866デフォルトの名無しさん
2020/01/13(月) 23:08:55.12ID:Xv6FKp77 >>863
俺は切ってるけどな。
が、こんなところで言い争いをする意味もないので、Rustはどうかと思ってFireFox見てみたが、
SpiderMonkeyは思いっきりC++じゃねえかよ。Rustってどこに使われてるんだ?
https://hg.mozilla.org/mozilla-central/file/d5843cae64d30255b242d051888e99bef3de5c05
俺は切ってるけどな。
が、こんなところで言い争いをする意味もないので、Rustはどうかと思ってFireFox見てみたが、
SpiderMonkeyは思いっきりC++じゃねえかよ。Rustってどこに使われてるんだ?
https://hg.mozilla.org/mozilla-central/file/d5843cae64d30255b242d051888e99bef3de5c05
867デフォルトの名無しさん
2020/01/13(月) 23:22:40.80ID:xcD2sz0v まあ実践的なコードになればなるほど、
mut, unsafe, refcell使いまくりだからな。。
mut, unsafe, refcell使いまくりだからな。。
868デフォルトの名無しさん
2020/01/13(月) 23:35:29.58ID:oL0Ub0pZ >>866
とりあえずservoディレクトリの下はRustだと思うけど。
とりあえずservoディレクトリの下はRustだと思うけど。
869デフォルトの名無しさん
2020/01/14(火) 16:22:27.20ID:uFo9dhko >>849 俺も、昔C言語で苦しんだな。誰にも教えてもらえないし、しかしその分人より詳しくなったよ。
C言語に詳しくなるって事は、弱点も知ることになる、そしてその弱点からどう逃げるか?そういうことも考えるようになる。
Rustの逆引き辞典みたいなハンドブックがインターネットに転がってないかなぁ
C言語に詳しくなるって事は、弱点も知ることになる、そしてその弱点からどう逃げるか?そういうことも考えるようになる。
Rustの逆引き辞典みたいなハンドブックがインターネットに転がってないかなぁ
870デフォルトの名無しさん
2020/01/14(火) 19:15:10.25ID:3eaorBLU こことか結構いいぞ。
https://github.com/rust-unofficial
https://github.com/rust-unofficial
871デフォルトの名無しさん
2020/01/14(火) 19:21:50.48ID:tuFEGmKg moveのコストってみんな気にしてる?
Cだったらポインタ渡すだけだったり
ポインタを返すだけだったりで最小限な感あるけど
rustじゃポインタ中心でやりくりしないよね
Cだったらポインタ渡すだけだったり
ポインタを返すだけだったりで最小限な感あるけど
rustじゃポインタ中心でやりくりしないよね
872デフォルトの名無しさん
2020/01/14(火) 20:12:08.07ID:bWQIptzM コンパイラの最適化で消えるんじゃないの?知らんけど
moveコストが気になるってどんなプログラムか想像付かないけどゲームとか?
moveコストが気になるってどんなプログラムか想像付かないけどゲームとか?
873デフォルトの名無しさん
2020/01/14(火) 22:36:34.11ID:fFlEK4SW 普通moveコストが気になるほど巨大なものをスタックに置かないのでは。
あとCでポインタ渡すケースなら普通は参照渡しだろうし。
あとCでポインタ渡すケースなら普通は参照渡しだろうし。
874デフォルトの名無しさん
2020/01/14(火) 22:49:49.23ID:QFWUHN7i そやったね失礼
参照があったわw
初心者まるだしですまそ
参照があったわw
初心者まるだしですまそ
875デフォルトの名無しさん
2020/01/14(火) 23:35:09.81ID:ngXFRoSC876デフォルトの名無しさん
2020/01/15(水) 08:43:43.81ID:nrskqwsi どちらかというとCと同じ抽象度で書いても安全性が担保されることがRustのメリットでは。
より高い抽象度の操作しか許さないから安全、ってのなら他にいくらでも選択肢はあるわけで。
より高い抽象度の操作しか許さないから安全、ってのなら他にいくらでも選択肢はあるわけで。
877デフォルトの名無しさん
2020/01/15(水) 10:16:34.92ID:DPd+8sgQ >>876
ご意見ごもっとも。
ただ、例外的とされている仕様を日常的に使用せざるを得ないのは、
言語の仕様(思想)または適用範囲(用途)を間違えているからだ。
「安全なC」を目指すのも一見良さそうにも見えるが、実際のところ、
Cが問題になるのは馬鹿が書くからであって、いわゆる「駄目なコード」はOSSには存在しない。
(正確には「駄目なコード」があるとメンテ不能となって淘汰されるから、
生き残っているOSSはメンテ可能状態=駄目なコードがない状態に保たれている)
この意味では、Cを馬鹿よけとして使っているLinusのやり方が正しい。
「非安全」だから使うなとされている機能を常用するのならRustを使う意味がまるでないし、
コーディングがしにくいだけの単なる「意識高い系ドM」でしかない。
当然、プロジェクトは沈没していく。
一方、ロシアは鉛筆を使った、に近い。
ご意見ごもっとも。
ただ、例外的とされている仕様を日常的に使用せざるを得ないのは、
言語の仕様(思想)または適用範囲(用途)を間違えているからだ。
「安全なC」を目指すのも一見良さそうにも見えるが、実際のところ、
Cが問題になるのは馬鹿が書くからであって、いわゆる「駄目なコード」はOSSには存在しない。
(正確には「駄目なコード」があるとメンテ不能となって淘汰されるから、
生き残っているOSSはメンテ可能状態=駄目なコードがない状態に保たれている)
この意味では、Cを馬鹿よけとして使っているLinusのやり方が正しい。
「非安全」だから使うなとされている機能を常用するのならRustを使う意味がまるでないし、
コーディングがしにくいだけの単なる「意識高い系ドM」でしかない。
当然、プロジェクトは沈没していく。
一方、ロシアは鉛筆を使った、に近い。
878デフォルトの名無しさん
2020/01/15(水) 13:15:08.87ID:eUr1BYr3879デフォルトの名無しさん
2020/01/15(水) 15:26:49.41ID:vosN76E7 opensslさんから一言お願いします
880デフォルトの名無しさん
2020/01/15(水) 18:02:26.14ID:lC3F4iid881デフォルトの名無しさん
2020/01/15(水) 21:18:04.48ID:DPd+8sgQ >>880
Rustはどんな馬鹿が書いてもセキュリティホールが存在し得ないとでも?
多分お前はセキュリティホールが何か、すら分かってないと思うが。
むしろお前みたいな馬鹿がRust使う意味なんて全くないはず。
俺やRustの言う「駄目なコード」はそこではないし。
お前みたいな馬鹿でも分かる話をするなら、
現実として、もっと上位の記述しか出来ないPHPでもセキュリティの問題はやらかしまくってるだろ。
あれは『ホール』と呼ぶべきかどうか、という話はあるにしても、
低位の『ホール』だけ塞いだところでその上位でいくらでもやらかせるのでそれ自体に大した意味はないんだよ。
それ以前に、Rustが低位の『ホール』を全部塞いでいるかどうかなんて俺は知らんが。
あれはPHPerの頭が悪いせいにされているが、お前らがWebやったらもっと酷いことをやらかすのは確実だ。
Rustはどんな馬鹿が書いてもセキュリティホールが存在し得ないとでも?
多分お前はセキュリティホールが何か、すら分かってないと思うが。
むしろお前みたいな馬鹿がRust使う意味なんて全くないはず。
俺やRustの言う「駄目なコード」はそこではないし。
お前みたいな馬鹿でも分かる話をするなら、
現実として、もっと上位の記述しか出来ないPHPでもセキュリティの問題はやらかしまくってるだろ。
あれは『ホール』と呼ぶべきかどうか、という話はあるにしても、
低位の『ホール』だけ塞いだところでその上位でいくらでもやらかせるのでそれ自体に大した意味はないんだよ。
それ以前に、Rustが低位の『ホール』を全部塞いでいるかどうかなんて俺は知らんが。
あれはPHPerの頭が悪いせいにされているが、お前らがWebやったらもっと酷いことをやらかすのは確実だ。
882デフォルトの名無しさん
2020/01/15(水) 21:50:07.07ID:vosN76E7 あんたのいう駄目なコードの定義なんて誰も知らないだろ
883デフォルトの名無しさん
2020/01/15(水) 21:53:07.43ID:JGL8Rg1T まあ静的チェックで仕事終わりにできると思ってるバカは多いな。
そういう馬鹿が一番厄介。あの手この手でテストしない理由をこねくり回してくる。
そういう馬鹿が一番厄介。あの手この手でテストしない理由をこねくり回してくる。
884デフォルトの名無しさん
2020/01/15(水) 22:48:54.43ID:lC3F4iid885デフォルトの名無しさん
2020/01/15(水) 23:21:00.85ID:DPd+8sgQ886デフォルトの名無しさん
2020/01/15(水) 23:50:55.75ID:lC3F4iid >>885
はっきり書いてあることと関係ないこと喚いてるだけじゃん
はっきり書いてあることと関係ないこと喚いてるだけじゃん
887デフォルトの名無しさん
2020/01/16(木) 00:41:04.84ID:o+vnDRH4 >>886
日本語が不自由なら半島に帰れ
日本語が出来るつもりなら正しく伝わるように言え
Rustで書かれて開発体制がしっかりしているはずのFireFoxでも、
糞遅くてシェア落としまくりで最早ゴミになりつつあり、
セキュリティホールが存在しないって事もあり得ないと思うけど。
CとRustの対比で「セキュリティホール」を持ち出している時点で意味不明だが、
お前が言っていることに直接言及するならこうなる。
これには反論出来るのか?
日本語が不自由なら半島に帰れ
日本語が出来るつもりなら正しく伝わるように言え
Rustで書かれて開発体制がしっかりしているはずのFireFoxでも、
糞遅くてシェア落としまくりで最早ゴミになりつつあり、
セキュリティホールが存在しないって事もあり得ないと思うけど。
CとRustの対比で「セキュリティホール」を持ち出している時点で意味不明だが、
お前が言っていることに直接言及するならこうなる。
これには反論出来るのか?
888デフォルトの名無しさん
2020/01/16(木) 00:43:31.18ID:AX8DDKRs889デフォルトの名無しさん
2020/01/16(木) 00:45:07.72ID:o+vnDRH4890デフォルトの名無しさん
2020/01/16(木) 01:20:17.86ID:o1pVy6eo 問題を起こさない人が書いたコードには問題がない
という主張になんの意味があるんだ
そりゃそうだろとしか言いようがない
そんな人間はいないという前提にいないならばプログラマー同士の議論にはならないだろ
という主張になんの意味があるんだ
そりゃそうだろとしか言いようがない
そんな人間はいないという前提にいないならばプログラマー同士の議論にはならないだろ
891デフォルトの名無しさん
2020/01/16(木) 02:17:49.53ID:OG9QJoeV892デフォルトの名無しさん
2020/01/16(木) 05:48:47.89ID:I1VMveuP 自動車で考えると、自動運転が進むと自動車が優秀だから馬鹿が運転しても事故が起きない。
「馬鹿」は運転するなと?
「馬鹿」と言い切ってしまうから、問題がややこしくなる。感情的になるような気がする。
馬鹿除けとは、微妙な表現だ。
「馬鹿」は運転するなと?
「馬鹿」と言い切ってしまうから、問題がややこしくなる。感情的になるような気がする。
馬鹿除けとは、微妙な表現だ。
893デフォルトの名無しさん
2020/01/16(木) 06:09:04.61ID:iXD/XJ1o 微妙だが実際linuxはそれで成功してるしな。。
馬鹿よけがびっくりするほど効果的だったという事実。
馬鹿よけがびっくりするほど効果的だったという事実。
894デフォルトの名無しさん
2020/01/16(木) 23:16:50.25ID:o+vnDRH4 >>892
> 「馬鹿」は運転するなと?
yes。DSL(例:Excelのマクロ)やアプリケーションレベルはやればいいが、システムレベルは止めた方がいい。
(一般的に滅茶苦茶切れると聞く)料理人用の包丁を素人が使ったら当然怪我するし、
子供に包丁を練習させるときには主婦レベルからしても切れなすぎて使えない果物ナイフ等から始めるだろ。
技量に応じた適切な道具はある。
システムレベルなんてプロの領域だから、Cすら適切に扱えない奴がやろうとするのが間違ってる。
愚直にこれ、つまり駄目なコードを目で見てrejectすることにより上手く行っているのがLinux。
RustはCすら満足に扱えない馬鹿の為にありとあらゆる補助輪を付けて
馬鹿な素人でもシステムレベルのプログラミングが出来るようになっている、
と考えるのは日本人の勘違いでしかない。
というか、どんな馬鹿でもどうにかして使って人件費を下げよう、という日本流思想が根本的に間違い。
年収を比べれば分かるはずだが、海外はざっくり2倍、つまり2倍の生産性であることを意味する。
https://qiita.com/jabba/items/72c7f9202a1a0a5616fc
といっても、ここにいるような奴は、「隣の奴より俺の方が倍働いている」「俺は平均よりは上だ」と思っているだろうし、
実際そうだとも思うが。
が、まあ、それはさておき、結果的に海外のプログラマは日本で言う「平均以上」の奴らのみで構成されているはずで、
俺らが日常的に目にしている「馬鹿」レベルはかなり少ないはずだし、結果、逆の方向、つまり、
・Cを適切に扱える奴が、もっと生産性の高い言語を使ったらどうなる?
を目指しているはずだ。だから必要であればunsafeを躊躇なく使うし、それでも問題ないわけで。
> 「馬鹿」は運転するなと?
yes。DSL(例:Excelのマクロ)やアプリケーションレベルはやればいいが、システムレベルは止めた方がいい。
(一般的に滅茶苦茶切れると聞く)料理人用の包丁を素人が使ったら当然怪我するし、
子供に包丁を練習させるときには主婦レベルからしても切れなすぎて使えない果物ナイフ等から始めるだろ。
技量に応じた適切な道具はある。
システムレベルなんてプロの領域だから、Cすら適切に扱えない奴がやろうとするのが間違ってる。
愚直にこれ、つまり駄目なコードを目で見てrejectすることにより上手く行っているのがLinux。
RustはCすら満足に扱えない馬鹿の為にありとあらゆる補助輪を付けて
馬鹿な素人でもシステムレベルのプログラミングが出来るようになっている、
と考えるのは日本人の勘違いでしかない。
というか、どんな馬鹿でもどうにかして使って人件費を下げよう、という日本流思想が根本的に間違い。
年収を比べれば分かるはずだが、海外はざっくり2倍、つまり2倍の生産性であることを意味する。
https://qiita.com/jabba/items/72c7f9202a1a0a5616fc
といっても、ここにいるような奴は、「隣の奴より俺の方が倍働いている」「俺は平均よりは上だ」と思っているだろうし、
実際そうだとも思うが。
が、まあ、それはさておき、結果的に海外のプログラマは日本で言う「平均以上」の奴らのみで構成されているはずで、
俺らが日常的に目にしている「馬鹿」レベルはかなり少ないはずだし、結果、逆の方向、つまり、
・Cを適切に扱える奴が、もっと生産性の高い言語を使ったらどうなる?
を目指しているはずだ。だから必要であればunsafeを躊躇なく使うし、それでも問題ないわけで。
895デフォルトの名無しさん
2020/01/16(木) 23:17:33.90ID:o+vnDRH4 そもそも何でもかんでも馬鹿中心に考えるのは馬鹿の思い上がりであって、
例えばGCにしても、「GCが無いとリークしまくる馬鹿の為の補助輪」ではなく、
「メモリ管理の煩わしさからプログラマを解放する」為の物であり、当然暗に「その先」を目指している。
だからそもそもCすらまともに使えない奴がRustを使うのが間違いで、
(実際どうかはさておき、目指しているところは)Rustはより生産性が高いというわけだから、
基本ラインとしては,、「Cだとメンドクセエ」「Cだと俺の理想のコードにならねえ」と思う奴が使う言語だろ。
つまり、本来は、問題を起こさないようになってから使う言語だよ、Rustは。
例えばGCにしても、「GCが無いとリークしまくる馬鹿の為の補助輪」ではなく、
「メモリ管理の煩わしさからプログラマを解放する」為の物であり、当然暗に「その先」を目指している。
だからそもそもCすらまともに使えない奴がRustを使うのが間違いで、
(実際どうかはさておき、目指しているところは)Rustはより生産性が高いというわけだから、
基本ラインとしては,、「Cだとメンドクセエ」「Cだと俺の理想のコードにならねえ」と思う奴が使う言語だろ。
つまり、本来は、問題を起こさないようになってから使う言語だよ、Rustは。
896デフォルトの名無しさん
2020/01/17(金) 00:37:23.07ID:N4X+Xwxw そのキータには、日本人は同じレベルでも給料が安いと書いてあるようだが
897デフォルトの名無しさん
2020/01/17(金) 09:47:24.91ID:w7/ZzyeZ enumがヴァリアントの最大幅とるってどういう原理?
structはCより最適化されてるよね
structはCより最適化されてるよね
898デフォルトの名無しさん
2020/01/17(金) 11:18:32.31ID:5x//VkpE Cのunionみたいな?
899デフォルトの名無しさん
2020/01/17(金) 20:01:37.63ID:ci6pcaNH 馬鹿を自覚できてる人なら
必死の長文を連投したりはしないんだろうな
必死の長文を連投したりはしないんだろうな
900デフォルトの名無しさん
2020/01/18(土) 00:49:52.56ID:LVpCcFR7 最近このスレを見始めて、過去ログから見てたんだけど、Cargoで不満言ってる人いるけど、理由って何?
単純に気になるんだけど、クソしか言ってないから分からん
単純に気になるんだけど、クソしか言ってないから分からん
901デフォルトの名無しさん
2020/01/18(土) 02:06:56.11ID:PBVL2e99 あーん、actix様が死んだー
902デフォルトの名無しさん
2020/01/18(土) 05:41:10.98ID:A26NF1jl 急募: actix-web 乗り換え先
903デフォルトの名無しさん
2020/01/18(土) 06:25:00.35ID:MTwjFHlv ファ!?マジでお亡くなりになってるやんけ
一体何があった?
一体何があった?
904デフォルトの名無しさん
2020/01/18(土) 07:04:10.17ID:i03lhjxa ざっと見たところ、クソコメがひどいからactixのメンテやめるわって事かな
ベンチマーク詐欺師、バグだらけ、俺のパッチを受け入れろ
と言われて炎上したのが原因か?
ベンチマーク詐欺師、バグだらけ、俺のパッチを受け入れろ
と言われて炎上したのが原因か?
905デフォルトの名無しさん
2020/01/18(土) 07:05:30.30ID:5dxh/zOs >>903
つ https://twitter.com/GolDDranks/status/1218153099639934976
https://twitter.com/5chan_nel (5ch newer account)
つ https://twitter.com/GolDDranks/status/1218153099639934976
https://twitter.com/5chan_nel (5ch newer account)
906デフォルトの名無しさん
2020/01/18(土) 14:41:26.79ID:wMBhn349 なんで関係ない第三者が辞める宣言しとるんやと思ったら「辞めろ」のtypoか
ま、いうてすぐ別のフォークが誕生するやろ ハナホジー
ま、いうてすぐ別のフォークが誕生するやろ ハナホジー
907デフォルトの名無しさん
2020/01/18(土) 20:42:42.95ID:1O2OVvd1 cargoは何でもやろうとし過ぎなのが一番のクソポイントだと思ってるけど、個人的には
・他のビルドツールと一緒に使うのが面倒
・パッケージマネージャとビルドツールが同じツールであることが非合理的
・昔は「crateはrustのコンパイル単位です」なんて戯言を抜かしていた
・rustcを改善するモチベーションが下がる
全部個人の感想だし、マンパワーが足りないならひと括りにするメリットはあったと思うけど、イケてないと常々思ってる
・他のビルドツールと一緒に使うのが面倒
・パッケージマネージャとビルドツールが同じツールであることが非合理的
・昔は「crateはrustのコンパイル単位です」なんて戯言を抜かしていた
・rustcを改善するモチベーションが下がる
全部個人の感想だし、マンパワーが足りないならひと括りにするメリットはあったと思うけど、イケてないと常々思ってる
908デフォルトの名無しさん
2020/01/19(日) 00:07:59.13ID:ZofGlu8L 以前はcargoからリンカを制御方法とか全く判らなかったけど最近出来るようになったのかな
909デフォルトの名無しさん
2020/01/19(日) 06:17:00.35ID:npSn4vFb Clangだから成功したと言えるのか?
Rustなどのモダンなシステムプログラミング言語があの時代にあればどうなったかは誰にも分からんだろ
リーナスがRustキチであっても他のプログラマとしての素質が変わらなければ成功したと俺は思うが
なんにせよ巨人の肩に乗ってマウントした気になっても万人がそれで納得するとは限らないし逆効果もあるぞ
Rustなどのモダンなシステムプログラミング言語があの時代にあればどうなったかは誰にも分からんだろ
リーナスがRustキチであっても他のプログラマとしての素質が変わらなければ成功したと俺は思うが
なんにせよ巨人の肩に乗ってマウントした気になっても万人がそれで納得するとは限らないし逆効果もあるぞ
910デフォルトの名無しさん
2020/01/19(日) 06:19:04.90ID:npSn4vFb なんか以前書き込んだはずのレスができてなくてロードしたら送信されたっぽい
>>893辺りへのレスだが恥ずかしいからROMるわ、すまんな
>>893辺りへのレスだが恥ずかしいからROMるわ、すまんな
911デフォルトの名無しさん
2020/01/19(日) 09:48:12.84ID:TwfOJbH4 >>907
cargoの欠点答えてくれてありがとう
正しいcargoの立ち位置としてパッケージマネジャーの仕事だけして、今cargoがしてるビルドツールのラッパー要素を別にして、その別のでcargoとructcを単純に抽象化したら結構解決するってことかな?
cargoの欠点答えてくれてありがとう
正しいcargoの立ち位置としてパッケージマネジャーの仕事だけして、今cargoがしてるビルドツールのラッパー要素を別にして、その別のでcargoとructcを単純に抽象化したら結構解決するってことかな?
912デフォルトの名無しさん
2020/01/19(日) 10:13:54.83ID:L2mlhsAt >>909
なにからなにまでずれすぎててどっからつっこだらいいのやら。。
clangとlinuxは全く関係ないし、
リーナスがrust推しだったらとかプログラムの好みからしてそれだったらlinux作っとらんしとか
どこからどこまでも間違ってるとしか言いようがない。
仮定としてできることとしたらc++テンプレートの信頼性が当時高かったらとかその程度だろう。
それでもc++を使うことはなかっただろうと思うが。
なにからなにまでずれすぎててどっからつっこだらいいのやら。。
clangとlinuxは全く関係ないし、
リーナスがrust推しだったらとかプログラムの好みからしてそれだったらlinux作っとらんしとか
どこからどこまでも間違ってるとしか言いようがない。
仮定としてできることとしたらc++テンプレートの信頼性が当時高かったらとかその程度だろう。
それでもc++を使うことはなかっただろうと思うが。
913デフォルトの名無しさん
2020/01/19(日) 10:31:40.67ID:PM2cmccN LinusにRustを教えたのがアワシロイクヤ氏だったのも良かったんじゃないか。
人柄だな。
人柄だな。
914デフォルトの名無しさん
2020/01/19(日) 11:07:27.21ID:QWtapXFZ >>909
お前は問題の本質が分かってない。
言語の問題ではなく、マネジメントの問題だ。
巨人の肩に乗ってマウントガーなんてのは、お前がコンプレックス持ちの馬鹿だからそう勘違いするだけ。
誰もそんなことしようともしていない。
駄目なコード片が混入した場合、何も保護機構がないCではプロジェクト全体が死んでしまう。
よって、どうやってそれを防ぐか、という話であって、Linusはアナログ的に「目で見てreject」をやってる。
それでLinuxは最も成功しているOSSの一つなのだから、これは結果的には正しい、とは言える。
が、当然これはデジタル的には格好悪すぎる。
よって各種言語は何とかして静的に検査をしようと、文法を拡充させてきた。
C++文法がゴテゴテになってるのも、Rustがやたらコンパイルが厳しいのもこれだ。
これで短/長期的な生産性を競おう、ということになっている。
さて、Linusの「馬鹿が書いたコードなんてイラネ」は「それ言っちゃおしめえよ」ではあるから、当然反発はされる。>>892もこれだ。
とはいえ、結果的にこれは単純には、
1. Cで問題ない奴はCで書く
2. Cでも問題ないレベル(安全装置がなくても問題ない人達)だが、Linusのやり方が気に入らないからコミットしない
3. Cでは駄目なレベル(安全装置があるから何とかなっている人達)だが、Rustならいけるかも?
で、Linuxは結果的に1だけでプロジェクトを動かしている。
その分、commit出来る人が減り、追従は遅くなるが、今のところ他よりまし、ということになっている。
一方、Rustで何かプロジェクトを起こした場合、2だけで構成するならLinuxを倒せるはずだが、3の人達の混入を防げない。
駄目なコード片の混入を防ぐのは、プルリク段階で弾くのがもっとも効率がよく、
一旦受け入れて問題が発生してデバッグだと1000倍以上の手間がかかってしまう。
よってこれはプロジェクトにとっては大問題で、絶対にやってはいけないのだが、これを防ぐことは今現在出来ない。
というか、今の言語はまだここまで進化出来ていない。
お前は問題の本質が分かってない。
言語の問題ではなく、マネジメントの問題だ。
巨人の肩に乗ってマウントガーなんてのは、お前がコンプレックス持ちの馬鹿だからそう勘違いするだけ。
誰もそんなことしようともしていない。
駄目なコード片が混入した場合、何も保護機構がないCではプロジェクト全体が死んでしまう。
よって、どうやってそれを防ぐか、という話であって、Linusはアナログ的に「目で見てreject」をやってる。
それでLinuxは最も成功しているOSSの一つなのだから、これは結果的には正しい、とは言える。
が、当然これはデジタル的には格好悪すぎる。
よって各種言語は何とかして静的に検査をしようと、文法を拡充させてきた。
C++文法がゴテゴテになってるのも、Rustがやたらコンパイルが厳しいのもこれだ。
これで短/長期的な生産性を競おう、ということになっている。
さて、Linusの「馬鹿が書いたコードなんてイラネ」は「それ言っちゃおしめえよ」ではあるから、当然反発はされる。>>892もこれだ。
とはいえ、結果的にこれは単純には、
1. Cで問題ない奴はCで書く
2. Cでも問題ないレベル(安全装置がなくても問題ない人達)だが、Linusのやり方が気に入らないからコミットしない
3. Cでは駄目なレベル(安全装置があるから何とかなっている人達)だが、Rustならいけるかも?
で、Linuxは結果的に1だけでプロジェクトを動かしている。
その分、commit出来る人が減り、追従は遅くなるが、今のところ他よりまし、ということになっている。
一方、Rustで何かプロジェクトを起こした場合、2だけで構成するならLinuxを倒せるはずだが、3の人達の混入を防げない。
駄目なコード片の混入を防ぐのは、プルリク段階で弾くのがもっとも効率がよく、
一旦受け入れて問題が発生してデバッグだと1000倍以上の手間がかかってしまう。
よってこれはプロジェクトにとっては大問題で、絶対にやってはいけないのだが、これを防ぐことは今現在出来ない。
というか、今の言語はまだここまで進化出来ていない。
915デフォルトの名無しさん
2020/01/19(日) 11:07:44.98ID:QWtapXFZ だからこれは、長期的には「どのレベルの人まで受け入れるか」「それで十分な人数が確保出来るか」であり、
C++を丸ごと切り捨てているLinuxは相当思い切った判断だが、それでも何とかなっているし、
結果的には、全く保護機構のないCだとこれが正解だ、ということでしかない。
対してRustみたいに安全機構が付いている言語だと、そのレベルを下げられ、結果的にコミッタも増え、早く進化していけるはずで、
だからこそ進化速度が重要なブラウザをターゲットに選んだのは正しいのだが、
結果的に死につつあるのだから、確実に何かが間違っていたはずであり、
それは既に言われているが「学習曲線」、つまりそもそもチャキチャキ書けないことだろう。
1,2の人達にとっては厳しい検査なんて足枷でしかない。3を救済する為に1,2に足枷をはめていて、
結果的に総合的な生産性が落ち、プロジェクトが死につつある、というだけの話だ。
だから、個人的には、正解は「C+外部検査(リンター)」だと思っている。
今で言うとTypeScriptみたいな、チェック機構外付けの言語とかだ。
静的検査が出来る=静的検査をリンターとして外部に切り出せる、でしかないから、
静的検査メインで言語を拡張するのはナンセンスだ。
(Rustはそうではないが)
C++を丸ごと切り捨てているLinuxは相当思い切った判断だが、それでも何とかなっているし、
結果的には、全く保護機構のないCだとこれが正解だ、ということでしかない。
対してRustみたいに安全機構が付いている言語だと、そのレベルを下げられ、結果的にコミッタも増え、早く進化していけるはずで、
だからこそ進化速度が重要なブラウザをターゲットに選んだのは正しいのだが、
結果的に死につつあるのだから、確実に何かが間違っていたはずであり、
それは既に言われているが「学習曲線」、つまりそもそもチャキチャキ書けないことだろう。
1,2の人達にとっては厳しい検査なんて足枷でしかない。3を救済する為に1,2に足枷をはめていて、
結果的に総合的な生産性が落ち、プロジェクトが死につつある、というだけの話だ。
だから、個人的には、正解は「C+外部検査(リンター)」だと思っている。
今で言うとTypeScriptみたいな、チェック機構外付けの言語とかだ。
静的検査が出来る=静的検査をリンターとして外部に切り出せる、でしかないから、
静的検査メインで言語を拡張するのはナンセンスだ。
(Rustはそうではないが)
916デフォルトの名無しさん
2020/01/19(日) 11:13:46.05ID:PM2cmccN アワシロさんはそうは言ってなかったな。
むしろRustは普遍的にどこでも使えると説いてた。
むしろRustは普遍的にどこでも使えると説いてた。
917デフォルトの名無しさん
2020/01/19(日) 11:19:38.67ID:PM2cmccN Rustは銀の弾丸足りえると世界の重鎮が口をそろえるし、俺はお前よりアワシロイクヤ氏を信じるね。
918デフォルトの名無しさん
2020/01/19(日) 11:52:50.23ID:7W3/Ww9S ・論拠と解釈がオレオレ過ぎ
・安全性に対する理解が浅すぎ
・プロジェクトの成功/失敗に対する見識が甘すぎ
・面白くないくせにレス長過ぎ
・安全性に対する理解が浅すぎ
・プロジェクトの成功/失敗に対する見識が甘すぎ
・面白くないくせにレス長過ぎ
919デフォルトの名無しさん
2020/01/19(日) 12:13:02.49ID:xMKry/BQ そもそもFirefoxのほとんどはC++なんだから、言語のせいにしたいならC++のせいってことでは。
920デフォルトの名無しさん
2020/01/19(日) 12:39:52.36ID:L2mlhsAt まあlinusが良く言ってるようにじゃあそれで作ってみれば?って話なんだわな。
そして誰も作らないというのが答え。
そして誰も作らないというのが答え。
921デフォルトの名無しさん
2020/01/19(日) 13:24:12.12ID:QWtapXFZ >>919
成功したら俺の手柄、失敗したら相手のせいか。
さすがバヨク御用達言語だな。
Rustコミュニティの問題は>>905に典型的に現れているが、(なお俺はGitHubのactixのreadmeも読んだ)
> 「つまらないPRだな」と
> 上から目線のコメントを書き、
> 関係のない(?)人から「そんな態度でお前にRustを書く権利はない、辞めろ」と怒られて
他でも言われてるとおりSJWの巣窟になってる。
これは明らかに防げた問題でしかないだろ。
これから売りになる(はずの)モジュールを別言語で、というのはもっと慎重に行うべき判断で、
比較するとしたら、
・servoをRustで書いた今のFireFox
・servoをこれまでの言語(多分C++)で書いたFireFox
なんだよ。単純には人数的に多いC++を切ってRustを入れたのだから、これだけで被害が出る。
そしてそれを上回る物をRustが持っているか、といえば、ない。結果、沈没してるだけ。
Rust自体に意味がないか、時期が早すぎたかのどちらかで、どちらかは今後確定する。
それとは別に、コミュニティがおかしな方向に腐っている、というのは既に発生しているようだが。
成功したら俺の手柄、失敗したら相手のせいか。
さすがバヨク御用達言語だな。
Rustコミュニティの問題は>>905に典型的に現れているが、(なお俺はGitHubのactixのreadmeも読んだ)
> 「つまらないPRだな」と
> 上から目線のコメントを書き、
> 関係のない(?)人から「そんな態度でお前にRustを書く権利はない、辞めろ」と怒られて
他でも言われてるとおりSJWの巣窟になってる。
これは明らかに防げた問題でしかないだろ。
これから売りになる(はずの)モジュールを別言語で、というのはもっと慎重に行うべき判断で、
比較するとしたら、
・servoをRustで書いた今のFireFox
・servoをこれまでの言語(多分C++)で書いたFireFox
なんだよ。単純には人数的に多いC++を切ってRustを入れたのだから、これだけで被害が出る。
そしてそれを上回る物をRustが持っているか、といえば、ない。結果、沈没してるだけ。
Rust自体に意味がないか、時期が早すぎたかのどちらかで、どちらかは今後確定する。
それとは別に、コミュニティがおかしな方向に腐っている、というのは既に発生しているようだが。
922デフォルトの名無しさん
2020/01/19(日) 14:26:00.08ID:FAn8lf8z > ・面白くないくせにレス長過ぎ
これなw
これなw
923デフォルトの名無しさん
2020/01/19(日) 15:56:33.65ID:ehZNNwbS また禿の話してる
よく飽きないな
よく飽きないな
924デフォルトの名無しさん
2020/01/19(日) 17:14:22.99ID:TwfOJbH4 servoって失敗してるの?
根拠かソース欲しいな
根拠かソース欲しいな
925デフォルトの名無しさん
2020/01/19(日) 17:40:01.25ID:QWtapXFZ >>924
信者には成功と見えるのは理解した
信者には成功と見えるのは理解した
926デフォルトの名無しさん
2020/01/19(日) 17:59:29.14ID:TwfOJbH4 >>925
servoの現状知らないから聞きたかっただけなんだけどなぁ・・・
他人を勝手に敵と思って攻撃するような人間で君(QWtapXFZ)を信頼できると思うのかな、他の人は。
長文先輩は興味なかったけどキモいな
servoの現状知らないから聞きたかっただけなんだけどなぁ・・・
他人を勝手に敵と思って攻撃するような人間で君(QWtapXFZ)を信頼できると思うのかな、他の人は。
長文先輩は興味なかったけどキモいな
927デフォルトの名無しさん
2020/01/19(日) 17:59:49.13ID:L2mlhsAt servoのコード見る限りはrustで書く意味なくね?って感じだがな。。
ほとんどunsafeコードだし。
ほとんどunsafeコードだし。
928デフォルトの名無しさん
2020/01/19(日) 18:31:53.27ID:PM2cmccN Rustはコンパイルを通ればバグが無いことがある程度保障される。
それがC++やJavaに対するアドバンテージ。
それがC++やJavaに対するアドバンテージ。
929デフォルトの名無しさん
2020/01/19(日) 19:37:27.07ID:QWtapXFZ >>928
それHaskellも言ってたけどな。
まあ静的検査で出来るところは静的検査でやるべきなのは事実。
C++もそれを目指してはいるが、結果的にグチャグチャになっている。
そしてRustもそれを目指してはいるが、
結果的に「Cだと全く問題なく動く、バグのないコード」でもコンパイルが通らずに苦労してるわけだろ。
それじゃそもそも話にならんだろ。
C++なら「やらない」という選択肢はあるが、コンパイルが通らないようでは回避しようがない。
そして全員に「Rust流」を強制することになり、これがSJWが蔓延る遠因なのかな、とも思うが。
Javaが良いとは言わんが、最も成功している言語であるのも事実だよ。
そこはわきまえた方がいい。今のRustなんてJavaからするとゴミ以下だ。
いずれにしても、俺は静的検査はリンターとして分離出来ると思っているから、
そこに差別化要因を求めるのは間違いだと思ってる。
コミュニティが機能していれば、本当にRustの静的検査能力が素晴らしいとなれば、
リンターとしてC++やJavaやPythonにポーティングしようとする奴は必ず出てくるし、技術的にも大して問題ない。
その後で何も残らんだろ、Rustには。
それHaskellも言ってたけどな。
まあ静的検査で出来るところは静的検査でやるべきなのは事実。
C++もそれを目指してはいるが、結果的にグチャグチャになっている。
そしてRustもそれを目指してはいるが、
結果的に「Cだと全く問題なく動く、バグのないコード」でもコンパイルが通らずに苦労してるわけだろ。
それじゃそもそも話にならんだろ。
C++なら「やらない」という選択肢はあるが、コンパイルが通らないようでは回避しようがない。
そして全員に「Rust流」を強制することになり、これがSJWが蔓延る遠因なのかな、とも思うが。
Javaが良いとは言わんが、最も成功している言語であるのも事実だよ。
そこはわきまえた方がいい。今のRustなんてJavaからするとゴミ以下だ。
いずれにしても、俺は静的検査はリンターとして分離出来ると思っているから、
そこに差別化要因を求めるのは間違いだと思ってる。
コミュニティが機能していれば、本当にRustの静的検査能力が素晴らしいとなれば、
リンターとしてC++やJavaやPythonにポーティングしようとする奴は必ず出てくるし、技術的にも大して問題ない。
その後で何も残らんだろ、Rustには。
930デフォルトの名無しさん
2020/01/19(日) 19:48:55.59ID:EjNCf+Xg RustだJavaだとか比較する以前に
ちゃんとプログラ厶書いたか怪しいレベルなのがわかる
ちゃんとプログラ厶書いたか怪しいレベルなのがわかる
931デフォルトの名無しさん
2020/01/19(日) 20:40:52.98ID:TwfOJbH4 長文先輩がコーディングするわけないじゃん、机上の空論が大好きだから
932デフォルトの名無しさん
2020/01/19(日) 21:35:55.76ID:K0reTlt5 Cを問題なく書く人がRustのコンパイル通らないから足枷になっているという議論破綻しているような
潜在的の問題になりうるコード書いているからコンパイル通らないわけで
プログラムは動けば良いわけじゃないよね
潜在的の問題になりうるコード書いているからコンパイル通らないわけで
プログラムは動けば良いわけじゃないよね
933デフォルトの名無しさん
2020/01/19(日) 22:16:57.63ID:L2mlhsAt で、そういうコンパイルエラーが生じた際の処置の仕方に問題が起きやすいわけだよ。
バカだととくにね。
資源の解放タイミングなんかはだいぶグローバルな構造によってるわけで
コンパイルエラーのときに気づくようなバカがどういう修正を行うかだいたい予想はつくわな。
バカだととくにね。
資源の解放タイミングなんかはだいぶグローバルな構造によってるわけで
コンパイルエラーのときに気づくようなバカがどういう修正を行うかだいたい予想はつくわな。
934デフォルトの名無しさん
2020/01/19(日) 23:10:53.79ID:QWtapXFZ >>932
C書ける奴がRustを手こずる理由は、寿命管理の戦略が根本的に違うからだよ。
正確に言えば、Cの場合は
A. ブロックスコープと連動
B. 投げ捨て
のどちらかが大枠の戦略だけど、ちゃんとCやる人ほど殆どAでやっている筈。
Rustはブロックスコープです、と言っておきながら実はBを要求するから戸惑っているように見える。
ただ、なら最初からBで組め、というのは全くその通りで、
だから俺は「Rustなんて簡単さ」という奴が出てこないのも若干不思議に思っている。
とはいえJavaScriptも「プロトタイプが分からんからクラス入れろ」
「非同期では組めないからコールバック地獄ガー」となる奴等ばかりだから、
「人間は一度成功したらそのやり方にこだわってしまう」とは聞くが、俺の想像以上にそうなのだろう。
ただまあ、実際のところ、Cの場合は
> 資源の解放タイミングなんかはだいぶグローバルな構造によってるわけで (>>933)
の通り、その上位でそもそも「資源管理が難しくない構造」にしてしまうから、リークに困るって事はない。
実際、素人が作ったアプリでも、リークして困るって物は存在しないでしょ。
とはいえ、この「下部構造の為に上部構造をいじる」ってのはプログラミング理論としては最悪で、
これを何とかして回避しようとC++含めていろいろ努力してきているけど、
俺が見る限り今のところGCが一番ましな戦略だと思うけど。
ま、いずれにしても、C書ける奴もRustに手こずっているのは事実だよ。
それはググれば分かるはずだし、理由は上記の通りで、言い換えると、
C流でやろうとしてもRustは通さないから。
ただ、資源戦略はBよりもAの方が適切な場合が多く、デフォでB強制なのは根本的に間違っている気はするが。
C書ける奴がRustを手こずる理由は、寿命管理の戦略が根本的に違うからだよ。
正確に言えば、Cの場合は
A. ブロックスコープと連動
B. 投げ捨て
のどちらかが大枠の戦略だけど、ちゃんとCやる人ほど殆どAでやっている筈。
Rustはブロックスコープです、と言っておきながら実はBを要求するから戸惑っているように見える。
ただ、なら最初からBで組め、というのは全くその通りで、
だから俺は「Rustなんて簡単さ」という奴が出てこないのも若干不思議に思っている。
とはいえJavaScriptも「プロトタイプが分からんからクラス入れろ」
「非同期では組めないからコールバック地獄ガー」となる奴等ばかりだから、
「人間は一度成功したらそのやり方にこだわってしまう」とは聞くが、俺の想像以上にそうなのだろう。
ただまあ、実際のところ、Cの場合は
> 資源の解放タイミングなんかはだいぶグローバルな構造によってるわけで (>>933)
の通り、その上位でそもそも「資源管理が難しくない構造」にしてしまうから、リークに困るって事はない。
実際、素人が作ったアプリでも、リークして困るって物は存在しないでしょ。
とはいえ、この「下部構造の為に上部構造をいじる」ってのはプログラミング理論としては最悪で、
これを何とかして回避しようとC++含めていろいろ努力してきているけど、
俺が見る限り今のところGCが一番ましな戦略だと思うけど。
ま、いずれにしても、C書ける奴もRustに手こずっているのは事実だよ。
それはググれば分かるはずだし、理由は上記の通りで、言い換えると、
C流でやろうとしてもRustは通さないから。
ただ、資源戦略はBよりもAの方が適切な場合が多く、デフォでB強制なのは根本的に間違っている気はするが。
935デフォルトの名無しさん
2020/01/19(日) 23:55:03.54ID:EjNCf+Xg Cすら書いたことあるか怪しいな
936デフォルトの名無しさん
2020/01/20(月) 03:49:44.77ID:KSbNzMqr LinuxがRustで書き直される時代に何言ってんだか。
937デフォルトの名無しさん
2020/01/20(月) 04:11:09.68ID:YZhtkMgR >>936
まじでそんな動きあるの?
まじでそんな動きあるの?
938デフォルトの名無しさん
2020/01/20(月) 05:00:13.14ID:KSbNzMqr んなことも知らんと議論してたのか。
939デフォルトの名無しさん
2020/01/20(月) 05:10:07.77ID:YZhtkMgR ただの妄想じゃないの
940デフォルトの名無しさん
2020/01/20(月) 05:15:03.08ID:KSbNzMqr 俺はあわしろいくや氏を信じてる。
941デフォルトの名無しさん
2020/01/20(月) 06:20:52.90ID:C5W07UVU942デフォルトの名無しさん
2020/01/20(月) 06:59:38.41ID:Ue7v6gdS redoxをlinuxの書き直しと言うのはさすがに無理がある
943デフォルトの名無しさん
2020/01/20(月) 09:40:48.70ID:Un63cF9L 信者なんてその程度
944デフォルトの名無しさん
2020/01/20(月) 09:50:44.62ID:jQa3q5cx ドライバーをRustで書くという話にLinusが
切れてないという程度
切れてないという程度
945デフォルトの名無しさん
2020/01/20(月) 10:53:33.32ID:NEzbRv6D いずれにしろC/C++のような不安全な言語は極力避けようと言うのが世界的な流れ
946デフォルトの名無しさん
2020/01/20(月) 20:12:40.94ID:dqQuCzGx 別に切れちゃいないが「まあ無理だろw」みたいな感じだろね。
https://www.youtube.com/watch?v=CYvJPra7Ebk
こういう言語でなんとかしようって馬鹿な話はSIerがさんざんダメだってことを証明してるのに
バカはまだこだわってるんだな。
https://www.youtube.com/watch?v=CYvJPra7Ebk
こういう言語でなんとかしようって馬鹿な話はSIerがさんざんダメだってことを証明してるのに
バカはまだこだわってるんだな。
947デフォルトの名無しさん
2020/01/20(月) 20:28:06.68ID:tbWOohPK でも使う言語にこだわらないでいると、化石みたいな生産性で競合と戦うハメになるよ
948デフォルトの名無しさん
2020/01/20(月) 21:33:20.43ID:5waZG120 SIerなんてそもそもJava, PHP(笑)でゴミみたいな質のソースと、ゴミみたいなレガシー設計を量産するのが関の山だろww
949デフォルトの名無しさん
2020/01/20(月) 21:57:55.02ID:cy4NQj+h 日本なんて情弱経営者ばかりだから数字さえ良ければ許されるだろ
実際はゴミクソの低能率作業が横行していようがどこ吹く風だ
実際はゴミクソの低能率作業が横行していようがどこ吹く風だ
950デフォルトの名無しさん
2020/01/20(月) 22:12:00.69ID:sWdHB/Bv ゴミを作れば片付ける必要があるし、作り直しもあるから金になる
951デフォルトの名無しさん
2020/01/20(月) 22:23:05.21ID:KSbNzMqr それは良い考え。
952デフォルトの名無しさん
2020/01/20(月) 22:50:52.96ID:lnEeuZyw actix-webの件はどうなるんかな
Rustが原因なわけじゃないけど、コミュニティの問題として見られるだろうし、使ってる側としては気が重い
Rustが原因なわけじゃないけど、コミュニティの問題として見られるだろうし、使ってる側としては気が重い
953デフォルトの名無しさん
2020/01/20(月) 22:55:48.60ID:lnEeuZyw 今見たらリポジトリ復活してた
954デフォルトの名無しさん
2020/01/20(月) 23:27:00.65ID:HxwZGjH+ 別の人が引き継ぐみたいだね
955デフォルトの名無しさん
2020/01/20(月) 23:44:36.38ID:Y1i1RW21 MSはサポートしないの?
956デフォルトの名無しさん
2020/01/21(火) 11:08:07.76ID:tYXdVzB6 むしろMSがサポートするの嫌だろ
957デフォルトの名無しさん
2020/01/21(火) 12:35:10.79ID:USbDfMqQ958デフォルトの名無しさん
2020/01/21(火) 15:22:48.61ID:KlYj5Sls >>950
社会的に見たらいずれにしろマイナス
社会的に見たらいずれにしろマイナス
959デフォルトの名無しさん
2020/01/22(水) 04:33:49.88ID:/l43RMQj >>955
そもそも前メンテナがMS社員だぞ
そもそも前メンテナがMS社員だぞ
960デフォルトの名無しさん
2020/01/22(水) 14:52:21.69ID:rj2HkyIb >>959
メンテナがMS社員で
MS内部でもactix-webをproductionで使うプロジェクトが進んでた
そういう状況でunsafe叩きに嫌気が指してメンテナが降りたのに対して
MSはサポートに乗り出さないのだろうか?
と書けば理解できるかな?
メンテナがMS社員で
MS内部でもactix-webをproductionで使うプロジェクトが進んでた
そういう状況でunsafe叩きに嫌気が指してメンテナが降りたのに対して
MSはサポートに乗り出さないのだろうか?
と書けば理解できるかな?
961デフォルトの名無しさん
2020/01/22(水) 16:14:36.89ID:Q1SWDCUb MS社員はろくなのいないよな
メンタル弱かったらOSSすんなよ
メンタル弱かったらOSSすんなよ
962デフォルトの名無しさん
2020/01/22(水) 17:57:54.25ID:P151XVeS 一人がそうだからって全てそうと言える頭どうなってんだろうな
963デフォルトの名無しさん
2020/01/22(水) 19:23:08.32ID:Zee9zwDz Rust学べばCも学んだことになるだろうか
964デフォルトの名無しさん
2020/01/22(水) 19:24:15.52ID:rFx4FWy6 天文学者と物理学者と数学者がスコットランドで休暇を過ごしていた。列車の窓から眺めていると、平原の真ん中に黒い羊がいるのが見えた。
天文学者:なんてこった!スコットランドの羊はみんな真っ黒なんだね。
物理学者:違う違う。せいぜい何匹かが黒いだけさ。
数学者:(天を仰ぎながらやれやれという調子で、抑揚を付けて)スコットランドには、少なくとも1つの平原が存在し、そこに1匹の羊が居て、さらにこっち側の片面が黒いということが分かるだけさ。
天文学者:なんてこった!スコットランドの羊はみんな真っ黒なんだね。
物理学者:違う違う。せいぜい何匹かが黒いだけさ。
数学者:(天を仰ぎながらやれやれという調子で、抑揚を付けて)スコットランドには、少なくとも1つの平原が存在し、そこに1匹の羊が居て、さらにこっち側の片面が黒いということが分かるだけさ。
965デフォルトの名無しさん
2020/01/22(水) 19:30:05.28ID:uoDMOHZt966デフォルトの名無しさん
2020/01/22(水) 20:24:51.49ID:OSofFadI rust,宗教化しとるな。
967デフォルトの名無しさん
2020/01/22(水) 20:34:35.15ID:Zee9zwDz >>965
メモリセーフなRustでは不可能な(あるいは可能だが困難な)ことがCなら出来るって意味?
メモリセーフなRustでは不可能な(あるいは可能だが困難な)ことがCなら出来るって意味?
968デフォルトの名無しさん
2020/01/23(木) 13:06:23.52ID:VWfJLmDE Cを完全に理解していてCで完全なコードが描けるならRust要らん
逆は無理
逆は無理
969デフォルトの名無しさん
2020/01/23(木) 13:10:54.97ID:XbPKjga7 Cで完全なコード書ける人いるのかという問題
970デフォルトの名無しさん
2020/01/23(木) 13:12:17.92ID:qWVF2TJJ いるだろ
971デフォルトの名無しさん
2020/01/23(木) 14:25:07.96ID:Mmo4oq/r 何万行書いても一切ケアレスミスしない人とかもはや人間ではないのでは…
972デフォルトの名無しさん
2020/01/23(木) 14:58:11.16ID:77XEoAHk 人の命がかかってる以上、高々数万行でミスを犯すわけにはいかないだろ。
973デフォルトの名無しさん
2020/01/23(木) 15:25:12.24ID:s8tAWRMy そんなクリティカルなところにCなんて不安全な言語は使われない
974デフォルトの名無しさん
2020/01/23(木) 15:46:41.21ID:9sgUs0f4 完全な仕様が書けるなら
その仕様を完全にテストすることも可能だろうし
その範囲内で完全だと言えるコードは書けるだろう
それは仕様で定義されてないからUBですねー、バグじゃないっすよー
あの時はそれで完全だと思ってたんすよねー(๑´ڡ`๑)w
その仕様を完全にテストすることも可能だろうし
その範囲内で完全だと言えるコードは書けるだろう
それは仕様で定義されてないからUBですねー、バグじゃないっすよー
あの時はそれで完全だと思ってたんすよねー(๑´ڡ`๑)w
975デフォルトの名無しさん
2020/01/23(木) 16:27:27.15ID:77XEoAHk 俺は完全な仕様が書ける。
976デフォルトの名無しさん
2020/01/23(木) 17:33:46.14ID:BJTKYILD 「人間の能力は有限であるし、ミスもする」と言う認識がない奴ほど危険
このタイプ日本人に結構居るんだよな
このタイプ日本人に結構居るんだよな
977デフォルトの名無しさん
2020/01/23(木) 21:06:17.64ID:9sgUs0f4 >>975
じゃ試しに君が考える「完全な仕様」の仕様を定義してみて
じゃ試しに君が考える「完全な仕様」の仕様を定義してみて
978デフォルトの名無しさん
2020/01/23(木) 22:14:21.71ID:1UIl+AJY 「俺は気を付けて書いてるから絶対ミスしない」なんて認識の人が書いたコードに命預けたくないなぁ。
979デフォルトの名無しさん
2020/01/23(木) 23:24:43.12ID:DK2TOstn 入力を受け付けず、処理をせず、出力をしない
980デフォルトの名無しさん
2020/01/23(木) 23:42:34.70ID:cHzm9I9L そこまで安全性気にするならGC使えや。
バカがrust使うよりもよっぽど安全だぞ。
バカがrust使うよりもよっぽど安全だぞ。
981デフォルトの名無しさん
2020/01/23(木) 23:47:09.63ID:nX/KPrtD >>978
でも「俺は神様じゃないからミスはあるかも」なんて認識の人が書いたコードにも命預けたくはないな。
でも「俺は神様じゃないからミスはあるかも」なんて認識の人が書いたコードにも命預けたくはないな。
982デフォルトの名無しさん
2020/01/23(木) 23:55:44.60ID:9sgUs0f4983デフォルトの名無しさん
2020/01/24(金) 00:16:37.07ID:rwHFQKuH984デフォルトの名無しさん
2020/01/24(金) 01:27:12.03ID:g1BGl0hu ゲーデルの不完全性定理により以下略
985デフォルトの名無しさん
2020/01/24(金) 01:38:54.34ID:+Rr3vO1D 「ミスしてるかも」と思うからテストするんじゃないの?
絶対ミスしないなら、書いた瞬間にテストなしでリリースできるはずなわけで。
絶対ミスしないなら、書いた瞬間にテストなしでリリースできるはずなわけで。
986デフォルトの名無しさん
2020/01/24(金) 01:48:15.59ID:M35o3kEk そんな心の弱い人に任せられないわ。
まず精神科受診してきて。
まず精神科受診してきて。
987デフォルトの名無しさん
2020/01/24(金) 07:59:29.01ID:A/8ugPLP 「私は強い、必ず成功する。バグについて心配するのは誤りである」
「日本人はもともと繊細なのである。これだけ注意深さを持ちながら、バグに困るなどというのは、ありえないことだ」
「日本人はもともと繊細なのである。これだけ注意深さを持ちながら、バグに困るなどというのは、ありえないことだ」
988デフォルトの名無しさん
2020/01/24(金) 08:03:08.74ID:HOssbx9V http://plv.mpi-sws.org/rustbelt/
みたいに、rustその物と標準ライブラリを論理的な正当性を確認しようとしているプロジェクトもあるよ。
また、coqで書いたものをrustに変換する
https://github.com/pirapira/coq2rust
というのももあった。
みたいに、rustその物と標準ライブラリを論理的な正当性を確認しようとしているプロジェクトもあるよ。
また、coqで書いたものをrustに変換する
https://github.com/pirapira/coq2rust
というのももあった。
989デフォルトの名無しさん
2020/01/24(金) 08:03:15.00ID:e4qsn6ol じゃあ「俺は気を付けてテストしたからミスは残ってない」ならどうだろう
990デフォルトの名無しさん
2020/01/24(金) 08:06:37.28ID:rwHFQKuH テストではバグが無いことを証明できない
991デフォルトの名無しさん
2020/01/24(金) 09:24:09.09ID:NJOcoGsq 形式証明って流行ってんのかね
992デフォルトの名無しさん
2020/01/24(金) 11:48:17.98ID:9oO1hUHl995デフォルトの名無しさん
2020/01/24(金) 20:21:57.21ID:f1L6KzBl 失敗しないと言い張る糞医者だったらセカンドオピニオンを薦める医者のが信用できるわ。
996デフォルトの名無しさん
2020/01/24(金) 20:47:01.10ID:n3CLQrIG >>992
サンキュウー
サンキュウー
997デフォルトの名無しさん
2020/01/25(土) 09:23:43.44ID:yPlwm7j6 埋め
998デフォルトの名無しさん
2020/01/25(土) 09:24:03.41ID:yPlwm7j6 うめ
999デフォルトの名無しさん
2020/01/25(土) 09:24:14.79ID:yPlwm7j6 ウメ
1000デフォルトの名無しさん
2020/01/25(土) 09:24:30.39ID:yPlwm7j6 ume
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 194日 9時間 52分 43秒
新しいスレッドを立ててください。
life time: 194日 9時間 52分 43秒
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を超えています。これ以上書き込みはできません。