私が大学に入学したのが1998年で、その時からプログラミング言語にふれる機会がありました。
プログラミング言語の歴史から、種類別に何に使われるかその用途とか特徴の話をしていければと思います。記憶や理解が曖昧な部分もあるので調べながらお伝えします。
大学当時はUNIXというOSが搭載されたコンピュータを使っていました。当時Windows98は出ていたのですが私は知らなくて大学の授業からUNIXで学び始めたのです。UNIXというのはAT&TというアメリカのNTTみたいな会社が作ったOSで、1970年代から大学等でも使われてたようです。
さて、そんな中で私が初めて学び始めたのが「C言語」でした。C言語ということはA言語やB言語というものもあるのでしょうか。私の理解ではA言語というのはアセンブラ言語のことで、B言語はベーシック言語だと思っていたのですが実は違いました。笑
A言語:通称APL(A Programming Language)
B言語:BCPL(現在は利用されていない)
C言語:Bの次だからCと言われている。初の高水準言語
こんな感じ。まぁこの話は全く知らなくて良いと思いますが、C言語は原点みたいな言語なので知っておいてもよいかと思います。
さて前置きはこれぐらいで、ここからプログラミング言語の種類、どんなシーンで使われるか(用途)、特徴とか歴史を紹介します。
C言語の用途・特徴・歴史
C言語はプログラミング言語の中では誰でも名前を聞いたことがある原点のような言語だと思います。1972年に誕生。
汎用性が高くて、OSも作れるし、ハードウェアとの橋渡し役であるデバイスドライバーも作れるし、ソフトウェアもゲームも作れます。PC上で動くものから家電の組み込みやロボットでも使えます。記憶が確かならWEBのCGIでも動作したと思いますが、あまりWEB系で使うシーンは無いですね。
私が大学に居たときは簡単な計算とかプログラミング言語を学ぶための教材のほとんどはC言語で動作確認できました。後はPCに接続したカメラを制御するのにC言語でプログラミングをしたことがあります。友達はIR(赤外線センサー)を操作するソフトウェアを作っていました。
C言語を学ぶ本として「K&R」カーニハンアンドリッチーというレジェンド的な書籍があって私もそれを読んだことがあります。ポインタを理解するのに苦労したけど、理解してしまえばプログラミングの楽しさがわかる。
JAVAの用途・特徴・歴史
今やC言語よりも人口が多いかもしれない人気度ではほぼ1位といって間違いないのがJAVA言語です。1995年登場。
JAVAも汎用性が高くスタンドアロンなアプリも作れるし、WEBアプリ(サーバーで動作するJava:Servletと、ブラウザで動作するJSP)も作れるし、最近だとAndroidアプリもこの言語ですね。昔JavaApletというWEBに埋め込んで使えるのがあったんですけど、今は使われなくなりました。
大学に居た時にC言語の次に学んだのがこの言語です。ライブラリが豊富で日本語訳やQ&Aも多くて学びやすい言語だと思います。昔NTTドコモの携帯で動作する「iアプリ」という機構があって、それもJAVAで動いてて、私は自作した携帯アプリを入れて遊んでました。10KBまでとか今では考えられない制限があって容量を少なくするのも大変だった。
NTTの業務システムはJAVAで開発されていたと思う。
ベーシックの用途・特徴・歴史
プログラミング言語を学ぶのに入門的な存在として人気だったのがBASIC言語(beginner’s all-purpose symbolic instruction code)です。誕生は1960年代で、70年代から広まった古い言語です。私がPCにふれるようになった90年代では既に使われるシーンが無くなっていたと思います。昔パソコン趣味だったような人種が触ってたケースが多いかもしれません。
COBOLの用途・特徴・歴史
Common Business Oriented Language(共通事務処理用言語)
私は直接お目にかかったことはありませんが、1959年に誕生し現在でも金融系のシステムで現役で可動しているプログラミング言語だったりします。
出来るだけ英語に近づけた言語で読みやすいとは言われています。処理としては料金計算、事務処理などに向いていて日本でもCOBOLを使ったシステムが少なくありません。一方でCOBOLの技術者の減少が著しく(転職や定年なども含め)、企業では早い段階でのCOBOL資産から他言語(主にJAVAかと思われる)への移行を進めたいと思っている所もあります。とは言え脱却が難しい側面も。
彼ら技術者のことをコボラーなんて言いますが引退するか他の言語も同時に扱える技術者も多いです。今後残念ながら扱われるシーンが減っていく言語のように見受けられ、これから初心者が学ぶのにおすすめとは言えないですね。(失礼)
C++の用途・特徴・歴史
C言語の次に出た言語で誕生は1983年。シープラスプラスとかシープラプラなんて呼んだりします。
C言語をオブジェクト指向にした言語で上位互換あり。ライブラリも多くC言語同様で様々な場面で使われます。ゲーム開発では必須の言語と言われています。私が触れたのはビデオ通話をするためのプロトコルの世界規格があって、それをC++で開発する業務に一時従事したことがあります。
この言語も大学で学んだのですが当時の私には理解ができず、このあたりからフェードアウトしていってしまいました。汗。
Microsoft社が出しているWindows向けのVisual Studioという15万円ぐらいする開発支援ツールがあって、そのツールで簡単にプロジェクトを作成できます。これは便利でした。
C#の用途・特徴・歴史
読み方はシーシャープですね。Microsoft社が2000年に開発した言語で、Windows上の.NET Frameworkの一部です。やはりVisual Studio上で開発が可能。Windowsアプリを開発するならこの言語を扱えばよいですし、Androidアプリの開発にも使えるようです。C#よりはC++の方が人口が多いようです。
Visual Basic(Visual Basic.NET)の用途・特徴・歴史
Microsoft社が作った言語で誕生は1991年。Visual Studioで開発します。Basicに似た構文ですし、グラフィカルなインターフェイスで見た目で部品を配置できたりして初心者でも取り組みやすいとされています。Windowsで動くアプリを作るのに最も簡単に実現するならこの言語を選択することになるでしょう。
VBの後に出たのがオブジェクト指向を取り入れたVB.NETで、2001年からはこちらに取って代わられています。
Officeのいろんな機能や関数を扱いつつプログラミングが出来るものにVBA(Visual Basic for Application)があって、これはOfficeの中でコードを書いたりするのですが、言語仕様はVBと同じだと思います。つまりVBが扱えれば当然VBAも使えます。
Perlの用途・特徴・歴史
Perlは1987年に誕生した言語でCやsed、awkといったテキスト処理などのプログラミング言語の影響を受けていて、やはりテキストの整形や出力の印象が強いですね。
大学の時にUNIXやLinuxに標準でインストールされていて、コマンドライン上で正規表現を使って文字列の改変など行うシーンでよく使いました。
1990年~2000年代でインターネット上のWEBページは静的なHTMLが多かった中で動的なWEBアプリケーションを構築するために使われる事が多かったPerlですが昨今はその活躍の場が減ってきています。mixiはPerlで作られてたように思います。
PHPの用途・特徴・歴史
元々はラスマス・ラードフという人が自分のWEBサイトのために作ったツール、それをオープンソース化したことで開発者が参加し多くの人に使われる様になっていった経緯があります。それで今ではWEBで動的なサイトを作ろうと思えばその利便性や簡易性のために非常に多くの人が利用しています。よくあるレンタルサーバー内にもインストールされ簡単にWEBアプリを公開することができます。
企業のオウンドメディアにも使われるブログCMSとして有名なWordPressはPHPで作られています。Laravel、CakePHPなどフレームワークも豊富で大きなWEBアプリ開発にも役に立つでしょう。日本語のQ&Aやリファレンスも充実していてこれからWEBをやりたい人にはお勧めしたい言語と言っても良いでしょう。
Javascriptの用途・特徴・歴史
Javaと名前がついていますがJAVA言語とは全く異なります。元々はNetscapeというブラウザ(今ではほとんどシェアが無く2002年に開発停止)用に作られたスクリプト言語でした。なのでWEBブラウザ上で動作するプログラミング言語なわけです。簡単に言い換えるとホームページ上で何かしら動作させたり(ボタンを動かしたり、詳細検索画面を開いたり、といった)するための言語です。
それをMicrosoftのIE(インターネットエクスプローラー)が実装したことでJavascript自体のシェアが非常に増えていったという歴史があります。今ではSafari、Chrome、Firefoxなど全てのブラウザに実装されています。
HTMLファイルを記述する際にJavascript部分も同時に記述できます。つまりメモ帳とブラウザがあればその場でテストが出来てしまいます。WEB屋さんにとっては必須の技術と言っても良いでしょう。
Pythonの用途・特徴・歴史
歴史は浅くはなく1991年に誕生したプログラミング言語です。WEBアプリケーション開発に使われるシーンが多く、昨今では人工知能の開発に使われることが多い。私自身は触れたことがないのでどこかのタイミングでPythonを使って実装して体感してみようと考えています。
Rubyの用途・特徴・歴史
Rubyは1993年に誕生した日本製(まつもとゆきひろ氏)のプログラミング言語です。国際電気標準会議で国際規格になった初の言語でもあります。それゆえ海外でも利用者が多い言語となりました。
完全なオブジェクト指向で整数や文字列すらもオブジェクトとして扱われています。(例えば”mojiretu”.lengthのように文字列.メソッド名のような記述をしたり。)
クックパッドや食べログ、GitHubはRubyで作られていると言われています。
私が最も最近学んだのがこのRubyでした。Railsというフレームワークを使ってWEBアプリを作成できました。開発者の方が言うには「ストレスなくプログラミングを楽しむ」ことを目的にしているようですが、個人的にはストレスしかなかった(ヽ´ω`) けど多くの技術者がこの言語を支持しているので私がしょぼいってのを露呈しただけなんですが‥個人的にはお薦めはしにくい。
最後に
プログラミング言語は世界に1000種類を超えるほど存在しているそうです。その中でもメジャーなものに焦点をあててきました。これからプログラミングを学ぼうとする方の参考になれば幸いです。
どのプログラミング言語を学ぶか、選び方はまた別途記事にしたいと思います。
関連記事一覧
多様なプログラミング言語を教えているスクール特集
もっと初心者向けの特集記事