Java
Sun Microsystemsが自身の開発する仮想システムJava上で動作するためのアプリケーション開発用言語として生み出されたのが「Java言語」です。Javaアプリケーションは、OSに依存せずに一度書けばどこでも動作することを目標に設計されています。Java言語で開発されたプログラムコードをコンパイルすると、バイトコードと呼ばれる中間言語が生成され、これを各プラットフォームごとに用意された専用の仮想マシンで実行することで、同じバイトコードを異なるシステム上で実行することができます。
C言語やC++言語とは異なり、基本的にJava言語はコンピュータが直接実行できる実行可能ファイルを生成するのではなく、Java仮想マシンで実行するバイトコードを生成するための専用言語となります。オブジェクト指向型言語でありながら、同じオブジェクト指向型言語であるC++言語に比べると非常にスリムな文法で人気を高めました。
まったくプログラミング言語の経験がないところから始めるには、構造的な文法を理解するのが難しいかもしれません。簡単なスクリプト言語やC言語などを学習してから次のステップとして選択するとよい言語だと思います。オブジェクト指向やデザインパターンを学習するにも適した言語です。C++言語が複雑でオブジェクト指向につまづいたという方にもちょうど良い難易度だと思います。
学習レベル | 中級~ |
実行方式 | 中間言語 |
開発対象 | Javaアプリケーション |
適用分野 | アプリケーション開発、Web開発、アプレット |
class Test { public static void main(String[] args) { System.out.println("Kitty on your lap"); } }
Java言語は、すべてのコードが必ず何らかの「クラス」の中に所属しています。全てのプログラムはクラスという部品単位に分解され、必要な時にクラスが読み込まれて実行されます。サンプル03の場合は「Test」という名前のクラスが作られています。プログラムは、最初に読み込まれるクラスのmain
メソッドから開始されます。
標準出力に文字列を出力するには、標準クラスライブラリで提供されている「System」クラスのout
フィールドを使います。「System」クラスはJavaシステムの基本的な機能を提供するクラスで、out
フィールドは標準出力を表すPrintStream
オブジェクトとして提供されています。PrintStreamクラスは、出力ストリームに任意の値を文字列として出力するprintln
メソッドを提供しています。
Javaの場合も、C言語と同様にプログラミング言語の機能はプログラムの構造と流れの記述のみです。入出力などの処理は全て、標準で提供されているクラスライブラリの機能となります。
関連リンク
C#
C#言語はJavaの人気を受けて、Microsoftが開発した仮想システム「Microsoft .NET」向けのアプリケーションを開発する専用言語です。Microsoft .NETの基本的な仕組みはJavaと同じです。中間言語を仮想マシンで実行することで、異なる環境下でも同じ結果を得られるアプリケーションを開発することができます。C#言語は、基本的に.NETアプリケーション開発を対象としたプログラミング言語となります。
また、最近ではWindowsやXbox 360のゲーム開発環境として公開された「XNA Game Studio」でもC#言語が用いられています。XNAはMicrosoftのゲームプラットフォームを抽象化するためのフレームワークで、基本的な仕組みは.NETと同じように中間言語が使われています。これまで、ゲーム開発はCまたはC++言語が専門とされていましたが、XNAの登場によってWindowsやXbox 360プラットフォームを対象としたゲームプログラミングにC#という選択も可能になりました。本稿執筆時点ではXNA開発環境はC#言語しか用意されていないため、XNA向けのゲームを開発する場合は必須となります。
C#言語は、オブジェクト指向プログラミングで一般的なインスタンス変数へのアクセス方法に用いられるアクセッサメソッドなどを文法に取り入れ、よりスマートで直観的なコードを書けるように工夫されています。すべてを理解するにはある程度の経験が必要ですが、標準ライブラリを利用して簡単なプログラムを作る程度であれば、オブジェクト指向初心者にもやさしい言語です。
Java言語の経験者であれば抵抗なく受け入れられるプログラミング言語だと思いますが、まったくの初心者が学ぶには敷居が高いかもしれません。やはり、簡単なスクリプト言語やC言語などの基本的な言語の経験があるとよいでしょう。
学習レベル | 中級~ |
実行方式 | 中間言語 |
開発対象 | .NETアプリケーション、XNAアプリケーション |
適用分野 | アプリケーション、Web開発、XNA(ゲーム) |
class Test { static void Main() { System.Console.WriteLine("Kitty on your lap"); } }
C#言語の場合も、グローバルな空間に関数を置くことはできません。全てのコードはクラスの内部に記述され、プログラムはクラスという部品に分解されています。サンプル04はTestクラスを作成し、Main
メソッドからプログラムが開始されます。
標準出力にテキストを表示するにはSystem名前空間のConsoleクラスのWriteLine
メソッドを使います。これらは.NET Frameworkとして提供されている標準クラスライブラリで、基本的な思想はJavaと同じです。
関連リンク
Visual Basic
BASIC言語は、古くは教育からアプリケーション開発にまで実用されていたプログラミング言語で、C言語に比べると簡単であることから特に初心者やホビーストの間で人気の高い言語でした。しかし、その後本格的なアプリケーション開発にはC言語が用いられるようになったことから、純粋なBASIC言語は失われて行きました。
現在、もっとも実用されているBASIC系の環境はMicrosoftが販売するVisual Basicでしょう。Visual Basicは、BASICに近い文法を使ってWindowsアプリケーションを開発することができます。最新のVisual Basic .NETはC#言語と同じように.NETアプリケーション開発を対象としているため、高度なオブジェクト指向が取り入れられています。しかし、.NETアプリケーションの開発を専門に設計されたC#言語に比べるとVisual Basic .NETは、従来のVisual Basic言語の文法をベースにしているため、Visual Basic系の開発者がオブジェクト指向や.NETアプリケーション開発を学習するのに適した言語でしょう。
.NETアプリケーション開発は、C#とVisual Basic .NETの2つの言語が主流なので、開発現場によってC#とVisual Basic .NETを使い分けられるように、両言語を習得しておくのもよいでしょう。
学習レベル | 初心者~中級 |
実行方式 | 中間言語 |
開発対象 | .NETアプリケーション |
適用分野 | アプリケーション、Web開発 |
Class Test Shared Sub Main() System.Console.WriteLine("Kitty on your lap") End Sub End Class
Visual Basic .NETのコードからコンパイルされるプログラムはC#言語と同じで.NETアプリケーションです。コンパイル結果として得られる中間言語が同じなので、基本的な文法が異なるだけで、プログラムの構造はC#言語と同じです。入出力などのシステムに関連する機能もC#言語と同じように.NET Frameworkの標準クラスライブラリを共有します。
プログラムはクラス単位で開発されるため、最初にTestクラスを定義しています。次に、プログラムの開始点となるMain
メソッドを作成し、この中でSystem名前空間のConsoleクラスのWriteLine
メソッドを呼び出しています。