現代言語(Rust・Go・TypeScript)とは?2010年代以降に登場したプログラミング言語

公開: 更新: カテゴリ: テクノロジ系

30秒で結論

現代言語とは(全体像)

現代言語は、2010年ごろから広まった、新しい考え方を持つプログラミング言語のこと。共通するねらいは、バグを減らす安全性、複数の処理を同時にこなす並行性、書きやすさ(開発者体験)だ。

身近にたとえると、自動車の進化だ。昔ながらの高性能だが扱いの難しい車(C/C++)に対し、Rustは「高性能+安全装備が充実した現代のスーパーカー」、Goは「実用的なハイブリッドSUV」、TypeScriptは「安全機能を足したセダン(JavaScriptの強化版)」というイメージ。

押さえるのは、3つの代表(Rust・Go・TypeScript)の得意分野だ。


詳しく:3言語の得意分野だけ覚えれば戦える

ここが記事の心臓部。代表3言語を比べましょう。

現代言語の代表3つ

言語作った会社得意なこと
RustMozillaメモリ安全+高性能(C/C++の代わり)
GoGoogle並行処理がかんたん・コンパイルが速い
TypeScriptMicrosoftJavaScriptに型を足して大規模開発を安全に

Rustは、メモリ安全と高性能を両立した言語です。「所有権」というしくみで、よくあるメモリのバグをコンパイルの段階で防ぎます。性能が必要でC/C++の代わりになり、Linuxの中核(カーネル)にも採用されました。

Goは、並行処理を簡単に書ける言語です。goroutineという軽い仕組みで、たくさんの処理を同時にこなせます。文法がシンプルでコンパイルも速く、DockerやKubernetesなどのインフラ系ソフトの実装に使われています。

TypeScriptは、JavaScriptに「型」を足した拡張です。型があるとミスに早く気づけるので、大規模なWeb開発で広く使われます。ここで取り違えやすいのが「TypeScript=JavaScript」という誤解。TypeScriptはJavaScriptの拡張で、最終的にJavaScriptに変換されて動きます

もう1つの定番のひっかけが、RustとRuby。名前が似ていますが、まったく別の言語です。Rustは性能重視のシステム言語、Rubyはおもにウェブ開発に使うスクリプト言語です。

わかりやすく言い換えると

要するに、3つの得意分野で覚えるとラクです。

Rust … メモリ安全+高性能(所有権で守る・C/C++の代わり)

Go … 並行処理がかんたん(goroutine・Docker/Kubernetesで活躍)

TypeScript … JavaScriptに型を足した拡張(別言語ではない)

つまり、「Rustは安全、Goは並行、TypeScriptはJSの型付き拡張」、これを押さえれば迷いません。


試験のツボ

🔴 一番出る:Rustはメモリ安全

①Rust = 所有権でメモリのバグを防ぐ・高性能(C/C++の代わり)

②Linuxの中核(カーネル)にも採用された

🔴 次に出る:Goは並行処理が得意

①Go = goroutineで多くの処理を同時にこなす・コンパイルが速い

②DockerやKubernetesなどインフラ系ソフトの実装に使われる

🟡 押さえると安定:TypeScript

①TypeScript = JavaScriptに型を足した拡張(最終的にJSに変換される)

②大規模なWeb開発で広く使われる


よくある間違い

「TypeScriptはJavaScriptとまったく同じもの」→ ✗  TypeScriptはJavaScriptに型を加えた拡張。最終的にJavaScriptに変換されて動く。

「RustとRubyは同じ言語」→ ✗  名前が似ているだけの別言語。Rustは性能重視のシステム言語、Rubyはウェブ向けのスクリプト言語。

「Goは並行処理が苦手な言語」→ ✗  Goはgoroutineで並行処理を簡単に書けるのが強み。DockerやKubernetesに使われる。


試験での出題パターン

実際の問題でたしかめてみよう。

オリジナル問題1(Rust)

📝 オリジナル問題 1 Rustの特徴

Rustに関する次の記述のうち、正しいものはどれか。

  1. Rustは所有権でメモリのバグを防ぐ高性能な言語で、Linuxの中核にも採用されている
  2. Rustはメモリ安全をいっさい考えない言語で、性能も低く実用には向かないとされている
  3. RustはRubyのことを指す別名で、おもにウェブ開発に使うスクリプト言語とされているのだ
  4. Rustは紙に印刷する装置のことで、プログラミング言語とは無関係なものとされているのだ
テクマスター
テクマスター 解答・解説

解答は 1 ですよ。

Rustは所有権でメモリのバグを防ぐ高性能な言語で、Linuxの中核にも採用されていますね。C/C++の代わりになります。

選択肢2の「メモリ安全を考えない」、選択肢3の「Rubyの別名」、選択肢4の「印刷する装置」はどれも誤りですよ。

選択肢判定理由
1所有権でメモリ安全・高性能
2メモリ安全と高性能が強み
3RustとRubyは別言語
4印刷する装置ではない

オリジナル問題2(Go)

📝 オリジナル問題 2 Goの特徴

Goに関する次の記述のうち、正しいものはどれか。

  1. Goは並行処理がいっさいできない言語で、インフラ系のソフトには使われないものとされている
  2. Goは紙に印刷する手順のことで、プログラミング言語とはいっさい無関係なものとされている
  3. Goはgoroutineで並行処理を簡単に書ける言語で、DockerやKubernetesに使う
  4. GoはJavaScriptに型を足した拡張で、ウェブのフロントエンド専用の言語にすぎないとされる
テクマスター
テクマスター 解答・解説

解答は 3 ですよ。

Goはgoroutineで並行処理を簡単に書ける言語で、DockerやKubernetesに使われているんですね。文法がシンプルでコンパイルも速いです。

選択肢1の「並行処理できない」、選択肢2の「印刷する手順」、選択肢4の「JSの型付き拡張」はどれも誤りですよ。

選択肢判定理由
1並行処理が強み
2印刷する手順ではない
3goroutineで並行・インフラで活躍
4それはTypeScript

オリジナル問題3(TypeScript)

📝 オリジナル問題 3 TypeScriptの特徴

TypeScriptに関する次の記述のうち、正しいものはどれか。

  1. TypeScriptはJavaScriptとまったく別物で、JavaScriptに変換されることはないとされる
  2. TypeScriptはJavaScriptに型を足した拡張で、最後はJavaScriptに変換されて動く
  3. TypeScriptはメモリ安全を所有権で守るシステム言語で、C/C++の代わりとされているのだ
  4. TypeScriptは紙に印刷する装置のことで、ウェブ開発とはいっさい無関係なものとされている
テクマスター
テクマスター 解答・解説

解答は 2 ですよ。

TypeScriptはJavaScriptに型を足した拡張で、最終的にJavaScriptに変換されて動くんですね。型があるとミスに早く気づけます。

選択肢1の「変換されない別物」、選択肢3の「所有権のシステム言語」、選択肢4の「印刷する装置」はどれも誤りですよ。

選択肢判定理由
1JSに変換されて動く
2JSに型を足した拡張
3それはRust
4印刷する装置ではない

まとめ

押さえどころ

次に学ぶ


執筆: SikakuQuest編集部

勉強は、クエストになった。

資格の勉強を、冒険に変えるRPG学習アプリ

App Storeで見る