從Android開發談談對編程語言的看法


引言

學生時代學習編程總喜歡討論哪種編程語言最好,各抒己見,有時候爭得面紅耳赤,常見的語言都有它忠實的粉絲,語言之爭一旦開始就再未停止過。。。

尤記得自己當時力挺c++,認為它是極好的語言,在性能與對象模型做了一個平衡。中國歷來推崇中庸之道,所以c++的優點可以被提升到一個很高的層次。到現在我依然認為c++即使它有很復雜的語法,而且不支持動態特性,卻是我用過最優雅的語言,沒有之一。

但是,在工作之后卻對編程語言有了更多的認識,甚至覺得編程語言沒有什么可比性,就如同醫生、教師和司機之間,不能直接評價孰好孰差,實質他們都是掙錢生活,只是分工不同罷了。當然掙錢多少肯定是有差別的,但如果純粹為了這個目的去選擇職業,或許有些片面。

對於用收入(python,object-c,c,c++)和使用量(java,C#,c,c++)去衡量編程語言,現實會給你一記耳光,如果再刻意的放棄已有,去選使用量最多的語言或收入最高的語言,說不定許久之后,你自己會給自己一記耳光。當然不能完全否定參考這些數據去選擇某種語言開始自己的編程身涯,就像當初大學填報專業時,也參考了就業較好的,較熱門的專業數據。

這樣感覺就有些復雜了,編程語言實際情況並非如此。簡單的說不同的項目,選擇最契合的語言。這里的最契合意義非凡,一般來說,會根據客觀環境和自已對某語言的掌握程度,其次要符合主流開發。如驅動開發,最早匯編是第一選擇,而現在c成為主流語言。即使你非常熟悉匯編,可能最終也會選擇c。又例如,在web開發時,可能你認為php非常適合,而且你又很熟悉,但項目組大多數人卻用asp。這時你有三個選擇:
- 1. 改用asp開發;
- 2. 勸說其他人用php開發;
- 3. 放棄該項目。
最后怎么做不得而知,只能說1的概率稍大。

對Android系統,對開發語言的選擇最好是這樣:驅動大部分用c,少量用匯編;內核用c;HAL層用c,native層大部分用c++,少量用c,少量內嵌shell腳本,少量python;framework、apk用java,編譯主要用Android.mk語法,少部分用makefile語法;build腳本主要用shell,其次為python。

從Android系統使用的編程語言來說,可謂是物盡其用,充分發揮每種語言的優勢。只要能實現自己層功能就行,當然沒bug就是更好不過了。有了這樣的說明,就不會再去爭論不同語言的優勢與劣勢,也不會糾結到底該學什么語言,因為所用到的語言,你都要會。

當更多的關注從語言本身轉移到業務邏輯,系統架構上時,或許就會進入另一深層,再進一步會認識到,工具只是為你的思想服務,這就偏離了本文的話題了。


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com