[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 03/21 20:29 / Filesize : 251 KB / Number-of Response : 1035
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



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

前スレ
次世代言語Part7[Go Rust Swift Kotlin TypeScript]
mevius.5ch.net/test/read.cgi/tech/1508403098/

231 名前: mailto:sage [2017/12/11(月) 20:42:49.31 ID:maeT9tJH.net]
>>219
variant 型を使うなんて、まるで void * だけでコーディングしろ、と強要しているようなもの
型の恩恵を自ら捨てる選択には疑問、Java の嘘嘘 generics にしてもありがたいくらいだ

232 名前:デフォルトの名無しさん mailto:sage [2017/12/11(月) 20:45:00.55 ID:FO1afGiG.net]
俺なんかは型を書くのがそんなに面倒か?と思うし
あちらさんは型のテストを書くのがそんなに面倒か?と思うのかもしれないが
仮に、この二つが同程度の面倒臭さだったと仮定したら
その時点でバランスしてしまってるわけで・・・あとはもう自明
ただこれは昔の話で、今は型推論も普及してるから、更に

シンプルに考えて、型のテストはどこかの段階で絶対にやらなければならない
避けて通れないものとしたとき、じゃー何処でどのようにやるかという事で
どうせ不可避なら静的型のアプローチの方が良いだろうとなるだけで
システムでサポートせず人力でテストするって方向はまるで
アセンブリのようで逆行しているわ

233 名前: mailto:sage [2017/12/11(月) 20:52:19.53 ID:maeT9tJH.net]
ただ、動的型付け言語の御大将は、あの lisp 族だからな…奴らには勝てない…

234 名前:デフォルトの名無しさん mailto:sage [2017/12/11(月) 20:55:22.07 ID:pZMHEF9P.net]
Land of lispにHaskellのが良いって書いてあるから静的片付けの勝ち

235 名前:デフォルトの名無しさん mailto:sage [2017/12/11(月) 21:45:07.08 ID:wkifU5nK.net]
ローカル変数→型推論があるので型を書く必要はない
公開関数などの型→動的型付けでもコメントなど何らかの形式で型を書くので静的型付けだから書かないといけないという事はない
よって静的型付けの勝ち

236 名前:デフォルトの名無しさん mailto:sage [2017/12/11(月) 21:52:39.67 ID:lRj3KQ4V.net]
型でコーディングは出来んし、証明でビジネスは動かん
結局きちんと動くものをいかに速く作るかってだけの話だろ

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

まあPHPみたいな弱い型付けの言語は論外だが

237 名前:デフォルトの名無しさん mailto:sage [2017/12/11(月) 21:55:13.37 ID:If11Xzom.net]
Railsなんて駆逐されるほど使われてるの?
Google、Microsoft、Amazon、Facebook、twitterなど、有名な会社で使われてるのを聞いたことないが…
正直技術力のないベンチャーが使ってるイメージしかない

238 名前:デフォルトの名無しさん mailto:sage [2017/12/11(月) 21:55:35.93 ID:lStv0Fkk.net]
rust は別に好きじゃないんだが型に関するアプローチに関してはいいと思う。
関数の引数では型を気にするけど、内部は型推論で暗黙的に設定されるっていう。

239 名前:デフォルトの名無しさん mailto:sage [2017/12/11(月) 21:56:58.82 ID:VlIg6iVt.net]
>>229
Option Explicitとはその程度のもの。
あと、Variantを器用に使ってるシステム見たことあるぞ。
バカとハサミは使いよう。



240 名前:デフォルトの名無しさん mailto:sage [2017/12/11(月) 21:59:51.45 ID:xzgxDEt/.net]
>>234
Railsって言語だったの?

241 名前:デフォルトの名無しさん mailto:sage [2017/12/11(月) 22:01:59.46 ID:lRj3KQ4V.net]
>>235
初期のTwitterはRailsだぞ?
顔本はPHPだ

242 名前:デフォルトの名無しさん mailto:sage [2017/12/11(月) 22:03:18.72 ID:lRj3KQ4V.net]
>>238
脳内でHaskellとRubyに対応付けてくれよ……

243 名前:デフォルトの名無しさん mailto:sage [2017/12/11(月) 22:03:39.46 ID:Ai9DBAI/.net]
>>239
Railsなどという負債を抱えていたいい例やね

244 名前:デフォルトの名無しさん mailto:sage [2017/12/11(月) 22:04:41.80 ID:pZMHEF9P.net]
初期

245 名前:デフォルトの名無しさん mailto:sage [2017/12/11(月) 22:05:55.17 ID:If11Xzom.net]
>>239
いや知ってるけど、それはその2つが駆逐された話じゃねーかw

246 名前:デフォルトの名無しさん mailto:sage [2017/12/11(月) 22:09:18.64 ID:lStv0Fkk.net]
twitter は erlang に移って、その後やっぱ性能出ないから他のにしたって話じゃなかったっけ?
こうみると言語にこだわるのは技術力のない証拠に思えるけどね。

247 名前:デフォルトの名無しさん mailto:sage [2017/12/11(月) 22:10:51.69 ID:su83dlbx.net]
まあ十分な技術力があればJavaを使うからなwww

248 名前:デフォルトの名無しさん mailto:sage [2017/12/11(月) 22:17:40.59 ID:lStv0Fkk.net]
goroutin は意外とリークがめんどい、
erlang の軽量プロセスはそこまで性能が出ない
scala の互換性はひどすぎる、
では、この領域をカバーする言語は?
ってのはあるかもね。

249 名前:デフォルトの名無しさん mailto:sage [2017/12/12(火) 00:43:04.64 ID:du4SRE14.net]
自称 言語屋



250 名前:デフォルトの名無しさん mailto:sage [2017/12/12(火) 01:28:41.64 ID:nM55x1pa.net]
同期的にかけるasync awaitの良さを知ってから
gorutineもしんどくなってきたわ。
見た目命令順になるのが一番分かりやすい

251 名前:デフォルトの名無しさん mailto:sage [2017/12/12(火) 07:29:46.32 ID:Ye0RkKUS.net]
>>248
デバッグとスタックトレースが難点だけど、メリットの方が大きいからお世話になってます

252 名前:デフォルトの名無しさん mailto:sage [2017/12/12(火) 12:57:32.06 ID:jaMzqj4w.net]
元からイベントの投げつけ合いで書いてたからどっちも便利だと思うけどな。

253 名前:デフォルトの名無しさん mailto:sage [2017/12/12(火) 21:14:39.58 ID:u/ODDP+M.net]
lambdaの中にlambdaを書くのを繰り返すと大量のインデントと括弧が出てくる
インデントと括弧が不要になるのが一番重要

254 名前:デフォルトの名無しさん [2017/12/12(火) 21:25:39.50 ID:Z8olEYsj.net]
>>251
それって Python 限定の話だろ
Python は公式ドキュメントで関数型プログラミングには不適切と
表明しているくらいなんだから、それくらい我慢するのが Pythonista だよ

255 名前:デフォルトの名無しさん mailto:sage [2017/12/12(火) 21:37:47.02 ID:u/ODDP+M.net]
コールバック地獄は何故地獄かって話だからPython限定ではないと思うが

256 名前:デフォルトの名無しさん mailto:sage [2017/12/12(火) 22:28:11.33 ID:qokAxyHY.net]
>>251
引数とかにlambdaを直接書くスタイルはそれが苦にならない人達がやっているだけで、
それが読みにくいと感じるならフラットに展開しちゃえばいいんだぜ?
Promiseやasync/awaitでcallback地獄解消なんて書いている記事の大半も
本質的な部分はこっちだったりして。
ただ>>248の言うように上から実行順に書けるというメリットはある。

257 名前:デフォルトの名無しさん mailto:sage [2017/12/12(火) 22:28:51.50 ID:jXjdcIPT.net]
Promiseパターンがすべてを解決した認識

258 名前:デフォルトの名無しさん mailto:sage [2017/12/12(火) 23:30:52.82 ID:GdvZGdbs.net]
コールバック地獄は、JS の、co, Koa などのジェネレータランナー。
iterator, generator を使ったもの

yield Promise.all

みたいな書き方

259 名前:254 mailto:sage [2017/12/12(火) 23:35:15.82 ID:GdvZGdbs.net]
try{
yield Promise.all(非同期の並行処理)
}catch(err){
}

ジェネレータランナーは、非同期処理を同期的に書けて、
非同期処理を、try/catch できる



260 名前:デフォルトの名無しさん mailto:sage [2017/12/13(水) 14:46:46.99 ID:4nENptHR.net]
Promiseは何度も帰ってくるものや、一度も帰ってこないかもしれないものが書きづらいんだよなぁ。
名前の通りだから仕方ないんだけど。
Promiseとawaitで解決できるのはcallbackを使うものの中でもとても限定的なパターンだと思う。
無いよりマシだけどね。

261 名前:デフォルトの名無しさん mailto:sage [2017/12/13(水) 16:16:33.50 ID:NPzuRHB+.net]
コールバック地獄は慣れれば天国だろ。
実行速度もコールバック地獄のほうがプロミスより速いしな。

262 名前:デフォルトの名無しさん mailto:sage [2017/12/13(水) 18:37:50.43 ID:sjTFpswL.net]
>>259
おう、高級言語よりアセンブリの方が速いし一生アセンブリ使っとけよ

263 名前:デフォルトの名無しさん mailto:sage [2017/12/13(水) 18:38:50.92 ID:sjTFpswL.net]
>>258
何度も返ってくる物:rxjs
一度だけ返ってくるもの:Promise+async/await

264 名前:デフォルトの名無しさん mailto:sage [2017/12/13(水) 20:43:44.45 ID:VZwg/vs9.net]
>>261
借りてきすぎて統一感ゼロ。
いっそコールバック書くか、全部イベントでこなすかや全部rxか、全部Reduxのほうが潔い。
awaitで延長される変数のライフタイムが勿体無さすぎる。

265 名前:デフォルトの名無しさん mailto:sage [2017/12/13(水) 20:52:20.95 ID:4nENptHR.net]
>>260
そういう世界もあるので一概に笑えんし、少なくとも取ってつけたで満足して「これがあるから問題ない」と開き直るよりは、
コントロールを保ってモノ作ってると思うけどな。
ポリフィル(笑)

266 名前:デフォルトの名無しさん mailto:sage [2017/12/13(水) 22:30:27.71 ID:sjTFpswL.net]
>>262
いやいや適材適所だろ

267 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 00:54:59.81 ID:R6Bq4sFz.net]
rxもかなりめんどくさい。概念はシンプルなのに
操作メソッドあんなにいるもんか?って思うわ。

268 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 02:18:11.50 ID:YzSVtILw.net]
Advent見てても人気ねぇし、Rxは流行らんな。

269 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 07:59:53.12 ID:NBF/BshK.net]
時代はBlack



270 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 08:03: ]
[ここ壊れてます]

271 名前:21.17 ID:cqXlNk/G.net mailto: >>218
>動的型言語の「綴りミスも許さない」方針にはついていけない

変数宣言省略と動的型付けをごちゃ混ぜにするような人はプログラムしないほうがいい
[]
[ここ壊れてます]

272 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 08:04:38.89 ID:cqXlNk/G.net]
>>218
>動的型言語の「綴りミスも許さない」方針にはついていけない

変数宣言の有無と型付けを区別できない人はプログラム書かないほうがいいと思う

273 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 08:05:20.86 ID:cqXlNk/G.net]
>>218
>動的型言語の「綴りミスも許さない」方針にはついていけない

変数宣言の有無と型付けを区別できない人がプログラムを書くのは型エラーです
大事なことなので3回書きました

274 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 08:07:43.17 ID:cqXlNk/G.net]
>>225
>それで動的型にする見返りがあるんなら良いんだが、何もないからなぁ
>邪悪なことがしたい、以外のメリットが無い

こういう人って
邪悪なことって具体的にリストアップしてよ
と言うと二度と帰ってこないw

275 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 08:22:58.23 ID:hzCFy3Z8.net]
Yコンビネータ書きたいとかだろ

276 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 08:29:14.79 ID:cqXlNk/G.net]
Yコンビネータは再帰型で静的に型付くだろ

277 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 08:29:49.77 ID:vWSIvs9F.net]
>>264
適材適所なのかなぁ。
目下の問題を解決するためにこうなっちゃいました、いい感じなんで標準クラスにするべき!に見える。
どーせwebworkerとかserviceworker、webdsocketにイベントの投げ合いなんだし、もとのようにイベントで制御するのが一番に見えるけどな。
一度きりならonce、何回も呼ばれるからon。
eventEmitterってブラウザでも使えなかったっけ?
無けりゃそれぐらい書いても良いけど。

278 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 08:31:59.97 ID:GokG4kFP.net]
連投ガイジ

279 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 10:21:22.17 ID:vseOcHr4.net]
動的型付けの恩恵を一切受けないコードを書くなら
動的型でも型推論で補完が効くし、
補完が効かないなら動的型の恩恵を受けるようなコードを
知らないうちに書いてるってことだよ



280 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 12:16:59.44 ID:vWSIvs9F.net]
なんでもガイジだなぁ

281 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 12:51:31.09 ID:rvUZFKGD.net]
なんでもガイジというか、ガイジがいっぱい沸いているだけ

282 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 13:13:13.86 ID:kS2O37CV.net]
同じ人間でも脳の構造の違いにより考え方が全然違う。
つまり生まれつき脳の仕組みが全く違う人達がいる。

283 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 16:27:32.32 ID:w0b2qkK/.net]
仕組みが全く違うというのがもし本当なら
速度のみを測定するベンチマークが信用できなくなる
だから仕組みは同じで速度だけが違うと考えるのが無難である

284 名前:デフォルトの名無しさん mailto:sage [2017/12/14(木) 19:49:58.30 ID:ZmHWuRBr.net]
>>274
rxはSubject使い始めると一気に邪悪化するからな

285 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 00:41:45.52 ID:8bhjGnw1.net]
型無しガイジどもは死ね
迷惑なんじゃ

286 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 07:01:30.05 ID:18KhAamS.net]
型推論より要件推論ください。

287 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 07:10:42.24 ID:lXr5oGUf.net]
プロミスってモナドだよな。いい意味で。

288 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 08:27:21.30 ID:TYCzXsyM.net]
型があれば解決するかのように思ってる人が生き方を改めてほしいな。
実際問題、それだけに頼って地雷踏んだときはコアダンプ読む型なんて飾りですみたいなオッサン呼ぶ事になるんだし。

289 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 08:32:03.35 ID:onuFSj3r.net]
だがそれは型による静的検証をしない理由にはまったくならない



290 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 09:26:28.87 ID:y+u48ms5.net]
別にやればいいじゃんとしか言いようがない。
大抵糞どうでもいいキャストを付け加えるどうでもいい作業に時間を追われるだけだけどな。

291 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 09:27:43.95 ID:onuFSj3r.net]
底辺凄いな(こなみかん

292 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 09:41:39.57 ID:TYCzXsyM.net]
型による静的検証で満足する理由にもならん。

293 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 09:51:32.76 ID:KrZVgz++.net]
静的型があれば全て解決するとは誰も言ってないが
動的より良いというだけだぞ

294 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 10:01:44.25 ID:EYhpAKtT.net]
そらフレームワークに乗っかって用意された関数を呼ぶだけのドカタには
静的型の制約なんて関係ないだろうね
メタプログラミングなんてした事ないでしょ?めんどくさいよ静的型だと

295 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 10:19:01.73 ID:CUNT7XlU.net]
こいつ相手をドカタかつメタプログラミングをしたことない奴と決めつけて何がしたいんだ……

296 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 10:29:03.83 ID:Wavcz0jA.net]
なんで静的型のほうが動的型より良いって前提で話を進めるんだこいつらは……
そんなに静的型が好きならYesodでRailsレベルのシステム構築してみろっつーの

297 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 10:44:03.14 ID:CUNT7XlU.net]
そんな面倒なこと要求するならお前も何か動的言語でRails並のもの実装しろよな

298 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 10:47:18.85 ID:Wavcz0jA.net]
静的型なら動的型より生産性高いって主張してる側が実装しろよ
なんで実証をこっちがやんなきゃいけないんだよ

299 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 10:49:44.96 ID:CUNT7XlU.net]
実証責任を押し付ける上にテーマまで押し付けんなよ
テーマ量子化学で良ければ無限に実証してやるがやるか?



300 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 10:55:43.94 ID:Wavcz0jA.net]
静的型の言語はいちいちキャスト書いたり無駄にコード量がかさむ抽象クラス書いたりしてコード当たりの生産性低くなるし
メタプログラミングがかなり面倒になるしで、動的型と比べて工数が倍以上かかる
型チェックで検出できる程度のエラーなんて単体テスト書きゃ確認できる程度のモン

テスト書きたくないクソプログラマ未満には魅力的に映るんだろうがな

301 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 10:57:08.06 ID:Wavcz0jA.net]
>>297
ってこっちは主張してて、その実例として、RailsとYesodを提示してる
静的型を優位に推したいなら、逆の事例でも提示してみろって話だ

302 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 11:06:17.66 ID:lXr5oGUf.net]
動的と静的は兄弟のようなものでお助けあっていきているんだね。

303 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 11:23:17.29 ID:CUNT7XlU.net]
おぅん?
なんだその妄想。静的型でもテスト書くぞ
それにJavaじゃあるまいしちゃんと書いてりゃキャストはいらんしょ
メタプログラミングはともかく、その二つは言語の問題じゃない

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

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

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

こんな感じでええんか?

304 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 11:27:03.08 ID:CUNT7XlU.net]
挑発に乗って色々滅茶苦茶書いたものの実は俺は静的信者では無かったりする

305 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 11:52:43.43 ID:Wavcz0jA.net]
>>300
コードリーディングの過程で型情報がほしいって言うのは一理あるな。そのために間違った方のハンガリアン記法使うのもアホ臭い

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

テストについては、結局型が通るか通らないか程度はテスト書く過程で見れるだろって話で、きちんとテスト書けばその程度の差は優位性にはならないんじゃないかってことな
そりゃテスト書かないと静的型でも動的型でも壊れたコードだ

306 名前: mailto:sage [2017/12/15(金) 12:14:1 ]
[ここ壊れてます]

307 名前:9.47 ID:kyib3K1A.net mailto: >>302
>静的型言語では整数と浮動小数点数の組み合わせで四則演算すらできない
いまどきの静的型付け言語でそんなものがあるのか?静的型付け言語の意味をわかっているのか?
[]
[ここ壊れてます]

308 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 12:18:48.75 ID:Wavcz0jA.net]
OCamlは今時の静的型付け言語ではないのか?

309 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 12:21:43.33 ID:Wavcz0jA.net]
Scalaはこの問題を暗黙の型変換で対応してるが、これはこれで闇を醸造してるよな



310 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 12:26:18.04 ID:yHEncU/L.net]
演算子オーバーロードを嫌う人がいるのは事実
演算子オーバーロードすると実行時にオーバーヘッドがかさむというのは嘘八百

311 名前:デフォルトの名無しさん [2017/12/15(金) 12:26:29.05 ID:Q6E9xMBX.net]
組み込みの数値型は自動変換する言語が多いし
静的・動的と関係ないね

312 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 12:39:33.81 ID:TYCzXsyM.net]
>>290
そうでもなかろう。
蛇足という言葉もある。
生産性ってのはもう少し厳密に扱われるべきだと思う。○○の場合は、とか。

313 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 12:41:17.66 ID:TYCzXsyM.net]
>>302
間違ってない方のハンガリアンならば、型なんてどうでも良いと言う事もわかると思う。
ユーザ定義型に出来れば言う事無いけどね。

314 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 12:50:20.64 ID:Wavcz0jA.net]
>>309
そうだな。正しい方のハンガリアン記法なら、静的型のコンパイラに頼るよりはるかに健全な運用ができる

別に静的型でもやりゃいいと思うが、コンパイラに頼るのに慣れると面倒に感じるのかね?

315 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 12:56:07.91 ID:Wavcz0jA.net]
静的型でチェックできることは、単体テストを書く過程で自然とチェックできる
静的型のチェックにより、メタプログラミングが書けなくなり、本質的でない型合わせのための余計なキャストも増える

結局この二点なんだよな

316 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 12:58:02.72 ID:Wavcz0jA.net]
可読性についてはまあわからんでもない。正しい方のハンガリアン記法でも、接頭辞の管理はコード上にないからな
IDEのサポート込めば確かにリーディング速度は上がると言える

317 名前: mailto:sage [2017/12/15(金) 13:19:56.65 ID:kyib3K1A.net]
>>311
>静的型でチェックできることは、単体テストを書く過程で自然とチェックできる
逆だ、
単体テストでのチェック内容の一部は、テストを書くまでもなく静的型でチェックできる、だ
テストを書くまでもなく、成果物の品質を一定のレベルまで引き上げるのが静的型の特徴だ

メタプログラミングはそれようの総称型を使えばよい
本質的でないキャストは総称型(ジェネリクス)で基本的に全廃できる

318 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 13:45:16.34 ID:Wavcz0jA.net]
>>313
>テストを書くまでもなく、成果物の品質を一定のレベルまで引き上げる
だからって単体テスト書かないって訳でもなかろう
その単体テストを書く過程で型検査などは自然とテストされるということ
型チェックをテスト書かない言い訳にするのはそれこそ最悪

319 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 13:46:32.11 ID:Wavcz0jA.net]
ジェネリクスで不要なキャストが撤廃できるなら、それはそうなんだろう
上で挙げた四則演算問題がジェネリクスでなんとかなるとも思えんが



320 名前:デフォルトの名無しさん [2017/12/15(金) 13:59:37.30 ID:6UtRgQBN.net]
>>313
ジェネリクスをきちんと使えばキャストはほぼ全てなくせるが、
メタプロはジェネリクスだけじゃどうにもできないだろ。
あと、ジェネリクスとC++のテンプレートは似ているようで全然違う。
メタプロに関しては動的言語のほうが簡単なのは事実。
ただ、本当にメタプロが必要になるケースになんてあまりないと思うんだが。

>>314
別にテストを書かない言い訳とかじゃなくて、
静的型なら動的型に比べてテストを書く量を減らせるということだろ。
テストを全く書かなくなることはないけど、テストの量を減らせるというだけでも
そこには立派な価値があるということが言いたいんだ思うが。

321 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 14:00:37.68 ID:U+kqpzL7.net]
四則演算問題って何?

322 名前:デフォルトの名無しさん [2017/12/15(金) 14:07:11.13 ID:6UtRgQBN.net]
>>317
たぶん>>302
>静的型言語では整数と浮動小数点数の組み合わせで四則演算すらできないって問題がある。
てやつのことだろ。
それって、単に言語の性格の違いのような気がするんだが。問題と呼ぶほどのものか?

323 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 14:58:25.54 ID:57xWWF8w.net]
走らせないとわからないテストより前に、コンパイルでエラーが検出できたほうがいいやろ
テストについて

324 名前:黷ゥら勉強しなおしなさい []
[ここ壊れてます]

325 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 15:13:05.84 ID:yHEncU/L.net]
静的型と動的型の対立をいくら勉強しても新しい発見はない
次世代の静的型を考えてるやつらは現在の静的型と対立するのだ
静的型と静的型を対立させる
どっちが勝つか全く予測できないから全く新しい成果を出せるのだ

326 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 15:50:55.50 ID:y+u48ms5.net]
コンパイラがバグもなく絶対的に正しければな。
コンパイラにそこまでの期待を背負わせた結果がc++の現状なわけだ。

ユーザーの仕様要求にはぼろくそ文句言う奴に限って、
コンパイラに理不尽な要求してる奴が多いってのはほんとなんなんだろうな。。

327 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 15:54:40.37 ID:Wavcz0jA.net]
>>319
コンパイルだって走らせないと動かないとおもうんだが
結局テスト走らせるのもコンパイル経由するんだからかわんねえだろ

328 名前: mailto:sage [2017/12/15(金) 15:59:44.12 ID:kyib3K1A.net]
>>322
かわるねえ、テストはテスト書かなければならないし、すると書いたテストが間違っている可能性も否定できない
コンパイル時の型チェックは、つまるところソースの矛盾をつくのだから、それだけでソースの検証になりうる

ただ、型情報はコンパイル結果には含まれないのが普通だから、いうなれば無駄を書いているわけだ…

329 名前:デフォルトの名無しさん mailto:sage [2017/12/15(金) 16:03:06.34 ID:Wavcz0jA.net]
>>323
結局「型チェックあるからテストの手が抜ける」論者か。話にならんな



330 名前: mailto:sage [2017/12/15(金) 16:10:07.80 ID:kyib3K1A.net]
>>324
それはお前の思い込み、テスト不要とはひとこともいっていないだろう?

331 名前:デフォルトの名無しさん [2017/12/15(金) 16:17:12.00 ID:85mmUd/p.net]
動的型付け言語でメソッド先頭に引数型チェックをずらずら書いてるコードを見た時は心底アホだなと思いました






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<251KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef