2010-06-29 41 views
35

試圖潛入Qt大的時間,但尚未完成一個大型項目。目前正在使用Python,但我一直在想 - 在程序員的生產力方面,哪種語言更好用?Qt編程:Python或C++更高效?

在大多數語言之間的比較中,Python是一個明顯的答案,因爲您不必混淆內存管理和所有這些。

但是,對於Qt,我不太確定。它爲C++提供了足夠的附加功能(從我所知道的情況來看),大多數時候一行Python代碼大致等於一行C++代碼(不包括類定義和結構組件等額外的東西)。 Qt爲你做了幾乎所有的內存管理,只要你堅持使用它的類,並且提供你可以在Python中找到的漂亮容器的等價物。

我一直都喜歡靜態類型的語言,但由於各種原因已經得到了Python的熱潮。但是,如果程序員的生產力與C++類似,那麼我可以跳出這種方式來獲得其他好處 - 更高效的代碼和更少的依賴性供用戶安裝。

想法?

+3

Python在程序員生產力方面顯然是贏家。 – 2010-07-01 03:26:34

+1

的確,您甚至可以在Python中編寫更復雜的Qt應用程序,然後在Qt中編寫,而我的Python技能遠遠落後於C++。單獨的新信號插槽系統是一個令人難以置信的補充,這使得它更清楚Qt中整個事情是如何工作的。根據我的經驗,Python也需要較少的寫作。現在許多C/C++庫在Python中提供(或者正在開發)一個API。 – rbaleksandar 2015-07-30 17:35:26

回答

18

我的意見(已經嘗試了C++和Python,特別是在Qt的情況下):Python總是在'程序員生產力'和'安心'方面獲勝。 PyQt很好地代表了Qt,因此問題並不在於「Qt with Python」或「Qt with C++」,一般來說python的效率更高,除非你需要速度或python中沒有的東西。

最適合你在得出答案將是第一個用C編寫一個簡單的項目++和Python中,然後同樣的項目和比較,但可能對蟒蛇被偏置爲編碼的項目,一旦你會發現之後方式在Python中很容易,因此請嘗試另一個項目,首先在Python中執行,然後在C++中執行。

23

如果這兩者之一,我實際上建議Python,儘管是一個C++愛好者。使用Python代碼,您不必擔心MOC,可移植性,構建時間等問題。只需比較在C++中實現QT插槽所涉及的工作與PyQT或PySide,例如我發現以這種方式處理小部件的痛苦要小得多(生產力要高得多)。如果您需要增加的性能,您仍然可以從Python調用C++代碼。

如果確實使用組合,請考慮擴展Python而不是嵌入它。 Python通常更適合嵌入C/C++代碼,而不是嵌入到C/C++系統中。由於應用程序通常由比性能關鍵代碼更爲普通的非性能關鍵代碼組成,所以它主要作爲一個附帶C/C++函數的python應用程序來編寫應用程序。的系統設計更好。

4

使用Python,您不必構建項目。我想我已經足夠節省時間了。 Pyqt綁定非常棒。 pyqt比qt/C++更有效。

3

無論你使用python還是C++,更多的依賴於你正在構建的應用程序,而不是Qt。如果你正在構建一個資源沉重且需要大量資源(如CPU和內存)的應用程序,那麼C++將是更好的選擇。另一方面,如果你的應用程序更多的是由UI驅動的,Python在快速開發和豐富的庫方面提供了很多其他的好處。

7

肯定是Python。

是的,人們會說Python沒有理由會提高生產力。一些答案提到你不必重新編譯。我會給你一些更詳細

  1. Python是一個抽象層上C++,所以你可以把與更少的代碼表達自己的設計。你的程序可能運行速度不快,但確保你在代碼中表達得更快。

  2. 最常見的情況是啓動應用程序,加載一些文件,設置環境並打開對話框。你注意到一個按鈕不起作用或它應該在哪裏。現在這是大多數人關閉應用程序的地方,在這裏綁定一個插槽,在那裏綁定一個信號......並啓動應用程序,加載文件,設置...使用python,您只需編寫代碼並再次啓動對話框,不是整個應用程序。我不瞭解你,但是這種類型的任務是我大部分時間使用Qt所做的工作。

  3. Python爲您提供了C++沒有的東西:內省。您可以瀏覽正在運行的程序,並在運行時提取有關其組件的信息。 Qt部分給你。您可以將元屬性和元信息附加到Qt對象的MOC圖層。 Python程序的所有部分都可以被內省。許多人正在調試Python代碼,或者試圖理解它是如何工作的,對此有着很高的理解

+1

關於2.)您只需在運行應用程序時重新加載代碼 - 您在此使用哪種IDE /編輯器? Pyhton支持如何「在線」 - 重新加載? – nerdoc 2016-03-30 21:10:07