- 1 名前:デフォルトの名無しさん mailto:sage [2019/09/30(月) 23:11:51.54 ID:gS2Jpksn.net]
- スレタイ以外の言語もok
前スレ 次世代言語17 Go Rust Kotlin TypeScript Julia https://mevius.5ch.net/test/read.cgi/tech/1567602619/
- 166 名前:デフォルトの名無しさん mailto:sage [2019/10/04(金) 19:52:05.34 ID:vlmSJkRH.net]
- 解いてはくれねえだろ
コンパイラが間違いだと思ったら指摘するだけでよ コンパイラが仕様を理解して正解を提案してくれる訳でもあるまいし 結局人間がきっちり書くしかねえんだよ 型が合えば満足する奴はそこがわかってない
- 167 名前:デフォルトの名無しさん mailto:sage [2019/10/04(金) 20:47:40.84 ID:x7KRb3pR.net]
- 実際問題型に過剰な信頼を寄せている人間はおれどもTypescriptの中でわちゃわちゃしてるくらいなら別に良くない?
PureScript使えって言い出してる訳じゃないし あっちはReactが上手く使えなかったり生DOM上手く使えなかったりで、静的型付け好きな私でも本末転倒感を感じる
- 168 名前:デフォルトの名無しさん mailto:sage [2019/10/04(金) 20:51:25.00 ID:6+RXT+MW.net]
- 逆なんだよなあ
最低限型が合ってるかどうかコンパイラがチェックしてくれる分だけ労力を他のことに割ける 動的型付け信者はまるで動的型付けだとロジックのバグが発生しないかのような物言いをする
- 169 名前:デフォルトの名無しさん mailto:sage [2019/10/04(金) 21:00:50.51 ID:a8m6fyZS.net]
- 型だけは立派だなw
- 170 名前:デフォルトの名無しさん mailto:sage [2019/10/04(金) 21:02:12.54 ID:8yIxxMU3.net]
- 動的型付けは不完全なコードも実行できるようにしてデプロイまでの工程を高速化するためのものであって、バグは当然増える
- 171 名前:デフォルトの名無しさん mailto:sage [2019/10/04(金) 21:06:57.26 ID:G1/ISgxb.net]
- >>167
ジェネリクス使いだすとだんだん手に終えなくなってくるよ ようは単純な型使ってるだけの間は害はない メタプログラミングやりだしたらどうでもいいところに時間かけるようになる
- 172 名前:デフォルトの名無しさん mailto:sage [2019/10/04(金) 21:11:43.47 ID:x7KRb3pR.net]
- OCamlは許された……?
- 173 名前:デフォルトの名無しさん mailto:sage [2019/10/04(金) 21:30:24.60 ID:Zf6it0qM.net]
- >>170
ジェネリクスすら使えないとかwww
- 174 名前:デフォルトの名無しさん mailto:sage [2019/10/04(金) 21:39:33.05 ID:cnXTizuT.net]
- 本来動かないコードのエラー発生をランタイムまで
先送りするのがメリットなのか?
- 175 名前:デフォルトの名無しさん mailto:sage [2019/10/04(金) 21:40:16.83 ID:6+RXT+MW.net]
- ジェネリクス使っただけで手に負えなくなるプロジェクトって静的型がなかったら実行時バグで死ぬだけでは
- 176 名前:デフォルトの名無しさん mailto:sage [2019/10/04(金) 21:41:27.58 ID:EUw3Ota4.net]
- >>170
ジェネリクスとメタプログラミングは全然違うんだが C++のテンプレートと勘違いしてる?
- 177 名前:デフォルトの名無しさん mailto:sage [2019/10/04(金) 21:44:07.98 ID:OLpRTMGU.net]
- >>175
型の制限を加えるプログラミングと言えるのでメタプログラミングのひとつだよ 出来合いのコンテナ使ってるだけの人は気にしなくていい
- 178 名前:デフォルトの名無しさん mailto:sage [2019/10/04(金) 21:55:05.87 ID:EUw3Ota4.net]
- >>176
型の制限を加えるとメタプログラミングになるというロジックが意味不明
- 179 名前:デフォルトの名無しさん mailto:sage [2019/10/04(金) 22:01:57.54 ID:D62UOEus.net]
- メタプログラミングって何なの?
- 180 名前:デフォルトの名無しさん mailto:sage [2019/10/04(金) 22:31:52.18 ID:8yIxxMU3.net]
- ggrks
- 181 名前:デフォルトの名無しさん mailto:sage [2019/10/04(金) 22:44:18.75 ID:5vrHCZSw.net]
- >>138
マネージャー「このままじゃ期限に間に合わないが……大丈夫か?」 型なしガイさん「大丈夫です!!!
- 182 名前:期限を最優先に、JSDocも型も書かずに、コードだけを書いてます!!!!!」
ええんかおまいら・・・ [] - [ここ壊れてます]
- 183 名前:デフォルトの名無しさん mailto:sage [2019/10/04(金) 23:04:10.46 ID:Qy5oO/05.net]
- 生JSはそもそもまともにドキュメントを書けるような構造化されたコードを書ける時点で結構ハイスキルな方だし、
そのレベルならドキュメント書かなくても十分に可読性や保守性の高いコードだと思うよ
- 184 名前:デフォルトの名無しさん mailto:sage [2019/10/04(金) 23:15:40.89 ID:HMIwQPk8.net]
- 流石にドキュメントは書こうぜというか
最早型云々のレベルじゃない
- 185 名前:デフォルトの名無しさん [2019/10/04(金) 23:22:38.10 ID:f2ci0Glw.net]
- ↓これマジ?ルーストってまともなエディタも作れないの??
686 デフォルトの名無しさん sage 2019/10/04(金) 22:07:43.17 ID:YLLg2aHe AtomチームがやってたRust製エディタの実験プロジェクトも終了したんだからあきらめよう
- 186 名前:デフォルトの名無しさん mailto:sage [2019/10/04(金) 23:29:38.96 ID:A0q1MFV5.net]
- char **argv の時点で既にパズルになってたよ
型レベルの構文木があるなら構文解析もあるので型レベルプログラミング不可避
- 187 名前:デフォルトの名無しさん [2019/10/04(金) 23:42:20.75 ID:fwIXJdxR.net]
- >>183
Atom自体が死に体だから余裕が無くなったのだろ まさかAtom用のフレームワークElectronを利用したVSCODEにシェア奪われるとは
- 188 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 00:19:16.44 ID:PYJHTzmB.net]
- >>182
第1引数は数字です 第2引数は文字です って書くんか? それじゃ「メンテナンスのことを考えて型書いてますんで!!!」ガイジと同じレベルやないかい
- 189 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 00:43:26.48 ID:Kv3wO+aL.net]
- その情報無かったら他人はどうやって使うのさ
命名でカバーするの?
- 190 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 01:03:03.48 ID:PYJHTzmB.net]
- >>187
マネージャー「型?そこは拘らなくていいから期限を……」 型ガイさん「その情報無かったら他人はどうやって使うのさ命名でカバーするの?!!?!!!!??????!!!!!!」ドンッ!!!!
- 191 名前:デフォルトの名無しさん [2019/10/05(土) 01:21:27.55 ID:+P5r5Pn+.net]
- >>188
ほんでマネージャはなんで答えるのよ
- 192 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 01:27:16.32 ID:PYJHTzmB.net]
- >>189
なんでっておまえらドキュメントガイジがコードも書かずに遊んでるからだろ 給料泥棒
- 193 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 01:30:54.69 ID:PYJHTzmB.net]
- /**
* メソッドの盛り合わせでございます。 * データベースにお接続し、データを取得でございます。 * 第1引数は数字でございます。 * 第2引数は文字でございます。 * 第3引数はあるかもしれないしないかもしれないでございます。 * 返値はないかもしれないし数字かもしれないでございます。 */ おまえら下請けのゴミどもはヨ?納品物は正しく敬語で書けよ
- 194 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 04:58:55.67 ID:gUIOWgQJ.net]
- 正直>>191はやりすぎだけど
型ガイさんみたいな意識高めの人ってコメント全く書かなそうだし>>191の方がメンテナンスしやすそう
- 195 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 05:02:28.81 ID:YQ7Mz102.net]
- ジェネリクスとメタプログラミングについてはとりまRust Part7 260をチェケラ
- 196 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 06:06:07.64 ID:xdqQKQ1c.net]
- もはや次世代言語関係なしに型もドキュメントもテストもロクに書けないペチパーが暴れるだけのスレになったな
- 197 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 06:09:42.41 ID:GP9ct3ol.net]
- > 返値はないかもしれないし数字かもしれないでございます。
これが実際だったりしてもコメントにすら書かないでごまかす輩がいるんだよな。 型にこだわるやつに限って都合の悪いことはコメント書かん傾向にある。 逆にうまくいかんことをコメントにしろと思うのだが。
- 198 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 06:14:53.95 ID:xdqQKQ1c.net]
- >>195
これもまったく逆だな 文字列か数値かnullが返る関数はそういう型を書かないとそもそもコンパイル通らないし、 そういう妙な型になってる関数はなんでそんな関数が出てくるのか、どんな用途なのかわからないようだとコードレビューに通らない
- 199 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 06:20:48.27 ID:GP9ct3ol.net]
- >そういう妙な型になってる関数はなんでそんな関数が出てくるのか、どんな用途なのかわからないようだとコードレビューに通らない
そんなレベルでコードレビューやってるなら問題ないだろね。
- 200 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 08:03:17.63 ID:/uRkHkBp.net]
- >>195
> 都合の悪いことは書かない 型に関しては全くそうは思わないが、話は変わるけどテストコードはまさに > 都合の悪いことは書かない が横行してるよね ユーティリティ関数のようなテストしやすいところだけテスト書いて、本当にテストの必要なコア部分は誰もテストなんか書こうとしない 奇跡的に書かれたとしても頻繁に変更が入るからすぐに壊れて放棄される この傾向は型の有無とは無関係だが、実際にはテストコードなんか無いのにその現実から目を背け 「テストがあれば型は不要」と抜かすのが動的型信者
- 201 名前:デフォルトの名無しさん [2019/10/05(土) 08:06:08.67 ID:GP9ct3ol.net]
- >「テストがあれば型は不要」と抜かすのが動的型信者
こんなこと言い出す輩はruby使ってる奴以外見たことないがな。 逆ならたくさん見てきた。
- 202 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 08:12:58.60 ID:/uRkHkBp.net]
- >>199
まあそれはその通り 一方で、それなら静的型を使っているプロジェクトはそうでないプロジェクトに比べてテストが書かれないのかというと、 面白いことに実際にはたいてい逆なんだよなw 言語の性質とは無関係に、単に品質に対する意識の問題なんだよ
- 203 名前:デフォルトの名無しさん [2019/10/05(土) 08:43:59.28 ID:+P5r5Pn+.net]
- >>190
いや、命名でカバーすんの?
- 204 名前:デフォルトの名無しさん [2019/10/05(土) 09:04:58.44 ID:hwNO3Eb6.net]
- >>176
お前は何を言ってるんだ?
- 205 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 09:12:37.01 ID:FrQq6pik.net]
- Haskellくらい型の表現力が豊かで状態を陽に扱う言語だと、コンパイルが通れば大体狙い通り動くってことが良くある
静的型付けでもオブジェクト!フィールド変数!ウオオオ!って副作用バリバリな言語だと、テストコード書かないと安心できないことの方が多い
- 206 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 09:18:43.77 ID:VWTAP42j.net]
- テストを何だと思ってるんだ
- 207 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 09:44:48.66 ID:j2LTRMYt.net]
- 別に「型なんてなくてもいいものができる」なんて流石に言わんでな
「型キチがモナドだのFreeだのEffectだのでパズルおもちゃにしてマウントとってくるくらいなら型なんていらねえ」って言ってるだけ これは個人の感想じゃなくて、Scalaの大失敗からの教訓な これをいうとすぐペチパー連呼発狂マンが飛んでくるのほんと図星なんだなとしか思わん
- 208 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 09:52:11.84 ID:Kv3wO+aL.net]
- ホントに型の話してるのか不安になってきた
- 209 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 10:02:24.47 ID:6NInSiPP.net]
- >>191
こういうコメントに謎の型書くくらいなら 普通に言語機能の型書いた方がよくない・・・? > 第1引数は数字でございます。 が平気で null | string (ただし暗黙キャストで数字になる) とか使われてたりするのが、型無し言語の世界だぞ お前らこれ読んでも、型よりコメントの方がいい、型はなくていいとか、本気で言ってるの?
- 210 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 10:23:24.96 ID:rY1OpV0v.net]
- おもちゃにするまではなんとなくわかるが個人の勝手だし、マウントとってくるってのはなんなのかわからんな。
- 211 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 11:30:14.04 ID:8R/2cy4I.net]
- 個人の勝手で共同プロジェクトのソースコードぐちゃぐちゃにされたらたまらんわ
結局メンテできるのそいつ一人になって 仕事が集中したらケツまくって逃げるんだもんな 型にこだわるやつは地雷だし、そんな奴をホイホイする言語が地雷
- 212 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 11:34:07.41 ID:ZxO1UIOF.net]
- Cのマクロをほぼほぼ封印できた成功体験が大きいと思うぜ
マクロをどう使おうが個人の自由、などという結論にはならなかった ちなみにマクロを否定するなら代案が必要だったから俺達はtemplateで再帰とかしている
- 213 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 12:12:59.41 ID:GyCr6Yqs.net]
- メ
- 214 名前:塔eナンスが〜!って言われるけど作って最初の数ヶ月だけメンテされて
その後APIの仕様変更とかがない限りずっと放置されるんだよね……w [] - [ここ壊れてます]
- 215 名前:デフォルトの名無しさん [2019/10/05(土) 12:54:38.51 ID:+P5r5Pn+.net]
- 個人の勝手でコードぐちゃぐちゃになるってどういう組織なのよ
どんな体験からそんな保守的になったのか興味あるわ
- 216 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 12:57:47.72 ID:6NInSiPP.net]
- 個人の勝手うんぬんって、完全にマネジメントの問題じゃん
それが型のせいで〜とか、思考回路ショート寸前すぎない?
- 217 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 13:00:54.85 ID:e/Rh94Kn.net]
- >>211
新規で作るよりあるものに機能足そうって思想で魔改造されるパターンで 放置どころかメンテが続くパターン知らないんだな
- 218 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 13:01:24.64 ID:Kv3wO+aL.net]
- TSってaltJSの中じゃ保守的な方ってイメージだったんだが
言語機能としてはC#やJavaと大差ない程度なのに1人抜けたらメンテ出来ないってヤバいでしょ
- 219 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 13:09:22.15 ID:bTVdb/1I.net]
- 型キチが大暴れしてコードしっちゃかめっちゃかにするのを
型キチ本人のせいじゃなくてマネジメントのせいにするとか まじで自分は悪くない正義なんだ思想でゲボ吐きそう ScalaでScalaz使い倒した上にimplicit地獄で複雑怪奇に絡み合った製品コードを 「これがきれいでシンプルでバグもない!」って強弁した挙げ句 誰も触れないからメンテお前が一人でやれって言われた途端退職したキチと同類なんだろうなお前ら 今のScalaの惨状みてると、日本中といわず世界中で似たようなことあったんだろうなって思うは
- 220 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 13:13:28.85 ID:BGs0A1AU.net]
- そりゃちょっと勉強すれば誰でもメンテはできるだろうけど型ガイさんのために学習コストを払うのが前提だよね……😅
- 221 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 13:14:23.42 ID:Kg0A79VG.net]
- ここの人たちGAFAとかに勤めてなさそう
- 222 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 13:17:59.64 ID:tTcT8bvF.net]
- >>216
そいつがキチなのは本当なんだろうけど それじゃそのキチにすら見限られるよ・・・
- 223 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 13:20:34.36 ID:xQy0rF4i.net]
- 型アンチが型を嫌う理由が型に1ミリも関係ない私怨で草
動的型ならしっちゃかめっちゃかにならなかったわけじゃあるまいし そいつ本人とコードレビューが機能してないのがダメなだけ そいつがRubyやら生JS使ってても同じことが起こっただろう
- 224 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 13:20:47.37 ID:bTVdb/1I.net]
- キチに見限られるとか本望ど真ん中で草
- 225 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 13:22:53.78 ID:rY1OpV0v.net]
- とりあえず「コードしっちゃかめっちゃか」の例を見てみたい
- 226 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 13:23:19.56 ID:+HXFD6yk.net]
- 型キチ推しがType Scriptでanyを推奨
- 227 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 13:23:25.13 ID:bTVdb/1I.net]
- だから型そのものが嫌いなんじゃなくて
型キチのおもちゃになるくらいならそんなもんいらないとしか言ってねえっての 型そのものの有用性くらいわかっとるわ 型キチの藁人形論法寒気するわ
- 228 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 13:24:23.29 ID:K6vy6GrL.net]
- まぁまぁ落ち着きなさい
型パズルでもして遊んできなさい(^_^)
- 229 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 13:26:06.48 ID:Kv3wO+aL.net]
- そんなん勝手にしろとしか
私怨をこのスレで発散されても困るんだが
- 230 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 13:26:35.49 ID:xQy0rF4i.net]
- その理論ならコードレビューが機能してなかったらRubyやJSでもメタプロ厨のオモチャになって解読不能なコードが出てくるだけだろ
キチガイを排除できない態勢がクソなだけ
- 231 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 13:31:40.03 ID:6NInSiPP.net]
- >>227
これでしかない 何が彼を憎悪に駆り立てるのか本当にわからない・・・ 型が理解できてないだけなのかな?
- 232 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 13:36:24.02 ID:bTVdb/1I.net]
- レビュワー「こんな複雑怪奇なコード通せるかバカ。分かるように書け」
型キチ「これが一番シンプルで分かりやすい!!分からないお前らがバカ!!」 上「リリース日決まってるし作り直す時間ないしちゃんと動きはするんでしょ?通してやって」 型キチ擁護さんには画期的な腹案を持ちはっとるんどすなあ
- 233 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 13:38:01.64 ID:xQy0rF4i.net]
- 完全にマネジメントの問題で草
そのロクに読めない複雑怪奇なコード出してくるヤツをプロジェクトの中心に据えたのは誰なんですかね
- 234 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 13:40:42.55 ID:tTcT8bvF.net]
- >>221
その結果、まともに引き継ぎも出来ず 誰も触れない製品コードが残っちゃったんでしょ? 問題が起きる前に排除も出来ず 問題が起きてからの対処にも利用出来なかった最悪の事例じゃん
- 235 名前:デフォルトの名無しさん [2019/10/05(土) 13:42:13.27 ID:JSHhtZtD.net]
- キチガイが型無し言語で書いたコードより、型キチが静的型付け言語で書いたコードの方がマシだからな
静的型付けが理解出来ないから前者の方がいいというのはただの勉強不足
- 236 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 13:43:25.00 ID:oMST/mlK.net]
- スクリプトとかいうゴミの話はやめてちゃんと機械語吐き出すまともな言語の話しようぜ
- 237 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 13:53:52.42 ID:6NInSiPP.net]
- >>232
1000000000%そのとおり
- 238 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 13:57:21.34 ID:d7bLgDqu.net]
- TypeScriptを使うメリットを具体的に上げられる人いるの?
- 239 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 14:08:51.86 ID:VWTAP42j.net]
- あまり語られないが、interfaceで設計できるのが最大のメリットだと思う
地味な使い道としては、JSON Schemaへの変換ツールとして非常に実用的。
- 240 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 14:20:09.12 ID:xdqQKQ1c.net]
- 最低限型の合ったコードを書くことを
プロジェクトの開発者全員に 強制できてレビュアーの負担が減ること
- 241 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 14:36:59.56 ID:D63M/WEV.net]
- Go言語とか見ても分かるように、型ガチガチにやらないことが次世代のトレンドってことだな
- 242 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 14:53:55.44 ID:6syy3iPc.net]
- 必要ならTypeScriptでanyを使うしC#でdynamicを使う
- 243 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 14:56:45.32 ID:mM4GDxRu.net]
- それな
おまけに型推論で、自分で型書かなくても良い感じにしてくれるし TS叩いてるやつって、PHPくらいしか触ったことないゴミだろ
- 244 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 15:04:57.76 ID:mtV0hE5K.net]
- >>235
なんだかんだ型は皆無よりはあった方がいいのは確か ただし「anyは嘘吐きの言葉」とか言い始めるやつがプロジェクトに紛れ込むのがそれ以上の欠点
- 245 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 15:24:15.40 ID:1kVSHcIG.net]
- 型は強制されない方が便利とかVB6の時代にタイムスリップしてきたみたい
- 246 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 15:27:16.50 ID:mM4GDxRu.net]
- 旧Javaの冗長な型の反動で型無し言語が持て囃され、やっぱり型無し言語は糞、型推論でやってこうがトレンドだというのに
ここのおじいちゃんたちは「型は冗長!型はない方がいい!」 四半世紀前くらいからタイムスリップしてきたのかな?
- 247 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 15:28:19.62 ID:mM4GDxRu.net]
- 極論で喚くだけのゴミ
booleanでしか物事を理解できず、バランスというものを知らないらしい
- 248 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 15:45:19.95 ID:dIxkfe+5.net]
- 本当に型がそんなに大事ならGoは覇権を取れなかっただろうな
Scalaが死んでGoが覇権を取ったのは、>>243の過程からさらに揺り戻しで 「厳しすぎたり表現力ありすぎたりする、型ガイホイホイの言語じゃダメだ」って流れが来てるってことだろ
- 249 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 15:48:21.15 ID:KxOnTWto.net]
- そのGoもGo2でジェネリクス入るけどな
- 250 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 15:59:31.66 ID:ZxO1UIOF.net]
- char **argv の時点で既に難易度のバランス崩壊してるようなことは言われてた
- 251 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 18:11:40.37 ID:b9+wkgN8.net]
- >>207
Cはキャストでどうにでもなるけどそれが全ての型がない言語を代表してるとでも 旧ObjectWorksだと何も困ることはなかったな 任意のインスタンスに存在しないメッセージ投げようとしても警告が出てセーブできないし 無理やりevalで実行時解釈させようとしてもエラートラップするだけで原因はすぐわかるようになってる 引数はいわゆるanyだがどのクラスに限定するのか記述することもできる(そうしたいのなら) 型で縛ってる言語は労力かかるわりに仕上がり悪いことが多いね
- 252 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 18:18:15.93 ID:b9+wkgN8.net]
- そもそも型推論はコードの安全性を高めるのが目的というよりも
型が定まることにより最適化の恩恵を受けられるというのが本来の筋だと思うんだよな
- 253 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 18:35:30.31 ID:/whshWN1.net]
- 型ガイとか型キチって表現は嫌いだけど、今は一般的なプロダクトでは型に持たせる表現力は控え目にしながらジェネリクスくらいは入るかって感じかなぁと思ってるよ
金融で型に持たせた機能で処理の妥当性をできる限り保証していきますって分野にだけ関数型言語でリッチな型を使うとか、Rustみたいに低レイヤーの捕捉しにくいバグ要因に対してだけある程度の機械的検査性だけ持たせるって使い分けの方針でさ 動的で強い型付けの言語も漸進的型付けやアノテーションの形で使えるものは使うって感じじゃん?
- 254 名前:デフォルトの名無しさん [2019/10/05(土) 18:51:46.65 ID:+P5r5Pn+.net]
- うーん何言ってるかわかんない
- 255 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 19:35:19.59 ID:mtV0hE5K.net]
- ScalaやRustみたいな型ガチガチにやる言語は今日日流行らないってことよ
- 256 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 19:40:25.62 ID:T+9tzQZ1.net]
- 理想のエンジニア「こういう機能があればユーザーは喜ぶだろうか?UXとかも考慮しないとな……」
現実のエンジニア「型が〜!!モナドが〜!!!動的wwwww」 俺悲しいよ……😭
- 257 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 20:00:15.91 ID:ZxO1UIOF.net]
- コンテナ
スマポ モナド こいつらの目的は、ライブラリでできることを言語本体から分離すること 分離できなかった原因の一つがたまたま型システムだったから型の話をしてるだけ
- 258 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 20:08:36.34 ID:b9+wkgN8.net]
- コンパイラにできることは型が正しいか検査することだけであって
正しい処理をしたかどうかなんて担保できないんだよね 型の辻褄は合わせました、ロジックは間違ってて要求仕様を満たしてません こういうのを何度も見てると本末転倒とさえ思える 型に振り回されすぎて実際のコードがゴミになってる これはいかんね
- 259 名前:デフォルトの名無しさん [2019/10/05(土) 20:10:26.40 ID:GA2Bx1T0.net]
- 新規に少人数でゴチャっと作るなら型無し言語が早いと思うが、
その後軌道に載って人数増やして機能追加を加速して行くとなったら、静的型付け言語の方に圧倒的なアドバンテージがあるぞ そのへん疎かにしてるからバグだらけで機能追加もままならないとか糞サービスになる
- 260 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 20:11:40.34 ID:WaZRqS3Y.net]
- >>253 みたいな下側の話をするためのしょーもない場所にわざわざやってきてまで煽りたいだけの人間が居る事の方が俺は悲しいよ
- 261 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 20:19:05.31 ID:b9+wkgN8.net]
- >>256
少人数でも大人数でも動的なほうが問題起こしにくいよ コード量も少なくて労力がかからないというのは利点しかない 機能追加にしても動的だと合わせやすいけれども静的型付けだと どうしても綿密にやらないといけない割に不具合起こしやすくなる 強い型付けは想定されていなかったことに対して非常に弱い側面あるね
- 262 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 20:31:02.07 ID:xdqQKQ1c.net]
- それはさすがに嘘つきすぎ
人数や規模が増えるとバグは動的型付けの方が圧倒的に増える、加速度的に増える 動的型付けならバグってても実際にそこ通るまで検出されないだけ 今時の言語は型推論が強いから静的型付けでもそこまでコード量は増えない
- 263 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 20:32:05.04 ID:b9+wkgN8.net]
- 個人的におかしいと思うのは
強い型付け言語の利点としてなぜかコードの安全性なるものが神話化してしまったことなんだね それは全く担保できないことなんだけれども。 大きな利点があるとすればコンパイラがより最適化しやすくなる、ということだけだけど HaskellなんかのUnboxed Valueがさっぱり早くないところを見ると疑問もある
- 264 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 20:34:18.71 ID:b9+wkgN8.net]
- >>259
通らないコードはテストもされていないってことなんだよ そこを心配するのはそもそもおかしいのだ 動的なエラートラップはすぐに原因がわかるのと対処も早いので進捗は早めになる
- 265 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 20:39:16.96 ID:xdqQKQ1c.net]
- >>261
無根拠に断言してるだけ、論点先手、詭弁の典型 静的だと動的型付けよりエラーの原因がわからないという根拠、データなし なお現実は型レベルで整合性の取れないおかしなコードを書くゴミの方が多い
- 266 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 20:42:37.53 ID:D0zXpfE2.net]
- >>261
動的型付けで実引数に与えられる可能性のある型すべてに対してどうやってテストするの?
|

|