[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 01/01 19:50 / Filesize : 270 KB / Number-of Response : 1019
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

次世代言語25 TypeScript Swift Go Kotlin Rust Nim



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/

301 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 18:11:19.66 ID:DhJCopPa.net]
汚染と言わなくても、Rustがuseで似たようなメソッドがたくさん出てくるのは本当でしょ、UFCSにしてもそれはイコールで何ら変わらんわ
なんでこいつらマトモに話すら出来ないの?コーディング能力を持ってるんだろうけど、コミュニケーション能力はゼロに近い

302 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 18:11:26.99 ID:VVkmIp+6.net]
メソッドが動詞ならUFCSでは関係が逆になるんだよね
英語圏の人はどう思ってるんだろ

303 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 18:15:08.57 ID:Xt13Fv0a.net]
>>298
OSV言語の自然言語に近くなるから、オブジェクトが先に来るのは利点として受け止められてる。でも所詮はシンタックスシュガーの何者でもない

304 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 18:16:12.91 ID:TDNc/5Gc.net]
>>297
> 似たようなメソッドがたくさん出てくる

そこ意味がわからない
似たようなメソッドがたくさんとは何?

305 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 18:19:11.55 ID:VVkmIp+6.net]
C#にも拡張メソッドと言う名前でほぼ同じ機能が使えるけどそっちは拡張メソッドオンリーで使う前提で作られてる

306 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 18:23:57.49 ID:WnCW0ZaS.net]
似たような機能はいろんな言語にあるよね

307 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 18:31:31.86 ID:5qzMTDWR.net]
>>299
英語はOSVじゃなくSVOな?OSVになることもあるけど、そして世界の自然言語の主流は日本語と同じくSOVが40%
参考としてスター・ウォーズのジェダイ・マスター:ヨーダは、このOSV語順で話す。

308 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 18:34:58.90 ID:VVkmIp+6.net]
var s=copy(section);
paste(s);
みたいなのがあって

これを
paste(copy(section)):
とするより
section.copy().paste();
のほうが受け入れ易いってことだよね?

309 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 18:42:40.14 ID:pOd33Olh.net]
>>304
最初からメソッドとして書けば済む



310 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 19:05:29.73 ID:8yiD5uPx.net]
Methods! You will be written first, but many are not.

311 名前:デフォルトの名無しさん [2022/04/25(月) 19:07:02.73 ID:tSjXYtJn.net]
>>305
ところがどっこい var sのsはメソッドを生やせないstring型だ

常にメソッドを生やせるとは限らないし、元のクラスに必要以上の仕事を増やさないためにから拡張メソッドという概念があるんだよ

312 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 19:15:14.85 ID:VVkmIp+6.net]
スコープでuse出来て局所ごとにsection.print()の意味が変わる場合も便利だと感じる?

313 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 19:28:32.34 ID:WnCW0ZaS.net]
メソッドじゃなくて関数や変数でも、スコープごとに意味が変わりうるのは当然のこと

314 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 19:29:22.19 ID:9QpKK4x8.net]
拡張メソッドが欲しいのはまぁ分かるんだけど
UFCSまでいくと普通の関数のつもりが意図せずメソッド呼び出しできてしまう、みたいなデメリットの方が大きくなる気がするなぁ

315 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 19:33:06.80 ID:m1bq2XCo.net]
なぜRustが叩かれていたのかようやく理解できた
Rustでは基本の型にも外部の型にもメソッドを追加できるわけか
そのためメソッドを自由に追加できない言語の人が逆恨みで叩いていたと

316 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 19:35:49.53 ID:VVkmIp+6.net]
"test".print();が局所ごとに意味が変わると気持ち悪い

317 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 19:37:37.15 ID:3TQSNLUR.net]
>>266
Nimだと「メソッド名空間」自体が無いから、そんな議論をするのは無駄だね。

318 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 19:43:06.53 ID:DNOUKEV3.net]
>>312
え?logging.rsに"test".print();と書いてあるのと、printer.rsに"test".print();で意味が変わるのはなんも関係無くねえ?
つーか普通に関数でprint("test")だのsaveだの、getだの散々やってるじゃん。気持ち(悪い)の問題なんだろうけどさ

319 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 19:46:57.59 ID:3TQSNLUR.net]
>>311
それはNimも同様。
むしろNimの方がメソッドと関数を統一しているから(記法が違うだけ)、より自然に拡張できる。

>ぜRustが叩かれていたのかようやく理解できた
>逆恨みで叩いていたと

こういうアホなことを言う狂信者ばかりだからだよ。



320 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 19:56:02.27 ID:W8ZZnspt.net]
RustのメソッドとかC++のメンバ関数のような特定の型だったりトレイトに束縛された関数のようなものがNimにはなくて、自由関数だけがある。
だからNimからUFCSをとったらC言語のように全ての関数をfoo(x, y, z)って書かないといけなくなっちゃう。
UFCSがあるおかげでどんな関数もx.f(y,z)だったりf(x, y, z)とか自由に書ける。
UFCSで関数がメソッドになるとプライベート変数/メソッドにアクセスできちゃうって勘違いしている人がいるかもしれないけどNimではそれは起きない。
C++のメンバ変数に相当するものや関数のアクセス権はモジュール外にそれを公開するかしないかのどちらかしかない。

321 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 19:57:52.87 ID:s4irQrJG.net]
>>315
Nimでも自由にメソッドを追加できるならばUFCS必要なくね??

322 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 19:59:13.38 ID:9XvEg3RG.net]
>>314
逆にprint_to_printer()とか print_to_consoleとか書いてあったら発狂するかもしれんわ
一番使うdebug_assert_eqとかヤメテほしい・・・、あと帰ってくる正式な型名が異様に長くなるのもC++の悪いところを引き継い出るような感じがする

323 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 20:05:33.97 ID:4uqCvk4R.net]
>>316
自由関数しかないNimは関数名空間が常に汚染されてしまうのね
普通のプログラミング言語ならばメソッド名として名前空間が分離されるのよ

324 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 20:06:59.77 ID:0BSsoGgf.net]
std::iter::emptyは名前空間を汚染するので使ってはいけません

アホか

325 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 20:09:08.19 ID:9XvEg3RG.net]
>>319
1つも調べもせんのな、自由関数だけじゃなくmethodもある。つーかおまえRust使うの止めてJavaやってろ、まじ迷惑

326 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 20:09:29.47 ID:VVkmIp+6.net]
グローバル関数じゃなくて?

327 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 20:10:31.91 ID:3TQSNLUR.net]
>>317
>>316にまとまっているよ。
メソッドが無くて、ただの記法の違いでしか無いからこそUFCSのメリットを最大限享受できる。

>>319
メソッド名を関数名から「常に」分離するメリットは?
関数自体をモジュールとかで分離して管理できればいいんじゃないのかね。

328 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 20:13:13.14 ID:xcxOK/uY.net]
やはり逆恨みで無関係なRust叩きやってる説が正しいかもしれん
Rustが無関係な状況でも>>321のように唐突にRustを出してくる

329 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 20:21:15.47 ID:51f23UG1.net]
逆恨みだの、攻撃だの、ずーーとこんな事言ってる奴いるけど完全なびょーきだと思う。名前空間が汚染されないという言語はお前の中で具体的に何?



330 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 20:21:37.03 ID:5gWGwAdH.net]
もうケンカしてる人らが最強次世代言語作れば

331 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 20:23:23.46 ID:PqJDEf6z.net]
逆恨みとか、自我と言語が密結合していない限り出ない言葉だよな
用途目的に応じて言語を使い分ければ良いのに

つまりそういうことだ

332 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 20:26:24.56 ID:bFDhmU1p.net]
おそらくNimの人がずっとRustを仮想敵にでもしてるのかもな
だからNimに不利っぽい書き込みがあるとRustの話がどこにもなくても無意識にRustを叩いてしまってるのかもな

333 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 20:26:38.57 ID:WnCW0ZaS.net]
ローカルのスコープしか影響しないのに、わざわさわ汚染とか言うの意味わからん
紛らわしいからやめろ

334 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 20:27:48.66 ID:WnCW0ZaS.net]
> わざわさわ汚染
タイポしてた
わざわざ汚染

335 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 20:29:25.14 ID:3QooPOGs.net]
例えば新しい言語が出来て人気を博したら、RustにもNimにもDにもSwiftなどにも存在しない機能や、シンタックスシュガーになるわけで
それを指摘したら、逆恨みだの、攻撃だの、アンチだの言いだしたらこのスレはマジ必要ない。
なんで無いのか考察を言ったり、コンパイル時間への影響とか、現行の構文が大きく変わってしまうとかそういうのを述べるならまだしも
UFCSが汚染だとキチガイのように書いてる。マジこんなやつ迷惑だろw

336 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 20:34:31.02 ID:fIAeID6q.net]
このスレを「汚染」で検索してそれら書き込みを見るとプログラミング言語名の最多登場がRust
なぜRustを汚染と叩く書き込みが多いのか不思議

337 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 20:35:18.96 ID:PqJDEf6z.net]
>>228とか>>235みたいな、主観と思い込みによる断定から荒れ始めたんだよな
そこからおそらく自己正当化のために独自の「汚染」を定義
誰にも賛同されないと逆恨みだの攻撃だの仮想敵だの

338 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 20:38:37.94 ID:kDkXz7wX.net]
>>333
それはもちろん同感だが
同時に発生しているRust汚染叩きは何なのだろう?

339 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 20:48:57.83 ID:VVkmIp+6.net]
rustは錆なんだから汚染ぐらいでどうこう言うのもちょっと



340 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 20:54:23.26 ID:GhM9BPSc.net]
Rustに対してとにかく言いがかりつけてるアレな人が前からおるやん
今回もそれだろ
有名人が叩かれる有名税みたいなもんや

341 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 21:10:54 ID:EYilt5eX.net]
いーや一番言いがかりで汚染されてるのはこんスレとロシアだと思いますわ。反枠&陰謀論!病院池

342 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 21:27:42.00 ID:l9I/osPN.net]
有名税か
逆恨みやストレス発散でバッシングする連中多いもんな

343 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 21:47:49 ID:iMu4Hfqd.net]
>>332 >>334
事実に基づかない嘘で被害者面するのやめるべきだな。
このスレで「汚染している」と難癖つけられているのはUFCSだろ。次点でNim。Rustはあったっけ? []
[ここ壊れてます]

345 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 21:58:12 ID:Hqs3zbo6.net]
ケンカはやめて><

346 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 22:11:48.53 ID:EH/Dcnf1.net]
ふたりを とめて〜

347 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 22:17:54.71 ID:PqJDEf6z.net]
有名税とか言う前にまずDとNimとUFCSを無理筋でこき下ろした件に対するごめんなさいは?

348 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 22:34:36.42 ID:BiA6VIMH.net]
あと無関係な争いに巻き込まれたRustも可哀想

349 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 23:13:51.83 ID:W8ZZnspt.net]
調べたところRustにもUFCSがあるようだけど。
https://doc.rust-lang.org/1.30.0/book/first-edition/ufcs.html



350 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 23:32:05.72 ID:PJo8eL2A.net]
それ古い版のthe bookだし>>224の条件付きだからUFCSってあるってだけだよ

351 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 23:34:40.87 ID:PJo8eL2A.net]
途中送信した
条件付きだからこれをUFCSと呼ぶのは誤用ってことで今は使ってないよ(>>284

352 名前:デフォルトの名無しさん mailto:sage [2022/04/25(月) 23:52:22 ID:+dAy6ibx.net]
>>344
もちろんRustにもあるけど微妙に違うので今はUFCSとは呼ばなくなった
その微妙な差というのは既に>>245で書いたように

> 例えばu64型のxに対して
> xのn乗はu64::pow(x, n)という関数が標準であるけど
> これはx.pow(n)と呼び出すことができる

とメソッド形式でなく関数形式の時に型名等の前置パスで常に制限される

353 名前:デフォルトの名無しさん mailto:sage [2022/04/26(火) 00:24:29.22 ID:HRWQKuSX.net]
ほんのわずかだけ違うとはいえ
D、Nim、RustといったUFCS対応言語は2通りの記述方法が出来て便利で良いですよね

354 名前:デフォルトの名無しさん mailto:sage [2022/04/26(火) 07:04:16.95 ID:Y0YWAbka.net]
Goってマジで終わりかけてる?
使う価値あんまり感じなかったのは事実だけどw

355 名前:デフォルトの名無しさん mailto:sage [2022/04/26(火) 07:06:24.67 ID:nY6A0xRe.net]
バカヤロー、まだ始まっちゃいねぇよ

356 名前:デフォルトの名無しさん mailto:sage [2022/04/26(火) 09:33:09.74 ID:N3l9Q94/.net]
Goジェネリクスの実装とパフォーマンスについて
https://www.infoq.com/jp/news/2022/04/go-generics-performance/

357 名前:デフォルトの名無しさん [2022/04/26(火) 10:53:42 ID:jf0A6U3h.net]
>>260
ちげーよ。
記法の問題。

358 名前:デフォルトの名無しさん [2022/04/26(火) 11:05:30 ID:jf0A6U3h.net]
>>295
これが正しい

359 名前:デフォルトの名無しさん [2022/04/26(火) 11:06:06.60 ID:jf0A6U3h.net]
>>295
これが正しい



360 名前:デフォルトの名無しさん mailto:sage [2022/04/26(火) 12:45:23.73 ID:AcQNW5IU.net]
>>295
(UFCS方式を含めて)メソッドを追加できない次世代言語が存在するのですか?

361 名前:デフォルトの名無しさん [2022/04/26(火) 13:27:25.51 ID:jf0A6U3h.net]
頭痛くて寒気すると思ったら熱あったわ。

362 名前:デフォルトの名無しさん mailto:sage [2022/04/26(火) 13:49:04 ID:US6qo08V.net]
>>355
Rust、Kotlin、Swift、C#は拡張できるし、メソッド形式呼び出しがあるモダン言語なら必須機能っぽいけどね

363 名前:デフォルトの名無しさん mailto:sage [2022/04/26(火) 14:12:26 ID:DbGjJV4L.net]
最後にGoの悪口に収束するのは、おまいらの悪い癖だと思う

>>356
現代日本の片づけのキモはゴミ在庫の管理だ。 これはコンマリも言ってない..
pptppc2 「キモ」「ゴミ」とかいうワードが真っ先に出てくると身構えてしまう。

364 名前:デフォルトの名無しさん mailto:sage [2022/04/26(火) 14:18:27 ID:jETt/1T7.net]
>>357
スレタイにある言語だと
TypeScriptもJavaScriptだからメソッド追加可能
残るGoは?

365 名前:デフォルトの名無しさん [2022/04/27(水) 10:39:21.30 ID:8eBizIGw.net]
nimググってみたけどけっこう良さそうな言語じゃん。

366 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 09:51:11.18 ID:nibPTxk+.net]
Go開発者の92%が「Go言語に満足」
https://mag.osdn.jp/22/04/27/135700

367 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 11:41:20 ID:nnpkzAOE.net]
>>360
自演乙

368 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 11:41:58 ID:nnpkzAOE.net]
>>361
ガイジの中のガイジ煮詰めたデータに何か意味あるんか?

369 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 11:48:23 ID:HTMH1VGQ.net]
なんかの統計でphpも満足度が高かったような



370 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 11:57:31.13 ID:izq7WstO.net]
Nimは100%ですよ

371 名前:デフォルトの名無しさん [2022/04/29(金) 12:04:51.33 ID:okzbgZOG.net]
>>362
何いちゃもんつけてんだ。
nimは使ったことすらねーわ。ググっただけだ。
一応このスレタイトルのtypescriptとgoは使ってる。

372 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 12:06:43.44 ID:0R1ha4qI.net]
サーチフレンドリな名前ではある

373 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 14:28:08.64 ID:bzqD+Da/.net]
生存者バイアスとしか…

374 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 15:45:25.25 ID:nnpkzAOE.net]
phpは障害者雇用枠だから

375 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 19:23:50.76 ID:fXQBWCQI.net]
前にも書いたけど学校のサイトとかをワードプレスで運用してるところ結構あるんだよね
他の言語では先生達に書き換えて運用とか無理だと思う

PHPはそういう用途に向いてる
絶対そこはRustとかGoにはならない

376 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 19:44:01.30 ID:Crnvpu67.net]
言語と人を比較して言うのだが
PHPを批判するような子は
たいていPHP以下の存在
そして必ずPHPの作者以下の技量

377 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 19:58:05.95 ID:FaPJ+Yjv.net]
たぶんPHPが存在してなければ、また誰かが気軽にwebサイトをさらっとかけるスクリプト言語をRustのようなシステムプログラミング言語で開発していただろう
そしてそれはPHPのようなものになるのだろうね

378 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 21:18:48.98 ID:nnpkzAOE.net]
たしかにPHPが障害者を吸ってくれたおかげで助かってるところはあるかも
ITの汚物入れ、人類最底辺のクズ、エタヒニン・罪人
それがPHPoor

379 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 21:24:48.98 ID:cvAz2ZRh.net]
Reasonってどうですか?

https://reasonml.github.io/



380 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 22:15:53.12 ID:K6x/4GwT.net]
こんスレってなぜかJuliaの話、完全スルーするよな。Go?Rust?Zig?Nim?時代遅れのローエンド言語や

381 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 22:27:03.12 ID:gkaMUNbq.net]
>>370
GoとPHP、どっちも使わない人からしたら大して変わらない説。

382 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 22:38:01.94 ID:awtM9gjL.net]
>>373
よっぽど根に持ってるんだな。
ちょっと病的な感じ。

383 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 22:48:27.27 ID:6EgfuGip.net]
ローエンド言語なんて言葉ある?
ローレベル言語ならわかるけど

384 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 22:57:18.29 ID:IOMhb3u+.net]
>>375
単に知られてないから話題に反応できないだけだと思う
良いところ教えてよ

385 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 23:02:55.81 ID:kzHHMnSC.net]
Julia、せっかく新規言語で型付けと動的性のバランスを取れる立ち位置にあったのに、抽象-具象の継承ベースの型を採用した部分が個人的にジェネリクスと噛み合いが悪いと思っていて悲しい
1-originとかは正直瑣末事だと思ってる分そこだけが本当に合わない

一応最新バージョンだとパラメト

386 名前:潟bクな抽象型とそのパラメータに抽象型を使えるし、その部分型をパラメータにも抽象型コンストラクタ(?)にも適用できるから実用上十分なんだと思うが []
[ここ壊れてます]

387 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 23:13:16.89 ID:6EgfuGip.net]
JuliaのユーザーってPythonは当然として、他にはMATLABやRが競合になるようなコミュニティだから、
このスレとはまるで層が違うんじゃないかな
MATLABやRの話も全く出ないし

388 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 23:27:24.69 ID:awtM9gjL.net]
Juliaって計算科学や数値解析に特化した、R言語みたいなものでしょ?

389 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 23:34:47.33 ID:fFwxA39Q.net]
Julia厨はクソみたいな押し付けするくらいなら
自分で他言語のライブラリの移植でもした方がよっぽど使ってもらえるという当たり前のことすら理解してないからな。



390 名前:デフォルトの名無しさん mailto:sage [2022/04/29(金) 23:47:45.01 ID:dUco7/4p.net]
>>380
その継承が中途半端なことしかできないし
継承を採用したことも失敗してるし
Juliaはあかんね

391 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 00:03:38.50 ID:UesQSoYk.net]
継承は基底クラスと派生クラスの役割(責務)の分担が非常に難しいです。
よほど上手く設計しないと、すぐに「スパゲッティ・オブジェクト・プログラム」ができあがります。
継承は実装の再利用という面があるので、得てしてコピペの代わりに使われがちでもあります。
既存のあるクラスの振る舞いをちょっとだけ変えたいから継承を使おうってやってしまうと、
派生クラスのソースを見ただけでは何をやってるのか全くわからない最悪のコードになります。
まだコピペのほうがマシなことも。

最初はちゃんとクラス階層の設計がされていたとしても、だんだん皆が使う共通ルーチンを基底クラスに持たせよう、としてしまうとか、
基底クラスは、すぐに、巨大かつ影響範囲が広すぎてイジれない「神クラス」になるでしょう。
この場合の基底クラスの役割は、グローバル変数そのものと言ってよいですね。

とにかく、継承を使うと、コピペ、グローバル変数の使用、といった「禁じ手」と実質的に同じことが簡単にできてしまいかねません。
もし継承を使うのであれば、かなり注意が必要です。

その一方で、継承でないと絶対にダメという用途もあんまりないのです。
継承を一律禁止してしまってもそんなに困らないところがあります。
そのため最近ではGoやRustなど言語の仕様として継承(インタフェースではない実装を持つクラスの継承)を禁止している言語が増えているという有り様です。

392 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 00:45:40.28 ID:JnqjPuKd.net]
今北産業

393 名前:デフォルトの名無しさん [2022/04/30(土) 00:48:57.89 ID:LJ+fWFU3.net]
長い。そして間違っている。
Rustは代わりにtraitで継承を表現できるが、Goは表現する方法はなく、似たことをするとデータ構造を弄くることになる。
そもそも継承においてはデータ構造と実装の併合が問題なので、あとは察してください。

394 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 00:53:39.80 ID:03/a5/ox.net]
じゃあ継承使わないでプラグイン機構使いたいときはどうすんの?

395 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 00:55:27.41 ID:xinPqoeI.net]
プラグイン機構とだけ言われても意味が一意じゃないと思うけど
mixinのことかいな?

396 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 00:56:29.80 ID:5YZgJnSQ.net]
Composition over inheritanceは30年近くも前のGoFですでに広まってるのになぜ次世代言語スレで話題になるんだろう

397 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 01:03:52.06 ID:xinPqoeI.net]
ていうかJuliaの型システム知らなかったから簡単に調べたけど具象型はsupertypeになれないとか書いてあるん

398 名前:ですが
Juliaでもいわゆる継承の問題点はちゃんと回避されているんではないですかね
[]
[ここ壊れてます]

399 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 01:17:16.86 ID:mZJBhlPe.net]
>>391
継承とジェネリクスとの相性の悪さが問題なのではないかな



400 名前:デフォルトの名無しさん mailto:sage [2022/04/30(土) 01:19:25.03 ID:onyz3Xxm.net]
>>390
その後に継承のデメリットの方が多いと分かってきたため
そのデメリットをどう回避するかが各言語の主題となっている






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<270KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef