プログラム所学者向け、おすすめ言語
●日本語
重要度:高
お勧め度:高
難易度:低
( ˙꒳˙ ) 冗談です
●英語
重要度:高
お勧め度:高
難易度:高い
( ˙꒳˙ ) 冗談といいたいけど、大事です。だいたいのプログラムの答えは海外サイトに転がってたりします。
ただ、GoogleChormeみたいなブラウザにはデフォルトで「日本語に翻訳」という
魔剣が備わってるので、それを駆使すれば、中学時代の英語の5段階評価2みたいな人間でも立ち回れます。
( ˙꒳˙ ) 真面目にプログラミング言語について軽く述べていきます
●C
重要度:低
お勧め度:低
難易度:中
( ˙꒳˙ ) 専門学校やプログラムを学校で習うときの定番の言語ですが、
最近は、普通にプログラムを学ぶだけなら、もっといい言語があるので、優先度は低いです。
マイコンとか、リソースが限られた環境で力を発揮しますが、Rustにお役を奪われそうな気配はしてます。
●C++
重要度:中
お勧め度:低
難易度:高
Rustがだいぶ速度面で追い上げてますが、それでもオブジェクト指向言語の中で
トップクラスの速度を誇る言語です。地味に改修案件で、改修前のプログラムが
この言語で作られてる事があるので、覚えておいて損は無いですが、学習コストは高い。
速度は圧倒的ですが、メモリ管理など、最近のモダンな言語にはない原始的な概念を理解しないと
すぐにメモリリークを起こすので、初心者にこれを進めるのは
免許取り立ての初心者に「スーパーカー」をお勧めするものだと思い、お勧め度は低くしました。
●C#
重要度:高
お勧め度:高
難易度:中
主にWindows系のGUIアプリケーション(WPF)を使うのに使う言語。
他には、ゲームエンジンでもあるUnity等でもスクリプトの実装部分として利用者が選べる選択肢に入ってる。
Javaの後追いのような感じで作られているため、利用感はJavaに近い。
Javaと違って、優秀なIDEあるVisualStudioをインストールすれば、そのまま使えるため、環境設定も比較的煩わしい場面は無いだろう。
たんにプログラムを学びたいだけなら、手軽さの意味で選択肢になる。
静的型付け言語の入門としては申し分は無い。
●Java
重要度:中
お勧め度:中
難易度:中
「VM」という仮想マシンの上で動くので、そのVMさえ入っていれば
どんな環境でも動く事が売りの言語。
とはいっても、その特性より、ライブラリやフレームワークの多さ、
言語としての癖のなさから愛されてる傾向が多い。
環境設定の若干の億劫さと、Javaを管理してるOracle社が時々
ドラスティックな決断をしてエンジニアをおびえさせてくる点と、
言語時代は安定してるが、よく使われるIDEである「エクリプスの動作の重さ」が
この言語の信頼性や開発効率の足を著しく引っ張っている感が否めない。
ちなみに、Javaを世に広めたのは、Sunなんとか会社と言う名前のところだが、
そのSunなんとかが落ち目になった時に、JavaのIDEとして名前を広げたツールの名前は
「Eclipse(日食)」というのは、中々このツールを考えた人は皮肉が好きなのだろう。
●PHP
重要度:中
お勧め度:中
難易度:中本のラーメンのスープを鼻の穴から飲むレベルに近い
Webアプリにおいて、データベースと唯一やり取りができる言語のひとつに入る。
サーバー上で動作し、データベースとクライアント間のデータの橋渡しをする。
言語的には、たんなる動的型付けのオブジェクト指向言語だが、
他の言語と比べて違うのは「圧倒的な環境設定の難易度の高さ」
HelloWorld一つだすのに、ローカルサーバーの起動から、
アクセス関係のコンフィグ、その他もろもろの設定ファイルをいじる必要があり、
文字通り「初見殺し」の塊。
また、動的型付け言語(途中から明示的に形宣言ができるようになった気はする)な上に
ソースコードの規模が膨れやすい事から、予期せぬ動作を起こしまくる、
災害レベルのスパゲティコードになる可能性が高い。
重要度:高
お勧め度:高
難易度:低
豊富なライブラリ、特に計算系や機械学習に対し、そのライブラリの力で
少ない記述で処理を実現できる言語。
インデントが空白スペース1文字ずれるだけでエラーを出すなど、
記述に厳格なので、行儀の悪いコードが書きづらい、補正下着みたいな言語。
正確にはスクリプト言語だが、クラスも問題なく宣言でき、ほぼほぼ本格的なプログラミング言語。
インストールしたあと、パスを通す必要があるが、難易度はJava等に比べて高くない。
唯一の弱点は、スクリプト言語故の実行速度と、所学者が選ぶ言語としてよう選ばれるだめ
就職のときはライバルが多い状態で就職活動をしないといけない恐れがある事か。
●JavaScript(+HTML&CSS)
重要度:高
お勧め度:高
難易度:(最初は)低
Web界隈で有名だが、JavaScript自体を単体としてバッチと組み込んで使う運用もある。
特に環境設定必要なく、JavaScriptとHTMLだけでHelloWorldを表示するだけなら楽勝。
ただ、JavaScriptの言語性質上、大規模な処理を書くには向いてなく、
容易にスパゲティ化するので、プロダクトとして運用する場合、
JavaScriptをそのまま使い続ける運用はお勧めできず、
CoffeeScript、最近はTypeScript等の、最終的にJavaScriptのコードとして吐き出す
中間言語(または糖衣構文(シンタックスシュガー))で間接的に記述することが多い。
React.js等に手を出し始めると、JavaScript及びHTMLやCSSの知識以外にも
他ツールやライブラリの知識も必要になるので難易度はあがるが、
Quitaとかの記事あされば出来ないほどでもない。
一番華やかな環境であると同時に、技術の新陳代謝が激しく、
覚えた言語がわずか数年で廃れる覚悟も必要になる
●Haxe
重要度:低
お勧め度:中
難易度:中
Haxeの記法(ActionScriptと言った方がいいか)で記述して、
特殊な定義ファイルを共にコンパイラに渡すと、まったく同じ動作をする
他言語のソースファイルを吐き出すのが最大の特徴。
言語レベルで実装が分かれてしまったプロジェクトの共通処理を書くのに向いている。
専用のコマンドでライブラリをインストールするなど、性質はPythonに近い。
重要度:無
お勧め度:無
難易度:高
控えめに言ってゴミです。
冗談抜きでコレを勉強するよりCOBOL勉強したほうがまだ未来があります。
とはいうのもアレなので、長所だけ言います。
「C」から派生してるので、オブジェクト指向言語としては速度面は早いです。
ただ、何度でもいう。ジョブズによってゾンビのように生き永らえ