「C++の色々配慮してめんどくさい感じは好きだけど、実務になったらメモリ安全性とか考えて今後Rustに変わっていくんかな」
「うだうだ言ってないで仕事で必要なのをやればいいんだよ、趣味なら好きなのやればいい」
っていう雑談スレ。
・C/C++ <=> Rust いまさら聞けない移行質問なども適当にどぞ
・レスバはじめんのは勝手だけど、面白いこと・へぇなこと書いたヤツが優勝
・マな話は、マのスレもご活用ください↓
前スレ: 結局C++とRustってどっちが良いの? 7traits
http://mevius.5ch.net/test/read.cgi/tech/1693451813/
関連スレ(マ板): Google&Microsoft「セキュリティバグの70%はC/C++のメモリ管理ミス。Rustにする」
https://medaka.5ch.net/test/read.cgi/prog/1619943288/
結局C++とRustってどっちが良いの? 8traits
■ このスレッドは過去ログ倉庫に格納されています
2023/10/28(土) 13:45:00.38ID:fh9BWjjr
501デフォルトの名無しさん
2023/11/19(日) 12:32:27.75ID:/G2k3fWt502デフォルトの名無しさん
2023/11/19(日) 12:35:10.88ID:Tj6ZCNuo pythonのpysimpleguiでサクッと作って時間の掛かる処理だけpyo3でコールするか
503デフォルトの名無しさん
2023/11/19(日) 13:27:48.93ID:h6lf9AUt504デフォルトの名無しさん
2023/11/19(日) 13:57:40.85ID:Oy1huhHi >>497
C#でGUIとか今時書かんて
C#でGUIとか今時書かんて
505デフォルトの名無しさん
2023/11/19(日) 14:01:24.71ID:nljhlBVQ >>504
今時はguiには何使うもの?
今時はguiには何使うもの?
506デフォルトの名無しさん
2023/11/19(日) 14:07:51.59ID:Oy1huhHi >>505
electronかtauriをガワにして中身はHTML+TypeScript
今のGUIアプリは大抵これ
ちなみに新しいteamsではガワはネイティブ実装で
中身はWebView2というコンポーネントを使っているらしい
作り方はHTML+TypeScriptなのは変わらない
WebView2はまだ簡単には使えないがおそらくこいつが主流になるはず
MS好きならちゃんとキャッチアップくらいしとこうぜ?
electronかtauriをガワにして中身はHTML+TypeScript
今のGUIアプリは大抵これ
ちなみに新しいteamsではガワはネイティブ実装で
中身はWebView2というコンポーネントを使っているらしい
作り方はHTML+TypeScriptなのは変わらない
WebView2はまだ簡単には使えないがおそらくこいつが主流になるはず
MS好きならちゃんとキャッチアップくらいしとこうぜ?
507デフォルトの名無しさん
2023/11/19(日) 14:10:24.62ID:Oy1huhHi 当たり前だが別にそれにしろとは言わん
シンプルな業務系の画面なら何でも良いし作りやすい方が良い
RustのGUIは今のところ有力なものはないのは事実
シンプルな業務系の画面なら何でも良いし作りやすい方が良い
RustのGUIは今のところ有力なものはないのは事実
508デフォルトの名無しさん
2023/11/19(日) 14:21:03.03ID:BvvFFAMC 「マウス」のイベントハンドラを継承するメリットが誰にでもわかる
という前提が怪しいんだよ
マウスだぞマウス
という前提が怪しいんだよ
マウスだぞマウス
509デフォルトの名無しさん
2023/11/19(日) 14:38:54.75ID:iOyghJL5 え?! RustってGUIライブラリがないの??
510デフォルトの名無しさん
2023/11/19(日) 14:57:36.66ID:/G2k3fWt Tauriは糞
511デフォルトの名無しさん
2023/11/19(日) 14:57:55.82ID:y0Jh7vt2 >>509
RustのGUIも色々揃っている
GUIは用途によって多種多様な世界だからeguiのようなリフレッシュフレームベースのGUIクレートもある
そういう用途でなければRust関係なく一般的な話として今は各プログラミング言語でGUI作るのは極少数派になっている
つまりHTML/CSS/JavaScriptベースで作られるようになっていて使用言語を強いて言えばJS/TSの時代
RustのGUIも色々揃っている
GUIは用途によって多種多様な世界だからeguiのようなリフレッシュフレームベースのGUIクレートもある
そういう用途でなければRust関係なく一般的な話として今は各プログラミング言語でGUI作るのは極少数派になっている
つまりHTML/CSS/JavaScriptベースで作られるようになっていて使用言語を強いて言えばJS/TSの時代
512デフォルトの名無しさん
2023/11/19(日) 15:15:35.10ID:xroD2KWj >>500
ならせめて「当てはまるわけではない」ケースを指摘しないと反論にならん。
「不適切な使用をしてる例を自分自身で示しているが、それに気づいていない」というのに指摘しないのは反論者として誠実でない。後出しじゃんけんを狙った詐欺師にしか見えん。
ならせめて「当てはまるわけではない」ケースを指摘しないと反論にならん。
「不適切な使用をしてる例を自分自身で示しているが、それに気づいていない」というのに指摘しないのは反論者として誠実でない。後出しじゃんけんを狙った詐欺師にしか見えん。
513デフォルトの名無しさん
2023/11/19(日) 15:17:38.47ID:BvvFFAMC フィクションでもマウス的な小道具を無くそうとしてる
だから剣と魔法しかない
だから剣と魔法しかない
514デフォルトの名無しさん
2023/11/19(日) 15:21:36.07ID:5CKxkiE7 >HTML/CSS/JavaScriptベースで作られるようになっていて使用言語を強いて言えばJS/TSの時代
そしてそれらは全て実装継承モリモリの実装に支えられている
そしてそれらは全て実装継承モリモリの実装に支えられている
515デフォルトの名無しさん
2023/11/19(日) 15:24:12.29ID:xroD2KWj516デフォルトの名無しさん
2023/11/19(日) 16:13:36.90ID:NqOCouPw517デフォルトの名無しさん
2023/11/19(日) 16:43:45.43ID:HSZIalWb あったはずだけど
518デフォルトの名無しさん
2023/11/19(日) 16:45:02.12ID:HSZIalWb あ、めっちゃ遅れレスだけど>>509に対して書いたつもりだった
519デフォルトの名無しさん
2023/11/19(日) 17:14:49.95ID:H8V03qQo520デフォルトの名無しさん
2023/11/19(日) 17:17:51.68ID:H8V03qQo まあ今後のGUIはWebView2になるのは間違いなさそう
特にwindowsはこれが決定版になるはず
特にwindowsはこれが決定版になるはず
521デフォルトの名無しさん
2023/11/19(日) 17:39:17.01ID:nljhlBVQ >>512
ただ親クラスを継承して親クラスのメソッドを使うだけでしょ?
そんなことはどこにでもあるが、そのすべてがインターフェイス的に全てのメンバの実装が必須なケースになるのか?
ならない
なるケースはインターフェイスなど使えばいいだけ
ただ親クラスを継承して親クラスのメソッドを使うだけでしょ?
そんなことはどこにでもあるが、そのすべてがインターフェイス的に全てのメンバの実装が必須なケースになるのか?
ならない
なるケースはインターフェイスなど使えばいいだけ
522デフォルトの名無しさん
2023/11/19(日) 17:55:10.88ID:o+X6buyf メンバ変数に直接アクセスするメリットはgetやsetを実装する時間を浪費しないことだが
継承のメリットはこれに類似している
継承のメリットはこれに類似している
523デフォルトの名無しさん
2023/11/19(日) 18:40:03.88ID:RRmaBkyu >>516,519
意味のない指摘をありがとう
ReactはHTML/CSS/JavaScriptを支える技術じゃなく
HTML/CSS/JavaScriptを活用した技術
ちなみにReactの本体では今でも実装継承使ってる
つまらない嘘はいい加減止めようね
意味のない指摘をありがとう
ReactはHTML/CSS/JavaScriptを支える技術じゃなく
HTML/CSS/JavaScriptを活用した技術
ちなみにReactの本体では今でも実装継承使ってる
つまらない嘘はいい加減止めようね
524デフォルトの名無しさん
2023/11/19(日) 18:50:12.97ID:WxxDsdGH >>523
支える技術とか活用した技術とか意味不明すぎる
支える技術とか活用した技術とか意味不明すぎる
525デフォルトの名無しさん
2023/11/19(日) 19:34:44.92ID:nljhlBVQ >>524
何で知ったかしてバレないと思うん?
何で知ったかしてバレないと思うん?
526デフォルトの名無しさん
2023/11/19(日) 20:05:00.46ID:aXcE9XXk マイコンレベルに小さなコンパイラを搭載しなければいけないような案件だとRustは重たすぎて無理っぽいが
それ以外のデメリットは無い感じはする。今のところ
FPGAの論理合成のような長いコンパイルプロセスに未来を感じる(感想)
それ以外のデメリットは無い感じはする。今のところ
FPGAの論理合成のような長いコンパイルプロセスに未来を感じる(感想)
527デフォルトの名無しさん
2023/11/19(日) 20:46:51.67ID:H8V03qQo >>523
頭が悪すぎて嫌になるな
頭が悪すぎて嫌になるな
528デフォルトの名無しさん
2023/11/19(日) 20:52:10.42ID:H8V03qQo529デフォルトの名無しさん
2023/11/19(日) 21:13:25.27ID:o+X6buyf 英語圏で同じこと言われる不安を煽ってるから英語が苦手になるパターン
530デフォルトの名無しさん
2023/11/19(日) 22:14:28.15ID:fSaG2PoW 昔のReactはコンポーネントクラスというJavaScriptのクラスを用いた方法を用いていたけど
それでも継承は使わないでコンポジションを使うようにと公式に書かれていた
今のReactはクラスではなく関数コンポーネントを用いるようになった
それでも継承は使わないでコンポジションを使うようにと公式に書かれていた
今のReactはクラスではなく関数コンポーネントを用いるようになった
531デフォルトの名無しさん
2023/11/19(日) 22:31:23.82ID:2h4NT+3n 継承はクラスの再利用とクラスの切り替えが同じ継承に集約
されていたのが問題だった
されていたのが問題だった
532デフォルトの名無しさん
2023/11/19(日) 23:15:24.31ID:WkLuwjlK >>531
コードの再利用とサブタイピングが一緒になっていたらなぜ問題なの?
コードの再利用とサブタイピングが一緒になっていたらなぜ問題なの?
533デフォルトの名無しさん
2023/11/20(月) 00:02:51.71ID:miVVMWsb >>523
継承使ってるというのはどこのコード?
継承使ってるというのはどこのコード?
534デフォルトの名無しさん
2023/11/20(月) 03:25:10.93ID:m3TC6/PX クラスの切り替えとはキャストのことか
だがダックタイピング界隈には「キャストする」という振る舞いがない
templateなら引数を変えることが切り替えでありキャストは重要ではない
重要ではないものを重要と思ってたなら問題だ
だがダックタイピング界隈には「キャストする」という振る舞いがない
templateなら引数を変えることが切り替えでありキャストは重要ではない
重要ではないものを重要と思ってたなら問題だ
535デフォルトの名無しさん
2023/11/20(月) 03:52:37.02ID:Uh0cT6mQ だからさ、独自用語で煙に巻いてないでTaPL読んだうえで共通語彙で話しようぜって
536デフォルトの名無しさん
2023/11/20(月) 07:37:53.49ID:kv+dmWMk >>521
親クラスを継承できないクラスはポリモーフィズムできないねぇ。
後から「読み取り専用のIFが欲しい」「書き込み専用が欲しい」となったらどうすんの?
「なるケースはインターフェイスなど使えばいいだけ」なら、途中で継承からIFに切り替える?
「早すぎる最適化」だなぁ
親クラスを継承できないクラスはポリモーフィズムできないねぇ。
後から「読み取り専用のIFが欲しい」「書き込み専用が欲しい」となったらどうすんの?
「なるケースはインターフェイスなど使えばいいだけ」なら、途中で継承からIFに切り替える?
「早すぎる最適化」だなぁ
537デフォルトの名無しさん
2023/11/20(月) 08:24:47.95ID:dEVryb2p さすがにその例だと、「モード切替するメソッドを足す。所有権管理もさせる。旧クラスは廃止」とかだろ
538デフォルトの名無しさん
2023/11/20(月) 08:49:37.76ID:Gc8IZzjG539デフォルトの名無しさん
2023/11/20(月) 09:03:13.39ID:07sj62mg >>499
俺もそう思う
俺もそう思う
540デフォルトの名無しさん
2023/11/20(月) 10:54:06.11ID:NElbrJwW 何で君達は最小のサンプルコードも書かずに俺様用語で議論してるの?
プログラマじゃないのかな?
プログラマじゃないのかな?
541デフォルトの名無しさん
2023/11/20(月) 11:26:53.92ID:6jnK0Jj8 今朝のGoogleニュースで米の求人報酬だかでRustが2位とか見たわ
人事的にはRustで沼る人材が欲しいらしいぞ
良かったな
人事的にはRustで沼る人材が欲しいらしいぞ
良かったな
542デフォルトの名無しさん
2023/11/20(月) 12:00:36.92ID:ZwEoOGmm >>536
そこら辺は言語によって違うからせめて言語くらい前提として共有しないと議論にならない。
親クラスを継承できないクラス、意味不明。
そもそもサンプルコード見せれば確実なところを自然言語で議論しようとする発想が意味わからない
そこら辺は言語によって違うからせめて言語くらい前提として共有しないと議論にならない。
親クラスを継承できないクラス、意味不明。
そもそもサンプルコード見せれば確実なところを自然言語で議論しようとする発想が意味わからない
543デフォルトの名無しさん
2023/11/20(月) 12:49:28.44ID:aVFf8Qq7 >>542
さすがに出先スマホでコード打ち込みたくないわな。
コードで言うなら>492みたいなのが欲しいというだけだし。
>親クラスを継承できないクラス、意味不明。
例えばライブラリが返すインスタンスのクラス。普通はクラスを直接弄ることはできないし、final宣言されてたら派生も無理。クラスを直接弄くれるとしても、ライブラリをメンテナンスするとか面倒臭いからやりたくない。
普通はAdoptor作るけど、それなら>492みたいなIF側で自動的にやる機能が欲しい。
さすがに出先スマホでコード打ち込みたくないわな。
コードで言うなら>492みたいなのが欲しいというだけだし。
>親クラスを継承できないクラス、意味不明。
例えばライブラリが返すインスタンスのクラス。普通はクラスを直接弄ることはできないし、final宣言されてたら派生も無理。クラスを直接弄くれるとしても、ライブラリをメンテナンスするとか面倒臭いからやりたくない。
普通はAdoptor作るけど、それなら>492みたいなIF側で自動的にやる機能が欲しい。
544デフォルトの名無しさん
2023/11/20(月) 12:49:42.01ID:JpnTJcOA githubの2023年成長率でもRustが40%増でTOPだったな。
でもまだ人気言語TOP10には食い込んでなかったけど。
でもまだ人気言語TOP10には食い込んでなかったけど。
545デフォルトの名無しさん
2023/11/20(月) 12:53:05.42ID:PG0EBfXZ546デフォルトの名無しさん
2023/11/20(月) 13:32:31.99ID:NElbrJwW >>541
1位はpython?
1位はpython?
547デフォルトの名無しさん
2023/11/20(月) 13:42:54.45ID:IjnmMF1h そりゃ1位はPHPだよ
548デフォルトの名無しさん
2023/11/20(月) 13:54:03.53ID:SNQO1x/A549デフォルトの名無しさん
2023/11/20(月) 14:04:35.58ID:NElbrJwW >>547
PHPを書けるより市場価値がないの?
PHPを書けるより市場価値がないの?
550デフォルトの名無しさん
2023/11/20(月) 14:38:31.00ID:dEVryb2p Rustが出せるのは高い信頼性だが、日本で何か作っても、それ信頼できんの?ってなるから
だったりして
だったりして
551デフォルトの名無しさん
2023/11/20(月) 14:44:00.93ID:NElbrJwW >>550
求められている信頼性って「Rustが出せる信頼性」とは違うんだと思うよ
求められている信頼性って「Rustが出せる信頼性」とは違うんだと思うよ
552デフォルトの名無しさん
2023/11/20(月) 15:09:31.41ID:MS7hPbOQ 日本だけに限らないかも知れないけど
ソフトウェアの利用者ってそもそも
何の言語で造ってるかなんて気にしてないし知ろうともしない
ソフトウェアの利用者ってそもそも
何の言語で造ってるかなんて気にしてないし知ろうともしない
553デフォルトの名無しさん
2023/11/20(月) 15:36:03.59ID:JXHwx0JF Rustが使われる理由は高速省メモリで開発効率や保守性が良いため
554デフォルトの名無しさん
2023/11/20(月) 15:41:32.66ID:NElbrJwW >>553それはRustプログラマの視点
それまでの話は発注者側からの話
それまでの話は発注者側からの話
555デフォルトの名無しさん
2023/11/20(月) 15:49:44.16ID:JXHwx0JF 発注者側の視点でも
高速省メモリで安全性も高いのはRustとなる
高速省メモリで安全性も高いのはRustとなる
556デフォルトの名無しさん
2023/11/20(月) 15:55:24.47ID:NElbrJwW 鶏と卵の関係になるけどプログラマが確保できなく保守性が悪い
557デフォルトの名無しさん
2023/11/20(月) 16:02:14.85ID:N43MAaAU558デフォルトの名無しさん
2023/11/20(月) 16:18:06.96ID:JXHwx0JF559デフォルトの名無しさん
2023/11/20(月) 16:27:04.23ID:NElbrJwW560デフォルトの名無しさん
2023/11/20(月) 17:04:51.35ID:aPv5cKlG コントリビューター増加「率」はミスリードかも、レポ増加「数」は
github 2023年新規レポジトリ10KB以上
JavaScript 2.1M results
Java 767k results
Python 749k results
TypeScript 627k results
C# 338k results
C++ 244k results
C 174k results
PHP 152k results
Kotlin 147k results
Dart 109k results
Go 84.4k results
Ruby 64.3k results
Swift 59.3k results
Rust 39.4k results
Lua 22.1k results
HCL 16.4k results
github 2023年新規レポジトリ10KB以上
JavaScript 2.1M results
Java 767k results
Python 749k results
TypeScript 627k results
C# 338k results
C++ 244k results
C 174k results
PHP 152k results
Kotlin 147k results
Dart 109k results
Go 84.4k results
Ruby 64.3k results
Swift 59.3k results
Rust 39.4k results
Lua 22.1k results
HCL 16.4k results
561デフォルトの名無しさん
2023/11/20(月) 18:15:53.85ID:1QHH6HXV クローズ開発案件が含められないから意味が無い件
562デフォルトの名無しさん
2023/11/20(月) 18:32:56.66ID:Tq0YX8uR563デフォルトの名無しさん
2023/11/20(月) 20:50:45.51ID:NElbrJwW >>561
ある程度は相関してるでしょ
ある程度は相関してるでしょ
564デフォルトの名無しさん
2023/11/20(月) 21:15:52.04ID:ojqzhkRS >>562
お前がレスに使ってる端末は悪いものなんだな~。
お前がレスに使ってる端末は悪いものなんだな~。
565デフォルトの名無しさん
2023/11/20(月) 21:47:51.39ID:Tq0YX8uR566デフォルトの名無しさん
2023/11/20(月) 21:56:32.85ID:Ygoo/zhh567デフォルトの名無しさん
2023/11/20(月) 21:59:46.43ID:1QHH6HXV568デフォルトの名無しさん
2023/11/20(月) 22:02:12.48ID:SNQO1x/A569デフォルトの名無しさん
2023/11/20(月) 23:27:57.05ID:/Ubqd6b6 >>530
Reactはクラスコンポーネント時代も
開発元のFacebookが様々なケースで継承を使うとよいケースは存在していないことを確認しているとReact公式に書いていたもんな
もちろん今はクラスコンポーネントすら捨てて関数コンポーネント
Reactはクラスコンポーネント時代も
開発元のFacebookが様々なケースで継承を使うとよいケースは存在していないことを確認しているとReact公式に書いていたもんな
もちろん今はクラスコンポーネントすら捨てて関数コンポーネント
570デフォルトの名無しさん
2023/11/21(火) 08:57:03.65ID:CeBFd4j1 GitHubで最も使われている言語はJavaScript、最も利用者が増加したのはRust。AIプロジェクト数はこの1年で3倍増GitHubが年次調査「Octoverse 2023」発表
https://www.publickey1.jp/blog/23/githubjavascriptrustai13githuboctoverse_2023.html
AI関連のプロジェクトを国別に見ると米国が突出していますが、日本はインドに次いで3位となっており、日本のオープンソース開発者は世界的に見て積極的にAI関連のプロジェクトに関わっていることが分かります。
プログラミング言語別にコントリビュータの増加率を見ると、1位がRust、2位がRua、3位がTypeScript、4位がHCL(HashiCorp Configration Language)、4位がTSQL、5位がPythonとなります。
https://www.publickey1.jp/blog/23/githubjavascriptrustai13githuboctoverse_2023.html
AI関連のプロジェクトを国別に見ると米国が突出していますが、日本はインドに次いで3位となっており、日本のオープンソース開発者は世界的に見て積極的にAI関連のプロジェクトに関わっていることが分かります。
プログラミング言語別にコントリビュータの増加率を見ると、1位がRust、2位がRua、3位がTypeScript、4位がHCL(HashiCorp Configration Language)、4位がTSQL、5位がPythonとなります。
571デフォルトの名無しさん
2023/11/21(火) 09:29:05.70ID:WJ7yrtvk React本体のJavaScriptコードで継承が使われてるという事実は嘘つきオジがいたので指摘しただけで重要な事ではない
JavaScriptの継承を理解してる人ならリポジトリ見れば誰でもわかる
重要なのはReactやReact Nativeが依存しているHTML/CSS/JavaScriptなどのホスト環境が提供するGUIライブラリやそれに類するものは全て実装継承モリモリで作られているということ
それはなぜなのか?
JavaScriptの継承を理解してる人ならリポジトリ見れば誰でもわかる
重要なのはReactやReact Nativeが依存しているHTML/CSS/JavaScriptなどのホスト環境が提供するGUIライブラリやそれに類するものは全て実装継承モリモリで作られているということ
それはなぜなのか?
572デフォルトの名無しさん
2023/11/21(火) 09:48:09.93ID:meOGGGPH573デフォルトの名無しさん
2023/11/21(火) 10:52:34.98ID:TIZNoRj+ 増加<率>だからねw
574デフォルトの名無しさん
2023/11/21(火) 10:53:27.83ID:TIZNoRj+ つまり分子が大きいというより分母が少ない
575デフォルトの名無しさん
2023/11/21(火) 10:56:46.75ID:fyFN08Ef ヒント非公開
576デフォルトの名無しさん
2023/11/21(火) 11:02:46.10ID:ZX3v40di >>571
GitHubのコードに対するリンク一行貼るくらいやってよ
GitHubのコードに対するリンク一行貼るくらいやってよ
577デフォルトの名無しさん
2023/11/21(火) 11:06:40.20ID:ZX3v40di >>571
gtkはCだね
gtkはCだね
578デフォルトの名無しさん
2023/11/21(火) 11:07:36.25ID:HSO31doi >>557
ほんそれ
ほんそれ
579デフォルトの名無しさん
2023/11/21(火) 11:18:07.78ID:Lmp19CDx580デフォルトの名無しさん
2023/11/21(火) 11:27:49.20ID:j31CN6Yb >>569
とFacebookの犬が申しております
とFacebookの犬が申しております
581デフォルトの名無しさん
2023/11/21(火) 12:12:04.36ID:Vub9wpCB >>571
嘘つきはお前だよ
嘘つきはお前だよ
582デフォルトの名無しさん
2023/11/21(火) 12:25:12.17ID:MyNMYruR583デフォルトの名無しさん
2023/11/21(火) 12:27:03.76ID:vP2RupFQ 特定のレスに妙に攻撃的な単発ちょくちょく湧いてくるのってやっぱりアイツ?
584デフォルトの名無しさん
2023/11/21(火) 12:50:14.72ID:j31CN6Yb >>583
いや、あいつとは別
いや、あいつとは別
585デフォルトの名無しさん
2023/11/21(火) 12:50:16.11ID:j31CN6Yb >>583
いや、あいつとは別
いや、あいつとは別
586デフォルトの名無しさん
2023/11/21(火) 13:37:07.13ID:f4244eke アイツじゃねーかw
587デフォルトの名無しさん
2023/11/21(火) 13:52:02.24ID:Lmp19CDx 質問する側は基本的に無力で、答える側に生殺与奪の権を握られる
一発逆転するには攻撃力か何かで優位に立たなければ
一発逆転するには攻撃力か何かで優位に立たなければ
588デフォルトの名無しさん
2023/11/21(火) 18:59:23.42ID:E3kr56i/ 勝ったところで、所詮クソvsクソだぞ
面白いことを書け
面白いことを書け
589デフォルトの名無しさん
2023/11/21(火) 19:14:06.76ID:MyNMYruR 攻撃的なこと言われて大人しくなってるの草
590デフォルトの名無しさん
2023/11/21(火) 22:22:25.20ID:3Y9OZVuh591デフォルトの名無しさん
2023/11/21(火) 22:23:49.29ID:3Y9OZVuh592デフォルトの名無しさん
2023/11/21(火) 22:43:10.96ID:Q9pynku3593デフォルトの名無しさん
2023/11/21(火) 23:11:04.07ID:Lmp19CDx Cはスマポ<T>を作れない
C++でもtemplateを使わない主義ならばスマポのようなものをTが実装継承するかも
C++でもtemplateを使わない主義ならばスマポのようなものをTが実装継承するかも
594デフォルトの名無しさん
2023/11/21(火) 23:15:06.85ID:x0TxAGsF >>592
論点は実装継承は不要なのかどうか
常にコンポジションを使うべきかどうか
GTKは言語機能によらない実装継承を使っているというだけ
コンポジションで実装する事も技術的には当然可能だがその選択をしてないことに意味がある
特に言語が提供してないにもかかわらずGTKのためだけに継承機能をわざわざ作り上げるほど実装継承を欲した理由を理解するべき
論点は実装継承は不要なのかどうか
常にコンポジションを使うべきかどうか
GTKは言語機能によらない実装継承を使っているというだけ
コンポジションで実装する事も技術的には当然可能だがその選択をしてないことに意味がある
特に言語が提供してないにもかかわらずGTKのためだけに継承機能をわざわざ作り上げるほど実装継承を欲した理由を理解するべき
595デフォルトの名無しさん
2023/11/21(火) 23:35:36.54ID:LOJe+P0r Reactが依存しているHTMLのボタン要素を例に話をするとボタン要素は次のような型階層を取ることがDOM APIの仕様で決められている
EventTarget <- Node <- Element <- HTMLElement <- HTMLButtonElement
上位の型のパブリックなメソッドやプロパティはや下位の型でも使えるようにする必要がある
これは実装継承だけでなくコンポジション+インターフェースでもRustのenumのような代数データ型を使っても実現可能なんだが知る限り全てのブラウザが実装継承を使って実装している
EventTarget <- Node <- Element <- HTMLElement <- HTMLButtonElement
上位の型のパブリックなメソッドやプロパティはや下位の型でも使えるようにする必要がある
これは実装継承だけでなくコンポジション+インターフェースでもRustのenumのような代数データ型を使っても実現可能なんだが知る限り全てのブラウザが実装継承を使って実装している
596デフォルトの名無しさん
2023/11/21(火) 23:45:35.68ID:Q9pynku3597デフォルトの名無しさん
2023/11/21(火) 23:49:00.55ID:5SU8rUzf なぜかというと
例えば仕様変更でNodeに新しいメソッドが追加されたとしても実装継承なら一箇所変更すればいいだけだから
コンポジション+インターフェースの場合はNode以下の数百個のクラスや構造体にメソッドを追加して委譲するコードを書いて回らないといけない
実装継承というのはサブタイピングとコードの再利用を同時に行うことだが、その2つを同時に行えるという点が最大のメリットであり存在理由なわけ
例えば仕様変更でNodeに新しいメソッドが追加されたとしても実装継承なら一箇所変更すればいいだけだから
コンポジション+インターフェースの場合はNode以下の数百個のクラスや構造体にメソッドを追加して委譲するコードを書いて回らないといけない
実装継承というのはサブタイピングとコードの再利用を同時に行うことだが、その2つを同時に行えるという点が最大のメリットであり存在理由なわけ
598デフォルトの名無しさん
2023/11/22(水) 00:08:02.11ID:h68LLJ0S >>596
問題がないわけではないんだよ
GTKの実装継承は言語機能のそれと比べてクソ面倒臭い上に言語に組み込まれた型システムではないからこその弱さがある
Rustでも実装継承をマクロで模倣することもできるがだからといってそれに何の問題ないわけではないというのと同じ
他のやり方があったとしてもより楽に安全に開発できるようになるなら言語機能としてあった方がいいってことになるよね?
問題がないわけではないんだよ
GTKの実装継承は言語機能のそれと比べてクソ面倒臭い上に言語に組み込まれた型システムではないからこその弱さがある
Rustでも実装継承をマクロで模倣することもできるがだからといってそれに何の問題ないわけではないというのと同じ
他のやり方があったとしてもより楽に安全に開発できるようになるなら言語機能としてあった方がいいってことになるよね?
599デフォルトの名無しさん
2023/11/22(水) 00:19:05.87ID:i7dbnQQ2 >>1-10
乗り遅れるな!
いつまでも待ってはくれませんよ
https://note.com/nukatiktok/n/nfbb66b3b3d3e ←4000円貰えます
この機会にぜひ
https://i.imgur.com/eWEQ3eT.jpg
(毎日動画見てるだけでお金貰えるんだぞ💰)
乗り遅れるな!
いつまでも待ってはくれませんよ
https://note.com/nukatiktok/n/nfbb66b3b3d3e ←4000円貰えます
この機会にぜひ
https://i.imgur.com/eWEQ3eT.jpg
(毎日動画見てるだけでお金貰えるんだぞ💰)
600デフォルトの名無しさん
2023/11/22(水) 00:33:52.03ID:SCjy6MJ9 >>597
それは仕様変更前のクラス数百個を捨てさせ変更後の数百個で置き換えるには都合が良い
一箇所変更するだけで古いクラス数百個が消滅する
だが古いクラスに依存していた資産が消滅するのは本当にお得なのか?
それは仕様変更前のクラス数百個を捨てさせ変更後の数百個で置き換えるには都合が良い
一箇所変更するだけで古いクラス数百個が消滅する
だが古いクラスに依存していた資産が消滅するのは本当にお得なのか?
601デフォルトの名無しさん
2023/11/22(水) 01:12:20.99ID:uxQX1dJD■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【音楽】Perfume・あ~ちゃんの結婚相手「一般男性」は吉田カバンの社長・吉田幸裕氏(41) 高身長で山本耕史似 [Ailuropoda melanoleuca★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★4 [ぐれ★]
- 【サッカー】U-17日本代表、激闘PK戦制す 北朝鮮撃破で6大会ぶり8強入り U17W杯 [久太郎★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
- 【サッカー】日本代表、ボリビアに3発快勝 森保監督通算100試合目を飾る…鎌田、町野、中村がゴール [久太郎★]
- XやChatGPTで広範囲の通信障害 投稿や閲覧できず [蚤の市★]
- 毒親「働かないでいつもゴロゴロして!」俺「…」毒親「あっ近隣に熊が出たって!」俺「ふぅ」毒親「どこ行くんだ」
- アンケート調査で「高市発言は問題なし」 93.5%wwwwwwwwwwwwwwwwwwwwwwwww [279254606]
- 生活保護の受給額ってなんでこんなに安いの?
- お前らは“スカイマイルタワー”建設計画を知っているか?
- これ誰か分かるか?
- 支払い詰まってインターネット止まった
