したがって、プロジェクトで使用する言語を選択するとき、理想的な世界では言語が選択されます。言語が仕事に適したツールだからです。ただし、私は、習得しなければならない言語や会話をしている言語ではなく、自分が流暢である言語を使用することを好みます。もちろん、言語の流暢さには、言語。 Javaのようなかなり汎用的な言語が本当に好きだからといって、常にそれを使用する必要があるという意味ではありませんが、同時に、Perlのようなものをすべて作成する必要があるという意味でもありません。ここで、テキスト処理を行う必要があります。
うわーそれは理論の世界から、そして生産の世界に持ち込まれるとき、非常に難しい質問です。
理論上
シンプル。常に最適なツールを使用して、必要なことを学んでください。
実際には
あなたの流暢さの問題があるだけでなく、これに答える前に尋ねる必要がある他の多くのビジネス上の質問があります:
理論以外では、テクノロジーの選択には深刻な影響があります。
今、私は正しいツールを選択しないと言っているわけではありません-正しいツールがそのコストの影響でさえ破れることができることを確認してください。
これが個人的なプロジェクトである場合は、常に「正しい」ツールを使用してください。ビジネスコンテキストでこの決定に直面した場合、より適切な情報に基づいた電話をかけることができます。
親しみやすさは十分に評価されていないと思います。親しみやすさは、適切なツールに非常によく影響します。プロジェクトを完了するには、ツールを使用する必要があります。さらに、楽しむものを使用すると、間違いなくそのフィットネスの欠点を超える可能性があります。これは、作業を行うことに興奮し、より良い結果が得られるからです。
http://headrush.typepad.com/creating_passionate_users/2006/08/when_the_best_t.html
これは、ビジネス上の質問を除いて、実際には解決できません。ただし、ビジネス上の質問の多くは短期的な数値のみを考慮して行われるため、このようなことは誤りです。
私の一般的なアプローチ:
コストとメリットについて考える際に留意すべき3つの点:1つは、急いでいる人々は未来を短く変える傾向があることです。第二に、維持費は、成功したシステムの費用の大部分を占めています。 3、優れた開発者は物事を学ぶことを好み、開発者を幸せに保つことは長期的な投資として有効です。
すばらしい質問です。 whatsisnameが彼の答えで言ったように、「熟知には十分な信用が与えられていません」。別のツール、別のフレームワーク、別の言語は、慣れているものよりもロット優れている可能性がありますが、それでもずっと少ないでしょうロープを学んだので、初めてそれを使って生産的になります。
私はデジタルプロジェクトのASP.NET開発者として数年間働いてきました。そこでは、大きなプロジェクト、小さなプロジェクト、タイトなプロジェクト、十分にパディングされたプロジェクトなどが混在しています。スキルを伸ばすために、 「ソフトターゲット」を探します。これは、厳しく厳しいハードデッドラインのない小規模なプロジェクトであり、優れた新しいテクノロジーを使用する機会としてそれらを使用します。 .NET 2.0、3.5、4.0、ASP.NET MVC、Linq to SQL、Entity Framework-これらはすべて、このようなプロジェクトで初めて使用しました。
そのような機会を利用できれば、うまくいけば、親しみに欠けることなく、適切なツールを選択するためのより大きなオプションのスイートを用意できるでしょう。 Julioの例のように、彼らはRubyをレパートリーに追加できるターゲットを見つけました。そして、今後はJavaとRubyのどちらかを選択できます。
ただし、締め切りが短く、プロジェクトが重要な場合は、使い慣れたツールを使用することをお勧めします。何か違う方が適しているかもしれませんが、そのようなプロジェクトでは、それはすべてriskについてです。
これはいくつかの事柄に依存します:
1。新しい言語やツールを習得するのがいかに上手か。
簡単な学習であれば、新しい言語やツールを習得するための障壁は低くなります。これにより、ツールボックスに別のツールを追加する機会が与えられます。
2。言語/ツールに依存せずに作業環境を作成します。
ワークフローがツールに大きく依存している場合は、さまざまな言語を学習するための障壁が高くなります。特定のIDEに慣れている場合、テキストの編集はきっとあなたを苛立たせるので、言語を切り替えることは単に言語を学ぶことよりもはるかに多くのことを含みます。
Vimまたはemacsを使用している人には、この問題はありません。彼らがしなければならないのは、新しい言語を学ぶことだけです。
3。ビジネスの現実
新しいツールや言語を学ぶには時間がかかります。その時はコストがかかります。しかし、そのコストは、初期費用よりも多くの投資をする可能性があります。また、不利な解決策は通常、実装に時間がかかり、保守が難しくなります。小規模なプロジェクトよりも大きく、既存のツールボックスのツールが問題に適さない場合は、どのツールが問題に適しているかを調査します。私はまた、ジェネラリストのアプローチに適した環境に投資し、選択したエディターとしてvimを使用する方法を学びました。
別のこと-2点間の最短距離はどれくらいですか?他の誰かが私がやりたいことをほぼ実行する何かを書いた場合、それを私のニーズに合わせて修正するのが通常は最も速いです。
私自身のバージョンは、仕事に「私が利用できる適切なツールを使用する」ことです。 「利用可能」とは、コンパイラやランタイムを購入/取得できるだけでなく、それを使用できることを意味します。
ほとんどすべての実際のシナリオでは、問題を考えると、それを解決するための時間は非常に限られています。 非常に短い時間 で本当に新しい言語を学ぶことができるとは思いません。言語を学ぶということは、実際に本を読んだり、他の人のコードを調べたり、それがどのように機能するか、そしてその背後にある哲学を理解することを意味します。 Webからチュートリアルを読んで(これは出発点として完全に良い)、ハッキングすることができます。しかし、それは恐ろしいコードにつながり、おそらくもっと短い時間であなたが知っている言語でより良いコードを書く方が良いでしょう。
「仕事に適したツール」ということわざにはメリットがありますが、最も一般的な言語は実際には汎用です。彼らは特定の分野で強みを持ち、他の分野では他の人ほどは良くないかもしれませんが、ほとんどの仕事を成し遂げることができます。言語を実際に知らないということは、そのツールが利用できないことを意味します。
私はただ1つ(または2つまたは3つ)の言語を学び、すべてのプロジェクトにそれらを使用し、他に何も学習しないと言っているのではありません。ツールボックスに追加するツールをさらに取得するには、他の言語を学ぶことが重要です。しかし、問題に直面した場合、慣れていないテクノロジーを使用して心配事に追加するよりも、あなたが知っているツールを使い続ける方が良いです。しかし、次に選択が簡単になるように、他の言語を学習し続けます。
興味のある新しい言語があり、あなた(およびビジネス)がそれを買う余裕がある場合は、数週間から1か月でその言語を調べてみませんか?
これが私がRubyを学んだ方法です。私のコーダーパートナーは、Javaで7年の経験がありました。私はJava=の経験を11年間持っていました。どちらも私たちがRubyについて何も知りませんでした。私たちがそれを試したかっただけでした。
私は彼と会社全体がRubyを1か月間試すことを確信しました(これは6〜8か月のプロジェクトになるでしょう)。
幸いにも1週間後には夢中になり、大丈夫でした。おそらくあなたは同じようなことを試すことができますか?他の言語でゼロから何かを構築できるかどうかを確認しますが、なぜそれを行っているのか、そして少なくとも同じくらい重要なことに、実験が失敗した場合の計画Bをビジネスに明確にします。
すべての状況に当てはまるこの質問への単一の答えは明らかにありません。しかし、ここではまだ言及されていないと思う側面があります。あなたが開発者であれば、あなた自身の市場性も考慮に入れるべきです。プロジェクトで言語Xが選択されている場合、履歴書ではどのように見えますか?慣れ親しんでいない言語を選択して、それを学ぶ理由があり、知的視野を広げ、スキルセットを将来の雇用主にとってより魅力的なものにすることは良い考えです。
言語に精通していることも「仕事にふさわしいツールであること」の側面だと思います。言語を完全に知らないので、プロローグが私にとって仕事に適したツールになる状況は想像できません。