サーバサイドプログラミング言語の概要

更新:2016/12/30

WEBアプリケーション構築の要になるのが、サーバサイドプログラミングです。
ここでは、各種サーバサイドプログラミング言語について、概要を説明したいと思います。

Lightweight Language(LL)

WEB開発に使われる言語にはさまざまなものがあります。
その中で大別すると、コンパイルが必要な非LLと、コンパイルが不要なLL(インタプリタ言語)があります。
両者の違いとしては以下となります。

非LL(コンパイル言語)の特徴

  • 対象の言語: C、C++、Objective C、JAVA
  • 動作が速い
  • Webサーバ上で動作させるためにコンパイルしなければならないため、開発や運用が手間

LLの特徴

  • 対象の言語: PHP、perl、ruby、python、javascript
  • コンパイル言語に比べて動作が遅い
  • コンパイルせずに、ソースコードのままWebサーバ上で動作させられるため、開発や運用が楽
  • LL≒インタプリタ言語≒スクリプト言語

また、WEB開発においてはLLが使われることが多くなっています。
理由としては、以下のようなものがあります。

WEB開発でLLがよく使われる理由

  • 動作速度はWEBサーバ分散でカバーできる
  • 開発とテストがしやすく、コストを抑えられる
  • 結果としてスピーディなリリースサイクルを組める

学ぶべき言語

ここまでの内容ですとLLの方が有利に見えますが、必ずしもLLだけを学べばOKというわけでもありません。
こんどはそれぞれの言語について個別にご案内したいと思います。

★PHP

とりあえずWEBで何かを作ってみたい、ということでしたら、LLのPHPが一番お勧めです。
PHPはWEB開発のための設計された言語なだけあり、WEB開発にもっとも適した言語のひとつです。
流行などもいろいろありますが、実務での案件数や実績で考えても有力な選択肢です。
PHPで作られているサービスは、『facebook』『Yahoo』などがあります。

ruby

ruby on railsをきっかけに人気爆発した国産LLです。
これから勉強をはじめるなら、お勧めのひとつです。
ruby(ruby on rails)で作られているサービスは、『Twitter』『クックパッド』『Hulu』などがあります。

★Java

非LLではありますが、WEB用途でも多数の実績があります。
言語仕様が堅牢で信頼性が高いため、大規模な開発や業務システムの開発に用いられます。
そのためWEBのベンチャー企業というより、大きなシステム会社で使われるイメージです。
LLの習得に比べると、勉強時間がかかります。
しかし、Javaで使用するオブジェクト指向やエラー処理やその他もろもろの考え方は、他の言語でも流用できます。
そのため、JavaをきわめておけばLLはすぐに覚えられると思います。

python

科学技術関連のライブラリが多く、研究などによく使われます。
WEB開発にも使えますがあまり見ません。
最近流行の機械学習系では、『caffe』『tensorflow』などのプロダクトがありますが、これらもpythonです。

javascript(Node.js)

javascriptをサーバ側で動作させる技術です。
歴史が浅いため、実務志向でいくと特にお勧めはしません。
別の言語をきちんと学んだ上で、実験的に触る分にはいいと思います。

★シェルスクリプト

サーバ上で動作するスクリプト言語です。
サーバ管理をする場合は、非常にさまざまなケースで有用です。
データのバックアップをとったり、負荷を分析したり。
サーバ管理を自動化しようと常に意識していれば、自然と身についていくと思います。

★C

サーバミドルウェアは基本的にはC言語で書かれています。
そのため、チューニングや不具合調査を掘り下げていくと、稀にPHPやJAVAなどを実行するランタイム自体のソースコードを読まなければならなくなります。
apacheの動作などについても、不可解な部分があったらソースコードを検索してみると納得できたりします。
一定水準以上のエンジニアを目指すなら、C言語の基本は理解しておくことが必要だと思います。
また、C言語の理解が結果として、アーキテクチャの本質的な理解につながります。

ソースコードのバージョン管理

プログラム開発をしていると、ソースコードのバージョン管理が煩雑になってきます。
そこで一般には、GitやSVNなどのツールを使って管理します。
チーム開発では必須ですし、個人開発でもぜひ利用した方がよいツールです。
Windows用のクライアントとしては、『SourceTree』『TortoiseGit』や『TortoiseSVN』があります。
現在はGitが主流なので、ぜひGitを使ってみてください。
GitHubというGitリポジトリのホスティングサービスが便利です。
GitHubでは、『公開リポジトリの作成:無料』『チーム内での利用:有料』といったプランがあります。

まとめ

WEB系の就職ならPHPやruby、大規模開発のSI指向ならJavaの学習をお勧めします。
プログラミング一本でやっていくなら、LLの流行を漁るよりも、C言語レベルのミドルウェアの理解がある方がいいと思います。

このページをシェア Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedIn