どのプログラミング言語を学ぼう???
そこでプログラミング初めましてな人向けに,独断と偏見で各言語の違いを分類しておく.
プログラミング言語とは?
人は言葉を介して意思や考えを共有するが,コンピュータは言葉を理解できない.コンピュータは電流のON/OFFで表される「0/1の数字の組み合わせ」のみを理解する.
しかし,人間がコンピュータに命令したいとき,毎回「0/1の数字を組み合わせて」命令書を記述するのは滅茶苦茶大変!(昔の人はやってたらしいけど....)
そこで生まれたのがプログラミング言語である.
プログラミング言語は比較的,人の言葉に近い形の文法構造を持っており,0/1より理解しやすい形をとる.
プログラミング言語で書かれたソースファイルをコンピュータの理解できる0/1で書かれた実行ファイルに変換することで,コンピュータに思い通りの動きをさせることが出来る.
プログラミング言語とできること(得意なこと)一覧
役割は☝で述べた通りだが,何をコンピュータにやらせるかによって言語ごとに得意なものが異なる.
得意なこと | プログラミング言語 |
---|---|
① Webサイトの構築 | HTML・CSS,PHP,Ruby,JavaScript, |
② アプリケーション開発 | PHP,Ruby,Visual Basic,JavaScript,Python,Swift,C#,Kotlin,Java,C/C++,Objective-C |
③ 電子機器の制御 | Python,Go,C/C++ |
④ AI・機械学習の開発 | Python,R,Julia |
他にも様々な言語が生まれては消えるのを繰り返しているが,現時点でメジャーなものは以上の通り.
ここではさらに,ロボット開発においてメジャーな3つの言語,Python,C/C++,Matlabについて言及していく.
ロボット3大?言語の比較
言語 | メリット | デメリット |
---|---|---|
Python | 最も単純な(英語に近い)文法構造を取るので,入門しやすい | 実際,ロボット制御などを行うときには,実行から実際に動くまでのタイムラグが大きい |
C/C++ | ロボット制御などの際に小さなタイムラグで実行可能 | 色々便利な分,感覚的に理解するのが難しい文法もある |
Matlab | なぜか大学の先生は皆これを使う(計算などの拡張機能が充実しているから?) | 使用に必要なライセンスの料金が有料&高額 |
以上をまとめると,本当にプログラミング初めて!な人にはpythonが圧倒的におすすめ.
pythonで基本的な文法を学んでから他の言語に切り替えれば,単語単語は似通っているので調べやすいし,覚えやすいし,理解しやすい.
また,ライブラリがたくさんあるので,機械学習など今流行りのものにも気軽に取り組める点もポイントが高い.
一方で,より難しい命令書を書くとなると,C/C++のほうが書きやすいことも.... だてに昔からずっと使われ続けた言語じゃない.
また,ロボット開発を目指すなら,センサによっては使える言語(対応言語)が限られていたりするので,そこも注意する必要がある.