ヤス先生プログラミングに挑戦
自称無趣味のヤス先生がプログラミングを趣味に…
てなわけで、私の著書『Pythonプログラミングスクール「かめののろい」』を実践してくれることに。
ヤス先生のnote ←ここからお入りください。投稿した記事が順次読めます。
今回はコンピュータ言語(人間が分かる言葉なので、高級言語ともいいます)の事を書いてみます。
パソコンに仕事をさせるのには、パソコンに分かる言葉で書く必要があります。それをアッセンブラ(マシン語)と呼びますが、人間にとっては難解です。そこで、人間にもなじみのある言葉で命令が書けないか?という必要性からプログラミング言語が誕生しました。
私がプログラミングを勉強しはじめたときCOBOL(コボル)とBASIC(ベーシック)という言語が主流で、今でも金融機関のプログラムはCOBOLが使われています。
BASICには色々なメーカー独自のBASICがありました。
BASIC NEC流・富士通流とかSHARP流 等々(笑)しかし複雑な画像処理とか10進数の小数計算の四捨五入や分数にする場合には誤差が出たりしたので、アッセンブラ(マシン語)を覚える必要がありました。
その後有名なC言語が誕生し、BASIC+アッセンブラではCPU(処理する石:頭脳)が変われば又アッセンブラで作り直さなければならなかった手間から多少解放されることになり普及しました。
機械の進歩は速くCPUの処理能力も高くなり640kb(1kb=1024b)のメモリーにこだわることなくプログラムが書けるようになったので、アッセンブラの必要性は薄れてゆき、使われなくなりました。(コアなプログラムでは今も健在!)
私にとってアッセンブラが必要なくなってしまったので、もうすっかり忘れてしまいました。使わないと忘れるのは、なんでも同じなんですね!
C言語はC++とかC#等といった派生が生まれ今に至っています。(私はC#は未経験)
では、少し詳しく。
プログラミング言語の形態は大きく分けて2つ
プログラミング言語(コンピュータ言語)にはインタプリターとコンパイラの2種類あります。(例外:JAVA言語は2つのいいとこ取りで、どんなOS(オーエス:(オペレーティングシステムの略 Windows,Mac,Linuxなど)でも動かすことが出来ます)
コンピュータは、0(OFF)と1(ON)の二進数で動くことはご存じですね。高級言語で書かれたソースコードをコンピュータに伝えるには、コンピュータに分かるマシン語(2進数)に変える必要があります。
インタプリター:BASIC,Ruby,Python等は書かれたソースコード(プログラム)を実行するときに一行一行マシン語に直して実行するので、以前は実行速度が遅くあまり人気がありませんでしたが、今はCPUの処理能力も高く速度を気にすることもなくなったので、実行してすぐ結果が出ることで人気上昇中です。
イメージとして、英語の原書を読む場合ワンセンテンスを訳しながら読むような感じです。頭脳の処理能力で読む速度も違いますね。
コンパイラ:C,C++,C#,COBOL等はソースコードをコンパイルという作業を経て直接実行できるマシン語に一括変換します。直接実行できる実行ファイルが出来るのでスピードが速い特徴がありますが、バグが出るとデバッグという作業が必要になります。
イメージとして翻訳された書籍を読むイメージです。でも、誤字脱字があった場合は悲惨ですね。もう一度出版し直さなければなりません。この誤字脱字がバクと言われるモノです。
どんな言語が良いの?
もし、これからプログラミングを勉強しようと思ったら、インタプリターが取っ付きやすいと思います。私個人としてはPythonやRubyがおすすめです。
PythonはAIとか機械制御に向くといわれていますし、RubyはWeb開発に優れていると言われています。
それに他の言語に比べコードが短くて済むので楽にできます。
また、一つの言語を習得すれば、他の言語の文法や表記を覚えれば済むので他の言語もわりかし楽に覚えられます。
ただ、将来プログラマーになろうと考えている人は、Cの勉強は役に立つと断言できますし、C言語は最強だと思っています。が、私自身は結構お年を取ってきたので、今更Cで書こうなどとは思っていません。
結論:自分に合った言語は?
大変無責任ですが、自分であれこれいじって決めてください。