ZAPAnet総合情報局 > ZAPAブログ2.0 > 初めて学ぶWebプログラミング言語は何が良い?

初めて学ぶWebプログラミング言語は何が良い?

2007年05月01日 プログラミングTIPS
プログラマーの方に質問です。 受刑者にプログラミング言語を覚えさせるとしたらどの言語が最適だと思いますか? 理由も含めてお答えいただけたらと存じます.. - 人力検索はてな
↓↓↓
民間刑務所で Ruby によるソフトウェア開発者を養成、アウトソーシング業務を

上の質問と、下の民間刑務所での関連性があるかどうかはわかりませんが、美祢社会復帰促進センター(関連:刑務所誘致 美祢市に決定)ではRubyが採用されました。

今回は、初めてWebプログラミングを学ぶには、どのプログラミング言語が良いのかについて考えてみたいと思います。

公開APIを利用したサンプルサイトを作っていくよ」の管理人宛に、
初心者の方がなにかプログラムを勉強しようとするときに何が良いと思われますか。
とか、
これからプログラミングを始めるにはどのプログラミング言語を勉強したら良いですか?
とメールが来たりします。

「えっ、そんなこと聞かれても…」
と思ったりもしますが、一応考えてメールを返しています。

自分がPHPを選んだ理由とその経緯

個人的には、PHPでいろいろサンプルサイトを作っていますが、PHPを選んだのにはいくつか理由があります。
PHPを選択するに至るまでの経緯を書いてみます。
1.Webサービスとして、サーバープログラミングに興味を持った。(2年ちょっと前)
2.Webプログラミングと言えば、当時はCGI。拡張子.cgiはPerlだった。日本で公開されているサンプルプログラムもほとんどPerlだった。
3.Perlを少し勉強してみた。
4.Perlは技巧的なプログラミングが多く、他人のソースコードを読むのが難解に感じた。というか他人のソースを読む気にならなかった。そしてPerlプログラムの実行速度が遅いサーバーがほとんどだった。(現在では、Perlの処理速度を上げる方法はいくつもある)
5.他の言語を調べてみた。JAVAはサーバーの都合上、使えないところが多かった。
6.そして、PHP。PHPはPerl程技巧的なプログラミングが無く、他人のソースも読みやすく、何よりもC言語の知識さえあれば、習得が簡単だった!
7.むしろC言語よりも配列や文字列などの扱いが簡単で、オブジェクト指向プログラミングもできて、実行速度も速かったのでPHPに決定した!
8.その後、PHP5になって便利な関数が多数追加され、処理速度もPHP用アクセラレータを導入すれば格段に速くなることがわかり、現在でもPHP(PHP5)を利用中。
こんな感じの流れで、現在でもPHP5で、公開APIを利用したサンプルサイトを作っていくよのサンプルプログラムなどを作っています。
PHPについて誰かに教えてもらったわけではなく、自分で適当に勉強して適当に作っています。
C言語についてはすでに知っていたので、習得のしやすさもポイントでした。

今オススメなWebプログラミング言語は何か?

サーバープログラミングに興味を持った2年ちょっと前に、今みたいにRubyやPythonが普及していれば、PHPを選択していたかどうかはわかりません。
それでも、PHPがC言語に一番近いため、結局はPHPを選択する可能性は高いと思います。
個人的にC言語はある程度知っていて、Java、Delphi、fortranなどは微妙にかじったりしていた程度だったので、PHPがC言語に似ているというのはポイントが高かったと思います。

参考までに、言語の比較サイトを載せておきます。
Perl, Python, Ruby の比較
いやなブログ - 配列操作の比較表: Ruby, Python, JavaScript, Perl, C++
あーありがち - Ruby と PHP の配列操作比較
odz buffer - 「Perl, Python, Ruby の比較」があまりにもいい加減な件
python vs ruby vs perl vs php - よくきたblog
別に、「どの言語が良くて、どの言語が悪い」と言ったわかりやすい大きな問題はないので、好き嫌いで選んでしまってもあまり問題は無いかもしれません。

他人に勧めるのに良いWebプログラミング言語は?

さて、自分はPHPを選択したわけですが、他人に勧めるときには、もう少し深く考えてから答えています。
自分と同じようにC言語について知っているかもわかりませんし、サーバー側でその言語を利用できるかどうかもわからないからです。

参考までに、この前メールで答えた内容を載せてみます。
質問:個人的にはpythonやrubyが騒がれているのでいいのかなと思いつつ、phpのほうがサンプルプログラムが多いのでいいのかなと良くわからないことを考えております。


回答:pythonかrubyかphpで比較するとなると、どれもWebサーバー上で動くスクリプト言語としては同じです。
ですが、pythonとrubyが本格的なオブジェクト指向言語であるのに対し、phpは少し違います。
またphp4とphp5のバージョンの違いによっても少し扱いが違います。
phpはC言語と比較的似ていて、取っつきやすい言語だと思います。
確かに、サンプルの多さでいけば、断然phpだと思います。

日本でもっとサンプルの多い言語としてはperlがありますが、
今から学ぶことを考えるとperlはあまりおすすめできないかもしれません。
(プログラムの書き方に個人差が現れすぎて、教える方も学ぶ方も大変だと思います)

少し頑張って、オブジェクト指向言語を勉強しようと思うのならpythonかruby。
個人的には、日本人の「まつもとゆきひろ」さんが開発したということで、rubyが一番良いように思います。
オブジェクト指向を理解できれば、大抵の言語は理解できるようになります。
このように答えていました。
自分はPHPを使っていながらも、これからプログラミングを勉強するのであれば、Rubyが向いているんじゃないかなと思っています。
刑務作業でRubyを選択したのと、同じような結果になりました。

勉強をする上では「perlはあまりおすすめできない」と言ってしまいましたが、2ちゃんねる、mixi、livedoorなど日本有数のWebサイトのメイン言語にPerlが使われていることを考えると、Perlでも良いのかもしれません。

結局、好き嫌いで選んでも何も問題ないように思います。
一つの言語を学んでしまえば、他の言語にも移行しやすいですからね。

個人的にもiアプリプログラミングActionScript3.0プログラミングApolloプログラミングなどにも手を出したりしています。
顔にエフェクトをかけてプライバシーを守るWebサービスの作り方では、久しぶりにPerlも触ってみました。

個人的な勉強で、かつある程度時間があるのであれば、あれこれ悩む前に、適当に何かしらの言語を勉強し始めるのが一番手っ取り早いと思います。
複数学ぶことも価値のあることですし、勉強してみて初めて気付く問題もありますからね。


結論:悩む前に学べ!



追記:実際に買って読んだPHPの参考書レビュー

関連リンク

あるWebプログラマーの作業環境――豪傑の三種の神器
公開APIに興味を持っている人はどれくらいいるのか?
寿司作りに学ぶWebアプリケーション開発
PHP5.2.0とeAcceleratorのインストールメモ
XCacheのインストールとphp用アクセラレータ比較
Zend Optimizerインストールメモ
PEARのアップグレードメモ
PDO、PEAR::DB、MySQL関数の速度比較
Webサイトのスクリーンショットを撮るサービスの作り方
はじめてのActionScript3.0プログラミング
ActionScript3.0の速さを体感してみよう!
Flex2,ActionScript3.0が優れている9の理由とAjaxとの差
なぜFlashは検索エンジンにひっかかりにくいのか?-SEO対策-
FLASHだって検索結果1位を目指せます!-SEO実験結果-
ニコニコ動画みたいなものを作ってみるテストと問題点
はじめてのApolloプログラミング
Apolloでニコニコ動画みたいなアプリを作ってみるテスト
顔にエフェクトをかけてプライバシーを守るWebサービスの作り方
作ろう!iアプリ