※前スレ
次世代言語議論スレ[Go Rust Scala Haskell]第5世代
http://mevius.2ch.net/test/read.cgi/tech/1497311647/
次世代言語議論スレ[Rust Kotlin Haskell]第6世代 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2017/08/28(月) 21:53:37.12ID:5I+bTEeA797デフォルトの名無しさん
2017/10/01(日) 11:26:29.96ID:0gcknzCm >>794
いやお前が逃げただけだろ?
いやお前が逃げただけだろ?
798デフォルトの名無しさん
2017/10/01(日) 11:30:08.56ID:yhU1ELrC 荒れてて草
799デフォルトの名無しさん
2017/10/01(日) 11:32:03.68ID:WA8PJzoP800デフォルトの名無しさん
2017/10/01(日) 11:42:13.84ID:AELHct99 自称次世代言語議論スレ[PHP PHP PHP] [無断転載禁止]©2ch.net
http://mevius.2ch.net/test/read.cgi/tech/1506823587/
PHPのホットな話題はこちらへ
http://mevius.2ch.net/test/read.cgi/tech/1506823587/
PHPのホットな話題はこちらへ
801デフォルトの名無しさん
2017/10/01(日) 11:44:34.97ID:kJ8csjIE802デフォルトの名無しさん
2017/10/01(日) 11:51:30.21ID:AELHct99 >>801
自称次世代言語議論スレ[PHP PHP PHP] [無断転載禁止]©2ch.net
http://mevius.2ch.net/test/read.cgi/tech/1506823587/
PHPのホットな話題はこちらへ クサっ
自称次世代言語議論スレ[PHP PHP PHP] [無断転載禁止]©2ch.net
http://mevius.2ch.net/test/read.cgi/tech/1506823587/
PHPのホットな話題はこちらへ クサっ
803デフォルトの名無しさん
2017/10/01(日) 13:27:30.62ID:t00k+6e7 >>792
代替
代替
804デフォルトの名無しさん
2017/10/01(日) 15:37:04.38ID:7ywnpNtw >>773
G unk0
G unk0
805デフォルトの名無しさん
2017/10/01(日) 16:45:23.64ID:Kxlb0HsF 次世代PHPスレは流石に笑う
806デフォルトの名無しさん
2017/10/01(日) 17:28:58.04ID:TUvpXpRh 旧世代代表やろPHPて
頭おかしいんちゃうか
頭おかしいんちゃうか
807あ
2017/10/01(日) 18:07:49.52ID:14LFf82H808デフォルトの名無しさん
2017/10/01(日) 18:18:14.66ID:YXjJncWi また意味不明なことを
DB周りがそれなりに強いと自分で言ってるのに何故DBバッチをPHPで書いてはいけないのか?
PHPの問題はペチパーのコーダーとしての品質の低さ。言語自体の問題ではない。
閉じ込めて使うべきというのは同意するが、それはペチパーの得意分野がフロントだから。
それ以外までペチパーに手を出させるとシステムの品質は著しく低下する。バッチをPHPで書いてはいけないのはそういうこと。
DB周りがそれなりに強いと自分で言ってるのに何故DBバッチをPHPで書いてはいけないのか?
PHPの問題はペチパーのコーダーとしての品質の低さ。言語自体の問題ではない。
閉じ込めて使うべきというのは同意するが、それはペチパーの得意分野がフロントだから。
それ以外までペチパーに手を出させるとシステムの品質は著しく低下する。バッチをPHPで書いてはいけないのはそういうこと。
809808
2017/10/01(日) 18:29:30.88ID:YXjJncWi ああすまん、読み違えてたわ
それなりの言語→PHPではなく他の言語
と置き換えれば矛盾はないな
でも単純に言語を置き換えても決して品質が向上することはない。
全てPHPで書かれてるプロジェクトの品質が低いのはコーダーの品質が低いから。あくまで人の能力の問題。
それなりの言語→PHPではなく他の言語
と置き換えれば矛盾はないな
でも単純に言語を置き換えても決して品質が向上することはない。
全てPHPで書かれてるプロジェクトの品質が低いのはコーダーの品質が低いから。あくまで人の能力の問題。
810デフォルトの名無しさん
2017/10/01(日) 18:42:01.00ID:yhU1ELrC そいつの文を読もうとするから……
811デフォルトの名無しさん
2017/10/01(日) 18:54:18.97ID:TUvpXpRh それもう無理矢理PHP使う必要ないよね、っていう
複数言語使って学習コスト上げるだけだよね、っていう
複数言語使って学習コスト上げるだけだよね、っていう
812デフォルトの名無しさん
2017/10/01(日) 19:45:13.63ID:5jXWEgsq phpの問題点はどんな言語仕様も取り込んでいることだと思う。
正直ダックタイピングの動的言語にインターフェースがある理由がよくわからん。
いや。まぁいいんだけど。
なんというかできないことが明確って結構重要だよね。
なんでもできる分、人によって全然やり方が変わる。
c++みたいな嫌な感じがする。
とGoをよく触るようになって思いました。
正直ダックタイピングの動的言語にインターフェースがある理由がよくわからん。
いや。まぁいいんだけど。
なんというかできないことが明確って結構重要だよね。
なんでもできる分、人によって全然やり方が変わる。
c++みたいな嫌な感じがする。
とGoをよく触るようになって思いました。
813デフォルトの名無しさん
2017/10/01(日) 19:59:18.22ID:tmbSNjLz >>812
typescript「…」
typescript「…」
814デフォルトの名無しさん
2017/10/01(日) 20:26:31.04ID:YXjJncWi 型はむしろやり方を統一するのに役立つだろ
ソースに型書かないなら結局ドキュメントに書くんだから
ソースに型書かないなら結局ドキュメントに書くんだから
815あ
2017/10/01(日) 20:27:13.36ID:14LFf82H816デフォルトの名無しさん
2017/10/01(日) 21:09:45.37ID:Uy9r/fJ2 PHPって型チェックができねえんだな
オブジェクト指向の半分くらい良さが無くなってるわ
オブジェクト指向の半分くらい良さが無くなってるわ
817デフォルトの名無しさん
2017/10/01(日) 22:28:16.16ID:TUvpXpRh >>814
ペチパーはドキュメントも書かないがなw
ペチパーはドキュメントも書かないがなw
818デフォルトの名無しさん
2017/10/01(日) 23:49:31.21ID:RKpZ0NGu 言語仕様とは別に規約とかベストプラクティスがあるって何かおかしくない?
819デフォルトの名無しさん
2017/10/02(月) 02:04:01.28ID:sbwrnD0w それでうまくいってんならいいんじゃね?
#pragma once
みたいに実装がどうなってんのか怪しいものより
インクルードガードのが俺は好きだけどね
#pragma once
みたいに実装がどうなってんのか怪しいものより
インクルードガードのが俺は好きだけどね
820デフォルトの名無しさん
2017/10/02(月) 02:24:33.63ID:oa9amvOn わたしもインクルガーのほうがすき
821デフォルトの名無しさん
2017/10/02(月) 07:05:30.26ID:1XMfMWOU Dのimportのが好きだわ
822デフォルトの名無しさん
2017/10/02(月) 15:33:54.77ID:hE+5Iy+f (´・ω・`)あのー
いまいろいろみてたら
関数型リアクティブプログラミング言語Elm
こういうのあったの
2012年に生まれた言語みたい
これも次世代言語なの?
リアクティブプログラミングってすごいの?
Haskellの仲間なの?
いまいろいろみてたら
関数型リアクティブプログラミング言語Elm
こういうのあったの
2012年に生まれた言語みたい
これも次世代言語なの?
リアクティブプログラミングってすごいの?
Haskellの仲間なの?
823デフォルトの名無しさん
2017/10/02(月) 17:21:07.36ID:48oqYDIq >>822
ここは議論するスレなので、自分で調べて「自分の意見」が言えるようになってから、出直した方がいいと思います。
ここは議論するスレなので、自分で調べて「自分の意見」が言えるようになってから、出直した方がいいと思います。
824デフォルトの名無しさん
2017/10/02(月) 17:58:49.31ID:hE+5Iy+f (´・ω・`)はい
825デフォルトの名無しさん
2017/10/02(月) 22:27:08.28ID:s3lqZu5f なんか懐かしいな、そういやElmってあったな
826デフォルトの名無しさん
2017/10/03(火) 11:33:59.51ID:1PTxbey1 >【衝撃】2chの移譲先「5ch」の代理人がしばき隊であることが判明 なにが始まるんです…
https://twitter.com/htmk73/status/914989085269168128
■専ブラ(2ちゃんねるブラウザ)からお〜ぷん2ちゃんねるを見るには?
【おーぷん2ちゃんねる】は全ての2ちゃんねるブラウザに標準対応してます。 ◆お〜ぷん2ちゃんねるボード一覧URL のボードを検索してください
●お勧めの広告なし2chブラウザ ついんてーる twintail の環境設定でお〜ぷん2ちゃんねるボードを入れるだけで使えます。
http://www.geocities.co.jp/SiliconValley/5459/
https://twitter.com/htmk73/status/914989085269168128
■専ブラ(2ちゃんねるブラウザ)からお〜ぷん2ちゃんねるを見るには?
【おーぷん2ちゃんねる】は全ての2ちゃんねるブラウザに標準対応してます。 ◆お〜ぷん2ちゃんねるボード一覧URL のボードを検索してください
●お勧めの広告なし2chブラウザ ついんてーる twintail の環境設定でお〜ぷん2ちゃんねるボードを入れるだけで使えます。
http://www.geocities.co.jp/SiliconValley/5459/
827デフォルトの名無しさん
2017/10/03(火) 15:51:12.88ID:aErAbfBu 真面目な話Rust触ってると、クソのPHPですらマシに見えてくるから困る
言語を名乗ること自体が冒涜の極みの存在Rust
言語を名乗ること自体が冒涜の極みの存在Rust
828デフォルトの名無しさん
2017/10/03(火) 18:11:45.30ID:upqeSfz9 例のコンパイルすら出来ない君か。
829デフォルトの名無しさん
2017/10/03(火) 18:45:21.65ID:9EEmWhET830デフォルトの名無しさん
2017/10/03(火) 18:46:54.01ID:9EEmWhET typescriptでも十分助けになるけどね。optionalは偉大だわ。今日も潜在的なバグを知らず知らずに回避してることがわかって感動した。
831デフォルトの名無しさん
2017/10/03(火) 19:20:44.46ID:JmJFDhWq Rustコンパイルできないって普段どんなコード書いてんだろ
832デフォルトの名無しさん
2017/10/03(火) 19:25:56.04ID:KmXggyRJ イケてないのに人気がある golang vs イケてるのに人気がない Nim
http://wolfbash.hateblo.jp/entry/2017/10/02/163017
http://wolfbash.hateblo.jp/entry/2017/10/02/163017
833デフォルトの名無しさん
2017/10/03(火) 19:31:53.29ID:upqeSfz9 Nim はまだ発展途上過ぎる。
ブロックコメントが入ったのも最近だろう。
ブロックコメントが入ったのも最近だろう。
834デフォルトの名無しさん
2017/10/03(火) 23:32:56.72ID:VvnGZhVU Rustはスマポを使うべきところで参照を使うとコンパイルできないね
スマポは1種類ではなくて左辺値みたいなスマポと右辺値みたいなスマポがある
スマポは1種類ではなくて左辺値みたいなスマポと右辺値みたいなスマポがある
835デフォルトの名無しさん
2017/10/04(水) 00:03:11.19ID:5eMqfOkE スマートポン?
836デフォルトの名無しさん
2017/10/04(水) 06:05:52.94ID:I8P8RQcn >>832
否定はできないけどエコシステムを含めて評価して欲しいところ。
nim < Go が世間の評価なんだから自分の感覚がずれているということをわかってもらいたいな。
多分goが色々仕様が足りないようにみえるのは言語の再考だからだと思う
例えばclassって本当にいるのか?って考えてるのはすごいこと。
普通は皆つけちゃうよね。そこでclassを採用しなかった。
ジェネリクスも多分いちばんいい形で実装されると思う。
否定はできないけどエコシステムを含めて評価して欲しいところ。
nim < Go が世間の評価なんだから自分の感覚がずれているということをわかってもらいたいな。
多分goが色々仕様が足りないようにみえるのは言語の再考だからだと思う
例えばclassって本当にいるのか?って考えてるのはすごいこと。
普通は皆つけちゃうよね。そこでclassを採用しなかった。
ジェネリクスも多分いちばんいい形で実装されると思う。
837デフォルトの名無しさん
2017/10/04(水) 07:02:44.52ID:VzltHPaW どう見てもガイジなんだからまともに相手する必要ねえだろ
しかも新人かと思えばいい歳したオッサンとか、もう色々と終わっとる
しかも新人かと思えばいい歳したオッサンとか、もう色々と終わっとる
838デフォルトの名無しさん
2017/10/04(水) 08:01:52.09ID:6fGy+UI9 Nim<GOが世間の評価ってことはないだろ。そもそも世間はNimなんて知らないんじゃないか?
839デフォルトの名無しさん
2017/10/04(水) 08:09:59.02ID:pULpEgLQ 世間の評価って本当にいるのか?って考えてるのはすごいこと。
多分いちばんいい形で評価されると思う。
多分いちばんいい形で評価されると思う。
840デフォルトの名無しさん
2017/10/04(水) 12:00:16.50ID:DiJewy83 Nimこれまで避けてたけど、これ結構よくね?
841デフォルトの名無しさん
2017/10/04(水) 14:31:49.82ID:B2XamLw4 書き易く読み易い
動作もそこそこ速い
でも流行らないNim
動作もそこそこ速い
でも流行らないNim
842デフォルトの名無しさん
2017/10/04(水) 17:38:53.01ID:LT+9qEc0 "Hello,world!"::print
とか書ける言語出ないかな
とか書ける言語出ないかな
843デフォルトの名無しさん
2017/10/04(水) 17:44:46.88ID:eKN2AIaa >>842
C#やKotlinやRubyでStringにメソッド生やせば普通にできる
C#やKotlinやRubyでStringにメソッド生やせば普通にできる
844デフォルトの名無しさん
2017/10/04(水) 18:15:56.42ID:l7XMNd9h Nim なら "Hello,world!".echo と書ける
845デフォルトの名無しさん
2017/10/04(水) 19:03:11.59ID:LT+9qEc0 rubyだとprint!ならできたけどprintはダメだった
a 500 :: varset
succ(x) x+1 :: def
みたいにひたすらこの形式のみにしたらどうかな、とか思った
a 500 :: varset
succ(x) x+1 :: def
みたいにひたすらこの形式のみにしたらどうかな、とか思った
846デフォルトの名無しさん
2017/10/04(水) 21:11:06.92ID:hjCUawIk Dもいけるぞ"Hello,world!".writeln(うろ覚え)
847デフォルトの名無しさん
2017/10/04(水) 21:22:38.73ID:ObffTMEn ちなみに Smalltalk は最初の Smalltalk-72 から Smalltalk-78 まではずっと 'Hello,world!' print
だけど Smalltalk-80 以降は最新の Pharo、Squeak を含め Transcript show: 'Hello,world!' に
ただひとつ変わり種の GNU Smalltalk だけが今も変わらず 'Hello,world!' print
https://ideone.com/p1HVKw
だけど Smalltalk-80 以降は最新の Pharo、Squeak を含め Transcript show: 'Hello,world!' に
ただひとつ変わり種の GNU Smalltalk だけが今も変わらず 'Hello,world!' print
https://ideone.com/p1HVKw
848デフォルトの名無しさん
2017/10/04(水) 21:41:15.01ID:LT+9qEc0 やはりSmalltalkですか
でも今見直したらFactorも "Hello,world!" print だった
より純粋なオブジェクト指向とかスタック指向を目指すなら後置関数にこだわるのも良い気がする
でも今見直したらFactorも "Hello,world!" print だった
より純粋なオブジェクト指向とかスタック指向を目指すなら後置関数にこだわるのも良い気がする
849デフォルトの名無しさん
2017/10/04(水) 23:07:25.22ID:rikHP6KZ Juliaなら
"Hello, world!" |> println
とか行ける |> は左の引数を右の関数に適用する演算子
多分高階関数を気軽に扱える言語なら大体似たようなことができると思う
"Hello, world!" |> println
とか行ける |> は左の引数を右の関数に適用する演算子
多分高階関数を気軽に扱える言語なら大体似たようなことができると思う
850デフォルトの名無しさん
2017/10/04(水) 23:34:13.26ID:1ZpMsI7I こういうくだらないシンタックスで盛り上がれるっていいよね。
851デフォルトの名無しさん
2017/10/04(水) 23:55:10.27ID:VzltHPaW もっとくだらなくてゴミみたいな自称次世代言語下痢糞プェチピィについて語ろうゾ
852デフォルトの名無しさん
2017/10/05(木) 00:04:04.93ID:0B54PbO+ Nimのシンタックスが「俺の求めていたものはこれなんだ」って感じでしっくりきている
853デフォルトの名無しさん
2017/10/05(木) 10:00:21.57ID:6CUoA44/ >>840
同意
同意
854デフォルトの名無しさん
2017/10/05(木) 12:08:45.40ID:2VHNud46 発見したんだけれど語だとAさんBさんの間に自分がいると、自分の前にAさんがいて後ろにBさんが
いるってかくけれど、
にほんごだとAさんの後ろに自分がいてその後ろにCさんがいるのように自分中心
に書かないだろ。
これが日本人にオブジェクト指向があわない証拠だとおもうな。
いるってかくけれど、
にほんごだとAさんの後ろに自分がいてその後ろにCさんがいるのように自分中心
に書かないだろ。
これが日本人にオブジェクト指向があわない証拠だとおもうな。
855デフォルトの名無しさん
2017/10/05(木) 12:56:26.82ID:U9Ub2sS/ そういう話じゃないと思うけどね。
単純に実行効率とメンテナンス性のバランスとるのが下手なだけ。
単純に実行効率とメンテナンス性のバランスとるのが下手なだけ。
856デフォルトの名無しさん
2017/10/05(木) 13:06:01.46ID:2VHNud46 それは東洋的な発想はプログラムに向かないってことだよね。
857デフォルトの名無しさん
2017/10/05(木) 13:52:09.38ID:DNu4hyXr 島猿は観念論的な思考が苦手だからな
858デフォルトの名無しさん
2017/10/05(木) 17:54:15.12ID:hq5BCXwT でも英語だと命令形は動詞が先に来るけど、日本語だと後に来るので、
その点ではオブジェクト指向的な気がする
Lispみたいに前置にこだわった感じの関数型は英語的だと思う
その点ではオブジェクト指向的な気がする
Lispみたいに前置にこだわった感じの関数型は英語的だと思う
859デフォルトの名無しさん
2017/10/05(木) 17:57:02.28ID:Jc3a3LA7 得意なら半年で習得できるとか自分勝手にハードル上げて勝手に挫折して苦手になるのだ
10年かかると最初から思ってたら挫折もしない
10年かかると最初から思ってたら挫折もしない
860あ
2017/10/05(木) 19:36:48.36ID:5X6CpPIC ってか習得するもんでも無いんじゃないの?
やりたい事をやりたいように出来ればそれで良い気がする。
自動車整備の達人はレンチの達人かもしれんが、ただのレンチの達人は自動車整備出来んだろ。
新型のレンチ試して習得する前に、どう使うかを考えた方が余程良いかと思う。
やりたい事をやりたいように出来ればそれで良い気がする。
自動車整備の達人はレンチの達人かもしれんが、ただのレンチの達人は自動車整備出来んだろ。
新型のレンチ試して習得する前に、どう使うかを考えた方が余程良いかと思う。
861デフォルトの名無しさん
2017/10/05(木) 22:08:07.44ID:5FiWY82n goはjavaの境界ワイルドカード型が理解できなかった奴らに支持されてるんじゃないの?
javaのパラメトリック多相が複雑だからって後発言語ではin/outになったじゃん。
javaのパラメトリック多相が複雑だからって後発言語ではin/outになったじゃん。
862デフォルトの名無しさん
2017/10/05(木) 22:25:32.14ID:DNu4hyXr 最初にジェネリックの変性にin, outを使ったのってC#だっけ?
あれ思いついた奴は天才だろ
あれだけ意味不明だったJavaのワイルドカードが一瞬で誰でも一目で理解できるものになってしまった
あれ思いついた奴は天才だろ
あれだけ意味不明だったJavaのワイルドカードが一瞬で誰でも一目で理解できるものになってしまった
863デフォルトの名無しさん
2017/10/05(木) 22:27:03.03ID:jfAiiqib null安全でない言語は、もはやレガシー言語だ
https://qiita.com/koher/items/e4835bd429b88809ab33
https://qiita.com/koher/items/e4835bd429b88809ab33
864デフォルトの名無しさん
2017/10/05(木) 23:53:50.11ID:9FcQYtba in, outとかはAdaにあったけどあれとは違うの?
865デフォルトの名無しさん
2017/10/06(金) 00:57:54.53ID:AmbKZ1TQ ええだ、ええだ
866デフォルトの名無しさん
2017/10/06(金) 01:50:35.56ID:mbAUXPYs gcのときといっしょの浅はかな議論
nullがなくなろうと意味的なnullは必要なんだよ
だから絶対にそこにバグは入り込む
バグり方が変わるだけ
下手に動き続けるよりヌルポの瞬間に潔くクラッシュしてくれた方が
調査しやすいという考え方もある
nullがなくなろうと意味的なnullは必要なんだよ
だから絶対にそこにバグは入り込む
バグり方が変わるだけ
下手に動き続けるよりヌルポの瞬間に潔くクラッシュしてくれた方が
調査しやすいという考え方もある
867デフォルトの名無しさん
2017/10/06(金) 07:22:04.51ID:Pjx+vQ2Q >>866
意味的なnullを想定しない箇所については型でnull を弾くよう静的検査するべきということなんだが?
意味的なnullを想定しない箇所については型でnull を弾くよう静的検査するべきということなんだが?
868デフォルトの名無しさん
2017/10/06(金) 08:25:43.72ID:mbAUXPYs 意味がないとは言わない
おれもあれば使う
が思うほど効果ない
おれもあれば使う
が思うほど効果ない
869デフォルトの名無しさん
2017/10/06(金) 12:24:07.66ID:28ESsb6Q null安全言語使うとホント幸せだよな。
結果的にここにnullの可能性がある変数が到達しないってことを言語として保証してくれるってすごすぎる。
書いてみると分かるけど返り値がnullの可能性があるかどうかは
内部で使うapiに依存してたりして、外側から見ると予測できない。
だから人間がやろうとしたら、結局使う側で全ての引数にnullチェック入れるしか無い。
まぁ面倒だからnullPointerExceptionを出しちゃうわけですけど。
コンパイラが把握してくれれは必要最低限のチェックで済むから精神衛生上も大変よろしい。
こういう進化はどんどんしていって欲しい。
結果的にここにnullの可能性がある変数が到達しないってことを言語として保証してくれるってすごすぎる。
書いてみると分かるけど返り値がnullの可能性があるかどうかは
内部で使うapiに依存してたりして、外側から見ると予測できない。
だから人間がやろうとしたら、結局使う側で全ての引数にnullチェック入れるしか無い。
まぁ面倒だからnullPointerExceptionを出しちゃうわけですけど。
コンパイラが把握してくれれは必要最低限のチェックで済むから精神衛生上も大変よろしい。
こういう進化はどんどんしていって欲しい。
870デフォルトの名無しさん
2017/10/06(金) 12:36:51.70ID:nzqIzLrY >>868
必要性を感じるようなコードに出会ったことがないんだね、幸せなやつ
必要性を感じるようなコードに出会ったことがないんだね、幸せなやつ
871デフォルトの名無しさん
2017/10/06(金) 12:52:52.70ID:sp3JMBsg 機能としては悪くないと思うけどnull安全とかいう頭悪いワードでバカを勘違いさせるのやめろ
nullで落ちるならnullチェックすればいいというわけじゃない
nullで落ちるならnullチェックすればいいというわけじゃない
872デフォルトの名無しさん
2017/10/06(金) 13:13:58.43ID:W7gYVrEG まあないよりはマシだろうけどくらいの意味合いだな。
レイヤーを下りれば結局人間が判断することになることが多い。
レイヤーを下りれば結局人間が判断することになることが多い。
873デフォルトの名無しさん
2017/10/06(金) 15:41:59.82ID:HTxWyqCb null safety理解してないやつ結構いるのね
874デフォルトの名無しさん
2017/10/06(金) 17:29:24.43ID:28ESsb6Q >>862
これ詳しく。typeScriptでジェネリクス使うようになった新参だからなんのことかわからん。
これ詳しく。typeScriptでジェネリクス使うようになった新参だからなんのことかわからん。
875デフォルトの名無しさん
2017/10/06(金) 19:11:52.24ID:avQrunR/ NullPointerExceptionがことさら悪いことのように言われるが
俺にはどーも単に他のバグ(?)と違いが分からない
意図通り書かれてないからバグ(?)るんであって
いつだって、書かれたとおりに動いてるだけのことであって
俺にはどーも単に他のバグ(?)と違いが分からない
意図通り書かれてないからバグ(?)るんであって
いつだって、書かれたとおりに動いてるだけのことであって
876デフォルトの名無しさん
2017/10/06(金) 20:00:20.02ID:VLsCvj8e >>875
ググれ
ググれ
877デフォルトの名無しさん
2017/10/06(金) 20:21:56.80ID:Rv6hBe2m nullで初期化して後で代入しようしたら急に例外が来て脱出することがある
その例外を処理する途中でバグるから他のバグよりも深刻
例外を投げない言語なら問題ない
その例外を処理する途中でバグるから他のバグよりも深刻
例外を投げない言語なら問題ない
878デフォルトの名無しさん
2017/10/06(金) 20:59:37.31ID:7QyvSB4A >>874
interface Hoge<TIn, TOut> { convert(val: TIn): TOut; }
class B extends A { ... }
このとき、Hoge<A, B> のオブジェクトを Hoge<B, A> として扱っても理屈上問題ないはずだろ?
それを可能にするのがジェネリックの変性という概念。
ちょっと考えたら分かるはずだが、変性が適用できるのは型パラメータが入力または出力のどちらか一方にしか使われていない場合だけ。
さらに、型引数が入力と出力どちらであるかによって、変化の許される継承の方向が逆になることも分かるだろう。
C#では、interface Hoge<in A, out B> のように型パラメータの方向を限定してやることで変性を与えることができる。
これ Java だとHogeを使う側で Hoge<? extends A, ? super B> と書くんだけど、意味不明だろ?
interface Hoge<TIn, TOut> { convert(val: TIn): TOut; }
class B extends A { ... }
このとき、Hoge<A, B> のオブジェクトを Hoge<B, A> として扱っても理屈上問題ないはずだろ?
それを可能にするのがジェネリックの変性という概念。
ちょっと考えたら分かるはずだが、変性が適用できるのは型パラメータが入力または出力のどちらか一方にしか使われていない場合だけ。
さらに、型引数が入力と出力どちらであるかによって、変化の許される継承の方向が逆になることも分かるだろう。
C#では、interface Hoge<in A, out B> のように型パラメータの方向を限定してやることで変性を与えることができる。
これ Java だとHogeを使う側で Hoge<? extends A, ? super B> と書くんだけど、意味不明だろ?
879878
2017/10/06(金) 21:07:24.53ID:7QyvSB4A すまんちょっと訂正
C#では、interface Hoge<in TIn, out TOut>のように
C#では、interface Hoge<in TIn, out TOut>のように
880デフォルトの名無しさん
2017/10/07(土) 00:18:08.77ID:ay0KJt9o881デフォルトの名無しさん
2017/10/07(土) 01:10:07.86ID:ZhYAfijB882デフォルトの名無しさん
2017/10/07(土) 01:14:59.49ID:ZhYAfijB883デフォルトの名無しさん
2017/10/07(土) 01:45:27.02ID:oYr2GY5l > 頭がいい人が隣に座ってくれてる感ある
この例え、ちょっとワロタ
この例え、ちょっとワロタ
884デフォルトの名無しさん
2017/10/07(土) 08:15:36.29ID:Wf+VpSRV >>881
全く違う。推論じゃなくて、Hoge<A, B>をHoge<B, A>にアップキャストできるってこと。
全く違う。推論じゃなくて、Hoge<A, B>をHoge<B, A>にアップキャストできるってこと。
885デフォルトの名無しさん
2017/10/07(土) 08:31:36.09ID:Wf+VpSRV 具体的な例を上げると、
例えば型パラメータに応じたオブジェクトを作成して返すFactory<T>インターフェースがあったとして
Factory<DBConnection>型をパラメータとして要求するメソッドに対して
Factory<OracleDBConnection>オブジェクトを直接渡せるってことだ
型推論じゃなくて型パラメータの互換性までを考慮したアップキャスト
例えば型パラメータに応じたオブジェクトを作成して返すFactory<T>インターフェースがあったとして
Factory<DBConnection>型をパラメータとして要求するメソッドに対して
Factory<OracleDBConnection>オブジェクトを直接渡せるってことだ
型推論じゃなくて型パラメータの互換性までを考慮したアップキャスト
886デフォルトの名無しさん
2017/10/07(土) 09:04:26.26ID:U1Wl1fD6 アップキャストって文字列みてレス内容スキップした
887デフォルトの名無しさん
2017/10/07(土) 09:25:02.60ID:FzxjfsDf List<object>にList<string>を代入できるってことだろ。
888デフォルトの名無しさん
2017/10/07(土) 09:58:03.30ID:h9TjUWM8 >>885,887
抽象度さがってるんだから、アップキャストじゃなくてダウンキャストじゃねーの?
抽象度さがってるんだから、アップキャストじゃなくてダウンキャストじゃねーの?
889デフォルトの名無しさん
2017/10/07(土) 10:27:19.45ID:fUAr46yo コンパイラやランタイムがキャストする方向
890デフォルトの名無しさん
2017/10/07(土) 11:54:57.90ID:ODmPff4g891デフォルトの名無しさん
2017/10/07(土) 14:40:09.93ID:U1Wl1fD6 俺はもう
(単なるType **を)ダブルポインタ
(単なるポインタ型の値渡しを)ポインタ渡し
(謎の用語)アップキャスト
(謎の用語)ダウンキャストの飛び出して来ない世界に旅立ちたい
(単なるType **を)ダブルポインタ
(単なるポインタ型の値渡しを)ポインタ渡し
(謎の用語)アップキャスト
(謎の用語)ダウンキャストの飛び出して来ない世界に旅立ちたい
892デフォルトの名無しさん
2017/10/07(土) 16:36:46.84ID:7mvjIKWG ポインタ(型の値)渡し
いかんのか?
いかんのか?
893デフォルトの名無しさん
2017/10/07(土) 17:33:27.49ID:ZhYAfijB894デフォルトの名無しさん
2017/10/07(土) 18:36:11.03ID:3J6O2fHU class ExtendsX a where { toX :: a -> X }
class SuperY a where { fromY :: Y -> a }
Haskellなら単なる関数にするだろ
キャストという謎の用語を使う必要がない
class SuperY a where { fromY :: Y -> a }
Haskellなら単なる関数にするだろ
キャストという謎の用語を使う必要がない
895デフォルトの名無しさん
2017/10/07(土) 18:37:08.45ID:U1Wl1fD6896デフォルトの名無しさん
2017/10/07(土) 19:08:57.97ID:ODmPff4g >>893
var f1: Factory<OracleDBConnection> = getOracleDBConnectionFactory();
var f2: Factory<DBConnection> = f1;
var conn: DBConnection = f1.create();
こういうこと
いちいち無駄な型パラメータを使う必要がない
var f1: Factory<OracleDBConnection> = getOracleDBConnectionFactory();
var f2: Factory<DBConnection> = f1;
var conn: DBConnection = f1.create();
こういうこと
いちいち無駄な型パラメータを使う必要がない
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★4 [七波羅探題★]
- 中国軍機レーダー照射、トランプ氏沈黙突く 試される日本外交 [蚤の市★]
- 【広島】「万引きした人を追跡」コンビニ店員の男性(46)を果物ナイフで刺したか 中国籍の少年(17)を殺人未遂容疑で現行犯逮捕 [ぐれ★]
- 【地震】青森県で震度6強 長周期地震動も 津波注意報すべて解除 ★7 [ぐれ★] [ぐれ★]
- 【サッカー】58歳カズ「オファーが来ている」 J3福島と近日中にも交渉 早ければ年内にも決断 [征夷大将軍★]
- 【速報】気象庁は津波注意報すべて解除 [蚤の市★]
- 【実況】博衣こよりのえちえち朝こよ🧪
- ヨッシー、ヘイホー、テレサ ←こいつらwwwwwwwww
- 【悲報】高市早苗の擬人化がXで大バズりwwwwwwwwwwww [455031798]
- さかまた「過呼吸になった」かなた「耳聞こえない」ござる「声出ない」まつり「ご飯食べれない」
- くそしてかがやけ
- 一人暮らしだからケツ出してみてるけど
