自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

17款JavaScript工具讓陳舊代碼換面

譯文
開發(fā) 前端 開發(fā)工具
從Lisp到Pascal,陳舊的代碼如今已經(jīng)再度煥發(fā)生機,而這一切要歸功于下面將要介紹的各類JavaScript交叉編譯器、翻譯器以及模擬器。

從Lisp到Pascal,陳舊的代碼如今已經(jīng)再度煥發(fā)生機,而這一切要歸功于下面將要介紹的各類JavaScript交叉編譯器、翻譯器以及模擬器。

[[133507]]

計算機語言在保質(zhì)期方面有著與眾不同的獨特規(guī)律。其中最為熱門的各類編程語言所表現(xiàn)出的增長趨勢與瞬息萬變的時尚界可謂殊途同歸。不過當熱潮褪去、輝煌不再之后,奇怪的狀況也將就此出現(xiàn)。不同于那些最終被大多數(shù)人徹底遺忘的流行歌曲或者燈籠褲設(shè)計,這些編程語言仍將繼續(xù)存在、時常出現(xiàn)、糾纏不休、擺脫不掉。這種永生不朽的背后到底是什么樣的動力所造就?答案很簡單,保留舊有代碼在成本上往往比利用那些最時髦、***時代前沿特性的語言進行重寫要低得多。

曾幾何時,使用一套陳舊的代碼庫完全是種孤獨的經(jīng)歷,甚至有點像在荒島上獨自生活。工作的主要內(nèi)容在于保證一切都能夠在虛擬磁帶庫與成綁的線纜之上正常運轉(zhuǎn)。老式工具與老式編譯器之所以始終受到選擇甚至推崇,完全是因為只有它們才能讓舊有代碼繼續(xù)起效。老式代碼庫會被當作傳家寶,特別是在其中包含有源代碼的情況下。

但最近幾年來,隨著新型交叉編譯器以及解釋器的陸續(xù)出現(xiàn),這一切發(fā)生了轉(zhuǎn)變。似乎在一夜之間,陳舊的代碼已經(jīng)能夠融入現(xiàn)代編程環(huán)境,雖然還稱不上***和諧、但卻已經(jīng)足以實現(xiàn)整合,使相關(guān)技術(shù)人員不再感到自己的工作內(nèi)容徹底脫離時代。正確的工具能夠如龐德的名言所說,“讓它再度煥發(fā)生機”。

歸功于無所畏懼的嘗試精神與堅定決心,老式代碼如今已經(jīng)通過一系列JavaScript工具找到了新的生存之道。時至今日,塵封的代碼庫已經(jīng)能夠切實起效并運行在現(xiàn)代設(shè)備之上。突然之間,原本只能運行在大型機上的代碼已然可以立足于任何用戶手機設(shè)備上的網(wǎng)絡(luò)頁面后臺當中。

這些工具還遠稱不上***,但它們的出色表現(xiàn)足以掩蓋掉這些固有缺陷。重新編寫原有代碼會帶來巨大挑戰(zhàn),因為這通常意味著相關(guān)人員需要透徹理解傳統(tǒng)代碼的編寫思路——這幾乎不可能實現(xiàn),主要因為當年的開發(fā)人員需要針對磁盤空間極為昂貴的狀況、這意味著僅僅是幾行注釋也會帶來切實存在的成本壓力。盡管投入大量精力能夠產(chǎn)生可觀的效益并消除一部分技術(shù)難題,但我們往往并沒有多余的資源來如此奢侈地處理問題。相反,使用交叉編譯器、翻譯器以及模擬器能夠更輕松也更快捷地打理這些陳舊代碼庫,并將其帶入現(xiàn)代化領(lǐng)域——相比之下,利用龐大的技術(shù)團隊深入研究這些即將消亡的編程語言、從其中挑出可用的陳舊代碼并對一切進行重寫顯然很不劃算。

在今天的文章中,我們將了解那些晦澀的元祖級編程語言如何在新興JavaScript工具的幫助下重新煥發(fā)生機。以此為代表的轉(zhuǎn)換工具很可能是惟一一種能夠讓這些晦澀難懂的編程語言繼續(xù)生存的手段。大家不妨將其視為陳舊代碼內(nèi)容的生命維持系統(tǒng)。

#p#
Pascal

各位還記得二十年前TurboPascal統(tǒng)治桌面編程世界的那段時光嗎?很明顯Elevate Software公司的技術(shù)人員們還記得,也正因為如此、他們打造出一款專門負責將ObjectPascal轉(zhuǎn)化為JavaScript的工具。他們甚至作出承認,表示用戶不需要學(xué)習Pascal即可開發(fā)出能夠運行在Web環(huán)境下的代碼。大家能夠直接向其輸入Pascal代碼,而該工具會將處理后的代碼返回給用戶——這些代碼在內(nèi)容及運行效果方面都與現(xiàn)代瀏覽器代碼別無二致。

Cobol

這種編程語言主要活躍在大型機舞臺之上,而且截至發(fā)稿時Dice.com網(wǎng)站上仍有553個與之相關(guān)的JavaScript招聘崗位。CobolScript是一套Node.js軟件包,其能夠?qū)藴蔆obol代碼中的大部分內(nèi)容轉(zhuǎn)化為面向Node.js服務(wù)器編寫的JavaScript代碼形式。

開發(fā)人員將其稱為尚處于發(fā)展過程中的項目,并列出了其中尚不具備的多種功能,不過目前已經(jīng)存在大量切實可先找實例、足以證明其給出的既定承諾。舉例來說,其能夠讓早已無人問津的Cobol代碼從MySQL當中獲取數(shù)據(jù),并結(jié)合HTML共同構(gòu)建起現(xiàn)代Web應(yīng)用程序。

Lisp

對于大部分曾經(jīng)閱讀過Hal Ableson以及Gerry Sussman合著的《計算機程序結(jié)構(gòu)與解讀》一書并據(jù)此學(xué)習編程的朋友來說,計算小括號數(shù)量并確保其平衡已經(jīng)成為大家打發(fā)無聊的午后時光的***方式。Lisp及其衍生版本在那些早期學(xué)習這門語言的技術(shù)人員心中一直占據(jù)著重要地位,其中的許多結(jié)構(gòu)設(shè)計思路時至今日仍然扮演著大量現(xiàn)代編程語言的基礎(chǔ)角色,也包括JavaScript在內(nèi)。語法雖然可能最終消失,但靈活的架構(gòu)將永遠存在。

大家可以通過十數(shù)種方式通過JavaScript讓自己的Lisp代碼再度煥發(fā)活力,而且它們在由傳統(tǒng)轉(zhuǎn)向現(xiàn)代的實驗過程中選擇了不同的實施手段。舉例來說,EdgeLisp能夠提供大量Lisp標準架構(gòu),而且其開發(fā)團隊還承諾稱,EdgeLisp將“讓Common Lisp程序員們獲得賓至如歸的感受”。Parenscript則提供“Lisp宏的全部功能”,而且其大多數(shù)來自Common Lisp當中。如果大家更喜愛Lisp-1,那么Ralph則是另一套可行性方案。

Scheme的擁護者們則能夠找到與之相關(guān)的一系列解決方案,包BiwaScript、Moby Scheme以及nconc等等。

另外還存在著大量實驗性語法,旨在保證Lisp當中所有極富樂趣的思維方式都能夠通過略有差異的格式被繼承下來。LispyScript將宏的強大能力與小括號結(jié)合了起來。作為另一選項,Oppo在自述當中作出了如下說明:“如果JavaScript相當于披著C外衣的Lisp,那么Oppo就是披著Lisp外衣的Lisp,同時里面穿著C襯衣。”

Smalltalk

盡管大家都已經(jīng)很清楚,蘋果與微軟兩家公司都在操作系統(tǒng)的設(shè)計當中深度借用了來自施樂PARC的理念,但人們常常忘記的是、施樂PARC的研究人員們同時也給編程語言帶來了影響深遠的革命。當時大部分程序員都熱衷于擺脫GOTO語句以及子程序,而Smalltalk則是當時首先將面向?qū)ο筮x項納入設(shè)計的編程語言之一。

舉例來說,Clamato能夠?qū)⒑唵我仔械腟malltalk架構(gòu)轉(zhuǎn)化為與JavaScript相似的組成部分(且最終為其所用)。雖然還算不上一應(yīng)俱全,但Clamato項目的開發(fā)人員們已經(jīng)將其與jQuery相對接,并利用其它DOM操作工具對其進行彌補,因此大家完全可以以此為基礎(chǔ)構(gòu)建Web應(yīng)用程序。

Little Smallscript則能夠提供一套子集,從而將Smalltalk代碼編譯為JavaScript并將其運行在Node.js之上。而那些已經(jīng)選擇了更具現(xiàn)代特性的Squeak的朋友則能夠使用其JavaScript版本——名為SqueakJS。

Logo

在Scratch以及Alice等完整的IDE方案出現(xiàn)之前,我們往往會使用Logo來教導(dǎo)小朋友們?nèi)绾尉帉懘a。時至今日,Logo語言仍然存在——如果大家愿意,完全可以將Logo Interpreter引入自己的瀏覽器,并充分在享受當初那個需要利用波特率及鍵盤敲擊次數(shù)計算帶寬使用量的時代下、利用精簡語法建立圖形的全部樂趣。Logo擁有一套簡單而精致的操作機制,這一點在任何依靠拖拽與按鈕進行操作的現(xiàn)代方案中都無法找到。

Basic

上世紀七十年代是游戲機的黃金時代、搖滾樂的黃金時代、同時也是編程語言的黃金時代。大家不光能夠?qū)⒆约旱腃ommodore 64游戲在Web之上進行模擬,同時也能夠繼續(xù)運行來自那個光榮年代的Basic代碼。好吧,這種說法也許并不夠準確,畢竟多年以來Basic已經(jīng)帶來眾多衍生版本。不過大家如今仍然可以編寫出一些新的、且具備Basic賴以成名的出色精簡性的代碼成果。

如果大家喜歡使用QBasic,這款結(jié)構(gòu)化語言主要依靠微軟的推崇而知名,那么完全可以先從qb.js入手,這是一款JavaScript實現(xiàn)方案、能夠直接運行在各位的瀏覽器當中。一旦開始運行,qb.js會在瀏覽器內(nèi)部將Canvas對象轉(zhuǎn)化為一個塞滿了陳舊、過時字體內(nèi)容的長方圖形。在隨后的發(fā)展過程中,這種線條窗口逐漸演化成了窗口。雖然并不是所有組件都能順暢起效,但其代碼完全開放,因此大家可以遵循 GPL 3.0許可協(xié)議對其進行修改及擴展。

NSBasic則是一套更具商業(yè)性的選項,能夠面向JavaScript環(huán)境生成足以運行在桌面系統(tǒng)及移動設(shè)備之上的代碼。NSBasic的目標受眾主要是那些不希望涉足高復(fù)雜性Eclipse或者XCode、但又需要在智能手機上平臺上搞出點小成果的開發(fā)人員。大家可以將自己塵封已久的Basic編寫經(jīng)驗轉(zhuǎn)化為進軍App Store的***塊跳板。

另一款商業(yè)性選項則是SpiderBasic,其現(xiàn)代版本據(jù)說衍生自PureBasic的傳統(tǒng)版本。它能夠訪問構(gòu)建現(xiàn)代、多窗口Web應(yīng)用程序所必需的全部HTML 5以及WebGL鉤子。

原文標題:17 JavaScript tools breathing new life into old code

責任編輯:王雪燕 來源: 51CTO
相關(guān)推薦

2016-11-07 12:11:26

大數(shù)據(jù)工具大數(shù)據(jù)技術(shù)

2019-06-11 09:35:34

可視化工具圖形

2015-04-09 10:12:58

代碼審查工具減少編程錯誤

2017-03-09 18:00:30

JavaScript代碼

2019-04-22 08:31:00

Docker容器工具

2019-05-07 08:50:11

開源工具Kubernetes容器

2016-02-18 09:51:01

工具PythonJavaScript

2020-07-30 13:17:26

瀏覽器測試工具網(wǎng)站兼容性

2025-04-29 10:04:41

JavaScripMap代碼

2024-10-09 14:45:41

2023-07-05 16:02:04

開發(fā)后端工具

2021-01-08 09:00:00

開發(fā)工具技術(shù)

2016-03-29 14:54:36

2023-10-10 16:20:38

JavaScript代碼技巧

2011-03-01 16:08:46

2022-09-15 17:08:20

JavaScripWeb開發(fā)

2014-03-14 10:56:59

語法高亮代碼高亮

2022-12-09 15:02:44

2019-03-12 09:51:13

開發(fā)工具 操作

2025-03-03 12:00:00

JavaScriptfor 循環(huán)語言
點贊
收藏

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