Ruby VS PHP 仁義なき戦い
■ このスレッドは過去ログ倉庫に格納されています
まずはこれをお読みください。
ttp://www.rubyist.net/~matz/20080126.html
Webアプリケーションを作るには、結局どっちがいいんでしょうか。
初心者はどっちを選べばよいのでしょうか。 ダウンロードした
gawk-mbcs-win32-20051223.zip
を解凍して、フォルダをCドライブ直下に移動する。
↓
フォルダ名を「gawk」に変更する。
↓
BEGIN {
print "Hello World!";
}
というコードをbasic01.awkという名前で、gawkフォルダ内に保存する。
↓
コマンドプロンプトを起動して、
cd \gawk
と入力して、エンターキーを押す。(=gawkに移動)
↓
gawk -f basic01.awk
と入力して、エンターキーを押す。(basic01.awkをインタプリタで実行)
↓
Hello World! と表示された。 27 :nobodyさん:2008/02/02(土) 06:40:16 ID:???
↓
30 :nobodyさん:2008/02/02(土) 07:03:06 ID:???
ラップタイムは、22分50秒!
20分ちょいあれば、とりあえず今日からアナタもAwkプログラマーになれる!(・∀・) 検索ならgrepでいいじゃん。
検索置換とか、「検索結果による修正」全般で素敵なスキルになると思うよ awkを何に使ってるんでしょうかね?
統計、大量のデータ処理?
grep、パイプ、リダイレクト程度では物足りないとか? >>35
単純で同じことの繰り返し・・・だが作業自体は一回きりって
作業を簡単に終わらせるため。 >awk, sed
俺は使わないけど特に問題なし(^^)v
ワンライナー(1行のプログラム)だと、PerlやRubyを使う人が多いかな?
でも、世の中知らなくて損をしていることって結構あるから、一応使い方くらいは知っておくべきか? コードよりコマンドのほうが手っ取り早いのは自明だと思うが。 >>35
ほとんど行志向のフィルタとしてしか使わない
が、そういう用途での使用に適するようかなり練りこまれてる
あとはポータビリティを重要視するアプリで使われてるかな RubyはPerlと比べるとワンライナーには向かねい
PHPも向かないと思われてるが、いくつもモジュールをインクルードする場合には
標準であれこれ組み込まれてて関数一発型のPHPが一番タイプ量少なくなるケースもw ワンライナーってさ、
あの一行を書くのにどれだけ時間かけて、
何回失敗してるの?
手段と目的が逆になってるよなぁ。 でも美しいもんだぜ
一回できればテンプレ化できるし
そういう点ではperl文法が好きだし変な特色つけんでperl文法でphp作って
欲しかった スクリプトにしておけば、テンプレどころか
引数だけの変更で終わりだが・・・ 仰る通りだが、スクリプトにすると実行環境に配置してからだしな
まあ言うほど面倒ではないが、ばらけるから面倒な事もあるんじゃね
俺もワンライナに凝るよりはスクリプト設置して回す派
だが今度は汎用性に凝ってしまって本末転倒 最高の言語?
そりゃ、MASMですよ。
もちろん、バージョン6以降。
型や構造体、フロー制御ディレクティブなどのないアセンブラなんてアセンブラじゃありません。
C言語? あんな中途半端な言語は使えませんよ。
プログラミング言語といえば、MASM か C++のことでしょ? 新しいお題が来ましたよ(・∀・)
それじゃ早速逝ってみよう!!!
「30分で始めるMASM」
…ってか、アセンブラでWEBサイト作ってる人いるのか!?www MASM に一致する日本語のページ 約 120,000 件
…参考サイトはいろいろありそう。
Win32 MASM プログラミング入門
http://www7.plala.or.jp/keny01/asm/win32/
>MASM とは、マイクロソフト社製のアセンブラツールです。
ベンダー固有のツールか。
中身が公開されていないものだったら、あんまり使いたくないな〜><
(どうなんだろ?) ダウンロードの詳細 : Microsoft Macro Assembler 8.0 (MASM) パッケージ (x86 用)
簡単な説明
http://www.microsoft.com/downloads/details.aspx?FamilyId=7A1C9DA0-0510-44A2-B042-7EF370530C64&displaylang=ja
Microsoft Macro Assembler 8.0 (MASM) は、アセンブリ言語で記述されたプログラムを使用して、そのソースプログラムに対応するバイナリファイルを生成するツールです。
必要なソフトウェア:Visual C++ 2005 Express Edition
あれれ?Visual Studioの無料版とかインストールせなあかんの?
こりゃ困ったなー^^
(30分で終わらない予感) MASM32の遊び方
http://www.interq.or.jp/chubu/r6/masm32/intro.html
QEDITOR.exe の簡単な説明
http://www.interq.or.jp/chubu/r6/masm32/masm004.html
どうやったらアセンブラ(ASM)ソースファイルから実行ファイルを作成できるか
1.MASM32をインストールしたディレクトリにある、QEDITOR.exe を起動する
2.「メニュー」→「File」→「Open」でASMファイルを開く
3.「メニュー」→「Project」→「Build All」でビルドする
4.「メニュー」→「Project」→「Run Program」で実行するとこんなウィンドウが出てくるはずである
もしかしたら、Visual Studio無しでもMASMってのは使えるのかな? MASM Hello world に一致する日本語のページ 約 2,570 件
アセンブリ言語 Hello World を表示するプログラム
http://maccyo.hp.infoseek.co.jp/assembler/assembly.html#002
うむ、いきなり答えっぽいページに遭遇^^ あ、NASMのサンプルコードだったorz
MASMとは別物なんだな>< アセンブリ言語への招待
http://ueno.cool.ne.jp/nvaca/asm3.html
>2章 マクロアセンブラの使用
>1.はじめの実例 "Hello World"プログラム
>マクロアセンブラ(ここでは、Microsoft Macro Assemblerを使用。TASMでもOK)を使ったプログラム
おー、これだこれだ!
これを実行できる環境を用意すればいいんだな? 1章 アセンブリ言語への招待
http://ueno.cool.ne.jp/nvaca/asm1.html
3.必要なもの
まずは、アセンブラが必要です。
これは、アセンブリ言語で書かれたプログラムを、マシン語に変換します。
次に、リンカが必要です。
アセンブラは普通、オブジェクトコードという、マシン語なんだけれども、そのままの形では実行できないコードを出力します。
リンカは、それらのオブジェクトコードをくっつけ、実行可能なファイルを作りだします。
リンカは、大抵アセンブリ言語などの付いてきます。
もしあれば好ましいものに、デバッガがあります。
これは、実行可能な形式のプログラムを一行一行実行するなどの機能をもっており、プログラムのバグを発見するのに便利です。
また、簡単なアセンブリ機能をもっているので、簡単なプログラムなら作ることができます。
ほうほう、なるほど。
デバッガで動作確認できても、とりあえずそれで良しとするかな?(・∀・) nobodyさん:2008/02/05(火) 00:33:41 ID:???
あー、30分をオーバーしてしまった!ダメだこりゃ>< あと1分残っているか!
最後まであきらめない!!!
ε≡≡ヘ( ´∀`)ノ わー、結構インストールするときに、HDDの容量食うんだなー。
ちょっとキャンセルします><
アセンブラのプログラミングを試すだけなら、基本情報技術者試験のアセンブラ(CASL2)のシミュレータで試してみるのもいいかな?
↓
http://www.vector.co.jp/soft/win95/prog/se182050.html
CASL2シミュレータ
ステップ毎にプログラムリスト上にカーソルが移動,実行中の命令の位置とCPUとメモリの内容を即座に表示 47 :nobodyさん:2008/02/05(火) 00:33:41 ID:???
↓
今日はもう寝ます。おやすみなさい。(´;ω;`)
"Hello World!"がはやってるみたいなので、
各言語でCGIにしてベンチ取ってみたよ。
ベンチはCGIを設置したLinuxサーバからローカルで
ab -c 100 -n 1000 URL
のコマンドで実施。数は5回ぐらいやった平均(Request per second)。
php-5.2.5(cgi) 63#/sec
python-2.5.1 130#/sec
ruby-1.9.0 315#/sec
zsh-4.3.4 465#/sec
perl-5.8.8 530#/sec
lua-5.1.2(binary) 660#/sec
freepascal-2.2.0 960#/sec
php-5.2.5+apc+zendOptimizer 4100#/sec
php-5.2.5 4300#/sec
php-5.2.5+apc 4600#/sec
ただのhtml 6600#/sec
あえて個別の感想は述べません。
環境とか最適化とかごちゃごちゃうるせぇのが湧きそうだけど、
受け付けませんw
今回のはインタプリタ起動のオーバーヘッドの参考程度か?
小難しいロジック入れたときにどうなるかは知らん。めんどくさい。
PHPは本来、mod_perlなどのApacheモジュールと比較するべきですね。
次回予定で。いつかわからんけど。 62です。
Cが抜けてた。
c(gcc-4.1.2) 850#/sec 連続スマソ。Luaのtextのやつも抜けてたよ。
Lua-5.1.2(text) 950#/sec >>65
めんどくせーよ。でも個人的にも興味あるので、まずはforループから。
10000回ループさせながら1〜10000までの和を求めるやつ。バージョンは略
php 1000#/sec
fpc 950#/sec
lua 400#/sec
c 850#/sec
bash 0.03#/sec*
perl 260#/sec
ruby 98#/sec
python 103#/sec
php(cgi) 61#/sec
*bashは、forの書き方わからなかったのでwhileで書いた。
1回実行するのに30秒ぐらいかかったので、1/30秒ということで0.03#/sec
abコマンドはたたいてない。
コンパイラ系だと、屁でもない負荷だなぁ…。
crc32は…。マンドクサ 66です。
PHPはオプションたくさんつけてコンパイルしてるから、インタプリタの起動が重いのかな?
HelloWorld!でも1万回ループでも結果はあまりかわってない。
逆にrubyは、HelloWorld!だとPythonより速いけど、
1万回ループだとPythonとあまり変わらない。
インタプリタの起動は軽いけどプログラムの実行が遅いのかも?
以前PerlでベンチしたときにはCPANモジュールとかをインクルードするような
プログラムになると急に重くなった。PythonやRubyでも同様かもしれない。
外部モジュールを利用するようなやつも試してみたいね
そういうのやるなら、PHP4の方が速いだろうね。PHP5より。 PHP5はなんか肥大化しちゃってるイメージあるね。主観だけど。
PHP3->4になったときほどのインパクトはない。
それからベンチで間違いのご報告。rubyは、1.8.6でした。ごめんなさい。
1.9.0だともっと速くなってることを期待。
DB接続のテストもしてみました。
WWWと同じサーバ上のPostgreSQLに接続・切断してるだけです。
php 650#/sec
fpc 270#/sec
c 275#/sec
lua+luasql 206#/sec
perl+Pg 95#/sec
ruby+postgres 174#/sec
python+pgdb 52#/sec
php(cgi) 85#/sec
今日はなんかサーバの調子がいい。
luaが健闘。ガンバレって言いたくなるのは判官びいきかw >>66
Ruby使いですが、phpメッチャ早いですね
プリミティブ型としてもってるからですかね。 ああ、あと関係ないけど、Rubyだとforつかわないから、もうちょっと意味のあるもので頼む >>66
んてかこれおかしくねえ?ネイティブコンパイラのcにまけるはずないと思うんだが
JITしててもありあえねえ
fpcがcに勝つのもありえねえ(fpcは最適化がクソなので有名)
環境、コンパイラ、スクリプトのバージョン、ソースを晒してもらおうか。 上よんでなかた
CGIとして動かしてなかった時の話か 確かにあんまり意味はないだろうな。
これまでの比較は、どの言語でも似たり寄ったりのコードでかけるし。
かといって、ちょっとしたアルゴリズム(ソートとか暗号化など)は、
言語によっては関数として実装済みで、現場で組むことはなかったり…。
今回fpcがCよりも早かったこともあったが、最適化に差が出るほどの
コードでもなかったんだろう。
まぁ、言語の比較ってのは開発効率など多角的に検討して、
適材適所に用いられるものだと考えている。だからといって、
あちこちにいろんな言語が混ざってちゃやりにくくてしょうがない。
結局、言語の選択なんて「嗜好」と「惰性」がでかかったりしてw
単純な数値計算のループで最適化をゴリゴリやられた結果、最終値の代入文に
置き換えられてたこともあったしなぁ。
こういうのやられたら、どれだけループさせようと比較の意味が殆ど無くなる(w
プログラムの規模が大きくなるほど、ループ内の処理をいかに簡潔に書くかで速度が変わってくるから、
本当に速さにこだわるなら、単純なfor文の比較よりも腕のいいプログラマを雇った方がよっぽどあてになる。 じゃあ、腕利きを雇いにくい昨今は
できるだけ無駄に遅い言語は避けないとな どんなに良い言語を使っても、作るやつがクソなら出来るプログラムもクソだぜ。 それで糞に制約を与えやすい言語が企業に好まれる訳だな
問題なのはプロマネが糞だった場合だが Perl VS PHPなら分かるけどRudyって
格闘場でうごくせきぞうに囲まれてるスライムだな そんなに強いんなら早くPHP淘汰してくれよ
誰も好きでPHP使ってる訳じゃねえんだ 俺は島根出身だからrubyに一票
rubyはphpのように関数の中に関数が入れ子になりにくく
ワンライナーで関数が複数定義されてても
何の処理をしてるのか一目でわかる なんだかんだいっても
PHP使いはrailsの影響を受けまくりで
railsに似たフレームワークが乱立してるけど
railsを超える、または同等のフレームワークがPHPでは作れない
その辺りで言語レベルで優秀かどうかの証明がされていると思う 言語選択する一番の理由は食えるか食えないかで
いくら優秀な言語でも食えなければ
使いたくても、使えない ここでいう食えるか食えないかというのは
その言語でのWEB制作の案件が多いかどうかってことだからね rubyがphpと同じほどWEB制作案件があって
レンサバ環境も整備されてるなら
それは間違いなくrubyを使うよ 逆に言えばRuby on RailsがなかったらWEBサイト制作であえてRubyを選ばなければならない理由がないということ。
Ruby on Railsは、ここ最近評判を下げた。
http://arton.no-ip.info/diary/20080104.html#p01
>でも、それがRailsが吹き溜まってる原因のひとつだぜ。日本人の開発者どもが、こういった重要なパッチ全般を無視するってことだ。やつらはすげぇいいやつらなんだが、しろーとくせぇんだよな。
Ruby界隈の明るいニュースとしては、Ruby1.9でRoRが高速になるか期待というところか? PerlはCPANという資産価値も考慮すべき?
はてなやLivedoor、mixiはPerlを使っている。
枯れた技術の水平思考として、Perlはこれからも続くだろう。
http://d.hatena.ne.jp/keyword/%B8%CF%A4%EC%A4%BF%B5%BB%BD%D1%A4%CE%BF%E5%CA%BF%BB%D7%B9%CD
新たにやるならPython>>>Perlがオススメか?
Python→Google、Microsoft(IronPython)で採用されてる。 CPANで使うのは10個ぐらい。
それくらいなら他の言語でも代替方法がある。
いくら多くてもなぁ。 高卒年収300万弱レベルがダンピングしてる現状じゃPHPは厳しいと思う。
とはいえPerl、Python、Rubyは少なくとも日本じゃ蚊帳の外だしね。
やはりWeb系でまともなに稼げるのはJavaぐらいか。 javaで稼げるってよくきくけどみんなapache+tomcat+jdk+linuxのなんかで
開発してるの?結構敷居たかいべ 逆の立場でいえば、Javaで開発させると
高くつくんだよね。 敷居が高いからこそだね。企業は安心のためなら金払いもいいし。
PHP使える優秀な技術者もたくさんいるけどやはり地雷率が圧倒的に高い。
これも敷居が低いからこそなんだろうけど。 Javaの敷居の高さって、
言語自体の難しさとかではなく、
客が運用環境を用意できるかどうかの敷居だろうね。
PHPでフレームワークを使って開発しているのなら、
Javaでも同じように開発できるし。 tomcatが難しいというより、
tomcatを含めたシステム全体を
保守するのが難しい。 いや、いいんじゃね
2chで言われてるほど悪くはない
.net使うと開発超楽だし Javaはチンポーネント多すぎて組み合わせあーだこーだするのがめんどい Ruby1.9 や Rubinius は MRI と比べて本当に速いのか
http://d.hatena.ne.jp/kwatch/20080304/1204646782
絶望した! Rubinius のあまりの遅さに絶望した!
また Ruby1.9 も、Ruby1.8 より遅くなっている。
eRuby ではどうしても eval() が絡むからしかたないんだけど、
とにかく Ruby1.9 になればなんでもかんでも速くなるというのは間違いであると断言できる。
絶望した! eval ないのにひとケタ遅い Rubinius に絶望した!
また eval がなくても、Ruby1.9 は Ruby1.8 と大して変わらないことがわかる。
結局、Ruby1.9 や Rubinius で速くなるのはバイトコードの実行部分だけであり、
String#<< のような built-in method の実行が速くなるわけではない。
fibonacchi sequence のベンチマークが速いのは built-in method の呼び出しがない、
純粋にバイトコードの実行だけで済むベンチマークだからである。 PHPも単純にループするだけのプログラムなら、PHP5が早いんだけど、mod_phpを通してabでベンチマーク取ると、PHP5はフットプリントが大きい分、PHP4の方がさばけるリクエストは多いんだよね。 俺に金をもたらしてくれれば、RubyでもPHPでも何でもいい
まずは金だ、金持って来い!!! Rubyは書籍や情報が少ないという面でPHPのほうが良い。
またRubyは仕様がころころ変わる。
Rubyみたいに使われていないのはざっくり切って前に進んでいる、
古い言語はレガシー引きずっているという批判もあるが
それだけプログラマーの数も多く、いろいろ使われてきた歴史があるからさ。
使っていたコマンドなくなりましたよ?といわれても困るだろうし。 PHPも3,4,5でメチャクチャ変わってるジャン。 ポリシー無くあれほど仕様が変わる言語はPHPぐらいしか知らない。 php4の経緯は酷いもんだったな
アップデートしたら全phpファイル再確認と再テストの悪夢、
アップデートしなければエクスプロイトが出回ってるなかガクブル
php5以降はまともな方かな。
ruby1.8未満/ruby1.9開発版現状よりはマシだと思うよ PHPは6でgoto導入ですよ。
楽しみですねー。 Matzの会社を財務分析してみたんだが。
http://d.hatena.ne.jp/AntiSeptic/20080704/p1
などと思わせぶりな言い方をするものだから覗いてみりゃ、
なんて事無い田舎の零細企業の財務諸表であって、面白くもなーんともなかったわけだ。
それにしても、この程度の収益で2007年度って、
あの会社にとっては多分空前絶後の景気のいい年だったはずだの
Rubyとゆー「鉱脈」があるだの言っているのは何なのだ。
Geekのヨタ話というのは、いつもこんなしょぼいスケールで行われているのか?
あそこの技術者の平均レベルは、他の普通の会社よりはずっと高いと思うって、
これじゃあ、技術なんてIT企業の収益とは何の関係も無いと証明しているようなもんじゃねえか。
そもそも、この会社が何をやっているのかがHPを見た限りではよく分からん。
要は受託開発だろ労働力を人月で売ってるだけだろマーケ屋がこねくりあげた横文字得意げに使ってなに悦に入ってやがんだコラ。
更には製品・サービス部門まであって、なにやら参考価格が書いてあるところを見ると、
多分にパッケージっぽい印象を受けるが、それでいて全体の粗利率が26%程度ではどうしようもないだろ。
あそこに入りたい人は、損益計算書も注意して見ておくといい。まぁこれはどんな会社でも同じだけど、
ここを見るといろんなことが見えて来る。株価指標を計算してみるのもいい(非公開会社でもね)。 ↑このコピペいろんなところに貼ってる奴なんなの?きめえ Matzの日記初めて読んだ
www.rubyist.net は不正なセキュリティ証明書を使用しています。
発行者の証明書が信頼されていないためこの証明書は信頼されません。
この証明書の有効期限は 06.11.7 10:07 AM に切れています。
(エラーコード: sec_error_untrusted_issuer)
>>125
まさかw
世界中で使われているPythonに失礼だよ
Rubyなんて国内で少し使われている程度 http://pc11.2ch.net/test/read.cgi/tech/1180713251/344-
344 :デフォルトの名無しさん:2008/07/18(金) 00:56:41
>>334
同意。
PerlのEncodeは終わってる。
言っておくが、自分には使える。
Perl好きだし、Encodeモジュールもわかっているつもり。
ただ、そこまでPerlにはまっていない周りには使えないし、わかってもらえない。
これが致命的。
(よくはまるのは、UTF-8フラグのついた文字列と
バイト列としての UTF-8文字列の違いとかのあたり)
それに、ソースコードを UTF-8 で書くと、システムがローカルエンコーディングの場合
ファイルを開いたりするのさえ面倒。
Unicode がらみのスクリプトを書くたびに、
sub e { Encode::encode('cp932', $_[0]) }
sub d { Encode::decode('cp932', $_[0]) }
sub E { map { Encode::encode('cp932', $_) } @_ }
sub D { map { Encode::decode('cp932', $_) } @_ }
↑こんなのを上に貼って、
open IN, e"日本語.txt";
とか書いたり、デバッグする時に
b 30 ($str eq d"日本語")
とかやったりしてるけど、正直言って超バッドノウハウ。
人が見てもやっぱりわからないし。 フレームワーク祭りが終われば、rubyの居場所がどこか気付くはずだよw >>126
アホか。
使われてるかどうかを判断基準にしたら、
Rubyの相手なんて居なくなってしまうだろ。 wikiの比較サイトがあるのだが・・
言語別のwiki数みたいなリストはないんだけど、主な言語を検索して調べてみた
PHP 27
Java 20
Perl 10
C# 8
Python 7
ASP 4
Ruby 2
実感に近い感じかな。
■ このスレッドは過去ログ倉庫に格納されています