- 動的言語で大規模開発
679 :デフォルトの名無しさん[sage]:2014/12/03(水) 09:09:27.83 ID:RRftfJUJ - >>677
もう少し分かりやすくいおう。 SmalltalkはVCSが言語に統合されている。 VCSが言語に統合されていない言語では、 自分で統合するかIDEの力を借りる。 そこまでセットアップする手間を省けるだけなのだ。
|
- 動的言語で大規模開発
680 :デフォルトの名無しさん[sage]:2014/12/03(水) 09:13:57.48 ID:RRftfJUJ - >>671
> 大規模開発の具体例は OSX/iOS で使われている Objective-C と Cocoa フレームワーク > Objective-C はコンポーネント内部の実装には静的型付けなC言語を用いるが、 > コンポーネント間の結合に用いるオブジェクトに対しては id型 という動的型付けを用いる > 結果として2001年の初リリース移行、多くの機能強化や改善を加えて発展を続けている 動的型付け言語じゃなくても達成出来てることを言われてもなw だいたい発展し続けると言っても、再起動してるじゃん。 なぜ動的型付け言語ならではの理由が あんたの言っていることには一つのないんだよね。
|
- 動的言語で大規模開発
689 :デフォルトの名無しさん[sage]:2014/12/03(水) 21:45:16.01 ID:RRftfJUJ - >>688
じゃあRubyもPythonもだめだな。 ブラウザで動くJavaScriptは大丈夫か? include相当の構文がないもんなw
|
- 動的言語で大規模開発
690 :デフォルトの名無しさん[sage]:2014/12/03(水) 21:49:32.75 ID:RRftfJUJ - >>684
> には目の前に解決しなきゃならない問題や、学ばなくちゃいけない > ついて行かなきゃいけないトレンドや技術がいっぱいあるから、 プロなら当たり前のことなんじゃねーの? プロには目の前に解決しなきゃならない問題や、学ばなくちゃいけない ついて行かなきゃいけないトレンドや技術がいっぱいあるから、 うん、違和感ない
|
- JavaScript 3
975 :デフォルトの名無しさん[sage]:2014/12/03(水) 22:00:01.56 ID:RRftfJUJ - 元々は掲示板を分けた奴が先見の明がなかったんだよね。
JavaScriptをブラウザで動く簡易な言語だと思っちゃった。 今みたいに、ブラウザでデスクトップアプリ相当のものが出来るとか サーバーサイドで動かすとか、想像もできなかった。
|
- 動的言語で大規模開発
692 :デフォルトの名無しさん[sage]:2014/12/03(水) 22:22:38.66 ID:RRftfJUJ - そのおかげで、矛盾するもの。つまり
明らかに動かないコードを検出することが可能になっている。 動的型付け言語では、動かして該当コードに たどり着かないとわからないバグを 動かすことなく見つけることが可能になってる。 これこそ、大規模開発で必要なことの一つなんだ。
|
- 動的言語で大規模開発
696 :デフォルトの名無しさん[sage]:2014/12/03(水) 22:36:19.29 ID:RRftfJUJ - >>693
大規模炎上の話なんかしていないw まず、スコープが小さいほど、変更が与える影響は少ない。 プライベートメソッドなら、クラスの外は関係ないし、 関数内の修正は、引数と戻り値さえ同じなら どう修正しても問題ない。 修正の影響範囲が大きいのはスコープが多い時なんだ。 例えばクラスメソッド引数が変更された時、 その他の"すべての"ファイルから参照しているコードを突き止めないといけない。 基底クラスが変更になった時、その全ての派生クラスへの影響を考えないといけない。 そこに静的型付け言語のメリットが生きてくる。 動的型付け言語だと、クラスを変更した時、そのクラスの利用者全てを確認するのは難しい。 なぜなら変数に依存関係が明示されていないから。 静的型付け言語だと、変数に型を明示するから、変更による影響を瞬時に知ることができる。 これこそ大規模開発で必要なことなんだよ。
|
- 動的言語で大規模開発
698 :デフォルトの名無しさん[sage]:2014/12/03(水) 22:44:57.73 ID:RRftfJUJ - モジュール間の依存は小さくするというのは
ソフトウェアの開発者の常識だが、 なぜ小さくするのかというとモジュール間の依存が大きいと 修正する時に発生する影響範囲が大きくなって修正が大変だからなんだ。 だからモジュール間の依存は小さくするべきだが、 モジュールを連携してシステムが動く以上0にはできない。 例えば、obj.foo() というコードがあったとき、そこには objはfooメソッドを持っていなければならないという依存情報が生まれる。 この依存情報を動的型付け言語では、実行時までチェックしない。 静的型付け言語ではobjの型を明示することで、 実行前にfooメソッドが有ることを確認できる。 影響範囲を確認することが大変なモジュール間の依存を 明確にすることで、不具合の発見を容易にし 修正のコストを減らすのが、静的型付け言語の特徴なんだ。
|