次世代言語Part8[Haskell Rust Kotlin TypeScript]

■ このスレッドは過去ログ倉庫に格納されています
2017/12/01(金) 23:08:21.45ID:FxdZTiuZ
スレタイ以外の言語もok

前スレ
次世代言語Part7[Go Rust Swift Kotlin TypeScript]
http://mevius.5ch.net/test/read.cgi/tech/1508403098/
2017/12/10(日) 13:44:56.60ID:H+wQ5ZRg
>>173
Smalltalkは自身がゴミ言語であるだけでなく
後世の言語にも負の影響を与えてるので
本当に害悪だな
2017/12/10(日) 13:58:51.02ID:a6n4XEL6
>>185
はいはい
サボってないで早く保守作業に戻ってくださいね(藁)
2017/12/10(日) 14:14:10.45ID:ATSfYuOI
型情報に限らず情報ってのは冗長な部分が省略される
省略したからといって必ずしも情報が失われるわけじゃない
2017/12/10(日) 14:59:04.47ID:harEA0jS
逆に考えよう。「型がある言語」とは何だろうか
2017/12/10(日) 15:25:19.15ID:Hk+Muhn7
皮肉も理解できないペェチピィコンパイラ並の低脳ガガイノガイがおりゅってマ?w
2017/12/10(日) 15:49:43.53ID:cU10YPQo
市民、PHPコンパイラとはなんですか?
2017/12/10(日) 15:51:27.08ID:ATSfYuOI
>>190
型情報があるだけでなく情報を取得するアルゴリズムがある言語
アルゴリズムがあればモンティホール問題みたいに計算を間違えるやつが続出しない
2017/12/10(日) 16:07:22.03ID:1f8aW6Mh
>>186
多重ディスパッチ出来る言語が型なしってことはないだろ
2017/12/10(日) 16:49:06.60ID:g4Avn4JH
>>180
君が型理論を知らないことはよくわかった
ばーかw
2017/12/10(日) 17:16:26.74ID:cU10YPQo
>>195
ぺちぱーがwwwwww
型理論をwwwwwww語るwwwwwwww
今年一番笑ったわwwwwwwwwwwwww
2017/12/10(日) 18:08:14.35ID:7rwMCdFh
PHPをけなしてるだけのやつって、ほかの言語知らないから、PHPをdisって心の平穏を保ってる、可哀想なやつなんだろうな。
頑張れよ。
2017/12/10(日) 18:09:23.94ID:7rwMCdFh
因みに、俺もPHPerは害悪だから滅びろって、思ってるけどな。
2017/12/10(日) 18:31:37.52ID:W721E1OC
>>197-198
声に出して読みたい日本語
2017/12/10(日) 19:17:10.74ID:g4Avn4JH
>>196
おだいじにね
2017/12/10(日) 19:23:08.38ID:1f8aW6Mh
自己書き換えできるかどうかでプログラム言語と呼ぶかを決め奴がなんか言ってる
2017/12/10(日) 19:50:19.80ID:Hk+Muhn7
けなすってーかただの事実言うてるだけやん
ゴミ言語のペチプァ〜さんは何をそんなに怒ってるだ今さら?
2017/12/10(日) 20:53:52.22ID:OZ32lk+t
興味ない人間からすれば
いやもうわかったから。。
という感想しかない。
2017/12/10(日) 21:04:11.85ID:Hk+Muhn7
ほんとそれな
ペチプァさんは巣に帰って、どうぞ
2017/12/10(日) 21:57:41.07ID:a22e0iM0
PHPをdisっても顔真っ赤にして反論してくるヤツが居ないからツマラナイ
2017/12/10(日) 23:14:49.80ID:IzGEuZzn
PHPを必死に否定すること自体がよくわからんけどな。
そもそも作者が全部認めてるレベルのテキトーな言語なんだから、
PHPやってる奴ほど「そうだね、だから何なんだろう?」って思うような気がする。

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

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

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

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

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

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

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

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

yield Promise.all

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

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

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

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

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

こういう人って
邪悪なことって具体的にリストアップしてよ
と言うと二度と帰ってこないw
2017/12/14(木) 08:22:58.23ID:hzCFy3Z8
Yコンビネータ書きたいとかだろ
2017/12/14(木) 08:29:14.79ID:cqXlNk/G
Yコンビネータは再帰型で静的に型付くだろ
2017/12/14(木) 08:29:49.77ID:vWSIvs9F
>>262
適材適所なのかなぁ。
目下の問題を解決するためにこうなっちゃいました、いい感じなんで標準クラスにするべき!に見える。
どーせwebworkerとかserviceworker、webdsocketにイベントの投げ合いなんだし、もとのようにイベントで制御するのが一番に見えるけどな。
一度きりならonce、何回も呼ばれるからon。
eventEmitterってブラウザでも使えなかったっけ?
無けりゃそれぐらい書いても良いけど。
2017/12/14(木) 08:31:59.97ID:GokG4kFP
連投ガイジ
2017/12/14(木) 10:21:22.17ID:vseOcHr4
動的型付けの恩恵を一切受けないコードを書くなら
動的型でも型推論で補完が効くし、
補完が効かないなら動的型の恩恵を受けるようなコードを
知らないうちに書いてるってことだよ
2017/12/14(木) 12:16:59.44ID:vWSIvs9F
なんでもガイジだなぁ
2017/12/14(木) 12:51:31.09ID:rvUZFKGD
なんでもガイジというか、ガイジがいっぱい沸いているだけ
2017/12/14(木) 13:13:13.86ID:kS2O37CV
同じ人間でも脳の構造の違いにより考え方が全然違う。
つまり生まれつき脳の仕組みが全く違う人達がいる。
2017/12/14(木) 16:27:32.32ID:w0b2qkK/
仕組みが全く違うというのがもし本当なら
速度のみを測定するベンチマークが信用できなくなる
だから仕組みは同じで速度だけが違うと考えるのが無難である
2017/12/14(木) 19:49:58.30ID:ZmHWuRBr
>>272
rxはSubject使い始めると一気に邪悪化するからな
2017/12/15(金) 00:41:45.52ID:8bhjGnw1
型無しガイジどもは死ね
迷惑なんじゃ
2017/12/15(金) 07:01:30.05ID:18KhAamS
型推論より要件推論ください。
2017/12/15(金) 07:10:42.24ID:lXr5oGUf
プロミスってモナドだよな。いい意味で。
2017/12/15(金) 08:27:21.30ID:TYCzXsyM
型があれば解決するかのように思ってる人が生き方を改めてほしいな。
実際問題、それだけに頼って地雷踏んだときはコアダンプ読む型なんて飾りですみたいなオッサン呼ぶ事になるんだし。
2017/12/15(金) 08:32:03.35ID:onuFSj3r
だがそれは型による静的検証をしない理由にはまったくならない
2017/12/15(金) 09:26:28.87ID:y+u48ms5
別にやればいいじゃんとしか言いようがない。
大抵糞どうでもいいキャストを付け加えるどうでもいい作業に時間を追われるだけだけどな。
2017/12/15(金) 09:27:43.95ID:onuFSj3r
底辺凄いな(こなみかん
■ このスレッドは過去ログ倉庫に格納されています