◎正当な理由による書き込みの削除について:      生島英之とみられる方へ:

次世代言語Part8[Haskell Rust Kotlin TypeScript] YouTube動画>3本 ->画像>4枚


動画、画像抽出 || この掲示板へ 類似スレ 掲示板一覧 人気スレ 動画人気順

このスレへの固定リンク: http://5chb.net/r/tech/1512137301/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

1デフォルトの名無しさん
2017/12/01(金) 23:08:21.45ID:FxdZTiuZ
スレタイ以外の言語もok

前スレ
次世代言語Part7[Go Rust Swift Kotlin TypeScript]
http://2chb.net/r/tech/1508403098/
2デフォルトの名無しさん
2017/12/01(金) 23:25:59.72ID:zV3aJam4
スレ立て乙だけど…Haskell?
3デフォルトの名無しさん
2017/12/01(金) 23:27:25.27ID:taGRKU1H
SwiftがなくなってHaskellが復活とか笑っちゃいますね!
4デフォルトの名無しさん
2017/12/01(金) 23:31:17.55ID:FxdZTiuZ
Haskell好きやねん
5デフォルトの名無しさん
2017/12/01(金) 23:33:22.55ID:79R00kdr
結局Haskell批判してたのエアプだけだったし、実のある批判が出るまではええじゃろ
6デフォルトの名無しさん
2017/12/01(金) 23:40:21.46ID:8Ef9tVvd
まぁランダムでスレタイに入れる言語を4つ選ぶプログラムとか書いちゃえばいいのよ
7デフォルトの名無しさん
2017/12/01(金) 23:40:21.94ID:FxdZTiuZ
モナドかわいいよモナド
あとRustも好き
8デフォルトの名無しさん
2017/12/02(土) 00:01:37.22ID:IJ6GXagf
つまり毎回スレたて人の好みで言語が決まるのですね。
乙。だがGo入れろ
9デフォルトの名無しさん
2017/12/02(土) 00:09:24.28ID:SCTVwGxx
Haskellは前の議論で次世代から落ちたはずだけど?
あとRustなんて言語未満いれるな
10デフォルトの名無しさん
2017/12/02(土) 01:15:27.47ID:sEwFCJtO
面接でたまに、特定の言語けなす応募者が居るけど、
じゃあどんな言語が好きですか?なぜその言語が
良いと考えるのですか?と聞くとダンマリ。
11デフォルトの名無しさん
2017/12/02(土) 01:45:05.81ID:H6Gj4fb5
いいんじゃねーの?
特定の言語をマンセーしてる奴よりか、
言語の問題点を把握してる奴のがプログラマとしては信用できるし。
12デフォルトの名無しさん
2017/12/02(土) 01:54:29.37ID:Xx8KInD+
不満がない、見つけられないのが良い所だろうしな
13デフォルトの名無しさん
2017/12/02(土) 02:11:44.76ID:WmrP00A3
このスレは特定の言語をマンセーする人は少ないな
その代わり知らない言語を批判する人はいるけど
14デフォルトの名無しさん
2017/12/02(土) 02:18:08.08ID:vHUqozHI
sから始まる言語を批判すると、気持ち悪い信者がワラワラと湧いてくるよ
15デフォルトの名無しさん
2017/12/02(土) 03:12:15.72ID:UE7qzU9L
漏れなら面接で、Rust, Elixir, Kotlin, Haxe の良い点を聞く
16デフォルトの名無しさん
2017/12/02(土) 09:18:47.22ID:sEwFCJtO
>>11
ダンマリは社会人として不味いよ。
17デフォルトの名無しさん
2017/12/02(土) 09:28:01.01ID:H6Gj4fb5
>>16
まあ好きだって言った言語に対して狙い撃ちされる会話の流れを
理解してるって意味ではいいんじゃねーの。
結局、自分が不愉快だったってだけの話だろそれ。
18デフォルトの名無しさん
2017/12/02(土) 11:08:11.50ID:pAxOhb0h
TypeScript 入れるくらいなら PureScript 入れたらいいのに
19デフォルトの名無しさん
2017/12/02(土) 11:48:08.89ID:72s6oBNC
そもそも次世代言語とかいうものそのものが、大企業の広告塔でしかないからな
GoとかTypeScriptとかRustとかモロそれ
コンパイラがGPLでライセンスされて活発に開発されて、特定の企業集団に開発が握られてない言語だけを数えるべきでは

この点でオレオレ実装と、政治でねじ込んだクソ古いgcc実装しかないGoや、llvmバックしかないRustは除外される
Typescriptもアウト。まともな次世代言語は存在しないと言ってもいい
20デフォルトの名無しさん
2017/12/02(土) 11:52:14.94ID:3VmXWZxS
言語の仕様ではなくて成り立ちを問題視しちゃう子
21デフォルトの名無しさん
2017/12/02(土) 11:57:58.87ID:mYy0y04S
勝手に規則を決めて全部アウトとかオモロイ奴やな
22デフォルトの名無しさん
2017/12/02(土) 12:00:04.17ID:pAxOhb0h
>コンパイラがGPLでライセンスされて

なんだろうこの臭気
23デフォルトの名無しさん
2017/12/02(土) 12:00:59.26ID:TzW9B0ui
「批判」とか「政治」とか大雑把なジャンルしか認識できない奴はいっぱいいる
記憶力が足りないのか
そもそもリアルタイムで論破すれば記憶力いらないのに、反射神経が足りないのか
24デフォルトの名無しさん
2017/12/02(土) 12:05:29.85ID:72s6oBNC
言語の成り立ちっつーか、誰が開発しててどこが意思決定権持ってるかは重要だぞ?
Javaコンパイラのバグを握りつぶしたOracleの記憶はまだ新しい

言語はプログラムを作るものなのに、その言語がブラックボックスかしてたら、そんなもん使うべきではない
どんなリスクがあるか分かったもんではない
25デフォルトの名無しさん
2017/12/02(土) 12:16:13.40ID:72s6oBNC
GPLはクサイと言われるが(実際面倒な話なのは承知してるが)、
GPL以外のライセンスでは、後付けでブラックボックスかできてしまう
だからGPLのコードベースで開発がすすんでいることは重要
26デフォルトの名無しさん
2017/12/02(土) 12:22:00.15ID:mYy0y04S
じゃあ何を推すのさ
27デフォルトの名無しさん
2017/12/02(土) 12:24:56.17ID:pAxOhb0h
BSDやAPLでコンパイラをリリースしたら「次世代言語じゃない!」ねえ ┐(´д`)┌
28デフォルトの名無しさん
2017/12/02(土) 12:26:49.92ID:PRegk6Y6
Vala?
29デフォルトの名無しさん
2017/12/02(土) 12:32:50.98ID:JadDCVYU
ID:72s6oBNC
今日のガイジ
便所ブラシことペチプーでも書いてればええんやないか?
30デフォルトの名無しさん
2017/12/02(土) 12:54:07.38ID:72s6oBNC
>>29
なんで次世代言語のGPLライセンスは重要って言っただけで肥溜めに頭から突っ込まれなきゃいけねえんだよ
土人かよ
31デフォルトの名無しさん
2017/12/02(土) 13:01:57.78ID:qE46CGT4
>>30
よお土人
32デフォルトの名無しさん
2017/12/02(土) 13:03:37.01ID:TzW9B0ui
Haskell Rustあたりは仕様を知ってるだけで嫉妬されるレベルなんだろ
そりゃ実装はブラックボックスでもいいかなってなるだろ
33デフォルトの名無しさん
2017/12/02(土) 13:05:02.42ID:72s6oBNC
>>32
いかにも実際の仕事をしらないお偉いさんが机の上でこねくりまわした感がある
34デフォルトの名無しさん
2017/12/02(土) 13:17:40.53ID:TzW9B0ui
言語が何であろうと使ったことがないアプリはソース読めないぞ
読む前に使い込むべきだ
使う前に読めると思う方が机上なんだよ
35デフォルトの名無しさん
2017/12/02(土) 13:18:04.32ID:JVkL85Me
やっぱHaskell入ったんだな。
よっぽど悔しかったんだろうなあ。推しなのに。
AKB総選挙かよw
36デフォルトの名無しさん
2017/12/02(土) 13:23:56.16ID:ugnQ3p4B
労力が見合うかは分からないけれど、
大抵のコンパイラはソースも公開されてない?
37デフォルトの名無しさん
2017/12/02(土) 13:25:37.97ID:pAxOhb0h
>>33
>いかにも実際の仕事をしらないお偉いさんが机の上でこねくりまわした感がある

その評言が当てはまるのはHaskellでもなくRustでもなく Go 言語
38デフォルトの名無しさん
2017/12/02(土) 13:26:42.90ID:72s6oBNC
>>36
まさかMITやAPLとGPLの違いが分からん奴がこのスレにいるとは
39デフォルトの名無しさん
2017/12/02(土) 13:27:52.88ID:pAxOhb0h
>>30
>なんで次世代言語のGPLライセンスは重要って言っただけで

違うだろ
お前さんが >>19 で言ってるのは、コンパイラがGPLでなければ
次世代言語には数えられないってことだったろうよ
40デフォルトの名無しさん
2017/12/02(土) 13:30:13.04ID:72s6oBNC
>>39
そうだが?
ないと次世代として認めがたいっていうのは要素として重要ってことと矛盾するのか?
41デフォルトの名無しさん
2017/12/02(土) 13:32:42.01ID:pAxOhb0h
あとな、言語屋の端くれとして言わせてもらうと
まあ成果物(特に公的研究機関)の公開の際にGPL採用するって選択肢はほぼないんだわ
42デフォルトの名無しさん
2017/12/02(土) 13:34:31.51ID:pAxOhb0h
>>40

はあ?
>>30 の「言った『だけ』」の「だけ」の部分が大嘘だろうがよ
43デフォルトの名無しさん
2017/12/02(土) 13:35:34.51ID:pAxOhb0h
PHPが相応しいかどうかは知らんが、まあガイジ乙ってこった
44デフォルトの名無しさん
2017/12/02(土) 13:37:18.57ID:72s6oBNC
結局このスレの住民も、ジョブスの作った快適な牢獄で永久に囚われる方がお好みってか
ほんとディストピアになったな
45デフォルトの名無しさん
2017/12/02(土) 13:40:52.41ID:72s6oBNC
>>41
HaskellはともかくGoやRust、Typescriptは研究機関の成果物じゃなくて単なる企業の広告塔だろうが……
46デフォルトの名無しさん
2017/12/02(土) 13:44:29.43ID:Jtrxh33g
成果物ではなくて広告塔でもなくて自社製品を作るためにできた副産物だろ。
47デフォルトの名無しさん
2017/12/02(土) 13:54:09.27ID:TzW9B0ui
Rustが研究しているのはジョブズではなく静的型付け
牢獄になるとすれば静的型付けが牢獄になるんだよ
48デフォルトの名無しさん
2017/12/02(土) 13:55:36.52ID:pAxOhb0h
>>44
>結局このスレの住民も、ジョブスの作った快適な牢獄で永久に囚われる方がお好みってか
>ほんとディストピアになったな

あ、ガイジというよりはキチガイのひとだったか
49デフォルトの名無しさん
2017/12/02(土) 13:58:37.03ID:pAxOhb0h
>>47
>牢獄になるとすれば静的型付けが牢獄になるんだよ

一部のLISPer除いてRustの型システムでは型が付かない正当なコードが書きたいのに書けない!なんてやつ殆どいないだろ
50デフォルトの名無しさん
2017/12/02(土) 14:36:48.87ID:TzW9B0ui
静的型付けはQBみたいな奴だ
牢獄と契約は似たようなものと思うか全然違うと思うかは人それぞれ
51デフォルトの名無しさん
2017/12/02(土) 15:29:44.21ID:JadDCVYU
じゃあどんな言語が好きですか?なぜその言語が
良いと考えるのですか?と聞くとダンマリ。
52デフォルトの名無しさん
2017/12/02(土) 15:37:46.07ID:Jtrxh33g
そんなやついないだろ
53デフォルトの名無しさん
2017/12/02(土) 16:02:09.41ID:ugnQ3p4B
>>38
ソース読めれば、ブラックボックス化は
防げるんじゃないの?

あなたが上げてるライセンスで、
ソースを読んではダメってモノは
ない気がするんだけど。
54デフォルトの名無しさん
2017/12/02(土) 16:16:44.09ID:Jtrxh33g
仕様と実装は分けて考えるべき。
55デフォルトの名無しさん
2017/12/02(土) 16:25:11.46ID:Dl6HEW0V
厳密に言えば配布されているソースと配布されているバイナリが違う可能性は存在するけどな
わかりやすい罠でも仕込まれてない限り検証不可能だろ、GPLであっても
56デフォルトの名無しさん
2017/12/02(土) 17:35:29.54ID:/D9bpJpS
ライセンスは個人ならMIT、企業ならApacheが主流
緩いライセンスの上で企業が主導するというのが、昨今のオープンソース界隈
オープンソース同士の競争や発展が当たり前になって、落ち着くべきところに落ち着いた

GPLの衰退、寛容なオープンソースライセンスの興隆
https://japan.zdnet.com/article/35058087/
http://redmonk.com/sogrady/2014/11/14/open-source-licenses/

http://redmonk.com/sogrady/2017/01/13/the-state-of-open-source-licensing/
http://redmonk.com/sogrady/2017/09/22/cloud-native-license-choices/
57デフォルトの名無しさん
2017/12/02(土) 17:48:55.03ID:wMBa/T9i
>>53
GPLでない限り、どこかの瞬間にソースをクローズドにできてしまう
その違いくらい分かっとけ

>>56
そういうものは単にソースが公開されているだけで、企業にとって都合の悪いコードは入らない
開発姿勢の問題
58デフォルトの名無しさん
2017/12/02(土) 17:54:11.74ID:wMBa/T9i
コードのソースが公開されていることと、プログラムに対する自由が保証されていることは全く違う

ちょっとは勉強しろ
https://www.gnu.org/philosophy/open-source-misses-the-point.ja.html
59デフォルトの名無しさん
2017/12/02(土) 17:54:42.99ID:8J+E3A3v
クローズドにされた派生物は元のオープンソースにその企業なりの変更を加えたものだろ。
他の人はクローズドにされる前のオープンな方を使い続ければいいだけ。
60デフォルトの名無しさん
2017/12/02(土) 18:00:12.16ID:wMBa/T9i
>>59
元コードのライセンス自体を変えられたらアウト。MITやAPLなら不自由なライセンスに変更することが可能
GPLならそういうことは不可能
61デフォルトの名無しさん
2017/12/02(土) 18:05:29.89ID:9Vn/PEwl
今時、GPL真理教のご登場とは、驚きだな。
そういう人は、次世代言語がgccに組み込まれるまで、待ってたらいいと思うよ。
62デフォルトの名無しさん
2017/12/02(土) 18:22:10.64ID:8J+E3A3v
新しく配布するライセンスを変更することはできても、一旦ライセンスされたものを過去に遡って
変更するなんてことはそのライセンス自体にそのような規定がない限り無理。
新しく配布するライセンスを変えるって話なら(その権利がある者なら)元がGPLだろうが可能なのは同じ。
63デフォルトの名無しさん
2017/12/02(土) 19:42:01.02ID:H6Gj4fb5
GPLも違反の場合の措置は国の法律に従うとかそんな規約だった気がするから、
国によっては過去に遡って棄却とかあるんじゃねーの?
64デフォルトの名無しさん
2017/12/02(土) 20:00:19.24ID:JVkL85Me
言語屋の端くれって何者なんだ。
工学博士の端くれぐらいまではギリギリ言ってみようかとも思えるけど、言語屋って凄いな。
65デフォルトの名無しさん
2017/12/02(土) 21:01:20.98ID:JadDCVYU
こんなところで喚くしか能のないゴミ屑が
ライセンスうんぬんで不利益被るほどの立場なわけないだろ
大人しくプェチピィで下痢糞プリプリしてろよ
66デフォルトの名無しさん
2017/12/02(土) 21:01:40.00ID:/D9bpJpS
>>1
前スレ終盤でも名前挙がってたが、Elmバズってるな
本スレがない言語(Elm Nim Crystal他)もスレタイ候補でいいか

ElixirからElmの流れで、いよいよオブジェクト指向に対する懐疑心が無視できないレベルに達した2017年冬。
https://ubiteku.oinker.me/2017/12/02/skepticism-about-oo/
67デフォルトの名無しさん
2017/12/02(土) 21:16:27.51ID:vrpISaZz
OOを批判するのはいいけど消去法で関数型とか思うのは大間違い
消去法するくらいなら対案を何も出さない方が正しい
68デフォルトの名無しさん
2017/12/02(土) 22:37:35.51ID:mYy0y04S
関数型の定義はよく分からんけど、第一級関数は欲しいな
69デフォルトの名無しさん
2017/12/02(土) 23:58:45.47ID:IJ6GXagf
redux(react)触ったやつがelmに流れてるんだろうな。

js+redux+immutable.jsの組み合わせだったらelmってことかね
70デフォルトの名無しさん
2017/12/03(日) 02:09:05.69ID:Ct3m3qtO
「じゃあお前はどんな言語なら満足なんだ」ってしつこく聞かれてるから言うが
次世代言語かって言われたら微妙だからあんま挙げる気はなかったんだが、理想はVala
Cにトランスパイルされるから速度は良好、コンパイラのライセンスはLGPL、構文は比較的モダン

ただ今時の他言語と比較するともう一声ほしい
71デフォルトの名無しさん
2017/12/03(日) 02:59:41.58ID:Hpu25AWg
バラ、初めて聞いたわ
よくそんなマイナー言語知ってるな
72デフォルトの名無しさん
2017/12/03(日) 09:08:16.53ID:J28DlChh
GNU狂儲じゃない人にとってはValaなんてC#の劣化コピー未満だし、
C#は現世代言語だから次世代には不適格だろう
73デフォルトの名無しさん
2017/12/03(日) 12:08:02.85ID:7jfP6ZRC
その性能を見せてくれたら変わるかもしれんけどな
.NETのメモリを食い尽くす糞戦略GCが無いというならまあ……

Cにトランスパイルされて性能良好という点ではnimと丸かぶりな上
基本的にnimのほうが融通がききそうな気はするけど
GObject互換が有利に働くケース(例えばcairo呼ぶとか)ではValaの方がいいんだろう、たぶん、知らんけど
74デフォルトの名無しさん
2017/12/03(日) 15:33:23.03ID:Es8BrMdC
まあだからValaが次世代言語とは一言も言ってない
例えばNimのコンパイラが(L)GPLになってくれてれば全力で推すよ。でも現実はMITだ
75デフォルトの名無しさん
2017/12/03(日) 16:03:56.50ID:Cfl2NYpj
>>60
Linuxなど極一部の例外を除いて、今時のまともなOSSは基本的に全て企業様が開発しており、
寛容にも乞食に対して提供してくださっているものである
GPL信者が主張する、企業が成果物をGPL化するメリットとして、
「コミュニティからの協力を受けられる」というのがあるが、(乞食共の協力がどれだけ役に立つかは別として)これには落とし穴がある
GPLで公開してるものに対して乞食がプルリクを出し、これが本家にマージされた時点で、本家のソースがGPLに感染するということだ
これは企業にとって到底受け入れられるものではない
GPLは企業のオープンソースへの参加の障害になるんだよ
76デフォルトの名無しさん
2017/12/03(日) 16:11:23.39ID:Cfl2NYpj
>>75
補足
本家のソースがGPLに感染するというのは、開発元の企業自身が、ソースの使用にあたりGPLに従わなければならなくなるという意味な
成果物をドブに捨てるようなもんだ
77デフォルトの名無しさん
2017/12/03(日) 16:16:53.98ID:ySR1wv1e
そういうものはデュアルライセンスで公開するんじゃないか普通。知らんけど。
78デフォルトの名無しさん
2017/12/03(日) 16:17:53.46ID:LB13FI05
逆に考えれば自分がただで作ったものが企業の金もうけに使われるのを防いでるわけだろ。
そういういみでGPLは必要。
79デフォルトの名無しさん
2017/12/03(日) 16:32:50.74ID:Cfl2NYpj
>>78
そう。つまりこういうことだ。
ユーザーからのコミットを受け入れるというポジティブな理由でオープンソースを採用するならGPLは不適切。
オラクルのように、有償契約への誘導を前提としてオープンソース版を撒き餌にするなら、
成果物の盗用を防ぐ意味でGPLが適切。
本来OSS信者が批判すべきなのはどちらだろう?
一度落ち着いて考えてみよう。
80デフォルトの名無しさん
2017/12/03(日) 16:46:21.13ID:Es8BrMdC
だから「自由ソフトウェア」と「オープンソースソフトウェア」は違う概念って話だよな
そもそも企業が主導してる開発は、企業の恣意が入るわけで、自由ではない
今は乞食に恵むことが点数になるからそうしてるだけ
乞食に甘んじるならそれでいいかもしれんがな

一念発起して自分の畑を開墾することになったときに、GPLがないと企業に土地を盗まれたり、いつのまにか乞食に占拠されたりするんだよ
だからGPLの言語は重要なんだよ
81デフォルトの名無しさん
2017/12/03(日) 16:47:34.26ID:Cfl2NYpj
もっというと、
・プロジェクトにコミットした個人乞食にとって、そのプロジェクトの最新の成果物を継続的に利用できる利益を守るのがGPL
・開発元の企業にとっての利益を守るのが「寛容なライセンス」
ということだ。そして、下記の理由から、後者を優先したほうがOSS全体にとっての利益が大きい。
・一般に、個人より企業の方がOSS遥かに多くの貢献をしているから、企業の参入を促したほうがOSSは拡充する
・当たり前だが、利用者にとっては寛容なライセンスの方が利用しやすい
82デフォルトの名無しさん
2017/12/03(日) 16:50:27.91ID:MdLc4Lg3
>>78
別にGPLは金もうけに使うことを防ぐためにあるわけじゃないよ。
実際、金もうけだろうがなんだろうが単純使用については制約を設けることを禁止してるわけだし。
83デフォルトの名無しさん
2017/12/03(日) 16:52:07.39ID:dv78RNI3
個人で出来る開発なんて限られてるから企業が参入してくれたほうがいいし、企業は慈善団体じゃないんだから利益考えるのは当然だろ
企業がーステマがーって気持ち悪すぎる
84デフォルトの名無しさん
2017/12/03(日) 16:54:31.97ID:dv78RNI3
これだからワッチョイつけろと言ったのに
85デフォルトの名無しさん
2017/12/03(日) 16:58:46.31ID:FoZg6mpZ
この板ってワッチョイあるの?
86デフォルトの名無しさん
2017/12/03(日) 17:00:11.80ID:Q+UzJ2jP
わざわざ次世代言語スレに来て、
「俺ルールにより、全ての言語は次世代ではない!!」

ってマ?
87デフォルトの名無しさん
2017/12/03(日) 18:06:19.80ID:vwbP6I+a
GPLは自分が作ったものだけじゃなく使ったものにも影響を及ぼすからなあ
LGPLが一番マトモなんじゃないかと思ってるんだが
88デフォルトの名無しさん
2017/12/03(日) 18:39:22.73ID:sBoz0VTg
>>81
OSSが拡大しても自由ソフトウェアは拡大しない

まあ言語スレでやるべき話題ではそろそろなくなってきてるのはすまん
89デフォルトの名無しさん
2017/12/03(日) 18:44:51.43ID:n/4R2J1f
望まれてないから拡大しないんだ、ってのが分からないところが儲
90デフォルトの名無しさん
2017/12/03(日) 18:51:18.78ID:9khz2s/N
>>86
いつもの事だよ
91デフォルトの名無しさん
2017/12/03(日) 19:06:01.80ID:Hpu25AWg
>>86
次世代ガイジ
92デフォルトの名無しさん
2017/12/03(日) 19:07:55.59ID:fDoYnNZt
>>19
まあ、大企業がサポートしてるからこそ信頼性が増すんだけどね。
弱小勢力の作ってる言語なんざいつやる気が無くなってサポート停止するかわからんのに
使ってられないよ。
93デフォルトの名無しさん
2017/12/03(日) 20:15:24.10ID:GYPu5Uwk
サポートを永久に続けさせたいとは思ってないんじゃないかな
ただ、無料版だけサポート停止して有料版に移行させる手口を防ぐだけでいい
94デフォルトの名無しさん
2017/12/03(日) 20:40:28.46ID:T5z0rd35
このガイジの言葉を全否定するが、別に言語の処理系のライセンスがGPLだろうと非GPLだろうと
その言語で書かれたプログラムのライセンスには何も影響しない
Javaの処理系がクローズドソースだった時にJavaコードがオープンソースにできなかったかってことを考えればすぐ分かる

言語の仕様がオープンなら、もしこのガイジの懸念どおり処理系をオープン→クローズドソースにされたところで
本当にその言語が有用だったらクローンの処理系が出てくるだけのこと。open-jdkやらmonoが良い例だ

要するにこのガイジ、ライセンスのことを何も分かってない知ったか
95デフォルトの名無しさん
2017/12/03(日) 20:46:25.36ID:T5z0rd35
ガイジを殴るだけのレスだと何なので
Haxeみたいな「書いた端からあらゆる言語にトランスパイルして使う言語」ってやっぱりコンセプトとして駄目なのかね?
最近のいわゆる次世代言語って、おおむねネイティブ(もしくはJavaマシンコード)にコンパイルする系ばっかのはず
例外はTypescriptとHackくらいか?
96デフォルトの名無しさん
2017/12/03(日) 20:55:26.88ID:GYPu5Uwk
93,94をまとめると
GPLなコードを再利用しつつ有料版に移行させるのは無理
コードを捨ててクローンするならOK
97デフォルトの名無しさん
2017/12/03(日) 21:05:47.23ID:RLNGue2S
>>94
Javaに関しては、openjdkを勝手にフォークして改変したものを出回らせたら特許侵害でオラクルに訴えられるよ
特許の利用はあくまで公式にリリースされたopenjdkに対して認められてるもので、
弄ったらJavaとは認められなくなり即訴訟
98デフォルトの名無しさん
2017/12/03(日) 21:19:08.36ID:T5z0rd35
>>97
すまん、open-jdkっていうのは不正確だったな。IcedTeaって言った方が正確だった
まあ厳密にはIcedTeaも当時のSunの協力あってのことで、勝手フォークでやった訳ではなかったんだが……
99デフォルトの名無しさん
2017/12/03(日) 21:19:33.27ID:7jfP6ZRC
>>95
中間言語のせいで遅くなってる直接アセンブリ(機械語より広い意味で)にできるなら効率的なのにグギギギギ
というのを気にしなければトランスパイラでもいいんじゃね
Typescript→Javascriptぐらいなら気にならんだろ
Scalaとか思いっきりJVMに足を引っ張られてた例と思う

ちょっと話は違うけど可変長配列を値返しできる言語を主にC系のことしか考えてないバックエンドで実装すると
mallocして返すかForthみたいにデータスタックをもう一つ用意するかぐらいしか方法がない、みたいな
100デフォルトの名無しさん
2017/12/03(日) 21:29:59.69ID:7jfP6ZRC
書いてからもっといい例を思いついた
トランスパイル先に選ばれそうな言語(CとかJVMとかJavascriptとか)って
どれも末尾呼び出し最適化が保証されてないから関数型言語なら避けたいはず
101デフォルトの名無しさん
2017/12/03(日) 21:51:34.72ID:XVQ9VXzY
末尾再起最適化なんかトランスパイルの段階でできるだろ
自分でやってみりゃわかるけど、別の言語への変換って細かい仕様のすり合わせが難しくて
どう頑張っても変換結果は綺麗なコードにはならんよ
102デフォルトの名無しさん
2017/12/03(日) 22:16:35.41ID:7jfP6ZRC
>>101
自身への末尾「再帰」は変換できるが、末尾「呼び出し」一般はかなり難しい
特にモジュールをまたぐとまず無理
103デフォルトの名無しさん
2017/12/03(日) 22:18:35.13ID:2u990JKW
臭い消しもできないのかID:7jfP6ZRCは
104デフォルトの名無しさん
2017/12/03(日) 22:31:58.75ID:7jfP6ZRC
なんだ?誰と間違えられてるんだ?
105デフォルトの名無しさん
2017/12/03(日) 23:20:51.54ID:8Yd/vHN3
トランスパイルする時点で全部gotoにしちゃえばいいんじゃねえの?
ヒープは馬鹿でかい配列切り出して貸してやりゃ良いじゃん。
一番現実的だと思うけど。

と言うか間違えられてかわいそうだな。
106デフォルトの名無しさん
2017/12/03(日) 23:24:33.80ID:8Yd/vHN3
トランスパイラだから、トランスパイル先の言語の作法を守らにゃならん、なんてトランスパイラは
どっちつかずのゲテモノになるなんてのが歴史的にある程度わかってきたんだから、諦めて超高級マクロアセンブラとして使うべきだと思うが、
やっぱそのトランスパイル先の美しさって必要なのかねぇ。
107デフォルトの名無しさん
2017/12/03(日) 23:25:29.18ID:Q+UzJ2jP
くっさ
108デフォルトの名無しさん
2017/12/03(日) 23:27:40.12ID:8Yd/vHN3
>>90
は臭くなかったのに面白いな。
109デフォルトの名無しさん
2017/12/03(日) 23:52:53.39ID:7jfP6ZRC
>>105
ありがとうありがとう

で、goto式だと呼び出し先も含めてひとつの関数にまとめないといけないので
他の関数をtail callしているのがつながって爆発的にコードサイズが膨れ上がる
JVMだと64kbの壁があるとかないとか https://togetter.com/li/280057
またモジュールを超えるとアクセス制御にかかったりもする
110デフォルトの名無しさん
2017/12/03(日) 23:52:56.38ID:H7G92E6b
>>100
javascripというかecmascriptは末尾再帰の最適化は仕様になってる。
111デフォルトの名無しさん
2017/12/04(月) 00:00:49.77ID:bhxDUAa4
>>110
うお本当だ、俺の情報が古かった
112デフォルトの名無しさん
2017/12/04(月) 04:42:05.46ID:76LtUM8J
Cにはlongjumpがある。
これを使えば親の関数へどこへでも飛んでいける。
末尾再帰もオプションで設定できる。
113デフォルトの名無しさん
2017/12/04(月) 08:25:09.89ID:USho8dw3
>>109
JVMだとgotoが相互に飛んでない奴らで一つの関数にまとめるしかないな。
ただ、一つの関数が64kbまで、ってそこそこ余裕あると思うよ。
関数に関数をおさめようとするから爆発的に長くなるというか、実質、関数の後ろにおまけ付いたコードが量産される事になるんだと思う。
呼び出してる側まで全部展開してしまうと割と短くなる。

昔、ホントにそういうトランスパイラ作ったけど、割としっかり動いた。
動的なメモリ確保をほとんどさせられなかったからそうなっただけだけど。

>>112
ホントに高級アセンブラだよなぁ。
114デフォルトの名無しさん
2017/12/04(月) 08:30:55.17ID:8gND/ZcP
くっさNG回避すんな
115デフォルトの名無しさん
2017/12/04(月) 09:02:24.71ID:dvJUWhXs
jsへのトランスパイラは現状、
jsが、webにおける機械語的な立ち位置
だからというのはわかる。

でもcへのトランスパイラってどんな意味があんの?手抜きとしか思えない。
116デフォルトの名無しさん
2017/12/04(月) 09:38:18.50ID:76LtUM8J
手抜き出来ることはメリットだろ。
実装と仕様は分けて考えるべきだからな。
117デフォルトの名無しさん
2017/12/04(月) 10:10:11.02ID:1pGzw3aP
手抜きっつーか、Cに変換しておけば、おおむねどんなlibcでも石でも対応するコンパイラがあるってことでは

GoみたくあらゆるものをGo内で完結させるための車輪の再発明だとか
Rustみたく欲しい環境のtripleがあるかとかtierがいくつだとか
そういう言語機能と直接的には関係ない部分のサポートに関する労力をまるっと切れるのがでかい

一時期のaltJavaやaltJSの乱立を見てると、その分言語の質が上がるかって言われたら怪しいけどな

あとllvmの台頭で、ある程度その辺を再利用できる環境が整ったから、直接機械語吐いた方がよくなりつつあるのもあるか
118デフォルトの名無しさん
2017/12/04(月) 10:54:56.82ID:dvJUWhXs
>>117
自分で言ってんじゃん。
llvmだったら中間コードまでのトランスパイラ作れば最適化とバイナリはくまでやってくれるしそこまでやりゃ良いのに。

あとgoの車輪の再発明はありだと思う。
画像変換したくてimagemagicのlibに依存する羽目になるとか勘弁。
119デフォルトの名無しさん
2017/12/04(月) 11:02:06.37ID:HnGSLV9z
車輪の再開発はありとか自分が作る立場でも同じこと言えんの
120デフォルトの名無しさん
2017/12/04(月) 11:02:26.62ID:USho8dw3
>>115
最適化とかそういう所にそれほど苦労しなくなるかな
手抜きといえば手抜きなんだけど

gccをバックエンドにするなら変な石対応が簡単だし
vc++でも食えるように書けばWindowsでも余計なもの要らないし
intelのコンパイラでゴリゴリに最適化かけたりとか、
静的ビルドでワンバイナリ作りたいからCの方のコンパイルオプションでリンクしよう、とか
既存の処理系に乗っかるのはメリット多いと思う
121デフォルトの名無しさん
2017/12/04(月) 11:39:21.16ID:1pGzw3aP
>>118
llvmが台頭してきたから相対的にCトランスパイルの魅力なくなってきたよなって話で、
昔はCトランスパイラで既存のコンパイル環境に乗っかるのがよく行われてたって歴史的な話な

gccが中間言語仕様を意図的に隠してた弊害とも言える
122デフォルトの名無しさん
2017/12/04(月) 13:22:03.65ID:s0HrNGdY
手抜きを批判する奴おるw
123デフォルトの名無しさん
2017/12/04(月) 23:23:47.01ID:IjdODrQV
実質的にはトランスパイルだろうが何だろうが、とりあえずは関係ないが
今時ライブラリ構築を0からするというのは自分一人が使う自分専用言語だと考えても
汎用言語としてはあり得なくて、何か既存の言語のソレにフリーライドせざるを得ないわけで
となれば何に乗っかるかという部分から考えるし
それが決まってから具体的な実装方を考えるし、なんだったら自動的に決まってくるわけで

余談だが、良くある乗っかり先としては、CとJavaと.NetとJSがあるが・・・
ただ、例えばネイディブコードが良いと考えてC言語系のライブラリに乗っかるとして
C言語のABIはかなり古臭いわけで、あと、ヘッダファイルの存在がかなりエグイわけで
(windows.hをそのまま読み込める自作コンパイラとか書ける気がしない)
その言語で何かCのライブラリを使いたいときCヘッダファイルを適切に移植したのち
使いやすくするためにラッパークラスまで書くとしたら
これはもう多少気に入らない部分があってもC++を使ったほうが楽だし
ヘッダを移植するツールで自動生成する方針でも古臭いCのAPIを直接叩くのなら
何のための新言語か分からないし、だからといってラッパー書くのはバカらしいし
大概のCライブラリにはC++のヘッダも付いてることを考えるとそのままC++使ったbルうがマシ
もしC言語のヘッダを直接読めるように言語を設計するとなるとマクロなども考えると
C言語と文法的に互換性が有るように言語を作らなければならないということで
これまたあまり作る意味が無い、というか多分C++
124デフォルトの名無しさん
2017/12/04(月) 23:36:03.78ID:IjdODrQV
なんで、素晴らしい言語仕様を考えることは出来るかもしれないし
頑張ってコンパイラを作ることも可能かもしれないが
結局ライブラリをどうするのかという部分が一番の問題で
0から構築するのはあり得ないから何かに乗っかるわけだが
当然乗っかり先の制約を受ける
特にネイティブコード系は一番普及しているABIがC言語のソレであり
気に入らないのでひたすらラップしまくる日々か
諦めて次世代言語の機能を生かせずアンセーフとか言っちゃって直接叩くか
125デフォルトの名無しさん
2017/12/05(火) 07:59:12.87ID:8RhNw6Wh
次世代言語はコレだろ
https://arstechnica.com/gadgets/2017/09/microsoft-quantum-toolkit/
126デフォルトの名無しさん
2017/12/05(火) 08:02:00.55ID:hRLlSr5E
M$サーバでしか動かない言語はNG
127デフォルトの名無しさん
2017/12/05(火) 11:01:11.59ID:NtWJrTYb
Win鯖で運用されない = Win鯖で使えない
だからな
リーナスが死んだら終わりな言語とかよく使えるな
128デフォルトの名無しさん
2017/12/05(火) 11:03:08.63ID:wKllXbtS
リーナス死んだらUnixサーバー終了ってマ?
129デフォルトの名無しさん
2017/12/05(火) 14:15:20.69ID:3OMBWQX7
どうでもいいが長すぎる文章は読まないからな。もっと要約して話せ
130デフォルトの名無しさん
2017/12/05(火) 14:25:30.36ID:wKllXbtS
あのスペースホルダー邪魔だよな
131デフォルトの名無しさん
2017/12/05(火) 15:43:17.12ID:V+NdjayN
AutoMLが次世代言語らしいな。
132デフォルトの名無しさん
2017/12/05(火) 19:36:47.33ID:ueMa998Y
>>127
君の言っている意味がよくわからない。
言語?
133デフォルトの名無しさん
2017/12/05(火) 21:42:34.05ID:uUkZwDzW
>>128
今のリーナスは、リリース担当兼広報。

実際のリリーススケジュールとか開発機能とかは
スポンサーの企業が決めている。
134デフォルトの名無しさん
2017/12/05(火) 21:54:34.45ID:XBgkE6Xw
リリリリリリリリリリリリリ
135デフォルトの名無しさん
2017/12/05(火) 21:56:16.41ID:wKllXbtS
リーリスリリースリーリリスリリリリリーリスリー
リーリナリリーナリーリリナリリリリリーリナリー
136デフォルトの名無しさん
2017/12/05(火) 21:56:27.08ID:TliYC8gy
Elixir から Elm の流れで、いよいよオブジェクト指向に対する懐疑心が無視できないレベルに達した2017年冬。
https://ubiteku.oinker.me/2017/12/02/skepticism-about-oo/
137デフォルトの名無しさん
2017/12/06(水) 00:55:40.02ID:5Fm3uunR
ブログ記事は信用しない
マウント取るためだけの批判の連鎖がよくあるんだと、フロントエンド界隈で学んだ
138デフォルトの名無しさん
2017/12/06(水) 01:45:10.28ID:TwrP1kt8
でも2ちゃんは信用しちゃいまつw
139デフォルトの名無しさん
2017/12/06(水) 01:47:25.25ID:6LacDPiL
OCamlをやるとプログラム中でオブジェクト指向を使った抽象化が必要な場所はほとんど無いことに気付くよ
140デフォルトの名無しさん
2017/12/06(水) 02:00:40.62ID:9Cl2Q0EY
オブジェクト指向って抽象化なのか?
プログラミングで扱うのは本質的には「操作」だが、それは人間にとって抽象度が高く理解しづらい(と考えられていた)から、
仮想的なモノに見立てることで具象化したのがオブジェクト指向だろ
141デフォルトの名無しさん
2017/12/06(水) 02:19:19.87ID:EoxkbCFV
メモリとかハードウェアまわりを触るのが具象で
オブジェクトのような仮想的なものを扱うのが抽象だと思っていた
142デフォルトの名無しさん
2017/12/06(水) 02:38:24.20ID:TwrP1kt8
>>141
コレメンサスンゴな
143デフォルトの名無しさん
2017/12/06(水) 03:37:41.63ID:s/vk2t6t
>>139
OCamlのOの意味を考えたことあるかい?
144デフォルトの名無しさん
2017/12/06(水) 08:37:01.32ID:omJYBD6x
>>143
名前に入ってようがなんだろうが OCaml で 殆ど誰もOO しないのは端的な事実
145デフォルトの名無しさん
2017/12/06(水) 08:38:30.89ID:KSpOhWT+
OCamlだからこそでしょ
146デフォルトの名無しさん
2017/12/06(水) 08:43:46.19ID:omJYBD6x
OCaml ではまず OO なんかしない件についての説明

http://d.hatena.ne.jp/camlspotter/20080906/1220723583
http://d.hatena.ne.jp/camlspotter/20131028/1382960006
147デフォルトの名無しさん
2017/12/06(水) 08:58:33.91ID:LlbO+WJR
正確にはocamlに文法として用意されたclass/objectを誰も使わないという話で、代わりにモジュールを使って抽象型も多態もするわけでそれはそれでOOの一種だとは思うな
148デフォルトの名無しさん
2017/12/06(水) 09:03:36.38ID:mFUG6oMG
関数型言語をやたら持ち上げてるけど
OSを関数型言語で書いてみてよ。それでバグか少なかったら関数型言語の優位性を認めるよ。
149デフォルトの名無しさん
2017/12/06(水) 09:06:07.69ID:omJYBD6x
>>147
>代わりにモジュールを使って抽象型も多態もするわけでそれはそれでOOの一種だとは思うな

ぜんぜん違うから
だがそこから説明すんの面倒くさいのでもういい
150デフォルトの名無しさん
2017/12/06(水) 09:09:24.32ID:omJYBD6x
>>148
>OSを関数型言語で書いてみてよ。それでバグか少なかったら関数型言語の優位性を認めるよ。

高水準言語でOS書けって頭悪すぎないか
Rustを関数型と認めるゆるい基準なら Redox がある
151デフォルトの名無しさん
2017/12/06(水) 09:22:35.91ID:mhTOyNgr
>>146
言語の糞さと、周りの人間が糞だからってことばかりで、全然説明になってないな
152デフォルトの名無しさん
2017/12/06(水) 09:45:25.42ID:enrVe2xz
>>137
>マウント取るためだけの批判の連鎖
これなくすだけでよくなるプロジェクトって世の中に大量にありそう。
153デフォルトの名無しさん
2017/12/06(水) 09:59:23.03ID:26uEwiQD
>>149
俺も書いてからしまった面倒くさくなる話やと思った
やめとこう
154デフォルトの名無しさん
2017/12/06(水) 11:07:54.33ID:YJV2uZev
オブジェクト指向ってそんなにだめかな?
そのオブジェクトに対する操作をそのオブジェクトに持たせるってわかりやすくていいけど。

immutable.jsのレコードみたく、
メソッドは新しいインスタンスを返す関数と強制すれば関数型とも共生できると思うんだけど。
155デフォルトの名無しさん
2017/12/06(水) 11:16:45.83ID:enrVe2xz
別に悪いってことはないだろ。
結局、状態や依存をどう管理するかって話なわけで、極論言い始める奴の
いうことなんて話 2 割くらいにきいてりゃいいと思うけど。
156デフォルトの名無しさん
2017/12/06(水) 12:05:10.45ID:MKeQWAFs
JavaScriptのようにハッシュテーブルとラムダを使う言語は関数型と共生できる
じゃあハッシュテーブルを使わない言語はなんで使わないのか?
その答えは、関数型とオブジェクト指向の対立とは全然関係ないところにある
157デフォルトの名無しさん
2017/12/06(水) 21:34:09.17ID:iLCXc0pa
DOMをデータと関数に分離してくれ
158デフォルトの名無しさん
2017/12/06(水) 22:04:59.32ID:FKF62WXq
まずデータをどれだけ圧縮できるか考えるといい
次に圧縮されたデータを展開する関数を作る
159デフォルトの名無しさん
2017/12/06(水) 23:57:54.56ID:omJYBD6x
>>151
>言語の糞さと、周りの人間が糞だからってことばかりで、全然説明になってないな

はははははははwwww
ま、がんばれw
160デフォルトの名無しさん
2017/12/07(木) 00:47:57.07ID:Z/mKUUkc
>>139
SML#でもいいですか?
161デフォルトの名無しさん
2017/12/07(木) 01:34:26.91ID:F4+mjT1z
自分PHPいいっすか?
162デフォルトの名無しさん
2017/12/07(木) 09:58:12.13ID:hv/QEVwp
語りたいことがあるんならいいんじゃない?
163デフォルトの名無しさん
2017/12/07(木) 10:03:56.61ID:xdMp5osr
typescript使っててasync awaitが便利なんだけど煩わしい。

mapとか関数呼び出しを伴う操作で非同期処理に戻るのが、
たまにミスって放置しがち。
lintツールで指摘するなり監視する機能が欲しい。
先行してるC#とかはうまくやってるの?
164デフォルトの名無しさん
2017/12/07(木) 11:18:40.20ID:9qRtkK/n
ミスを指摘するしか能がない批評家に存在価値はあるのだろうか
165デフォルトの名無しさん
2017/12/07(木) 11:39:07.45ID:v/1e0blE
>>164
ミスを作り出す無能に価値はあるのだろうか
166デフォルトの名無しさん
2017/12/07(木) 12:08:44.81ID:hv/QEVwp
何がミスなのかもわからず客が文句言ってるからで判断するバカ営業よりは価値がある。
167デフォルトの名無しさん
2017/12/07(木) 22:26:33.23ID:4FM+mzbe
This Woman Created a Programming Language with Privacy Baked In

168デフォルトの名無しさん
2017/12/09(土) 02:52:58.92ID:Fh8F1Mjo
Haskellの型クラスって凄く良い機能だと思うんだけど、地味に数学感足りないよな
NumってなんだよNumって。もうちょっと分解しろよって感じだ
Numeric preludeあんまり使われてないみたいだし
169デフォルトの名無しさん
2017/12/09(土) 11:23:01.73ID:/ZpR40F0
HaskellはStrictData拡張とStrict拡張が入った事で
実用的な次世代言語になる可能性が出てきた
170デフォルトの名無しさん
2017/12/09(土) 23:10:56.50ID:OmTdA8EX
正格も遅延も使える言語と化したHaskell先輩
171デフォルトの名無しさん
2017/12/10(日) 02:42:38.28ID:a6n4XEL6
型なし能なしのゴミ屑言語の何がいいんだろうな
ペチパーは論外、ルビーもガイジだわ
172デフォルトの名無しさん
2017/12/10(日) 04:06:55.10ID:Cg9x5qL1
動的型付けというだけで別に型がないわけではないので注意
173デフォルトの名無しさん
2017/12/10(日) 05:03:18.54ID:cDa6l0J8
>>168
あれはSmalltalkってゴミ言語がヒントになった機能だからね
なぜ最初から高階多相にしなかったんだろう
174デフォルトの名無しさん
2017/12/10(日) 05:14:36.81ID:7QrhdqaC
ハスケルは実用性重視で機能を絞ってるからな。
175デフォルトの名無しさん
2017/12/10(日) 05:53:37.29ID:g4Avn4JH
自己書き換えもできないハスケルはプログラム言語と呼ぶに値しない
純粋関数型プログラム言語(自称)ハスケルw
176デフォルトの名無しさん
2017/12/10(日) 05:56:33.48ID:of8IRKO8
Haskellは+や-といった演算子がNumに取られてるせいで
オーバーロード的なことが非常にやりにくいのが不便
<+>みたいな演算子は独自定義できるがなんかダサい
177デフォルトの名無しさん
2017/12/10(日) 10:16:20.55ID:a6n4XEL6
>>172
そういう詭弁はいらないから
178デフォルトの名無しさん
2017/12/10(日) 10:28:42.10ID:dcXB++ys
>>177
ガイジ
179デフォルトの名無しさん
2017/12/10(日) 10:35:00.41ID:IzGEuZzn
詭弁でもなんでもないだろ
静的言語の型こそまやかしだと思うが。
特にそれがただの「コンパイラだけが知っているメモリへの格納方法」である言語は、動的言語の型よりも型がないと言えると思うけど?
180デフォルトの名無しさん
2017/12/10(日) 11:12:55.67ID:mFrbF+Wk
はいはいペチパーはPHPスレから出てくんなクソが
君の大好きな肥溜めPHPみたいな動的型付け言語に型はねーから
181デフォルトの名無しさん
2017/12/10(日) 11:14:50.34ID:a6n4XEL6
ほらな
型なし能なし詭弁あり(藁)
182デフォルトの名無しさん
2017/12/10(日) 11:33:37.68ID:ATSfYuOI
まあいくら静的型でも本物のコンパイラはこんな性格悪くないから気にするな
ここにいるやつはコンパイラの守護霊だ
183デフォルトの名無しさん
2017/12/10(日) 12:16:37.53ID:OZ32lk+t
動的でも静的でも最近は型は強くする方向にはあるかもね。
c とか perl に比べれば java でも python でも十分型を強くしてる印象。
184デフォルトの名無しさん
2017/12/10(日) 12:39:27.35ID:1f8aW6Mh
真に型がない言語とはfortran77みたいな言語のことだと思う
185デフォルトの名無しさん
2017/12/10(日) 13:03:02.46ID:IzGEuZzn
PHPだとは言ってないのにな。
そもそもPHPと口に出すのこいつぐらいじゃね?
186デフォルトの名無しさん
2017/12/10(日) 13:04:01.49ID:IzGEuZzn
>>184
あるいはlispか。
187デフォルトの名無しさん
2017/12/10(日) 13:44:56.60ID:H+wQ5ZRg
>>173
Smalltalkは自身がゴミ言語であるだけでなく
後世の言語にも負の影響を与えてるので
本当に害悪だな
188デフォルトの名無しさん
2017/12/10(日) 13:58:51.02ID:a6n4XEL6
>>185
はいはい
サボってないで早く保守作業に戻ってくださいね(藁)
189デフォルトの名無しさん
2017/12/10(日) 14:14:10.45ID:ATSfYuOI
型情報に限らず情報ってのは冗長な部分が省略される
省略したからといって必ずしも情報が失われるわけじゃない
190デフォルトの名無しさん
2017/12/10(日) 14:59:04.47ID:harEA0jS
逆に考えよう。「型がある言語」とは何だろうか
191デフォルトの名無しさん
2017/12/10(日) 15:25:19.15ID:Hk+Muhn7
皮肉も理解できないペェチピィコンパイラ並の低脳ガガイノガイがおりゅってマ?w
192デフォルトの名無しさん
2017/12/10(日) 15:49:43.53ID:cU10YPQo
市民、PHPコンパイラとはなんですか?
193デフォルトの名無しさん
2017/12/10(日) 15:51:27.08ID:ATSfYuOI
>>190
型情報があるだけでなく情報を取得するアルゴリズムがある言語
アルゴリズムがあればモンティホール問題みたいに計算を間違えるやつが続出しない
194デフォルトの名無しさん
2017/12/10(日) 16:07:22.03ID:1f8aW6Mh
>>186
多重ディスパッチ出来る言語が型なしってことはないだろ
195デフォルトの名無しさん
2017/12/10(日) 16:49:06.60ID:g4Avn4JH
>>180
君が型理論を知らないことはよくわかった
ばーかw
196デフォルトの名無しさん
2017/12/10(日) 17:16:26.74ID:cU10YPQo
>>195
ぺちぱーがwwwwww
型理論をwwwwwww語るwwwwwwww
今年一番笑ったわwwwwwwwwwwwww
197デフォルトの名無しさん
2017/12/10(日) 18:08:14.35ID:7rwMCdFh
PHPをけなしてるだけのやつって、ほかの言語知らないから、PHPをdisって心の平穏を保ってる、可哀想なやつなんだろうな。
頑張れよ。
198デフォルトの名無しさん
2017/12/10(日) 18:09:23.94ID:7rwMCdFh
因みに、俺もPHPerは害悪だから滅びろって、思ってるけどな。
199デフォルトの名無しさん
2017/12/10(日) 18:31:37.52ID:W721E1OC
>>197-198
声に出して読みたい日本語
200デフォルトの名無しさん
2017/12/10(日) 19:17:10.74ID:g4Avn4JH
>>196
おだいじにね
201デフォルトの名無しさん
2017/12/10(日) 19:23:08.38ID:1f8aW6Mh
自己書き換えできるかどうかでプログラム言語と呼ぶかを決め奴がなんか言ってる
202デフォルトの名無しさん
2017/12/10(日) 19:50:19.80ID:Hk+Muhn7
けなすってーかただの事実言うてるだけやん
ゴミ言語のペチプァ〜さんは何をそんなに怒ってるだ今さら?
203デフォルトの名無しさん
2017/12/10(日) 20:53:52.22ID:OZ32lk+t
興味ない人間からすれば
いやもうわかったから。。
という感想しかない。
204デフォルトの名無しさん
2017/12/10(日) 21:04:11.85ID:Hk+Muhn7
ほんとそれな
ペチプァさんは巣に帰って、どうぞ
205デフォルトの名無しさん
2017/12/10(日) 21:57:41.07ID:a22e0iM0
PHPをdisっても顔真っ赤にして反論してくるヤツが居ないからツマラナイ
206デフォルトの名無しさん
2017/12/10(日) 23:14:49.80ID:IzGEuZzn
PHPを必死に否定すること自体がよくわからんけどな。
そもそも作者が全部認めてるレベルのテキトーな言語なんだから、
PHPやってる奴ほど「そうだね、だから何なんだろう?」って思うような気がする。

よほど無念な思いをしたんだろうか。
207デフォルトの名無しさん
2017/12/10(日) 23:17:46.82ID:1f8aW6Mh
くっさ
208デフォルトの名無しさん
2017/12/10(日) 23:43:18.17ID:IzGEuZzn
出た、くっさ
209デフォルトの名無しさん
2017/12/10(日) 23:55:28.34ID:Hk+Muhn7
くさ
210デフォルトの名無しさん
2017/12/11(月) 00:44:55.69ID:LKeaMz/q
便器ブラシさんに草ひとまぶし・・・w
211デフォルトの名無しさん
2017/12/11(月) 01:02:30.73ID:MQI53TiX
型話の荒れかたが凄いな

静的型付けの言語は実行時前に型の整合性を検証し
動的型付けの言語は実行時に型の整合性を検証する

で、前者はRTTIを基本的に必要とせず、したがってわざわざ保持しないので
(とはいえHaskell含め多くの言語でトリックが用意されているのだが)
メモリ空間についてオーバーヘッドが減り、型検査も事前に済ませておいて
実行時にはしないので、速度についてオーバーヘッドが減る。

ていうか、トイ言語でもいいから動的型の言語の処理系を実装したことがあれば、こんなのは間違えるはずのない話でな。
212デフォルトの名無しさん
2017/12/11(月) 01:06:54.76ID:MQI53TiX
ホットにパッチ当てたいとかそういうごく特殊な要求がある場合には
動的型検査の方が優位性を持つことがあるけど、そうじゃない場合で
(たとえばH-Mくらいの範囲内で)静的に型のつかないコード書く必要なんて
まあまず実際にお目にはかからないよね
213デフォルトの名無しさん
2017/12/11(月) 09:01:07.32ID:FO1afGiG
だけどその程度のことは皆わかっててやってることだから
いちいちドヤらなくてもいいと思う
214デフォルトの名無しさん
2017/12/11(月) 16:48:07.12ID:ckqehrxf
型なんて捨ててビット列を毎回解釈しろ
215デフォルトの名無しさん
2017/12/11(月) 17:16:22.00ID:SuGHSbgO
なんだかんだ言ってweb系はjava以外はphpかrubyが大半を占めてるんだから
静的言語最強とはならない気がする。
216 ◆QZaw55cn4c
2017/12/11(月) 17:21:22.26ID:maeT9tJH
静的型言語の安心感には満足している、つまらないミスを弾いてくれるから、頭の弱い私にはぴったりだ。
動的型言語の「綴りミスも許さない」方針にはついていけない
それとも動的言語でも option explicit な使い方が可能なのでしょうか?
217デフォルトの名無しさん
2017/12/11(月) 17:56:27.18ID:RiNfuleo
option explicitにしたとしても、variantで宣言したら無意味だよね、Dictionaryのキーにあらぬものを使ったら落ちるよね、ってところでゴタゴタ言ってる。
ホントに宣言してないレベルの変数アクセスは大体の言語の静的解析で見つけられるんじゃないかな。
PHPの$$変数とかは無理だろうけど。
218デフォルトの名無しさん
2017/12/11(月) 18:12:17.71ID:lStv0Fkk
てか普通にそのコード通るテスト書けよ。
219デフォルトの名無しさん
2017/12/11(月) 19:33:23.48ID:MQI53TiX
テストは型検査みたいな静的検査と違って本質的に安全性を保証できないのでお門違い
220デフォルトの名無しさん
2017/12/11(月) 19:40:27.25ID:Clwu9sNW
型検査を有り難がるのはテスト書かないドカタだけって結論出てるけどな
221デフォルトの名無しさん
2017/12/11(月) 19:52:37.78ID:lStv0Fkk
お門違いの型の変数投げ入れて、
型エラー例外をトラップするようなテストかけばいいじゃん。

まあ手間なのはわかるけど、少しは頭使えばいいのに。
222デフォルトの名無しさん
2017/12/11(月) 20:02:58.37ID:aR07dvjT
テストかかなくても、ソースを書いていること自体テストもかね、入力補完強化も兼ねるからいいんじゃないの?
223デフォルトの名無しさん
2017/12/11(月) 20:05:57.20ID:FO1afGiG
それで動的型にする見返りがあるんなら良いんだが、何もないからなぁ
邪悪なことがしたい、以外のメリットが無い
少なくとも次世代言語の土俵に上がれないのは確かなので
このスレでミソカスな扱いになるのは仕方がないだろうな
224デフォルトの名無しさん
2017/12/11(月) 20:14:05.81ID:lStv0Fkk
サクッとプロトタイプとしてフロントエンド作るなら圧倒的に動的のがラクだけどね。
規模が大きいんなら確かに静的でないと厳しいかなと思うけど。
225デフォルトの名無しさん
2017/12/11(月) 20:29:57.04ID:wkifU5nK
プロトタイプで作って流行ったら作り直すならいいけどね
規模大きくなっても使い続ける企業多すぎ
226デフォルトの名無しさん
2017/12/11(月) 20:30:14.73ID:pZMHEF9P
多重ディスパッチが好き
227 ◆QZaw55cn4c
2017/12/11(月) 20:42:49.31ID:maeT9tJH
>>217
variant 型を使うなんて、まるで void * だけでコーディングしろ、と強要しているようなもの
型の恩恵を自ら捨てる選択には疑問、Java の嘘嘘 generics にしてもありがたいくらいだ
228デフォルトの名無しさん
2017/12/11(月) 20:45:00.55ID:FO1afGiG
俺なんかは型を書くのがそんなに面倒か?と思うし
あちらさんは型のテストを書くのがそんなに面倒か?と思うのかもしれないが
仮に、この二つが同程度の面倒臭さだったと仮定したら
その時点でバランスしてしまってるわけで・・・あとはもう自明
ただこれは昔の話で、今は型推論も普及してるから、更に

シンプルに考えて、型のテストはどこかの段階で絶対にやらなければならない
避けて通れないものとしたとき、じゃー何処でどのようにやるかという事で
どうせ不可避なら静的型のアプローチの方が良いだろうとなるだけで
システムでサポートせず人力でテストするって方向はまるで
アセンブリのようで逆行しているわ
229 ◆QZaw55cn4c
2017/12/11(月) 20:52:19.53ID:maeT9tJH
ただ、動的型付け言語の御大将は、あの lisp 族だからな…奴らには勝てない…
230デフォルトの名無しさん
2017/12/11(月) 20:55:22.07ID:pZMHEF9P
Land of lispにHaskellのが良いって書いてあるから静的片付けの勝ち
231デフォルトの名無しさん
2017/12/11(月) 21:45:07.08ID:wkifU5nK
ローカル変数→型推論があるので型を書く必要はない
公開関数などの型→動的型付けでもコメントなど何らかの形式で型を書くので静的型付けだから書かないといけないという事はない
よって静的型付けの勝ち
232デフォルトの名無しさん
2017/12/11(月) 21:52:39.67ID:lRj3KQ4V
型でコーディングは出来んし、証明でビジネスは動かん
結局きちんと動くものをいかに速く作るかってだけの話だろ

本当に静的型が「きちんと動くものを速く作る」ことができるなら、とっくにYesodがRailsを駆逐してる
そうじゃないってことはRailsの方が、強い動的型の方が優秀なわけだ

まあPHPみたいな弱い型付けの言語は論外だが
233デフォルトの名無しさん
2017/12/11(月) 21:55:13.37ID:If11Xzom
Railsなんて駆逐されるほど使われてるの?
Google、Microsoft、Amazon、Facebook、twitterなど、有名な会社で使われてるのを聞いたことないが…
正直技術力のないベンチャーが使ってるイメージしかない
234デフォルトの名無しさん
2017/12/11(月) 21:55:35.93ID:lStv0Fkk
rust は別に好きじゃないんだが型に関するアプローチに関してはいいと思う。
関数の引数では型を気にするけど、内部は型推論で暗黙的に設定されるっていう。
235デフォルトの名無しさん
2017/12/11(月) 21:56:58.82ID:VlIg6iVt
>>227
Option Explicitとはその程度のもの。
あと、Variantを器用に使ってるシステム見たことあるぞ。
バカとハサミは使いよう。
236デフォルトの名無しさん
2017/12/11(月) 21:59:51.45ID:xzgxDEt/
>>232
Railsって言語だったの?
237デフォルトの名無しさん
2017/12/11(月) 22:01:59.46ID:lRj3KQ4V
>>233
初期のTwitterはRailsだぞ?
顔本はPHPだ
238デフォルトの名無しさん
2017/12/11(月) 22:03:18.72ID:lRj3KQ4V
>>236
脳内でHaskellとRubyに対応付けてくれよ……
239デフォルトの名無しさん
2017/12/11(月) 22:03:39.46ID:Ai9DBAI/
>>237
Railsなどという負債を抱えていたいい例やね
240デフォルトの名無しさん
2017/12/11(月) 22:04:41.80ID:pZMHEF9P
初期
241デフォルトの名無しさん
2017/12/11(月) 22:05:55.17ID:If11Xzom
>>237
いや知ってるけど、それはその2つが駆逐された話じゃねーかw
242デフォルトの名無しさん
2017/12/11(月) 22:09:18.64ID:lStv0Fkk
twitter は erlang に移って、その後やっぱ性能出ないから他のにしたって話じゃなかったっけ?
こうみると言語にこだわるのは技術力のない証拠に思えるけどね。
243デフォルトの名無しさん
2017/12/11(月) 22:10:51.69ID:su83dlbx
まあ十分な技術力があればJavaを使うからなwww
244デフォルトの名無しさん
2017/12/11(月) 22:17:40.59ID:lStv0Fkk
goroutin は意外とリークがめんどい、
erlang の軽量プロセスはそこまで性能が出ない
scala の互換性はひどすぎる、
では、この領域をカバーする言語は?
ってのはあるかもね。
245デフォルトの名無しさん
2017/12/12(火) 00:43:04.64ID:du4SRE14
自称 言語屋
246デフォルトの名無しさん
2017/12/12(火) 01:28:41.64ID:nM55x1pa
同期的にかけるasync awaitの良さを知ってから
gorutineもしんどくなってきたわ。
見た目命令順になるのが一番分かりやすい
247デフォルトの名無しさん
2017/12/12(火) 07:29:46.32ID:Ye0RkKUS
>>246
デバッグとスタックトレースが難点だけど、メリットの方が大きいからお世話になってます
248デフォルトの名無しさん
2017/12/12(火) 12:57:32.06ID:jaMzqj4w
元からイベントの投げつけ合いで書いてたからどっちも便利だと思うけどな。
249デフォルトの名無しさん
2017/12/12(火) 21:14:39.58ID:u/ODDP+M
lambdaの中にlambdaを書くのを繰り返すと大量のインデントと括弧が出てくる
インデントと括弧が不要になるのが一番重要
250デフォルトの名無しさん
2017/12/12(火) 21:25:39.50ID:Z8olEYsj
>>249
それって Python 限定の話だろ
Python は公式ドキュメントで関数型プログラミングには不適切と
表明しているくらいなんだから、それくらい我慢するのが Pythonista だよ
251デフォルトの名無しさん
2017/12/12(火) 21:37:47.02ID:u/ODDP+M
コールバック地獄は何故地獄かって話だからPython限定ではないと思うが
252デフォルトの名無しさん
2017/12/12(火) 22:28:11.33ID:qokAxyHY
>>249
引数とかにlambdaを直接書くスタイルはそれが苦にならない人達がやっているだけで、
それが読みにくいと感じるならフラットに展開しちゃえばいいんだぜ?
Promiseやasync/awaitでcallback地獄解消なんて書いている記事の大半も
本質的な部分はこっちだったりして。
ただ>>246の言うように上から実行順に書けるというメリットはある。
253デフォルトの名無しさん
2017/12/12(火) 22:28:51.50ID:jXjdcIPT
Promiseパターンがすべてを解決した認識
254デフォルトの名無しさん
2017/12/12(火) 23:30:52.82ID:GdvZGdbs
コールバック地獄は、JS の、co, Koa などのジェネレータランナー。
iterator, generator を使ったもの

yield Promise.all

みたいな書き方
255254
2017/12/12(火) 23:35:15.82ID:GdvZGdbs
try{
yield Promise.all(非同期の並行処理)
}catch(err){
}

ジェネレータランナーは、非同期処理を同期的に書けて、
非同期処理を、try/catch できる
256デフォルトの名無しさん
2017/12/13(水) 14:46:46.99ID:4nENptHR
Promiseは何度も帰ってくるものや、一度も帰ってこないかもしれないものが書きづらいんだよなぁ。
名前の通りだから仕方ないんだけど。
Promiseとawaitで解決できるのはcallbackを使うものの中でもとても限定的なパターンだと思う。
無いよりマシだけどね。
257デフォルトの名無しさん
2017/12/13(水) 16:16:33.50ID:NPzuRHB+
コールバック地獄は慣れれば天国だろ。
実行速度もコールバック地獄のほうがプロミスより速いしな。
258デフォルトの名無しさん
2017/12/13(水) 18:37:50.43ID:sjTFpswL
>>257
おう、高級言語よりアセンブリの方が速いし一生アセンブリ使っとけよ
259デフォルトの名無しさん
2017/12/13(水) 18:38:50.92ID:sjTFpswL
>>256
何度も返ってくる物:rxjs
一度だけ返ってくるもの:Promise+async/await
260デフォルトの名無しさん
2017/12/13(水) 20:43:44.45ID:VZwg/vs9
>>259
借りてきすぎて統一感ゼロ。
いっそコールバック書くか、全部イベントでこなすかや全部rxか、全部Reduxのほうが潔い。
awaitで延長される変数のライフタイムが勿体無さすぎる。
261デフォルトの名無しさん
2017/12/13(水) 20:52:20.95ID:4nENptHR
>>258
そういう世界もあるので一概に笑えんし、少なくとも取ってつけたで満足して「これがあるから問題ない」と開き直るよりは、
コントロールを保ってモノ作ってると思うけどな。
ポリフィル(笑)
262デフォルトの名無しさん
2017/12/13(水) 22:30:27.71ID:sjTFpswL
>>260
いやいや適材適所だろ
263デフォルトの名無しさん
2017/12/14(木) 00:54:59.81ID:R6Bq4sFz
rxもかなりめんどくさい。概念はシンプルなのに
操作メソッドあんなにいるもんか?って思うわ。
264デフォルトの名無しさん
2017/12/14(木) 02:18:11.50ID:YzSVtILw
Advent見てても人気ねぇし、Rxは流行らんな。
265デフォルトの名無しさん
2017/12/14(木) 07:59:53.12ID:NBF/BshK
時代はBlack
266デフォルトの名無しさん
2017/12/14(木) 08:03:21.17ID:cqXlNk/G
>>216
>動的型言語の「綴りミスも許さない」方針にはついていけない

変数宣言省略と動的型付けをごちゃ混ぜにするような人はプログラムしないほうがいい
267デフォルトの名無しさん
2017/12/14(木) 08:04:38.89ID:cqXlNk/G
>>216
>動的型言語の「綴りミスも許さない」方針にはついていけない

変数宣言の有無と型付けを区別できない人はプログラム書かないほうがいいと思う
268デフォルトの名無しさん
2017/12/14(木) 08:05:20.86ID:cqXlNk/G
>>216
>動的型言語の「綴りミスも許さない」方針にはついていけない

変数宣言の有無と型付けを区別できない人がプログラムを書くのは型エラーです
大事なことなので3回書きました
269デフォルトの名無しさん
2017/12/14(木) 08:07:43.17ID:cqXlNk/G
>>223
>それで動的型にする見返りがあるんなら良いんだが、何もないからなぁ
>邪悪なことがしたい、以外のメリットが無い

こういう人って
邪悪なことって具体的にリストアップしてよ
と言うと二度と帰ってこないw
270デフォルトの名無しさん
2017/12/14(木) 08:22:58.23ID:hzCFy3Z8
Yコンビネータ書きたいとかだろ
271デフォルトの名無しさん
2017/12/14(木) 08:29:14.79ID:cqXlNk/G
Yコンビネータは再帰型で静的に型付くだろ
272デフォルトの名無しさん
2017/12/14(木) 08:29:49.77ID:vWSIvs9F
>>262
適材適所なのかなぁ。
目下の問題を解決するためにこうなっちゃいました、いい感じなんで標準クラスにするべき!に見える。
どーせwebworkerとかserviceworker、webdsocketにイベントの投げ合いなんだし、もとのようにイベントで制御するのが一番に見えるけどな。
一度きりならonce、何回も呼ばれるからon。
eventEmitterってブラウザでも使えなかったっけ?
無けりゃそれぐらい書いても良いけど。
273デフォルトの名無しさん
2017/12/14(木) 08:31:59.97ID:GokG4kFP
連投ガイジ
274デフォルトの名無しさん
2017/12/14(木) 10:21:22.17ID:vseOcHr4
動的型付けの恩恵を一切受けないコードを書くなら
動的型でも型推論で補完が効くし、
補完が効かないなら動的型の恩恵を受けるようなコードを
知らないうちに書いてるってことだよ
275デフォルトの名無しさん
2017/12/14(木) 12:16:59.44ID:vWSIvs9F
なんでもガイジだなぁ
276デフォルトの名無しさん
2017/12/14(木) 12:51:31.09ID:rvUZFKGD
なんでもガイジというか、ガイジがいっぱい沸いているだけ
277デフォルトの名無しさん
2017/12/14(木) 13:13:13.86ID:kS2O37CV
同じ人間でも脳の構造の違いにより考え方が全然違う。
つまり生まれつき脳の仕組みが全く違う人達がいる。
278デフォルトの名無しさん
2017/12/14(木) 16:27:32.32ID:w0b2qkK/
仕組みが全く違うというのがもし本当なら
速度のみを測定するベンチマークが信用できなくなる
だから仕組みは同じで速度だけが違うと考えるのが無難である
279デフォルトの名無しさん
2017/12/14(木) 19:49:58.30ID:ZmHWuRBr
>>272
rxはSubject使い始めると一気に邪悪化するからな
280デフォルトの名無しさん
2017/12/15(金) 00:41:45.52ID:8bhjGnw1
型無しガイジどもは死ね
迷惑なんじゃ
281デフォルトの名無しさん
2017/12/15(金) 07:01:30.05ID:18KhAamS
型推論より要件推論ください。
282デフォルトの名無しさん
2017/12/15(金) 07:10:42.24ID:lXr5oGUf
プロミスってモナドだよな。いい意味で。
283デフォルトの名無しさん
2017/12/15(金) 08:27:21.30ID:TYCzXsyM
型があれば解決するかのように思ってる人が生き方を改めてほしいな。
実際問題、それだけに頼って地雷踏んだときはコアダンプ読む型なんて飾りですみたいなオッサン呼ぶ事になるんだし。
284デフォルトの名無しさん
2017/12/15(金) 08:32:03.35ID:onuFSj3r
だがそれは型による静的検証をしない理由にはまったくならない
285デフォルトの名無しさん
2017/12/15(金) 09:26:28.87ID:y+u48ms5
別にやればいいじゃんとしか言いようがない。
大抵糞どうでもいいキャストを付け加えるどうでもいい作業に時間を追われるだけだけどな。
286デフォルトの名無しさん
2017/12/15(金) 09:27:43.95ID:onuFSj3r
底辺凄いな(こなみかん
287デフォルトの名無しさん
2017/12/15(金) 09:41:39.57ID:TYCzXsyM
型による静的検証で満足する理由にもならん。
288デフォルトの名無しさん
2017/12/15(金) 09:51:32.76ID:KrZVgz++
静的型があれば全て解決するとは誰も言ってないが
動的より良いというだけだぞ
289デフォルトの名無しさん
2017/12/15(金) 10:01:44.25ID:EYhpAKtT
そらフレームワークに乗っかって用意された関数を呼ぶだけのドカタには
静的型の制約なんて関係ないだろうね
メタプログラミングなんてした事ないでしょ?めんどくさいよ静的型だと
290デフォルトの名無しさん
2017/12/15(金) 10:19:01.73ID:CUNT7XlU
こいつ相手をドカタかつメタプログラミングをしたことない奴と決めつけて何がしたいんだ……
291デフォルトの名無しさん
2017/12/15(金) 10:29:03.83ID:Wavcz0jA
なんで静的型のほうが動的型より良いって前提で話を進めるんだこいつらは……
そんなに静的型が好きならYesodでRailsレベルのシステム構築してみろっつーの
292デフォルトの名無しさん
2017/12/15(金) 10:44:03.14ID:CUNT7XlU
そんな面倒なこと要求するならお前も何か動的言語でRails並のもの実装しろよな
293デフォルトの名無しさん
2017/12/15(金) 10:47:18.85ID:Wavcz0jA
静的型なら動的型より生産性高いって主張してる側が実装しろよ
なんで実証をこっちがやんなきゃいけないんだよ
294デフォルトの名無しさん
2017/12/15(金) 10:49:44.96ID:CUNT7XlU
実証責任を押し付ける上にテーマまで押し付けんなよ
テーマ量子化学で良ければ無限に実証してやるがやるか?
295デフォルトの名無しさん
2017/12/15(金) 10:55:43.94ID:Wavcz0jA
静的型の言語はいちいちキャスト書いたり無駄にコード量がかさむ抽象クラス書いたりしてコード当たりの生産性低くなるし
メタプログラミングがかなり面倒になるしで、動的型と比べて工数が倍以上かかる
型チェックで検出できる程度のエラーなんて単体テスト書きゃ確認できる程度のモン

テスト書きたくないクソプログラマ未満には魅力的に映るんだろうがな
296デフォルトの名無しさん
2017/12/15(金) 10:57:08.06ID:Wavcz0jA
>>295
ってこっちは主張してて、その実例として、RailsとYesodを提示してる
静的型を優位に推したいなら、逆の事例でも提示してみろって話だ
297デフォルトの名無しさん
2017/12/15(金) 11:06:17.66ID:lXr5oGUf
動的と静的は兄弟のようなものでお助けあっていきているんだね。
298デフォルトの名無しさん
2017/12/15(金) 11:23:17.29ID:CUNT7XlU
おぅん?
なんだその妄想。静的型でもテスト書くぞ
それにJavaじゃあるまいしちゃんと書いてりゃキャストはいらんしょ
メタプログラミングはともかく、その二つは言語の問題じゃない

言語の問題じゃない所を挙げて優位を主張すれば良いなら
↓みたいなこと書けばいいのか?

動的型は引数の型情報をちゃんと書かないから人のコード読むのめっちゃしんどくて生産性が低くなるし、テストが足りずにいざ動かしたら意外な所で引っかかるボケコードも存在する(しかも型があれば引っかからないような所)
いちいちクラスのメタ的なマニアックな機能を使って書いた本人以外の読解がそれなりにしんどいコードにして拡張性を下げたりし始めるし
コードを読む時間が倍以上かかる

実例としては動的型付けとしてaseとpyquante、静的型付けとしてvaspとbigDFTでも提示しておこうかな

こんな感じでええんか?
299デフォルトの名無しさん
2017/12/15(金) 11:27:03.08ID:CUNT7XlU
挑発に乗って色々滅茶苦茶書いたものの実は俺は静的信者では無かったりする
300デフォルトの名無しさん
2017/12/15(金) 11:52:43.43ID:Wavcz0jA
>>298
コードリーディングの過程で型情報がほしいって言うのは一理あるな。そのために間違った方のハンガリアン記法使うのもアホ臭い

ちゃんと設計してればキャストはいらないっていうのは、静的型言語では整数と浮動小数点数の組み合わせで四則演算すらできないって問題がある。OCamlがわかりやすいな
これを無理矢理できるようにHaskellみたくNum型クラスみたいなのを導入するとオーバーヘッドがかさむ

テストについては、結局型が通るか通らないか程度はテスト書く過程で見れるだろって話で、きちんとテスト書けばその程度の差は優位性にはならないんじゃないかってことな
そりゃテスト書かないと静的型でも動的型でも壊れたコードだ
301 ◆QZaw55cn4c
2017/12/15(金) 12:14:19.47ID:kyib3K1A
>>300
>静的型言語では整数と浮動小数点数の組み合わせで四則演算すらできない
いまどきの静的型付け言語でそんなものがあるのか?静的型付け言語の意味をわかっているのか?
302デフォルトの名無しさん
2017/12/15(金) 12:18:48.75ID:Wavcz0jA
OCamlは今時の静的型付け言語ではないのか?
303デフォルトの名無しさん
2017/12/15(金) 12:21:43.33ID:Wavcz0jA
Scalaはこの問題を暗黙の型変換で対応してるが、これはこれで闇を醸造してるよな
304デフォルトの名無しさん
2017/12/15(金) 12:26:18.04ID:yHEncU/L
演算子オーバーロードを嫌う人がいるのは事実
演算子オーバーロードすると実行時にオーバーヘッドがかさむというのは嘘八百
305デフォルトの名無しさん
2017/12/15(金) 12:26:29.05ID:Q6E9xMBX
組み込みの数値型は自動変換する言語が多いし
静的・動的と関係ないね
306デフォルトの名無しさん
2017/12/15(金) 12:39:33.81ID:TYCzXsyM
>>288
そうでもなかろう。
蛇足という言葉もある。
生産性ってのはもう少し厳密に扱われるべきだと思う。○○の場合は、とか。
307デフォルトの名無しさん
2017/12/15(金) 12:41:17.66ID:TYCzXsyM
>>300
間違ってない方のハンガリアンならば、型なんてどうでも良いと言う事もわかると思う。
ユーザ定義型に出来れば言う事無いけどね。
308デフォルトの名無しさん
2017/12/15(金) 12:50:20.64ID:Wavcz0jA
>>307
そうだな。正しい方のハンガリアン記法なら、静的型のコンパイラに頼るよりはるかに健全な運用ができる

別に静的型でもやりゃいいと思うが、コンパイラに頼るのに慣れると面倒に感じるのかね?
309デフォルトの名無しさん
2017/12/15(金) 12:56:07.91ID:Wavcz0jA
静的型でチェックできることは、単体テストを書く過程で自然とチェックできる
静的型のチェックにより、メタプログラミングが書けなくなり、本質的でない型合わせのための余計なキャストも増える

結局この二点なんだよな
310デフォルトの名無しさん
2017/12/15(金) 12:58:02.72ID:Wavcz0jA
可読性についてはまあわからんでもない。正しい方のハンガリアン記法でも、接頭辞の管理はコード上にないからな
IDEのサポート込めば確かにリーディング速度は上がると言える
311 ◆QZaw55cn4c
2017/12/15(金) 13:19:56.65ID:kyib3K1A
>>309
>静的型でチェックできることは、単体テストを書く過程で自然とチェックできる
逆だ、
単体テストでのチェック内容の一部は、テストを書くまでもなく静的型でチェックできる、だ
テストを書くまでもなく、成果物の品質を一定のレベルまで引き上げるのが静的型の特徴だ

メタプログラミングはそれようの総称型を使えばよい
本質的でないキャストは総称型(ジェネリクス)で基本的に全廃できる
312デフォルトの名無しさん
2017/12/15(金) 13:45:16.34ID:Wavcz0jA
>>311
>テストを書くまでもなく、成果物の品質を一定のレベルまで引き上げる
だからって単体テスト書かないって訳でもなかろう
その単体テストを書く過程で型検査などは自然とテストされるということ
型チェックをテスト書かない言い訳にするのはそれこそ最悪
313デフォルトの名無しさん
2017/12/15(金) 13:46:32.11ID:Wavcz0jA
ジェネリクスで不要なキャストが撤廃できるなら、それはそうなんだろう
上で挙げた四則演算問題がジェネリクスでなんとかなるとも思えんが
314デフォルトの名無しさん
2017/12/15(金) 13:59:37.30ID:6UtRgQBN
>>311
ジェネリクスをきちんと使えばキャストはほぼ全てなくせるが、
メタプロはジェネリクスだけじゃどうにもできないだろ。
あと、ジェネリクスとC++のテンプレートは似ているようで全然違う。
メタプロに関しては動的言語のほうが簡単なのは事実。
ただ、本当にメタプロが必要になるケースになんてあまりないと思うんだが。

>>312
別にテストを書かない言い訳とかじゃなくて、
静的型なら動的型に比べてテストを書く量を減らせるということだろ。
テストを全く書かなくなることはないけど、テストの量を減らせるというだけでも
そこには立派な価値があるということが言いたいんだ思うが。
315デフォルトの名無しさん
2017/12/15(金) 14:00:37.68ID:U+kqpzL7
四則演算問題って何?
316デフォルトの名無しさん
2017/12/15(金) 14:07:11.13ID:6UtRgQBN
>>315
たぶん>>300
>静的型言語では整数と浮動小数点数の組み合わせで四則演算すらできないって問題がある。
てやつのことだろ。
それって、単に言語の性格の違いのような気がするんだが。問題と呼ぶほどのものか?
317デフォルトの名無しさん
2017/12/15(金) 14:58:25.54ID:57xWWF8w
走らせないとわからないテストより前に、コンパイルでエラーが検出できたほうがいいやろ
テストについて一から勉強しなおしなさい
318デフォルトの名無しさん
2017/12/15(金) 15:13:05.84ID:yHEncU/L
静的型と動的型の対立をいくら勉強しても新しい発見はない
次世代の静的型を考えてるやつらは現在の静的型と対立するのだ
静的型と静的型を対立させる
どっちが勝つか全く予測できないから全く新しい成果を出せるのだ
319デフォルトの名無しさん
2017/12/15(金) 15:50:55.50ID:y+u48ms5
コンパイラがバグもなく絶対的に正しければな。
コンパイラにそこまでの期待を背負わせた結果がc++の現状なわけだ。

ユーザーの仕様要求にはぼろくそ文句言う奴に限って、
コンパイラに理不尽な要求してる奴が多いってのはほんとなんなんだろうな。。
320デフォルトの名無しさん
2017/12/15(金) 15:54:40.37ID:Wavcz0jA
>>317
コンパイルだって走らせないと動かないとおもうんだが
結局テスト走らせるのもコンパイル経由するんだからかわんねえだろ
321 ◆QZaw55cn4c
2017/12/15(金) 15:59:44.12ID:kyib3K1A
>>320
かわるねえ、テストはテスト書かなければならないし、すると書いたテストが間違っている可能性も否定できない
コンパイル時の型チェックは、つまるところソースの矛盾をつくのだから、それだけでソースの検証になりうる

ただ、型情報はコンパイル結果には含まれないのが普通だから、いうなれば無駄を書いているわけだ…
322デフォルトの名無しさん
2017/12/15(金) 16:03:06.34ID:Wavcz0jA
>>321
結局「型チェックあるからテストの手が抜ける」論者か。話にならんな
323 ◆QZaw55cn4c
2017/12/15(金) 16:10:07.80ID:kyib3K1A
>>322
それはお前の思い込み、テスト不要とはひとこともいっていないだろう?
324デフォルトの名無しさん
2017/12/15(金) 16:17:12.00ID:85mmUd/p
動的型付け言語でメソッド先頭に引数型チェックをずらずら書いてるコードを見た時は心底アホだなと思いました
325デフォルトの名無しさん
2017/12/15(金) 16:19:20.03ID:6UtRgQBN
>>322
その言い方は「手を抜く」ことに関して批判しているのように聞こえるな。
プログラマなら手を抜くことに積極的なのはむしろ褒められるべきことだと思うが。
手を抜かないことを美徳とするなら伝統工芸の職人さんにでもなれば。
少なくともそんな考え方をするような人間はプログラマには向いていないよ。
326デフォルトの名無しさん
2017/12/15(金) 16:28:14.91ID:Tb7zQwK9
>>324
そんなに自分のバカさを自慢しなくても…皆よくわかっているから
327デフォルトの名無しさん
2017/12/15(金) 17:07:38.29ID:WQPs5rl9
>>300
javaの場合はクラス間のキャストと整数、小数間のキャストが同じ構文だから分かりにくいけどあれ全くの別物だから
後者はどちらかというと関数に近い

例えばStringをObjectにキャストしても変数の値(=メモリアドレス)は変わらない
でもlongをdoubleに変換したら変数の値自体が変わる
これは大きな違い
328デフォルトの名無しさん
2017/12/15(金) 17:10:15.06ID:WQPs5rl9
静的型付けでもテストはいるけど数を減らせる
わざわざ機械がチェック出来る事を人がやる意味は?
あとオーバーヘッドどうのこうのって動的型付けの方がオーバーヘッドでかいやん
329 ◆QZaw55cn4c
2017/12/15(金) 18:14:48.74ID:kyib3K1A
>>324
いや、それが、Java の本番コードでは執拗な null チェックはかかせないようですよ、はじめてみたときは目をうたがったな…
330デフォルトの名無しさん
2017/12/15(金) 19:17:26.70ID:Tb7zQwK9
>>328
静的型はより少ないテストデータで同等の品質を確保できるという実証データはある?
331 ◆QZaw55cn4c
2017/12/15(金) 19:24:35.38ID:kyib3K1A
>>330
https://developers.srad.jp/story/14/11/08/081210/
あまり参考にならないかもしれない
332デフォルトの名無しさん
2017/12/15(金) 19:39:38.59ID:57xWWF8w
>>329
今時NotNullアノテーションで対応するけどな
333デフォルトの名無しさん
2017/12/15(金) 19:42:37.27ID:Q6E9xMBX
スレタイの言語はどれも静的型付けやなw
334デフォルトの名無しさん
2017/12/15(金) 20:07:05.04ID:6UtRgQBN
>>330
説得力のある実証データはたぶんないだろうな。
だが逆説的に、動的型でも静的型と同等のテスト量で同等の品質を確保できる
という実証データがないだろうこともやはり同じだ。
「型付け」と「テスト量と品質」に関係性は「あるかもしれない」し、「ないかもしれない」。
そのことについて議論する価値はあるかもしれないが、
説得力のある実証データがないことが静的型付けを批判する理由にはなり得ない。
335デフォルトの名無しさん
2017/12/15(金) 20:17:29.09ID:6UtRgQBN
ちなみにあまり説得力のない実証データなら腐るほどある。
何故それらに説得力ないかというと、
テストの品質というものを正確に数値化できないからだろうな。
つまり、品質を正確に数値化する方法がない限りはそのことについては誰も実証はできない。
まずは品質の数値化について誰もが納得できるような方法を考えることからだ。
そして、それが簡単にできれば苦労はしていない。
336デフォルトの名無しさん
2017/12/15(金) 21:49:32.08ID:HGhk3PLi
静的型と動的型の言語で、同程度の品質を担保するために必要なテストの量が変わらないと仮定するなら、
メタプログラミングのしやすさとコードリーディングの難易度を天秤にかけるだけの話になりそうだ

キャストについては、さすがにGoのinterfaceやらJavaのObjectは別として、それが本当に「本質的でない」場面があるとはどうしてもピンと来ない
上で例に出されてるOCamlの浮動小数点数と整数の演算だって、本来この2つを四則演算した結果が
浮動小数点数になるか整数になるかは本来非自明だから、どっちかに明示的に型を揃えろっていうのは
静的型動的型関係ない問題だと自分は思う

メタプログラミングについてはこれももう出てるけど、本当にそれが必要かって言われるとなあ
確かに記述量自体は短くなるけど、間違いなく可読性とトレードオフになる
337デフォルトの名無しさん
2017/12/15(金) 22:40:22.38ID:19GjPIYk
「ノコギリと刺し身包丁の優劣」みたいな無意味な話はつまらん。
338デフォルトの名無しさん
2017/12/15(金) 23:34:56.14ID:WQPs5rl9
メタプログラミングみたいなのは型システム関係なくunsafeみたいな感じで一部分に閉じ込めて使うのが普通だからな
339デフォルトの名無しさん
2017/12/15(金) 23:53:14.51ID:/50W1d3E
最近は、Pythonでも型アノテーション書くようにしてるよ。
見返した時に、コメントで型情報を書くよりは
楽なんで(;´∀`)
340デフォルトの名無しさん
2017/12/16(土) 00:22:41.60ID:ocig5iu9
>>333
TypeScriptは動的だよ。
341デフォルトの名無しさん
2017/12/16(土) 00:39:35.88ID:TWnq2dTt
>>340
静的型でもあり動的型でもある不思議な言語
342デフォルトの名無しさん
2017/12/16(土) 00:56:52.03ID:puMNteBt
TypeScriptは静的な型検査をしたいから作ったんじゃないんか?
343デフォルトの名無しさん
2017/12/16(土) 01:22:56.08ID:TZZbndKv
新しい言語の新しい議論でもあるのかと思って開いてみたら
20年前くらいの動的vs静的の罵り合いしかなかった
5ch死んでるな
344デフォルトの名無しさん
2017/12/16(土) 01:34:19.93ID:fQ+nYBte
そう思うなら貴方にはこのスレは向いていなかったのでしょう。どうぞ卒業なさいませ
345デフォルトの名無しさん
2017/12/16(土) 07:38:33.30ID:g6YeJGmB
20年は言いすぎだが確かに今更な話題だな
346デフォルトの名無しさん
2017/12/16(土) 07:39:24.99ID:0YcySKum
>>334
>説得力のある実証データがないことが静的型付けを批判する理由にはなり得ない。

完全に同意するし、同様に、
説得力のある実証データがない以上は動的型付けを批判する理由にはなり得ない。
と思うね。
347デフォルトの名無しさん
2017/12/16(土) 10:07:20.76ID:pj2GdbCH
説得力のある実証データが無いとは限らない得ない。
発見されてない可能性のあるものを存在しないと断定し得ない。
348デフォルトの名無しさん
2017/12/16(土) 11:54:08.21ID:0YcySKum
>>347
信頼できる具体的なデータを出してから出直してきな、ばーか!
349デフォルトの名無しさん
2017/12/16(土) 12:02:59.86ID:pj2GdbCH
信頼できる具体的なデータがないことはなり得ない。
完全に同意するし、同様に、
信頼できる具体的なデータがない理由にはなり得ない。
350デフォルトの名無しさん
2017/12/16(土) 14:57:13.50ID:GPVNoJ1v
そういう白いカラスを探すような真似をせんでも。
動的静的、どちらも良いものだし、どちらにも反対側に寄せるような機能も今時はある。
そういう意味では「静的型付け言語だから間違いが少ない」と言う発想は明後日というか「間違うなと言うだけの話」として扱われても仕方ないっちゃ仕方ない。

今まで一回もキャストやポインタデリファレンスを使ったコードを書いたことがない奴だけがギリギリ石を投げても良いと思うが、そんなやつはごく少数だろ。
チェックが厳しくなるのは良い事だが、それがないと物が作れない(はず)なんて言うのは補助輪付きの自転車を指して「これが至高の自転車だ、なぜなら倒れないからだ!」って言うのと同じくらい暴論。
351デフォルトの名無しさん
2017/12/16(土) 14:58:31.90ID:GPVNoJ1v
そういう奴がRustのコンパイラにバタバタと倒れていくのは至極愉快だけどな。
最初からそれぐらい考えて作っとけよ、と。
352デフォルトの名無しさん
2017/12/16(土) 15:18:00.92ID:4mgESDS3
数値を引数にとる関数作ったら
境界値やゼロ値をテストするのが静的型
数値文字列オブジェクト思い付く限り全てテストしないと発狂するガイジが型無し池沼

こういうことでしょ?
353デフォルトの名無しさん
2017/12/16(土) 15:28:08.68ID:Dp1B/626
>>352
境界値やゼロ値をテストするコード書けば、文字列オブジェクトが入ってきたらエラーになるから
動的型でもそんなテストは必要ありません。
そんな当たり前の事も分からないなんて、君は本当に低脳だな。
354デフォルトの名無しさん
2017/12/16(土) 15:32:04.21ID:GPVNoJ1v
逆の発想でしょ。
数値以外で呼んでなけりゃいいんだから、呼び出し箇所で引数が数値と推論できなければエラーにしときゃいいじゃん。解析上で。
仕様として数値しか取らないなら、数値に対するテストで十分でしょ。
静的言語でも数値以外を渡す方法が無いわけでも無い。程度論。
静的言語でもヒステリックなチェックが必要な案件もやっただけに、ホントに夢見てるんだろうなって思うわ。

引数を手当り次第にチェックする、という解法しか出て来ないのがそもそもキチガイじみてる。
355デフォルトの名無しさん
2017/12/16(土) 15:34:15.25ID:GPVNoJ1v
スタックもメモリも疑え、みたいなプログラム書いたこと無いんだろうな。
356デフォルトの名無しさん
2017/12/16(土) 15:41:18.50ID:4mgESDS3
お前も頭がパーエッチパーなのか?
357デフォルトの名無しさん
2017/12/16(土) 15:47:08.12ID:0YcySKum
>>356
おまえはまず自分がバカであることを自覚しろ
話はそれからだ
358デフォルトの名無しさん
2017/12/16(土) 17:20:40.73ID:4mgESDS3
型無し能無し糞バカパーエッチパーのバカがなんだって?
早く10年熟成のウリジナル社内フレームワーク保守する作業に戻れよ
359デフォルトの名無しさん
2017/12/16(土) 20:13:15.10ID:GPVNoJ1v
どーやっても無関係のPHPをけなしたいんです!
というある種の精神的ハンディキャップを持ってるみたいだから仕方あるまい。
360デフォルトの名無しさん
2017/12/16(土) 20:18:13.50ID:GPVNoJ1v
考えてみたけど、むしろPHPの問題は型があったとしても多分変わり無く問題としてあり続けると思うな。
361デフォルトの名無しさん
2017/12/16(土) 20:50:00.94ID:GPVNoJ1v
QCやると>>335は痛感するがな。
品質保証しなかった物が万一起こす損害と、品質保証したから避けられた損害はイコールじゃないし、
品質保証してしまった時点で、避けた損害の計上は机上の空論になってしまう。
避けるも何も起こらなかったんじゃないの?と過剰な心配とみなされがち。
起こっていたに違いない、と言うのは確かに空論だからな。
「改善できている品質」自体を点数化(そしてある程度これは王道もある)しても、「改善しなかった場合の品質」が見積値のままなので、恣意的と言われても仕方が無い。

同様の問題にコストカットもあるが、これも最初から織り込んで当初目的を果たしてしまうと話がややこしくなる。対費用効果が品証と同様に、実績値と見積値の比較になる。正しい比較じゃないのは確か。

一番、営業部や企画部や、ことによると開発部とも喧嘩になる数字。

なので、これに関して実証値を出せと言うのは、同じ事を、2つの方法で、全く同じ能力の人間が、二の轍を避けるというバアイスをかけないために初見で行った場合、の数値を出せと言う、無茶苦茶な要求になる。
パラレルワールドが発生してそれが一つの状態として観察出来る神が存在しない限りイチャモンのつけ放題。

要は無意味。
362デフォルトの名無しさん
2017/12/16(土) 20:53:09.27ID:GPVNoJ1v
バイアスがどう間違ったかバアイスになってるわ。以外に読めるもんだな。ごめん。
363デフォルトの名無しさん
2017/12/16(土) 22:08:20.37ID:/LKsQL98
>>353
phpでも?
364デフォルトの名無しさん
2017/12/16(土) 22:37:18.69ID:ocig5iu9
>境界値やゼロ値をテストするコード書けば、文字列オブジェクトが入ってきたらエラーになるから

それをテストで確かめるんだろうが
365デフォルトの名無しさん
2017/12/16(土) 23:57:56.53ID:g6YeJGmB
間違えない前提ならテストもいらんなw
366デフォルトの名無しさん
2017/12/17(日) 00:07:22.96ID:lzYKowQo
>>360
当たり前やン
PHP7になって型サポートが入った!!とか嬉ション漏らしてるペチパー見て
心底あの界隈のレベルの低さに辟易した
367デフォルトの名無しさん
2017/12/17(日) 00:17:16.85ID:w0yPK3Np
>>364
そこなんだよなぁ。
>>353は、動的静的どちらでも同じようにテストを書くことになるんだから
「結果、テストを書く手間(量)は一緒だろ」と言いたいんだろうが、
型については「テスト時に確かめるのが動的」、「コンパイル時に確かめてくれるのが静的」という違いがある。
「テスト時だろうがコンパイル時だろうがきちんと確かめることには変わりないんだからいいだろ」
という意見が動的派の主張のような気がするんだが(俺の勘違いだったら指摘してくれ)、
個人的にはテスト自体にバグが含まれる可能性があるという点で違うので、静的のほうが好ましいと思う。
コンパイラにバグがない保証はないがその可能性はかなり低いし、
まして、どこの誰が書いたかも分からないテストと比べればどちらが信用できるかは明らか。
静的でもテスト自体にバグが紛れることはもちろんあるが、型についてはコンパイル時にチェックされるので、
型チェックだけに焦点を絞ってみれば、やはり静的言語の方が信頼性は上だろう。
368デフォルトの名無しさん
2017/12/17(日) 00:30:03.31ID:w0yPK3Np
>>365
すごく良い意見だと思う。

そもそもテストがあるのは人間は間違えるからというのが前提だからで、
そしてそのテストを書くのも人間なのでテスト自体も間違えている可能性がある。
それでもテストを書くのはチェックによって間違いを完全になくすことはできなくても
ある程度まで減らすことはできるという考えがあるからだろう。
そして、その考え方でいくとテストを重ねれば重ねるほど信頼性は上がるということになる。
つまり、テストのテストを行えば2重チェックとなりさらに信頼性が上がることになるが、
テストのテストを書くというのはあまりにもアホらしいので普通そんなことはしない。
つまり、通常のテストでのチェックは1重のチェックまでが限界となる。
それに対してコンパイラはコンパイラ自体がしっかりとテストされている。
つまり、コンパイラによる型チェックは言い換えればコンパイラ自体によるチェックと
コンパイラのテストによるチェックの2重チェックを同時に受けていることになる。
この考え方でいけば、ただのテストは1重のチェックだが、コンパイラによるチェックはそれだけで2重チェックとみなせる。
つまり、コンパイラによるチェックのほうが信頼性が高いということになるはずだ。

一応理論はしっかりと通っているはず。
自分で書いといてこんなこと言うのもなんだが「なんだかこじつけな気がして、あまり気に入らない」。
誰か論破してくれ。
369デフォルトの名無しさん
2017/12/17(日) 01:33:04.30ID:DD3iPSz/
コンパイラにバグはないとかさ。。
とりあえずvcを一通り使ってみてから言ってほしいな。
浅はかすぎる。
まあしかし静的チェックと動的チェックを両方やるならいいと思うよ。
これは結局、仕様と実際の動作のどっちもしっかりチェックする必要があるってこと。
370デフォルトの名無しさん
2017/12/17(日) 02:06:25.44ID:an2T/Jmb
一般的な話をvc固有の問題で批判する方が浅はかと言わざるを得ない
371デフォルトの名無しさん
2017/12/17(日) 02:24:22.59ID:lzYKowQo
型も書けないような奴が
正しいテストを書けるだろうか?(irony)
372デフォルトの名無しさん
2017/12/17(日) 08:41:58.60ID:cjnEvY5x
それ以前に、めんどくさいからって型書きたがらないような奴は現実にはほとんどテストなんか書いてないんだよ
動的型でテスト書けば問題ないだの必要なテストが増えるだのテストの正しさだのというのははっきり言って机上の空論
そもそも彼等はテストを書かない
373デフォルトの名無しさん
2017/12/17(日) 08:51:42.24ID:ROemoGKg
そんなこというと、動的型付け言語を使っているから型を書いていないって人より
auto/varを使って意識的に型を書かない人の方がテストを書かない傾向があるって
言っているように聞こえるけど。
374デフォルトの名無しさん
2017/12/17(日) 09:04:39.97ID:cjnEvY5x
>>373
そりゃ静的型でも型書かない奴は山ほどいるだろ
テストを書いているということを議論の前提にしていることが全くもって非現実的だと言ってるんだよ
375デフォルトの名無しさん
2017/12/17(日) 09:06:12.54ID:qBUEKR93
テストの目的は実装のバグを探すことだけか?
むしろ仕様をチェックすることが最も重要だよ

バグは直せばいいだけだが、仕様はうっかり変更されたら直せない
死んだ人が帰ってこないのと同じ
動的型の言語仕様を捨てて静的型に移行するのが難しい理由もその辺にありそうだ
376デフォルトの名無しさん
2017/12/17(日) 09:14:23.72ID:i+M+l/V2
テストすら正しく書ける気がしないドカタにはメタプログラミングなんて無理
377デフォルトの名無しさん
2017/12/17(日) 09:48:44.61ID:G+5q9UaX
>>375
テストの目的は変化を検出することだよ
作って運用開始して終わりならテストなんか手動で十分
378デフォルトの名無しさん
2017/12/17(日) 11:35:01.56ID:v3Bx338J
>>366
それもまぁ程度論だろ。
一部の人間があったら良いなと思ってたものが出来たから嬉しいってだけの話で、
全体に対してどうと思うほうがちょっとおかしいよ。
379デフォルトの名無しさん
2017/12/17(日) 11:41:57.99ID:v3Bx338J
テストのテストを馬鹿にしてるが、書くからな。
何重まで上に上がる?というのは論点がずれてて、要件定義書でテスト仕様書をテストする。(詳細設計なんかは無視する)
紙の上でかもしれんし、直交表書くかもしれんし、色々あるが、
要件定義や詳細設計からテストだけ書いて、その妥当性も判断せずにオールグリーンこれでオッケー、ならそれは間違ってると思う。

間違えない前提ならテストは要らない、はその通りで、どの開発レイヤにも「この場ではこれは間違っていないとみなす」というブラックボックスがある程度発生していく。
単体試験なんかで担保して、レイヤがあがるにつれてブラックボックスは増えていく。

そこにワザワザ、ヒステリックテストをする必要は無い。
ブラックボックス側から数値しか出さないなら、数値以外をチェックするのは過品質に近い。
380デフォルトの名無しさん
2017/12/17(日) 12:06:03.05ID:pDfY69my
>>367
細かくいうと「結局製品として必要な質を担保するのに必要なテストコードは変わらない」っていう主張な。少なくとも自分はこう思ってる
あくまで主観だし定量的に示せないんで上で上がってる通り空論といってもいいがな

少なくともコンパイルとLinter通った時点での品質は静的型が上なのは否定しない
が、自分の経験上、型チェック程度は他のテストのついででチェック進むから、そのせいでテストコードがかさむとかそういうケースはそうそうないはずなんだよな
381デフォルトの名無しさん
2017/12/17(日) 12:11:02.52ID:pDfY69my
もちろん「テストコードと、一種の証明である型チェックの性質は違う」とかそういう理屈も理解してるが、
結局「製品としての質担保」という観点で見るなら、その程度の手段の差は全くもって関係なくなる、というのが自分の考え
この辺はテストに求める役割に対する考え方の違いかもしれん
382デフォルトの名無しさん
2017/12/17(日) 12:14:39.63ID:pDfY69my
あとPHPディスに絡めようとしてるやつがいるが、PHPは静的型動的型の以前の部分に問題があるし、
この議論で少なくとも自分が動的型言語の念頭においてるのはPythonやRubyだからな?
383デフォルトの名無しさん
2017/12/17(日) 12:18:57.69ID:028c4ua0
>>368
論破じゃなく、補足になるが、特に業務でプログラミングするならコスパ考慮して選んでるからねえ。
現実の工数は、要件変動も含めその時点でのコンパイラ・インタープリタで拾えない部分の不整合によるものが大きい(まだ合理化されてないとも言えるが)。
プログラミング言語の歴史見ると判るが、静的・動的とも互いに相手のいいところを取り入れて進化してきてる。
同時に、世の中のニーズ(個人が計算リソースを持つようになった、など)に対応した形でも変わってきている。
これは適用可能な領域を広げようとした結果。
オレ個人の例で言えば、業務要件==>計算モデル==>候補言語を複数選択。
その後、プロジェクト要件(期間、要求品質、メンバースキル、関係者が蓄積しているプログラミング資産など)との組み合わせが適しているものを勧めている。
なので言語仕様やライブラリ含めた挙動だけ比較しても、それはツールとしての現在の瞬間の姿を見てるだけなので、その評価が未来にも、業務にも適用できると考えるなら早計。
384デフォルトの名無しさん
2017/12/17(日) 12:57:26.41ID:v3Bx338J
>>380
静的型が上というか、帳尻があっている、と言うことはわかるから、一つの方向としては正しいと思う。
ただ、本当にあっているか?小数は桁落ちしてないか?まで考えると、静的型でも、どの道ピアレビューなんかで担保するしかない。

これは言うとおり、ついでに型が充分かも見る、という動的言語のピアレビューと工数としては変わらん。
385デフォルトの名無しさん
2017/12/17(日) 13:01:33.13ID:2YAiyrnb
静的型のメリットで最も大きいのは依存関係が静的にほぼ完全に把握できることでしょ
自社事業の開発で常に動いているものを弄るなら、これ以上に心強いものはない
386デフォルトの名無しさん
2017/12/17(日) 13:10:12.04ID:v3Bx338J
依存関係はどっちでも同じ程度じゃないの?
RoRみたいに、そのディレクトリに置いたら勝手に使用される、を想像してたら違うのかもしれんけど。

動的型も静的型も、リテラルでのimportやrequire、参照設定とusingでそれなりに決まる部分もあれば、
Node.jsだと変数でのrequireや、CなんかでのLoadLibraryなんかでも動的ロードなんかで全く決まらん事もあるんだし。

依存関係の解決はちゃんとそれ用に何か用意した方が良いと思うけど。
387デフォルトの名無しさん
2017/12/17(日) 13:23:12.52ID:qBUEKR93
モジュールの依存関係は型と関係ないね
「モジュール=型」とかいう超怪しい等式に依存するのは嫌だね
388デフォルトの名無しさん
2017/12/17(日) 14:46:20.78ID:x6mh3PiV
テストコードはテスト対象のコードより明快なものが一般的で、明快であれば人の目で判別しやすいってのも考慮すべきよ
テストを重ねるほど品質が上がるってのは空論だし、1重しかテストしないのは妥協してるからというわけでもないよ
389デフォルトの名無しさん
2017/12/17(日) 15:54:09.19ID:F+iLZcQ1
>>386
IDEのメソッド呼出元の検索とか使ったことないのか?
規模が大きくなるとあれがないとやってられなくなるぞ
390デフォルトの名無しさん
2017/12/17(日) 16:41:56.81ID:PjBbAu1N
>>368
形式手法でコード自動生成しててもやっぱり高信頼性のためにはテストは必須だぜ?
391デフォルトの名無しさん
2017/12/17(日) 17:52:05.86ID:v3Bx338J
>>389
なんだ、そんな事か。長々書いて損した。
動的言語のIDE使ったことある?
いや、IDEじゃなくてもいいや。VSCodeと適当なNode.jsのプロジェクトでさえ、それなりに効くだろ。

>>388
テスト自体は1重でも良いとして、何らかの方法でテストの正当性は担保しないの?
それじゃただ書いたコードが書いた意図どおり動いてる確認で、意図が正しいかのテストにはなってない気がする。
意図が正しいかの証明は要件定義と設計書の間でのみ行われる、ってのが普通なのかな。
392デフォルトの名無しさん
2017/12/17(日) 19:31:01.08ID:AwDJJh6p
要件に寄らず、テストは最低8重ないとダメ
スレのレベルが低すぎる……��‍♂
393デフォルトの名無しさん
2017/12/17(日) 23:06:04.33ID:lzYKowQo
>>389
良く訓練されたPHPerは超力Grepを使いこなすから問題ないんだよなぁ
394デフォルトの名無しさん
2017/12/17(日) 23:23:38.60ID:qBUEKR93
メソッド呼出元検索、、今回ほど仕様バグが沸き起こる思いをしたことが無い…
395デフォルトの名無しさん
2017/12/17(日) 23:39:30.09ID:LyzNAsst
>>391
> 意図が正しいかのテスト

って何だよ意味不明。
必要なテストがされているかが重要だろ。
数だけ多くたってダメなんだよ。
396デフォルトの名無しさん
2017/12/17(日) 23:57:38.71ID:lzYKowQo
つまり、動的型言語は山ほどテスト書かないとダメって言いたいんだろw
397デフォルトの名無しさん
2017/12/18(月) 00:07:07.45ID:oET30lFX
一応確認なんだけど動的言語じゃなく動的型付け言語の話なんだよね?
398デフォルトの名無しさん
2017/12/18(月) 00:58:28.12ID:9GZmy5yv
>>396
テスト書く量は同じだよ
399デフォルトの名無しさん
2017/12/18(月) 04:30:42.74ID:p9HDlb+0
>>398
ねーよ
400デフォルトの名無しさん
2017/12/18(月) 08:13:16.77ID:9GZmy5yv
>>399
強い型付けの動的型言語なら、値に対するテストを書けば型に対するテストは不要です
assert(x > 0) というテストを書いたのに、さらにxが文字列かどうかテストする必要ははありませんね

反論するなら反例を出してくださいね
クソくだらない長文はいらないので
401デフォルトの名無しさん
2017/12/18(月) 08:13:41.10ID:UBkq3PS9
>>395
わからんならしたことがないって事だ。
402デフォルトの名無しさん
2017/12/18(月) 08:28:29.94ID:9Kb0ajxH
>>400
型ってのを、CPUのプリミティブでしか考えなくて良い業務プログラムならそうだな。
問題は、今時そんなトイプロジェクトが少ないって事。
403デフォルトの名無しさん
2017/12/18(月) 09:01:45.44ID:yq3smURe
>>400
自演乙
404デフォルトの名無しさん
2017/12/18(月) 10:20:33.66ID:/BfrEM8a
>>402
つまり、幽霊型とか依存型あたりを使い倒さないと今時のプロジェクトはまわらない、という認識でいいのか?
そりゃその辺りを使い倒さないと回らないプロジェクト前提なら、動的型付けでは無理な話になるが
それが必須な状況が、動的型付け言語のメタプログラミング並みに思い付かないぞ
405デフォルトの名無しさん
2017/12/18(月) 12:43:07.93ID:h27G1UNw
>>400
用途による。
弱い型付け言語でも、型無言語でも値に対するテストで充分な場合もあるし(要は、不正値が渡されてる時点で異常であって、その場合の動作は不定として構わないという要件の場合。よくある)
逆に強い型付け言語でも、強い磁界やノイズ源の間際で使われるようなものを書くときにはキチガイじみたテストもする。
a=170,b=85,a+b==255みたいなアサーションすら稼働コードにも並ぶし、それが成立しなかったらリセットかかるようにする。
406デフォルトの名無しさん
2017/12/18(月) 12:54:00.44ID:mr3x/gYU
ちなみにvscodeでnode.jsのコード補完が効くのはtypescriptの型情報の恩恵を得てるから
407デフォルトの名無しさん
2017/12/18(月) 21:36:27.12ID:9Kb0ajxH
>>404
むしろ動的型付けの出番が増えるけどな。
昔ながらの単純なOAアプリには不要だが。
408デフォルトの名無しさん
2017/12/19(火) 01:10:12.61ID:lENhGj5D
>>405
長文書かずに反例を出せ、って書き込みにアンカーつけてまで
反例無しの長文書いててワロタ
409デフォルトの名無しさん
2017/12/19(火) 02:45:28.87ID:4MuASRxE
具体例がなくても、長文を書けば何か言った気になれるからなwwwwww
410デフォルトの名無しさん
2017/12/19(火) 04:16:57.53ID:6mJgSo5a
>>404
幽霊型や依存型って動的型付けなら普通にコードでやっていることを
静的な型で表現しようとしてがんばってる例のあれのこと?
411デフォルトの名無しさん
2017/12/19(火) 07:49:40.76ID:yvsoeKM9
>>410
>静的な型で表現しようとしてがんばってる例

まあそういう事になるよね。
もともと計算モデルが違う(=問題解決へのアプローチが違う)
プログラミング言語同士を比較すれば、「一方は率直に実装できる」
フィーチャーが有るのは当たり前だしね。
理想はプロジェクト毎に最適の計算モデル、言語、スキルを揃える事だが
現実には、そういう要素が有ることを知らなかったり、教育投資を捨てたく
ないって理由で、合っていないモデルで無理やり進めてるのが現実。
412デフォルトの名無しさん
2017/12/19(火) 08:55:34.79ID:9wTQQ92p
>>408
反例じゃん?
413デフォルトの名無しさん
2017/12/19(火) 09:24:51.77ID:ngbi4CU2
>>400「強い型付け言語である場合、値のテストをすれば型のテストはいらない」

>>405「弱い型付け言語でも型のテストがいらない場合がある。また、強い磁場中の利用であればa=170,b=85,a+b==255のようなキチガイじみたテストをする」

あガガイのガイ
414デフォルトの名無しさん
2017/12/19(火) 13:04:54.40ID:lG4ryEsW
>>410
動的型で項書き換え最適化や実行前の証明が普通になされているというなら、まあそうだね
415デフォルトの名無しさん
2017/12/19(火) 13:08:42.98ID:9wTQQ92p
うん、反例の一つかと。
〜あるし、〜する(こともある)。
前者は言う通りにそれ以下のテストだけど、後者は型テストももちろんするし、その周辺のメモリの値すらテストする、って事なんだが。
カナリア知らんとかはやめてくれよ。
416デフォルトの名無しさん
2017/12/19(火) 13:20:03.85ID:/xuMeQeJ
次世代で証明されると期待される定理を今使う
クレジットカードみたいなやつ
動的型付けってそういう仕組みなんだね
417デフォルトの名無しさん
2017/12/19(火) 13:22:38.78ID:ngbi4CU2
ID:9wTQQ92p
こいつくせえな話が通じてねえ
例のガイジか
418デフォルトの名無しさん
2017/12/19(火) 13:31:22.89ID:xjqFNtfj
ガイ・スティール・ジュニア略してガイジ。
419デフォルトの名無しさん
2017/12/19(火) 14:57:09.50ID:9wTQQ92p
通じてないのはそっちだと思うけど。
理解できければ全部レッテル貼って理解を放棄するクセはいかがかと思うが。
420デフォルトの名無しさん
2017/12/19(火) 15:34:54.93ID:xjqFNtfj
人に理解してもらえることが当たり前だと思ってるようでは人生経験浅すぎるな。
現実とはそういうものだよ。
421デフォルトの名無しさん
2017/12/19(火) 18:04:10.11ID:9wTQQ92p
そこまでは言ってないがな。
まぁ、どうおかしいか理解させられない時点で同じ穴の狢かそれ以下なんだろ。
理解させる、という側の能力だけを評価するなら。
そこまで卑下しなくても良いのに。
422デフォルトの名無しさん
2017/12/19(火) 18:52:02.43ID:ngbi4CU2
>どうおかしいか理解させられない時点で同じ穴の狢

あDHDには何回か丁寧に説明してやったし、その度に「そういうことか。理解してなかった」って言われて来た
もううんざりだ。おまえであることがわかった以上もう説明せんよ
423デフォルトの名無しさん
2017/12/19(火) 19:28:03.33ID:cqTye8WP
「AならばB」に対して「Aでないときには〜」って話をして
反例になってると思う>>415ってプログラマとしてヤバない?
424デフォルトの名無しさん
2017/12/19(火) 19:54:56.57ID:/xuMeQeJ
ヤバい人がいても最近は誰も批判しない
批判は建設的じゃないと考えられているから
425デフォルトの名無しさん
2017/12/19(火) 20:05:56.79ID:XSrelQ4n
>>424
それが実現すれば理想的なんだが現実はそう上手くはいかない。
こんな会話が発生している時点で建設的じゃない批判が起こっているという悲しい事実。
426デフォルトの名無しさん
2017/12/19(火) 20:47:02.26ID:dep2iFkQ
現実もほったらかしにしてるわ。
だからまともにテストのないコードがあちこちにある。。
427デフォルトの名無しさん
2017/12/19(火) 21:09:05.12ID:+t5AZThl
>>422
ほら、理解させられないw
428デフォルトの名無しさん
2017/12/19(火) 21:45:39.68ID:hKOvQSVX
次世代言語の話をしろよ…
429デフォルトの名無しさん
2017/12/19(火) 22:19:39.18ID:IFsKBc84
次世代言語は静的型か動的型か?
430デフォルトの名無しさん
2017/12/19(火) 22:22:03.65ID:VYW2hLxr
静的型に決まってるやろ…
431デフォルトの名無しさん
2017/12/19(火) 22:42:35.74ID:ngbi4CU2
動的言語Clojureさん
432デフォルトの名無しさん
2017/12/19(火) 22:47:01.55ID:Vp6Wk3js
暗黙的な静的型付けが主流になると思う
頭の良い人間が多相を明示的に駆使して必死に辻褄合わせするんじゃなく、
コンパイラがフロー解析を頑張ることで人間に負担をかけずに厳密な静的型付けを実現する
メジャーどころだとTypeScriptはそういう方向へ向かいつつあるね
433デフォルトの名無しさん
2017/12/19(火) 23:52:06.32ID:LaOLTVhQ
型無し旧世代ガイジどもは死ね
434デフォルトの名無しさん
2017/12/19(火) 23:55:12.83ID:IFsKBc84
ドカタ部門やハッカー部門など、部門ごとに次世代言語を決めた方が良さげ
435デフォルトの名無しさん
2017/12/20(水) 01:24:03.63ID:fcm+RWAl
HaskellのIOモナドみたいのが主流になってきたら
実行時型付けも局所的に使えるけど
全体としては静的型付け、みたいな感じになりそう
436デフォルトの名無しさん
2017/12/20(水) 01:28:01.05ID:HrNa8kdY
コードのどの部分で静的型チェックするのかってのが争点になるかもね。
437デフォルトの名無しさん
2017/12/20(水) 01:40:49.86ID:RSIhrBYE
>>433
動的型付け言語の方が新しいんだよなあ
438デフォルトの名無しさん
2017/12/20(水) 02:07:25.86ID:KBs5e3Jn
新しければ常にいいなら世の中楽だな
439デフォルトの名無しさん
2017/12/20(水) 02:08:13.16ID:yTANvvcN
新しいものが良くないのは地獄すぎる
440デフォルトの名無しさん
2017/12/20(水) 06:17:59.95ID:megjw+LT
2世議員とかな
441デフォルトの名無しさん
2017/12/20(水) 07:55:10.76ID:YSR/eiRE
>>437
プッ 恥ずかしい子・・・
442デフォルトの名無しさん
2017/12/20(水) 08:39:38.13ID:ODk3G9Dt
>>439
単に新しいものでは地獄がまだ見えてないかもしれないだけかもしれんぞ。
443デフォルトの名無しさん
2017/12/20(水) 08:44:51.44ID:megjw+LT
人間万事塞翁が馬ということだな。
444デフォルトの名無しさん
2017/12/20(水) 22:58:07.90ID:HrNa8kdY
とりあえず言っとくが
cobol だって perl だって vba だって php だって当時は新しかったんだよ。
445デフォルトの名無しさん
2017/12/23(土) 01:16:52.24ID:t3UiuX8x
多重ディスパッチ
446デフォルトの名無しさん
2017/12/24(日) 00:50:02.64ID:g6gmcbUh
Lispは神の言語
447デフォルトの名無しさん
2017/12/24(日) 01:04:50.15ID:WikwUycQ
>>446
lisp のどのような特徴が、あなたをして神の言語と判断させるのか?
448デフォルトの名無しさん
2017/12/24(日) 03:09:03.29ID:zxcNg14q
LISPは神がかってるけどSmalltalkはゴミ
449デフォルトの名無しさん
2017/12/24(日) 12:09:04.21ID:L0WbVZsM
神さまが話していたので神の言語です
450デフォルトの名無しさん
2017/12/24(日) 14:00:03.00ID:Em2lfTvP
もう30年くらい前なのか、むかし16M位のメモリーのワークステーションで
LISPやってた連中は、メモリが足りないからLISPは流行らないんだみたいな言い訳言ってたけど、
個人用PCに32Gのメモリーが詰める時代になっても同じこと言ってるんだろうな。
451デフォルトの名無しさん
2017/12/24(日) 14:10:43.44ID:g6gmcbUh
実は俺はsetqとか嫌い
452デフォルトの名無しさん
2017/12/24(日) 15:59:57.85ID:On/fo7aB
アンアン
      o
    o_ /)
     /<<


12月24日の午後9時から翌25日の午前3時までの6時間は
1年間で最もセックスをする人の多い「性の6時間」です。

貴方の知り合いや友人ももれなくセックスをしています。
普段はあどけない顔して世間話してるあの娘もセックスをしています。
貴方が片想いしているあの綺麗な女性もセックスをしています。
貴方にもし年頃の娘さんや姉・妹がいて、いま家にいないのでしたら間違いなくセックスしてます。
貴方と別れたあの娘も貴方がその娘にやってきたことを別の男にやられています。
貴方の将来の恋人や結婚する相手は、いま違う男のいちもつでヒィヒィ言っています。
すべてを諦めましょう。そして、ともに戦いましょう。
453デフォルトの名無しさん
2017/12/24(日) 20:13:00.27ID:cn7uv5Fd
lisp が流行らんことから導ける唯一のことは結局algol系のシンタックスじゃないと
流行らんということ。
454デフォルトの名無しさん
2017/12/25(月) 00:45:32.17ID:KmZOPanU
やっぱり括弧が辛かったのか
455デフォルトの名無しさん
2017/12/25(月) 01:01:15.56ID:0H4Emls0
意識高そうに見えてしまったとか
456デフォルトの名無しさん
2017/12/25(月) 01:22:46.82ID:LEWwY/wL
彼らは意識高い系じゃない、自意識高い系だ
457デフォルトの名無しさん
2017/12/25(月) 01:59:00.89ID:qFggHRB9
かっこつけすぎなんだよ
458デフォルトの名無しさん
2017/12/25(月) 03:56:16.62ID:lJA7pJsS
括弧がわかりにくいからインデントで分かりやすくする。
だから括弧にはほとんど意味は無い。
それパイソンやん。
459デフォルトの名無しさん
2017/12/25(月) 07:03:51.04ID:0H4Emls0
実際最古のPythonと言っても過言ではない
460デフォルトの名無しさん
2017/12/25(月) 12:03:25.79ID:kkhOzk4j
Lispの系譜にあるPythonが生き残って
Smalltalkの系譜にあるRubyが死んだのは
必然だったな
461デフォルトの名無しさん
2017/12/25(月) 13:04:23.59ID:kMbU4vvz
今時(2017)のSmalltalkの始めかた
https://medium.com/@newapplesho/%E4%BB%8A%E6%99%82-2017-%E3%81%AEsmalltalk%E3%81%AE%E5%A7%8B%E3%82%81%E3%81%8B%E3%81%9F-93c044820e1b
462デフォルトの名無しさん
2017/12/25(月) 19:46:02.89ID:eOxdg9cU
rubyって「お前はもう死んでいる」状態なのに、
それは言わない御約束なのかな?
463デフォルトの名無しさん
2017/12/25(月) 20:02:13.61ID:P1YyQnZH
Rubyの元はPerlだろ。
464デフォルトの名無しさん
2017/12/25(月) 22:50:10.19ID:Z5v7fEWF
多重継承やぞ
465デフォルトの名無しさん
2017/12/25(月) 23:39:38.77ID:qFggHRB9
インデントもまともにつけられないクズペチパー以下のゴミ屑は論外として、
括弧は多少あった方が見やすい
pythonはちょっとクセがある
466デフォルトの名無しさん
2017/12/26(火) 00:51:10.57ID:Qxp4eKO0
松本さんはlisp の影響がでかいと言ってはいる
http://gihyo.jp/news/report/01/rubykaigi2013/0001
467デフォルトの名無しさん
2017/12/26(火) 01:50:36.25ID:sagFdw2O
smalltalkは実開発前における分析設計用ツールとしていいんでないかと個人的には思う。
468デフォルトの名無しさん
2017/12/26(火) 10:35:41.47ID:Hd2qVaf/
サービスやどのくらい急ぐかにもよるけど「動作する仕様書」としてそのまま本番投入って荒技も使えるしね

スタートアップ界の異端児!産業機器 x IT x SmalltalkのSORABITO株式会社
https://thepedia.co/article/1068/
469デフォルトの名無しさん
2017/12/26(火) 12:42:11.47ID:9JscEoEu
そして負の遺産になるわけですね
470デフォルトの名無しさん
2017/12/27(水) 00:30:29.97ID:AqtANtDH
>>469
コレメンサスンゴなんだよなぁンゴ
471デフォルトの名無しさん
2017/12/27(水) 09:48:57.79ID:X35AiWNh
Smalltalkのコードって死ぬほど読みにくいよね。
やっぱり古臭い言語はダメだな。処理系もなんかモッサリしてて古臭いし
472デフォルトの名無しさん
2017/12/27(水) 11:00:24.41ID:gUZ1SoEG
次世代言語スレで旧時代の死体蹴りは感心しない
473デフォルトの名無しさん
2017/12/27(水) 12:07:11.37ID:V4t27acZ
>>471
Haskellのほうがひどいぞ
474デフォルトの名無しさん
2017/12/27(水) 12:36:42.15ID:P2OckTcS
こんな話題にまでHakellぶち込んで来て
どんだけHaskell嫌いなんだ……
475デフォルトの名無しさん
2017/12/27(水) 16:45:18.19ID:bNHoEe3v
嫌いってのは対等な関係だから割とうまくいってる
もっと差別的な感じになったらやばい
476デフォルトの名無しさん
2017/12/27(水) 16:49:33.78ID:TP7XdM/O
Haskellの今は知らないがfull importしまくってたり色んな演算子を作って使いまくって変数名も省略しまくりで
お世辞にも読みやすいとは言えなかったぞ
477デフォルトの名無しさん
2017/12/27(水) 17:06:39.65ID:bNHoEe3v
変数名というか型名がaとかbとかcとか
だがジェネリクスの可読性が低くてもジェネリクスが淘汰されることはない
478デフォルトの名無しさん
2017/12/27(水) 20:16:36.09ID:+xQq+KE3
ソースコードの不備をAIで見つける富士通
http://itpro.nikkeibp.co.jp/atcl/column/14/346926/122501258/
英数字や記号といった文字列の固まりであるソースコードを、
テキストデータとしてではなく、画像として分析するという。
479デフォルトの名無しさん
2017/12/27(水) 20:18:47.38ID:hw44w6Qj
>>478
面白そうな技術だけど、ビジュアルがヤバいw
480デフォルトの名無しさん
2017/12/27(水) 22:15:48.54ID:nTLYpIDf
どうせlintでもかければ良い話なんだろうなって気がするわ。
481デフォルトの名無しさん
2017/12/28(木) 07:34:29.86ID:Vjf7k8ZG
画像ベースだと
教師データで使用頻度の高い変数名を使うと高得点
みたいな奇妙なテクニックが生まれないんかね
482デフォルトの名無しさん
2017/12/28(木) 09:27:42.05ID:wX0EFIYP
画像でやってるからそういうのは起こりにくいのかも。
483デフォルトの名無しさん
2017/12/28(木) 16:46:02.76ID:jPNGBgQQ
インデントが無駄に深くなってて、無駄な空白が広くとられてるとかは
結構簡単に診断できるかもね。
でもそれって人間が見てもわかることだよな。。
484デフォルトの名無しさん
2017/12/28(木) 21:23:58.74ID:uNABt/+g
美しいコードがあったら1回しか書かないのはもったいないからコピペする
485デフォルトの名無しさん
2017/12/29(金) 15:51:08.69ID:qAknRtUW
>>478
写真のオッサンどものザ・無能・SI感がヤバみ
486デフォルトの名無しさん
2017/12/29(金) 16:46:08.27ID:EmauInAe
>>483
人間が見てもわかること、って気軽に言うけど、それ「普通の彼氏がほしい」くらいの無茶振りだと思うぞ。
定量化してくれるんなら便利じゃん。
あと、画像を解析してるから、内容の是非じゃなくてバグを生みやすいような姿を検知してる、ってのは
古株のおっさん連中への強烈なエクスキューズになると思うわ。
内容の是非を判定するモノに関しては、どうしても静的解析と仲良くできなかったような連中が狂ったようにアンチする。
Rustスレみたいになる。
487デフォルトの名無しさん
2017/12/29(金) 17:37:53.13ID:cw3UbRdF
>>486
いやだから定量化のツールなんて今まで腐る程作られてるわけだけれど
結局、それを無視する輩に何言っても無駄だってことなんだがな。
人間の指摘は無視して機械の指摘は受け入れるとかどこか歪んでると思わんのかね?
ルールベースだろうと機械学習だろうと結局は受け入れ側の問題なんだが。
488デフォルトの名無しさん
2017/12/29(金) 18:16:14.48ID:FHAe2y9o
>>487
富士通が作ったとなるとおじさんたちには説明しやすそうだけどな
489デフォルトの名無しさん
2017/12/29(金) 18:43:36.76ID:JTMw5+UW
筋が悪いと思う
目的は定量評価そのものではなく、悪いところを改善することだろ?
ディープラーニングでスコアを付けられたところで、どうやったら良くなるのか分からんだろ
決められた最低スコアを満たすために深夜にPG達が死んだ魚のような目でインデントをいじくって試行錯誤する姿が目に浮かぶわ
490デフォルトの名無しさん
2017/12/29(金) 18:47:44.63ID:cw3UbRdF
>>488
いや富士通がやったことだからやばげなんだろw
googleがやったとかならおじさん受けはいいかもしれんが。
491デフォルトの名無しさん
2017/12/29(金) 19:02:44.12ID:NmAcZsuY
アメリカに尻尾ふる日本人
492デフォルトの名無しさん
2017/12/29(金) 19:27:10.69ID:EmauInAe
>>487
確かに定量化のツールは腐るほどあるが、
「本当の意味での見た目」を定量化したのは割と初めてじゃない?
面白いと思うけど。

無視する輩ってどこから来たのかわからんが、たいがいそういう奴は決まってしまえば無視はしない。
無視する事は出来ないから導入自体を見送らせる。

そこで、ルールベースじゃなくて「雰囲気」を一つの指標にするってのはアリだと思うけど。
機械の指摘ももちろんだが、機械の指摘をもって人間が指摘するんだから、あんまかわらん。
それに、そもそも人間の指摘も無視するわけじゃないだろ。
人間の指摘を無視するやつはそもそもプロジェクトでは長生き出来んだろ。社会人なんだから。
二元論じゃなくて、新しい尺度じゃね?

受け入れ側の問題と断ずるのは簡単だが、何故受け入れさせる事が出来ないか、ってのはそれを推す側の問題だと思う。
493デフォルトの名無しさん
2017/12/29(金) 20:10:55.59ID:JTMw5+UW
教師データをどう用意したのかは激しく疑問だな
Apache Foundationとかの定評アルOSSのソースを○、
富士通のSIのソースを×として学習させて、与えられた画像が○の方である確率をスコアとするんだろうかw
494デフォルトの名無しさん
2017/12/29(金) 22:23:50.72ID:cw3UbRdF
>>492
才クロマティック数とかさ、普通に気にしてりゃそこまでひどいことにはならんわけよ。
ツールの数はおれは十分だと思ってるけれど、結局そういう地道な数値なんてのはむしするわけだ。
ただただ新しい指標作りましたっていうアリバイ発明のためだけってのは
この業界では昔からいっくらでもあるわけで警戒するのが普通なんだよ。
https://msdn.microsoft.com/ja-jp/library/bb385914.aspx

受け入れられない理由はそいつの能力と与えられる時間の割合の話にしかならん。
地道に受け入れる体制をつくるかそういう奴を切るかの二つしかないのに
糞みたいな幻想にしがみついてるだけだわ。
495デフォルトの名無しさん
2017/12/29(金) 23:18:07.67ID:aTe03Y1I
>>494
お前さんの書き込み見ると、アンチを装った信者って評価になるけどな。
496デフォルトの名無しさん
2017/12/30(土) 09:00:14.39ID:HRZmB+5I
>>490
お前がプロパーエアプなことはよくわかった。
497デフォルトの名無しさん
2017/12/30(土) 12:24:14.46ID:YiXNzhkf
ワインゴ大将軍、循環的複雑度でコードのヤバみ検知してる最先端エンジンでその富士山・・?のなんとかよりずっと前から最先端だけど話する?
498デフォルトの名無しさん
2017/12/30(土) 12:37:15.29ID:IKvN98q1
>>497
技術的には全くどうでもいいけど、
それを客にどう売り込んでるかとか導入後実際に成果出てるのかとかとかは気になる
499デフォルトの名無しさん
2017/12/30(土) 12:37:56.63ID:sz1BobDC
>>494
無視するんじゃなくて、理解出来ない人間も居るんだし、そいつらを黙らせるのにも便利だと。
アリバイじゃないよ。わかったふりをさせて承認印を押させるような行為がアリバイだろ。

大体、営業や経営がシステムの事を深く理解する必要は無いし、大本営直下の人間ってのはそのどちらか寄り。
それは戦略上の必要悪なんだから、切る切らないの議論としては話にならん。

そいつらが見る時に、今までは言っちゃえば騙して盲判を押させてただけだろ。

地道なツールを無視するんじゃない。それは今までどおり開発部で使えばいいじゃない。
500デフォルトの名無しさん
2017/12/30(土) 13:01:46.50ID:KDbqwYpR
マ板でやれ
501デフォルトの名無しさん
2017/12/30(土) 13:04:53.13ID:mW/VKMch
perlやhaskellをやったら、コードはやっぱり短い方が良いなって思うよ
でもコードの長さという指標はほとんど無視されているのが悲しい
502デフォルトの名無しさん
2017/12/30(土) 17:37:07.61ID:9QvS1nQQ
haskellってそういうジャンルなのかよ
受け入れられないわけだ
503デフォルトの名無しさん
2017/12/30(土) 18:01:18.34ID:WOZO0R3V
違うよ
504デフォルトの名無しさん
2017/12/30(土) 22:23:23.78ID:mW/VKMch
短くするつもりは全然ないのになぜか短い
これなら受け入れられるか?
やばい全然勉強してないとか言いながら高得点を取る現象と同じ
505デフォルトの名無しさん
2017/12/31(日) 04:59:15.58ID:BxCzRdag
やりたいことが全部標準ライブラリーに入ってるからじゃね?
506デフォルトの名無しさん
2017/12/31(日) 06:58:35.57ID:pbtZtK9w
ちょっと聞きたいんだけど
便利なライブラリが揃っているって
事と
その言語が優れているって事は
全く別の事だよな?
507デフォルトの名無しさん
2017/12/31(日) 10:00:35.36ID:mQmAaKpB
Haskellで1年前のコードをデバッグするの本当に地獄。
508デフォルトの名無しさん
2017/12/31(日) 10:22:03.98ID:rHg6Qc+M
Lisp系はどうなる
509デフォルトの名無しさん
2017/12/31(日) 10:22:23.79ID:rHg6Qc+M
>>506
そうだけどなにか
510デフォルトの名無しさん
2017/12/31(日) 11:09:20.17ID:OUK6bPn9
>>506
優劣の基準によるだろ。
511デフォルトの名無しさん
2017/12/31(日) 13:25:14.78ID:G5F8BPZR
いろんな言語の悪口言ってるw

Debunking Myths About Programming Languages (and More)

512デフォルトの名無しさん
2018/01/01(月) 12:19:03.55ID:bFOlOWpA
>>508
マクロを追ってくのは面倒ではあるが
一つ一つ展開してけばそこまで無理ゲーではない。
しかしhaskellみたいに正格評価でない言語はバイナリイメージが描きにくいし
やっぱり辛いんじゃないかな。
513デフォルトの名無しさん
2018/01/01(月) 12:39:18.50ID:/aa2tlFp
Haskellのバイナリはイメージ出来んな
でも出来る必要あるか?
514デフォルトの名無しさん
2018/01/01(月) 12:49:38.56ID:UOCN9gps
する必要がない人が使うんだろ。
良いじゃん、バイナリサイズが大きかったり、メモリ消費が多かったり、動作が遅ければ計測すれば。

大きくなるだろうな、メモリたくさん使うだろうな、これじゃ遅いだろうな、なんて気づきは無駄らしい。計測が全てらしいわ。
また半狂乱になって必要性の無さを説くのを眺めるのもめんどくさいし、そういう言語だって理解でいいんじゃねえの?
515デフォルトの名無しさん
2018/01/01(月) 12:55:17.85ID:/aa2tlFp
どうせPythonとかでもバイナリイメージ描かんじゃろ?
516デフォルトの名無しさん
2018/01/01(月) 13:07:46.20ID:/aa2tlFp
Haskellは動的言語以上にそっちの方向いっとる
そっちの極みやね
517デフォルトの名無しさん
2018/01/01(月) 14:34:14.61ID:aCS5pbMF
くすくす
518デフォルトの名無しさん
2018/01/01(月) 15:17:11.09ID:2Vcmk2Ln
おまえら、いつも「これはどんなバイナリ」とか考えながらコーディングしてんの?
バカじゃないの?
519デフォルトの名無しさん
2018/01/01(月) 15:18:05.17ID:ry7dOet7
俺も数学科出身なんだけど、層の理論ってプログラムと関係ないと思う。
だけど、↓みたいに数学的基礎付けが欲しい人はいるのもわかるが。

Haskellと層
https://qiita.com/makoraru/items/ab891a60d4dfe4bbf649
520デフォルトの名無しさん
2018/01/01(月) 16:45:32.23ID:bFOlOWpA
バイナリイメージっつーか
結局デバッグってどの時点かで想定の値と違ってるところを探るってことになるわけで、
その評価のタイミングとか考える必要があるじゃん。
そういう評価のタイミングがわかりにくい言語だとデバッグがきついんだよ。
521デフォルトの名無しさん
2018/01/01(月) 18:17:03.86ID:/aa2tlFp
一応、タイミングという概念から解放されるための参照透過性なのでは?
522デフォルトの名無しさん
2018/01/01(月) 19:33:22.97ID:bFOlOWpA
解放されたいのはわかるが実際は違うんだから仕方ない。
言語でいくら定義しようが、ノイマンマシーンはそんな風には動かないんだから。
523デフォルトの名無しさん
2018/01/01(月) 19:46:21.62ID:/faDXLzU
実行できない仕様記述言語の方が初心者に優しい
バイナリとかメモリとか気にする必要がないことが明確になる

実行できる機能を追加したら言語の評価が下がる
もちろん実質的な価値は上がるが、評価と実質が乖離するのは初心者には難しい
524デフォルトの名無しさん
2018/01/01(月) 20:16:05.10ID:yhABuCD4
実際Haskell 使ってて、タイミング気にしないといけない状況って何よ?
525デフォルトの名無しさん
2018/01/01(月) 21:49:32.98ID:/aa2tlFp
Haskell最大の謎仕様は「Num」だと思う
526デフォルトの名無しさん
2018/01/01(月) 22:38:37.64ID:sFrCkJSv
>>524
メモリが無限にあるならサンクがどれだけ作られても気にならないけど
実際は違うから適当なタイミングでサンクを潰す必要がある
527デフォルトの名無しさん
2018/01/01(月) 22:59:07.73ID:yhABuCD4
それもそうか。たしかに妙なところで妙な泥臭さが顔を出すな
528デフォルトの名無しさん
2018/01/02(火) 10:01:13.65ID:EAVq+O5u
>>468
読んでみて面白いと思ったけど、「動作する仕様書」ってのがいまいちイメージ出来ない。
参考になるURLとか知ってる人居ますか?
529デフォルトの名無しさん
2018/01/02(火) 11:37:28.22ID:rfQ6c9kP
>>525
同時にそれはオブジェクト指向の謎でもある
実数と整数の間に "is a" 関係は存在しないのか?
530デフォルトの名無しさん
2018/01/02(火) 12:30:30.49ID:oC5uWYs9
>>515
動的言語じゃん。
まあそれでもどう解釈されるかとか、これじゃinline展開されんな、とかはJavascriptでも考えるが。

>>518みたいにしない人はしなくても良いようなプログラム書いてるんだろうし、無駄だよ、この議論は。
531デフォルトの名無しさん
2018/01/02(火) 14:12:57.96ID:AAYv0JXv
>>528
古いけどこれとか参考にならないかな?

「分析・設計ツールとしてのSmalltalk」
http://web.archive.org/web/20131025032224/http://www.sra.co.jp/public/doc/GSletter/vol.26/smalltalk/smalltalk.pdf
532デフォルトの名無しさん
2018/01/02(火) 22:00:37.83ID:EAVq+O5u
>>531
サンクス、読んでみる。
533デフォルトの名無しさん
2018/01/03(水) 00:13:36.77ID:BD5Fg5Uh
本当に必要なのは、コンパイルの通る仕様書じゃないか?
動作する仕様書です!なんて出して、「それで動くんだからいいじゃん、はい保守」
なんて言われた日にゃ地獄の始まりだろ
534デフォルトの名無しさん
2018/01/03(水) 00:23:34.96ID:36t783to
Smalltalkerにはソレで十分なんですよ
なんとなく動けばok。エラー?握り潰せば?の世界だから
535デフォルトの名無しさん
2018/01/03(水) 00:35:45.41ID:BQWr3hBa
動作はするけどなんだか速度が遅いから最新機種の方がいいじゃん、はい購入
これがマネタイズだ
536デフォルトの名無しさん
2018/01/03(水) 07:32:07.83ID:jID8SJMc
>>533
あまりに動的性を追求しすぎててインタープリタ言語と勘違いされがちだけど
Smalltalkも(VMで動くJavaがそうであると言える程度には)コンパイラ言語なので
「動く」以上はコンパイルは「通っている」んだな、一応w

もちろん533が言いたいのはそういうことじゃないことは分かっているんで、マジレスすると
型システムのチェック(のことだよね?)を通すのにコスト(主に人員や時間)をかけられる程度に
急ぎでない(つまり「仕様が固まっている」)のならSORABITOとかで求められる
「必要なら本番投入も可能な動く仕様書」的側面はきっとあまり役には立たないだろうね
537デフォルトの名無しさん
2018/01/03(水) 08:02:43.84ID:jID8SJMc
>>533,534
こっちにもマジレスすると、実際そのとおりで
Smalltalkの設計者ら(アラン・ケイだけど)は
ひどいと「地獄」とまで形容されるそれ、つまり本番投入後の要求変更を必要不可避なものとして捉え
天国とまでいかずとも他言語には難しい後からの大胆な仕様変更をも支援できる動的性を
この処理系(環境を含む)に付与することに腐心し、それはある程度奏功している

「ソフトウェア工学」は矛盾語法か? -- アラン・ケイ
http://metatoys.org/oxymoron/oxymoron.html

Smalltalkの底を流れる設計思想 -- ダン・インガルス
http://web.archive.org/web/20041016084842/http:/marimpod.homeip.net/chomswiki/24

TDDの「ひどい仮実装でもとりあえずグリーンにするのを優先し、そこから重複を除去(リファクタリング)」
というとんでもない発想が生まれ得たのもSmalltalkのこの大胆な変更への追随力があったから
538デフォルトの名無しさん
2018/01/03(水) 10:49:31.30ID:JTHdffOK
>>533
きみには孫請けSIer根性が染み付いているようだねッ 彡⭐
539デフォルトの名無しさん
2018/01/03(水) 13:41:42.24ID:0ljbskXf
Pythonよりすっきり書ける言語がないという事実
540デフォルトの名無しさん
2018/01/03(水) 15:29:23.56ID:BD5Fg5Uh
>>539
lamdaが糞
finalがない
privateがない

はい完全究極ロンパリオン・ギガアタックEx
541デフォルトの名無しさん
2018/01/03(水) 15:36:20.12ID:0ljbskXf
>>540
そんなゴミクソ仕様の塊よりすっきり書ける言語がないという事実
542デフォルトの名無しさん
2018/01/03(水) 16:16:41.94ID:1ORngv96
>>540
×lamda
○lambda

>>540
Y コンビネータをすら記述できない lambda 仕様が特にコンパイル言語にも氾濫しているが、いったい何の役に立つんだ?老害避けのつもりか?
543デフォルトの名無しさん
2018/01/03(水) 16:25:14.58ID:BD5Fg5Uh
>>541
おまえのいうすっきりって何だよ
俺はTypeScriptですっきり書けてるが?
544デフォルトの名無しさん
2018/01/03(水) 16:44:08.47ID:CJ7nUX51
Zコンビネータじゃ駄目なんか?
545デフォルトの名無しさん
2018/01/03(水) 17:44:23.37ID:BD5Fg5Uh
俺なんかXenoExtraUltraGigaJetHyperUltraMiracleSuperコンピータだが文句あるか?
546デフォルトの名無しさん
2018/01/03(水) 18:27:49.94ID:1ORngv96
>>545
君の芸風とても好きだ!
>UltraGigaJetHyper**Ultra**
547デフォルトの名無しさん
2018/01/03(水) 18:51:02.03ID:ykBugU3C
またTypeScriptか。
いい加減ちょっと落ち着いてほしいな、推しの人は。
言語仕様はごった煮、出来上がるのは微妙に汚いJavaScript。
async awaitをネイティブのasyncじゃなくてトランスパイルした結果なんて変数のライフタイム無茶苦茶長くなるし。
言語としてのTypeScriptはいろんな意味で何でもできて良いと思うけど、今の実装としてのTypeScriptって微妙だと思うんだが。
単に書く時にスッキリかけても、ちょっと違う気がする。
548デフォルトの名無しさん
2018/01/03(水) 18:56:17.97ID:Dz+CQN9J
>>547
普通にコンパイルオプションの問題だし。
outputをes2017に指定すればいいよ
549デフォルトの名無しさん
2018/01/03(水) 19:05:06.06ID:ykBugU3C
>>548
そうじゃなくて。だからネイティブのじゃなくてトランスパイルさせたらって前提付けたんだけどな。
なんかあそこまでやるなら、JSとの相互運用諦めてもっと汚いコード出せば良いのに、と思ってしまうんよ。
550デフォルトの名無しさん
2018/01/03(水) 19:38:05.02ID:Dz+CQN9J
>>549
TypeScriptのトランスパイルコードを直接いじることは無いからなぁ。
なんでそんな状況になったの?
551デフォルトの名無しさん
2018/01/03(水) 20:25:39.92ID:ykBugU3C
>>550
弄ることは無いが、あるべき姿になるようにTS側で書き分ける事はあるかな。

くっそ遅い関数がなんで遅いのかを調べにかかった時に、モヤモヤした覚えがある。
genericsとか、型ごとの関数をちゃんと作ってほしいけど、一つだったり。今違うかったらすまん。
その時は、これでJIT結果捨てる事になってる…って気づいて、素直に沢山関数を作った。

コンパイラと言うならもう少しVMの仕様を鑑みても良いと思う。
552デフォルトの名無しさん
2018/01/03(水) 20:47:23.87ID:ojwn4PN+
特定のブラウザの現在のバージョンに最適化しろってこと?
お前それ自分がコンパイラ作る立場ならやろうと思うか?
やろうと思うならお前がコード書いてプルリク出してやればいい
確実にリジェクトされるだろうけどな
553デフォルトの名無しさん
2018/01/04(木) 00:44:42.33ID:nu/rOVYa
wasmが普通になったら状況変わるかね?
554デフォルトの名無しさん
2018/01/04(木) 01:19:26.61ID:j8WFIzPh
wasmが吐き出すjavascript気になるマンが出てくるに100000000000000ジンバブエドル
555デフォルトの名無しさん
2018/01/04(木) 02:20:20.25ID:Gm3YPo14
気にしないでいいって保証が欲しいのはよくわかるよ。
556デフォルトの名無しさん
2018/01/04(木) 10:28:15.71ID:eEA4RdWc
確かにTypeScriptは実際に書いてるとめちゃくちゃ次世代感あるが、
それはReactとかReduxとかのメジャーを作ってる奴らが関数型厨だからで、
次世代なのは、言語というよりはライブラリという感じがする。
557デフォルトの名無しさん
2018/01/04(木) 11:33:00.27ID:j8WFIzPh
PHP書かされてたときは辺境の島国で首輪に繋がれて石器で木の実取ってる気分になったわ
558デフォルトの名無しさん
2018/01/04(木) 11:37:57.37ID:dTmScpvt
>>552
特定のブラウザじゃなくて。そういう発想がセンス無いの。
複数の型で同じ関数を呼ぶとかストールするのはほとんど当たり前と言っても過言じゃなかったりするけど、それを「特定のブラウザの問題でしょ?それよりこんな新しい機能ついたよ」って毎回押し切ってくるのがTypeScript。
AssemblyScriptなんかは好きだけどね。
TS使うプロジェクトにはたまにプルリク送ってるけど、最終的にはTSっぽくないTSのコードになるよ。
559デフォルトの名無しさん
2018/01/04(木) 13:22:41.64ID:h9oQFOEG
>>558
そんなもんJITがやるべきことでしょ
560デフォルトの名無しさん
2018/01/04(木) 13:34:10.72ID:dTmScpvt
>>559
だから、特定のどうの、ではなくて、概ね大半の処理系でJITに乗るようなコンパイル結果出せって言ってるんだけど?
無理した小奇麗なJSっぽいコード出さなくても良いじゃん、って。
V8だと何バイト以下なら関数はインライン化される、とか細かい癖も確かにあるけど、だからこそ小奇麗で無くていいと思うんだが。
561デフォルトの名無しさん
2018/01/04(木) 13:38:00.17ID:dTmScpvt
もしかして、今TypeScriptでジェネリクス使っても、JITは結果破棄しないのかな?
そうならごめん。
562デフォルトの名無しさん
2018/01/04(木) 13:55:58.71ID:lDvme0sw
要はTypeScriptの実装が良くないということなんだろうけど、使う側からしたら
パフォーマンスやフットプリントが許容範囲を超えない限りは気にしないかな。
563デフォルトの名無しさん
2018/01/04(木) 15:47:07.60ID:dTmScpvt
実装が中途半端、かな。JSに引きずられすぎだと思う。
Cで言うとexternしない関数が関数としての形を保たなくても良いのと同じ様に、exportしてないものを似たようなJSのコードにする必要は(もはや)無いと思うんよね。
許容範囲次第なのは確かだけど。
言語としては新しくて良いと思うが、処理系として微妙ってのはそういう所。
564デフォルトの名無しさん
2018/01/04(木) 19:02:23.91ID:h9oQFOEG
>>562
ジェネリックをソースレベルで展開なんかしたらフットプリントが増えて
JavaScriptで一般的に言われるパフォーマンス(つまりロード時間)は落ちるよ
565デフォルトの名無しさん
2018/01/04(木) 19:07:31.76ID:a9q0dcb4
おまえらなんかよりずっと賢い連中が作ってるんだから
問題なんかあるわけねえだろ
バカか?オレオレFW作りたがり坊やのペチプァなのか?
566デフォルトの名無しさん
2018/01/04(木) 19:52:37.93ID:c10UOky1
>>564
ブラウザだけで動かしたい訳でもないし、起動時のパースのフットプリントをどうこう言うのであれば、今のNodeのnode_modules自体、既に無茶苦茶でしょ。
それも、最初に一発パースするからそうなるんであって、bootstrapとその後に分ければいいんでないの?

>>565
ペチプァ言いたいだけだろうが、ペチプァ連呼して悦に入って問題を理解できないやつにゴタゴタ言われたくはない。
567デフォルトの名無しさん
2018/01/04(木) 20:16:17.73ID:nTAtbfT4
ID:dTmScpvt言ってる事そんなにわけわからんくもないのになんでこんな事になってんだ?
568デフォルトの名無しさん
2018/01/04(木) 20:29:50.34ID:UC9+Q2Sj
正義を徹底するより中途半端の方がいいと思ってる奴はいっぱいいるから
569デフォルトの名無しさん
2018/01/04(木) 20:47:32.62ID:lDvme0sw
>>564
トランスパイラである以上多かれ少なかれそういうオーバーヘッドは避けられるものじゃないと
思うけど、問題はそこでTypeScriptがBabel等と比較して出来が良くないのかどうかだね。
570デフォルトの名無しさん
2018/01/04(木) 20:49:37.08ID:h9oQFOEG
過剰な最適化は開発のスピードを落とすしバグも増やすからな
571デフォルトの名無しさん
2018/01/04(木) 21:19:25.60ID:SwPhpZjo
いいか、喚くだけなら頭がPoorのペチPoorでもできるんだよ
わかるか?わからんやつはペチプァだけだが
572デフォルトの名無しさん
2018/01/04(木) 21:23:18.84ID:typzK5sH
ちょっと笑った
573デフォルトの名無しさん
2018/01/04(木) 22:58:20.94ID:ZFKdQPiM
ペチPoorは良いな。俺も使わせてもらおう
574デフォルトの名無しさん
2018/01/04(木) 23:59:42.42ID:/Un6+mBC
ペチPoohでもいいぞ
575デフォルトの名無しさん
2018/01/05(金) 04:33:36.96ID:Lhuo9IQi
>>571
おまえは気が狂っている。
一刻も早く病院へ行け。
576デフォルトの名無しさん
2018/01/05(金) 07:47:15.22ID:QF8nYsKX
>>575
577デフォルトの名無しさん
2018/01/05(金) 10:36:04.85ID:OSZVMsU9
>>575
おっ 頭がPoorのペチPoorか?
578デフォルトの名無しさん
2018/01/05(金) 12:08:39.39ID:2QFGEILP
ペチPoorはおつむもおちんぎんもPoorでかわいそうね
579デフォルトの名無しさん
2018/01/05(金) 12:50:08.59ID:WQychI9E
>>570
そろそろコンパイラと言うなら、最適化フェーズに入って欲しいわ。
ずーっと(確かに欲しいのはわかるが今でなくて良いだろうと言いたくなる)新機能つけ続けてるじゃん、
580デフォルトの名無しさん
2018/01/05(金) 13:38:22.06ID:rGChZwpO
>>578
やめたれw
581デフォルトの名無しさん
2018/01/05(金) 13:40:21.34ID:9YdInhdK
>>579
そろそろ課金するフェーズだろ
お金を払ったら悪口言っていいし、悪口言われたくないならお金稼ぐのをやめればいい
582デフォルトの名無しさん
2018/01/05(金) 14:12:44.72ID:WQychI9E
>>581
課金するフェーズはまあ別に妥当な値段なら買うよ、マジで。課金して良くなるならね。
VSより高いとなるとちょっと考えるけど。
自分でプルリクせえとなっても、suggestionの段階で同じ様なパフォーマンスのためにJSの形変える系の話は、みんな却下されてたはず。
要は皆>>568の様な形で、中途半端で良いと思ってて、どん詰まりはもっと先だろと楽観視してる。

もはや単なるリンタ。
583デフォルトの名無しさん
2018/01/05(金) 18:22:04.71ID:rGChZwpO
推測するな 計測せよ
って言葉知らんのか?
584デフォルトの名無しさん
2018/01/05(金) 18:43:32.98ID:/3vfwTze
知らん
585デフォルトの名無しさん
2018/01/05(金) 18:44:03.04ID:/3vfwTze
考えるな、感じろ。なら知ってる。
586デフォルトの名無しさん
2018/01/05(金) 18:47:50.38ID:2QFGEILP
それ知らんのはガイジ
587デフォルトの名無しさん
2018/01/05(金) 20:49:35.32ID:WQychI9E
無意味に計測だけしても無駄でしょ。
推論からの計測で計測からの推論かと。
どこを計測するか考えてる時点で推測しとるって事だからね。
588デフォルトの名無しさん
2018/01/05(金) 21:06:34.87ID:Z2M9SnI/
>>582
そもそもTypeScriptは単なるリンタだろ
お前がプルリクを出すべきなのはTypeScriptではなくV8
589デフォルトの名無しさん
2018/01/05(金) 21:20:50.22ID:2QFGEILP
「推測するな 測定せよ」みたいないわゆる格言に対してそんなガキみたいな屁理屈捏ねられてもね……
590デフォルトの名無しさん
2018/01/05(金) 21:25:02.92ID:5kzCv3dH
TypeScriptをlint扱いは流石に草
591デフォルトの名無しさん
2018/01/05(金) 22:31:21.64ID:EMt1frzJ
推測も測定も両方しろよ。
592デフォルトの名無しさん
2018/01/05(金) 23:22:56.45ID:iSZmj121
もうPooHPでも書いてろよ
593デフォルトの名無しさん
2018/01/06(土) 14:22:11.98ID:pmlj07ym
>>588
違うらしいよ、信者様によると。
594デフォルトの名無しさん
2018/01/06(土) 14:24:10.80ID:pmlj07ym
>>589
意味を理解しない格言や誤謬を招かんとする格言の使い方には一言言いたくなるじゃん。
そう信じて計測だけする奴が可哀想だ。
595デフォルトの名無しさん
2018/01/06(土) 14:27:48.16ID:ul9KuZX2
どう考えてもV8にコミットするのが筋だわな
別にTS批判君が全ブラウザをやらなくても、効果的な改良なら他もすぐに追従するだろう
まさかJIT結果だのVMの仕様だのキリッが付きそうなレスしてるのにC++やネイティブコンパイル分からないとか言わないよね
596デフォルトの名無しさん
2018/01/06(土) 15:18:49.96ID:Zbelr2Bx
臭い奴がおるな
597デフォルトの名無しさん
2018/01/06(土) 16:25:24.67ID:vE17HoYT
wasmにGCが搭載された暁には
いくらでも頑張って欲しい
598デフォルトの名無しさん
2018/01/06(土) 16:48:12.08ID:pmlj07ym
>>595
いや違うだろ。
なんでTSのコンパイル結果がクソなのをV8が面倒見るべきかわからんが。
普通にコンパイラとして真面目にコンパイルすりゃいいのに、って話で、
トランスパイラならトランスパイラと名乗れば良いのに。
よくもまぁこういう擁護ができるなぁと思うわ。

V8や他のJSエンジンは、JavaScriptの処理系であって、TypeScriptの処理系じゃねえんだから。
それこそ、TypeScriptが吐き出した中途半端なJSに対するチューニングなんか必要ないだろ。
V8側のスタンスは「最初からJSで書きゃ良いだろ、asyncが欲しい?考えてやるよ」と機能の面では歩み寄ってきたじゃん。
そういう意味で、wasmに振って、ちゃんとコンパイルするAssemblyScriptはいい方向だと思うが、
tscの方向性は微妙としか言い切れんと思う。

TS自体がなんで未だにJSに引きずられる必要があるのかわからんが、皆がそれで良しとする理由は「中途半端で良いから」なの?
599デフォルトの名無しさん
2018/01/06(土) 16:51:40.90ID:pmlj07ym
コンパイルした時点で型が消えるのに、JITに引数の型に対して何種類か載せ続けるべき関数(ジェネリクスだった関数)なのか、それともany受けてるただの関数なんか、それこそプロファイル取ること自体無駄じゃん。
最初から型ごとに吐きゃ良いのにって思っちゃいかんのか?
600デフォルトの名無しさん
2018/01/06(土) 17:16:11.92ID:vE17HoYT
名前の通りbetterJS以上の認識は無いな
少なくともtscだろうとtstだろうと単なる名前に拘る奴は居ないと思う

>いかんのか?
いいと思うよ
601デフォルトの名無しさん
2018/01/06(土) 18:35:08.26ID:bW7JkyTC
>>598
実行時に型ごとにJITを分けるのって割と一般的な最適化手法だろ
型ごとにjsを生成すると言っても結局それらはみんな同じコードであって型情報なんて残らないんだから、
それが適切に最適化されるかどうかなんて処理系次第だろ
jsに型アノテーションを導入しろというなら理解できるが、あんたの主張は無茶な言いがかりにしか見えないな
602デフォルトの名無しさん
2018/01/06(土) 18:41:14.50ID:bW7JkyTC
補足
最適化されるかは処理系次第、といったのは、結局、型ごとにjs生成しようが
JITは実行時の型を利用して最適化することには変わりないんだから、本質的には大した違いはないという意図だぞ
ヘボいと言うなら複数の型に適切に対応できないJITがヘボいんだよ
603デフォルトの名無しさん
2018/01/06(土) 18:58:45.67ID:wyffhFco
>>578
主治医の先生にもそう言ったのか?
ちゃんと薬のめよ。
604デフォルトの名無しさん
2018/01/06(土) 20:51:20.91ID:jSg6g7bL
>>603
PooHPoorさん・・・w
605デフォルトの名無しさん
2018/01/07(日) 09:04:05.50ID:WSf4F++k
>>601
型ごとに生成すりゃJIT破棄しないだろ。
ちょっとは挙動わかって言いがかりつけてんの?
606デフォルトの名無しさん
2018/01/07(日) 09:48:25.87ID:X58Odkk6
>>605
まともな実装なら型が数種類あるくらいならJIT破棄しないよ
607デフォルトの名無しさん
2018/01/07(日) 12:37:05.15ID:3N9WbZKm
妄想でごちゃごちゃ言ってないで検証コード載せなさいよ
どっちが馬鹿かはっきりするでしょ
608デフォルトの名無しさん
2018/01/07(日) 13:26:29.62ID:WSf4F++k
>>606
あ、そうなんだ。それは良い風に変わってるんだな。
俺が見たときはほとんど整数、たまにエラーを表すオブジェクトのときに、毎回オブジェクトの時にJIT捨ててたけど、古いといえば古い話だし。
まぁプロファイル次第なんだろうな。

>>607
どっちが馬鹿とかじゃなかろうが。
そういう発想がマウンティングとかいう発言に繋がってんの?
609デフォルトの名無しさん
2018/01/07(日) 13:30:35.11ID:+RrxdpdM
マウンティングで検索したら誰も言ってなくてワロタ
610デフォルトの名無しさん
2018/01/07(日) 13:47:09.28ID:WSf4F++k
>>609
ホントだな。
過去スレの印象で言ってるもんだと思ってたわ。
611デフォルトの名無しさん
2018/01/07(日) 13:59:18.12ID:vkdahwds
まあ新しい言語やるやつの動機の7割はマウント取りたいで合ってるよ。
612デフォルトの名無しさん
2018/01/07(日) 14:07:56.16ID:tEoGaVYL
x >= y または x < y などと変数でごちゃごちゃ書いてないで定数にすればわかる
変数は妄想だ
妄想するな計測せよ
613デフォルトの名無しさん
2018/01/07(日) 14:37:44.54ID:8Eqg8PLM
2 >= 1
614デフォルトの名無しさん
2018/01/07(日) 15:41:02.61ID:WSf4F++k
変な荒れかたするもんだな。
615デフォルトの名無しさん
2018/01/07(日) 19:02:21.52ID:KS5M1w7d
まあ個人の体験談みたいなものを根拠に主張したって賛同はされんわな
コードが出てこないと改善の有用性も見えないし抽象的な話で止まってしまうよ
616デフォルトの名無しさん
2018/01/07(日) 21:38:26.68ID:BUQO0mIV
そーだな、ぜひともHaskellで書いた次世代言語らしいサンプルが見たいもんだ。
他の言語は出たのにな。
617デフォルトの名無しさん
2018/01/07(日) 21:51:35.49ID:tEoGaVYL
HaskellとKotlinとTypeScriptのサンプルが出なかった時の話だろうか
618デフォルトの名無しさん
2018/01/07(日) 21:58:24.02ID:Oi0ICvXY
サンプルコードが出るとダメな言語は一目瞭然だったりするからな
Sから始まる言語とか
619デフォルトの名無しさん
2018/01/07(日) 22:23:27.72ID:tEoGaVYL
ダメな言語の批判ばかりだよな
よかった言語の名前は出せない空気になってる
620デフォルトの名無しさん
2018/01/07(日) 22:26:14.15ID:WFi36oCb
5chは初めてか
621デフォルトの名無しさん
2018/01/07(日) 22:52:11.69ID:+RrxdpdM
そいつは例のあDHDだろう。Haskellユーザーがいないこのスレで触ったこともないHaskellを叩き続けるガイジだから触れない方が良い
622デフォルトの名無しさん
2018/01/07(日) 22:59:52.18ID:L6/hrCeD
文句なしの打っ千切り糞言語賞ナンバーワンはPから始まるあの言語だよなぁ
623デフォルトの名無しさん
2018/01/07(日) 23:22:37.67ID:+RrxdpdM
PooHPoorの話はおいといて、好きな言語の話をするのは良いな
624デフォルトの名無しさん
2018/01/07(日) 23:53:28.58ID:L6/hrCeD
ブレストの「批判をするな」がいかに大切かわかる空気感だね
625デフォルトの名無しさん
2018/01/08(月) 00:10:42.98ID:vJNmJMtg
ブレストは頭の中だけで行動が伴わないので批判しなくていい
厳しく批判されるのは実行に移そうとした時
626デフォルトの名無しさん
2018/01/08(月) 02:24:37.62ID:+UJAnfcM
マンセーしたきゃ勝手にすりゃいいじゃん。
現実で文句言われるよりここで言われる方がマシだろ。
627デフォルトの名無しさん
2018/01/08(月) 10:50:08.35ID:si2lRCsu
現実でニコニコ
ネットで陰口

美しい国ジャップランド土人村
628デフォルトの名無しさん
2018/01/08(月) 13:31:41.59ID:ojmRQEAO
ネットは筆記試験のようなものだよ
筆記試験もネットと同じような批判をされて面接重視になった
629デフォルトの名無しさん
2018/01/08(月) 14:51:35.25ID:isNCSjM0
>>627
おま環だろ?
630デフォルトの名無しさん
2018/01/08(月) 18:13:08.29ID:e0/LavPD
おま国だろ
631デフォルトの名無しさん
2018/01/08(月) 20:27:12.48ID:TtlW0DEg
Elmってどうなんだろ。インスパイアされたhyperappとかいうのがあるけど。
新しいjsライブラリは結構TypeScriptサポートしていて嬉しい
632デフォルトの名無しさん
2018/01/08(月) 22:54:56.01ID:e0/LavPD
全てのJSプロジェクトはTypeScriptにしろ

棒案件で立ち上げ時にクソバカの老害オッサンがJSでコード書き始めたせいで
どんだけ苦労したか
633デフォルトの名無しさん
2018/01/08(月) 23:52:24.85ID:KF2MtXIW
TypeScriptは認めるがBabelはほんとやめてほしい
わざわざビルドを面倒にするだけの見返りはどう考えても無い
634デフォルトの名無しさん
2018/01/09(火) 00:49:10.43ID:Eu2F6gCU
Babelないとjsxも書けないし新しい文法も使えないぞ
糞まみれの生JSに戻る気か?
635デフォルトの名無しさん
2018/01/09(火) 00:53:34.69ID:mcq0XcNK
下痢便が軟便になる程度だろ
636デフォルトの名無しさん
2018/01/09(火) 17:04:26.38ID:vMJYxq5i
TypeScriptもいずれノーマルjsに吸収される
637デフォルトの名無しさん
2018/01/09(火) 17:11:58.74ID:MVMyukKY
>>636
それ理想的だね。型を最初からサポートしたほうが良い。
typescriptを中心に据えてオプションで型無しをサポートする方針にしたほうが処理性能向上に寄与する気がする。
あとnumber型を廃止して
638デフォルトの名無しさん
2018/01/09(火) 18:53:23.55ID:dlYDsmgP
>>621
もう叩いてないぞ。
割と興味出てきたのに、誰も、ここが良い!を言わないからつまんねえのって思ってるだけだよ。
スレタイに入れたいだけじゃねえの?って。

正直、使ってみた感じは悪くないけど、この便利な言語でこういう事すると楽かな?みたいなのがあんまり思いつかんので、良いサンプルは見たいな。
GoのGoroutineやchanの気軽さとか、erlangのプロセスの考え方みたいなのとか。
639デフォルトの名無しさん
2018/01/09(火) 18:54:28.23ID:5zS3VIoD
>>621
スレタイに入れた奴が居るはずだろw
640デフォルトの名無しさん
2018/01/09(火) 19:50:56.76ID:MVMyukKY
Haskell使った有名なアプリってなんかあるの?
641デフォルトの名無しさん
2018/01/09(火) 19:55:51.91ID:WTFA4htZ
xmonad
642デフォルトの名無しさん
2018/01/09(火) 20:14:49.53ID:EVhg342m
monadius
643デフォルトの名無しさん
2018/01/09(火) 21:09:47.45ID:Dcv/I53t
これとか?
https://code.facebook.com/posts/745068642270222/fighting-spam-with-haskell/
644デフォルトの名無しさん
2018/01/09(火) 21:25:06.32ID:p1Q0x2y+
データフィルタ的に使うのなら確かにいいかもな。
645デフォルトの名無しさん
2018/01/09(火) 23:27:20.37ID:MVMyukKY
>>641
linuxを、デスクトップ用途で使うならいいけどなぁ。
wafとかで革新的なやつとか無いのかね?
646デフォルトの名無しさん
2018/01/13(土) 21:15:44.50ID:c6t40eQY
>>640
Pandoc
647デフォルトの名無しさん
2018/01/15(月) 20:41:07.18ID:MfcsBHji
関数型プログラミングの流行も落ち着いた感じかね?
648デフォルトの名無しさん
2018/01/15(月) 21:19:36.73ID:+I1W8YzH
さいなー
649デフォルトの名無しさん
2018/01/15(月) 23:18:02.53ID:GwTCehVf
落ち着いたも何も、みんな身につけ終わっただけだろ
650デフォルトの名無しさん
2018/01/16(火) 13:33:12.35ID:9RwiafIQ
せやな
651デフォルトの名無しさん
2018/01/16(火) 22:37:54.03ID:rkvgxjqz
ビットコインの流行「奴は流行の中で最弱」
652デフォルトの名無しさん
2018/01/16(火) 23:05:29.36ID:VmDdoWU7
関数型の後Pythonに戻ったら、それまでとも違うけど関数型でもないコードになった
653デフォルトの名無しさん
2018/01/17(水) 10:07:53.77ID:9HqucL9D
pythyonって関数型書きやすい?
654デフォルトの名無しさん
2018/01/17(水) 10:31:26.77ID:I48MtSJA
書きにくい
655デフォルトの名無しさん
2018/01/17(水) 10:57:56.45ID:9HqucL9D
lambdaが書きづらいからとか?
やっぱ関数型プログラミングはRubyのほうが強いのか
656デフォルトの名無しさん
2018/01/17(水) 11:09:34.12ID:I48MtSJA
Rubyと比べてどうかは知らんけど、Pythonのデータ構造や文法ならいわゆるPythonicな書き方が書きやすく読みやすいので関数型特化する必要がないので、関数型には書きにくい
657デフォルトの名無しさん
2018/01/17(水) 11:22:30.71ID:dt2TzLE6
なぜ関数型とRubyが、目的と手段なんですか
理想主義と現実主義ではだめなんですか
658デフォルトの名無しさん
2018/01/17(水) 11:24:00.75ID:VP9/FI9R
関数型って何をさすのか
よくそれだけで会話が通じるなと思うわ
659デフォルトの名無しさん
2018/01/17(水) 11:51:37.31ID:dt2TzLE6
言語の標本集合をさすんじゃないですか
現実の言語にはばらつきがありますが、平均すれば理論値に収束する筈だとか
660デフォルトの名無しさん
2018/01/17(水) 13:21:41.39ID:VP9/FI9R
標本がどうのこうのじゃなくて
会話噛み合ってないだろってことだよ
頭でっかちさん
661デフォルトの名無しさん
2018/01/17(水) 13:35:55.43ID:dt2TzLE6
そうやって悪態をつくのも会話ができない人の典型
662デフォルトの名無しさん
2018/01/17(水) 13:57:51.64ID:PYB4eJ3B
rubyのfirst classですらないlambdaだって書きやすくはねーだろ
663デフォルトの名無しさん
2018/01/17(水) 18:38:24.63ID:XaYj/w5S
>>658
ほんとにな。
ラムダ一つとったって型なし、型あり
型にしたって、型に依存する型、型に依存する項(関数など)、項に依存する型とか色々あるのに。
664デフォルトの名無しさん
2018/01/17(水) 20:11:35.06ID:ZAXr3Ump
PythonicとかPythonistaとか、改めて見るとすごい呼称だ。
665デフォルトの名無しさん
2018/01/17(水) 21:11:15.44ID:zdlnY+SA
>>653
書きにくいから、Python の公式文書では lambda で書いたコードを
手続き型の for ループへ書き換えることを推奨している

https://docs.python.jp/3/howto/functional.html
666デフォルトの名無しさん
2018/01/17(水) 21:34:21.77ID:zdlnY+SA
>>656
あれれ、日本国内ではそういう認識が浸透してるの?

世界的には Python の lambda が欠陥であることは広く知られていて、
改善に向けた議論も重ねられたけど、結局、作者のGuido氏が
「解けないパズル(unsolvable puzzle)」と匙を投げたという残念な
結論のまま現在に至っているという共通認識があります

http://2chb.net/r/tech/1415419907/197/

やっぱり日本在住の Pythonista がガラパゴスなのは昔から同じですね

http://mevius.2ch.net/test/read.cgi/tech/1345123070/70-71/
667デフォルトの名無しさん
2018/01/17(水) 22:01:34.45ID:jFkmgXk5
python のラムダの使い道ってほとんどがソートに渡す比較関数くらいだと思う。
668デフォルトの名無しさん
2018/01/17(水) 22:47:35.07ID:I48MtSJA
世界的な認識のソースでも貼ってそうな場所にあるリンクが2chの別スレへのリンクで困惑している
669デフォルトの名無しさん
2018/01/18(木) 05:27:53.26ID:zo82h2qj
Pythonあまり知らんけど、上のリンク見てて思ったのは、

1. 自分で高階関数を作れない(ラムダ式が利用できる関数が少ないと書いてある)
2. where節みたいなスコープの限定されたローカルな書き捨ての関数を用意する文法がない(読みにくいでしょ?とか書いてある)

この辺の縛りがあるからでないかい?
670デフォルトの名無しさん
2018/01/18(木) 09:22:04.51ID:AIUmpkCu
ごめん、>>669は寝ぼけて適当なこと書いたぽいから、無視しといて。
671デフォルトの名無しさん
2018/01/18(木) 21:25:08.77ID:oG29giIx
関数型っのがどういう定義かは分からないけれど、
HaskellとPythonを比べると、パターンマッチが
なくて再帰が書きにくいと感じたり、
基本破壊的だから、わざわざ非破壊で書くのが
めんどくさいと感じる。

内包表記は似ていて良いかな。
672デフォルトの名無しさん
2018/01/19(金) 19:12:49.43ID:ih0w0grk
Schemeのマクロ定義でパターンマッチを使えるがすごい不人気だったよ
おそらくパターンマッチのアルゴリズムが透けて見えないと人気出ないよ
673デフォルトの名無しさん
2018/01/20(土) 08:12:20.84ID:hxs4OOGh
うちのプログラマは大半がコトリンに移ったのでわしらラストを使うことにした
674デフォルトの名無しさん
2018/01/20(土) 15:07:10.20ID:TIRmwaq4
イムータムルのない言語は全て糞
675デフォルトの名無しさん
2018/01/20(土) 16:54:37.17ID:TgcSeHcI
関数型言語のパターンマッチって理論的な裏付けってあるんだろうか
676デフォルトの名無しさん
2018/01/20(土) 17:28:38.29ID:JZVVUERo
理論的てのが分からんけど、例えばリストを引数にとる関数なら、
空リストとSuccの場合を定義しとけば、帰納的に任意のリストについての適用結果が求められる、
とかそういうの?
677デフォルトの名無しさん
2018/01/20(土) 18:09:55.87ID:grrE5KFF
評価順序とかモチっと低いレイヤーでの動作規定ってことでないの?
ABIレベルでのさ。
678デフォルトの名無しさん
2018/01/20(土) 18:18:48.11ID:JZVVUERo
もしかして、あ氏?
だとしたら、お久しぶりです。
679デフォルトの名無しさん
2018/01/20(土) 20:48:41.14ID:I76mD3dR
>>676
そうそうそういうの
関数型ってって原理的にはあらゆるものが原始的な計算原理に還元できるものって理解してんだけど
パターンマッチはそういう裏付けあるのかなって疑問
680デフォルトの名無しさん
2018/01/20(土) 20:52:07.08ID:4frS9VE4
>>679
単なる場合分けだから裏付けもクソもない
681デフォルトの名無しさん
2018/01/20(土) 21:02:06.68ID:4frS9VE4
補足
パターンマッチは場合分け、つまり条件分岐そのものであり、
通常はそれ自体が原始的な計算原理の一つとして定義されるってことだぞ
だから裏付けなんぞ必要ない
682デフォルトの名無しさん
2018/01/20(土) 21:09:03.16ID:zaN+pP6E
学術的なことは分からないけども、静的型のパターンマッチは網羅性を
コンパイル時にチェックしてくれることが多くて
それが凄くありがたい

動的型言語にパターンマッチを持って来ても上手くいかないのは、
上のメリットが得られないからでは?
683デフォルトの名無しさん
2018/01/20(土) 21:28:06.72ID:L/NwSAXQ
>>679
上の人が書いてるように、ただの場合分けだと思う。ただ、>>682の人も書いてますが、本当に網羅しているか、を考えると理論が出てくる気がする。

定義域の型が、型コンストラクタで定義されてれば、そいつら全てについて場合分けする、
で、そいつらも型コンストラクタが入ってれば、、てのを続けていけば、全てについて網羅的な場合分けが出来る。

言葉だとわかりにくいですが、Agdaの動画を見るといいと思います。

定理を証明するのに、上の場合分けを考慮する必要があって(漏れたら困りますよね?)、
実際EmacsのAgdaモードだとそういうのを勝手に展開してくれるコマンドがあり、
ゲーム感覚で証明してく感じ。

で、カリーハワード対応を考えると、関数の定義も結局は同じで、実際同じコマンドを使って進めてくことになる。その流れでやれば、後で漏れてる云々は問題にならない。

こんな感じですかね?
684デフォルトの名無しさん
2018/01/20(土) 22:20:04.44ID:4frS9VE4
>>682
動的言語はデータクラスをほとんど使わず、辞書や配列を生で扱うことが多いからじゃないかな
型で分岐するケースがそもそも少ないし、when Some a みたいにパターンマッチと同時に要素を抽出したくても抽出の仕方が定義されていない
685デフォルトの名無しさん
2018/01/20(土) 23:10:12.11ID:fmAc02d6
>>678
俺は最近書いてないぞ。
つまらんからな。
686デフォルトの名無しさん
2018/01/21(日) 00:17:54.03ID:DgAEmkFM
パターンマッチで変数にバインドするところとかあれってどう還元できんですかね?
687デフォルトの名無しさん
2018/01/21(日) 01:01:46.61ID:PzzAcO+j
・頭文字が大文字ならコンストラクタ (引数0個以上)
・そうでなければ変数 (引数なし)
少なくともこの仕様を守れば動的言語でもパターンマッチできるよ
688デフォルトの名無しさん
2018/01/21(日) 01:02:49.35ID:2R9CDqfY
難しく考える必要はない
タプルは関連する複数の値をまとめて扱ってるだけ
レコードはタプルに型名というラベル値が付いただけ
型によるパターンマッチはその型名で条件分岐してるだけ
変数へのバインドはタプルの特定の要素の値にに別名を付けただけ
689デフォルトの名無しさん
2018/01/21(日) 01:37:10.13ID:kGWmn81W
つまり・・・どういうことだってばよ?
690デフォルトの名無しさん
2018/01/21(日) 06:13:50.88ID:pnNTWTyQ
>>682
動的言語どうこうではなく、オブジェクト指向の情報隠蔽とパターンマッチの相性が悪い。
アクセス制御をかいくぐってデータ構造にマッチさせるぐらいなら
オブジェクトを受け取ってからメソッド叩いたり条件分岐したほうがマシ。
691デフォルトの名無しさん
2018/01/21(日) 10:42:33.20ID:kGWmn81W
>>690
SuccessとFailをパターンマイッチングするんじゃなくて
class Success implements Resultと
class Fail implements Resultみたいにしろ
ってこと?
692デフォルトの名無しさん
2018/01/21(日) 11:06:54.37ID:I3ORKf0i
本物のオブジェクト指向はTrueクラスとFalseクラスを使う
Bool &True::ifTrue(Block f) {f(); return this;}
Bool &True::ifFalse(Block f) {return this;}
Bool &False::ifTrue(Block f) {return this;}
Bool &False::ifFalse(Block f) {f(); return this;}
693デフォルトの名無しさん
2018/01/21(日) 11:22:08.22ID:1jbGMztY
こういうときオブジェクト指向ってアホの自慰っぽいなと思う
694デフォルトの名無しさん
2018/01/21(日) 12:05:31.75ID:kGWmn81W
全てのif文を消し去るのです
695デフォルトの名無しさん
2018/01/21(日) 13:37:58.84ID:I3ORKf0i
その次の世代はtemplateを使いvirtualを消し去る
だからifが復活
696デフォルトの名無しさん
2018/01/21(日) 14:30:35.35ID:kGWmn81W
>>695
はいサイクリングマチカル複雑度増加
697デフォルトの名無しさん
2018/01/21(日) 23:54:04.18ID:U0xKcFDq
多次元配列と第一級関数をサポートしている静的言語ってなんかあったっけ?
698デフォルトの名無しさん
2018/01/22(月) 00:18:19.80ID:WYTiMnwL
C#
699デフォルトの名無しさん
2018/01/22(月) 00:18:46.23ID:7qCCLtD1
サポートするの定義が曖昧すぎる。
700デフォルトの名無しさん
2018/01/22(月) 00:28:37.30ID:+fzK3Dih
そうかC#があったか。ありがとナス��
701デフォルトの名無しさん
2018/01/24(水) 05:54:32.12ID:V1qhcEkf
>>697
それサポートしてない言語って何があるの?
702デフォルトの名無しさん
2018/01/24(水) 10:06:55.58ID:Gs9CrZMb
>>701
多次元配列サポートしてる言語なんて他にはFortran, R, Python, Julia, Racketくらいしか思いつかない
第一級関数は最近増えて来てるけどFortranみたいな古い言語はだいたいサポートしてない
703デフォルトの名無しさん
2018/01/24(水) 10:13:41.67ID:apJvYiuW
>>702
多次元配列サポートすると何の役に立つの?
704デフォルトの名無しさん
2018/01/24(水) 10:30:59.45ID:Gs9CrZMb
>>703
行列計算とか、その他数値的な解析がめちゃくちゃ書きやすくなる。
いわゆる数値解析や流行りの機械学習からゲーム開発まで、くまなくアルゴリズムが書きやすくなるぜ
705デフォルトの名無しさん
2018/01/24(水) 10:44:28.83ID:tYoa+WgF
サポートてのは、数値計算でよく使う引数が2の関数と、そういう関数とと中置演算子との間の糖衣構文が標準でオーバーロード気味に存在するってことですかね?
706702
2018/01/24(水) 10:59:06.24ID:J/V7RjN6
>>704
Racket挙げてるし中置演算子は重要度低いけど、よく使う関数はチューニングされたものを置いておいて欲しいな

Numpyだって標準ライブラリじゃないし、最悪標準ライブラリじゃなくてもいいけど、「数値計算するなら常識的に考えてこれ」という一つに定まっていてほしいな。
あるライブラリはEigenに依存しているが他のあるライブラリはublasに依存してるみたいなのはやめて欲しい
707702
2018/01/24(水) 10:59:37.34ID:J/V7RjN6
間違えた。
安価は>>705
708デフォルトの名無しさん
2018/01/24(水) 11:04:32.91ID:RrrJ1nlK
>>702
良かった。言語として普通にあるもんだと思ってたから
無いことを想像したこともなかった。
709デフォルトの名無しさん
2018/01/24(水) 11:09:12.83ID:J/V7RjN6
第一級関数のことかな?
多次元配列はレアだよ
710デフォルトの名無しさん
2018/01/24(水) 11:24:52.80ID:veFPPCA3
Pythonは多次元インデックスをオーバーロードできるけど組み込みの多次元配列は無い
PythonレベルのサポートでいいならKotlinも同等だね
711デフォルトの名無しさん
2018/01/24(水) 11:58:57.43ID:apJvYiuW
そういえばExcel方眼紙もある意味二次元をサポートしてるな
Excelの異常な人気の原因はそこか
712デフォルトの名無しさん
2018/01/24(水) 19:16:29.18ID:CULWU8L2
義務教育に向けて親もプログラミングやっときたい、どれが良い?
Pythonとかよく目にするけど、と聞かれた。

どう答える?
713デフォルトの名無しさん
2018/01/24(水) 19:30:37.89ID:D4W5cGwF
相手が挙げて来た言語のメリットを適当に言ってそのまま勧めれば良い
親が教えるためにやる言語なんて何でも良いし、違いがわかる頃には子供は卒業してる
選ぶのも面倒くさい
714デフォルトの名無しさん
2018/01/24(水) 19:50:08.15ID:N2tfbGLJ
>>712
まずはExcelのVLOOKUPを使いこなせるようになれ
次はVBAをやれ
でいいよ
教える側が何の役に立つのか分からないまま人に教えるなんて全く何の意味もない
715デフォルトの名無しさん
2018/01/24(水) 20:27:01.77ID:0VEJNLN9
>>712
教育ママに特定の言語やらせて認識を固定させんな、むしろ子供に害悪だろ
数学パズルでもやらせとけ
716デフォルトの名無しさん
2018/01/24(水) 20:29:15.40ID:c9tmIiAF
子供にはScratchをやらせることになるらしいから、親もScratchをやればいいじゃん
717 ◆QZaw55cn4c
2018/01/24(水) 20:39:13.05ID:m3QL6muE
>>712
やはり再帰的思考が勘所かと考えていますので、scheme をお勧めしようかと思っています
718デフォルトの名無しさん
2018/01/25(木) 01:24:29.68ID:mR4+Kf/H
>>712
Haskel
関数型を理解できないバカはプログラミングする資格も意味もなし
保守困難なウンコをひり出すだけのゴミは消えろ

と伝えてくれ
719デフォルトの名無しさん
2018/01/25(木) 02:32:13.16ID:uqKgsWDy
>>718
Haskellの綴りも正しく書けない池沼は文章を書く資格も意味もなし
無意味なウンコをひり出すだけのゴミは消えろ
720デフォルトの名無しさん
2018/01/25(木) 12:45:10.82ID:R+9hEl/X
>>711
excelは関数型言語だ、と言う人々も居るくらいだからな(笑)
721デフォルトの名無しさん
2018/01/25(木) 14:09:07.50ID:ArcwQAgj
Excelはビジュアルリアクティブプログラミング環境と言えばまあ間違ってはないんだけど
二次元配列以外の構造の扱いが難しすぎて、学習用にしてしまうと
他のデータ構造を学ぶ機会がないまま何でも二次元配列に落としこむ悪癖がついてしまいそうで
722デフォルトの名無しさん
2018/01/25(木) 14:31:25.81ID:NsBjyJ7C
>>721
人間が無理なく扱えるデータは二次元の表が限界なんだよ
考えてみろ
お前がよく使う構造体やクラスのリストや辞書は実質二次元の表だろ
オブジェクト指向では直接深く階層掘ったアクセスは嫌われるだろ?
なんだかんだ格好いい理屈を付けても、結局人間にはExcelのデータ構造が馴染むんだよ
723デフォルトの名無しさん
2018/01/25(木) 14:38:39.64ID:ArcwQAgj
>>722
再帰的 or 多相な構造どうすんのよ、ってのはまあExcelの用途では滅多にないとしても
単純に三次元配列が欲しい時もあるし
Sheet増やしだすと急に面倒くさくなるんだよなあ
724デフォルトの名無しさん
2018/01/25(木) 14:41:15.02ID:NsBjyJ7C
>>723
再帰なんか同じ表の行番号を持たせるだけだろ
725デフォルトの名無しさん
2018/01/25(木) 17:16:48.70ID:sWzOL5fe
3次元以上を汎用に使おうとするとSQLみたいだったり tensor flow だったり
かなりめんどくさいインターフェイスになるのはしゃーない。
726デフォルトの名無しさん
2018/01/25(木) 17:55:47.33ID:R+9hEl/X
まぁ、Haskellで作られたものより、Excelで作られたモノのほうが多いしな(笑)
純関数型(笑)
727デフォルトの名無しさん
2018/01/25(木) 20:01:29.48ID:0RuyxExF
>>719
このようなtypoを防ぐためにも強い型付けが必要なんだよ
728 ◆QZaw55cn4c
2018/01/25(木) 22:05:59.50ID:LX8HI+AO
>>727
変数宣言(型宣言ではない)だけでいいと思うが、それだけでもいいから、事前チェックを可能にしてほしいなあ
python のバイトコンパイル機能は変数名をチェックしてくれるのでしょうか?
729デフォルトの名無しさん
2018/01/25(木) 22:42:04.62ID:uaT/xfzY
flake8を使えば
730デフォルトの名無しさん
2018/01/26(金) 01:29:50.06ID:2fuI1BST
headerをincludeしてチェックする言語は簡単だけど
コンパイル済みのライブラリの中身を見て名前をチェックする言語は大変そうだ
コンパイル後も情報を全部残しておかないといけない
731デフォルトの名無しさん
2018/01/26(金) 16:21:27.98ID:Zz9xFin2
変数宣言を省略できる機能(スペルミスが検出できない)と、型付けは別だよね?
昔のFortranやBASICは変数はいきなり使っていいけど名前で型が決まる静的型だったし
732デフォルトの名無しさん
2018/01/26(金) 16:36:58.42ID:G7ZCkEjP
宣言がない変数は、省略ではなく他のファイルで宣言している可能性がある
そのファイルをincludeするか、全てのファイルを検索する必要がある
733デフォルトの名無しさん
2018/01/27(土) 13:04:44.52ID:7uBpZq93
レベル下がったなぁ
734デフォルトの名無しさん
2018/01/27(土) 14:31:34.34ID:fjEoblON
下がってから言っても遅いな
レベル高かった頃に、なにこれ高いって評価できる奴が勝つ
735デフォルトの名無しさん
2018/01/27(土) 14:40:54.49ID:7K+kXdeY
まぁ、その時から無駄なつっかかりしかできない奴ばっかだったし仕方ないんだろうな。
今更option explicitじみた話に戻るとは。
736デフォルトの名無しさん
2018/01/27(土) 22:13:06.80ID:RNgYnDaT
>>734
天井Lみたいなこと言うな
737デフォルトの名無しさん
2018/01/28(日) 15:51:11.09ID:CWAHXL7y
自分で書いたコードが三ヵ月後に読めないっていうやつは素人
プロは三ヵ月後の記憶喪失を織り込んでる
738デフォルトの名無しさん
2018/01/28(日) 23:40:40.83ID:ZERk9zo5
保守受注独占するために汚くするんやぞ
739デフォルトの名無しさん
2018/01/29(月) 22:16:09.55ID:4480+Jxl
そういう足を引っ張る人には保守受注の代わりに
ベーシックインカムをあげたらいいんじゃないかと言われている
足を引っ張る悪人より善良な怠け者の方がいい
740デフォルトの名無しさん
2018/01/30(火) 01:45:49.07ID:ZcZnTiUX
しょーもない理想論はいらんねん
こっちはきっちり世間様に仕事回してんねんで
頭の悪いガキは黙っとき
741デフォルトの名無しさん
2018/01/30(火) 01:47:45.52ID:ZcZnTiUX
ソースがきれい → オタクの自己満足
ソースがきたない → 工数取れて残業代も出る、みんなニッコリ

これが現実やで
742デフォルトの名無しさん
2018/01/30(火) 10:52:36.78ID:2Eamtv1n
そんなことしてるから他国の技術に駆逐されるんだよ。。
743デフォルトの名無しさん
2018/01/30(火) 14:43:26.40ID:xaKIrtPB
その理屈だと、まるで必要もない次世代言語で書くやつみたいだな。
汚いソース書くやつは。
744デフォルトの名無しさん
2018/01/31(水) 23:31:38.87ID:Rp2Mauf0
次世代言語で書くだけならいいんだよ
故意に汚くするとはいってないから、改善する可能性がある
故意とただの偶然とでは罪の重さが違う
745デフォルトの名無しさん
2018/02/01(木) 08:43:21.74ID:AVafL46K
故意にその言語で書いてる以上、もう偶然でもなんでもないだろ。

ちゃんとその言語のメリット、デメリット含めて布教してから使うべきだと思うが。
746デフォルトの名無しさん
2018/02/01(木) 11:05:23.20ID:niJJgdbA
ちゃんとする可能性があるならいい
その可能性をわざと排除するなら悪質
最初からそう言ってるんだろ
747デフォルトの名無しさん
2018/02/01(木) 13:10:20.37ID:Bj9uVLC2
まあ大体がカスな開発体制に問題があるところに
新しい言語なら問題解決できる!
とかめちゃくちゃな広告が出回って導入、失敗っつークソパターンがここ20,30年の間繰り返されてるわけだからな。
748デフォルトの名無しさん
2018/02/01(木) 15:37:35.21ID:suqSmKNo
Elm はどう?
ここ見てたら興味出てきた
https://nulab-inc.com/ja/blog/typetalk/elm-introduction-tutorial/
749デフォルトの名無しさん
2018/02/03(土) 02:04:53.95ID:VC8JN1NA
JSに依存するのはいいがGHCがな
もしもF#がGHCに依存していたら面倒臭いじゃないか
750デフォルトの名無しさん
2018/02/12(月) 17:15:27.49ID:NkUQn5xe
次世代言語Part8[Haskell Rust Kotlin TypeScript] 	YouTube動画>3本 ->画像>4枚
751デフォルトの名無しさん
2018/02/12(月) 17:16:33.56ID:NkUQn5xe
次世代言語Part8[Haskell Rust Kotlin TypeScript] 	YouTube動画>3本 ->画像>4枚
752デフォルトの名無しさん
2018/02/14(水) 20:27:03.68ID:SwEfqZxS
ASM.net
753デフォルトの名無しさん
2018/02/15(木) 23:40:47.93ID:yLr3787F
clojure やれよ?
754デフォルトの名無しさん
2018/02/16(金) 00:35:29.80ID:JK/MGoqE
気の科学 ★朝は気合いで起きる★ 雑学



755デフォルトの名無しさん
2018/02/18(日) 01:30:59.56ID:5P/pcqvC
>751
これ初めて見た
756デフォルトの名無しさん
2018/02/18(日) 15:38:35.68ID:CW1UlThv
なんかTypeScriptのジェネリクスがどんどん変態じみてきたんだけど、ジェネリクスってこういうもんなの?
これならgoに乗んなくていいなぁ
757デフォルトの名無しさん
2018/02/18(日) 15:51:20.83ID:AYB00j0e
>>756
欲求は際限なく広がって、そしてゴミの塊みたいな仕様になるもんだ。
ずっと前からTypeScriptは手段と目的をどっかで履き違えたと言ってたが、最近シャレになってない。

Goの割り切りは納得に値するよ。あったら便利なのは認めるけど。
Cppのtemplateみたいに、それだけでチューリング完全になってしまう前に、最初から入れない、やるならgenerateで別立てで勝手にやれと言う割り切りしたのは英断だと思う。
758デフォルトの名無しさん
2018/02/18(日) 17:25:12.30ID:CW1UlThv
>>757
ジェネリクス関連のエラーメッセージは本当に意味がわかんないよね。
ユーザー視点ではimmutable.jsとかでも補完が効くのは便利になっていいんだけど、
いざ型関連エラーが出た時にエラーメッセージから原因を予測するのが困難なんだよね。

rustもあんな感じなの?
正直TypeScriptはエラーメッセージをわかりやすくする方向に軌道修正頼んます。
759デフォルトの名無しさん
2018/02/18(日) 18:16:19.28ID:WV1p31YW
>>758
変性注釈とか、やりたいことはわかるし、なぜ必要かもわかるが、一方でjsとどんどん乖離していって、jsのプロジェクトと繋げるときに結局any使うことになったり、グダグダも良いところだと思う。
TSだけでもの作るんなら、良いと思うが、そうなるとJavaScriptにコンパイルできる必要もなく、逆に早くwasmなんかに対応しろとか、ネイティブにTSの良いところを保ったまま実行できる環境出せとか、色々文句が言いたいけど、
全部ほったらかしにされてるからな。
ずーっと言語の改良してる。
760デフォルトの名無しさん
2018/02/18(日) 18:37:05.69ID:Ct2k6iqr
一方的にjsのライブラリを使用する分には問題ないだろうし、その資産にただ乗りできることこそ
jsとの相互運用性を維持する理由だろう。
言語仕様としては奇麗だけどライブラリが揃わなくて実用性がいまいち、みたいになるよりは。
761デフォルトの名無しさん
2018/02/18(日) 19:25:55.39ID:WV1p31YW
>>760
jsのライブラリ側が自由な感じのライブラリだと定義ファイルが無茶苦茶ややこしいものになったりするし、なかなか微妙だけどな。
ライブラリが揃わなくてイマイチ、は確かに無いか。ほとんどタダ乗り出来るからなぁ。
762デフォルトの名無しさん
2018/02/18(日) 22:15:41.08ID:+Qsqi9wm
>>761
せめて関数のオーバーロード定義みたいなことが出来ればコードが整理しやすくなると思うんだよね。

つまり
export function h(name, attributes /*, ...rest*/) {
// 省略
return typeof name === "function"
? name(attributes || {}, children)
: {
nodeName: name,
attributes: attributes || {},
children: children,
key: attributes && attributes.key
}
}
ってあった時に
export function h(name: string, attributes:obj /*, ...rest*/) {}
export function h(nextFunc: (attributes:obj)=>void, attributes:obj /*, ...rest*/) {}
みたく出来れば型定義自体も綺麗にできる気がする。
でも今のTypeScriptってこれできんよね。
763デフォルトの名無しさん
2018/02/18(日) 22:19:58.51ID:+Qsqi9wm
あと詳しい人に聞きたいんだけどやっぱりジェネリクス一つとっても
言語によって全然仕様が違うのかね?

だとしたらGoはコードジェネレートと組み合わせも考慮したちょうどいい便利さの
ジェネリクスというのも考えていて実装を見送ってるのかも。

でもGoにはそれ以前にnull安全を実装してほしい気がするが。
レシーバがnullの可能性があったりnull周りに罠があるんだよねGoは
764デフォルトの名無しさん
2018/02/18(日) 22:47:38.32ID:Ct2k6iqr
>>762
オーバーロードってまさにそんな感じでできた気がするが。
765デフォルトの名無しさん
2018/02/18(日) 23:30:02.62ID:/vdt0GUK
ジェネリクスは途中から入れるようなもんじゃないと思うがね
型自体はフラットな構造で、階層構造はHaskellみたいに型の境界(型クラス)として作ると綺麗にまとまりやすい
型≒クラスで、型自体に階層構造を作ってるような言語だと、ジェネリクスの使い方が面倒よ
Javaの<T extends ClassFoo>とかC#のin/outとかは元の型システムに合わせて入れないといけない面倒な部分

TSの元々の型システムはよく知らないけど、ダックタイピングできるならジェネリクス入れる必要がないし、
クラスがあったり型に階層構造があるなら面倒なのはしょうがない
766デフォルトの名無しさん
2018/02/18(日) 23:45:12.91ID:LabDqOSD
むしろJavaScriptさんが悔い改めるべきではないか?
767デフォルトの名無しさん
2018/02/18(日) 23:52:24.01ID:AYB00j0e
Goでレシーバがnilになれるのは案外便利だぞ。
あれは罠ではない。

型や型クラスに階層構造持つのはいつでも便利なわけではないと言うか、結局コンパイラ都合を押し付けられてるだけな気がするけどな。
その辺、後出しジャンケンできるGoのinterfaceの方が楽な事が多い。
768デフォルトの名無しさん
2018/02/19(月) 00:07:59.55ID:B+b1Q4Nq
ジェネリクスは、コード上別の箇所に出現する型Aと型Bが同一であることを明示することにより、型情報の損失を避けるために使うんだよ
ダックタイピングは関係ない
C++やHaskellをやってる人は>>765みたいに混同しがちだけど、JavaやC#だと多態とGenericsをわりとはっきり区別する文化がある
TypeScriptのGenericsも同様に、型の同一性を示すマーカーとしての性格が強いね
769デフォルトの名無しさん
2018/02/19(月) 01:32:35.15ID:1YgzgKOj
「型が同一である」の定義がわからない
犬型と猫型は異なるともいえるし同じ動物型ともいえる
この辺の仕様を捨ててからジェネリクスを追加するのが基本

もし両方入れてゴミ言語ができたら
捨てられないのが原因ともいえるし追加したのが原因ともいえる
770デフォルトの名無しさん
2018/02/19(月) 01:40:02.40ID:U+qaWnxw
それに対して型の制限を型でなくしたのがHaskellの型クラスやRustのtraitだし、型を分解する事で非同一性を示すのが多くの言語にあるパターンマッチじゃないの
771デフォルトの名無しさん
2018/02/19(月) 07:49:12.96ID:HJ1z9rHd
型階層のある言語でアドホックに型クラスをやりたいなら別途Comparableみたいなインスタンスを受け取るようにするだけだろ
ジェネリクスと区別するっていうのは端的にはそういうことで、実際に引数として明確に分かれることになる
JavaやC#, TSだと型引数に制約を付けることで中途半端に似たことができてしまうのが微妙に直行してなくてダサいけど、それは基本的にあまり使われない機能
772771
2018/02/19(月) 07:54:42.45ID:HJ1z9rHd
すまんComparatorの間違いだ
補足しとくと、直行してないというのは例えば具体的には <T extends Comparable> と (T obj, Comparator<T> comparator) みたいなののことな
773デフォルトの名無しさん
2018/02/19(月) 09:53:32.16ID:isUwiiOH
>>767
便利さを教えてほしいな。
純粋なnilと型があるけど中味はnilって正直わかりづらくないかな。
reflectionのお勉強をしないと理解できない。

Goのインターフェースは後出しジャンケンってのは面白いな。パクらせてもらおう
774デフォルトの名無しさん
2018/02/19(月) 09:58:27.89ID:isUwiiOH
>>768
このへん詳しく知りたいな。
C++とかHaskellのジェネリクスってTypeScriptとかと違うの?
775デフォルトの名無しさん
2018/02/19(月) 12:10:56.39ID:BdVjRyEG
>>773
それがnilでも、メソッドチェーンできる。
だから、errを伝搬するのに便利。
末尾のDoなんかで、本当の結果,errorとして取り出せば良いよ。
いちいち失敗構造体なんぞ書かんでも良い。
Nullable的に使える。

どっちかというと下回り書いてるときに便利かも。
776デフォルトの名無しさん
2018/02/19(月) 12:44:49.19ID:g9K5jJLr
>>774
C++はテンプレートを使ってダックタイピングができる
Haskellはアドホック多相を使って>>772でいうcomparator引数に相当する要求をTの型制約に含められる
777デフォルトの名無しさん
2018/02/19(月) 14:19:03.08ID:x9oxab6h
>>775
なんかサンプルある?とょっとイメージがつかめない。nilでメソッドチェーンができるのはわかるけど、それがメリットになるかな?
結局nilを、返してるメソッドがエラー状態な訳で、そいつが暫定的な値を返せばメソッドチェーンはできるよね。
778デフォルトの名無しさん
2018/02/19(月) 15:23:40.87ID:FUvFB9Jm
ハスケルのメイビーみたいなことだろうな。
779デフォルトの名無しさん
2018/02/19(月) 16:10:57.83ID:BdVjRyEG
>>777
暫定的なオブジェクトに、レシーバ書いてくの?
Hoge().Get().ReadAll().AsString()
で、毎度nilチェックとか暫定レスポンスのオブジェクト置いてたら非効率じゃん。
ToXXX以外の関数が、Hoge()の返す型やinterfaceを返せば楽じゃない?
Getに失敗したかReadAllに失敗したかが必要ならまた別だろうけど、だいたいひとからげにして問題ない事の方が多い。
780デフォルトの名無しさん
2018/02/19(月) 18:59:46.08ID:esiJbF27
>>779
error情報を最初から諦めるってことね。
とにかく最終結果がnilだからメソッドチェーンのどっかで失敗してんだろーなー。くらいの感じなのか。

標準ライブラリでそういう実装してるのあるかな?reflect.Valueとかかな。
あれメソッドチェーンできる代わりに不正なメソッド操作するとpanicしててなかなかしんどい。
781デフォルトの名無しさん
2018/02/19(月) 19:03:08.21ID:BdVjRyEG
>>780
ちょっと違うけど、protobufあたりはもう少し有意義に使ってたな。
782デフォルトの名無しさん
2018/02/19(月) 19:14:13.94ID:esiJbF27
流れをぶった切って悪いけどTypeScriptはさすがMS。開発リソースたっぷり。という余裕を感じる。vscodeと一緒に毎週くらいの勢いでアップデート繰り返してる。

ジェネリクスの気持ち悪さもエラーメッセージがわかりやすく進化する感じで直してくれれば全然良いので頑張ってもらいたい。
783デフォルトの名無しさん
2018/02/19(月) 19:17:59.63ID:u7QgBPEb
goのことは全然知らないんだが、型付きnilとやらは実行時ディスパッチしてくれて
その型のメソッドにnil引数付けてやってくるという理解でOK?
784デフォルトの名無しさん
2018/02/19(月) 20:22:12.51ID:BwjO59+V
まずメソッドではなくて、ちょっと変わった構文のの関数ぐらいに受け取ったほうが良いかも。
Foo.Bar()は
Bar(Foo)と、
Foo.Bar(a,b)

Bar(Foo,a,b)と同じぐらいの意味。
だからFooがnilでも(ポインタに対してのレシーバであれば)呼べる。
785デフォルトの名無しさん
2018/02/19(月) 23:02:26.53ID:cDVYUoQ2
やはりメソッドチェーンは何回も値 (nil) を返すのが気になる

Haskellでは
((Nothing >>= f) >>= g) >>= h
こうするとNothingのパターンマッチを3回するのに対し
Nothing >>= (\ y -> f y >>= (\ z -> g z >>= h))
これなら1回だけ
786デフォルトの名無しさん
2018/02/19(月) 23:09:11.19ID:g9K5jJLr
>>785
記号がキモい
見てて痒くなる
787デフォルトの名無しさん
2018/02/19(月) 23:41:51.38ID:cDVYUoQ2
記号がなくても右結合がきもい
h(g(f(x))は右結合
x.f().g().h()は左結合
788デフォルトの名無しさん
2018/02/20(火) 00:33:09.75ID:uyRcVPMC
こんなのをありがたがるくらいならCommonLisp書くわ。
789デフォルトの名無しさん
2018/02/20(火) 01:53:25.83ID:IMJo1v/e
その気持ちは分からんでもない
790デフォルトの名無しさん
2018/02/20(火) 05:20:12.69ID:o3fs2Zzy
goの場合nilの場合分けを関数の中でしなくちゃいけないわけだろ。
それが嫌だからモナドができたわけだからな。
メソッドチェーンも嫌だからasyn/awaitとかdo構文が出来たわけで
全部が劣っているな。
791デフォルトの名無しさん
2018/02/20(火) 17:49:07.93ID:uyRcVPMC
秀でるのと、こねくりまわすのは違うからな。
原理上、変態構文と純でも何でもないモナドで出来るとか抜かすぐらいなら、nilチェックするほうがマシ。
792デフォルトの名無しさん
2018/02/20(火) 18:26:18.82ID:SK024iMW
コンパイラはモナドをコンパイルエラーにしない
一部の人間は忖度してモナドを自主規制する
コンパイラと人間はどっちが正しいかというだけの話
793デフォルトの名無しさん
2018/02/21(水) 18:12:35.61ID:WKR1veUF
機械と人間の両方に指図されるのは不自由過ぎる
両方採用するのは過激派
どっちか一つだけにした方が中道という可能性がある
794デフォルトの名無しさん
2018/02/21(水) 19:30:26.52ID:BxLkRHyS
goにいまさらnil安全は無理かな?
python3並の断絶が起きちゃう?
795デフォルトの名無しさん
2018/02/21(水) 20:32:34.11ID:qR5uNCei
そもそもnil安全にする必要もない。
その変数に型的にnilが入ることが無かろうがあろうが、
他の言語のnullとはちと違うレベルでnilを取り扱える。
タプルで返す前提だと大した問題には無いと言うか。
他の言語は、nullに本来のその型が持つ意味以上の意味を与えてしまうからわざわざnull安全にしないといかんのでは?
796デフォルトの名無しさん
2018/02/22(木) 02:26:39.63ID:zGB/N5H/
タプルで値が返せるから必要ないってただの理屈の上の話で、エラーチェック漏れをおこしたり、エラーチェックしててもnilの入った変数を次の処理に引き継ぐミスは起こり得るだろ。それを防ぐのがnil安全なわけで。
797デフォルトの名無しさん
2018/02/22(木) 04:32:43.91ID:+RpZ2cWG
俺も>>797と同意
>>796の言ってることはいまいちよく分からん
nilに余計な意味を与えるからダメとか言ってるがnil自体がそもそも余計だと思う
nilは便利すぎるがゆえにチェック忘れ系の地雷がある
ポインタ演算みたいに強力な機能は同時に危険も引っ付いてまわる
そういった機能は出来うる限りは排除・制限していくべきだと思う
798デフォルトの名無しさん
2018/02/22(木) 05:41:36.72ID:ePT/3hrM
nilに余計な意味を与えないための基準がnil安全なのでは?
799デフォルトの名無しさん
2018/02/22(木) 08:14:10.74ID:p8NiYEqx
同僚のコトリンのコードがビックリマークだらけで、こりゃだめだと思った
800デフォルトの名無しさん
2018/02/22(木) 08:54:55.92ID:MB1I4+Gh
だから、便利に使わなければ良いと思うんだが。
参照にしない限りnilにはなれないし。
801デフォルトの名無しさん
2018/02/22(木) 12:53:25.00ID:+RpZ2cWG
>>797
すまん。番号ズレてるな。以下訂正
> 俺も>>796と同意
> >>795の言ってることはいまいちよく分からん

スマホアプリ使ってると時々ズレるんだよな クソが
そのせいで自分で自分に同意するというアホな文章になってやがる
802デフォルトの名無しさん
2018/02/22(木) 13:11:15.71ID:0cZDh8Nv
修理しない自由 vs. 修理する権利
803デフォルトの名無しさん
2018/02/22(木) 14:54:41.89ID:ei88pKkZ
>>798
基準がどうこうってnil安全な言語ってのがわかっていないのかな?
設計思想とかの話じゃなく言語仕様の話をしてんだけど。
つまり変数に明示しない限りnilを代入不可能な変数が作れるってのか
nil安全な言語ってこと。
TypeScriptなら

let some?:number = null; // OK
let some:number = null; // NG
ってこと someにnullが入っている可能性をコンパイル時点で排除できる。

Goだって

func hoge(s *Some) {
// sが絶対nullじゃないことが保証されるスコープ
}
func (s? *Some) SomeFunc() {
if (s != null) {
hoge(s)
}
hoge(s) // NG コンパイルエラー sがnullである可能性が残っている
}
みたいな感じで書ける。?が使えると仮定
804デフォルトの名無しさん
2018/02/22(木) 16:43:44.83ID:ePT/3hrM
>>803
しょぼ!
その例はnull安全の中でも一番弱いやつ。
書き方を気をつければnullを避けられるってだけ。
本物のnull安全はスコープ単位ではなく、型検査が通ればプログラムにnullによる誤りを完全に排除されるんだよ。Haskellのように。
805デフォルトの名無しさん
2018/02/22(木) 17:06:16.89ID:zGB/N5H/
>>804
elmも実行時エラーを完全排除できるというのを売りにしてたね。
しょぼくても学習コスト最小でメリットは十分享受できる。
とりあえずelm触ってみようかな
806デフォルトの名無しさん
2018/02/22(木) 18:59:35.60ID:MB1I4+Gh
>>804
haskellはそんな事の前にもっと解決すべき問題を解決できる言語になってくれ。
807デフォルトの名無しさん
2018/02/23(金) 01:19:34.60ID:i8nFKqus
動的型で解決できる問題はすべて静的型で解決できるし
もしこれが嘘八百だと証明されたとしてもそれはそれで大きな成果だし
いずれにせよHaskellは静的型の歴史に貢献している
808デフォルトの名無しさん
2018/02/23(金) 01:23:42.56ID:KFd5WK6x
でも需要はハケスル(笑)<<<<<PHPで圧倒的な件w
809デフォルトの名無しさん
2018/02/23(金) 08:46:52.58ID:LZyM23a9
歴史に貢献するって、ラテン語でもあるまいし。
実用言語にしてよ。
810デフォルトの名無しさん
2018/02/23(金) 10:35:29.52ID:fGTUWBf8
実在するだけでは不満か
実在すら怪しいものがあったらもっと不満だろ
実用よりも実在の方がモチベーションが強い
811デフォルトの名無しさん
2018/02/23(金) 10:45:07.36ID:HJaUFAvs
>>809
ラテン語は良い喩えだね。印欧語ヒエラルキーの上の方にいるし。
俗ラテン語を見て、どこが欠落してるかの見通しが良くなる。

Haskellも足りてないけどさ、型理論的に。そういう点でもラテン語あたりなのは妥当。
812デフォルトの名無しさん
2018/02/23(金) 11:35:44.21ID:2M6dxKUJ
コンパイル時に解決できるならそれに越したことは無いが
そのための学習コストは増大する傾向にあるよね。
Elmはブラウザのviewに特化したDSLとして学習コストを抑えてる。
Rustもメモリリークを静的に解決しようとするけどそのためのコストはかなり高め。
何事もバランスだよね。
813デフォルトの名無しさん
2018/02/23(金) 21:27:40.00ID:LZyM23a9
>>811
そう。
そんなに格いるか?確かにあれば便利だけど前置詞のほうが実質簡潔じゃねえの?とか、
今更ラテン語使う必要無いだろ。足りない語彙を現代語から借用するの?とか、
ヒエラルキーの上位と言うより、広がる枝の根本にほうっておかれた存在だろ。
全く次世代で無い。
814デフォルトの名無しさん
2018/02/23(金) 22:03:17.49ID:GuloKGfV
Haskellの熱心なアンチが全くのエアプだった事件があるので、そういう意見はHaskellに精通していることを示さないとなかなか受け入れられないと思うよ
815デフォルトの名無しさん
2018/02/23(金) 23:44:14.84ID:NePmI3sA
まあカス仕様を必死に守るのにコストかけるくらいなら
goみたいにコンパイラの性能上げてもらった方がよっぽど有益だったりはする。
816デフォルトの名無しさん
2018/02/24(土) 00:32:37.74ID:LvxjVVyK
お、型付λアンチか?
817デフォルトの名無しさん
2018/02/24(土) 01:03:27.04ID:67+llEBF
>>814
エアプって言葉好きだなぁ。
正直触ってダメ出ししたぐらいだけど、精通せんでも文句は言える。
ラーメン食いに行って「まずいわこれ」って言って、店主に「じゃあお前はこれ以上のラーメン作れんのかよ」「それだけラーメン食って言ってるのか?」ってキレられても困るだろ。
客観的にまずいもんはまずい。まずいと誤解されるものもその次にまずい。
818デフォルトの名無しさん
2018/02/24(土) 01:06:09.79ID:67+llEBF
意識高い系のおもちゃとして使うんじゃなくて、なんか使えるプロダクト出してから言ってくれよな。
古代言語を次世代言語スレで出すんなら。
819デフォルトの名無しさん
2018/02/24(土) 01:21:53.07ID:ZueQv0Xl
>>815
https://taiyaq.com/contents/YgxOd3YjadMa5c793O1j1d9VX
goの設計思想自体が依存関係解決の高速化だったりコンパイル速度優先の実装みたいだね。
ジェネリクスみたいなコンパイル時の計算速度に大きく影響を与える仕様はなさそうだ。
(あっても限定的な機能になりそう)
820デフォルトの名無しさん
2018/02/24(土) 02:01:52.41ID:9192Hwvs
goにはクラス階層も無いんでしょ?ジェネリクス以外の多態が無いならまだ綺麗に導入できる可能性がある
swiftはバージョンアップで型推論を入れるようなスジの悪い進化を進めてるから好きになれんよ
821デフォルトの名無しさん
2018/02/24(土) 06:02:14.88ID:VvbK4X3N
コンパイル速度優先の上で云々ということであれば
goがDelphi/FreePascalを超えてるかというのは正直疑問
822デフォルトの名無しさん
2018/02/24(土) 07:01:37.55ID:VvbK4X3N
>>820
goはinterfaceによる多態が既にあるから、そこにジェネリクス入れるとJava同様になるぞ
823デフォルトの名無しさん
2018/02/24(土) 07:57:18.04ID:ZueQv0Xl
>>821
現在も絶賛コンパイル速度更新中だからいいんじゃないの。
そもそもdelphiって古すぎて早く見えるってだけでは、、、?

>>822
interfaceを進化させるイメージでジェネリクスぽいものを作るんだろうね
現状複数のinterfaceを受け入れる可能性のある変数は空インターフェース(interface{})
(javaでいうところの何でもありのObject型みたいなの)
にするしかないのがツラミになってる。
ここを改善する方向に進化させるでしょう。
直積型をつくるのはできてるから直和型(union)をサポートして
someFunc(o interface{}) error {}
みたいなのを
someFunc(o A & B) error {}
someFunc(o A | B) error {}
みたいにできればいい。TypeScript好きだからこうなったら感動する
824デフォルトの名無しさん
2018/02/24(土) 11:17:45.72ID:LvxjVVyK
>>817
だっさw
825デフォルトの名無しさん
2018/02/24(土) 11:20:37.36ID:pBIylWjV
古すぎて速いってのは正しい
あとはジェネリクスがない言語は古いと認識できたらもっと正しい
826デフォルトの名無しさん
2018/02/24(土) 13:37:19.37ID:67+llEBF
>>824
俺がダサいだけでhaskellが良くなって実プロダクト出てくるならいくらでもダサくなるわw
827デフォルトの名無しさん
2018/02/24(土) 14:17:08.41ID:4YJEYBsv
実はDelphiにはジェネリクスあるんだぜw
828デフォルトの名無しさん
2018/02/24(土) 14:17:22.06ID:WPlCcRak
>>825
TypeScriptの最近のジェネリクス変態進化ぶりを見ていると
ジェネリクスが正しいという意見も
なんとも言えないかも。
829デフォルトの名無しさん
2018/02/24(土) 14:39:08.92ID:ozvKRveg
言うほど変態か?
JSによるOOPの実装方法や、即値を型として扱うTypeScriptの特性を十分に理解してないと
new () => Tとかkeyofなんかは分かりにくいかもしれないけど、それはGenerics以前の問題だろ
基本的には必要以上の驚きのない自然な仕様だと思うよ
830デフォルトの名無しさん
2018/02/24(土) 15:23:35.50ID:ZueQv0Xl
>>829
それくらいならいいけどさ
https://qiita.com/Quramy/items/b45711789605ef9f96de
とか見てみると分かる。
辛いのはユーザ側だとしてもエラーメッセージで巻き込まれることないだよね。
ジェネリクス関連のエラーで一発で問題がわかったことが殆ど無い。
831デフォルトの名無しさん
2018/02/24(土) 15:44:01.13ID:ozvKRveg
>>830
これくらい何とも思わないな
所詮は型アノテーションを正しく引き継ぐためだけの仕組みだぞ?
生成されたコードをデバッグしなきゃいけないテンプレートとは訳が違う
832デフォルトの名無しさん
2018/02/24(土) 16:50:37.88ID:ZueQv0Xl
>>831
こういうエラーメッセージを吐き出すジェネリクスが分かりやすいだって?
次世代言語Part8[Haskell Rust Kotlin TypeScript] 	YouTube動画>3本 ->画像>4枚
833デフォルトの名無しさん
2018/02/24(土) 17:03:15.17ID:ZueQv0Xl
>>832
こういうエラーメッセージと戦うのが辛いのって結局途中経過を追えないってことなんだよね。
goはコードジェネレート前提だったりする。
そっちだと分かりやすいコードを吐いてくれれば追いやすい。
834デフォルトの名無しさん
2018/02/24(土) 17:08:20.40ID:yL1hQTQw
>>833
つまり言語仕様の問題じゃなくてコンパイラが途中結果を出力しないのか問題なんだろ?
MSが改善すれば済む話
完全に論理が破綻してるね
835デフォルトの名無しさん
2018/02/24(土) 17:08:38.51ID:cWB/7seJ
>>832
これは酷いTypeScriptは糞
836 ◆QZaw55cn4c
2018/02/24(土) 17:14:56.38ID:yWQ45jBy
>>832
C++ とて似たようなものだ、ジェネリクスのエラーメッセージは総じて汚らしい
837デフォルトの名無しさん
2018/02/24(土) 17:15:40.58ID:NYPMK72i
>>834はコンパイルがクソ遅い言語に対しても
問題は言語仕様じゃなくてコンパイラの所為だと思ってそう
838デフォルトの名無しさん
2018/02/24(土) 17:26:03.56ID:WPlCcRak
>>834
論理がはたんしてるか?
というかコンパイラの挙動と言語仕様を分けて考える意味がわからない。

言語としての素晴らしさはそれを囲むエコシステム全体を含めて語っていいと思うが。
839デフォルトの名無しさん
2018/02/24(土) 17:29:02.21ID:WPlCcRak
>>836
これ。ジェネリクスは人間に牙を向くのが辛い。ライブラリ開発者でうまくエラーをラップできたりすれば良いんだけどね。 
840デフォルトの名無しさん
2018/02/24(土) 17:43:47.02ID:yL1hQTQw
>>832が分かりにくいのって、structual-subtypingで特定のメンバの型に互換性がないのを
「型同士の互換性」の単位で出力してしまってるからじゃないか?
TypeScriptならVSCodeに代入元と代入先の型を展開した状態で比較するビューが付けば解決だと思う
841デフォルトの名無しさん
2018/02/24(土) 17:51:04.11ID:ZueQv0Xl
>>840
あと、もしかしてこう書きたかったんじゃなりませんか? みたいにannotationをコンパイラが出してくれるとかね。
rustってそういう感じだっけ?
842デフォルトの名無しさん
2018/02/24(土) 17:54:41.90ID:ZueQv0Xl
ちなみに >>832 のエラーはTypeScript2.5.3では出ない。2.6以降にすると出るようになる。
コードとしては何の問題もなく動くんだよね。
バージョン上げるたびに修正するのしんどくて放置してる。
843デフォルトの名無しさん
2018/02/24(土) 18:11:51.54ID:67+llEBF
そのうちまた型システムだけでチューリング完全になるんじゃねえの?
844デフォルトの名無しさん
2018/02/24(土) 19:33:38.61ID:OJHwttVu
チュリ完だと何の不都合ですか?
845デフォルトの名無しさん
2018/02/24(土) 20:27:10.88ID:67+llEBF
する必要の無いものをチューリング完全にしてしまったが故にえらいことになったプロジェクト見てきたし、
そもそもコンパイルの時点で無限ループしかねないとかどんな闇言語だよって話になってくるじゃん。
Scalaも型システムだけでコンパイラ止めれたっけ。
846デフォルトの名無しさん
2018/02/24(土) 21:39:56.69ID:Wx4opHQO
c/c++ のヘッダ処理なんかもデバッグしやすくするのとコンパイル効率は
かなりトレードオフがあるってのが一般的。
だから visual studio が内部で変なことガツガツやってるわけで。
そんなもん2、3年本気で仕事すりゃわかることだろうと思うんだが
なぜか理論よりの人間は事実を認めない傾向にある。
847デフォルトの名無しさん
2018/02/24(土) 22:16:50.94ID:8UiUrtqZ
チュリ完であることそれ自体が問題なのではなく、デバッグ回りが弱すぎるのが問題なのだ
848デフォルトの名無しさん
2018/02/24(土) 22:36:20.17ID:CuRF79s8
>する必要の無いものをチューリング完全にしてしまったが故にえらいことになったプロジェクト見てきたし、

それ、「えらいことになった」原因が本当にチューリング完全のせいだったのかね。
849デフォルトの名無しさん
2018/02/24(土) 22:55:49.93ID:WPlCcRak
少なくともc,c++の依存関係解決の遅さの解決のためにgoが生まれたってのがgoogleの言い分なわけだし、遅いは遅いんじゃないの。
goにプリプロセッサが無いのも意味があるわけで。
850デフォルトの名無しさん
2018/02/24(土) 23:31:49.65ID:8UiUrtqZ
まあ遅いは遅いな。それはそうだ
851デフォルトの名無しさん
2018/02/25(日) 00:02:11.41ID:/LdYt4iz
ちなみにredoxというrustで書かれたosはコンパイルは早いんだろうか。lunuxと単純比較はできないだろうけども
852デフォルトの名無しさん
2018/02/25(日) 01:39:43.29ID:i5g4VWIk
>>848
そうだよ。何を想像してるかわからんけど。
853デフォルトの名無しさん
2018/02/25(日) 07:45:46.39ID:Pn1I1KPs
そりゃチューリング完全であることが問題なんじゃなくてそのチームに問題があったんだろ。
世の中にチューリング完全なシステム(言語)は腐るほどあるわけだし。
854デフォルトの名無しさん
2018/02/25(日) 08:04:15.51ID:MHQfhChM
なんでも「チームが悪い」と言えばいいのだから簡単だな。ばーか
855デフォルトの名無しさん
2018/02/25(日) 09:34:28.35ID:5I/H3HR9
できちゃうことが問題なんじゃないの
c++の型システムがチューリング完全だと自分たちだけがコンパイル速度に気をつけても
依存しているサードパーティライブラリまでは保証できないでしょ。
だったら言語側で制限がかかっておいてほしいって話。

Cの依存性解決も#ifdefを駆使してプリプロセッサの自由度を持って後付で解決していた。
プリプロセッサ自体便利なものだけど、それが原因でコンパイル速度の低下を招いた。
というのが >>819 に書いてる。

汎用性がある機能はなんでもできるからこそ、コンパイル速度を落としたり迷惑を書けることも可能。
swiftもGoも後発言語だけどプリプロセッサのってないもの
rustのマクロの自由度は知らんけども。
856デフォルトの名無しさん
2018/02/25(日) 10:45:11.82ID:AkGT52Is
テンプレートやマクロで無茶をする奴が
コードジェネレータで無茶するようになるだけ
857デフォルトの名無しさん
2018/02/25(日) 11:03:44.36ID:5I/H3HR9
>>856
少なくともGoのgenereateはコンパイル時毎回動くわけじゃないから。
858デフォルトの名無しさん
2018/02/25(日) 11:41:56.21ID:oFPVlXbE
あるC++のファイルを変更したら
そのファイルがincludeした全てのコードを再コンパイルする
型情報のみをincludeすればいいのに型ではない値とコードが大量に入ってる
この値とコードが原因だよね
チューリング完全はそこから生じた結果の一つ
859デフォルトの名無しさん
2018/02/25(日) 12:11:15.59ID:hhzTCNKn
>>849
すまん、プリプリセッサって何ンゴ?
860デフォルトの名無しさん
2018/02/25(日) 12:35:19.43ID:SIGvHUUj
プリケツセッサ
861デフォルトの名無しさん
2018/02/25(日) 12:38:14.47ID:XjF3qDop
prepresessor
862デフォルトの名無しさん
2018/02/25(日) 14:15:34.84ID:dV634vWG
>>859
rustでいうマクロみたいなもの
コンパイル前に文字列操作を行ってコードを改変する。
結構なんでもできるから重たい操作を行うとコンパイル時間に影響する。
https://ja.wikipedia.org/wiki/%E3%83%97%E3%83%AA%E3%83%97%E3%83%AD%E3%82%BB%E3%83%83%E3%82%B5
863デフォルトの名無しさん
2018/02/25(日) 15:09:03.97ID:SIGvHUUj
それはプリプロセッサや〜〜!!!
864デフォルトの名無しさん
2018/02/25(日) 15:13:14.53ID:iLEoqX9J
>>853
まあバカな奴をチームに入れないためにc++を採用しないって主張をするリーナスは
ある意味正しいな。
865デフォルトの名無しさん
2018/02/25(日) 16:03:19.53ID:jkdNIq8n
>>858
それはちょっと違う
そもそも今時フルコンパイルなんてそんなに重いものではない
C++がまずいのは、includeしたヘッダのコンパイル結果をコンパイル単位(.cpp)を跨って共有できないことだ
プリプロセッサのせいで毎回変わる可能性があるからな
866デフォルトの名無しさん
2018/02/25(日) 16:17:08.31ID:UX7CM2uT
>>864
リーナスはc++がクソだって言ったんだよ。
その次に使う人間もクソが多いって言ったの。、間違えんな
867デフォルトの名無しさん
2018/02/25(日) 16:45:30.82ID:u3kGuI4S
間違ってはない
868デフォルトの名無しさん
2018/02/25(日) 17:25:46.72ID:eL53m5ic
リーナスはもともとアセンブラーやからのうwww
Cは複数のCPUのアーキテクチャーに適応するためにどうにゅうしたわけやしのうww
869デフォルトの名無しさん
2018/02/25(日) 17:45:40.47ID:ZzND0YhV
c++はいつになったら#importを導入するんだ……
870デフォルトの名無しさん
2018/02/25(日) 18:22:22.98ID:iLEoqX9J
linux もだいぶヘッダマクロでテンプレみたいなことはやってる。
もちろん型安全ではないがそれでもc++のテンプレート使うよりマシという判断をしてるわけだよ。
871デフォルトの名無しさん
2018/02/25(日) 20:57:01.90ID:Sac3cGbb
>>865
それやったらODR違反
872デフォルトの名無しさん
2018/02/25(日) 22:23:17.24ID:hhzTCNKn
>>862
メメタァプロプロミングってやつンゴか?
873デフォルトの名無しさん
2018/02/26(月) 01:07:52.73ID:NUAGFWAP
jsのhyperappみたいに300行くらいでreact + reduxなライブラリを作ったように

haskellでも小さなコードですごいことをしてみせる実用ライブラリってあるかな?
874デフォルトの名無しさん
2018/02/26(月) 01:08:12.13ID:NUAGFWAP
jsのhyperappみたいに300行くらいでreact + reduxなライブラリを作ったように

haskellでも小さなコードですごいことをしてみせる実用ライブラリってあるかな?
875デフォルトの名無しさん
2018/02/26(月) 01:59:20.48ID:RBbBnG6R
すごいことってなんだか感情的だな
実用というのも感情かもしれない
876デフォルトの名無しさん
2018/02/26(月) 05:56:26.51ID:KYXdLiJx
コードから改行をスペースに変換して一行にするライブラリーを作ればいい。
877デフォルトの名無しさん
2018/02/26(月) 11:09:00.46ID:AYoEpEU8
プリプロセッサは遅くないぞ
C++のテンプレートやコンパイル時処理のほうがよっぽど遅い
RustもSwiftもプリプロセッサを排除する代わりにC++と同じようなことをやってる
878デフォルトの名無しさん
2018/02/26(月) 11:28:37.86ID:OBKUk/zi
>>877
プリプロセッサが遅いんじゃなくてプリプロセッサに依存したビルドが遅いんだろ
コンパイル単位という時代遅れな概念さえなければ話はずっとシンプルになる
879デフォルトの名無しさん
2018/02/26(月) 11:57:47.68ID:LqmnPPXl
コンパイル単位ってコンパイル高速化するためのものと思ってたんだけど、今は無い方が速いのか?
880デフォルトの名無しさん
2018/02/26(月) 11:58:09.67ID:tiI6jRqU
文字列処理は結果をファイルに保存して再利用しやすい
クラスやオブジェクトの処理はファイルシステムと連携が難しい
かといってファイルシステムがない環境でも動くコンパイラを作る意欲もなさそう
881デフォルトの名無しさん
2018/02/26(月) 13:46:15.14ID:IYGVTnOb
>>877
プリプロセッサが、遅いかどうかはどう作るかによるのでは?
何でもできる分、遅く作り込むことも可能。
だからgoとかは組み込みのimport機能を作ったわけで。
882デフォルトの名無しさん
2018/02/26(月) 13:50:29.38ID:IYGVTnOb
>>875
jsのhyperappに感動してしまったから
感情的になってしまった。
300行でしかも比較的読みやすいコードで
react+reduxなライブラリが作れたことにびっくりしたんす。
勉強用の教材としてもうってつけ。

こういうのが他の言語のライブラリでもないかなと思って。
883デフォルトの名無しさん
2018/02/26(月) 16:02:15.05ID:CBNL7amJ
>>879
✕高速化
○メモリ節約
今の1/1000のメモリでデカいウンコを無理矢理出すための手法で、今となっては百害あって一理なし
884デフォルトの名無しさん
2018/02/26(月) 20:55:59.83ID:2he6fwHk
じゃあお前だけ並列コンパイル禁止な
885 ◆QZaw55cn4c
2018/02/26(月) 21:02:06.28ID:5mZ9QExD
>>883
make -j での高速コンパイルに感動することしきりです、いつか 32thread な CPU を買おうと思っています
886デフォルトの名無しさん
2018/02/26(月) 22:24:02.68ID:FUm7ZUuj
なぜかプログラマー板に立って放置されてる
nimのスレ立てるか
887デフォルトの名無しさん
2018/02/26(月) 22:29:16.70ID:eKoH1eQ3
頼む
888デフォルトの名無しさん
2018/02/26(月) 22:43:29.59ID:+1zKWNLy
boost 大好きな奴がビルドのベストプラクティスとして
1ファイルに全て書く言うてたな。
バカとしか言いようがないが面倒だから黙ってた。
889デフォルトの名無しさん
2018/02/26(月) 23:37:01.37ID:hKYTqf2f
小規模なら1ファイルに全て書いても問題ない
普通に書いたら数百とか数千ファイルになるようなものなら馬鹿で間違いない
890デフォルトの名無しさん
2018/02/26(月) 23:38:45.60ID:vKciEg6e
インターフェースとその実装とかは、小規模なら同じファイルに書いてるのもよく見かける
891デフォルトの名無しさん
2018/02/27(火) 03:24:43.50ID:Rnz77xQ6
世の中にはhaskell使い結構居るっぽいのになんでここには全く居ないんだ
githubやstackoverflowまで行かないと出会えんのか
892デフォルトの名無しさん
2018/02/27(火) 05:49:52.64ID:5KO97NM4
一つのファイルに書かなくても
複数のファイルをつなげて一つにするプログラム書けばいいだろ
そのやつ馬鹿やんなwww
893デフォルトの名無しさん
2018/02/27(火) 05:53:33.06ID:5KO97NM4
昔の偉い人はトップのファイルにだけインクルードを書く手法をつかったらしいからな。
これは複数のファイルを一つにつなげるプログラムとおなじことやんな。
894デフォルトの名無しさん
2018/02/27(火) 11:03:33.84ID:P8RgwK6u
今の偉い人はLTOに任せます
895デフォルトの名無しさん
2018/02/27(火) 11:58:06.25ID:hiD/gfTg
分割できないのはC++のtemplateだけ
Cは問題ないからほとんどの言語はCのライブラリに依存する
他言語から利用するならさすがにファイル分割せざるをえない
896デフォルトの名無しさん
2018/02/27(火) 12:49:23.86ID:cuAUxW5W
templateって分割できないの?分割してる俺は異端だったか
897デフォルトの名無しさん
2018/02/27(火) 13:02:26.29ID:osJwhRBM
優秀なコンパイラ使ってるんだな
そのためのexport構文は実装が難しすぎて廃止されたんだ
898デフォルトの名無しさん
2018/02/27(火) 14:30:07.64ID:hiD/gfTg
Vector<T>の内部で無引数のVectorを利用するだけみたいなパターンがある
このパターンに従ってなければ異端視されるリスクはあるだろう
899デフォルトの名無しさん
2018/02/27(火) 16:21:26.72ID:ZLoGDkNB
Railsってなんだかんだいって未だに人気があるみたいだけど、
なんでなん? Rubyって動的言語だよね? PHPを使ったフレームワークとどこが違うの?
なんであんなに1強状態で人気があるの?
Rubyの魅力とセットで教えてください。
900デフォルトの名無しさん
2018/02/27(火) 16:31:55.21ID:hlxRjRwD
優れているわけではなく、バカチョンで作れるから安易に選ばれやすいのだろう
Railsで始めてみることより、仕様が固まったら次のまともな言語やフレームワークに移行できるかの方が重要
実際、それに失敗(あるいはその必要性すら見越せず)して炎上する案件も後を絶たない
小さくは産めるが大きく育てることはできないのがRails
901デフォルトの名無しさん
2018/02/27(火) 16:57:52.59ID:NW0j8e0V
バカチョンなのはphpじゃなくて?
なんか意識高い系が使ってるイメージなんだけどRoR
902デフォルトの名無しさん
2018/02/27(火) 17:42:22.46ID:5KO97NM4
絶対MAC使ってそう
903デフォルトの名無しさん
2018/02/27(火) 22:14:44.71ID:D4/jn9Oj
ザッカーバーグはphpでボコボコ作ってたんだから作れる奴は作れるんだろ。
904デフォルトの名無しさん
2018/02/28(水) 00:50:59.60ID:BRgV9W3l
>>903
でも言語ごと見直してるよね つ hack
905デフォルトの名無しさん
2018/02/28(水) 01:21:37.82ID:twfZQuBm
型が定義域を成すような言語ってあったっけ?
906デフォルトの名無しさん
2018/02/28(水) 06:23:34.25ID:sJxURYwy
高階型の事か?
ルービーとか?
907デフォルトの名無しさん
2018/02/28(水) 10:14:44.58ID:BRgV9W3l
>>899
これに誰もコメントできないということは意識高い系エンジニアはもう2chにはいないってことかな
908デフォルトの名無しさん
2018/02/28(水) 10:54:54.72ID:pZIdeYdH
煽られたのでレスする

>>899
エコシステムが優れているの一点に尽きる
日本語のユーザーが多いので大抵の問題は検索で解決する
とりあえずgem入れれば大抵のことができる
Rubyであることは恐らく関係がない(Rubyの魅力ってなんだろ?ないんじゃね)

このような特長によりラピッドプロトタイピングでは他の追随を許さないため、
早急に成果物が必要なWeb系スタートアップなどでとても重宝される

ユーザーが多くて問題が検索で解決するということは学習コストが低いので、
プログラミングが全くわからないという初心者にも人気

誤解を恐れずに言えば、PHPなどの他の言語のRoRライクなフレームワークは、
Rubyを新たに学習するのを嫌がった既存言語のユーザーのためのパチモンである
909デフォルトの名無しさん
2018/02/28(水) 17:01:05.36ID:dNU7bBqW
人気がどうとか言い出したら未だに8割はphpだし
910デフォルトの名無しさん
2018/02/28(水) 18:04:09.73ID:51qUbh2+
次世代言語スレで枯れたスクリプト言語の流行り廃りなんて話題にしたくないって人が多いんだろ
911デフォルトの名無しさん
2018/02/28(水) 18:07:45.89ID:0QofQq2Z
結局javascirptが古いようで最新の技術なんだよね。
912デフォルトの名無しさん
2018/02/28(水) 20:24:05.75ID:BRgV9W3l
>>908
Rubyが嫌いって結局ガッツリハマった人の意見じゃないなぁ。
結局外から観測してる人の意見じゃん。
やっぱりいないんだな。2chには。

ちなみにRubyの良いところって多分プリミティブ型が存在しないことなんかなと
完全に純粋なオブジェクト指向言語を目指したって作者の人も言ってるし。
数字にメソッドが生えているのはたしかにすごいと思った。
913デフォルトの名無しさん
2018/02/28(水) 20:29:48.68ID:BRgV9W3l
>>912
あとElixirはかなりRubyに影響を受けてると聞いた。
だからRubyには魅力があると考えている人は確実にいる。
914デフォルトの名無しさん
2018/02/28(水) 21:14:49.16ID:sIMYGGyy
数字にメソッドといえば Kotlin もそうだな。
915デフォルトの名無しさん
2018/02/28(水) 23:56:12.70ID:DmvhFr4C
>ちなみにRubyの良いところって多分プリミティブ型が存在しないことなんかなと
心の底からどうでもいいわ。
916デフォルトの名無しさん
2018/03/01(木) 00:14:26.84ID:mwB1G/ka
>>915
まぁそうよね。俺もRubyを外野から見てるから、正直それがどうプログラミングに役に立つかわからない。

でも、今もiOS開発でcocoapodsが使われてるなら
あれは設定ファイルがrubyで出来てるはず。(DSLを作りやすい言語だとも聞いた。)
917デフォルトの名無しさん
2018/03/01(木) 01:01:03.87ID:PEqveR2A
>>909
捨てられない、壊せない、低学歴のゴミ捨て場
池沼保守が更なる池沼保守を招き、公共事業になる

COBOLですか?いいえ、ペチプァです
918デフォルトの名無しさん
2018/03/01(木) 01:49:49.40ID:jbpZZhCj
>>911
https://anond.hatelabo.jp/20170501085956

>JavaScriptはDOMを書き換えるためだけに存在している書捨てのクソ言語であって、サーバーサイドを書くために存在している言語でも、100万行からなるバベルの塔の建設に耐えうる言語でもない。
919デフォルトの名無しさん
2018/03/01(木) 02:34:21.42ID:mwB1G/ka
>>918
JSも毎年進化してるしasync-await周りの進化を楽しみにしてます。
array系メソッドのasync-await対応入れて欲しい。

TypeScript全然今現役だし。むしろこれからじゃないの。
結構型定義ファイルを最初から提供してくれるライブラリも増えてきたし。
920デフォルトの名無しさん
2018/03/01(木) 02:51:20.00ID:3GQv6gfc
動的言語の良いところは連想配列と無名関数だぜ
オブジェクトとか参照透明とかいう思想を無視して使うと良い
921デフォルトの名無しさん
2018/03/01(木) 07:56:42.84ID:PEqveR2A
参照透明w
ガイジすぎますよペチプァさん
922デフォルトの名無しさん
2018/03/01(木) 08:06:33.61ID:hFyb911L
透明でも透過でも意味はおなじやろ
923デフォルトの名無しさん
2018/03/01(木) 08:47:20.76ID:KaHAqFPd
日本語ですらこうだからな
英語でこれをやられると日本人は詰む
924デフォルトの名無しさん
2018/03/01(木) 09:14:47.72ID:QH9XRV0O
rubyで作ったものといえばhomebrewとかchef、vagrantとか環境構築系統の奴が多い気がする。
925デフォルトの名無しさん
2018/03/01(木) 11:41:14.60ID:mwB1G/ka
でもPHPってなにげに関数型っぽい性質を思ってるよね。
requestを入力にresponseを出力するだけの機能しか作れないわけだし。
ただ言語自体が副作用を許容するのが残念なだけで。
926デフォルトの名無しさん
2018/03/02(金) 07:56:21.08ID:WI55jJOz
いや関西型でしょ
細かいことはどうでもええねんやで〜 って感じ
927デフォルトの名無しさん
2018/03/02(金) 11:26:26.47ID:swkM6DDi
>>926
新しいーー
928デフォルトの名無しさん
2018/03/02(金) 16:36:06.39ID:cw2CU0bm
細かい組み込み関数は暗記しなくていいとPerlの作者は言ってる
でもみんな人の話を細かいところまで聞いてない

そして、組み込み型が存在しない言語があれば完璧に覚えられるんじゃないか
完璧に覚えられないPerlは欠陥品じゃないかと誰かが思いついた
929デフォルトの名無しさん
2018/03/02(金) 23:32:55.91ID:yLzcLNAA
perlやっぱキチーわ。。
http://perldoc.jp/docs/perl/5.6.1/perlvar.pod
930デフォルトの名無しさん
2018/03/03(土) 01:42:16.88ID:6xQIfmrF
詳細を暗記しなくていいって言い方は何か違うな
全容を理解しなくても使えるみたいな言い方だった
931デフォルトの名無しさん
2018/03/03(土) 10:52:51.13ID:v4FkTK4+
誰も全容を理解できないほどグチャグチャなだけじゃないか?
932デフォルトの名無しさん
2018/03/03(土) 10:55:41.97ID:duFkg5Z7
ゴミの中から使えるものを探し出すマイニング言語だな
933デフォルトの名無しさん
2018/03/03(土) 14:24:12.16ID:xVbk5YBO
機能を詰め込んだ言語はどれも同じようなこと言うが、
あればどっかのバカがドヤ顔で使うもんなんだよ。人が分からないこと機能を使うことがそいつの生きがいだったりするし。
934デフォルトの名無しさん
2018/03/04(日) 04:04:02.15ID:H2uta8yU
結局次世代覇権はどれなの
935デフォルトの名無しさん
2018/03/04(日) 04:24:53.92ID:LENvqUUV
そんなものはない
936デフォルトの名無しさん
2018/03/04(日) 08:27:34.15ID:ZzYgGHv3
覇権とはつまり無料で伝わってくる評判や情報
たしかにソースコード自体はただでもらえることが多いが
全ての情報が無料になるとは限らない
937デフォルトの名無しさん
2018/03/04(日) 08:43:02.11ID:jVv2tvmI
Dartまだ生きてたんだな
flutterで久々に名前聞いたわ
938デフォルトの名無しさん
2018/03/04(日) 09:06:46.22ID:wkppZr3e
死産だろ
AltJSはTypeScriptだけでいい
Flowのある今、TSですら要らなくなりかけてるしな

コヒースクリプトとかいう究極の糞ゴミもあったなそういえば
939デフォルトの名無しさん
2018/03/04(日) 09:27:49.51ID:JhMcbRX8
javascriptのpython的な感じのnode.jsが
サーバ側javascriptとかいってわけのわからない何をするものかわからない
説明しかないウェブ上にないから選択肢にならないのが駄目なんだよな。
940デフォルトの名無しさん
2018/03/04(日) 09:58:27.75ID:ok4FvQ1Q
Dartの戦略はosから全部google製に置き換えるという壮大なものっぽい。
flutterはUI部分はビデオゲームみたいに0から作り直してるからAndroidの断片化問題を回避してる。
結論はdart死んでなかったんや
941デフォルトの名無しさん
2018/03/04(日) 10:16:59.43ID:nKesZExL
Dartはまだワンチャンある
942デフォルトの名無しさん
2018/03/04(日) 12:11:02.48ID:wkppZr3e
自社で使ってねえ、いつ投げ出すかもわかんねえプロダクト使えるわけねえだろ
Angularなんて全く自社で使ってないから、案の定グダグダでReact対抗なんか遙か遠く、Vueにすら劣るゴミやン
943デフォルトの名無しさん
2018/03/04(日) 12:37:54.80ID:vieJ9/i2
>>942
わかる
自社で作ったフレームワークを自社が使わないってどうなのよ?って思う
まだベータ版だからとかそれなりの理由があるならともかく、そうでなければ
自分の作ったフレームワークは使うに値しないって言ってるも同然だよな
そんなフレームワークを使う気になれないし趣味以外で使う奴の気が知れない
944デフォルトの名無しさん
2018/03/04(日) 12:39:21.59ID:DGFKECqx
さすがに手を出しかねるよなあ
flutterに関してはアーリーアダプターさんに頑張っていただいて、僕はレイトマジョリティになるでござる
945デフォルトの名無しさん
2018/03/04(日) 13:04:30.62ID:PM/22zQa
angularみたいに色々ごった煮するよりか
reactみたいに単なるviewライブラリって割り切ってもらった方が個人的には好みかな。
946デフォルトの名無しさん
2018/03/04(日) 13:14:01.97ID:8KjE9Kl8
そだねー
947デフォルトの名無しさん
2018/03/04(日) 16:54:18.25ID:esyJJEGF
Googleって社内の開発に関しては保守的な印象
Googleともなると、新しい玩具に飛びつくことが長期的にどれだけの利益または不利益を生むかが定量的に分かってしまうんだろうね
948デフォルトの名無しさん
2018/03/04(日) 17:12:34.27ID:fkgoPQSR
あんだけコード資産あったらそらそうだろ
949デフォルトの名無しさん
2018/03/04(日) 17:17:55.41ID:P0TPEWFs
逆に、つかえねえ自社開発ツールを>>943みたいな理屈で開発環境として現場に押し付けるのもどうかと思うが
公開しないんじゃなくて、できないレベルで使えない、公開したら株価下がるレベルのやつ

ある程度は公開してフィードバック貰わないと腐るよ
950デフォルトの名無しさん
2018/03/04(日) 18:24:47.56ID:vieJ9/i2
>>949
いや、自社開発のクソみたいなツールを使えと言っているわけじゃないんだが…
例えばReactはFacebookが作っていて、Facebookは自社でReactを積極的に利用してるわけだから
そういう開発者自身が積極的に利用してるツールじゃないと魅力を感じないってだけで

あと、公開するなとも言ってないんだが…
自社では利用してないツールなら正式版としては公開するのはどうかと思うってだけで
ベータ版としてならむしろ積極的に公開してほしい

Googleはコード資産が膨大だから全てをAngularに置き換えるのは到底無理な話だが
一部のツール(例えばGmailだけ)を実験的にAngularに置き換えることは可能だろ
でも、それさえ行われてないわけでそんなものを正式版と言われても魅力を感じないと言いたかった
951デフォルトの名無しさん
2018/03/04(日) 18:53:56.69ID:ok4FvQ1Q
Flutterをとょっと触った感じすごくReactぽい。なんというか今のトレンドはReactに皆寄せるんかな
952デフォルトの名無しさん
2018/03/04(日) 20:14:57.99ID:8pLLmBBd
Google Wave の匂いがする…
953デフォルトの名無しさん
2018/03/04(日) 20:20:02.27ID:p/eHcB/Q
Closure Library「社内で使ってたら使ってくれるんですか?」
954デフォルトの名無しさん
2018/03/04(日) 20:32:08.26ID:7+LmoBkc
Flutterのチュートリアルを翻訳し始めてみた
https://taiyaq.com/contents/Q2PmOvB1p2yMdH9xxe1JpKL6Jx

手軽に触れる。開発ツールとして悪くない。
vscodeに最初から対応しているのがいい。
955デフォルトの名無しさん
2018/03/04(日) 23:16:03.90ID:wkppZr3e
>>950
ワイ大将軍の代弁、ご苦労だぞ
956デフォルトの名無しさん
2018/03/04(日) 23:17:13.31ID:wkppZr3e
>>954
React Nativeの寡占のケツ叩く材料にはいいかもしれんな
それしか価値がないが
957デフォルトの名無しさん
2018/03/04(日) 23:26:12.39ID:24V4/Iiw
覇権言語TypeScriptで作られたVSCodeを使ってDart書いてたら死にたくならない?
958デフォルトの名無しさん
2018/03/05(月) 00:09:59.08ID:YrcFxfr2
AltJS界で覇権
プログラミングエディタで覇権
クラウドプラットフォームでGoogleに圧勝して2番手
.NET Coreもまさかの成功
MSは一時期調子に乗ってMSを馬鹿にしてたWeb系連中を完全に黙らせたよな
結局、所詮Web系は極めて狭い技術領域における開発プロセスの過剰な最適化を競ってるだけで、大した技術はないんだよね
959デフォルトの名無しさん
2018/03/05(月) 00:19:04.86ID:DPv3+ffH
そのWeb系連中のケツ穴舐めて媚びへつらってアヘ顔晒してるM$さんが何だって?
960デフォルトの名無しさん
2018/03/05(月) 00:32:25.07ID:YuCY3xrf
実際、言語設計やシステム設計に関してはMSは群を抜いてると思う
対して、需要を先読みするセンスはGoogleとAppleの方が一枚上手って感じ
まぁ、今のAppleはブランド力だけで需要を強引に上書きしてる感あるが
961デフォルトの名無しさん
2018/03/05(月) 00:37:15.68ID:XKEuRD67
おい林檎豚、M字ハゲベゼルが見えてるぞ
962デフォルトの名無しさん
2018/03/05(月) 07:49:09.52ID:LJ6W+mLO
林檎は、かつてのMSみたいな老害と化してるだろ…
963デフォルトの名無しさん
2018/03/05(月) 09:46:28.71ID:mBYt1wWZ
TypeScriptは確かに覇権ではあるけど
自らにES201X + 型 である。という強い制約を課している。
だからいろいろできたらいいのになって思うけどできない制約が多い。

例えば関数のオーバーロードはできない(宣言はできるけど)。
https://docs.solab.jp/typescript/function/overload/
がっばって実装を工夫しないと読みづらそう。
964デフォルトの名無しさん
2018/03/05(月) 09:56:41.48ID:mBYt1wWZ
>>961
今のApple上層部は技術に興味がない感がすごい。
rootパスワードを無視できるバグができたって完全にテストプロセスが旧態依然ってことだろ。
965デフォルトの名無しさん
2018/03/05(月) 10:36:05.64ID:CUJxqnH7
C言語はほとんど良いんだけどマクロだけは糞すぎ
966 ◆QZaw55cn4c
2018/03/05(月) 10:41:43.46ID:NU3s1WzP
>>965
あのマクロが万能なんでもあり感満載でいいのではないか?
967デフォルトの名無しさん
2018/03/05(月) 10:45:51.07ID:9If1UATd
副作用も含めて良い感じ

関数の中に書いたりしたときにスコープ効いてくれると嬉しかったんだが
968デフォルトの名無しさん
2018/03/05(月) 11:33:55.06ID:VSqqwJ69
Cのプリプロセッサはマクロと呼ぶには貧弱で置換表現と呼ぶには強力過ぎるのがなぁ
969デフォルトの名無しさん
2018/03/05(月) 12:26:34.17ID:hapGaUvz
>>963
普通に関数のオーバーロードできてるやん…
もしかして、オーバーロードが何か理解してない??
970デフォルトの名無しさん
2018/03/05(月) 12:41:42.16ID:mBYt1wWZ
>>969
よく読めよ宣言はできるって言ってるだろ。
エントリーポイントは一箇所に纏める必要があるのが問題だって言ってるの
971デフォルトの名無しさん
2018/03/05(月) 12:42:27.17ID:rvkcJo3P
>>969の理解している「普通の関数のオーバーロード」を説明してもらった方が面白いと思う
972デフォルトの名無しさん
2018/03/05(月) 13:27:13.44ID:cuduWH2+
>>970
エントリポイントが1箇所にまとまってるとオーバーロードじゃないの?

>>971
ポリモフィズムのバリエーションで、ユーザーコードから、別シグニチャに同じメッセージタグで呼び出せるものだと思ってるが



実装が大変かどうかと、オーバーロードが実現できるかどうかを同じにしてることに違和感があっただけだよ
ID:mBYt1wWZが大変だと思ってる事実を否定するものではない
973デフォルトの名無しさん
2018/03/05(月) 13:27:48.97ID:gV5hE2lT
マクロはDOM操作かPHPに似ている
ただしweb系が戦国時代だとしたらcppは覇権江戸幕府
974デフォルトの名無しさん
2018/03/05(月) 14:45:14.98ID:FSU+NZg/
オーバーロードの宣言を一箇所にまとめないといけないというのは改造ocamlのG'Caml等もそうだったな
その方がコンパイラは楽なのもわかるけど、実用しようと思ったら別々の場所で宣言できないと
用を為さないというのもわかる
975デフォルトの名無しさん
2018/03/05(月) 17:35:50.57ID:0z7zpsA6
>ポリモフィズムのバリエーションで、ユーザーコードから、別シグニチャに同じメッセージタグで呼び出せるものだと思ってるが

特段反論というわけでもないけど:
シグネチャというのはそもそもメッセージタグが同一でも型や引数の個数で別になる
つまりそれはシグネチャの定義に過ぎない

シグネチャが別になった結果同じ名前で別のもの(関数定義など)が参照されるのがオーバーロード。
TypeScriptは型情報についてはオーバーロードが行われるが、
実装の参照については(ECMAScriptとの互換性のため)オーバーロードが行われない、
みたいに理解している。
976デフォルトの名無しさん
2018/03/05(月) 17:57:02.33ID:dFIp3KoW
次スレからPart表記なくせば、もっと詰め込める
この形ならElmかNimがはまるな

次世代言語9[Go *** Rust Swift Kotlin TypeScript]

でも文字数ギリだから、次次スレからまた変えることになる
括弧をなくせば使えるが

次世代言語10 Go *** Rust Swift Kotlin TypeScript
977デフォルトの名無しさん
2018/03/05(月) 19:57:21.53ID:D1Vi1BjH
>>976
そもそも言語をスレタイに入れなければ良いのでは?
978デフォルトの名無しさん
2018/03/05(月) 20:31:22.82ID:D61iv0lz
>>977
それだと検索に引っかからなくなる
979デフォルトの名無しさん
2018/03/05(月) 20:38:24.63ID:1R0ciaNQ
別に引っかからなくていいよ。
誰がそこまでこのスレを重視してんの?
980デフォルトの名無しさん
2018/03/05(月) 20:41:16.04ID:03r0WsXs
オレだよ、オレオレ!
981デフォルトの名無しさん
2018/03/05(月) 20:41:22.54ID:r5YruRsJ
>>978
引っかかったところで大してその言語の話してねえようなスレなんだぜ。
Kotlinなんて十レスもない。
引っかかること自体詐欺的。
982デフォルトの名無しさん
2018/03/05(月) 20:56:53.56ID:cQ8T6f3a
たし蟹
もう次スレいらんでしょ
983デフォルトの名無しさん
2018/03/05(月) 21:22:28.56ID:+lEhhk6x
次世代言語と言えばsmalltalkだろ
もっとsmalltalkの話しようぜ!
984デフォルトの名無しさん
2018/03/05(月) 21:27:08.39ID:CUJxqnH7
申し訳ないがジョブズに自慢していいとこ取られて死んだ言語はNG
985デフォルトの名無しさん
2018/03/05(月) 21:35:44.64ID:kL27V13J
あえて言おう
パクられることなくSmalltalkに残った機能なぞカスであると
イメージベース然り、become:然り
986デフォルトの名無しさん
2018/03/05(月) 23:30:43.29ID:XKEuRD67
なんでDart2なんか出しちゃったんだろな
ひょっとしてグーグルって俺よりバカなんじゃないか?
俺だったらGo使うわ
987デフォルトの名無しさん
2018/03/05(月) 23:39:33.13ID:XKEuRD67
いやホント、俺がプロジェクトマスターやってあげたほうがいいんじゃないか?って。
心配になってくるよな、最近のグーグルは、困ったもんだよ
988デフォルトの名無しさん
2018/03/06(火) 01:37:43.48ID:tYgPxfOY
>>986
goはなんか違う気がする。
今のgoでGUIフレームワーク作ったらinterface{}だらけになる予感しかない。
989デフォルトの名無しさん
2018/03/06(火) 01:41:33.41ID:vxZYoA9J
GoにGUIは明らかに不得手。
俺画面周りはHTMLとCSSで書いてるわ。
gopherjs使うと思ったよりブラウザ側でも色々させられるし。
あれ面白いぞ。
990デフォルトの名無しさん
2018/03/06(火) 01:43:22.53ID:tYgPxfOY
どっちかというと比較対象はTypeScriptなんじゃないかな。null安全だったりasync awaitあったり共通点は多い。
でも、jsの仕様を引きづる言語仕様だから、そういう後方互換性を考慮しなくてもいいDartってことなんじゃないか。
google社内でも使われてるみたいだし。
flutterもreactユーザーにはしっくりきやすい。俺はTypeScript+React大好き派だから
かなりいい感じ。
チュートリアルもdartを知らんでも触れるようにできてて分かりやすい。
991デフォルトの名無しさん
2018/03/06(火) 07:20:22.85ID:kXsiMblM
>>981
笑えたわww。

対照的に何度も出てくるみんなのアイドル某ボケ担当言語を外してるあたりも、
個人的怨嗟が垣間見える。
992デフォルトの名無しさん
2018/03/06(火) 08:33:44.80ID:E3ObYs9n
>>991
単純に一番少ないやつ挙げたんだけどね
993デフォルトの名無しさん
2018/03/06(火) 10:09:42.47ID:x/Au45rc
次世代言語9[Haskell Rust Kotlin TypeScript Dart]
http://2chb.net/r/tech/1520298555/
994デフォルトの名無しさん
2018/03/06(火) 17:55:36.25ID:+o/JM6Eu
flutterってどんなアーキ使えばいいの?
reactと同じだからflux?
995デフォルトの名無しさん
2018/03/06(火) 20:24:51.38ID:aemwhbpR
>>994
flux自体がReactの延長上の思考法なわけだから。
基本は極力Stateの管理をするコンポーネントを一箇所に集めろって話。
flutterもおんなじだろうね。
詳しくはReactの考え方でググってみ。
996デフォルトの名無しさん
2018/03/06(火) 23:57:19.92ID:osOtByTq
997デフォルトの名無しさん
2018/03/06(火) 23:57:52.53ID:osOtByTq
998デフォルトの名無しさん
2018/03/06(火) 23:58:24.93ID:osOtByTq
999デフォルトの名無しさん
2018/03/06(火) 23:58:49.26ID:osOtByTq
1000デフォルトの名無しさん
2018/03/06(火) 23:59:19.76ID:osOtByTq
1000
-curl
lud20250108212639nca
このスレへの固定リンク: http://5chb.net/r/tech/1512137301/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

TOPへ TOPへ  

このエントリをはてなブックマークに追加現在登録者数177 ブックマークへ


全掲示板一覧 この掲示板へ 人気スレ | Youtube 動画 >50 >100 >200 >300 >500 >1000枚 新着画像

 ↓「次世代言語Part8[Haskell Rust Kotlin TypeScript] YouTube動画>3本 ->画像>4枚 」を見た人も見ています:
次世代言語9[Haskell Rust Kotlin TypeScript Dart]
次世代言語議論スレ[Rust Kotlin Haskell]第6世代 [無断転載禁止]
次世代言語議論スレ[Go Rust Scala Haskell]第5世代
次世代言語議論スレ[Go Rust Kotlin Scala]第4世代 [無断転載禁止]
【Nexusから】次世代Google端末を語るスレ Part15【Pixelへ】 [無断転載禁止]
次世代言語14 Elixir Crystal Julia Rust Swift
【Nexusから】次世代Google端末を語るスレ Part14【Pixelへ】
【PS5】RDNA2X SIE次世代機予想スレ HWRT 高速SSD 91世代目 【PS5PRO】TFLOPSだけでは語れない
【乃木坂46】山下美月&与田祐希、超キュートな「次世代エース」コンビがヤンマガ登場!タンクトップ&ショートパンツ姿で美肌披露
【終戦】著名リーカー「次世代XBOXよりPS5の方が性能上」「次世代XBOXはメモリが少ない」【Scarlett】
Xboxの開発者、Project Scorpioは「本格的な次世代機」になると発言 [無断転載禁止]
【Scarlett】 Xbox次世代機はCSのパワー、スピード、パフォーマンスの新たな基準を打ち立てる製品 ★9
【Scarlett】 Xbox次世代機はCSのパワー、スピード、パフォーマンスの新たな基準を打ち立てる製品 ★16
【Scarlett】 Xbox次世代機はCSのパワー、スピード、パフォーマンスの新たな基準を打ち立てる製品 ★13
【Scarlett】 Xbox次世代機はCSのパワー、スピード、パフォーマンスの新たな基準を打ち立てる製品 ★12
【Scarlett】 Xbox次世代機はCSのパワー、スピード、パフォーマンスの新たな基準を打ち立てる製品 ★11
【速報】次世代Xbox「Scarlett」はZen2、Navi、GDDR6、カスタムSSDで最高品質の次世代ゲーム機に★6
【Type-C】USBの次世代仕様「USB4」が発表。Thunderbolt 3ベースで最大転送速度は40Gbpsに
【次世代通信規格】LTE and Others 総合スレ 84
【車】ホンダ、AIを持つ次世代スポーツEV「Sports EV Concept」東京モーターショー2017で世界初公開 [無断転載禁止]
【正規スレ】【PS5】RDNA2X SIE次世代機卵zスレ HWRT 高速SSD アンチ出禁 83世代目 【PS5PRO】
【速報】次世代Xbox「Scarlett」はZen2、Navi、GDDR6、カスタムSSDで最高品質の次世代ゲーム機に★4
SKE本スレがウッキウキでスケジュールに「CDTVライブ!」を書いたのに、SKEから次世代選抜ゼロだったというエピソードが何回みても面白い
【Scorpio】次世代ゲーム機テクノロジースレ 【TegraX3版Switch 】
【初音ミク】グッドスマイルカンパニーが次世代型飛行フィギュア「ねんどろーん」を発表!あの「ねんどろいど」がついに大空へ!動画有り [無断転載禁止]
【次世代スピーカー】透過スクリーンに動く歌詞を表示「Lyric Speaker」発売 [無断転載禁止]
【PS4で出ない】The Elder Scrolls VI発売は次世代機と判明
【乃木坂46の次世代エース】「美少女」5期生・井上和(17)の圧倒的な存在感と透明感!グラビア登場 キュートなセーラー服姿披露 [ジョーカーマン★]
PS5独占「Astro's Playroom」驚異の次世代グラフィックを僅かロード6秒で実現
【PS5】RDNA2X SIE次世代機予想スレ HWRT 高速SSD アンチ出禁 84世代目 【PS5PRO】
【PS5】RDNA2X SIE次世代機卵zスレ HWRT 高速SSD アンチ出禁 80世代目 【PS5PRO】
PS5独占「Astro's Playroom」驚異の次世代グラフィックを僅かロード10秒で実 Part2
【Pro】【Switch】 次世代ゲーム機テクノロジースレ No.6【Scorpio】 [無断転載禁止]
一人で行く次世代ワールドホビーフェア '18 winter in幕張メッセ
次世代XBOX『Scarlett』、2020年に従来型コンソールとクラウドコンソールの2種類を発売か?
次世代たばこ「三つ巴の戦い」 JT反撃なるか?【iQOS/ploom tech/glo】
任天堂の次世代ゲーム機 Nintendo Smart、「すでに量産開始されている」とWSJが報道
【非正規317万人 フリーター52万人 ニート40万人世代】就職氷河期世代の就労支援、人材派遣会社に国が委託へ ★6
【米】わずか5秒で時速310km到達 次世代交通システム「ハイパーループ」、真空チューブでの高速試運転に成功(動画あり) [無断転載禁止]
【Switch】 次世代ゲーム機テクノロジースレ 【Scorpio】
マイクロン広島新工場が完成、次世代DRAMとSSDを量産、韓国へのフッ化水素の輸出規制とは一切無関係
【芸能】将来メチャ怖くなりそう!次世代ご意見番ランキング 有吉弘行、指原莉乃、ミッツ・マングローブ、加藤浩次 など [無断転載禁止]
8/10(月)夜7時からのCDTVSPに出演する「AKB48グループ CDTVスペシャル次世代選抜」のメンバーを予想しよう!★1.2【夏ソングSPメドレー】
ATLUS「CATHERINEはファミコン世代向けに作った。エロ目的で買ったガキには難しいと評判が悪かった」
【非正規317万人 フリーター52万人 ニート40万人世代】就職氷河期世代の就労支援、人材派遣会社に国が委託へ ★11
Sony Mobile 次世代Xperia 総合228
有機ELさえ置き去りにする次世代液晶 パナソニックがメガコントラスト液晶の詳細を発表
Sony Mobile 次世代Xperia 総合188
【車】トヨタ、新型車JPN TAXIを発売 日本の「おもてなしの心」を反映した様々な人に優しい次世代タクシー
Sony Mobile 次世代Xperia 総合168
Sony Mobile 次世代Xperia 総合181
Sony Mobile 次世代Xperia 総合228
Sony Mobile 次世代Xperia 総合148
【非正規317万人 フリーター52万人 ニート40万人世代】就職氷河期世代の就労支援、人材派遣会社に国が委託へ ★7
NEC PC、次世代ゲーム機「Project Engine」を発表
【音楽】SEKAI NO OWARI、映画『進撃の巨人』主題歌「ANTI-HERO」MV解禁!これがナウい世代に好かれる邦楽!
【非正規317万人 フリーター52万人 ニート40万人世代】 就職氷河期世代の就労支援、人材派遣会社に国が委託へ★3
【PC】AMD、「Spectre」対策で次世代チップ「Zen 2」の設計を変更
次世代ビデオコーデック総合スレPart1 【HEVC/VP9/AV1等】
【軍事】スウェーデンの次世代戦闘機「グリペンE」が初飛行に成功、スウェーデン空軍やブラジルが採用 サーブ社 [無断転載禁止]
【PS5】情報解禁 SIE次世代機予想スレ 【携帯機&PSVR2】 逆襲の38世代目
次世代XBOX、ロックハートの低価格版が7Tflopsから8Tflopsに底上げか!?
クビレ担当牧野・爆乳担当羽賀・ケツ担当横山・意外性担当加賀・次世代エース北川←モーニング娘。 のグラビア班ってもうこの5人でよくね
Sony Mobile 次世代Xperia 総合235
ハロプロ次世代エースは誰か?北川莉央、山ア愛生、伊勢鈴蘭、松永里愛、河西結心、豫風瑠乃、山ア夢羽、米村姫良々
07:26:39 up 27 days, 17:50, 1 user, load average: 7.68, 8.55, 8.86

in 2.7279670238495 sec @0.089956045150757@0b7 on 010821