トップページ⇒tech
60コメント16KB

動的型付け言語ってダサくない?

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
みなRubyとかPythonだとか、いってるけど、
動的型付けのなにがかっこいいの?

言語オタク的にはなおさらつまらないような気がする。
0002デフォルトの名無しさんNGNG
がいしゅつ
http://piza.2ch.net/test/read.cgi?bbs=tech&key=986355498
0003デフォルトの名無しさんNGNG
がいしゅつだが一言。
言語オタク的にこそ、面白いんだと思うが。
0004デフォルトの名無しさんNGNG
MLの型システムこそが一番オタク的だろう。
0005デフォルトの名無しさんNGNG
>>4
Haskellの型クラスもけっこうきてるね

>>1
そういえばスクリプト言語で静的型付けしてるのってみたことないや
0006デフォルトの名無しさんNGNG
>>5
ちょっと前のCマガのスクリプト特集記事にはCくりそつの
言語も紹介されていたよ。
00071NGNG
失礼ですけど、それはまだまだ甘いと思います。
言語オタク的には、動的型付けで、さらに「クラスも値だ」とか言ってみても、
その体系は所詮Smalltalkから進歩していないのです。
>>4さんのいっているようにいまだに研究されている型付け(特に関数型とか)の仕組みにこそ、
言語のオタク的魅力が詰まっているのだと思います。
0008デフォルトの名無しさんNGNG
うるせえ
言語をオタク化するんじゃねえ
0009デフォルトの名無しさんNGNG
動的型付けより、宣言してなくて変数が使えるほうがダサい。
バグの原因じゃん。
0010デフォルトの名無しさんNGNG
職業プログラマですか?>>8
0011デフォルトの名無しさんNGNG
>動的型付けのなにがかっこいいの?
>>1オタはかっこよさで言語をらぶ。飯の種ではないからな。
あくまでもオタ。言語フェチ。
0012デフォルトの名無しさんNGNG
Rubyとかってダサいよね。
偉そうに言語オタクぶってるわりには動的型チェックで
バグ促進。
0013デフォルトの名無しさんNGNG
>>9
>宣言してなくて変数が使えるほうがダサい
VBやperlとかかな?
0014デフォルトの名無しさんNGNG
>>9
型演繹による静的型つけなら、宣言無しでもバグの原因にならない。
0015デフォルトの名無しさんNGNG
>>12
Rubyが言語オタクぶってるかは知らないが、ダサいとは思う。
ただ、それは動的な型付けをしてるからではない。
さらに、バグを出してるのは自分自身であって、言語に文句を
タれるのはかっこわるい。
0016デフォルトの名無しさんNGNG
みんなschemeにしなよ。(lispは汚い部分があるので)
構文の好き嫌いとかなくなるよ。
型問題もタグ付けという概念でほぼ解消できるし。
0017デフォルトの名無しさんNGNG
>>15
ハァ?バグの出易い仕様をダサいといってるんだけど。
バグは全部プログラマのせいだからといって、
バグが出安い文法でもかまわないってことには当然
ならないだろ。
0018デフォルトの名無しさんNGNG
>>16
でもそれって、結局動的型付けでしょ?
ダサいよ。
0019デフォルトの名無しさんNGNG
動的型付け・・・型違いのバグが、バグの部分が実行されるまで発見できない。
プログラムの挙動をみてバグの種類を判断しないといけない。

静的型付け・・・型違いのバグがすぐに発見される。バグの種類と個所がはっきりと
特定される。
0020デフォルトの名無しさんNGNG
>>12=17はクサい。
0021デフォルトの名無しさんNGNG
動的型付け言語を使うとバグが出易くってしょうがないって言ってるやつは
静的型付け言語もなんだかんだ言って使えないんじゃないの?
0022デフォルトの名無しさんNGNG
ていうか、動的型付けがバグ発見の点で重大な欠点だってのは
周知の事実じゃん。
何を今更抵抗してんだか。
0023デフォルトの名無しさんNGNG
>>22
たしかに周知ではあるんだけど、
不思議なことに>>21の主張も
結構嘘ではなかったりする(w

静的型付けが、バグの確率を下げるのは確かだけど、
バグの確率を「満足できるほど」下げてくれる、とは
誰も保証してない、っていう感じかと。
0024デフォルトの名無しさんNGNG
実行して実際に間違わないとどこが悪いかわからないってのは
かなり効率低下する。
毎回一発で間違いの無いコードを書ける奴なんていないよ。
0025デフォルトの名無しさんNGNG
うるせーな
そんな議論は>>2で出尽くしてるんだよ。
おめーら回線切ってさっさと寝ろ。
0026デフォルトの名無しさんNGNG
>>24
「型間違い」以外のバグも、実際に間違わないと分からないのでは?
もちろん静的型付け言語が「型間違い」を検出してくれるのはうれしいけど。
0027デフォルトの名無しさんNGNG
>>26
すまん。その辺も含めて、「型なし言語いってよし」スレで
がいしゅつな話のはずだ…
002825NGNG
>>26
失礼しました。
002926NGNG
>>28
ごめん、間違えた。

---------------
>>27
失礼しました。
---------------
が正しいです。
0030デフォルトの名無しさんNGNG
ようするに自分の無能さを何かのせいにしたがってるやつがいるだけだろ。
0031デフォルトの名無しさんNGNG
いやいや何かの無能さを人のせいにしたがってる人がいるだけだ(w
0032デフォルトの名無しさんNGNG
「C++で開発したらRubyの時より時間がかかった」
「お前が無能だからだ」

こう言ってるのと同じだぞ。明らかにおかしな言い分だ。
00331NGNG
バグの問題はおいといて、
「動的型付け言語に、美しいもくそもあるか」
ということが最近思っている事なんです。
0034デフォルトの名無しさんNGNG
>>33
その理由を書いてくれないと、「そうですか」としか言えない。
0035デフォルトの名無しさんNGNG
>>33
!言語オタク
趣味:言語観賞
0036デフォルトの名無しさんNGNG
>>33
静的な型付けをしている言語で美しいと思うものとその理由を挙げてよ。
0037デフォルトの名無しさんNGNG
きっと1は今ごろ自分で理想の言語を作ってるに違いない。期待しよう。
00381NGNG
いま研究中ですけどやっぱHaskellとかじゃないですかね?
Javaも嫌いじゃないけど。

Pascalとかいったら殴られそう。
0039デフォルトの名無しさんNGNG
ね?ってなんだよ。同意もとめるなよ。自分の意志を持てよ。>38
0040デフォルトの名無しさんNGNG
HaskellってWindowsかLinuxでいじれます?
素人なんですがあるならよろしく。
0041デフォルトの名無しさんNGNG
関数型言語スレいけ>40
0042デフォルトの名無しさんNGNG
>>17
バグの出易い仕様が嫌ならEiffelを使おう(おすすめ)
0043デフォルトの名無しさんNGNG
>>42
Eiffelで質問

Eiffelってundefineやrename asがあるけど、
そういう場合って、サブクラスがスーパークラス
の一部にならないような気がするんだけど、そこは
どうなってるの?
0044デフォルトの名無しさんNGNG
まてまてまてまて!

なぜ動的型付けを誹謗するのだ。
そんなことよりもっと大切なことがあろう。
分かるか?分かるものならばかいてみやがれ!
0045デフォルトの名無しさんNGNG
>>40
どっちでも使えるわよ。
0046デフォルトの名無しさんNGNG
>>44=http://mentai.2ch.net/test/read.cgi?bbs=prog&key=990810153&st=145&to=145&nofirst=true

何がやりたいんすか?
0047デフォルトの名無しさんNGNG
>>46
どうして分かるの?
004846NGNG
>>47
文が似通ってるってだけです。
0049デフォルトの名無しさんNGNG
>そういう場合って、サブクラスがスーパークラス
>の一部にならないような気がするんだけど、そこは

「一部」ってどういうことよ。
0050デフォルトの名無しさんNGNG
>サブクラスがスーパークラスの一部
ハァ?
0051デフォルトの名無しさんNGNG
型ってそんなに大切なん?

オブジェクト指向だと、
あるメッセージを受け取れるかどうかが大事だと思うんだけど。
0052デフォルトの名無しさんNGNG
>>51
それを形式的に保証するのが型システム。
0053デフォルトの名無しさんNGNG
>>49
>>50
ハアじゃないよ。
スーパークラスでできる操作はそれを継承するサブクラスでもできるのが普通。
そういうのを包含関係とか言うんだよ。
サブクラスでなんらかのメソッド(フィーチャー)をundefしちゃったら、
変数にサブクラスが代入されたときにどうなってしまうのかな? と思ったわけ。
0054デフォルトの名無しさんNGNG
>>53
http://www.elj.com/eiffel/intro/s5/#s5.5
つーことらしい。差分プログラミングってやつか?
0055デフォルトの名無しさんNGNG
>>53
関係ない話だけど便乗質問。
Eiffelではそういうのを包含って呼ぶんですか?
ふつーはUMLみたいにObject間の所有(?)関係を
さす言葉じゃないかと思うけど、Eiffel専門用語ですか?
0056デフォルトの名無しさんNGNG
0057デフォルトの名無しさんNGNG
包含でも包摂でもいいけど、一般的なコトバだろ。
005853NGNG
>>55
包含関係っていうのはアナリシスではオブジェクトのEmbeddingのことさすけど
クラスの型を可能な操作の集合として考えれば、サブクラスはスーパークラス
の要素を含むじゃない。だからサブクラスはスーパークラスを包含するという。
0059デフォルトの名無しさんNGNG
encloseは日本語だと何になるの?
0060デフォルトの名無しさんNGNG
>>43
class FOO
feature
x:INTEGER
end

class BAR
inherit FOO rename x as y
end

a:FOO
b:BAR
!!b
a := b
a.x ... b.yがよばれる

a.y ... エラー
■ このスレッドは過去ログ倉庫に格納されています