========================= プログラミングの基礎知識 ========================= ここではプログラミングに関する基礎的な知識について解説していきます。 プログラミング言語とは? ========================= | プログラムとは、コンピュータに一連の指示を記述したものです。 | 例えば .. code-block:: none 30m右に行ってください 10m左に行ってください そこにリンゴの木があったら、リンゴを1つ摘み取りなさい | このような、マニュアル化された一種の指示書みたいなものです。 | コンピュータは柔軟な解釈ができないため、定型化された、かっちりした文章を書く必要があります。 | そのために作られたのがプログラミング言語です。 アプリケーションの種類 ======================= アプリケーションは、コンピュータ上で特定の作業をするためのソフトウェアのことを言います。アプリケーションにはデスクトップアプリケーション、ウェブアプリケーション、スマートフォン向けアプリケーションなどがあります。ここではウェブアプリケーションを中心に扱っていきます。 ウェブアプリケーションについて ------------------------------- ウェブアプリケーションは主にブラウザ上で動作するアプリケーションのことです。ウェブアプリケーションはデータの管理などはサーバ上で行い、クライアント側は主に入力と結果の表示のみを行うのが特徴です。 ウェブアプリケーションには以下のメリットがあります。 * 対応しているブラウザを搭載しているどのデバイスからもインターネットに繋がっていれば使える。 * ユーザーはインストールする手間がない。 * バージョンアップが容易である。 * 複数のユーザーで共有したデータを使うことができる。 * 個人のPCでは処理できない巨大なデータを利用することができる。 サーバサイドとクライアントサイド ----------------------------------- | ネットワークのモデルとして、代表的なものがクライアント・サーバモデルです。 | このモデルにおいては、サーバというデータを溜め込んだコンピュータがあり、ネットワークを通じて、複数のクライアント(PC等のデバイス)がサーバに接続し、サーバの中のデータを見るということになります。 .. image:: /_static/cs.png | そして、クライアントはサーバに「リクエスト」を行い、サーバはそのリクエストをもとに処理を行ない「レスポンス」を返します。 .. image:: /_static/req.png | ウェブアプリケーションではサーバサイドとクライアントサイドの双方で、処理を行うことができます。その処理を行う言語のことをサーバサイドスクリプト、クライアントサイドスクリプトと呼びます。 **サーバサイドスクリプト** | 代表的な言語はPHP、Perl、Python、Ruby | サーバ上で動作する言語 | 複雑な処理ができる | 必ず実行される枠組みを作ることができる | クライアントの環境に依存しない **クライアントサイドスクリプト** | 代表的な言語はJavaScript、ActionScript | ブラウザ上でデータを処理するための言語 | 主に見た目や、ユーザインタフェースに関わってくる | 実行されない場合がある | クライアントの環境に依存する この教材で扱うプログラミング言語 =================================== これから、この教材では主にこの2つの言語を勉強します。 * **Javascript** Javascriptはクライアントサイドの言語です。動的なサイトの構築や高度なユーザーインターフェースの開発に用いられます。HTMLに埋め込むことで実行可能で、比較的簡単な文法で記述することができます。 .. note:: JAVAというプログラミング言語とは完全に別物です。インドとインドネシアぐらい違うので混同しないようにしましょう。 * **PHP** PHPはサーバサイドの言語です。平易な文法で動的なサイトをサーバサイドで生成することができます。初心者でも習得しやすく、大規模開発にも多く使われています。 また、PHPを動かすために必要なUNIXでのサーバの構築方法や、サーバサイドでデータを保管するために必要なデータベースに関しても今後勉強します。