今から始めるのであれば、プログラミング言語は何を習得すべき?

プログラミング学習帳 プログラミング

世の中には様々なプログラミング言語があり歴史がある。無数のプログラミング言語が生まれ、淘汰され、残ったプログラミング言語の良い点を継承した次のプログラミング言語が生まれている。プログラミングの勉強を始めたばかりだと、何を学べば良いかすら分からないと思う(私は分からなかった)。

これからプログラミング言語を学ぶのであれば、①出来るだけ新しく生まれて、②ある程度ユーザー数を獲得しているプログラミング言語を使うのが望ましいと個人的には思う。勿論、より機械言語に近い言語を学ぶことでプログラムの仕組を理解する方が望ましいという主張も理解できるし、最終的に深く理解しようとすればどちらにせよそうした勉強は必要になるが、やはりプログラムが動くことの感動を味わいながら開発していくことを先に知った方が吸収しやすいと思う。

フロントエンドの歴史

結論:HTML & CSS → TypeScript(React)

HTML、CSSはすごく昔から今に至るまでかなり息の長い言語。HTMLは静的なサイトを作るもので、すごく簡単にホームページくらいなら作れる。CSSはHTMLを飾るためのもので、文字に色をつけたり大きさを変えたりできるもの。最近ではWASM(WebAssembly)がフロントエンドに採用されてどの言語でもフロントエンドは書けるが、難易度は高いので、初心者はHTML, CSSから学ぶのがおすすめ。

Javascript(1995年)→TypeScript(2012年)

TypeScriptはJavaScriptの強化版に近い。JavaScriptよりType(型)を厳密にしたのがTypeScript。型を厳密にすることで、データベースの整合性が取り易くなる。エクセルで商品の在庫管理をしようとしたとき、在庫数に文字が混じっていたら管理しにくいのと同じような感覚。TypeScriptで入力したものをJavaScriptに変換する形で運用する。

TypeScript(JavaScript)で代表的なフレームワークは3種類。

  • React.js 2013年にFBが開発。拡張機能でTypescriptでも使用可能。コンポーネント志向で機能ごとに部品を組み合わせて簡単にUIが設計できる。
  • Angular 2010年にGoogleが導入。AungularはTypescriptベース。ページ数が少ないwebアプリケーション開発に向く。一つのフレームワーク内ですべての機能が完結しているフルスタックフレームワーク。頻繁にアプデされている。
  • Vue.js Angular開発に関わっていた元Google社員がAngularの好きな部分を強化すべく2014年に開発された。シンプルで自由度が高く、他ライブラリと組み合わせられる。

まとめ Augularは初心者には難易度高め。人気度合いもVueやReactに比べれば劣る。Vueは短期間で開発しやすいが、中規模以上だとReactの方が開発しやすくなる。現状のベターはReactかなと思う。

バックエンドの歴史

PHP(1995年)、Ruby on rails(Rubyは1995年)。

Dart(2011年)。Hack(2014年)。Elixir(2010年)。

C(1972年)→C++(1983年/1998年)→java(1995年)→C#(2000年)。C#はVisual Studio上で稼働させるのが効率的。ゲーム開発に適する。UnityではC#。Unreal EngineではC++。

Go(2009年)。iOS、Windows、Android問わず使える。メルカリやGunosy。

scala(2003年)。Javaと互換性がある。TwitterやLinkedin、ビズリーチ。

Rust(2015年)。C++の上位互換。Web開発。OS開発のセキュリティ面に強い。

バックエンドのフレームワーク

Djangoは2005年に開発されたPythonベースのサーバサイドフレームワーク。LaravelはPHPベースで2011年に開発された。Ruby on railsはRubyで2005年に開発された。Flaskはpythonベースで2010年に開発された。Node.jsはJavascriptで2009年に開発された。2022年現在はこれらバックエンドフレームワークよりもGoの方が人気は高い。

iOSアプリの歴史

Object-C(1983年)→Swift(2014年)

Androidアプリの歴史

Java(1995年)→Kotlin(2011年)

その他の用途

Python(1990年)。AIやビッグデータ、IoT領域で使われやすい。Webアプリやデータ分析。Youtubeやinstagram、Dropboxなど。

R()。データ分析に使われやすい。

SQL(1977年)。データベースを操作するための言語。

Julia(2012年)。高度な計算や数値解析に向いている。機械学習。ライブラリは限定的だがpythonの上位互換になり得る。Pythonの数十倍高速とされる。データサイエンス向き。

Microsoft Visual Basic(1991年)→Visual Basic.NET(2002年)。Visual studio上で稼働する。簡単に書けて簡単な繰り返し動作を自動化できる。しかし簡単なことしかできないことが難点。簡単に書けることが利点。

旧式:Haskel(1990年, 業務システム)、Assembly language、Pascal(1968年)、COBOL(1959年)、Scratch(教育用)。C言語(1972年, 業務システム/組込), C++(1983年, 業務システム/組込), Java(1996年, webアプリ/業務システム/組込/スマホアプリ), Groovy(2003年, webアプリ/業務システム), Perl(1987年, webアプリ), FORTRAN(1954年), MATLAB(1975年), Ada(1983年)、LISP(1958年)

コメント

タイトルとURLをコピーしました