Programmieren heute: Schreibst du noch oder kopierst du schon? - JAXenter

Programmieren heute: Schreibst du noch oder kopierst du schon?

Claudia Fröhling

Wann haben Sie das letzte Mal „from scratch“ losprogrammiert? Wann hatten Sie das letzte Mal die Möglichkeit, mit der Programmiersprache Ihrer Wahl einfach nur drauf los zu schreiben? Das hat sich auch Mike Taylor gefragt, Programmierer bei Index Data in Gloucestershire, England. Seiner Meinung nach sind Programmierer heutzutage dem Copy/Paste-Wahn verfallen und wüssten gar nicht mehr so recht, wie sie richtig Code schreiben könnten.

Taylor erinnert sich, wie er früher Spaß am Programmieren hatte und ganze Spiele in Basic und C programmierte. Heutzutage sei das leider nicht mehr so, meint Taylor. Heutzutage würde er nur noch Bibliotheken aneinander setzen und das habe für ihn nichts mehr mit echter Programmierung zu tun.

We did all those courses on LR grammars and concurrent software and referentially transparent functional languages.  We messed about with Prolog, Lisp and APL.  We studied invariants and formal preconditions and operating system theory.  Now how much of that do we use?  A huge part of my job these days seems to be impedence-matching between big opaque chunks of library software that sort of do most of what my program is meant to achieve, but don’t quite work right together so I have to, I don’t know, translate USMARC records into Dublin Core or something.  Is that programming?  Really?

Seiner Meinung nach ist das Schönste am Programmieren, mit einer weißen Seite anzufangen.

When the slate is clean, the emacs buffer is empty, and the world is fresh and alive with possibilities.  And then the invigorating rush as the shape of the code starts to emerge, the data structures condense, the algorithms come together; the code becomes runnable, then it does something useful, it passes tests, and then — yes! — it’s not just an idea any more, but an actual program. You’ve completed Phase 1.

Leider gehe es heutzutage aber hauptsächlich um ganz andere Dinge: Dokumentation, APIs, Command-Line Manuals, Tutorials, Unit Tests, Website, Portabilitäts-Checks, Changelogs, Release History – das ist dann die so genannte Phase 2.

And the problem with modern software development is that it’s all Phase 2.  The ubiquitious availability of nearly-right-but-not-quite libraries and frameworks-that-do-it-all-for-you-except-that-actually-they-don’t wipes out the exhilaration of Phase 1, but leaves us with even more of the drudgery of Phase 2.  Instead of designing beautiful data-structures and elegant algorithms, we’re looking up the EnterpriseFactoryBeanMaker class in the 3,456-page Bumper Tome Of Horrible Stupid Classes (Special Grimoire Edition), because we can’t remember which of the arguments to the createEnterpriseBeanBuilderFactory() method tells it to make the public static pure virtual destructor be a volatile final abstract interface factory decorator.

Aber ist das tatsächlich so schlimm? Erleichtern Bibliotheken dem Entwickler nicht das Leben und nehmen ihm Arbeit ab, so dass er sich auf komplexeres Coding konzentrieren kann?

Der urprüngliche Blogpost hat eine Fülle von Kommentaren nach sich gezogen, nicht alle Leser stimmen Mike Tylor zu. So rät der Kommentaror Ryan, die Sprache bzw. die Plattform zu ändern. Er selbst habe kein Interesse, „from scratch“ zu beginnen und Code zu schreiben, der ein Pixel einfärbt. Er kümmere sich lieber um interessante Sachen wie User Interfaces anstatt JSON-Parser zu programmieren. Im Gegensatz zu Taylor findet Ryan es gerade ideal in der modernen IT-Welt, dass der Eine C wählen kann, um drauf los zu programmieren und der Andere eine Sprache wie Ruby wählen kann „and have a site that tracks their expenses in a weekend“.

In einem zweiten Blogpost nimmt Taylor Stellung zu den vielen Kommentaren und ist über den einen oder anderen Eintrag doch sehr erschüttert:

What chills me to the core is this comment from Jesse: „I frequently create custom business and ecommerce applications, and I hardly ever get to do any copy/pasting. There’s always a custom report to create, a custom csv to parse, or a custom xml system to integrate.“ That, right there — that’s what I’m afraid of.

Wo stehen die JAXenter-Leser in dieser Diskussion? Stimmen Sie ab im neuen Quickvote!

Geschrieben von
Claudia Fröhling
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.