- 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/
- 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
動的型付けで実引数に与えられる可能性のある型すべてに対してどうやってテストするの?
- 267 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 21:10:09.93 ID:GA2Bx1T0.net]
- >>258
機能追加で動的だと合わせやすいとか全く異次元で信じられないよ 俺は今機能追加するときには、自分が作ったコードだろうが他人が作ったコードだろうが、まずは型を頼りに仕様を把握して、既にある型に沿って追加コードを書いていくよ 必要なら既存のコードの変更もするわけだけどその時も型を頼りにIDEの機能を使ってリファクタリングとか頻繁にする 自分の作った数年前のコードなんて、型無しで保守するとか恐怖だよ
- 268 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 21:12:33.20 ID:5LWIufpy.net]
- HaskellとかScalaとかでそこそこの規模以上の開発したことあるなら
「静的で強い型付けしてるから開発とテストサイクルが速い」なんて口が裂けても言えないと思うが
- 269 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 21:15:46.21 ID:5LWIufpy.net]
- 一ヶ所変えるだけであらゆる関数の引数や返り値の型を全部変える必要が出てきて
それに伴って既存テストコードも全部動かなくなって 何が正しいのかから全部決め直しになるみたいな地獄を経験したことない奴が 「静的型の方が開発サイクル速い」とかフカしてるの見るのおぞましいわ
- 270 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 21:20:06.05 ID:GA2Bx1T0.net]
- >>266
JetBrains の IDE とか使ったこと無さそう そういう地獄は IDE でさくっと回避する時代だよ
- 271 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 21:20:41.96 ID:mM4GDxRu.net]
- ID:b9+wkgN8
動的型がどれだけ頭の悪い似非エンジニアに汚染されてるか、よくわかるレスですね
- 272 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 21:21:55.40 ID:mM4GDxRu.net]
- >>266
一ヶ所変えるだけであらゆる関数の引数や返り値の型を全部変える必要が出てきて それに伴って既存テストコードも全部動かなくなって 何が正しいのかから全部人力Grepになるみたいな地獄を経験したことない奴が 「動的型の方が開発サイクル速い」とかフカしてるの見るのおぞましいわ
- 273 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 21:25:50.02 ID:GA2Bx1T0.net]
- おまえらが馬鹿にしてる Java だって IntelljIDEA や AndroidStudio のリファクタリング機能でテストコードも含めて何の苦もなく引数の型変更とかできる
逆に型無かったらこれをサクッとやるのは難しい
- 274 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 21:28:01.46 ID:47UJflGv.net]
- マネージャーとの面談にて
マネージャー「最近の調子はどんな感じなんだ?」 型キチ「概ね大丈夫です……ただ、動的型付け言語が一部のプロダクトで使われてるのだけが不満で……」 マネージャー「か、型?それだけが問題なのか?」 型キチ「それだけ!?!????????!?型があるかないかだけでメンテナンス性と可読性が全然違うんですよ!???ギャオオオン!!!」 悲しいね
- 275 名前:デフォルトの名無しさん mailto:270 [2019/10/05(土) 21:28:01.60 ID:GA2Bx1T0.net]
- ああ型無し言語は引数の型は無いんだったなwメソッド名の変更をさくっとできるとかに読み替えてくれ
- 276 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 21:28:29.00 ID:rY1OpV0v.net]
- >一ヶ所変えるだけであらゆる関数の引数や返り値の型を全部変える必要が出てきて
これはわからんでもないが >それに伴って既存テストコードも全部動かなくなって なんでそうなるのか意味不明
- 277 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 21:37:33.45 ID:b9+wkgN8.net]
- >>269
それは現実離れした極論だね 修正が必要になるのはどの言語でも変わらないよ テストコードが動かない場合、あるいはtest protocolが失敗するケースでは問題が起きてるから修正にはなるがそれだけだ 引数に全く違うオブジェクトが入ってきた場合の振る舞いはすぐにトラップするからわかるよ 全体修正なんてことにはならないしなったこともない
- 278 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 21:39:22.95 ID:b9+wkgN8.net]
- >>272
メソッド名の変更は全体に適用できるので問題ないね 命名変更程度なら用意されてる 呼び出す方も全て変わる
- 279 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 21:42:13.51 ID:b9+wkgN8.net]
- >>264
旧仕様のクラスのままで新仕様のクラスをテストする、ということが動的の場合はできるのだ こう言ったことに限らずあらゆる局面で柔軟性が高いのは利点だよ 開発サイクルの速さはこういうことにもつながっている
- 280 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 21:46:35.13 ID:oarnWrY2.net]
- モナドが難し過ぎてHaskellでmain関数書けないんだが
こんなもん普通の言語に導入するのは無理がある
- 281 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 21:50:21.79 ID:b9+wkgN8.net]
- >>264
重要なことを書くのを忘れた 「型を追わなくていい」んだな そこに注力する必要がなく、適切なprotocolと定義があるかを見ることが重要になる 型付け言語と動的の場合それぞれアプローチが変わってくる
- 282 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 21:51:05.52 ID:rjAFvvxm.net]
- 関数型言語は関数型を使ってる自分に酔ってシコるためだけに存在する言語だからね
シコScalaやシコHaskellは勉強しなくていいよ
- 283 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 21:58:36.88 ID:oMST/mlK.net]
- F#のことも思い出してあげて
- 284 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 21:59:25.58 ID:mjKpzDld.net]
- 座標を扱う時に直交座標も極座標も数値型の組に過ぎないから型があってるだけでは不十分
みたいな話ならまだ分かるんだが
- 285 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 22:03:01.36 ID:kmFdI7ZB.net]
- >>281
それは設計が悪いだろ まともな頭してたら直交座標と極座標は別の型にする
- 286 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 22:08:26.33 ID:b9+wkgN8.net]
- CLOSなんかでも総称関数で想定外のオブジェクトが渡されたら大変なことになるなんて言う人いないと思うが
最終的に呼ばれるはずだったslotが存在しないオブジェクトを扱おうとしていたら直ちにトラップか コンパイルする処理系だと事前に警告だから どこをどうやっても全体修正なんてことにはならない 強い型付けをしても想定通りに動かないコードが出来上がってしまうのは すなわち型だけで安全性を高めることはできない証左とも言える その理由の一つに一般的に型とは振る舞いを定義しているものではないからだ 型が合わなければ通さない、合っていれば通す、ただそれだけのことであって 通した後の処理まで面倒見ているわけじゃあない 本末転倒になっているのはこの部分だね
- 287 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 22:35:01.34 ID:mM4GDxRu.net]
- こんなお花畑野郎とは絶対に一緒にコード書きたくねえな
型以前の問題だったわ
- 288 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 22:35:41.62 ID:Sq/oJs63.net]
- こいつの言ってる安全性ってなんなんだ
勝手に神話を作って勝手に信じたのか
- 289 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 22:41:21.63 ID:mM4GDxRu.net]
- マネージャーとの面談にて
マネージャー「最近の調子はどんな感じなんだ?」 型キチ「概ね大丈夫です……ただ、静的型付け言語が一部のプロダクトで使われてるのだけが不満で……」 マネージャー「か、型?それだけが問題なのか?」 型キチ「それだけ!?!????????!?型が理解できないし勉強できないメンテナンスできない人がいるんですよ!???ギャオオオン!!!」 悲しいね
- 290 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 22:42:02.16 ID:oMST/mlK.net]
- ここ型議論しかしてねーな
- 291 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 22:42:41.02 ID:qlkFezQz.net]
- 次スレは動的型付けvs静的型付けで
- 292 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 22:46:40.57 ID:q6Mq9TVB.net]
- >>286
型キチさん、型チェック忘れてますよw
- 293 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 22:48:19.61 ID:jHn/y5Ac.net]
- 型ガイさんって正直Javaしか使ったことかいんでしょ?
怒らないから言ってみ?
- 294 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 22:58:09.58 ID:HsbLVS7B.net]
- 型無しガイジはPHPスレに帰れ
- 295 名前:デフォルトの名無しさん [2019/10/05(土) 23:06:51.84 ID:+P5r5Pn+.net]
- 型があれば処理が正しいなんて言ってるやついないじゃん
そんな神話聞いたことないわ 存在しない脅威について怯えるのは出来ないエンジニアにありがち
- 296 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 23:08:33.06 ID:xdqQKQ1c.net]
- マジで無能はオールオアナッシングでしかものを考えられない
- 297 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 23:10:04.39 ID:D0zXpfE2.net]
- >強い型付けをしても想定通りに動かないコードが出来上がってしまうのは
>すなわち型だけで安全性を高めることはできない証左とも言える JavaScriptは強い型付け言語ですけど 動的型付け/静的型付けと強い型付け弱い型付けの区別もついてないレベルで こんなご高説垂れてたのか
- 298 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 23:11:42.96 ID:N1TCJDW/.net]
- 型ガイさんって正直Java(8未満)しか使ったことかいんでしょ?
怒らないから言ってみ?
- 299 名前:デフォルトの名無しさん mailto:sage [2019/10/05(土) 23:18:15.71 ID:FrQq6pik.net]
- 静的型付けネガる人って何でもStringとか何でもMapとか、あるいは配列の1番目はx座標で2番目はy座標を返すメソッド!
とかやっちゃう人なのでは?型が簡単に作れて使える世界を知らないだけでは?
- 300 名前:デフォルトの名無しさん [2019/10/05(土) 23:21:21.08 ID:+P5r5Pn+.net]
- >>293
ベターを知らないんだよな ベストとワーストでしか話しが出来ない 能力があって責任ある立場にいればそんな発想にはならない
|
|