経験豊富なJavaプログラマーにとって、C/C++への移行がいかに簡単か難しいかを知りたい。
"C++ for Java Programmers" および "Javaプログラマーは、いくつかのC /システムプログラミングを学ぶ必要がありますか? " 。
すべてが非常に興味深いように聞こえますが、私はPythonプログラミングでも経験した側面を具体的に追加したいと思います。あなたはpython = jython を使用するJVMで使用しますが、新しいコンセプトに触れてPythonの起源を探求する方がエクスペリエンスが向上すると思います。私のターゲット環境は主にLinuxです。
それがどれほど難しいかを推定し(おそらくあなた自身の経験からもわかるでしょう)、特にPythonと対話するためにCとC++のどちらを使うのが良いかについてのヒントを教えていただけますか?
Cは非常に小さな言語であるため、十分な労力と時間をかけても構わない経験豊富なプログラマーであれば、3か月で熟練できるはずです(これには、言語を使用した中規模から大規模のプロジェクトの作成、または少なくともいくつかの学習が含まれます)経験豊富なCプログラマが作成したものです)。
C++は、そのサイズと機能の複雑さを考えると、まったく別の話です。私はその言語にそれほど精通していませんが、言語をきちんと理解していると言うには少なくとも1年間、それを習得していると言うには3年以上は必要だと思います。
Javaから来ていることを考えると、Cをスキップして直接C++にジャンプすることもお勧めしません。Cが提供する興味深い洞察を失う可能性があるためです。
Pythonとのやりとりに関しては、Cの方が簡単だと思います。
C++はCインターフェースを完全に使用でき、C++は多くの非常に便利な追加機能を提供するので(Cの元の機能は比較してほとんど完全に役に立たないほど)、ターゲット用にコンパイルしようとしない限り、代わりにCを使用する理由はまったくありません。 C++コンパイラが存在しない場所。
今、それは難しい移行になるでしょう。 JavaとC++はsome構文を共有します、そしてそれがそれについてです。コンパイルモデルのようなひどいひどいものや、見事なものに精通する必要があります、テンプレートのように。
ただし、より基本的には、C++は静的で強力な値の型指定を使用しますが、Javaは比較的弱い参照型指定を使用します。実際には、優れたJavaコードなどのコードはありません。また、C++プログラマーは、式テンプレート、関数型インターフェイスなど、はるかに幅広い手法に精通していることが求められます。