Sublime text 是用什么語(yǔ)言開發(fā)的?

2020-09-16 15:52 更新

Sublime text,幾乎所有(估計(jì)有99%)的代碼,都是C++寫的;

  • 極少數(shù)的部分,用到了Object-C;
  • 關(guān)于插件部分,用到了Python;

Object-C 通常寫作 Objective-C 或者 Obj-C 或 OC,是根據(jù)C語(yǔ)言所衍生出來(lái)的語(yǔ)言,繼承了C語(yǔ)言的特性,是擴(kuò)充 C 語(yǔ)言的面向?qū)ο缶幊陶Z(yǔ)言。 Object-C 是一種面向?qū)ο蟮恼Z(yǔ)言。而 C 語(yǔ)言是面向過(guò)程的語(yǔ)言。 Object-C 是 MAC OSX 和 iOS 開發(fā)的基礎(chǔ)語(yǔ)言。

優(yōu)點(diǎn)及缺點(diǎn)

  • Object-C 是非常“實(shí)際”的語(yǔ)言。它使用一個(gè)用C寫成,很小的運(yùn)行庫(kù),OC寫成的程序通常不會(huì)比其原始碼大很多。
  • Objective-C 的最初版本并不支持垃圾回收。
  • Objective-C 不包括命名空間機(jī)制(namespace mechanism)。
  • 雖然 Objective-C 是C的母集,但它也不視C的基本型別為第一級(jí)的對(duì)象。
  • 和C++不同,Objective-C 不支持運(yùn)算子重載(它不支持 ad-hoc 多型)。
  • Object-C 僅支持單一父類繼承,不支持多重繼承。


Python(英語(yǔ)發(fā)音:/?pa?θ?n/美國(guó)發(fā)音:/?pa?θɑ?n/)是一種面向?qū)ο蟮慕忉屝陀?jì)算機(jī)程序設(shè)計(jì)語(yǔ)言。也是一種功能強(qiáng)大而完善的通用型語(yǔ)言,已經(jīng)具有十多年的發(fā)展歷史,成熟且穩(wěn)定。Python是純粹的自由軟件, 源代碼和解釋器CPython遵循 GPL(GNU General Public License)協(xié)議 。Python語(yǔ)法簡(jiǎn)潔清晰,特色之一是強(qiáng)制用空白符(white space)作為語(yǔ)句縮進(jìn)。Python具有豐富和強(qiáng)大的庫(kù)。它常被昵稱為膠水語(yǔ)言,能夠把用其他語(yǔ)言制作的各種模塊(尤其是C/C++)很輕松地聯(lián)結(jié)在一起。常見的一種應(yīng)用情形是,使用Python快速生成程序的原型(有時(shí)甚至是程序的最終界面),然后對(duì)其中有特別要求的部分,用更合適的語(yǔ)言改寫,比如3D游戲中的圖形渲染模塊,性能要求特別高,就可以用C/C++重寫,而后封裝為Python可以調(diào)用的擴(kuò)展類庫(kù)。需要注意的是在您使用擴(kuò)展類庫(kù)時(shí)可能需要考慮平臺(tái)問(wèn)題,某些可能不提供跨平臺(tái)的實(shí)現(xiàn)。

Python優(yōu)點(diǎn)

    1.簡(jiǎn)單:Python是一種代表簡(jiǎn)單主義思想的語(yǔ)言。閱讀一個(gè)良好的Python程序就感覺像是在讀英語(yǔ)一樣。它使你能夠?qū)W⒂诮鉀Q問(wèn)題而不是去搞明白語(yǔ)言本身。

    2.易學(xué):Python極其容易上手,因?yàn)镻ython有極其簡(jiǎn)單的說(shuō)明文檔[5]  。

    3.速度快:Python 的底層是用 C 語(yǔ)言寫的,很多標(biāo)準(zhǔn)庫(kù)和第三方庫(kù)也都是用 C 寫的,運(yùn)行速度非??臁?/p>

    4.免費(fèi)、開源:Python是FLOSS(自由/開放源碼軟件)之一。使用者可以自由地發(fā)布這個(gè)軟件的拷貝、閱讀它的源代碼、對(duì)它做改動(dòng)、把它的一部分用于新的自由軟件中。FLOSS是基于一個(gè)團(tuán)體分享知識(shí)的概念。

    5.高層語(yǔ)言:用Python語(yǔ)言編寫程序的時(shí)候無(wú)需考慮諸如如何管理你的程序使用的內(nèi)存一類的底層細(xì)節(jié)。

    6.可移植性:由于它的開源本質(zhì),Python已經(jīng)被移植在許多平臺(tái)上(經(jīng)過(guò)改動(dòng)使它能夠工作在不同平臺(tái)上)。這些平臺(tái)包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE、PocketPC、Symbian以及Google基于linux開發(fā)的android平臺(tái)。

    7.解釋性:一個(gè)用編譯性語(yǔ)言比如C或C++寫的程序可以從源文件(即C或C++語(yǔ)言)轉(zhuǎn)換到一個(gè)你的計(jì)算機(jī)使用的語(yǔ)言(二進(jìn)制代碼,即0和1)。這個(gè)過(guò)程通過(guò)編譯器和不同的標(biāo)記、選項(xiàng)完成。運(yùn)行程序的時(shí)候,連接/轉(zhuǎn)載器軟件把你的程序從硬盤復(fù)制到內(nèi)存中并且運(yùn)行。而Python語(yǔ)言寫的程序不需要編譯成二進(jìn)制代碼。你可以直接從源代碼運(yùn)行 程序。在計(jì)算機(jī)內(nèi)部,Python解釋器把源代碼轉(zhuǎn)換成稱為字節(jié)碼的中間形式,然后再把它翻譯成計(jì)算機(jī)使用的機(jī)器語(yǔ)言并運(yùn)行。這使得使用Python更加簡(jiǎn)單。也使得Python程序更加易于移植。

    8.面向?qū)ο螅篜ython既支持面向過(guò)程的編程也支持面向?qū)ο蟮木幊獭T凇懊嫦蜻^(guò)程”的語(yǔ)言中,程序是由過(guò)程或僅僅是可重用代碼的函數(shù)構(gòu)建起來(lái)的。在“面向?qū)ο蟆钡恼Z(yǔ)言中,程序是由數(shù)據(jù)和功能組合而成的對(duì)象構(gòu)建起來(lái)的。

    9.可擴(kuò)展性:如果需要一段關(guān)鍵代碼運(yùn)行得更快或者希望某些算法不公開,可以部分程序用C或C++編寫,然后在Python程序中使用它們。

    10.可嵌入性:可以把Python嵌入C/C++程序,從而向程序用戶提供腳本功能。

    11.豐富的庫(kù):Python標(biāo)準(zhǔn)庫(kù)確實(shí)很龐大。它可以幫助處理各種工作,包括正則表達(dá)式、文檔生成、單元測(cè)試、線程、數(shù)據(jù)庫(kù)、網(wǎng)頁(yè)瀏覽器、CGI、FTP、電子郵件、XML、XML-RPC、HTML、WAV文件、密碼系統(tǒng)、GUI(圖形用戶界面)、Tk和其他與系統(tǒng)有關(guān)的操作。這被稱作Python的“功能齊全”理念。除了標(biāo)準(zhǔn)庫(kù)以外,還有許多其他高質(zhì)量的庫(kù),如wxPython、Twisted和Python圖像庫(kù)等等。

    12.規(guī)范的代碼:Python采用強(qiáng)制縮進(jìn)的方式使得代碼具有較好可讀性。而Python語(yǔ)言寫的程序不需要編譯成二進(jìn)制代碼。

Python缺點(diǎn)

    1.單行語(yǔ)句和命令行輸出問(wèn)題:很多時(shí)候不能將程序連寫成一行,如import sys;for i in sys.path:print i。而perl和awk就無(wú)此限制,可以較為方便的在shell下完成簡(jiǎn)單程序,不需要如Python一樣,必須將程序?qū)懭胍粋€(gè).py文件。

    2.獨(dú)特的語(yǔ)法:這也許不應(yīng)該被稱為局限,但是它用縮進(jìn)來(lái)區(qū)分語(yǔ)句關(guān)系的方式還是給很多初學(xué)者帶來(lái)了困惑。即便是很有經(jīng)驗(yàn)的Python程序員,也可能陷入陷阱當(dāng)中。最常見的情況是tab和空格的混用會(huì)導(dǎo)致錯(cuò)誤,而這是用肉眼無(wú)法分別的。

    3.運(yùn)行速度慢:這里是指與C和C++相比。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)