はじめに
プログラミング言語を学びたいけど、最初はどの言語が良いのだろうか🤔
調べてみると何十種類もの言語があって、全部学ぶのは難しい😔
eightとしては、学習として始めるならC言語かPythonをおすすめしますが、まずは自分が目指す業種はどの言語が主流なのか、調べてみた方が良いですね。
この記事では、エンジニアの業種(区分)と、近年使われている主要な言語と特徴について、簡単にまとめてみます。
それぞれの詳しい使い方は、別記事とする予定です。
なお、プログラミング言語の話で必ず登場する概念として、「オブジェクト指向」というものがあります。
C言語より後の世代の言語にはほぼ取り入れられている概念ですが、少々複雑な内容であるため、今回の話からは省くこととします。
エンジニアの区分
IT業界のエンジニアというと、大きく3つに区分されます。
それぞれの特徴を見てみましょう。
・Web系
ブラウザ上のアプリケーションやWebサービス、スマホアプリの開発を行います。
ユーザが直接目にする部分(ホームページの外観やボタンなど)を担当する「フロントエンド」
ユーザからは見えない、サーバ側の処理を担当する「バックエンド」
の2つの分野で成り立ちます。
分野として分かれてはいますが、互いに密接に関係しており、
開発規模によっては複数人で分担することも、全て1人で担当することもあります。
よく使う言語:HTML、Java、JavaScript、Python、Ruby、Swift、Flutter等
・業務系
企業などの組織内でのIT化促進を行います。
業務効率化や、給与・勤怠システムなどの社内システム全般が対象になります。
新規開発もありますが、昔から使われている既存システムの改修も多く、
古い言語や技術が必要とされる場面もあります。
よく使う言語:Java、C++、C#、Python、VBA、等
・組み込み系
家電製品や産業機器など、ハードウェアに組み込むシステム開発を行います。
Web系や業務系は、基本的にはパソコンやスマホのアプリケーションとして提供されるため、
搭載するハードウェアの性能を気にすることはあまりありません。
しかし、組み込み系はハードウェアの性能が比較的低いです。
それでもユーザの操作に追従するために、特殊なOS(組み込み用のリアルタイムOS)と、
それに合わせたソフトウェアのチューニングが必要となります。
よく使う言語:C言語、C++、Java、Perl、等
プログラミング言語と特徴
こちらは言語が登場した年代順にまとめます。
あわせて、1〜10までの数字を画面出力するサンプルプログラムも書いてみます。
C言語
登場時期:1972年
開発:AT&Tベル研究所
実行速度の速さと、ハードウェア制御との親和性が高いのが利点です。
このため、OSやデバイスドライバなど、よりハードウェアに近い部分での利用がメインとなります。
他言語と比較して制約が多く、記述量が多くなりがちです。
また、ハードウェアに近いということは、それだけハードウェア仕様に依存するコードになります。
初心者がよく挫折する点として、「ポインタ」という機能があります。
非常に便利な機能ではあるのですが、理解が難しく、
これが「C言語は習得が難しい」と言われる所以となっています。
1〜10までの数字を画面表示する
#include <stdio.h>
int main(void)
{
for(int i=1; i<=10; i++)
{
printf(“%d\n”, i);
}
return 0;
}
C++
登場時期:1983年
開発:AT&Tベル研究所
C言語を踏襲しつつ、アプリケーション向けにも利用しやすくなりました。
C言語とほぼ同じ記述が可能であるため、C言語からの移植は比較的容易です。
Unreal Engineでも利用されますが、独自の拡張が施されています。
1〜10までの数字を画面表示する
#include <iostream>
#include <string>
using namespace std;
int main(void)
{
for(int i=1; i<=10; i++)
{
cout << i << endl;
}
return 0;
}
Perl
登場時期:1987年
開発:ラリー・ウォール
文字列処理が強力で、正規表現を利用することができます。
ファイルから文字列を抜き出したり、ファイルへ出力するときなどによく使われます。
製品開発の主言語になることはあまりありませんが、開発の補助ツールとして間接的に活躍します。
1〜10までの数字を画面表示する
for(my $i=1; $i<=10; $i++)
{
print “$i\n”
}
Python
登場時期:1991年
開発:グイド・ヴァン・ロッサム
近年、特にWeb系でよく使われるようになってきた言語です。
人工知能や機械学習の分野にも取り入れられています。
人間が読みやすく、効率の良いコードを簡潔に記述できるよう設計されており、専門的なライブラリも豊富に用意されています。
1〜10までの数字を画面表示する
for i in range(1, 11):
print(i)
Visual Basic for Applications (VBA)
登場時期:1993年
開発:Microsoft
Microsoft Office製品に搭載されており、主にExcelマクロとして使われています。
Excel自体、開発現場でよく利用されており、Excelマクロで補助ツールを作成します。
たとえば、データをExcelで編集しやすい表として成型しておき、それをVBAでヘッダファイルとして出力する、といった使い方ができます。
1〜10までの数字を画面出力する
Sub func()
Dim i As Integer
For i = 1 To 10
MsgBox i
Next i
End Sub
Java
登場時期:1995年
開発:サン・マイクロシステムズ
他言語と大きく異なるのは、仮想マシンを内臓していることです。
これにより、セキュリティ性とプラットフォーム(ハードウェア)非依存性を向上させることができます。
仮想マシン上での実行となるため、ハードウェアの違いを吸収できますが、実行速度は低速です。
1〜10までの数字を画面出力する
class sample1
{
public static void main(String[] args)
{
for (int i=1; i<=10; i++)
{
System.out.println(i);
}
}
}
JavaScript
登場時期:1995年
開発:ネットスケープコミュニケーションズ
名前に「Java」と入っていますが、別の言語です。
WebサイトやWebアプリなど、ブラウザを利用するシステム開発(フロントエンド)を得意としています。
ホームページ内にボタンやプルダウンメニュー、画像などを配置したとき、それらをクリックした際の動作をJavaScriptで作成します。
1〜10までの数字を画面出力する
for(let i=1; i<=10; i++)
{
console.log(i);
}
Ruby
登場時期:1995年
開発:まつもとゆきひろ
日本で開発された、可読性を重視した言語です。
ECサイト、ブログサイト、アプリケーションサイトなどのWebサイト開発が得意です。
他言語は基本的に2byte文字(ひらがな、カタカタ、漢字など)を使用できませんが、Rubyでは変数名に2byte文字を使用することが可能です。
1〜10までの数字を画面出力する
for i in 1..10 do
puts(i)
end
C#
登場時期:2000年
開発:Microsoft
もともとはWindowsの.NET Framework上で動作することを前提としていましたが、現在は様々な環境で開発可能となっています。
「C」と名が付いていますが、特性はJavaに似ており、記述量が少なく済みます。
主にWeb系やGUIアプリ開発、Unityで利用されます。
1〜10までの数字を画面表示する
for(int i=1; i<=10; i++)
{
System.Console.WriteLine(i);
}
Kotlin
登場時期:2011年
開発:JetBrains
Javaをさらに簡潔・安全になるように開発された言語です。Java同様、仮想マシン上で動作します。
主にAndroid開発で利用されています。
Javaとの相互利用が可能で、KotlinからJavaを、JavaからKotlinを呼び出すことができます。
コード実行時のエラーが発生しにくく、安全性が高いです。
1〜10までの数字を画面出力する
fun main(args: Array<String>)
{
for(i in 1..10)
{
println(i);
}
}
Dart
登場時期:2011年
開発:Google
JavaScriptの問題点を解決し、代替となるために開発された言語です。
パフォーマンスやセキュリティ面が強化されています。
近年では、モバイルアプリ開発用フレームワークであるFlutterで利用されています。
1〜10までの数字を画面表示する
void main()
{
for (var i = 1; i <= 10; i++)
{
print(i);
}
}
Swift
登場時期:2014年
開発:Apple
主にiOS機器のアプリ開発に使用されます。
Swiftの登場前はObjective-Cという言語が主流でしたが、Swiftのほうがより高機能で、処理速度も速いことから、Swiftへ移行する企業が増えています。
英文に近い表記で、可読性が高いことがポイントです。
iOS向けの言語であり、Mac環境でしか使えないと思っていましたが、改めて調べてみるとWindows環境で使えるようにする方法があるようです。
こちらは別途試してみます。
1〜10までの数字を画面表示する
for i in 1…10 {
print(i)
}
まとめ
ここまで紹介したプログラミングの種類と特徴をまとめます。
プログラミング言語 | 特徴 | 習得難易度 |
C言語 | ・処理速度が速い ・ドライバ開発が得意 ・コードが煩雑になりやすい ・ハードへの依存性が高い | 高 |
C++ | ・処理速度が速い ・大規模開発が得意 ・言語仕様が複雑 | 高 |
Perl | ・文字列処理が得意 ・開発補助ツール向き | 高 |
Python | ・人工知能や機械学習分野が得意 ・コードが簡単 | 低 |
VBA | ・開発補助ツール向き | 低 |
Java | ・ハードへの依存性が低い ・処理速度が遅い | 高 |
JavaScript | ・Web開発が得意 ・ライブラリが豊富 | 低 |
Ruby | ・可読性が高い ・コードの柔軟性が高い | 低 |
C# | ・処理速度が速い ・Windows向け開発が得意 ・コードが長くなりやすい | 中 |
Kotlin | ・記述が簡単 ・Android開発向き ・ハードへの依存性が低い ・処理速度が遅い | 中 |
Dart | ・大規模開発が得意 ・Android、iOS向き | 高 |
Swift | ・コードが簡単 ・iOS開発向き | 中 |
さいごに
主要な言語だけ取り上げても12種類となりましたが、プログラミング言語は他に何種類もあります。
言語によって得手不得手があるため、作りたいものによって適切な言語を選択しましょう。
次回から、各プログラミング言語の詳細について書いていこうと考えています。
ありがとうございました☺️
コメント