*

Java/PHP/Perl/Ruby/Python 主要Web系言語徹底比較

公開日: : 最終更新日:2018/06/21 IT業界の実態, WEB全般, 講義 , ,

本日はWeb系で使われているプログラミング言語の比較をしてみようと思います。

Web系で使われているプログラミング言語といっても幅広いですが、とりあえずはよく取り上げられるところでJava/PHP/Ruby/Perl/Python)を比較してみようと思います。

ちなみに私の開発経験ですが、
PHP ・・ 一番長いです。CMS、フレームワークはWordPress, ECCUBE,CakePHP,Laravelなど
Java  ・・ 初めてやったのは3年ぐらい前ですが、正味でいうと1年ぐらい。生サーブレットをちょこっとやった以外はずっとJavaEEです。
Perl ・・ これまた3年ぐらい前に初めてやりました。一時期仕事でメインの言語だったので1年半ぐらい書いてましたね。フレームワークは     CGI::Application
Ruby ・・実務での経験はありません。独学で簡単なクローラーのプログラムを作ったのとRailsで小さなアプリを作ったぐらい。
Python ・・講師の仕事をやる予定で、簡単なスクレイピングと機械学習の初歩はちょこっと勉強しました。

番外

Go言語・・仕事でバッチを書きました。全然情報がないのと静的言語、癖も独特だったんで最初ビビりましたが、Javaの時の経験もありなんとかプロジェクトは無事終了。

まず言語の比較基準ですが、私は下記3点で5段階評価+コメントをしていこうと思います。

  • 学習難易度
  • 求人数
  • 将来性

Java

  • 学習難易度 4~5 (初心者には激ムズ)
  • 求人数 5 (全言語中でもトップグループ)
  • 将来性 3 (勢いはないですが、当分トップグループでしょう)

Webに限らずあらゆるプログラミング言語のなかでも最もメジャーな部類に入ります。Web系でもよく使われていますが、「Web専用」の言語というわけではありません。

いまではWeb以外にAndroidなどでも使われています。

Web系でいうとどちらかというと大規模な企業用のシステムなどに使われることが多いです。

仕事の面でいえばとにかく求人が多いのでしっかりとマスターしておけば仕事に困ることはそれほどないでしょう。

ネットでは「もうオワコンだ」などという方がいますが、あと10年ぐらいは変動はないと思います。現時点でこれだけ使われているのでそれがドラスティックに変わることはあまりないでしょう。

ちなみに、独学でプログラミングをこれから始めようという方はやってはいけません(汗)独学の場合95%以上の方は挫折すると思います。

逆に学校や企業などで長期的なトレーニングを受けられるのであればやっておいたほうが良いです。

プログラミング言語としてのしきたりやルールを比較的しっかり守っている言語ですので、いわゆる正しいプログラミングの作法を身につけることができます。

逆にPHPなどに比べると同じ事を実行させるにもたくさんコードを書かなくてはいけないですし、いい加減なコードを書くとすぐにエラーで落ちます。

PHP

  • 学習難易度 2~4 (とにかく初心者にやさしい)
  • 求人数 4 (トップグループの中の1つ)
  • 将来性 3 (まだまだ問題なしかと・・)

何回も言っていますが、初心者にとっつきやすく、学習難易度が低いのが特徴です。

学習難易度といっても大きく分けると

  • 言語そのものの習得が簡単
  • よく使われており情報がでてきやすい

の2要素が考えられます。

例えばJavaはシュアの高い言語ですので情報はでてくるのですが、言語自体は簡単ではありません。それと比べるとPHPは情報も出てきやすいですし、言語自体もそれほど難しくありません。初心者用の書籍も大量に出版されています。

繰り返しになりますが、

  • 学習環境があまりよくない(独学中心)
  • プログラミング言語自体初めて
  • 手っ取り早く身につけたい

といった条件がそろった場合、一番いい選択肢では・・と個人的には思います。

仕事も多いので、求人にあぶれることもそれほどないでしょう。

ただし、言語的な部分で問題もいろいろと多いため、いわゆる熟練のプログラマの中にはPHPを嫌う方は少なくありません。

以前も、「PHPのメリット・デメリット」で書きましたが、自由度が高すぎるゆえに、プログラミング言語の作法を無視した部分が若干あります。

Perl

  • 学習難易度 3~4 (PHPよりはムズイ)
  • 求人数 2~3 (減少気味)
  • 将来性 1~2 (キツイ・・)

Linuxにほぼ標準でインストールされている言語で、もともとはテキストの置換処理などに使われていたようです。一般的にはCGIで動くWEBアプリに使われることが多いですが、それ以外でもいろいろな用途があります。

2000年台の前半ごろまではWEB系でトップだったようですが、現在ではPHPにその座を奪われています。

個人的に一番最初にPerlのソースを見たときにはその汚さに驚きました。ネットの掲示板のサンプルソースなどはめちゃくちゃ汚く、ほとんど「暗号解読」の領域です。

ちなみにフレームワークを使えば他の言語と同じように読みやすいコードが書けます。歴史もありCPAN(Perlで使える便利なライブラリ)などもあるため、ある程度習熟した方がそのまま使うにはよい選択肢でしょう。

ただし初心者にとってはPHPより敷居が高いです。

環境を構築することもいろいろと面倒くさいのと(なかなか動かない・・)言語的にはリファレンスの概念が初心者殺しです。情報もどちらかというと古いものが多く、PHPほど多くないのが苦しいところです。

求人数が減少傾向にあり、今後拡大する見込みもそれほどないのでそういった面でもWEB系の言語として新しく覚えるメリットはあまりないかもしれません。

逆にテキスト置換などに関してはノウハウの蓄積がいろいろとある分、おすすめです。サーバーエンジニアの方などは知っておくとログのまとめなどにいいかと思います。

おすすめ書籍

もっと自在にサーバを使い倒す 業務に役立つPerl 

以前は1年半ぐらい仕事で毎日書いてました。

Ruby

  • 学習難易度 3~4 (WebはほぼRails一択なのでちょいムズ)
  • 求人数 3 (増えているがPHPに比べるとまだ劣る)
  • 将来性 4 (10年後PHPといれかわっているかも)

まつもとひろゆき氏が開発したオブジェクト指向型の言語で国内では人気があります。

今ではRubyの求人数はそれほど多いとは言えませんが、新しい技術などでもRubyを採用しているものなどがいろいろとあり、これからのWeb業界では主力となっていくのではないでしょうか。

RubyとPHPはWeb系のプログラミング言語で主に小規模~中規模な開発でよく使われることから比較されることが多いですね。

私は初心者にプログラミング言語をすすめる場合は主に学習コスト(簡単さ&情報量)の点からPHPかRubyを進めています。

どちらかを選べと言われたらとっつきやすさでいうとPHPにやや分がありますが、生産性や将来性を考えるとややRubyに分があると思います。

まず初期の学習コストにおいてはPHPに軍配が上がるでしょう。

HTMLの中に組み込んで、表示させられるという手軽さからプログラミング経験ゼロの初学者にはPHPがおすすめです。XAMPPをインストールし、プログラミングをはじめて1~2時間以内にブラウザに表示させることができます。

RubyだとWebアプリを作る場合、Rails以外の情報がないため、ほぼRails一択になります。Railsは環境構築がXAMPPのインストールほど簡単ではありませんし、完全な独学者には厳しいと思われます。

しかしながらRailsを使いこなした場合、様々な機能が搭載されていることから生産性の高さは魅力的です。

情報量も単独のフレームワークとしてはおそらくトップでしょう。PHPのフレームワークのCakeもそこそこありますがRailsに比べると比較的になりません。

そして言語的な将来性でいうとややRubyに分があります。いろいろなアプリがRubyで使われており、今後もこの勢い続くのではないでしょうか。

PHP vs Rubyはよくトピックとしてもあげられるのでもっと専門的に調べたい方は下記のようなリンクを参考にしてみてください。

http://techracho.bpsinc.jp/piichan1031/2013_05_13/8578

Python

  • 学習難易度 4~5 (情報量の少なさを考慮してこの数字)
    →2017年ごろからは情報が増えたので2〜3ぐらいかと
  • 求人数 1~2 (一般的な求人はまだまだ少ないでしょう)
    →2017年ごろから激増。2〜3ぐらい。ただしちょっと特殊なもの(プログラミング以外の知識を使う者)多し。
  • 将来性 ? (現時点だとわかりません・・)
    →2017年ごろから急激に増えています。将来性4〜5(2017年以降の勢いが継続すれば。)

コードを書いたことないので周辺情報的な部分のみにふれます。

他の言語に比べると日本国内での情報は比較的少ないです。

書籍などみると少しずつ出版されてきているようですが、全体的な情報量はこれまでに挙げた言語と比べるとワンランク以上下がります。

言語的な魅力はあるのかもしれませんが、一般的に独学中心の初心者が学習するには厳しいでしょう。特別なこだわりがある方向けですね。

追記

この記事を書いたのが2016年2月なのですが、2018年2月現在、機械学習などの影響かPythonの書籍や情報量が非常に伸びています。

今ですとPerlを超え、Rubyに迫る勢いではないかなと思いますね・・・・私もざっとやって見ましたが、非常にわかりやすく一つのプログラミング言語をある程度やった方であればマスターできるのではないかなと思います。

特に数学系の処理に強く、統計などのロジックを実装したい方にお勧めです。

Pythonの年収が高いのですが、これはPythonを使った仕事そのものが高度な仕事であることが多く、プログラミング以外の部分の専門性が要求されるからだと思います。

まとめ

私の知っている範囲内での情報をまとめてみました。

個人的に学習環境が良くない方はPHPから始めてその他の言語にいかれることをお勧めします。そして当たり前ですがどの言語にもいい悪いがあります。

学習コスト、情報量、生産性、保守性、将来性、セキュリティ、適した開発規模、などなど決めるファクターは無数にあります。

プログラミング言語に限った話ではありませんが、前提条件を決めずに優劣を論じるような議論は不毛です。どういった特徴があるのか、どういうときに使えるのか、ということを理解しておくことが大切です。

参考リンク

プログラミング言語の比較などはよく話題になるネタだけにいろんなサイトでトピックとして扱われていますね。私がみて面白かったものをチョイスしていきます。

プログラミング言語の擬人化

様々なプログラミング言語を人に例えています。単純にネタとして面白い(笑)

http://next.rikunabi.com/tech_souken/entry/ct_s03600p002412
http://next.rikunabi.com/tech_souken/entry/ct_s03600p002477

求人情報・シェアなど

http://hrog.net/2015102624991.html
http://news.mynavi.jp/news/2015/04/16/060/

その他WEB系の言語のまとめなど

http://imitsu.jp/matome/8424402122931196
https://toiroha.jp/article/detail/32380

関連記事

よく使う処理をまとめよう その2 (関数)

こんにちは。松本です。 最近の私の使命はダイエットです(爆)。 ダイエットはいろいろな方

記事を読む

WEBエンジニアだったら知っておきたいWEB開発ツール一覧

今回は仕事で使っているソフト、ツールやWEBサービスなんかを紹介していこうと思います。 それほ

記事を読む

作業が遅くてイライラしている方必見!作業スピードを改善するネタ・ツールなど

エンジニアとして仕事をしていますと、「ある機能を実装する最適な方法(設計やプログラムの組み方全般)を

記事を読む

初心者が読みやすいコードを書くときに気をつけたい4つのポイント

本日のお題は、「読みやすいコードの書き方」についてです。 プログラミングをやりたての頃は機能を

記事を読む

エンジニアが給料を上げる方法を真面目に考えて見ました。

本日はエンジニアと給料の話題について触れて行こうと思います。 エンジニアといいますか、社会人と

記事を読む

現役講師が教えるプログラミングスクールの選び方

私は新卒でこの業界に入ったわけではないのでプログラムを覚えるのに一時期プログラミングスクールに通って

記事を読む

IT業界はなぜうつになる人が多いのか?

こんばんは。こんな時間(深夜2時半)になってもねれない松本です。別になにかあったわけではないのですが

記事を読む

プログラミングや就職以前に大切な情報リテラシーについて

プログラミングの学習や就職活動をしていると本当に様々な情報が出てきます。 例えば以下のようなこ

記事を読む

ガチンコ塾、人気記事ベスト5

このブログも開設して約半年たちましたね。 思った以上にたくさんの方に読んでもらえてうれしいです

記事を読む

無料プログラミングスクールのメリット・デメリット

一般的にプログラミングのスクールというのは高額です。 30万以上するような講座が普通なので、ぽ

記事を読む

Comment

  1. SI屋 より:

    PHP が簡単っていうのがちょっと疑問です。

    すごくお手軽ですがちょっと規模が大きくなる崩壊しやすいので、

    始めるのはお手軽だが言語仕様的には何回でいざ実務では難しいが正しきと思います。

    私は会社でPHP から実務が始まりましたが、研修時と違い、非常に保守運用改修が大変だったのを覚えています。

    Javaは最初取っつきにくかったのですが、実際に運用メンバーとしてアサインしたときは書きやすく、非常に簡単に改修できました。

    • matsumoto より:

      SI屋さん

      初めまして松本です。
      コメントありがとうございます。

      >始めるのはお手軽だが言語仕様的には何回でいざ実務では難しいが正しきと思います。
      >私は会社でPHP から実務が始まりましたが、研修時と違い、非常に保守運用改修が大変だったのを覚えています。

      おっしゃる通り、現実のシステムでのシステムの保守運用回収ですとPHPは簡単でないことは多いとおもいます。

      簡単というのはあくまで「プログラムを書いたことのない初心者」が始めるのにとっかかりが良いということで、
      SI屋さんの「すごくお手軽ですが」という部分に相当します。

      実務ですと大規模になる程PHP自体は保守性が低いため、業務システムなどでは敬遠されることがあると聞きます。

      >Javaは最初取っつきにくかったのですが、実際に運用メンバーとしてアサインしたときは書きやすく、非常に簡単に改修できました。

      Javaは未経験者&独学者の学習コストは高いですが(こちらが「最初とっつきにくかったのですが」に相当すると思われます。)、
      保守性は高いと思いますね。

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

無料PHPスクール
自社開発>客先常駐である本当の理由

このブログでも何回か取り上げていますが、ITエンジニアの働き方としては

エンジニアにとって必要なコミュニケーション能力とは

気がついたらもう3月下旬になっていますね・・ 年末年始忙しかった

エンジニアを採用する上で大事なこと

本日はエンジニアの採用について書きたいと思います。最近少し採用に絡んだ

エンジニアが給料を上げる方法を真面目に考えて見ました。

本日はエンジニアと給料の話題について触れて行こうと思います。 エ

エンジニアの「スキル」とはなんぞや

給与が低いことに悩んでるエンジニアへのアドバイスをツイートで見たところ

→もっと見る

  • follow us in feedly
PAGE TOP ↑