9

多くの開発者は、あるプログラミング言語から別のプログラミング言語への移行は比較的簡単であると主張します。言語が同様のパラダイムに基づいている場合は特にそうです。ただし、実際には、言語の構文を学習することではなく、言語のニュアンスを深く理解し、さらに重要なことに、言語のライブラリで何が提供されているかを知ることが努力の対象となります。たとえば、Java から .Net への切り替えは、構文の観点からは難しくありませんが、プログラミングの効率を高めるには、使用可能なライブラリに関する十分な知識が必要です。PHP から .Net への切り替えは、言語の違いを考えると、さらに大きなハードルを提示する可能性があります。

開発者が同じパラダイムで別の言語に移行する場合の実際のオーバーヘッドは何ですか? パラダイムが異なる場合はどうなりますか?

4

7 に答える 7

10

(私にとって) 最大の課題は通常、言語自体ではなく API です (.NET にもかかわらず)。たとえば、私は長年 Microsoft の C++ と C# を使用してきました (それ以前は Delphi を使用していました)。しかし、Java を使い始めるのは非常に困難です。些細なプロジェクトでも時間がかかることがあります。言語が難しいからではなく (そうではありません)、API が異なり、配置が異なるためです。

API を流暢に使用できるようになるまでには数か月かかります。また、言語のすべてを習得して「上手」になるには何年もかかります。基本的に、新しい言語の専門家になるには、かなりの時間と労力を (すべてではないにしても) 新しい言語で作業するために費やす必要があるため、これは多くの開発者にとって困難なことです。多くの場合、現在の専門分野から離れようとする動機はそこにはありません。

于 2008-10-17T13:41:56.260 に答える
2

あなたが言及したように、実際にはさまざまなライブラリを把握してすばやく見つけるだけの問題であるため、同じパラダイムははるかに簡単です。

パラダイムがこの切り替えよりも異なる場合は、より困難です。静的言語から動的言語へ、または手続き型言語から OOP 言語への移行には、異なる考え方が必要になります。これにはさらに時間がかかりますが、可能であり、非常に良い演習です。

外国語を学ぶのと似ているかもしれません。英語を話す場合、他のラテン語ベースの言語に移行することは、ギリシャ語などに移行するよりもはるかに簡単です.

于 2008-10-17T13:45:33.353 に答える
1

同じパラダイム内での移動は比較的簡単です。Java と .NET の切り替えは、どちらのプラットフォームも同様の機能と同様のライブラリを提供しているため、簡単に切り替えることができます。しかし、パラダイムを切り替えることは本当に難しいことかもしれません。

私の学生は通常、Java を学んだ後、関数型言語と論理型プログラミングの方が簡単ですが、関数型言語と論理型言語に進むのに苦労します。

もう 1 つの問題は、アプリケーションの種類を切り替えることです。たとえば、Java でデスクトップ アプリケーションを構築することに慣れていて、突然 .NET で Web アプリケーションを構築しようとすると、新しい言語だけでなくプログラミングの新しい分野も学ぶことになるため、切り替えは困難です。

もう 1 つの課題は、特定の言語で使用できるツール セットです。Java と .NET には類似したツールがありますが、いくつかの違いがあります。Visual Studio を使用してプログラミングを学んだ場合、Visual Studio の機能が言語と混同される可能性があります。私は学生がいつもこの問題を抱えているのを見ます。Java に切り替え、新しい IDE にウィザードの同等のメニュー オプションがない場合、問題が発生する可能性があります。

プログラミングを学ぶ人には、特定の言語ではなく、パラダイムの中核となる概念を学ぶことをお勧めします。オブジェクト指向の概念に慣れている人は、C# でプログラミングする方法を学んだだけの人よりも、Java と .NET または Python の間を簡単に切り替えることができます。

于 2008-10-17T13:58:47.553 に答える
1

あなたの快適ゾーンを離れます。これが、一部の開発者が新しい言語を学ばない最大の理由の 1 つだと思います。

しかし、他の人にとっては、これが彼らを駆り立てるものです。

于 2008-10-17T13:41:21.490 に答える
1

私にとっては、言語に関する優れたブロガーや役立つサイトを見つけることです。しばらくすると、最高の人がどこにいるかがわかります。それらの人々やサイトは、機微を学ぶための優れた情報源です。

于 2008-10-17T13:40:59.837 に答える
0

15年以上のC++のバックグラウンドから来て、私が取り組んでいる新しいプロジェクトのためにJavaに移行する必要がありました.これはかなり苦痛なステップです. ほぼすべてのツールとフレームワークがありますが、学習曲線は膨大です。新しい構文は心配する必要はありません。API はより難しくなりますが、最も難しい領域は、すべてのフレームワークを介して方法を見つけることです。

また、IDE として Eclipse を使用しなければならないことは、Emacs と比較して安定性と信頼性の点で一歩後退しています。Eclipse の機能は非常に魅力的ですが、IDE のバグは常に問題を引き起こします。

于 2009-08-25T08:15:54.457 に答える
0

新しい人間の言語を学ぶのと同じように、私にとって最大の問題は、問題を解決するために必要な典型的な構造にあります。

おそらく複数の言語で "while" または "for" ループを学習することはそれほど難しくないことはわかっていますが、問題が 1 レベルの抽象化 (この配列を反復処理) に上がると、"[" の代わりに "[" を使用していることに気付くでしょう。 (" およびその逆。

新しい言語を学ぶだけでなく、新しいフレームワークも学ばなければならない場合、学習曲線はさらに急勾配になる可能性があります。典型的な ASP.Net から MVC (NVelocity を使用) に移行したとき、私は完全に道に迷ったように感じました。

最後に、パラダイムの異なる言語間で言語を変更すると、問題を解決するために同じように考えることができなくなるため、最大の課題が発生します。同様に - C# から Prolog に移行するとき、関数、引数、クラス階層などを考えるのではなく、状態、データ変更にリンクされたイベント、および再帰によるイベント チェーンだけを考えなければなりませんでした。私の大学の宿題。

于 2008-10-17T14:04:08.213 に答える