1 名前:デフォルトの名無しさん [2022/04/17(日) 17:52:35.38 ID:KG26dcth.net] スレタイ(順番はRedMonk準拠)以外の言語もok 前スレ 次世代言語24 Go Nim Rust Swift Kotlin TypeScript https://mevius.5ch.net/test/read.cgi/tech/1647887021/
438 名前:デフォルトの名無しさん mailto:sage [2022/05/02(月) 19:44:24.10 ID:xCWuNsuo.net] >>430 GCなし言語でどうしてもスタックとヒープを意識しないとプログラミングできないことってある??
439 名前:デフォルトの名無しさん mailto:sage [2022/05/02(月) 20:03:38.83 ID:nqnbrNKO.net] >>431 ありなしで言ったらあるでしょ 性能意識するコードとか
440 名前:デフォルトの名無しさん mailto:sage [2022/05/02(月) 20:09:21.38 ID:9bp9MTNx.net] >>432 それは性能をよっぽど気にする特殊な場合だけでしかもその中の一部のコードだけやろ それ以外は関係ないやん
441 名前:デフォルトの名無しさん mailto:sage [2022/05/02(月) 20:41:15.68 ID:hiZvMXbQ.net] 言うほど低レイヤーコード書いてるやつはここにはおらん。 だから話がおかしな方向に行く。
442 名前:デフォルトの名無しさん mailto:sage [2022/05/02(月) 20:50:55.80 ID:cNSfGfye.net] >>434 GCあり言語のコードをGCなし言語にする話だから 低レイヤーコードなんて一切関係ない
443 名前:デフォルトの名無しさん mailto:sage [2022/05/02(月) 22:55:54 ID:54UIx2Ed.net] スタックは普通に意識するでしょう、末尾最適化されてないナンチャッテ意識高い系の再帰呼び出しとか直すけど・・・ GCアリ言語でも無しでも、スタックサイズは普通に意識する。 ヒープは言うほどRustは組み込みに使わないし、トヨタが使うというてもそれはメモリコンパクションのあるようなOSが載ってる場合だから 本当の組み込みじゃないし、でもアロケーターが64byte-4kでもVec::with_capacity(size);とか普通にIO系の処理では意識するでしょ
444 名前:デフォルトの名無しさん mailto:sage [2022/05/02(月) 23:14:26.49 ID:zFIpg6hX.net] >>436 Rustはヒープ無しでも動作するからヒープを意識しなくていいのはその通りだが ヒープが有る場合でもVec::with_capacity(size);等は動作最適化を手動でする時のみ必要であって、 プログラマーは何もしなくても全自動でcapacity拡張してくれるから意識しなくてもよい
445 名前:デフォルトの名無しさん mailto:sage [2022/05/02(月) 23:25:13.41 ID:nqnbrNKO.net] >>433 そもそもの質問が「ヒープ意識しないとプログラムできないことってある?」だから、反論になってないよ 頻度は問題にしてなくて有無の話だから
446 名前:デフォルトの名無しさん mailto:sage [2022/05/02(月) 23:32:26.49 ID:uvbh46KP.net] >>438 それは君の方がおかしい 今回のこの文脈ではそこは意識する必要がない >GCあり言語の普通のプログラムをGCなし言語へ置き換える話をしています ベクタの使用領域の大きさはどちらの言語でも自動的に拡張してくれるのに任せればよいから意識しなくてよい
447 名前:デフォルトの名無しさん mailto:sage [2022/05/02(月) 23:45:32.15 ID:2hhO4/Db.net] GCありの言語で循環参照するようなデータの持ち方をしまくってるようなコードだったりすると、 そのまま移植できないだろうし面倒かな? 場合によってはRustでいうArenaみたいなのまで持ち出して再設計しないといけなそう 移植なんてしたことないしあくまでも想像だけど
448 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 00:46:48 ID:Hze7UEQ+.net] >>437 ”Rustはヒープ無しでも動作する”、不正確でダウトといっても良い。”Box<T>を使わない場合、Rustは最小のメモリで動作する” 一般的に最小のメモリとはプログラムをメインメモリにロードした領域であり、それ以外にも、ヒープ解析すればRustの場合は、 Config structなどが多数メモリにロードされていることが分かります。後半の文は意味不明。
449 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 00:49:19 ID:owaZy9f2.net] GCあり言語って一絡げにできるほど似通ってるんだっけ
450 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 01:10:00 ID:Fo6zlgca.net] >>441 知識が浅すぎる Rustはヒープ無しでも動作する、で正しい そのためRustの標準コアライブラリcore::はヒープ無しで動作するように作られている std::のうちcore::以外の部分はヒープを用いており明確に両者は区別されている >> ”Box<T>を使わない場合、Rustは最小のメモリで動作する” 意味不明 Box<T>はヒープを使う型の一つに過ぎない それ以降の記述は全く意味不明
451 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 02:44:39.08 ID:x2jyG4Fk.net] まじきち隔離所、顔真っ赤になってww
452 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 02:45:30.07 ID:fvC5V6zC.net] まーたRust信者がスレハイジャックしてる
453 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 02:51:30.24 ID:K+UwgLRo.net] ベアメタル等OSなしでも動作しないといけないため Rustはヒープを前提とせずに動くよう設計されている
454 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 04:29:19.13 ID:5MBm6VS9.net] >>444 本当はスレ民のことが気になって仕方ないだろ? 隠しても無駄www
455 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 06:00:49.14 ID:iYuWu8Ht.net] なぜせっかくRustで作られたブラウザを除外するかね? 「NHKプラス」、「Firefox」での視聴が不可能に 5月23日から推奨ブラウザを「Microsoft Edge」「Google Chrome」「Safari」に限定 [孤高の旅人★] https://asahi.5ch.net/test/read.cgi/newsplus/1651490664/
456 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 06:33:11.84 ID:fvC5V6zC.net] >>448 そのどれかのブラウザがインストールされてない端末って何がある? Linuxと組み込みくらい?
457 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 08:05:32.71 ID:JBdnv4nv.net] 「Firefoxはバグ
458 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 08:06:08.35 ID:JBdnv4nv.net] 訂正:firefoxはバグが多いの?
459 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 10:17:41.36 ID:vk1zxqeV.net] Chromeより軽くてFirefoxオススメ
460 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 11:37:27 ID:+GUXg/j9.net] >>448 もし本当に視聴不可となったら技術力が無さすぎる 昔ならともかく今の時代にブラウザ依存なコードを書くのはダメなプログラマーの典型 視聴不可ではなく動作確認するブラウザの数を絞るなら理解できる
461 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 11:57:44.21 ID:TRGOwhZ/.net] > 「Firefox」など、上記3ブラウザ以外での動作はもともと確認しておらず、推奨ブラウザには加えていなかったという。 > 「5月23日以降に予定している設備更新に伴い、Firefoxでは動画が完全に再生できなくなる どういう設備更新なんだろうな・・・ WebKit系じゃないと使えない仕組みがあるのか
462 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 12:01:19.67 ID:WbhGI2Ja.net] 今どきはブラウザ依存な書き方する方が面倒だろう。普通にテストしてないだけでは。
463 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 12:02:22.58 ID:WbhGI2Ja.net] >>454 あ、本当に動かなくなるのか。
464 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 12:10:09.97 ID:DDJgB2x8.net] chromiumにしか実装されていない独自拡張機能に依存したAPIに手を出したとか?? でもSafariで動くなら違うか Firefoxでだけ動かないコードなんて可能なのか??
465 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 12:29:47.29 ID:wY2/8p8r.net] Chromiumは現代のIE6ですから
466 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 12:49:05.47 ID:owaZy9f2.net] そういえばchromeにrust使う話ってどうなったんだ?
467 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 19:12:46.20 ID:iYuWu8Ht.net] >>459 ああ、ごめん。さぼってたわw
468 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 19:19:05.53 ID:fvC5V6zC.net] たしかFirefoxもまだ全部はRustに治せてないんだろ
469 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 19:33:27.34 ID:5FiUhjhg.net] >>461 君は何らかの大きなシステム開発に関わったことがないのかね? どんな言語と言語の場合でも一気にやることは不可能かつムダ 新規部分や改修部分に絞って手を付けていく
470 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 20:16:20.57 ID:fvC5V6zC.net] >>462 なるほど だからよそと違ってバグまみれとか言われるんやなw
471 名前:デフォルトの名無しさん mailto:sage [2022/05/03(火) 20:22:09.94 ID:jGM9XRro.net] Chromeの方がセキュリティバグ多いよな 頻繁にバージョンアップしろと言ってくる
472 名前:デフォルトの名無しさん mailto:sage [2022/05/04(水) 19:26:52.80 ID:mmwxiGlB.net] >>464 JVN iPedia - 脆弱性対策情報データベース。https://jvndb.jvn.jp/ 期間指定なし ・safari 884件 ・edge 1054件 ・firefox 1989件 ・chrome 3464件 期間指定2018/01から ・safari 48件 ・edge 391件 ・firefox 492件 ・chrome 937件 とはいえ、Chromeのほうがローリングリリース・ローリングアップデートの期間が短い(現在は4週間)2021/3頃から6週間から変更された。 以前はFirefoxはローリングリリースを採用していないかった。またChormeの使用者がFirefoxより10倍なので脆弱性も発見されやすい。 何かと問題なSafariの脆弱性がこれだけのはずが無く、脆弱性報告数=危険なブラウザとははっきり言えない
473 名前:デフォルトの名無しさん mailto:sage [2022/05/04(水) 19:52:07.53 ID:htgGZwEX.net] 途中まで数字で語ってるのに最後だけ願望になっててワロタ
474 名前:デフォルトの名無しさん mailto:sage [2022/05/04(水) 21:47:24.52 ID:8rho1RVn.net] go-tour-ko.appspot .com
475 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 01:24:23.06 ID:e3BB3pKX.net] >>466 Appleに報告した脆弱性、数カ月放置の後に「現在、調査中です」の返答 https://appleinsider.com/articles/21/09/27/apple-still-investigating-unpatched-security-flaws-in-ios-15
476 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 09:45:52.65 ID:M81p8ixH.net] 木を見て森を見ずという言葉を考えた昔の人はいいセンスしてる
477 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 13:55:59.94 ID:R5uUYm15.net] Appleって莫大な利益を何に消費しているのだろうね
478 名前:デフォルトの名無しさん [2022/05/05(木) 17:00:01.71 ID:SGcHNlDo.net] >>448 そもそもNHKは見ないのでどうでも良い。
479 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 19:17:07.87 ID:C9QWuoSO.net] >>470 そんなこと気にして何になるの?
480 名前:デフォルトの名無しさん [2022/05/05(木) 19:26:31.90 ID:kRCOTufr.net] >>472 ウィグル弾圧に使われてる可能性が高い。
481 名前:デフォルトの名無しさん [2022/05/05(木) 19:30:55.61 ID:kRCOTufr.net] Rust厨がウザいからだろ。
482 名前:デフォルトの名無しさん [2022/05/05(木) 19:32:25.99 ID:kRCOTufr.net] いまどきウェブ見てて落ちるブラウザなんてファイアフォックスくらいだし、そこらへんは忠実にネスケ以来の伝統を受け継いでて驚く。
483 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 19:35:07.40 ID:Z9g54GsT.net] トリビア:Firefoxユーザーはレベルが高いの致命的なバグがあっても自分で治して使って
484 名前:「る [] [ここ壊れてます]
485 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 20:13:12.39 ID:3l2hzI76.net] >>475 ここ数年間の常用者だがFirefoxが落ちたことがない もしデマカセを言っているのでないのならばどういう状況で落ちたのか語ってほしい
486 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 20:34:46.36 ID:CLlK/Ylr.net] かまちょかまちょ
487 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 21:13:15.17 ID:/HQ4632l.net] >>475 Chromeは週一ぐらいで落ちる IME変換中に間違えてファンクションキーを押すと落ちる
488 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 21:25:28.06 ID:i3pjo8Ig.net] 落ちるOSってありそう
489 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 21:27:55.65 ID:gPHNd8vO.net] >>477 数か月前に頻繁にメモリ不足で落ちてた。タブがクラッシュする
490 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 21:55:22.29 ID:V626dp+O.net] >>481 それメモリが少なすぎたとか メモリを超える巨大なデータを読み込んだとか 無数にタブを開いたとかそういうオチだろ
491 名前:デフォルトの名無しさん [2022/05/05(木) 22:30:44.53 ID:VIM8YOLC.net] 逆に100兆個のタブを開いて落ちないブラウザってどれ?
492 名前:デフォルトの名無しさん mailto:sage [2022/05/05(木) 22:35:06.99 ID:NMIyHyw2.net] メモリ不足で落ちないブラウザもないと思います
493 名前:デフォルトの名無しさん mailto:sage [2022/05/06(金) 04:53:59.90 ID:qTXbaZrR.net] メモリ不足を、クラッシュせずに通知くらい【余裕】にできないと。 当たり前のこともできない。所詮現世人類の我々の技術力はそこまでということだ――
494 名前:デフォルトの名無しさん [2022/05/06(金) 06:06:43.53 ID:dyg36AcX.net] >>477 Windowsでタブレットモードにしてると頻繁に落ちるな。
495 名前:デフォルトの名無しさん [2022/05/06(金) 06:07:47.49 ID:dyg36AcX.net] 落ちるというか、無限ループしてるっぽいんだよな。 入力を受け付けず、タスクマネージャで見るとCPUをぶん回してる。
496 名前:デフォルトの名無しさん mailto:sage [2022/05/06(金) 06:15:30.69 ID:pLpPuHCg.net] Linuxでは落ちないよ
497 名前:デフォルトの名無しさん [2022/05/06(金) 06:56:47.40 ID:dyg36AcX.net] 頻繁に落ちるのに、落ちないとか信者が言い張るのも、ネスケ以来の伝統だよな。
498 名前:デフォルトの名無しさん mailto:sage [2022/05/06(金) 07:00:58.40 ID:eCfsRziE.net] 英語設定のLinuxだけど落ちないよ? バグってるのはサイトかホストなのでは?
499 名前:デフォルトの名無しさん mailto:sage [2022/05/06(金) 09:07:58 ID:PZ471HHG.net] Windowsでここ何年か使ってるけれど、 特に気になる動作は無いけれどな。 Edgeの印刷で返ってこない方が辛い。
500 名前:デフォルトの名無しさん mailto:sage [2022/05/06(金) 09:58:30.45 ID:+sslkA2r.net] FireFoxで微妙に表示が崩れるとChromeだとちゃんと表示されるのか気になる 表示させてみて同じだとホッとして違ってたらがっかり
501 名前:デフォルトの名無しさん mailto:sage [2022/05/06(金) 10:03:00.35 ID:szMyvzcx.net] Safariが恨めしそうにこちらを見ている
502 名前:デフォルトの名無しさん mailto:sage [2022/05/09(月) 20:38:44.58 ID:X0x/BBIp.net] Rustが、Goの最大の競合相手であることが明らかになったってよw プログラミング言語「Go」、開発者の満足度やニーズは? https://japan.zdnet.com/article/35187065/ また調査では、Goの主なライバル言語が「Rust」「Python」「Java」「TypeScript」であることも明らかになった。RustとGoは、どちらもシステムプログラミング言語であり、開発者には広く評価されているが、「JavaScript」や「Python」ほどの人気はないようだ。 しかしこの調査では、Amazon Web Services(AWS)、Google、Microsoftの支持を受けているRustが、Goの最大の競合相手であることが明らかになった。Goの代わりに選ぶとしたらどの言語を選ぶかという設問では、回答者の25%がRustを選ぶと述べており、17%がPython、12%がJava、8%がTypeScript、8%がC#と回答していた。 「最もよく選ばれているのは、Rust、Python、Javaだ。RustとGoの機能セットは補完的な関係にあるため、あるプロジェクトに必要とされる機能がGoにない場合、Rustは優れた選択肢になるかもしれない」とMerrick氏は述べている。
503 名前:デフォルトの名無しさん mailto:sage [2022/05/09(月) 20:53:04 ID:S0Cki9Rv.net] >>494 競合なのは事実だろうけどGoやってるような人はRustも必要になれば普通に使えるでしょ エンジニア目線では特に対立関係にないから煽っても無意味だぞ
504 名前:デフォルトの名無しさん mailto:sage [2022/05/09(月) 21:00:58 ID:DoAIqFb7.net] 競合ではなく両方利用 Goで不十分なところはRustで書いている どこでもそうだよ
505 名前:デフォルトの名無しさん mailto:sage [2022/05/09(月) 22:46:52.00 ID:TDei0tm5.net] それができるんならCでいいじゃん
506 名前:デフォルトの名無しさん mailto:sage [2022/05/10(火) 03:38:38.78 ID:I4A9nNIt.net] 理想の家族 父 40歳 海外へ単身赴任(死ぬまで) 母 35歳 息子に甘い 姉 17歳 弟に甘い 俺 44歳 妹 15歳 多感な時期 俺に反発しながらも。。? 猫 ウンチしない 抜け毛ない 俺の声かけに無視しない
507 名前:デフォルトの名無しさん mailto:sage [2022/05/10(火) 08:39:54.21 ID:Hhyd/l4r.net] >>495 そうだぞ。 競合なのは事実だろうけどGoやってるような人はRustも必要になれば普通に使える、という体で話さないと嫌われるぞ。 それに、裁量権のない作業者の間では対立関係にないから煽っても無意味だぞ。
508 名前:デフォルトの名無しさん [2022/05/10(火) 20:07:58.34 ID:8UHmp6CE.net] 低レイヤーはRust 高レイヤーはGo この使い分けじゃいかんの?同じシステムプログラミング言語でも毛色が違うだろ GoogleとMicrosoftがRustに注目しているのもOS開発の目的であってGoでOS開発作ろうとはならんでしょ
509 名前:デフォルトの名無しさん mailto:sage [2022/05/10(火) 21:01:49.31 ID:mOdSHL41.net] 主張はわかるが、これはもしや片思いみたいなものではと見ている。 仮にGoユーザーの多くが低レイヤーにRustを使いたい結論だったとしても、 Rustユーザーの多くが高レイヤーにGoに使いたいという結論にはならない。 よってカップル不成立。
510 名前:デフォルトの名無しさん mailto:sage [2022/05/10(火) 21:17:09.90 ID:5Ln2ZQb8.net] 例えばウェブサーバーサイドもRustで書いたほうが早い速いしな
511 名前:デフォルトの名無しさん mailto:sage [2022/05/10(火) 21:25:40.62 ID:AAMxLs47.net] 低レイヤーのことは低レイヤーガールに聞けよ
512 名前:デフォルトの名無しさん mailto:sage [2022/05/10(火) 22:34:17 ID:M/BIyD/S.net] Goは良くも悪くもCっぽくって人間が気をつけて書かないといけない部分が多いんだよな 一度Rustに慣れてしまうと、Goで隅々まで気を使うのが面倒くさくなってしまう もちろん既存のGoプロジェクトはGoのまま書くけど、新規ならなるべくRustにしたくはなるな
513 名前:デフォルトの名無しさん mailto:sage [2022/05/10(火) 22:37:05 ID:1A7PmF6X.net] LinusはgitをC+シェルスクリプトで書いてた 書こうと思えば書ける でも普通に記述に時間がかかるので今は他の言語も役割分担してる
514 名前:デフォルトの名無しさん mailto:sage [2022/05/10(火) 23:04:46 ID:7R870FiC.net] Rustはデータ競合らへんは起きないけど、Box、Rc、Arenaを気をつけて使い分けないといけないのとか面倒だと思うけどな
515 名前:デフォルトの名無しさん mailto:sage [2022/05/10(火) 23:36:04 ID:M/BIyD/S.net] Goの一番の面倒さはnilとエラーハンドリングかな Option/Result型だけでも特別に用意されてれば、もっとGo使ってたかもしれん
516 名前:デフォルトの名無しさん mailto:sage [2022/05/10(火) 23:49:42.04 ID:Lq7F/6H2.net] >>506 Rcは出てこないプログラムも多い Arenaはほぼ完全に出てこない つまりそれらレアケースを元に語るのは現実的ではない
517 名前:デフォルトの名無しさん mailto:sage [2022/05/10(火) 23:52:42.15 ID:1A7PmF6X.net] Rustで引っかからずコードを書き上げるのはかなりの猛者だと思うよ 本当の意味での言語仕様部分は何とかなるかもしれないけどそこから先がつらい 入門4冊目の「コンセプトから理解するRus」tを読んで途中で投げ捨てた 本自体は良書なんだけどtrait境界がもう人間の理解を超えてる Cだと時間をかければ書き終えれるけど
518 名前:oグが入ってる可能性がある [] [ここ壊れてます]
519 名前:デフォルトの名無しさん mailto:sage [2022/05/10(火) 23:56:51.45 ID:1A7PmF6X.net] Rustはある程度から人間の理解を超えて来るので一定程度以上勉強しても無駄かなと
520 名前:デフォルトの名無しさん mailto:sage [2022/05/10(火) 23:57:58.56 ID:M/BIyD/S.net] >>509 その辺はScalaで学んだからRustでは苦労しなかったけど 最初訳わからんってなるのは分かる
521 名前:デフォルトの名無しさん mailto:sage [2022/05/10(火) 23:59:30.65 ID:1A7PmF6X.net] 書名でググると上位に出てくるこの記事がまさにそれ https://qiita.com/seikoudoku2000/items/28c5c6b09dcaea1744dc
522 名前:デフォルトの名無しさん mailto:sage [2022/05/11(水) 00:06:17.66 ID:0PGn8I2M.net] プログラミングはは知的生産だと思ってたけどこれはもう違う別の何か 他人の書いたコードは意味が分からないというけどそれ以前に自分で書いてもわけがわからない 理解の外にあっても動くからあっている コンパイルエラーが出ないからあっている それは本当に正しいことなのか バグが入ってないのかはもちろん期待した動作なのかすらわからない 人間が揺さぶられてきている
523 名前:デフォルトの名無しさん mailto:sage [2022/05/11(水) 00:07:09.92 ID:xUytDrfJ.net] 多くの人に知ってもらいたい これはもうプログラムではないよと
524 名前:デフォルトの名無しさん mailto:sage [2022/05/11(水) 00:09:05.79 ID:SabgIUuG.net] 実装に必要なtraitを境界として追加しただけで煩雑だけど難しくはないよね
525 名前:デフォルトの名無しさん mailto:sage [2022/05/11(水) 00:13:46.50 ID:q+AJMQiL.net] >>509 そのtrait境界は意外に理解が簡単だった ジェネリックにプログラムを書く時にそのジェネリックな型には何が来てもいいわけではなくて 書くプログラムの中で使っている機能(というかインタフェースというかメソッド)を持つ保証する(というか限定するというか制約条件を並べる)こと 例えば本スレからコピペだけど以下のフィボナッチ数列イテレータ 型へのtrait境界がwhereのところにあるClone(複製できること)とTryFrom<usize>(数値から変換できること)とnum::CheckedAdd(オーバーフロー検知付き足し算ができること)の3つを満たしてればどんな型でも適用可能 fn fibonacci<T>() -> impl Iterator<Item=T> where T: Clone + TryFrom<usize> + num::CheckedAdd, { let [zero, one] = [0, 1].map(|n| T::try_from(n).ok().unwrap()); itertools::unfold((zero, one), |(m, n)| m.checked_add(&*n).map(|f| { *m = n.clone(); *n = f.clone(); f }) ) } pub fn main() { for f in fibonacci::<i8>() { print!("{f} "); } println!(); }
526 名前:デフォルトの名無しさん mailto:sage [2022/05/11(水) 00:18:22.19 ID:xUytDrfJ.net] 実際にトレイト境界の条件の実装部分を読んでみた シンプルなマクロで書かれてる部分もあれば複雑な部分もある そこで書いてある実装が本当に確実の条件を満たしうるのかは分からないし ドキュメントを読んでも厳格な意味が書いてあるわけでもない どこかで漏れがあってもわからない
527 名前:デフォルトの名無しさん mailto:sage [2022/05/11(水) 00:37:16.75 ID:xUytDrfJ.net] 例えば条件の一つがよくよく考えてみればさらに二つに分離して考えないといけないものだと 後で判明するともう既存のコードがみんな死んでしまう 使用してる所を全部さかのぼって修正しないといけない それかRust自体の仕様変更で死んでしまったりいろいろ死にそうな要因がたくさんある マクロでやりすぎてる
528 名前:デフォルトの名無しさん mailto:sage [2022/05/11(水) 00:39:26.57 ID:OHUg1Auo.net] >>518 そんなこと起きたことがない 聞いたこともない机上の空論
529 名前:デフォルトの名無しさん mailto:sage [2022/05/11(水) 11:02:33.31 ID:ut6S4c2T.net] Rustの標準ライブラリの設計がそもそも間違ってて、その修正のために破壊的な変更がいきなりきたら大変だ、って話? そんな馬鹿な、と笑っちゃうね
530 名前:デフォルトの名無しさん mailto:sage [2022/05/11(水) 12:27:47.37 ID:0Stn7tVM.net] サプライチェーン問題は批判理由が見つからない人が持ち出しがち。 マクロがない言語だと、同じ機能をコンパイラやらランタイムが持ったりするわけだが、不思議に誰もそれらの機構を疑わなかったりする。 中身が可視化されたのに逆に疑わしく感じた場合は、まずは自分の知識が足りなかったことに気づきましょう。
531 名前:デフォルトの名無しさん mailto:sage [2022/05/12(木) 17:29:32 ID:LSv3zttQ.net] 実装の問題は重要だろ。 そもそも実装と独立に仕様だけ語れるような作りにrustはなってない。
532 名前:デフォルトの名無しさん mailto:sage [2022/05/12(木) 18:12:00.76 ID:cxVwbP/0.net] 何を問題視してるのかもうちょっとわかりやすく書いてくれないと議論にならん
533 名前:デフォルトの名無しさん mailto:sage [2022/05/12(木) 18:19:51.09 ID:q5adbU17.net] 判らないなら無理して首を突っ込むことはないかと…
534 名前:デフォルトの名無しさん mailto:sage [2022/05/12(木) 18:20:37.20 ID:q5adbU17.net] コーダー風情にはどこら辺に問題があるかすらわからないんだ ほっとけばいい
535 名前:デフォルトの名無しさん mailto:sage [2022/05/12(木) 18:57:51.28 ID:+0JH2q+I.net] >>522 依存型理論原理主義過激派かな?ちょっと面白い
536 名前:デフォルトの名無しさん [2022/05/12(木) 19:03:55.20 ID:KS5+XyCs.net] 依存型ってrustは入れてないやろ
537 名前:デフォルトの名無しさん mailto:sage [2022/05/12(木) 19:34:17.87 ID:B7YnOOaf.net] >>527 Π型はないけど、const genericsなら…
538 名前:デフォルトの名無しさん mailto:sage [2022/05/13(金) 10:40:27 ID:fhDjEdn1.net] >>521 ランタイムが持ってる言語ならランタイムをアップデートしたら終わり マクロの言語は該当箇所を探し出して修正して丸ごと再コンパイルが必要 工数考えたらどちらが有利なのかすぐ分かる 知識が足りないのはどちらなんだろうか?