乐趣区

关于qiankun:为啥-JSON-之父要建议退役-JavaScript

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 语言 相干内容~

erights.org

Joule

退出移动版