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
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
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.
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.
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.
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.
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.
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.