Da die Vielzahl der heute existierenden
Programmier-Sprachen kaum überschaubar ist und die Fans einer jeden Unmengen positiver Argumente für gerade ihre Sprache finden, merke ich mal zusätzlich zu meinem "Totschläger"-Spruch "Alles wird anders, aber kaum etwas wird besser" an, daß schon 1986 in einem Klassiker der Software-Literatur von Brooks richtig festgestellt wurde, daß es
keine Silber-Kugel (zum Töten des Werwolfes der Komplexität) gibt - und sich das bei allen immer wieder den Anschein überragender Neuigkeit erheischen wollender Technologien auch in den seitdem vergangenen 25 Jahren nicht grundlegend geändert hat. Manchmal ist die Diskussion um die "richtige" Technologie eingeschlossen die enthaltene(n) Programmier-Sprache(n) auch nur ein purer Glaubens-Krieg.
Solange mit dem Auftreten neuer Technologien nicht alte rückstandsfrei in die neuen eingearbeitet werden, verschärft sich das Problem durch die mitgeschleppten Altlasten und Sonder-Inseln eher noch, da in der Praxis ja nicht mal auf die Schnelle alle vorhandene Software zum Null-Tarif auf die neuen Technologien portiert werden kann. Besonders schlimm ist, daß gerade die am schlechtesten gemachten Software-Teile am längsten leben, da sie wegen ihrer Unverständlichkeit und des daraus folgenden Risikos bei Störungen am schwersten umzustellen sind.
Daher hängt beim üblichen (schlechten) Stand der Dokumentation der Entwicklungs-Grundlagen und der früher (und manchmal auch heute noch) sehr schlechten Qualität des Quell-Codes die Geschwindigkeit der Übertragung auf neue Technologien weniger von der neuen Technologie als vom Verständnis der Implementation in der alten Technologie ab, da das alternative völlig Neu-Implementieren (from scratch) oft schon aus Gründen der Verantwortlichkeit oder der Kapazitäten nicht opportun ist.
Der Wechsel zu einer anderen Programmier-Sprache nur aus Mode-Gründen ist ohne schwerwiegende Gründe wie deutlich funktionalerer Bibliotheken, einer vorgegebenen Arbeits-Umgebung durch die beschäftigende Institution oder die anderweitige Software-Umgebung oder verbesserter Stabilität, Interaktivität oder Skalierbarkeit nicht sinnvoll. Insbesondere werden durch den Wechsel von einer gewohnten Umgebung, deren Feinheiten man aus längerer Erfahrung genauestens bis ins kleinste Detail kennt, keinerlei schnelle Produktivitäts-Gewinne möglich, sondern vielmehr ist ein Monate dauernder schwerer Produktivitäts-Einbruch zu erwarten.
Unter ungünstigen Umständen kann diese Produktivitäts-Verminderung sowohl bei einzelnen Programmierern als auch bei größeren Teams zu starker Demotivation führen, wobei diese Umstände nicht wirklich objektiv sind, sondern auch stark von den subjektiven Vorlieben und Befindlichkeiten der Beteiligten abhängen. Spätestens wenn einzelne Team-Mitglieder ausscheiden und dann zu der Mehr-Belastung durch die Überleitung der Technologien noch weitere Mehr-Arbeit verursacht wird, ist die Gefahr des Scheiterns groß, schlimmstenfalls sogar mit Rückwirkungen auf das alte Produkt.
Das häufig angeführte Argument schnellerer Resultate mit Skript-Sprachen triff nicht zu bei der Nutzung von modernen Arbeits-Umgebungen mit inkrementeller Compilierung, wie z. B.
Eclipse wo (besonders in der dort großartig unterstützten
Java-Entwicklung) der
Build-Prozess mit einer so minimalen Roundturn-Zeit belastet, daß man schnelle Laufzeit bei der Ausführung und blitz-schnelle System-Erstellung gemeinsam bekommen kann. Die oft als Vorteil genannte Möglichkeit auf die
Deklaration von Variablen und ihren
Typen verzichten zu können, ist gerade bei größeren Programmen eher ein schwerer Nachteil, der häufig zu schlecht entdeckbaren Fehlern oder Problemen führt und das
Refactoring massiv erschwert.
Da es aber leider immer wieder mal eine neue Sau gibt, die bis zu ihrem (manchmal schon frühzeitigen) Tod durchs Dorf gehetzt wird, und in der offenen Community der Software-Leute für jede neue Sprache auch neue Enthusiasten gefunden werden, läßt sich bei Vorliegen interessanter Software, die darin implementiert wurde, LEIDER die Beschäftigung mit immer neuen Sprachen nur bedingt vermeiden.
Aus Produktivitäts-Sicht ist - bei allem Interesse an einfach nur anderen Dingen, wie es alle Kreativen in ihren Genen haben - die Aufsplitterung der Kompetenz und Leistungs-Kraft auf mehrere Tätigkeits-Bereiche eher abträglich, wenngleich es auch manchmal durch den Vergleich übergreifender konzeptioneller Unterschiede echte Aha-Erlebnisse gibt.
Mit Python landet man dabei wenigstens nicht auf einem völlig abstrusen technologischen Ast und mit
IronPython kriegt man gleich die Vorteile des
.NET-Frameworks mit, so daß man damit wenigstens leben kann.
Einfacher als
Java,
C oder
C++ ist Python schon, gegenüber
Javascript kann es allenfalls durch seine größere mtigelieferte Bibliothek punkten. Wer noch gar keine Programmier-Sprache kennt, macht mit Python aber kaum was falsch und er wird schnell gute Resultate erzielen und über die bessere Konsistenz als z. B. bei
PHP erfreut sein.