はじめに
未経験からエンジニアとして働き始めて約1年。
現場でJavaやJavaScriptに触れる中で、ようやく「この2つの違い」を理解できるようになってきました
ただ、エンジニアになりたての頃はこんなことを思っていました。
- JavaとJavaScriptって名前が似ているけど何が違うの?
- なんとなく「Javaはバックエンド」「JavaScriptはフロントエンド」くらいしか説明できない
- うまく言語化できない
この記事は、私と同じように未経験からエンジニアになり、JavaとJavaScriptの違いをうまく説明できない人に向けて書いています。
ネットの記事では理論的な説明が多いですが、
この記事では 「実務で触ってみてわかった違い」 という視点で整理してみました。
JavaとJavaScriptはそもそも別の言語
名前は似ているがまったく別物
まず一番大事なポイントですが、
JavaとJavaScriptは名前が似ているだけで、全く別のプログラミング言語です。
初心者の頃は
JavaはJavaScriptの簡易版?
のように思っていましたが、実際には開発された背景も設計思想も全く違います。
名前が似ているのは歴史的な事情であり、技術的な関係はほとんどありません。
つまり
| 言語 | イメージ |
|---|---|
| Java | 業務システムを作る言語 |
| JavaScript | Webページを動かす言語 |
という感じで、そもそも役割が違う言語です。
主な用途が違う
実務で触ってみて一番わかりやすい違いはここです。
Java
主に サーバー側(バックエンド) で使われます。
例えば
- WebサービスのAPI
- 業務システム
- 基幹システム
- Androidアプリ
など、大きなシステムで使われることが多いです。
Javaは JVM(Java Virtual Machine) 上で動くため、
OSに依存せず動作するのも特徴です。
JavaScript
一方、JavaScriptは
Webブラウザ上で動く言語
として広く使われています。
例えば
- ボタンを押したら画面が変わる
- フォーム入力のチェック
- 動くUI
など、Webページに動きをつけるための言語です。
最近では
- Node.js
- React
- Vue
などの登場で、バックエンドやアプリ開発でも使われるようになっています。
実行される場所が違う
Javaは「サーバー側」で動く
Javaは基本的に
サーバー側で処理を行う言語
です。
例えば
ブラウザ → リクエスト送信
↓
サーバー(Java)
↓
データベース
というような流れで、
- データ処理
- ビジネスロジック
- DB操作
などを担当します。
Springなどのフレームワークを使って開発することが多いです。
JavaScriptは「ブラウザ」で動く
JavaScriptは
ユーザーのブラウザ上で実行される
のが特徴です。
例えば
- 入力チェック
- モーダル表示
- ページ遷移なしの更新
など、ユーザーの画面で起こる処理を担当します。
ざっくり言うと
| 処理 | 言語 |
|---|---|
| データ処理 | Java |
| 画面の動き | JavaScript |
という役割分担になることが多いです。
書き方(言語の性格)が違う
Javaは「型が厳格」
Javaは 静的型付け言語 と呼ばれる言語です。
例えば
String name = "Taro";
int age = 20;
のように、型を必ず宣言する必要があります。
そのため
- コンパイル時にエラーが見つかる
- 大規模開発に向いている
という特徴があります。
業務システムでJavaが多い理由もここです。
JavaScriptは「柔軟」
JavaScriptは 動的型付け言語 です。
例えば
let name = "Taro";
let age = 20;
型を書く必要がありません。
そのため
- 記述がシンプル
- 書くのが速い
というメリットがあります。
ただし
- 型ミスに気づきにくい
というデメリットもあります。
最近はこの問題を解決するために TypeScript を使うケースも増えています。
まとめ
未経験からエンジニアになりたての頃は
JavaとJavaScriptって結局何が違うの?
と聞かれても、うまく説明できませんでした。
しかし実務で触ってみると、違いはかなりシンプルです。
Java
- 主にバックエンド
- サーバーで動く
- 型が厳格
- 業務システム向け
JavaScript
- 主にフロントエンド
- ブラウザで動く
- 柔軟な言語
- UIや画面操作
このように整理すると、かなり説明しやすくなります。
もしこの記事が、
未経験からエンジニアになった人が「JavaとJavaScriptの違い」を言語化する助けになれば嬉しいです。
参考記事