この記事を書くきっかけ
いろいろなプログラミング言語の特徴を一覧で見たいと思い、記事を作成しました。名前は聞いたことがあるけど、どんな言語か全くわからないときに、その特徴をざっくりと捉えられるようにしました。自分の知っている言語と他の言語を比較できるように、統一感のある構成にしたつもりです。暇なときに見てみてください。
この記事の構成
知名度の高いプログラミング言語を30種類用意しました。
- プログラミング言語の名前
- 特徴
- 主に利用される場面
- プログラムのタスク
- "Hello, World!" を出力するプログラム
- 1から10までの数字をループで表示するプログラム
- 関数を使って2つの数値の合計を計算し、その結果を表示するプログラム
- リンク
これらを一覧で記載しています。
1. Python
- 特徴: シンプルで読みやすい文法
- 主に利用される場面: Web開発、データ解析、機械学習、スクリプト作成
# "Hello, World!" を出力するプログラム
print("Hello, World!")
# 1から10までの数字をループで表示するプログラム
for i in range(1, 11):
print(i)
# 関数を使って2つの数値の合計を計算し、その結果を表示するプログラム
def add(a, b):
return a + b
print(add(5, 3))
2. JavaScript
- 特徴: ウェブブラウザでの動的な動作をサポート
- 主に利用される場面: ウェブ開発、フロントエンド開発、サーバーサイド開発(Node.js)
// "Hello, World!" を出力するプログラム
console.log("Hello, World!");
// 1から10までの数字をループで表示するプログラム
for (let i = 1; i <= 10; i++) {
console.log(i);
}
// 関数を使って2つの数値の合計を計算し、その結果を表示するプログラム
function add(a, b) {
return a + b;
}
console.log(add(5, 3));
3. Java
- 特徴: オブジェクト指向であり、プラットフォームに依存しない
- 主に利用される場面: エンタープライズアプリケーション、Androidアプリケーション開発
// "Hello, World!" を出力するプログラム
public class Main {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
// 1から10までの数字をループで表示するプログラム
public class Main {
public static void main(String[] args) {
for (int i = 1; i <= 10; i++) {
System.out.println(i);
}
}
}
// 関数を使って2つの数値の合計を計算し、その結果を表示するプログラム
public class Main {
public static void main(String[] args) {
System.out.println(add(5, 3));
}
public static int add(int a, int b) {
return a + b;
}
}
4. C++
- 特徴: 高性能でハードウェアへの直接アクセスが可能
- 主に利用される場面: システムプログラミング、ゲーム開発、リアルタイム処理
// "Hello, World!" を出力するプログラム
#include <iostream>
int main() {
std::cout << "Hello, World!" << std::endl;
return 0;
}
// 1から10までの数字をループで表示するプログラム
#include <iostream>
int main() {
for (int i = 1; i <= 10; ++i) {
std::cout << i << std::endl;
}
return 0;
}
// 関数を使って2つの数値の合計を計算し、その結果を表示するプログラム
#include <iostream>
int add(int a, int b) {
return a + b;
}
int main() {
std::cout << add(5, 3) << std::endl;
return 0;
}
5. C#
- 特徴: Microsoftによって開発され、.NETフレームワークと密接に統合
- 主に利用される場面: Windowsアプリケーション開発、Webアプリケーション開発(ASP.NET)
// "Hello, World!" を出力するプログラム
using System;
class Program {
static void Main() {
Console.WriteLine("Hello, World!");
}
}
// 1から10までの数字をループで表示するプログラム
using System;
class Program {
static void Main() {
for (int i = 1; i <= 10; i++) {
Console.WriteLine(i);
}
}
}
// 関数を使って2つの数値の合計を計算し、その結果を表示するプログラム
using System;
class Program {
static void Main() {
Console.WriteLine(Add(5, 3));
}
static int Add(int a, int b) {
return a + b;
}
}
6. PHP
- 特徴: サーバーサイドスクリプトとして主にウェブ開発に使用
- 主に利用される場面: ウェブ開発(特に動的なウェブサイト)
// "Hello, World!" を出力するプログラム
<?php
echo "Hello, World!";
?>
// 1から10までの数字をループで表示するプログラム
<?php
for ($i = 1; $i <= 10; $i++) {
echo $i . "\n";
}
?>
// 関数を使って2つの数値の合計を計算し、その結果を表示するプログラム
<?php
function add($a, $b) {
return $a + $b;
}
echo add(5, 3);
?>
7. Swift
- 特徴: Appleのプラットフォーム向けに設計されたプログラミング言語
- 主に利用される場面: iOSアプリケーション開発、macOSアプリケーション開発
// "Hello, World!" を出力するプログラム
print("Hello, World!")
// 1から10までの数字をループで表示するプログラム
for i in 1...10 {
print(i)
}
// 関数を使って2つの数値の合計を計算し、その結果を表示するプログラム
func add(a: Int, b: Int) -> Int {
return a + b
}
print(add(a: 5, b: 3))
8. Ruby
- 特徴: シンプルかつ柔軟で直感的な文法
- 主に利用される場面: ウェブ開発(Ruby on Rails)
# "Hello, World!" を出力するプログラム
puts "Hello, World!"
# 1から10までの数字をループで表示するプログラム
(1..10).each { |i| puts i }
# 関数を使って2つの数値の合計を計算し、その結果を表示するプログラム
def add(a, b)
a + b
end
puts add(5, 3)
9. TypeScript
- 特徴: JavaScriptに型システムを追加した言語
- 主に利用される場面: 大規模なJavaScriptアプリケーション開発
// "Hello, World!" を出力するプログラム
console.log("Hello, World!");
// 1から10までの数字をループで表示するプログラム
for (let i = 1; i <= 10; i++) {
console.log(i);
}
// 関数を使って2つの数値の合計を計算し、その結果を表示するプログラム
function add(a: number, b: number): number {
return a + b;
}
console.log(add(5, 3));
10. Go
- 特徴: シンプルで効率的な並行処理をサポート
- 主に利用される場面: サーバーサイド開発、クラウドサービス
// "Hello, World!" を出力するプログラム
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
// 1から10までの数字をループで表示するプログラム
package main
import "fmt"
func main() {
for i := 1; i <= 10; i++ {
fmt.Println(i)
}
}
// 関数を使って2つの数値の合計を計算し、その結果を表示するプログラム
package main
import "fmt"
func add(a int, b int) int {
return a + b
}
func main() {
fmt.Println(add(5, 3))
}
11. R
- 特徴: 統計解析やデータ分析に特化
- 主に利用される場面: データサイエンス、統計解析
# "Hello, World!" を出力するプログラム
print("Hello, World!")
# 1から10までの数字をループで表示するプログラム
for (i in 1:10) {
print(i)
}
# 関数を使って2つの数値の合計を計算し、その結果を表示するプログラム
add <- function(a, b) {
return(a + b)
}
print(add(5, 3))
12. Kotlin
- 特徴: Javaと互換性があり、Android開発で広く使われる
- 主に利用される場面: Androidアプリケーション開発
// "Hello, World!" を出力するプログラム
fun main() {
println("Hello, World!")
}
// 1から10までの数字をループで表示するプログラム
fun main() {
for (i in 1..10) {
println(i)
}
}
// 関数を使って2つの数値の合計を計算し、その結果を表示するプログラム
fun add(a: Int, b: Int): Int {
return a + b
}
fun main() {
println(add(5, 3))
}
13. Rust
- 特徴: 安全性と速度を重視したシステムプログラミング言語
- 主に利用される場面: システムプログラミング、ゲーム開発、Webアセンブリ
// "Hello, World!" を出力するプログラム
fn main() {
println!("Hello, World!");
}
// 1から10までの数字をループで表示するプログラム
fn main() {
for i in 1..=10 {
println!("{}", i);
}
}
// 関数を使って2つの数値の合計を計算し、その結果を表示するプログラム
fn add(a: i32, b: i32) -> i32 {
a + b
}
fn main() {
println!("{}", add(5, 3));
}
14. MATLAB
- 特徴: 数値解析や行列計算に特化
- 主に利用される場面: 科学技術計算、エンジニアリング、シミュレーション
% "Hello, World!" を出力するプログラム
disp('Hello, World!')
% 1から10までの数字をループで表示するプログラム
for i = 1:10
disp(i)
end
% 関数を使って2つの数値の合計を計算し、その結果を表示するプログラム
function result = add(a, b)
result = a + b;
end
disp(add(5, 3))
15. Perl
- 特徴: テキスト処理に強い
- 主に利用される場面: テキスト処理、システム管理スクリプト
# "Hello, World!" を出力するプログラム
print "Hello, World!\n";
# 1から10までの数字をループで表示するプログラム
for my $i (1..10) {
print "$i\n";
}
# 関数を使って2つの数値の合計を計算し、その結果を表示するプログラム
sub add {
my ($a, $b) = @_;
return $a + $b;
}
print add(5, 3), "\n";
16. Scala
- 特徴: オブジェクト指向と関数型プログラミングの両方をサポート
- 主に利用される場面: 分散コンピューティング(Apache Spark)、ウェブ開発
// "Hello, World!" を出力するプログラム
object Main extends App {
println("Hello, World!")
}
// 1から10までの数字をループで表示するプログラム
object Main extends App {
for (i <- 1 to 10) {
println(i)
}
}
// 関数を使って2つの数値の合計を計算し、その結果を表示するプログラム
object Main extends App {
def add(a: Int, b: Int): Int = {
a + b
}
println(add(5, 3))
}
17. Lua
- 特徴: 軽量で組み込みスクリプト言語として使われる
- 主に利用される場面: ゲーム開発、組み込みシステム
-- "Hello, World!" を出力するプログラム
print("Hello, World!")
-- 1から10までの数字をループで表示するプログラム
for i = 1, 10 do
print(i)
end
-- 関数を使って2つの数値の合計を計算し、その結果を表示するプログラム
function add(a, b)
return a + b
end
print(add(5, 3))
18. Haskell
- 特徴: 純粋な関数型プログラミング言語
主に利用される場面: 学術研究、関数型プログラミング教育
-- "Hello, World!" を出力するプログラム
main = putStrLn "Hello, World!"
-- 1から10までの数字をループで表示するプログラム
main = mapM_ print [1..10]
-- 関数を使って2つの数値の合計を計算し、その結果を表示するプログラム
add :: Int -> Int -> Int
add a b = a + b
main = print (add 5 3)
19. Objective-C
- 特徴: C言語にオブジェクト指向機能を追加した言語
- 主に利用される場面: iOSアプリケーション開発
// "Hello, World!" を出力するプログラム
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSLog(@"Hello, World!");
}
return 0;
}
// 1から10までの数字をループで表示するプログラム
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
for (int i = 1; i <= 10; i++) {
NSLog(@"%d", i);
}
}
return 0;
}
// 関数を使って2つの数値の合計を計算し、その結果を表示するプログラム
#import <Foundation/Foundation.h>
int add(int a, int b) {
return a + b;
}
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSLog(@"%d", add(5, 3));
}
return 0;
}
20. SQL
- 特徴: データベースの操作言語
- 主に利用される場面: データベース管理、データクエリ
PostgreSQL用のSQLコード
-- "Hello, World!" を出力するプログラム
SELECT 'Hello, World!';
-- 1から10までの数字をループで表示するプログラム
-- ※postgreSQL
CREATE FUNCTION gen_seq_between(start_num INT, end_num INT)
RETURNS SETOF INT AS '
DECLARE
current_num INT;
BEGIN
current_num := start_num;
WHILE current_num <= end_num LOOP
RETURN NEXT current_num;
current_num := current_num + 1;
END LOOP;
END;
' LANGUAGE plpgsql;
SELECT gen_seq_between(1, 10);
-- 関数を使って2つの数値の合計を計算し、その結果を表示するプログラム
CREATE FUNCTION add (IN x int, IN y int, OUT sum int) AS
'SELECT x + y'
LANGUAGE SQL;
SELECT add(1, 2);
21. Visual Basic
- 特徴: 簡単に学べる構文、RAD(Rapid Application Development)をサポート
- 主に利用される場面: Windowsアプリケーション開発
' "Hello, World!" を出力するプログラム
Module HelloWorld
Sub Main()
Console.WriteLine("Hello, World!")
End Sub
End Module
' 1から10までの数字をループで表示するプログラム
Module LoopExample
Sub Main()
For i As Integer = 1 To 10
Console.WriteLine(i)
Next
End Sub
End Module
' 関数を使って2つの数値の合計を計算し、その結果を表示するプログラム
Module FunctionExample
Sub Main()
Console.WriteLine(Add(5, 3))
End Sub
Function Add(a As Integer, b As Integer) As Integer
Return a + b
End Function
End Module
22. Dart
- 特徴: フロントエンド開発向けに設計され、Flutterフレームワークで使用
- 主に利用される場面: モバイルアプリケーション開発(Flutter)
// "Hello, World!" を出力するプログラム
void main() {
print('Hello, World!');
}
// 1から10までの数字をループで表示するプログラム
void main() {
for (var i = 1; i <= 10; i++) {
print(i);
}
}
// 関数を使って2つの数値の合計を計算し、その結果を表示するプログラム
int add(int a, int b) {
return a + b;
}
void main() {
print(add(5, 3));
}
23. Julia
- 特徴: 高性能な数値計算とデータ解析に特化
- 主に利用される場面: データサイエンス、数値解析
# "Hello, World!" を出力するプログラム
println("Hello, World!")
# 1から10までの数字をループで表示するプログラム
for i in 1:10
println(i)
end
# 関数を使って2つの数値の合計を計算し、その結果を表示するプログラム
function add(a, b)
return a + b
end
println(add(5, 3))
24. Shell (Bashなど)
- 特徴: Unixシステム上でのシェルスクリプト言語
- 主に利用される場面: システム管理、スクリプト作成
# "Hello, World!" を出力するプログラム
echo "Hello, World!"
# 1から10までの数字をループで表示するプログラム
for i in {1..10}; do
echo $i
done
# 関数を使って2つの数値の合計を計算し、その結果を表示するプログラム
add() {
echo $(($1 + $2))
}
echo $(add 5 3)
25. Groovy
- 特徴: Javaとの互換性が高く、簡潔な文法
- 主に利用される場面: ビルドスクリプト、テストスクリプト(Gradle)
// "Hello, World!" を出力するプログラム
println 'Hello, World!'
// 1から10までの数字をループで表示するプログラム
for (int i = 1; i <= 10; i++) {
println i
}
// 関数を使って2つの数値の合計を計算し、その結果を表示するプログラム
int add(int a, int b) {
return a + b
}
println add(5, 3)
26. Fortran
- 特徴: 高性能な科学技術計算に特化
- 主に利用される場面: 科学技術計算、数値解析
! "Hello, World!" を出力するプログラム
program HelloWorld
print *, 'Hello, World!'
end program HelloWorld
! 1から10までの数字をループで表示するプログラム
program LoopExample
integer :: i
do i = 1, 10
print *, i
end do
end program LoopExample
! 関数を使って2つの数値の合計を計算し、その結果を表示するプログラム
program FunctionExample
print *, add(5, 3)
contains
integer function add(a, b)
integer, intent(in) :: a, b
add = a + b
end function add
end program FunctionExample
27. Lisp
- 特徴: シンボリック計算に強い、マクロシステム
- 主に利用される場面: AI研究、リスト操作
;; "Hello, World!" を出力するプログラム
(print "Hello, World!")
;; 1から10までの数字をループで表示するプログラム
(loop for i from 1 to 10 do (print i))
;; 関数を使って2つの数値の合計を計算し、その結果を表示するプログラム
(defun add (a b)
(+ a b))
(print (add 5 3))
28. F#
- 特徴: 関数型プログラミング言語
- 主に利用される場面: 金融、データ解析、並行プログラミング
// "Hello, World!" を出力するプログラム
printfn "Hello, World!"
// 1から10までの数字をループで表示するプログラム
for i in 1 .. 10 do
printfn "%d" i
// 関数を使って2つの数値の合計を計算し、その結果を表示するプログラム
let add a b = a + b
printfn "%d" (add 5 3)
29. Erlang
- 特徴: 並行処理に強い
- 主に利用される場面: 電話交換システム、チャットアプリケーション
% "Hello, World!" を出力するプログラム
io:format("Hello, World!~n").
% 1から10までの数字をループで表示するプログラム
print_numbers(N) when N =< 10 ->
io:format("~p~n", [N]),
print_numbers(N + 1);
print_numbers(_) ->
ok.
% 関数を使って2つの数値の合計を計算し、その結果を表示するプログラム
add(A, B) ->
A + B.
% 使用例
io:format("~p~n", [add(5, 3)]).
30. Elixir
- 特徴: 並行処理に強い、Erlangの上に構築
- 主に利用される場面: ウェブ開発、チャットアプリケーション
# "Hello, World!" を出力するプログラム
IO.puts "Hello, World!"
# 1から10までの数字をループで表示するプログラム
for i <- 1..10 do
IO.puts i
end
# 関数を使って2つの数値の合計を計算し、その結果を表示するプログラム
defmodule Math do
def add(a, b) do
a + b
end
end
IO.puts Math.add(5, 3)
ざっくりグルーピング
1. ウェブ開発向け
- JavaScript
- PHP
- TypeScript
- Ruby
- Elixir
2. モバイルアプリケーション開発向け
- Swift
- Kotlin
- Dart
3. システムプログラミング向け
- C
- C++
- Rust
- Go
4. データサイエンス・数値解析向け
- Python
- R
- Julia
- MATLAB
5. エンタープライズ・ビジネスアプリケーション向け
- Java
- C#
- Scala
- Groovy
6. 関数型プログラミング
- Haskell
- F#
- Erlang
7. 組み込み・システム管理
- Shell
- Perl
- Lua
8. その他
- Visual Basic
- Objective-C
- SQL
- Fortran
- Lisp
まとめ
いろんなプログラミング言語を30種類を並べてみました。暇なときに眺めてみてください。