【企画】いろいろなプログラミング言語の特徴を知ろう!
最近は船橋フェイスの飲食店の記事しか書いていませんでしたが、
そろそろエンジニア(プログラマー)っぽい記事も作っていこうと思います。
エンジニアっぽい記事の企画第一弾として、プログラミング言語をテーマにしようと思います。
なぜプログラミング言語か
プログラミング言語いうと、今時(2017年時点)のおじさん世代としては昔から馴染みのあるCとかJavaが定番だったり、若者はRubyとかが好きなのかなーという印象ですね。
ぐぐってみると、人気のプログラミング言語や、収入の多いプログラミング言語などの情報が出てきます。世界を見渡すとPythonやJavaScriptの人気が高まっているような感じがします。
Web開発ではPHPが幅広く使われているし、銀行の古いシステム等ではCOBOLが使われているなど、業種やサービスによって使われる言語の特徴があります。
新しい言語もどんどん現れていますし、昔は使われていたけど今は廃れてしまったという物もあります。
何か新しいサービスを開発したり、古いシステムを作り変える際などには適切な言語を選ぶ必要がありますが、そのためには様々な言語の特徴、メリットやデメリットを知っておくことが必要とされます。
また、さまざまな言語の仕様やライブラリ、設計思想を知る事で、これを応用してほかの言語を使った開発にも活かせるという場面が出てくるという考え方もできます。
良いエンジニアを目指すためにも、様々なプログラミング言語の本を最低1冊は読んでおいて、特徴を知るようにしていきたいと思います。
調べるプログラミング言語
現在存在するプログラミング言語の数は、マイナーな物も含めると数百種類はあるとされています。
少し前は700種類というデータを本で見ましたが、今は1000ぐらい行ってるかもしれません。
そんなに増やしてどーすんだってペースで増えています。
これらを全て把握する事は到底無理なので、実際のビジネスでも使われていたり、本が出ているような主要な言語にしぼって特徴を把握していこうと思います。
そのリストは以下のものとします。一言特徴とレビュー記事へのリンクを随時追加していきます。アルファベット順に並べています。
- Ada … 「エイダ」と読む。1979年、米国防総省のプロジェクトによって産まれ、兵器開発等に主に用いられたという。
- ALGOL … 「アルゴル」と読む。1950年頃に開発された。構文のネストを始めて可能にした言語らしい。
- AWK …「オーク」と読む。テキストファイルなどのデータ処理に主に用いられる。LINUXのワンライナーとしてよく使われている気がする。
- Bash …「バッシュ」。コマンド等をファイルから読み込んで実行するシェルの一種。
- BASIC …「ベーシック」。1970年代以降、プログラミング初心者用の言語として広く使われた。Visula Basicに影響が残っている。
- C … コンパイル型言語の代表。早い。
- C# … マイクロソフトがC/C++を改良して作った言語。文法規則が厳しかったり、明示的なメモリ解放を排してガーベジコレクションに統一するなど、安全な仕様になっている。
- C++ … Cにオブジェクト指向の概念を導入したもの。
- COBOL
- Common LISP
- Delphi
- Elixir … [レビュー記事]「エリクサー」と読む。マルチコアCPUで効率的に使い、並行処理を簡単に行う機能が備わっている。
- FORTRAN
- Go
- Hack … PHPからの派生言語。VM上で動作する。Facebookが開発した。
- Java … VM上で動作するオブジェクト指向型言語。
- JavaScript … 主にブラウザ等で動作するスクリプト言語。
- LISP
- Lua
- Objectiv-C
- Pascal
- Perl … 構文糖衣が多い事で有名なインタプリタ。
- PHP … Web開発によく使われる。
- Python … 字下げでネスト構造を表すことが出来るスクリプト言語。
- R … 統計解析に使われる言語。型の種類が独特。
- Ruby … Ruby On Railsを用いてWeb開発で使われる事が多い。
- Scala … JavaVMで動作し、Javaのライブラリが使える。
- Smalltalk
- Swift … iPhoneアプリの開発に使う。
- VBScript
じゃっかん古い言語も混ざっていますが、個人的に興味があるものを含めています。
なんとなく興味のあるものから調べていきながら、その先は言語ごとの比較等もやっていきたいと思っています。
記事を追加したり、編集した時には、変更履歴も追記していこうと思います。
まずは、以上です。
変更履歴
- 2017/10/15 当記事作成
- 2017/10/24 Elixir記事追加