エンジニアtype - エンジニアのシゴト人生を考えるWebマガジン

[特集:G-1グランプリ 1/3] スキな言語⇒PHP、キライな言語⇒PHP。理由は「あと一歩のところで悲しくなる」から

公開

 
bannar_VOL11.jpg


「将来に向けて習得しておくべき言語は何か?」

プログラミング、コーディングに携わる者なら、誰もが一度は気になって調べてみたことがある話題だ。ただ、どれが「習得しておくべき言語」なのかは、それぞれの主義主張、置かれている環境によって異なるし、人には好みというものがある。一方的に「この言語を学べ!」と言われ、「はい、そうですか」と習得できるものではない。

では、世の開発者に最も好まれている言語、嫌われている言語とは何なのだろう? それを明らかにするのが、この「G-1(プログラミング言語-1)グランプリ」だ。

「誰でもすぐ使えるPHPは、カオスなソースになりがち」

読者の投票に先立ち、5人の著名なPG、エンジニアを対象にアンケートを実施。Webプログラミングする上でスキな言語とキライな言語、およびその理由を教えてもらった。以下がその回答だ。

—————————————————————————-

fujikawa.jpg

マインドスコープ株式会社 代表取締役社長

@fshin2000 藤川真一氏(えふしん)

ベンチャーでWebの受託開発、動画CMSの開発責任者を経験した後、paperboy&co.へ。ショッピングモール「カラメル」のプロデューサーを務めるのかたわら、個人でモバツイッターを開発、運営。2010年に想創社(現・マインドスコープ)を設立し。個人ブログは「F’s Garage」


スキな言語 ⇒ Java

バーチャルマシンを使った高級言語でありながら、AndroidアプリからWebサーバ、ストリーミングサーバなど、PureJavaという考え方の元、全てがの単一の言語で書かれている統一感とダイナミックさが好きです。

また設計思想に、哲学とこだわりがある言語は好きです。(しかしながら、うちはベンチャーなので、Webサーバ用途でJavaは使いません)

キライな言語 ⇒ (特にナシ)

嫌いな言語はありませんが、学習が難しい、ややこしいフレームワークは嫌いです。いずれにせよ学習が難しいものは、どんなにはやっていても、人材の育成のコストなどを考えても使いたくありません。(この業界、たまに変なものが流行ります)

あと、SQLが書けない人が使うO/Rマッパーが嫌いです。Webアプリにおいても、SQLは適切なjoinができる程度は自分で書く方が良いと思います。パフォーマンスチューニングで困らないか心配です。

—————————————————————————-

yumoto.jpg

有限会社エフ・ケーコーポレーション システム部

@gothedistance 湯本堅隆氏(ござ先輩)

人気ブログ『GoTheDistance』管理人の”ござ先輩”として知られる、アルファブロガー。アイ・ティ・フロンティアにてJava・Flash/Flexのプログラマ・リーダー・PMを約5年、コンサルタントを1年半経験し、2009年、エフ・ケーコーポレーションに転職


スキな言語 ⇒ PHP

言語仕様がよく分からなかったり、エラーレベルがムダに厳密で本質的でないパラメーターチェックなどのコードが入ったりするのですが、CakePHPというフレームワークが好きでよく使っているのでPHPが好き、といったところです。一方、簡単に動くわりには挙動不振なところがあるので、変なエラーでトラブルが起きるのが難しいところでもあります。

Apacheモジュールとして実行できるメリットは大きく、コーポレートサイトやブログなどある意味「型が決まった」サイトを作るフレームワークも豊富です。車輪の再開発”をしなくてよいのもGoodです。ただ、Pythonを今かじっているのですが、標準ライブラリの豊富さ、実行速度、良い意味でコーディングスタイルがシンプルなことなどから、PHPよりも好きになりそうです。

キライな言語 ⇒ Java

アプリケーションサーバを別途用意する必要があること。デプロイやビルドの手順が煩雑なこと。対応しているレンタルサーバが少ないこと、などが理由です。

Web開発はサクサク感が大切なので、PHP/PythonなどのLL言語のほうが好きです。Javaでなければならない理由が個人的には無いです。言語そのものとしてはJavaは好きですし、一番長く付き合った言語の1つですけれど、Webアプリになるといろいろお作法が増えるのであんまり好きじゃないです。

—————————————————————————-

saito.jpg

カルチュア・コンビニエンス・クラブ株式会社

斉藤のり子さん(dropdb)

高校中退後、独学でHTMLを学び、システム開発会社に入社。それから4度の転職を経験し、カルチュア・コンビニエンス・クラブへ。家計簿SNSとして話題になった『散財.com』『うわさメーカー』など、ユニークなWebサービスを続々と生み出してきた


スキな言語 ⇒ PHP

ドキュメントも多いので誰もが入りやすく分かりやすい言語だと思います。テンプレートを使えば、プログラムが完全に理解できるわけじゃないデザイナーさんも、なんとなくソースが読めていじれるところがすばらしいです。

キライな言語 ⇒ PHP

誰もがちょっと勉強すれば分かるので、良くも悪くもカオスなソースになって保守が大変になる言語な気がします。

—————————————————————————-

yamashita.jpg

株式会社オンザボード  最高技術責任者

@xicholo 山下博巨氏(レッド)

流通・小売業向けシステム開発会社、エニグモを経て現職。東日本大震災を受け、エニグモ時代に携わっていた品物共有のサービスの仕組みを応用した個人間での支援物資提供サービス、『Toksy』をほぼ一人で開発


スキな言語 ⇒ Java

とにかく動作が早い。そして一度書けばWebアプリに限らず色々な環境で動作可能。ライブラリやドキュメント、実績もかなり充実。

Google App EngineやAWS Elastic Beanstalkなど、個人レベルでもインフラを容易に調達可能になってきたのも◎。古い言語だがまだまだ盛り上がってます。

キライな言語 ⇒ Ruby

滅び逝く言語。一部のギークが趣味で使っているだけ。

本気で大規模なWebサービスを作ろうと思っているプロならばRubyは選択しないはず。

—————————————————————————-

miyaguni.jpg

ディベロッパー

@gongoZ 宮國 渡氏(Wataru MIYAGUNI)

社会人三年目のDeveloper。Kinect センサーを用い、体の動きを利用してプログラムを入力する肉体言語『Tython』の開発者。2011年5月、Tythonをネット上に公開したところ、その独創性がTwitter上で話題に。個人ブログは「質のないDiary H」


スキな言語 ⇒ PHP

  1. Hypertext Preprocessor という名前だけあって、Web ページ(アプリ)作成に特化してる関数が多い
  2. (日本語含め)公式マニュアルの充実度が半端ない
  3. ひたすらいろんな機能を標準搭載させる富豪っぷり
  4. Testing Framework (PHPUnit) がまあまあ使いやすい(CUIはもちろん、ブラウザで確認もしやすい)
  5. BeHat や Silex など、Ruby (LL) 関連の使いやすそうなフレームワークを<del>パクる</del>インスパイアするくらい、使いやすさを求めてる貪欲さ



→総括すると「ちまたでは悲しい言語とされてるが、まあ便利っちゃー便利」


キライな言語 ⇒ PHP

  1. PHP を使おうとすると apache もついてきてめんどい。最終的に command not found: php が出てくる悲しさ
  2. array_rand() が value ではなく key を返してくるので、結果ダサくなる=>$array[array_rand($array)];
  3. 非破壊メソッドと破壊メソッドが同じ雰囲気の名前で混在してるので分かりづらい
  4. PHP manual の implode() で「歴史的な理由により、引数をどちらの順番でも受けつけることが可能です」って見たときPHPの歴史の悲しさを思い知った
  5. テンプレート言語として力を発揮するはずの PHPが貧弱なので、Smartyが登場しさらによく分からなくなってるところ
  6. LL を使ってPHPに移ると「こんなダサい書き方しないといけないのか・・」と悲しくなる
  7. 定数を定義せずに呼び出したとき、文字列(定数名)を返す仕様まじ困る



総括すると「あと一歩というところで悲しくなる」

では、あなたの意見を教えてください

ここまで多種多様、いろんな意見を見てきて、あなたはどう思っただろう?

自分の考える、「Webプログラミングをする上で、スキ/キライな言語」を、下の選択肢から選んで投票してほしい。

投票は終了しました。

結果は次ページへ>>>[特集:G-1グランプリ 2/3] 和田卓人が投票結果を分析!「主義が貫かれた言語は嫌われにくい」

[特集:G-1グランプリ 2/3] 和田卓人が投票結果を分析!「主義が貫かれた言語は嫌われにくい」
[特集:G-1グランプリ 3/3] プログラマーが実践すべきトレーニングのこと