Magie beim Programmieren

Magie beim Programmieren

Als ich vor einigen Jahren das erste Mal mit Ruby on Rails gearbeitet habe, war ich erstaunt, wie wenig Code für eine lauffähige Webanwendung nötig ist. Im Gegensatz zu anderen Programmiersprachen und Frameworks schien Rails einfach „magisch“ zu funktionieren und Dinge automatisch zu tun, ohne dass ich sie als Entwickler explizit programmieren musste. Richard Schneeman geht in seinem Artikel auf diese „Magie“ beim Programmieren ein: Do You Believe in Programming Magic?

Er diskutiert die Vor- und Nachteile „automagischer“ Programmierung, die zwar eine hohe Produktivität bietet, aber bei der Fehlersuche durchaus hinderlich sein kann, da der Entwickler teilweise gar nicht mehr direkt nachvollziehen kann, was die Sprache bzw. das Framework eigentlich macht. Obwohl man also relativ schnell zu lauffähigen Lösungen kommt, sollte man nicht den Fehler machen, Funktionen einfach hinzunehmen oder gar nicht mehr verstehen zu wollen, was genau eigentlich passiert. Das ist ein Rat, den ich auch immer wieder allen Prüflingen gebe: Alles, was du verwendest, musst du auch erklären können.

Ein gewisser Grad an „syntactic sugar“ und automagischen Elementen ist für den Entwickler sicherlich hilfreich. Aber wenn man selbst nicht mehr versteht, was eigentlich vor sich geht, sollte man lieber einen Gang zurückschalten!


Hast du schon einmal „Magie“ beim Programmieren erlebt? Welche Beispiele fallen dir zu diesem Thema ein?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax