アカウント名:
パスワード:
> C++ でキャスト地獄を味わったことがある経験から
それって型の有無によるメリットデメリット以前に、適切なクラス設計が出来ていないのでは…
ちゃんとクラス設計出来ているのにキャスト『地獄』とまで言うような状況になることってあるのだろうか。
プロトタイピングや、アジャイルな開発をしていると、クラスの整理法をガラリと変えないといけない時がたまに来ます。
そんな時、型なしだとちょっとずつの変更が楽なんですが、型有りだと、全コード書き直しに近い再設計が待っています。で、それをごまかすためのキャスト地獄ということは、経験があります。
はじめから仕様がかっちりしているのなら、地獄に陥らないように設計できますが。
もちろん、型なしで中途半端に変更したままにほっておくと、後々スパゲッティ同然の理解不能コードが出来上がるわけですが。
プロトタイプ限定ならそれもありかもしれませんけどね、
「プロトタイプ限定だから型システムなんかなしでいいよね!」「リリースする時は静的型システムのある言語で書き直すから問題ないよね!」
なんて言って、本当に書き直したことってどれくらいあるんだろう?#身近な事例では、書き直しが必要でありながら実際に書き直した例は見たことが無い。残念ながら。
ずっと疑問なんですが、なぜ最初から型無し型付け両方に対応した言語で書かないのかわかりません。型なし版を書いて、動いたらそのまま型宣言をつければいいだけのこと。バージョン管理しておいて、プロトタイピングに戻りたくなったら型なしバージョンに戻せばいい。
型なしを許容するけど、型をつけると早くなるというのが一番ですよ。ついでに言えば、型をつければネイティブに静的型付けでコンパイルしてくれる言語。
まあ、外部の問題のせいで型を書き換えまくる必要が出るというのは、スパゲッティみたいに依存しまくったクラス設計のせいだとは思いますが・・・。
個人的には、そうなる(型なし言語で作っているけど、型あり言語に素直に移行できるように、採集t系には持っていく)ようにしている。
希望としては、型なし言語(例えば ruby) とかで、静的型あり言語に移行できるかどうかをチェックしてくれる機構が欲しい。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
※ただしPHPを除く -- あるAdmin
キャスト『地獄』? (スコア:5, すばらしい洞察)
> C++ でキャスト地獄を味わったことがある経験から
それって型の有無によるメリットデメリット以前に、適切なクラス設計が出来ていないのでは…
ちゃんとクラス設計出来ているのにキャスト『地獄』とまで言うような状況になることってあるのだろうか。
Re: (スコア:4, 興味深い)
プロトタイピングや、アジャイルな開発をしていると、クラスの整理法をガラリと変えないといけない時がたまに来ます。
そんな時、型なしだとちょっとずつの変更が楽なんですが、型有りだと、全コード書き直しに近い再設計が待っています。で、それをごまかすためのキャスト地獄ということは、経験があります。
はじめから仕様がかっちりしているのなら、地獄に陥らないように設計できますが。
もちろん、型なしで中途半端に変更したままにほっておくと、後々スパゲッティ同然の理解不能コードが出来上がるわけですが。
Re:キャスト『地獄』? (スコア:1)
プロトタイプ限定ならそれもありかもしれませんけどね、
「プロトタイプ限定だから型システムなんかなしでいいよね!」
「リリースする時は静的型システムのある言語で書き直すから問題ないよね!」
なんて言って、本当に書き直したことってどれくらいあるんだろう?
#身近な事例では、書き直しが必要でありながら実際に書き直した例は見たことが無い。残念ながら。
Re:キャスト『地獄』? (スコア:2)
ずっと疑問なんですが、
なぜ最初から型無し型付け両方に対応した言語で書かないのかわかりません。
型なし版を書いて、動いたらそのまま型宣言をつければいいだけのこと。
バージョン管理しておいて、プロトタイピングに戻りたくなったら型なしバージョンに戻せばいい。
型なしを許容するけど、型をつけると早くなるというのが一番ですよ。
ついでに言えば、型をつければネイティブに静的型付けでコンパイルしてくれる言語。
まあ、外部の問題のせいで型を書き換えまくる必要が出るというのは、
スパゲッティみたいに依存しまくったクラス設計のせいだとは思いますが・・・。
新人。プログラマレベルをポケモンで言うと、コラッタぐらい
Re:キャスト『地獄』? (スコア:1)
個人的には、そうなる(型なし言語で作っているけど、型あり言語に素直に移行できるように、採集t系には持っていく)ようにしている。
希望としては、型なし言語(例えば ruby) とかで、静的型あり言語に移行できるかどうかをチェックしてくれる機構が欲しい。