javaはとても幅広い活用用途がありますが、javaとはどのような特徴を持つプログラミング言語なのでしょうか。概要をご紹介していきます。
そもそもjavaとは?
javaとは1990年にサンマイクロシステムによって開発が始まりました。サンマイクロシステムは黎明期のコンピュータ事業における伝説的な会社のひとつです。2008年にオラクルによって買収されました。
javaはもともと家電製品に組み込むことを想定されていました。家電製品に組み込む言語としては他にc++が候補に挙がっていましたが、プログラムが複雑で様々なタイプの家電に対応する汎用性が低いということでjavaが開発されたのです。
javaを使うメリット
上記のような理由で開発されたjavaのため、一番大きなメリットとしてはどのような環境でも動かすことができるという点が挙げられます。
PHPであればwebブラウザ以外で動かすことはできません。C++であればLINUX以外で動かすことはできません。
しかしJavaはどんな環境でも動かすことができます。Java Virtual Machine(JVM)が存在しているからです。JVMはJavaで書かれたプログラムを、機械の対応している指示方式に翻訳してくれます。
JVMがあることによって、Javaはどんな種類の製品を動かすシステムにも対応できます。
とにかく汎用性が広いのです。
また実行速度の速さと安定した動作も魅力です。セキュリティが高いのも安心感があります。
javaを使うデメリット
javaは言語の仕組みが割と厳密なので、初心者が取得するのには時間がかかります。
また、システムへの実装も同じでJavaでプログラムを作ること自体手間がかかるので、小さい短期的なプロジェクトの場合は別のスクリプト言語の方が優位です。
javaでできる6つのこと
それではjavaを使用して生まれたプロダクトにはどのようなものがあるのでしょうか。当初の目的だった家電はもちろんですが、幅広い分野で利用されています。
できること1. Androidアプリ
今、AndroidのアプリはほとんどがJavaで開発されています。
Javaは前述したどんなシステムへも導入できるという強みがあるため、機能の拡張やカスタマイズなどやろうと思うことがほぼ全て可能です。
iPhoneのアプリはこれに対してObjective-Cという言語を使用しています。動作スピードはJavaに勝りますが、拡張性や自由度はJavaが高いのです。
できること2. 業務系システム
社内全体の業務用のシステムは多くがjavaで開発されています。
例えば発注システムと顧客のデータベース、経理プログラムが連動しているようなものです。会社が大きくなればなるほど開発すべき業務システムの規模も大きくなります。
しかし、javaの拡張性とどんな環境でも動かせるという強みはここでも生かすことができます。
できること3. Webサービス(SNS)
javaで作られた有名なwebサービスやSNSにはEvernoteやTwitterが挙げられます。Twitterの開発当初はRuby on Railsが使われていましたが、ユーザーの増加でより動作が早く堅牢、かつ拡張性の高いjavaに乗り換えました。
できること4. Webサイト
Javaを使ってwebサイトもたくさん作られています。実際にはjava以外のプログラム言語と組み合わせて制作される場合が多いです。Java ScriptとJavaは全くの別物なので、勘違いはしないようにしましょう。
できること5. デスクトップアプリ
OpenofficeやFirefoxにはjavaが活用されています。OpenofficeはMicrosoft Officeの無償版のようなアプリです。Microsoft OfficeはC++で作られていますが、似たようなことはjavaでもできるということです。
できること6. 家電製品
元々のjavaのプログラム運用の目的だった家電製品でももちろん利用されています。いわゆる白物家電と言われる冷蔵庫や洗濯機にもjavaが組み込まれていますし、カーナビやブルーレイプレーヤーでjavaが使われているのはイメージしやすいでしょう。
javaを使用したアプリケーションを開発するには?
javaを使用したアプリケーションを開発する際はもちろん人材を確保しなければなりません。
どのように採用や外注をすれば良いのでしょうか。
求人広告でjavaエンジニアを募集する
java自体30年近くの歴史があるプログラミング言語なので、キャリアが長い優秀なjavaエンジニアは多いでしょう。求人広告を見てもC、C++、PHPなどと並んで必須スキルに記載が多いプログラミング言語です。
ただ、近年では特に若年層のプログラマーにおいて必ずしもjavaを扱えない場合もあります。結果、コストがかかる中高年のエンジニアの採用の確率が高まります。
人材紹介会社でjavaエンジニアを紹介してもらう
javaエンジニアをIT系の人材紹介会社に依頼する場合も同じです。人材の母数自体は多いのですがコストが発生します。
ですので、紹介を依頼する前に今後会社でjava以外にどのような開発案件があるのか洗い出す必要があります。
紹介会社から採用した正社員を用がなくなったからといって首を切ることはできませんし、かといって派遣社員に頼むようなプロジェクトでもない場合があるでしょう。
受託企業にjava開発を外注する
プロジェクト自体を外注するパターンです。大規模なプロジェクトになればなるほど専門的な開発会社に丸投げしてしまった方が効率がいいのは事実です。
ただ、BtoBの取引になるためプロジェクトの案件定義や予算交渉などとにかく時間がかかるでしょう。すぐに開発を始めたい場合はデメリットがあります。
クラウドソーシングでjavaエンジニアとマッチングする
クラウドソーシングを利用し、フリーランスのjavaエンジニアと直接交渉するという方法があります。javaを扱えるエンジニアの年齢層は比較的高く、独立してフリーランスで生活している人の割合は多いです。
基本的には案件ごとの開発参加となるため雇用の手続きもいりません。数多くのエンジニアの中からその案件にマッチングした人材を選ぶことができますが、案件がスタートするまで一切お金はかかりません。