Für einen Java-Typ ist Python ein anarchischer Spielball, bei dem sich jeder einen Schläger schnappen und anfangen kann, den Kopf zu zertrümmern.
Für einen Python-Typ ist Java ein orwellsches Universum, in dem Sie ständig an die abnehmende Sichtweise eines anderen gefesselt sind, wie das Universum tickt.
Die Wahrheit ist alles, was Sie in einer Sprache tun können, die Sie in der anderen genauso sauber tun können. Wie Sie bereits erwähnt haben, gibt es in beiden Gemeinden wichtige Unterschiede, was sauber bedeutet.
Java-Methode:
Ein sauberes System ist ein System, das das tut, was beabsichtigt ist, und nichts anderes. Es lässt keine Erweiterungen oder Änderungen zu, die der Art des beabsichtigten Zwecks zuwiderlaufen, und versucht, diese durch den Compiler so weit wie möglich durchzusetzen. Flexibilität wird durch sorgfältige Bearbeitung einfacher Schnittstellen innerhalb strenger Strukturen erreicht. In Java sollte die Sandbox immer klar abgegrenzt sein und das Überschreiten sollte schnelles Feedback vom Compiler erhalten. Java bietet die Möglichkeit , Objektstrukturen statisch zu definieren und aus diesen Instanzen dynamische Interaktionen zu erstellen. Wenn ich in Java arbeite, versuche ich geschickt, grundlegende Bausteine für eine gehirntote Lösung zu erstellen. Ich arbeite meistens von unten nach oben, sobald ich eine Arbeitstheorie zur Lösung des Problems habe.
Java wird in der Regel große Software produzieren, die große Teams umfassen kann, und Tools und Mittel bereitstellen, um die Herde in Schach zu halten. Wenn das Kontrollkästchen deaktiviert bleibt, werden sehr getrennte Teams eigenständig auf ein immer unklareres Ziel hinarbeiten. Irgendwann wird jedes Team zu einer "raison d'être" und das System als Ganzes wird verwässert, wenn man vom Hauptprojekt abweicht. Dies kann zu extremen Kostenüberschreitungen und riesigen Softwaresystemen führen, die schlecht funktionieren und gewartet werden.
In Java gibt es so gut wie keine einfache und schnelle Möglichkeit, Dinge zu erledigen, aber die IDE und das Tool sind dazu da, schmerzhafte Aufgaben mit nur wenigen Klicks zu erledigen.
Python-Methode:
Sauber heißt, kurz und gut lesbar. Ein gutes Python-System wurde entwickelt, um Sie auf den Punkt zu bringen und die innersten Geheimnisse aufzudecken, so dass Sie anhand des Codes den beabsichtigten Gebrauch und Zweck verstehen können. Sie können damit auch Ihre eigene Lösung entwerfen, indem Sie das ursprüngliche Design so erweitern und / oder einkapseln, dass es genau in Ihre Richtung verläuft. Mit Python können Sie Objektvorlagen erstellen, aus denen Sie die Instanz dynamisch an die jeweiligen Anforderungen anpassen können. In Python neige ich dazu, das Problem sofort anzugehen und dann den Code in einer logischen Struktur zu verbreiten, sodass die endgültige Lösung so einfach und lesbar wie möglich bleibt. In Python neige ich dazu, von oben nach unten zu arbeiten und die zunehmenden Komplexitäten durch einen Divide-and-Conquer-Ansatz zu managen.
Python-Teams tendieren dazu, leichte Systeme zu produzieren und liefern sehr schnell eine funktionierende Lösung. Sie sind in der Regel eng miteinander verbunden und arbeiten austauschbar an jedem Teil des Systems, um bei jeder Gelegenheit die gegenseitige Lösung zu validieren. Sie nähren sich gegenseitig und schaffen eine Synergie, die ziemlich berauschend ist. Dadurch entstehen jedoch Teams, die sich nur schwer auf größere Systeme skalieren lassen und häufig an eine Art Glasdecke stoßen. Die Einführung neuer Mitglieder in das Team wird helfen, aber es wird einige Zeit dauern, bis sich das Wissen so weit verbreitet hat, dass die zusätzliche Produktivität spürbar wird. Das Team wird dann geteilt und der ständige Überblick über das gesamte System sowie die Atmosphäre der frühen Tage werden verwässert. Dies kann zu übermäßig verschlungenem Code führen, was früher ein einfaches Problem war.
Es gibt fast immer eine schnelle und einfache Möglichkeit, Dinge mit Python zu erledigen, aber es kann schwieriger sein, die Komplexität zu kontrollieren, sobald das System einen bestimmten Schwellenwert erreicht.
Kurz gesagt, beide haben eine dunkle Seite und beide haben eine klare Stärke. Wenn Sie jedoch entlang beider Gemeinschaften stapfen, werden Sie feststellen, dass die Stärke der einen zur dunklen Seite der anderen führt und umgekehrt.
Daher die hitzigen Debatten darüber, welches das Beste ist.