原文出處: 51CTO html
選Python仍是JavaScript?雖然很多朋友還在爭論兩者目前誰更強勢、誰又擁有着更爲光明的發展前景,但毫無疑問,兩者的競爭在Web前端領域已經擁有明確的答案。立足於瀏覽器平臺,若是放棄JavaScript,咱們也就沒什麼可選擇的項目了。
前端
好吧,也許答案也不是這麼絕對。JavaScript已經成爲衆多其它編程語言爭相選擇的轉換目標(相關實例包括TypeScript、Emscripten、Cor以及Cheerp)。而Python則擁有龐大的追隨者羣體,另外強大的現有庫資源則使其成爲面向JavaScript的理想待轉換或者說轉譯選項。編程
下面來看四個可以順利將Python帶入JavaScript世界的現有項目; 而其中一款更是憑藉着靈活的雙向轉換能力而鶴立雞羣。瀏覽器
Transcrypt網絡
這是一款新近崛起的Python到JS轉譯器。Transcrypt對於自身所生成代碼的質量水平作出了使人印象深入的承諾。首先,它會盡量多地保留原始的Python代碼結構,包括多重繼承以及lambda表達式。Python源代碼也能夠直接對JavaScript中命名空間內的對象進行調用。若是你們嘗試訪問Python中的document.getElementById,則轉換後的代碼也將在JavaScript當中切實使用document.getElementById。架構
根聽說明文檔的介紹,Transcrypt是利用CPython的抽象語法樹模塊完成這些轉譯任務的,其可以根據Python對自身代碼的解析方式進行編程訪問。儘管該項目目前仍處於alpha測試階段,但已經顯示出了很是驚人的吸引力。編程語言
Jiphy函數
所謂Jiphy,表明的是「JavaScript入,Python出」——也就是可以對兩者進行雙向轉換。另外,來自兩種語言的代碼都可以在被轉換爲另外一種語言以前進行混合。測試
Jiphy目前的最大短板在於其僅支持Python的一部分功能集。類以及默認參數尚不受支持,不過裝飾器與例外機制已經能夠正常使用。這主要是由於Jiphy堅持在源代碼與目標代碼之間採用行對行直接轉譯方式,不過其開發人員也開始着眼於ES6中的新功能,旨在將更多高級Python功能歸入支持範疇。網站
Brython
也許有一天,當WebAssembly設想成爲現實,那麼咱們將可以選擇任何本身偏好的語言進行Web開發。而Brython對此——或者說至少適用於Python 3——有着本身的理解:爲何要等?
Brython經過一套JavaScript庫對Python 3中的所有關鍵字以及大多數內置插件進行模擬,從而實現了將Python 3版本做爲客戶端Web編程方案的目標。由Python編寫的腳本能夠被直接添加到網絡頁面當中,而Brython還支持一套高級Python模塊界面(browser),用於同DOM進行執行協做,且該瀏覽器一般可在JavaScript中直接完成。
然而,Brython也保持了瀏覽器給JavaScript代碼帶來的限制——例如不支持對本地文件系統進行處理。
RapydScript
RapydScript承諾「讓Python式JavaScript代碼再也不糟糕。」該項目在概念上相似於CoffeeScript:以Python形式進行代碼編寫,生成JavaScript代碼,並同時發揮兩者的最佳特性。在Python方面,其擁有清晰的語法規則; 而在JavaScript方面,其擁有匿名函數、DOM操做並可以使用jQuery或者Node.js內核等現有JavaScript庫。
http://cxy.liuzhihengseo.com/473.html
問啊-定製化IT教育平臺,牛人一對一服務,有問必答,開發編程社交頭條 官方網站:www.wenaaa.com 下載問啊APP,參與官方懸賞,賺百元現金。QQ羣290551701 彙集不少互聯網精英,技術總監,架構師,項目經理!開源技術研究,歡迎業內人士,大牛及新手有志於從事IT行業人員進入!