【初心者向け】オススメしたいプログラム言語10選

2021-05-03

【初心者向け】オススメしたいプログラム言語10選

※ネタ記事です。

はじめに

コロナで在宅ワークに移行したのを皮切りに、プログラミングを勉強したいという話や、 ハウスメーカーの営業の友人からはブログで家造りの参考になる情報を発信したいと相談がありました。 共通しているのはまず何から始めたら良いのかわからないというものでした。

英語や日本語と行った一般言語は数え方にもよりますが、津軽弁などの方言も含めると3000種類以上あります。 プログラム言語も同様に6000を超えるほどの数があるとも言われております。 プログラム”言語”と言われていますが自然言語を使用しないものも沢山あります。 コンピュータが出始めの頃には、パンチカードと呼ばれる紙の束で処理の手続きを表現していたこともあるそうです。

自然言語を記載するのではなくブロックをつなぎ合わせて処理手続きを記載するものもあります。 例:Scratch,Unreal Engine(Blueprints)

ドット絵で記載するPietという自然言語で無いものも存在します。

今回は、そんなに沢山あるプログラミング言語から何を選べば良いのか分からない、迷える子羊達を救うべく記事をかきました。

ランキングを書く人について

PS2でBASICを使ってゲームプログラミングができるものを誕生日プレゼントにもらったのが始まりです。 その後、いろんなプロジェクトに駆り出され色々な人たちが作ってきたコードに合わせて開発言語を変えてきた著者の経験を活かして何が最適かランキング形式で紹介します。 いきなり実践投入される開発は辛いものです。 一番辛かったのは今まで触れたことの無かったPHPで作られているECサイトにGoogle Maps埋め込んで、複数ある配送先の最適経路で巡回できるピンを打ち込むプログラムを書いたときですね。

得意不得意は置いておいて、一瞬でも触れたことある言語を列挙します。 授業や開発、趣味で触れたことのある言語の一覧です。 ※触れたことがあるというのが味噌です。

  • C/C++ 11/14
  • Java (Android)
  • Python
  • Ruby
  • PHP
  • Unreal Engine4(Blueprints)
  • JavaScript(Vue/React)
  • Go
  • Python
  • VBA
  • BrainFuck
  • BASIC
  • Scrach
  • Lisp
  • Dart(Flutter)
  • SQL
  • MATLAB
  • Piet
  • Grass
  • Malbolge
  • Whitespace
  • Assembly language
  • Lua
  • CoffeeScript
  • CAPL(Communication Access Programming Language)

大半の言語は仕様や記載方法を思い出せないですが、ただただ雑食過ぎる。

ランキング

前置きが長くなりましたが、ランキングを始めましょう。

第10位 C/C++

GCC, the GNU Compiler Collection

C言語とC++言語は最も有名な開発言語です。 C言語と行っても方言があるようで、Visual Studio で使われているC/C++言語(VC/VC++)とGCCでは微妙に振る舞いが異なる部分もあります。詳細は別の聞いてください。

この言語は、自動車や家電製品の組み込み開発に使用されていますし、ハードウェアに密着した処理を書く場合に強みがあります。 LuaやPythonをバインディングして使うこともでき、ベース部分はCやC++で書きながら振る舞いを変えたいときにスクリプト系の言語を埋め込む手法も使われます。

逆も然りで、Pythonなど他の言語で開発しながら高速化のために呼び出されることもしばしば見かけます。

やっておいて損はしないと思いつつ、一番最初に学ぶべき言語かという議論になると少し疑問が残ります。

第9位 Python

インタプリタ型言語として代表的な顔をされている言語で、書籍も豊富です。 ハーバード大学で最初に学ぶプログラミング言語ともなっているようです。

Pythonでは、プログラムの書き方に縛りがあり、誰が書いても大体同じようなコードになるため読みやすいというメリットがあります。 スクレイピングや、機械学習をやるのであればライブラリも豊富です。 最近話題になっている言語ですが歴史が長く1991年にリリースされています。

第8位 Ruby

日本人(まつもとひろゆき氏)が開発したプログラム言語です。 日本語でのコミュニティもありながら、世界中にファンがいる言語です。 成熟されたWebアプリフレームワークRuby on Railesもあり幅広い開発に対応できることうけあいです。 クックパッドの開発に使用されていることも有名ですね。

第7位 Assembly language

C言語で書かれたコードはこのアセンブリに展開しています。 同じコードでありながらマイコンを変えたときに、展開方法が異なり割り込み処理が入る余地が生まれ不具合になったりします。

その昔スーパーファミコンの開発にも使われていた由緒正しき言語です。

第6位 Lazy K

用意されていく組み込み関数が3つだけと極めてシンプルな作りとなっています。

l = λ x,x
K = λ xy,x
S =  λ xyz,x z(y z)

純粋関数型言語として必要最小限の機能を備えている言語ですが この余白はそれを書くには狭すぎる。

詳細は、皆様の目で確かめてください。

第5位 Malbolge

1998年にBen Olmsteadによって開発された、パブリックドメインの難解プログラミング言語です。 不特定多数の方に配布する場合、内部処理を隠したい意図や知的財産保護から難読化を行うことが知られています。 このMalbolgeはそのような目的ではなく、言語そのものもを難読化することを目的とした言語となります。

そのため、バイナリを読める方は探せばいますが、難読言語であるMalbolgeを読める人が極めて少ない言語であるためより強い開発者を目指す読者が学習するにふさわしい言語だと考えております。

名古屋大学の酒井教授がこの言語に関するプログラミング手法の論文が情報処理学会に出されています。 [難読プログラミング言語Malbolgeにおけるプログラム構成手法]https://www.trs.cm.is.nagoya-u.ac.jp/~nishida/DB/pdf/iizawa05ss2005-22.pdf

第4位 Whitespace

半角スペース、タブ文字、改行文字(LF)のみでプログラム記載できます。 それ以外の文字はコメント扱いで無視されます。

公式サイトが落ちており、コンパイラがインターネット上から見つけることができなかった言語でもあります。

第5位に比べれば読みやすい言語だとは思います。

第3位 Piet

Piet 言語という壁がなく、自然言語を知らなくても書くことができるダイバーシティ対応言語と言えるのではないでしょうか。

本格的な抽象画を描き始めた最初期の画家Piet Modrianから来ております。

プログラミングはストレス負荷の高い作業ですから、 出来上がるプログアムが美しいと優しい気持ちで取り組むことができますね。

Hello Worldを書くとこうなります。

第2位 Grass

Grass うはwwwwwwwwwwwwwwwwww使う文字列が「w」「v」「W」しかなくて覚えることが少ないwwwwwwwwwwリファレンスが揃っていてwwwwwwwポイントが高いですねwwwwwwwwwww

Hello Worldを書くとこうなります。

wvwWwwwwWwwwwwwWWWWWwWWWWWwwwwvwwwwWWWwwWwwWWWWWWwwwwWwwvwWWwWwwvwwWWwvwWWWwwWW
WWWwwwWwwWWWWWWwWWWWWWWwWWWWwWWWWWwWWWWWWwWWWWWWWWWWWWWWwwwwwwwwWwWwWWWwwWWWWww
wwwwwWWWWWwwwwwwwWWWWWWwwwwwwwWWWWWWWWWWWWWWWWWWWWWwwwwwwwwwwwwwwwwwwwwwWwwwwww
wwwwwwwwwwwwwwWwwwwwwwwwwwwwWwwwwwwWWwwwwwwWWWwwwwwwWWWWWWwwwwwwwwwwwwwwwwwwwwW
wwwwwwwwwwWWwwwwWWWwwwwWWWWwWWWWWwwwwwwwwwwwwwwwwwwWWWWWWWWWWWwWwwwWWwWWWwWWWWw
WWWWWWWWWWWWWWWWWwwwwwwwwwwwwwwwwwWwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwWwwwww
wwwwwwWWwwwwwwwwwwwWWWwwwwwwwWWWWwWWWWWwwwwwwwwWWWWWWwwwwwwwwwwwwwwwwwwwwwWWWWW
WWwwwwwwwwwwwwwwwwwwwwwwwwwwwwWWWWWWWWWwwwwwwwwWwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wWWwwwwwwwwwwwwwWWWwwwwwwwwwwwwwWWWWwwwwwwwwWWWWWwwwwwwwwwwwwwwwwwwwwwwwwwwWWWW
WWwwwwwwwwwwwwwwwwwwwwwwwww

笑顔になる言語ですwwwwwwwwwwwwwwwwwwwww最高ですねwwwwwwwwwwwwwwwwwwww

第1位 BrainF*ck

BrainF*ck

「プログラム言語は覚えることが沢山あって分からない、覚えやすい簡単な言語を教えてくれ」そのような気持ちに答える言語がこちらです。 この言語で覚えるべき命令は8種類だけです。更に他言語では言語に用意されている関数を覚えたりライブラリを選択したりと大変ですがその心配もありません。

コンパイラのサイズが非常に小さいため、開発の敷居も低いことが最大の魅力です。

Hello Worldを書くとこうなります。

>+++++++++[<++++++++>-]<.>+++++++[<++++>-]<+.+++++++..+++.[-]>++++++++[<++
++>-]<.>+++++++++++[<+++++>-]<.>++++++++[<+++>-]<.+++.------.--------.[-]>
++++++++[<++++>-]<+.[-]++++++++++.

Grassに比べたら可読性が高いですね。 知名度も高く方言も多数ある言語であることから、この言語を第1位に選定しました。

まとめ

茶番にお付き合い頂きありがとうございました。 見て分かる通りクソネタランキングになってしまいました。

Minecraftを入れてやろうかと思っていましたが、ScrachのようなGUIプログラミングが揃っており、想像以上に実用的だなと思いまして抜きました。

まっとうなランキングを見たければ、TIOBEのものがおすすめです。

さて好き勝手書きましたが、プログラミング言語を選ぶ価値観はそれぞれです。 プログラム言語に良し悪しをつけてランキング形式で紹介して書いてますが、言語に優劣は無いと私は考えています。 その言語の得意分野とやりたいことがマッチしたものを使えばいいと考えています。 このランキングが皆様の言語を見つけるきっかけになれば幸いです。

何を勉強したら良いのかという人に向けて

まずは、自分の興味が何かを見つめ直し、作りたいものを作るのに適した言語を選び、プログラミングを始めてはいかがでしょうか。

EXCELの効率化がしたいのであればVBAを覚えれば役立ちますし、 AI開発をしたいニーズであれば情報が豊富なPythonを選択しますし、 Webアプリを作りたいのであればPHPや、JacaScriptやRuby(on Railes)を勉強すればよいと思います。。

ポケモンと同じで優劣はないと思います。 ぜひ皆様の手に馴染む言語が見つかることを切に願っております。