5種用於前端開發的JavaScript替代方案

2021-01-14 IT168

  【IT168 評論】JavaScript雖然是很受歡迎的語言,但是並不適合所有人,那麼有哪些替代方案呢?本文將分析5種JavaScript替代方案。

  1995年,Netscape(網景通信公司)聘請Brendan Eich為當時最受歡迎的網絡瀏覽器Netscape Navigator添加一種新語言。Netscape希望增強網絡的可編程性。

  LiveScript在1995年末發布了測試版的瀏覽器,並在最終發布前改名為JavaScript,以利用Netscape與Sun Microsystems的合作關係,後者是流行的Java語言背後的公司(儘管JavaScript本質上與Java沒有任何關係)。

  Mozilla的創始人之一是Eich,他在10天內開發出了JavaScript的原始版本。在接下來的25年裡,JavaScript從一種不受歡迎且受到嚴重限制的語言發展成為現代web應用程式構建的強大基礎。如今,JavaScript主導了瀏覽器,並通過Node.js佔領了大部分伺服器。

  然而,JavaScript並不是所有開發人員都喜歡的語言。Eich在早期做出了一些古怪的決定,這些決定一直持續到2019年,其中包括典型的繼承、「this」以及JavaScript的侵略性和不一致的類型強制。

  近年來,開發人員已經創建了JavaScript的替代品。JavaScript仍然是在瀏覽器中運行的唯一語言,因此這些新語言主要是編譯或轉換為JavaScript。CoffeeScript是第一個類似的腳本,但很快就被眾多競爭對手所超越,每個競爭對手都對JavaScript進行了改進。

  Dart

  Dart是一種面向對象的c語言,由Google創建,作為JavaScript的替代品。它拋棄了JavaScript的原型繼承系統,而採用了更傳統的面向對象的方法,任何使用過Java或c++的人都熟悉這種方法。與JavaScript不同,Dart是一種靜態類型的語言,消除了JavaScript代碼中的常見錯誤源。Dart支持類型推斷,因此沒有必要在每次聲明變量或函數時都包含類型樣板。

  也許Dart最令人激動的功能是它在網絡之外的可用性。Dart代碼可以轉換為JavaScript以便在瀏覽器中運行,但它也可用於獨立應用程式和伺服器端開發。Google的Flutter UI工具包是一個可移植的前端框架,可用於桌面、行動裝置和Web,構建本機應用程式。

  TypeScript

  TypeScript是微軟向更好的JavaScript進軍的第一步。與Dart不同,TypeScript不是一種全新的語言,而是JavaScript的超集。TypeScript編譯器可以編譯有效的JavaScript,但是TypeScript增加了幾個新特性,改進和現代化了JavaScript的限制,其中最重要的是一個可選的類型系統。

  許多JavaScript問題都是由於缺少靜態類型導致的,這導致了編譯器在運行前進行檢查時就被限制了。顧名思義,TypeScript實現了一種類型表示法,開發人員可以使用這種表示法為web應用程式編程保證安全。與Dart一樣,TypeScript支持類型推斷。

  值得一提的是,TypeScript比它的競爭對手谷歌更受歡迎。比如,雖然Angular是谷歌的項目,但它的框架是用TypeScript開發的。TypeScript也可以與React和Vue一起使用。

  Elm

  Dart和TypeScript與JavaScript和C. Elm有明顯的親緣關係。它是一種靜態類型的函數語言,與Haskell相比更類似於C,但沒有Haskell那種令人撓頭的複雜性。

  Elm本質上是一種用於構建web前端的特定於領域的語言。

  Elm不像JavaScript那樣是一種通用語言,相反,創建者Evan Czaplicki專注於構建最好的前端web應用程式開發體驗。Elm的主要優點是,通過靜態類型和不可變值消除了前端代碼中的許多潛在bug。Elm宣稱自己是一種「在實踐中沒有運行異常」的語言,這意味著如果一個Elm程序運行,它就不太可能在生產中遇到阻止性能的bug。

  以下是Elm代碼示例

  Elm代碼看起來和JavaScript一點也不像,但是它有簡單直觀的語法,Elm對學習過JavaScript的人來說應該不難。

  ClojureScript

  ClojureScript是Clojure程式語言的一個版本,可以編譯為JavaScript。Clojure是運行在Java虛擬機上的Lisp。與Elm一樣,Clojure也是一種函數性語言,具有不可變的數據類型。與Elm不同,它是一種通用程式語言,可以在後端與JVM一起使用,也可以通過JavaScript在前端使用。

  與所有Lisp一樣,Clojure是用括號分隔的s表達式編寫的。用Clojure的創建者Rich Hickey的話來說,ClojureScript試圖用Clojure(簡潔且功能強大的程式語言)取代JavaScript,從而解決客戶機/嵌入式應用程式開發中的薄弱環節。Clojure可以與React和其他流行的JavaScript框架一起使用。

  當Netscape僱用Brendan Eich時,他們計劃將Scheme集成到Navigator中,而不是創建一種新的語言。Scheme是一種Lisp,因此,如果歷史的發展稍微有些不同,Lisp可能已經成為世界上最流行的程式語言家族。JavaScript通過一流的函數、閉包和lambdas保留了一些「Lispiness」。在JavaScript開發過程中扮演關鍵角色並發明了JSON的道格拉斯•克羅克福德(Douglas Crockford)將JavaScript稱為「披著C外衣的Lisp」。

  Phoenix LiveView

  之前講過的語言可以編譯成JavaScript,它們讓開發人員無需編寫JavaScript就可以構建客戶端應用程式。

  Phoenix LiveView與眾不同。Phoenix是一個用相對較新的Elixir程式語言編寫的web框架。Phoenix是一個伺服器端框架。但我們為什麼要在一篇專門討論瀏覽器JavaScript替代方案的文章中討論它呢?因為LiveView可以在許多web開發場景中替代JavaScript。

  Phoenix的創建者Chris McCord稱LiveView是「一個令人振奮的新庫,它支持使用伺服器呈現HTML,實現豐富的實時用戶體驗」。LiveView使用Phoenix channel在瀏覽器和伺服器之間創建雙向連接。LiveView基於Websockets,可以在不編寫JavaScript的情況下創建交互體驗。人們自然會擔心這種方法太慢而無法使用,但是LiveView的設計目的是最小化數據傳輸,並且在實踐中可以用於構建低延遲接口。

  但LiveView有局限性,我們不建議在LiveView中構建像Google Docs這樣的複雜應用程式。如果離線功能對應用程式很重要,那麼LiveView也不是合適的解決方案。但是,對於表單、實時界面更新和數據驗證等功能,Phoenix LiveView是JavaScript的可行替代方案。它比大多數JavaScript應用程式小得多;,LiveView的瀏覽器代碼大約是React的四分之一。

  總結

  我們已經研究了JavaScript的五種替代方法,每種方法都提供了一種創建Web應用程式和交互式界面的不同方式。當然目前大部分人使用的依然是JavaScript,因為它是Web瀏覽器支持的唯一語言。

  但隨著WebAssembly被廣泛採用,這種情況可能即將發生變化。所有主流瀏覽器都支持WebAssembly,將來它很可能成為面向Web的語言的默認編譯目標。對於Web開發人員來說,探索WebAssembly的可能性是個很不錯的方向。

       原文網址:https://jaxenter.com/5-alternatives-to-javascript-159787.html

相關焦點

  • 18年裡,20款的JavaScript開發框架推薦給前端開發者
    下面給大家提供了一個用於HTML5開發的各種用途的JavaScript庫列表。這些框架能夠給前端開發人員提供更好的功能實現的解決方案。如果你有收藏優秀的框架,也可以在後面的評論中分享給我們。1.這是一個web前端學習的qun:730227513,每天都有大佬直播帶大家一起交流學習分享技術經驗,建議真正初學web前端和進階級的小夥伴進去學習,如果你是小白想學習網頁開發的話也可以進去學習,大佬會給你初學的資料的。3.
  • Javascript 性能測試 [每日前端夜話0xB1]
    每日前端夜話,陪你聊前端。每天晚上18:00準時推送。
  • 說說那些經典的web前端面試題-開發及性能優化
    1、規避javascript多人開發函數重名問題命名空間封閉空間js模塊化mvc(數據層、表現層、控制層)seajs4、web前端開發,如何提高頁面性能優化?Image):優化圖片不要在 HTML 中使用縮放圖片使用恰當的圖片格式使用 CSS Sprites 技巧對圖片優化5、
  • 前端開發相關速查表Cheatsheets整理集合
    對於前端開發工程師來說需要花大量的時間去閱讀我們所使用的語言或相關類庫、框架的 API 文檔。當自己寫出函式庫時也會為自己的函式庫加上適當的文檔說明,這是一個避免不了的過程。畢竟前端開發工程師必須把腦力花在邏輯思考上,而不是記憶這些 API 文檔。
  • 不可錯過的實用前端工具
    ● 7uiGradients - 分享漸變色https://uigradients.com提供漸變色效果的站點,裡面接近上百種漸變配色方案Web 開發資源,免費使用,無使用限制。▍在線 IDE● 17CodePen https://codepen.io一個網站前端設計開發平臺
  • 前端框架選型指南
    框架決定了什麼時候調用庫,決定了什麼時候要求代碼去執行特定功能而實際上,一個庫有時也可以稱之為框架,而庫裡面集成的方法稱之為庫框架和庫的區別不由實際大小決定,而由思考角度來決定。1、提高開發效率2、可靠性高(瀏覽器兼容,測試覆蓋)3、配備優良的配套,如文檔、DEMO及工具等4、代碼設計的更合理、更優雅5、專業性高如果問題過於簡單,或者備選框架的質量和可靠性無法保證,再或者無法滿足業務需求,則不應該選擇外部的框架。
  • 乾貨 | 25個實用前端網站工具推薦
    在線比拼 CSS ,一個挺有趣的競爭性遊戲,一共有12個級別,需要你用 HTML和 CSS 100%還原它給出的頁面,然後再儘量減少代碼,你也可以查看全球的排行榜,看解決方案。https://uigradients.com提供漸變色效果的站點,裡面接近上百種漸變配色方案,可根據自己風格來選擇搭配,能直接獲得對應漸變配色的 CSS 代碼。
  • 前端設計-JavaScript簡單數字時鐘開發實例
    簡單數字時鐘開發實例藉助於JavaScript window對象所提供的計時觸發函數setInterval可以實現前端動畫效果的設計與製作。本例主要以setInterval方法為基礎介紹簡單數字時鐘的開發實例。
  • 如何使用JavaScript實現前端導入和導出excel文件
    接下來我們直接開始我們的方案實現.1. 使用JavaScript實現前端導入excel文件並自動生成可編輯的Table組件在開始實現之前, 我們先來看看實現效果.1.2 實現一鍵導入excel文件並生成table表格導入excel文件的功能我們可以用javascript原生的方式實現解析, 比如可以用fileReader這些原生api,但考慮到開發效率和後期的維護, 筆者這裡採用antd的Upload組件和XLSX來實現上傳文件並解析的功能.
  • 前端技術及開發模式的演進
    先聲明,本篇不會講帶有年代性的前端發展史,不講故事,想了解的讀者可以去查閱一些其他的資料和文章,本篇僅僅從技術發展角度結合案例分析,說明前端技術的發展和開發模式的演進變化。本篇內容重點說明PC端技術,移動端、桌面端本篇不涉及,防止讀者看到後面有疑惑,這裡強調一下。
  • 7個 Javascript 面試題及回答策略 [每日前端夜話0x30]
    每日前端夜話,陪你聊前端。每天晚上18:00準時推送。
  • 12 個 GitHub 上超火的 JavaScript 奇技淫巧項目,找到寫 JavaScript 的靈感!
    每天完成的 HTML, CSS 和 javascript 解決方案。https://github.com/wesbos/JavaScript305. Codewars和 leetcode 有點類似,也是在平臺上和其他人一起完成真實的代碼挑戰,提升你的技術。
  • 前端高效開發必備的 js 庫梳理
    作者: 徐小夕 來源:趣談前端之前有很多人問學好前端需要學習哪些 js 庫, 主流框架應該學 vue 還是 react ? 針對這些問題, 筆者來說說自己的看法和學習總結。比如說你對移動端比較感興趣, 工作中也剛好涉及到一些技術的應用,那麼我可以專門研究移動端相關的技術和框架, 又或者你對企業後臺/中臺產品感興趣, 比較喜歡開發PC端項目, 那麼我們可以專門研究這種類型的js庫或者框架, 接下來筆者也是按照不同前端業務的需求, 來整理一份能快速應用到工作中的js庫, 以提高大家的開發效率。
  • 一文看懂前端和後端開發
    比如,用於託管網站和 App 數據的伺服器、放置在後端伺服器與瀏覽器及 App 之間的中間件,它們都屬於後端。簡單地說,那些你在屏幕上看不到但又被用來為前端提供支持的東西就是後端。網站和移動 App 的後端網站的後端涉及搭建伺服器、保存和獲取數據,以及用於連接前端的接口。
  • 你需要了解的幾種微前端解決方案
    ,以及其帶來的利弊之處,因為那些弊端,使得我們團隊自己探究了一套目前認為最好的微前端解決方案。通過本文,可以快速幫您理清楚微前端方案的利弊,從而做出有利於您團隊的更好更明智的選擇。中文釋義:可以由多個團隊獨立開發的現代web應用程式的技術、策略和方案。本文則是在此基礎上對現有的微前端解決方案進行對比總結,廢話少說,讓我們開始今天的課題。
  • 什麼是漸進式前端開發框架?向您介紹vue,看了就懂了
    簡介Vue (讀音 /vju/,類似於 view)是中國的大神尤雨溪開發的,為數不多的國人開發的世界頂級開源軟體是一套用於構建用戶界面的漸進式框架。Vue 被設計為可以自底向上逐層應用。MVVM:頁面輸入改變數據,數據改變影響頁面數據展示與渲染M(model):普通的javascript數據對象V(view):前端展示頁面VM(ViewModel):用於雙向綁定數據與頁面,對於我們的課程來說,就是vue的實例二、VUE核心功能基礎功能:頁面渲染、表單處理提交、幫我們管理DOM(虛擬DOM)節點
  • 前端開發聚合、分享、期刊訂閱類網站收集
    http://javascriptweekly.com/掘金一個只有高手分享的社區,每個月有超過 3,000,000 個網際網路從業者使用掘金,無論是程式設計師、設計師還是產品經理,都可以在掘金找到相關領域的高質量內容。
  • 9個最好用的JavaScript開發工具和代碼編輯器
    激烈的競爭以及蔓延到現在的集成開發環境。基於IDE是用於創建和部署應用程式的強大客戶端應用程式,下面我們要分享的就是對於很多網頁設計師和開發人員而言,最好的JavaScript 開發工具。若有不同見解,敬請不吝賜教。1)SpketSpket IDE是一款功能強大的工具包,支持JavaScript和XML開發。
  • Web前端開發規範手冊
    例如:menu1_on.png、menu1_off.png  javascript的命名原則  例如:廣告條的javascript文件名為 ad.js 彈出窗口的javascript文件名為 pop.js  動態語言文件命名原則  以性質_描述,描述可以有多個單詞
  • 騰訊 IMWEB 前端團隊一站式 Serverless 開發解決方案
    的實踐方案。一、IMWEB 團隊 Serverless 研發模式的演進與思考在過去一、兩年,我們團隊在多個服務項目中嘗試使用 serverless,騰訊雲 Serverless 提供了一站式服務,通過使用該服務,前端可獨立完成接口服務開發,對前端個人而言可往全棧發展,也因此可緩解團隊後臺人力緊張問題