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?
Pyhton und Java gleichzeitig lernen?
- __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.
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.
-
- 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?
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?
- __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.
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.
-
- 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.
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.
- 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?
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.
- __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.
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.
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.
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.