402 Stimmen

Was sind fünf Dinge, die Sie an Ihrer Lieblingssprache hassen?

Es gab in letzter Zeit eine Häufung von Perl-Hass auf Stack Overflow, also dachte ich, ich bringe meine " Fünf Dinge, die Sie an Ihrer Lieblingssprache hassen " Frage an Stack Overflow. Nimm deine Lieblingssprache und nenne mir fünf Dinge, die du an ihr hasst. Das können Dinge sein, die Sie einfach nur ärgern, zugegebene Designfehler, erkannte Leistungsprobleme oder jede andere Kategorie. Sie müssen sie nur hassen, und es muss Ihre Lieblingssprache sein.

Vergleichen Sie sie nicht mit einer anderen Sprache, und sprechen Sie nicht über Sprachen, die Sie bereits hassen. Sprechen Sie nicht über die Dinge, die Sie an Ihrer Lieblingssprache mögen. Ich möchte nur die Dinge hören, die du hasst, aber tolerierst, damit du all die anderen Dinge benutzen kannst, und ich möchte etwas über die Sprache hören, von der du dir wünschst, dass andere Leute sie benutzen würden.

Diese Frage stelle ich immer dann, wenn mir jemand seine Lieblingssprache aufdrängen will, und manchmal auch als Interviewfrage. Wenn jemand keine fünf Dinge findet, die er an seinem Lieblingstool hassen kann, kennt er es nicht gut genug, um es entweder zu befürworten oder das große Geld damit zu machen. Er hat es nicht in genügend verschiedenen Situationen eingesetzt, um es vollständig zu erforschen. Er befürwortet sie als Kultur oder Religion, was bedeutet, dass ich falsch liege, wenn ich nicht seine Lieblingstechnologie wähle.

Es ist mir nicht so wichtig, welche Sprache Sie verwenden. Sie wollen eine bestimmte Sprache nicht verwenden? Dann tun Sie es nicht. Sie haben sich nach bestem Wissen und Gewissen für eine Sprache entschieden und verwenden sie trotzdem nicht? Kein Problem. Manchmal lautet die richtige Antwort: "Sie haben ein starkes Programmierteam mit guten Praktiken und viel Erfahrung mit Bar. Zu Foo zu wechseln wäre dumm."


Dies ist auch eine gute Frage für Code Reviews. Leute, die eine Codebasis wirklich kennen, haben alle möglichen Vorschläge für sie, und diejenigen, die sie nicht so gut kennen, haben unspezifische Beschwerden. Ich frage Dinge wie "Wenn Sie bei diesem Projekt noch einmal von vorne anfangen könnten, was würden Sie anders machen?" In dieser Fantasiewelt können sich Benutzer und Programmierer über alles und jeden beschweren, der ihnen nicht gefällt. "Ich möchte eine bessere Schnittstelle", "Ich möchte das Modell von der Ansicht trennen", "Ich würde dieses Modul anstelle dieses anderen verwenden", "Ich würde diese Methoden umbenennen", oder was auch immer ihnen an der aktuellen Situation nicht gefällt. Auf diese Weise bekomme ich einen Eindruck davon, wie viel ein bestimmter Entwickler über die Codebasis weiß. Es ist auch ein Anhaltspunkt dafür, wie viel vom Ego des Programmierers in dem steckt, was er mir erzählt.

Hass ist nicht die einzige Dimension, um herauszufinden, wie viel Menschen wissen, aber ich habe festgestellt, dass sie eine ziemlich gute ist. Die Dinge, die sie hassen, geben mir auch einen Hinweis darauf, wie gut sie über ein Thema nachdenken.

18voto

Orion Edwards Punkte 117361

Ruby ist meine Lieblingssprache, aber hier ist, was ich nicht mag:

  • Grüne Threads + blockierende C-Bibliotheken = Riesenfehler
  • SO SCHMERZHAFT LANGSAM
  • Die Standardbibliothek selbst ist inkonsistent bei der Verwendung von Methoden der bang!
  • Modul include + extend ist unübersichtlich.
  • "Offene Klassen" können nicht skaliert werden - ich möchte einen String#dostuff hinzufügen, aber ich möchte nicht, dass das in alle Bibliotheken von Drittanbietern eindringt
  • Keine binäre Paketlösung für die Bereitstellung.

18voto

Asrrin29 Punkte 291

VB6

  1. Nur für Windows.
  2. Wird nicht mehr unterstützt.
  3. Arrays können mit einer beliebigen Zahl beginnen, anstatt alle auf 0 normalisiert zu sein.
  4. kompilierte Anwendungen hängen von vielen DLLs ab, um ordnungsgemäß zu funktionieren.
  5. Viele komplizierte Steuerelemente wie ein Browser-Steuerelement oder komplizierte Codestücke neigen dazu, die IDE zu stören, wenn Sie den Code unkompiliert ausführen, funktionieren aber einwandfrei, wenn sie kompiliert sind.

17voto

Toon Krijthe Punkte 51819

Delphi:

  • Die IDE ist ein wenig instabil.
  • Die Einsicht in den Code wird manchmal verwechselt.
  • Das Debugging ist manchmal fehlerhaft.
  • Die Aktualisierung mehrerer Projektdateien kann mühsam sein.
  • Wenn beim Starten ein oder mehrere Pakete nicht verfügbar sind, wird die Fehlermeldung mehrmals angezeigt.

16voto

Andreas Grech Punkte 102197

JavaScript

  • Jedes Skript wird in einem einzigen globalen 'Namespace' ausgeführt... etwas, worauf Sie achten müssen, wenn Sie mit Skripten aus verschiedenen Quellen arbeiten

  • Wenn eine Variable verwendet wird, aber nicht vorher definiert wurde, wird sie als globale Variable betrachtet

  • Browser-Anbieter erfinden Standards nach Belieben und machen uns Entwicklern das Programmieren mit einer so schönen Sprache schwerer, als es sein sollte

  • Groß-/Kleinschreibung - in Anbetracht der Tatsache, dass es keine anständige IDE für die Entwicklung von Js mit Kompilierzeitprüfung gibt

  • Umgehungslösungen (wie die Verwendung von hasOwnProperty Methode), um einige, ansonsten einfache Operationen durchzuführen.

15voto

wnoise Punkte 9530

Haskell:

  1. Platzverluste durch faule Bewertung.
  2. Numerische Hierarchie, die nicht im Hinblick auf mathematische Abstraktionen aufgebaut ist.
  3. Strenges monadisches IO kann die Fehlersuche erschweren.
  4. Die großen Implementierungen behandeln E/A auf eine Art und Weise, die nicht ganz mit dem Standard kompatibel zu sein scheint. (Insbesondere werden bei der Ausgabe von Zeichen nur die unteren 8 Bits ausgegeben - und dann wird Code erstellt, der diese Annahme nutzt, um binäre E/A durchzuführen. Igitt.)
  5. Assoziativität von ($) Operator könnte geändert werden, um einige Ausdrücke hübscher zu machen.

Die meisten dieser Probleme sind nicht so gravierend, dass man sie hassen müsste, und es gibt Leute, die versuchen, sie zu beheben oder solide Umgehungslösungen zu entwickeln.

Edit: Es gab einige Unklarheiten zu Punkt 5. Insbesondere scheinen einige Leute zu denken, dass ich die Reihenfolge der Argumente meinte, was ich nicht tue. Anstatt zu erklären, was ich gemeint habe, verweise ich einfach auf den folgenden Link, http://hackage.haskell.org/trac/haskell-prime/wiki/ChangeDollarAssociativity was es gut ausdrückt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X