セカイモンの裏側

★毎週木曜日更新★ 海外ショッピングサイト『セカイモン』のブログです。私たちスタッフの仕事風景や日々の出来事など、     “セカイモンの舞台裏”とも言える日常を綴っていきます。

JAVA vs PHP

現在セカイモンJAVAPHPの構成でできている。

でもなぜかフロントがJAVAで基幹・バックオフィスがPHPでできている。

まぁ色々な経緯があったからだと思いますが、なかなかいびつ構成です。

セカイモンの成り立ちがそこそこ資金があったせいかOracle RACJAVAというそこそこ工数、お金が必要な構成になっています。

そのせいでクラウドへの移植が困難状況です。

とはいえいずれかは移行はしたい思います。

そこで移行を今現時点での最適された形で移行するとどうなるかを考察してみた。

まずは言語 今現時点でJAVAPHPを使用しているのでどっちがいいのか調査。

個人的には新しいシステムではPHP, Python, Rubyなどのスクリプト言語しかないと思っていたのですがチームのメンバーに聞いてみるとJAVAも捨てがたいという事です。

 

Factors Java PHP Comment
Stability Strong Weak ・The procedural backward compatibility, no real deprecation mechanism, a mess semi platform independent libraries and functionality are just some of the issues the PHP
Java, however, has a clean platform independence and a fairly well-defined number of core libraries with appropriate quality standards
Performance Strong Weak ・While Java was formerly often described as slow, today’s JVMs are highly optimized for speed while the script languages, including PHP, still struggle with this
Existing Modules Strong Weak ・Both in PHP, as well as in Java, there is a lot of modular software, partly with free, partly with non-free licenses. However, PHP modules expose significantly more problems than those written in Java.
・For example, some PHP module developers invented own concepts (e.g. Zend Loader was created by Zend as a substitute for packages) or the modules are only optimized for a framework (like symfony plug-ins).
Java is, especially through the “complicated concepts” such as Class Loading and packages, better prepared for modularization.
・Due to better tool support (Ant / Maven, Javadoc, JUnit) Java Frameworks have easier to install, better documented and tested artifacts.
Integration Strong Weak ・There are many standards implementations in Java (it is almost an industry standard)
・If a PHP Web application should communicate with a specific protocol, the selection of libraries is rather limited (implementations are only partial or rudimentary)
・Integration of PHP applications with other services usually happens through the database layer.
Developer know-how Strong Strong ・SAL has both Java and PHP development know-how
・There are a lot of Java engineers
Overall Strong Weak Java is still one of the leading languages for building web applications (Google, Amazon, ebay, etc)
・The sekaimon web application is a large scale, complex application so security, performance, concurrency, developer productivity, scalability as a language, iteroperability and how easy it is to find engineers who are familiar with the language should be considered.

 

Which is best PHP or java for web server based applications? - Quora

blog.codecentric.de

 

Is Java equally good for creating Web applications as PHP, Ruby and Python? - Quora

softwareengineering.stackexchange.com

www.business2community.com

よくある話では、JAVAは大きぼ開発でPHPは小規模だと。しかしながらFacebookをはじめとしたとてつもなくでかいシステムでもPHPで動いているのでそういったことはないかなっと思います。

あと、セキュリティ面でPHPが懸念点があるという話もよく聞くが結局は使用するエンジニアの作り方によるもので言語によるセキュリティなんてほぼ差がないかと思います。

JAVAが安全だといっても今年のstrutusの問題もあるのでむしろJAVAの方が危険なんじゃないかって勘ぐったりします。 笑

セカイモンstrutsのバージョンが古すぎて今回のセキュリティーホールはなく問題なかったのでなんとも皮肉なはなしです。うれしいやら悲しいやら。

itpro.nikkeibp.co.jp

あと、PHPは開発は早いけど、運用コストが高いっていう話が多いけどもそれも結局フレームワークとか言語の問題よりも運用方法の方が大きく左右する話かと思います

Ruby On Railsでも運用しにくいコードの書き方なんていくらでもあるわけで。。

PHPの最大のメリットはなんといっても「簡単」につきる。

今まで他の言語ができてPHPができないプログラマーを聞いた事がない。 〇〇はできるけど、PHPはできないっと言うプログラマーはおそらくその言語もできないかと思います。

そんな簡単なPHPがなぜネット上で嫌われているのか、PHPがWebの言語としてメインストリームに入りだした頃からずーーーと嫌われてる気がします。

その理由は「簡単」すぎるからだと思います。

業務委託する時PHPプログラマーで仕事を請け負う場合は60万円っていうのが相場かと思います。しかし、Rubyとかだと65万円が相場で、JAVAになると70万円が相場です。

結局エンジニア側からするとPHPは儲からない言語なんですよ。

でも企業、サービスを運営する側からすると安いに越したことがないので絶対PHPの方がいいはず。

プログラマーの単価だけでなくJAVAと比べるとインフラの環境作り、Eclipseの環境作りで相当数時間がとられる。

しかも、Mavenのせいで運用途中で動かなくなったり。PHPでもcomposerの運用次第ではあるかもしれないですけど。

今でもEclipseの環境を作成してプログラミンできるまで最低でも4日かかっているのが現状です。PHPなら3時間で事足りのに。

laravel, struts - Google トレンド

将来的にもlaravel,strusがきれいに交差していることから、将来性でもPHPに分があると思います。

https://trends.google.co.jp/trends/explore?date=today%2012-m&q=laravel,django

https://trends.google.co.jp/trends/explore?date=today%2012-m&q=laravel,rails

ほかの言語のフレームワークと比較しても健闘していると見れるかな。rubyrailsしかないし、phtyonはDjangoしかない中でPHPは不必要にあるのでそこで伸びるっていうのはデファクトスタンダートになれやもしれません。かなりひいき目な見方ですが。。

Tomcatのバージョンも気にしないといけない分どうしても足かせになりそうなので時期バージョンはPHPでやりたいです。