Wie wählen Sie eine bestimmte Programmiersprache aus? [geschlossen]

8

Ich hatte ein kleines Gespräch zwischen Teamkollegen darüber, wie Sie eine Programmiersprache für die Verwendung in einem Projekt auswählen, was mich zu der Annahme veranlasste, dass es zu Beginn eines Projekts viele Kriterien gibt, aber keine wirklichen Standards.

Wählen Sie eine Programmiersprache für die Syntax und Semantik? Oder wählen Sie eine, weil sie die beste Unterstützung bietet, um bestimmte Dinge zu tun? Oder weil Sie bessere Bibliotheken haben? Oder wählen Sie es für das Paradigma?

Nach welchen Kriterien wählen Sie eine Sprache aus, wenn Sie ein Projekt durchführen möchten?

Jesus
quelle
1
Ich habe mich tatsächlich beim Nachdenken erwischt const Haskell :: [Constraint] -> ProgrammingLanguage.
dan_waterworth

Antworten:

15

Meine Kriterien in der Reihenfolge:

  1. Ist es das richtige Werkzeug für den Job? Wenn Sie beispielsweise einen grafischen, vernetzten Desktop-Client erstellen, möchten Sie eine Sprache verwenden, die solche Standardfunktionen wie Java oder C # unterstützt. OTOH, wenn Sie an einem Echtzeitsystem arbeiten, möchten Sie etwas, das Ihnen mehr Vorhersehbarkeit und Kontrolle auf niedriger Ebene bietet (wie C).

  2. Ist es für die Umwelt geeignet? Sind Compiler / Interpreter für die Zielplattform verfügbar?

  3. Ist es etwas, mit dem ich bereits vertraut bin, oder ist es eine Sprache, die ich schnell lernen kann? Da ich zum Beispiel den größten Teil meiner Erfahrung mit C und C ++ habe, kann ich schnell und einfach Sprachen mit ähnlicher Syntax (wieder Java oder C #) lernen. Etwas, das zu einer völlig anderen Familie gehört (wie Haskell), würde mich mehr Zeit nehmen, um mich damit vertraut zu machen.

  4. Ist es etwas, das gut unterstützt wird, mit vielen Referenzen sowohl online als auch auf Papier?

John Bode
quelle
1
Hinzufügen zu Nummer 1: Wo wird dieses Ding bereitgestellt? Sind automatische Updates wichtig? Wenn es nicht webbasiert ist Muss es plattformübergreifend sein? Welche Serverarchitektur verwenden Sie, wenn es webbasiert ist? Ich habe Ihre Antwort positiv bewertet, weil ich denke, dass die Implementierung die allererste Frage ist, die gestellt werden muss. Es ist, als würde man nach dem Was fragen, bevor man nach dem Wie fragt, insbesondere bei einem Projekt mit Kundenkontakt.
MetaGuru
5

Ich denke, es würden viele Faktoren eine Rolle spielen

  1. Passt die Sprache gut zu dem Anwendungstyp, den Sie codieren möchten?

  2. Wie gut beherrschen Sie die Programmiersprache? (Wird wichtiger, wenn die Fristen kürzer werden)

  3. Bibliotheks- und Sprachfunktionen für einen bestimmten Bereich in Ihrer Anwendung.

  4. Ist es eine neue Sprache? Wurde es im aktuellen Bereich getestet und bewiesen?

  5. Wie viele Leute codieren tatsächlich darin? Wichtig, wenn Sie Hilfe benötigen und eine aktive und große Community vorhanden ist

JohnP
quelle
1

Wichtige Kriterien für mich sind:

  • Vorkenntnisse in der Sprache.
  • Tool- / Herstellerunterstützung für die Sprache.
  • Bibliotheks- / Ökosystemunterstützung für die Aufgabe und die Sprache.

Ich würde sagen, Syntax und Paradigma sind nicht so wichtig.

Ich würde keine neue Sprache wählen, weil mir die Syntax oder das Paradigma gefallen, aber ich hatte schlecht funktionierende Tools und eine minimale Bibliothek, die das meiste, was ich brauche, nicht tun konnte.

FrustratedWithFormsDesigner
quelle
1

Sprachen sind Werkzeuge. Wie bei jedem Tool müssen Sie verschiedene Dinge berücksichtigen:

1) Haben Sie Zugriff auf das Tool?
2) Wissen Sie, wie man das Tool benutzt?
3) Welches der Tools, die die Kriterien 1 und 2 erfüllen, ist das beste für Ihren Job?

Wenn Sie nur ein Werkzeug haben, ist die Antwort einfach. Wenn Sie über ein Dutzend Tools verfügen, müssen Sie sich mit Hosting, Wartungskosten und anderen Problemen mit Peripheriegeräten befassen.

Satanicpuppy
quelle
1

Dies wird mich wahrscheinlich abstimmen lassen, aber das Wichtigste für mich ist die Syntax. Mit Programmen, die heutzutage viel mehr Zeit und Mühe in die Wartung investieren als beim ursprünglichen Schreiben, können Sie einen unbekannten Code (den eines anderen oder meinen eigenen, wenn ich ihn vor mehr als 6 Monaten oder so geschrieben habe) abrufen und den schnell ermitteln Die Absicht ist statistisch gesehen eine der wichtigsten Fähigkeiten, die ein moderner Programmierer haben kann. Eine saubere, leicht lesbare Sprache hilft dabei ungemein.

Danach in keiner bestimmten Reihenfolge,

  • Gute Standardbibliothek
  • Gute IDE und Tools
  • Starke Community, insbesondere das Open-Source-Ökosystem
  • Die Fähigkeit, ein schnelles und effizientes Endprodukt zu generieren
Mason Wheeler
quelle
2
Nach diesem Argument ist Ada für Sie Ihre erste Wahl und PERL ist eine Erfindung des Teufels. Stimmt das?
John R. Strohm
@ John: Meine bevorzugte Sprache ist Delphi, eine entfernte Cousine von Ada. Die von Pascal abgeleitete Syntax ist nett, aber Ada hat nie wirklich eine starke Community entwickelt. Was Perl betrifft, werde ich Alan Kay diese Frage beantworten lassen. "Perl ist ein weiteres Beispiel dafür, wie man einen winzigen, kurzfristigen Bedarf befriedigt und dann langfristig ein echtes Problem darstellt." Wenn man bedenkt, wie Software heutzutage in allen Lebensbereichen eingesetzt wird, ist es nicht schwer zu behaupten, dass die Welt viel besser wäre, wenn Perl und C von der Computerbranche nie ernst genommen worden wären. Aber im Nachhinein ist 20/20, wie sie sagen ...
Mason Wheeler
1

Ich benutze nur die Sprachen, die ich am besten kenne:

  • Java für so ziemlich alles
  • SQL für die Datenbank
  • Winzige Shell-Skripte und Befehlszeilenskripte
  • HTML, CSS und JavaScript für das Web-Frontend

Ich versuche nicht, eine neue Sprache zu lernen, wenn ich ein ernstes neues Projekt starte. Ich benutze was ich weiß.


quelle
-1 i) Wie beantwortet das die OP-Frage? ii) Entschuldigung, da jeden Tag so viele neue DSLs erstellt werden, glaube ich wirklich nicht, dass dies ein Verhalten ist, auf das man stolz sein kann. iii) Der Pragmatische Programmierer gibt einen sehr beliebten (und hilfreichen) Rat: Lernen Sie jedes Jahr eine neue Sprache.
Rsenna
1
@rsenna: Wenn ich Devil's Avocado spiele, denke ich, dass wir manchmal ein bisschen Macho über unsere Fähigkeit bekommen können, neue Sprachen zu lernen. Es gibt etwas zu sagen, um mit der Arbeit in Sprachen zu beginnen, die Sie zuerst gut kennen, um herauszufinden, wo Ihre Schwachstellen liegen, und um dann nach Sprachen zu suchen, die Ihnen tatsächlich bei der Lösung helfen.
Paul D. Waite
1
+1, um -1 aufzuheben, weil Sie in fast jeder realen Situation mit der Sprache, die Sie am besten kennen, einen besseren Job machen als mit einer anderen Sprache, die besser zum Problem passt, aber die Sie sind weniger vertraut oder unbekannt.
Carson63000
0

Die Kosten für die Erstellung einer Anwendung sind nahezu proportional zur Codegröße. Um die Kosten zu minimieren, wähle ich die leistungsstärkste Sprache, die zur Lösung ähnlicher Probleme verwendet wurde. Ich mache mir keine Sorgen um die Anzahl der Programmierer, die die Sprache kennen, da ich nicht sehr viele brauche. Ich versuche auch, eine Lieferantenbindung zu vermeiden, daher bevorzuge ich offene Lösungen.

Kevin Cline
quelle