17/12/02 14:36:48.87 TzW9B0ui.net
静的型付けはQBみたいな奴だ
牢獄と契約は似たようなものと思うか全然違うと思うかは人それぞれ
51:デフォルトの名無しさん
17/12/02 15:29:44.21 JadDCVYU.net
52:じゃあどんな言語が好きですか?なぜその言語が 良いと考えるのですか?と聞くとダンマリ。
53:デフォルトの名無しさん
17/12/02 15:37:46.07 Jtrxh33g.net
そんなやついないだろ
54:デフォルトの名無しさん
17/12/02 16:02:09.41 ugnQ3p4B.net
>>38
ソース読めれば、ブラックボックス化は
防げるんじゃないの?
あなたが上げてるライセンスで、
ソースを読んではダメってモノは
ない気がするんだけど。
55:デフォルトの名無しさん
17/12/02 16:16:44.09 Jtrxh33g.net
仕様と実装は分けて考えるべき。
56:デフォルトの名無しさん
17/12/02 16:25:11.46 Dl6HEW0V.net
厳密に言えば配布されているソースと配布されているバイナリが違う可能性は存在するけどな
わかりやすい罠でも仕込まれてない限り検証不可能だろ、GPLであっても
57:デフォルトの名無しさん
17/12/02 17:35:29.54 /D9bpJpS.net
ライセンスは個人ならMIT、企業ならApacheが主流
緩いライセンスの上で企業が主導するというのが、昨今のオープンソース界隈
オープンソース同士の競争や発展が当たり前になって、落ち着くべきところに落ち着いた
GPLの衰退、寛容なオープンソースライセンスの興隆
URLリンク(japan.zdnet.com)
URLリンク(redmonk.com)
URLリンク(redmonk.com)
URLリンク(redmonk.com)
58:デフォルトの名無しさん
17/12/02 17:48:55.03 wMBa/T9i.net
>>53
GPLでない限り、どこかの瞬間にソースをクローズドにできてしまう
その違いくらい分かっとけ
>>56
そういうものは単にソースが公開されているだけで、企業にとって都合の悪いコードは入らない
開発姿勢の問題
59:デフォルトの名無しさん
17/12/02 17:54:11.74 wMBa/T9i.net
コードのソースが公開されていることと、プログラムに対する自由が保証されていることは全く違う
ちょっとは勉強しろ
URLリンク(www.gnu.org)
60:デフォルトの名無しさん
17/12/02 17:54:42.99 8J+E3A3v.net
クローズドにされた派生物は元のオープンソースにその企業なりの変更を加えたものだろ。
他の人はクローズドにされる前のオープンな方を使い続ければいいだけ。
61:デフォルトの名無しさん
17/12/02 18:00:12.16 wMBa/T9i.net
>>59
元コードのライセンス自体を変えられたらアウト。MITやAPLなら不自由なライセンスに変更することが可能
GPLならそういうことは不可能
62:デフォルトの名無しさん
17/12/02 18:05:29.89 9Vn/PEwl.net
今時、GPL真理教のご登場とは、驚きだな。
そういう人は、次世代言語がgccに組み込まれるまで、待ってたらいいと思うよ。
63:デフォルトの名無しさん
17/12/02 18:22:10.64 8J+E3A3v.net
新しく配布するライセンスを変更することはできても、一旦ライセンスされたものを過去に遡って
変更するなんてことはそのライセンス自体にそのような規定がない限り無理。
新しく配布するライセンスを変えるって話なら(その権利がある者なら)元がGPLだろうが可能なのは同じ。
64:デフォルトの名無しさん
17/12/02 20:05:49.99 u0grZgHmQ
そもそも、後からやっぱりライセンス変更してクローズドにしたら、
周りから強烈に反発されると思うんだよなぁ。
わざわざ周りから反発されてまでクローズドにするような
アホみたいな企業はたぶんいないんじゃないかな。
GPLのほうが良いというのは分かるが、それほど拘ることでもないと思う。
65:デフォルトの名無しさん
17/12/02 19:42:01.02 H6Gj4fb5.net
GPLも違反の場合の措置は国の法律に従うとかそんな規約だった気がするから、
国によっては過去に遡って棄却とかあるんじゃねーの?
66:デフォルトの名無しさん
17/12/02 20:00:19.24 JVkL85Me.net
言語屋の端くれって何者なんだ。
工学博士の端くれぐらいまではギリギリ言ってみようかとも思えるけど、言語屋って凄いな。
67:デフォルトの名無しさん
17/12/02 21:01:20.98 JadDCVYU.net
こんなところで喚くしか能のないゴミ屑が
ライセンスうんぬんで不利益被るほどの立場なわけないだろ
大人しくプェチピィで下痢糞プリプリしてろよ
68:デフォルトの名無しさん
17/12/02 21:01:40.00 /D9bpJpS.net
>>1
前スレ終盤でも名前挙がってたが、Elmバズってるな
本スレがない言語(Elm Nim Crystal他)もスレタイ候補でいいか
ElixirからElmの流れで、いよいよオブジェクト指向に対する懐疑心が無視できないレベルに達した2017年冬。
URLリンク(ubiteku.oinker.me)
69:デフォルトの名無しさん
17/12/02 21:16:27.51 vrpISaZz.net
OOを批判するのはいいけど消去法で関数型とか思うのは大間違い
消去法するくらいなら対案を何も出さない方が正しい
70:デフォルトの名無しさん
17/12/02 22:37:35.51 mYy0y04S.net
関数型の定義はよく分からんけど、第一級関数は欲しいな
71:デフォルトの名無しさん
17/12/02 23:58:45.47 IJ6GXagf.net
redux(react)触ったやつがelmに流れてるんだろうな。
js+redux+immutable.jsの組み合わせだったらelmってことかね
72:デフォルトの名無しさん
17/12/03 02:09:05.69 Ct3m3qtO.net
「じゃあお前はどんな言語なら満足なんだ」ってしつこく聞かれてるから言うが
次世代言語かって言われたら微妙だからあんま挙げる気はなかったんだが、理想はVala
Cにトランスパイルされるから速度は良好、コンパイラのライセンスはLGPL、構文は比較的モダン
ただ今時の他言語と比較するともう一声ほしい
73:デフォルトの名無しさん
17/12/03 02:59:41.58 Hpu25AWg.net
バラ、初めて聞いたわ
よくそんなマイナー言語知ってるな
74:デフォルトの名無しさん
17/12/03 03:18:35.47 Xzro6gH8p
>>71
ValaってC#に似てるというのは聞いたことがある。
前にサンプルコードを見たときに確かにC#っぽいなと思ったわけだが、だったらC#でいいじゃんと思ってしまう。
今ではXamarinとかUnityとかのおかげでC#あれば割と何でもできちゃうんだよな。
特に最近は.net coreとかでIL(中間言語)じゃなくてnativeコード吐けるようにさえなってきてるし。
俺の個人的意見だが、C#は文法が少し古臭いことを除けば超優秀言語なんだよ。
つまり構文的なメリットがないとC#から乗り換える気は起きない。そしてValaにはそれがないと感じる。
Cにトランスパイルされるメリットは分かるが「それだけじゃなぁ」って思った。
他にメリットがあるならもう少し詳しく説明してほしい。
75:デフォルトの名無しさん
17/12/03 09:08:16.53 J28DlChh.net
GNU狂儲じゃない人にとってはValaなんてC#の劣化コピー未満だし、
C#は現世代言語だから次世代には不適格だろう
76:デフォルトの名無しさん
17/12/03 12:08:02.85 7jfP6ZRC.net
その性能を見せてくれたら変わるかもしれんけどな
.NETのメモリを食い尽くす糞戦略GCが無いというならまあ……
Cにトランスパイルされて性能良好という点ではnimと丸かぶりな上
基本的にnimのほうが融通がききそうな気はするけど
GObject互換が有利に働くケース(例えばcairo呼ぶとか)ではValaの方がいいんだろう、たぶん、知らんけど
77:デフォルトの名無しさん
17/12/03 15:33:23.03 Es8BrMdC.net
まあだからValaが次世代言語とは一言も言ってない
例えばNimのコンパイラが(L)GPLになってくれてれば全力で推すよ。でも現実はMITだ
78:デフォルトの名無しさん
17/12/03 16:03:56.50 Cfl2NYpj.net
>>60
Linuxなど極一部の例外を除いて、今時のまともなOSSは基本的に全て企業様が開発しており、
寛容にも乞食に対して提供してくださっているものである
GPL信者が主張する、企業が成果物をGPL化するメリットとして、
「コミュニティからの協力を受けられる」というのがあるが、(乞食共の協力がどれだけ役に立つかは別として)これには落とし穴がある
GPLで公開してるものに対して乞食がプルリクを出し、これが本家にマージされた時点で、本家のソースがGPLに感染するということだ
これは企業にとって到底受け入れられるものではない
GPLは企業のオープンソースへの参加の障害になるんだよ
79:デフォルトの名無しさん
17/12/03 16:11:23.39 Cfl2NYpj.net
>>77
補足
本家のソースがGPLに感染するというのは、開発元の企業自身が、ソースの使用にあたりGPLに従わなければならなくなるという意味な
成果物をドブに捨てるようなもんだ
80:デフォルトの名無しさん
17/12/03 16:16:53.98 ySR1wv1e.net
そういうものはデュアルライセンスで公開するんじゃないか普通。知らんけど。
81:デフォルトの名無しさん
17/12/03 16:17:53.46 LB13FI05.net
逆に考えれば自分がただで作ったものが企業の金もうけに使われるのを防いでるわけだろ。
そういういみでGPLは必要。
82:デフォルトの名無しさん
17/12/03 16:32:50.74 Cfl2NYpj.net
>>80
そう。つまりこういうことだ。
ユーザーからのコミットを受け入れるというポジティブな理由でオープンソースを採用するならGPLは不適切。
オラクルのように、有償契約への誘導を前提としてオープンソース版を撒き餌にするなら、
成果物の盗用を防ぐ意味でGPLが適切。
本来OSS信者が批判すべきなのはどちらだろう?
一度落ち着いて考えてみよう。
83:デフォルトの名無しさん
17/12/03 16:46:21.13 Es8BrMdC.net
だから「自由ソフトウェア」と「オープンソースソフトウェア」は違う概念って話だよな
そもそも企業が主導してる開発は、企業の恣意が入るわけで、自由ではない
今は乞食に恵むことが点数になるからそうしてるだけ
乞食に甘んじるならそれでいいかもしれんがな
一念発起して自分の畑を開墾することになったときに、GPLがないと企業に土地を盗まれたり、いつのまにか乞食に占拠されたりするんだよ
だからGPLの言語は重要なんだよ
84:デフォルトの名無しさん
17/12/03 16:47:34.26 Cfl2NYpj.net
もっというと、
・プロジェクトにコミットした個人乞食にとって、そのプロジェクトの最新の成果物を継続的に利用できる利益を守るのがGPL
・開発元の企業にとっての利益を守るのが「寛容なライセンス」
ということだ。そして、下記の理由から、後者を優先したほうがOSS全体にとっての利益が大きい。
・一般に、個人より企業の方がOSS遥かに多くの貢献をしているから、企業の参入を促したほうがOSSは拡充する
・当たり前だが、利用者にとっては寛容なライセンスの方が利用しやすい
85:デフォルトの名無しさん
17/12/03 16:50:27.91 MdLc4Lg3.net
>>80
別にGPLは金もうけに使うことを防ぐためにあるわけじゃないよ。
実際、金もうけだろうがなんだろうが単純使用については制約を設けることを禁止してるわけだし。
86:デフォルトの名無しさん
17/12/03 16:52:07.39 dv78RNI3.net
個人で出来る開発なんて限られてるから企業が参入してくれたほうがいいし、企業は慈善団体じゃないんだから利益考えるのは当然だろ
企業がーステマがーって気持ち悪すぎる
87:デフォルトの名無しさん
17/12/03 16:54:31.97 dv78RNI3.net
これだからワッチョイつけろと言ったのに
88:デフォルトの名無しさん
17/12/03 16:58:46.31 FoZg6mpZ.net
この板ってワッチョイあるの?
89:デフォルトの名無しさん
17/12/03 17:00:11.80 Q+UzJ2jP.net
わざわざ次世代言語スレに来て、
「俺ルールにより、全ての言語は次世代ではない!!」
ってマ?
90:デフォルトの名無しさん
17/12/03 18:06:19.80 vwbP6I+a.net
GPLは自分が作ったものだけじゃなく使ったものにも影響を及ぼすからなあ
LGPLが一番マトモなんじゃないかと思ってるんだが
91:デフォルトの名無しさん
17/12/03 18:39:22.73 sBoz0VTg.net
>>83
OSSが拡大しても自由ソフトウェアは拡大しない
まあ言語スレでやるべき話題ではそろそろなくなってきてるのはすまん
92:デフォルトの名無しさん
17/12/03 18:44:51.43 n/4R2J1f.net
望まれてないから拡大しないんだ、ってのが分からないところが儲
93:デフォルトの名無しさん
17/12/03 18:51:18.78 9khz2s/N.net
>>88
いつもの事だよ
94:デフォルトの名無しさん
17/12/03 19:06:01.80 Hpu25AWg.net
>>88
次世代ガイジ
95:デフォルトの名無しさん
17/12/03 19:07:55.59 fDoYnNZt.net
>>19
まあ、大企業がサポートしてるからこそ信頼性が増すんだけどね。
弱小勢力の作ってる言語なんざいつやる気が無くなってサポート停止するかわからんのに
使ってられないよ。
96:デフォルトの名無しさん
17/12/03 20:15:24.10 GYPu5Uwk.net
サポートを永久に続けさせたいとは思ってないんじゃないかな
ただ、無料版だけサポート停止して有料版に移行させる手口を防ぐだけでいい
97:デフォルトの名無しさん
17/12/03 20:40:28.46 T5z0rd35.net
このガイジの言葉を全否定するが、別に言語の処理系のライセンスがGPLだろうと非GPLだろうと
その言語で書かれたプログラムのライセンスには何も影響しない
Javaの処理系がクローズドソースだった時にJavaコードがオープンソースにできなかったかってことを考えればすぐ分かる
言語の仕様がオープンなら、もしこのガイジの懸念どおり処理系をオープン→クローズドソースにされたところで
本当にその言語が有用だったらクローンの処理系が出てくるだけのこと。open-jdkやらmonoが良い例だ
要するにこのガイジ、ライセンスのことを何も分かってない知ったか
98:デフォルトの名無しさん
17/12/03 20:46:25.36 T5z0rd35.net
ガイジを殴るだけのレスだと何なので
Haxeみたいな「書いた端からあらゆる言語にトランスパイルして使う言語」ってやっぱりコンセプトとして駄目なのかね?
最近のいわゆる次世代言語って、おおむねネイティブ(もしくはJavaマシンコード)にコンパイルする系ばっかのはず
例外はTypescriptとHackくらいか?
99:デフォルトの名無しさん
17/12/03 20:55:26.88 GYPu5Uwk.net
93,94をまとめると
GPLなコードを再利用しつつ有料版に移行させるのは無理
コードを捨ててクローンするならOK
100:デフォルトの名無しさん
17/12/03 21:05:47.23 RLNGue2S.net
>>96
Javaに関しては、openjdkを勝手にフォークして改変したものを出回らせたら特許侵害でオラクルに訴えられるよ
特許の利用はあくまで公式にリリースされたopenjdkに対して認められてるもので、
弄ったらJavaとは認められなくなり即訴訟
101:デフォルトの名無しさん
17/12/03 21:19:08.36 T5z0rd35.net
>>99
すまん、open-jdkっていうのは不正確だったな。IcedTeaって言った方が正確だった
まあ厳密にはIcedTeaも当時のSunの協力あってのことで、勝手フォークでやった訳ではなかったんだが……
102:デフォルトの名無しさん
17/12/03 21:19:33.27 7jfP6ZRC.net
>>97
中間言語のせいで遅くなってる直接アセンブリ(機械語より広い意味で)にできるなら効率的なのにグギギギギ
というのを気にしなければトランスパイラでもいいんじゃね
Typescript→Javascriptぐらいなら気にならんだろ
Scalaとか思いっきりJVMに足を引っ張られてた例と思う
ちょっと話は違うけど可変長配列を値返しできる言語を主にC系のことしか考えてないバックエンドで実装すると
mallocして返すかForthみたいにデータスタックをもう一つ用意するかぐらいしか方法がない、みたいな
103:デフォルトの名無しさん
17/12/03 21:29:59.69 7jfP6ZRC.net
書いてからもっといい例を思いついた
トランスパイル先に選ばれそうな言語(CとかJVMとかJavascriptとか)って
どれも末尾呼び出し最適化が保証されてないから関数型言語なら避けたいはず
104:デフォルトの名無しさん
17/12/03 21:51:34.72 XVQ9VXzY.net
末尾再起最適化なんかトランスパイルの段階でできるだろ
自分でやってみりゃわかるけど、別の言語への変換って細かい仕様のすり合わせが難しくて
どう頑張っても変換結果は綺麗なコードにはならんよ
105:デフォルトの名無しさん
17/12/03 22:16:35.41 7jfP6ZRC.net
>>103
自身への末尾「再帰」は変換できるが、末尾「呼び出し」一般はかなり難しい
特にモジュールをまたぐとまず無理
106:デフォルトの名無しさん
17/12/03 22:18:35.13 2u990JKW.net
臭い消しもできないのかID:7jfP6ZRCは
107:デフォルトの名無しさん
17/12/03 22:31:58.75 7jfP6ZRC.net
なんだ?誰と間違えられてるんだ?
108:デフォルトの名無しさん
17/12/03 23:20:51.54 8Yd/vHN3.net
トランスパイルする時点で全部gotoにしちゃえばいいんじゃねえの?
ヒープは馬鹿でかい配列切り出して貸してやりゃ良いじゃん。
一番現実的だと思うけど。
と言うか間違えられてかわいそうだな。
109:デフォルトの名無しさん
17/12/03 23:24:33.80 8Yd/vHN3.net
トランスパイラだから、トランスパイル先の言語の作法を守らにゃならん、なんてトランスパイラは
どっちつかずのゲテモノになるなんてのが歴史的にある程度わかってきたんだから、諦めて超高級マクロアセンブラとして使うべきだと思うが、
やっぱそのトランスパイル先の美しさって必要なのかねぇ。
110:デフォルトの名無しさん
17/12/03 23:25:29.18 Q+UzJ2jP.net
くっさ
111:デフォルトの名無しさん
17/12/03 23:27:40.12 8Yd/vHN3.net
>>92
は臭くなかったのに面白いな。
112:デフォルトの名無しさん
17/12/03 23:52:53.39 7jfP6ZRC.net
>>107
ありがとうありがとう
で、goto式だと呼び出し先も含めてひとつの関数にまとめないといけないので
他の関数をtail callしているのがつながって爆発的にコードサイズが膨れ上がる
JVMだと64kbの壁があるとかないとか URLリンク(togetter.com)
またモジュールを超えるとアクセス制御にかかったりもする
113:デフォルトの名無しさん
17/12/03 23:52:56.38 H7G92E6b.net
>>102
javascripというかecmascriptは末尾再帰の最適化は仕様になってる。
114:デフォルトの名無しさん
17/12/04 00:00:49.77 bhxDUAa4.net
>>112
うお本当だ、俺の情報が古かった
115:デフォルトの名無しさん
17/12/04 04:42:05.46 76LtUM8J.net
Cにはlongjumpがある。
これを使えば親の関数へどこへでも飛んでいける。
末尾再帰もオプションで設定できる。
116:デフォルトの名無しさん
17/12/04 08:25:09.89 USho8dw3.net
>>111
JVMだとgotoが相互に飛んでない奴らで一つの関数にまとめるしかないな。
ただ、一つの関数が64kbまで、ってそこそこ余裕あると思うよ。
関数に関数をおさめようとするから爆発的に長くなるというか、実質、関数の後ろにおまけ付いたコードが量産される事になるんだと思う。
呼び出してる側まで全部展開してしまうと割と短くなる。
昔、ホントにそういうトランスパイラ作ったけど、割としっかり動いた。
動的なメモリ確保をほとんどさせられなかったからそうなっただけだけど。
>>114
ホントに高級アセンブラだよなぁ。
117:デフォルトの名無しさん
17/12/04 08:30:55.17 8gND/ZcP.net
くっさNG回避すんな
118:デフォルトの名無しさん
17/12/04 09:02:24.71 dvJUWhXs.net
jsへのトランスパイラは現状、
jsが、webにおける機械語的な立ち位置
だからというのはわかる。
でもcへのトランスパイラってどんな意味があんの?手抜きとしか思えない。
119:デフォルトの名無しさん
17/12/04 09:38:18.50 76LtUM8J.net
手抜き出来ることはメリットだろ。
実装と仕様は分けて考えるべきだからな。
120:デフォルトの名無しさん
17/12/04 10:10:11.02 1pGzw3aP.net
手抜きっつーか、Cに変換しておけば、おおむねどんなlibcでも石でも対応するコンパイラがあるってことでは
GoみたくあらゆるものをGo内で完結させるための車輪の再発明だとか
Rustみたく欲しい環境のtripleがあるかとかtierがいくつだとか
そういう言語機能と直接的には関係ない部分のサポートに関する労力をまるっと切れるのがでかい
一時期のaltJavaやaltJSの乱立を見てると、その分言語の質が上がるかって言われたら怪しいけどな
あとllvmの台頭で、ある程度その辺を再利用できる環境が整ったから、直接機械語吐いた方がよくなりつつあるのもあるか
121:デフォルトの名無しさん
17/12/04 10:54:56.82 dvJUWhXs.net
>>119
自分で言ってんじゃん。
llvmだったら中間コードまでのトランスパイラ作れば最適化とバイナリはくまでやってくれるしそこまでやりゃ良いのに。
あとgoの車輪の再発明はありだと思う。
画像変換したくてimagemagicのlibに依存する羽目になるとか勘弁。
122:デフォルトの名無しさん
17/12/04 11:02:06.37 HnGSLV9z.net
車輪の再開発はありとか自分が作る立場でも同じこと言えんの
123:デフォルトの名無しさん
17/12/04 11:02:26.62 USho8dw3.net
>>117
最適化とかそういう所にそれほど苦労しなくなるかな
手抜きといえば手抜きなんだけど
gccをバックエンドにするなら変な石対応が簡単だし
vc++でも食えるように書けばWindowsでも余計なもの要らないし
intelのコンパイラでゴリゴリに最適化かけたりとか、
静的ビルドでワンバイナリ作りたいからCの方のコンパイルオプションでリンクしよう、とか
既存の処理系に乗っかるのはメリット多いと思う
124:デフォルトの名無しさん
17/12/04 11:39:21.16 1pGzw3aP.net
>>120
llvmが台頭してきたから相対的にCトランスパイルの魅力なくなってきたよなって話で、
昔はCトランスパイラで既存のコンパイル環境に乗っかるのがよく行われてたって歴史的な話な
gccが中間言語仕様を意図的に隠してた弊害とも言える
125:デフォルトの名無しさん
17/12/04 13:22:03.65 s0HrNGdY.net
手抜きを批判する奴おるw
126:デフォルトの名無しさん
17/12/04 23:23:47.01 IjdODrQV.net
実質的にはトランスパイルだろうが何だろうが、とりあえずは関係ないが
今時ライブラリ構築を0からするというのは自分一人が使う自分専用言語だと考えても
汎用言語としてはあり得なくて、何か既存の言語のソレにフリーライドせざるを得ないわけで
となれば何に乗っかるかという部分から考えるし
それが決まってから具体的な実装方を考えるし、なんだったら自動的に決まってくるわけで
余談だが、良くある乗っかり先としては、CとJavaと.NetとJSがあるが・・・
ただ、例えばネイディブコードが良いと考えてC言語系のライブラリに乗っかるとして
C言語のABIはかなり古臭いわけで、あと、ヘッダファイルの存在がかなりエグイわけで
(windows.hをそのまま読み込める自作コンパイラとか書ける気がしない)
その言語で何かCのライブラリを使いたいときCヘッダファイルを適切に移植したのち
使いやすくするためにラッパークラスまで書くとしたら
これはもう多少気に入らない部分があってもC++を使ったほうが楽だし
ヘッダを移植するツールで自動生成する方針でも古臭いCのAPIを直接叩くのなら
何のための新言語か分からないし、だからといってラッパー書く�
127:フはバカらしいし 大概のCライブラリにはC++のヘッダも付いてることを考えるとそのままC++使ったbルうがマシ もしC言語のヘッダを直接読めるように言語を設計するとなるとマクロなども考えると C言語と文法的に互換性が有るように言語を作らなければならないということで これまたあまり作る意味が無い、というか多分C++
128:デフォルトの名無しさん
17/12/04 23:36:03.78 IjdODrQV.net
なんで、素晴らしい言語仕様を考えることは出来るかもしれないし
頑張ってコンパイラを作ることも可能かもしれないが
結局ライブラリをどうするのかという部分が一番の問題で
0から構築するのはあり得ないから何かに乗っかるわけだが
当然乗っかり先の制約を受ける
特にネイティブコード系は一番普及しているABIがC言語のソレであり
気に入らないのでひたすらラップしまくる日々か
諦めて次世代言語の機能を生かせずアンセーフとか言っちゃって直接叩くか
129:デフォルトの名無しさん
17/12/05 07:59:12.87 8RhNw6Wh.net
次世代言語はコレだろ
URLリンク(arstechnica.com)
130:デフォルトの名無しさん
17/12/05 08:02:00.55 hRLlSr5E.net
M$サーバでしか動かない言語はNG
131:デフォルトの名無しさん
17/12/05 11:01:11.59 NtWJrTYb.net
Win鯖で運用されない = Win鯖で使えない
だからな
リーナスが死んだら終わりな言語とかよく使えるな
132:デフォルトの名無しさん
17/12/05 11:03:08.63 wKllXbtS.net
リーナス死んだらUnixサーバー終了ってマ?
133:デフォルトの名無しさん
17/12/05 14:15:20.69 3OMBWQX7.net
どうでもいいが長すぎる文章は読まないからな。もっと要約して話せ
134:デフォルトの名無しさん
17/12/05 14:25:30.36 wKllXbtS.net
あのスペースホルダー邪魔だよな
135:デフォルトの名無しさん
17/12/05 15:43:17.12 V+NdjayN.net
AutoMLが次世代言語らしいな。
136:デフォルトの名無しさん
17/12/05 19:36:47.33 ueMa998Y.net
>>129
君の言っている意味がよくわからない。
言語?
137:デフォルトの名無しさん
17/12/05 21:42:34.05 uUkZwDzW.net
>>130
今のリーナスは、リリース担当兼広報。
実際のリリーススケジュールとか開発機能とかは
スポンサーの企業が決めている。
138:デフォルトの名無しさん
17/12/05 21:54:34.45 XBgkE6Xw.net
リリリリリリリリリリリリリ
139:デフォルトの名無しさん
17/12/05 21:56:16.41 wKllXbtS.net
リーリスリリースリーリリスリリリリリーリスリー
リーリナリリーナリーリリナリリリリリーリナリー
140:デフォルトの名無しさん
17/12/05 21:56:27.08 TliYC8gy.net
Elixir から Elm の流れで、いよいよオブジェクト指向に対する懐疑心が無視できないレベルに達した2017年冬。
URLリンク(ubiteku.oinker.me)
141:デフォルトの名無しさん
17/12/06 00:55:40.02 5Fm3uunR.net
ブログ記事は信用しない
マウント取るためだけの批判の連鎖がよくあるんだと、フロントエンド界隈で学んだ
142:デフォルトの名無しさん
17/12/06 01:45:10.28 TwrP1kt8.net
でも2ちゃんは信用しちゃいまつw
143:デフォルトの名無しさん
17/12/06 01:47:25.25 6LacDPiL.net
OCamlをやるとプログラム中でオブジェクト指向を使った抽象化が必要な場所はほとんど無いことに気付くよ
144:デフォルトの名無しさん
17/12/06 02:00:40.62 9Cl2Q0EY.net
オブジェクト指向って抽象化なのか?
プログラミングで扱うのは本質的には「操作」だが、それは人間にとって抽象度が高く理解しづらい(と考えられていた)から、
仮想的なモノに見立てることで具象化したのがオブジェクト指向だろ
145:デフォルトの名無しさん
17/12/06 02:19:19.87 EoxkbCFV.net
メモリとかハードウェアまわりを触るのが具象で
オブジェクトのような仮想的なものを扱うのが抽象だと思っていた
146:デフォルトの名無しさん
17/12/06 02:38:24.20 TwrP1kt8.net
>>143
コレメンサスンゴな
147:デフォルトの名無しさん
17/12/06 03:37:41.63 s/vk2t6t.net
>>141
OCamlのOの意味を考えたことあるかい?
148:デフォルトの名無しさん
17/12/06 08:37:01.32 omJYBD6x.net
>>145
名前に入ってようがなんだろうが OCaml で 殆ど誰もOO しないのは端的な事実
149:デフォルトの名無しさん
17/12/06 08:38:30.89 KSpOhWT+.net
OCamlだからこそでしょ
150:デフォルトの名無しさん
17/12/06 08:43:46.19 omJYBD6x.net
OCaml ではまず OO なんかしない件についての説明
URLリンク(d.hatena.ne.jp)
URLリンク(d.hatena.ne.jp)
151:デフォルトの名無しさん
17/12/06 08:58:33.91 LlbO+WJR.net
正確にはocamlに文法として用意されたclass/objectを誰も使わないという話で、代わりにモジュールを使って抽象型も多態もするわけでそれはそれでOOの一種だとは思うな
152:デフォルトの名無しさん
17/12/06 09:03:36.38 mFUG6oMG.net
関数型言語をやたら持ち上げてるけど
OSを関数型言語で書いてみてよ。それでバグか少なかったら関数型言語の優位性を認めるよ。
153:デフォルトの名無しさん
17/12/06 09:06:07.69 omJYBD6x.net
>>149
>代わりにモジュールを使って抽象型も多態もするわけでそれはそれでOOの一種だとは思うな
ぜんぜん違うから
だがそこから説明すんの面倒くさいのでもういい
154:デフォルトの名無しさん
17/12/06 09:09:24.32 omJYBD6x.net
>>150
>OSを関数型言語で書いてみてよ。それでバグか少なかったら関数型言語の優位性を認めるよ。
高水準言語でOS書けって頭悪すぎないか
Rustを関数型と認めるゆるい基準なら Redox がある
155:デフォルトの名無しさん
17/12/06 09:22:35.91 mhTOyNgr.net
>>148
言語の糞さと、周りの人間が糞だからってことばかりで、全然説明になってないな
156:デフォルトの名無しさん
17/12/06 09:45:25.42 enrVe2xz.net
>>139
>マウント取るためだけの批判の連鎖
これなくすだけでよくなるプロジェクトって世の中に大量にありそう。
157:デフォルトの名無しさん
17/12/06 09:59:23.03 26uEwiQD.net
>>151
俺も書いてからしまった面倒くさくなる話やと思った
やめとこう
158:デフォルトの名無しさん
17/12/06 11:07:54.33 YJV2uZev.net
オブジェクト指向ってそんなにだめかな?
そのオブジェクトに対する操作をそのオブジェクトに持たせるってわかりやすくていいけど。
immutable.jsのレコードみたく、
メソッドは新しいインスタンスを返す関数と強制すれば関数型とも共生できると思うんだけど。
159:デフォルトの名無しさん
17/12/06 11:16:45.83 enrVe2xz.net
別に悪いってことはないだろ。
結局、状態や依存をどう管理するかって話なわけで、極論言い始める奴の
いうことなんて話 2 割くらいにきいてりゃいいと思うけど。
160:デフォルトの名無しさん
17/12/06 12:05:10.45 MKeQWAFs.net
JavaScriptのようにハッシュテーブルとラムダを使う言語は関数型と共生できる
じゃあハッシュテーブルを使わない言語はなんで使わないのか?
その答えは、関数型とオブジェクト指向の対立とは全然関係ないところにある
161:デフォルトの名無しさん
17/12/06 21:34:09.17 iLCXc0pa.net
DOMをデータと関数に分離してくれ
162:デフォルトの名無しさん
17/12/06 22:04:59.32 FKF62WXq.net
まずデータをどれだけ圧縮できるか考えるといい
次に圧縮されたデータを展開する関数を作る
163:デフォルトの名無しさん
17/12/06 23:57:54.56 omJYBD6x.net
>>153
>言語の糞さと、周りの人間が糞だからってことばかりで、全然説明になってないな
はははははははwwww
ま、がんばれw
164:デフォルトの名無しさん
17/12/07 00:47:57.07 Z/mKUUkc.net
>>141
SML#でもいいですか?
165:デフォルトの名無しさん
17/12/07 01:34:26.91 F4+mjT1z.net
自分PHPいいっすか?
166:デフォルトの名無しさん
17/12/07 09:58:12.13 hv/QEVwp.net
語りたいことがあるんならいいんじゃない?
167:デフォルトの名無しさん
17/12/07 10:03:56.61 xdMp5osr.net
typescript使っててasync awaitが便利なんだけど煩わしい。
mapとか関数呼び出しを伴う操作で非同期処理に戻るのが、
たまにミスって放置しがち。
lintツールで指摘するなり監視する機能が欲しい。
先行してるC#とかはうまくやってるの?
168:デフォルトの名無しさん
17/12/07 11:18:40.20 9qRtkK/n.net
ミスを指摘するしか能がない批評家に存在価値はあるのだろうか
169:デフォルトの名無しさん
17/12/07 11:39:07.45 v/1e0blE.net
>>166
ミスを作り出す無能に価値はあるのだろうか
170:デフォルトの名無しさん
17/12/07 12:08:44.81 hv/QEVwp.net
何がミスなのかもわからず客が文句言ってるからで判断するバカ営業よりは価値がある。
171:デフォルトの名無しさん
17/12/07 22:26:33.23 4FM+mzbe.net
This Woman Created a Programming Language with Privacy Baked In
URLリンク(www.youtube.com)
172:デフォルトの名無しさん
17/12/09 02:52:58.92 Fh8F1Mjo.net
Haskellの型クラスって凄く良い機能だと思うんだけど、地味に数学感足りないよな
NumってなんだよNumって。もうちょっと分解しろよって感じだ
Numeric preludeあんまり使われてないみたいだし
173:デフォルトの名無しさん
17/12/09 11:23:01.73 /ZpR40F0.net
HaskellはStrictData拡張とStrict拡張が入った事で
実用的な次世代言語になる可能性が出てきた
174:デフォルトの名無しさん
17/12/09 23:10:56.50 OmTdA8EX.net
正格も遅延も使える言語と化したHaskell先輩
175:デフォルトの名無しさん
17/12/10 02:42:38.28 a6n4XEL6.net
型なし能なしのゴミ屑言語の何がいいんだろうな
ペチパーは論外、ルビーもガイジだわ
176:デフォルトの名無しさん
17/12/10 04:06:55.10 Cg9x5qL1.net
動的型付けというだけで別に型がないわけではないので注意
177:デフォルトの名無しさん
17/12/10 05:03:18.54 cDa6l0J8.net
>>170
あれはSmalltalkってゴミ言語がヒントになった機能だからね
なぜ最初から高階多相にしなかったんだろう
178:デフォルトの名無しさん
17/12/10 05:14:36.81 7QrhdqaC.net
ハスケルは実用性重視で機能を絞ってるからな。
179:デフォルトの名無しさん
17/12/10 05:53:37.29 g4Avn4JH.net
自己書き換えもできないハスケルはプログラム言語と呼ぶに値しない
純粋関数型プログラム言語(自称)ハスケルw
180:デフォルトの名無しさん
17/12/10 05:56:33.48 of8IRKO8.net
Haskellは+や-といった演算子がNumに取られてるせいで
オーバーロード的なことが非常にやりにくいのが不便
<+>みたいな演算子は独自定義できるがなんかダサい
181:デフォルトの名無しさん
17/12/10 10:16:20.55 a6n4XEL6.net
>>174
そういう詭弁はいらないから
182:デフォルトの名無しさん
17/12/10 10:28:42.10 dcXB++ys.net
>>179
ガイジ
183:デフォルトの名無しさん
17/12/10 10:35:00.41 IzGEuZzn.net
詭弁でもなんでもないだろ
静的言語の型こそまやかしだと思うが。
特にそれがただの「コンパイラだけが知っているメモリへの格納方法」である言語は、動的言語の型よりも型がないと言えると思うけど?
184:デフォルトの名無しさん
17/12/10 11:12:55.67 mFrbF+Wk.net
はいはいペチパーはPHPスレから出てくんなクソが
君の大好きな肥溜めPHPみたいな動的型付け言語に型はねーから
185:デフォルトの名無しさん
17/12/10 11:14:50.34 a6n4XEL6.net
ほらな
型なし能なし詭弁あり(藁)
186:デフォルトの名無しさん
17/12/10 11:33:37.68 ATSfYuOI.net
まあいくら静的型でも本物のコンパイラはこんな性格悪くないから気にするな
ここにいるやつはコンパイラの守護霊だ
187:デフォルトの名無しさん
17/12/10 12:16:37.53 OZ32lk+t.net
動的でも静的でも最近は型は強くする方向にはあるかもね。
c とか perl に比べれば java でも python でも十分型を強くしてる印象。
188:デフォルトの名無しさん
17/12/10 12:39:27.35 1f8aW6Mh.net
真に型がない言語とはfortran77みたいな言語のことだと思う
189:デフォルトの名無しさん
17/12/10 13:03:02.46 IzGEuZzn.net
PHPだとは言ってないのにな。
そもそもPHPと口に出すのこいつぐらいじゃね?
190:デフォルトの名無しさん
17/12/10 13:04:01.49 IzGEuZzn.net
>>186
あるいはlispか。
191:デフォルトの名無しさん
17/12/10 13:44:56.60 H+wQ5ZRg.net
>>175
Smalltalkは自身がゴミ言語であるだけでなく
後世の言語にも負の影響を与えてるので
本当に害悪だな
192:デフォルトの名無しさん
17/12/10 13:58:51.02 a6n4XEL6.net
>>187
はいはい
サボってないで早く保守作業に戻ってくださいね(藁)
193:デフォルトの名無しさん
17/12/10 14:14:10.45 ATSfYuOI.net
型情報に限らず情報ってのは冗長な部分が省略される
省略したからといって必ずしも情報が失われるわけじゃない
194:デフォルトの名無しさん
17/12/10 14:59:04.47 harEA0jS.net
逆に考えよう。「型がある言語」とは何だろうか
195:デフォルトの名無しさん
17/12/10 15:25:19.15 Hk+Muhn7.net
皮肉も理解できないペェチピィコンパイラ並の低脳ガガイノガイがおりゅってマ?w
196:デフォルトの名無しさん
17/12/10 15:49:43.53 cU10YPQo.net
市民、PHPコンパイラとはなんですか?
197:デフォルトの名無しさん
17/12/10 15:51:27.08 ATSfYuOI.net
>>192
型情報があるだけでなく情報を取得するアルゴリズムがある言語
アルゴリズムがあればモンティホール問題みたいに計算を間違えるやつが続出しない
198:デフォルトの名無しさん
17/12/10 16:07:22.03 1f8aW6Mh.net
>>188
多重ディスパッチ出来る言語が型なしってことはないだろ
199:デフォルトの名無しさん
17/12/10 16:49:06.60 g4Avn4JH.net
>>182
君が型理論を知らないことはよくわかった
ばーかw
200:デフォルトの名無しさん
17/12/10 17:16:26.74 cU10YPQo.net
>>197
ぺちぱーがwwwwww
型理論をwwwwwww語るwwwwwwww
今年一番笑ったわwwwwwwwwwwwww
201:デフォルトの名無しさん
17/12/10 18:08:14.35 7rwMCdFh.net
PHPをけなしてるだけのやつって、ほかの言語知らないから、PHPをdisって心の平穏を保ってる、可哀想なやつなんだろうな。
頑張れよ。
202:デフォルトの名無しさん
17/12/10 18:09:23.94 7rwMCdFh.net
因みに、俺もPHPerは害悪だから滅びろって、思ってるけどな。
203:デフォルトの名無しさん
17/12/10 18:31:37.52 W721E1OC.net
>>199-200
声に出して読みたい日本語
204:デフォルトの名無しさん
17/12/10 19:17:10.74 g4Avn4JH.net
>>198
おだいじにね
205:デフォルトの名無しさん
17/12/10 19:23:08.38 1f8aW6Mh.net
自己書き換えできるかどうかでプログラム言語と呼ぶかを決め奴がなんか言ってる
206:デフォルトの名無しさん
17/12/10 19:50:19.80 Hk+Muhn7.net
けなすってーかただの事実言うてるだけやん
ゴミ言語のペチプァ~さんは何をそんなに怒ってるだ今さら?
207:デフォルトの名無しさん
17/12/10 20:53:52.22 OZ32lk+t.net
興味ない人間からすれば
いやもうわかったから。。
という感想しかない。
208:デフォルトの名無しさん
17/12/10 21:04:11.85 Hk+Muhn7.net
ほんとそれな
ペチプァさんは巣に帰って、どうぞ
209:デフォルトの名無しさん
17/12/10 21:57:41.07 a22e0iM0.net
PHPをdisっても顔真っ赤にして反論してくるヤツが居ないからツマラナイ
210:デフォルトの名無しさん
17/12/10 23:14:49.80 IzGEuZzn.net
PHPを必死に否定すること自体がよくわからんけどな。
そもそも作者が全部認めてるレベルのテキトーな言語なんだから、
PHPやってる奴ほど「そうだね、だから何なんだろう?」って思うような気がする。
よほど無念な思いをしたんだろうか。
211:デフォルトの名無しさん
17/12/10 23:17:46.82 1f8aW6Mh.net
くっさ
212:デフォルトの名無しさん
17/12/10 23:43:18.17 IzGEuZzn.net
出た、くっさ
213:デフォルトの名無しさん
17/12/10 23:55:28.34 Hk+Muhn7.net
くさ
214:デフォルトの名無しさん
17/12/11 00:44:55.69 LKeaMz/q.net
便器ブラシさんに草ひとまぶし・・・w
215:デフォルトの名無しさん
17/12/11 01:02:30.73 MQI53TiX.net
型話の荒れかたが凄いな
静的型付けの言語は実行時前に型の整合性を検証し
動的型付けの言語は実行時に型の整合性を検証する
で、前者はRTTIを基本的に必要とせず、したがってわざわざ保持しないので
(とはいえHaskell含め多くの言語でトリックが用意されているのだが)
メモリ空間についてオーバーヘッドが減り、型検査も事前に済ませておいて
実行時にはしないので、速度についてオーバーヘッドが減る。
ていうか、トイ言語でもいいから動的型の言語の処理系を実装したことがあれば、こんなのは間違えるはずのない話でな。
216:デフォルトの名無しさん
17/12/11 01:06:54.76 MQI53TiX.net
ホットにパッチ当てたいとかそういうごく特殊な要求がある場合には
動的型検査の方が優位性を持つことがあるけど、そうじゃない場合で
(たとえばH-Mくらいの範囲内で)静的に型のつかないコード書く必要なんて
まあまず実際にお目にはかからないよね
217:デフォルトの名無しさん
17/12/11 09:01:07.32 FO1afGiG.net
だけどその程度のことは皆わかっててやってることだから
いちいちドヤらなくてもいいと思う
218:デフォルトの名無しさん
17/12/11 16:48:07.12 ckqehrxf.net
型なんて捨ててビット列を毎回解釈しろ
219:デフォルトの名無しさん
17/12/11 17:16:22.00 SuGHSbgO.net
なんだかんだ言ってweb系はjava以外はphpかrubyが大半を占めてるんだから
静的言語最強とはならない気がする。
220:
17/12/11 17:21:22.26 maeT9tJH.net
静的型言語の安心感には満足している、つまらないミスを弾いてくれるから、頭の弱い私にはぴったりだ。
動的型言語の「綴りミスも許さない」方針にはついていけない
それとも動的言語でも option explicit な使い方が可能なのでしょうか?
221:デフォルトの名無しさん
17/12/11 17:56:27.18 RiNfuleo.net
option explicitにしたとしても、variantで宣言したら無意味だよね、Dictionaryのキーにあらぬものを使ったら落ちるよね、ってところでゴタゴタ言ってる。
ホントに宣言してないレベルの変数アクセスは大体の言語の静的解析で見つけられるんじゃないかな。
PHPの$$変数とかは無理だろうけど。
222:デフォルトの名無しさん
17/12/11 18:12:17.71 lStv0Fkk.net
てか普通にそのコード通るテスト書けよ。
223:デフォルトの名無しさん
17/12/11 19:33:23.48 MQI53TiX.net
テストは型検査みたいな静的検査と違って本質的に安全性を保証できないのでお門違い
224:デフォルトの名無しさん
17/12/11 19:40:27.25 Clwu9sNW.net
型検査を有り難がるのはテスト書かないドカタだけって結論出てるけどな
225:デフォルトの名無しさん
17/12/11 19:52:37.78 lStv0Fkk.net
お門違いの型の変数投げ入れて、
型エラー例外をトラップするようなテストかけばいいじゃん。
まあ手間なのはわかるけど、少しは頭使えばいいのに。
226:デフォルトの名無しさん
17/12/11 20:02:58.37 aR07dvjT.net
テストかかなくても、ソースを書いていること自体テストもかね、入力補完強化も兼ねるからいいんじゃないの?
227:デフォルトの名無しさん
17/12/11 20:05:57.20 FO1afGiG.net
それで動的型にする見返りがあるんなら良いんだが、何もないからなぁ
邪悪なことがしたい、以外のメリットが無い
少なくとも次世代言語の土俵に上がれないのは確かなので
このスレでミソカスな扱いになるのは仕方がないだろうな
228:デフォルトの名無しさん
17/12/11 20:14:05.81 lStv0Fkk.net
サクッとプロトタイプとしてフロントエンド作るなら圧倒的に動的のがラクだけどね。
規模が大きいんなら確かに静的でないと厳しいかなと思うけど。
229:デフォルトの名無しさん
17/12/11 20:29:57.04 wkifU5nK.net
プロトタイプで作って流行ったら作り直すならいいけどね
規模大きくなっても使い続ける企業多すぎ
230:デフォルトの名無しさん
17/12/11 20:30:14.73 pZMHEF9P.net
多重ディスパッチが好き
231:
17/12/11 20:42:49.31 maeT9tJH.net
>>219
variant 型を使うなんて、まるで void * だけでコーディングしろ、と強要しているようなもの
型の恩恵を自ら捨てる選択には疑問、Java の嘘嘘 generics にしてもありがたいくらいだ
232:デフォルトの名無しさん
17/12/11 20:45:00.55 FO1afGiG.net
俺なんかは型を書くのがそんなに面倒か?と思うし
あちらさんは型のテストを書くのがそんなに面倒か?と思うのかもしれないが
仮に、この二つが同程度の面倒臭さだったと仮定したら
その時点でバランスしてしまってるわけで・・・あとはもう自明
ただこれは昔の話で、今は型推論も普及してるから、更に
シンプルに考えて、型のテストはどこかの段階で絶対にやらなければならない
避けて通れないものとしたとき、じゃー何処でどのようにやるかという事で
どうせ不可避なら静的型のアプローチの方が良いだろうとなるだけで
システムでサポートせず人力でテストするって方向はまるで
アセンブリのようで逆行しているわ
233:
17/12/11 20:52:19.53 maeT9tJH.net
ただ、動的型付け言語の御大将は、あの lisp 族だからな…奴らには勝てない…
234:デフォルトの名無しさん
17/12/11 20:55:22.07 pZMHEF9P.net
Land of lispにHaskellのが良いって書いてあるから静的片付けの勝ち
235:デフォルトの名無しさん
17/12/11 21:45:07.08 wkifU5nK.net
ローカル変数→型推論があるので型を書く必要はない
公開関数などの型→動的型付けでもコメントなど何らかの形式で型を書くので静的型付けだから書かないといけないという事はない
よって静的型付けの勝ち
236:デフォルトの名無しさん
17/12/11 21:52:39.67 lRj3KQ4V.net
型でコーディングは出来んし、証明でビジネスは動かん
結局きちんと動くものをいかに速く作るかってだけの話だろ
本当に静的型が「きちんと動くものを速く作る」ことができるなら、とっくにYesodがRailsを駆逐してる
そうじゃないってことはRailsの方が、強い動的型の方が優秀なわけだ
まあPHPみたいな弱い型付けの言語は論外だが
237:デフォルトの名無しさん
17/12/11 21:55:13.37 If11Xzom.net
Railsなんて駆逐されるほど使われてるの?
Google、Microsoft、Amazon、Facebook、twitterなど、有名な会社で使われてるのを聞いたことないが…
正直技術力のないベンチャーが使ってるイメージしかない
238:デフォルトの名無しさん
17/12/11 21:55:35.93 lStv0Fkk.net
rust は別に好きじゃないんだが型に関するアプローチに関してはいいと思う。
関数の引数では型を気にするけど、内部は型推論で暗黙的に設定されるっていう。
239:デフォルトの名無しさん
17/12/11 21:56:58.82 VlIg6iVt.net
>>229
Option Explicitとはその程度のもの。
あと、Variantを器用に使ってるシステム見たことあるぞ。
バカとハサミは使いよう。
240:デフォルトの名無しさん
17/12/11 21:59:51.45 xzgxDEt/.net
>>234
Railsって言語だったの?
241:デフォルトの名無しさん
17/12/11 22:01:59.46 lRj3KQ4V.net
>>235
初期のTwitterはRailsだぞ?
顔本はPHPだ
242:デフォルトの名無しさん
17/12/11 22:03:18.72 lRj3KQ4V.net
>>238
脳内でHaskellとRubyに対応付けてくれよ……
243:デフォルトの名無しさん
17/12/11 22:03:39.46 Ai9DBAI/.net
>>239
Railsなどという負債を抱えていたいい例やね
244:デフォルトの名無しさん
17/12/11 22:04:41.80 pZMHEF9P.net
初期
245:デフォルトの名無しさん
17/12/11 22:05:55.17 If11Xzom.net
>>239
いや知ってるけど、それはその2つが駆逐された話じゃねーかw
246:デフォルトの名無しさん
17/12/11 22:09:18.64 lStv0Fkk.net
twitter は erlang に移って、その後やっぱ性能出ないから他のにしたって話じゃなかったっけ?
こうみると言語にこだわるのは技術力のない証拠に思えるけどね。
247:デフォルトの名無しさん
17/12/11 22:10:51.69 su83dlbx.net
まあ十分な技術力があればJavaを使うからなwww
248:デフォルトの名無しさん
17/12/11 22:17:40.59 lStv0Fkk.net
goroutin は意外とリークがめんどい、
erlang の軽量プロセスはそこまで性能が出ない
scala の互換性はひどすぎる、
では、この領域をカバーする言語は?
ってのはあるかもね。
249:デフォルトの名無しさん
17/12/12 00:43:04.64 du4SRE14.net
自称 言語屋
250:デフォルトの名無しさん
17/12/12 01:28:41.64 nM55x1pa.net
同期的にかけるasync awaitの良さを知ってから
gorutineもしんどくなってきたわ。
見た目命令順になるのが一番分かりやすい
251:デフォルトの名無しさん
17/12/12 07:29:46.32 Ye0RkKUS.net
>>248
デバッグとスタックトレースが難点だけど、メリットの方が大きいからお世話になってます
252:デフォルトの名無しさん
17/12/12 12:57:32.06 jaMzqj4w.net
元からイベントの投げつけ合いで書いてたからどっちも便利だと思うけどな。
253:デフォルトの名無しさん
17/12/12 21:14:39.58 u/ODDP+M.net
lambdaの中にlambdaを書くのを繰り返すと大量のインデントと括弧が出てくる
インデントと括弧が不要になるのが一番重要
254:デフォルトの名無しさん
17/12/12 21:25:39.50 Z8olEYsj.net
>>251
それって Python 限定の話だろ
Python は公式ドキュメントで関数型プログラミングには不適切と
表明しているくらいなんだから、それくらい我慢するのが Pythonista だよ
255:デフォルトの名無しさん
17/12/12 21:37:47.02 u/ODDP+M.net
コールバック地獄は何故地獄かって話だからPython限定ではないと思うが
256:デフォルトの名無しさん
17/12/12 22:28:11.33 qokAxyHY.net
>>251
引数とかにlambdaを直接書くスタイルはそれが苦にならない人達がやっているだけで、
それが読みにくいと感じるならフラットに展開しちゃえばいいんだぜ?
Promiseやasync/awaitでcallback地獄解消なんて書いている記事の大半も
本質的な部分はこっちだったりして。
ただ>>248の言うように上から実行順に書けるというメリットはある。
257:デフォルトの名無しさん
17/12/12 22:28:51.50 jXjdcIPT.net
Promiseパターンがすべてを解決した認識
258:デフォルトの名無しさん
17/12/12 23:30:52.82 GdvZGdbs.net
コールバック地獄は、JS の、co, Koa などのジェネレータランナー。
iterator, generator を使ったもの
yield Promise.all
みたいな書き方
259:254
17/12/12 23:35:15.82 GdvZGdbs.net
try{
yield Promise.all(非同期の並行処理)
}catch(err){
}
ジェネレータランナーは、非同期処理を同期的に書けて、
非同期処理を、try/catch できる
260:デフォルトの名無しさん
17/12/13 14:46:46.99 4nENptHR.net
Promiseは何度も帰ってくるものや、一度も帰ってこないかもしれないものが書きづらいんだよなぁ。
名前の通りだから仕方ないんだけど。
Promiseとawaitで解決できるのはcallbackを使うものの中でもとても限定的なパターンだと思う。
無いよりマシだけどね。
261:デフォルトの名無しさん
17/12/13 16:16:33.50 NPzuRHB+.net
コールバック地獄は慣れれば天国だろ。
実行速度もコールバック地獄のほうがプロミスより速いしな。
262:デフォルトの名無しさん
17/12/13 18:37:50.43 sjTFpswL.net
>>259
おう、高級言語よりアセンブリの方が速いし一生アセンブリ使っとけよ
263:デフォルトの名無しさん
17/12/13 18:38:50.92 sjTFpswL.net
>>258
何度も返ってくる物:rxjs
一度だけ返ってくるもの:Promise+async/await
264:デフォルトの名無しさん
17/12/13 20:43:44.45 VZwg/vs9.net
>>261
借りてきすぎて統一感ゼロ。
いっそコールバック書くか、全部イベントでこなすかや全部rxか、全部Reduxのほうが潔い。
awaitで延長される変数のライフタイムが勿体無さすぎる。
265:デフォルトの名無しさん
17/12/13 20:52:20.95 4nENptHR.net
>>260
そういう世界もあるので一概に笑えんし、少なくとも取ってつけたで満足して「これがあるから問題ない」と開き直るよりは、
コントロールを保ってモノ作ってると思うけどな。
ポリフィル(笑)
266:デフォルトの名無しさん
17/12/13 22:30:27.71 sjTFpswL.net
>>262
いやいや適材適所だろ
267:デフォルトの名無しさん
17/12/14 00:54:59.81 R6Bq4sFz.net
rxもかなりめんどくさい。概念はシンプルなのに
操作メソッドあんなにいるもんか?って思うわ。
268:デフォルトの名無しさん
17/12/14 02:18:11.50 YzSVtILw.net
Advent見てても人気ねぇし、Rxは流行らんな。
269:デフォルトの名無しさん
17/12/14 07:59:53.12 NBF/BshK.net
時代はBlack
270:デフォルトの名無しさん
17/12/14 08:03:
271:21.17 ID:cqXlNk/G.net
272:デフォルトの名無しさん
17/12/14 08:04:38.89 cqXlNk/G.net
>>218
>動的型言語の「綴りミスも許さない」方針にはついていけない
変数宣言の有無と型付けを区別できない人はプログラム書かないほうがいいと思う
273:デフォルトの名無しさん
17/12/14 08:05:20.86 cqXlNk/G.net
>>218
>動的型言語の「綴りミスも許さない」方針にはついていけない
変数宣言の有無と型付けを区別できない人がプログラムを書くのは型エラーです
大事なことなので3回書きました
274:デフォルトの名無しさん
17/12/14 08:07:43.17 cqXlNk/G.net
>>225
>それで動的型にする見返りがあるんなら良いんだが、何もないからなぁ
>邪悪なことがしたい、以外のメリットが無い
こういう人って
邪悪なことって具体的にリストアップしてよ
と言うと二度と帰ってこないw
275:デフォルトの名無しさん
17/12/14 08:22:58.23 hzCFy3Z8.net
Yコンビネータ書きたいとかだろ
276:デフォルトの名無しさん
17/12/14 08:29:14.79 cqXlNk/G.net
Yコンビネータは再帰型で静的に型付くだろ
277:デフォルトの名無しさん
17/12/14 08:29:49.77 vWSIvs9F.net
>>264
適材適所なのかなぁ。
目下の問題を解決するためにこうなっちゃいました、いい感じなんで標準クラスにするべき!に見える。
どーせwebworkerとかserviceworker、webdsocketにイベントの投げ合いなんだし、もとのようにイベントで制御するのが一番に見えるけどな。
一度きりならonce、何回も呼ばれるからon。
eventEmitterってブラウザでも使えなかったっけ?
無けりゃそれぐらい書いても良いけど。
278:デフォルトの名無しさん
17/12/14 08:31:59.97 GokG4kFP.net
連投ガイジ
279:デフォルトの名無しさん
17/12/14 10:21:22.17 vseOcHr4.net
動的型付けの恩恵を一切受けないコードを書くなら
動的型でも型推論で補完が効くし、
補完が効かないなら動的型の恩恵を受けるようなコードを
知らないうちに書いてるってことだよ
280:デフォルトの名無しさん
17/12/14 12:16:59.44 vWSIvs9F.net
なんでもガイジだなぁ
281:デフォルトの名無しさん
17/12/14 12:51:31.09 rvUZFKGD.net
なんでもガイジというか、ガイジがいっぱい沸いているだけ
282:デフォルトの名無しさん
17/12/14 13:13:13.86 kS2O37CV.net
同じ人間でも脳の構造の違いにより考え方が全然違う。
つまり生まれつき脳の仕組みが全く違う人達がいる。
283:デフォルトの名無しさん
17/12/14 16:27:32.32 w0b2qkK/.net
仕組みが全く違うというのがもし本当なら
速度のみを測定するベンチマークが信用できなくなる
だから仕組みは同じで速度だけが違うと考えるのが無難である
284:デフォルトの名無しさん
17/12/14 19:49:58.30 ZmHWuRBr.net
>>274
rxはSubject使い始めると一気に邪悪化するからな
285:デフォルトの名無しさん
17/12/15 00:41:45.52 8bhjGnw1.net
型無しガイジどもは死ね
迷惑なんじゃ
286:デフォルトの名無しさん
17/12/15 07:01:30.05 18KhAamS.net
型推論より要件推論ください。
287:デフォルトの名無しさん
17/12/15 07:10:42.24 lXr5oGUf.net
プロミスってモナドだよな。いい意味で。
288:デフォルトの名無しさん
17/12/15 08:27:21.30 TYCzXsyM.net
型があれば解決するかのように思ってる人が生き方を改めてほしいな。
実際問題、それだけに頼って地雷踏んだときはコアダンプ読む型なんて飾りですみたいなオッサン呼ぶ事になるんだし。
289:デフォルトの名無しさん
17/12/15 08:32:03.35 onuFSj3r.net
だがそれは型による静的検証をしない理由にはまったくならない
290:デフォルトの名無しさん
17/12/15 09:26:28.87 y+u48ms5.net
別にやればいいじゃんとしか言いようがない。
大抵糞どうでもいいキャストを付け加えるどうでもいい作業に時間を追われるだけだけどな。
291:デフォルトの名無しさん
17/12/15 09:27:43.95 onuFSj3r.net
底辺凄いな(こなみかん
292:デフォルトの名無しさん
17/12/15 09:41:39.57 TYCzXsyM.net
型による静的検証で満足する理由にもならん。
293:デフォルトの名無しさん
17/12/15 09:51:32.76 KrZVgz++.net
静的型があれば全て解決するとは誰も言ってないが
動的より良いというだけだぞ
294:デフォルトの名無しさん
17/12/15 10:01:44.25 EYhpAKtT.net
そらフレームワークに乗っかって用意された関数を呼ぶだけのドカタには
静的型の制約なんて関係ないだろうね
メタプログラミングなんてした事ないでしょ?めんどくさいよ静的型だと
295:デフォルトの名無しさん
17/12/15 10:19:01.73 CUNT7XlU.net
こいつ相手をドカタかつメタプログラミングをしたことない奴と決めつけて何がしたいんだ……
296:デフォルトの名無しさん
17/12/15 10:29:03.83 Wavcz0jA.net
なんで静的型のほうが動的型より良いって前提で話を進めるんだこいつらは……
そんなに静的型が好きならYesodでRailsレベルのシステム構築してみろっつーの
297:デフォルトの名無しさん
17/12/15 10:44:03.14 CUNT7XlU.net
そんな面倒なこと要求するならお前も何か動的言語でRails並のもの実装しろよな
298:デフォルトの名無しさん
17/12/15 10:47:18.85 Wavcz0jA.net
静的型なら動的型より生産性高いって主張してる側が実装しろよ
なんで実証をこっちがやんなきゃいけないんだよ
299:デフォルトの名無しさん
17/12/15 10:49:44.96 CUNT7XlU.net
実証責任を押し付ける上にテーマまで押し付けんなよ
テーマ量子化学で良ければ無限に実証してやるがやるか?
300:デフォルトの名無しさん
17/12/15 10:55:43.94 Wavcz0jA.net
静的型の言語はいちいちキャスト書いたり無駄にコード量がかさむ抽象クラス書いたりしてコード当たりの生産性低くなるし
メタプログラミングがかなり面倒になるしで、動的型と比べて工数が倍以上かかる
型チェックで検出できる程度のエラーなんて単体テスト書きゃ確認できる程度のモン
テスト書きたくないクソプログラマ未満には魅力的に映るんだろうがな
301:デフォルトの名無しさん
17/12/15 10:57:08.06 Wavcz0jA.net
>>297
ってこっちは主張してて、その実例として、RailsとYesodを提示してる
静的型を優位に推したいなら、逆の事例でも提示してみろって話だ
302:デフォルトの名無しさん
17/12/15 11:06:17.66 lXr5oGUf.net
動的と静的は兄弟のようなものでお助けあっていきているんだね。
303:デフォルトの名無しさん
17/12/15 11:23:17.29 CUNT7XlU.net
おぅん?
なんだその妄想。静的型でもテスト書くぞ
それにJavaじゃあるまいしちゃんと書いてりゃキャストはいらんしょ
メタプログラミングはともかく、その二つは言語の問題じゃない
言語の問題じゃない所を挙げて優位を主張すれば良いなら
↓みたいなこと書けばいいのか?
動的型は引数の型情報をちゃんと書かないから人のコード読むのめっちゃしんどくて生産性が低くなるし、テストが足りずにいざ動かしたら意外な所で引っかかるボケコードも存在する(しかも型があれば引っかからないような所)
いちいちクラスのメタ的なマニアックな機能を使って書いた本人以外の読解がそれなりにしんどいコードにして拡張性を下げたりし始めるし
コードを読む時間が倍以上かかる
実例としては動的型付けとしてaseとpyquante、静的型付けとしてvaspとbigDFTでも提示しておこうかな
こんな感じでええんか?
304:デフォルトの名無しさん
17/12/15 11:27:03.08 CUNT7XlU.net
挑発に乗って色々滅茶苦茶書いたものの実は俺は静的信者では無かったりする
305:デフォルトの名無しさん
17/12/15 11:52:43.43 Wavcz0jA.net
>>300
コードリーディングの過程で型情報がほしいって言うのは一理あるな。そのために間違った方のハンガリアン記法使うのもアホ臭い
ちゃんと設計してればキャストはいらないっていうのは、静的型言語では整数と浮動小数点数の組み合わせで四則演算すらできないって問題がある。OCamlがわかりやすいな
これを無理矢理できるようにHaskellみたくNum型クラスみたいなのを導入するとオーバーヘッドがかさむ
テストについては、結局型が通るか通らないか程度はテスト書く過程で見れるだろって話で、きちんとテスト書けばその程度の差は優位性にはならないんじゃないかってことな
そりゃテスト書かないと静的型でも動的型でも壊れたコードだ
306:
17/12/15 12:14:1
307:9.47 ID:kyib3K1A.net
308:デフォルトの名無しさん
17/12/15 12:18:48.75 Wavcz0jA.net
OCamlは今時の静的型付け言語ではないのか?
309:デフォルトの名無しさん
17/12/15 12:21:43.33 Wavcz0jA.net
Scalaはこの問題を暗黙の型変換で対応してるが、これはこれで闇を醸造してるよな
310:デフォルトの名無しさん
17/12/15 12:26:18.04 yHEncU/L.net
演算子オーバーロードを嫌う人がいるのは事実
演算子オーバーロードすると実行時にオーバーヘッドがかさむというのは嘘八百
311:デフォルトの名無しさん
17/12/15 12:26:29.05 Q6E9xMBX.net
組み込みの数値型は自動変換する言語が多いし
静的・動的と関係ないね
312:デフォルトの名無しさん
17/12/15 12:39:33.81 TYCzXsyM.net
>>290
そうでもなかろう。
蛇足という言葉もある。
生産性ってのはもう少し厳密に扱われるべきだと思う。○○の場合は、とか。
313:デフォルトの名無しさん
17/12/15 12:41:17.66 TYCzXsyM.net
>>302
間違ってない方のハンガリアンならば、型なんてどうでも良いと言う事もわかると思う。
ユーザ定義型に出来れば言う事無いけどね。
314:デフォルトの名無しさん
17/12/15 12:50:20.64 Wavcz0jA.net
>>309
そうだな。正しい方のハンガリアン記法なら、静的型のコンパイラに頼るよりはるかに健全な運用ができる
別に静的型でもやりゃいいと思うが、コンパイラに頼るのに慣れると面倒に感じるのかね?
315:デフォルトの名無しさん
17/12/15 12:56:07.91 Wavcz0jA.net
静的型でチェックできることは、単体テストを書く過程で自然とチェックできる
静的型のチェックにより、メタプログラミングが書けなくなり、本質的でない型合わせのための余計なキャストも増える
結局この二点なんだよな
316:デフォルトの名無しさん
17/12/15 12:58:02.72 Wavcz0jA.net
可読性についてはまあわからんでもない。正しい方のハンガリアン記法でも、接頭辞の管理はコード上にないからな
IDEのサポート込めば確かにリーディング速度は上がると言える
317:
17/12/15 13:19:56.65 kyib3K1A.net
>>311
>静的型でチェックできることは、単体テストを書く過程で自然とチェックできる
逆だ、
単体テストでのチェック内容の一部は、テストを書くまでもなく静的型でチェックできる、だ
テストを書くまでもなく、成果物の品質を一定のレベルまで引き上げるのが静的型の特徴だ
メタプログラミングはそれようの総称型を使えばよい
本質的でないキャストは総称型(ジェネリクス)で基本的に全廃できる
318:デフォルトの名無しさん
17/12/15 13:45:16.34 Wavcz0jA.net
>>313
>テストを書くまでもなく、成果物の品質を一定のレベルまで引き上げる
だからって単体テスト書かないって訳でもなかろう
その単体テストを書く過程で型検査などは自然とテストされるということ
型チェックをテスト書かない言い訳にするのはそれこそ最悪
319:デフォルトの名無しさん
17/12/15 13:46:32.11 Wavcz0jA.net
ジェネリクスで不要なキャストが撤廃できるなら、それはそうなんだろう
上で挙げた四則演算問題がジェネリクスでなんとかなるとも思えんが
320:デフォルトの名無しさん
17/12/15 13:59:37.30 6UtRgQBN.net
>>313
ジェネリクスをきちんと使えばキャストはほぼ全てなくせるが、
メタプロはジェネリクスだけじゃどうにもできないだろ。
あと、ジェネリクスとC++のテンプレートは似ているようで全然違う。
メタプロに関しては動的言語のほうが簡単なのは事実。
ただ、本当にメタプロが必要になるケースになんてあまりないと思うんだが。
>>314
別にテストを書かない言い訳とかじゃなくて、
静的型なら動的型に比べてテストを書く量を減らせるということだろ。
テストを全く書かなくなることはないけど、テストの量を減らせるというだけでも
そこには立派な価値があるということが言いたいんだ思うが。
321:デフォルトの名無しさん
17/12/15 14:00:37.68 U+kqpzL7.net
四則演算問題って何?
322:デフォルトの名無しさん
17/12/15 14:07:11.13 6UtRgQBN.net
>>317
たぶん>>302の
>静的型言語では整数と浮動小数点数の組み合わせで四則演算すらできないって問題がある。
てやつのことだろ。
それって、単に言語の性格の違いのような気がするんだが。問題と呼ぶほどのものか?
323:デフォルトの名無しさん
17/12/15 14:58:25.54 57xWWF8w.net
走らせないとわからないテストより前に、コンパイルでエラーが検出できたほうがいいやろ
テストについて�
324:黷ゥら勉強しなおしなさい
325:デフォルトの名無しさん
17/12/15 15:13:05.84 yHEncU/L.net
静的型と動的型の対立をいくら勉強しても新しい発見はない
次世代の静的型を考えてるやつらは現在の静的型と対立するのだ
静的型と静的型を対立させる
どっちが勝つか全く予測できないから全く新しい成果を出せるのだ
326:デフォルトの名無しさん
17/12/15 15:50:55.50 y+u48ms5.net
コンパイラがバグもなく絶対的に正しければな。
コンパイラにそこまでの期待を背負わせた結果がc++の現状なわけだ。
ユーザーの仕様要求にはぼろくそ文句言う奴に限って、
コンパイラに理不尽な要求してる奴が多いってのはほんとなんなんだろうな。。
327:デフォルトの名無しさん
17/12/15 15:54:40.37 Wavcz0jA.net
>>319
コンパイルだって走らせないと動かないとおもうんだが
結局テスト走らせるのもコンパイル経由するんだからかわんねえだろ
328:
17/12/15 15:59:44.12 kyib3K1A.net
>>322
かわるねえ、テストはテスト書かなければならないし、すると書いたテストが間違っている可能性も否定できない
コンパイル時の型チェックは、つまるところソースの矛盾をつくのだから、それだけでソースの検証になりうる
ただ、型情報はコンパイル結果には含まれないのが普通だから、いうなれば無駄を書いているわけだ…
329:デフォルトの名無しさん
17/12/15 16:03:06.34 Wavcz0jA.net
>>323
結局「型チェックあるからテストの手が抜ける」論者か。話にならんな
330:
17/12/15 16:10:07.80 kyib3K1A.net
>>324
それはお前の思い込み、テスト不要とはひとこともいっていないだろう?
331:デフォルトの名無しさん
17/12/15 16:17:12.00 85mmUd/p.net
動的型付け言語でメソッド先頭に引数型チェックをずらずら書いてるコードを見た時は心底アホだなと思いました
332:デフォルトの名無しさん
17/12/15 16:19:20.03 6UtRgQBN.net
>>324
その言い方は「手を抜く」ことに関して批判しているのように聞こえるな。
プログラマなら手を抜くことに積極的なのはむしろ褒められるべきことだと思うが。
手を抜かないことを美徳とするなら伝統工芸の職人さんにでもなれば。
少なくともそんな考え方をするような人間はプログラマには向いていないよ。
333:デフォルトの名無しさん
17/12/15 16:28:14.91 Tb7zQwK9.net
>>326
そんなに自分のバカさを自慢しなくても…皆よくわかっているから
334:デフォルトの名無しさん
17/12/15 17:07:38.29 WQPs5rl9.net
>>302
javaの場合はクラス間のキャストと整数、小数間のキャストが同じ構文だから分かりにくいけどあれ全くの別物だから
後者はどちらかというと関数に近い
例えばStringをObjectにキャストしても変数の値(=メモリアドレス)は変わらない
でもlongをdoubleに変換したら変数の値自体が変わる
これは大きな違い
335:デフォルトの名無しさん
17/12/15 17:10:15.06 WQPs5rl9.net
静的型付けでもテストはいるけど数を減らせる
わざわざ機械がチェック出来る事を人がやる意味は?
あとオーバーヘッドどうのこうのって動的型付けの方がオーバーヘッドでかいやん
336:
17/12/15 18:14:48.74 kyib3K1A.net
>>326
いや、それが、Java の本番コードでは執拗な null チェックはかかせないようですよ、はじめてみたときは目をうたがったな…
337:デフォルトの名無しさん
17/12/15 19:17:26.70 Tb7zQwK9.net
>>330
静的型はより少ないテストデータで同等の品質を確保できるという実証データはある?
338:
17/12/15 19:24:35.38 kyib3K1A.net
>>332
URLリンク(developers.srad.jp)
あまり参考にならないかもしれない
339:デフォルトの名無しさん
17/12/15 19:39:38.59 57xWWF8w.net
>>331
今時NotNullアノテーションで対応するけどな
340:デフォルトの名無しさん
17/12/15 19:42:37.27 Q6E9xMBX.net
スレタイの言語はどれも静的型付けやなw
341:デフォルトの名無しさん
17/12/15 20:07:05.04 6UtRgQBN.net
>>332
説得力のある実証データはたぶんないだろうな。
342:だが逆説的に、動的型でも静的型と同等のテスト量で同等の品質を確保できる という実証データがないだろうこともやはり同じだ。 「型付け」と「テスト量と品質」に関係性は「あるかもしれない」し、「ないかもしれない」。 そのことについて議論する価値はあるかもしれないが、 説得力のある実証データがないことが静的型付けを批判する理由にはなり得ない。
343:デフォルトの名無しさん
17/12/15 20:17:29.09 6UtRgQBN.net
ちなみにあまり説得力のない実証データなら腐るほどある。
何故それらに説得力ないかというと、
テストの品質というものを正確に数値化できないからだろうな。
つまり、品質を正確に数値化する方法がない限りはそのことについては誰も実証はできない。
まずは品質の数値化について誰もが納得できるような方法を考えることからだ。
そして、それが簡単にできれば苦労はしていない。
344:デフォルトの名無しさん
17/12/15 21:49:32.08 HGhk3PLi.net
静的型と動的型の言語で、同程度の品質を担保するために必要なテストの量が変わらないと仮定するなら、
メタプログラミングのしやすさとコードリーディングの難易度を天秤にかけるだけの話になりそうだ
キャストについては、さすがにGoのinterfaceやらJavaのObjectは別として、それが本当に「本質的でない」場面があるとはどうしてもピンと来ない
上で例に出されてるOCamlの浮動小数点数と整数の演算だって、本来この2つを四則演算した結果が
浮動小数点数になるか整数になるかは本来非自明だから、どっちかに明示的に型を揃えろっていうのは
静的型動的型関係ない問題だと自分は思う
メタプログラミングについてはこれももう出てるけど、本当にそれが必要かって言われるとなあ
確かに記述量自体は短くなるけど、間違いなく可読性とトレードオフになる
345:デフォルトの名無しさん
17/12/15 22:40:22.38 19GjPIYk.net
「ノコギリと刺し身包丁の優劣」みたいな無意味な話はつまらん。
346:デフォルトの名無しさん
17/12/15 23:34:56.14 WQPs5rl9.net
メタプログラミングみたいなのは型システム関係なくunsafeみたいな感じで一部分に閉じ込めて使うのが普通だからな
347:デフォルトの名無しさん
17/12/15 23:53:14.51 /50W1d3E.net
最近は、Pythonでも型アノテーション書くようにしてるよ。
見返した時に、コメントで型情報を書くよりは
楽なんで(;´∀`)
348:デフォルトの名無しさん
17/12/16 00:22:41.60 ocig5iu9.net
>>335
TypeScriptは動的だよ。
349:デフォルトの名無しさん
17/12/16 00:39:35.88 TWnq2dTt.net
>>342
静的型でもあり動的型でもある不思議な言語
350:デフォルトの名無しさん
17/12/16 00:56:52.03 puMNteBt.net
TypeScriptは静的な型検査をしたいから作ったんじゃないんか?
351:デフォルトの名無しさん
17/12/16 01:22:56.08 TZZbndKv.net
新しい言語の新しい議論でもあるのかと思って開いてみたら
20年前くらいの動的vs静的の罵り合いしかなかった
5ch死んでるな
352:デフォルトの名無しさん
17/12/16 01:34:19.93 fQ+nYBte.net
そう思うなら貴方にはこのスレは向いていなかったのでしょう。どうぞ卒業なさいませ
353:デフォルトの名無しさん
17/12/16 07:38:33.30 g6YeJGmB.net
20年は言いすぎだが確かに今更な話題だな
354:デフォルトの名無しさん
17/12/16 07:39:24.99 0YcySKum.net
>>336
>説得力のある実証データがないことが静的型付けを批判する理由にはなり得ない。
完全に同意するし、同様に、
説得力のある実証データがない以上は動的型付けを批判する理由にはなり得ない。
と思うね。
355:デフォルトの名無しさん
17/12/16 10:07:20.76 pj2GdbCH.net
説得力のある実証データが無いとは限らない得ない。
発見されてない可能性のあるものを存在しないと断定し得ない。
356:デフォルトの名無しさん
17/12/16 11:54:08.21 0YcySKum.net
>>349
信頼できる具体的なデータを出してから出直してきな、ばーか!
357:デフォルトの名無しさん
17/12/16 12:02:59.86 pj2GdbCH.net
信頼できる具体的なデータがないことはなり得ない。
完全に同意するし、同様に、
信頼できる具体的なデータがない理由にはなり得ない。
358:デフォルトの名無しさん
17/12/16 14:57:13.50 GPVNoJ1v.net
そういう白いカラスを探すような真似をせんでも。
動的静的、どちらも良いものだし、どちらにも反対側に寄せるような機能も
359:今時はある。 そういう意味では「静的型付け言語だから間違いが少ない」と言う発想は明後日というか「間違うなと言うだけの話」として扱われても仕方ないっちゃ仕方ない。 今まで一回もキャストやポインタデリファレンスを使ったコードを書いたことがない奴だけがギリギリ石を投げても良いと思うが、そんなやつはごく少数だろ。 チェックが厳しくなるのは良い事だが、それがないと物が作れない(はず)なんて言うのは補助輪付きの自転車を指して「これが至高の自転車だ、なぜなら倒れないからだ!」って言うのと同じくらい暴論。
360:デフォルトの名無しさん
17/12/16 14:58:31.90 GPVNoJ1v.net
そういう奴がRustのコンパイラにバタバタと倒れていくのは至極愉快だけどな。
最初からそれぐらい考えて作っとけよ、と。
361:デフォルトの名無しさん
17/12/16 15:18:00.92 4mgESDS3.net
数値を引数にとる関数作ったら
境界値やゼロ値をテストするのが静的型
数値文字列オブジェクト思い付く限り全てテストしないと発狂するガイジが型無し池沼
こういうことでしょ?
362:デフォルトの名無しさん
17/12/16 15:28:08.68 Dp1B/626.net
>>354
境界値やゼロ値をテストするコード書けば、文字列オブジェクトが入ってきたらエラーになるから
動的型でもそんなテストは必要ありません。
そんな当たり前の事も分からないなんて、君は本当に低脳だな。
363:デフォルトの名無しさん
17/12/16 15:32:04.21 GPVNoJ1v.net
逆の発想でしょ。
数値以外で呼んでなけりゃいいんだから、呼び出し箇所で引数が数値と推論できなければエラーにしときゃいいじゃん。解析上で。
仕様として数値しか取らないなら、数値に対するテストで十分でしょ。
静的言語でも数値以外を渡す方法が無いわけでも無い。程度論。
静的言語でもヒステリックなチェックが必要な案件もやっただけに、ホントに夢見てるんだろうなって思うわ。
引数を手当り次第にチェックする、という解法しか出て来ないのがそもそもキチガイじみてる。
364:デフォルトの名無しさん
17/12/16 15:34:15.25 GPVNoJ1v.net
スタックもメモリも疑え、みたいなプログラム書いたこと無いんだろうな。
365:デフォルトの名無しさん
17/12/16 15:41:18.50 4mgESDS3.net
お前も頭がパーエッチパーなのか?
366:デフォルトの名無しさん
17/12/16 15:47:08.12 0YcySKum.net
>>358
おまえはまず自分がバカであることを自覚しろ
話はそれからだ
367:デフォルトの名無しさん
17/12/16 17:20:40.73 4mgESDS3.net
型無し能無し糞バカパーエッチパーのバカがなんだって?
早く10年熟成のウリジナル社内フレームワーク保守する作業に戻れよ
368:デフォルトの名無しさん
17/12/16 20:13:15.10 GPVNoJ1v.net
どーやっても無関係のPHPをけなしたいんです!
というある種の精神的ハンディキャップを持ってるみたいだから仕方あるまい。
369:デフォルトの名無しさん
17/12/16 20:18:13.50 GPVNoJ1v.net
考えてみたけど、むしろPHPの問題は型があったとしても多分変わり無く問題としてあり続けると思うな。
370:デフォルトの名無しさん
17/12/16 20:50:00.94 GPVNoJ1v.net
QCやると>>337は痛感するがな。
品質保証しなかった物が万一起こす損害と、品質保証したから避けられた損害はイコールじゃないし、
品質保証してしまった時点で、避けた損害の計上は机上の空論になってしまう。
避けるも何も起こらなかったんじゃないの?と過剰な心配とみなされがち。
起こっていたに違いない、と言うのは確かに空論だからな。
「改善できている品質」自体を点数化(そしてある程度これは王道もある)しても、「改善しなかった場合の品質」が見積値のままなので、恣意的と言われても仕方が無い。
同様の問題にコストカットもあるが、これも最初から織り込んで当初目的を果たしてしまうと話がややこしくなる。対費用効果が品証と同様に、実績値と見積値の比較になる。正しい
371:比較じゃないのは確か。 一番、営業部や企画部や、ことによると開発部とも喧嘩になる数字。 なので、これに関して実証値を出せと言うのは、同じ事を、2つの方法で、全く同じ能力の人間が、二の轍を避けるというバアイスをかけないために初見で行った場合、の数値を出せと言う、無茶苦茶な要求になる。 パラレルワールドが発生してそれが一つの状態として観察出来る神が存在しない限りイチャモンのつけ放題。 要は無意味。
372:デフォルトの名無しさん
17/12/16 20:53:09.27 GPVNoJ1v.net
バイアスがどう間違ったかバアイスになってるわ。以外に読めるもんだな。ごめん。
373:デフォルトの名無しさん
17/12/16 22:08:20.37 /LKsQL98.net
>>355
phpでも?
374:デフォルトの名無しさん
17/12/16 22:37:18.69 ocig5iu9.net
>境界値やゼロ値をテストするコード書けば、文字列オブジェクトが入ってきたらエラーになるから
それをテストで確かめるんだろうが
375:デフォルトの名無しさん
17/12/16 23:57:56.53 g6YeJGmB.net
間違えない前提ならテストもいらんなw
376:デフォルトの名無しさん
17/12/17 00:07:22.96 lzYKowQo.net
>>362
当たり前やン
PHP7になって型サポートが入った!!とか嬉ション漏らしてるペチパー見て
心底あの界隈のレベルの低さに辟易した
377:デフォルトの名無しさん
17/12/17 00:17:16.85 w0yPK3Np.net
>>366
そこなんだよなぁ。
>>355は、動的静的どちらでも同じようにテストを書くことになるんだから
「結果、テストを書く手間(量)は一緒だろ」と言いたいんだろうが、
型については「テスト時に確かめるのが動的」、「コンパイル時に確かめてくれるのが静的」という違いがある。
「テスト時だろうがコンパイル時だろうがきちんと確かめることには変わりないんだからいいだろ」
という意見が動的派の主張のような気がするんだが(俺の勘違いだったら指摘してくれ)、
個人的にはテスト自体にバグが含まれる可能性があるという点で違うので、静的のほうが好ましいと思う。
コンパイラにバグがない保証はないがその可能性はかなり低いし、
まして、どこの誰が書いたかも分からないテストと比べればどちらが信用できるかは明らか。
静的でもテスト自体にバグが紛れることはもちろんあるが、型についてはコンパイル時にチェックされるので、
型チェックだけに焦点を絞ってみれば、やはり静的言語の方が信頼性は上だろう。
378:デフォルトの名無しさん
17/12/17 00:30:03.31 w0yPK3Np.net
>>367
すごく良い意見だと思う。
そもそもテストがあるのは人間は間違えるからというのが前提だからで、
そしてそのテストを書くのも人間なのでテスト自体も間違えている可能性がある。
それでもテストを書くのはチェックによって間違いを完全になくすことはできなくても
ある程度まで減らすことはできるという考えがあるからだろう。
そして、その考え方でいくとテストを重ねれば重ねるほど信頼性は上がるということになる。
つまり、テストのテストを行えば2重チェックとなりさらに信頼性が上がることになるが、
テストのテストを書くというのはあまりにもアホらしいので普通そんなことはしない。
つまり、通常のテストでのチェックは1重のチェックまでが限界となる。
それに対してコンパイラはコンパイラ自体がしっかりとテストされている。
つまり、コンパイラによる型チェックは言い換えればコンパイラ自体によるチェックと
コンパイラのテストによるチェックの2重チェックを同時に受けていることになる。
この考え方でいけば、ただのテストは1重のチェックだが、コンパイラによるチェックはそれだけで2重チェックとみなせる。
つまり、コンパイラによるチェックのほうが信頼性が高いということになるはずだ。
一応理論はしっかりと通っているはず。
自分で書いといてこんなこと言うのもなんだが「なんだかこじつけな気がして、あまり気に入らない」。
誰か論破してくれ。
379:デフォルトの名無しさん
17/12/17 01:33:04.30 DD3iPSz/.net
コンパイラにバグはないとかさ。。
とりあえずvcを一通り使ってみてから言ってほしいな。
浅はかすぎる。
まあしかし静的チェックと動的チェックを両方やるならいいと思うよ。
これは結局、仕様と実際の動作のどっちもしっかりチェックする必要があるってこと。
380:デフォルトの名無しさん
17/12/17 02:06:25.44 an2T/Jmb.net
一般的な話をvc固有の問題で批判する方が浅はかと言わざるを得ない
381:デフォルトの名無しさん
17/12/17 02:24:22.59 lzYKowQo.net
型も書けないような奴が
正しいテストを書けるだろうか?(irony)
382:デフォルトの名無しさん
17/12/17 08:41:58.60 cjnEvY5x.net
それ以前に、めんどくさいからって型書きたがらないような奴は現実にはほとんどテストなんか書いてないんだよ
動的型でテスト書けば問題ないだの必要なテストが増えるだのテストの正しさだのというのははっきり言って机上の空論
そもそも彼等はテストを書かない
383:デフォルトの名無しさん
17/12/17 08:51:42.24 ROemoGKg.net
そんなこというと、動的型付け言語を使っているから型を書いていないって人より
auto/varを使って意識的に型を書かない人の方がテストを書かない傾向があるって
言っているように聞こえるけど。
384:デフォルトの名無しさん
17/12/17 09:04:39.97 cjnEvY5x.net
>>375
そりゃ静的型でも型書かない奴は山ほどいるだろ
テストを書いているということを議論の前提にしていることが全くもって非現実的だと言ってるんだよ
385:デフォルトの名無しさん
17/12/17 09:06:12.54 qBUEKR93.net
テストの目的は実装のバグを探すことだけか?
むしろ仕様をチェックすることが最も重要だよ
バグは直せばいいだけだが、仕様はうっかり変更されたら直せない
死んだ人が帰ってこないのと同じ
動的型の言語仕様を捨てて静的型に移行するのが難しい理由もその辺にありそうだ
386:デフォルトの名無しさん
17/12/17 09:14:23.72 i+M+l/V2.net
テストすら正しく書ける気がしないドカタにはメタプログラミングなんて無理
387:デフォルトの名無しさん
17/12/17 09:48:44.61 G+5q9UaX.net
>>377
テストの目的は変化を検出することだよ
作って運用開始して終わりならテストなんか手動で十分
388:デフォルトの名無しさん
17/12/17 11:35:01.56 v3Bx338J.net
>>368
それもまぁ程度論だろ。
一部の人間があったら良いなと思ってたものが出来たから嬉しいってだけの話で、
全体に対してどうと思うほうがちょっとおかしいよ。
389:デフォルトの名無しさん
17/12/17 11:41:57.99 v3Bx338J.net
テストのテストを馬鹿にしてるが、書くからな。
何重まで上に上がる?というのは論点がずれてて、要件定義書でテスト仕様書をテストする。(詳細設計なんかは無視する)
紙の上でかもしれんし、直交表書くかもしれんし、色々あるが、
要件定義や詳細設計からテストだけ書いて、その妥当性も判断せずにオールグリーンこれでオッケー、ならそれは間違ってると思う。
間違えない前提ならテストは要らない、はその通りで、どの開発レイヤにも「この場ではこれは間違っていないとみなす」というブラックボックスがある程度発生していく。
単体試験なんかで担保して、レイヤがあがるにつれてブラックボックスは増えていく。
そこにワザワザ、ヒステリックテストをする必要は無い。
ブラックボックス側から数値しか出さないなら、数値以外をチェックするのは過品質に近い。
390:デフォルトの名無しさん
17/12/17 12:06:03.05 pDfY69my.net
>>369
細かくいうと「結局製品として必要な質を担保するのに必要なテストコードは変わらない」っていう主張な。少なくとも自分はこう思ってる
あくまで主観だし定量的に示せないんで上で上がってる通り空論といってもいいがな
少なくともコンパイルとLinter通った時点での品質は静的型が上なのは否定しない
が、自分の経験上、型チェック程度は他のテストのついででチェック進むから、そのせいでテストコードがかさむとかそういうケースはそうそうないはずなんだよな
391:デフォルトの名無しさん
17/12/17 12:11:02.52 pDfY69my.net
もちろん「テストコードと、一種の証明である型チェックの性質は違う」とかそういう理屈も理解してるが、
結局「製品としての質担保」という観点で見るなら、その程度の手段の差は全くもって関係なくなる、というのが自分の考え
この辺はテストに求める役割に対する考え方の違いかもしれん
392:デフォルトの名無しさん
17/12/17 12:14:39.63 pDfY69my.net
あとPHPディスに絡めようとしてるやつ�
393:ェいるが、PHPは静的型動的型の以前の部分に問題があるし、 この議論で少なくとも自分が動的型言語の念頭においてるのはPythonやRubyだからな?
394:デフォルトの名無しさん
17/12/17 12:18:57.69 028c4ua0.net
>>370
論破じゃなく、補足になるが、特に業務でプログラミングするならコスパ考慮して選んでるからねえ。
現実の工数は、要件変動も含めその時点でのコンパイラ・インタープリタで拾えない部分の不整合によるものが大きい(まだ合理化されてないとも言えるが)。
プログラミング言語の歴史見ると判るが、静的・動的とも互いに相手のいいところを取り入れて進化してきてる。
同時に、世の中のニーズ(個人が計算リソースを持つようになった、など)に対応した形でも変わってきている。
これは適用可能な領域を広げようとした結果。
オレ個人の例で言えば、業務要件==>計算モデル==>候補言語を複数選択。
その後、プロジェクト要件(期間、要求品質、メンバースキル、関係者が蓄積しているプログラミング資産など)との組み合わせが適しているものを勧めている。
なので言語仕様やライブラリ含めた挙動だけ比較しても、それはツールとしての現在の瞬間の姿を見てるだけなので、その評価が未来にも、業務にも適用できると考えるなら早計。
395:デフォルトの名無しさん
17/12/17 12:57:26.41 v3Bx338J.net
>>382
静的型が上というか、帳尻があっている、と言うことはわかるから、一つの方向としては正しいと思う。
ただ、本当にあっているか?小数は桁落ちしてないか?まで考えると、静的型でも、どの道ピアレビューなんかで担保するしかない。
これは言うとおり、ついでに型が充分かも見る、という動的言語のピアレビューと工数としては変わらん。
396:デフォルトの名無しさん
17/12/17 13:01:33.13 2YAiyrnb.net
静的型のメリットで最も大きいのは依存関係が静的にほぼ完全に把握できることでしょ
自社事業の開発で常に動いているものを弄るなら、これ以上に心強いものはない
397:デフォルトの名無しさん
17/12/17 13:10:12.04 v3Bx338J.net
依存関係はどっちでも同じ程度じゃないの?
RoRみたいに、そのディレクトリに置いたら勝手に使用される、を想像してたら違うのかもしれんけど。
動的型も静的型も、リテラルでのimportやrequire、参照設定とusingでそれなりに決まる部分もあれば、
Node.jsだと変数でのrequireや、CなんかでのLoadLibraryなんかでも動的ロードなんかで全く決まらん事もあるんだし。
依存関係の解決はちゃんとそれ用に何か用意した方が良いと思うけど。
398:デフォルトの名無しさん
17/12/17 13:23:12.52 qBUEKR93.net
モジュールの依存関係は型と関係ないね
「モジュール=型」とかいう超怪しい等式に依存するのは嫌だね
399:デフォルトの名無しさん
17/12/17 14:46:20.78 x6mh3PiV.net
テストコードはテスト対象のコードより明快なものが一般的で、明快であれば人の目で判別しやすいってのも考慮すべきよ
テストを重ねるほど品質が上がるってのは空論だし、1重しかテストしないのは妥協してるからというわけでもないよ
400:デフォルトの名無しさん
17/12/17 15:54:09.19 F+iLZcQ1.net
>>388
IDEのメソッド呼出元の検索とか使ったことないのか?
規模が大きくなるとあれがないとやってられなくなるぞ
401:デフォルトの名無しさん
17/12/17 16:41:56.81 PjBbAu1N.net
>>370
形式手法でコード自動生成しててもやっぱり高信頼性のためにはテストは必須だぜ?
402:デフォルトの名無しさん
17/12/17 17:52:05.86 v3Bx338J.net
>>391
なんだ、そんな事か。長々書いて損した。
動的言語のIDE使ったことある?
いや、IDEじゃなくてもいいや。VSCodeと適当なNode.jsのプロジェクトでさえ、それなりに効くだろ。
>>390
テスト自体は1重でも良いとして、何らかの方法でテストの正当性は担保しないの?
それじゃただ書いたコードが書いた意図どおり動いてる確認で、意図が正しいかのテストにはなってない気がする。
意図が正しいかの証明は要件定義と設計書の間でのみ行われる、ってのが普通なのかな。
403:デフォルトの名無しさん
17/12/17 19:31:01.08 AwDJJh6p.net
要件に寄らず、テストは最低8重ないとダメ
スレのレベルが低すぎる……♂
404:デフォルトの名無しさん
17/12/17 23:06:04.33 lzYKowQo.net
>>391
良く訓練されたPHPerは超力Grepを使いこなすから問題ないんだよなぁ
405:デフォルトの名無しさん
17/12/17 23:23:38.60 qBUEKR93.net
メソッド呼出元検索、、今回ほど仕様バグが沸き起こる思いをしたことが無い…
406:デフォルトの名無しさん
17/12/17 23:39:30.09 LyzNAsst.net
>>393
> 意図が正しいかのテスト
って何だよ意味不明。
必要なテストがされているかが重要だろ。
数だけ多くたってダメなんだよ。
407:デフォルトの名無しさん
17/12/17 23:57:38.71 lzYKowQo.net
つまり、動的型言語は山ほどテスト書かないとダメって言いたいんだろw
408:デフォルトの名無しさん
17/12/18 00:07:07.45 oET30lFX.net
一応確認なんだけど動的言語じゃなく動的型付け言語の話なんだよね?
409:デフォルトの名無しさん
17/12/18 00:58:28.12 9GZmy5yv.net
>>398
テスト書く量は同じだよ
410:デフォルトの名無しさん
17/12/18 04:30:42.74 p9HDlb+0.net
>>400
ねーよ
411:デフォルトの名無しさん
17/12/18 08:13:16.77 9GZmy5yv.net
>>401
強い型付けの動的型言語なら、値に対するテストを書けば型に対するテストは不要です
assert(x > 0) というテストを書いたのに、さらにxが文字列かどうかテストする必要ははありませんね
反論するなら反例を出してくださいね
クソくだらない長文はいらないので
412:デフォルトの名無しさん
17/12/18 08:13:41.10 UBkq3PS9.net
>>397
わからんならしたことがないって事だ。
413:デフォルトの名無しさん
17/12/18 08:28:29.94 9Kb0ajxH.net
>>402
型ってのを、CPUのプリミティブでしか考えなくて良い業務プログラムならそうだな。
問題は、今時そんなトイプロジェクトが少ないって事。
414:デフォルトの名無しさん
17/12/18 09:01:45.44 yq3smURe.net
>>402
自演乙
415:デフォルトの名無しさん
17/12/18 10:20:33.66 /BfrEM8a.net
>>404
つまり、幽霊型とか依存型あたりを使い倒さないと今時のプロジェクトはまわらない、という認識でいいのか?
そりゃその辺りを使い倒さないと回らないプロジェクト前提なら、動的型付けでは無理な話になるが
それが必須な状況が、動的型付け言語のメタプログラミング並みに思い付かないぞ
416:デフォルトの名無しさん
17/12/18 12:43:07.93 h27G1UNw.net
>>402
用途による。
弱い型付け言語でも、型無言語でも値に対するテストで充分な場合もあるし(要は、不正値が渡されてる時点で異常であって、その場合の動作は不定として構わないという要件の場合。よくある)
逆に強い型付け言語でも、強い磁界やノイズ源の間際で使われるようなものを書くときにはキチガイじみたテストもする。
a=170,b=85,a+b==255みたいなアサーションすら稼働コードにも並ぶし、それが成立しなかったらリセットかかるようにする。
417:デフォルトの名無しさん
17/12/18 12:54:00.44 mr3x/gYU.net
ちなみにvscodeでnode.jsのコード補完が効くのはtypescriptの型情報の恩恵を得てるから
418:デフォルトの名無しさん
17/12/18 21:36:27.12 9Kb0ajxH.net
>>406
むしろ動的型付けの出番が増えるけどな。
昔ながらの単純なOAアプリには不要だが。
419:デフォルトの名無しさん
17/12/19 01:10:12.61 lENhGj5D.net
>>407
長文書かずに反例を出せ、って書き込みにアンカーつけてまで
反例無しの長文書いててワロタ
420:デフォルトの名無しさん
17/12/19 02:4
421:5:28.87 ID:4MuASRxE.net
422:デフォルトの名無しさん
17/12/19 04:16:57.53 6mJgSo5a.net
>>406
幽霊型や依存型って動的型付けなら普通にコードでやっていることを
静的な型で表現しようとしてがんばってる例のあれのこと?
423:デフォルトの名無しさん
17/12/19 07:49:40.76 yvsoeKM9.net
>>412
>静的な型で表現しようとしてがんばってる例
まあそういう事になるよね。
もともと計算モデルが違う(=問題解決へのアプローチが違う)
プログラミング言語同士を比較すれば、「一方は率直に実装できる」
フィーチャーが有るのは当たり前だしね。
理想はプロジェクト毎に最適の計算モデル、言語、スキルを揃える事だが
現実には、そういう要素が有ることを知らなかったり、教育投資を捨てたく
ないって理由で、合っていないモデルで無理やり進めてるのが現実。
424:デフォルトの名無しさん
17/12/19 08:55:34.79 9wTQQ92p.net
>>410
反例じゃん?
425:デフォルトの名無しさん
17/12/19 09:24:51.77 ngbi4CU2.net
>>402「強い型付け言語である場合、値のテストをすれば型のテストはいらない」
>>407「弱い型付け言語でも型のテストがいらない場合がある。また、強い磁場中の利用であればa=170,b=85,a+b==255のようなキチガイじみたテストをする」
あガガイのガイ
426:デフォルトの名無しさん
17/12/19 13:04:54.40 lG4ryEsW.net
>>412
動的型で項書き換え最適化や実行前の証明が普通になされているというなら、まあそうだね
427:デフォルトの名無しさん
17/12/19 13:08:42.98 9wTQQ92p.net
うん、反例の一つかと。
~あるし、~する(こともある)。
前者は言う通りにそれ以下のテストだけど、後者は型テストももちろんするし、その周辺のメモリの値すらテストする、って事なんだが。
カナリア知らんとかはやめてくれよ。
428:デフォルトの名無しさん
17/12/19 13:20:03.85 /xuMeQeJ.net
次世代で証明されると期待される定理を今使う
クレジットカードみたいなやつ
動的型付けってそういう仕組みなんだね
429:デフォルトの名無しさん
17/12/19 13:22:38.78 ngbi4CU2.net
ID:9wTQQ92p
こいつくせえな話が通じてねえ
例のガイジか
430:デフォルトの名無しさん
17/12/19 13:31:22.89 xjqFNtfj.net
ガイ・スティール・ジュニア略してガイジ。
431:デフォルトの名無しさん
17/12/19 14:57:09.50 9wTQQ92p.net
通じてないのはそっちだと思うけど。
理解できければ全部レッテル貼って理解を放棄するクセはいかがかと思うが。
432:デフォルトの名無しさん
17/12/19 15:34:54.93 xjqFNtfj.net
人に理解してもらえることが当たり前だと思ってるようでは人生経験浅すぎるな。
現実とはそういうものだよ。
433:デフォルトの名無しさん
17/12/19 18:04:10.11 9wTQQ92p.net
そこまでは言ってないがな。
まぁ、どうおかしいか理解させられない時点で同じ穴の狢かそれ以下なんだろ。
理解させる、という側の能力だけを評価するなら。
そこまで卑下しなくても良いのに。
434:デフォルトの名無しさん
17/12/19 18:52:02.43 ngbi4CU2.net
>どうおかしいか理解させられない時点で同じ穴の狢
あDHDには何回か丁寧に説明してやったし、その度に「そういうことか。理解してなかった」って言われて来た
もううんざりだ。おまえであることがわかった以上もう説明せんよ
435:デフォルトの名無しさん
17/12/19 19:28:03.33 cqTye8WP.net
「AならばB」に対して「Aでないときには~」って話をして
反例になってると思う>>417ってプログラマとしてヤバない?
436:デフォルトの名無しさん
17/12/19 19:54:56.57 /xuMeQeJ.net
ヤバい人がいても最近は誰も批判しない
批判は建設的じゃないと考えられているから
437:デフォルトの名無しさん
17/12/19 20:05:56.79 XSrelQ4n.net
>>426
それが実現すれば理想的なんだが現実はそう上手くはいかない。
こんな会話が発生している時点で建設的じゃない批判が起こっているという悲しい事実。
438:デフォルトの名無しさん
17/12/19 20:47:02.26 dep2iFkQ.net
現実もほったらかしにしてるわ。
だからまともにテストのない
439:コードがあちこちにある。。
440:デフォルトの名無しさん
17/12/19 21:09:05.12 +t5AZThl.net
>>424
ほら、理解させられないw
441:デフォルトの名無しさん
17/12/19 21:45:39.68 hKOvQSVX.net
次世代言語の話をしろよ…
442:デフォルトの名無しさん
17/12/19 22:19:39.18 IFsKBc84.net
次世代言語は静的型か動的型か?
443:デフォルトの名無しさん
17/12/19 22:22:03.65 VYW2hLxr.net
静的型に決まってるやろ…
444:デフォルトの名無しさん
17/12/19 22:42:35.74 ngbi4CU2.net
動的言語Clojureさん
445:デフォルトの名無しさん
17/12/19 22:47:01.55 Vp6Wk3js.net
暗黙的な静的型付けが主流になると思う
頭の良い人間が多相を明示的に駆使して必死に辻褄合わせするんじゃなく、
コンパイラがフロー解析を頑張ることで人間に負担をかけずに厳密な静的型付けを実現する
メジャーどころだとTypeScriptはそういう方向へ向かいつつあるね
446:デフォルトの名無しさん
17/12/19 23:52:06.32 LaOLTVhQ.net
型無し旧世代ガイジどもは死ね
447:デフォルトの名無しさん
17/12/19 23:55:12.83 IFsKBc84.net
ドカタ部門やハッカー部門など、部門ごとに次世代言語を決めた方が良さげ
448:デフォルトの名無しさん
17/12/20 01:24:03.63 fcm+RWAl.net
HaskellのIOモナドみたいのが主流になってきたら
実行時型付けも局所的に使えるけど
全体としては静的型付け、みたいな感じになりそう
449:デフォルトの名無しさん
17/12/20 01:28:01.05 HrNa8kdY.net
コードのどの部分で静的型チェックするのかってのが争点になるかもね。
450:デフォルトの名無しさん
17/12/20 01:40:49.86 RSIhrBYE.net
>>435
動的型付け言語の方が新しいんだよなあ
451:デフォルトの名無しさん
17/12/20 02:07:25.86 KBs5e3Jn.net
新しければ常にいいなら世の中楽だな
452:デフォルトの名無しさん
17/12/20 02:08:13.16 yTANvvcN.net
新しいものが良くないのは地獄すぎる
453:デフォルトの名無しさん
17/12/20 06:17:59.95 megjw+LT.net
2世議員とかな
454:デフォルトの名無しさん
17/12/20 07:55:10.76 YSR/eiRE.net
>>439
プッ 恥ずかしい子・・・
455:デフォルトの名無しさん
17/12/20 08:39:38.13 ODk3G9Dt.net
>>441
単に新しいものでは地獄がまだ見えてないかもしれないだけかもしれんぞ。
456:デフォルトの名無しさん
17/12/20 08:44:51.44 megjw+LT.net
人間万事塞翁が馬ということだな。
457:デフォルトの名無しさん
17/12/20 22:58:07.90 HrNa8kdY.net
とりあえず言っとくが
cobol だって perl だって vba だって php だって当時は新しかったんだよ。
458:デフォルトの名無しさん
17/12/23 01:16:52.24 t3UiuX8x.net
多重ディスパッチ
459:デフォルトの名無しさん
17/12/24 00:50:02.64 g6gmcbUh.net
Lispは神の言語