ときか姉(ねえ)です♪
「初心者だけどプログラミングを始めてみたい」
「プログラミング言語にはどんな種類があるの?」
こういう疑問をもつ方はいらっしゃると思います。
本記事では、これからエンジニアを目指すという初心者のために、プログラミング言語の一覧とその用途を紹介していきます。
プログラミング言語は、ざっくりと以下のようなものに分類されます。
- バックエンド言語
- フロントエンド言語
- データベース言語
- モバイルアプリ開発言語
- 機械学習・AI開発言語
- 組み込み系言語
- 汎用機系言語
以下に、それぞれの詳細を記します。
[↓こちらの記事も合わせてどうぞ♪]
バックエンド言語
バックエンド言語は、Webアプリケーションやサーバーサイドの開発に使用されるプログラミング言語です。いわばWebやアプリの見えない「裏方」で動作するしくみ作りを担う言語です。以下にいくつか一般的なバックエンド言語を紹介します。
Javaは堅牢性とスケーラビリティに優れた言語で、大規模なシステム開発にもよく使われている言語です。Javaはオブジェクト指向プログラミングに基づいており、歴史が古いため幅広いフレームワークが利用できます。
Rubyはシンプルかつエレガントな構文を持つ国産言語です。最近ですとRuby on Railsフレームワークとの組み合わせがWebアプリ開発において非常に人気です。学習コストが低いため初心者にもおすすめです。
PHPはWeb開発に特化した言語で、WordPressのようなCMS(Contents Management System)にも使用されています。広範なサポートが充実していることと情報リソースが豊富なため初心者にも人気です。
Pythonはシンプルで可読性が高いため人気のある言語です。AI系で盛んに用いられています。豊富なライブラリやフレームワークがあり、Webアプリケーション開発にも広く使用されています。
他にもMicrosoftが開発したC#や、その親類であるC言語やC++なども用いられることが多いです。
また、Google発のGo言語などもあります。こちらは構文がシンプルにも関わらず汎用性が高く高速処理も可能なため、今後の需要も見込まれる言語です。その割に習得コストが高すぎないため初心者にもおすすめです。
フロントエンド言語
フロントエンド言語とは、WebサイトやWebアプリケーションのユーザーインターフェース(UI)を構築するために使用される言語のことです。
前項はバックエンドを構築するための言語という意味で、いわば「裏方」のようなものです。対してこのフロントエンドは「外見」のようなものです。
主要なフロントエンド言語には、HTMLやCSS, JavaScriptなどがあります。
HTML(Hyper Text Markup Language)は、Webページをタイトル、小見出しなどのように構造化した文書を扱うためのものです。既存WebサイトのほとんどがHTMLで記述されています。
CSSは、HTMLで書かれたWebサイトのスタイルを決めるものです。フォントの色やサイズなど、見栄えを整えるためにHTMLとは別途記載されるスタイルシートです。HTMLと別に記述することで、内容はそのままでスタイルのみ変更するなどが可能となります。
JavaScriptは前述のバックエンドでも紹介しましたが、フロントエンドでも用いられています。ポップアップウインドウやアニメーションのようにWebサイトに「動き」を与えるための言語です。フロントエンド・バックエンドどちらにおいても動的な要素を扱うための言語のため、アプリケーション開発においても需要が高いです。
最近では、このJavaScriptのフレームワークを利用したReactやVue.js, Next.jsなどのフレームワークもリリースされており、これらを用いた開発も盛んになってきています。フロントエンドの開発は多様かつ独自性もある程度求められるため、ライブラリやフレームワークも豊富です。
取り組む言語は、開発目的や習得までのコストによって選ぶと良いです。将来しっかりとWebサイト制作やWebデザインに関わりたいという方はHTMLやCSS, JavaScriptは必須かなと思います。さしあたり簡単なWebページを作ってみたいだけであれば、学習コストの低いフレームワークを用いて制作の流れを掴んでみるという入り方も良いかも知れません。
データベース言語
データを構造化させるなど、データへのアクセスや管理を便利にする仕組みのことをデータベースと言います。そのデータベースを扱う言語がデータベース言語です。主にデータの定義や整理、更新を行い、必要に応じてデータベース内の情報検索やアクセスするための権限管理なども担います。
データベースには、ユーザーが扱いやすいような形で情報が蓄積されていて、その構造自体はある程度秘匿していながらも、要求に応じて適切に情報抽出できるように設計されています。データベースに対するいわば問い合わせであるこの要求はクエリと呼ばれており、このクエリを投げるための命令とルールがデータベース言語になります。
データベースにもいくつか種類がありますが、現在はリレーショナル(関係)データベース(Relational Database, RDB)と呼ばれるタイプのものが主流となっています。リレーショナルデータベースは表形式のデータベースであり、特有の仕組みを利用することによって、必要なデータを組み合わせにより引き出せる点が特徴です。顧客管理などに適しており、多くの企業で活用されています。
このRDBを扱う言語としてはSQLがあります。SQLはISO(国際標準化機構)によって規格が標準化されており、汎用性が高い言語となっています。
一方RDBには、画像や音声データに対応できないことや、大規模データになると処理速度が遅くなるなどのデメリットもあります。
インターネットコンテンツの発展や通信速度の向上により音声や動画データなどを扱うようになったこともあり、XML(Extensible Markup Language)というデータベース形式も生まれました。ウェブサイトのデータを格納・送信するのに適した仕様になっています。
このXML形式を扱うには、XQueryと呼ばれる言語を用い、Web上のデータ検索や抽出・要約などを行います。
初心者の方がデータベースの知識を習得したいという第一歩としてはSQLをおすすめします。もし業務の関係でデータベース言語を選ぶという場合には、扱うデータベースの種類や開発環境に合わせて選びましょう。
モバイルアプリ開発言語
モバイルアプリ開発に使用される言語は、プラットフォームによって異なります。主要なモバイルアプリプラットフォームであるiOSとAndroidの開発言語をそれぞれ解説します。
Android開発においては、古くからはC++やJavaが用いられてきました。C++はC言語の機能を拡張したオブジェクト指向型のプログラミング言語です。C言語と互換性があり、高速な処理が可能ですが、習得難易度は高いです。
JavaはWebでの動作を想定して開発された言語のため、基本的にどのような環境でも使えるというのが特徴です。C++もJavaも1900年代に開発された言語であるため資料が豊富なのは良い点です。
2010年以降に、Androidアプリ用としてこのJavaをさらに簡潔にしたKotlinが開発されました。Javaと互換性があり、セキュリティも向上しているため、これからAndroidアプリを開発したいという方におすすめです。
iOS開発においては、かつてはObjective-Cが用いられてきました。C++と同様、C言語をベースにしています。SwiftはApple社が2014年に開発した言語です。Objective-Cよりも簡潔で直感的な文法が特徴で、iOSやMacOSなどのアプリケーション開発に長けています。これからiOSアプリの開発を始めたい方におすすめです。
ほかにも、iOSとAndroidの両方で動作するアプリを開発できるクロスプラットフォーム型のフレームワークもあります。JavaScriptを用いるReact NativeやDart言語にもとづいたFlutterなどがそうです。どちらもiOSとAndroidの両方のプラットフォームで動作するアプリを開発できます。
開発したアプリを広くリリースしたいという方にはクロスプラットフォーム対応言語は確かに魅力的です。しかしプラットフォームによって微妙な仕様が異なり、その対応にはある程度のスキルが求められるため初心者にはおすすめしません。初心者の方は、iOSかAndroidかをまず決めて、それぞれに対応する言語を選ぶと良いでしょう。
機械学習・AI系言語
近年の発展目覚ましい機械学習やAI開発に用いられるプログラミング言語としては、代表的なものとしてJavaScript, R, Pythonなどがあります。
JavaScriptはWeb開発においても頻繁に用いられますが、機械学習分野でも盛んに用いられています。
古典的な言語としてはJavaやC++なども用いられることもあります。
R言語は統計解析に特化したプログラミング言語で、データの前処理や統計解析に適しており、統計モデルの構築や可視化なども容易に行うことができます。
Pythonは、豊富なライブラリやフレームワークが利用できます。TensorFlow, PyTorch, scikit-learnなどの機械学習ライブラリがよく用いられています。scikit-learnは機械学習の古典的なライブラリで、公式ドキュメントも充実しています。
TensorFlowとPyTorchは、ディープラーニングや強化学習なども数行で実行できるよう設計されています。またディープラーニングではずせない高速計算のためのGPU演算にも対応しています。
これらの言語は、それぞれ特徴や利用用途が異なりますが、どの言語でも機械学習やAI開発は可能です。
2023年現在機械学習・AI開発においては、Pythonが最も一般的に使用される言語であり、機械学習ライブラリやフレームワークが豊富なのはもちろんのこと、独習のためのドキュメントも豊富なため、これから学ぶ方にはPythonをおすすめします。
組み込み系言語
組み込み系言語とは、家電製品や電子機器など、独立したハードウェアの中に組み込まれたコンピュータを制御するためのものです。
組み込み系言語は、ハードウェアに近い処理を行うため様々な産業や分野で利用されており、扱う人材として経験豊富なプログラマーが求められることが多いです。
組み込み系言語には、C言語やC++言語、アセンブリなどがあります。これらの言語は、メモリ操作に秀でているため、リソース使用量や速度などの制約がある場合でも、高いパフォーマンスを発揮できます。
最近では、Pythonなどの高水準言語でも、ライブラリを使用することで、組み込みシステムの制御や処理を行うことができます。Pythonは、可読性が高く開発効率の面で優れているため、最近では組み込み系の開発でも頻繁に利用されています。
汎用機系言語
汎用機とは、業務用の大型コンピュータのことで、メインフーレム、ホストコンピュータなどと呼ばれることもあります。政府機関や金融機関など、大規模データを扱う企業や機関に設置され、基幹システムとして用いられています。
汎用機系システムに使用されている言語の代表的なものとしては、COBOL, FORTAN, Javaなどです。FORTLANは科学技術計算などにも用いられています。なかでもCOBOLの利用率が高いと言われています。
このCOBOLは、汎用機以外の一般的なシステム開発で導入される機会が減ってきており、扱える人材も少なくなってきています。
COBOLによる管理システムをJavaやほかの言語に変換するようなサービスも創出されており、モダンな言語への移行が今後も進むことが予想されます。同時に、新規システム開発は減少していく可能性が高いです。そのため、今後の汎用系システムの開発は、現行システムの保守、再構築などが中心となることが想定されます。
初心者がいきなり汎用機系言語を学び始めるケースは少ないです。業務で携わる必要があるという方は、長期的な運用方針をよく確認してから取り組む必要があるでしょう。
まとめ
以上、主なプログラミング言語について挙げてみました。
これからプログラミングを始めるor始めてみたいという方の参考になれば幸いです。
♪♪♪ Have a nice coding day ♪♪♪
[↓こちらの記事もあわせてどうぞ♪]
[トレード口座開設はコチラ↓]
コメント