有名無名なものも含めると、プログラミング言語は数え切れないほど存在しています。年々新しいプログラミング言語が登場していますし、その逆に廃れていく言語もあります。
Web系の開発でも、それは同じです。いざWeb系の開発を始めるにしても、どの言語を選ぶか迷うこともあります。初心者が学習をする時も、どの言語から始めればいいのかわからないことも多いでしょう。
本記事では、Web系の開発におすすめの言語を5つご紹介します。Webページの仕組みや基盤となっている言語(HTML、CSS、JavaScript)についても解説しているので、そちらも併せてご覧いただければと思います。
Web系開発の基礎知識
本題に入る前に、Web系の開発で必要な基礎知識について簡単に復習しておきましょう。Webページを構成している言語(HTML、CSS、JavaScript)についても解説しています。
Webページが表示される仕組み
突然ですが、皆さんはどうやってホームページを見ているでしょうか?PCから見る場合もありますし、スマホやタブレットから見ていることもあるでしょう。どちらにしても、ブラウザソフト(アプリ)からホームページなどのWebページを見ていることでしょう。
この時の仕組みをもう少し詳しく見てみましょう。ブラウザは入力されたURLから、Webページが設置されているサーバにアクセスします。そこでWebページの内容を取得して、ブラウザ上にWebページが表示される流れになっています。
Webページは、HTMLやCSS、JavaScriptなどのプログラムファイルや、テキストや画像、動画などの素材で構成されています。ブラウザはこういったファイルを独自の方法で組み直して(レンダリングと言います)、表示をしているのです。
Webページを作っている3大要素(言語)
上で少し触れましたが、Webページはさまざまなファイルから構成されています。その中でも、HTMLとCSS、JavaScriptの3つは特に重要。これがなければ、Webページが成り立たないと言えるでしょう。
Web系の開発でも必須な知識・スキルので、それぞれの役割について確認しておきましょう。
HTML
Webページの構造やコンテンツを作っているのが、HTMLです。HTMLは、タグと呼ばれるコードを使って記述されています。例えば、一般的なHTMLファイルは下のような形式で記述されています。
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>HTMLのサンプルコード</title> <meta name="description" content="ページの説明文" /> <link rel="stylesheet" href="./css/style.css"> <script src="./js/script.js"></script> </head> <body> 文章などのコンテンツ </body> </html>
ページのタイトルを指定している、
<title>HTMLのサンプルコード</title>
の部分を見てみましょう。
<title>
は開始タグと呼ばれ、
</title>
は終了タグと呼ばれます。開始タグと終了タグの間に書かれた文章が、タイトルにあたります。
このように、HTMLはタグを使ってページの構造やコンテンツを記述しています。HTMLについて、より詳しくは下の記事を参考にしていただければと思います。
CSS
HTMLがページの構造や内容を決めているのに対して、そのデザインやレイアウトを司っているのがCSSです。HTMLファイルに書かれているタグに対して、それぞれ色やサイズ、レイアウトなどの装飾をします。CSSは下のように書かれています。
p { color: #808080; }
これは、pタグを対象にデザインの指定をしている例です。ここではpタグのことをセレクタと呼ぶのですが、それに色を指定するcolorというプロパティを適用しているのです。セレクタごとに、適用させたいプロパティをそれぞれ記述していくのです。
なおCSSコードはHTMLファイル内のheadセクションに記述することも可能なのですが、特別な理由のない限りはやめておいた方がいいでしょう。ご説明したように、HTMLとCSSは役割が異なります。同一のファイルに違うものを書くのは非効率ですし、保守などの工数を増やすことにもなってしまします。
なお、CSSの開発ではSCSS(SASS)やLESSなどのプリプロセッサーを活用することをおすすめします。CSSの管理運用がしやすくなるだけでなく、CSS単体では使えなかった便利な機能を使うことができるようになります。SCSS(SASS)については、下の記事で詳しく解説しています。
» CSSコーディングを効率化する!SCSSの特徴と基本的な使い方
またCSSには、Bootstrapなどの便利なフレームワークがいくつもあります。Web系の開発には欠かせないので、CSSのフレームワークについても精通しているといいでしょう。
JavaScript
3つ目は、JavaScriptです。これは、Webページ上でさまざまなプログラムを実行するための言語のこと。HTML要素にエフェクトをつけたり、計算などの処理をさせることもできます。
JavaScriptの例についてあげておきましょう。
document.write('こんにちは!');
上の例では、
document.write();
という関数を使って「こんにちは!」という文章をページに表示しています。JavaScriptはHTMLファイル内に書き込むこともできますが、JavaScript用に別途ファイルを作って、HTMLから読み込む形式が一般的です。
なお、JavaScriptのライブラリの一つにjQueryがあります。jQueryも、Web系の開発では非常によく使われています。jQueryについては下の記事にまとめていますので、よろしければそちらの記事もご覧ください。
» 初心者必見!jQueryの基礎知識と基本的な書き方まとめ
JavaScriptのフレームワークについては、下の記事で解説しています。フロントエンドを中心に紹介していますので、よろしければそちらの記事もご覧ください。
» 【2016年版】JavaScriptフレームワークの大手4選
Web系の開発に使われる言語5選
上で解説したように、HTMLとCSS、JavaScriptの3つはWeb開発の基礎となる技術(言語)です。この3つが欠かせないことはわかりましたが、それに加えて身につけておくべき言語は何なのでしょうか?ここからは、おすすめのWeb系プログラミング言語を5つ、そのメリット・デメリットとともにご紹介していきます。
Java
はじめにご紹介するのは、Javaです。オブジェクト指向の言語で、Web系問わず使われています。1990年代にサン・マイクロシステムズ社によって開発された、歴史の長い言語の一つです。Javaのメリットやデメリットについて見ていきましょう。
メリット
Javaは、オブジェクト指向型のプログラミング言語です。効率的に開発を進めることができますし、保守管理もし易いという特徴があります。オブジェクト指向を学ぶ題材としても、Javaはとても人気です。
Javaで作られた制作物が多いことも、Javaの特徴の一つです。実行環境に依存しないことも後押しとなって、Javaが使われているプロジェクトは多岐に渡ります。そのため、Javaを身につけておけば仕事の幅も広がるでしょう。最近ではAndroidアプリの開発にも使われているので、Javaが使えるエンジニアに対するニーズは依然として高いです。
また、情報が得やすい(参考書、ネットなど)こともJavaの特徴の一つです。Javaを使ったことのあるエンジニアも多いですし、導入事例も多くあります。そういった恩恵が受けられることもJavaのメリットになるでしょう。
デメリット
Javaは後述する言語と比較して、コード量が多く冗長になりがちです。省略することなく、キッチリと書く必要があるからです。だからこそオブジェクト指向を学ぶには格好の題材になっているのですが、一方で生産性が高いとは言えないでしょう。
もう一つデメリットを上げるとすれば、動作速度が遅いということ。遅いと言うと少し言い過ぎかもしれませんが、後述する軽量な言語と比較するとその差がわかります。
PHP
PHPはWeb系に特化した言語です。軽量なスクリプト言語で、サーバサイドで動作します。Webページを作る時に頻繁に使われていて、HTMLやCSSを学んだ後はPHPを学習する方も多いことでしょう。
メリット
PHPはJavaなどの言語と比較して、習得がし易いことがメリットです。他のプログラミング言語を一度学んでいる方はもちろんですが、そうでない全くの初心者でも取り組みやすい言語と言えるでしょう。
PHPは、はじめから備わっている標準関数が豊富です。このことも、PHPのメリットとしてあげられるでしょう。ファイル操作や認証系など、Webサイトやアプリケーションの開発に役立つ、多岐に渡る関数が備わっています。
Web系の開発では、WordPressやMovable TypeなどのCMSを使うことが多いですよね。これらのCMSはPHPを使って作られています。PHPが使えればCMSが使えますし、テーマやプラグインの制作やカスタマイズもできるようになります。Web制作の幅が広がる、ということです。
デメリット
PHPは問題となっている箇所を特定しにくいことがあげられます。あやふやな記述でも動いてしまったりもするので、それが余計に問題箇所をわかりにくくしているとも言われています。
またPHPはWeb系専門のプログラミング言語なので、Web以外の案件ではもちろん使うことができません。
Ruby
まつもとゆきひろ氏が開発した、純国産のプログラミング言語です。Web系の開発で使われるスクリプト型の言語で、WebアプリケーションフレームワークのRuby on Railsの登場もあって国内外で広く使われています。
RubyはRuby on Railsとして使われるケースが多いので、以降はRuby on Railsの特徴を踏まえて解説をしていきます。
メリット
Rubyは開発効率に優れた言語です。Ruby on Railsという秀逸なフレームワークの影響もありますが、少ない期間でWebアプリケーションを開発することができます。コード量が少なくなるので、保守メンテナンスにかかる工数も減らせるでしょう。
Ruby on Railsは最も有名で使われているフレームワークなので、開発に役立つ情報も豊富です。言語を学ぶときはもちろんのこと、実際に開発をスタートしてもいろいろな問題やトラブルに遭遇することがあるでしょう。書籍や参考サイトが優れていることは、大きな助けになります。
デメリット
RubyはPHPなどと比較して、学習にかかるコストは多いです。上述したように情報は簡単に手に入るのですが、フレームワーク特有の書き方にも慣れる必要があります。またコンパイルをしないインタプリタ型のため、プログラムの実行速度の面ではやや不安が残ります。
Python
Rubyと同じく、Pythonもインタプリタ型のプログラミング言語です。簡単な記述で、効率良くプログラムが組めることも特徴です。規模の小さいサービスだけでなく、大企業のWebサイトやアプリケーションでもPythonの採用事例は多いです。例えば、DropboxやInstagramなどもPythonを使って作られています。
メリット
Pythonはシンプルに記述できるよう設計されています。コードが読みやすくなりますし、初心者にとっても取り組みやすい言語だと言えるでしょう。PHPと同様、標準関数も豊富です。
Webに特化したPHPやRubyなどの言語とは異なり、PythonはWeb系以外の開発(デスクトップアプリや組み込み系のアプリなど)もできます。
ところで、最近話題の機械学習(マシンラーニング)でも、Pythonは注目を集めています。もともと数学的な処理が得意なので、統計的な処理や、大量のデータを効率良く扱うことに優れているのです。
デメリット
Pythonのデメリットについても見ておきましょう。
Pythonは記述が少し特殊です。例えば、Pythonはインデントでブロックを表現しています。括弧がない分だけ見た目はシンプルになりますが、慣れるまでは時間がかかるかもしれません。
また国内ではそれほど人気な言語ではないので、日本語の情報がそれほどありません。ただ、公式のオンラインマニュアル(日本語)は質・量ともに優れています。
Perl
最後に取り上げるのは、Perlです。スクリプト型のプログラミング言語で、1987年に登場しました。RubyやPythonなどと比較すると歴史も長く、Perlを使って開発されている制作物は数多くあります。
メリット
インタプリタ型のスクリプト言語は、処理速度が遅いイメージがありますね。その中でもPerlは、処理速度が速い部類に入ります。テキスト処理に優れていることも、特徴としてあげられます。
またPerlにはモジュールという機能があり、モジュールを組み合わせるだけで機能を手早く実装することができます。歴史が長い分、モジュールの種類も豊富です。開発が効率化できるだけでなく、開発のアイデアを得ることもできるでしょう。
デメリット
Perlは非常に優れた言語なのですが、新規の開発案件では採用されることが少なくなってきています。ただし、前述したようにPerlを使って組まれているシステムは大量にあります。Perlを身につけておけば、エンジニアとしての需要は十分に得られることでしょう。
またPerlは歴史の長い言語なので、古い情報が出回っていることが多いです。Perlについて知ろうと思ったら、その情報がいつのものなのか、どのバージョンのPerlに関するものなのかを確認するようにしましょう。
あとがき
Web系の開発で使われる言語についてまとめました。記事内でご紹介したように、最近ではRubyやPythonなどの軽量なスクリプト型言語が圧倒的な支持を集めています。WordPressなどのCMSのベースとなっている、PHPの人気も健在ですね。
記事では取り上げませんでしたが、ご紹介したプログラミング言語を使うためにはUnixやデータベースのスキルが必要になります。Gitなどのバージョン管理やセキュリティなど、その他にも要求されるスキルは多岐に渡ります。
必要な知識・スキルを身につけることを忘れず、開発内容や目的に合わせて最適な言語を選択していくようにしましょう。