web-dev-qa-db-ja.com

特定のプログラミング言語の使用をどのように選択しますか?

プロジェクトで使用するプログラミング言語をどのように選択するかについてチームメイトの間で少し話していました。そのため、プロジェクトの最初に選択する基準はたくさんありますが、実際の標準はないと思います。

構文とセマンティクスにプログラミング言語を選択しましたか?それとも特定のことをするのに最高のサポートがあるので、あなたはどちらを選びますか?または、より良いライブラリがあるからですか?それともパラダイムにそれを選びますか?

プロジェクトを行うときに、1つの言語を選択するためにどのような基準を使用しますか?

8
Jesus

私の基準、順番に:

  1. それは仕事に適したツールですか?たとえば、グラフィカルなネットワークデスクトップクライアントを構築している場合は、JavaまたはC#のような、そのようなことをサポートする言語を使用する必要があります。OTOH、リアルタイムシステムで作業している場合は、予測可能性と低レベルの制御(Cなど)を提供するものが必要です。

  2. 環境に適していますか?コンパイラー/インタープリターはターゲットプラットフォームですぐに利用できますか?

  3. それは私がすでに知っているものですか、それともすぐに習得できる言語ですか?たとえば、私の経験の大部分はCおよびC++を使用しているため、同様の構文(JavaまたはC#)を持つ言語を簡単にすばやく選択できます。完全に異なるファミリにあるもの( Haskellのように)慣れるのにもっと時間がかかります。

  4. オンラインと紙面の両方で多くの参照があり、十分にサポートされているものですか?

15
John Bode

たくさんの要素が入ってくると思います

  1. 言語は、コーディングするアプリケーションの種類に適していますか?

  2. あなたはプログラミング言語にどれだけ精通していますか? (締め切りが短くなるほど重要になります)

  3. アプリケーションの特定の領域のライブラリおよび言語機能。

  4. 新しい言語ですか?現在のドメインでテストおよび証明されていますか?

  5. 実際に何人がコードを書いていますか?助けが必要で、活発で大規模なコミュニティがある場合に重要

5
JohnP

私にとって重要な基準は次のとおりです。

  • 言語に関する以前の経験。
  • 言語のツール/ベンダーサポート。
  • タスクと言語のライブラリ/エコシステムサポート。

構文とパラダイムはそれほど重要ではないと思います。

構文やパラダイムは好きでしたが、機能が不十分なツールと最小限のライブラリーしか持っていなかったため、新しい言語を選択しませんでした。

言語はツールです。他のツールと同様に、いくつかのことを考慮する必要があります。

1)ツールにアクセスできますか?
2)ツールの使い方を知っていますか?
3)基準1および2を満たすツールのうち、どれがあなたの仕事に最適ですか?

ツールが1つしかない場合、答えは簡単です。ダースのツールがある場合は、ホスティング、メンテナンスコスト、およびその他の周辺機器の問題を調べる必要があります。

1
Satanicpuppy

これはおそらく私を失望させるでしょうが、私にとって最も重要なことは構文です。最近のオリジナルの記述よりもはるかに多くの時間と労力を費やしてプログラムを保守しているプログラムでは、なじみのないコード(誰か他の人のコード、または6か月以上前に記述した場合は自分のもの)を拾い上げて、その意図は、統計的に現代のプログラマーが持つことができる最も重要なスキルの1つです。クリーンで読みやすい言語はこれに非常に役立ちます。

その後、順不同で、

  • 良い標準ライブラリ
  • 良いIDEとツール
  • 強力なコミュニティ、特にオープンソースのエコシステム
  • 高速で効率的な最終製品を生成する機能
1
Mason Wheeler

私が最もよく知っている言語のみを使用します。

  • ほとんどすべてのJava
  • データベースのSQL
  • 小さなシェルスクリプトとコマンドラインスクリプト
  • Webフロントエンド用のHTML、CSS、JavaScript

真剣に新しいプロジェクトを始めるとき、私は新しい言語を習得しようとはしません。私は知っていることを使います。

1
user22136

アプリケーションを構築するためのコストはコードサイズにほぼ比例するため、コストを最小限に抑えるために、同様の問題を解決するために使用されている最も強力な言語を選択します。あまり多くは必要ないので、言語を知っているプログラマーの数を心配する必要はありません。また、ベンダーロックインを回避するように努めているため、オープンソリューションを好んでいます。

0
kevin cline