Forum: PC-Programmierung Python vs Groovy


von Marc (Gast)


Lesenswert?

Hallo.

Ich stehe vor der Frage, welche Programmiersprache ich wählen und 
erlernen soll.

Ich möchte vor Allem die Vielzahl der verwendeten Systeme und Umgebungen 
reduzieren und eine möglichst universell einsetzbare Sprache erlernen.
Sie soll vor Allem PHP, Kommandozeilen Scripts und GUI Programme mit 
einer gemeinsamen Basis ermöglichen.
Performance, Verarbeitungsgeschwindigkeit ist nebensächlich.
Wichtig ist auch, dass es gut erlernbar ist und gut les- und wartbarer 
Code entsteht.


Folgende Anforderungen (Mit Beschreibung und Wertigkeit) sind gestellt:

Entwicklung von Web-Applikationen
(Substitution von PHP in meinem Projekt):  10

Entwiklung von Kommandozeilenprogrammen
(Substitution von Perl / Bash Scripts):  10

Entwicklung von einfachen Windows GUI Programmen
(Substitution von VisualBasic zum Erstellen kleinerer GUI Programme 
unter Windows. Programm soll Standalone lauffähig sein, und nur eine 
"Standardumgebung" erfordern und nicht die Installation eines kompletten 
Frameworks oder Interpreters auf dem Zielsystem)  : 5


Entwicklung von einfachen Linux GUI Programmen
(Möglichst Plattformübergreifend, so dass für Windows und Linux die 
selbe Basis benutzt werden kann) : 4

Entwicklung von Apps für Smartphones oder Tablets (Android):
Nice to have wenn möglich, aber kein muss, Weiterverwendung von KnowHow 
und Basis wäre aber schön: 1

Erlernbarkeit, Einfachheit, Lesbarkeit des Codes: 8

Weiterverwendbarkeit von KnowHow und Basis in der Zukunft, beim Umstieg 
auf neuere oder mächtigere Systeme, sinnvoller Weise gleich einen 
Einstieg in eine entsprechend moderne und skalierbare Sprache: 6

Community Basis, Hilfen im Internet, Literatur: 4:

Ausführungsgeschwindigkeit, Performance: 2



Momentan habe ich 2 Kandidaten ausgemacht, welche die Anforderungen mehr 
oder minder erfüllen: Python und Groovy.
Aber ich kann mich nicht entscheiden, auf welches Pferd ich setzten 
soll.

Was würdet ihr denn nehmen?

Viele Grüße

von nicht“Gast“ (Gast)


Lesenswert?

Huhu,

Es scheint ja mode geworden zu sein, andere zu fragen bevor man selber 
einfach mal ausprobiert, was einen gefällt.

Ich persönlich würde mit C# anfangen (ach, hab ich ja auch ;).

Für dich? GROOVY scheint ja eher an Java anzulehnen. Und Python ist halt 
Python.

Wie wär's mit C++ und QT. Das kann eigentlich alle deine Forderungen.

Andere Frage. Warum bleibst du nicht bei Perl, wenn du es schon kannst. 
Da gibt's auch QT bindings.

So weit so gut.Ich hoffe, ich hab dich genug verwirrt. Mach python. Das 
ist eine nette Sprache, mit der man viel erreichen kann

Grüße

von K. S. (incognito)


Lesenswert?

Marc schrieb:

> Momentan habe ich 2 Kandidaten ausgemacht, welche die Anforderungen mehr
> oder minder erfüllen: Python und Groovy.
> Aber ich kann mich nicht entscheiden, auf welches Pferd ich setzten
> soll.

Wenn du schon eine absolute Nischensprache wie Groovy in erwägung 
ziehst, wieso dann nicht gleich was interessantes wie z.B. Haskell 
nehmen?

> Entwicklung von Web-Applikationen
> (Substitution von PHP in meinem Projekt):  10

Python mit Flask/Django oder ähnlichem. Eigentlich sind fast alle 
Scriptsprachen dafür geeignet. Wenns einigermaßen performant sein soll, 
sieh dir mal Go an.

> Entwiklung von Kommandozeilenprogrammen
> (Substitution von Perl / Bash Scripts):  10

Auch mit fast allem möglich. Eventuell solltest du dir auch noch andere 
Interpreter wie z.b. zsh ansehen, um die Bash-Skripte zu ersetzen.

> Entwicklung von einfachen Windows GUI Programmen
> (Substitution von VisualBasic zum Erstellen kleinerer GUI Programme
> unter Windows. Programm soll Standalone lauffähig sein, und nur eine
> "Standardumgebung" erfordern und nicht die Installation eines kompletten
> Frameworks oder Interpreters auf dem Zielsystem)  : 5
>
> Entwicklung von einfachen Linux GUI Programmen
> (Möglichst Plattformübergreifend, so dass für Windows und Linux die
> selbe Basis benutzt werden kann) : 4

Die JVM ist heutzutage kaum auf was anderem als Servern installiert. 
Wenn du dir die Mühe machen willst, dann kompilier den Python 
Interpreter mit in die Anwendung; sind allerdings ca. 30 MB + 
Abhängigkeiten. Ansonsten mach einfach ne Web-App draus. Damit sparst du 
dir viel Mühe und kannst die Kenntnisse aus Punkt 1 wiederverwenden.

> Entwicklung von Apps für Smartphones oder Tablets (Android):
> Nice to have wenn möglich, aber kein muss, Weiterverwendung von KnowHow
> und Basis wäre aber schön: 1

Du wirst mit allem außer Java und den offiziellen Android SDK 
eingeschränkt sein. Wenn du damit leben kannst, dass deine app 
mindestens 15 MB groß ist, dann nimm Kivy.

> Erlernbarkeit, Einfachheit, Lesbarkeit des Codes: 8

Ganz klar Python! :D

> Weiterverwendbarkeit von KnowHow und Basis in der Zukunft, beim Umstieg
> auf neuere oder mächtigere Systeme, sinnvoller Weise gleich einen
> Einstieg in eine entsprechend moderne und skalierbare Sprache: 6

Wie gesagt: Wenn du was modernes und performantes für serverseitiges 
haben willst, dann nimm Go.

> Community Basis, Hilfen im Internet, Literatur: 4:

Python.

> Ausführungsgeschwindigkeit, Performance: 2

Go.

von Marc (Gast)


Lesenswert?

Hallo.

Momentan habe ich Erfahrung mit PHP, Perl und Visual Basic, die ich auch 
jenachdem was ich machen will, verwende.
Ich würde aber viel lieber eine "eierlegende Wollmilchsau" haben und 
dann auch nur noch auf dieses eine Pferd setzen. Alle meine Ressorcen 
dann genau darauf bündeln und mich genau dahin spezialisieren und genau 
das erlernen.



Ja, ich weiß, dass groovy stark mit Java "verbandelt" ist.
Das ist ein Vorteil, da man sehr viel aus der Java-Welt verweden kann. 
(Und Umgekehrt). Groovy läuft auch in der JVM.
Java ist recht weit verbreitet und universell einsetzbar.

Groovy bietet mir die Möglichkeit, Web-Applikationen, "Smartphone-Apps" 
und "Desktop Anwendungen" mit einer einzigen Sprache zu erstellen.

Über Groovy könnte man auch problemlos den Sprung zu Java machen, und 
ist dann recht flexibel. Groovy ist in einigen Teilen auch an Python, 
Perl und Ruby angelehnt, so dass es da auch Überschneidungen gibt.



Für Python spricht, dass es schon deutlich etablierter ist, und man mehr 
Hilfestellungen durch Onlineforen und Literatur bekommt, und es auch in 
beruflichen Umfeld deutlich "gefragter" ist bzw mich weiter bringen 
würde.
Es ist bei vielen Linux Systemen schon mit dabei, man kann ohne größere 
"Installationsarbeiten" sofort loslegen.
Es ist sehr gut als "Konsolen-Scriptspache" zu gebrauchen, es 
substituiert sehr gut Bash und Perl Scripte.

Auch Onlineprojekte sind sehr gut realisierbar. Das Django Framework 
leistet sehr gute Dienste, und man kann PHP sehr gut substituieren.

Auch GUI Anwendungen, sowohl für Linux als auch Windows sind machbar.

Im Bereich Smartphone Apps ist Python wohl nicht ganz so gut, aber das 
wäre zu verkraften, denn dadrauf kommt es mir micht ganz so an.

Python ist halt eine eigene Sprache, und etwas weiter weg von Java, so 
dass der Sprung in Richtung "Smartphone App" später etwas schwerer 
werden könnte.

von Marc (Gast)


Lesenswert?

Go wäre interessant, da es sich stark an C orientiert, und über diesen 
Weg auch der weg in Richtung Java offen ist.
Sollte etwas mit Go nicht möglich sein, könnte man dann darauf zurück 
greifen.


Mein Projekt ist eigentlich eine Web Applikation, und auch der Aspekt 
Kommandozeilen Scripting ist recht wichtig, so dass ich tendenziell 
momentan am ehesten zu Python tendiere.
Das mit der Smartphone App wäre interessant, da der Smartphone und 
Tablet-Boom nicht mehr aufzuhalten ist, und es gut wäre, wenn man da 
auch was im Petto hätte.

Für das eigentliche Projekt brauche ich die Smartphone App und auch die 
Standalone Gui Anwendung nicht notwendigerweise. Das wäre nur irgendwann 
mal die Perfektion des ganzen, wenn man dann Bilder direkt vom Scanner 
(Twain), TV Karte/Videograbber oder der Smartphone Kamera ins System 
einspeisen könnte.
Momentan muss man mit Drittanwendungen arbeiten, zwischenspeichern und 
per Upload Dialog im Browser aufs System schieben.

von K. S. (incognito)


Lesenswert?

Marc schrieb:
> Go wäre interessant, da es sich stark an C orientiert, und über
> diesen
> Weg auch der weg in Richtung Java offen ist.
> Sollte etwas mit Go nicht möglich sein, könnte man dann darauf zurück
> greifen.

Hä?


> Im Bereich Smartphone Apps ist Python wohl nicht ganz so gut, aber das
> wäre zu verkraften, denn dadrauf kommt es mir micht ganz so an.
>
> Python ist halt eine eigene Sprache, und etwas weiter weg von Java, so
> dass der Sprung in Richtung "Smartphone App" später etwas schwerer
> werden könnte.

Dass Groovy auf der JVM läuft bringt dir für Android-Apps überhaupt 
nichts. Wenn du Groovy unbedingt auf Android benutzen willst, musst du - 
wie bei Python auch - den ganzen Sprachspezifischen kram in die apk 
reinkompilieren. Ich würde sogar sagen, dass Python für Android 
anwendungen besser geeignet ist, weil du mit Kivy ein gutes Framework 
für Apps hast, dass zudem auch noch unter iOS läuft.

von Marc (Gast)


Lesenswert?

Hab mir mal den Kivy angesehen. Vielen Dank für den Tipp.
Richtig toll ist, dass es Cross Platform ist: Smartphone und Desktop 
Linux / Windows.

Das Kivy begeistert mich auf Anhieb. Das ist so ziemlich genau das, was 
ich suche, um neben dem Web-Basierten Kram auch noch Clientseitig was 
machen zu können. Ein paar MB mehr für den Kivy, den man dann benötigt, 
die sind egal.

Den Kivy werde ich jetzt gleich auch mal ausprobieren mit einem Hallo 
Welt Testprogramm.

Wenn das gut klappt, gehe ich definitv auf Python, da es mich die 
Möglichkeiten Bereich Kommandozeilenscripting und Web-Applikationen 
(Django) auch sehr ansprechen und ich dann das eine Pferd habe, mit dem 
ich hoffentlich alles machen kann was anfällt.

von Marc (Gast)


Lesenswert?

Habe mich jetzt für Python entschieden.
Es ist das bekanntere und bewährtere "Pferd" von beiden, was gewisse 
Vorteile bietet, gerade im Hinblick auf die berufliche Orientierung.

Ob ich unter Windows das Kivy Framework nehme, weiß ich allerdings noch 
nicht. Ich habe es getestet, da gibt es unter Windows eine Sache, die 
mir nicht so gefällt. Es gibt aber noch andere Lösungen, die sehr 
Erfolgsversprechend aussehen.

Für den Smartphonebereich ist Kivy ziemlich genau das, was ich suche.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.