X



Rust Part7

レス数が900を超えています。1000を超えると表示できなくなるよ。
0824デフォルトの名無しさん
垢版 |
2019/12/12(木) 22:28:50.79ID:QcnezoE2
その人のブログはとても勉強になる
0825デフォルトの名無しさん
垢版 |
2019/12/13(金) 00:13:33.89ID:WNmLBJqN
Webって技術的には正直面白くないからなあ
だからリビドーを持て余した連中は変な言語に走る
0830デフォルトの名無しさん
垢版 |
2019/12/13(金) 21:22:09.48ID:AirhCkz9
example動かしてみたけど
これはゲームUI専用のやつなんだな
OSのウィジェット使ってないからクリップボード使えないし
日本語入力も出来ない
0831デフォルトの名無しさん
垢版 |
2019/12/13(金) 22:27:30.69ID:wVI96F7k
C ABIから使えるネイティブウィジェットのGUIツールキットTcl/Tkが候補に挙がるくらい少ない
0833デフォルトの名無しさん
垢版 |
2019/12/17(火) 21:59:30.10ID:xN+qS68V
Iced も example tour 見てみた感じよさそうに思った
ただご多分に漏れず日本語は入力できない(□になった)
難しいんかね ttps://github.com/hecrj/iced/issues/103
0836デフォルトの名無しさん
垢版 |
2019/12/23(月) 20:42:31.88ID:sS1JWXeN
elmは絶対に流行らない首をかけてもいい
0838デフォルトの名無しさん
垢版 |
2019/12/23(月) 22:27:56.54ID:0aHLh1ru
もじらが作ってmsがおうえんしてくれてふだろ。
で?elmは?w
0843デフォルトの名無しさん
垢版 |
2019/12/25(水) 23:38:34.92ID:rtgRmFxx
プロセスはスレッドが別のこともあるけど、別スレッドで動作するものをふつうコルーチンとは呼ばないね。
0847デフォルトの名無しさん
垢版 |
2019/12/27(金) 20:57:38.45ID:zMa/58Jf
>>832
兵器産業ではあるあるかもしれん
現行F-2のFBWのコードは小さいROMによく収まったなあという意味で芸術品との噂
0850デフォルトの名無しさん
垢版 |
2019/12/27(金) 23:40:09.93ID:CoHNsOHu
それをロンチ後に味わうよりずっといい
0855デフォルトの名無しさん
垢版 |
2020/01/01(水) 08:04:30.24ID:6zSEt3Eo
重量プロセス
0856デフォルトの名無しさん
垢版 |
2020/01/03(金) 00:21:36.29ID:4CdCqvzm
なんか,外部クレートを取ってこれなくなってない?
サーバ側がバグってる?
0859デフォルトの名無しさん
垢版 |
2020/01/13(月) 02:25:37.87ID:kbEHI+CO
C系のワンラインifや?演算子は悪しき文化だと思うこの頃
最近書かれたOSSのコードにも多用されていたりするから笑えない
もちろんRustでそんな邪悪な書き方は許されていないけど
0860デフォルトの名無しさん
垢版 |
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にせざるおえない
0863デフォルトの名無しさん
垢版 |
2020/01/13(月) 15:23:43.45ID:xcD2sz0v
そんなカスな書き方にこだわるくらいならconstでなくても困らんくらいに関数きれや。
0864デフォルトの名無しさん
垢版 |
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

優先順が判りにくい
0867デフォルトの名無しさん
垢版 |
2020/01/13(月) 23:22:40.80ID:xcD2sz0v
まあ実践的なコードになればなるほど、
mut, unsafe, refcell使いまくりだからな。。
0869デフォルトの名無しさん
垢版 |
2020/01/14(火) 16:22:27.20ID:uFo9dhko
>>849 俺も、昔C言語で苦しんだな。誰にも教えてもらえないし、しかしその分人より詳しくなったよ。
C言語に詳しくなるって事は、弱点も知ることになる、そしてその弱点からどう逃げるか?そういうことも考えるようになる。

Rustの逆引き辞典みたいなハンドブックがインターネットに転がってないかなぁ
0871デフォルトの名無しさん
垢版 |
2020/01/14(火) 19:21:50.48ID:tuFEGmKg
moveのコストってみんな気にしてる?
Cだったらポインタ渡すだけだったり
ポインタを返すだけだったりで最小限な感あるけど
rustじゃポインタ中心でやりくりしないよね
0872デフォルトの名無しさん
垢版 |
2020/01/14(火) 20:12:08.07ID:bWQIptzM
コンパイラの最適化で消えるんじゃないの?知らんけど
moveコストが気になるってどんなプログラムか想像付かないけどゲームとか?
0873デフォルトの名無しさん
垢版 |
2020/01/14(火) 22:36:34.11ID:fFlEK4SW
普通moveコストが気になるほど巨大なものをスタックに置かないのでは。
あとCでポインタ渡すケースなら普通は参照渡しだろうし。
0875デフォルトの名無しさん
垢版 |
2020/01/14(火) 23:35:09.81ID:ngXFRoSC
>>867
つまりRustは実践的でなく、FireFoxが沈みつつあるのはそのせいだと。

>>868
servoって何ぞ?と思ったらGeckoと交換か。
見た目if文多用の旧式コードに見える。
それだけで駄目なわけではないけど、CのOSSと粒度は同じだと思う。
0876デフォルトの名無しさん
垢版 |
2020/01/15(水) 08:43:43.81ID:nrskqwsi
どちらかというとCと同じ抽象度で書いても安全性が担保されることがRustのメリットでは。
より高い抽象度の操作しか許さないから安全、ってのなら他にいくらでも選択肢はあるわけで。
0877デフォルトの名無しさん
垢版 |
2020/01/15(水) 10:16:34.92ID:DPd+8sgQ
>>876
ご意見ごもっとも。
ただ、例外的とされている仕様を日常的に使用せざるを得ないのは、
言語の仕様(思想)または適用範囲(用途)を間違えているからだ。

「安全なC」を目指すのも一見良さそうにも見えるが、実際のところ、
Cが問題になるのは馬鹿が書くからであって、いわゆる「駄目なコード」はOSSには存在しない。
(正確には「駄目なコード」があるとメンテ不能となって淘汰されるから、
生き残っているOSSはメンテ可能状態=駄目なコードがない状態に保たれている)
この意味では、Cを馬鹿よけとして使っているLinusのやり方が正しい。

「非安全」だから使うなとされている機能を常用するのならRustを使う意味がまるでないし、
コーディングがしにくいだけの単なる「意識高い系ドM」でしかない。
当然、プロジェクトは沈没していく。

一方、ロシアは鉛筆を使った、に近い。
0878デフォルトの名無しさん
垢版 |
2020/01/15(水) 13:15:08.87ID:eUr1BYr3
>>871
C++の話で申し訳ないけど
std::vectorとかは実装によっては
(利用者側の実装もvectorの実装も)
めっちゃ効率悪くなる罠を孕んでる
0879デフォルトの名無しさん
垢版 |
2020/01/15(水) 15:26:49.41ID:vosN76E7
opensslさんから一言お願いします
0880デフォルトの名無しさん
垢版 |
2020/01/15(水) 18:02:26.14ID:lC3F4iid
>>877
どこの世界の話?
Cで書かれて開発体制もしっかりしてても
頻繁にセキュリティホールが報告されてる
OSSは結構あると思うなあ
0881デフォルトの名無しさん
垢版 |
2020/01/15(水) 21:18:04.48ID:DPd+8sgQ
>>880
Rustはどんな馬鹿が書いてもセキュリティホールが存在し得ないとでも?
多分お前はセキュリティホールが何か、すら分かってないと思うが。

むしろお前みたいな馬鹿がRust使う意味なんて全くないはず。
俺やRustの言う「駄目なコード」はそこではないし。

お前みたいな馬鹿でも分かる話をするなら、
現実として、もっと上位の記述しか出来ないPHPでもセキュリティの問題はやらかしまくってるだろ。
あれは『ホール』と呼ぶべきかどうか、という話はあるにしても、
低位の『ホール』だけ塞いだところでその上位でいくらでもやらかせるのでそれ自体に大した意味はないんだよ。
それ以前に、Rustが低位の『ホール』を全部塞いでいるかどうかなんて俺は知らんが。
あれはPHPerの頭が悪いせいにされているが、お前らがWebやったらもっと酷いことをやらかすのは確実だ。
0882デフォルトの名無しさん
垢版 |
2020/01/15(水) 21:50:07.07ID:vosN76E7
あんたのいう駄目なコードの定義なんて誰も知らないだろ
0883デフォルトの名無しさん
垢版 |
2020/01/15(水) 21:53:07.43ID:JGL8Rg1T
まあ静的チェックで仕事終わりにできると思ってるバカは多いな。
そういう馬鹿が一番厄介。あの手この手でテストしない理由をこねくり回してくる。
0885デフォルトの名無しさん
垢版 |
2020/01/15(水) 23:21:00.85ID:DPd+8sgQ
>>884
ではどうだと?はっきり言ってみろ。

俺の意見としては、RustとCでセキュリティガー、ってことにはならんよ。
あれは書く側の問題で、言語の問題ではない。
0887デフォルトの名無しさん
垢版 |
2020/01/16(木) 00:41:04.84ID:o+vnDRH4
>>886
日本語が不自由なら半島に帰れ
日本語が出来るつもりなら正しく伝わるように言え

Rustで書かれて開発体制がしっかりしているはずのFireFoxでも、
糞遅くてシェア落としまくりで最早ゴミになりつつあり、
セキュリティホールが存在しないって事もあり得ないと思うけど。

CとRustの対比で「セキュリティホール」を持ち出している時点で意味不明だが、
お前が言っていることに直接言及するならこうなる。
これには反論出来るのか?
0890デフォルトの名無しさん
垢版 |
2020/01/16(木) 01:20:17.86ID:o1pVy6eo
問題を起こさない人が書いたコードには問題がない
という主張になんの意味があるんだ
そりゃそうだろとしか言いようがない

そんな人間はいないという前提にいないならばプログラマー同士の議論にはならないだろ
0891デフォルトの名無しさん
垢版 |
2020/01/16(木) 02:17:49.53ID:OG9QJoeV
>>877
お前のレスの C の部分をを他の言語にしても内容変わらないね。
つまり意味の無いレスだ。
0892デフォルトの名無しさん
垢版 |
2020/01/16(木) 05:48:47.89ID:I1VMveuP
自動車で考えると、自動運転が進むと自動車が優秀だから馬鹿が運転しても事故が起きない。

「馬鹿」は運転するなと?
「馬鹿」と言い切ってしまうから、問題がややこしくなる。感情的になるような気がする。
馬鹿除けとは、微妙な表現だ。
0893デフォルトの名無しさん
垢版 |
2020/01/16(木) 06:09:04.61ID:iXD/XJ1o
微妙だが実際linuxはそれで成功してるしな。。
馬鹿よけがびっくりするほど効果的だったという事実。
0894デフォルトの名無しさん
垢版 |
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を躊躇なく使うし、それでも問題ないわけで。
0895デフォルトの名無しさん
垢版 |
2020/01/16(木) 23:17:33.90ID:o+vnDRH4
そもそも何でもかんでも馬鹿中心に考えるのは馬鹿の思い上がりであって、
例えばGCにしても、「GCが無いとリークしまくる馬鹿の為の補助輪」ではなく、
「メモリ管理の煩わしさからプログラマを解放する」為の物であり、当然暗に「その先」を目指している。
だからそもそもCすらまともに使えない奴がRustを使うのが間違いで、
(実際どうかはさておき、目指しているところは)Rustはより生産性が高いというわけだから、
基本ラインとしては,、「Cだとメンドクセエ」「Cだと俺の理想のコードにならねえ」と思う奴が使う言語だろ。

つまり、本来は、問題を起こさないようになってから使う言語だよ、Rustは。
0896デフォルトの名無しさん
垢版 |
2020/01/17(金) 00:37:23.07ID:N4X+Xwxw
そのキータには、日本人は同じレベルでも給料が安いと書いてあるようだが
0897デフォルトの名無しさん
垢版 |
2020/01/17(金) 09:47:24.91ID:w7/ZzyeZ
enumがヴァリアントの最大幅とるってどういう原理?
structはCより最適化されてるよね
0898デフォルトの名無しさん
垢版 |
2020/01/17(金) 11:18:32.31ID:5x//VkpE
Cのunionみたいな?
0900デフォルトの名無しさん
垢版 |
2020/01/18(土) 00:49:52.56ID:LVpCcFR7
最近このスレを見始めて、過去ログから見てたんだけど、Cargoで不満言ってる人いるけど、理由って何?
単純に気になるんだけど、クソしか言ってないから分からん
0904デフォルトの名無しさん
垢版 |
2020/01/18(土) 07:04:10.17ID:i03lhjxa
ざっと見たところ、クソコメがひどいからactixのメンテやめるわって事かな
ベンチマーク詐欺師、バグだらけ、俺のパッチを受け入れろ
と言われて炎上したのが原因か?
0906デフォルトの名無しさん
垢版 |
2020/01/18(土) 14:41:26.79ID:wMBhn349
なんで関係ない第三者が辞める宣言しとるんやと思ったら「辞めろ」のtypoか
ま、いうてすぐ別のフォークが誕生するやろ ハナホジー
0907デフォルトの名無しさん
垢版 |
2020/01/18(土) 20:42:42.95ID:1O2OVvd1
cargoは何でもやろうとし過ぎなのが一番のクソポイントだと思ってるけど、個人的には
・他のビルドツールと一緒に使うのが面倒
・パッケージマネージャとビルドツールが同じツールであることが非合理的
・昔は「crateはrustのコンパイル単位です」なんて戯言を抜かしていた
・rustcを改善するモチベーションが下がる
全部個人の感想だし、マンパワーが足りないならひと括りにするメリットはあったと思うけど、イケてないと常々思ってる
0908デフォルトの名無しさん
垢版 |
2020/01/19(日) 00:07:59.13ID:ZofGlu8L
以前はcargoからリンカを制御方法とか全く判らなかったけど最近出来るようになったのかな
0909デフォルトの名無しさん
垢版 |
2020/01/19(日) 06:17:00.35ID:npSn4vFb
Clangだから成功したと言えるのか?
Rustなどのモダンなシステムプログラミング言語があの時代にあればどうなったかは誰にも分からんだろ
リーナスがRustキチであっても他のプログラマとしての素質が変わらなければ成功したと俺は思うが

なんにせよ巨人の肩に乗ってマウントした気になっても万人がそれで納得するとは限らないし逆効果もあるぞ
0910デフォルトの名無しさん
垢版 |
2020/01/19(日) 06:19:04.90ID:npSn4vFb
なんか以前書き込んだはずのレスができてなくてロードしたら送信されたっぽい
>>893辺りへのレスだが恥ずかしいからROMるわ、すまんな
0911デフォルトの名無しさん
垢版 |
2020/01/19(日) 09:48:12.84ID:TwfOJbH4
>>907
cargoの欠点答えてくれてありがとう
正しいcargoの立ち位置としてパッケージマネジャーの仕事だけして、今cargoがしてるビルドツールのラッパー要素を別にして、その別のでcargoとructcを単純に抽象化したら結構解決するってことかな?
0912デフォルトの名無しさん
垢版 |
2020/01/19(日) 10:13:54.83ID:L2mlhsAt
>>909
なにからなにまでずれすぎててどっからつっこだらいいのやら。。
clangとlinuxは全く関係ないし、
リーナスがrust推しだったらとかプログラムの好みからしてそれだったらlinux作っとらんしとか
どこからどこまでも間違ってるとしか言いようがない。
仮定としてできることとしたらc++テンプレートの信頼性が当時高かったらとかその程度だろう。
それでもc++を使うことはなかっただろうと思うが。
0913デフォルトの名無しさん
垢版 |
2020/01/19(日) 10:31:40.67ID:PM2cmccN
LinusにRustを教えたのがアワシロイクヤ氏だったのも良かったんじゃないか。
人柄だな。
0914デフォルトの名無しさん
垢版 |
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倍以上の手間がかかってしまう。
よってこれはプロジェクトにとっては大問題で、絶対にやってはいけないのだが、これを防ぐことは今現在出来ない。
というか、今の言語はまだここまで進化出来ていない。
0915デフォルトの名無しさん
垢版 |
2020/01/19(日) 11:07:44.98ID:QWtapXFZ
だからこれは、長期的には「どのレベルの人まで受け入れるか」「それで十分な人数が確保出来るか」であり、
C++を丸ごと切り捨てているLinuxは相当思い切った判断だが、それでも何とかなっているし、
結果的には、全く保護機構のないCだとこれが正解だ、ということでしかない。

対してRustみたいに安全機構が付いている言語だと、そのレベルを下げられ、結果的にコミッタも増え、早く進化していけるはずで、
だからこそ進化速度が重要なブラウザをターゲットに選んだのは正しいのだが、
結果的に死につつあるのだから、確実に何かが間違っていたはずであり、
それは既に言われているが「学習曲線」、つまりそもそもチャキチャキ書けないことだろう。
1,2の人達にとっては厳しい検査なんて足枷でしかない。3を救済する為に1,2に足枷をはめていて、
結果的に総合的な生産性が落ち、プロジェクトが死につつある、というだけの話だ。

だから、個人的には、正解は「C+外部検査(リンター)」だと思っている。
今で言うとTypeScriptみたいな、チェック機構外付けの言語とかだ。
静的検査が出来る=静的検査をリンターとして外部に切り出せる、でしかないから、
静的検査メインで言語を拡張するのはナンセンスだ。
(Rustはそうではないが)
0916デフォルトの名無しさん
垢版 |
2020/01/19(日) 11:13:46.05ID:PM2cmccN
アワシロさんはそうは言ってなかったな。
むしろRustは普遍的にどこでも使えると説いてた。
0917デフォルトの名無しさん
垢版 |
2020/01/19(日) 11:19:38.67ID:PM2cmccN
Rustは銀の弾丸足りえると世界の重鎮が口をそろえるし、俺はお前よりアワシロイクヤ氏を信じるね。
0918デフォルトの名無しさん
垢版 |
2020/01/19(日) 11:52:50.23ID:7W3/Ww9S
・論拠と解釈がオレオレ過ぎ
・安全性に対する理解が浅すぎ
・プロジェクトの成功/失敗に対する見識が甘すぎ
・面白くないくせにレス長過ぎ
0919デフォルトの名無しさん
垢版 |
2020/01/19(日) 12:13:02.49ID:xMKry/BQ
そもそもFirefoxのほとんどはC++なんだから、言語のせいにしたいならC++のせいってことでは。
0920デフォルトの名無しさん
垢版 |
2020/01/19(日) 12:39:52.36ID:L2mlhsAt
まあlinusが良く言ってるようにじゃあそれで作ってみれば?って話なんだわな。
そして誰も作らないというのが答え。
レス数が900を超えています。1000を超えると表示できなくなるよ。

ニューススポーツなんでも実況