
・ROSを始める際、PythonかC++のどちらがいいかわからない。
こんにちは、るい(@CenotenBlog)です。
本記事は上記のような悩みを解決できる様に書かれています。
・Pythonがおすすめな理由。
・C++をおすすめしない理由3つ。
この記事を書いている僕は、大学3年生の頃からROSを使用しています。
そして、3ヶ月程度の独学でROSをある程度使用出来る様になりました。
こういった僕が、解説していきます。
Pythonがおすすめな理由
ROSの標準言語は「Python」または「C++」ですが、結論として、間違いなくPythonで問題ありません。
特にプログラミング初学習者の場合なら尚更です。
理由の1つとして、開発コードのほとんどがPythonで入手可能である為です。
初学習者の場合、コードを0から書いていくというより、参考になるソースコードから一部を抜粋し、最終的に1つのコードにまとめるのが簡単なやり方だと思います。
ROS上のプロジェクトの多くがPythonを使用しています。
したがって、参考になるソースコードがネット上に溢れているため開発が楽に進みます。
また、もう1つの理由として、ROS用の参考書のほとんどがpythonを標準言語として取り扱っています。
僕自身、ROSの学習に使用した参考書はPythonを使用して書かれていました。
ちなみに、僕は『プログラミングROS』という参考書を主に使用していました。
他にも、『ROSではじめるロボットプログラミング』や『実用ロボット開発のためのROSプログラミング』はPythonのコードが収録されています。
以下にこれらの参考書について書いた記事を載せておきます。
C++で書かれている参考書ももちろんあります。
こちらでまとめてますので参考までに↓
・ROSの参考書を知りたい・ROSの参考書には種類がいくつかあってどれが良いのかわからない。・今使っている環境にあったROSの参考書を知りたい。 こんにちは、CenotenBlogです。 この記事では、上記の悩みに[…]
ここまで読んで少しプログラミング言語の知識のある方は、もしかすると、「将来的に大規模な開発になるとC++を使うんじゃないの?」と思うかもです。
しかし、改めて言うとPythonで問題ありません。
なぜなら、プログラミングは1つの言語を使えるようになると、
別の言語の習得がかなり楽になるからです。
なので、プログラミング初学習者の場合は、
「万が一、C++での開発が必要になったらその際学習しよう」
というスタンスが最適です。
なので繰り返しですが、まずはPythonで問題ありません。
C++をおすすめしない理由3つ。
かと言っても、プログラミングの知識がない人からすると、C++についても少し知識を身につけ、最終的な判断を自分で下したいかと思います。
僕自身、C++についてそこまで詳しくないのですが、以下に簡単に、初学習者にはC++をおすすめできない理由を3つほど紹介したいと思います。
・その①:C言語の知識が必要。
・その②:オブジェクト指向の概念理解が難しい。
・その③:メモリー管理を意識しながらコードを書く必要がある。
その①:C言語の知識が必要
C++とはC言語に「オブジェクト指向」と呼ばれる機能を持たせたものです。
つまり基礎となる部分はC言語の知識が必要という事です。
したがって、最初にC言語を学んだ後に、C++を学習するプロセスになると思います。
1つの言語をマスターする為に2つの言語を学ぶのは大変ですよね…
その②:オブジェクト指向の概念理解が難しい。
先ほど述べた様に、C++とはC言語に「オブジェクト指向」と呼ばれる機能を持たせたものです。
まず、「オブジェクト指向」という言葉の意味すらわからないですよね…
さらに、プログラミング初学習者にはこの「オブジェクト指向」の概念理解は非常に難しいです。
プログラミング 学習初期段階ではこの概念を全て理解する必要はありませが、
次に述べるC++の特徴を十分に活かす為には、きちんと理解する必要があります…
その③:メモリー管理を意識しながらコードを書く必要がある。
C++の特徴はその処理速度の早さと自由度の高さです。
しかし、この特徴の恩恵を受ける為には、メモリ管理を効果的に行う必要があります。
このメモリ管理については、先ほどの「オブジェクト指向」の概念理解が必要となってきます。
なんだか複雑な話になってきましたね…
要するにC++の学習は大変だという事です。
そもそもプログラミング初心者がメモリを意識する必要はほとんどありませんし、オブジェクト指向やクラス、ポインタ 、インスタンス等々よくわからない横文字に悩まされる必要もありません。
まとめ
何度も繰り返しになりますが、プログラミング学習者がPythonまたはC++で迷った場合は、間違いなくPythonがおすすめです。
Pythonの学習方法については、過去に僕が1ヶ月でPythonをマスターした方法書いた記事があるので、以下に記載しておきます。↓
また、上記でも述べたROSの参考書についてはこちらを参考にして下さい。
参考書によって、少し違った特徴があるので、自分との相性が良さそうなものを選んでみてください。
・ROSの参考書を知りたい・ROSの参考書には種類がいくつかあってどれが良いのかわからない。・今使っている環境にあったROSの参考書を知りたい。 こんにちは、CenotenBlogです。 この記事では、上記の悩みに[…]
それではPythonを習得し、楽しいロボット開発生活を送りましょう。
最後まで読んで頂きありがとうございます。