Rust Part7
レス数が900を超えています。1000を超えると表示できなくなるよ。
世界が必要としてるのは新言語ではない
Innullable Javaだ >>817
url貼らないけど自転車本の著者の一人がそれやってる会社にいる Webって技術的には正直面白くないからなあ
だからリビドーを持て余した連中は変な言語に走る じゃ、orbtkがWindowsでうごくとこ動画で見せて 取ってきて cargo run --example ... するだけなのになんで動画? example動かしてみたけど
これはゲームUI専用のやつなんだな
OSのウィジェット使ってないからクリップボード使えないし
日本語入力も出来ない C ABIから使えるネイティブウィジェットのGUIツールキットTcl/Tkが候補に挙がるくらい少ない そこまでメモリ管理にシビアなプログラムの需要が日本にはもうない。 Iced も example tour 見てみた感じよさそうに思った
ただご多分に漏れず日本語は入力できない(□になった)
難しいんかね ttps://github.com/hecrj/iced/issues/103 >>833
あんまり詳しく見てないけど、Elmと同じモデルを採用してるというのがセンスいいね JavaScript 今から覚えるくらいなら Elm やれ もじらが作ってmsがおうえんしてくれてふだろ。
で?elmは?w erlang見て小ルーチンええな〜言ってるレベルだがな。 TEAベースのKaguraもよろしくお願いしますね プロセスはスレッドが別のこともあるけど、別スレッドで動作するものをふつうコルーチンとは呼ばないね。 ほなコルーチンと違うかぁ
もうちょっと詳しく教えてくれる? >>832
兵器産業ではあるあるかもしれん
現行F-2のFBWのコードは小さいROMによく収まったなあという意味で芸術品との噂 Rustクソむかつく
訳わからんとこでエラー吐いて遅々として進まない >>852
今はどういう段階なの?
ブートするだけ? >>849
Rust難しいけど相応の対価はあると思うぜ なんか,外部クレートを取ってこれなくなってない?
サーバ側がバグってる? C系のワンラインifや?演算子は悪しき文化だと思うこの頃
最近書かれたOSSのコードにも多用されていたりするから笑えない
もちろんRustでそんな邪悪な書き方は許されていないけど ?演算子が無いとこれができん↓↓↓
const int y = (x > 0) ? 1 : -1;
if文を使うと
int y;
if (x > 0) {
y = 1;
} else {
y = -1;
}
となってyがmutableにせざるおえない >>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 すまん、言い忘れたが、俺は出来るだけ ? を使う派だ そんなカスな書き方にこだわるくらいならconstでなくても困らんくらいに関数きれや。 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
優先順が判りにくい >>863
俺は切ってるけどな。
が、こんなところで言い争いをする意味もないので、Rustはどうかと思ってFireFox見てみたが、
SpiderMonkeyは思いっきりC++じゃねえかよ。Rustってどこに使われてるんだ?
https://hg.mozilla.org/mozilla-central/file/d5843cae64d30255b242d051888e99bef3de5c05 まあ実践的なコードになればなるほど、
mut, unsafe, refcell使いまくりだからな。。 >>866
とりあえずservoディレクトリの下はRustだと思うけど。 >>849 俺も、昔C言語で苦しんだな。誰にも教えてもらえないし、しかしその分人より詳しくなったよ。
C言語に詳しくなるって事は、弱点も知ることになる、そしてその弱点からどう逃げるか?そういうことも考えるようになる。
Rustの逆引き辞典みたいなハンドブックがインターネットに転がってないかなぁ moveのコストってみんな気にしてる?
Cだったらポインタ渡すだけだったり
ポインタを返すだけだったりで最小限な感あるけど
rustじゃポインタ中心でやりくりしないよね コンパイラの最適化で消えるんじゃないの?知らんけど
moveコストが気になるってどんなプログラムか想像付かないけどゲームとか? 普通moveコストが気になるほど巨大なものをスタックに置かないのでは。
あとCでポインタ渡すケースなら普通は参照渡しだろうし。 そやったね失礼
参照があったわw
初心者まるだしですまそ >>867
つまりRustは実践的でなく、FireFoxが沈みつつあるのはそのせいだと。
>>868
servoって何ぞ?と思ったらGeckoと交換か。
見た目if文多用の旧式コードに見える。
それだけで駄目なわけではないけど、CのOSSと粒度は同じだと思う。 どちらかというとCと同じ抽象度で書いても安全性が担保されることがRustのメリットでは。
より高い抽象度の操作しか許さないから安全、ってのなら他にいくらでも選択肢はあるわけで。 >>876
ご意見ごもっとも。
ただ、例外的とされている仕様を日常的に使用せざるを得ないのは、
言語の仕様(思想)または適用範囲(用途)を間違えているからだ。
「安全なC」を目指すのも一見良さそうにも見えるが、実際のところ、
Cが問題になるのは馬鹿が書くからであって、いわゆる「駄目なコード」はOSSには存在しない。
(正確には「駄目なコード」があるとメンテ不能となって淘汰されるから、
生き残っているOSSはメンテ可能状態=駄目なコードがない状態に保たれている)
この意味では、Cを馬鹿よけとして使っているLinusのやり方が正しい。
「非安全」だから使うなとされている機能を常用するのならRustを使う意味がまるでないし、
コーディングがしにくいだけの単なる「意識高い系ドM」でしかない。
当然、プロジェクトは沈没していく。
一方、ロシアは鉛筆を使った、に近い。 >>871
C++の話で申し訳ないけど
std::vectorとかは実装によっては
(利用者側の実装もvectorの実装も)
めっちゃ効率悪くなる罠を孕んでる >>877
どこの世界の話?
Cで書かれて開発体制もしっかりしてても
頻繁にセキュリティホールが報告されてる
OSSは結構あると思うなあ >>880
Rustはどんな馬鹿が書いてもセキュリティホールが存在し得ないとでも?
多分お前はセキュリティホールが何か、すら分かってないと思うが。
むしろお前みたいな馬鹿がRust使う意味なんて全くないはず。
俺やRustの言う「駄目なコード」はそこではないし。
お前みたいな馬鹿でも分かる話をするなら、
現実として、もっと上位の記述しか出来ないPHPでもセキュリティの問題はやらかしまくってるだろ。
あれは『ホール』と呼ぶべきかどうか、という話はあるにしても、
低位の『ホール』だけ塞いだところでその上位でいくらでもやらかせるのでそれ自体に大した意味はないんだよ。
それ以前に、Rustが低位の『ホール』を全部塞いでいるかどうかなんて俺は知らんが。
あれはPHPerの頭が悪いせいにされているが、お前らがWebやったらもっと酷いことをやらかすのは確実だ。 あんたのいう駄目なコードの定義なんて誰も知らないだろ まあ静的チェックで仕事終わりにできると思ってるバカは多いな。
そういう馬鹿が一番厄介。あの手この手でテストしない理由をこねくり回してくる。 >>881
一行目から自分が暗黙にも書いてない内容ですね
残りはゴミ >>884
ではどうだと?はっきり言ってみろ。
俺の意見としては、RustとCでセキュリティガー、ってことにはならんよ。
あれは書く側の問題で、言語の問題ではない。 >>885
はっきり書いてあることと関係ないこと喚いてるだけじゃん >>886
日本語が不自由なら半島に帰れ
日本語が出来るつもりなら正しく伝わるように言え
Rustで書かれて開発体制がしっかりしているはずのFireFoxでも、
糞遅くてシェア落としまくりで最早ゴミになりつつあり、
セキュリティホールが存在しないって事もあり得ないと思うけど。
CとRustの対比で「セキュリティホール」を持ち出している時点で意味不明だが、
お前が言っていることに直接言及するならこうなる。
これには反論出来るのか? >>887
また関係ないことばかり書いて…
どっちが日本語不自由なんだか >>888
一応聞いておくが、>>880はお前だよな? 問題を起こさない人が書いたコードには問題がない
という主張になんの意味があるんだ
そりゃそうだろとしか言いようがない
そんな人間はいないという前提にいないならばプログラマー同士の議論にはならないだろ >>877
お前のレスの C の部分をを他の言語にしても内容変わらないね。
つまり意味の無いレスだ。 自動車で考えると、自動運転が進むと自動車が優秀だから馬鹿が運転しても事故が起きない。
「馬鹿」は運転するなと?
「馬鹿」と言い切ってしまうから、問題がややこしくなる。感情的になるような気がする。
馬鹿除けとは、微妙な表現だ。 微妙だが実際linuxはそれで成功してるしな。。
馬鹿よけがびっくりするほど効果的だったという事実。 >>892
> 「馬鹿」は運転するなと?
yes。DSL(例:Excelのマクロ)やアプリケーションレベルはやればいいが、システムレベルは止めた方がいい。
(一般的に滅茶苦茶切れると聞く)料理人用の包丁を素人が使ったら当然怪我するし、
子供に包丁を練習させるときには主婦レベルからしても切れなすぎて使えない果物ナイフ等から始めるだろ。
技量に応じた適切な道具はある。
システムレベルなんてプロの領域だから、Cすら適切に扱えない奴がやろうとするのが間違ってる。
愚直にこれ、つまり駄目なコードを目で見てrejectすることにより上手く行っているのがLinux。
RustはCすら満足に扱えない馬鹿の為にありとあらゆる補助輪を付けて
馬鹿な素人でもシステムレベルのプログラミングが出来るようになっている、
と考えるのは日本人の勘違いでしかない。
というか、どんな馬鹿でもどうにかして使って人件費を下げよう、という日本流思想が根本的に間違い。
年収を比べれば分かるはずだが、海外はざっくり2倍、つまり2倍の生産性であることを意味する。
https://qiita.com/jabba/items/72c7f9202a1a0a5616fc
といっても、ここにいるような奴は、「隣の奴より俺の方が倍働いている」「俺は平均よりは上だ」と思っているだろうし、
実際そうだとも思うが。
が、まあ、それはさておき、結果的に海外のプログラマは日本で言う「平均以上」の奴らのみで構成されているはずで、
俺らが日常的に目にしている「馬鹿」レベルはかなり少ないはずだし、結果、逆の方向、つまり、
・Cを適切に扱える奴が、もっと生産性の高い言語を使ったらどうなる?
を目指しているはずだ。だから必要であればunsafeを躊躇なく使うし、それでも問題ないわけで。 そもそも何でもかんでも馬鹿中心に考えるのは馬鹿の思い上がりであって、
例えばGCにしても、「GCが無いとリークしまくる馬鹿の為の補助輪」ではなく、
「メモリ管理の煩わしさからプログラマを解放する」為の物であり、当然暗に「その先」を目指している。
だからそもそもCすらまともに使えない奴がRustを使うのが間違いで、
(実際どうかはさておき、目指しているところは)Rustはより生産性が高いというわけだから、
基本ラインとしては,、「Cだとメンドクセエ」「Cだと俺の理想のコードにならねえ」と思う奴が使う言語だろ。
つまり、本来は、問題を起こさないようになってから使う言語だよ、Rustは。 そのキータには、日本人は同じレベルでも給料が安いと書いてあるようだが enumがヴァリアントの最大幅とるってどういう原理?
structはCより最適化されてるよね 馬鹿を自覚できてる人なら
必死の長文を連投したりはしないんだろうな 最近このスレを見始めて、過去ログから見てたんだけど、Cargoで不満言ってる人いるけど、理由って何?
単純に気になるんだけど、クソしか言ってないから分からん ファ!?マジでお亡くなりになってるやんけ
一体何があった? ざっと見たところ、クソコメがひどいからactixのメンテやめるわって事かな
ベンチマーク詐欺師、バグだらけ、俺のパッチを受け入れろ
と言われて炎上したのが原因か? なんで関係ない第三者が辞める宣言しとるんやと思ったら「辞めろ」のtypoか
ま、いうてすぐ別のフォークが誕生するやろ ハナホジー cargoは何でもやろうとし過ぎなのが一番のクソポイントだと思ってるけど、個人的には
・他のビルドツールと一緒に使うのが面倒
・パッケージマネージャとビルドツールが同じツールであることが非合理的
・昔は「crateはrustのコンパイル単位です」なんて戯言を抜かしていた
・rustcを改善するモチベーションが下がる
全部個人の感想だし、マンパワーが足りないならひと括りにするメリットはあったと思うけど、イケてないと常々思ってる 以前はcargoからリンカを制御方法とか全く判らなかったけど最近出来るようになったのかな Clangだから成功したと言えるのか?
Rustなどのモダンなシステムプログラミング言語があの時代にあればどうなったかは誰にも分からんだろ
リーナスがRustキチであっても他のプログラマとしての素質が変わらなければ成功したと俺は思うが
なんにせよ巨人の肩に乗ってマウントした気になっても万人がそれで納得するとは限らないし逆効果もあるぞ なんか以前書き込んだはずのレスができてなくてロードしたら送信されたっぽい
>>893辺りへのレスだが恥ずかしいからROMるわ、すまんな >>907
cargoの欠点答えてくれてありがとう
正しいcargoの立ち位置としてパッケージマネジャーの仕事だけして、今cargoがしてるビルドツールのラッパー要素を別にして、その別のでcargoとructcを単純に抽象化したら結構解決するってことかな? >>909
なにからなにまでずれすぎててどっからつっこだらいいのやら。。
clangとlinuxは全く関係ないし、
リーナスがrust推しだったらとかプログラムの好みからしてそれだったらlinux作っとらんしとか
どこからどこまでも間違ってるとしか言いようがない。
仮定としてできることとしたらc++テンプレートの信頼性が当時高かったらとかその程度だろう。
それでもc++を使うことはなかっただろうと思うが。 LinusにRustを教えたのがアワシロイクヤ氏だったのも良かったんじゃないか。
人柄だな。 >>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++を丸ごと切り捨てているLinuxは相当思い切った判断だが、それでも何とかなっているし、
結果的には、全く保護機構のないCだとこれが正解だ、ということでしかない。
対してRustみたいに安全機構が付いている言語だと、そのレベルを下げられ、結果的にコミッタも増え、早く進化していけるはずで、
だからこそ進化速度が重要なブラウザをターゲットに選んだのは正しいのだが、
結果的に死につつあるのだから、確実に何かが間違っていたはずであり、
それは既に言われているが「学習曲線」、つまりそもそもチャキチャキ書けないことだろう。
1,2の人達にとっては厳しい検査なんて足枷でしかない。3を救済する為に1,2に足枷をはめていて、
結果的に総合的な生産性が落ち、プロジェクトが死につつある、というだけの話だ。
だから、個人的には、正解は「C+外部検査(リンター)」だと思っている。
今で言うとTypeScriptみたいな、チェック機構外付けの言語とかだ。
静的検査が出来る=静的検査をリンターとして外部に切り出せる、でしかないから、
静的検査メインで言語を拡張するのはナンセンスだ。
(Rustはそうではないが) アワシロさんはそうは言ってなかったな。
むしろRustは普遍的にどこでも使えると説いてた。 Rustは銀の弾丸足りえると世界の重鎮が口をそろえるし、俺はお前よりアワシロイクヤ氏を信じるね。 レス数が900を超えています。1000を超えると表示できなくなるよ。