Möchten Sie mit der Entwicklung für Ubuntu (und die meisten Linux-Distributionen im Allgemeinen) beginnen? Python oder Vala? [geschlossen]


14

Ich habe Informatik studiert und Sprachen wie C, C ++, C # und Java gelernt. Allerdings habe ich mehr Erfahrung mit Java. Ich möchte für Linux entwickeln und ich würde es vorziehen, für GNOME zu entwickeln. Ich bin verwirrt, wenn ich mich für einen aus Python und Vala entscheide.

Nachdem ich einige Dokumentationen zu Vala auf GNOME Live-Seiten durchgesehen habe, scheint es mir vertrauter zu sein als Python, das sich syntaktisch von den meisten Sprachen unterscheidet, die ich während meines Abschlusses gelernt habe. Während der Lernkurve in Vala scheint mir kleiner. Also, welche Sprache soll ich wählen, um mit der Entwicklung zu beginnen, die eine bessere Unterstützung für verschiedene Distributionen bietet? Eine empfohlene IDE für die vorgeschlagene Sprache wird geschätzt.

Vielen Dank.


1
Etwas, das niemand in diesem Thread vorgeschlagen hat: Sie sollten Python lernen, weil es sich von dem unterscheidet, was Sie bereits kennen. Es wird Sie einer anderen Denkweise aussetzen als die, die Sie beim Programmieren von Klassenaufgaben ausschließlich in C-ähnlichen Sprachen gelernt haben. Auch die Syntax ist nicht so unterschiedlich. Versuchen Sie ersetzen {mit :und löscht dann alle }in einigen Java - Code, und es könnte viel mehr wie Python zu suchen beginnen.
Ryan C. Thompson

Antworten:


18

Abgesehen von dem alten Argument, welche Programmiersprache besser ist, auf das ich mich nicht einlassen werde (obwohl Python die größte Sache seit geschnittenem Brot ist), würde ich sagen, dass beide gleichermaßen gut zum Schreiben von Apps für den Gnome-Desktop geeignet sind.

Pygtk, die Python GTK-Bindungen, wurden verwendet, um Anwendungen wie PiTiVi , Deluge , Emesene , Exaile , Jokosher und WingIDE zu erstellen .

Ich kann keine Liste der in Vala geschriebenen Anwendungen finden (obwohl ich Shotwell kenne ). Aber da es sehr darauf ausgelegt ist, eine Sprache für den Gnome-Destkop zu sein, können Sie sich ziemlich sicher sein, dass Sie von der Integration von GTK / GObject nicht enttäuscht werden.

Probieren Sie beide aus und verwenden Sie, was Ihnen am besten gefällt. Sie sind beide hervorragende Werkzeuge zum Erstellen von GTK-Anwendungen. Vielleicht möchten Sie auch einen Blick auf Some Vala Code und Some Python Code werfen .


6

Ich würde Vala empfehlen. Sie scheinen objektorientierte Sprachen zu bevorzugen und Vala ist objektorientiert. Python verfügt auch über OOP-Funktionen, die jedoch nicht in die anderen Teile integriert sind - aus diesem Grund wurde Ruby erstellt.

Python wird als einfacher zu erlernen und zu verwenden angesehen, aber es ist eine sehr originelle Sprache mit eigener Logik und Philosophie. Ich denke, Vala wird leichter zu erlernen sein, da es C # und Java sehr ähnlich ist.

Die Wahl hängt auch davon ab, welche Apps Sie schreiben werden. Python eignet sich gut für Skripterstellung und schnelles Prototyping, aber die GTK-Bindungen sind derzeit schlecht und sehr langsam. Die Sprache selbst ist in verschiedenen Benchmarks etwa 40-mal langsamer als C. Vala hingegen ist ein C-Präprozessor, weshalb darin geschriebene Programme sehr schnell laufen und für die Verwendung in GNOME ausgelegt sind.


1
Was ist "schlecht" an den GTK-Bindungen für Python? Ich glaube auch nicht, dass Ruby als Reaktion auf Python erschaffen wurde! Ansonsten stimme ich Ihrer Antwort zu.
dv3500ea

Interpretierte Sprachen sind natürlich langsamer, das ist ein Design-Kompromiss. Um schnellen Python-Code zu schreiben, schreiben Sie eine funktionierende Python-Implementierung, profilieren die Teile, die optimiert werden müssen, und schreiben Python-Module für diese Teile in einer kompilierten Sprache wie C.
Egil,

@ dv3500ea: Eigentlich: " Ich wollte eine Skriptsprache, die leistungsfähiger als Perl und objektorientierter als Python ist. " Nicht, dass ich unbedingt zustimme, ich sehe nicht, wie OOP nicht in Python integriert ist.
André Paramés

1
Während Python selbst langsam ist, spielt seine Geschwindigkeit in den meisten Fällen kaum eine Rolle. Der wirklich langsame Teil einer GUI ist die eigentliche Grafik, bei der es sich immer noch um C handelt.
Brendan Long

5

Ich würde vorschlagen, dass Sie mit Python beginnen, da es wirklich einfach ist, PyGTK-Apps zu erstellen. Dieses kostenlose Buch ist eine großartige Ressource für die Entwicklung von Gnome-Apps mit Python.

Vala ist auch großartig, aber Sie werden sich mit Python als Anfänger wohler fühlen.

Sobald Sie sich mit der Philosophie der Unix-App-Entwicklung vertraut gemacht haben, können Sie später Teile Ihrer App in Python, Vala oder Javascript erstellen, wenn Sie dies wünschen.

Ich würde sagen, fange mit PyGTK (PyGI) an, um ein Gefühl für die Plattform zu bekommen und lerne dann Vala und Javascript. Javascript wird auf dem Gnome-Desktop RIESIG sein. Ich meine riesig.

Die Bindung für GTK ist jetzt für alle Apps gleich. Mit Gobject Introspection verwenden Sie dieselben C- Bindungen aus jeder Sprache .


Ich freue mich darauf, dass JavaScript Gnome oder eine andere Desktop-Umgebung übernimmt (was es bereits hat, indem es einen großen Eindruck auf Gnome Shell hinterlässt).
Kushal

1

Python hat viele gute Dokumentationen / Bücher. Für Vala weiß ich nicht.


0

Ich würde wxPython (wxWidgets) zusammen mit Boa Constructor oder Aptana Studio 3 (PyDev) vorschlagen. Python ist eine fantastische Sprache für jedermann (auch für Kinder - siehe "Snake Wrangling for Kids"). Indem Sie in Python / wxPython codieren, schreiben Sie Code, der sich wunderbar in Linux integrieren lässt, aber mit geringem Aufwand auch auf Windows und OS / X portiert werden kann.


0

Verwenden Sie, was Sie am bequemsten programmieren können. Wenn Sie Code spenden (dh freie Software schreiben), können Sie es auch genießen. Wie andere bereits gesagt haben, eignen sich beide Sprachen hervorragend für die Entwicklung.


Offensichtlich wird das Schreiben freier Software alles für immer verändern. :-)
Kushal

0

Vala ist wahrscheinlich die Nummer 3 (oder 4, wenn Sie GTKMM zählen) von Sprachen mit guten GTK-Bindungen und guter Dokumentation. Es erzeugt Zwischencode in c, den Sie ändern oder untersuchen können, um zu sehen, wie es gemacht wird. Der größte Teil von Vala besteht nur aus Wrappern um GObject und GLib. Vala-Code läuft fast so schnell wie C und sollte für alle, die aus c / c # / java kommen, einfach sein

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.