WEBアプリケーションの主な言語は? 初心者向けにザックリ概要を解説!
WEBアプリケーションとは
まずは言語をご紹介する前にそもそものWEBアプリケーションの概念についておさらいしておきましょう。WEBアプリケーションとはインターネットを介したアプリケーションです。明確な定義はありませんが使うためにはインターネットへの接続が必要なものと考えていいでしょう。twitter等のSNSやYouTube等の動画サービスもWEBアプリケーションです。インターネットに繋がらないと友人との連絡や動画のダウンロードはできませんよね。逆に家計簿や電卓アプリのような一度ダウンロードしてしまえばインターネットに繋げなくとも動作するアプリケーションをネイティブアプリケーションと呼びます。
フロントエンド バックエンド
WEBアプリケーションを構成する言語はフロントエンド、バックエンドの2つに分けることができます。フロントエンドは主にユーザーの視覚的な部分を構築します。アプリケーションの構成、色、配置、動き等を担当します。バックエンドはアプリケーションの見えない動きを構築します。たとえばtwitterでのつぶやきをタイムラインに登録したり、ーザーを登録したりといった処理を行っています。フロントエンドでユーザーから入力された情報をバックエンドに渡しその情報を元にバックエンドが処理、バックエンドの処理結果をフロントエンド側に渡してフロントエンドで成形して表示するといったやりとりでアプリケーションは成り立っています。フロントエンドがユーザとのインターフェース担当、バックエンドが処理担当といった言い方もできます。
静的型付け言語と動的型付け言語
静的型付け言語は変数や引数、返り値等の型が、コンパイル等によりあらかじめチェックされており実行時にはそのチェックされた型を使用する言語です。動的型付けとは変数や引数、返り値等の型が実行時に決められるという性質の言語です。これらの性質により一般的には下記のような特徴があげられます。
静的型付け言語
- ・型の整合を事前にチェックするため堅実に構築できる。
- ・チェックが厳密なため大人数で開発する際に共通認識を取りやすい
- ・処理前に型を事前にチェック済みのため動的型付け言語に比べ処理が早い。
動的型付け言語
- ・記述が簡潔になるため素早い開発に向いている。
- ・直感的に記述できるため初学者でも取り組みやすい。
具体的な言語
では具体的な言語はどのようなものがあるのか紹介します。
フロントエンド
HTML(Hyper Text Markup Language)
画面の構成担当です。Hyper Textとはそのテキストをクリックするとリンク先に飛ぶというあの機能(Hyper Link)を持った文章のことです。これにより膨大な情報が相互に関連付けられてWorld Wide WEBが成り立っているわけですね。リンクだけではなく、画像、見出し、段落等を配置します。アプリケーションにどのような要素を表示するのかの骨格をHTMLで構築します。
CSS(Cascading Style Seat)
Cascadingは階段状に連なる滝のことでCSSの適用方法を準えて命名されました。画面の見た目担当です。HTMLで構築した要素を画面上のどこに、どのような色でどのくらいの大きさで配置するのかといったことが可能です。現在のバージョンアップごとにできることが増え以前はJavaScriptでしかできなかった画面上の動きも多少つけることが可能です。
JavaScript
画面の動き担当です。ユーザーの動きに合わせて表示を変化させることができます。例えばメニューリストにカーソルを合わせるとそのメニュー内のさらに詳しいメニューが表示されるといった動き、ポップアップを表示されるのもJavaScriptで作成します。あのグーグルマップで地図を操作することができるのもAjaxというJavaScriptを使用した技術で実現しています。JavaScriptも表現の幅が広がり続けており、プログラミング言語の中でも人気度や需要度はトップクラスです。
バックエンド
Java
求人数トップのJavaです。JVM(Java Virtual Machine)というどんなプラットフォームでも動作できるというシステムを導入したのが特徴です。オブジェクト指向という概念を世に広めた静的型付け言語です。WEBアプリケーションを作成する際はサーブレット/JSPという形式を使用します。
PHP
もともと動的WEBページの作成ツールが起源のためWEBアプリケーション開発のための機能が豊富な動的型付け言語です。WEBサイト作成で圧倒的シェアを誇るCMSのワードプレスもPHPで作成されておりPHPを学ぶとワードプレスのカスタマイズにも強くなります。
Ruby
開発された言語は数あれど普及している言語は極わずかです。その中の一つである動的型付け言語Ruby。この言語は日本人である、まつもとゆきひろさん開発しました。まつもとさん自身もここまで広まるとは想定していなかったようです。Ruby on Railsというフレームワークを使用した開発は生産性が高いと言われておりRubyを広める多大な貢献をしました。
Python
リリースからの歴史は長いですがプロ棋士を破ったAlphaGoの開発に使用されていたことで一躍脚光を浴びた動的型付け言語です。科学技術計算用のライブラリが豊富なことから機械学習といえばPythonというポジションになっています。
Go
Googleによって開発されて並列処理を得意とする静的型付け言語です。C言語並みの速度でC言語以上にシンプルに記載できる新世代C言語です。詳しい内容はこちら。
Kotlin
Java を簡潔で安全に使用できるように改良した言語です。JVM上で動作しJavaと互換性があります。現在ではAndoroidアプリ開発の推奨言語になっています。
最後に
WEBアプリケーションに使用される主な言語の特徴と種類を紹介しました。現場ではフレームワークというシステムを構築しやすいようにしたファイルやプログラムのセットを使用することが多いです。気になった言語のフレームワークはセットで調べるとよいでしょう。