特定のプログラミング言語の使用をどのように選択しますか?[閉まっている]


8

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

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

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


1
私は実際に考えていたconst Haskell :: [Constraint] -> ProgrammingLanguage
dan_waterworth 2012年

回答:


15

私の基準、順番に:

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

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

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

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


1
#1に追加するには:これはどこにデプロイされていますか?自動更新は重要ですか?Webベースではない場合、クロスプラットフォームである必要がありますか?Webベースの場合、どのサーバーアーキテクチャを使用していますか?私は実装が最初に尋ねる質問だと思うので、私はあなたの答えを支持しました。特にクライアント向けのプロジェクトでは、「方法」を尋ねる前に「何を」尋ねるようなものです。
MetaGuru

5

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

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

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

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

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

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


1

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

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

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

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


1

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

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

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


1

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

その後、順不同で、

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

2
それで、その議論によって、あなたにとって、エイダはあなたの最初の選択であり、PERLは悪魔の発明です、私は正しいのですか?
John R. Strohm、

@ジョン:私の選択した言語は、実際にはエイダの遠い従兄弟であるデルファイです。Pascal派生の構文は優れていますが、Adaが強力なコミュニティを実際に開発したことはありません。Perlについては、Alan Kayに答えてもらいます。「Perlは、小さな短期的なニーズを満たし、長期的には本当の問題となるもう1つの例です。」最近の生活のあらゆる面でソフトウェアがどのように使用されているかを考えると、PerlとCがコンピューティング業界によって真剣に受け取られていなかったとしたら、世界がはるかに良い場所であると主張することは難しくありません。しかし、彼らが言うように、後知恵の20/20 ...
メイソンウィーラー、

1

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

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

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


-1 i)OPの質問にどのように答えますか?ii)申し訳ありませんが、毎日たくさんの新しいDSLが作成されているので、それを誇りに思うべき行動だとは思いません。iii)Pragmatic Programmerは非常に人気のある(そして役立つ)アドバイスを提供します。毎年新しい言語を学ぶことです。
rsenna

1
@rsenna:悪魔のアボカドをプレイしています。新しい言語を学習する能力について少しマッチョになることがあります。最初によく知っている言語で作業を開始し、問題点を特定してから、実際に問題を解決するのに役立つ言語を探すには、何か言いたいことがあります。
ポールD.ウェイト2011

1
+1でその-1をキャンセルします。ほとんどすべての現実世界の状況では、問題により適した別の言語を使用するよりも、あなたが最もよく知っている言語を使用するほうがより良い仕事をするためです。あまり馴染みがないか、不慣れです。
Carson63000

0

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.