10 gängige Vorurteile über die Programmierung

  1. Funktionen/Methoden dürfen nur einen Ausstiegspunkt (return) haben
    Dies ist nicht richtig, es wird jedoch von vielen erfahrenen Entwicklern als unschön angesehen, wenn eine Funktion mehrere Ausstiegspunkte hat. Die Funktion kann so aber schneller abgehandelt werden, wenn die Funktion sofort mit „return“ verlassen wird, wenn eine Bedingung hierfür gesetzt wurde. Gibt es nur ein „return“ am Ende der Funktion, wird die Funktion in die Länge gezogen.
  2. UDP-Pakete brauchen Prüfsummen
    Natürlich nicht. Das tolle an UDP ist ja gerade, dass Pakete quasi blind (und schnell) weggeschickt werden können. UDP sollte sowieso nicht da verwendet werden, wo Daten unbedingt ankommen müssen. Wenn Daten unbedingt ihr Ziel erreichen sollen, sollte der Weg auch frei sein, gleich das verbindungsorientierte TCP statt UDP zu nutzen.
  3. C ist veraltet
    Bis jetzt gibt es viele Anwendungsbereiche, bei welchen C ziemlich alternativlos ist, z. B. teilweise in der Programmierung von Mikrocontrollern und der hardware-nahen Programmierung generell.
  4. Open Source ist Freeware
    Freeware meint nur Software, welche kostenlos zu haben ist, also „frei“ im Sinne von „kostenlos“. Dabei kann Freeware auch Open Source sein, muss aber nicht. Freeware könnte zudem auch mit einem Kopierschutz etc. ausgestattet sein. Open Source (auch bezeichnet als „Freie Software“) ist quelloffen und kann zum Nutzen für die Gemeinschaft ausgeführt, verbreitet und verändert werden.
  5. Jede nicht-objektorientierte Software ist nicht auf dem Stand der Zeit
    Objektorientiertheit zahlt sich in höheren Programmiersprachen sehr aus, jedes Skript und auch bestimmte Programme, die auf Geschwindigkeit ausgelegt sind, müssen (oder sollten?) aber nicht unbedingt objektorientiert sein.
    Ein umfangreiches Verwaltungsprogramm sollte schon in z. B. Java/C# rein objektorientiert umgesetzt werden, ein Skript, welches eine Textseite parsen soll oder ein Programm für einen Mikrocontroller muss aber nicht gleich objektorientiert sein.
  6. Globale Variablen sind immer schlecht
    Als ich meine ersten Programme in C/C++ geschrieben habe, habe ich es mit den globalen Variablen schon ein bisschen übertrieben. Das ist ein typischer Anfängerfehler. Aber wenn man mal ein paar Schritte weiter ist oder sich mal Open Source betrachtet, findet man immer wieder ein paar globale Variablen, und das völlig berechtigt. Es gibt Situationen, da müssen neben Konstanten auch ein paar Variablen überall verfügbar sein. Anders als Konstanten können gloibale Variablen verändert werden und so einen aktuellen Stand beschreiben.
  7. Arrays und Zeiger sind dasselbe
    Arrays sind in C mit Zeigern umgesetzt, dasselbe sind Zeiger und Array jedoch lange nicht. In anderen Programmiersprachen entfernen sich Array und Zeiger sogar noch weiter voneinander.
  8. Objektorientierung ist in C oder Assembler unmöglich
    Das stimmt so überhaupt nicht. Allerdings muss man da schon in C und Assembler mehr tun, als einfach eine Klasse zu definieren wie in Java/C#. Jedoch ist weder C und noch Assembler (die Programmiersprache eines Assemblers) auf Objektorientierung ausgelegt, es wird daher aufwändig und undurchsichtig mit der Objektorientierung, möglich jedoch schon.
  9. Rekursion ist immer besser als die Iteration (Schleifen)
    Rekursion wird als schöner empfunden (und einige wenige Programmiersprachen kennen auch nur Rekursion), Rekursion ist aber z. B. in C grundsätzlich langsamer und speicheraufwändiger als Iteration (da immer wieder eine Funktion aufgerufen und geladen werden muss).
  10. Java ist langsam
    Halbes Gerücht. Denn Java ist, das haben viele Tests z. B. von Fachzeitschriften gezeigt, im Vergleich zu Sprachen wie C/C++ schon langsam. Man sollte hier aber auch wirklich auf die Konzepte achten, so auch nur ein rein objektorientiertes Programm in C++ mit einem solchen in Java vergleichen (dass C++ objektorientiert ist, ist übrigens auch ein Gerücht, es handelt sich eher um eine hybride Sprache).
    Das Problem ist doch eher, dass bei Java oft übertrieben wird, was die Langsamkeit betrifft.

Schreibe einen Kommentar