偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

軟件開發(fā)的門檻是如何降低的?

開發(fā) 前端
Unix用C語(yǔ)言重寫以后,變成了一個(gè)可移植的操作系統(tǒng),屏蔽了底層硬件的差異,其上的應(yīng)用程序也就可以移植了。但讓人沒有想到的是,各大廠商和高校推出了自己的Unix版本,最后居然發(fā)展出了100多種Unix變體。

上古時(shí)代,程序員絕對(duì)是個(gè)高門檻職業(yè),只能用匯編編程,寫個(gè)程序非常難。

機(jī)器指令集互不兼容,程序不可移植,只能重寫。

IBM決定改變這種狀況,推出了有著相同體系結(jié)構(gòu)和指令集的機(jī)器家族System/360。

計(jì)算機(jī)廠商眾多,硬件和指令集是難以統(tǒng)一的,那就在上面加一個(gè)抽象層吧:操作系統(tǒng)。

70年代,AT&T的Ken Thompson 和Dennis Ritchie發(fā)明了一個(gè)優(yōu)秀的操作系統(tǒng):Unix, Dennis Ritchie還發(fā)明的偉大的C語(yǔ)言。

Unix用C語(yǔ)言重寫以后,變成了一個(gè)可移植的操作系統(tǒng),屏蔽了底層硬件的差異,其上的應(yīng)用程序也就可以移植了。

但讓人沒有想到的是,各大廠商和高校推出了自己的Unix版本,最后居然發(fā)展出了100多種Unix變體。

為了維護(hù)操作系統(tǒng)之間的兼容性,IEEE牽頭定義了系統(tǒng)級(jí)和用戶級(jí)的API,Portable Operating System Interface(簡(jiǎn)稱POSIX)。

POSIX標(biāo)準(zhǔn)形成了標(biāo)準(zhǔn),吸引了后來(lái)者入局。

有了POSIX,在不同操作系統(tǒng)間移植軟件就輕松了很多。

除了統(tǒng)一操作系統(tǒng)統(tǒng)的API,還有些大神決定對(duì)編程語(yǔ)言開刀,在操作系統(tǒng)之上再增加一個(gè)抽象層:虛擬機(jī)。

虛擬機(jī)的出現(xiàn),徹底隱藏了硬件和操作系統(tǒng)的細(xì)節(jié),從此以后,絕大多數(shù)程序員只需要考慮業(yè)務(wù)邏輯就可以了,軟件開發(fā)門檻再次被降低。

2007年,移動(dòng)互聯(lián)網(wǎng)時(shí)代來(lái)臨,新的開發(fā)平臺(tái)出現(xiàn)了。

(注:?jiǎn)滩妓巩?dāng)年從Apple出走,創(chuàng)立NeXT公司,推出了NeXTSTEP操作系統(tǒng),這個(gè)系統(tǒng)的原生語(yǔ)言就是Objective-C,而macOS和iOS都源于NeXTSTEP,所以iPhone選擇Objective-C也算一脈相承)

Java 沒有在iPhone中安家落戶,但是卻進(jìn)入了Android手機(jī)。

Android和iOS成為兩大手機(jī)操作系統(tǒng),互不兼容。

應(yīng)用開發(fā)再次分裂,變得不可移植。

一個(gè)公司要開發(fā)原生App,必定要維持兩套班子:iOS程序員和Android程序員。

iOS和Android差異巨大,很難像POSIX那樣統(tǒng)一接口,也很難再通過(guò)虛擬機(jī)來(lái)屏蔽掉差異(Android本來(lái)就運(yùn)行在虛擬機(jī)之上)。

這該怎么辦?

Facebook推出了一個(gè)方案:用JS寫App,通過(guò)React Native來(lái)“翻譯”成原生的界面。

Reactive Native 是用JSX語(yǔ)法寫界面和邏輯,可以實(shí)現(xiàn)熱更新,但是畢竟它畢竟和原生API直接隔了一層,有一個(gè)“翻譯”的成本,還是比不上原生的效率。

Google則走了另外一條路,推出了Flutter。

但是,這兩套方案都有著這樣那樣的缺點(diǎn),手機(jī)端應(yīng)用的可移植性還任重而道遠(yuǎn)。

在未來(lái),也許會(huì)出現(xiàn)一個(gè)新的技術(shù)或者平臺(tái),徹底解決手機(jī)應(yīng)用可移植性的問題。

即使統(tǒng)一以后,新的平臺(tái)(物聯(lián)網(wǎng)?)很可能還會(huì)造成新的分裂。

縱觀軟件這幾十年的發(fā)展,就會(huì)發(fā)現(xiàn)一個(gè)特點(diǎn):

為了彌合各個(gè)技術(shù)平臺(tái)的差異,實(shí)現(xiàn)軟件開發(fā)大一統(tǒng),抽象的層次越來(lái)越多、越來(lái)越高。

但是每一次統(tǒng)一以后,新的技術(shù)平臺(tái)很快出現(xiàn),再次分裂。

真是應(yīng)了中國(guó)的古話:天下大勢(shì),分久必合,合久必分。

責(zé)任編輯:武曉燕 來(lái)源: 碼農(nóng)翻身
相關(guān)推薦

2015-04-23 10:58:51

醫(yī)學(xué)軟件開發(fā)

2017-10-16 00:24:45

2016-12-14 13:51:56

2019-05-20 09:55:47

物聯(lián)網(wǎng)軟件開發(fā)IOT

2021-08-31 08:00:00

開發(fā)軟件框架

2013-01-21 09:00:40

2009-08-12 18:39:01

軟件開發(fā)的生命周期

2009-02-10 17:11:53

SaaSSaaS開發(fā)PaaS

2015-03-02 09:35:07

軟件開發(fā)

2025-02-06 13:42:30

低代碼模塊化架構(gòu)

2020-12-03 15:54:15

軟件開發(fā)工具

2015-10-28 09:45:52

Azure應(yīng)用開發(fā)微軟

2009-06-26 09:32:09

軟件開發(fā)

2022-01-25 10:57:47

自動(dòng)駕駛智能汽車

2013-05-22 09:26:48

軟件開發(fā)工作效率

2023-02-09 16:48:12

軟件開發(fā)測(cè)試結(jié)對(duì)測(cè)試

2011-08-31 10:04:22

日本軟件開發(fā)

2022-03-14 22:54:57

軟件開發(fā)性能

2021-05-10 11:33:11

數(shù)字化

2022-07-19 16:31:29

軟件開發(fā)Kubernetes容器
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)