【プログラミング言語・総まとめ】初心者の「何ができる?どれから学ぶ?」を解決するページ。│学び直し・言語比較・記述の癖なども。

プログラミングを始めたいけど、「どの言語が自分に合っているのか分からない」という方へ。
この記事では、主要な14のプログラミング言語について、用途・特徴・難易度・向き不向きまとめました。

「知識ゼロでも読みやすい・とりあえず分かる」を目指しつつ、深堀しています。初心者はもちろん、中級者での学び直しや言語比較として「へぇ~」と読める内容です。是非最後までご覧ください!

目次

まずは「代表的なプログラミング言語・ざっくり用途」を表でチェック

深堀する前に、ざっくりとでOKなので、どの言語がどの分野で活躍しているかをふわっと頭に入れましょう。

✅ まずはここから!

アプリ開発言語 → 「何かを作る」ための言語
📱スマホ系 → スマホアプリ開発の専用言語
🧮SQL → 「蓄積されたデータや知識」を取り出すための言語
📊VBA / GAS 人の作業を助けるための言語

プログラミング言語 ざっくり一覧表 2025

言語特徴・用途シェアと難易度メリット
Python
(パイソン)
AI、データ分析、Webなど幅広い非常に高い / やさしいシンプルで読みやすい・豊富なライブラリ
JavaScript
(ジャバスクリプト)
Webのフロント&一部バックエンド非常に高い / 普通すぐ動かせて学習コスト低め・ブラウザで完結
TypeScript
(タイプスクリプト)
大型Web開発(JSの進化版)増加中 / やや難型安全・保守性高い
PHP
(ピーエイチピー)
WordPress、Webサーバー処理中~高 / 普通Webに特化・学習しやすい・個人案件多め
Java
(ジャバ)
業務アプリ・Android中~高 / やや難信頼性と安定性・大規模向き
C
(シー/C言語)
組み込み・OS・システム寄り安定 / 難しい軽量・高速・ハードに近い
C++
(シープラスプラス/シープラ)
ゲーム・高速処理中 / 難しいCより高機能・オブジェクト指向
C#
(シーシャープ)
Windowsアプリ・Unityゲーム中 / 普通.NET連携・GUI制作しやすい
📱Swift
(スウィフト)
iOSアプリ開発Apple界隈で高 / 普通安全・高速・Apple公式
📱Kotlin
(コトリン)
Androidアプリ増加中/ やや難Javaより簡潔でモダン
Go
(ゴー)
Web API・マイクロサービス増加中 / やさしい高速・シンプル・並列処理に強い
Rust
(ラスト)
安全&高速なシステム開発急上昇中 / とても難しいC++級の速さ+メモリ安全
🧮SQL
(エスキューエル/シークェル)
データベース検索・集計・抽出高い / やさしいデータ処理に強く、汎用性の高い標準クエリ言語
他の言語とセットが基本
📊VBA
(ブイビーエー)
ExcelやWordなどOffice操作の自動化安定 / 普通学習しやすく業務での省力化に強い
📊GAS
(ガス)
Googleサービスの自動化増加中 / 普通スプレッドシートやGmailなどとの連携が得意

✅ それぞれ言語について、深堀してみる

ざっくりのイメージはつかめましたか?
それではここから、それぞれ言語を深堀りして紹介していきます。

✅これから深堀して紹介する言語たち予告。(シェア&人気&実用度で抜粋)

  1. Python (AI開発から地味なファイル作業まで万能)
  2. JavaScript (動くWebはだいたいコレ)
  3. TypeScript(JavaScriptの進化系)
  4. PHP(WordPressやWebサーバー系)
  5. Java(長年の業務系王者)
  6. C言語(システムの基礎)
  7. C++(ゲーム、高速処理)
  8. C#(WindowsやUnity)
  9. Swift(iOS)
  10. Kotlin(Android)
  11. Go(軽量・API系)
  12. Rust(高安全・未来型)
  13. SQL (データベース系)
  14. VBA (オフィスで大活躍。Excelに入ってるアレ)
  15. GAS (グーグル版のVBAみたいなやつ)

Python】 シンプルで早い。万能感あるイケイケ言語


まずは、人気&注目度No.1の実力者「Python」から。

AI開発からファイル操作の自動化まで対応できる万能言語で、余計なことを考えず、やりたいことに集中できる言語として人気です。


■ 概要

「シンプル&早いで万能感!」

Pythonは、直感的で読みやすく、学習コストの低い言語として非常に人気があります。
特にAI(人工知能)機械学習Web開発自動化ツールなど、多分野で利用されています。


レベル:初心者〜中級向け

主な用途

  • 機械学習・データ分析(pandas, scikit-learn, TensorFlow など)
  • Webアプリ開発(Flask, Django)
  • スクレイピング・自動化スクリプト
  • ツール作成やファイル処理(Excel, PDF操作 など)

注目ポイント
・最近話題の「ChatGPT」もPython。
・AI開発やデータ分析の現場で、今や定番の存在。
・地味なファイル操作もおてのもの。

雰囲気
インデントで全てが決まる世界(字下げの美学)
・宣言が少なくて「やりたいこと」に集中できる
・思いついたことがそのままコードになる感じ

難易度
比較的やさしい(文法が直感的でエラーも分かりやすい)


■ 実際に使われているサービス・事例

  • ChatGPTやBardなどのAIモデルの実装(主に裏側の制御)
  • Instagramの初期開発(バックエンドにDjangoフレームワーク使用)
  • YouTubeの一部の処理(運用スクリプトなど)
  • Excel処理や自動化ツール(社内ツールにも多い)

■ Pythonの開発

  • シンプルで読みやすく、書き始めやすい
  • 「やりたいこと」が自然な言葉で書ける感覚
  • 数値解析、機械学習、データ可視化などのライブラリが豊富(NumPy, pandas, scikit-learn, matplotlib など)
  • 実行速度はC言語などに劣るが、生産性は非常に高い

■ Pythonでのサンプルコード

※例:「3の倍数かどうかを判定する」コード(全言語で共通の比較用コードとして掲載します。)

number = 9
if number % 3 == 0:
    print("3の倍数です")
else:
    print("3の倍数ではありません")

📌 コードの特徴

  • if のあとに : をつけ、次の行をインデント(字下げ)してブロックを作る
  • number % 3 == 0 という条件もそのまま読めるような日本語感
  • とにかく、「インデント」が大切!

■ “Pythonあるある”

  • インデント忘れで即エラー → "IndentationError" が初学者の壁
  • list, dict, str など組み込み型の名前を変数名にしてバグる
    例:str = "文字列" とすると、str() が使えなくなる
  • モジュール名とファイル名がかぶると混乱 → json.py を自作して import json が壊れる、など

【JavaScript】ブラウザで大活躍。“UIと会話する”ための言語

ボタンやマウスに反応して動く。Webがリアルタイムで「動く」ときはだいたい「JavaScript」のおかげ。


■ 概要

レベル:初心者〜中級

  • Web画面を「操作できる」言語。
  • クリック、アニメ、タイミングの制御も、全部できる

JavaScriptは、ブラウザ上で動作する唯一の標準言語です。
Webページに動きを加えたり、ボタンやアニメーション、API連携など、「ユーザーとの対話」を支える存在です。

HTML/CSSと組み合わせて、**フロントエンド(画面側)の動作を中心に活躍します。
現在では、Node.js により
サーバーサイド(裏側)**も書けるようになりました。


雰囲気としては…

  • ブラウザ内で“今”動く
  • クリック・スクロール・入力…あらゆる反応をつくれる
  • コードが増えがち、整理しないとカオスに

注目ポイント
Webサイトやアプリの動きや操作感は、ほとんどJavaScriptが担っている。
ブラウザさえあれば、環境構築ナシですぐ始められる手軽さも魅力。


■ 実際に使われているサービス・事例

  • Twitter(X)やFacebookなどのUI(画面の動きや通知など)
  • Googleマップのドラッグやズーム動作
  • ChatGPTのフロントUI(入力欄やメッセージのアニメーション)
  • スマホアプリ(React Nativeなど)やPCアプリ(Electron)にも使用

■ JavaScriptの強み

  • すぐに試せる(ブラウザでそのまま実行できる)
  • ユーザー操作に反応できる → クリック、入力、タイミングなど
  • フレームワーク(React, Vue, Svelte)で大規模UI開発にも対応
  • アニメーションや動的操作に向いている
  • Node.jsを使えば、サーバーサイドでも活用可能

■ JavaScriptでのサンプルコード

if (number % 3 === 0) {
    console.log("3の倍数です");
} else {
    console.log("3の倍数ではありません");
}

📌 コードの特徴

  • === は「厳密な等価」を意味する(型も含めて一致を見る)
  • console.log() でブラウザの開発者ツールに出力できる

■ “JavaScriptあるある”

  • undefinednullと仲良し地獄:値が入ってないはずなのに…動く?
  • varletconstの使い分けが混乱しがち
  • 非同期(setTimeout, fetch, async/await)でハマる
  • ブラウザごとの挙動差に振り回される → 今は改善傾向あり

【TypeScript】大型開発を見据えた、JavaScriptの進化形

JavaScriptを「ちゃんと書ける言語」に育てた存在─「TypeScript」。


■ 概要

レベル:中級〜上級

TypeScriptは、JavaScriptに型の概念を加えた拡張言語です。
JavaScriptとして動作しますが、開発中に「これは数値?文字列?」というデータ型を明示することで、予測可能で安定したコードを書けるようになります。

最近のWebアプリ(特に大規模なチーム開発)では、ほぼ標準的に導入されています。


こんな雰囲気の言語

  • JavaScriptの曖昧さをなくして、型で守ってくれる安心感
  • IDEの補完が賢く、書いていて気持ちいい
  • エラーが親切。でもちょっと長すぎる

注目ポイント
JavaScriptで大規模な開発をするとき、保守性・安全性を高めるために必須と言われるのがTypeScript。
GoogleやMicrosoftなどの現場でも、今や主流になりつつある。


■ 実際に使われているサービス・事例

  • Slack、Notion、Asanaなどの複雑なWebアプリ
  • ChatGPTのWebフロント(React + TypeScript)
  • LINE、PayPayなど日本国内のUI系サービスでも導入が進む
  • Next.js, Vue, SvelteKit などのモダンフレームワークとセットで使われることが多い

■ TypeScriptの強み

  • 型安全:変な値をうっかり渡しても開発中に気づける
  • 自動補完とエラー表示が強力:エディタで即ヒントが出る
  • JavaScriptと100%互換 → JS資産をすぐ活かせる
  • チーム開発でバグを未然に防ぎやすい

■ TypeScriptでのサンプルコード

let number: number = 9;

if (number % 3 === 0) {
    console.log("3の倍数です");
} else {
    console.log("3の倍数ではありません");
}

📌 コードの特徴

  • let number: number で「これは数値です」と明示
  • これにより、あとで誤って number = "hello" など代入しようとするとエラーで警告が出る

■ “TypeScriptあるある”

  • 型が増えすぎて、ジェネリクスやユニオン型で脳がバグる
  • 最初は「めんどくさい」と感じがち → 慣れると「もうJS戻れない…」
  • any で逃げる → 型の意味がなくなる → 謎エラー発生
  • “型定義が見つかりません”問題@types/hogehoge で手動追加の沼

■ 総評

TypeScriptは、**“JSは好きだけど、バグで苦しみたくない人”**にぴったりです。
開発規模が大きくなるほどその恩恵は増し、安全と安心のための言語設計が光ります。

一方で、学習初期は「型ってなに?」「設定ファイル多すぎ」と感じる人が多いのも事実。
ですがその先には、ミスの少ない開発体験が待っています。

【PHP動的Webの元祖。WordPressもこの言語

Web黎明期から今まで現役、でもなぜかちょっと舐められがち?─Webの現場でずっと生きてきた、古参的存在のPHPを紹介します。


■ 概要

レベル:初心者〜中級

「レンタルサーバーで“すぐ動く”安心感」

PHPは、サーバー上で動作するWeb向けのスクリプト言語です。
HTMLに埋め込む形で動的なコンテンツを表示できるため、掲示板やログインフォームなどの開発に長く使われてきました。

現在も**WordPress(全Webサイトの40%以上を占めるCMS)**がPHPで動いており、まだまだ現役の言語です。


こんな雰囲気の言語

  • 書いて、アップして、すぐ動く
  • Webフォームやログイン機能ならお手のもの
  • 書き方が自由すぎて、放っておくとカオスになりがち

注目ポイント
ブログや企業サイトで使われるWordPressも、裏側はPHPで動いている。
初心者が最初に触れる「動的Web」の入り口として今も根強い人気。

強み

  • Webに特化しており、フォーム・認証・データ送信などと相性抜群
  • レンタルサーバーに標準搭載されており、導入しやすい
  • 学習コストが比較的低く、成果が見えやすい

■ 実際に使われているサービス・事例

  • WordPress全般(ブログ、企業サイト、ECなど)
  • Facebook(初期はPHPベース)
  • MovableType、EC-CUBEなどの古めのCMS
  • 中小企業・個人サイトの予約フォームや問合せ処理など

■ PHPの特徴

  • HTMLと同じファイル内で書ける(初心者にもわかりやすい)
  • サーバー上でそのまま動く → 特別な開発環境が不要
  • 豊富なライブラリと長年の実績
  • レンタルサーバーでも大体動く

■ PHPでのサンプルコード

<?php
$number = 9;

if ($number % 3 === 0) {
    echo "3の倍数です";
} else {
    echo "3の倍数ではありません";
}
?>

📌 コードの特徴

  • <?php ... ?> でHTMLの中にPHPを埋め込める
  • $変数 という独特の書き方 → $number みたいに必ずドルマークがつく

■ “PHPあるある”

  • バージョン間で関数や仕様がちょこちょこ違う → 昔のコードが動かない
  • $変数, $_POST, $_GET などスーパーグローバル変数が多くて混乱
  • エラーメッセージが出ないように見える → 実はログで吐いてる
  • HTMLとPHPの切り替えが頻繁で、どこまでがどっち? になる

■ 総評

PHPは、とにかくWebに強くて、“動くもの”を最短で作れるのが魅力。
柔軟性がある反面、コードがカオスになりやすく、設計力がないと崩壊しやすい一面も。

ただし、やりたいことが明確なら最短距離で実現できる
いわば「バールのようなもの(万能ツール)」として、現場では今も重宝されています。

【Java“安定と拡張性”で、業務を支えるビジネスパートナー

「書くのが面倒。でも、でかい仕事も安心して任せられる」というイメージの言語──企業系アプリの王道である「Java」の紹介です。


■ 概要

レベル:中級〜上級

「書くのはちょっと長い。でも動きは堅実」

Javaは、「一度書けば、どこでも動く」(Write Once, Run Anywhere)を掲げて登場したオブジェクト指向言語です。

長年にわたり、企業システム、銀行、保険、公共インフラなどの大規模案件を支えてきました。

近年ではAndroidアプリ開発や、SpringフレームワークによるWeb開発でも活用されています。


こんな雰囲気

  • 毎回「public static void」って書かされる
  • 構文が堅い・記述量が多い → 「冗長」と感じる。
  • フレームワーク多すぎて大変。でも逆に選択肢も豊富
  • 実行環境(JVM)さえあれば、どこでも動く

注目ポイント
業務システムや銀行の基幹処理など、信頼性が求められる現場では今もJavaが主流。
Androidアプリ開発にも長らく使われていた。


■ 実際に使われているサービス・事例

  • みずほ銀行、郵便局、保険システムなどの基幹系
  • Minecraft(有名ゲーム。クライアントもJava製)
  • Androidアプリ(Kotlin登場前はJava一択だった)
  • 企業の勤怠・経理システム、予約管理システム など

■ Javaの強み

  • 強力な型安全性+オブジェクト指向 → 複雑なシステムに向く
  • 動作の安定性と長期運用性 → 官公庁系でも採用されやすい
  • 豊富なライブラリとフレームワーク(Spring, Hibernate など)
  • JVM(Java仮想マシン)によりマルチOS対応が可能

■ Javaでのサンプルコード

public class Main {
    public static void main(String[] args) {
        int number = 9;

        if (number % 3 == 0) {
            System.out.println("3の倍数です");
        } else {
            System.out.println("3の倍数ではありません");
        }
    }
}

📌 コードの特徴

  • すべては「クラス」の中に書かないといけない
  • public static void main(String[] args)お決まりの入口構文
  • System.out.println() は、Java的“コンソール出力”の定番

■ “Javaあるある”

  • 毎回 public static void main がつらい → コピペで済ませるように
  • 構文が堅い・記述量が多い → 「冗長」と言われがち
  • 細かいところで「セミコロン忘れ」や「クラス名とファイル名の不一致」で怒られる
  • Eclipse、IntelliJなどのIDEがないとやってられない

■ 総評

Javaは、安心して「長く使える」コードを書ける言語です。
その分、「とりあえず試してみる」には向かず、開発環境や構成が大がかりになることも。

しかし、堅牢さ・可読性・規模の大きな構造への適応力はトップクラスで、
いわば「仕事できるけど、ノリで遊んではくれないお堅い先輩」みたいな存在かもしれません。

【 C言語システムの土台を支える、最古にして最強の言語

ハードウェアの近くで動き、“素手でコンピュータと対話する”ような体験ができる──
プログラミングの“素手感”を味わえる、原点のひとつである「C言語」をご紹介します。


■ 概要

レベル:上級・難しい

「すべてのはじまり」。最速で最小を追求する言語──

C言語は、1972年に誕生した低レベルな操作ができる高級言語です。
OS、組み込み機器、コンパイラ、システムレベルのアプリなど、「コンピュータの土台を支えるための言語」として、今も広く使われています。

ほとんどのモダンな言語(C++, Java, Pythonなど)は、Cの設計に何らかの影響を受けています。


こんな雰囲気

  • 処理が速い。とにかく速い
  • メモリ管理は完全に手動。責任も100%自分
  • シンプルゆえにミスもダイレクトに響く!!

注目ポイント
OSや組み込み機器、ドライバなど、ハードに近い部分で圧倒的な強さを発揮。
「コンパイラって何?」と思ったら、まずはCでその本質に触れられる。


■ 実際に使われているサービス・事例

  • Linuxカーネル(OSの中身)
  • 組み込みシステム(炊飯器、電子レンジ、車載コンピュータなど)
  • 機械制御、ファームウェア、ドライバ開発
  • Pythonの実行環境や、MySQLの内部処理にもCが使われている

■ Cの強み

  • 高速・軽量・無駄がない
  • メモリの管理(ポインタ)を細かく制御できる
  • ハードウェアに近く、限界性能を引き出せる
  • 他言語に比べて「予測通りに動く感覚」が強い(バグも明確)

■ C言語でのサンプルコード

#include <stdio.h>

int main() {
    int number = 9;

    if (number % 3 == 0) {
        printf("3の倍数です\n");
    } else {
        printf("3の倍数ではありません\n");
    }

    return 0;
}

📌 コードの特徴

  • #include <stdio.h> で標準入出力を読み込む
  • printf() で画面出力(改行は \n
  • return 0; は「正常終了」の合図

■ “C言語あるある”

  • ポインタで地獄を見る*, &, char**…理解するまでが鬼門
  • メモリを malloc() で確保し、free() を忘れるとメモリリーク
  • 配列の範囲外アクセスで予測不能な挙動(バグ)
  • Cは優しい。やれと言ったことは必ずやるが、やるなとは言ってない
    → だからこそ開発者の責任が重い

■ 総評

Cは、人間が書ける最も“機械寄り”な言語とも言えます。
便利な抽象化や保護機能はほとんどない代わりに、自分の書いたコードがそのままマシンの動きになるという実感があります。

その分、安全性や生産性は高くないですが、「なぜこのプログラムはこう動くのか?」を学ぶには、最強の教材でもあります。

【C++Cの力強さに、現代的な機能をプラス

Cの速さを引き継ぎつつ、高機能さを兼ね備えた万能言語──「C++」ゲーム・金融・ハイパフォーマンス系の世界でいまも君臨する言語です。


■ 概要

レベル:上級・難しい

「速さ」と「抽象化」の両方を追い求めて進化

C++は、C言語にクラスやオブジェクト指向の概念を加えた進化版です。
処理の高速さを保ちつつ、大規模な開発にも耐えられる設計力を持っています。

システム開発、ゲーム開発、金融の高頻度取引など、
「速さと柔軟性の両立」が求められる現場で、今も高い評価を得ています。


こんな雰囲気

  • Cより便利だけど、書き方は複雑化
  • オブジェクト指向・テンプレート・STL…ぜんぶ盛り
  • ポインタと参照、理解すれば武器。わからないと闇

注目ポイント
ゲーム開発やリアルタイム処理など、速さと柔軟さが求められる分野で重宝される。
巨大なコードベースでも「ちゃんと速い」言語として今も信頼されている。


■ 実際に使われているサービス・事例

  • ゲームエンジン(Unreal Engineなど)
  • Adobe製品(Photoshop, Illustrator)
  • 金融機関の取引システム
  • ブラウザのコア(Google ChromeのV8エンジンなど)
  • OpenCV(画像処理ライブラリ)

■ C++の強み

  • C並みの高速性を維持しながら、高度な構造設計が可能
  • クラス、継承、テンプレートなど多様な設計スタイル
  • Cとの互換性が高く、既存資産を活用しやすい
  • 実行効率を求めるパフォーマンス領域に強い
  • STL(標準テンプレートライブラリ)が強力

■ C++でのサンプルコード

#include <iostream>
using namespace std;

int main() {
    int number = 9;

    if (number % 3 == 0) {
        cout << "3の倍数です" << endl;
    } else {
        cout << "3の倍数ではありません" << endl;
    }

    return 0;
}

📌 コードの特徴

  • cout << は C++ の標準出力の書き方(Cの printf よりも安全)
  • using namespace std; は定番だけど省略も可能
  • endl は改行を意味する(\nよりもバッファをクリアする効果あり)

■ “C++あるある”

  • 複雑な文法に飲まれる → テンプレート、STL、参照渡し…覚えること多すぎ
  • ポインタと参照と値渡しの違いで混乱
  • std::vector<int> の中に std::map<string, list<tuple>>> みたいな地獄構文
  • Cと混在すると、**「どこからがC++なのか分からない」**問題

■ 総評

C++は、**「効率」と「構造」の両方を求める現場のエンジニア」にとって、最も信頼できる道具のひとつです。
ただし、文法が非常に広く深いため、「使いこなすまでが長い」という一面もあります。

「やってて頭が疲れるけど、ちゃんと動くと気持ちいい」そんな、歯ごたえのある言語体験をしたい人に向いています。

【C#Windowsアプリ・ゲーム・Webも。ひとつでこなす実用派

進化や派生をたどるように、C言語 → C++ → C# という流れで紹介します。ということで、次は「C#(シーシャープ)」。

Microsoft発の「スマートで現代らしい」言語で、Windows、Unity、GUIアプリなど幅広く使われています。


■ 概要

レベル:中級

「.NETとUnityの両刀使い。GUIにも強い」なんでも系

C#は、Microsoftが開発したオブジェクト指向言語で、JavaとC++のいいとこ取りを目指して作られました。
Windowsアプリ、ゲーム開発、Webシステムなど、.NETフレームワークと連携して幅広く活用されています。

近年では、Unityゲーム開発のスクリプト言語としても大定番です。


こんな雰囲気

  • WindowsのUIアプリ作りなら定番
  • Unityゲーム開発でも大活躍
  • Javaに似てるけど、より柔軟&現代的な印象

注目ポイント
Microsoftが主導する.NET技術の中核。
フォームアプリや業務ソフトだけでなく、3Dゲーム(Unity)でも使われている万能プレイヤー。

強み

  • Windowsアプリとの親和性が高く、実務でもよく使われる
  • Visual Studioとの連携が抜群で開発がスムーズ
  • クラス設計やイベント駆動が直感的に書ける

■ 実際に使われているサービス・事例

  • Unityゲーム全般(インディーから大作まで)
  • Windowsデスクトップアプリ(ツール・業務ソフトなど)
  • 企業向けのWebシステム(ASP.NET)
  • Excelの自動処理ツール(VSTO)などのGUI系自動化

■ C#の開発

  • Visual Studioによる超強力な開発環境(デバッガも強い)
  • List, Dictionary などのコレクション型が直感的
  • GUI・ゲーム開発・業務系アプリすべてに対応可能
  • Javaより柔らかく、C++より安全でモダン

■ C#でのサンプルコード

using System;

class Program {
    static void Main(string[] args) {
        int number = 9;

        if (number % 3 == 0) {
            Console.WriteLine("3の倍数です");
        } else {
            Console.WriteLine("3の倍数ではありません");
        }
    }
}

📌 コードの特徴

  • using System; はC#の基本ライブラリを使う宣言
  • Console.WriteLine() は標準出力
  • Main() はJava同様、アプリの起点(静的メソッド)

■ “C#あるある”

  • Visual Studioがないと動かすのが面倒 → でもIDEに慣れると手放せない
  • Javaと文法が似てるので、混同してミスる
  • null がいる → ?つけるかどうかで警告まみれに
  • List<T>LINQ などの便利機能が逆にやりすぎて怖くなる

■ 総評

C#は、きれいな文法・整った開発環境・豊富なツール群がそろった、まさに「開発者にやさしい」現代型言語です。

GUIやゲームなど、見えるもの・触れるものを作りたい人には特に向いています。
また、企業系の堅実なシステムにも適しており、**“バランス型の万能選手”**といった印象です。

【Swift|iPhoneアプリを作るなら、まずこの言語

次はいよいよ、Apple公式のモダン言語──「Swift(スウィフト)」の紹介です。iPhoneアプリ開発に興味がある人ならば要チェック。


■ 概要

レベル:中級

「Apple公式の推し言語。iOS開発のスタンダード」

Swiftは、Appleが2014年に開発したプログラミング言語です。
それまで主流だったObjective-Cに代わって、より読みやすく、安全で、高速なコードを書けるように設計されています。

iPhoneやiPadなど、Apple製品のアプリ開発ではSwiftがほぼ必須となっています。“未来のAppleアプリ”を育てる、注目度の高い言語です。


こんな雰囲気

  • Xcodeとセットで使うのが基本
  • 型安全で安心。けっこう厳しめ
  • アップデートのたびに書き方が変わるのが難点

注目ポイント
iOSやmacOSのアプリ開発では、今やObjective-CよりもSwiftが主流。
Apple製品と密接に連携し、UIもサクサク動く設計になっている。

強み

  • 安全性とパフォーマンスを両立
  • UI設計もサポートされており、見た目とロジックの連携がスムーズ
  • Apple公式がサポートしており、将来性も高い

■ 実際に使われているサービス・事例

  • App Storeに並ぶiOSアプリの大多数(Instagram、TikTok など)
  • Apple純正アプリ(Safari, メモ, ファイル など)
  • Apple Watch / Apple TV アプリ開発
  • SwiftUIにより、コードでUIも組めるようになった

■ Swiftの開発

  • モダンで簡潔な文法 → 視覚的にもきれい
  • 型安全、null安全 → 実行前にエラーが防げる
  • Apple公式 → iOS/macOSとの親和性が最高
  • SwiftUIで画面をコードで制御可能 → 直感的にレイアウトできる

■ Swiftでのサンプルコード

let number = 9

if number % 3 == 0 {
    print("3の倍数です")
} else {
    print("3の倍数ではありません")
}

📌 コードの特徴

  • let は定数、var で変数 → 明示的で安全
  • print() で標準出力(簡潔でわかりやすい)
  • 中カッコ {} の中はインデントで読みやすく設計されている

■ “Swiftあるある”

  • Xcodeが重い or 謎エラー → 再起動すれば大抵なおる(でも時間かかる)
  • ?(オプショナル)と !(強制アンラップ)の使い分けで混乱
    nil との戦いはSwift恒例
  • バージョンが進化しすぎてチュートリアルが古い → Swift3?4?5??
  • SwiftUIで「見たまま作れるけど、複雑化するとどこが悪いか分からない

■ 総評

Swiftは、**「Appleで何か作りたい!」**と思ったら必ず通る道です。
その文法はPython並みに簡潔で、Java並みに安全、そしてAppleらしい洗練さも備えています。

ただし、iOS環境(Mac+Xcode)が必須なため、学び始めるハードルがやや高いのが難点です。(特にWindows派)

とはいえ、「手元のiPhoneで自分のアプリが動く感動」は、一度体験したら忘れられません。

【KotlinJavaの弱点をモダンに克服した、Androidの次世代エース

次は、「Androidアプリといえばこの言語」といえる、Google公式のモダン言語「Kotlin(コトリン)」をご紹介します。


■ 概要

レベル:中級~やや難

「Javaより短く、やさしく、現代的」

Kotlinは、JetBrains社が開発し、Googleが公式にAndroid向け言語として採用しているモダンな言語です。
Javaとの互換性を保ちつつ、より簡潔で安全・柔軟に書けるように改良されたのがKotlinです。

今ではAndroidアプリの新規開発はほぼKotlinで行われるほど浸透しています。


こんな雰囲気

  • Javaよりも書きやすい、読みやすい
  • Android Studioとの相性が抜群
  • null安全とかいいつつ、たまに落ちることもある

注目ポイント
Android開発において、Googleが公式に推奨する言語。
既存のJava資産を活かしつつ、よりモダンなコードで開発が可能。

強み

  • Javaとの互換性が高く、導入しやすい
  • 冗長なコードを減らせる構文の設計
  • 拡張関数やデフォルト引数など、開発者フレンドリーな機能が豊富

■ 実際に使われているサービス・事例

  • Androidのシステム・アプリ開発全般
  • 楽天、LINE、メルカリなど国内AndroidアプリもKotlin主流
  • Jetpack Compose(最新のUIフレームワーク)と組み合わせて使うことが多い
  • サーバーサイド開発(Spring Bootなど)でも一部利用され始めている

■ Kotlinの開発

  • Javaより記述が簡潔 → 冗長なコードが大幅に減る
  • null安全(NullPointerExceptionを避けやすい)
  • Javaとの100%互換 → 既存コードも活かせる
  • スマートキャスト、データクラス、ラムダ式など現代的な構文

■ Kotlinでのサンプルコード

fun main() {
    val number = 9

    if (number % 3 == 0) {
        println("3の倍数です")
    } else {
        println("3の倍数ではありません")
    }
}

📌 コードの特徴

  • val は定数、var は変数 → Swiftと似ている
  • fun main() でアプリ起動の入口
  • println() で標準出力(Javaの System.out.println() より短くて直感的)

■ “Kotlinあるある”

  • Javaの知識がそのまま使えるけど…実は罠も多い(構文の意味が微妙に違う)
  • null安全なはずが、!! で無理やりアンラップしてバグる → “!!禁止”が社内ルールに
  • ラムダ式やスコープ関数(let, run, apply)で便利すぎて逆に混乱
  • JavaとKotlinの混在コードでビルド地獄になることも…

■ 総評

Kotlinは、「Javaの良いところは残しつつ、不便な部分は全部改善」という意図で設計された、まさにモダン時代のための言語です。

特にAndroid開発では、公式・便利・安全・美しいを全部備えているため、
「これからモバイルをやりたい」人には、アップル公認のSwiftと並んで最初の候補になるでしょう。

【Go“シンプルさと速度”に全振り。Google発のコンパクトな実用エース

次は、Web開発やマイクロサービス界隈で最近注目されている、「軽くて速くてシンプル」な言語──Go(Golang)の紹介です。

「大きなシステムはもういらない、最小限で回したい」という現代的ニーズにぴったりな、Google発の言語です。


■ 概要

レベル:初級〜中級

「小さく始めて、大きく育てる」

Go(通称 Golang)は、Googleが2009年に開発したオープンソース言語です。
その特徴は「とにかく速く、簡潔に、並列に

巨大なフレームワークよりも、小さな機能の集合で構成する現代のWebサービスに適したデザインです。

Docker、Kubernetesなどのインフラ・クラウド基盤ツールもGoで書かれています。


こんな雰囲気

  • コンパイルがとにかく速い
  • if err != nil が目に焼きつく
  • スマートだけどジェネリクスにちょっと弱い(改善中)
  • 並列処理もサクッと。軽さと速さのバランス。

注目ポイント
マイクロサービス、Web API、CLIツールなど、モダンなサーバーサイド開発で人気上昇中。
Google発の言語であり、開発のしやすさと運用効率を重視している。

強み

  • 並列処理(Goroutine)がシンプルに使える
  • バイナリが軽く、デプロイしやすい
  • 文法が最小限で、チーム内での統一がしやすい

■ 実際に使われているサービス・事例

  • Docker(コンテナ技術の代名詞)
  • Kubernetes(クラウド上のアプリ運用管理)
  • Slackの一部機能
  • Mercariの一部API基盤、LINEのマイクロサービス
  • Go言語で書かれたCLIツール・APIサーバ・データ処理系など多数

■ Goの開発

  • 構文が非常にシンプル → 学びやすく、読みやすい
  • コンパイルが爆速 → ビルドがストレスフリー
  • **並列処理(goroutine)**が非常に簡単 → 高負荷でも軽く動く
  • 依存が少なく、実行ファイルが1つで完結(配布しやすい)

■ Goでのサンプルコード

package main
import "fmt"

func main() {
    number := 9

    if number%3 == 0 {
        fmt.Println("3の倍数です")
    } else {
        fmt.Println("3の倍数ではありません")
    }
}

📌 コードの特徴

  • := で変数の宣言と代入を一度にできる
  • package main から始まり、関数は func で定義
  • インデントや中カッコはあるが、全体的にスッキリとした印象

■ “Goあるある”

  • if err != nil { return err }何度も登場 → 俗に「Go地獄」とも
  • ジェネリクスが長年なかった → 2022年以降にようやく導入されたが慣れが必要
  • OOP(クラスなど)がない → 構造体とインターフェースでやりくり
  • 書き方の“正解”が一つに近い → 自由度は低いが、迷いも少ない

■ 総評

Goは、「とにかく効率的に動くものを作りたい」開発者にとって、極めて優秀なツールです。
派手さはなくても、わかりやすさ・速さ・軽さの三拍子で、多くのバックエンドやインフラ構築の現場を支えています。

「Webサービスの裏側を支えるスクリプトを、気持ちよく書きたい」「Cはもう十分学んだ、もっとシンプルにやらせてくれ」
そんな人に、Goの硬派だけど頼もしい魅力はぴったりです。

【Rust“速くて安全”を本気で両立。未来型システム言語

次はいよいよ、未来型・安全性重視の超注目言語──Rust(ラスト)です。

「CやC++の危うさはもう卒業したい」という人が惹かれる、“安全にして速い”ことを、ここまで突き詰めた言語──「Rust(ラスト)」を紹介します。


■ 概要

レベル:上級~とても難しい

“速くて安全”を本気でやるなら、これ一択

Rustは、Mozilla(WebブラウザFirefoxの開発元)が中心となって開発したシステムプログラミング言語です。
C/C++並みのパフォーマンスを実現しつつ、メモリ安全性をコンパイル時に保証するのが最大の特徴です。

**「安全なC/C++」**とも呼ばれ、OS、ゲーム、WebAssembly、CLIツールなど多方面で注目を集めています。


こんな雰囲気

  • ポインタやメモリ管理を「正しく強制」してくる
  • エラーが多いが親切。Rustに育てられてる気分になる
  • 書くのは大変。でも書けたら強い

注目ポイント
システムレベルの性能を出しつつ、C/C++では当たり前だったバグを防げる設計。
MozillaやDropboxなどが採用しており、今後の本命とも言われる注目株。

強み

  • メモリ安全性が言語レベルで保証される
  • 実行速度が非常に高速(C++級)
  • エラーメッセージが丁寧で学びながら成長できる

■ 実際に使われているサービス・事例

  • Firefoxの一部(ブラウザ内部処理)
  • Amazon、Microsoft、Dropboxのインフラ構築
  • Deno(次世代JavaScriptランタイム)
  • Discordのパフォーマンス改善
  • WebAssembly(wasm)での高速Webアプリ化

■ Rustの強み

  • 所有権・借用・ライフタイムによる高度なメモリ安全
  • ガベージコレクション不要 → C並みの速度+安全性
  • モダンな構文、イミュータブル(不変性)重視でバグが出にくい
  • WebAssemblyやCLIツールでも活躍 → 将来性◎

■ Rustでのサンプルコード

fn main() {
    let number = 9;

    if number % 3 == 0 {
        println!("3の倍数です");
    } else {
        println!("3の倍数ではありません");
    }
}

📌 コードの特徴

  • let は変数定義(デフォルトはイミュータブル=変更不可)
  • println!()! は**マクロ(コンパイル時展開)**を示す
  • fn で関数を定義 → モダンだけど低レベル言語に近い感触もあり

■“Rustあるある”

  • コンパイルエラーが長い。でも丁寧すぎて安心(まるで人生相談レベル)
  • 所有権?借用?ライフタイム?」で頭が混乱(初学者の最大の山)
  • mut を忘れて「変更できません」エラー地獄
  • コンパイル通ったときの喜びが大きすぎて、動作がどうでもよくなる現象(あるある)

■ 総評

Rustは、これからの時代に「安全なプログラムを高速に動かす」ための本命と言われています。
ただし、学習曲線は急で、最初は文法や所有権の概念に苦しむ人が多いです。

それでも、
「コンパイルが通ったらほぼ動く
「C++のあのバグとは、もうお別れできる」
という安心感が、世界中のエンジニアを惹きつけています。

まさに、「プログラミング言語の未来」を感じる、次世代の言語です。

【SQL蓄積したデータや知識を「取り出す」ための言語

これまで紹介してきた「アプリ開発言語」は全て、「何かを作る・動かす」ための言語でした。

つぎに紹介するSQLは、その「何か」を取り出すための言語です。


■ 概要

レベル:初心者〜中級

SQLは、「データを取り出す」ための言語。
強大な倉庫から「あれ持ってきて」と指示するイメージ。

SQL(Structured Query Language)は「情報の倉庫:データベース」から、必要なデータを取り出したり、追加・更新・削除するために使われる言語です。

データや知識があっても、取り出せなくては使えまえん。

データ分析、Web開発、アプリ開発、業務改善──など。どの現場にも密かに存在し、知らぬ間に支えている言語です。


こんな雰囲気

  • 大量のデータから、必要なものを取り出す
  • Excelでの「並べ替え・フィルター」でデータを扱う感覚(の規模がでかい版)
  • データ分析や帳票作成の基礎中の基礎
  • データベースまるごと消去もできる。ある意味最恐。

注目ポイント
業務システム、Webアプリ、BIツールなど、ほぼ全てのデータ系処理で使われている。
一度覚えれば、どのDBでも通用する知識になる。

強み

  • データ抽出・分析に強く、業務現場での出番が多い
  • 書き方が規則的で覚えやすい

■ 実際に使われているサービス・事例

  • 銀行口座の残高照会、ECサイトの検索や注文履歴
  • Webアプリの「ユーザー名で検索」などの裏処理
  • BIツール(Looker, Tableau, Redash)との連携
  • 社内の売上管理・顧客管理データベース操作

■ SQLの開発

  • 人間の質問に近い構文 → “何が欲しいか”を書くだけ
  • データベースに直接アクセス → 中間処理が不要
  • 一度覚えれば、どんなDBでも基本的な文法は共通
  • 業種・業界問わず使える汎用スキル

■ SQLでのサンプルコード

SELECT * FROM numbers
WHERE number % 3 = 0;

📌 意味
numbersというテーブルから、number列が3の倍数の行をすべて選んでください」

📌 コードの特徴

  • SELECT ... FROM ...基本構文
  • WHERE で条件を指定する
  • * は「すべての列」を意味する

■ “SQLあるある”

  • === の混乱 → SQLでは = だけで比較
  • NULL との比較でバグ → = NULL はダメ、IS NULL じゃないと通らない
  • JOIN 地獄 → どのテーブルとどう繋げばいいか分からなくなる
  • GROUP BYHAVING の組み合わせで頭が迷子

■ 総評

SQLは、アプリを動かす言語ではなく、“知識にアクセスするための言語”です。

Excelでも使えるし、PythonやPHPと連携しても使える。
それゆえに、「SQLを知ってるだけで“裏のプロ”感が出る」「データの使い道がアップする」と言えるでしょう。

【VBAExcelの魔法使いといえばコレ。もっとも身近に存在する言語。

今まで紹介してきたのは「アプリケーション開発」や「Web・システム系」の言語が中心でした。

ここからは「VBA」「GAS」という“業務効率化寄り”な言語にも触れてみます。まずは、「動くExcel・マクロ」の正体であるVBA から。


VBA(Visual Basic for Applications)

世界中のオフィスで活躍し続ける“Excelのマクロ”の正体は、VBA(Visual Basic for Applications)という言語です。


■ 概要

レベル:初心者〜中級 身近レベル∞

「繰り返し作業?それ、ボタン1つで終わらせましょう。」

VBAは、Microsoft Office製品(特にExcel、Word、Accessなど)に組み込まれているプログラミング言語で、正式名称は「Visual Basic for Applications」。

主にExcelのマクロ(繰り返し操作の自動化)として使われていて、事務職・経理・営業サポートなど、非エンジニア職でも活用されている珍しい言語です。


こんな雰囲気

  • Excelをマクロで操作するならコレ一択
  • マクロ記録からスタートして、慣れたら直打ちでカスタマイズ
  • 処理が遅くても、オフィス作業には十分。手作業よりは早いから!
  • せっかく作っても壊される-
  • 良く分からずに触って壊す-までがセット。

注目ポイント
初心者が最初に「プログラミング便利かも」と感じる場所。
Excelの操作が自動化できるだけで、社内のプチヒーローになれることも。

強み

  • オフィスで披露する機会が多い!
  • マクロ記録機能と組み合わせて学習しやすい
  • GUIとの連携も可能で、フォームを作ることもできる
  • Office製品を組み合わせた業務自動化に最適

■ 実際に使われている場面・事例

  • 月次レポートや売上集計の自動化
  • 複数ファイルの一括加工・書き出し
  • 帳票作成、印刷、PDF保存まで一括実行
  • メール送信、Outlookとの連携処理
  • “あのExcelを開くと何かが始まる”現象=VBA

■ VBAの強み

  • 導入環境がすでに整っている(Officeに標準搭載)
    Excel操作と一体化 → 人がやっていることをそのままコードに
  • ボタン1つでマクロが動く → 非エンジニアでも実用的
  • やろうと思えば本格開発も可能
  • 使いこなせると、社内でちょっと得意げな気分になれる

■ VBAでのサンプルコード

Sub CheckMultipleOfThree()
    Dim number As Integer
    number = 9

    If number Mod 3 = 0 Then
        MsgBox "3の倍数です"
    Else
        MsgBox "3の倍数ではありません"
    End If
End Sub

📌 コードの特徴

  • Sub ... End Sub が関数の始まりと終わり
  • MsgBox でポップアップ表示(ExcelらしいUI)
  • Mod は割ったあまりを返す → 3の倍数チェックに使える

■ “VBAあるある”

  • 社内のExcelに謎の便利マクロが存在する
  • 書いても誰かに壊される
  • 他人の書いたVBAが呪いの巻物状態で引き継がれる
  • On Error Resume Nextバグを押し殺しがち

■ 総評

VBAは、「人が手でやっていたことを、少しずつ機械に任せる」という意味で、
プログラミングの原点を思い出させてくれる存在です。

時代的には「レガシー・古代言語」とも呼ばれがちですが、いまだ現場で本当に役立っている“生きた技術”であることに変わりありません。

オフィス・実務レベルなら、「活用度 No.1」ではないでしょうか。

VBAをいじってみて「楽しい!」と感じる人はプログラミングに向いている人が多く、「初めての言語」としての登竜門的な存在と言えます。

【GASGoogleのスプシやツールを動かす、オンライン自動化言語

次は、“クラウド上のVBA”とも言える存在──GAS(Google Apps Script)の紹介です。

GASは、GoogleスプレッドシートやGmailを自在に操る、新時代のマクロともいえる言語です。


概要

レベル:初級~中級

Googleのサービスでできること、まとめて自動化

GAS(Google Apps Script)は、GoogleスプレッドシートやGmail、カレンダーなどの操作を自動化できるスクリプト言語です。
中身はJavaScriptベースで、Googleのクラウド環境でそのまま実行できるのが最大の魅力。

ファイル整理、データ集計、メール送信などを、ブラウザからノーインストールで操作できる便利ツールです。


✔ こんな雰囲気

  • JavaScriptっぽい書き心地
  • スプレッドシートでの繰り返し作業の自動化
  • Googleのサービス連携にめっぽう強い

✔ 注目ポイント
Gmail、Googleカレンダー、フォーム、スプレッドシートなど、Google製品を組み合わせた業務効率化が可能。
教育現場や小規模チームでの導入も多い。

✔ 強み

  • Googleドキュメント類とスムーズに連携できる
  • JavaScript経験者なら直感的に扱える
  • スプレッドシートの操作・メール送信・フォーム処理も全部書ける

■ 実際に使われている場面・事例

  • スプレッドシート間のデータ転記・整形
  • Googleフォームの自動返信や通知
  • メール一斉送信(Gmail)
  • カレンダーへの予定登録、ドライブ上のファイル操作
  • 社内ワークフローの自動化(GAS×スプレッドシート)

■ GASの開発

  • 完全クラウド型 → PCに何も入れずに書いて・実行できる
  • Google製品を横断して連携 → “Googleの世界”を自由に操れる
  • スプレッドシートやフォームと親和性抜群
  • JavaScriptに近いため学びやすい

■ GASでのサンプルコード

function checkMultipleOfThree() {
  const number = 9;

  if (number % 3 === 0) {
    SpreadsheetApp.getUi().alert("3の倍数です");
  } else {
    SpreadsheetApp.getUi().alert("3の倍数ではありません");
  }
}
  • JavaScriptライクな構文(const, if, ===など)
  • SpreadsheetApp.getUi().alert()スプレッドシート上にダイアログ表示
  • Google Apps向けの特殊なクラス(SpreadsheetApp, GmailApp など)を使う

■ “GASあるある”

  • 反応が遅い。クラウド経由でもったりもたつく。
  • TypeError: Cannot read property ... の謎メッセージ → オブジェクトが取得できていない罠
  • トリガーが動かない! → 「編集時トリガーは本人しか動かない」など制限多め
  • スプレッドシートのセル指定で getRange() の罠にハマる
    → 行・列指定ミスで全然違うとこ書き換えてた
  • 慣れると便利すぎて「GASで全部やろうとして破綻」現象(あるある)

■ 総評

GASは、「Googleの中でやっていた手作業をコードにする」という、現代の“クラウド版VBA”。

データ共有、連携、自動化が日常的になった今、実務レベルの自動処理を爆速で作れるのが最大の強みです。

特に、チームの非エンジニアにも価値が伝わるのが大きな魅力。
「動くものを作って感謝されたい人」にとって、最高の入り口かもしれません。

有料版のExcelがないと動かないVBAに対して、Googleアカウントさえあれば実行可能という点では、VBAよりさらに身近かも知れない。

紹介した言語を、まとめて表で振り返り。

ここまで、代表的な14言語について、歴史・なりたち・特徴について紹介しました。「プログラム言語について全然知らないけど、何かわかる!」ようになったのではないでしょうか。

次は別のアプローチとして、紹介した言語を表形式で振り返ってみます。

Web系(フロントエンド/バックエンド)言語 一覧

主にインターネット上で活躍している言語です。あなたが見ているこのぺージも、PHPを用いたWordPressというシステムで運用されています。

言語主な用途
HTML / CSSWebページの構造と見た目
JavaScriptブラウザ上の動的な動作(クリック、アニメーションなど)
TypeScriptJavaScriptの進化版。型安全で大規模開発に向く
PHPWordPressなどサーバー側の処理に強い
PythonWebフレームワーク(Django, Flask)で使われることも多い
RubyWeb開発用の「Ruby on Rails」が有名
Go高速でシンプルなWeb API開発に人気上昇中

アプリ開発系一覧

言語主な用途
SwiftiOS(iPhone / iPad)アプリ開発
KotlinAndroidアプリ開発(Javaよりも現代的)
DartFlutterと一緒に使うことでiOS/Android両対応のアプリが作れる

ジャンル別言語 AI・データ分析・自動化系 一覧

言語主な用途
Python機械学習、AI、スクレイピング、分析系で超定番
R統計分析やグラフ化に特化
Julia数値計算に強く、Pythonより速い場合も

⚙️ 機械組み込み/システム系

言語主な用途
Cハードウェア寄り、組み込み機器、OS開発
C++Cにオブジェクト指向を追加、ゲームや高速処理に使われる
Rust安全性が高く、高速。C++の代替として注目度上昇中

その他の注目言語

言語主な用途
Java昔から業務アプリ・Androidなどでよく使われてきた
C#Microsoft系の開発、Unityでのゲーム制作にも
SQLデータベース操作に必須
Shell / Bashサーバー操作や自動化スクリプト

プログラミング言語 早わかり比較表。
用途・シェア・メリット他

✅ それぞれ言語について、ふりかえり表

言語特徴・用途シェアメリットデメリットコードあるある
PythonAI、データ分析、Webなど幅広い非常に高いシンプルで読みやすい・豊富なライブラリ処理速度はC/C++より劣るインデントミスで動かない・バージョン違い問題あるある
JavaScriptWebのフロント&一部バックエンド非常に高いすぐ動かせて学習コスト低め・ブラウザで完結コードがぐちゃぐちゃになりやすいundefined地獄・非同期でハマる
TypeScript大型Web開発(JSの進化版)増加中型安全・保守性高い学習コストがJSより高めエラーが親切だけど長い
PHPWordPress、Webサーバー処理中~高Webに特化・学習しやすいコードがカオスになりやすい$_POSTで迷子・バージョン互換に泣く
Java業務アプリ・Android中~高信頼性と安定性・大規模向き冗長で記述量が多いpublic static void main毎回書かされる
C組み込み・OS・システム寄り安定軽量・高速・ハードに近いメモリ管理がシビアポインタバグで夜も眠れない
C++ゲーム・高速処理Cより高機能・オブジェクト指向複雑になりやすく難易度高STLとポインタで迷宮入り
C#Windowsアプリ・Unityゲーム.NET連携・GUI制作しやすいWindows依存がやや強いusing Systemで始まるお決まり
SwiftiOSアプリ開発Apple界隈で高安全・高速・Apple公式iOS以外では使いづらいXcodeのアップデートに振り回される
KotlinAndroidアプリ増加中Javaより簡潔でモダンJavaとの互換でやや混乱null安全なのに落ちる謎
GoWeb API・マイクロサービス増加中高速・シンプル・並列処理に強いジェネリクスが弱かった(改善中)if err != nil地獄
Rust安全&高速なシステム開発急上昇中C++級の速さ+メモリ安全学習難易度が非常に高い借用と所有権で脳がバグる

コード比較 “Hello World” を出力してみる。

▶ Hello World(全言語比較)

Python

print("Hello, World!")

→ シンプルで読みやすく、初学者にもやさしい構文。

JavaScript

console.log("Hello, World!");

→ ブラウザで即実行可能。Web開発の基本形。

TypeScript

console.log("Hello, World!");

→ JavaScriptと同様だが型安全に対応。

PHP

<?php echo "Hello, World!"; ?>

→ サーバーサイドでの出力。HTMLと併用されることが多い。

Java

public class Main {
  public static void main(String[] args) {
    System.out.println("Hello, World!");
  }
}

→ 毎回 main メソッドが必要で少し冗長。

C

#include 
int main() {
  printf("Hello, World!");
  return 0;
}

→ 構造はシンプル。コンパイルが必要。

C++

#include 
int main() {
  std::cout << "Hello, World!";
  return 0;
}

→ Cより柔らかい文法。名前空間の使用が特徴。

C#

using System;
class Program {
  static void Main() {
    Console.WriteLine("Hello, World!");
  }
}

→ .NET環境で使われる。GUIにも強い。

Swift

print("Hello, World!")

→ iOS/macOS開発で使われる、現代的で安全性の高い構文。

Kotlin

fun main() {
  println("Hello, World!")
}

→ Javaより簡潔で、Androidアプリ開発に最適。

Go

package main
import "fmt"
func main() {
  fmt.Println("Hello, World!")
}

→ 並列処理が得意なシンプル言語。

Rust

fn main() {
  println!("Hello, World!");
}

→ 安全性とスピードを兼ね備えたモダン言語。

SQL

SELECT "Hello, World!";

→ データベースから文字列を返す形式。

VBA

Sub HelloWorld()
  MsgBox "Hello, World!"
End Sub

→ Excel等のOffice製品内で自動化スクリプトとして使える。

GAS

function helloWorld() {
  Logger.log("Hello, World!");
}

→ Googleスプレッドシートなどで使えるJavaScript風スクリプト。

▶ コード比較 FizzBuzz(全言語比較)問題を解いてみる

FizzBuzz問題とは?
1から順に数を数え上げていき、3の倍数なら「Fizz」、5の倍数なら「Buzz」、両方の倍数(15の倍数)なら「Fizz Buzz」、いずれでもなければその数を出力する問題。

Python

for i in range(1, 101):
    if i % 3 == 0 and i % 5 == 0:
        print("FizzBuzz")
    elif i % 3 == 0:
        print("Fizz")
    elif i % 5 == 0:
        print("Buzz")
    else:
        print(i)

→ 読みやすい構文で、インデントがすべてを決める。

JavaScript

for (let i = 1; i <= 100; i++) {
  if (i % 3 === 0 && i % 5 === 0) {
    console.log("FizzBuzz");
  } else if (i % 3 === 0) {
    console.log("Fizz");
  } else if (i % 5 === 0) {
    console.log("Buzz");
  } else {
    console.log(i);
  }
}

→ 括弧と波かっこが特徴的。非同期処理とも相性が良い。

TypeScript

for (let i: number = 1; i <= 100; i++) {
  if (i % 3 === 0 && i % 5 === 0) {
    console.log("FizzBuzz");
  } else if (i % 3 === 0) {
    console.log("Fizz");
  } else if (i % 5 === 0) {
    console.log("Buzz");
  } else {
    console.log(i);
  }
}

→ JavaScriptに型を加えた構文。補完や型安全性が強化されている。

PHP

→ Web寄り言語だが、CLIスクリプトでも使える。

Java

public class Main {
  public static void main(String[] args) {
    for (int i = 1; i <= 100; i++) {
      if (i % 3 == 0 && i % 5 == 0)
        System.out.println("FizzBuzz");
      else if (i % 3 == 0)
        System.out.println("Fizz");
      else if (i % 5 == 0)
        System.out.println("Buzz");
      else
        System.out.println(i);
    }
  }
}

→ 構造が厳格。クラス定義とmain関数が必須。

C

#include 
int main() {
  for (int i = 1; i <= 100; i++) {
    if (i % 3 == 0 && i % 5 == 0)
      printf("FizzBuzz\n");
    else if (i % 3 == 0)
      printf("Fizz\n");
    else if (i % 5 == 0)
      printf("Buzz\n");
    else
      printf("%d\n", i);
  }
  return 0;
}

→ C言語らしく、標準出力にprintfを使う。

C++

#include 
int main() {
  for (int i = 1; i <= 100; i++) {
    if (i % 3 == 0 && i % 5 == 0)
      std::cout << "FizzBuzz\n";
    else if (i % 3 == 0)
      std::cout << "Fizz\n";
    else if (i % 5 == 0)
      std::cout << "Buzz\n";
    else
      std::cout << i << "\n";
  }
  return 0;
}

→ Cに比べて出力が柔らかくなる(coutの使用)。

C#

using System;
class Program {
  static void Main() {
    for (int i = 1; i <= 100; i++) {
      if (i % 3 == 0 && i % 5 == 0)
        Console.WriteLine("FizzBuzz");
      else if (i % 3 == 0)
        Console.WriteLine("Fizz");
      else if (i % 5 == 0)
        Console.WriteLine("Buzz");
      else
        Console.WriteLine(i);
    }
  }
}

→ Visual Studioなどと組み合わせやすいモダンな文法。

Swift

for i in 1...100 {
  if i % 3 == 0 && i % 5 == 0 {
    print("FizzBuzz")
  } else if i % 3 == 0 {
    print("Fizz")
  } else if i % 5 == 0 {
    print("Buzz")
  } else {
    print(i)
  }
}

→ スマートな構文。可読性も高い。

Kotlin

fun main() {
  for (i in 1..100) {
    when {
      i % 3 == 0 && i % 5 == 0 -> println("FizzBuzz")
      i % 3 == 0 -> println("Fizz")
      i % 5 == 0 -> println("Buzz")
      else -> println(i)
    }
  }
}

→ when式で条件分岐が簡潔に書ける。

Go

package main
import "fmt"
func main() {
  for i := 1; i <= 100; i++ {
    if i%3 == 0 && i%5 == 0 {
      fmt.Println("FizzBuzz")
    } else if i%3 == 0 {
      fmt.Println("Fizz")
    } else if i%5 == 0 {
      fmt.Println("Buzz")
    } else {
      fmt.Println(i)
    }
  }
}

→ 明快な構文。Goroutineを使わなくても高速。

Rust

fn main() {
  for i in 1..=100 {
    if i % 3 == 0 && i % 5 == 0 {
      println!("FizzBuzz");
    } else if i % 3 == 0 {
      println!("Fizz");
    } else if i % 5 == 0 {
      println!("Buzz");
    } else {
      println!("{}", i);
    }
  }
}

→ 安全性の高さとスピードを兼ね備えた構文。

『プログラミング言語 まとめ』について

「知識ゼロでも読みやすい・とりあえず分かる」を目指しつつ、各言語の派生や成り立ち、特徴をまとめてみました。

学びたいこと・作りたいものがあるなら、まずはそれに合った言語を選ぶことが近道です。それぞれの言語の「雰囲気」を感じ、興味が湧いたものがあれば、もっと深堀してみてください。

学びおきっかけとして、お役にたてれば光栄です。

次回は、「プログラミング言語・学び方ガイド」的なものをまとめようと思います。

記事について

当サイトは、主に自分用の備忘録として情報をまとめています。個別の質問にはお答えできません。
紹介するコードや設定をご参考の際は、ご自身の責任においてご利用ください。編集や実行によるいかなる損害・不具合についても、当サイトは責任を負いかねます。
必ず事前にバックアップを取り、安全に作業を行ってください。
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次