アカウント名:
パスワード:
C、C++、C#、Java、JavaScript、Perlは文法似てるので、どれかを習得すれば他もとっつきやすいんだよね。pythonは学習コスト高すぎだわ。無能技術者なので3回くらいpythonを学習しようとしてあきらめてる。
うーん、表面的な文法の似てるかどうかで判断しているだけで、もう少し精進しましょう、とアドバイス差し上げたくなる。
どちらかというと、裏側にあるオブジェクトモデルの設計思想の差とかの方がはるかに大きい。
その中ではJavaScriptがダントツで異端児だし。Cはプリミティブすぎて、オブジェクトモデルと呼べるようなものも自分で作り上げなきゃいけない感じ。C#やPython3は、後発だけあって、合理的ですっきりした設計。Perlはカオス。
self と _ と __ だらけで、perl と同じぐらいカオスじゃないですか。あれはマニュアル必読で、「なんとなく」では理解できないよ。bless みたいなもの。
プログラミング言語に限らず、マニュアルすら読まずに使えるくらい学習曲線の立ち上がりが早い技術は、大抵は頭打ちになるのも早い。
そういうとっつきやすさの誘惑に惑わされちゃいけないよ。
そういうものを、「合理的ですっきり」と言わないって。コストの高さを引き合いに出すならば、C言語が最も優れていることになっちゃうぞ。
なんで「AなものはBである」という命題から「AでないものはBではない」が導かれるんだ?
あと、別にC言語はそんなに学習コスト高くないぞ。覚えること少ないし。学習した後、使うときに気を遣わないことが多すぎるだけ。扱うのは簡単だけど、簡単に自分の足を撃つことができる銃、それがC言語。
OOPを使わなければ、pythonも扱うのは簡単だと思いますよ。pythonのOOPは後付け感が強い。もしゼロからやり直せるなら、合理的な人はこんな設計にしないだろう。
どの言語と比較して後付け間が強いと感じているのかわからないけど、クラス自身もファーストクラスオブジェクトとして扱えるようにするなら、こんなもんじゃないかな。
__を多用するのは、単に予約語や演算子を追加して文法が肥大化するのを嫌う作者の嗜好だと思う。
だから名前空間が衝突して、メソッド名とインスタンス変数は同名にできないという。JavaScriptを異端児と評しておきながら、Pythonを合理的とするところが不思議。
> だから名前空間が衝突して、メソッド名とインスタンス変数は同名にできないという。> JavaScriptを異端児と評しておきながら、Pythonを合理的とするところが不思議。
メソッド名とインスタンス変数の名前空間が同じなのは C++ も同じなので、その部分は別に異端ではない。# メソッドをインスタンス変数に代入して、alias っぽく使うこともできる
python は文法が奇異に見られるけど、動作的にはC++とJavaから類推できることが多いです。
そういう時なら、もうC#を使えばいいわ。perlは嫌いではないけれど、OOPするなら別言語を使う。pyhonも嫌いではないけれど、OOPが必要な規模では別言語を使いたくなる。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
日々是ハック也 -- あるハードコアバイナリアン
学びたい=今はまともに使えない (スコア:2)
C、C++、C#、Java、JavaScript、Perlは文法似てるので、どれかを習得すれば他もとっつきやすいんだよね。
pythonは学習コスト高すぎだわ。無能技術者なので3回くらいpythonを学習しようとしてあきらめてる。
Re: (スコア:4, すばらしい洞察)
うーん、表面的な文法の似てるかどうかで判断しているだけで、もう少し精進しましょう、とアドバイス差し上げたくなる。
どちらかというと、裏側にあるオブジェクトモデルの設計思想の差とかの方がはるかに大きい。
その中ではJavaScriptがダントツで異端児だし。
Cはプリミティブすぎて、オブジェクトモデルと呼べるようなものも自分で作り上げなきゃいけない感じ。
C#やPython3は、後発だけあって、合理的ですっきりした設計。
Perlはカオス。
Re: (スコア:0)
self と _ と __ だらけで、perl と同じぐらいカオスじゃないですか。
あれはマニュアル必読で、「なんとなく」では理解できないよ。bless みたいなもの。
Re:学びたい=今はまともに使えない (スコア:0)
プログラミング言語に限らず、マニュアルすら読まずに使えるくらい学習曲線の立ち上がりが早い技術は、大抵は頭打ちになるのも早い。
そういうとっつきやすさの誘惑に惑わされちゃいけないよ。
Re: (スコア:0)
そういうものを、「合理的ですっきり」と言わないって。
コストの高さを引き合いに出すならば、C言語が最も優れていることになっちゃうぞ。
Re: (スコア:0)
なんで「AなものはBである」という命題から「AでないものはBではない」が導かれるんだ?
あと、別にC言語はそんなに学習コスト高くないぞ。覚えること少ないし。
学習した後、使うときに気を遣わないことが多すぎるだけ。
扱うのは簡単だけど、簡単に自分の足を撃つことができる銃、それがC言語。
Re: (スコア:0)
OOPを使わなければ、pythonも扱うのは簡単だと思いますよ。
pythonのOOPは後付け感が強い。もしゼロからやり直せるなら、合理的な人はこんな設計にしないだろう。
Re: (スコア:0)
どの言語と比較して後付け間が強いと感じているのかわからないけど、クラス自身もファーストクラスオブジェクトとして扱えるようにするなら、こんなもんじゃないかな。
__を多用するのは、単に予約語や演算子を追加して文法が肥大化するのを嫌う作者の嗜好だと思う。
Re: (スコア:0)
だから名前空間が衝突して、メソッド名とインスタンス変数は同名にできないという。
JavaScriptを異端児と評しておきながら、Pythonを合理的とするところが不思議。
Re: (スコア:0)
> だから名前空間が衝突して、メソッド名とインスタンス変数は同名にできないという。
> JavaScriptを異端児と評しておきながら、Pythonを合理的とするところが不思議。
メソッド名とインスタンス変数の名前空間が同じなのは C++ も同じなので、その部分は別に異端ではない。
# メソッドをインスタンス変数に代入して、alias っぽく使うこともできる
python は文法が奇異に見られるけど、動作的にはC++とJavaから類推できることが多いです。
Re: (スコア:0)
そういう時なら、もうC#を使えばいいわ。
perlは嫌いではないけれど、OOPするなら別言語を使う。
pyhonも嫌いではないけれど、OOPが必要な規模では別言語を使いたくなる。