Skip to main content

moregeek program

为啥 json 之父要建议:退役 javascript_安东尼漫长的技术岁月的博客-多极客编程

冲浪时无意看到一篇文章 ​​《douglas-crockford-interview》​​,这是一篇采访记录。

上来第一句就是:

Douglas Crockford: "The best thing we can do today to JavaScript is to retire it."

道格拉斯:我们今天能对 JavaScript 做的最好的事就是将它退役。

我nm,你谁呀,我大 JS 是你说退役就退役的?!

为啥 JSON 之父要建议:退役 JavaScript_typescript

查一下 Douglas Crockford 这老哥是谁?

  • 道格拉斯·克罗克福特(英语:Douglas Crockford)是美国程式设计师和企业家,知名于对网页程式语言JavaScript推进和改良;且为轻量级资料交换格式「JSON」的建立者。他还是众多JavaScript语言开发工具的创造者,例如JSLint和JSMin。近段时间,他在PayPal担任JavaScript语言进阶顾问,当然他也是JavaScript、JSON以及web技术的布道者,在这些方面出版发行了很多知名的书籍及演讲。 —— wikipedia

为啥 JSON 之父要建议:退役 JavaScript_java_02

WC,牛蛙牛蛙,JSON 之父,JavaScript 推进、改良、布道者,1975 年就在大学学习 Fortran 编程语言了,妥妥的 OOOOOOGGGGGG大佬。

为啥 JSON 之父要建议:退役 JavaScript_java_03

那之前一直重仓 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。这或许真的是一种困局~

为啥 JSON 之父要建议:退役 JavaScript_java_04


好吧~ 也许大佬真的能看的更远更远,以后究竟是 TypeScript 还是 E 语言,还是其它技术的革命,我们可以作为一个观察者,拭目以待吧~

有兴趣的工友可以继续看看 E 语言、或者 Joule 语言 相关内容~

OK,以上便是本篇分享。点赞关注评论,为好文助力👍

我是掘金安东尼 🤠 100 万人气前端技术博主 💥 INFP 写作人格坚持 1000 日更文 ✍ 关注我,安东尼陪你一起度过漫长编程岁月 🌏

©著作权归作者所有:来自51CTO博客作者掘金安东尼的原创作品,请联系作者获取转载授权,否则将追究法律责任

日拱算法,滑动窗口的最大值_安东尼漫长的技术岁月的博客-多极客编程

日拱算法,接着冲~~题目:给定一个数组 nums 和滑动窗口的大小 k,请找出所有滑动窗口里的最大值。示例:输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3输出: [3,3,5,5,6,7] 解释: 滑动窗口的位置 最大值--------------- -----[1 3 -1] -3 5 3 6

#yyds干货盘点# 前端歌谣的刷题之路-第八十七题-继承_前端歌谣的博客-多极客编程

前言我是歌谣 我有个兄弟 巅峰的时候排名c站总榜19 叫前端小歌谣 曾经我花了三年的时间创作了他 现在我要用五年的时间超越他 今天又是接近兄弟的一天人生难免坎坷 大不了从头再来 歌谣的意志是永恒的 放弃很容易 但是坚持一定很酷 本题目源自于牛客网 微信公众号前端小歌谣题目请补全JavaScript代码,完成类的继承。要求如下: 1. "Chinese"类继承于"Human"类 2. "Human"

#yyds干货盘点# 前端歌谣的刷题之路-第八十八题-参数解析器_前端歌谣的博客-多极客编程

前言我是歌谣 我有个兄弟 巅峰的时候排名c站总榜19 叫前端小歌谣 曾经我花了三年的时间创作了他 现在我要用五年的时间超越他 今天又是接近兄弟的一天人生难免坎坷 大不了从头再来 歌谣的意志是永恒的 放弃很容易 但是坚持一定很酷 本题目源自于牛客网 微信公众号前端小歌谣题目请补全JavaScript代码,要求将字符串参数URL中的参数解析并以对象的形式返回。示例1输入:getParams('http

#yyds干货盘点# 前端歌谣的刷题之路-第八十九题-生成页码_前端歌谣的博客-多极客编程

前言我是歌谣 我有个兄弟 巅峰的时候排名c站总榜19 叫前端小歌谣 曾经我花了三年的时间创作了他 现在我要用五年的时间超越他 今天又是接近兄弟的一天人生难免坎坷 大不了从头再来 歌谣的意志是永恒的 放弃很容易 但是坚持一定很酷 本题目源自于牛客网 微信公众号前端小歌谣题目请补全JavaScript代码,要求将字符串参数URL中的参数解析并以对象的形式返回。示例1输入:getParams('http

#yyds干货盘点# 前端歌谣的刷题之路-第九十一题-继承_前端歌谣的博客-多极客编程

前言我是歌谣 我有个兄弟 巅峰的时候排名c站总榜19 叫前端小歌谣 曾经我花了三年的时间创作了他 现在我要用五年的时间超越他 今天又是接近兄弟的一天人生难免坎坷 大不了从头再来 歌谣的意志是永恒的 放弃很容易 但是坚持一定很酷 本题目源自于牛客网 微信公众号前端小歌谣题目请补全JavaScript代码,实现以下功能: 1. 给"Human"构造函数的原型对象添加"getName"方法,返回当前实例

#yyds干货盘点# 前端歌谣的刷题之路-第九十题-子字符串频次_前端歌谣的博客-多极客编程

前言我是歌谣 我有个兄弟 巅峰的时候排名c站总榜19 叫前端小歌谣 曾经我花了三年的时间创作了他 现在我要用五年的时间超越他 今天又是接近兄弟的一天人生难免坎坷 大不了从头再来 歌谣的意志是永恒的 放弃很容易 但是坚持一定很酷 本题目源自于牛客网 微信公众号前端小歌谣题目请补全JavaScript代码,该函数接受两个参数分别为字符串、子字符串,要求返回子字符串在字符串中出现的频次。编辑 核心代码&

swoole 进程模型分析_crmeb中邦科技的博客-多极客编程

在这边文章中我们将介绍以下内容:1、Swoole Server 的运行模式2、Swoole 进程模型分析swoole 进程上图是 Swoole 官网提供的各个进程相互关系图,可以说理解了这张图,你就理解了 Swoole 的进程模型。1、Swoole Server 的运行模式​​Swoole 服务​​常见的运行模式有单线程模式和进程模式两种,两种方式介绍如下:单线程模式 (SWOOLE_BASE) 

那些你不知道的炫酷按钮交互效果_南城前端的博客-多极客编程

在日常开发中肯定都遇到过不少有按钮交互的地方,但你有用到什么炫酷的交互效果吗?日常开发中想必最多的就是点击按钮背景文字变色,阴影,按钮按下,加载中之类的效果,相对都比较平平无奇,都是一些按部就班的效果。一个好的前端页面在实现设计图的同时,如果也有极强的与用户交互效果,那么给用户带来的体验是极好的。近期整理了一组相对炫酷前端按钮交互动画,今天分享给大家。 今天分享的主要内容来源于 Aaron Ike

日拱算法,滑动窗口的最大值_安东尼漫长的技术岁月的博客-多极客编程

日拱算法,接着冲~~题目:给定一个数组 nums 和滑动窗口的大小 k,请找出所有滑动窗口里的最大值。示例:输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3输出: [3,3,5,5,6,7] 解释: 滑动窗口的位置 最大值--------------- -----[1 3 -1] -3 5 3 6

#yyds干货盘点#css开发技巧总结_文本、的博客-多极客编程

使用pointer-events禁用事件触发要点:通过​​pointer-events:none​​​禁用事件触发(默认事件、冒泡事件、鼠标事件、键盘事件等),相当于​​<button>​​​的​​disabled​​场景:限时点击按钮(发送验证码倒计时)、事件冒泡禁用(多个元素重叠且自带事件、a标签跳转)例子:pointer-events: none;使用writing-mode排版

c4d搭配椭圆动态及闪动控制动画效果_wx612751f2ed44d的博客-多极客编程

前言上一章讲述了利用 C4D 图切割制作闪光效果,本章将讲述如何在上一章描述的效果基础上,加入椭圆动态效果以及闪动控制。如下图所示,椭圆运动主要分成两部分:外圈运动、内圈运动。其中内圈运动看似一个椭圆,实际上是由两个椭圆不同角度组成的。红色指向的是运动的小球,绿箭头是小球运动的方向。下面将讲述如何展示圆球运动,主要是运用 canvas 画布制作,探测小球的运动轨迹,以及到点则控制对应块的闪烁。一、

#yyds干货盘点# 前端歌谣的刷题之路-第八十九题-生成页码_前端歌谣的博客-多极客编程

前言我是歌谣 我有个兄弟 巅峰的时候排名c站总榜19 叫前端小歌谣 曾经我花了三年的时间创作了他 现在我要用五年的时间超越他 今天又是接近兄弟的一天人生难免坎坷 大不了从头再来 歌谣的意志是永恒的 放弃很容易 但是坚持一定很酷 本题目源自于牛客网 微信公众号前端小歌谣题目请补全JavaScript代码,要求将字符串参数URL中的参数解析并以对象的形式返回。示例1输入:getParams('http