1
/
5

PHPやJsと比較してJavaの欠点を考える

セールスフォース開発事業及び
エンジニアのキャリアアップ支援を行っております
株式会社CENTOです。

システム開発の技術は日々進化しています。

JavaなどのWeb系が業務システムの主流な言語でしたが、新しい言語も増えてきていて業務システムの世界はJava一強型から分散型にシフトしてきました。

言語選定の際は「とりあえずJava」が決まり文句でしたが、最近はC#、PHP、node.js、angular.js、Vue.js、Electronなどさまざま。

もちろんJavaの強さはいまだに健在ですが、今までのように「業務システムだから間髪入れずにJavaでしょう」とはならなくなっています。

その理由をJavaの欠点から考えてみます。

Javaの欠点:開発環境セットアッは時間がかかる



システム開発をするには開発環境のセットアップが必要不可欠。

エンジニアの皆さんの中には開発環境セットアップで苦労した方も多いはず。

特にJavaの開発環境はセットアップや利用にも時間がかかります。それはなぜでしょうか。

JavaはJDKやEclipseやNetBeans、Oracleのインストールが必要

Javaで有名な開発環境ツールと言えばEclipseとNetBeans。

単体でも優れた開発環境ツールですが、拡張機能なども用意されていてデバッグも容易にできてしまいます。

たいていのJava案件ではEclipseとNetBeansのどちらかが使われていることでしょう。

Javaを動かすためにはJDKインストールも必要。JDKがないとそもそもJavaが動いてくれないですからね。さらもJavaとセットで使われるデータベース、Oracleもインストールする必要があります。

少なくともこの3つはインストールが必要。

さらにはこれらが連携できるようにネットワークの設定も必要だったりします。EclipseからOracleを見に行けるようになど。このようにJavaの開発環境セットアップはとても時間がかかります。手順書がないとスムーズにできないほどです。

一方でPHPやJs。

これらの言語で開発する場合はXAMPPとVisual Studio CodeだけでOKです。

JDKのような重たいパッケージをインストールする必要もありません。

XAMPPにはLinuxもPHPもMySQLもまとめて入っているためXAMMPをインストールするだけで開発環境は出来上がり。

面倒なネットワーク設定なども不要。

またVisual Studio Codeは基本的にテキストエディタなのですぐにインストールできます。

PHPやJsに比べて、Javaの開発環境セットアップはなかなか骨が折れる作業です。

使っているときも時間がかかる

インストール後にいざ開発を始める段階でもJavaの環境は時間がかかりがちです。

というのもJavaの場合、ソースコードはJavaファイルに記述しますがJavaファイルに書くコードはあくまで人間が読めるソースコード。コンピュータは解読できません。

そのためコンピュータが読める言語にするためにコンパイルしてClassファイルを生成する必要があります。

コンパイル自体は開発環境ツールが行ってくれるのですがClassファイルを生成するため時間がかかる。Javaの言語特性上、開発中も1つ1つの作業に時間がかかってしまうという欠点があります。

Javaの欠点:本番環境のセットアップに神経を使う



Javaは本番環境で動作させるためにも十分に注意が必要な言語です。

PHPなどは開発環境で書いたソースコードをFTPなどでそのままサーバにアップロードしてしまえば動作するので簡単ですが、Javaはそうはいきません。

本番環境にJDKインストールやクラスファイルの配置などをする必要があります。

修正するときは再度Javaファイルを修正してコンパイルClassファイルをアップロードします。

一方でPHPやJsはどうでしょうか。ファイルをそのまま修正するだけでOKです。本番環境にアップロードするためにコンパイルなども必要ありません。

JavaはPHPやJsと比べて作業が多い点は否定できません。開発効率という面ではPHPやJsなどの方が圧倒的に優れています。

Javaの欠点:OracleからMySQLへ

Javaには相棒というべき、データベースがあります。それがOracleです。

たいていJava案件のデータベースにはOracleが採用されるのでJavaとOracleはセットのようなものです。

しかしながらOracleは有償で高額なので徐々にオープンソースのデータベースを使う企業が増えています。

例えばMySQLやPostgresSQLなど。

セキュリティ面から有償のデータベースを使っていた企業が多かったのですがオープンソースも進歩しているため昔と比べてセキュリティレベルも格段にアップ。

そのため業務システムであってもOracleからオープンソースデータベースにシフトしています。

これはJavaにとっても痛手です。MySQLやPostgresSQLはPHPやJsと相性が良いからです。

そのため「MySQLを使うから言語はPHPにする」ということも。このようにセットとなるデータベースの観点からもJavaは選ばれづらくなっています。

Javaの欠点:PHPやJsの言語レベルがアップしたから



これはJavaの欠点ではないのですが、他言語のレベルが上がっているという点もJavaが選ばれなくなった理由と言えます。

プログラミング言語も日々進化しているのはご承知の通りです。

PHPはセキュリティ、速度が向上

JavaもそうですがPHPなどもバージョン〇.〇などのように日々改良が加えられています。

PHPは昔はセキュリティ面が不安、速度が遅いなどと言われていて敬遠されていましたが、改良が加わる度ににセキュリティ面も向上していますし、現在の最新バージョンPHP8系ではアプリケーションの処理速度も向上。

簡易で書きやすいと言われていましたが、セキュリティ面、速度面が不安視されていたPHPがそのマイナス面をクリアし始めたためPHPを選択する企業が増えています。

JsはUX向上の重要性と守備範囲の広さが強み

UXの向上などが求められるようになった昨今、Jsはとても重要な役割を担う言語となりました。

Jsがあまり使われていなかったときはバリデーションチェックなどもわざわざJavaなどのサーバーサイドが実施していました。

どういうことかと言うと、例えばメールアドレスとパスワードでログインをする画面があるとします。

メールアドレスには必ず@が入りますので、仮にログイン画面のメールアドレス欄に@がなければその時点で間違いなわけですが、昔はこれをサーバーサイドでチェックしてフロントに戻すようなことをしていました。サーバーに1度リクエストしてそれをレスポンスするのでただのバリデーションチェックに2,3秒ほど時間が必要でした。

しかしJsが一般的になってからはフロント側でチェックできるので圧倒的に速いです。

またJsはブラウザ上で動作するフロントエンド言語ですが、一方でnode.jsはサーバサイドでも動作します。

つまりJsの書き方が分かればそれだけでサーバサイドとフロントエンドのコードが書けてしまうというわけです。

JavaだとサーバサイドはJava、フロントエンドはjspとJsなどで書き方、言語は異なりますが、JsはJsだけでシステムすべてを動かせます。

学習コストがかなり抑えられるわけです。

これはかなり画期的な出来事でJsを一躍ポピュラーな言語に押し上げました。

Javaの経験は生かすことが出来る



いかがでしたでしょうか。

Javaは古くから業務システムで重宝されてきた言語ですがどうしても新しめの言語に劣る点もあります。そのため将来的にはJavaの新規開発案件は減っていき、Javaは保守案件がメインとなるでしょう。

しかしながらJava経験はムダにはなりません。むしろムダになるどころか、大いに生かすことが出来ます。

JavaもPHPもまた最近の流行りのSaaS系(Salesforceなど)もWeb系言語なので書き方や仕組みは似ており、すぐに習得ができるでしょう。

またJavaなどの大規模システムで培ってきた要件定義や設計などの上流工程スキルは言語問わず、どのシステム開発でも生かすことが出来ます。

そのためJavaで上流から開発できるエンジニアの方は仮にJava案件が下火になったとしても上手にその経験をアピールできれば、今後も第一線で活躍し続けるエンジニアになれるはずです。

弊社ではエンジニア様と同じ目線に立ち
キャリアについて考えています。
弊社事業にご興味ある方は
気軽にお声がけください。

株式会社CENTO's job postings

Weekly ranking

Show other rankings
If this story triggered your interest, go ahead and visit them to learn more