投稿日時:
Javaプログラミングで使われる「Applet」「Servlet」「EJB」とは何でしょうか?
一言でJavaと言っても、何を開発したいのかによって用いられる技術が異なります。
そこで、良く出てくるJava関連の用語について簡単に解説します。

JVM(Java Virtual Machine)
バイトコード(ソースコードをコンパイルして作成されるclassファイルのこと)を動かすためのもの。

JRE(Java Runtime Environment)
Javaプログラムを動かすために必要なソフトウェアをセットにしたもの。標準クラスのライブラリやJVM等が含まれる。

JDK(Java Development Kit)
Javaプログラムを作るために必要なソフトウェアをセットにしたもの。コンパイラやJREも含まれる。

Java SE(Java Standard Edition)
Javaの標準的な機能を保有しているエディション。デスクトップアプリ開発に用いられる。Swing、Java Appletが含まれる。

Java EE(Java Enterprise Edition)
大規模システム、サーバ関連のシステム開発用エディション。Java Servlet、EJBが含まれる。

Java ME(Java Micro Edition)
携帯電話や家電製品のアプリ開発用エディション。

Swing
GUIを使用したアプリ開発に使用される技術。

Java Applet
Webのクライアントサイド技術。WebサーバからJavaアプリをダウンロードしてWebブラウザ上で稼動させる。

Java Servlet
Webのサーバサイドの技術。Servletを使用するには専用サーバ(Servletコンテナと称する)が必要で、Apache Tomcatは代表的なServletコンテナ。

JSP(Java Server Pages)
Java Servletの機能のひとつ。HTML内にJavaのソースコードを埋め込み、実行時にWebページにする技術。

Java Beans
プログラムを部品化して、組み合わせて開発を行う手法において、部品化されたものをJava Beansと称する。

EJB(Enterprise Java Beans)
部品化したJava Beansをサーバ上に配置して使用させ、処理を分散化させるもの。専用サーバ(EJBコンテナと称する)が必要で、JBossは代表的なEJBコンテナ。

なお、当校で講義している「Javaプログラミング初級・応用」はテキストエディタとJDKを使用して、Java SEの基本文法を学習する講座です。
JavaScriptはJavaと名前が似ていますが一切関係ありません。
また、Androidのアプリ開発で用いられるJavaは、基本文法は一緒ですが、通常のJavaとは異なった技術を使用しています。

この様にJavaプログラミングに関する用語は沢山あります。ぜひ、皆さんが何を開発したいのかを明確にして学習を進めてみてください。

(担当:奥田 英太郎

投稿日時:
「Eclipse」とはどのようなソフトウェアですか?
Java、PHP、JavaScriptなどのプログラミング系講義で良くある質問ですが、「Eclipse」は統合開発環境=IDE (Integrated Development Environment)です。
簡単に言えば、プログラミングするための色々な機能を有したツールです。
入力支援やエラーの指摘をしてくれる機能が付いた高性能エディタやデバック機能等を有しています。

オープンソース製であり、無料で使用する事ができます。
Windows、Macintosh、Linuxとさまざまなプラットフォームに対応しています。

「プラグイン」としてさまざまな機能を組み込むことができるようになっており、その拡張性は非常に高いことも特徴です。
元々はJava用の開発ツールだったのですが、プラグイン次第でC/C++、PHP、Perl、Ruby、JavaScript、COBOL等各プログラミングによる開発も可能です。
それ以外にもXML、HTML、CSS、jQuery等のWeb製作や、Servlet、Androidの開発、ソースコードからのUMLの作成、各RDBMSに接続しデータ操作を行う等、その機能は多岐に渡ります。

世界で最も使用されているIDEと言っても過言ではないと思います。
ゆえに、どこかで「Eclipse」の存在を知り、このような質問が出てくるのでしょう。

しかし、このようなEclipseですが、プログラミング初心者にはお薦めしません。
理由は下記の2点です。

1点目。
Eclipseは高性能、多機能なIDEです。ゆえに便利すぎて勉強にならないからです。

「便利」と「鍛錬」は違います。
ランニングしている人に自動車の方が便利ですよ、とは薦めないですよね。

便利だからといってIDEに頼ってばかりいて、コンパイルのコマンドさえ解らないなんて事の無いようにしなければなりませんよね。

2点目。
Eclipseは非常に複雑なソフトウェアで、玄人向けだからです。

Eclipseは自分が行いたい事に合わせてプラグインを導入、設定しないといけません。またプラグインの数が非常に多く、例えばPHPのプラグインだけでも複数あり、何を導入すればいいか迷う事さえあります。

よく「Eclipseも講座に含めて欲しい」という要望がありますが、Eclipseのダウンロード、インストール、各プラグインの導入まで講義していたら、それだけで1日かかってしまいます。

プログラミング初心者の方々は、まずは普通のテキストエディタで地道なプログラミングを学習しましょう。
そして、プログラミングができるようになった暁には、是非ともEclipseを使ってみると良いと思います。

(担当:奥田 英太郎

投稿日時:
Webアプリケーションを開発するサーバサイドのプログラミングにはPHP以外に色々ありますが何が違うのでしょうか?
Webアプリケーションを開発するプログラミングはサーバサイドとクライアントサイドに分かれます。
クライアントサイドがJavaScriptほぼ一択なのに対し、確かにサーバサイドはさまざまなプログラミング言語が使用されていますね。

まずは「CGI」について理解しましょう。

CGI(Common Gateway Interface)はWebサーバとプログラミングを連携させる仕組みの名称で、主に「Perl」「C言語」が使用されていました。
CGIはWebサーバとプログラムが別々に稼動しています。Webサーバがリクエストを受信する度にプログラムを実行するので負荷がかかる事になります。
この負担を軽減するために「プログラムがWebサーバの一部になる」形式に切り替わっていき、段々とCGIは使用されなくなっていきます。

CGIに代わり「プログラムがWebサーバの一部になる」形式として「Java Servlet」「ASP.NET」「PHP」が挙げられます。シェアトップ3になります。
これらはWebサーバの構築環境によって選択肢が変わります。

「Java Servlet」は「Java」を使用したサーバサイドのプログラミングです。主に汎用機(メインフレーム)で構築されたWebサーバで使用されます。
すでに汎用機で業務システムが構築されており、それと連動するWebアプリを開発するのに用いられます。
銀行のWebサイト等で良く使用されています。

「ASP.NET」はMicrosoft社のサーバサイド技術で、言語としては「Visual Basic」「C#」を使用します。
MicrosoftだけにWindows Serverで構築されたWebサーバで使用されます。
Windows Serverの普及率は向上しており、追従するようにASP.NETの普及率も向上しています。
強力な開発ツール「Visual Studio」による高い生産性も魅力です。

「PHP」は主にLinuxやBSD(UNIXの1種)で構築されたWebサーバで使用されます。
LinuxやBSDはレンタルサーバで使用される事が多く、ゆえにレンタルサーバでWebアプリを稼動したい場合はPHPという選択肢が多いのです。

このようにサーバサイドが色々あるのはWebサーバの構築環境によります。
ご自分の環境に合わせて、適切な言語を選択して下さい。

(担当:奥田 英太郎

投稿日時:
プログラミングの技術を向上するコツがあれば教えて下さい
良く質問されますが、回答が難しいですね。
そう簡単に向上できるコツがあるなら私が知りたいくらいです。

レベルアップするには経験値を貯める事。
すなわち、数多くソースコードを書く他に方法はありません。

当校では、どのプログラミングの講座でも課題を付けております。
まずはその課題をこなす事から始めましょう。

どの課題も「アルゴリズム」の考え方から訓練します。
アルゴリズムとは目的となるプログラムを作るための具体的手順の考え方で、プログラミングにおいて最も重要な要素です。
入力、演算、出力とプログラムの流れを制御できるようになりましょう。

テキストにあるソースコードを書き写すだけでも効果はあります。
コピー&ペーストではダメですよ。
ちゃんと1文字ずつ書き写して下さい。

そうやってソースコードを書いていれば、同時に基本文法も学習できます。
ソースコードは書き間違えてナンボ。エラーの100個や200個は出して当たり前。
後は同じ間違いをしなければ、おのずと向上していくわけです。

なんだか、当たり前の話になってしまいましたね。
ですが、この「当たり前」の話を避けてしまっては、プログラミング技術は絶対に向上しません。
当たり前の事をしないで「プログラミングがうまくならない」なんて、言わないで下さいね。

(担当:奥田 英太郎