Pyhton und Java gleichzeitig lernen?

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.
PyByte
User
Beiträge: 25
Registriert: Samstag 16. Oktober 2010, 03:32

Es gibt Unterschiede aber für mich persönlich ist der Abstraktionsgrad und die Performance wichtig und diesbezüglich sehe ich keinen großen Unterschied zwischen Python und Java. Beides sind objektorientierte Programmiersprachen die indirekt Maschinencode erzeugen und auf diversen Plattformen lauffähig sind. Für beide Sprachen gibt es unzählige hilfreiche Frameworks. Damit sind beide Sprachen für meine Anforderungen sehr ähnlich. Wobei ich Python bevorzuge, weil ich glaube dass man damit schneller zum Ziel kommt und der Code schöner aussieht. Außerdem gefällt mir der interaktive Modus und Anwendungen wie JupyterLab. Das sind aber keine elementaren Unterschiede mehr.

Welche Vorteile kann Java gegenüber Python bieten?
Benutzeravatar
__blackjack__
User
Beiträge: 14044
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@PyByte: Python ist zwar eine durch und durch objektorientierte Programmiersprache, aber erlaubt auch recht funktionale Programmierung und das beides zu mischen. Da sehe ich einen grossen Unterschied zwischen Java und Python, auch wenn Java in den letzten Versionen nachträglich Sachen wie anonyme Funktionen und die Stream-API bekommen hat, sind die bei weitem nicht so flexibel und nutzbar. „Checked exceptions“ grätschen einem da beispielsweise unangenehm rein.

So etwas wie ``async``/``await`` hat Java AFAIK auch (noch?) nicht.

Dann ist da noch „duck typing“ vs. Interfaces. Und alles was man an einen Namen binden kann ist in Python ein Objekt – in Java nicht, weil zum einen nicht jeder Wert ein Objekt ist, und man zum anderen Sachen wie Klassen oder Methoden auch keine Objekte sind. Generatorfunktionen und -ausdrücke. Also mit allem was da so zugehört, also auch `send()`. Die Unterschiedliche API bei Iteratoren. Operatorüberladung. Properties. Oder allgemeiner: Deskriptoren. Alles Unterschiede die programmieren in Java und Python unterschiedlich machen. Vielleicht noch einmal zur Erinnerung: Es geht darum diese Sprachen und damit die Unterschiede zu lernen, nicht beide Sprachen schon zu können und anzuwenden.
„A life is like a garden. Perfect moments can be had, but not preserved, except in memory. LLAP” — Leonard Nimoy's last tweet.
Andreas123
User
Beiträge: 9
Registriert: Montag 27. Mai 2019, 13:50

Hätte noch zwei Fragen zu Pyhton.

1. Lassen sich GUI's einfach erstellen so einfach wie bei Java`?
2. wenn man ein Pyhton Programm jemanden anderen anbietet, dann kann er doch einfach den Quellcode problemlos in jedem Editor ändern? Oder gibt es da Vorkehrungen?
Benutzeravatar
__blackjack__
User
Beiträge: 14044
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Andreas123: Ad 1.: Jain. Es gibt für Tkinter soweit ich das sehe keinen wirklich brauchbaren GUI-Editor, da muss man also Programmcode schreiben. Für GUI-Rahmenwerke wie Gtk und Qt gibt es GUI-Editoren. Da stellen sich dann aber teilweise Fragen wie einfach das auf verschiedenen Plattformen installierbar ist oder Lizenzfragen.

Ad 2.: Es gibt Vorkehrungen das verändern etwas zu erschweren. Das sieht bei Java übrigens in der Regel nicht anders aus. Verhindern wird man es letztlich nicht können, jedenfalls nicht solange der Endnutzer den Code auf seinem Rechner ausführen lässt. Wenn Du etwas vor Kunden verstecken willst, dann musst Du eine Webanwendung schreiben, oder zumindest den Teil des Codes den der Kunde nicht in die Finger bekommen soll, auf einem Server laufen lassen, der unter Deiner Kontrolle ist.
„A life is like a garden. Perfect moments can be had, but not preserved, except in memory. LLAP” — Leonard Nimoy's last tweet.
Andreas123
User
Beiträge: 9
Registriert: Montag 27. Mai 2019, 13:50

zu Ad1. Also müsste ich für Gui sozusagen den Code komplett per Hand schreiben?

Zu Ad2. Java kann ich aber nicht einfach via Text Editor öffnen und bekomme den Code zu Gesicht. Bei Pyhton geht das zumindest.
Mit welchen Maßnahmen kann ich das verhindern.
Benutzeravatar
sls
User
Beiträge: 480
Registriert: Mittwoch 13. Mai 2015, 23:52
Wohnort: Country country = new Zealand();

@Andreas123: nein, es gibt für Python GUI-Frameworks bzw. Designer die Python-Code generieren.

Ein Java-Binary lässt sich dekomplieren. Was ist also der Punkt? Hast du angst jemand könnte deine Arbeit klauen?
When we say computer, we mean the electronic computer.
Benutzeravatar
__blackjack__
User
Beiträge: 14044
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Andreas123: Ad 1: Bei Tkinter ja, bei Gtk oder Qt nicht.

Ad 2: Natürlich kann man Java einfach in einem Texteditor öffnen und sieht den Quelltext. Genau wie bei Python. Bei Java's *.class-Dateien ist es geringfügig schwieriger. Genau wie bei (C)Python's *.pyc-Dateien.
„A life is like a garden. Perfect moments can be had, but not preserved, except in memory. LLAP” — Leonard Nimoy's last tweet.
Benutzeravatar
sparrow
User
Beiträge: 4538
Registriert: Freitag 17. April 2009, 10:28

Zum Ursprungsthema;
Mehrere Programmiersprachen zu kennen halte ich schon für sinnvoll. Bei Python ist ja relativ viel per Komvention "geregelt". Da halte finde ich es schon gut, wenn man mal mit einer Sprache zu tun gehabt hat, in der man z.B. Konstanten auch als solche gennzeichnen muss.
Antworten