国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
使用node
在所有用戶windows機器上都能直接跑的程序,如果不采用微軟系的語言,如VB,C++,C#等,而采用Java,Python,Ruby之類的語言開發(fā),最終的結(jié)果在體積上一定遠大于微軟系語言開發(fā)的程序,因為這些語言不具備直接生成exe執(zhí)行文件的能力,都需要額外的中間層來提供環(huán)境,而這個中間層的體積往往不小。
最直觀的道理就是,java程序只能在裝有java虛擬機的機器上跑,如果你想突破這個限制,讓它跑在任何一臺機器上,那你必須把虛擬機打包在你的程序里一并提供給用戶,最終還是改變不了要跑在虛擬機里的命運,唯一的好處是不用客戶手動安裝虛擬機了,其他語言同理。
這就是原生程序與加殼程序的區(qū)別,原生程序的優(yōu)點在針對特定平臺編譯,體積小,速度快,而加殼程序因為必須把殼引入到用戶機器中,體積臃腫,加殼程序的優(yōu)點在可以用程序員自己舒服的語言開發(fā),而且甚至可以跨平臺開發(fā)——發(fā)布的時候針對不同的平臺加不同的殼就OK了,java的招牌式口號“一次編寫,處處運行”前提正是其程序都是殼中程序,不同的殼(即java虛擬機)向上暴露的接口都是一樣的,這樣殼中程序可以在安穩(wěn)的環(huán)境中編寫。
在微軟系的語言中.NET是個有意思的角色,嚴格講它編寫出的程序也是殼中程序,但這個殼是微軟的“官方殼”,不管你用到的第一個使用.net殼的windows程序是什么,微軟會引導(dǎo)你下載安裝這個殼,之后一勞永逸,你再使用其他的殼中程序就不用再下載了。在這個角度上看,.net官方殼幾乎與windows操作系統(tǒng)融為一體了,共同構(gòu)成了應(yīng)用程序的下層基礎(chǔ),把應(yīng)用程序看做直接基于平臺的原生程序也無妨了。
至于java開發(fā)的桌面程序,由于始終是小眾奇葩的存在,而且不是微軟官方支持的,如果你只發(fā)布官方程序,對非程序員的用戶來說,下載安裝jdk和配置環(huán)境變量實在是過于復(fù)雜,所以為了方便用戶安裝,你只得把虛擬機一并打包進發(fā)布的程序中,這造成程序的體積大大加大了,增加服務(wù)器磁盤占用、下載流量、下載時間、用戶磁盤占用——總之是缺點多多。其他語言如python、ruby等桌面程序的開發(fā)同理。
在手機開發(fā)中,用html5開發(fā)的手機應(yīng)用可以一次開發(fā)、兩次打包,分別成為安卓和蘋果的APP,與之前提到的所有問題最大的不同在于,html5的界面程序可以不存放于用戶本地,而存放于遠端的服務(wù)器上,這帶來的好處是減少文件大小和方便版本升級,而且web前端的人才實力和數(shù)量決定了用web技術(shù)做程序界面是個好主意。唯一的問題是,由于殼的存在,這種中轉(zhuǎn)的方式必然導(dǎo)致程序性能不如原生程序,這個問題是一切殼中程序共有的,甚至.net也無法避免。只是,相對于殼帶來的當然損失,程序員實力問題導(dǎo)致的性能差異是更主要的原因,在不是“只要用殼就一定不行”的情況下,程序員的架構(gòu)能力和編碼能力才是程序性能好壞的最大決定因素,總結(jié)說就是殼中程序的性能輸在了起跑線上,但還有機會治療。
這兩天學(xué)習(xí)的node-webkit技術(shù),是使用javascript語言編寫桌面程序的技術(shù),容易想到想達成這個目的,必須解決兩個問題,一是javascript在操作系統(tǒng)中的運行環(huán)境,二是javascript在操作系統(tǒng)中顯示圖形界面的解決方案。第一個問題的解決者是Node.js,而第二個問題的解決者是webkit,因此這項技術(shù)理所當然地命名為了node-webkit。
正如用html5做安卓蘋果應(yīng)用、用nodejs做服務(wù)器端開發(fā)一樣,這項技術(shù)的出現(xiàn)帶來的好處,一是讓前端程序員有了做windows界面程序的可能性,二是讓前端美工有了做windows界面的可能性。我個人感覺最有趣的一點,由于這個技術(shù)棧中沒有任何技術(shù)需要編譯,html和css是聲明式語言,而javascript是解釋型語言,這意味著可以隨時在文件夾中點開源碼,改變我的exe程序的內(nèi)容。
可以把node-webkit提供的文件們看做一個exe程序模板,模板中鏤空的部分即“程序界面和邏輯”需要程序員根據(jù)業(yè)務(wù)來填空,控制流還是在node-webkit手里,它在某些時候看看你的“填空”,說“哦原來你要這樣啊可以”,然后執(zhí)行下去。這是典型的“框架”的工作,它從你手里搶來了控制權(quán),控制反轉(zhuǎn),你淪為編寫局部代碼的凡人。一切殼的職責都是如此,它給了你靈活自由的DIY發(fā)揮空間,但你只能在這個空間內(nèi)施展才華。
你施展才華的方式,就是編寫html文件和javascript代碼。由于nodejs的存在,你除了編寫瀏覽器腳本還能編寫與操作系統(tǒng)和網(wǎng)絡(luò)相關(guān)的腳本,以及你需要的一切。Node.js在服務(wù)端已經(jīng)無所不能,你的桌面程序也無所不能,服務(wù)端能引用的庫,你當然都可以使用。而你在B/S中能實現(xiàn)的前端樣式和布局,由于webkit的存在,也都能在你的桌面程序中大展身手。
====關(guān)于原生程序與殼中程序的議論end====
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
15個熱門的編程趨勢及15個逐步走向衰落的編程方向
MBaaS深度評測:構(gòu)建移動應(yīng)用程序的五朵云
9種最流行的編程語言
當機器人取代程序員寫代碼,會發(fā)生什么呢?
Node-webkit——以web的方式寫桌面程序
【JavaScript 教程】入門篇-導(dǎo)論
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服