前回、初心者が初心者なりに初心者向けに様々な言語を分類してみたという記事を書いたところそれなりの反響をいただいたので、もう一度似たようなテーマで言語を紹介します。今回は、何をしたいか、にフォーカスして言語を分類します。
##Webページを作りたい
HTML、CSS、JavaScript
Webページを作りたければ、一般的にフロントエンド言語と呼ばれるこの3つを習得しましょう。HTMLはマークアップ言語と呼ばれるものの一種で、Webサイト上の要素の構造を書く言語。CSSはその付属品で、デザインを指定するためのもの。JavaScirptは動きをつけたり、ブラウザ上で完結する処理を行うためのプログラミング言語です。簡単なWebサイトはこの3つによって動いているため、この3つを習得するのが楽しいでしょう。環境構築が簡単なのも良い点。
##サーバーを利用する、より複雑なWebサイトを作りたい
フロントエンド言語に加えて、Ruby、PHP、Pythonのいずれか
簡単に習得しやすいサーバーサイド言語といえば、Ruby、PHP、Pythonの3つみたいです。それぞれに様々なフレームワーク(拡張機能)があるため、比較的簡単にWebサイトを制作することが可能です。
とにかく手っ取り早くWebサイトを作りたければRuby(Ruby on Rails)を、他の分野で役に立つ言語を学びたければPythonを学ぶとよいでしょう。PHPはよく使われている言語ですが、優位性がよくわかりませんでした。
##スマホアプリが作りたい
Java(Android)、Swift(iOS)
作りたいものが明白にあるなら、作るための言語を学びましょう。
Androidアプリを作るために利用されるJavaは歴史が古く、様々なことができる言語ですが、習得が難しめで、コードが長くなりやすいという欠点があります。
SwiftはApple社が自社製品のために開発した言語で、iOSアプリを作るために使います。Swiftを持ちた開発環境を構築するためにはMacが必要です。
##本気でゲームが作りたい
C#
Unityというゲーム開発プラットフォームで利用されているC#という言語を学ぶとよいでしょう。もしくは、CやC++でゴリゴリ書いていくか。軽いゲームなら大体どんな言語でも作れるみたいです。
##人工知能とか機械学習とかAIとか統計とかあの辺やりたい
Python、R、Julia
3つの言語の比較としては
R:統計専門言語。研究分野でよく名前を聞く。標準で統計にまつわる様々な機能が付いている反面、実行が遅め、何かを作ろうとすると別の言語が必要などの理由から落ち目っぽい。
Python:いろいろできる上に統計機能が充実してきた。数年前は「やっぱPythonじゃダメだ、Rを使おう」みたいな状況だったが、最近は様々な機能が使えるようになり、Rのお株を奪っているらしい。
Julia:これからに期待の言語。新しめ。早くいろんなことができるらしい。なんかいいらしいと聞くけど私は詳しく調べていないのであんまり説明できません。
##初心者だから書きやすい言語で遊んでみたい
Ruby
私の趣味なので異論はあるでしょうが、書きやすい言語で遊んでみたいのならRubyをおすすめします。Rubyは直感的に理解しやすく、煩わしいルールが少ないため、学びやすく、遊ぶやすい言語です。
##プログラミングの基礎からきっちり学びたい
C、C++
CやC++はかなり昔からある現役の言語です。長所は、なんでも作れる、実行が早い、コンピュータの基礎的なことが学べる(メモリの管理など)ことです。欠点は、コードが長く冗長になりやすいこと、細かなルールが多く習得が難しいこと。初学者が最初に学ぶ言語としてオススメする人がけっこういる。個人的には初心者がCやC++やったらよほど適性がないと挫折すると思う。
##これから流行りそうな言語を学びたい(私の予想する流行りそうな言語)
Go、Scala、Python
Go言語はGoogle社が開発した言語です。シンプルな言語を目指して作られたそうで、用途は選びますが開発需要は高まりそうです。
Scalaは、誕生の過程で学術的な意図が見え隠れする言語です。関数型でありかつオブジェクト志向なんだとか(よくわかっていない)。開発需要は少しずつ増している印象。Scalaのクイズ本に手を出してみたいと思いつつ、他の言語の優先度が高くて手を出せずにいます。
Pythonは先ほどから何度か出てきますが、人工知能、機械学習と関わりの深い言語です。人工知能系企業の採用言語は大体Pythonなイメージなので将来性が高そうです。ちなみに、日本ではあまり普及していません。
More than 5 years have passed since last update.
Register as a new user and use Qiita more conveniently
- You get articles that match your needs
- You can efficiently read back useful information
- You can use dark theme