国产精品chinese,色综合天天综合精品网国产在线,成午夜免费视频在线观看,清纯女学生被强行糟蹋小说

    <td id="ojr13"><tr id="ojr13"><label id="ojr13"></label></tr></td>
        • <source id="ojr13"></source>
            <td id="ojr13"><ins id="ojr13"><label id="ojr13"></label></ins></td>

            Article / 文章中心

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

            發(fā)布時間:2022-03-09 點(diǎn)擊數(shù):649
            Unix用C語言重寫以后,變成了一個可移植的操作系統(tǒng),屏蔽了底層硬件的差異,其上的應(yīng)用程序也就可以移植了。但讓人沒有想到的是,各大廠商和高校推出了自己的Unix版本,最后居然發(fā)展出了100多種Unix變體。

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

            編輯搜圖

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

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

            編輯搜圖

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

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

            編輯搜圖

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

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

            編輯搜圖

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

            編輯搜圖

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

            編輯搜圖

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

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

            編輯搜圖

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

            編輯搜圖

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

            編輯搜圖

            (注:喬布斯當(dāng)年從Apple出走,創(chuàng)立NeXT公司,推出了NeXTSTEP操作系統(tǒng),這個系統(tǒng)的原生語言就是Objective-C,而macOS和iOS都源于NeXTSTEP,所以iPhone選擇Objective-C也算一脈相承)

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

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

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

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

            編輯搜圖

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

            這該怎么辦?

            Facebook推出了一個方案:用JS寫App,通過React Native來“翻譯”成原生的界面。

            編輯搜圖

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

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

            編輯搜圖

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

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

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

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

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

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

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