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.

25voto

Bill the Lizard Punkte 384619

C (OK, es ist nicht mein Favorit, aber es war noch nicht fertig.)

  • Syntax der Socket-Bibliothek.
  • Keine Überladung von Funktionen.
  • Saiten im C-Stil.
  • Pufferüberläufe.
  • Kryptische Syntax. Ich weiß nicht, wie oft ich Dinge wie atoi nachgeschlagen, mir an die Stirn geschlagen und "Natürlich!" gerufen habe.

EDIT: Ich könnte wahrscheinlich mit mehr kommen, wenn ich auf mehr Bibliothekscode (wie ich mit Sockets, aber die sind besonders schlecht), aber ich fühlte mich bereits, wie ich betrügen für Picking auf C. So viele Sprachen existieren nur, um die guten Teile von C zu nehmen und ersetzen die schlechten, dass es irgendwie wie ein totes Pferd zu schlagen ist.

24voto

David Thornley Punkte 55244

Common Lisp:

  1. Schlüsselwörter sind oft zu wortreich.
  2. Die Unterstützung der Bibliothek ist erbärmlich.
  3. Das funktioniert nicht gut in Betriebssystemen, die den Speicher strenger handhaben wollen.
  4. Hat keine guten Möglichkeiten, mit dem Betriebssystem zu interagieren.
  5. Die "Schleifen"-Einrichtung ist nicht gut definiert und sieht nicht gerade nach Lispy aus.

24voto

a paid nerd Punkte 29564

GehirnF*ck

  • Ihr Highlight ist, dass Sie Turing vollständig ?! In Perl kann ich mehr mit regulären Ausdrücken machen!

  • Mangel an Gegenständen. Kommt schon, Leute! Das ist wie, hallo ...

  • Keine Netzwerkbibliotheken. Alles, was ich will, ist eine Webseite zu scrapen, GOSH.

  • Keine erstklassigen Funktionen. Herzlichen Glückwunsch - Sie können sich mit Ihren Java-Freunden trösten.

  • Ein unendliches Band zur Speicherung und sonst nichts. Das ist so anmaßend, dass wir genauso gut Lisp schreiben könnten.

23voto

BoltBait Punkte 11254

JavaScript

  1. Zahlen als Zeichenketten - Mathematik kann sein frustrierend sein, wenn Zahlen als Zeichenketten interpretiert werden. 5 + 2 = 52? Grrr...
  2. Berechtigungen - die besten Dinge erfordern die Erlaubnis des Benutzers!
  3. Bildschirmaktualisierungen - Der Browser muss sich in einem stabilen Zustand befinden, damit der Bildschirm aktualisiert werden kann. Es scheint keine Möglichkeit zu geben, die Aktualisierung des Bildschirms in der Mitte eines Skripts zu erzwingen.
  4. Langsam - obwohl Googles Chrome nett ist...
  5. Die Unterschiede zwischen den Browsern machen die Verwendung der Sprache zu einer [zensiert].

20voto

okoman Punkte 5399

PHP:

  • Man kann nie sicher sein, dass bestimmte fast üblich Erweiterungen sind auf allen Webservern verfügbar.
  • versucht, alles in der Zukunft zu sein ( goto, Schließungen, ... )
  • viele Sicherheitsrisiken für unerfahrene Benutzer
  • mehr Operator-Überladung wäre schön
  • all die armen Programmierer, die nicht lernen, wie es richtig funktioniert, und der Software einen schlechten Ruf verpassen

Dennoch ist PHP die (Skript-)Sprache. ;-)

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