Baiklah, untuk memulai, saya memiliki pengalaman sebagai programmer amatir Obj-C / Cocoa dan Ruby w / Rails. Ini bagus, tetapi mereka tidak terlalu membantu untuk menulis aplikasi lintas platform (semoga GNUStep suatu hari nanti akan cukup lengkap untuk yang pertama menjadi multi platform, tetapi hari itu bukan hari ini).
C ++, dari apa yang bisa saya kumpulkan, sangat kuat tetapi juga raksasa, jelek besar yang bisa memakan waktu setengah dekade atau lebih untuk dikuasai. Saya juga membaca bahwa Anda dapat dengan mudah tidak hanya menembak diri sendiri di kaki, tetapi meledakkan seluruh kaki Anda karena manajemen memori semuanya manual. Jelas, ini semua sangat menakutkan. Apakah itu benar?
Python tampaknya memberikan sebagian besar kekuatan C ++ dan jauh lebih mudah untuk diambil dengan mengorbankan kecepatan. Seberapa besar pengorbanan ini? Apakah ini bermakna atau dapatkah diabaikan?
Yang mana yang membuat saya menulis aplikasi yang cepat, stabil, dan sangat andal dalam jumlah waktu yang wajar?
Juga, apakah lebih baik menggunakan Qt untuk UI Anda atau malah mempertahankan ujung depan asli yang terpisah untuk setiap platform?
EDIT: Untuk kejelasan ekstra, ada dua jenis aplikasi yang ingin saya tulis: satu adalah basis data yang sangat ramah dan nyaman dan yang lainnya, yang tidak diragukan lagi akan datang kemudian, adalah editor dunia 3D.
sumber
Jawaban:
C / C ++ cepat. Kenyataannya adalah, sebagian besar aplikasi tidak akan membutuhkan kinerja dengan keadaan hardware saat ini. Cara biasa adalah mengembangkan aplikasi dalam bahasa tingkat tinggi, seperti python, daripada mengoptimalkan bila diperlukan dengan bahasa tingkat rendah, seperti C / C ++.
Python akan memberi Anda dorongan produktivitas yang besar, mudah dipelajari dan cukup cepat. Ada Cython , yang dapat Anda gunakan untuk menulis ekstensi C untuk digunakan dalam aplikasi python Anda dengan sintaks seperti python untuk mempercepat kemacetan.
Untuk aplikasi GUI standar, python dapat memberi Anda kinerja yang cukup. Dan python memiliki sesuatu yang sangat keren yang disebut Kivy , kerangka kerja GUI yang berjalan di Mac, Windows, Linux, Android dan iOS, dan mendukung multi touch. Bagian bonusnya adalah, bagian kritis kinerja dioptimalkan dengan C, menggunakan Cython.
sumber
Saya akan menggunakan Python, karena memberi Anda peningkatan produktivitas yang besar. Anda masih dapat menulis bagian dari aplikasi Anda yang membutuhkan kecepatan dalam C ++, ada proyek Cython yang memungkinkan untuk menggunakan pustaka C ++ secara langsung dalam Python. Jika Anda khawatir tentang keamanan sumber Anda, Cython juga dapat membantu dengan itu, Anda dapat menggunakannya untuk mengkompilasi kode python normal Anda ke kode C ++.
Saya akan merekomendasikan untuk menanamkan mesin Chrome dan menggunakan teknologi seperti: HTML5 + CSS3 + Javascript + JQuery + Canvas untuk UI.
Ada kerangka kerja yang membuatnya mudah untuk menyematkan mesin Chrome di aplikasi C ++ Anda, ini disebut CEF - Chromium Embedded Framework . Ini mendukung Windows, Linux, Mac OS.
Jika Anda suka Python, lihat CEF Python , ini adalah proyek yang menyediakan binding python untuk kerangka CEF (dengan menggunakan Cython ). CEF python saat ini hanya mendukung Windows, tetapi ada rencana untuk OS'es lainnya.
Berikut adalah daftar aplikasi yang telah berhasil menggunakan CEF (diambil dari sini ):
Lihat juga entri blog ini: Membangun Aplikasi Desktop-Kualitas pada Teknologi Web - Tim editor kurung menjelaskan bagaimana mereka membangunnya menggunakan kerangka kerja CEF dan teknologi web seperti: jQuery , Bootstrap , KURANG CSS , membutuhkan JS , Jasmine , untuk pengujian Unit , JSlint .
Penafian: Saya penulis proyek CEF Python.
sumber
Cara Qt dari C ++ bagus dan bersih, jadi tolong, lepaskan bagian "jelek", saya sudah mencoba keduanya, dan secara pribadi saya jauh lebih produktif / nyaman dengan Qt / C ++ daripada dengan mengikat Qt Python. Itu saran saya jika Anda memilih untuk menggunakan Qt. Ditambah dan di samping pengalaman asli yang disediakan widget Qt, Qt5 dan QtQuick2 dengan teknologi QML dan kemampuan untuk menanamkan JavaScript dan HTML5 dalam aplikasi Anda, memberi Anda tampilan & nuansa seperti web modern, jika Anda memilih untuk melakukannya.
Jadi, mengapa saya tidak suka Python di aplikasi desktop dan saya lebih suka menyimpannya untuk skrip atau hal-hal sisi server?
Python memecah sedikit kegembiraan lintas-platform, klien Anda harus menginstal Python untuk menjalankan aplikasi Anda (terutama pada Windows), dan berbagai versi Python yang ada di situs resmi python sekarang membuat klien bingung, yang mana untuk diunduh / instal .
Python untuk exe , membuat aplikasi yang lebih besar (dalam hal ukuran).
Aplikasi Python, makan lebih banyak memori.
Itu sudut pandang pribadi. Sistem induk Qt, smart pointer, tidak akan membiarkan Anda menembak diri sendiri, tidak juga kaki, C ++ 11 akan memberi Anda lebih banyak fitur.
sumber