C言語から派生した言語の種類を数えてみた

C#/C#.net


C言語は、1972年にB言語を改良して作られた言語で、プログラミング言語としては長い歴史を持っています。以来、40年以上に渡って今日でも現役で使用されているメジャーな言語です。現在、たくさんのプログラミング言語がありますが、それぞれの言語は影響を受けたり、与えたりして互いに影響しあっています。

Cから派生した(影響を与えた)言語は現在のところ、13種類あります。なお、この13種類という数は、言語のバージョン違い(C#1.0~6.0など)やアップデート(C++98~14など)などをひとまとめにした数ですので、それを含めますともっと数は増えます。影響の受け方は各言語によって違いますし、ほとんどの言語は複数の言語から影響を受けていますので、C以外の言語の要素も取り入れられています。

この記事では、Cから派生した言語についてCとの関係性や特徴などを紹介していきます。

C++

C++は、1983年にC言語の拡張として作られました。まずは、オブジェクト指向言語としてクラスの概念が取り込まれ、その後、多数の機能が取り入れられる中で標準規格が制定され、2016年現在ではC++14まで拡張が続いています。また、次の標準規格も2017年に制定が予定されており、C++17へとさらなる拡張が続けられています。

長い歴史の中でC++は多数の機能を取り込んできましたが、その影響で言語仕様が肥大化し、言語習得の障害になっています。とはいえ、TIOBEランキング(プログラミング言語のトレンドランキング)では、Cに続き3位を獲得している(2016年3月現在)など、長らくメジャー言語のポジションにありますので、十分に習得する価値のある言語です。

主な処理系(コンパイラ)としては、Visual C++やC++ Builder、Intel C++ Compilerなどが有名です。中でもVisual C++はVisual Studioという強力なIDE(統合開発環境)がありますので、生産性の高い開発が可能となっております。

PHP


PHPは、1995年に動的なウェブページを作成するために開発されました。文法がCに似ており、PHP自体もCで開発されています。HTMLを動的に作成することを目的に開発されたので、HTMLにPHPコードを埋め込んで実行できるのが特徴です。たくさんのフレームワーク(開発の基盤となるプログラム)がオープンソースで提供されていますので、それを利用することで開発のコストを下げ、スピーディに開発することができます。

2016年現在では、ウェブサービス開発において日本で最も使用されている言語です。当然、開発案件も多いので習得するメリットが大きいです。開発環境としては、PHP Storm IDEが有名ですが、軽量言語のためSublime Textなどのテキストエディタを使用する開発者も多数います。

Perl

Perlは、強力なテキスト処理を搭載した言語です。文法はCに似ていますが、Cにない文法やキーワードが追加されています。サブルーチンや制御構造など手続き型の要素はCから引き継いでいますが、他にも多数の言語から機能を取り入れています。

開発環境としてはPadreが有名ですが、テキストエディタのみでも問題ありません。以前は、CGI(ウェブサーバープログラム)によく使用されていましたが、2016年現在ではPHPが主流となっており、Perlが使われることは少なくなりました。とはいえ、Perlは強力なテキスト処理が可能ですので、テキスト処理の分野では重宝します。

2015年12月にはメジャーバージョンアップとしてPerl6がリリースされました。前バージョンのPerl5から大幅な変更が行われており、ほとんど別の言語になっています。Perl5までとPerl6には互換性がないため、学び始める前にどちらか決めておいたほうが良さそうです。

Objective-C

Objective-Cは、C言語にSmalltalkのオブジェクト指向の機能を融合させた言語です。Cからの派生言語ですが、独特の言語構文を持っています。昔からMac OS用アプリケーションの開発言語として使われていましたが、iOSアプリの開発言語としても使われるようになってから急速に広まりました。しかし、最近iOSアプリの開発言語としてSwiftが採用され始めたことで移行が進んでいます。

主にMac OSやiOSの開発言語として使われているため、開発環境もMac OS用のXcodeが有名です。2016年現在ではSwiftのリリースによって急速にその地位を失いつつありますが、Swiftと共存が可能となっておりますし、過去のObjective-C資産もまだ残っていますので、しばらくは使われ続けるでしょう。

Java


Javaは、仮想マシン(プログラムを動作させる基盤)を導入することで、同じプログラムコードでさまざまな環境で動作するアプリケーションの開発を可能にしました。構文はCやC++を継承していますのでよく似ています。その一方で、Cで使用可能だったポインタなどバグを引き起こしがちだった危険な機能を取り除き、変数の型を強く型付けすることで堅牢なプログラムを作成できるようにしました。

2016年現在では、Cを引き離して圧倒的なシェアを誇っており、当分はJavaの地位が揺らぐことはないでしょう。また、Androidアプリの開発言語として採用されていますので、それもまたシェアの上昇に貢献しています。

Javaは、オープンソースのフレームワーク(開発の基盤となるプログラム)やライブラリ(プログラム部品をまとめたもの)が非常にたくさんありますので便利な半面、言語の他に学ぶことが多くなりがちです。しかし、Javaは使用できる範囲が広いのでマスターした時の見返りは大きいでしょう。現在の最新バージョンはJava8で、次期バージョンのJava9も開発中となっております。主要な開発環境としては、無料のEclipseやAndroid Studioなどがありますし、有料のものも多数あります。

JavaScript

JavaScriptは、ブラウザで動作するプログラムを開発するために作られました。名前にJavaとついていますが、歴史的な経緯(当時Javaが人気だったからなど)でつけられただけですので、直接的な関係はなく全く別の言語です。とはいえ、構文はCから受け継いでいますのでJavaともよく似ています。近年のウェブアプリケーションの流行とともに価値が見直され、一気にメジャーな言語に上り詰めました。

動作環境はブラウザのみならず、Node.jsなどでサーバーサイドのプログラムにも使用されるようになり、サーバーとクライアントの開発言語を統一するメリットが生まれています。標準化はECMAScriptという名称で行われており、2015年6月にはECMAScript 2015として大幅なバージョンアップが行われました。今後は定期的に小規模なアップデートが予定されています。

2016年現在では、JavaScriptを使用していないウェブサイトはほぼないと言ってもいいでしょう。多くのウェブサイトで、jQueryをはじめとするライブラリやフレームワークが使用されており、もはやウェブに無くてはならないものとなっております。しかし、JavaScriptはその生まれもあり大規模開発には不向きでした。そのため、その弱点を克服するためにAltJSと呼ばれる代替言語(TypeScriptDartなど)が開発されました。このAltJSで書いたプログラムは最終的にJavaScriptに変換されブラウザなどで実行されるというわけです。

C#

C#は、Javaと同じく.NET Frameworkという仮想マシン上で動作するプログラミング言語です。構文はC言語を踏襲しており、Cに無い構文などはDelphiから受け継いでいます。開発環境であるVisual Studioと強い関係性を持っていて、C#のバージョンアップも同時に行われることが多くあります。

開発環境としては、もちろんテキストエディタでの開発も可能ですが、Visual StudioがC#の開発を強力にサポートしてくれますので、これを使わない手はないでしょう。しかも、無料です。また、C#にはWinFormsやWPF、ASP.NET、Entity Frameworkなどマイクロソフト謹製の強力なフレームワークがありますので、更に生産性を高めてくれます。

TIOBEランキングでは、C++に続き4位を獲得しています(2016年3月現在)。2016年現在のところ、マイクロソフトが最も力を入れている主要言語のひとつで、Windowsプラットフォームの開発で採用されることが多い言語です。Javaとは違い、.NET FrameworkはWindowsに最初からインストールされていますので、別途インストールする必要がありません(ただし、すべてのバージョンがインストールされているわけではない)。

Python

Pythonは、読みやすさを追求した言語で、同じプログラムでもCより短いコードを書くことができます。Cが波括弧({})でブロックを表すのに対し、Pythonではインデントでブロックを表現するため、Cのような曖昧さや読みづらさの問題がありません。一方、制御構文自体はCから受け継いでいます。主要な実行環境であるCPythonは、その名の通りCで書かれています。

2016年現在、Pythonは日本ではあまり人気のない言語ですが、TIOBEランキングでPHPを抜いて5位に躍り出ました(2016年3月現在)。人工知能の分野である機械学習や統計解析などで活用されており、これから人気が出てくることが予想される言語です。開発環境には、PyCharmなどがあり、フレームワークとしてはDjangoが有名です。

まとめ

C言語は1973年に登場して以来、たくさんの言語に直接的・間接的に影響を与え続けています。影響を受けた言語には、共通点がありますので、C派生の言語を一つ学習すれば、その知識は他のC派生言語でも活かせることでしょう。あなたの気になる言語は見つかりましたか?

>>リモートワーク案件も充実!C#/C#.netのフリーランス求人案件をクラウドテックで探す

関連記事