スレタイ以外の言語もok
前スレ
次世代言語Part7[Go Rust Swift Kotlin TypeScript]
http://mevius.5ch.net/test/read.cgi/tech/1508403098/
探検
次世代言語Part8[Haskell Rust Kotlin TypeScript]
レス数が1000を超えています。これ以上書き込みはできません。
2017/12/01(金) 23:08:21.45ID:FxdZTiuZ
2017/12/01(金) 23:25:59.72ID:zV3aJam4
スレ立て乙だけど…Haskell?
2017/12/01(金) 23:27:25.27ID:taGRKU1H
SwiftがなくなってHaskellが復活とか笑っちゃいますね!
2017/12/01(金) 23:31:17.55ID:FxdZTiuZ
Haskell好きやねん
2017/12/01(金) 23:33:22.55ID:79R00kdr
結局Haskell批判してたのエアプだけだったし、実のある批判が出るまではええじゃろ
2017/12/01(金) 23:40:21.46ID:8Ef9tVvd
まぁランダムでスレタイに入れる言語を4つ選ぶプログラムとか書いちゃえばいいのよ
2017/12/01(金) 23:40:21.94ID:FxdZTiuZ
モナドかわいいよモナド
あとRustも好き
あとRustも好き
2017/12/02(土) 00:01:37.22ID:IJ6GXagf
つまり毎回スレたて人の好みで言語が決まるのですね。
乙。だがGo入れろ
乙。だがGo入れろ
2017/12/02(土) 00:09:24.28ID:SCTVwGxx
Haskellは前の議論で次世代から落ちたはずだけど?
あとRustなんて言語未満いれるな
あとRustなんて言語未満いれるな
10デフォルトの名無しさん
2017/12/02(土) 01:15:27.47ID:sEwFCJtO 面接でたまに、特定の言語けなす応募者が居るけど、
じゃあどんな言語が好きですか?なぜその言語が
良いと考えるのですか?と聞くとダンマリ。
じゃあどんな言語が好きですか?なぜその言語が
良いと考えるのですか?と聞くとダンマリ。
2017/12/02(土) 01:45:05.81ID:H6Gj4fb5
いいんじゃねーの?
特定の言語をマンセーしてる奴よりか、
言語の問題点を把握してる奴のがプログラマとしては信用できるし。
特定の言語をマンセーしてる奴よりか、
言語の問題点を把握してる奴のがプログラマとしては信用できるし。
2017/12/02(土) 01:54:29.37ID:Xx8KInD+
不満がない、見つけられないのが良い所だろうしな
2017/12/02(土) 02:11:44.76ID:WmrP00A3
このスレは特定の言語をマンセーする人は少ないな
その代わり知らない言語を批判する人はいるけど
その代わり知らない言語を批判する人はいるけど
2017/12/02(土) 02:18:08.08ID:vHUqozHI
sから始まる言語を批判すると、気持ち悪い信者がワラワラと湧いてくるよ
2017/12/02(土) 03:12:15.72ID:UE7qzU9L
漏れなら面接で、Rust, Elixir, Kotlin, Haxe の良い点を聞く
16デフォルトの名無しさん
2017/12/02(土) 09:18:47.22ID:sEwFCJtO >>11
ダンマリは社会人として不味いよ。
ダンマリは社会人として不味いよ。
2017/12/02(土) 09:28:01.01ID:H6Gj4fb5
18デフォルトの名無しさん
2017/12/02(土) 11:08:11.50ID:pAxOhb0h TypeScript 入れるくらいなら PureScript 入れたらいいのに
2017/12/02(土) 11:48:08.89ID:72s6oBNC
そもそも次世代言語とかいうものそのものが、大企業の広告塔でしかないからな
GoとかTypeScriptとかRustとかモロそれ
コンパイラがGPLでライセンスされて活発に開発されて、特定の企業集団に開発が握られてない言語だけを数えるべきでは
この点でオレオレ実装と、政治でねじ込んだクソ古いgcc実装しかないGoや、llvmバックしかないRustは除外される
Typescriptもアウト。まともな次世代言語は存在しないと言ってもいい
GoとかTypeScriptとかRustとかモロそれ
コンパイラがGPLでライセンスされて活発に開発されて、特定の企業集団に開発が握られてない言語だけを数えるべきでは
この点でオレオレ実装と、政治でねじ込んだクソ古いgcc実装しかないGoや、llvmバックしかないRustは除外される
Typescriptもアウト。まともな次世代言語は存在しないと言ってもいい
2017/12/02(土) 11:52:14.94ID:3VmXWZxS
言語の仕様ではなくて成り立ちを問題視しちゃう子
2017/12/02(土) 11:57:58.87ID:mYy0y04S
勝手に規則を決めて全部アウトとかオモロイ奴やな
22デフォルトの名無しさん
2017/12/02(土) 12:00:04.17ID:pAxOhb0h >コンパイラがGPLでライセンスされて
なんだろうこの臭気
なんだろうこの臭気
2017/12/02(土) 12:00:59.26ID:TzW9B0ui
「批判」とか「政治」とか大雑把なジャンルしか認識できない奴はいっぱいいる
記憶力が足りないのか
そもそもリアルタイムで論破すれば記憶力いらないのに、反射神経が足りないのか
記憶力が足りないのか
そもそもリアルタイムで論破すれば記憶力いらないのに、反射神経が足りないのか
2017/12/02(土) 12:05:29.85ID:72s6oBNC
言語の成り立ちっつーか、誰が開発しててどこが意思決定権持ってるかは重要だぞ?
Javaコンパイラのバグを握りつぶしたOracleの記憶はまだ新しい
言語はプログラムを作るものなのに、その言語がブラックボックスかしてたら、そんなもん使うべきではない
どんなリスクがあるか分かったもんではない
Javaコンパイラのバグを握りつぶしたOracleの記憶はまだ新しい
言語はプログラムを作るものなのに、その言語がブラックボックスかしてたら、そんなもん使うべきではない
どんなリスクがあるか分かったもんではない
2017/12/02(土) 12:16:13.40ID:72s6oBNC
GPLはクサイと言われるが(実際面倒な話なのは承知してるが)、
GPL以外のライセンスでは、後付けでブラックボックスかできてしまう
だからGPLのコードベースで開発がすすんでいることは重要
GPL以外のライセンスでは、後付けでブラックボックスかできてしまう
だからGPLのコードベースで開発がすすんでいることは重要
2017/12/02(土) 12:22:00.15ID:mYy0y04S
じゃあ何を推すのさ
27デフォルトの名無しさん
2017/12/02(土) 12:24:56.17ID:pAxOhb0h BSDやAPLでコンパイラをリリースしたら「次世代言語じゃない!」ねえ ┐(´д`)┌
2017/12/02(土) 12:26:49.92ID:PRegk6Y6
Vala?
2017/12/02(土) 12:32:50.98ID:JadDCVYU
ID:72s6oBNC
今日のガイジ
便所ブラシことペチプーでも書いてればええんやないか?
今日のガイジ
便所ブラシことペチプーでも書いてればええんやないか?
2017/12/02(土) 12:54:07.38ID:72s6oBNC
2017/12/02(土) 13:01:57.78ID:qE46CGT4
>>30
よお土人
よお土人
2017/12/02(土) 13:03:37.01ID:TzW9B0ui
Haskell Rustあたりは仕様を知ってるだけで嫉妬されるレベルなんだろ
そりゃ実装はブラックボックスでもいいかなってなるだろ
そりゃ実装はブラックボックスでもいいかなってなるだろ
2017/12/02(土) 13:05:02.42ID:72s6oBNC
>>32
いかにも実際の仕事をしらないお偉いさんが机の上でこねくりまわした感がある
いかにも実際の仕事をしらないお偉いさんが机の上でこねくりまわした感がある
2017/12/02(土) 13:17:40.53ID:TzW9B0ui
言語が何であろうと使ったことがないアプリはソース読めないぞ
読む前に使い込むべきだ
使う前に読めると思う方が机上なんだよ
読む前に使い込むべきだ
使う前に読めると思う方が机上なんだよ
2017/12/02(土) 13:18:04.32ID:JVkL85Me
やっぱHaskell入ったんだな。
よっぽど悔しかったんだろうなあ。推しなのに。
AKB総選挙かよw
よっぽど悔しかったんだろうなあ。推しなのに。
AKB総選挙かよw
2017/12/02(土) 13:23:56.16ID:ugnQ3p4B
労力が見合うかは分からないけれど、
大抵のコンパイラはソースも公開されてない?
大抵のコンパイラはソースも公開されてない?
37デフォルトの名無しさん
2017/12/02(土) 13:25:37.97ID:pAxOhb0h2017/12/02(土) 13:26:42.90ID:72s6oBNC
>>36
まさかMITやAPLとGPLの違いが分からん奴がこのスレにいるとは
まさかMITやAPLとGPLの違いが分からん奴がこのスレにいるとは
39デフォルトの名無しさん
2017/12/02(土) 13:27:52.88ID:pAxOhb0h2017/12/02(土) 13:30:13.04ID:72s6oBNC
2017/12/02(土) 13:32:42.01ID:pAxOhb0h
あとな、言語屋の端くれとして言わせてもらうと
まあ成果物(特に公的研究機関)の公開の際にGPL採用するって選択肢はほぼないんだわ
まあ成果物(特に公的研究機関)の公開の際にGPL採用するって選択肢はほぼないんだわ
2017/12/02(土) 13:34:31.51ID:pAxOhb0h
2017/12/02(土) 13:35:34.51ID:pAxOhb0h
PHPが相応しいかどうかは知らんが、まあガイジ乙ってこった
2017/12/02(土) 13:37:18.57ID:72s6oBNC
結局このスレの住民も、ジョブスの作った快適な牢獄で永久に囚われる方がお好みってか
ほんとディストピアになったな
ほんとディストピアになったな
2017/12/02(土) 13:40:52.41ID:72s6oBNC
>>41
HaskellはともかくGoやRust、Typescriptは研究機関の成果物じゃなくて単なる企業の広告塔だろうが……
HaskellはともかくGoやRust、Typescriptは研究機関の成果物じゃなくて単なる企業の広告塔だろうが……
2017/12/02(土) 13:44:29.43ID:Jtrxh33g
成果物ではなくて広告塔でもなくて自社製品を作るためにできた副産物だろ。
2017/12/02(土) 13:54:09.27ID:TzW9B0ui
Rustが研究しているのはジョブズではなく静的型付け
牢獄になるとすれば静的型付けが牢獄になるんだよ
牢獄になるとすれば静的型付けが牢獄になるんだよ
2017/12/02(土) 13:55:36.52ID:pAxOhb0h
2017/12/02(土) 13:58:37.03ID:pAxOhb0h
2017/12/02(土) 14:36:48.87ID:TzW9B0ui
静的型付けはQBみたいな奴だ
牢獄と契約は似たようなものと思うか全然違うと思うかは人それぞれ
牢獄と契約は似たようなものと思うか全然違うと思うかは人それぞれ
2017/12/02(土) 15:29:44.21ID:JadDCVYU
じゃあどんな言語が好きですか?なぜその言語が
良いと考えるのですか?と聞くとダンマリ。
良いと考えるのですか?と聞くとダンマリ。
2017/12/02(土) 15:37:46.07ID:Jtrxh33g
そんなやついないだろ
2017/12/02(土) 16:02:09.41ID:ugnQ3p4B
2017/12/02(土) 16:16:44.09ID:Jtrxh33g
仕様と実装は分けて考えるべき。
2017/12/02(土) 16:25:11.46ID:Dl6HEW0V
厳密に言えば配布されているソースと配布されているバイナリが違う可能性は存在するけどな
わかりやすい罠でも仕込まれてない限り検証不可能だろ、GPLであっても
わかりやすい罠でも仕込まれてない限り検証不可能だろ、GPLであっても
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/
緩いライセンスの上で企業が主導するというのが、昨今のオープンソース界隈
オープンソース同士の競争や発展が当たり前になって、落ち着くべきところに落ち着いた
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/
2017/12/02(土) 17:48:55.03ID:wMBa/T9i
2017/12/02(土) 17:54:11.74ID:wMBa/T9i
コードのソースが公開されていることと、プログラムに対する自由が保証されていることは全く違う
ちょっとは勉強しろ
https://www.gnu.org/philosophy/open-source-misses-the-point.ja.html
ちょっとは勉強しろ
https://www.gnu.org/philosophy/open-source-misses-the-point.ja.html
2017/12/02(土) 17:54:42.99ID:8J+E3A3v
クローズドにされた派生物は元のオープンソースにその企業なりの変更を加えたものだろ。
他の人はクローズドにされる前のオープンな方を使い続ければいいだけ。
他の人はクローズドにされる前のオープンな方を使い続ければいいだけ。
2017/12/02(土) 18:00:12.16ID:wMBa/T9i
2017/12/02(土) 18:05:29.89ID:9Vn/PEwl
今時、GPL真理教のご登場とは、驚きだな。
そういう人は、次世代言語がgccに組み込まれるまで、待ってたらいいと思うよ。
そういう人は、次世代言語がgccに組み込まれるまで、待ってたらいいと思うよ。
2017/12/02(土) 18:22:10.64ID:8J+E3A3v
新しく配布するライセンスを変更することはできても、一旦ライセンスされたものを過去に遡って
変更するなんてことはそのライセンス自体にそのような規定がない限り無理。
新しく配布するライセンスを変えるって話なら(その権利がある者なら)元がGPLだろうが可能なのは同じ。
変更するなんてことはそのライセンス自体にそのような規定がない限り無理。
新しく配布するライセンスを変えるって話なら(その権利がある者なら)元がGPLだろうが可能なのは同じ。
2017/12/02(土) 19:42:01.02ID:H6Gj4fb5
GPLも違反の場合の措置は国の法律に従うとかそんな規約だった気がするから、
国によっては過去に遡って棄却とかあるんじゃねーの?
国によっては過去に遡って棄却とかあるんじゃねーの?
2017/12/02(土) 20:00:19.24ID:JVkL85Me
言語屋の端くれって何者なんだ。
工学博士の端くれぐらいまではギリギリ言ってみようかとも思えるけど、言語屋って凄いな。
工学博士の端くれぐらいまではギリギリ言ってみようかとも思えるけど、言語屋って凄いな。
2017/12/02(土) 21:01:20.98ID:JadDCVYU
こんなところで喚くしか能のないゴミ屑が
ライセンスうんぬんで不利益被るほどの立場なわけないだろ
大人しくプェチピィで下痢糞プリプリしてろよ
ライセンスうんぬんで不利益被るほどの立場なわけないだろ
大人しくプェチピィで下痢糞プリプリしてろよ
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/
前スレ終盤でも名前挙がってたが、Elmバズってるな
本スレがない言語(Elm Nim Crystal他)もスレタイ候補でいいか
ElixirからElmの流れで、いよいよオブジェクト指向に対する懐疑心が無視できないレベルに達した2017年冬。
https://ubiteku.oinker.me/2017/12/02/skepticism-about-oo/
2017/12/02(土) 21:16:27.51ID:vrpISaZz
OOを批判するのはいいけど消去法で関数型とか思うのは大間違い
消去法するくらいなら対案を何も出さない方が正しい
消去法するくらいなら対案を何も出さない方が正しい
2017/12/02(土) 22:37:35.51ID:mYy0y04S
関数型の定義はよく分からんけど、第一級関数は欲しいな
2017/12/02(土) 23:58:45.47ID:IJ6GXagf
redux(react)触ったやつがelmに流れてるんだろうな。
js+redux+immutable.jsの組み合わせだったらelmってことかね
js+redux+immutable.jsの組み合わせだったらelmってことかね
2017/12/03(日) 02:09:05.69ID:Ct3m3qtO
「じゃあお前はどんな言語なら満足なんだ」ってしつこく聞かれてるから言うが
次世代言語かって言われたら微妙だからあんま挙げる気はなかったんだが、理想はVala
Cにトランスパイルされるから速度は良好、コンパイラのライセンスはLGPL、構文は比較的モダン
ただ今時の他言語と比較するともう一声ほしい
次世代言語かって言われたら微妙だからあんま挙げる気はなかったんだが、理想はVala
Cにトランスパイルされるから速度は良好、コンパイラのライセンスはLGPL、構文は比較的モダン
ただ今時の他言語と比較するともう一声ほしい
2017/12/03(日) 02:59:41.58ID:Hpu25AWg
バラ、初めて聞いたわ
よくそんなマイナー言語知ってるな
よくそんなマイナー言語知ってるな
2017/12/03(日) 09:08:16.53ID:J28DlChh
GNU狂儲じゃない人にとってはValaなんてC#の劣化コピー未満だし、
C#は現世代言語だから次世代には不適格だろう
C#は現世代言語だから次世代には不適格だろう
2017/12/03(日) 12:08:02.85ID:7jfP6ZRC
その性能を見せてくれたら変わるかもしれんけどな
.NETのメモリを食い尽くす糞戦略GCが無いというならまあ……
Cにトランスパイルされて性能良好という点ではnimと丸かぶりな上
基本的にnimのほうが融通がききそうな気はするけど
GObject互換が有利に働くケース(例えばcairo呼ぶとか)ではValaの方がいいんだろう、たぶん、知らんけど
.NETのメモリを食い尽くす糞戦略GCが無いというならまあ……
Cにトランスパイルされて性能良好という点ではnimと丸かぶりな上
基本的にnimのほうが融通がききそうな気はするけど
GObject互換が有利に働くケース(例えばcairo呼ぶとか)ではValaの方がいいんだろう、たぶん、知らんけど
2017/12/03(日) 15:33:23.03ID:Es8BrMdC
まあだからValaが次世代言語とは一言も言ってない
例えばNimのコンパイラが(L)GPLになってくれてれば全力で推すよ。でも現実はMITだ
例えばNimのコンパイラが(L)GPLになってくれてれば全力で推すよ。でも現実はMITだ
2017/12/03(日) 16:03:56.50ID:Cfl2NYpj
>>60
Linuxなど極一部の例外を除いて、今時のまともなOSSは基本的に全て企業様が開発しており、
寛容にも乞食に対して提供してくださっているものである
GPL信者が主張する、企業が成果物をGPL化するメリットとして、
「コミュニティからの協力を受けられる」というのがあるが、(乞食共の協力がどれだけ役に立つかは別として)これには落とし穴がある
GPLで公開してるものに対して乞食がプルリクを出し、これが本家にマージされた時点で、本家のソースがGPLに感染するということだ
これは企業にとって到底受け入れられるものではない
GPLは企業のオープンソースへの参加の障害になるんだよ
Linuxなど極一部の例外を除いて、今時のまともなOSSは基本的に全て企業様が開発しており、
寛容にも乞食に対して提供してくださっているものである
GPL信者が主張する、企業が成果物をGPL化するメリットとして、
「コミュニティからの協力を受けられる」というのがあるが、(乞食共の協力がどれだけ役に立つかは別として)これには落とし穴がある
GPLで公開してるものに対して乞食がプルリクを出し、これが本家にマージされた時点で、本家のソースがGPLに感染するということだ
これは企業にとって到底受け入れられるものではない
GPLは企業のオープンソースへの参加の障害になるんだよ
2017/12/03(日) 16:11:23.39ID:Cfl2NYpj
77デフォルトの名無しさん
2017/12/03(日) 16:16:53.98ID:ySR1wv1e そういうものはデュアルライセンスで公開するんじゃないか普通。知らんけど。
2017/12/03(日) 16:17:53.46ID:LB13FI05
逆に考えれば自分がただで作ったものが企業の金もうけに使われるのを防いでるわけだろ。
そういういみでGPLは必要。
そういういみでGPLは必要。
2017/12/03(日) 16:32:50.74ID:Cfl2NYpj
>>78
そう。つまりこういうことだ。
ユーザーからのコミットを受け入れるというポジティブな理由でオープンソースを採用するならGPLは不適切。
オラクルのように、有償契約への誘導を前提としてオープンソース版を撒き餌にするなら、
成果物の盗用を防ぐ意味でGPLが適切。
本来OSS信者が批判すべきなのはどちらだろう?
一度落ち着いて考えてみよう。
そう。つまりこういうことだ。
ユーザーからのコミットを受け入れるというポジティブな理由でオープンソースを採用するならGPLは不適切。
オラクルのように、有償契約への誘導を前提としてオープンソース版を撒き餌にするなら、
成果物の盗用を防ぐ意味でGPLが適切。
本来OSS信者が批判すべきなのはどちらだろう?
一度落ち着いて考えてみよう。
2017/12/03(日) 16:46:21.13ID:Es8BrMdC
だから「自由ソフトウェア」と「オープンソースソフトウェア」は違う概念って話だよな
そもそも企業が主導してる開発は、企業の恣意が入るわけで、自由ではない
今は乞食に恵むことが点数になるからそうしてるだけ
乞食に甘んじるならそれでいいかもしれんがな
一念発起して自分の畑を開墾することになったときに、GPLがないと企業に土地を盗まれたり、いつのまにか乞食に占拠されたりするんだよ
だからGPLの言語は重要なんだよ
そもそも企業が主導してる開発は、企業の恣意が入るわけで、自由ではない
今は乞食に恵むことが点数になるからそうしてるだけ
乞食に甘んじるならそれでいいかもしれんがな
一念発起して自分の畑を開墾することになったときに、GPLがないと企業に土地を盗まれたり、いつのまにか乞食に占拠されたりするんだよ
だからGPLの言語は重要なんだよ
2017/12/03(日) 16:47:34.26ID:Cfl2NYpj
もっというと、
・プロジェクトにコミットした個人乞食にとって、そのプロジェクトの最新の成果物を継続的に利用できる利益を守るのがGPL
・開発元の企業にとっての利益を守るのが「寛容なライセンス」
ということだ。そして、下記の理由から、後者を優先したほうがOSS全体にとっての利益が大きい。
・一般に、個人より企業の方がOSS遥かに多くの貢献をしているから、企業の参入を促したほうがOSSは拡充する
・当たり前だが、利用者にとっては寛容なライセンスの方が利用しやすい
・プロジェクトにコミットした個人乞食にとって、そのプロジェクトの最新の成果物を継続的に利用できる利益を守るのがGPL
・開発元の企業にとっての利益を守るのが「寛容なライセンス」
ということだ。そして、下記の理由から、後者を優先したほうがOSS全体にとっての利益が大きい。
・一般に、個人より企業の方がOSS遥かに多くの貢献をしているから、企業の参入を促したほうがOSSは拡充する
・当たり前だが、利用者にとっては寛容なライセンスの方が利用しやすい
2017/12/03(日) 16:50:27.91ID:MdLc4Lg3
83デフォルトの名無しさん
2017/12/03(日) 16:52:07.39ID:dv78RNI3 個人で出来る開発なんて限られてるから企業が参入してくれたほうがいいし、企業は慈善団体じゃないんだから利益考えるのは当然だろ
企業がーステマがーって気持ち悪すぎる
企業がーステマがーって気持ち悪すぎる
84デフォルトの名無しさん
2017/12/03(日) 16:54:31.97ID:dv78RNI3 これだからワッチョイつけろと言ったのに
2017/12/03(日) 16:58:46.31ID:FoZg6mpZ
この板ってワッチョイあるの?
2017/12/03(日) 17:00:11.80ID:Q+UzJ2jP
わざわざ次世代言語スレに来て、
「俺ルールにより、全ての言語は次世代ではない!!」
ってマ?
「俺ルールにより、全ての言語は次世代ではない!!」
ってマ?
2017/12/03(日) 18:06:19.80ID:vwbP6I+a
GPLは自分が作ったものだけじゃなく使ったものにも影響を及ぼすからなあ
LGPLが一番マトモなんじゃないかと思ってるんだが
LGPLが一番マトモなんじゃないかと思ってるんだが
2017/12/03(日) 18:39:22.73ID:sBoz0VTg
2017/12/03(日) 18:44:51.43ID:n/4R2J1f
望まれてないから拡大しないんだ、ってのが分からないところが儲
2017/12/03(日) 18:51:18.78ID:9khz2s/N
>>86
いつもの事だよ
いつもの事だよ
2017/12/03(日) 19:06:01.80ID:Hpu25AWg
>>86
次世代ガイジ
次世代ガイジ
2017/12/03(日) 19:07:55.59ID:fDoYnNZt
2017/12/03(日) 20:15:24.10ID:GYPu5Uwk
サポートを永久に続けさせたいとは思ってないんじゃないかな
ただ、無料版だけサポート停止して有料版に移行させる手口を防ぐだけでいい
ただ、無料版だけサポート停止して有料版に移行させる手口を防ぐだけでいい
2017/12/03(日) 20:40:28.46ID:T5z0rd35
このガイジの言葉を全否定するが、別に言語の処理系のライセンスがGPLだろうと非GPLだろうと
その言語で書かれたプログラムのライセンスには何も影響しない
Javaの処理系がクローズドソースだった時にJavaコードがオープンソースにできなかったかってことを考えればすぐ分かる
言語の仕様がオープンなら、もしこのガイジの懸念どおり処理系をオープン→クローズドソースにされたところで
本当にその言語が有用だったらクローンの処理系が出てくるだけのこと。open-jdkやらmonoが良い例だ
要するにこのガイジ、ライセンスのことを何も分かってない知ったか
その言語で書かれたプログラムのライセンスには何も影響しない
Javaの処理系がクローズドソースだった時にJavaコードがオープンソースにできなかったかってことを考えればすぐ分かる
言語の仕様がオープンなら、もしこのガイジの懸念どおり処理系をオープン→クローズドソースにされたところで
本当にその言語が有用だったらクローンの処理系が出てくるだけのこと。open-jdkやらmonoが良い例だ
要するにこのガイジ、ライセンスのことを何も分かってない知ったか
2017/12/03(日) 20:46:25.36ID:T5z0rd35
ガイジを殴るだけのレスだと何なので
Haxeみたいな「書いた端からあらゆる言語にトランスパイルして使う言語」ってやっぱりコンセプトとして駄目なのかね?
最近のいわゆる次世代言語って、おおむねネイティブ(もしくはJavaマシンコード)にコンパイルする系ばっかのはず
例外はTypescriptとHackくらいか?
Haxeみたいな「書いた端からあらゆる言語にトランスパイルして使う言語」ってやっぱりコンセプトとして駄目なのかね?
最近のいわゆる次世代言語って、おおむねネイティブ(もしくはJavaマシンコード)にコンパイルする系ばっかのはず
例外はTypescriptとHackくらいか?
2017/12/03(日) 20:55:26.88ID:GYPu5Uwk
93,94をまとめると
GPLなコードを再利用しつつ有料版に移行させるのは無理
コードを捨ててクローンするならOK
GPLなコードを再利用しつつ有料版に移行させるのは無理
コードを捨ててクローンするならOK
2017/12/03(日) 21:05:47.23ID:RLNGue2S
>>94
Javaに関しては、openjdkを勝手にフォークして改変したものを出回らせたら特許侵害でオラクルに訴えられるよ
特許の利用はあくまで公式にリリースされたopenjdkに対して認められてるもので、
弄ったらJavaとは認められなくなり即訴訟
Javaに関しては、openjdkを勝手にフォークして改変したものを出回らせたら特許侵害でオラクルに訴えられるよ
特許の利用はあくまで公式にリリースされたopenjdkに対して認められてるもので、
弄ったらJavaとは認められなくなり即訴訟
2017/12/03(日) 21:19:08.36ID:T5z0rd35
>>97
すまん、open-jdkっていうのは不正確だったな。IcedTeaって言った方が正確だった
まあ厳密にはIcedTeaも当時のSunの協力あってのことで、勝手フォークでやった訳ではなかったんだが……
すまん、open-jdkっていうのは不正確だったな。IcedTeaって言った方が正確だった
まあ厳密にはIcedTeaも当時のSunの協力あってのことで、勝手フォークでやった訳ではなかったんだが……
2017/12/03(日) 21:19:33.27ID:7jfP6ZRC
>>95
中間言語のせいで遅くなってる直接アセンブリ(機械語より広い意味で)にできるなら効率的なのにグギギギギ
というのを気にしなければトランスパイラでもいいんじゃね
Typescript→Javascriptぐらいなら気にならんだろ
Scalaとか思いっきりJVMに足を引っ張られてた例と思う
ちょっと話は違うけど可変長配列を値返しできる言語を主にC系のことしか考えてないバックエンドで実装すると
mallocして返すかForthみたいにデータスタックをもう一つ用意するかぐらいしか方法がない、みたいな
中間言語のせいで遅くなってる直接アセンブリ(機械語より広い意味で)にできるなら効率的なのにグギギギギ
というのを気にしなければトランスパイラでもいいんじゃね
Typescript→Javascriptぐらいなら気にならんだろ
Scalaとか思いっきりJVMに足を引っ張られてた例と思う
ちょっと話は違うけど可変長配列を値返しできる言語を主にC系のことしか考えてないバックエンドで実装すると
mallocして返すかForthみたいにデータスタックをもう一つ用意するかぐらいしか方法がない、みたいな
100デフォルトの名無しさん
2017/12/03(日) 21:29:59.69ID:7jfP6ZRC 書いてからもっといい例を思いついた
トランスパイル先に選ばれそうな言語(CとかJVMとかJavascriptとか)って
どれも末尾呼び出し最適化が保証されてないから関数型言語なら避けたいはず
トランスパイル先に選ばれそうな言語(CとかJVMとかJavascriptとか)って
どれも末尾呼び出し最適化が保証されてないから関数型言語なら避けたいはず
101デフォルトの名無しさん
2017/12/03(日) 21:51:34.72ID:XVQ9VXzY 末尾再起最適化なんかトランスパイルの段階でできるだろ
自分でやってみりゃわかるけど、別の言語への変換って細かい仕様のすり合わせが難しくて
どう頑張っても変換結果は綺麗なコードにはならんよ
自分でやってみりゃわかるけど、別の言語への変換って細かい仕様のすり合わせが難しくて
どう頑張っても変換結果は綺麗なコードにはならんよ
102デフォルトの名無しさん
2017/12/03(日) 22:16:35.41ID:7jfP6ZRC103デフォルトの名無しさん
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の壁があるとかないとか ttps://togetter.com/li/280057
またモジュールを超えるとアクセス制御にかかったりもする
ありがとうありがとう
で、goto式だと呼び出し先も含めてひとつの関数にまとめないといけないので
他の関数をtail callしているのがつながって爆発的にコードサイズが膨れ上がる
JVMだと64kbの壁があるとかないとか ttps://togetter.com/li/280057
またモジュールを超えるとアクセス制御にかかったりもする
110デフォルトの名無しさん
2017/12/03(日) 23:52:56.38ID:H7G92E6b >>100
javascripというかecmascriptは末尾再帰の最適化は仕様になってる。
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:USho8dw3114デフォルトの名無しさん
2017/12/04(月) 08:30:55.17ID:8gND/ZcP くっさNG回避すんな
115デフォルトの名無しさん
2017/12/04(月) 09:02:24.71ID:dvJUWhXs jsへのトランスパイラは現状、
jsが、webにおける機械語的な立ち位置
だからというのはわかる。
でもcへのトランスパイラってどんな意味があんの?手抜きとしか思えない。
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の台頭で、ある程度その辺を再利用できる環境が整ったから、直接機械語吐いた方がよくなりつつあるのもあるか
GoみたくあらゆるものをGo内で完結させるための車輪の再発明だとか
Rustみたく欲しい環境のtripleがあるかとかtierがいくつだとか
そういう言語機能と直接的には関係ない部分のサポートに関する労力をまるっと切れるのがでかい
一時期のaltJavaやaltJSの乱立を見てると、その分言語の質が上がるかって言われたら怪しいけどな
あとllvmの台頭で、ある程度その辺を再利用できる環境が整ったから、直接機械語吐いた方がよくなりつつあるのもあるか
118デフォルトの名無しさん
2017/12/04(月) 10:54:56.82ID:dvJUWhXs >>117
自分で言ってんじゃん。
llvmだったら中間コードまでのトランスパイラ作れば最適化とバイナリはくまでやってくれるしそこまでやりゃ良いのに。
あとgoの車輪の再発明はありだと思う。
画像変換したくてimagemagicのlibに依存する羽目になるとか勘弁。
自分で言ってんじゃん。
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の方のコンパイルオプションでリンクしよう、とか
既存の処理系に乗っかるのはメリット多いと思う
最適化とかそういう所にそれほど苦労しなくなるかな
手抜きといえば手抜きなんだけど
gccをバックエンドにするなら変な石対応が簡単だし
vc++でも食えるように書けばWindowsでも余計なもの要らないし
intelのコンパイラでゴリゴリに最適化かけたりとか、
静的ビルドでワンバイナリ作りたいからCの方のコンパイルオプションでリンクしよう、とか
既存の処理系に乗っかるのはメリット多いと思う
121デフォルトの名無しさん
2017/12/04(月) 11:39:21.16ID:1pGzw3aP >>118
llvmが台頭してきたから相対的にCトランスパイルの魅力なくなってきたよなって話で、
昔はCトランスパイラで既存のコンパイル環境に乗っかるのがよく行われてたって歴史的な話な
gccが中間言語仕様を意図的に隠してた弊害とも言える
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++
今時ライブラリ構築を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言語のソレであり
気に入らないのでひたすらラップしまくる日々か
諦めて次世代言語の機能を生かせずアンセーフとか言っちゃって直接叩くか
頑張ってコンパイラを作ることも可能かもしれないが
結局ライブラリをどうするのかという部分が一番の問題で
0から構築するのはあり得ないから何かに乗っかるわけだが
当然乗っかり先の制約を受ける
特にネイティブコード系は一番普及しているABIがC言語のソレであり
気に入らないのでひたすらラップしまくる日々か
諦めて次世代言語の機能を生かせずアンセーフとか言っちゃって直接叩くか
125デフォルトの名無しさん
2017/12/05(火) 07:59:12.87ID:8RhNw6Wh126デフォルトの名無しさん
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:ueMa998Y133デフォルトの名無しさん
2017/12/05(火) 21:42:34.05ID:uUkZwDzW134デフォルトの名無しさん
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/
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の意味を考えたことあるかい?
OCamlのOの意味を考えたことあるかい?
144デフォルトの名無しさん
2017/12/06(水) 08:37:01.32ID:omJYBD6x >>143
名前に入ってようがなんだろうが OCaml で 殆ど誰もOO しないのは端的な事実
名前に入ってようがなんだろうが 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
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を関数型言語で書いてみてよ。それでバグか少なかったら関数型言語の優位性を認めるよ。
OSを関数型言語で書いてみてよ。それでバグか少なかったら関数型言語の優位性を認めるよ。
149デフォルトの名無しさん
2017/12/06(水) 09:06:07.69ID:omJYBD6x150デフォルトの名無しさん
2017/12/06(水) 09:09:24.32ID:omJYBD6x >>148
>OSを関数型言語で書いてみてよ。それでバグか少なかったら関数型言語の優位性を認めるよ。
高水準言語でOS書けって頭悪すぎないか
Rustを関数型と認めるゆるい基準なら Redox がある
>OSを関数型言語で書いてみてよ。それでバグか少なかったら関数型言語の優位性を認めるよ。
高水準言語でOS書けって頭悪すぎないか
Rustを関数型と認めるゆるい基準なら Redox がある
151デフォルトの名無しさん
2017/12/06(水) 09:22:35.91ID:mhTOyNgr >>146
言語の糞さと、周りの人間が糞だからってことばかりで、全然説明になってないな
言語の糞さと、周りの人間が糞だからってことばかりで、全然説明になってないな
152デフォルトの名無しさん
2017/12/06(水) 09:45:25.42ID:enrVe2xz153デフォルトの名無しさん
2017/12/06(水) 09:59:23.03ID:26uEwiQD154デフォルトの名無しさん
2017/12/06(水) 11:07:54.33ID:YJV2uZev オブジェクト指向ってそんなにだめかな?
そのオブジェクトに対する操作をそのオブジェクトに持たせるってわかりやすくていいけど。
immutable.jsのレコードみたく、
メソッドは新しいインスタンスを返す関数と強制すれば関数型とも共生できると思うんだけど。
そのオブジェクトに対する操作をそのオブジェクトに持たせるってわかりやすくていいけど。
immutable.jsのレコードみたく、
メソッドは新しいインスタンスを返す関数と強制すれば関数型とも共生できると思うんだけど。
155デフォルトの名無しさん
2017/12/06(水) 11:16:45.83ID:enrVe2xz 別に悪いってことはないだろ。
結局、状態や依存をどう管理するかって話なわけで、極論言い始める奴の
いうことなんて話 2 割くらいにきいてりゃいいと思うけど。
結局、状態や依存をどう管理するかって話なわけで、極論言い始める奴の
いうことなんて話 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:omJYBD6x160デフォルトの名無しさん
2017/12/07(木) 00:47:57.07ID:Z/mKUUkc >>139
SML#でもいいですか?
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#とかはうまくやってるの?
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
https://www.youtube.com/watch?v=Q6NiqRqGePU
https://www.youtube.com/watch?v=Q6NiqRqGePU
168デフォルトの名無しさん
2017/12/09(土) 02:52:58.92ID:Fh8F1Mjo Haskellの型クラスって凄く良い機能だと思うんだけど、地味に数学感足りないよな
NumってなんだよNumって。もうちょっと分解しろよって感じだ
Numeric preludeあんまり使われてないみたいだし
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:cDa6l0J8174デフォルトの名無しさん
2017/12/10(日) 05:14:36.81ID:7QrhdqaC ハスケルは実用性重視で機能を絞ってるからな。
175デフォルトの名無しさん
2017/12/10(日) 05:53:37.29ID:g4Avn4JH 自己書き換えもできないハスケルはプログラム言語と呼ぶに値しない
純粋関数型プログラム言語(自称)ハスケルw
純粋関数型プログラム言語(自称)ハスケル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みたいな動的型付け言語に型はねーから
君の大好きな肥溜め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 でも十分型を強くしてる印象。
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と口に出すのこいつぐらいじゃね?
そもそもPHPと口に出すのこいつぐらいじゃね?
186デフォルトの名無しさん
2017/12/10(日) 13:04:01.49ID:IzGEuZzn >>184
あるいはlispか。
あるいはlispか。
187デフォルトの名無しさん
2017/12/10(日) 13:44:56.60ID:H+wQ5ZRg188デフォルトの名無しさん
2017/12/10(日) 13:58:51.02ID:a6n4XEL6189デフォルトの名無しさん
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:ATSfYuOI194デフォルトの名無しさん
2017/12/10(日) 16:07:22.03ID:1f8aW6Mh >>186
多重ディスパッチ出来る言語が型なしってことはないだろ
多重ディスパッチ出来る言語が型なしってことはないだろ
195デフォルトの名無しさん
2017/12/10(日) 16:49:06.60ID:g4Avn4JH196デフォルトの名無しさん
2017/12/10(日) 17:16:26.74ID:cU10YPQo197デフォルトの名無しさん
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やってる奴ほど「そうだね、だから何なんだろう?」って思うような気がする。
よほど無念な思いをしたんだろうか。
そもそも作者が全部認めてるレベルのテキトーな言語なんだから、
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含め多くの言語でトリックが用意されているのだが)
メモリ空間についてオーバーヘッドが減り、型検査も事前に済ませておいて
実行時にはしないので、速度についてオーバーヘッドが減る。
ていうか、トイ言語でもいいから動的型の言語の処理系を実装したことがあれば、こんなのは間違えるはずのない話でな。
静的型付けの言語は実行時前に型の整合性を検証し
動的型付けの言語は実行時に型の整合性を検証する
で、前者はRTTIを基本的に必要とせず、したがってわざわざ保持しないので
(とはいえHaskell含め多くの言語でトリックが用意されているのだが)
メモリ空間についてオーバーヘッドが減り、型検査も事前に済ませておいて
実行時にはしないので、速度についてオーバーヘッドが減る。
ていうか、トイ言語でもいいから動的型の言語の処理系を実装したことがあれば、こんなのは間違えるはずのない話でな。
212デフォルトの名無しさん
2017/12/11(月) 01:06:54.76ID:MQI53TiX ホットにパッチ当てたいとかそういうごく特殊な要求がある場合には
動的型検査の方が優位性を持つことがあるけど、そうじゃない場合で
(たとえばH-Mくらいの範囲内で)静的に型のつかないコード書く必要なんて
まあまず実際にお目にはかからないよね
動的型検査の方が優位性を持つことがあるけど、そうじゃない場合で
(たとえば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が大半を占めてるんだから
静的言語最強とはならない気がする。
静的言語最強とはならない気がする。
静的型言語の安心感には満足している、つまらないミスを弾いてくれるから、頭の弱い私にはぴったりだ。
動的型言語の「綴りミスも許さない」方針にはついていけない
それとも動的言語でも option explicit な使い方が可能なのでしょうか?
動的型言語の「綴りミスも許さない」方針にはついていけない
それとも動的言語でも option explicit な使い方が可能なのでしょうか?
217デフォルトの名無しさん
2017/12/11(月) 17:56:27.18ID:RiNfuleo option explicitにしたとしても、variantで宣言したら無意味だよね、Dictionaryのキーにあらぬものを使ったら落ちるよね、ってところでゴタゴタ言ってる。
ホントに宣言してないレベルの変数アクセスは大体の言語の静的解析で見つけられるんじゃないかな。
PHPの$$変数とかは無理だろうけど。
ホントに宣言してないレベルの変数アクセスは大体の言語の静的解析で見つけられるんじゃないかな。
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 多重ディスパッチが好き
>>217
variant 型を使うなんて、まるで void * だけでコーディングしろ、と強要しているようなもの
型の恩恵を自ら捨てる選択には疑問、Java の嘘嘘 generics にしてもありがたいくらいだ
variant 型を使うなんて、まるで void * だけでコーディングしろ、と強要しているようなもの
型の恩恵を自ら捨てる選択には疑問、Java の嘘嘘 generics にしてもありがたいくらいだ
228デフォルトの名無しさん
2017/12/11(月) 20:45:00.55ID:FO1afGiG 俺なんかは型を書くのがそんなに面倒か?と思うし
あちらさんは型のテストを書くのがそんなに面倒か?と思うのかもしれないが
仮に、この二つが同程度の面倒臭さだったと仮定したら
その時点でバランスしてしまってるわけで・・・あとはもう自明
ただこれは昔の話で、今は型推論も普及してるから、更に
シンプルに考えて、型のテストはどこかの段階で絶対にやらなければならない
避けて通れないものとしたとき、じゃー何処でどのようにやるかという事で
どうせ不可避なら静的型のアプローチの方が良いだろうとなるだけで
システムでサポートせず人力でテストするって方向はまるで
アセンブリのようで逆行しているわ
あちらさんは型のテストを書くのがそんなに面倒か?と思うのかもしれないが
仮に、この二つが同程度の面倒臭さだったと仮定したら
その時点でバランスしてしまってるわけで・・・あとはもう自明
ただこれは昔の話で、今は型推論も普及してるから、更に
シンプルに考えて、型のテストはどこかの段階で絶対にやらなければならない
避けて通れないものとしたとき、じゃー何処でどのようにやるかという事で
どうせ不可避なら静的型のアプローチの方が良いだろうとなるだけで
システムでサポートせず人力でテストするって方向はまるで
アセンブリのようで逆行しているわ
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みたいな弱い型付けの言語は論外だが
結局きちんと動くものをいかに速く作るかってだけの話だろ
本当に静的型が「きちんと動くものを速く作る」ことができるなら、とっくにYesodがRailsを駆逐してる
そうじゃないってことはRailsの方が、強い動的型の方が優秀なわけだ
まあPHPみたいな弱い型付けの言語は論外だが
233デフォルトの名無しさん
2017/12/11(月) 21:55:13.37ID:If11Xzom Railsなんて駆逐されるほど使われてるの?
Google、Microsoft、Amazon、Facebook、twitterなど、有名な会社で使われてるのを聞いたことないが…
正直技術力のないベンチャーが使ってるイメージしかない
Google、Microsoft、Amazon、Facebook、twitterなど、有名な会社で使われてるのを聞いたことないが…
正直技術力のないベンチャーが使ってるイメージしかない
234デフォルトの名無しさん
2017/12/11(月) 21:55:35.93ID:lStv0Fkk rust は別に好きじゃないんだが型に関するアプローチに関してはいいと思う。
関数の引数では型を気にするけど、内部は型推論で暗黙的に設定されるっていう。
関数の引数では型を気にするけど、内部は型推論で暗黙的に設定されるっていう。
235デフォルトの名無しさん
2017/12/11(月) 21:56:58.82ID:VlIg6iVt236デフォルトの名無しさん
2017/12/11(月) 21:59:51.45ID:xzgxDEt/ >>232
Railsって言語だったの?
Railsって言語だったの?
237デフォルトの名無しさん
2017/12/11(月) 22:01:59.46ID:lRj3KQ4V238デフォルトの名無しさん
2017/12/11(月) 22:03:18.72ID:lRj3KQ4V >>236
脳内でHaskellとRubyに対応付けてくれよ……
脳内でHaskellとRubyに対応付けてくれよ……
239デフォルトの名無しさん
2017/12/11(月) 22:03:39.46ID:Ai9DBAI/ >>237
Railsなどという負債を抱えていたいい例やね
Railsなどという負債を抱えていたいい例やね
240デフォルトの名無しさん
2017/12/11(月) 22:04:41.80ID:pZMHEF9P 初期
241デフォルトの名無しさん
2017/12/11(月) 22:05:55.17ID:If11Xzom >>237
いや知ってるけど、それはその2つが駆逐された話じゃねーかw
いや知ってるけど、それはその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 の互換性はひどすぎる、
では、この領域をカバーする言語は?
ってのはあるかもね。
erlang の軽量プロセスはそこまで性能が出ない
scala の互換性はひどすぎる、
では、この領域をカバーする言語は?
ってのはあるかもね。
245デフォルトの名無しさん
2017/12/12(火) 00:43:04.64ID:du4SRE14 自称 言語屋
246デフォルトの名無しさん
2017/12/12(火) 01:28:41.64ID:nM55x1pa 同期的にかけるasync awaitの良さを知ってから
gorutineもしんどくなってきたわ。
見た目命令順になるのが一番分かりやすい
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:Z8olEYsj251デフォルトの名無しさん
2017/12/12(火) 21:37:47.02ID:u/ODDP+M コールバック地獄は何故地獄かって話だからPython限定ではないと思うが
252デフォルトの名無しさん
2017/12/12(火) 22:28:11.33ID:qokAxyHY253デフォルトの名無しさん
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
みたいな書き方
iterator, generator を使ったもの
yield Promise.all
みたいな書き方
255254
2017/12/12(火) 23:35:15.82ID:GdvZGdbs try{
yield Promise.all(非同期の並行処理)
}catch(err){
}
ジェネレータランナーは、非同期処理を同期的に書けて、
非同期処理を、try/catch できる
yield Promise.all(非同期の並行処理)
}catch(err){
}
ジェネレータランナーは、非同期処理を同期的に書けて、
非同期処理を、try/catch できる
256デフォルトの名無しさん
2017/12/13(水) 14:46:46.99ID:4nENptHR Promiseは何度も帰ってくるものや、一度も帰ってこないかもしれないものが書きづらいんだよなぁ。
名前の通りだから仕方ないんだけど。
Promiseとawaitで解決できるのはcallbackを使うものの中でもとても限定的なパターンだと思う。
無いよりマシだけどね。
名前の通りだから仕方ないんだけど。
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:sjTFpswL260デフォルトの名無しさん
2017/12/13(水) 20:43:44.45ID:VZwg/vs9261デフォルトの名無しさん
2017/12/13(水) 20:52:20.95ID:4nENptHR262デフォルトの名無しさん
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/G267デフォルトの名無しさん
2017/12/14(木) 08:04:38.89ID:cqXlNk/G268デフォルトの名無しさん
2017/12/14(木) 08:05:20.86ID:cqXlNk/G269デフォルトの名無しさん
2017/12/14(木) 08:07:43.17ID:cqXlNk/G >>223
>それで動的型にする見返りがあるんなら良いんだが、何もないからなぁ
>邪悪なことがしたい、以外のメリットが無い
こういう人って
邪悪なことって具体的にリストアップしてよ
と言うと二度と帰ってこないw
>それで動的型にする見返りがあるんなら良いんだが、何もないからなぁ
>邪悪なことがしたい、以外のメリットが無い
こういう人って
邪悪なことって具体的にリストアップしてよ
と言うと二度と帰ってこない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ってブラウザでも使えなかったっけ?
無けりゃそれぐらい書いても良いけど。
適材適所なのかなぁ。
目下の問題を解決するためにこうなっちゃいました、いい感じなんで標準クラスにするべき!に見える。
どーせ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使い始めると一気に邪悪化するからな
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レベルのシステム構築してみろっつーの
そんなに静的型が好きなら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:Wavcz0jA297デフォルトの名無しさん
2017/12/15(金) 11:06:17.66ID:lXr5oGUf 動的と静的は兄弟のようなものでお助けあっていきているんだね。
298デフォルトの名無しさん
2017/12/15(金) 11:23:17.29ID:CUNT7XlU おぅん?
なんだその妄想。静的型でもテスト書くぞ
それにJavaじゃあるまいしちゃんと書いてりゃキャストはいらんしょ
メタプログラミングはともかく、その二つは言語の問題じゃない
言語の問題じゃない所を挙げて優位を主張すれば良いなら
↓みたいなこと書けばいいのか?
動的型は引数の型情報をちゃんと書かないから人のコード読むのめっちゃしんどくて生産性が低くなるし、テストが足りずにいざ動かしたら意外な所で引っかかるボケコードも存在する(しかも型があれば引っかからないような所)
いちいちクラスのメタ的なマニアックな機能を使って書いた本人以外の読解がそれなりにしんどいコードにして拡張性を下げたりし始めるし
コードを読む時間が倍以上かかる
実例としては動的型付けとしてaseとpyquante、静的型付けとしてvaspとbigDFTでも提示しておこうかな
こんな感じでええんか?
なんだその妄想。静的型でもテスト書くぞ
それに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型クラスみたいなのを導入するとオーバーヘッドがかさむ
テストについては、結局型が通るか通らないか程度はテスト書く過程で見れるだろって話で、きちんとテスト書けばその程度の差は優位性にはならないんじゃないかってことな
そりゃテスト書かないと静的型でも動的型でも壊れたコードだ
コードリーディングの過程で型情報がほしいって言うのは一理あるな。そのために間違った方のハンガリアン記法使うのもアホ臭い
ちゃんと設計してればキャストはいらないっていうのは、静的型言語では整数と浮動小数点数の組み合わせで四則演算すらできないって問題がある。OCamlがわかりやすいな
これを無理矢理できるようにHaskellみたくNum型クラスみたいなのを導入するとオーバーヘッドがかさむ
テストについては、結局型が通るか通らないか程度はテスト書く過程で見れるだろって話で、きちんとテスト書けばその程度の差は優位性にはならないんじゃないかってことな
そりゃテスト書かないと静的型でも動的型でも壊れたコードだ
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:TYCzXsyM307デフォルトの名無しさん
2017/12/15(金) 12:41:17.66ID:TYCzXsyM308デフォルトの名無しさん
2017/12/15(金) 12:50:20.64ID:Wavcz0jA309デフォルトの名無しさん
2017/12/15(金) 12:56:07.91ID:Wavcz0jA 静的型でチェックできることは、単体テストを書く過程で自然とチェックできる
静的型のチェックにより、メタプログラミングが書けなくなり、本質的でない型合わせのための余計なキャストも増える
結局この二点なんだよな
静的型のチェックにより、メタプログラミングが書けなくなり、本質的でない型合わせのための余計なキャストも増える
結局この二点なんだよな
310デフォルトの名無しさん
2017/12/15(金) 12:58:02.72ID:Wavcz0jA 可読性についてはまあわからんでもない。正しい方のハンガリアン記法でも、接頭辞の管理はコード上にないからな
IDEのサポート込めば確かにリーディング速度は上がると言える
IDEのサポート込めば確かにリーディング速度は上がると言える
>>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:6UtRgQBN315デフォルトの名無しさん
2017/12/15(金) 14:00:37.68ID:U+kqpzL7 四則演算問題って何?
316デフォルトの名無しさん
2017/12/15(金) 14:07:11.13ID:6UtRgQBN317デフォルトの名無しさん
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++の現状なわけだ。
ユーザーの仕様要求にはぼろくそ文句言う奴に限って、
コンパイラに理不尽な要求してる奴が多いってのはほんとなんなんだろうな。。
コンパイラにそこまでの期待を背負わせた結果がc++の現状なわけだ。
ユーザーの仕様要求にはぼろくそ文句言う奴に限って、
コンパイラに理不尽な要求してる奴が多いってのはほんとなんなんだろうな。。
320デフォルトの名無しさん
2017/12/15(金) 15:54:40.37ID:Wavcz0jA >>320
かわるねえ、テストはテスト書かなければならないし、すると書いたテストが間違っている可能性も否定できない
コンパイル時の型チェックは、つまるところソースの矛盾をつくのだから、それだけでソースの検証になりうる
ただ、型情報はコンパイル結果には含まれないのが普通だから、いうなれば無駄を書いているわけだ…
かわるねえ、テストはテスト書かなければならないし、すると書いたテストが間違っている可能性も否定できない
コンパイル時の型チェックは、つまるところソースの矛盾をつくのだから、それだけでソースの検証になりうる
ただ、型情報はコンパイル結果には含まれないのが普通だから、いうなれば無駄を書いているわけだ…
322デフォルトの名無しさん
2017/12/15(金) 16:03:06.34ID:Wavcz0jA >>321
結局「型チェックあるからテストの手が抜ける」論者か。話にならんな
結局「型チェックあるからテストの手が抜ける」論者か。話にならんな
>>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に変換したら変数の値自体が変わる
これは大きな違い
javaの場合はクラス間のキャストと整数、小数間のキャストが同じ構文だから分かりにくいけどあれ全くの別物だから
後者はどちらかというと関数に近い
例えばStringをObjectにキャストしても変数の値(=メモリアドレス)は変わらない
でもlongをdoubleに変換したら変数の値自体が変わる
これは大きな違い
328デフォルトの名無しさん
2017/12/15(金) 17:10:15.06ID:WQPs5rl9 静的型付けでもテストはいるけど数を減らせる
わざわざ機械がチェック出来る事を人がやる意味は?
あとオーバーヘッドどうのこうのって動的型付けの方がオーバーヘッドでかいやん
わざわざ機械がチェック出来る事を人がやる意味は?
あとオーバーヘッドどうのこうのって動的型付けの方がオーバーヘッドでかいやん
>>324
いや、それが、Java の本番コードでは執拗な null チェックはかかせないようですよ、はじめてみたときは目をうたがったな…
いや、それが、Java の本番コードでは執拗な null チェックはかかせないようですよ、はじめてみたときは目をうたがったな…
330デフォルトの名無しさん
2017/12/15(金) 19:17:26.70ID:Tb7zQwK9 >>328
静的型はより少ないテストデータで同等の品質を確保できるという実証データはある?
静的型はより少ないテストデータで同等の品質を確保できるという実証データはある?
332デフォルトの名無しさん
2017/12/15(金) 19:39:38.59ID:57xWWF8w >>329
今時NotNullアノテーションで対応するけどな
今時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つを四則演算した結果が
浮動小数点数になるか整数になるかは本来非自明だから、どっちかに明示的に型を揃えろっていうのは
静的型動的型関係ない問題だと自分は思う
メタプログラミングについてはこれももう出てるけど、本当にそれが必要かって言われるとなあ
確かに記述量自体は短くなるけど、間違いなく可読性とトレードオフになる
メタプログラミングのしやすさとコードリーディングの難易度を天秤にかけるだけの話になりそうだ
キャストについては、さすがに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は動的だよ。
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死んでるな
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:0YcySKum358デフォルトの名無しさん
2017/12/16(土) 17:20:40.73ID:4mgESDS3 型無し能無し糞バカパーエッチパーのバカがなんだって?
早く10年熟成のウリジナル社内フレームワーク保守する作業に戻れよ
早く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つの方法で、全く同じ能力の人間が、二の轍を避けるというバアイスをかけないために初見で行った場合、の数値を出せと言う、無茶苦茶な要求になる。
パラレルワールドが発生してそれが一つの状態として観察出来る神が存在しない限りイチャモンのつけ放題。
要は無意味。
品質保証しなかった物が万一起こす損害と、品質保証したから避けられた損害はイコールじゃないし、
品質保証してしまった時点で、避けた損害の計上は机上の空論になってしまう。
避けるも何も起こらなかったんじゃないの?と過剰な心配とみなされがち。
起こっていたに違いない、と言うのは確かに空論だからな。
「改善できている品質」自体を点数化(そしてある程度これは王道もある)しても、「改善しなかった場合の品質」が見積値のままなので、恣意的と言われても仕方が無い。
同様の問題にコストカットもあるが、これも最初から織り込んで当初目的を果たしてしまうと話がややこしくなる。対費用効果が品証と同様に、実績値と見積値の比較になる。正しい比較じゃないのは確か。
一番、営業部や企画部や、ことによると開発部とも喧嘩になる数字。
なので、これに関して実証値を出せと言うのは、同じ事を、2つの方法で、全く同じ能力の人間が、二の轍を避けるというバアイスをかけないために初見で行った場合、の数値を出せと言う、無茶苦茶な要求になる。
パラレルワールドが発生してそれが一つの状態として観察出来る神が存在しない限りイチャモンのつけ放題。
要は無意味。
362デフォルトの名無しさん
2017/12/16(土) 20:53:09.27ID:GPVNoJ1v バイアスがどう間違ったかバアイスになってるわ。以外に読めるもんだな。ごめん。
363デフォルトの名無しさん
2017/12/16(土) 22:08:20.37ID:/LKsQL98 >>353
phpでも?
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:lzYKowQo367デフォルトの名無しさん
2017/12/17(日) 00:17:16.85ID:w0yPK3Np >>364
そこなんだよなぁ。
>>353は、動的静的どちらでも同じようにテストを書くことになるんだから
「結果、テストを書く手間(量)は一緒だろ」と言いたいんだろうが、
型については「テスト時に確かめるのが動的」、「コンパイル時に確かめてくれるのが静的」という違いがある。
「テスト時だろうがコンパイル時だろうがきちんと確かめることには変わりないんだからいいだろ」
という意見が動的派の主張のような気がするんだが(俺の勘違いだったら指摘してくれ)、
個人的にはテスト自体にバグが含まれる可能性があるという点で違うので、静的のほうが好ましいと思う。
コンパイラにバグがない保証はないがその可能性はかなり低いし、
まして、どこの誰が書いたかも分からないテストと比べればどちらが信用できるかは明らか。
静的でもテスト自体にバグが紛れることはもちろんあるが、型についてはコンパイル時にチェックされるので、
型チェックだけに焦点を絞ってみれば、やはり静的言語の方が信頼性は上だろう。
そこなんだよなぁ。
>>353は、動的静的どちらでも同じようにテストを書くことになるんだから
「結果、テストを書く手間(量)は一緒だろ」と言いたいんだろうが、
型については「テスト時に確かめるのが動的」、「コンパイル時に確かめてくれるのが静的」という違いがある。
「テスト時だろうがコンパイル時だろうがきちんと確かめることには変わりないんだからいいだろ」
という意見が動的派の主張のような気がするんだが(俺の勘違いだったら指摘してくれ)、
個人的にはテスト自体にバグが含まれる可能性があるという点で違うので、静的のほうが好ましいと思う。
コンパイラにバグがない保証はないがその可能性はかなり低いし、
まして、どこの誰が書いたかも分からないテストと比べればどちらが信用できるかは明らか。
静的でもテスト自体にバグが紛れることはもちろんあるが、型についてはコンパイル時にチェックされるので、
型チェックだけに焦点を絞ってみれば、やはり静的言語の方が信頼性は上だろう。
368デフォルトの名無しさん
2017/12/17(日) 00:30:03.31ID:w0yPK3Np >>365
すごく良い意見だと思う。
そもそもテストがあるのは人間は間違えるからというのが前提だからで、
そしてそのテストを書くのも人間なのでテスト自体も間違えている可能性がある。
それでもテストを書くのはチェックによって間違いを完全になくすことはできなくても
ある程度まで減らすことはできるという考えがあるからだろう。
そして、その考え方でいくとテストを重ねれば重ねるほど信頼性は上がるということになる。
つまり、テストのテストを行えば2重チェックとなりさらに信頼性が上がることになるが、
テストのテストを書くというのはあまりにもアホらしいので普通そんなことはしない。
つまり、通常のテストでのチェックは1重のチェックまでが限界となる。
それに対してコンパイラはコンパイラ自体がしっかりとテストされている。
つまり、コンパイラによる型チェックは言い換えればコンパイラ自体によるチェックと
コンパイラのテストによるチェックの2重チェックを同時に受けていることになる。
この考え方でいけば、ただのテストは1重のチェックだが、コンパイラによるチェックはそれだけで2重チェックとみなせる。
つまり、コンパイラによるチェックのほうが信頼性が高いということになるはずだ。
一応理論はしっかりと通っているはず。
自分で書いといてこんなこと言うのもなんだが「なんだかこじつけな気がして、あまり気に入らない」。
誰か論破してくれ。
すごく良い意見だと思う。
そもそもテストがあるのは人間は間違えるからというのが前提だからで、
そしてそのテストを書くのも人間なのでテスト自体も間違えている可能性がある。
それでもテストを書くのはチェックによって間違いを完全になくすことはできなくても
ある程度まで減らすことはできるという考えがあるからだろう。
そして、その考え方でいくとテストを重ねれば重ねるほど信頼性は上がるということになる。
つまり、テストのテストを行えば2重チェックとなりさらに信頼性が上がることになるが、
テストのテストを書くというのはあまりにもアホらしいので普通そんなことはしない。
つまり、通常のテストでのチェックは1重のチェックまでが限界となる。
それに対してコンパイラはコンパイラ自体がしっかりとテストされている。
つまり、コンパイラによる型チェックは言い換えればコンパイラ自体によるチェックと
コンパイラのテストによるチェックの2重チェックを同時に受けていることになる。
この考え方でいけば、ただのテストは1重のチェックだが、コンパイラによるチェックはそれだけで2重チェックとみなせる。
つまり、コンパイラによるチェックのほうが信頼性が高いということになるはずだ。
一応理論はしっかりと通っているはず。
自分で書いといてこんなこと言うのもなんだが「なんだかこじつけな気がして、あまり気に入らない」。
誰か論破してくれ。
369デフォルトの名無しさん
2017/12/17(日) 01:33:04.30ID:DD3iPSz/ コンパイラにバグはないとかさ。。
とりあえずvcを一通り使ってみてから言ってほしいな。
浅はかすぎる。
まあしかし静的チェックと動的チェックを両方やるならいいと思うよ。
これは結局、仕様と実際の動作のどっちもしっかりチェックする必要があるってこと。
とりあえずvcを一通り使ってみてから言ってほしいな。
浅はかすぎる。
まあしかし静的チェックと動的チェックを両方やるならいいと思うよ。
これは結局、仕様と実際の動作のどっちもしっかりチェックする必要があるってこと。
370デフォルトの名無しさん
2017/12/17(日) 02:06:25.44ID:an2T/Jmb 一般的な話をvc固有の問題で批判する方が浅はかと言わざるを得ない
371デフォルトの名無しさん
2017/12/17(日) 02:24:22.59ID:lzYKowQo 型も書けないような奴が
正しいテストを書けるだろうか?(irony)
正しいテストを書けるだろうか?(irony)
372デフォルトの名無しさん
2017/12/17(日) 08:41:58.60ID:cjnEvY5x それ以前に、めんどくさいからって型書きたがらないような奴は現実にはほとんどテストなんか書いてないんだよ
動的型でテスト書けば問題ないだの必要なテストが増えるだのテストの正しさだのというのははっきり言って机上の空論
そもそも彼等はテストを書かない
動的型でテスト書けば問題ないだの必要なテストが増えるだのテストの正しさだのというのははっきり言って机上の空論
そもそも彼等はテストを書かない
373デフォルトの名無しさん
2017/12/17(日) 08:51:42.24ID:ROemoGKg そんなこというと、動的型付け言語を使っているから型を書いていないって人より
auto/varを使って意識的に型を書かない人の方がテストを書かない傾向があるって
言っているように聞こえるけど。
auto/varを使って意識的に型を書かない人の方がテストを書かない傾向があるって
言っているように聞こえるけど。
374デフォルトの名無しさん
2017/12/17(日) 09:04:39.97ID:cjnEvY5x375デフォルトの名無しさん
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+5q9UaX378デフォルトの名無しさん
2017/12/17(日) 11:35:01.56ID:v3Bx338J379デフォルトの名無しさん
2017/12/17(日) 11:41:57.99ID:v3Bx338J テストのテストを馬鹿にしてるが、書くからな。
何重まで上に上がる?というのは論点がずれてて、要件定義書でテスト仕様書をテストする。(詳細設計なんかは無視する)
紙の上でかもしれんし、直交表書くかもしれんし、色々あるが、
要件定義や詳細設計からテストだけ書いて、その妥当性も判断せずにオールグリーンこれでオッケー、ならそれは間違ってると思う。
間違えない前提ならテストは要らない、はその通りで、どの開発レイヤにも「この場ではこれは間違っていないとみなす」というブラックボックスがある程度発生していく。
単体試験なんかで担保して、レイヤがあがるにつれてブラックボックスは増えていく。
そこにワザワザ、ヒステリックテストをする必要は無い。
ブラックボックス側から数値しか出さないなら、数値以外をチェックするのは過品質に近い。
何重まで上に上がる?というのは論点がずれてて、要件定義書でテスト仕様書をテストする。(詳細設計なんかは無視する)
紙の上でかもしれんし、直交表書くかもしれんし、色々あるが、
要件定義や詳細設計からテストだけ書いて、その妥当性も判断せずにオールグリーンこれでオッケー、ならそれは間違ってると思う。
間違えない前提ならテストは要らない、はその通りで、どの開発レイヤにも「この場ではこれは間違っていないとみなす」というブラックボックスがある程度発生していく。
単体試験なんかで担保して、レイヤがあがるにつれてブラックボックスは増えていく。
そこにワザワザ、ヒステリックテストをする必要は無い。
ブラックボックス側から数値しか出さないなら、数値以外をチェックするのは過品質に近い。
380デフォルトの名無しさん
2017/12/17(日) 12:06:03.05ID:pDfY69my >>367
細かくいうと「結局製品として必要な質を担保するのに必要なテストコードは変わらない」っていう主張な。少なくとも自分はこう思ってる
あくまで主観だし定量的に示せないんで上で上がってる通り空論といってもいいがな
少なくともコンパイルとLinter通った時点での品質は静的型が上なのは否定しない
が、自分の経験上、型チェック程度は他のテストのついででチェック進むから、そのせいでテストコードがかさむとかそういうケースはそうそうないはずなんだよな
細かくいうと「結局製品として必要な質を担保するのに必要なテストコードは変わらない」っていう主張な。少なくとも自分はこう思ってる
あくまで主観だし定量的に示せないんで上で上がってる通り空論といってもいいがな
少なくともコンパイルとLinter通った時点での品質は静的型が上なのは否定しない
が、自分の経験上、型チェック程度は他のテストのついででチェック進むから、そのせいでテストコードがかさむとかそういうケースはそうそうないはずなんだよな
381デフォルトの名無しさん
2017/12/17(日) 12:11:02.52ID:pDfY69my もちろん「テストコードと、一種の証明である型チェックの性質は違う」とかそういう理屈も理解してるが、
結局「製品としての質担保」という観点で見るなら、その程度の手段の差は全くもって関係なくなる、というのが自分の考え
この辺はテストに求める役割に対する考え方の違いかもしれん
結局「製品としての質担保」という観点で見るなら、その程度の手段の差は全くもって関係なくなる、というのが自分の考え
この辺はテストに求める役割に対する考え方の違いかもしれん
382デフォルトの名無しさん
2017/12/17(日) 12:14:39.63ID:pDfY69my あとPHPディスに絡めようとしてるやつがいるが、PHPは静的型動的型の以前の部分に問題があるし、
この議論で少なくとも自分が動的型言語の念頭においてるのはPythonやRubyだからな?
この議論で少なくとも自分が動的型言語の念頭においてるのは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なんかでも動的ロードなんかで全く決まらん事もあるんだし。
依存関係の解決はちゃんとそれ用に何か用意した方が良いと思うけど。
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重しかテストしないのは妥協してるからというわけでもないよ
テストを重ねるほど品質が上がるってのは空論だし、1重しかテストしないのは妥協してるからというわけでもないよ
389デフォルトの名無しさん
2017/12/17(日) 15:54:09.19ID:F+iLZcQ1390デフォルトの名無しさん
2017/12/17(日) 16:41:56.81ID:PjBbAu1N >>368
形式手法でコード自動生成しててもやっぱり高信頼性のためにはテストは必須だぜ?
形式手法でコード自動生成しててもやっぱり高信頼性のためにはテストは必須だぜ?
391デフォルトの名無しさん
2017/12/17(日) 17:52:05.86ID:v3Bx338J392デフォルトの名無しさん
2017/12/17(日) 19:31:01.08ID:AwDJJh6p 要件に寄らず、テストは最低8重ないとダメ
スレのレベルが低すぎる……♂
スレのレベルが低すぎる……♂
393デフォルトの名無しさん
2017/12/17(日) 23:06:04.33ID:lzYKowQo >>389
良く訓練されたPHPerは超力Grepを使いこなすから問題ないんだよなぁ
良く訓練されたPHPerは超力Grepを使いこなすから問題ないんだよなぁ
394デフォルトの名無しさん
2017/12/17(日) 23:23:38.60ID:qBUEKR93 メソッド呼出元検索、、今回ほど仕様バグが沸き起こる思いをしたことが無い…
395デフォルトの名無しさん
2017/12/17(日) 23:39:30.09ID:LyzNAsst396デフォルトの名無しさん
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が文字列かどうかテストする必要ははありませんね
反論するなら反例を出してくださいね
クソくだらない長文はいらないので
強い型付けの動的型言語なら、値に対するテストを書けば型に対するテストは不要です
assert(x > 0) というテストを書いたのに、さらにxが文字列かどうかテストする必要ははありませんね
反論するなら反例を出してくださいね
クソくだらない長文はいらないので
401デフォルトの名無しさん
2017/12/18(月) 08:13:41.10ID:UBkq3PS9 >>395
わからんならしたことがないって事だ。
わからんならしたことがないって事だ。
402デフォルトの名無しさん
2017/12/18(月) 08:28:29.94ID:9Kb0ajxH403デフォルトの名無しさん
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みたいなアサーションすら稼働コードにも並ぶし、それが成立しなかったらリセットかかるようにする。
用途による。
弱い型付け言語でも、型無言語でも値に対するテストで充分な場合もあるし(要は、不正値が渡されてる時点で異常であって、その場合の動作は不定として構わないという要件の場合。よくある)
逆に強い型付け言語でも、強い磁界やノイズ源の間際で使われるようなものを書くときにはキチガイじみたテストもする。
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:9Kb0ajxH408デフォルトの名無しさん
2017/12/19(火) 01:10:12.61ID:lENhGj5D409デフォルトの名無しさん
2017/12/19(火) 02:45:28.87ID:4MuASRxE 具体例がなくても、長文を書けば何か言った気になれるからなwwwwww
410デフォルトの名無しさん
2017/12/19(火) 04:16:57.53ID:6mJgSo5a411デフォルトの名無しさん
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:ngbi4CU2414デフォルトの名無しさん
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には何回か丁寧に説明してやったし、その度に「そういうことか。理解してなかった」って言われて来た
もううんざりだ。おまえであることがわかった以上もう説明せんよ
あDHDには何回か丁寧に説明してやったし、その度に「そういうことか。理解してなかった」って言われて来た
もううんざりだ。おまえであることがわかった以上もう説明せんよ
423デフォルトの名無しさん
2017/12/19(火) 19:28:03.33ID:cqTye8WP 「AならばB」に対して「Aでないときには〜」って話をして
反例になってると思う>>415ってプログラマとしてヤバない?
反例になってると思う>>415ってプログラマとしてヤバない?
424デフォルトの名無しさん
2017/12/19(火) 19:54:56.57ID:/xuMeQeJ ヤバい人がいても最近は誰も批判しない
批判は建設的じゃないと考えられているから
批判は建設的じゃないと考えられているから
425デフォルトの名無しさん
2017/12/19(火) 20:05:56.79ID:XSrelQ4n426デフォルトの名無しさん
2017/12/19(火) 20:47:02.26ID:dep2iFkQ 現実もほったらかしにしてるわ。
だからまともにテストのないコードがあちこちにある。。
だからまともにテストのないコードがあちこちにある。。
427デフォルトの名無しさん
2017/12/19(火) 21:09:05.12ID:+t5AZThl >>422
ほら、理解させられないw
ほら、理解させられない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はそういう方向へ向かいつつあるね
頭の良い人間が多相を明示的に駆使して必死に辻褄合わせするんじゃなく、
コンパイラがフロー解析を頑張ることで人間に負担をかけずに厳密な静的型付けを実現する
メジャーどころだと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 だって当時は新しかったんだよ。
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 のどのような特徴が、あなたをして神の言語と判断させるのか?
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のメモリーが詰める時代になっても同じこと言ってるんだろうな。
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時間」です。
貴方の知り合いや友人ももれなくセックスをしています。
普段はあどけない顔して世間話してるあの娘もセックスをしています。
貴方が片想いしているあの綺麗な女性もセックスをしています。
貴方にもし年頃の娘さんや姉・妹がいて、いま家にいないのでしたら間違いなくセックスしてます。
貴方と別れたあの娘も貴方がその娘にやってきたことを別の男にやられています。
貴方の将来の恋人や結婚する相手は、いま違う男のいちもつでヒィヒィ言っています。
すべてを諦めましょう。そして、ともに戦いましょう。
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が死んだのは
必然だったな
Smalltalkの系譜にあるRubyが死んだのは
必然だったな
461デフォルトの名無しさん
2017/12/25(月) 13:04:23.59ID:kMbU4vvz462デフォルトの名無しさん
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はちょっとクセがある
括弧は多少あった方が見やすい
pythonはちょっとクセがある
466デフォルトの名無しさん
2017/12/26(火) 00:51:10.57ID:Qxp4eKO0 松本さんはlisp の影響がでかいと言ってはいる
http://gihyo.jp/news/report/01/rubykaigi2013/0001
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/
スタートアップ界の異端児!産業機器 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のほうがひどいぞ
Haskellのほうがひどいぞ
474デフォルトの名無しさん
2017/12/27(水) 12:36:42.15ID:P2OckTcS こんな話題にまでHakellぶち込んで来て
どんだけHaskell嫌いなんだ……
どんだけ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/
英数字や記号といった文字列の固まりであるソースコードを、
テキストデータとしてではなく、画像として分析するという。
http://itpro.nikkeibp.co.jp/atcl/column/14/346926/122501258/
英数字や記号といった文字列の固まりであるソースコードを、
テキストデータとしてではなく、画像として分析するという。
479デフォルトの名無しさん
2017/12/27(水) 20:18:47.38ID:hw44w6Qj >>478
面白そうな技術だけど、ビジュアルがヤバいw
面白そうな技術だけど、ビジュアルがヤバい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感がヤバみ
写真のオッサンどものザ・無能・SI感がヤバみ
486デフォルトの名無しさん
2017/12/29(金) 16:46:08.27ID:EmauInAe >>483
人間が見てもわかること、って気軽に言うけど、それ「普通の彼氏がほしい」くらいの無茶振りだと思うぞ。
定量化してくれるんなら便利じゃん。
あと、画像を解析してるから、内容の是非じゃなくてバグを生みやすいような姿を検知してる、ってのは
古株のおっさん連中への強烈なエクスキューズになると思うわ。
内容の是非を判定するモノに関しては、どうしても静的解析と仲良くできなかったような連中が狂ったようにアンチする。
Rustスレみたいになる。
人間が見てもわかること、って気軽に言うけど、それ「普通の彼氏がほしい」くらいの無茶振りだと思うぞ。
定量化してくれるんなら便利じゃん。
あと、画像を解析してるから、内容の是非じゃなくてバグを生みやすいような姿を検知してる、ってのは
古株のおっさん連中への強烈なエクスキューズになると思うわ。
内容の是非を判定するモノに関しては、どうしても静的解析と仲良くできなかったような連中が狂ったようにアンチする。
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達が死んだ魚のような目でインデントをいじくって試行錯誤する姿が目に浮かぶわ
目的は定量評価そのものではなく、悪いところを改善することだろ?
ディープラーニングでスコアを付けられたところで、どうやったら良くなるのか分からんだろ
決められた最低スコアを満たすために深夜にPG達が死んだ魚のような目でインデントをいじくって試行錯誤する姿が目に浮かぶわ
490デフォルトの名無しさん
2017/12/29(金) 18:47:44.63ID:cw3UbRdF491デフォルトの名無しさん
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
Apache Foundationとかの定評アルOSSのソースを○、
富士通のSIのソースを×として学習させて、与えられた画像が○の方である確率をスコアとするんだろうかw
494デフォルトの名無しさん
2017/12/29(金) 22:23:50.72ID:cw3UbRdF >>492
才クロマティック数とかさ、普通に気にしてりゃそこまでひどいことにはならんわけよ。
ツールの数はおれは十分だと思ってるけれど、結局そういう地道な数値なんてのはむしするわけだ。
ただただ新しい指標作りましたっていうアリバイ発明のためだけってのは
この業界では昔からいっくらでもあるわけで警戒するのが普通なんだよ。
https://msdn.microsoft.com/ja-jp/library/bb385914.aspx
受け入れられない理由はそいつの能力と与えられる時間の割合の話にしかならん。
地道に受け入れる体制をつくるかそういう奴を切るかの二つしかないのに
糞みたいな幻想にしがみついてるだけだわ。
才クロマティック数とかさ、普通に気にしてりゃそこまでひどいことにはならんわけよ。
ツールの数はおれは十分だと思ってるけれど、結局そういう地道な数値なんてのはむしするわけだ。
ただただ新しい指標作りましたっていうアリバイ発明のためだけってのは
この業界では昔からいっくらでもあるわけで警戒するのが普通なんだよ。
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:IKvN98q1499デフォルトの名無しさん
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)
https://www.youtube.com/watch?v=rZeTdi7en6A
Debunking Myths About Programming Languages (and More)
https://www.youtube.com/watch?v=rZeTdi7en6A
512デフォルトの名無しさん
2018/01/01(月) 12:19:03.55ID:bFOlOWpA >>508
マクロを追ってくのは面倒ではあるが
一つ一つ展開してけばそこまで無理ゲーではない。
しかしhaskellみたいに正格評価でない言語はバイナリイメージが描きにくいし
やっぱり辛いんじゃないかな。
マクロを追ってくのは面倒ではあるが
一つ一つ展開してけばそこまで無理ゲーではない。
しかし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
だけど、↓みたいに数学的基礎付けが欲しい人はいるのもわかるが。
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:sFrCkJSv527デフォルトの名無しさん
2018/01/01(月) 22:59:07.73ID:yhABuCD4 それもそうか。たしかに妙なところで妙な泥臭さが顔を出すな
528デフォルトの名無しさん
2018/01/02(火) 10:01:13.65ID:EAVq+O5u529デフォルトの名無しさん
2018/01/02(火) 11:37:28.22ID:rfQ6c9kP530デフォルトの名無しさん
2018/01/02(火) 12:30:30.49ID:oC5uWYs9531デフォルトの名無しさん
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
古いけどこれとか参考にならないかな?
「分析・設計ツールとしての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。エラー?握り潰せば?の世界だから
なんとなく動けば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とかで求められる
「必要なら本番投入も可能な動く仕様書」的側面はきっとあまり役には立たないだろうね
あまりに動的性を追求しすぎててインタープリタ言語と勘違いされがちだけど
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のこの大胆な変更への追随力があったから
こっちにもマジレスすると、実際そのとおりで
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根性が染み付いているようだねッ 彡⭐
きみには孫請けSIer根性が染み付いているようだねッ 彡⭐
539デフォルトの名無しさん
2018/01/03(水) 13:41:42.24ID:0ljbskXf Pythonよりすっきり書ける言語がないという事実
540デフォルトの名無しさん
2018/01/03(水) 15:29:23.56ID:BD5Fg5Uh541デフォルトの名無しさん
2018/01/03(水) 15:36:20.12ID:0ljbskXf >>540
そんなゴミクソ仕様の塊よりすっきり書ける言語がないという事実
そんなゴミクソ仕様の塊よりすっきり書ける言語がないという事実
542デフォルトの名無しさん
2018/01/03(水) 16:16:41.94ID:1ORngv96543デフォルトの名無しさん
2018/01/03(水) 16:25:14.58ID:BD5Fg5Uh544デフォルトの名無しさん
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:1ORngv96547デフォルトの名無しさん
2018/01/03(水) 18:51:02.03ID:ykBugU3C またTypeScriptか。
いい加減ちょっと落ち着いてほしいな、推しの人は。
言語仕様はごった煮、出来上がるのは微妙に汚いJavaScript。
async awaitをネイティブのasyncじゃなくてトランスパイルした結果なんて変数のライフタイム無茶苦茶長くなるし。
言語としてのTypeScriptはいろんな意味で何でもできて良いと思うけど、今の実装としてのTypeScriptって微妙だと思うんだが。
単に書く時にスッキリかけても、ちょっと違う気がする。
いい加減ちょっと落ち着いてほしいな、推しの人は。
言語仕様はごった煮、出来上がるのは微妙に汚いJavaScript。
async awaitをネイティブのasyncじゃなくてトランスパイルした結果なんて変数のライフタイム無茶苦茶長くなるし。
言語としてのTypeScriptはいろんな意味で何でもできて良いと思うけど、今の実装としてのTypeScriptって微妙だと思うんだが。
単に書く時にスッキリかけても、ちょっと違う気がする。
548デフォルトの名無しさん
2018/01/03(水) 18:56:17.97ID:Dz+CQN9J549デフォルトの名無しさん
2018/01/03(水) 19:05:06.06ID:ykBugU3C >>548
そうじゃなくて。だからネイティブのじゃなくてトランスパイルさせたらって前提付けたんだけどな。
なんかあそこまでやるなら、JSとの相互運用諦めてもっと汚いコード出せば良いのに、と思ってしまうんよ。
そうじゃなくて。だからネイティブのじゃなくてトランスパイルさせたらって前提付けたんだけどな。
なんかあそこまでやるなら、JSとの相互運用諦めてもっと汚いコード出せば良いのに、と思ってしまうんよ。
550デフォルトの名無しさん
2018/01/03(水) 19:38:05.02ID:Dz+CQN9J551デフォルトの名無しさん
2018/01/03(水) 20:25:39.92ID:ykBugU3C >>550
弄ることは無いが、あるべき姿になるようにTS側で書き分ける事はあるかな。
くっそ遅い関数がなんで遅いのかを調べにかかった時に、モヤモヤした覚えがある。
genericsとか、型ごとの関数をちゃんと作ってほしいけど、一つだったり。今違うかったらすまん。
その時は、これでJIT結果捨てる事になってる…って気づいて、素直に沢山関数を作った。
コンパイラと言うならもう少しVMの仕様を鑑みても良いと思う。
弄ることは無いが、あるべき姿になるように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とかのメジャーを作ってる奴らが関数型厨だからで、
次世代なのは、言語というよりはライブラリという感じがする。
それは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のコードになるよ。
特定のブラウザじゃなくて。そういう発想がセンス無いの。
複数の型で同じ関数を呼ぶとかストールするのはほとんど当たり前と言っても過言じゃなかったりするけど、それを「特定のブラウザの問題でしょ?それよりこんな新しい機能ついたよ」って毎回押し切ってくるのがTypeScript。
AssemblyScriptなんかは好きだけどね。
TS使うプロジェクトにはたまにプルリク送ってるけど、最終的にはTSっぽくないTSのコードになるよ。
559デフォルトの名無しさん
2018/01/04(木) 13:22:41.64ID:h9oQFOEG >>558
そんなもんJITがやるべきことでしょ
そんなもんJITがやるべきことでしょ
560デフォルトの名無しさん
2018/01/04(木) 13:34:10.72ID:dTmScpvt >>559
だから、特定のどうの、ではなくて、概ね大半の処理系でJITに乗るようなコンパイル結果出せって言ってるんだけど?
無理した小奇麗なJSっぽいコード出さなくても良いじゃん、って。
V8だと何バイト以下なら関数はインライン化される、とか細かい癖も確かにあるけど、だからこそ小奇麗で無くていいと思うんだが。
だから、特定のどうの、ではなくて、概ね大半の処理系で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のコードにする必要は(もはや)無いと思うんよね。
許容範囲次第なのは確かだけど。
言語としては新しくて良いと思うが、処理系として微妙ってのはそういう所。
Cで言うとexternしない関数が関数としての形を保たなくても良いのと同じ様に、exportしてないものを似たようなJSのコードにする必要は(もはや)無いと思うんよね。
許容範囲次第なのは確かだけど。
言語としては新しくて良いと思うが、処理系として微妙ってのはそういう所。
564デフォルトの名無しさん
2018/01/04(木) 19:02:23.91ID:h9oQFOEG565デフォルトの名無しさん
2018/01/04(木) 19:07:31.76ID:a9q0dcb4 おまえらなんかよりずっと賢い連中が作ってるんだから
問題なんかあるわけねえだろ
バカか?オレオレFW作りたがり坊やのペチプァなのか?
問題なんかあるわけねえだろ
バカか?オレオレFW作りたがり坊やのペチプァなのか?
566デフォルトの名無しさん
2018/01/04(木) 19:52:37.93ID:c10UOky1567デフォルトの名無しさん
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:lDvme0sw570デフォルトの名無しさん
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:Lhuo9IQi576デフォルトの名無しさん
2018/01/05(金) 07:47:15.22ID:QF8nYsKX >>575
草
草
577デフォルトの名無しさん
2018/01/05(金) 10:36:04.85ID:OSZVMsU9 >>575
おっ 頭がPoorのペチPoorか?
おっ 頭がPoorのペチPoorか?
578デフォルトの名無しさん
2018/01/05(金) 12:08:39.39ID:2QFGEILP ペチPoorはおつむもおちんぎんもPoorでかわいそうね
579デフォルトの名無しさん
2018/01/05(金) 12:50:08.59ID:WQychI9E580デフォルトの名無しさん
2018/01/05(金) 13:38:22.06ID:rGChZwpO >>578
やめたれw
やめたれw
581デフォルトの名無しさん
2018/01/05(金) 13:40:21.34ID:9YdInhdK582デフォルトの名無しさん
2018/01/05(金) 14:12:44.72ID:WQychI9E583デフォルトの名無しさん
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/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:pmlj07ym595デフォルトの名無しさん
2018/01/06(土) 14:27:48.16ID:ul9KuZX2 どう考えてもV8にコミットするのが筋だわな
別にTS批判君が全ブラウザをやらなくても、効果的な改良なら他もすぐに追従するだろう
まさかJIT結果だのVMの仕様だのキリッが付きそうなレスしてるのにC++やネイティブコンパイル分からないとか言わないよね
別に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に引きずられる必要があるのかわからんが、皆がそれで良しとする理由は「中途半端で良いから」なの?
いや違うだろ。
なんで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だろうと単なる名前に拘る奴は居ないと思う
>いかんのか?
いいと思うよ
少なくともtscだろうとtstだろうと単なる名前に拘る奴は居ないと思う
>いかんのか?
いいと思うよ
601デフォルトの名無しさん
2018/01/06(土) 18:35:08.26ID:bW7JkyTC >>598
実行時に型ごとにJITを分けるのって割と一般的な最適化手法だろ
型ごとにjsを生成すると言っても結局それらはみんな同じコードであって型情報なんて残らないんだから、
それが適切に最適化されるかどうかなんて処理系次第だろ
jsに型アノテーションを導入しろというなら理解できるが、あんたの主張は無茶な言いがかりにしか見えないな
実行時に型ごとにJITを分けるのって割と一般的な最適化手法だろ
型ごとにjsを生成すると言っても結局それらはみんな同じコードであって型情報なんて残らないんだから、
それが適切に最適化されるかどうかなんて処理系次第だろ
jsに型アノテーションを導入しろというなら理解できるが、あんたの主張は無茶な言いがかりにしか見えないな
602デフォルトの名無しさん
2018/01/06(土) 18:41:14.50ID:bW7JkyTC 補足
最適化されるかは処理系次第、といったのは、結局、型ごとにjs生成しようが
JITは実行時の型を利用して最適化することには変わりないんだから、本質的には大した違いはないという意図だぞ
ヘボいと言うなら複数の型に適切に対応できないJITがヘボいんだよ
最適化されるかは処理系次第、といったのは、結局、型ごとにjs生成しようが
JITは実行時の型を利用して最適化することには変わりないんだから、本質的には大した違いはないという意図だぞ
ヘボいと言うなら複数の型に適切に対応できないJITがヘボいんだよ
603デフォルトの名無しさん
2018/01/06(土) 18:58:45.67ID:wyffhFco604デフォルトの名無しさん
2018/01/06(土) 20:51:20.91ID:jSg6g7bL >>603
PooHPoorさん・・・w
PooHPoorさん・・・w
605デフォルトの名無しさん
2018/01/07(日) 09:04:05.50ID:WSf4F++k606デフォルトの名無しさん
2018/01/07(日) 09:48:25.87ID:X58Odkk6 >>605
まともな実装なら型が数種類あるくらいならJIT破棄しないよ
まともな実装なら型が数種類あるくらいならJIT破棄しないよ
607デフォルトの名無しさん
2018/01/07(日) 12:37:05.15ID:3N9WbZKm 妄想でごちゃごちゃ言ってないで検証コード載せなさいよ
どっちが馬鹿かはっきりするでしょ
どっちが馬鹿かはっきりするでしょ
608デフォルトの名無しさん
2018/01/07(日) 13:26:29.62ID:WSf4F++k609デフォルトの名無しさん
2018/01/07(日) 13:30:35.11ID:+RrxdpdM マウンティングで検索したら誰も言ってなくてワロタ
610デフォルトの名無しさん
2018/01/07(日) 13:47:09.28ID:WSf4F++k611デフォルトの名無しさん
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から始まる言語とか
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サポートしていて嬉しい
新しいjsライブラリは結構TypeScriptサポートしていて嬉しい
632デフォルトの名無しさん
2018/01/08(月) 22:54:56.01ID:e0/LavPD 全てのJSプロジェクトはTypeScriptにしろ
棒案件で立ち上げ時にクソバカの老害オッサンがJSでコード書き始めたせいで
どんだけ苦労したか
棒案件で立ち上げ時にクソバカの老害オッサンがJSでコード書き始めたせいで
どんだけ苦労したか
633デフォルトの名無しさん
2018/01/08(月) 23:52:24.85ID:KF2MtXIW TypeScriptは認めるがBabelはほんとやめてほしい
わざわざビルドを面倒にするだけの見返りはどう考えても無い
わざわざビルドを面倒にするだけの見返りはどう考えても無い
634デフォルトの名無しさん
2018/01/09(火) 00:49:10.43ID:Eu2F6gCU Babelないとjsxも書けないし新しい文法も使えないぞ
糞まみれの生JSに戻る気か?
糞まみれの生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型を廃止して
それ理想的だね。型を最初からサポートしたほうが良い。
typescriptを中心に据えてオプションで型無しをサポートする方針にしたほうが処理性能向上に寄与する気がする。
あとnumber型を廃止して
638デフォルトの名無しさん
2018/01/09(火) 18:53:23.55ID:dlYDsmgP >>621
もう叩いてないぞ。
割と興味出てきたのに、誰も、ここが良い!を言わないからつまんねえのって思ってるだけだよ。
スレタイに入れたいだけじゃねえの?って。
正直、使ってみた感じは悪くないけど、この便利な言語でこういう事すると楽かな?みたいなのがあんまり思いつかんので、良いサンプルは見たいな。
GoのGoroutineやchanの気軽さとか、erlangのプロセスの考え方みたいなのとか。
もう叩いてないぞ。
割と興味出てきたのに、誰も、ここが良い!を言わないからつまんねえのって思ってるだけだよ。
スレタイに入れたいだけじゃねえの?って。
正直、使ってみた感じは悪くないけど、この便利な言語でこういう事すると楽かな?みたいなのがあんまり思いつかんので、良いサンプルは見たいな。
GoのGoroutineやchanの気軽さとか、erlangのプロセスの考え方みたいなのとか。
639デフォルトの名無しさん
2018/01/09(火) 18:54:28.23ID:5zS3VIoD >>621
スレタイに入れた奴が居るはずだろw
スレタイに入れた奴が居るはずだろ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/I53t644デフォルトの名無しさん
2018/01/09(火) 21:25:06.32ID:p1Q0x2y+ データフィルタ的に使うのなら確かにいいかもな。
645デフォルトの名無しさん
2018/01/09(火) 23:27:20.37ID:MVMyukKY646デフォルトの名無しさん
2018/01/13(土) 21:15:44.50ID:c6t40eQY >>640
Pandoc
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のほうが強いのか
やっぱ関数型プログラミングは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/w5S664デフォルトの名無しさん
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
書きにくいから、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)」と匙を投げたという残念な
結論のまま現在に至っているという共通認識があります
https://mevius.5ch.net/test/read.cgi/tech/1415419907/197/
やっぱり日本在住の Pythonista がガラパゴスなのは昔から同じですね
http://mevius.2ch.net/test/read.cgi/tech/1345123070/70-71/
あれれ、日本国内ではそういう認識が浸透してるの?
世界的には Python の lambda が欠陥であることは広く知られていて、
改善に向けた議論も重ねられたけど、結局、作者のGuido氏が
「解けないパズル(unsolvable puzzle)」と匙を投げたという残念な
結論のまま現在に至っているという共通認識があります
https://mevius.5ch.net/test/read.cgi/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節みたいなスコープの限定されたローカルな書き捨ての関数を用意する文法がない(読みにくいでしょ?とか書いてある)
この辺の縛りがあるからでないかい?
1. 自分で高階関数を作れない(ラムダ式が利用できる関数が少ないと書いてある)
2. where節みたいなスコープの限定されたローカルな書き捨ての関数を用意する文法がない(読みにくいでしょ?とか書いてある)
この辺の縛りがあるからでないかい?
670デフォルトの名無しさん
2018/01/18(木) 09:22:04.51ID:AIUmpkCu ごめん、>>669は寝ぼけて適当なこと書いたぽいから、無視しといて。
671デフォルトの名無しさん
2018/01/18(木) 21:25:08.77ID:oG29giIx 関数型っのがどういう定義かは分からないけれど、
HaskellとPythonを比べると、パターンマッチが
なくて再帰が書きにくいと感じたり、
基本破壊的だから、わざわざ非破壊で書くのが
めんどくさいと感じる。
内包表記は似ていて良いかな。
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の場合を定義しとけば、帰納的に任意のリストについての適用結果が求められる、
とかそういうの?
空リストとSuccの場合を定義しとけば、帰納的に任意のリストについての適用結果が求められる、
とかそういうの?
677デフォルトの名無しさん
2018/01/20(土) 18:09:55.87ID:grrE5KFF 評価順序とかモチっと低いレイヤーでの動作規定ってことでないの?
ABIレベルでのさ。
ABIレベルでのさ。
678デフォルトの名無しさん
2018/01/20(土) 18:18:48.11ID:JZVVUERo もしかして、あ氏?
だとしたら、お久しぶりです。
だとしたら、お久しぶりです。
679デフォルトの名無しさん
2018/01/20(土) 20:48:41.14ID:I76mD3dR680デフォルトの名無しさん
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モードだとそういうのを勝手に展開してくれるコマンドがあり、
ゲーム感覚で証明してく感じ。
で、カリーハワード対応を考えると、関数の定義も結局は同じで、実際同じコマンドを使って進めてくことになる。その流れでやれば、後で漏れてる云々は問題にならない。
こんな感じですかね?
上の人が書いてるように、ただの場合分けだと思う。ただ、>>682の人も書いてますが、本当に網羅しているか、を考えると理論が出てくる気がする。
定義域の型が、型コンストラクタで定義されてれば、そいつら全てについて場合分けする、
で、そいつらも型コンストラクタが入ってれば、、てのを続けていけば、全てについて網羅的な場合分けが出来る。
言葉だとわかりにくいですが、Agdaの動画を見るといいと思います。
定理を証明するのに、上の場合分けを考慮する必要があって(漏れたら困りますよね?)、
実際EmacsのAgdaモードだとそういうのを勝手に展開してくれるコマンドがあり、
ゲーム感覚で証明してく感じ。
で、カリーハワード対応を考えると、関数の定義も結局は同じで、実際同じコマンドを使って進めてくことになる。その流れでやれば、後で漏れてる云々は問題にならない。
こんな感じですかね?
684デフォルトの名無しさん
2018/01/20(土) 22:20:04.44ID:4frS9VE4 >>682
動的言語はデータクラスをほとんど使わず、辞書や配列を生で扱うことが多いからじゃないかな
型で分岐するケースがそもそも少ないし、when Some a みたいにパターンマッチと同時に要素を抽出したくても抽出の仕方が定義されていない
動的言語はデータクラスをほとんど使わず、辞書や配列を生で扱うことが多いからじゃないかな
型で分岐するケースがそもそも少ないし、when Some a みたいにパターンマッチと同時に要素を抽出したくても抽出の仕方が定義されていない
685デフォルトの名無しさん
2018/01/20(土) 23:10:12.11ID:fmAc02d6686デフォルトの名無しさん
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みたいにしろ
ってこと?
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;}
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が復活
だから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みたいな古い言語はだいたいサポートしてない
多次元配列サポートしてる言語なんて他にはFortran, R, Python, Julia, Racketくらいしか思いつかない
第一級関数は最近増えて来てるけどFortranみたいな古い言語はだいたいサポートしてない
703デフォルトの名無しさん
2018/01/24(水) 10:13:41.67ID:apJvYiuW >>702
多次元配列サポートすると何の役に立つの?
多次元配列サポートすると何の役に立つの?
704デフォルトの名無しさん
2018/01/24(水) 10:30:59.45ID:Gs9CrZMb705デフォルトの名無しさん
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に依存してるみたいなのはやめて欲しい
Racket挙げてるし中置演算子は重要度低いけど、よく使う関数はチューニングされたものを置いておいて欲しいな
Numpyだって標準ライブラリじゃないし、最悪標準ライブラリじゃなくてもいいけど、「数値計算するなら常識的に考えてこれ」という一つに定まっていてほしいな。
あるライブラリはEigenに依存しているが他のあるライブラリはublasに依存してるみたいなのはやめて欲しい
708デフォルトの名無しさん
2018/01/24(水) 11:04:32.91ID:RrrJ1nlK709デフォルトの名無しさん
2018/01/24(水) 11:09:12.83ID:J/V7RjN6 第一級関数のことかな?
多次元配列はレアだよ
多次元配列はレアだよ
710デフォルトの名無しさん
2018/01/24(水) 11:24:52.80ID:veFPPCA3 Pythonは多次元インデックスをオーバーロードできるけど組み込みの多次元配列は無い
PythonレベルのサポートでいいならKotlinも同等だね
PythonレベルのサポートでいいならKotlinも同等だね
711デフォルトの名無しさん
2018/01/24(水) 11:58:57.43ID:apJvYiuW そういえばExcel方眼紙もある意味二次元をサポートしてるな
Excelの異常な人気の原因はそこか
Excelの異常な人気の原因はそこか
712デフォルトの名無しさん
2018/01/24(水) 19:16:29.18ID:CULWU8L2 義務教育に向けて親もプログラミングやっときたい、どれが良い?
Pythonとかよく目にするけど、と聞かれた。
どう答える?
Pythonとかよく目にするけど、と聞かれた。
どう答える?
713デフォルトの名無しさん
2018/01/24(水) 19:30:37.89ID:D4W5cGwF 相手が挙げて来た言語のメリットを適当に言ってそのまま勧めれば良い
親が教えるためにやる言語なんて何でも良いし、違いがわかる頃には子供は卒業してる
選ぶのも面倒くさい
親が教えるためにやる言語なんて何でも良いし、違いがわかる頃には子供は卒業してる
選ぶのも面倒くさい
714デフォルトの名無しさん
2018/01/24(水) 19:50:08.15ID:N2tfbGLJ715デフォルトの名無しさん
2018/01/24(水) 20:27:01.77ID:0VEJNLN9716デフォルトの名無しさん
2018/01/24(水) 20:29:15.40ID:c9tmIiAF 子供にはScratchをやらせることになるらしいから、親もScratchをやればいいじゃん
>>712
やはり再帰的思考が勘所かと考えていますので、scheme をお勧めしようかと思っています
やはり再帰的思考が勘所かと考えていますので、scheme をお勧めしようかと思っています
718デフォルトの名無しさん
2018/01/25(木) 01:24:29.68ID:mR4+Kf/H719デフォルトの名無しさん
2018/01/25(木) 02:32:13.16ID:uqKgsWDy720デフォルトの名無しさん
2018/01/25(木) 12:45:10.82ID:R+9hEl/X >>711
excelは関数型言語だ、と言う人々も居るくらいだからな(笑)
excelは関数型言語だ、と言う人々も居るくらいだからな(笑)
721デフォルトの名無しさん
2018/01/25(木) 14:09:07.50ID:ArcwQAgj Excelはビジュアルリアクティブプログラミング環境と言えばまあ間違ってはないんだけど
二次元配列以外の構造の扱いが難しすぎて、学習用にしてしまうと
他のデータ構造を学ぶ機会がないまま何でも二次元配列に落としこむ悪癖がついてしまいそうで
二次元配列以外の構造の扱いが難しすぎて、学習用にしてしまうと
他のデータ構造を学ぶ機会がないまま何でも二次元配列に落としこむ悪癖がついてしまいそうで
722デフォルトの名無しさん
2018/01/25(木) 14:31:25.81ID:NsBjyJ7C >>721
人間が無理なく扱えるデータは二次元の表が限界なんだよ
考えてみろ
お前がよく使う構造体やクラスのリストや辞書は実質二次元の表だろ
オブジェクト指向では直接深く階層掘ったアクセスは嫌われるだろ?
なんだかんだ格好いい理屈を付けても、結局人間にはExcelのデータ構造が馴染むんだよ
人間が無理なく扱えるデータは二次元の表が限界なんだよ
考えてみろ
お前がよく使う構造体やクラスのリストや辞書は実質二次元の表だろ
オブジェクト指向では直接深く階層掘ったアクセスは嫌われるだろ?
なんだかんだ格好いい理屈を付けても、結局人間にはExcelのデータ構造が馴染むんだよ
723デフォルトの名無しさん
2018/01/25(木) 14:38:39.64ID:ArcwQAgj724デフォルトの名無しさん
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を防ぐためにも強い型付けが必要なんだよ
このようなtypoを防ぐためにも強い型付けが必要なんだよ
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は変数はいきなり使っていいけど名前で型が決まる静的型だったし
昔のFortranやBASICは変数はいきなり使っていいけど名前で型が決まる静的型だったし
732デフォルトの名無しさん
2018/01/26(金) 16:36:58.42ID:G7ZCkEjP 宣言がない変数は、省略ではなく他のファイルで宣言している可能性がある
そのファイルをincludeするか、全てのファイルを検索する必要がある
そのファイルを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じみた話に戻るとは。
今更option explicitじみた話に戻るとは。
736デフォルトの名無しさん
2018/01/27(土) 22:13:06.80ID:RNgYnDaT >>734
天井Lみたいなこと言うな
天井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年の間繰り返されてるわけだからな。
新しい言語なら問題解決できる!
とかめちゃくちゃな広告が出回って導入、失敗っつークソパターンがここ20,30年の間繰り返されてるわけだからな。
748デフォルトの名無しさん
2018/02/01(木) 15:37:35.21ID:suqSmKNo749デフォルトの名無しさん
2018/02/03(土) 02:04:53.95ID:VC8JN1NA JSに依存するのはいいがGHCがな
もしもF#がGHCに依存していたら面倒臭いじゃないか
もしもF#がGHCに依存していたら面倒臭いじゃないか
750デフォルトの名無しさん
2018/02/12(月) 17:15:27.49ID:NkUQn5xe751デフォルトの名無しさん
2018/02/12(月) 17:16:33.56ID:NkUQn5xe752デフォルトの名無しさん
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/MGoqE755デフォルトの名無しさん
2018/02/18(日) 01:30:59.56ID:5P/pcqvC >751
これ初めて見た
これ初めて見た
756デフォルトの名無しさん
2018/02/18(日) 15:38:35.68ID:CW1UlThv なんかTypeScriptのジェネリクスがどんどん変態じみてきたんだけど、ジェネリクスってこういうもんなの?
これならgoに乗んなくていいなぁ
これならgoに乗んなくていいなぁ
757デフォルトの名無しさん
2018/02/18(日) 15:51:20.83ID:AYB00j0e >>756
欲求は際限なく広がって、そしてゴミの塊みたいな仕様になるもんだ。
ずっと前からTypeScriptは手段と目的をどっかで履き違えたと言ってたが、最近シャレになってない。
Goの割り切りは納得に値するよ。あったら便利なのは認めるけど。
Cppのtemplateみたいに、それだけでチューリング完全になってしまう前に、最初から入れない、やるならgenerateで別立てで勝手にやれと言う割り切りしたのは英断だと思う。
欲求は際限なく広がって、そしてゴミの塊みたいな仕様になるもんだ。
ずっと前からTypeScriptは手段と目的をどっかで履き違えたと言ってたが、最近シャレになってない。
Goの割り切りは納得に値するよ。あったら便利なのは認めるけど。
Cppのtemplateみたいに、それだけでチューリング完全になってしまう前に、最初から入れない、やるならgenerateで別立てで勝手にやれと言う割り切りしたのは英断だと思う。
758デフォルトの名無しさん
2018/02/18(日) 17:25:12.30ID:CW1UlThv >>757
ジェネリクス関連のエラーメッセージは本当に意味がわかんないよね。
ユーザー視点ではimmutable.jsとかでも補完が効くのは便利になっていいんだけど、
いざ型関連エラーが出た時にエラーメッセージから原因を予測するのが困難なんだよね。
rustもあんな感じなの?
正直TypeScriptはエラーメッセージをわかりやすくする方向に軌道修正頼んます。
ジェネリクス関連のエラーメッセージは本当に意味がわかんないよね。
ユーザー視点ではimmutable.jsとかでも補完が効くのは便利になっていいんだけど、
いざ型関連エラーが出た時にエラーメッセージから原因を予測するのが困難なんだよね。
rustもあんな感じなの?
正直TypeScriptはエラーメッセージをわかりやすくする方向に軌道修正頼んます。
759デフォルトの名無しさん
2018/02/18(日) 18:16:19.28ID:WV1p31YW >>758
変性注釈とか、やりたいことはわかるし、なぜ必要かもわかるが、一方でjsとどんどん乖離していって、jsのプロジェクトと繋げるときに結局any使うことになったり、グダグダも良いところだと思う。
TSだけでもの作るんなら、良いと思うが、そうなるとJavaScriptにコンパイルできる必要もなく、逆に早くwasmなんかに対応しろとか、ネイティブにTSの良いところを保ったまま実行できる環境出せとか、色々文句が言いたいけど、
全部ほったらかしにされてるからな。
ずーっと言語の改良してる。
変性注釈とか、やりたいことはわかるし、なぜ必要かもわかるが、一方でjsとどんどん乖離していって、jsのプロジェクトと繋げるときに結局any使うことになったり、グダグダも良いところだと思う。
TSだけでもの作るんなら、良いと思うが、そうなるとJavaScriptにコンパイルできる必要もなく、逆に早くwasmなんかに対応しろとか、ネイティブにTSの良いところを保ったまま実行できる環境出せとか、色々文句が言いたいけど、
全部ほったらかしにされてるからな。
ずーっと言語の改良してる。
760デフォルトの名無しさん
2018/02/18(日) 18:37:05.69ID:Ct2k6iqr 一方的にjsのライブラリを使用する分には問題ないだろうし、その資産にただ乗りできることこそ
jsとの相互運用性を維持する理由だろう。
言語仕様としては奇麗だけどライブラリが揃わなくて実用性がいまいち、みたいになるよりは。
jsとの相互運用性を維持する理由だろう。
言語仕様としては奇麗だけどライブラリが揃わなくて実用性がいまいち、みたいになるよりは。
761デフォルトの名無しさん
2018/02/18(日) 19:25:55.39ID:WV1p31YW >>760
jsのライブラリ側が自由な感じのライブラリだと定義ファイルが無茶苦茶ややこしいものになったりするし、なかなか微妙だけどな。
ライブラリが揃わなくてイマイチ、は確かに無いか。ほとんどタダ乗り出来るからなぁ。
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ってこれできんよね。
せめて関数のオーバーロード定義みたいなことが出来ればコードが整理しやすくなると思うんだよね。
つまり
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は
言語によって全然仕様が違うのかね?
だとしたら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の元々の型システムはよく知らないけど、ダックタイピングできるならジェネリクス入れる必要がないし、
クラスがあったり型に階層構造があるなら面倒なのはしょうがない
型自体はフラットな構造で、階層構造は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の方が楽な事が多い。
あれは罠ではない。
型や型クラスに階層構造持つのはいつでも便利なわけではないと言うか、結局コンパイラ都合を押し付けられてるだけな気がするけどな。
その辺、後出しジャンケンできるGoのinterfaceの方が楽な事が多い。
768デフォルトの名無しさん
2018/02/19(月) 00:07:59.55ID:B+b1Q4Nq ジェネリクスは、コード上別の箇所に出現する型Aと型Bが同一であることを明示することにより、型情報の損失を避けるために使うんだよ
ダックタイピングは関係ない
C++やHaskellをやってる人は>>765みたいに混同しがちだけど、JavaやC#だと多態とGenericsをわりとはっきり区別する文化がある
TypeScriptのGenericsも同様に、型の同一性を示すマーカーとしての性格が強いね
ダックタイピングは関係ない
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だと型引数に制約を付けることで中途半端に似たことができてしまうのが微妙に直行してなくてダサいけど、それは基本的にあまり使われない機能
ジェネリクスと区別するっていうのは端的にはそういうことで、実際に引数として明確に分かれることになる
JavaやC#, TSだと型引数に制約を付けることで中途半端に似たことができてしまうのが微妙に直行してなくてダサいけど、それは基本的にあまり使われない機能
772771
2018/02/19(月) 07:54:42.45ID:HJ1z9rHd すまんComparatorの間違いだ
補足しとくと、直行してないというのは例えば具体的には <T extends Comparable> と (T obj, Comparator<T> comparator) みたいなののことな
補足しとくと、直行してないというのは例えば具体的には <T extends Comparable> と (T obj, Comparator<T> comparator) みたいなののことな
773デフォルトの名無しさん
2018/02/19(月) 09:53:32.16ID:isUwiiOH >>767
便利さを教えてほしいな。
純粋なnilと型があるけど中味はnilって正直わかりづらくないかな。
reflectionのお勉強をしないと理解できない。
Goのインターフェースは後出しジャンケンってのは面白いな。パクらせてもらおう
便利さを教えてほしいな。
純粋なnilと型があるけど中味はnilって正直わかりづらくないかな。
reflectionのお勉強をしないと理解できない。
Goのインターフェースは後出しジャンケンってのは面白いな。パクらせてもらおう
774デフォルトの名無しさん
2018/02/19(月) 09:58:27.89ID:isUwiiOH775デフォルトの名無しさん
2018/02/19(月) 12:10:56.39ID:BdVjRyEG >>773
それがnilでも、メソッドチェーンできる。
だから、errを伝搬するのに便利。
末尾のDoなんかで、本当の結果,errorとして取り出せば良いよ。
いちいち失敗構造体なんぞ書かんでも良い。
Nullable的に使える。
どっちかというと下回り書いてるときに便利かも。
それがnilでも、メソッドチェーンできる。
だから、errを伝搬するのに便利。
末尾のDoなんかで、本当の結果,errorとして取り出せば良いよ。
いちいち失敗構造体なんぞ書かんでも良い。
Nullable的に使える。
どっちかというと下回り書いてるときに便利かも。
776デフォルトの名無しさん
2018/02/19(月) 12:44:49.19ID:g9K5jJLr777デフォルトの名無しさん
2018/02/19(月) 14:19:03.08ID:x9oxab6h >>775
なんかサンプルある?とょっとイメージがつかめない。nilでメソッドチェーンができるのはわかるけど、それがメリットになるかな?
結局nilを、返してるメソッドがエラー状態な訳で、そいつが暫定的な値を返せばメソッドチェーンはできるよね。
なんかサンプルある?とょっとイメージがつかめない。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に失敗したかが必要ならまた別だろうけど、だいたいひとからげにして問題ない事の方が多い。
暫定的なオブジェクトに、レシーバ書いてくの?
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しててなかなかしんどい。
error情報を最初から諦めるってことね。
とにかく最終結果がnilだからメソッドチェーンのどっかで失敗してんだろーなー。くらいの感じなのか。
標準ライブラリでそういう実装してるのあるかな?reflect.Valueとかかな。
あれメソッドチェーンできる代わりに不正なメソッド操作するとpanicしててなかなかしんどい。
781デフォルトの名無しさん
2018/02/19(月) 19:03:08.21ID:BdVjRyEG >>780
ちょっと違うけど、protobufあたりはもう少し有意義に使ってたな。
ちょっと違うけど、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?
その型のメソッドに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でも(ポインタに対してのレシーバであれば)呼べる。
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回だけ
Haskellでは
((Nothing >>= f) >>= g) >>= h
こうするとNothingのパターンマッチを3回するのに対し
Nothing >>= (\ y -> f y >>= (\ z -> g z >>= h))
これなら1回だけ
786デフォルトの名無しさん
2018/02/19(月) 23:09:11.19ID:g9K5jJLr787デフォルトの名無しさん
2018/02/19(月) 23:41:51.38ID:cDVYUoQ2 記号がなくても右結合がきもい
h(g(f(x))は右結合
x.f().g().h()は左結合
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構文が出来たわけで
全部が劣っているな。
それが嫌だからモナドができたわけだからな。
メソッドチェーンも嫌だからasyn/awaitとかdo構文が出来たわけで
全部が劣っているな。
791デフォルトの名無しさん
2018/02/20(火) 17:49:07.93ID:uyRcVPMC 秀でるのと、こねくりまわすのは違うからな。
原理上、変態構文と純でも何でもないモナドで出来るとか抜かすぐらいなら、nilチェックするほうがマシ。
原理上、変態構文と純でも何でもないモナドで出来るとか抜かすぐらいなら、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並の断絶が起きちゃう?
python3並の断絶が起きちゃう?
795デフォルトの名無しさん
2018/02/21(水) 20:32:34.11ID:qR5uNCei そもそもnil安全にする必要もない。
その変数に型的にnilが入ることが無かろうがあろうが、
他の言語のnullとはちと違うレベルでnilを取り扱える。
タプルで返す前提だと大した問題には無いと言うか。
他の言語は、nullに本来のその型が持つ意味以上の意味を与えてしまうからわざわざnull安全にしないといかんのでは?
その変数に型的に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:+RpZ2cWG798デフォルトの名無しさん
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にはなれないし。
参照にしない限りnilにはなれないし。
801デフォルトの名無しさん
2018/02/22(木) 12:53:25.00ID:+RpZ2cWG802デフォルトの名無しさん
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である可能性が残っている
}
みたいな感じで書ける。?が使えると仮定
基準がどうこうって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のように。
しょぼ!
その例はnull安全の中でも一番弱いやつ。
書き方を気をつければnullを避けられるってだけ。
本物のnull安全はスコープ単位ではなく、型検査が通ればプログラムにnullによる誤りを完全に排除されるんだよ。Haskellのように。
805デフォルトの名無しさん
2018/02/22(木) 17:06:16.89ID:zGB/N5H/806デフォルトの名無しさん
2018/02/22(木) 18:59:35.60ID:MB1I4+Gh >>804
haskellはそんな事の前にもっと解決すべき問題を解決できる言語になってくれ。
haskellはそんな事の前にもっと解決すべき問題を解決できる言語になってくれ。
807デフォルトの名無しさん
2018/02/23(金) 01:19:34.60ID:i8nFKqus 動的型で解決できる問題はすべて静的型で解決できるし
もしこれが嘘八百だと証明されたとしてもそれはそれで大きな成果だし
いずれにせよHaskellは静的型の歴史に貢献している
もしこれが嘘八百だと証明されたとしてもそれはそれで大きな成果だし
いずれにせよ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も足りてないけどさ、型理論的に。そういう点でもラテン語あたりなのは妥当。
ラテン語は良い喩えだね。印欧語ヒエラルキーの上の方にいるし。
俗ラテン語を見て、どこが欠落してるかの見通しが良くなる。
Haskellも足りてないけどさ、型理論的に。そういう点でもラテン語あたりなのは妥当。
812デフォルトの名無しさん
2018/02/23(金) 11:35:44.21ID:2M6dxKUJ コンパイル時に解決できるならそれに越したことは無いが
そのための学習コストは増大する傾向にあるよね。
Elmはブラウザのviewに特化したDSLとして学習コストを抑えてる。
Rustもメモリリークを静的に解決しようとするけどそのためのコストはかなり高め。
何事もバランスだよね。
そのための学習コストは増大する傾向にあるよね。
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みたいにコンパイラの性能上げてもらった方がよっぽど有益だったりはする。
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の設計思想自体が依存関係解決の高速化だったりコンパイル速度優先の実装みたいだね。
ジェネリクスみたいなコンパイル時の計算速度に大きく影響を与える仕様はなさそうだ。
(あっても限定的な機能になりそう)
https://taiyaq.com/contents/YgxOd3YjadMa5c793O1j1d9VX
goの設計思想自体が依存関係解決の高速化だったりコンパイル速度優先の実装みたいだね。
ジェネリクスみたいなコンパイル時の計算速度に大きく影響を与える仕様はなさそうだ。
(あっても限定的な機能になりそう)
820デフォルトの名無しさん
2018/02/24(土) 02:01:52.41ID:9192Hwvs goにはクラス階層も無いんでしょ?ジェネリクス以外の多態が無いならまだ綺麗に導入できる可能性がある
swiftはバージョンアップで型推論を入れるようなスジの悪い進化を進めてるから好きになれんよ
swiftはバージョンアップで型推論を入れるようなスジの悪い進化を進めてるから好きになれんよ
821デフォルトの名無しさん
2018/02/24(土) 06:02:14.88ID:VvbK4X3N コンパイル速度優先の上で云々ということであれば
goがDelphi/FreePascalを超えてるかというのは正直疑問
goがDelphi/FreePascalを超えてるかというのは正直疑問
822デフォルトの名無しさん
2018/02/24(土) 07:01:37.55ID:VvbK4X3N >>820
goはinterfaceによる多態が既にあるから、そこにジェネリクス入れるとJava同様になるぞ
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好きだからこうなったら感動する
現在も絶賛コンパイル速度更新中だからいいんじゃないの。
そもそも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
だっさw
825デフォルトの名無しさん
2018/02/24(土) 11:20:37.36ID:pBIylWjV 古すぎて速いってのは正しい
あとはジェネリクスがない言語は古いと認識できたらもっと正しい
あとはジェネリクスがない言語は古いと認識できたらもっと正しい
826デフォルトの名無しさん
2018/02/24(土) 13:37:19.37ID:67+llEBF >>824
俺がダサいだけでhaskellが良くなって実プロダクト出てくるならいくらでもダサくなるわw
俺がダサいだけでhaskellが良くなって実プロダクト出てくるならいくらでもダサくなるわw
827デフォルトの名無しさん
2018/02/24(土) 14:17:08.41ID:4YJEYBsv 実はDelphiにはジェネリクスあるんだぜw
828デフォルトの名無しさん
2018/02/24(土) 14:17:22.06ID:WPlCcRak829デフォルトの名無しさん
2018/02/24(土) 14:39:08.92ID:ozvKRveg 言うほど変態か?
JSによるOOPの実装方法や、即値を型として扱うTypeScriptの特性を十分に理解してないと
new () => Tとかkeyofなんかは分かりにくいかもしれないけど、それはGenerics以前の問題だろ
基本的には必要以上の驚きのない自然な仕様だと思うよ
JSによるOOPの実装方法や、即値を型として扱うTypeScriptの特性を十分に理解してないと
new () => Tとかkeyofなんかは分かりにくいかもしれないけど、それはGenerics以前の問題だろ
基本的には必要以上の驚きのない自然な仕様だと思うよ
830デフォルトの名無しさん
2018/02/24(土) 15:23:35.50ID:ZueQv0Xl >>829
それくらいならいいけどさ
https://qiita.com/Quramy/items/b45711789605ef9f96de
とか見てみると分かる。
辛いのはユーザ側だとしてもエラーメッセージで巻き込まれることないだよね。
ジェネリクス関連のエラーで一発で問題がわかったことが殆ど無い。
それくらいならいいけどさ
https://qiita.com/Quramy/items/b45711789605ef9f96de
とか見てみると分かる。
辛いのはユーザ側だとしてもエラーメッセージで巻き込まれることないだよね。
ジェネリクス関連のエラーで一発で問題がわかったことが殆ど無い。
831デフォルトの名無しさん
2018/02/24(土) 15:44:01.13ID:ozvKRveg832デフォルトの名無しさん
2018/02/24(土) 16:50:37.88ID:ZueQv0Xl833デフォルトの名無しさん
2018/02/24(土) 17:03:15.17ID:ZueQv0Xl >>832
こういうエラーメッセージと戦うのが辛いのって結局途中経過を追えないってことなんだよね。
goはコードジェネレート前提だったりする。
そっちだと分かりやすいコードを吐いてくれれば追いやすい。
こういうエラーメッセージと戦うのが辛いのって結局途中経過を追えないってことなんだよね。
goはコードジェネレート前提だったりする。
そっちだと分かりやすいコードを吐いてくれれば追いやすい。
834デフォルトの名無しさん
2018/02/24(土) 17:08:20.40ID:yL1hQTQw835デフォルトの名無しさん
2018/02/24(土) 17:08:38.51ID:cWB/7seJ >>832
これは酷いTypeScriptは糞
これは酷いTypeScriptは糞
>>832
C++ とて似たようなものだ、ジェネリクスのエラーメッセージは総じて汚らしい
C++ とて似たようなものだ、ジェネリクスのエラーメッセージは総じて汚らしい
837デフォルトの名無しさん
2018/02/24(土) 17:15:40.58ID:NYPMK72i >>834はコンパイルがクソ遅い言語に対しても
問題は言語仕様じゃなくてコンパイラの所為だと思ってそう
問題は言語仕様じゃなくてコンパイラの所為だと思ってそう
838デフォルトの名無しさん
2018/02/24(土) 17:26:03.56ID:WPlCcRak839デフォルトの名無しさん
2018/02/24(土) 17:29:02.21ID:WPlCcRak >>836
これ。ジェネリクスは人間に牙を向くのが辛い。ライブラリ開発者でうまくエラーをラップできたりすれば良いんだけどね。
これ。ジェネリクスは人間に牙を向くのが辛い。ライブラリ開発者でうまくエラーをラップできたりすれば良いんだけどね。
840デフォルトの名無しさん
2018/02/24(土) 17:43:47.02ID:yL1hQTQw >>832が分かりにくいのって、structual-subtypingで特定のメンバの型に互換性がないのを
「型同士の互換性」の単位で出力してしまってるからじゃないか?
TypeScriptならVSCodeに代入元と代入先の型を展開した状態で比較するビューが付けば解決だと思う
「型同士の互換性」の単位で出力してしまってるからじゃないか?
TypeScriptならVSCodeに代入元と代入先の型を展開した状態で比較するビューが付けば解決だと思う
841デフォルトの名無しさん
2018/02/24(土) 17:51:04.11ID:ZueQv0Xl842デフォルトの名無しさん
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も型システムだけでコンパイラ止めれたっけ。
そもそもコンパイルの時点で無限ループしかねないとかどんな闇言語だよって話になってくるじゃん。
Scalaも型システムだけでコンパイラ止めれたっけ。
846デフォルトの名無しさん
2018/02/24(土) 21:39:56.69ID:Wx4opHQO c/c++ のヘッダ処理なんかもデバッグしやすくするのとコンパイル効率は
かなりトレードオフがあるってのが一般的。
だから visual studio が内部で変なことガツガツやってるわけで。
そんなもん2、3年本気で仕事すりゃわかることだろうと思うんだが
なぜか理論よりの人間は事実を認めない傾向にある。
かなりトレードオフがあるってのが一般的。
だから 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にプリプロセッサが無いのも意味があるわけで。
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のマクロの自由度は知らんけども。
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はコンパイル時毎回動くわけじゃないから。
少なくともGoのgenereateはコンパイル時毎回動くわけじゃないから。
858デフォルトの名無しさん
2018/02/25(日) 11:41:56.21ID:oFPVlXbE あるC++のファイルを変更したら
そのファイルがincludeした全てのコードを再コンパイルする
型情報のみをincludeすればいいのに型ではない値とコードが大量に入ってる
この値とコードが原因だよね
チューリング完全はそこから生じた結果の一つ
そのファイルが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
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:iLEoqX9J865デフォルトの名無しさん
2018/02/25(日) 16:03:19.53ID:jkdNIq8n >>858
それはちょっと違う
そもそも今時フルコンパイルなんてそんなに重いものではない
C++がまずいのは、includeしたヘッダのコンパイル結果をコンパイル単位(.cpp)を跨って共有できないことだ
プリプロセッサのせいで毎回変わる可能性があるからな
それはちょっと違う
そもそも今時フルコンパイルなんてそんなに重いものではない
C++がまずいのは、includeしたヘッダのコンパイル結果をコンパイル単位(.cpp)を跨って共有できないことだ
プリプロセッサのせいで毎回変わる可能性があるからな
866デフォルトの名無しさん
2018/02/25(日) 16:17:08.31ID:UX7CM2uT867デフォルトの名無しさん
2018/02/25(日) 16:45:30.82ID:u3kGuI4S 間違ってはない
868デフォルトの名無しさん
2018/02/25(日) 17:25:46.72ID:eL53m5ic リーナスはもともとアセンブラーやからのうwww
Cは複数のCPUのアーキテクチャーに適応するためにどうにゅうしたわけやしのうww
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++のテンプレート使うよりマシという判断をしてるわけだよ。
もちろん型安全ではないがそれでもc++のテンプレート使うよりマシという判断をしてるわけだよ。
871デフォルトの名無しさん
2018/02/25(日) 20:57:01.90ID:Sac3cGbb >>865
それやったらODR違反
それやったら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でも小さなコードですごいことをしてみせる実用ライブラリってあるかな?
haskellでも小さなコードですごいことをしてみせる実用ライブラリってあるかな?
874デフォルトの名無しさん
2018/02/26(月) 01:08:12.13ID:NUAGFWAP jsのhyperappみたいに300行くらいでreact + reduxなライブラリを作ったように
haskellでも小さなコードですごいことをしてみせる実用ライブラリってあるかな?
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++と同じようなことをやってる
C++のテンプレートやコンパイル時処理のほうがよっぽど遅い
RustもSwiftもプリプロセッサを排除する代わりにC++と同じようなことをやってる
878デフォルトの名無しさん
2018/02/26(月) 11:28:37.86ID:OBKUk/zi879デフォルトの名無しさん
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:IYGVTnOb882デフォルトの名無しさん
2018/02/26(月) 13:50:29.38ID:IYGVTnOb >>875
jsのhyperappに感動してしまったから
感情的になってしまった。
300行でしかも比較的読みやすいコードで
react+reduxなライブラリが作れたことにびっくりしたんす。
勉強用の教材としてもうってつけ。
こういうのが他の言語のライブラリでもないかなと思って。
jsのhyperappに感動してしまったから
感情的になってしまった。
300行でしかも比較的読みやすいコードで
react+reduxなライブラリが作れたことにびっくりしたんす。
勉強用の教材としてもうってつけ。
こういうのが他の言語のライブラリでもないかなと思って。
883デフォルトの名無しさん
2018/02/26(月) 16:02:15.05ID:CBNL7amJ884デフォルトの名無しさん
2018/02/26(月) 20:55:59.83ID:2he6fwHk じゃあお前だけ並列コンパイル禁止な
>>883
make -j での高速コンパイルに感動することしきりです、いつか 32thread な CPU を買おうと思っています
make -j での高速コンパイルに感動することしきりです、いつか 32thread な CPU を買おうと思っています
886デフォルトの名無しさん
2018/02/26(月) 22:24:02.68ID:FUm7ZUuj なぜかプログラマー板に立って放置されてる
nimのスレ立てるか
nimのスレ立てるか
887デフォルトの名無しさん
2018/02/26(月) 22:29:16.70ID:eKoH1eQ3 頼む
888デフォルトの名無しさん
2018/02/26(月) 22:43:29.59ID:+1zKWNLy boost 大好きな奴がビルドのベストプラクティスとして
1ファイルに全て書く言うてたな。
バカとしか言いようがないが面倒だから黙ってた。
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まで行かないと出会えんのか
githubやstackoverflowまで行かないと出会えんのか
892デフォルトの名無しさん
2018/02/27(火) 05:49:52.64ID:5KO97NM4 一つのファイルに書かなくても
複数のファイルをつなげて一つにするプログラム書けばいいだろ
そのやつ馬鹿やんなwww
複数のファイルをつなげて一つにするプログラム書けばいいだろ
そのやつ馬鹿やんな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のライブラリに依存する
他言語から利用するならさすがにファイル分割せざるをえない
Cは問題ないからほとんどの言語はCのライブラリに依存する
他言語から利用するならさすがにファイル分割せざるをえない
896デフォルトの名無しさん
2018/02/27(火) 12:49:23.86ID:cuAUxW5W templateって分割できないの?分割してる俺は異端だったか
897デフォルトの名無しさん
2018/02/27(火) 13:02:26.29ID:osJwhRBM 優秀なコンパイラ使ってるんだな
そのためのexport構文は実装が難しすぎて廃止されたんだ
そのための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の魅力とセットで教えてください。
なんでなん? Rubyって動的言語だよね? PHPを使ったフレームワークとどこが違うの?
なんであんなに1強状態で人気があるの?
Rubyの魅力とセットで教えてください。
900デフォルトの名無しさん
2018/02/27(火) 16:31:55.21ID:hlxRjRwD 優れているわけではなく、バカチョンで作れるから安易に選ばれやすいのだろう
Railsで始めてみることより、仕様が固まったら次のまともな言語やフレームワークに移行できるかの方が重要
実際、それに失敗(あるいはその必要性すら見越せず)して炎上する案件も後を絶たない
小さくは産めるが大きく育てることはできないのがRails
Railsで始めてみることより、仕様が固まったら次のまともな言語やフレームワークに移行できるかの方が重要
実際、それに失敗(あるいはその必要性すら見越せず)して炎上する案件も後を絶たない
小さくは産めるが大きく育てることはできないのがRails
901デフォルトの名無しさん
2018/02/27(火) 16:57:52.59ID:NW0j8e0V バカチョンなのはphpじゃなくて?
なんか意識高い系が使ってるイメージなんだけどRoR
なんか意識高い系が使ってるイメージなんだけど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
でも言語ごと見直してるよね つ 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にはいないってことかな
これに誰もコメントできないということは意識高い系エンジニアはもう2chにはいないってことかな
908デフォルトの名無しさん
2018/02/28(水) 10:54:54.72ID:pZIdeYdH 煽られたのでレスする
>>899
エコシステムが優れているの一点に尽きる
日本語のユーザーが多いので大抵の問題は検索で解決する
とりあえずgem入れれば大抵のことができる
Rubyであることは恐らく関係がない(Rubyの魅力ってなんだろ?ないんじゃね)
このような特長によりラピッドプロトタイピングでは他の追随を許さないため、
早急に成果物が必要なWeb系スタートアップなどでとても重宝される
ユーザーが多くて問題が検索で解決するということは学習コストが低いので、
プログラミングが全くわからないという初心者にも人気
誤解を恐れずに言えば、PHPなどの他の言語のRoRライクなフレームワークは、
Rubyを新たに学習するのを嫌がった既存言語のユーザーのためのパチモンである
>>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の良いところって多分プリミティブ型が存在しないことなんかなと
完全に純粋なオブジェクト指向言語を目指したって作者の人も言ってるし。
数字にメソッドが生えているのはたしかにすごいと思った。
Rubyが嫌いって結局ガッツリハマった人の意見じゃないなぁ。
結局外から観測してる人の意見じゃん。
やっぱりいないんだな。2chには。
ちなみにRubyの良いところって多分プリミティブ型が存在しないことなんかなと
完全に純粋なオブジェクト指向言語を目指したって作者の人も言ってるし。
数字にメソッドが生えているのはたしかにすごいと思った。
913デフォルトの名無しさん
2018/02/28(水) 20:29:48.68ID:BRgV9W3l914デフォルトの名無しさん
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を作りやすい言語だとも聞いた。)
まぁそうよね。俺もRubyを外野から見てるから、正直それがどうプログラミングに役に立つかわからない。
でも、今もiOS開発でcocoapodsが使われてるなら
あれは設定ファイルがrubyで出来てるはず。(DSLを作りやすい言語だとも聞いた。)
917デフォルトの名無しさん
2018/03/01(木) 01:01:03.87ID:PEqveR2A918デフォルトの名無しさん
2018/03/01(木) 01:49:49.40ID:jbpZZhCj >>911
https://anond.hatelabo.jp/20170501085956
>JavaScriptはDOMを書き換えるためだけに存在している書捨てのクソ言語であって、サーバーサイドを書くために存在している言語でも、100万行からなるバベルの塔の建設に耐えうる言語でもない。
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全然今現役だし。むしろこれからじゃないの。
結構型定義ファイルを最初から提供してくれるライブラリも増えてきたし。
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を出力するだけの機能しか作れないわけだし。
ただ言語自体が副作用を許容するのが残念なだけで。
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は欠陥品じゃないかと誰かが思いついた
でもみんな人の話を細かいところまで聞いてない
そして、組み込み型が存在しない言語があれば完璧に覚えられるんじゃないか
完璧に覚えられないPerlは欠陥品じゃないかと誰かが思いついた
929デフォルトの名無しさん
2018/03/02(金) 23:32:55.91ID:yLzcLNAA perlやっぱキチーわ。。
http://perldoc.jp/docs/perl/5.6.1/perlvar.pod
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で久々に名前聞いたわ
flutterで久々に名前聞いたわ
938デフォルトの名無しさん
2018/03/04(日) 09:06:46.22ID:wkppZr3e 死産だろ
AltJSはTypeScriptだけでいい
Flowのある今、TSですら要らなくなりかけてるしな
コヒースクリプトとかいう究極の糞ゴミもあったなそういえば
AltJSはTypeScriptだけでいい
Flowのある今、TSですら要らなくなりかけてるしな
コヒースクリプトとかいう究極の糞ゴミもあったなそういえば
939デフォルトの名無しさん
2018/03/04(日) 09:27:49.51ID:JhMcbRX8 javascriptのpython的な感じのnode.jsが
サーバ側javascriptとかいってわけのわからない何をするものかわからない
説明しかないウェブ上にないから選択肢にならないのが駄目なんだよな。
サーバ側javascriptとかいってわけのわからない何をするものかわからない
説明しかないウェブ上にないから選択肢にならないのが駄目なんだよな。
940デフォルトの名無しさん
2018/03/04(日) 09:58:27.75ID:ok4FvQ1Q Dartの戦略はosから全部google製に置き換えるという壮大なものっぽい。
flutterはUI部分はビデオゲームみたいに0から作り直してるからAndroidの断片化問題を回避してる。
結論はdart死んでなかったんや
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にすら劣るゴミやン
Angularなんて全く自社で使ってないから、案の定グダグダでReact対抗なんか遙か遠く、Vueにすら劣るゴミやン
943デフォルトの名無しさん
2018/03/04(日) 12:37:54.80ID:vieJ9/i2 >>942
わかる
自社で作ったフレームワークを自社が使わないってどうなのよ?って思う
まだベータ版だからとかそれなりの理由があるならともかく、そうでなければ
自分の作ったフレームワークは使うに値しないって言ってるも同然だよな
そんなフレームワークを使う気になれないし趣味以外で使う奴の気が知れない
わかる
自社で作ったフレームワークを自社が使わないってどうなのよ?って思う
まだベータ版だからとかそれなりの理由があるならともかく、そうでなければ
自分の作ったフレームワークは使うに値しないって言ってるも同然だよな
そんなフレームワークを使う気になれないし趣味以外で使う奴の気が知れない
944デフォルトの名無しさん
2018/03/04(日) 12:39:21.59ID:DGFKECqx さすがに手を出しかねるよなあ
flutterに関してはアーリーアダプターさんに頑張っていただいて、僕はレイトマジョリティになるでござる
flutterに関してはアーリーアダプターさんに頑張っていただいて、僕はレイトマジョリティになるでござる
945デフォルトの名無しさん
2018/03/04(日) 13:04:30.62ID:PM/22zQa angularみたいに色々ごった煮するよりか
reactみたいに単なるviewライブラリって割り切ってもらった方が個人的には好みかな。
reactみたいに単なるviewライブラリって割り切ってもらった方が個人的には好みかな。
946デフォルトの名無しさん
2018/03/04(日) 13:14:01.97ID:8KjE9Kl8 そだねー
947デフォルトの名無しさん
2018/03/04(日) 16:54:18.25ID:esyJJEGF Googleって社内の開発に関しては保守的な印象
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に置き換えることは可能だろ
でも、それさえ行われてないわけでそんなものを正式版と言われても魅力を感じないと言いたかった
いや、自社開発のクソみたいなツールを使えと言っているわけじゃないんだが…
例えば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に最初から対応しているのがいい。
https://taiyaq.com/contents/Q2PmOvB1p2yMdH9xxe1JpKL6Jx
手軽に触れる。開発ツールとして悪くない。
vscodeに最初から対応しているのがいい。
955デフォルトの名無しさん
2018/03/04(日) 23:16:03.90ID:wkppZr3e >>950
ワイ大将軍の代弁、ご苦労だぞ
ワイ大将軍の代弁、ご苦労だぞ
956デフォルトの名無しさん
2018/03/04(日) 23:17:13.31ID:wkppZr3e957デフォルトの名無しさん
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系は極めて狭い技術領域における開発プロセスの過剰な最適化を競ってるだけで、大した技術はないんだよね
プログラミングエディタで覇権
クラウドプラットフォームで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はブランド力だけで需要を強引に上書きしてる感あるが
対して、需要を先読みするセンスは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/
がっばって実装を工夫しないと読みづらそう。
自らにES201X + 型 である。という強い制約を課している。
だからいろいろできたらいいのになって思うけどできない制約が多い。
例えば関数のオーバーロードはできない(宣言はできるけど)。
https://docs.solab.jp/typescript/function/overload/
がっばって実装を工夫しないと読みづらそう。
964デフォルトの名無しさん
2018/03/05(月) 09:56:41.48ID:mBYt1wWZ965デフォルトの名無しさん
2018/03/05(月) 10:36:05.64ID:CUJxqnH7 C言語はほとんど良いんだけどマクロだけは糞すぎ
>>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:hapGaUvz970デフォルトの名無しさん
2018/03/05(月) 12:41:42.16ID:mBYt1wWZ971デフォルトの名無しさん
2018/03/05(月) 12:42:27.17ID:rvkcJo3P >>969の理解している「普通の関数のオーバーロード」を説明してもらった方が面白いと思う
972デフォルトの名無しさん
2018/03/05(月) 13:27:13.44ID:cuduWH2+973デフォルトの名無しさん
2018/03/05(月) 13:27:48.97ID:gV5hE2lT マクロはDOM操作かPHPに似ている
ただしweb系が戦国時代だとしたらcppは覇権江戸幕府
ただし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との互換性のため)オーバーロードが行われない、
みたいに理解している。
特段反論というわけでもないけど:
シグネチャというのはそもそもメッセージタグが同一でも型や引数の個数で別になる
つまりそれはシグネチャの定義に過ぎない
シグネチャが別になった結果同じ名前で別のもの(関数定義など)が参照されるのがオーバーロード。
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
この形なら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:r5YruRsJ982デフォルトの名無しさん
2018/03/05(月) 20:56:53.56ID:cQ8T6f3a たし蟹
もう次スレいらんでしょ
もう次スレいらんでしょ
983デフォルトの名無しさん
2018/03/05(月) 21:22:28.56ID:+lEhhk6x 次世代言語と言えばsmalltalkだろ
もっとsmalltalkの話しようぜ!
もっとsmalltalkの話しようぜ!
984デフォルトの名無しさん
2018/03/05(月) 21:27:08.39ID:CUJxqnH7 申し訳ないがジョブズに自慢していいとこ取られて死んだ言語はNG
985デフォルトの名無しさん
2018/03/05(月) 21:35:44.64ID:kL27V13J あえて言おう
パクられることなくSmalltalkに残った機能なぞカスであると
イメージベース然り、become:然り
パクられることなくSmalltalkに残った機能なぞカスであると
イメージベース然り、become:然り
986デフォルトの名無しさん
2018/03/05(月) 23:30:43.29ID:XKEuRD67 なんでDart2なんか出しちゃったんだろな
ひょっとしてグーグルって俺よりバカなんじゃないか?
俺だったらGo使うわ
ひょっとしてグーグルって俺よりバカなんじゃないか?
俺だったらGo使うわ
987デフォルトの名無しさん
2018/03/05(月) 23:39:33.13ID:XKEuRD67 いやホント、俺がプロジェクトマスターやってあげたほうがいいんじゃないか?って。
心配になってくるよな、最近のグーグルは、困ったもんだよ
心配になってくるよな、最近のグーグルは、困ったもんだよ
988デフォルトの名無しさん
2018/03/06(火) 01:37:43.48ID:tYgPxfOY989デフォルトの名無しさん
2018/03/06(火) 01:41:33.41ID:vxZYoA9J GoにGUIは明らかに不得手。
俺画面周りはHTMLとCSSで書いてるわ。
gopherjs使うと思ったよりブラウザ側でも色々させられるし。
あれ面白いぞ。
俺画面周りはHTMLとCSSで書いてるわ。
gopherjs使うと思ったよりブラウザ側でも色々させられるし。
あれ面白いぞ。
990デフォルトの名無しさん
2018/03/06(火) 01:43:22.53ID:tYgPxfOY どっちかというと比較対象はTypeScriptなんじゃないかな。null安全だったりasync awaitあったり共通点は多い。
でも、jsの仕様を引きづる言語仕様だから、そういう後方互換性を考慮しなくてもいいDartってことなんじゃないか。
google社内でも使われてるみたいだし。
flutterもreactユーザーにはしっくりきやすい。俺はTypeScript+React大好き派だから
かなりいい感じ。
チュートリアルもdartを知らんでも触れるようにできてて分かりやすい。
でも、jsの仕様を引きづる言語仕様だから、そういう後方互換性を考慮しなくてもいいDartってことなんじゃないか。
google社内でも使われてるみたいだし。
flutterもreactユーザーにはしっくりきやすい。俺はTypeScript+React大好き派だから
かなりいい感じ。
チュートリアルもdartを知らんでも触れるようにできてて分かりやすい。
991デフォルトの名無しさん
2018/03/06(火) 07:20:22.85ID:kXsiMblM992デフォルトの名無しさん
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://mevius.5ch.net/test/read.cgi/tech/1520298555/
http://mevius.5ch.net/test/read.cgi/tech/1520298555/
994デフォルトの名無しさん
2018/03/06(火) 17:55:36.25ID:+o/JM6Eu flutterってどんなアーキ使えばいいの?
reactと同じだからflux?
reactと同じだからflux?
995デフォルトの名無しさん
2018/03/06(火) 20:24:51.38ID:aemwhbpR >>994
flux自体がReactの延長上の思考法なわけだから。
基本は極力Stateの管理をするコンポーネントを一箇所に集めろって話。
flutterもおんなじだろうね。
詳しくはReactの考え方でググってみ。
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
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 95日 0時間 50分 58秒
新しいスレッドを立ててください。
life time: 95日 0時間 50分 58秒
10021002
Over 1000Thread 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 【おこめ券】鈴木農相 米価維持の意図「一切ない」 [ぐれ★]
- 「日本はドイツと違い反省せず」…中国外相、独外相に対日批判 台湾問題で理解求める [少考さん★]
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★6 [七波羅探題★]
- 【苺ましまろ】立民衆院議員、人気漫画の水着少女画像を「醜悪」タイ人少女の性搾取事件と関連付け…党内で反発 [少考さん★]
- 「残業キャンセル界隈」若者が増加?「職務放棄」との批判も…“定時退社の権利”どこまで通用するか [七波羅探題★]
- 中国軍機レーダー照射、トランプ氏沈黙突く 試される日本外交 ★5 [蚤の市★]
- 日銀植田「国債買い入れ増やして金利を下げるぞ😤」 これどっかで見たな… [972432215]
- お前ら「ブラックフライデーで工具買ったぞ!」 何に使うの?
- 【悲報】「高市だけは許さん!」追い詰められた習近平、実体は経済が「ソ連化」の影響でボロボロ、日本は中国の政治ショーに付き合うな [733893279]
- 【高市悲報】中国軍「公海で空母の発着訓練するって事前通告したのになんで自衛隊機は急接近してきたんだ…?」中国軍困惑 [931948549]
- 30過ぎた大人おじさんが大学生(昔)のままのファッションをする「おじさんキッズコーデ」、炎上して問題視される。 [153490809]
- 日本人のおでん離れ。作る回数減った30.1%🍢 [256556981]
