Ingin memulai pengembangan untuk Ubuntu (dan sebagian besar distribusi Linux secara umum), mana yang cocok? Python atau Vala? [Tutup]

14

Saya lulusan ilmu komputer, dan belajar bahasa seperti C, C ++, C # dan Java. Padahal saya punya lebih banyak pengalaman dengan Java. Saya ingin mengembangkan untuk Linux dan saya lebih suka untuk mengembangkan untuk GNOME, saya bingung antara memilih satu dari Python dan Vala.

Setelah melalui beberapa dokumentasi tentang Vala di halaman Langsung GNOME, sepertinya lebih akrab bagi saya dibandingkan dengan Python, yang secara sintaksis sangat berbeda dibandingkan dengan kebanyakan bahasa yang saya pelajari selama wisuda. Sementara belajar kurva di Vala tampaknya lebih kecil bagi saya. Jadi, bahasa mana yang harus saya pilih untuk memulai pengembangan, yang memiliki dukungan yang lebih baik dalam berbagai distribusi. IDE yang disarankan untuk bahasa yang disarankan akan dihargai.

Terima kasih.

Kushal
sumber
1
Sesuatu yang tidak disarankan oleh orang lain di utas ini: Anda harus mempelajari Python karena berbeda dari apa yang sudah Anda ketahui. Ini akan memaparkan Anda pada cara berpikir yang berbeda dari apa yang Anda pelajari ketika memprogram penugasan kelas secara eksklusif dalam bahasa mirip C. Juga, sintaks tidak yang berbeda. Coba ganti {dengan :dan kemudian hapus semua }dalam beberapa kode Java, dan itu mungkin mulai terlihat lebih seperti Python.
Ryan C. Thompson

Jawaban:

18

Selain argumen lama tentang bahasa pemrograman mana yang lebih baik, yang tidak akan saya bahas (meskipun Python adalah yang terbaik sejak memotong roti), saya akan mengatakan keduanya sama-sama cocok untuk menulis Aplikasi untuk desktop Gnome.

Pygtk, binding Python GTK, telah digunakan untuk membuat aplikasi seperti PiTiVi , Deluge , emesene , Exaile , Jokosher , dan WingIDE .

Saya tidak dapat menemukan daftar aplikasi yang ditulis dalam Vala (walaupun saya tahu tentang Shotwell ). Tapi karena ini sangat dirancang untuk menjadi bahasa bagi destkop Gnome, Anda bisa yakin Anda tidak akan kecewa dengan integrasi GTK / GObject-nya.

Cobalah keduanya dan gunakan yang mana yang paling Anda sukai. Keduanya adalah alat yang sangat baik untuk membuat Aplikasi GTK. Anda mungkin juga ingin melihat kode Some Vala dan Some Python .

Stefano Palazzo
sumber
6

Saya akan merekomendasikan Vala. Anda tampaknya lebih suka bahasa berorientasi objek dan Vala berorientasi objek dengan desain. Python memiliki kemampuan OOP juga, tetapi mereka tidak terintegrasi ke bagian lain - itu sebabnya Ruby dibuat.

Python dianggap lebih mudah dipelajari dan digunakan, tetapi ini adalah bahasa yang sangat asli, dengan logika dan filosofi sendiri; Saya pikir Vala akan lebih mudah untuk belajar kepada Anda karena sangat mirip dengan C # dan Java.

Pilihannya juga tergantung pada aplikasi apa yang akan Anda tulis. Python bagus untuk skrip dan prototyping cepat, tetapi binding GTK-nya saat ini buruk dan sangat lambat. Bahasa itu sendiri sekitar 40 kali lebih lambat daripada C dalam berbagai tolok ukur. Vala, di sisi lain, adalah preprosesor C, sehingga program yang ditulis di dalamnya berjalan sangat cepat, dan itu dirancang untuk digunakan dalam GNOME.

Shnatsel
sumber
1
Apa yang 'buruk' tentang binding GTK untuk Python? Juga, saya tidak berpikir Ruby diciptakan sebagai reaksi terhadap Python! Selain itu, saya setuju dengan jawaban Anda.
dv3500ea
Bahasa yang ditafsirkan tentu saja lebih lambat, yang merupakan trade-off desain. Untuk menulis kode python cepat, Anda menulis implementasi python yang berfungsi, membuat profil bagian-bagian yang perlu dioptimalkan, dan menulis modul python untuk bagian-bagian itu dalam bahasa yang dikompilasi seperti C.
Egil
@ dv3500ea: sebenarnya, " Saya ingin bahasa scripting yang lebih kuat daripada Perl, dan lebih berorientasi objek daripada Python. " Bukan berarti saya setuju, saya tidak melihat bagaimana OOP tidak terintegrasi dengan Python.
André Paramés
1
Sementara Python sendiri lambat, kecepatannya tidak terlalu berarti dalam banyak kasus. Bagian yang sangat lambat dari GUI adalah ke grafik yang sebenarnya, yang masih semuanya C.
Brendan Long
5

Saya sarankan Anda mulai dengan Python karena sangat mudah untuk membuat aplikasi PyGTK. Buku gratis ini adalah sumber yang bagus untuk mengembangkan aplikasi Gnome dengan Python.

Vala juga hebat, tetapi Anda akan merasa lebih nyaman dengan Python sebagai pemula.

Kemudian, setelah Anda berkenalan dengan filosofi pengembangan aplikasi Unix, Anda dapat membuat bagian-bagian aplikasi Anda dengan python atau vala atau Javascript sesuai kebutuhan.

Saya akan mengatakan, mulai dengan PyGTK (PyGI) untuk mendapatkan nuansa platform dan kemudian belajar Vala dan Javascript. Javascript akan menjadi BESAR di desktop Gnome. Maksudku BESAR.

Yang mengikat untuk GTK, semuanya sama untuk semua aplikasi sekarang. Anda akan menggunakan binding C yang sama dari bahasa apa pun menggunakan Introspeksi Gobject .

Owais Lone
sumber
Saya menantikan JavaScript untuk mengambil alih Gnome atau lingkungan desktop apa pun (yang sudah dimilikinya dengan meninggalkan kesan besar pada Gnome Shell).
Kushal
1

Python memiliki banyak dokumentasi / buku yang bagus. Untuk Vala saya tidak tahu.

Leon
sumber
0

Saya akan menyarankan wxPython (wxWidgets) bersama dengan Boa Constructor atau Aptana Studio 3 (PyDev). Python adalah bahasa yang fantastis untuk digunakan siapa saja (bahkan anak-anak - lihat "Snake Wrangling for Kids"). Dengan pengkodean dalam Python / wxPython, Anda akan menulis kode yang terintegrasi dengan indah dengan Linux tetapi dapat porting dengan upaya sepele ke Windows dan OS / X juga.

John Cockroft
sumber
0

Gunakan pemrograman apa pun yang Anda sukai. Jika Anda akan menyumbangkan kode (yaitu menulis perangkat lunak bebas), Anda dapat menikmatinya. Seperti yang dikatakan orang lain, kedua bahasa itu bagus untuk pengembangan.

Ryan C. Thompson
sumber
Jelas menulis perangkat lunak bebas adalah apa yang akan mengubah segalanya selamanya. :-)
Kushal
0

vala mungkin nomor 3 (atau 4 jika Anda menghitung gtkmm) bahasa dengan binding dan dokumentasi GTK yang baik. itu menghasilkan kode menengah dalam c, yang dapat Anda ubah atau pelajari untuk melihat bagaimana hal itu dilakukan, sebagian besar vala hanyalah pembungkus di sekitar GObject dan GLib. Kode Vala berjalan hampir secepat C, dan harus mudah dari siapa pun yang berasal dari c / c # / java

loki verloren
sumber