钥匙要点
- 编程的未来可能会看到远离JavaScript的转变,并且引入WebAssembly使网络成为其他语言的更具吸引力的编译目标。
>作者希望,任何取代JavaScript的内容都将具有内置不变的数据结构,对象,集合和原始类型的字面形式,具有闭合的lambdas以及最小的语法等。
- 可轻松建模和可视化系统中的反应性关系的视觉IDE可能会成为编程的规范。这将通过视觉上对程序进行建模的彻底重新思考,从而促进这一点,从而减少视觉混乱和接线开销。
编程的未来也可能涉及遗传编程,在该计划中,根据其通过测试的能力以及AI辅助编程来生产和过滤候选程序的种群,在其中AI系统分析代码,搜索潜在的错误和漏洞,漏洞,漏洞,并建议需要编写的测试。
-
>最近,我们听说Web平台正在获得一个名为WebAssembly的新浏览器本地编译目标(请参阅WebAssembly的内容:新时代的曙光)。 WASM使Web平台成为其他语言的更具吸引力的编译目标。这让我们想知道javaScript之后会发生什么。-
JavaScript具有一些很棒的功能,但我衷心希望我们尽快继续前进。 JavaScript很棒,它教会了我们很多东西,但是编程会不断发展。 JavaScript之后会有生命。
>我不喜欢C(我是C恢复的用户和C的施虐者),但是我是其中许多用它构建的东西的粉丝,包括虚幻引擎,当编译到JavaScript时运行良好。没有充分的理由永远在JavaScript中写所有内容。是时候展望未来了。
>我一直在使用并真正享受咖啡本,这有助于激发许多新的ES6功能。 CoffeeScript感觉比JavaScript简单得多。它具有更简洁的语法,但增加了ES5中不存在的许多表达能力。当然,我通过将其删除有毒的类关键字来简化咖啡本。我也喜欢和哈斯克尔在一起。但是这些语言代表当前。
那么下一步该怎么办?
>
在JS之后引起火灾,我希望它具有以下功能:
>
- 内置的不变数据结构和不变性默认情况下。>
>对象,集合和原始类型的字面形式。
在大多数用例中,- 更好的默认号码类型。
>
- >自定义结构类型,包括对低级二进制类型的良好支持(如果我们获得可定义的文字语法,则奖励)。
lambdas
功能性实用皮带内置。类似于RXJS可观察的API。-
>对象和工厂组成的本机支持。像内置邮票一样。-
实时保证游戏,音乐和视频制作,DSP,科学应用,分布式系统的同步等应用程序的低延迟处理和精确计划
- 最小语法,类似于Ruby,Python或Coffeescript。现在,我有机会在没有卷发括号和半龙的情况下变得舒适,我觉得不那么局限于语法。
>
-
>对反应性编程的一流支持-
烘烤的语言,所有这些围绕所有这些简单,一致的API:>
流。
连续数据源(UI输入,时间,向量图像等…)。
>包括数组和对象的收集。
-
对于响应发射事件(例如节点风格的流)还是连续数据源,无论数据是否一次流过一个值(即迭代 /生成器产量),应以相同的方式使用此API。作为音频,电信号,UI输入,传感器,甚至与时间无关的事物,例如向量图形等……
- >类似的内置API可以包装所有类型的所有类型,这也有可能简化语法。
关于所有这些反应性工作如何工作的真正有见地的观点,请查看一个一般的反应理论。
- 更好的工具
虚幻引擎4 BluePrint
>一个奇妙的视觉IDE,可轻松建模和可视化系统中的反应性关系。用更好的ux思考noflo。
由不变的数据结构启用了
Time-Travel调试(示例使用JavaScript)。 Time-Travel调试可让您轻松地在现场运行程序的历史中来回穿梭。
编译为JS&WASM对浏览器和节点的大力支持。
更好的分析工具既静态和运行时 /动态。专门为通过分析反应性依赖图而设计的,以帮助使程序更可预测。这些也可能会创建出色的视觉报告,包括复杂性报告,
和>大理石图- ,以帮助您进一步理解和预测程序的行为。
-
.merge()
-
视觉IDE将是标准
>那些熟悉基于流的/数据流编程的人会正确地告诉您这并不是什么新鲜事。视觉编程工具已经存在数十年了,到目前为止无法替代基于文本的编程。
>将其推向边缘的是一种激进的重新思考,即如何在视觉上对程序进行建模,从而减少了困扰大多数基于流程的编程解决方案的视觉混乱和接线的开销。>
在这个空间中,大多数创新根本都没有在编程环境中发生。取而代之的是,它在数据流建模是主要任务的生产应用程序中发生。没有比音频生产应用程序更好的说明。
>音频生产应用程序通常通过效果处理器网络路由原始音频。在编程术语中,您可以将效果处理器视为功能映射:纯函数为列表中的每个元素,其中这些元素对应于音频样本slice。
大多数音频应用程序通过以Skeuomormormormormormormormormormormormor的方式模拟真实的机器和电缆,以视觉上的模型。 skeuomorphic用户界面是试图模拟在软件中建模的原始对象的用户界面的方法。
Skeuomorphic Design的问题是,它忠实地重现了原始的大多数用户界面混乱和效率低下。在数据密集型应用程序(例如音频制作)中,杂物看起来非常熟悉程序员:电线看起来有点像意大利面条 - 所有好的开发人员都知道我们应该避免使用。
> bayareamodularmeet-乔治·P·麦克林 - (CC BY-SA 2.0)
但是最近,诸如Ableton Live和Renoise之类的软件找到了巧妙的方法,可以完全使用频道和链条完全摆脱杂物。
> Ableton Live Effects通道。数据流从左到右流。
换句话说,数据流过通道,每个通道都由一系列效应组成。不需要电线,因为效果是按顺序应用的。>
renoise通道,每个通道都有一个效应链。数据流到底到底
在代码中,一个频道可能看起来像这样:
>如果您仔细考虑这一点,很明显,使用此模型,您可以做出比音频和数字信号处理(DSP)多得多。例如,您可以使用它来在Express中以视觉模型路由和中间件,其中路由由通道表示,并且中间件由效果表示:
>
假设的奔驰启发的UI用于编程路线。
当然,这意味着链中的每种效果都需要对具有共享API的输入作用。这就是功能性和反应性编程概念闪耀的地方。在任何类型的集合(包括网络请求流)上提供统一的API很容易。在功能编程中,这些包装API称为函数。用简单的英语,函子可以映射的东西。>
这听起来有点像科幻小说,请看一下Treeline。今天它做了非常相似的事情。看看以Treeline建立的此帖子 /注册路线。它对用户密码进行加密,然后创建用户模型,然后以状态200的响应。这些步骤中的每个步骤都可以视为频道效应:
treeline:数据流到底到底
遗传编程
遗传编程是通过生产候选程序人群并滤除未通过测试的程序来模拟自然进化系统的过程。确实通过测试的候选人生存并构成了下一代的基础。
遗传编程提供了对热代码和关键算法的持续自动改进的可能性。真正的潜力可以将遗传编程算法指向GIT存储库,并在人群改善先前部署的版本时自动将新一代软件推向生产。
ai辅助编程
> Scott Ingram - 双神经元(CC BY-NC 2.0)
强大的AI今天在这里。许多人工智能系统都在我们自己的游戏中击败了人类。 AI的一个主要优点是它能够很快分析各种替代方案。 AI可以检查您编写的代码,搜索潜在的错误和漏洞,识别可以抽象的模式,建议需要编写的测试,甚至识别基因编程人群中的模式,并自动调整种群和环境参数以微调遗传编程算法。
换句话说,长期,AI具有成为宝贵的编程工具的真正机会。实际上,很容易想象一个未来,AI可以在没有任何人为帮助的情况下制作程序。
结论
接下来会发生什么,期望这是技术和创新的量子飞跃。未来将比您想象的要早。
>经常询问有关WebAssembly及其未来的问题(常见问题解答)
> javaScript和WebAssembly?> javascript多年来一直是Web开发的骨干。但是,它有其局限性,尤其是在性能密集型应用程序方面。另一方面,WebAssembly是一种二进制指令格式,允许代码通过利用常见的硬件功能来以近乎本地的速度运行。它的设计是一种低级的虚拟机,以近速度运行代码,使其非常适合游戏,计算机辅助设计,视频编辑和科学模拟等任务。是WebAssembly替换JavaScript?不,WebAssembly并非旨在替换JavaScript。取而代之的是,它是与JavaScript一起工作,使开发人员可以为工作选择合适的工具。 JavaScript非常适合使用复杂的用户界面构建动态网站和应用程序,而WebAssembly更适合于性能密集型任务。> WebAssembly如何改善Web performand?
websembly通过提供Web性能来改善Web性能网络更有效的二进制格式。这种二进制格式允许与JavaScript更快地解析和执行代码。此外,WebAssembly被设计为一种低级虚拟机,以近速度运行代码,这是性能密集型任务的重大性能。
>我可以在当前的Web项目中使用WebAssembly吗?是的,您可以在当前的Web项目中使用WebAssembly。大多数现代浏览器都支持WebAssembly,并且有几种可用的工具可以帮助您将代码编译到WebAssembly。为WebAssembly汇编提供最好的支持。但是,目标是将来支持尽可能多的语言。还在不断努力增加对Python,Go和Java等其他语言的支持。>使用WebAssembly?
webAssembly的安全含义是什么,专注于安全性。它与JavaScript在同一沙箱环境中运行,这意味着它具有相同的访问限制。此外,由于它是一种低级二进制格式,因此它不太容易受到JavaScript常见的某些类型的攻击。几种方式。例如,您可以从WebAssembly调用JavaScript函数,反之亦然。您也可以在两者之间传递数据,尽管目前需要进行一些手动工作。>
WebAssembly的未来是什么?它已经得到了所有主要浏览器的支持,其性能优势使其成为Web开发人员的吸引人选择。随着越来越多的语言获得编译到WebAssembly的支持,我们可以期望看到它在更广泛的应用程序中使用。
>>使用WebAssembly?它确实有一些局限性。例如,它目前无法直接访问DOM,这意味着您需要使用JavaScript进行任何DOM操作。但是,正在进行的努力来解决这一限制和其他局限性。
>我如何开始学习和使用WebAssembly?
>有几种可用于学习WebAssembly的资源。官方的WebAssembly网站是一个很好的起点,因为它提供了该技术的全面概述。还有许多在线可用的教程和指南可以帮助您开始使用WebAssembly。
以上是编程的未来:JavaScript之后的WebAssembly&Life的详细内容。更多信息请关注PHP中文网其他相关文章!