Vuoi iniziare lo sviluppo per Ubuntu (e la maggior parte delle distribuzioni Linux in generale), che è adatto? Python o Vala? [chiuso]


14

Sono laureato in informatica e ho imparato lingue come C, C ++, C # e Java. Anche se ho più esperienza con Java. Voglio sviluppare per Linux e preferirei sviluppare per GNOME, sono confuso tra sceglierne uno tra Python e Vala.

Dopo aver esaminato la documentazione su Vala sulle pagine GNOME Live, mi sembra più familiare rispetto a Python, che è abbastanza diverso sintatticamente rispetto alla maggior parte delle lingue che ho imparato durante la mia laurea. Mentre la curva di apprendimento in Vala mi sembra più piccola. Quindi, quale lingua dovrei scegliere per iniziare lo sviluppo, che ha un supporto migliore in una varietà di distribuzioni. Sarà apprezzato un IDE raccomandato per la lingua suggerita.

Grazie.


1
Qualcosa che nessun altro in questo thread ha suggerito: dovresti imparare Python perché è diverso da quello che già conosci. Ti esporrà a un modo di pensare diverso rispetto a quello che hai appreso durante la programmazione degli incarichi di classe esclusivamente in linguaggi simili al C. Inoltre, la sintassi non è così diversa. Prova a sostituirlo {con :e poi a eliminare tutto }in qualche codice Java, e potrebbe iniziare ad assomigliare molto di più a Python.
Ryan C. Thompson,

Risposte:


18

A parte la vecchia argomentazione su quale linguaggio di programmazione sia migliore, che non tratterò (anche se Python è la cosa più grande da quando il pane a fette), direi che entrambi sono ugualmente adatti a scrivere app per il desktop Gnome.

Pygtk, i collegamenti Python GTK, sono stati usati per creare applicazioni come PiTiVi , Deluge , emesene , Exaile , Jokosher e WingIDE .

Non riesco a trovare un elenco di applicazioni scritte in Vala (anche se conosco Shotwell ). Ma dal momento che è progettato per essere un linguaggio per il destkop di Gnome, puoi essere abbastanza sicuro di non essere deluso dalla sua integrazione GTK / GObject.

Provali entrambi e usa quello che ti piace di più. Sono entrambi strumenti eccellenti per creare applicazioni GTK. Potresti anche dare un'occhiata a Some Vala code e Some Python code .


6

Consiglierei Vala. Sembri preferire linguaggi orientati agli oggetti e Vala è orientata agli oggetti in base alla progettazione. Python ha anche funzionalità OOP, ma non sono integrate nelle altre parti: ecco perché è stato creato Ruby.

Python è considerato più facile da imparare e da usare, ma è un linguaggio molto originale, con la sua logica e filosofia; Penso che Vala ti sarà più facile da imparare perché è molto simile a C # e Java.

La scelta dipende anche dalle app che stai per scrivere. Python è buono per lo scripting e la prototipazione rapida, ma i suoi collegamenti GTK sono attualmente scarsi e molto lenti. Il linguaggio stesso è circa 40 volte più lento di C in vari parametri di riferimento. Vala, d'altra parte, è un preprocessore C, quindi i programmi scritti in esso funzionano molto velocemente ed è progettato per essere utilizzato in GNOME.


1
Cosa c'è di "scarso" nei collegamenti GTK per Python? Inoltre, non penso che Ruby sia stato creato come reazione a Python! A parte questo, sono d'accordo con la tua risposta.
dv3500ea,

Le lingue interpretate sono ovviamente più lente, questo è un compromesso di progettazione. Per scrivere codice Python veloce, scrivi un'implementazione Python funzionante, profila le parti che necessitano di ottimizzazione e scrivi i moduli Python per quelle parti in un linguaggio compilato come C.
Egil

@ dv3500ea: in realtà " volevo un linguaggio di scripting più potente di Perl e più orientato agli oggetti di Python. " Non che io sia necessariamente d'accordo, non vedo come OOP non sia integrato con Python.
André Paramés,

1
Mentre Python stesso è lento, la sua velocità non importa nella maggior parte dei casi. La parte veramente lenta di una GUI sta nella grafica reale, che sarà comunque tutta C.
Brendan Long,

5

Ti suggerirei di iniziare con Python in quanto è davvero facile creare app PyGTK. Questo libro gratuito è un'ottima risorsa per lo sviluppo di app Gnome con Python.

Anche Vala è fantastica, ma ti sentirai più a tuo agio con Python come principiante.

Successivamente, una volta acquisita conoscenza della filosofia di sviluppo delle app Unix, puoi creare parti della tua app in Python o Vala o Javascript quando ne senti la necessità.

Direi, inizia con PyGTK (PyGI) per avere la sensazione della piattaforma e quindi imparare Vala e Javascript. Javascript sarà ENORME sul desktop di Gnome. Intendo ENORME.

L'associazione per GTK, sono gli stessi per tutte le app ora. Userai gli stessi attacchi C di qualsiasi lingua usando Gobject Introspection .


Non vedo l'ora che JavaScript prenda il sopravvento su Gnome o su qualsiasi ambiente desktop (cosa che ha già lasciato lasciando una grande impressione su Gnome Shell).
Kushal,

1

Python ha molti buoni documenti / libri. Per Vala non lo so.


0

Vorrei suggerire wxPython (wxWidgets) insieme a Boa Constructor o Aptana Studio 3 (PyDev). Python è un linguaggio fantastico che chiunque può usare (anche i bambini - vedi "Snake Wrangling for Kids"). Codificando in Python / wxPython, si scriverà un codice che si integra perfettamente con Linux ma che può essere portato con banale sforzo anche su Windows e OS / X.


0

Usa qualunque cosa tu ti senta più a tuo agio a programmare. Se stai per donare codice (ad esempio scrivere software gratuito), potresti anche godertelo. Come altri hanno già detto, entrambe le lingue sono ottime per lo sviluppo.


Ovviamente scrivere software libero è ciò che cambierà tutto per sempre. :-)
Kushal,

0

vala è probabilmente il numero 3 (o 4 se conti gtkmm) di lingue con buoni collegamenti e documentazione GTK. produce un codice intermedio in c, che puoi modificare o studiare per vedere come viene fatto, la maggior parte di vala è solo wrapper attorno a GObject e GLib. Il codice Vala viene eseguito quasi alla stessa velocità di C e dovrebbe essere facile da chiunque provenga da c / c # / java

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.