Java als Zweitsprache?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
snafu
User
Beiträge: 6740
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

BlackJack hat geschrieben:@bwbg: „schlicht unmöglich” klingt ziemlich hart, IMHO.
Darüber bin ich gerade auch gestolpert. Das allermeiste - wenn nicht sogar alles - was in Python geht, kann man auch in Java umsetzen. Nur halt zum Teil deutlich komplizierter.
jerch
User
Beiträge: 1669
Registriert: Mittwoch 4. März 2009, 14:19

Hmm, was kann Java bieten, was Python nicht kann? Ich liste mal ein paar Sachen:

1.) Mehr Arbeitsplätze, gut bezahlt.
Dem ist wohl so, Java ist im Businessbereich einfach gefragter (Das neue Cobol?), die Bezahlung stimmt dort auch. Python-Jobs sind rarer, in der Regel aber auch gut bezahlt (im Gegensatz zu PHP).

2.) Statische Typisierung
Java hats, ob mans braucht sei mal dahin gestellt. Ein diziplinierter Programmierer braucht die Compilerchecks selten und zieht daher wohl kaum Vorteile daraus. IDEs hingegen profitieren hiervon sehr stark. Streng typisieren beide Sprachen, was bei Python für Anfänger mitunter ein Problem darstellt - häufige Anfängerfragen hier im Forum beziehen sich auf Laufzeitfehler, wo Typen vermischt werden. IDEs tun sich mit Python schwerer. Das viel bemühte Sicherheitsargument, was gerne mit statischer Typisierung vorgebracht wird, ist imho zweifelhaft, da die Implementation nach wie vor imperativ ist (mit Java 8 kommen ja ein paar funktionale Aspekte hinzu - Python ist hier definitiv reicher an Sprachmitteln). Auf Interface/API-Ebene bringt es bei Java Klarheit, welche bei Python über die Dokumentation geliefert wird. Die Verantwortung liegt da eher beim Programmierer, das korrekt umzusetzen.

3.) Ausdrucksstärke / Codeeleganz / syntatic sugar / Projektorga
<ironie> Wer Javacode einmal gesehen hat, verliebt sich sofort in dessen Spracheleganz. Kompakt, voller netter Abkürzungen. Nicht zuletzt trägt das Ein-Klassen-pro-Datei-Konzept dazu bei, dass man alles wohl geordnet in einer Phalanx von Ordnern mit Quelldateien findet. Eine super Sache!</ironie> Eigentlich muss man das nicht weiter kommentieren - zum Glück gibt es im Javaland IDEs, die einem die Arbeit abnehmen. Und einen Sack voll weiterer Bloatware, welche Buildumgebungen, Testframeworks etc. zur Verfügung stellen. Man sollte XML können und muss hierfür die ein oder andere DSL zusätzlich lernen (gerne auch wieder in XML). Muss wohl so sein im Businessektor, noisy und überspezifiziert ;)

4.) Programmierparadigmen / OOP / Objekthandling
In Sachen Paradigmen ist Java imperativ und klassen-objektorientiert. Allerdings fällt mir ausser Methodenüberladung und der strengeren Kapselung als Sprachmittel nix ein, was es Python voraus hätte. Im Gegenteil - die Primitivtypen sind ein seltsames Relikt in der OOP-Umgebung. Python bietet zusätzlich Mehrfachvererbung. Was bei Python auffällt - die Introspektionsmöglichkeiten zusammen mit duck typing sind ein tolles Schweizer Taschenmesser.

Die Auflistung will nicht vollständig oder tutto correcto sein. Um auf die Eingangsfrage zurück zu kommen - das hängt sehr stark von Deiner Zielsetzung ab. Am Ende können alle Programmiersprachen ja eh nur das Turingband befeuern, daher sind andere Aspekte vordergründig - eigene Sprachvorlieben, Projekt- und Arbeitsumfeld etc. Um wirklich gut mit einer Sprache zum Ziel zu kommen, ist die Kenntnis der Bibliotheken sehr wichtig. Hier bringen sowohl Python als auch Java viel mit bzw. findet man tolle Erweiterungen schnell im Netz. Übertragbar ist der Umgang mit den Bibliotheken von Python auf Java nur bedingt, beide lösen das sehr unterschiedlich (Tendenz Python - kurz und übersichtlich, Tendenz Java - viel Code und umständlicher).

So genug tendeziöses Blafasel. :D
Antworten