トップページphp
985コメント235KB

Python vs Ruby vs PHP vs Perl

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2005/08/22(月) 20:28:32ID:???
どれを学べばいいの?
0662nobodyさん2006/06/25(日) 22:31:47ID:???
>>660
ついでだからLispとbshとcshとawkとsedもマスターしとけ
0663nobodyさん2006/06/25(日) 23:13:39ID:???
>>659
>過疎スレで暇だからみんなレスしてやってんのにw
そんなに暇なんですか?あなた
0664nobodyさん2006/06/25(日) 23:21:53ID:???
かつて、webアプリケーションを作るのが最も簡単だった言語は、Perlだけだった。
やがて、PHPが生まれ、Perlユーザの一部がPHPへと流れた。
時が過ぎ、Webアプリケーションに対する要求も複雑化し、
モジュールを使わないと例外処理ができないPerlや、名前空間の無いPHPでは
限界を感じるユーザが現れ始めた。
そして現在、Python、Rubyに注目が集まっているのです。
0665nobodyさん2006/06/26(月) 03:41:47ID:???
多分、このスレ見て勘違いしたんだろうけど、Perlは標準で例外処理あるよ。ただ、モジュールを使えばJavaなど多言語の例外処理と形が似たように書けるってだけ。
0666nobodyさん2006/06/26(月) 05:20:53ID:???
>>614
> Java+Oracleなら50人/年で、PHP+PostgreSQLで10人/年になる仕事ってなんだよw
感覚的にそんなもんだろ?replace案件受けたことないなら分からんか。
これから新規でウェブサイト立ち上げるときにJavaを選択するのはあり得ないね。客も気付き始めてるよ。

>>643
> Perlの複数人開発はちょっと嫌だな。
> PHPはPEARの標準コード規約があるから、それなりに読みやすいコードになる。
標準コード規約に従わないやつがいたらどうなると思う?
Perl::Tidy知りませんか?

>>648
> 田舎の零細ITとか未だにPerlつかってるとこあるよな
> なんか10年前で止まってる感じ
それはお前の脳内が(ry
CPANという言語拡張を知らないからそう思うだけだろう。

>>664
> モジュールを使わないと例外処理ができないPerlや、名前空間の無いPHPでは
665が言ってるようにお前が良く知らずに悦に入ってるだけ。
0667nobodyさん2006/06/26(月) 05:33:43ID:???
>>665
書いてみて
0668nobodyさん2006/06/26(月) 05:36:26ID:???
このスレ見て勘違いじゃなくても、どこ見ても例外処理はないって書いてあるよねw
0669nobodyさん2006/06/26(月) 06:14:13ID:???
PerlのOOって、冗長になりまくるからなぁ
名前空間無くてもまだPHPのが読みやすく作れるよ…
0670nobodyさん2006/06/26(月) 06:44:58ID:???
つーかなんでPerl使うの?
0671nobodyさん2006/06/26(月) 07:56:38ID:???
>>669
package MyClass;
use base 'Class::Accessor';
__PACKAGE__->mk_accessors('name', 'age');

nameとageのgetter,setterを持つクラスかいてみたけど、
PHPでこれより読みやすく書いてみて。
0672nobodyさん2006/06/26(月) 08:33:25ID:???
例外処理のモジュールもあるけど、標準のだけで書こうとするとこんな感じ。

eval {
 # try
 ...
 # throw
 die "Error";
};

# catch
if ($@) {
 ...
}
0673nobodyさん2006/06/26(月) 09:16:25ID:???
というか、PHPの方が例外処理やりにくいと思う。特にPHP4。
まだ環境的にPHP5に移行できない人が多いだろうし。
0674nobodyさん2006/06/27(火) 00:12:03ID:???
PHPをソースからコンパイルした奴ってアップデートするときってどうやってるんだろ?


ごめん。人のセイにしたけど本当は俺が知りたいの
0675nobodyさん2006/06/27(火) 00:14:29ID:???
もちろんソースからコンパイルするけど
0676nobodyさん2006/06/27(火) 00:51:18ID:???
まあ、PHPはアップデートがウザイね。Perlなら、モジュールだけで上げればいいけど。
0677nobodyさん2006/06/27(火) 11:28:27ID:???
>>667>>669はどこいった?
0678nobodyさん2006/06/27(火) 23:15:19ID:???
手に手を取ってバカンスへ
0679nobodyさん2006/06/27(火) 23:31:24ID:???
いやんばかん
0680nobodyさん2006/07/04(火) 03:29:12ID:???
http://www.google.com/trends?q=perl%2Cpython%2Cruby%2Cphp&ctab=0&geo=all&date=all
参考までに
0681nobodyさん2006/07/05(水) 22:35:38ID:???
じゃ俺も
http://www.google.com/trends?q=perl%2Ccobol%2Clisp%2Cpascal%2Cc%23&ctab=0&geo=all&date=all
0682nobodyさん2006/07/06(木) 02:25:57ID:???
>>681
C#が一時期ガクっと落ちてるのが気になるなw
0683nobodyさん2006/07/07(金) 18:32:20ID:???
>>671
これはPerlでクラスを定義しているのかな?
おれPerlよくしらんのだけど、ぱっと見ただけでは何やってるのかさっぱりわからん。
「これより見やすく書いてみて」ってあるけど、たいがいの言語ならこれより見やすく書けるだろ。

class MyClass {
 var $name, $age;
}

class MyClass
 attr_accessor :name, :age
end

>>671の例は、たしかに簡潔なんだろうけど、わかりやすいとはとても思えん。
アクセッサが簡単に定義できるということをいいたかったのかな?
0684nobodyさん2006/07/07(金) 18:39:04ID:???
>>683
上のはPHPだろうけど、それはちょっと違うかと。
accessorメソッドを定義できたわけじゃないので。

>>671 は、PHPだとこの場合、メソッド4つ定義しなきゃだめだろ
と言いたいんでしょう。
まぁ >>671 はそんなに分かりやすくないと思うけど。

下のはRubyだね。そっちは正しい。
0685nobodyさん2006/07/08(土) 00:02:55ID:???
Perlのオブジェクト指向は見やすくはない。一般的な、他の言語のオブジェクト指向とは大きく書式が違うから。
ただし、簡潔さはある。Perlは冗長さを徹底的に排除できる言語だから。オブジェクト指向に限らないけど。
0686nobodyさん2006/07/08(土) 00:37:33ID:???
CPANの使うだけなら楽だわな
自分でクラス定義書こうとは思わないが
0687nobodyさん2006/07/08(土) 01:52:42ID:???
Perlはプログラムを理解する脳力をプログラマに責任転嫁し、
RubyはPerlの全ての罪をMatzにつぐなわせ、
Pythonはプログラマからタブ文字を奪いさる。
そしてPHPは全ての救い難き衆生を10万億土に得度する阿弥陀仏。ありがたや。
0688nobodyさん2006/07/08(土) 05:23:53ID:???
>>685
>簡潔さはある。
ねぇよw
メソッドに初期値いれるときどうするの?
0689nobodyさん2006/07/08(土) 05:30:32ID:???
>>685はPerl5と共に進化が止まっちゃってるんだろ。
0690nobodyさん2006/07/08(土) 05:35:26ID:???
つーか前の流れでモジュール使わなきゃ例外もまともにできんとか言われてるのに、
さっそく>>671でモジュールつかっちゃってるしw
0691nobodyさん2006/07/08(土) 05:43:32ID:???
>>684
PHPの例もそれで問題ないでしょ。
パブリックに取り出しも設定もできるんだし、
逆に>>671でやってることも取り出しと設定しか出来ない
もん定義してるだけでしょ?一緒じゃないの?
0692nobodyさん2006/07/08(土) 07:19:50ID:???
>>691
おいおい、一緒じゃねーよ。
インスタンス変数への直接アクセスと、アクセッサを介したアクセスは、
結局やることは同じかもしれんが、情報隠蔽という考え方からみて全然違う。
いくらなんでもそれはオブジェクト指向の基本をわかってない。
0693nobodyさん2006/07/08(土) 07:31:34ID:???
PerlもPHPも、もとはオブジェクト指向ではなかった言語に後からオブジェクト指向の
機能を付け加えたから、不自然な感じは否めない。特にPerl。

それに比べ、Pythonもあとからオブジェクト指向の機能が追加された点では同じなんだけど、
不自然さはない。
もとはモジュール指向の言語で、そのモジュール機能を拡張したのがPythonのクラスなんだけど、
それがすごく自然になじんでる。
アクセス制御がすこし弱いのと、メソッド定義において最初の引数にselfを明示的に
指定しなければいけないのが気になるけど、それ以外はよくできてる。

こうしてみると、言語設計者のセンスの違いを感じる。
PythonかわいいよPython。
0694nobodyさん2006/07/08(土) 07:36:22ID:???
アクセス制御はもうみんな大人なんだから、て話だったな
selfはそのうち慣れる。むしろあった方が分かりやすいと俺は思うようになった
0695nobodyさん2006/07/08(土) 07:43:48ID:???
>>694
インスタンスメソッドの呼び出しや、インスタンス変数へのアクセスのためにselfを使うのはいい。
しかしインスタンスメソッドを定義するたびに、最初の引数にいちいちselfとしなきゃいけないのが面倒だし読みにくい。
これは慣れないし、なくしても害はないはず。

あ、あと親クラスのメソッドを呼び出すときがださい。親クラス名を書かなきゃいけないし。
super()とかで書けるほうがうれしい。
0696nobodyさん2006/07/08(土) 09:10:57ID:???
コードの可読性について語って。
ソースを納品させて、その担当の
プログラマーが辞めちゃったり、
氏んじゃったりしたら、別のプログラマーに
そのソースを渡して、続きを書いたりして
もらう、という状況を想定して。
0697nobodyさん2006/07/08(土) 09:54:42ID:???
>>696
> プログラマーが辞めちゃったり、
> 氏んじゃったりしたら、別のプログラマーに
> そのソースを渡して、続きを書いたりして
そんな職場ならすぐ逃げ出すのが先では?
0698nobodyさん2006/07/08(土) 10:53:54ID:???
>>697 無職はすっこんでなさい。
0699nobodyさん2006/07/08(土) 11:04:17ID:???
可読性は Python >= Ruby >> PHP >> Perl
Pythonはたいへん読みやすい。
Rubyで書かれたスクリプトは読みやすいんだけど、メタプログラミングされるとわけわかになりやすい。
Perlの読みにくさは頭ひとつ抜け出してる。Perlのモットーである「TMTOWTDI」(やり方はひとつではない)は、メンテする側からみると悪。
0700nobodyさん2006/07/08(土) 11:13:19ID:???
じゃあpythonを採用するお
0701nobodyさん2006/07/08(土) 14:10:08ID:???
>>696
ただ、>>696の前提で言うと、「その言語をマスターしている人員を確保できるかどうか」がもっとも重要な要因だと思う。
その意味で言うと、日本においてはPythonはPerlやPHPやRubyと比べてマイナーなので、Pythonを知っている人間を確保するのが難しい。
だから日本限定で考えるなら、Rubyのほうがいいと思う。
ヨーロッパならPythonがすごい人気なんだけどね。
0702nobodyさん2006/07/08(土) 14:37:54ID:???
ヨーロッパから人を確保すればいいんじゃね?
0703nobodyさん2006/07/08(土) 19:14:45ID:???
ぼけたつもりなんだろうか。。。
0704nobodyさん2006/07/09(日) 00:08:24ID:1tf/JQSh
PHPはパッケージが作れないのがいたいね。
このクラス・関数がどのファイルで定義されているのか追っていくのがキツイ。
パッケージがないから、ろくなライブラリが育たず、この5年で見ても死屍累々とすでに使われなくなったライブラリの山。
最近のPHPプログラマーが昔(と言っても3−4年前)のソース見ると、訳の分からないコードになってる。
0705nobodyさん2006/07/09(日) 04:07:40ID:???
>>704
だね。
OOひとつやるのにもモリモリモジュールだらけになっちゃうPerlと一緒で、
痛いよね。
この2言語はもう駄目だね。
0706nobodyさん2006/07/09(日) 04:43:57ID:???
Perlは廃れ始めると有名な人達がいわゆるクール(笑)な何かを作るから困る。
この悪循環でPerlは何年も延命してきている。たとえハック(笑)に優れていても、
彼らには人類にとって負の遺産を存続しているという罪悪感が無い。
突き詰めれば核兵器開発に携わる優秀な技術者と変わりない。
要するにただの馬鹿だ。
0707nobodyさん2006/07/09(日) 04:51:51ID:???
>>706
>突き詰めれば核兵器開発に携わる優秀な技術者と変わりない。
それは良くいいすぎ。
おじいちゃんが大好きな、過去を美化した昔話みたいなもんでしょ。
それ自体はボロボロだけど、おじいちゃんの脳は、それをどんどん素晴らしい物へと
変えていく。
0708nobodyさん2006/07/09(日) 05:40:49ID:???
お互いにこけにしあってるだけで、結局どんぐりの背比べじゃんw
0709nobodyさん2006/07/09(日) 05:44:26ID:???
>>708
どんぐりの背比べじゃなくて、どっちも使うなということです。
0710nobodyさん2006/07/09(日) 07:08:11ID:???
perl6は後方互換なしで0から再スタート
0711nobodyさん2006/07/09(日) 07:24:51ID:???
なるほどな、PerlはLightweight Language界のCOBOLというわけか。
言語としては時代遅れだけど、過去の遺産が大きくていまさら乗り換えられない。
0712nobodyさん2006/07/09(日) 07:35:08ID:???
>>710
その方がいいとは思うけどね。
出ればの話ですが…

0713nobodyさん2006/07/09(日) 09:58:52ID:???
>>712
本家見てれば分かるけど、今更出ないという事はありえない。
0714nobodyさん2006/07/09(日) 10:24:35ID:???
>>713
本家見てないから分かりません。
0715nobodyさん2006/07/09(日) 11:47:24ID:???
Gentoo : IntelR PentiumR?4 Computer Language Shootout Benchmarks
http://shootout.alioth.debian.org/gp4/index.php
0716nobodyさん2006/07/09(日) 13:03:53ID:???
>>715
Ruby遅いな・・・
0717nobodyさん2006/07/09(日) 16:51:53ID:???
>>713
じゃぁいつ出るの?
0718nobodyさん2006/07/09(日) 16:57:26ID:???
perl6ってまだ仕様もfixしてないんじゃなかったか
欲張りに機能盛り込む議論ばっかりやってて何年も決まらない
pugsがあっても、もう既に破綻してると思うんだが
0719nobodyさん2006/07/09(日) 18:27:34ID:???
PHP6で
if (...) class {...} else class {...}
こんなんできるようにするか議論されてるらしいけど、どうなのこれ?
0720nobodyさん2006/07/09(日) 19:17:37ID:???
>719
そもそも最近の言語で特殊なシンタックスなしにそれができないなんてどうかしてる
0721nobodyさん2006/07/09(日) 19:39:12ID:???
>>720
どういうとき使うの?
0722nobodyさん2006/07/09(日) 19:47:57ID:???
>>720
ほとんど不要なものが実装されてないくらいで、どうかしてると思う方がどうかしてる
0723nobodyさん2006/07/09(日) 20:47:35ID:???
if (cond) { class ... } else { class ... }くらいできないの?
0724nobodyさん2006/07/09(日) 23:13:25ID:???
>perl6は後方互換なしで0から再スタート
言語としてのPerl6ならそれで正しい
インタプリタ/コンパイラとしての"perl6"は後方互換はあるよ。

全部parrotが吸収するからそれが出来る。
0725nobodyさん2006/07/09(日) 23:38:14ID:???
Parrotってもう出来上がってるの?
まだなら、いつ頃出来上がる予定なの?
0726nobodyさん2006/07/10(月) 00:08:08ID:???
今利用できないものに、実用的な意味はない。
0727nobodyさん2006/07/11(火) 03:39:24ID:byVkHhC7
自分でインストールすれば使えるよ、ずっと前から
ただ、変なインストールしようとすると対応してない場合があるっぽい(自分でナントカしろと説明書にかいてある・・・w
Windowsなら、もうコピーするだけの奴を公開してくれてる人が居るので簡単に使える。
0728nobodyさん2006/07/14(金) 00:59:43ID:g/iLFj37
何やかんやで、結局使われてるのはPHPだね。
0729nobodyさん2006/07/14(金) 10:04:00ID:wmyV4wcm
勝利宣言は思考停止
0730nobodyさん2006/07/14(金) 10:34:40ID:???
IT後進国ではperlとphpがメインで使われてます。
世界的に見れば、あらゆるシーンで使用されているpythonが便利です。
0731nobodyさん2006/07/14(金) 11:06:06ID:???
世界中後進国だらけだな。
0732nobodyさん2006/07/14(金) 21:30:06ID:???
まあ、功深刻の方が多いと思うよ
0733nobodyさん2006/07/17(月) 18:16:08ID:???
多いというか全部の国がそうなりそうだな。
0734nobodyさん2006/07/18(火) 02:08:23ID:???
try:
    >>733
except US,DE:
    print "hello!"
0735nobodyさん2006/07/18(火) 09:08:37ID:???
PythonがPerlやPHPを押しのけてメインというぐらいに
使用率とかで普及してるん?
0736nobodyさん2006/07/18(火) 12:19:03ID:???
ヨーロッパでは。
例えばRedHatやFedraの管理ツールはぜんぶPython。
Google社内の管理ツールもPython。
0737nobodyさん2006/07/18(火) 12:49:15ID:???
>>736
RedHatもGoogleもアメリカですが。
0738nobodyさん2006/07/18(火) 13:20:27ID:???
pythonが日本以外ではわりと使われているのは確かだ。
日本で使われていないのはrubyなんていうのがあるせいだな。

言語(文法)としてのデキや優劣は使う人次第であったり、好き嫌いも含まれると思うが、
パフォーマンスや不具合などをみれば、python > ruby で、pythonの方が優秀だ。
これは単純に世界での使用者の人口比率に比例しているだけだがな。

使用人口をwebという分野でみれば、php > python だ。
スクリプトとしてみれば、 python > php だな。

ただし、phpは節操なしで、ポリシーなくなんでも取り込んだせいで、言語としては最悪だ。

え?perl?まだいたの?
0739nobodyさん2006/07/18(火) 14:04:28ID:???
rubyはPC98でpythonはPC/AT互換みたいなもんだ
0740nobodyさん2006/07/18(火) 14:07:57ID:???
ただ最近はRailsのお陰で、向こうのLinux系の雑誌でも
Rubyの特集があったりするよ。
0741nobodyさん2006/07/18(火) 18:40:44ID:???
>>740>>739 風に言うなら。

エロゲーのお陰で、向こうのPC系の雑誌でも
PC98の特集があったりするよ。
0742nobodyさん2006/07/18(火) 23:36:01ID:???
少なくともいままでの経験からいうと
ruby pythonは鯖管が入れてくれない

ひどいとこだとperlもcコンパイラも入れてくれないので
「bshとawkとsedでなんとかしろ」とか言われちゃったりする

めんどくさい仕事は増やさない、それが鯖管
0743nobodyさん2006/07/18(火) 23:42:47ID:???
不幸だね。
0744nobodyさん2006/07/19(水) 01:05:50ID:???
昼は棍棒片手にマンモス狩りに行ってそう
0745nobodyさん2006/07/19(水) 02:15:48ID:???
スクリプターと鯖缶って仲悪いのか
0746nobodyさん2006/07/19(水) 08:58:39ID:???
いまどきawkはありえない。
0747nobodyさん2006/07/19(水) 09:33:08ID:???
いまどきそんな鯖少ないと思うけどな
ruby入ってる所も多くなって来たし
0748nobodyさん2006/07/19(水) 09:42:50ID:???
sedなんて今世紀に入ってからはじめて見た
まだ生きてたのか
0749nobodyさん2006/07/19(水) 11:13:15ID:???
サーバーそのものの管理に
Perl や Python 使ってそうなもんだけどな。
0750nobodyさん2006/07/19(水) 11:21:02ID:???
1:サーバがVAX
2:サーバがPDP
3:サーバがDSLite
0751nobodyさん2006/07/19(水) 11:58:35ID:???
今PHP使いだけど、Pythonを勉強しようと思う。

マニュアルなどを斜め読みして期待してるのは、
1.実行速度が早そう
2.Windows用にexe化できる(コードを隠蔽できる)
3.PHP-GTKより簡単にGUIを作れそう(資料も多そう)
てなところ。

GUIがほしいのでJavaにしようかと思ったけどちょっと寄り道してみる。
Python使いの方、これらの期待は妥当でしょうか。
0752nobodyさん2006/07/19(水) 12:23:25ID:???
ゆとり教育の影響か、「日本語」で資料が揃っているという条件も大きいですね。

Ruby > Python
0753nobodyさん2006/07/19(水) 12:39:42ID:???
Rubyの日本語資料ってどこにあるの?
0754nobodyさん2006/07/19(水) 12:46:46ID:???
>>753
http://www.amazon.co.jp/

Pythonについて日本語で書かれた本、少ないと思いませんか?
行き詰った時に、Googleで英語サイトに行かないといけないのは、語学が堪能じゃない人には少々厳しいですね orz
0755nobodyさん2006/07/19(水) 12:46:49ID:???
パフォーマンスが特に高いわけじゃないし、py2exeはソースをZIPで固めてexeの末尾に付けるだけ。
だれでも解凍してソース読める。GUIは知らない。
0756nobodyさん2006/07/19(水) 12:48:36ID:???
>>754
行き詰まったときにそもそもGoogleでヒットする資料すらないんだが...
07577542006/07/19(水) 12:50:28ID:???
Pythonユーザーさんは、ノウハウを日本人に還元するという意味で、出版社にPython本の企画持ち込んでみて。
07587512006/07/19(水) 13:07:36ID:???
>>755
そうですか。
ソース見られても良いけど、データベースの接続パスワードなんかは
あんまり見られたくないなと思ってたもので。
まあDB側で適切なユーザ設定しとけばいいんですけどね。
0759nobodyさん2006/07/19(水) 13:54:02ID:???
そこでBoost.Pythonですよ
0760nobodyさん2006/07/19(水) 14:33:03ID:???
>>757
日本のpythonユーザは閉鎖的なんで無理です
0761nobodyさん2006/07/19(水) 15:02:45ID:???
>>755
出来上がった実行ファイルってどうやって解凍するんですか?
今、手元にpy2exeで作ったファイルがあるので試してみたいです。
0762nobodyさん2006/07/19(水) 15:20:36ID:???
unzip 実行ファイル
■ このスレッドは過去ログ倉庫に格納されています