IT・プログラミング雑学

JavaとC++の違いとは?共通点から難易度や性能の違いまでプログラマーがわかりやすく解説

よぉ、桜木建二だ。プログラミング言語にJavaとC++と言うものがある。どちらもC言語を参考にしていて似ている部分もあるが、違う部分も多いようだ。どういう共通点や相違点があり、特徴や難易度・性能はどうなのかを、C++とJavaの両方を経験しているプログラマでもあるライターのwoinaryと一緒に解説していくぞ。

解説/桜木建二

「ドラゴン桜」主人公の桜木建二。物語内では落ちこぼれ高校・龍山高校を進学校に立て直した手腕を持つ。学生から社会人まで幅広く、学びのナビゲート役を務める。

ライター/woinary

某社で社内向け業務システムの開発、運用を30年近くやっていたシステム屋さん。C++やJavaの経験者で、企業で使うアプリをつくっていた。現在はフリーランス。ガジェットやゲーム、ラノベが大好きなおっさん。

C言語から生まれた?JavaとC++の気になる関係は?

image by iStockphoto

コンピュータのプログラムをつくるにはプログラミング言語が必要です。プログラミング言語は数多く、ある調査によるとそれなりの利用者がいるものだけで250言語、その他のものも含めると1000以上とも言われています。

そのプログラミング言語の中でも広く使われているのがC++とJavaです。どちらもC言語という、同じく広く使われていた言語を参考にして新しくつくられたプログラミング言語になります。各種アンケートでも人気の高いC++とJavaはどういう関係があり、何が違うのかを見ていきましょう。

C++:C言語を改良した次世代言語

C++は1983年にビャーネ・ストロヴストルップが発表した言語です。この時すでに様々な用途で使われていたC言語を元に、オブジェクト指向などの他の言語が持っていた便利な機能を取り入れています。

その特徴は名前に「C」が残っているように、C言語のソースプログラムもそのまま動くことです。また、C言語で書かれた便利なプログラムをまとめたライブラリをそのまま利用できます。ただし、2018年以降、C言語とC++言語はそれぞれアップデートを行った結果、新しいCの独自機能についてはC++では使えなくなりました。

Java:C言語と似ているが他人?

開発者は違いますが、C++はC言語を元にしているので親子のようなものです。実際、C言語で書かれた過去のソースプログラムやライブラリをC++でも活用できます。一方、JavaはC言語を参考にはしていますが、まったく新しく作られたものです。

Javaは1995年にサン・マイクロシステムズ社が発表しました。2010年以降はオラクル社が管理しています。元々は家電の中に入っているマイクロコントローラという小さなコンピュータ向けのものです。しかし、パソコンやスマホなどにも広く使われています。C言語を参考にしているので似ている部分もありますが、考え方の違う部分も多いです。そのため、C++がC言語と親子の様な関係であるのに対して、Javaは似ている他人となります。

no-img2″>
 <figcaption class=桜木建二

C++とJavaはどちらも欠かせないプログラミング言語で、共にC言語を参考にしている。特にC++言語はC言語の影響が強いが、Javaは参考にしながらも作り直している。そのため、似ている部分も多いが、違う部分も大きいわけだな。実際にどこが似ていて、何が違うのかをつづいて見ていくぞ。

似ているようで違う?JavaとC++の共通点とは

image by iStockphoto

JavaとC++はどちらもC言語を元にしているため似ている部分も多いです。単にプログラムの書き方、文法が似ているというよりも、利用分野や使い方に似ている部分がいくつかあります。違いを見ていく前に、まずは共通点を確認しましょう。

様々なアプリケーション作成で大活躍

両者の元になったC言語を含めて、普段利用する様々なアプリケーションを作成するためにJavaやC++はよく使われています。例えば、Windows PCで使うオフィスアプリや各種のアプリ、ゲームはもちろん、Webで提供されている各種サービスもJavaやC++で作成されているものも多いです。JavaやC++がなければ、これらの便利なアプリも使えなくなるかもしれませんね。

コンパイルって何?プログラムを動かすために変換が必要

プログラミング言語は、人間が書いた元になるものをあらかじめコンピュータが実行できる機械語に変換しておくものと、変換しながら実行するものにざっくり分けることが可能です。

元になるものがソースプログラムやソースコード、あるいは単にソース、変換したものを実行ファイルやオブジェクトコード、オブジェクトなどと呼びます。

JavaもC++も、ソースプログラムをあらかじめ実行ファイルに変換するタイプのプログラミング言語です。このタイプをコンパイラ言語変換作業をコンパイルと呼びます。パソコンで動くアプリケーションの多くはコンパイルしたものです。その代表がJavaやC++になります。一方、変換しながら実行するものはインタプリタ言語です。

\次のページで「クラスとオブジェクトとは?オブジェクト指向プログラミング言語」を解説!/

次のページを読む
1 2 3
Share: