ode.js基金會和JS基金會宣布有意將他們的Node.js和JavaScript社區聚集在一起,為更廣泛的用戶提供服務。更多信息將在下周在溫哥華的Node + JS Interactive舉行的問答環節中公布。
“在兩個獨立的基金會兩年后,我們認為兩個基金會之間需要更緊密的整合,以便為Node.js和更廣泛的JavaScript項目提供更多支持。我們期待繼續支持JavaScript生態系統的健康發展,并期待支持JavaScript生態系統所依賴的更廣泛項目的潛力,以及專注于JavaScript新增長領域的項目,“ Node.js和JS Foundations的董事會在一篇文章中寫道。
此合并目標旨在提供:
“今天,JavaScript幾乎無處不在。企業已經能夠大大降低培訓成本并提高開發人員的工作效率,因為前端JS開發人員可以在服務器端工作,反之亦然,從而消除了上下文切換,使所有開發人員能夠從相同的知識庫和龐大的模塊生態系統中獲益,“基金會在合并公告中寫道。“Node.js是這種增長的主要催化劑。它已成為現代Web開發堆棧的重要組成部分,在使用JavaScript時通常是默認設置。合并基金會將使這些技術的治理符合其實際使用。“
月 9 日,Cloudflare 在其官方博客宣布,將與 Node.js 和 Deno 開源項目的核心貢獻者合作,成立一個新的社區組,命名為 WinterCG(Web-interoperable Runtimes Community Group),該項目匯集了三個最大的 JavaScript 環境,為開發人員提供了靈活性和選擇,同時創建邊緣計算的未來標準。通過一套通用標準,允許在 Node.js、Deno 和 Cloudflare 無服務器環境中編寫可移植的應用程序,同時不再需要重寫代碼,實現“編寫一次,隨處運行”的承諾。
Cloudflare 聯合創始人兼首席執行官 Matthew Prince 表示,“這是一個以前無法實現的壯舉。JavaScript 正在被數以百萬計的開發人員使用,也是一般開發者學習的第一種語言。到目前為止,JavaScript 標準完全集中在前端,比如瀏覽器。” Matthew Prince 補充道,“通過對核心 JavaScript API 的標準化,同時兼顧到前端和后端,這樣可以授權前端開發者以一種熟悉的方式,更多更便捷地訪問后端。”
針對這個消息,我們采訪了 Deno 核心貢獻者 justjavac(迷渡)老師,他表示:“這個社區早該成立了!這樣可以讓云計算或者邊緣計算的平臺提供和 Web 一致的 API,而不是各自開發自己的 API。對于社區開發者來說,不再需要額外學習一套 API,寫一套代碼就可以部署到不同平臺。”
據 Cloudflare 官方說明, WinterCG 社區組的本質在于為 JavaScript 運行時提供一個空間,以便于在 API 互操作性方面進行協作。這種協作大致包括三個方面,分別是:運行時之間的討論;現有規范社區(WHATWG、W3C)中的 Web API 的提案,包括現有提案和新提案;完善和維護現有運行時行為的文檔。
對此,justjavac(迷渡) 認為,在 Node.js 發布的時候,還沒有那么多的 Web API 規范,于是 Node.js 設計了一套服務器端 API,像 Deno 在設計之初就直接復用了 Web API,大部分 JavaScript 開發者都非常熟悉這些 API,比如 fetch、URL、TextEncoder 等。后來 WHATWG 制定了很多 Web API 規范,Node.js 的最近版本也開始添加了符合 WHATWG 規范的 API。
然而這些 Web API 又不能 100% 按照標準在服務器端實現,畢竟 Web 標準是為瀏覽器制定的,如果每個服務器端運行時都按自己的方式進行調整,最終的結果就是代碼只能運行在特定的某一個平臺上,這也是 Cloudflare 成立 WinterCG 的初衷。
不難看出,新成立的 WinterCG 將更加直接關注非 Web 瀏覽器的特定需求的實現,與目前專注于 Web 平臺功能和 API 開發的現有社區組織形成了互補作用。WinterCG 的目標更加清晰:關注在后端服務器、無服務器計算、物聯網、命令行工具等環境中實現這些相同的特性。
像 Cloudflare Workers 這樣的無服務器環境,或者像 Node.js 和 Deno 這樣的運行時,都有諸多廣泛的問題與不同的需求,這些都與 Web 瀏覽器無關,反之亦然。最終,在開發各種規范時,這些差異性需求的脫節和缺失,就導致了一種情況——非瀏覽器運行時已經實現了它們自己定制的、臨時的解決方案,并且已經運行在了各個生產環境中。
WinterCG 社區的成立就是為了改變以上問題,它提供了一個討論和倡導所有 Web 環境的共同需求的場所,可以部署在堆棧的任何地方。對于開發人員來說,代碼的可移植性非常重要,如果你寫完一套代碼,想要把它遷移到不同的環境中(例如,從 Node.js 到 Deno)去運行的話,你應該也不想完全重寫一遍吧?
Cloudflare Workers、Node.js、Deno 和 Web 瀏覽器都有很大的不同,但它們共享了很多共同的功能。例如,它們都提供了用于生成加密哈希的 API;它們都以某種方式處理流數據;它們都提供了向某處發送 HTTP 請求的能力。如果存在重疊,并且需求和功能是相同的,那么環境都應該實現相同的標準化機制。
所以,WinterCG 通過制定一套通用標準的方式,讓開發人員只需要關心他們編寫的代碼能夠正常運行即可,而不管代碼在哪里運行。
據報道,新的 WinterCG 社區組將在 W3C 的既定流程下運行。
從小組的命名可以看出,關鍵點在于“web-interoperable”。據官方解釋,此處使用的“web”的含義與 W3C 以及 WHATWG 社區使用的術語完全相同。確切地說法便是“web 瀏覽器”。因此,術語“web-interoperable”意味著以一種與 web 瀏覽器相同或至少盡可能一致的方式實現功能。例如,新的 URL() 構造函數在瀏覽器中的工作方式與新的 URL() 構造函數在 Node.js、Deno 和 Cloudflare Workers 中的工作方式完全相同。
對于 WinterCG 來說,承認 Node.js、Deno 和 Cloudflare Workers 明確不是 web 瀏覽器這一事實很重要。雖然這一點顯而易見,但仍有必要指出,因為各種 JavaScript 環境之間的差異可能會極大地影響標準化 API 的設計決策。
對此,官方舉例說明,Node.js 和 Deno 都提供對本地文件系統的完全訪問。相比之下,Cloudflare Workers 沒有本地文件系統;并且 Web 瀏覽器必然會限制應用程序操作本地文件系統。同樣,雖然 Web 瀏覽器固有地包括一個網站“origin”的概念并實現 CORS 等機制來保護用戶免受各種安全威脅,但在 Node.js, Deno 和 Cloudflare Workers 操作的服務器端卻沒有相同的“origin”概念。
到目前為止,W3C 和 WHATWG 都非常關注 Web 瀏覽器的需求。WinterCG 這一新的 Web 可互操作的運行時社區組將明確地處理并倡導每個人的需求。
對此,WinterCG 也表示,自己并不打算發布一套獨立的標準 API 集。WinterCG 中發布的新規范的想法也會先提交給 W3C 和 WHATWG 進行考慮,以獲取和達到更多的共識。但是,如果 Web 瀏覽器對其他環境 (如 Cloudflare Workers) 所需要的功能沒有特別的需求,WinterCG 將被授權以自己發布的規范進行推進。前提約束是不會有意引入與已建立的 Web 標準相沖突或不兼容的內容。
“最小通用 Web 平臺 API 是標準化 Web 平臺 API 的一個精心設計的子集,旨在定義瀏覽器和非瀏覽器基于 JavaScript 的運行時環境的通用功能的最小集合。”這是目前規范草案中的相關介紹。
換個說法來說:它是一組最小的現有 Web API,將在 Node.js、Deno 和 Cloudflare Workers 中一致且正確地實現。大多數 API(除了一些例外和細微差別)已經存在于這些環境中,因此剩下的大部分工作是確保這些實現符合它們的相關規范并且可跨環境移植。
WinterCG 表示,每當某個環境偏離 API 的標準化定義時 (比如 Node.js 對 setTimeout() 和 setInterval() 的實現),就會提供描述這些差異的清晰文檔。而這種差異應該只存在于與現有代碼的向后兼容性中。
除此之外,WinterCG 目前已經開始起草 “Web Crypto Streams”的新規范,并提交給 W3C 進行考慮。Web Cryptography API 為常見的加密操作提供了一個最小并且非常有限的 API ,它的主要限制之一是與 Node.js 的內置 crypto 模塊不同。Deno 是直接按 web crypto 規范實現的,而 Node 的內置 crypto 模塊很早就開發完了,此次根據 Deno 和 Node.js 的現有實現制定規范,這為以后對其他平臺的實現來說將更加方便與規范化。
針對目前 Node.js、Deno 和 Cloudflare Workers 實現 fetch() 的方式與在 web 瀏覽器中實現的方式有許多重要差異的問題,也為了使非 Web 瀏覽器環境更容易以一致的方式實現 fetch ,WinterCG 正在編寫獲取 fetch 的一個子集,專門處理那些不同的需求和約束。這個子集將與 fetch 標準完全兼容,并且由在 Node.js、Deno 和 Cloudflare Workers 中從事 fetch 工作的同一批人合作開發。這也不會成為 fetch 標準的競爭定義,而是一組關于如何在其他環境中正確實現 fetch 的文檔化指南。
WinterCG 表示,Web 可互操作的運行時社區組才剛剛起步,他們有許多雄心勃勃的目標。所有人都可以參與,所有工作都將通過 GitHub 的 https://github.com/wintercg 公開完成。目前,WinterCG 正在積極尋求與 W3C、WHATWG 和整個 JavaScript 社區的合作,以確保 Web 功能可用、始終如一地工作,并滿足在堆棧中任何地方工作的所有 Web 開發人員的要求,它所做的一切都將以最大化互操作性為目標。
最后,感謝 justjavac(迷渡)老師的專業觀點以及對本文的指導。
參考鏈接:
https://wintercg.org
https://github.com/wintercg/admin
https://blog.cloudflare.com/introducing-the-wintercg/
https://www.w3.org/community/wintercg/
https://deno.com/blog/announcing-wintercg
了解更多軟件開發與相關領域知識,點擊訪問 InfoQ 官網:https://www.infoq.cn/,獲取更多精彩內容!
給大家推薦一下學習研究HTML5必備的一些個網站,更加有利于大家對html5的學些和研究。
1. W3C HTML 5 權威教程,學習HTML5的各種標簽,查詢參考手冊。
2. HTMLDemos可以插件HTML5標簽在各瀏覽器的兼容性,同時你還可以查看各種HTML5的標準Demo演示。
3. 蘋果提供的HTML5演示站點,提供很多很絢麗的HTML5Demo。鏈接
4. 測試瀏覽器對HTML5的支持,并打分,可以知道你當前的瀏覽器對HTML5的支持情況如何,各種標簽和組件的支持情況。鏈接
5.360的HTML5基地。鏈接
6. WHATWG博客是網絡超文本應用技術工作小組(Web Hypertext Application Technology Working Group)的博客。鏈接
7. HTML5醫生發表了許多文章,都是關于HTML5及其語義、及如何正確使用它的。他們也通過“詢問醫生”收集了很多問題,并在文章中予以回答,所有人都可從中受益。鏈接
8. 這是一個以表格制成的備忘單形式的單頁面,描述了HTML5、CSS3、SVG及其他未來網絡技術的特征。鏈接
9. 這個備忘單就是一個簡單的可視網格,包含了所有HTML5標簽和相關的屬性。鏈接
10 .一個提供HTML5各種功能演示的網站,提供各種HTML5的顯示Demo。鏈接
11. 這個網站提供了大量的HTML5游戲資源,喜歡HTML5游戲的童鞋們,可以千萬別錯過哦。鏈接
12. 一個HTML 5的文檔資料網站,做得很出色。介紹的圖片全是用了涂鴉的方式,很直觀,很可愛的網站。鏈接
13.h5之家(中文學習園地)。鏈接
今天就給大家推薦到這里,這15個網站,基本上可以算得上是HTML5學習研究的上上至寶了。如果你也有更好的HTML5網站推薦,歡迎評論并留下網址信息,方便整理。
出于對PMCAFF用戶的尊重,任何在PMCAFF產品經理社區發布的內容,在未經允許的情況下,不得在任何平臺被直接或間接發布使用或被用于其他任何商業目的。如有違反上述聲明者本網站將追究其相關法律責任。
微信公眾號:pmcaffcom
投稿郵箱:tougao@pmcaff.com
Greated by PMCAFF產品經理社區 - www.pmcaff.com
*請認真填寫需求信息,我們會在24小時內與您取得聯系。