這個(gè)問題的來源是一位同學(xué)給我的留言,背景是他想知道在嵌入式開發(fā)中Java可以替代Qt嗎?
也很好理解,因?yàn)榫W(wǎng)上很多人都說嵌入式開發(fā)中qt使用的比較多,甚至很多培訓(xùn)版也會(huì)在教完C++后開qt的課,因?yàn)閝t的編程語言也是C++(當(dāng)然Python也可以),比較有繼承性。
下邊就從幾個(gè)角度分析下這個(gè)問題:
1.性能需求
嵌入式開發(fā)的特點(diǎn)就是性能不如終端設(shè)備那么強(qiáng)大,所以截止今日,C語言都是嵌入式開發(fā)的王者,這種接近底層的語言雖然被詬病頗多,但還是因?yàn)槠渑c硬件的緊密性,對(duì)硬件操作的高效性而被眾多項(xiàng)目使用。
qt在這方面也是類似,雖然Java虛擬機(jī)在不斷優(yōu)化性能,但在某些情況下,Qt基于C++的性能優(yōu)勢仍然明顯。
2.界面需求
因?yàn)榍度胧皆O(shè)備在工業(yè)或者相對(duì)惡劣的環(huán)境使用居多,對(duì)于界面往往需要的控件和功能模塊的需求,這方面qt提供的是很豐富的,這得益于一直以來的行業(yè)內(nèi)的開發(fā)積累。
3.學(xué)習(xí)難度和繼承性
如果你是一名嵌入式開發(fā)者,已經(jīng)有了C/C++的基礎(chǔ),那顯而易見qt是更好的選擇,另外Qt擁有龐大的社區(qū)支持,開發(fā)者可以獲得豐富的文檔和教程資源,有助于加速開發(fā)進(jìn)程并解決問題。
4.跨平臺(tái)性
Java和Qt都支持跨平臺(tái)開發(fā),但Qt在跨平臺(tái)性方面可能更勝一籌,因?yàn)槠浜诵乃枷胧恰耙淮尉帉?,多處運(yùn)行”,而Java雖然也能跨平臺(tái),但需要通過Java虛擬機(jī)(JVM)來實(shí)現(xiàn)。
結(jié)合這幾點(diǎn),我覺得還是qt更加適合嵌入式學(xué)習(xí)者使用學(xué)習(xí),如果都沒接觸過,我建議從qt開始。(當(dāng)然如果你有后邊轉(zhuǎn)安卓開發(fā)的打算,學(xué)習(xí)Java也是可以的)
未完待續(xù),持續(xù)更新!以防后邊找不到可以點(diǎn)贊收藏下!