神馬?要退役 JavaScript ?!誰人出此狂言?!
theme: orange
我報名參加金石計劃1期挑戰——瓜分10萬獎池,這是我的第1篇文章,點選檢視活動詳情
衝浪時無意看到一篇文章 《douglas-crockford-interview》,這是一篇採訪記錄。
上來第一句就是:
Douglas Crockford: "The best thing we can do today to JavaScript is to retire it."
道格拉斯:我們今天能對 JavaScript 做的最好的事就是將它退役。
我nm,你誰呀,我大 JS 是你說退役就退役的?!
查一下 Douglas Crockford 這老哥是誰?
- 道格拉斯·克羅克福特(英語:Douglas Crockford)是美國程式設計師和企業家,知名於對網頁程式語言JavaScript推進和改良;且為輕量級資料交換格式「JSON」的建立者。 他還是眾多JavaScript語言開發工具的創造者,例如JSLint和JSMin。近段時間,他在PayPal擔任JavaScript語言進階顧問,當然 他也是JavaScript、JSON以及web技術的佈道者,在這些方面出版發行了很多知名的書籍及演講。 —— wikipedia
WC,牛蛙牛蛙,JSON 之父,JavaScript 推進、改良、佈道者,1975 年就在大學學習 Fortran 程式語言了,妥妥的 OOOOOOGGGGGG大佬。
那之前一直重倉 JavaScript,為何現在一反常態,唱衰 JavaScript 呢?
看看他具體怎麼說的?
Evrone: In your opinion, what expected changes in JavaScript are going to be the most important?
Douglas: The best thing we can do today to JavaScript is to retire it. Twenty years ago, I was one of the few advocates for JavaScript. Its cobbling together of nested functions and dynamic objects was brilliant. I spent a decade trying to correct its flaws. I had a minor success with ES5. But since then, there has been strong interest in further bloating the language instead of making it better. So JavaScript, like the other dinosaur languages, has become a barrier to progress. We should be focused on the next language, which should look more like E than like JavaScript.
主持人:在您看來,JavaScript 的哪些預期變化是您最看重的?
道格拉斯:我們現在最好就是退役 JavaScript。20 年前,我是 JavaScript 為數不多的擁護者,函式巢狀以及動態物件的設計很棒。我花了十年時間試圖去修復它的缺陷。後來在 ES5 上取得了小小的成功。但是自從那以後,人們更側重於擴大使用 JavaScript 的規模,而不是讓它變得更好。所以,JavaScript 如今像一個恐龍語言,已經成為了發展的阻礙。我們應該更多關注下一種程式語言,比如 E 語言這種。
本瓜:噢?難道是來推 E 語言的?踩一捧一、經典營銷路數?
話說什麼是 E 語言?(注意:不是易語言,別混淆了)
- E 語言是1997年由Mark S. Miller、Dan Bornstein、Electric Communities建立的用於 安全分散式計算的面向物件程式設計語言。E語言主要源自於安全分散式程式設計中Java的並行語言Joule 和Original-E,後者是Java的一組擴充套件。E將基於訊息的計算與類Java語法相結合。基於事件迴圈和Promise的併發模型確保永遠不會發生死鎖。
E 的語法與 Java 最為相似,儘管它也與 Python 和 Pascal 有些相似。變數都是動態型別的,並且有詞法作用域。然而,與 Java 或 Python 不同的是,E 完全由表示式組成。
舉個例子:遞迴
def factorial(n :int) :int {
if (n == 1) {
return 1
} else if (n > 0) {
return n * factorial(n-1)
} else {
throw("invalid argument to factorial: "+n)
}
}
其中第一個:int 確保函式體只需要處理整數引數,第二個 :int 引數確保函式將有返回值。能夠事先看到函式的資訊洩漏,有利於安全審計。
E 程式的典型例子是挖礦場景,一個簡單的電子貨幣系統,只需幾行E程式碼就能實現。
貼下程式碼感受一二:
def makeMint(name) :any {
def [sealer, unsealer] := makeBrandPair(name)
def mint {
to makePurse(var balance :(int >= 0)) :any {
def decr(amount :(0..balance)) :void {
balance -= amount
}
def purse {
to getBalance() :int { return balance }
to sprout() :any { return mint.makePurse(0) }
to getDecr() :any { return sealer.seal(decr) }
to deposit(amount :int, src) :void {
unsealer.unseal(src.getDecr())(amount)
balance += amount
}
}
return purse
}
}
return mint
}
其中用 def 關鍵字定義物件,to 關鍵字開始每個方法,:(int >= 0)) 或 :(0..balance)) 表示對輸入的約束。
感官上來說,本瓜覺得它對輸入、輸出都做了一個界定,這樣更利於審查安全性。從這個角度看它的確比 JavaScript 更嚴格。這裡的嚴格並不代表繁重,輕量的東西也可以是嚴格的。JavaScript 設計之初就是輕量的指令碼語言,但隨著 web 繁榮壯大,JavaScript 似乎滿足不了了,於是出現了各類框架、或者 TypeScript,但是即使是強如 TypeScript,還是要被編譯成 JavaScript。這或許真的是一種困局~
好吧~ 也許大佬真的能看的更遠更遠,以後究竟是 TypeScript 還是 E 語言,還是其它技術的革命,我們可以作為一個觀察者,拭目以待吧~
有興趣的工友可以繼續看看 E 語言、或者 Joule 語言 相關內容~
OK,以上便是本篇分享。點贊關注評論,為好文助力👍
我是掘金安東尼 🤠 100 萬人氣前端技術博主 💥 INFP 寫作人格堅持 1000 日更文 ✍ 關注我,安東尼陪你一起度過漫長程式設計歲月 🌏
- ChatGPT 不過如此,Kosmos-1 更勝一籌?微軟這波又贏了
- “ChatGPT 們” 所需算力真是“貴滴誇張”!
- 國內有哪些對標 ChatGPT 的大語言模型? 5 大競品
- 常用!提前 reject promise 的 2 種場景,收藏等於學會
- 程式設計開發新朋友 —— ChatGPT 和 NotionAI 實戰
- 為什麼我更推薦 Notion AI 勝於 ChatGPT ?
- 推薦 5 個你大概率沒見過的免費 API ,一鍵獲取資料!
- ✨從純函式講起,一窺最深刻的函子 Monad
- 神馬?要退役 JavaScript ?!誰人出此狂言?!
- 寫出乾淨的 JavaScript 5 個小技巧
- 想要白嫖正則是吧?這一次給你個夠!
- 淺聊快取函式
- JavaScript 中如何取消請求
- 知其然,而知其所以然,JS 物件建立與繼承【彙總梳理】
- 10 個 Reduce 常用“奇技淫巧”
- 萬字年中總結,共勉
- 4 個 JavaScript 最基礎的問題 —— Eric Elliott
- 日拱演算法:搜尋二維矩陣 II
- 日拱演算法:多數元素
- 日拱演算法:只出現一次的數字