トップページ⇒tech
1001コメント356KB

やっぱり動的型付け言語は大規模開発で効率が悪い 4

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2011/11/21(月) 11:48:03.35
大規模と書いてドカタと読む。


やっぱり動的型付け言語は大規模開発で効率が悪い 3
http://hibari.2ch.net/test/read.cgi/tech/1320832914/
0652デフォルトの名無しさん2011/12/11(日) 08:55:33.79
>>648

> 自 分 が 何 を 貢 献 で き る の か

というの発想をしなければ使えない言語は仕事では使えない。
0653デフォルトの名無しさん2011/12/11(日) 08:56:27.92
>>650
金の話なら、自分はプログラムを書かないので結構給料は高い。
0654デフォルトの名無しさん2011/12/11(日) 08:56:45.36
フレームワークは大規模開発じゃないという発想は、

自分ではフレームワークを作ったことがなくて、
既存のフレームワークを使ってユーザコード書くことしかしていないから。

だから、フレームワーク=小規模という発想になるんだろうなw
0655デフォルトの名無しさん2011/12/11(日) 08:57:04.70
ぶっちゃけ、動的とか静的とか関係なく、日本語を書く仕事の方が給料は高い。一般論。
0656デフォルトの名無しさん2011/12/11(日) 08:57:20.80
テストツールの類は最低でもチーム内では共有されていないと意味ないしな。
0657デフォルトの名無しさん2011/12/11(日) 08:57:26.73
英語の方がもっと高い
0658デフォルトの名無しさん2011/12/11(日) 08:57:27.91
>>653
なるほど、プログラマじゃないから動的型付けの良さがわからないのか。
0659デフォルトの名無しさん2011/12/11(日) 08:58:17.30
>>652
「仕事」の前に「ドカチン」が抜けてますよ!
0660デフォルトの名無しさん2011/12/11(日) 09:00:20.42
>>651
Hadoopとかもクソなんですか?
0661デフォルトの名無しさん2011/12/11(日) 09:01:35.96
個人的には、フィールドや関数のシグネチチャに const 修飾子を書けない言語は恐い。
0662デフォルトの名無しさん2011/12/11(日) 09:04:37.50
>>661
関数型言語でも使ってろよ、書くまでも無く問答無用で全部constだw
0663デフォルトの名無しさん2011/12/11(日) 09:05:53.17
OSSとして共有されているフレームワークと企業内フレームワークを区別しないからややこしくなる。
オレオレフレームワークが巨大なのはよくない。

なぜOSSならよくてオレオレなら駄目かといえば
OSSは「〜〜を使える人」という条件を付けてもプログラマが集まるが
企業内フレームワークでそれをやるとアウトソースしにくくなるから。
0664デフォルトの名無しさん2011/12/11(日) 09:10:53.19
>>658
自分でもコード書く仕事してる連中と、
下っ端率いるのが仕事の牢名主では
言語に対する評価軸が違うのは当然
0665デフォルトの名無しさん2011/12/11(日) 09:12:27.29
>>662
何故煽られるのかわからないが、全部 const なのは不便で論外だ。
const であるべきものに const と表明できることに意味がある。
もちろん、その表明をチェックすることまで含めて。
そのチェックが実行時でもまあいいのだが。

const x = 1;
x++;

この x++ をエラーでも例外でも何でもいいから弾いてほしい。型とは無関係。

function setX(x) { this.x = x; }
function foo(x) const {
 setX(x);
}

foo(x) の中での setX(x) の実行をエラーでも例外でもいいので弾いてほしい。
型とは無関係。
0666デフォルトの名無しさん2011/12/11(日) 09:16:19.32
freezeの類を持っている言語なら結構実行時エラーとして弾けると思うけれども
でもスレタイとは直交したネタでもある。
0667デフォルトの名無しさん2011/12/11(日) 09:16:30.58
>>663
本当にわかりやすいドカタ思考だな
HadoopだってHBaseだってMongoDBだって元はオレオレフレームワークだろが
0668デフォルトの名無しさん2011/12/11(日) 09:20:33.34
>>667
そうだよ。元はね。
公開したというのが本質。
0669デフォルトの名無しさん2011/12/11(日) 09:22:47.03
>>666
俺も理論的には直交している気がするが、
今現在世の中で使われている言語、という条件をつけると直交していないと思う。
0670デフォルトの名無しさん2011/12/11(日) 09:24:17.80
>>668
さらに補強すると公開しただけではなく公開後も生き残った選抜済みの
OSSであり、当面は死なないだろうという事も期待できるのが重要。

区別はすべき。
0671デフォルトの名無しさん2011/12/11(日) 09:30:34.32
>>670
そうだね、区別することは大事だ。

仕事で開発してるフレームワークだからといって、
非公開フレームワークとは限らないし、小規模フレームワークとも限らない。

ドカタでなければ普通に区別できるはずだが、
どうもこのスレには区別できない人がいるらしい。
0672デフォルトの名無しさん2011/12/11(日) 09:31:37.71
ましてやそのフレームワークが有用かどうかとは全く別問題だよね。
0673デフォルトの名無しさん2011/12/11(日) 09:33:40.52
オプソと言うとタダ乗りすることしか頭にないんだね

かわいそうに
0674デフォルトの名無しさん2011/12/11(日) 09:39:02.42
と煽る自分もタダ乗りしてるんだろうと思われるのが2chなので、
そういう議論をしたいなら名乗れる場所でやらないと意味がない
0675デフォルトの名無しさん2011/12/11(日) 10:02:47.17
赤の他人が書いたコードを引き継ぐ事になったときに、
より絶望的な思いをする事の多い言語=大規模開発に向かない
そういうことが比較的少ない言語=大規模開発に向く

自分が書くなら好きな言語で書くのが一番効率がいい。当たり前
0676デフォルトの名無しさん2011/12/11(日) 10:06:05.76
>>675
そういうことなら動的型付言語のほうが大規模開発に向くな。
赤の他人のオレオレクラスやオレオレインターフェースへの絶対服従を要求される静的型付言語より
柔軟に自分のコードに置き換えていける動的型付言語のほうがずっとマシ。
0677デフォルトの名無しさん2011/12/11(日) 10:13:25.87
そうなんだね
0678デフォルトの名無しさん2011/12/11(日) 11:04:05.54
型アノテーションってさ、
要するに静的型付け言語になれってことじゃないかw

静的型付け言語で動的型付け言語みたいなことをするのは簡単。
実際に出来る。Object型にキャストすればいいだけ。
0679デフォルトの名無しさん2011/12/11(日) 11:06:45.70
>>676
柔軟に自分のコードって・・・
お前、自分一人で開発してんのか?
それは小規模っていうんだぞ。


いいか、お前の言っているのことは
お前が書いたコードを、他人のコードに変更される
ということを意味してるんだぞ
どこが大規模に向いているんだよ。逆じゃないか。

あと、奴隷根性は卒業しろ。絶対服従を要求される。
それはお前がやってることの立場が低いからだ。
要求する立場(アーキテクト)になれ。
0680デフォルトの名無しさん2011/12/11(日) 11:20:48.12
>>678
そのObject型にキャストするという素晴らしいアイデアで
>>423と同じコード書いてみて
0681デフォルトの名無しさん2011/12/11(日) 11:25:32.11
叩き台を叩いて壊すのが専門という人はどこでも厄介なものです
0682デフォルトの名無しさん2011/12/11(日) 11:28:52.72
>>680
それは、Objectにキャストしないで実装できるだろw
インターフェース持たせればいい。
0683デフォルトの名無しさん2011/12/11(日) 11:29:39.11
「大規模なソフトウェア」と「大規模な開発」は全く違う
前者は LOC で計測される概念
後者は人数・組織数・年数で計測される概念
0684デフォルトの名無しさん2011/12/11(日) 11:34:01.52
大規模なソフトウェアってのは殆ど無い。
なぜなら大規模なのは機能が多いだけだからだ。

機能が多い=単純に画面が多いと考えてもいい。
基本的に似たような処理で作れるものなので
単純作業といってもいい。

こんな所で俺の腕の見せ所だなんて言ってるのが
動的ドカタ。単純作業を本当に単純作業にすると
腕の見せ所がなくなるから強く反対している。
0685デフォルトの名無しさん2011/12/11(日) 11:34:12.94
>>678
動的な型を勘違いしてないか?
0686デフォルトの名無しさん2011/12/11(日) 11:36:16.89
>>685
あってるよ。
動的な型なんて必要性は殆ど無く、
インターフェースがあれば代用可能なもの。

どうしても必要な場合ってのはまず無いが
そういう時にはキャストすれば良い。
0687デフォルトの名無しさん2011/12/11(日) 11:36:49.58
動的型付は正直良くないと思うが、動的型付を理解できずにただ吠えている奴がいるので嫌な気分。
0688デフォルトの名無しさん2011/12/11(日) 11:37:25.72
>>682
え?
0689デフォルトの名無しさん2011/12/11(日) 11:39:31.65
インターフェースや継承なんかで対応できないものって
なにがあるの?
0690デフォルトの名無しさん2011/12/11(日) 11:40:10.20
>>689
evalだけ。あんなものは普通使わん。ハックぐらい。
0691デフォルトの名無しさん2011/12/11(日) 11:42:32.62
>>690
自演ですか?
理解できないのを誤魔化さないように。
06926902011/12/11(日) 11:45:03.43
>>691
違いますが。

それならそれで、あなたが別の答えを
用意したらいいんじゃないですか?
0693デフォルトの名無しさん2011/12/11(日) 11:48:04.34
>>692
>叩き台を叩いて壊すのが専門という人はどこでも厄介なものです

叩き台を良くする人=eval 以外の「インターフェースや継承なんかで対応できないもの」を書く。
叩き台を叩いて壊す人=691
0694デフォルトの名無しさん2011/12/11(日) 11:48:23.06
>>682
Scala の implicit def なら分かるが、インターフェース?
何を言ってるんだ?
0695デフォルトの名無しさん2011/12/11(日) 11:48:51.92
だから別の答えを用意しろと。言い訳ばかりだな。
0696デフォルトの名無しさん2011/12/11(日) 11:50:44.35
匿名型なんかを見ていると動的型付で便利とされる書き方でも、静的な型としてコンパイル時に確定する事ができる場合もあるんだよな・・・
静的型付けにできれば、強力なチェックが行えるのでこの辺り実行時と言わずコンパイル時エラーにできるとデバッグは楽になるし
インテリセンスなんかも作れるのではないかと妄想したりする。
無知が吠えているので書いても流されるんだろうな、勉強すればいいのに・・・
0697デフォルトの名無しさん2011/12/11(日) 11:51:22.52
動的ドカタは自分の仕事にプライドを持ってるんだから
お前がやってることは単純作業って言ったら可哀想だろうw
0698デフォルトの名無しさん2011/12/11(日) 11:53:21.43
>>697
ぶっちゃけお前みたいな知恵遅れが居ると静的型付けを語れないんだよ、死ね無知
0699デフォルトの名無しさん2011/12/11(日) 11:54:10.22
>>698
語ればいいだろ。
0700デフォルトの名無しさん2011/12/11(日) 11:58:56.59
2chでは、コピペではない長文(5行〜10行程度)なのにレスが付かない

発言を抽出すると、S/N 比が抜群に高まるということが経験的にわかっているので、
興味のあるスレッドを登録して個人的に運用中です。
0701デフォルトの名無しさん2011/12/11(日) 12:24:52.31
静的型付けでもC#の拡張メソッドやScalaのimplicit conversionのように
動的型付け言語のオープンクラスに近いことが出来るようになってきてる

もちろん、継承とインターフェースとObject型へのキャストで十分とか
言ってる馬鹿には無用の機能なので、ドカタ専用言語Javaには実装されてない
0702デフォルトの名無しさん2011/12/11(日) 12:26:43.48
なんだJava叩きをしたいだけかよw

はい、みなさん、わかりましたね。
静的型付けでもC#の拡張メソッドやScalaのimplicit conversionのようなことが
できるんです。
0703デフォルトの名無しさん2011/12/11(日) 12:39:01.60
ここにはJavaを叩きたいだけのやつが住んでるから
0704デフォルトの名無しさん2011/12/11(日) 12:39:41.24
つうかauto型を持つ静的型言語なんて、
動的型連合国への無条件降伏だよなw
0705デフォルトの名無しさん2011/12/11(日) 12:40:09.72
>>703
いいから涙を拭けよw
0706デフォルトの名無しさん2011/12/11(日) 12:42:15.51
>>704
静的型付けをやめたわけじゃないんだから
降伏じゃないだろw

静的型付け言語には動的型付け言語の機能を
取り入れられるがその逆はできない。

もし最強の言語があったとしたら
それは静的型付け言語を進化させたものになるだろう。
0707デフォルトの名無しさん2011/12/11(日) 12:44:16.42
動的の感覚に近づこうとしてるよね。goみたいなコンパイル漠速も
近づこうとしている。
0708デフォルトの名無しさん2011/12/11(日) 12:46:34.02
動的型付け言語に静的型付け言語の機能を加えようとしたら
根本的に再設計が必要になるからね。

捨てるのは簡単だけど、抜けてる型情報を補うのは大変。
0709デフォルトの名無しさん2011/12/11(日) 13:03:55.48


犬猫子供を出せば、馬鹿は見るだろ?
 某テレビ局在日社員
0710デフォルトの名無しさん2011/12/11(日) 13:27:22.64
>>706
> 静的型付け言語には動的型付け言語の機能を
> 取り入れられるがその逆はできない。

逆だよ。
動的型付け言語には静的型付け言語の機能を取り入れることが出来る。
型アノテーションや型推論が好例。

しかし静的型付け言語に動的型付けの自由度を取り入れることは困難だ。
なぜなら、静的型付け言語の表現能力は、静的型の検証性に依拠しており、
動的型付けで表現可能なプログラムの集合を完全に被覆することはできない。
理論上不可能なんだよ。
0711デフォルトの名無しさん2011/12/11(日) 13:34:14.86
>>7
掘り返すようだがプログラミング言語には知能があってはいけない
言われたことのみを従順に行う
0712デフォルトの名無しさん2011/12/11(日) 13:37:53.42
アイデアマンは動的を少なくとも1つ使いこなすほうがいいよね。
アイデアが浮かばん人は言われたとおりやってればいいけどな。
0713デフォルトの名無しさん2011/12/11(日) 13:42:35.81
C++にしてもScalaにしても自由をどうやって獲得しようとしているか?
それは仕様をより複雑にしてカオスになった上の自由を獲得しようとしている。
だから、複雑怪奇な言語に見える。
C++の失敗を再び犯そうとしてるのがScalaという印象が強いんだよな。

自由や柔軟でぴか一のLispのそれは、S式だからという事はよく言われてるけど
そのとおりだな。これはよく反論もあるようにわからない人に説明しても無駄
という事だと考えている。やっぱりすべてがS式で表されるという強力さだから。
LispとCをやっておけば大抵の言語は習得期間は短いと思う。ML系やSmalltalk
はどっちにも似てないから例外だが
0714デフォルトの名無しさん2011/12/11(日) 13:44:06.39
>>710
> 型アノテーションや型推論が好例。
お前馬鹿じゃないのか?

型アノテーションは実現不可能なアイデア。
だからそんなのを実装している動的型付け言語はない。

型推論は、あれは静的型付け言語に付ける機能だw
0715デフォルトの名無しさん2011/12/11(日) 13:45:27.29
>>713
自由で言えばアセンブラが一番自由だろうさ。
だが自由ってのはgotoと同じで管理不能になりやすい。
だからそこにルールを持ち込むんじゃないか。
0716デフォルトの名無しさん2011/12/11(日) 13:54:24.00
型アノテーションっていうのは、
たとえば、

var hoge; の代わりに Hoge hogeって書くのかい?w

あ、Javaのアノテーションのように

@class Hoge
var Hoge;

と書けばいいのかい?
Hoge hogeと書いたほうが楽そうに見えるけど
型アノテーションのメリットは何だい?w
0717デフォルトの名無しさん2011/12/11(日) 13:55:19.87
var @class Hoge hoge;
こうだろ
0718デフォルトの名無しさん2011/12/11(日) 14:13:14.25
ださっw
0719デフォルトの名無しさん2011/12/11(日) 14:19:16.09
デジドカなのでお前らの言っている事は全く理解できないw
0720デフォルトの名無しさん2011/12/11(日) 14:30:18.84
Javaでも上流に近い工程、設計やアーキテクチャ設計なんかをやっていれば
ドカタじゃないことはよく分かっているわけで、
多分下流工程の作業をさしてドカタって言ってるだろう。

下流工程を、Javaでやればドカタで、動的型付け言語でやればドカタではない。
そう思いたいんだろうね。

ドカタとうるさい奴って、そいつがやっている仕事は、下流工程なんだろう。
0721デフォルトの名無しさん2011/12/11(日) 14:41:10.95
>>720
Java市か知らないアーキテクト何てのは全然信用できないけどな
0722デフォルトの名無しさん2011/12/11(日) 14:42:34.55
>>721
やっぱり、下の立場から見た感想言うんだね・・・。
自分がなればいいのに。
0723デフォルトの名無しさん2011/12/11(日) 14:44:43.21
>>714
Pypyの実装に使われてるRPythonは
Pythonの純粋なサブセットで型推論付き
もちろん推論するのに型アノテーションなど必要なし
0724デフォルトの名無しさん2011/12/11(日) 14:47:51.39
世の中、EXcel マクロが少し触れるくらいのPGスキルしかない上流設計者は多い。
0725デフォルトの名無しさん2011/12/11(日) 14:48:20.68
ぶっちゃけコードも書かずにアーキテクトとか言ってるアホは
全く設計できないけどな
支離滅裂な日本語をコードに変換しろとドカタのケツを叩くだけ

さらに上流の俺等はそういうアホ共を牢名主と馬鹿にしてるってわけ
0726デフォルトの名無しさん2011/12/11(日) 14:49:54.31
そして俺は上流階級の方々の資産を運用している
0727デフォルトの名無しさん2011/12/11(日) 14:51:21.49
RPython。よくわかりました。

RPythonとはなんですか?
RPythonとはPythonの制限されたサブセットです。これはPyPyツールチェーンの中で
動的言語インタープリタを実装するのに使われます。制限のお陰でRPythonプログラムの型推論が出来ます。
(またそれによって究極的には他の言語へトランスレートできます)

"RPythonになる"という特性は関数やモジュール1つではなく常にプログラム全てに適用されます。
(トランスレーションツールチェーンはプログラム全体の解析を行います)トランスレーションツールチェーンは全ての呼び出しを再帰的に追って、何がどのプログラムに所属していて、何がそうでないかを見つけ出します。

RPythonプログラムは任意の方法での混合型の使用を制限します。
RPythonは1つの変数に対して2つの異なる型を束縛することを許可しません。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
この観点から(そしてほかの観点からも)Javaに似た感じがします。
RPythonで許可されていない他の特徴としては、
__init__, __del__ 以外のスペシャルメソッド(__xxx__)の利用です。リフレクションも使えません。(__dict__など)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^


RPythonからはほとんどの標準ライブラリも使えません。例外はネイティブサポートがあるos, math, timeの一部の関数です。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

RPythonの制限についてもっと知りたい方はRPythonの説明を読んで下さい。
http://d.hatena.ne.jp/ymotongpoo/20111206/1323163518
0728デフォルトの名無しさん2011/12/11(日) 14:54:21.53
そりゃそーだよ
だってRPythonは静的型付け言語だもの
0729デフォルトの名無しさん2011/12/11(日) 14:56:44.22
静的型付け言語に動的型付機能を取り入れると、リファクタリングツールがそこで機能しなくなるな
元々動的型付にリファクタリングツールは殆ど機能しないけれども・・・
挙動の同一性を保障しながら、引数の順序や名前を置換する一般的な方法は動的型付は不可能

>>701
自演だろう、知恵遅れなのは見え見えだよ
0730デフォルトの名無しさん2011/12/11(日) 14:57:16.22
>>714
> 型アノテーションは実現不可能なアイデア。

!!!!!!!!!!!!!!!!!!!!!!!

こいつ面白すぎ
0731デフォルトの名無しさん2011/12/11(日) 14:59:29.62
面白いとかどうとかレスするんじゃなくて、
反論すべきではないか?
0732デフォルトの名無しさん2011/12/11(日) 15:00:25.33
動的型というのがよくわからないんだけど、型無しと動的型は何が違うの?
0733デフォルトの名無しさん2011/12/11(日) 15:05:40.78
>>720
ドカタの現場監督「おれはドカタじゃない!」
0734デフォルトの名無しさん2011/12/11(日) 15:11:02.98
SQL文字列を直接記述するよりもC#のLINQが優れているのは、リファクタリングツールでメンバ名などを書き換えても
LINQで書かれたソースはC#のソースなのでキチンと置換されてくれる事。
これが文字列として記述されていると、そこで挙動の同一性を保持したまま各種変更を加える事は極めて困難になる。
その文字列がSQLかどうかなど判断したり解析したりするツールなんて思いつかないしね。
本体の言語から、まったく別のシステムまで型システムが貫通するとこういう事もできるようになる。
0735デフォルトの名無しさん2011/12/11(日) 15:13:58.98
>>734
つまりLINQはその程度の存在でしかないのか。
0736デフォルトの名無しさん2011/12/11(日) 15:15:11.28
>>734
SQL で記述可能な任意のクエリを C# の LINQ で書けるということは保証されていますか?
それがないなら LINQ は「所詮」C# のサブセットでドカタ向きですね。


という不毛な議論を、動的型と静的型の極右と極左が延々をやってるだけ
0737デフォルトの名無しさん2011/12/11(日) 15:17:37.49
typed lambda は untyped lambda の subset なのだから、その点では議論の余地はないですよね
0738デフォルトの名無しさん2011/12/11(日) 15:17:50.18
>>735
その程度の存在なのかどうかは保守をした時に判るよ、知恵遅れでもな。
0739デフォルトの名無しさん2011/12/11(日) 15:19:11.81
>>720
俺、下っ端共が使ってる言語なんて全く興味ないわ
もちろん下っ端が使ってるIDEにも興味無し

お前、自称上流行程担当のわりにJavaやらIDEに拘ってるように見えて
俺にはそれが不思議で仕方ないわ
0740デフォルトの名無しさん2011/12/11(日) 15:23:00.53
JavaはともかくIDEのことなんて
一言も書いていませんが?

それはともかく、使う言語や開発環境を決めるのも
アーキテクトの重要な仕事ですがなにか?
0741デフォルトの名無しさん2011/12/11(日) 15:25:26.31
今までちょっとした変更でも、変更してテストして、一週間も一月も掛っていた事が
なんの気兼ねも無く、メニューからチョチョイと変更加えるだけで終わってしまうというのは色々衝撃的だったね。
0742デフォルトの名無しさん2011/12/11(日) 15:25:38.40
>>731
反論するまでもないだろ

マジでおもしろすぎる
0743デフォルトの名無しさん2011/12/11(日) 15:25:49.10
そりゃ下層の仕事だよ
0744デフォルトの名無しさん2011/12/11(日) 15:28:05.87
下っ端に自由にIDEを選ばせたら、
ある人はEclipseを使い、ある人はNetBeansを使うってことになる。

もちろんそれが駄目というわけじゃない。
それを許すなら許すで、違うIDEのプロジェクトファイルを
どう共有するかって話になる。

こういうのは上から決めること。
0745デフォルトの名無しさん2011/12/11(日) 15:29:42.41
dynamic typed language も untyped language の subset でしょう

untyped language というのは全ての値が型無しポインタのようなもの

*x = 2.25;
*y = sqrt(x);

sqrt(x) はポインタ x の指す先が double を表現するビット列だと思って動くだけ。
x の指す先が 2.25 を表現するビット列なら 1.5 というビット列を指すポインタが戻される。

*x = 'a';
*y = sqrt(x);

こう書いても、x の指す先に double を表すビット列が格納されていると思って、
ポインタ y が戻される。もちろん、この場合は y の指す先のビット列を double と思って解釈すれば
意味不明な数値になるだろうが、それは呼ぶ側の責任。呼ばれる側は知らない。

これが untyped な世界です

これじゃあいくら何でも・・・なので、
すべてのポインタの指す先に、型ごとに決められた特定のビットパターンを埋めることにして、
データ本体はそのパターンの後に書くことにしましょう。
関数側は、ビットパターンを検査することで、期待した値が渡されたかどうかはチェックできるようにしましょう。

これが動的型付けの世界。

型無しの世界は、あるビットパターンを int と思って解釈した時と double と思って解釈したときで
異なる挙動をするような曲芸的なプログラミングも可能です。
まあドカタは動的型付けでやってりゃいいです。
0746デフォルトの名無しさん2011/12/11(日) 15:30:22.39
>>741
だろ?
Ralph Johnsonのグループがリファクタリングブラウザを開発した時、
JavaだのC++だのやってた連中は
「ソースコードは自分で書くのがプログラマだ」とか
「そんな誰でも出来る単純な変換が役に立つものか」とか
アサッテな発言していたっけ。

もちろんOOやってない連中などは全く理解できずにポカーンとしてた。
0747デフォルトの名無しさん2011/12/11(日) 15:31:21.86
>>745
ネタにしてもつまらなさすぎ。
0748デフォルトの名無しさん2011/12/11(日) 15:31:37.87
LINQの基礎になっているλ式は、C#の外部のシステムへ型システムをかけ橋する能力があるが
同じλ式でもC++のλ式ではかけ橋を作ることができない、C++もどうせ拡張するのならそういう点を考えて拡張すればいいのに・・・
0749デフォルトの名無しさん2011/12/11(日) 15:33:34.26
>>746
今は、型チェックをするのはプログラマの仕事
とかいう動的ドカタが増えたな。
0750デフォルトの名無しさん2011/12/11(日) 15:33:35.53
>>739
プログラマに数学はいらないぐらい、
アーキテクトにプログラミングは必要ないよな。

0751デフォルトの名無しさん2011/12/11(日) 15:35:44.26
>>745
「これが動的型付けの世界(キリリッ」
と書くのは結構だけれども、

コード例がCのキャストを使った例という時点で、実際には
「これが静的型付けの世界」だったという罠。

型安全な動的型付けでは、そんなつまらんキャストないよ。
データ自身が型情報を持っているから、キャストせずにコアージョンする。
データ自身に型情報が無いために妙なキャストをするのは静的型付けだけ。
■ このスレッドは過去ログ倉庫に格納されています