Ruby VS PHP 仁義なき戦い
まずはこれをお読みください。
ttp://www.rubyist.net/~matz/20080126.html
Webアプリケーションを作るには、結局どっちがいいんでしょうか。
初心者はどっちを選べばよいのでしょうか。 matzがRailsの人気が出たのを機にRubyをWebアプリでも使おうなんて考えるから悪い。
RubyはRailsなしではウェブアプリには使えない。
PHPはウェブ以外に使えない。
それだけ。 また、matzのブログがあらされる・・・
Ruby厨ってアフォだろw ぶっちゃけ、Rubyが一方的にけんか吹っかけてるだけで・・・ Matzがしょっちゅう言及するのはRubyの威光にとってPHPが不可欠だという証左
もともとVS関係にはないと思う どっちも使えば万事OK
追加でLispとHaskellも遊んどくとOK 初心者はPHPで脆弱なウェブアプリをどんどん量産すべし
ttp://anond.hatelabo.jp/20080130215148 本屋でHaskellの本を立ち読みしてきた。
PHPにはないモナドという仕組みがあった。
関数の入力と出力をつなげて、スマートな処理を実行するものらしい。
チュートリアルに書いてあるプログラムなら俺でも理解できそうだった。
Haskellを使ってますって言えるように勉強したい。
でもHaskell使ってWEBサイト作成するかどうか分からん。 無料でHaskellを勉強してみたい。
(本は図書館で借りて、スキャナーで取り込んで済ませる)
Haskellのいいサイトあったら教えて!
じゃ、まず俺から。
http://itpro.nikkeibp.co.jp/article/COLUMN/20060801/244812/
本物のプログラマはHaskellを使う
第1回 関数型プログラミングの世界へようこそ
てか、まずHaskellの開発/実行環境を揃えねばならんな! よし!
今から始めて、何分でHello, Worldの表示までたどり着けるか?時間を計ってみよう
ヨーイ、ドン!
http://pc11.2ch.net/test/read.cgi/tech/1193743693/367
367 :デフォルトの名無しさん:2007/12/17(月) 09:27:14
WindowsでGHCなんか使うやつはバカです
とりあえずWindows XPにHaskellの開発環境をインストールしたいんだけど、GHCは避けた方がいいの? http://itpro.nikkeibp.co.jp/article/COLUMN/20060801/244812/
もう一つの処理系であるHugsは,Cで書かれたインタプリタだけの処理系なので,そんなに気構えなくても自分でソースからビルドすることもできます(いくつかのツールを使用する場合はビルドにGHCが必要になります)。
注意点は,最新版のバイナリでは,Windows版のインストーラがmsiパッケージではなくなっていることです。
アンインストーラの定義がXML(eXtensible Markup Language)で書かれているため,Windows XPより前のWindowsでは素直にアンインストールできなくなっています。
とりあえずHugsというのにしとくか http://d.hatena.ne.jp/hake/20060417/p1
対話モード
WinHugsをインストールして、WinHugsというツールを起動させた。
WinHugsの画面(コマンドプロンプトみたいなCUIの画面)で、
putStrLn "Hello, World!"
というHaskellのプログラム文を入力してエンターキーを押したら、
Hello, World!
と表示された! 11 :nobodyさん:2008/02/01(金) 21:50:04 ID:???
↓
16 :nobodyさん:2008/02/01(金) 22:19:13 ID:???
ラップタイムは、29分9秒!
30分あれば、とりあえず今日からアナタもHaskellプログラマーになれる!(・∀・) あとはLispか。
ずっと前にEmacsの練習しようと思って、Windows版EmacsであるMeadow3をインストール済みだった。
(全然使ってなかったけどw)
Meadow3を使えば簡単なLispコードを実行できるかな? Meadowの使い方が分からん…><
どうやってLispを実行すんのよ?
Lispのインタプリタが付いてんでしょ?
Emacsってスゲー使いづらいな。 Emacsってゴミだな
使いづらいものを使えるようになると、能力が高い人という勘違いをする人がいるのか?
難しいことができる=頭がいいという勘違いは、虚栄心・プライドを満たすためには使えるかもしれないが、俺に言わせればただのアホだ。
有限の人生を無駄にする必要はない。
現時点での評価は、LISPは糞。
もっと分かりやすく簡単に使えるツールがあれば、俺はそっちを選ぶ。 でけた!><
Meadowで
(print "Hello World!")
というLispのコードを入力して、Ctrl+Jを押したら実行された! 18 :nobodyさん:2008/02/01(金) 22:26:56 ID:???
↓
21 :nobodyさん:2008/02/01(金) 22:50:01 ID:???
ラップタイムは、23分5秒!
Meadowを入れてなかった場合は、多分30分以上かかってるな。
でもまあ一応30分あれば、とりあえず今日からアナタもLispプログラマーになれる!(・∀・)
Ctrl+JがLispインタプリタの実行みたいだったけど、これは以下を参考にした。
■[Meadow] Emacs Lisp の勉強
http://d.hatena.ne.jp/gan2/20070629/1183116417
emacslisp.pdf
http://www.okisoft.co.jp/esc/lecture/emacslisp.pdf
Life with Cygwin 10
http://www.okisoft.co.jp/esc/cygwin-10.html
Meadow Lisp 対話モード に一致する日本語のページ 約 300 件
=「対話モード」っていうキーワードがポイントだった。 そういうわけでHaskell、Lispはすぐに始められるよ。
(Hello World!の表示だけだけどw)
個人的には、Ruby VS PHPとかどうでもいい。
俺には関係ねえw
=勝手にやってろって感じ!? >>20
「奥が深い症候群」だなw
カスタマイズ性で手放せなくなってるだけの奴もいるから一概には言えないけど
>難しいことができる=頭がいいという勘違い
そう言う奴は確かにいるww
>有限の人生を無駄にする必要はない。
それは激しく同意。
lispをセットで糞にする必要は感じないけど >>24
Meadowの使い方をGoogleで検索してもすぐに分からなくて、ちょっとイライラしてしまいました。><
勢いでLISP=糞と言ってしまったが、ちょっと反省。m(_~_)m
すぐに使えない=着手の労力が大きいのは勘弁してくれ、と思ったわけですが、動いたら動いたでやっぱちょっと感動!(・∀・)
ポール・グレアムのコラムは面白いと思う。
…実は、Lispは一度はやってみたい言語だと思っていた。
うはwwww俺、ツンデレwwww 30分で始めるawk・・・いや何でもない。
awkはチョロっと使ったことある。
何かシェルみたいなもの(OSのオマケ)?と思ったけど、どういう時に便利なのかワカリマセン><
awkを拡張したものがPerlってことですか? readme.ja
↓
gawkは自由ソフトウェア(フリーソフトウェアです)。
gawk 3.1.5 の mbcs対応版Windows用バイナリです。
cygwinに付属のgawk 3.1.3がmbcs対応していないので(多分3.1.4でもしない)作りました。
VC++ 7.1 でコンパイルしています。
インストーラの類はありませんので、gawk.exeをパスのとおった場所に置けばそれで使用可能です。
特にDLLは必要ありません。 できた!
http://www.fukano.jp/study_of_awk/basic/basic03.htm
最初の AWK スクリプト
↓
どのプログラム言語でも初めに実行するのは「Hello World!!」を画面に出力することですね。この勉強会でも AWK スクリプトでこの画面表示(正確には標準出力)をしてみましょう。 ダウンロードした
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を含めたシステム全体を
保守するのが難しい。