スレタイ以外の言語もok
前スレ
次世代言語Part7[Go Rust Swift Kotlin TypeScript]
http://mevius.5ch.net/test/read.cgi/tech/1508403098/
探検
次世代言語Part8[Haskell Rust Kotlin TypeScript]
■ このスレッドは過去ログ倉庫に格納されています
2017/12/01(金) 23:08:21.45ID:FxdZTiuZ
238デフォルトの名無しさん
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 「ノコギリと刺し身包丁の優劣」みたいな無意味な話はつまらん。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国とロシアの爆撃機、日本周辺で共同飛行 [少考さん★]
- 「中国側も日本機のレーダーを感知していた」 中国メディアが報道 [♪♪♪★]
- 【YouTuber】バイク事故で入院のゆたぼん、振込で「お見舞金」募る [muffin★]
- 高市早苗首相、消費税減税に後ろ向き 足かせはレジシステム? 「責任ある積極財政」期待高いが [蚤の市★]
- 堀江貴文、キャッシュレス非対応の店にモヤッ 『PayPay』立ち上げの人物にまさかの直談判「現金決済しかできないんだけど…」 [冬月記者★]
- 低所得層のマクドナルド離れが深刻に 広がる「ファストフード格差」の真相 米国 [少考さん★]
- 防衛省、中国を完全論破www 「事前通告があったのは海自であって空自ではない」 高市早苗勝利 [175344491]
- 高市早苗さん、もう自決でしか許されないレベルになる [402859164]
- 【悲報】JA「全然米が売れなくて倉庫を圧迫してる。助けて!」米卸売り業者「安売りしたら赤字になる…助けて!」 [802034645]
- 【悲惨】中国軍が自衛隊に「事前通告」し自衛隊も返答した音声が公開されてしまうwwwこれは高市チェックアウトゕ★4 [597533159]
- 韓国政府、高市早苗の「竹島領土」発言にブチギレwwwwwwwwwwwwwwww [834922174]
- おなかすいた…誰か助けて
