有關(guān)于幾種常見編程語言的合理定位

這些年或因為興趣或因為工作需要著實接觸了不少編程語言,然而隨著接觸的多了起來,有時候也不免自我懷疑,為什么我要這么頻繁的更換編程語言?難道不能利用一種編程語言打天下么?這么做豈不是將時間精力完全的浪費在了學習編程語言的過程中,說實在的這個過程一點也不有趣。當我嘗試著將使用過的編程語言分類,詳細考慮編程語言的優(yōu)勢和特點,于是便有了這篇文章。

在這里,我嘗試根據(jù)每種編程語言的特點,主要應(yīng)用領(lǐng)域和優(yōu)勢對編程語言做一個比較實用的定位,避免今后在編程的道路上浪費時間,做無用功,將更多的時間放在高層編程技術(shù)上的學習上。

1.C語言

C語言是應(yīng)用最為廣泛的一種編程語言,從嵌入式到PC軟件,從操作系統(tǒng)到底層驅(qū)動都能見到他的身影。作為應(yīng)用最廣泛,形式最靈活,拓展最方便的一種編程語言,C語言在世界編程語言排行榜中長期占據(jù)第二的位置,牢不可破。然而這還是不計算嵌入式等領(lǐng)域的前提下得出的排名,如果將嵌入式等領(lǐng)域計算在內(nèi),超越Java不是妄想。

C語言時一種面向底層,面向計算機的編程語言,它介于高級語言與低級語言之間。相對于與機器指令對應(yīng)的低級語言——匯編語言,它具有足夠的抽象,能夠讓人們避免直接與寄存器打交道。同時,相對于高級語言Python來說,又因為面對計算機底層,運行效率不至于下降太多。C語言是一種折衷的選擇,當人們需要高性能但是又不愿意犧牲太多編程效率的時候,C語言是一種明智的選擇,又因為C語言面向計算機底層,因此C語言的編譯器實現(xiàn)起來較為簡單。這就使得C語言廣泛應(yīng)用在異構(gòu)CPU的嵌入式領(lǐng)域。

C語言的接口最穩(wěn)定,幾乎所有的動態(tài)鏈接庫都提供C接口。

綜上所述,C語言最適合的領(lǐng)域時嵌入式領(lǐng)域和驅(qū)動開發(fā)領(lǐng)域,在這兩個領(lǐng)域中,對于性能的要求時錙銖必較的,因此,相對于運行性能的損失,編程效率上降低一些無所謂。

2.Java語言

java時Sun公司開發(fā)的一種高級編程語言。他是一種靜態(tài)的編譯型編程語言,運行在JVM上,JVM是一個虛擬機,擁有獨立的結(jié)構(gòu),獨立于CPU結(jié)構(gòu),因此能夠做到編譯一次,到處運行的設(shè)計目標。

java語言脫身于C語言,并且對C語言做了拓展,加入了強大的面向?qū)ο蟮睦砟睿^承、范型、接口等概念對于規(guī)范化編程擁有極大的促進作用。因為java嚴格統(tǒng)一了數(shù)據(jù)結(jié)構(gòu)的定義,因此不需要針對某個平臺細究細節(jié),又因為沒有C語言的指針概念,因此java是較為容易學習的。

java的成功不僅僅是由于自身語言的設(shè)計,因為java不只是一種編程語言。java是一種技術(shù),一種標準,他隨身帶著最大最豐富的標準庫。XML解析、數(shù)據(jù)庫鏈接、界面編程、圖像處理、服務(wù)器編程、手機編程,你想要的,java擁有一站式的解決方案。另外最為世界上最流行的編程語言,java的第三方類庫俯拾皆是。

java最成功的地方其實是他的語言風格,因為他的語言風格,大部分的程序員都能寫出較為不錯的代碼。然而即使程序?qū)懙暮軤€,只要他運行在JVM這個無數(shù)計算機科學家們優(yōu)化過的超級平臺上,也會獲得即時優(yōu)化的加成。

java最適合的地方是龐大的工程化項目,項目越發(fā)龐大,便越能夠體會到j(luò)ava標準化,規(guī)范化的好處。利用java面向接口編程,面向反射編寫動態(tài)程序,異常處理等。這些特性能夠讓整個項目邏輯清晰,接口清晰、模塊化、靈活,堅固穩(wěn)定等。不光java本身設(shè)計足夠優(yōu)秀,又有Eclipse等優(yōu)秀IDE的加成,java程序的編寫異常方便。然而java是不適合編寫隨手可用的小項目的,java設(shè)計的足夠繁瑣,足夠辨準,也正是這些極為標準范式化的特性,讓你在編寫程序的時候必須要深思熟慮的設(shè)計一個好用的架構(gòu),需要花費大量的時間精力來設(shè)計和彌補架構(gòu)缺陷。讓人感受不到編程的樂趣。

3.shell

shell是一種腳本語言,根植于unix系統(tǒng)。它利用少量的shell命令,將命令行工具組合起來,真實工作的其實是unix命令工具。對于unix、linux命令的人來說,他是得力的工具,能夠即用最少的代碼,完成大量的重復(fù)工作。非常方便。然而,他的缺點同樣非常明顯,那就是它只能在unix類系統(tǒng)上工作。在windows上就比較尷尬了。

shell腳本長于組合系統(tǒng)工具,因此對于大量重復(fù)性的工作,利用shell腳本能夠大大的提升工作效率。shell腳本的缺陷也是十分明顯的,由于缺失了通用編程語言的數(shù)據(jù)處理能力。程序結(jié)構(gòu)設(shè)計的問題等shell在編寫大型項目的時候,力不從心。

shell最適合的其實就是計算機日常工作中非常繁瑣且重復(fù)性的批量操作。這種任務(wù)隨手寫一個小腳本過去,方便極了。

4.Python

python是一種不擇不扣的高級語言,動態(tài)類型為編程語言帶來了極大的靈活性,簡單的語法非常易學,強大的C語言拓展機制,異常豐富的類庫讓它成為最火熱的腳本語言。

然而,缺點同樣明顯,因為足夠高級,動態(tài)類型的加入,python本身的運行效率堪憂。動態(tài)類型的加入,調(diào)試排錯效率較為困難。異常處理等內(nèi)容相對于java來說較為薄弱。非常不方便。

python支持面向?qū)ο缶幊蹋虼俗鳛榭焖僭驮O(shè)計非常不錯,因為python寬松語法,能夠讓思路真正流淌起來。利用python作出項目雛形,然后利用java和C++等重構(gòu)時一個不錯的選擇。

5.C++

作為一種高級編程語言,C++拓展了C語言,加入了面向?qū)ο缶幊蹋嗉?,范型,模版等。它本身時一種多范式編程語言,你可以利用它面向過程編程,面向?qū)ο缶幊蹋瘮?shù)式編程等。

C++語言在保留最接近C語言的運行效率的基礎(chǔ)上,增加的了面向?qū)ο蟮雀呒壋绦蛟O(shè)計方式。因此在游戲編程等領(lǐng)域使用較為廣泛。在這些領(lǐng)域中C++依靠它出色的運行效率與編程效率稱霸天下。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • TITLE: 編程語言亂燉 碼農(nóng)最大的煩惱——編程語言太多。不是我不學習,這世界變化快! 有時候還是蠻懷念十幾、二...
    碼園老農(nóng)閱讀 5,594評論 2 35
  • 計算機編程語言可用于將指令傳達給計算機。它們基于某些句法和語義規(guī)則,定義了編程語言中每種結(jié)構(gòu)的含義。 現(xiàn)在我得到了...
    幻凌風閱讀 8,569評論 1 26
  • 空性非有無 水中有空性 如若不見心 無從見空性 -------- 談得因果非因果 刨根問底問空性 道非道來佛非佛 ...
    卡布奇諾花蜜閱讀 604評論 1 49
  • 2015-10-14 三天的時間看完《小狗錢錢》,書給我的感覺就是短小精悍,很有當初看《活著》的感受,它啟發(fā)了我理...
    心若無痕閱讀 330評論 0 1
  • 曾經(jīng)看過一本網(wǎng)絡(luò)小說?有種后宮叫德妃?,說的是女主由一名小宮女如何成為康熙皇帝的寵妃。又是一部后宮小白奮斗史,書里...
    杉杉媽媽閱讀 2,481評論 14 13

友情鏈接更多精彩內(nèi)容