LoginSignup
10
11
お題は不問!Qiita Engineer Festa 2024で記事投稿!
Qiita Engineer Festa20242024年7月17日まで開催中!

いろんなプログラミング言語30種類の特徴とコードを比較してみた

Last updated at Posted at 2024-06-19

この記事を書くきっかけ

いろいろなプログラミング言語の特徴を一覧で見たいと思い、記事を作成しました。名前は聞いたことがあるけど、どんな言語か全くわからないときに、その特徴をざっくりと捉えられるようにしました。自分の知っている言語と他の言語を比較できるように、統一感のある構成にしたつもりです。暇なときに見てみてください。

この記事の構成

知名度の高いプログラミング言語を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種類を並べてみました。暇なときに眺めてみてください。

10
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
11