Google在剛剛發(fā)布Android的時(shí)候絕對想不到現在的手機性能會(huì )過(guò)剩成這個(gè)樣子,那他們當時(shí)為什么選擇了Java作為應用開(kāi)發(fā)語(yǔ)言呢?鄭州尚學(xué)堂java培訓專(zhuān)家和大家一起一探究竟:
2007年Android剛剛出生的時(shí)候,看到開(kāi)發(fā)語(yǔ)言是Java ,很多人在心里打了個(gè)大大的問(wèn)號:因為在很多人眼里,Java是很慢的,用Java來(lái)開(kāi)發(fā)手機端的應用,尤其是游戲,到底行不行?
Android這八九年的發(fā)展超出了所有的人預料,在智能手機端的占有率高達80%。事實(shí)證明,用Java來(lái)開(kāi)發(fā)應用完全沒(méi)有問(wèn)題。
一個(gè)好玩的現象是:這些年大家似乎并不太關(guān)注應用程序的性能,相反關(guān)注的是手機的性能。
想象一下,如果你是當時(shí)的負責人,需要作出決斷,你會(huì )怎么選擇?
首先看看C語(yǔ)言,簡(jiǎn)單靈活,貼近硬件,性能極佳,指針異常靈活,是開(kāi)發(fā)系統軟件的不二之選,但是Android要討好的是無(wú)數的應用程序開(kāi)發(fā)者,如果讓他們用C語(yǔ)言去寫(xiě)界面程序,非累得吐血不可。
那C++是不是好一點(diǎn)?從C發(fā)展而來(lái),面向對象,性能好,類(lèi)庫也不少,在游戲領(lǐng)域也取得了成功。
拜托,這個(gè)語(yǔ)言復雜到了令人發(fā)指的地步,也沒(méi)有擺脫C的指針和內存管理的陷阱,就別去折騰程序員了。
另外可移植性也是非常重要的考慮因素,相比電腦,手機平臺更加多樣化,如果用C或者C++ , 把移植的工作交給程序員做,一定會(huì )被罵死。
C#怎么樣?看起來(lái)不錯,不過(guò)Android肯定是要開(kāi)源的,就不用考慮C#了吧。
Lisp ? 強大的令人發(fā)指,學(xué)習曲線(xiàn)之陡峭也令人發(fā)指,不改變編程思維是學(xué)不好的,能用Lisp編程的人都是黑客,為了吸引廣大屌絲,果斷放棄!
Smalltalk ? 估計會(huì )的人也不多了。
有人說(shuō)Javascript , 這們只是運行在瀏覽器中的語(yǔ)言,而我們要的是能開(kāi)發(fā)原生(Native)應用的語(yǔ)言!
Ruby呢?簡(jiǎn)潔優(yōu)雅,別的語(yǔ)言都是對機器友好,要充分的壓榨機器的性能, Ruby可是號稱(chēng)對程序員最友好的語(yǔ)言啊。
其實(shí)Ruby各個(gè)方面都很好,除了致命的一個(gè)因素:太慢!這一點(diǎn)就把Ruby排除在外了。
剩下的*度較高的高級語(yǔ)言也就剩下Python和Java了。
Python性能還行,用的人不少,也能跨平臺。
Java語(yǔ)言非常成熟,性能也可以,用的人超級多 , 能把1/10的人拉進(jìn)來(lái)做Android開(kāi)發(fā)那就非常不得了,社區更加成熟,跨平臺更是java的招牌。
所以,還是選擇Java吧。
如果你對學(xué)java還有這些疑問(wèn):零基礎學(xué)java能學(xué)會(huì )嗎?Java程序員的薪資情況如何?怎樣才能成為一個(gè)優(yōu)秀的java程序員?歡迎關(guān)注微信公眾號:“尚學(xué)堂IT”留言咨詢(xún)鄭州尚學(xué)堂java培訓專(zhuān)家。