Donnerstag, 24. Mai 2012


Topthema

Dienstag, 21. Dezember 2010 | Topthema

Bist du ein inspirierter Entwickler?

(Link zum Artikel: http://www.entwickler.de/jaxenter//057903)
  • Teilen
  • kommentieren
  • empfehlen
  • Bookmark and Share

Funktionale Programmierung ist wie das Steuern eines Formel-I-Wagens: In den Händen eines Michael Schumacher kann man unglaubliche Dinge erreichen. Sitzt aber ein anderer am Steuer, kann das ganze durchaus auch tragisch enden. Diese Metapher verwendet Enterprise-Java-Consultant Wille Faler in seinem Blog "Will a Two Tier Market For Developers Emerge As a Result of Scala & Clojure?", um die Eindrücke seines Eintauchens in die funktionalen Programmierwelten von Scala zu beschreiben. Die Frage, die er stellt: Bleiben die erzielten Produktivitätsgewinne durch Sprachen wie Scala und Clojure einem Kreis inspirierter Entwickler vorenthalten und kann langfristig die gesamte IT-Industrie davon profitieren?

Von zahlreichen Aha-Erlebnissen seien Falers nunmehr zweijährige Programmierversuche in Scala geprägt gewesen. Eine Zeit, in der Faler durch die Kombination von Objektorientierter und Funktionaler Programmierung seine Produktivität um ein Vielfaches habe steigern können – eine Zeit aber auch, die ihm eine beträchtliche intellektuelle Leistung abverlangt habe.

Faler stellt die interessante Frage, ob die zweifellos mögliche Produktivitätssteigerung durch anspruchsvolle Programmierkonzepte, wie sie in Sprachen wie Scala oder auch Clojure umgesetzt sind, auf die ganze Softwareindustrie übertragbar ist. Ob Scala einem erlauchten Kreis Eingeweihter vorenthalten bleiben muss, oder tauglich für den Otto-Normal-Entwickler ist, wird in der Blogosphäre immer wieder kontrovers diskutiert.

Faler gibt in dieser Frage zu bedenken, dass die Berufswelt der Informatiker schon immer geprägt war durch den Gegensatz zwischen den "Programmieräffchen" ("blue collar developers"), die über ihre strikte Arbeitszeit hinaus nichts in ihre eigene Weiterbildung investieren, und den "inspirierten Entwicklern", die ihren Beruf "leben" und als Ingenieurskunst verstehen, die sie selbst aktiv voranbringen möchten.

Produktivitätsunterschiede zwischen "Programmieräffchen" und "inspiriertem Entwickler" hat es schon seit jeher gegeben - und dennoch wird der inspirierte Entwickler nur allzu oft auf die selbe Stufe wie das "Programmieräffchen" gestellt. Diese Produktivitätsunterschiede, so prophezeit nun Faler, könnten sich mit dem Aufkommen von Scala & Clojure weiter vergrößern. Wenn es den inspirierten Entwicklern gelingt, nicht nur wie früher 10 Mal produktiver zu sein als die "Otto-Normal-Entwickler", sondern möglicherweise 20, ja 30 Mal produktiver, könnte dies dazu führen, dass die Leistung der inspirierten Entwickler endlich auch von den "Bürokraten" großer Unternehmen erkannt und dementsprechend auch angemessen entlohnt wird.

Scala & Clojure würde dann sozusagen die Spreu vom Weizen trennen, und die Ingenieurskunst Informatik würde als solche eine größere Anerkennung finden. Und davon, so lautet Falers Fazit, würde letztendlich tatsächlich die ganze Softwareindustrie profitieren.

Maybe this is the real dividing point, the time when the economics of craftsmanship combined with the progress of software technology together combine to create a market where highly skilled software engineers/architects finally get the recognition they rightfully deserve. Wille Faler

(hs)

Kommentare

Gravatar bembel 21.12.2010
um 11:54 Uhr
"[...] dass die Leistung der inspirierten Entwickler endlich auch von den "Erbsenzählern" der großen Unternehmen erkannt und dementsprechend auch angemessen entlohnt wird."

Wenn ich sowas schon lese... In welcher Welt lebt dieser Mann? Für die "Erbsenzähler" machst du nur deinen Job! Und dass du diesen produktiver und schneller erledigst bedeutet nur, dass Raum im Plan frei wird und du mit noch mehr Arbeit zugeworfen wirst. Da heisst es höchstens "iss'n guter Mann" aber nicht "bekommt mehr Geld"... ;-)
Mr. Faler, willkommen in der Realität.
#zitieren
Gravatar Holger 21.12.2010
um 13:00 Uhr
Da verkauft sich aber der inspirierte Entwickler aber schlecht. Ah! Soft skills! Da war was! ;-)

Ein interessanter Artikel, der aus meiner Sicht das eigentliche Problem sehr gut darstellt, aber irgendwie eine Schlußfolgerung ignoriert. In der Praxis müssen nämlich inspirierte Programmierer und Äffchen zusammenarbeiten! D.h., dass ich nun meinen wahnsinnig produktiven Scala/Closure-Code quasi als 'unverdauliches' Futter meinem degradierten Kollegen zuwerfe.

Das ist für mich das Problem. PHP & Co. sind so erfolgreich, weil sie für (fast) jeden erlennbar sind. Unproduktiv aber es funktioniert halt doch! Und im Java Umfeld denkt und lebt auch nicht wirklich jeder OO und all die schönen Paradigmen. Da gibt es extrem viel Kraut-Und-Rüben. Hauptsache es funktioniert.

Ist das dann nur noch eine Lücke oder schon ein Graben zwischen Äffchen und 'den anderen'?
#zitieren
Gravatar bembel 21.12.2010
um 13:58 Uhr

Holger:
Da verkauft sich aber der inspirierte Entwickler aber schlecht. Ah! Soft skills! Da war was! ;-)


Exakt. Genau dies rückt immer mehr in den Vordergrund. Das macht mittlerweile den Unterschied zwischen dem Programmieräffchen und den "von Erbsenzählern belohnten". Wer jetzt oder zukünftig Scala oder Clojure Guru ist, wird nicht zwangsläufig erfolgreich sein, wenn er im Keller allein höchst produktiv Code produziert. Er bleibt möglicherweise immer noch das Äffchen für die nicht technikzentrierte Welt im Unternehmen.

Auch wenn technische Kenntnisse wie Sprachen grundlegend wichtig sind und ich mit dem Author des Artikel im Bezug auf Weiterbildung völlig einer Meinung bin, es braucht mehr für den Erfolg. Mir vermittelt der Artikel folgendes: "Lernt Scala oder Clojure oder eine andere funktionale Sprache, schreibt produktiveren Code und ihr werdet erfolgreich sein". Das ist mir zu einfach. Der Unterschied zwischen den Programmieräffchen und dem "inspirierten Entwickler" (übrigens ein wunschöner Ausdruck) entsteht häufig nicht durch unterschiedliches Technikwissen.

so, genug über Soft Skills geschwätzt... ;-)
#zitieren
Gravatar Soso 21.12.2010
um 16:55 Uhr
Der Unterschied zwischen den Programmieräffchen und dem "inspirierten Entwickler" (übrigens ein wunschöner Ausdruck) entsteht häufig nicht durch unterschiedliches Technikwissen.

was denn: unschön oder wunderschön? Beides geht nicht! ;-)

Richtig. Der Unterschied entsteht nicht durch unterschiedliches Technikwissen, sondern die Unterschiede im Technikwissen entstehen durch den Unterschied: Der eine bildet sich fort, und baut daher auch allgemein seinen "Lern-Skill" auf. Damit erweitert er seine Perspektiven und baut sich ein Toolkit an Paradigmen auf. Das erlaubt ihm, nicht nur technisch sondern auch konzeptionell neue Lösungen zu entwickeln.

Der andere macht alles wie er es immer gemacht hat, und programmiert C in Dateien mit .java Endung, schreibt seine Werte immer in (möglichst noch statische) Membervariablen (forget for SoC, und was ist JUnit?) und wundert sich dann noch über inperformante und fehleranfällige Programme, Deadlocks und Race-conditions, und wird nervös, weil sein Berufsalltag von immer undurchschaubareren Fehlermeldungen aufgefressen wird.

War jetzt nicht plakativ, sondern beobachteter Berufsalltag um mich herum.
#zitieren
Gravatar raksch 22.12.2010
um 09:49 Uhr
Ich denke, dass es langsam mal gut ist. Jetzt werden schon alle Java-Entwickler, welche den betriebswirtschaftlichen Nutzen von Skala nicht erkennen als "dumm" hingestellt. Ja, ein wirklich sehr seriöser Bericht, mit der Baseballkeule hat man bisher jeden überreden können :-) #zitieren
Gravatar raksch 22.12.2010
um 09:51 Uhr
Naja, mich habt ihr nun überzeugt, ich schaue mir Skala und Clojure im Januar mal an. :-) #zitieren
Gravatar bembel 22.12.2010
um 10:56 Uhr
Ich meinte "wunderschön". Sorry, dicke Finger... :-) #zitieren
Gravatar Holger 22.12.2010
um 11:19 Uhr
@raksch ich bin auch nicht unbedingt ein Freund von Leuten, die gleicdh jedem Trend hinterher laufen. Aber ich finde schon, dass ein interessierter Entwickler sich Scala zumindest einmal anschauen sollte --> auch wenn es nur deshalb ist, um den ganzen Hype richtig einschätzen zu können.

Auf meiner To-Do-Liste für 2011 steht Scala jedenfalls ganz oben ;-)

Dass damit solche Produktivitätssteigerungen zu erzielen sind, wage ich jetzt schon mal zu bezweifeln. Solche Ansagen werden bei neuen Technologien viel zu häufig gemacht. Viel zu generell und ohne Beziehung zum konkreten Anwendungsfall!
#zitieren
Gravatar raksch 22.12.2010
um 11:32 Uhr
@Holger,

da ich im JavaMagazin schon des Öfteren über Skala-Artikel gestolpert bin kann ich mir schon vorstellen, dass einige dinge elegeanter und mit weniger code zu bewerkstelligen sind und somit auch produktiver sein sollten. Das Problem ist dann halt die Praxistauglichkeit, also wie fehleranfällig ist der Code wie gut kann ihn ein Fremder lesen wie gut lässt er sich warten.

Wenn ich ehrlich bin, dann muss ich sagen, dass mir die Skala-Codeschnipsel in den Artikeln nicht gefallen haben. Trotz alledem werde ich ein Testprojekt aufsetzen, ich bin ja ein inspirierter Entwickler :-)
#zitieren
Gravatar mr_myer 22.12.2010
um 17:08 Uhr
@raksch: volle zustimmung zum ERSTEN EINDRUCK von scala. gefiel mir anfangs auch nicht in jeder hinsicht, aber: je weiter ich mich eingearbeitet habe, desto mehr wurde mir bewusst wie schlau, durchdacht und konsistent scala eigentlich ist! ich habe die erfahrung gemacht dass es bei scala "liebe auf den zweiten blick" ist. ich glaube nicht, dass ich diesbezüglich der erste bin...

nichts ist umsonst und ein gewisser lernaufwand muss natürlich in kauf genommen werden, da scala sehr vieles vereinigt, was bisher insellösung war: oop funktionale programmierung, unveränderliche datenstruktuen, pattern matching, closures, reduzierung von typ-angaben auf das nötigste usw.

zusätzlich ist scala kompatibel zum bytecode von java! also leute, mal ehrlich: welche sprache wollte ihr jemals noch neu lernen, wenn nicht scala?!

ich bin voll davon überzeugt, dass sich scala in der nächsten zeit stabil etabliert!
#zitieren

Folgende Links könnten Sie auch interessieren