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 part8
https://mevius.5ch.net/test/read.cgi/tech/1579834072/
Rust part9
■ このスレッドは過去ログ倉庫に格納されています
2020/08/23(日) 01:07:35.52ID:MgEpWwVh
619デフォルトの名無しさん
2021/02/05(金) 13:26:40.93ID:ou/gU5gH こういう暗黙変換て混乱を生むだけだと思う。
620デフォルトの名無しさん
2021/02/05(金) 15:35:15.48ID:cqRcw5h6621デフォルトの名無しさん
2021/02/06(土) 16:00:13.52ID:n3CNI52+ Option::filterのResult版って無いのかな?
622デフォルトの名無しさん
2021/02/06(土) 20:10:46.18ID:YrYkvgk0 >>621
条件に合致しない場合は何を返して欲しいの?
条件に合致しない場合は何を返して欲しいの?
623デフォルトの名無しさん
2021/02/06(土) 21:49:40.07ID:b3bDWNzR >>621
and_thenでErr返せば?
and_thenでErr返せば?
624デフォルトの名無しさん
2021/02/06(土) 21:55:40.99ID:n3CNI52+ >>622
引数で渡したエラー値をErrにくるんで返してほしい
引数で渡したエラー値をErrにくるんで返してほしい
625621
2021/02/07(日) 10:23:42.94ID:ik9tpY93 >>623
うん、それが最適でしたね
もともとTと&T -> boolからOption<T>を構築してたコードがあってSome(t).filter(|t| !t.is_hoge())ってしてたんだけど
それをResultに変えようとしたらif式で数行増えちゃって
ちょうど対応するようなのって無いのかな?って思って質問した次第でした
うん、それが最適でしたね
もともとTと&T -> boolからOption<T>を構築してたコードがあってSome(t).filter(|t| !t.is_hoge())ってしてたんだけど
それをResultに変えようとしたらif式で数行増えちゃって
ちょうど対応するようなのって無いのかな?って思って質問した次第でした
626デフォルトの名無しさん
2021/02/07(日) 11:40:55.51ID:NCHwUWPY それはok_orかok_or_elseで変換すればいいだけじゃなくて?
627デフォルトの名無しさん
2021/02/08(月) 19:14:38.32ID:g+sV++N4 Rustの良さが実感できるのは長大なコードをチーム開発するときなのかな
小さいプロジェクトならRustは
・生ポインタ使わない
・できる限りSTLを使う
・const、moveをデフォルトで使う
ことにしたC++に敵わないような
C++の方が柔軟だしず〜っと短く書けるし
小さいプロジェクトならRustは
・生ポインタ使わない
・できる限りSTLを使う
・const、moveをデフォルトで使う
ことにしたC++に敵わないような
C++の方が柔軟だしず〜っと短く書けるし
628デフォルトの名無しさん
2021/02/08(月) 19:48:24.23ID:g+sV++N4 あ、標準の機能とかイディオムを巧みに使えばC++並みに短く書けるよ、というのがあったら教えてください
629デフォルトの名無しさん
2021/02/08(月) 20:52:33.63ID:tj1CufyM どちらかというとC++の方が長くない?
ヘッダとソースの重複とかイテレータが冗長とかshared_ptrが長いとか。
あと小さいプロジェクトだとビルド環境構築の手間が
相対的に大きくなるからC++はつらいな。
ヘッダとソースの重複とかイテレータが冗長とかshared_ptrが長いとか。
あと小さいプロジェクトだとビルド環境構築の手間が
相対的に大きくなるからC++はつらいな。
630デフォルトの名無しさん
2021/02/08(月) 20:54:12.55ID:tj1CufyM あとなるべくconstにしたいのに多用すると結構長い
631デフォルトの名無しさん
2021/02/08(月) 21:36:53.51ID:UsSsiWeS RustスレなのでRustの味方をすれば良いと思うが、>>629はあまりにも言いがかりだろう
> ヘッダとソースの重複
重複するコードを書かなければならないことなどない
> イテレータが冗長
今どきautoせずにイテレータを書くことはない
> shared_ptrが長いとか
これは確かに
> ヘッダとソースの重複
重複するコードを書かなければならないことなどない
> イテレータが冗長
今どきautoせずにイテレータを書くことはない
> shared_ptrが長いとか
これは確かに
632デフォルトの名無しさん
2021/02/08(月) 22:14:40.49ID:tj1CufyM633デフォルトの名無しさん
2021/02/08(月) 22:48:07.53ID:UsSsiWeS >>632
特殊化が必要なら当然特殊化するし、プロトタイプしか与えられてない関数は当然中身を他の場所で実装しなければならない
が、いずれもヘッダその他で書いてあるのと同じことを繰り返し書くという意味ではない
「引数と返り値をプロトタイプと実装で二度書くじゃないか」と主張してるのか?
だとしたら、「Rustのtraitとimplは同じことの繰り返しだ」と同レベルのデタラメだ
> あとイテレータはbegin/endのこと
範囲for文はあるので、コンテナを走査する時にはbegin()もend()も書く必要はない
が、begin()やend()の指すイテレータが必要なら当然書く必要がある
しかしこれより簡潔な表現方法があるか?
特殊化が必要なら当然特殊化するし、プロトタイプしか与えられてない関数は当然中身を他の場所で実装しなければならない
が、いずれもヘッダその他で書いてあるのと同じことを繰り返し書くという意味ではない
「引数と返り値をプロトタイプと実装で二度書くじゃないか」と主張してるのか?
だとしたら、「Rustのtraitとimplは同じことの繰り返しだ」と同レベルのデタラメだ
> あとイテレータはbegin/endのこと
範囲for文はあるので、コンテナを走査する時にはbegin()もend()も書く必要はない
が、begin()やend()の指すイテレータが必要なら当然書く必要がある
しかしこれより簡潔な表現方法があるか?
634デフォルトの名無しさん
2021/02/08(月) 22:59:07.96ID:tj1CufyM >>633
いや、Rustのtraitとimplも同じことの繰り返しだと思うが。
もちろんそれぞれに意味があるのは分かるが、今話題になってるのは長いかどうかなので、単に長いのでは?ということ。
begin/endは言われてみれば確かにそんなに長くもないな。
いや、Rustのtraitとimplも同じことの繰り返しだと思うが。
もちろんそれぞれに意味があるのは分かるが、今話題になってるのは長いかどうかなので、単に長いのでは?ということ。
begin/endは言われてみれば確かにそんなに長くもないな。
635デフォルトの名無しさん
2021/02/08(月) 23:04:02.74ID:tj1CufyM そういえばRustだとderiveで導出できるようなのを
手で書かないといけないのも面倒だと思ってたけど
それも最近のC++だと便利になってるのかな?
手で書かないといけないのも面倒だと思ってたけど
それも最近のC++だと便利になってるのかな?
636デフォルトの名無しさん
2021/02/08(月) 23:09:22.70ID:UsSsiWeS >>634
〜〜〜〜〜ッッ!!?!!????
型を示すだけぞ???
どういう理屈で「どちらかというとC++の方が長い」???
「プロトタイプ」なる仕様が冗長だと思ってるということか?
だとしてもどこがどうRustより長い?
traitとimplが同じことの繰り返しに見えるなら尚更
〜〜〜〜〜ッッ!!?!!????
型を示すだけぞ???
どういう理屈で「どちらかというとC++の方が長い」???
「プロトタイプ」なる仕様が冗長だと思ってるということか?
だとしてもどこがどうRustより長い?
traitとimplが同じことの繰り返しに見えるなら尚更
637デフォルトの名無しさん
2021/02/08(月) 23:20:22.89ID:34Jom8HU 刃牙みてぇな驚き方
638デフォルトの名無しさん
2021/02/09(火) 00:25:25.36ID:HbSSO5iG >>636
気持ち悪いなお前……
気持ち悪いなお前……
639デフォルトの名無しさん
2021/02/09(火) 00:34:18.83ID:wDpL+x9E ゆうてID:tj1CufyMがもの知らん過ぎるよ
刃牙クンが正しい
刃牙クンが正しい
640デフォルトの名無しさん
2021/02/09(火) 00:49:55.66ID:M+MJQwFs >>627 がどういうところでrustを冗長に感じたのかが分からないと身のある議論にならないのではないか
641デフォルトの名無しさん
2021/02/09(火) 01:06:11.87ID:iu64Jkj8 let v2 = v.iter().take_while(pred).collect::<Vec<_>>();
auto iter_end = std::find_if_not(v.cbegin(), v.cend(), pred);
auto v2 = std::vector<Hoge>(v.cbegin(), iter_end);
auto iter_end = std::find_if_not(v.cbegin(), v.cend(), pred);
auto v2 = std::vector<Hoge>(v.cbegin(), iter_end);
642デフォルトの名無しさん
2021/02/09(火) 14:34:18.07ID:u94zqiaA Rust言語を推進する「Rust Foundation」設立。AWS、Google、マイクロソフト、モジラ、ファーウェイらが設立メンバー
https://www.publickey1.jp/blog/21/rustrust_foundationawsgoogle.html
https://www.publickey1.jp/blog/21/rustrust_foundationawsgoogle.html
643デフォルトの名無しさん
2021/02/09(火) 15:30:38.01ID:kPdoOyk6644デフォルトの名無しさん
2021/02/09(火) 15:37:53.29ID:hLMZgkSi ファーwww
ウェーイwww
ウェーイwww
645デフォルトの名無しさん
2021/02/09(火) 15:48:29.20ID:Pj9Pa3V5 >>642
GoogleもMSも節操ないな。
GoogleもMSも節操ないな。
646デフォルトの名無しさん
2021/02/09(火) 16:43:44.21ID:gWi0ogeT 非同期って結局のところtokio使えばいいの?
647デフォルトの名無しさん
2021/02/09(火) 17:12:10.08ID:hLMZgkSi648デフォルトの名無しさん
2021/02/09(火) 18:32:36.30ID:nK2/UuNc traitとimplが同じことの繰り返しは流石にキテレツ過ぎてワロタ
こういう基本的な言語仕様も分かってない人にとってRust使うメリットってあるのかな
「どっちが短く書けるか」については、流石にC++じゃないかな
良くも悪くも自由だし、短さだけを追求したクソコードも作れる
一方でRustも一応エルゴノミクスを掲げてはいるし、冗長さは感じない
C++が短くでき過ぎる、って言い方が正しいとおも
こういう基本的な言語仕様も分かってない人にとってRust使うメリットってあるのかな
「どっちが短く書けるか」については、流石にC++じゃないかな
良くも悪くも自由だし、短さだけを追求したクソコードも作れる
一方でRustも一応エルゴノミクスを掲げてはいるし、冗長さは感じない
C++が短くでき過ぎる、って言い方が正しいとおも
649デフォルトの名無しさん
2021/02/09(火) 19:12:15.97ID:tpC3waGh >>642
林檎やfacebookの参入、ゲームやスマホでの導入例が出てくればこれはかなりの地位を占めるな
林檎やfacebookの参入、ゲームやスマホでの導入例が出てくればこれはかなりの地位を占めるな
650デフォルトの名無しさん
2021/02/09(火) 20:13:22.59ID:G8as3nFu コードを短くできるなんてどうでもいいことに囚われて半端になってる印象。
651デフォルトの名無しさん
2021/02/09(火) 21:03:00.62ID:9cByPiIZ >>650
rustが?
rustが?
652デフォルトの名無しさん
2021/02/09(火) 22:20:32.26ID:tpC3waGh どうでもいいことか?
653デフォルトの名無しさん
2021/02/09(火) 23:19:34.12ID:iu64Jkj8 程度問題
654デフォルトの名無しさん
2021/02/10(水) 00:30:31.60ID:KzEq3JVg 具体的なコードの話も出さずに議論されても困る
655デフォルトの名無しさん
2021/02/10(水) 02:24:50.74ID:E/DLe6HD Firefoxでは160,000行のC ++コードを85,000行のRustコードに置き換えたと言ってる
656デフォルトの名無しさん
2021/02/10(水) 06:12:58.16ID:IJdnUleO いやーRust難しくないっすか…
3回くらい入門したけどrustlingsのiterあたりでつらくなってくる
アホは他の優しい最新言語やったほうがいいんですかねぇ
3回くらい入門したけどrustlingsのiterあたりでつらくなってくる
アホは他の優しい最新言語やったほうがいいんですかねぇ
657デフォルトの名無しさん
2021/02/10(水) 08:20:43.62ID:Y3LDlcI4 でもRustのコンパイル基盤のLLVMはいつまで経ってもC++製のまんまだよね
書き直さなきゃC++の牙城は壊せんで
書き直さなきゃC++の牙城は壊せんで
658デフォルトの名無しさん
2021/02/10(水) 08:39:46.46ID:KAhsYwl/ それAppleに言えよ…
659デフォルトの名無しさん
2021/02/10(水) 09:32:21.19ID:KzEq3JVg craneliftがあるじゃん
デバッグビルド向けだけど
デバッグビルド向けだけど
660デフォルトの名無しさん
2021/02/10(水) 09:36:57.75ID:+cBPKBOz コンパイラはrust自身で作られてるからそのうちそうなるんじゃね?
661デフォルトの名無しさん
2021/02/10(水) 23:59:35.72ID:ToMnnTm0662デフォルトの名無しさん
2021/02/11(木) 01:31:10.60ID:9tQEVdS2663デフォルトの名無しさん
2021/02/11(木) 02:06:38.13ID:Bko8L/Zl664デフォルトの名無しさん
2021/02/11(木) 02:10:08.49ID:9tQEVdS2665デフォルトの名無しさん
2021/02/11(木) 02:23:45.58ID:Bko8L/Zl >>664
「使いこなす」がレベチ過ぎてワロシ
コンテナとアルゴに関しては俺もSTL使う方が良いと思ってたわ
vector<bool>とか、難のある仕様があるのは理解してたがそういうのに個別に対処すれば十分だろうと
リーナスとかもSTLが大ッ嫌いだという記事をよく見るが、具体的にどこを毛嫌いしてるのか俺は理解していない
「使いこなす」がレベチ過ぎてワロシ
コンテナとアルゴに関しては俺もSTL使う方が良いと思ってたわ
vector<bool>とか、難のある仕様があるのは理解してたがそういうのに個別に対処すれば十分だろうと
リーナスとかもSTLが大ッ嫌いだという記事をよく見るが、具体的にどこを毛嫌いしてるのか俺は理解していない
666デフォルトの名無しさん
2021/02/11(木) 03:22:28.69ID:veopzNW6 いつもの爺だよ
667デフォルトの名無しさん
2021/02/11(木) 10:32:11.70ID:uGNpwdY5 そりゃOSレベルで見たらメモリの使い方がラップされるようなライブラリは使わんだろ。
馬鹿でもわかる話だと思ってたがそうでもないのか。
馬鹿でもわかる話だと思ってたがそうでもないのか。
668デフォルトの名無しさん
2021/02/11(木) 10:55:34.35ID:681aVeVl むしろ C++ のつらさを知ってないと Rust の良さは (悪さもだが) わからんだろ。
669デフォルトの名無しさん
2021/02/11(木) 12:17:58.13ID:tLNN1WhF >>667
それ言ったらC++のCじゃない部分は全部ダメじゃね
それ言ったらC++のCじゃない部分は全部ダメじゃね
670デフォルトの名無しさん
2021/02/11(木) 12:18:18.96ID:tLNN1WhF STLに限らず
671デフォルトの名無しさん
2021/02/11(木) 12:38:34.69ID:veopzNW6672デフォルトの名無しさん
2021/02/11(木) 15:13:11.82ID:9tQEVdS2673デフォルトの名無しさん
2021/02/11(木) 15:46:32.06ID:LFj6F75s >>672
> STLはCの良さを台無しにするような傾向がある。
これは観念的な話?
パフォーマンス的には、もちろん不要なコピー等は避けるという前提のもとで、同じなのかなって思ってたんだけど
> C++の言語仕様自体は適切に使えばそのようなことはない。
適切というのは、C with class として使えば、ということ?
> STLはCの良さを台無しにするような傾向がある。
これは観念的な話?
パフォーマンス的には、もちろん不要なコピー等は避けるという前提のもとで、同じなのかなって思ってたんだけど
> C++の言語仕様自体は適切に使えばそのようなことはない。
適切というのは、C with class として使えば、ということ?
674デフォルトの名無しさん
2021/02/11(木) 16:26:39.58ID:681aVeVl >>672
STL というものは C++ の中にはない。
STL というものは C++ の中にはない。
675デフォルトの名無しさん
2021/02/11(木) 16:31:10.44ID:681aVeVl C++ の標準ライブラリは C 的な良さを殺さないように配慮しまくってるから
抽象化層で抽象化しきれずにイビツになってるんで、
出来が良いとは思わんが C の良さを台無しにしてるとは思わんな。
抽象化層で抽象化しきれずにイビツになってるんで、
出来が良いとは思わんが C の良さを台無しにしてるとは思わんな。
676デフォルトの名無しさん
2021/02/11(木) 16:32:15.96ID:9tQEVdS2 >>675
そう思ってるならあなたも設計者の頭の出来も馬鹿。
そう思ってるならあなたも設計者の頭の出来も馬鹿。
677デフォルトの名無しさん
2021/02/11(木) 17:01:42.79ID:/o5Cctlu 他所でやれ
678デフォルトの名無しさん
2021/02/11(木) 17:04:12.74ID:BUYxyJ+C >>662
MozillaもGoogleもMSもC++を使いこなせないからRustを支援してるって主張か?
MozillaもGoogleもMSもC++を使いこなせないからRustを支援してるって主張か?
679デフォルトの名無しさん
2021/02/11(木) 17:27:06.59ID:9tQEVdS2 >>678
Mozillaなんか独占禁止法違反を誤魔化すためのGoogleの下請けに過ぎないので
レベルの高いプログラマはもはやいないし、MSやGoogleは巨大すぎるので
できそこないのプログラマも多い。
Mozillaなんか独占禁止法違反を誤魔化すためのGoogleの下請けに過ぎないので
レベルの高いプログラマはもはやいないし、MSやGoogleは巨大すぎるので
できそこないのプログラマも多い。
680デフォルトの名無しさん
2021/02/11(木) 17:42:02.28ID:7PiE9zQt おじいちゃんの想像力が凄すぎる
681デフォルトの名無しさん
2021/02/11(木) 19:00:14.15ID:yn2eFMfP トランプ好きそう
682デフォルトの名無しさん
2021/02/11(木) 19:04:26.47ID:BUYxyJ+C >>679
なるほど、Mozillaのプログラマは全員レベル低いしGoogleやMSでrustに関わってる人も全員出来損ないという主張なのね
なるほど、Mozillaのプログラマは全員レベル低いしGoogleやMSでrustに関わってる人も全員出来損ないという主張なのね
683デフォルトの名無しさん
2021/02/11(木) 19:17:51.67ID:du0efLq8 ダニング=クルーガー効果
ダニング=クルーガー効果とは、能力の低い人物が自らの容姿や発言・行動などについて、
実際よりも高い評価を行ってしまう優越の錯覚(英語版)を生み出す認知バイアス。
この現象は、人間が自分自身の不適格性を認識すること(メタ認知)ができないことによって生じる。
1999年にこの効果を定義したコーネル大学のデイヴィッド・ダニング(英語版)とジャスティン・クルーガー(英語版)は、
「優越の錯覚を生み出す認知バイアスは、能力の高い人物の場合は外部(=他人)に対する過小評価に起因している。
一方で、能力の低い人物の場合は内部(=自身)に対する過大評価に起因している。」と述べている。
ダニング=クルーガー効果とは、能力の低い人物が自らの容姿や発言・行動などについて、
実際よりも高い評価を行ってしまう優越の錯覚(英語版)を生み出す認知バイアス。
この現象は、人間が自分自身の不適格性を認識すること(メタ認知)ができないことによって生じる。
1999年にこの効果を定義したコーネル大学のデイヴィッド・ダニング(英語版)とジャスティン・クルーガー(英語版)は、
「優越の錯覚を生み出す認知バイアスは、能力の高い人物の場合は外部(=他人)に対する過小評価に起因している。
一方で、能力の低い人物の場合は内部(=自身)に対する過大評価に起因している。」と述べている。
684デフォルトの名無しさん
2021/02/11(木) 19:50:13.66ID:veopzNW6 いつもの爺だって言ってんのに
685デフォルトの名無しさん
2021/02/11(木) 20:05:54.55ID:LFj6F75s686デフォルトの名無しさん
2021/02/11(木) 20:11:37.99ID:ntK2cQ4K ここはC++のスレじゃないので他所に行ってね
687デフォルトの名無しさん
2021/02/11(木) 20:55:43.37ID:681aVeVl >>685
インターフェイス (仕様) の話だけど実装の話でもある。
たとえば C++ では vector の大きさが変わったら (それの要素を指す) イテレータは一斉に無効になって
コンパイル時にも実行時にも捕捉されない (捕捉することを保証しない) のは
明らかに vector の実装の都合を想定していて、
仕様を満たす範囲で効率的に実装すれば (vector の) イテレータの実体はポインタ一個になる。
C++ の標準ライブラリは C で出来ること、 C の習慣の見栄えを変えているに過ぎないし、
そうなるようにデザインされている。
実装がどうなっているかが透けて見えるような仕様になっているという意味で抽象化がしきれていないと書いた。
インターフェイス (仕様) の話だけど実装の話でもある。
たとえば C++ では vector の大きさが変わったら (それの要素を指す) イテレータは一斉に無効になって
コンパイル時にも実行時にも捕捉されない (捕捉することを保証しない) のは
明らかに vector の実装の都合を想定していて、
仕様を満たす範囲で効率的に実装すれば (vector の) イテレータの実体はポインタ一個になる。
C++ の標準ライブラリは C で出来ること、 C の習慣の見栄えを変えているに過ぎないし、
そうなるようにデザインされている。
実装がどうなっているかが透けて見えるような仕様になっているという意味で抽象化がしきれていないと書いた。
688デフォルトの名無しさん
2021/02/11(木) 21:35:06.01ID:qccRsQET >>676はクソか馬鹿。理由は説明しない。
689デフォルトの名無しさん
2021/02/11(木) 23:40:49.80ID:zsmCiXPn690デフォルトの名無しさん
2021/02/12(金) 00:55:03.10ID:rREL60wB691デフォルトの名無しさん
2021/02/12(金) 01:08:51.70ID:2OOQ6m86 >>689
完全に成功していると言い切れない部分はあるかもしれないけど、
実行時に処理すべきことが同じならクラスやらテンプレートやらでラップしても
C と C++ でほとんど差は付かないよ。
少なくとも現代的な処理系で最適化を有効にして比較した場合には。
完全に成功していると言い切れない部分はあるかもしれないけど、
実行時に処理すべきことが同じならクラスやらテンプレートやらでラップしても
C と C++ でほとんど差は付かないよ。
少なくとも現代的な処理系で最適化を有効にして比較した場合には。
692デフォルトの名無しさん
2021/02/12(金) 01:20:11.09ID:2OOQ6m86 >>690
それはどうだろう。
俺はアマチュアだがそれでも C++ を二十年以上触ってきた感覚で言えば
Rust はかなり良いという印象なので、 C++ のグダグダさに
うんざりしてる人は結構いるんじゃないか?
C++ の自由さを楽に感じている部分もあるんだが、結局はツギハギだからなぁ。
理念的な良し悪しを置くとしても長期にわたって機能を増やしていれば
一貫性のないところだっていっぱい出てくるのは仕方がないことで、
どこかで時代をリセットしてやり直す必要はあるんじゃないかと思う。
俺にとってはそれが Rust って感じ。
それはどうだろう。
俺はアマチュアだがそれでも C++ を二十年以上触ってきた感覚で言えば
Rust はかなり良いという印象なので、 C++ のグダグダさに
うんざりしてる人は結構いるんじゃないか?
C++ の自由さを楽に感じている部分もあるんだが、結局はツギハギだからなぁ。
理念的な良し悪しを置くとしても長期にわたって機能を増やしていれば
一貫性のないところだっていっぱい出てくるのは仕方がないことで、
どこかで時代をリセットしてやり直す必要はあるんじゃないかと思う。
俺にとってはそれが Rust って感じ。
693デフォルトの名無しさん
2021/02/12(金) 07:21:37.77ID:dfrGT/mn test
694デフォルトの名無しさん
2021/02/12(金) 15:00:39.40ID:Icv/F37w rustももう十分一貫性ないだろ。c++リセットしたい割に同じ道行ってるのがどうしようもねーなという印象。
695デフォルトの名無しさん
2021/02/12(金) 15:46:07.19ID:Sqde6WAi だからお気持ちはいいから具体例を挙げろよ
696デフォルトの名無しさん
2021/02/12(金) 16:25:53.42ID:2OOQ6m86 >>694
一貫性が壊れてきてるというのはわかるよ。
でも、それを繰り返すもんだという諦めがあるから、
Rust がグダグダになりきったらまた新しい何かが登場するだろうと期待して今は Rust ってこと。
C++ の状況をなぞるならこれから 15 年か 20 年くらいはなんとかなるだろ。 それで十分だ。
>>695
以前のスレでも書いたような気がするが、
is_alphabetic の引数は self なのに is_ascii_alphabetic は &self だったりするとかみたいな
微妙な歴史的経緯がちょろちょろと見え隠れする。
個別に見れば重要ではないんだけど、
そういうどうでもいいことの積み重ねが全体としてのいびつさになる。
かといってそこらへんを綺麗に整理しつづけるために互換性を失うようでも
受け入れられなかっただろうというのもあるので、
そこらへんは本当にしゃーないんだわ。
一貫性が壊れてきてるというのはわかるよ。
でも、それを繰り返すもんだという諦めがあるから、
Rust がグダグダになりきったらまた新しい何かが登場するだろうと期待して今は Rust ってこと。
C++ の状況をなぞるならこれから 15 年か 20 年くらいはなんとかなるだろ。 それで十分だ。
>>695
以前のスレでも書いたような気がするが、
is_alphabetic の引数は self なのに is_ascii_alphabetic は &self だったりするとかみたいな
微妙な歴史的経緯がちょろちょろと見え隠れする。
個別に見れば重要ではないんだけど、
そういうどうでもいいことの積み重ねが全体としてのいびつさになる。
かといってそこらへんを綺麗に整理しつづけるために互換性を失うようでも
受け入れられなかっただろうというのもあるので、
そこらへんは本当にしゃーないんだわ。
697デフォルトの名無しさん
2021/02/12(金) 18:51:43.73ID:HD0w64Tf エディションで定期的にリセットする仕組みが機能するかどうかは興味あるな
Rustで初めて挑戦する感じだから、良い感じに機能するのはさらに次世代の言語になるだろうけど
Rustで初めて挑戦する感じだから、良い感じに機能するのはさらに次世代の言語になるだろうけど
>>687
>実装がどうなっているかが透けて見えるような仕様
私はむしろ、実装が透けて見えるのが王道だとおもっていたのですが、あなたのいう「抽象性」というのが私の感覚とは違うのかもしれませんね
抽象性を徹底して理解するためには、どんな勉強をすればいいのでしょうか?
>実装がどうなっているかが透けて見えるような仕様
私はむしろ、実装が透けて見えるのが王道だとおもっていたのですが、あなたのいう「抽象性」というのが私の感覚とは違うのかもしれませんね
抽象性を徹底して理解するためには、どんな勉強をすればいいのでしょうか?
>>692
>C++ のグダグダさにうんざりしてる人は結構いるんじゃないか?
私はまだ経験が浅いのかもしれませんが、そんなに C++ がグダグダだとは思っていません
どういうところがグダグダなのか例示していただけるとありがたいです‥‥
>C++ のグダグダさにうんざりしてる人は結構いるんじゃないか?
私はまだ経験が浅いのかもしれませんが、そんなに C++ がグダグダだとは思っていません
どういうところがグダグダなのか例示していただけるとありがたいです‥‥
700はちみつ餃子 ◆8X2XSCHEME
2021/02/13(土) 11:09:55.70ID:sNJoTpmN >>698
抽象というのは、要は余計な要素をそぎ落とすという話なので考え方によっては
どこが余計なのかというのは変わりうるけども、仮に vector の本質を
「縮小・伸長可能な配列」であると考えるならば
・ 要素が隣り合う
・ 要素アクセスのコストのオーダーは O(1) である
といった性質は本質に付随する性質として受け入れられる。 でも、
・ 配列を伸ばしたらイテレータが無効になる
という仕様は
・ 配列の大きさを変えるのをメモリの確保しなおしで実現する
・ イテレータの実体はポインタ一個である
という実装上の理由 (を想定している) なので、抽象化の漏れだと思う。
イテレータをコンテナ (の参照) とインデックスの組で実装すれば回避可能なわけだし。
でも C++ の標準ライブラリでは C の価値観を以て抽象化よりも実行効率を優先するという選択をした。
繰り返すけど、これは何を本質とみなすかという見方によって変わりうるので、
考え方によって詳細は変わるかもしれないということには注意。
・ 対象は何である (ように見せている) か?
・ 対象がそう見せようとしている通りに使えるか?
・ その上で対象がそう見せかけようとする以外の部分 (実装の都合) を「忘れられる」か?
というのがライブラリが持つ抽象性。
カプセル化で大事なのは情報隠蔽だというのをどっかで読んだことくらいあるでしょ。
余計なことは見せないほうがいい。
んで、私 (>>687) にとっては vector のメモリ管理の都合は (少なくとも必要になるまでは)
忘れていたい余計なことだと思えるということ。
抽象というのは、要は余計な要素をそぎ落とすという話なので考え方によっては
どこが余計なのかというのは変わりうるけども、仮に vector の本質を
「縮小・伸長可能な配列」であると考えるならば
・ 要素が隣り合う
・ 要素アクセスのコストのオーダーは O(1) である
といった性質は本質に付随する性質として受け入れられる。 でも、
・ 配列を伸ばしたらイテレータが無効になる
という仕様は
・ 配列の大きさを変えるのをメモリの確保しなおしで実現する
・ イテレータの実体はポインタ一個である
という実装上の理由 (を想定している) なので、抽象化の漏れだと思う。
イテレータをコンテナ (の参照) とインデックスの組で実装すれば回避可能なわけだし。
でも C++ の標準ライブラリでは C の価値観を以て抽象化よりも実行効率を優先するという選択をした。
繰り返すけど、これは何を本質とみなすかという見方によって変わりうるので、
考え方によって詳細は変わるかもしれないということには注意。
・ 対象は何である (ように見せている) か?
・ 対象がそう見せようとしている通りに使えるか?
・ その上で対象がそう見せかけようとする以外の部分 (実装の都合) を「忘れられる」か?
というのがライブラリが持つ抽象性。
カプセル化で大事なのは情報隠蔽だというのをどっかで読んだことくらいあるでしょ。
余計なことは見せないほうがいい。
んで、私 (>>687) にとっては vector のメモリ管理の都合は (少なくとも必要になるまでは)
忘れていたい余計なことだと思えるということ。
701はちみつ餃子 ◆8X2XSCHEME
2021/02/13(土) 11:21:51.89ID:sNJoTpmN >>699
特にいびつさを生み出している例はヘッダファイルかな。
ソースファイル (.c) がひとつのモジュールとして機能して
ヘッダファイルがモジュールの外に向けたインターフェイスとして機能する
というのは C の世界ではまあまあ上手くいっているのだけど、
ヘッダファイルに定義を書くようになってから役割の境界が破綻してきた。
従来の C の世界では「定義はどこかのコンパイル単位に属す」という前提があったが、
ヘッダ内での実装 (テンプレートやインライン関数) ははっきりした所属がない。
テンプレートαがテンプレートβを使っていてソースファイルγでαを使いたければ
γ内からβも見えてしまうので隠蔽しきれない。 (カプセル化の破綻)
C++er にとってモジュール機能の導入が悲願のひとつと言われ続けていたのは、
ヘッダファイルという仕組みが理由になっている色々なグダグダの解消につながることが
期待されていたからだよ。
C++20 でとりあえずモジュールが導入されたけど色々な機能をモジュールを前提
にしたものに置き換えて古い仕組みがフェードアウトするまではまだまだグダグダする
だろうけどな。
ところでこれ以上は Rust スレで C++ の話を続けるとうっとうしがられるので、
質問があればこれ以降は C++ スレで。
特にいびつさを生み出している例はヘッダファイルかな。
ソースファイル (.c) がひとつのモジュールとして機能して
ヘッダファイルがモジュールの外に向けたインターフェイスとして機能する
というのは C の世界ではまあまあ上手くいっているのだけど、
ヘッダファイルに定義を書くようになってから役割の境界が破綻してきた。
従来の C の世界では「定義はどこかのコンパイル単位に属す」という前提があったが、
ヘッダ内での実装 (テンプレートやインライン関数) ははっきりした所属がない。
テンプレートαがテンプレートβを使っていてソースファイルγでαを使いたければ
γ内からβも見えてしまうので隠蔽しきれない。 (カプセル化の破綻)
C++er にとってモジュール機能の導入が悲願のひとつと言われ続けていたのは、
ヘッダファイルという仕組みが理由になっている色々なグダグダの解消につながることが
期待されていたからだよ。
C++20 でとりあえずモジュールが導入されたけど色々な機能をモジュールを前提
にしたものに置き換えて古い仕組みがフェードアウトするまではまだまだグダグダする
だろうけどな。
ところでこれ以上は Rust スレで C++ の話を続けるとうっとうしがられるので、
質問があればこれ以降は C++ スレで。
702デフォルトの名無しさん
2021/02/13(土) 12:33:21.13ID:WXR7/a5A 板違いでしたらすみません。
カスタムSMGでリロードしても
弾が装填されません。
弾はピストル弾であってますよね?
バグですかね
よろしくお願いします
カスタムSMGでリロードしても
弾が装填されません。
弾はピストル弾であってますよね?
バグですかね
よろしくお願いします
703デフォルトの名無しさん
2021/02/13(土) 12:36:25.47ID:WXR7/a5A 板違いでしたらすみません。
カスタムSMGでリロードしても弾が装填されません。
ちなみにピストル弾です。
バグですかね
よろしくお願いします。
カスタムSMGでリロードしても弾が装填されません。
ちなみにピストル弾です。
バグですかね
よろしくお願いします。
704デフォルトの名無しさん
2021/02/13(土) 12:37:34.81ID:36lE3GzA わかりにくいボケ
705はちみつ餃子 ◆8X2XSCHEME
2021/02/13(土) 12:45:41.52ID:sNJoTpmN たぶんこれとひっかけたネタ
https://store.steampowered.com/app/252490/Rust/
https://store.steampowered.com/app/252490/Rust/
706デフォルトの名無しさん
2021/02/13(土) 13:05:51.12ID:w+5Lz0+D 鉄道やデジカメ、プログラム、ゲームの板のスレって
いつも無関係な話題で罵りあってるよね
これらの板って何か変な物を吸引するのだろうか
いつも無関係な話題で罵りあってるよね
これらの板って何か変な物を吸引するのだろうか
707デフォルトの名無しさん
2021/02/13(土) 13:33:02.22ID:WXR7/a5A →704
ボケ言うなカス
ボケ言うなカス
708デフォルトの名無しさん
2021/02/13(土) 14:06:11.02ID:jbR8Qrt4 ▷707
なんじゃワレやるんかコラ
なんじゃワレやるんかコラ
709デフォルトの名無しさん
2021/02/13(土) 14:49:42.47ID:pbGXUc6m pythonのモジュール作成者にもっとrustの利用が促進されればいい感じになりそうな気がする
710デフォルトの名無しさん
2021/02/13(土) 19:30:22.42ID:cu3O8Dcb はっきり言って邪魔でしかない
711デフォルトの名無しさん
2021/02/13(土) 19:58:39.56ID:3pvm/7w/ >>709
Rust 使えるなら Python 要らないだろ。
Rust 使えるなら Python 要らないだろ。
712デフォルトの名無しさん
2021/02/13(土) 20:30:02.97ID:iTD0ef09 プラグインとしてのwasmは流行りますか?
713デフォルトの名無しさん
2021/02/13(土) 21:46:14.79ID:sNJoTpmN >>712
可能性は十分にあると思う。
可能性は十分にあると思う。
714デフォルトの名無しさん
2021/02/13(土) 23:21:08.34ID:ahglb0ed wasmはWebブラウザだけでなく、令和のJavaアプレットのように Write once, run anywhere を標語に
あらゆる目的で使われるようになるよ
あらゆる目的で使われるようになるよ
715デフォルトの名無しさん
2021/02/13(土) 23:57:58.78ID:qgbbzUT6 ちょっとしたやつでもファイル容量大きくなるからまだ無理
さらにいえばjsでもgpu使えるから並列計算ならそれ使えばいいし、wasmの用途は限られる
将来的に5gとかで通信速度上がったら使われるようになると思う
さらにいえばjsでもgpu使えるから並列計算ならそれ使えばいいし、wasmの用途は限られる
将来的に5gとかで通信速度上がったら使われるようになると思う
716デフォルトの名無しさん
2021/02/14(日) 00:05:54.10ID:FhxBluZZ 今、5GのEdge Computingがwasmの適用範囲として最も注目されている領域
717デフォルトの名無しさん
2021/02/14(日) 10:45:44.60ID:ICgnupj6 wasmバブルってのはちょっと考えにくい
718デフォルトの名無しさん
2021/02/14(日) 11:17:05.02ID:fVniJNpS 泡沫の夢という意味かもw
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- パワフル女性世界3位に高市首相 米誌フォーブス選出 [蚤の市★]
- 【米FRB】0.25%利下げ決定 3会合連続、雇用下支え [蚤の市★]
- テレ朝本社から社外スタッフの男性が転落し死亡 テレビ朝日がコメント [ひかり★]
- 【S.RIDE】「忘年会の幹事ずるい」 ソニー系配車アプリの広告が物議…… 運営が謝罪「配慮に欠ける不適切な表現」掲出終了に [ぐれ★]
- アイヌ民族の「戸籍簿」がヤフオクで落札 団体「人権無視」と憤り [蚤の市★]
- 「身を切る改革」どこへ? 維新「身内」への公金支出、地方でも続々 [蚤の市★]
- 高市「野党はもう債権とか為替の話はしないで!よく分からないから答えない!」 [884040186]
- 豚汁の弱点
- 人生がつまらんやつ、130円で大根買え。
- 【悲報】教育ママ「ギャオオオオオン!息子が大麻吸ってるのお!!」⇨中3の息子を警察に突き出し全てを終わらせる [455031798]
- 【画像】東京都民「助けて!満員電車もう無理いいぃぃいいぃぃぃいいいいいぃ😭」!!!! [732289945]
- 【堂上隼人】ソフトバンク幹部「よし更生してる」→現在までに逮捕12回、レイプ被害者15人
