Wolfram编程云是实时的!

26年前今天我们发布了Mathematica1.0。我很兴奋,今天我们迎来了我认为又是一个历史性的时刻:启动Wolfram编程云-第一个一系列的产品基于新的Wolfram语言

Wolfram编程云

我的目标是Wolfram语言总的来说,Wolfram编程云(特别是Wolfram编程云)是为了重新定义编程过程,并尽可能实现自动化,以便一旦人类能够以足够清晰的方式表达他们想要做的事情,那么所有关于如何完成的细节都应该自动处理。

我在这方面已经工作了近30年,逐渐建立起一个技术体系,这是我在第一个世纪所需要的Mathematica,后来也在Wolfram | Alpha,现在是Wolfram语言的确定形式。Wolfram语言,正如我所说其他地方的解释,是一种新型的程序设计语言:一种基于知识的语言哲学就是尽可能多地植入有关计算和世界的知识,以便尽可能多地实现自动化。

Wolfram编程云是Wolfram语言的一个应用程序—专门用于编程,以及创建和部署基于云的程序。

它是怎么工作的?嗯,你应该试试!开始是非常简单的。只要在任何浏览器中进入Wolfram编程云,登录,然后按New即可。你会得到a笔记本(是的,我们早在25年前就发明了这些Mathematica).然后你就开始键入代码

在Wolfram编程云中键入代码

就这些互动.当您键入内容时,可以立即运行它,并在笔记本中查看结果。

比如说,你想构建一段代码,提取文本,找出它所用的语言,然后显示一个基于最大国家国旗的图像。

首先,您可能想试用机器学习语言分类器内置在Wolfram语言中:

Wolfram Language有一个内置的机器学习分类器

好啊这是一个好的开始。现在我们必须找到最大的讲英语的国家:

找到说某种语言的最大国家

现在我们可以得到一面旗帜:

找到国家的国旗

Wolfram编程云中的笔记本可以混合文本、代码和其他任何内容,因此很容易记录您正在做的事情:

Wolfram编程云中的笔记本允许您混合文本、代码和更多内容

显然,我们已经相当认真地使用了Wolfram语言的基于知识的特性。但是现在,假设我们想要创建一个自定义图形,在这个图形中,我们通过编程将语言代码叠加在标志上。

它花了我大约3分钟写一个小函数来做这个,使用图像处理:

图像处理功能,将语言代码放在国旗上

现在我们可以测试这个函数:

测试标记标志函数

看看我们这里发生了什么很有趣。有一点机器学习,一些关于人类语言的数据大约国家,一些排版,最后是一些图像处理.Wolfram语言的伟大之处在于多的多-是内置的,语言的设计使所有这些部分完美地结合在一起。(是的,设计原则是我个人花了这是我过去三十年生活的一部分。)

但是好的,我们有一个函数可以做一些事情。现在我们可以用它做什么呢?好的,这是Wolfram编程云的一个重要方面:它让我们可以使用Wolfram语言部署功能到云上。

一种方法是创建一个web API。这在Wolfram语言中很简单。我们只需要指定一个符号API函数-然后部署到云:

指定一个符号API函数并将其部署到云

现在,在网络上的任何地方,如果我们通过适当的URL调用这个API,我们的Wolfram语言代码将在Wolfram cloud中运行,我们将得到返回到网络上的结果,在这个例子中是一个PNG:

“你好”,拿一面法国国旗

当然,我们可以添加很多东西。我们可以制作一个更漂亮的图像。我们可以通过预计算使代码更高效。等等。但对我来说,在几秒钟之内,我就可以将一些东西部署到云上,我可以从任何网站、web程序、,等

这是另一个例子。这一次我设置了一个URL,每次访问它时,都会给出下一次日落之前的计算当前分钟数推断出位置用户名称:

日落前计算的分钟数的部署代码

每次你访问这个URL,你就会得到一个数字,作为一段文本。(你也可以得到JSON如果你想的话,还有很多其他的东西。)

设置仪表盘也很容易。就像这是日落的倒计时,它每半秒更新一次:

在日落前的秒数内部署计数器

离日落还有几秒?

形式呢?这些都是也很容易.这将创建一个表单生成一个地图具有给定半径的圆盘的给定位置的:

一行代码就可以生成带有磁盘标记的地图

形式是这样的:

部署在web上的地图生成表单

这是提交表单的结果:

一张以帝国大厦为中心的两英里长的地图就这么简单

这里使用了很多奇特的技术。甚至表单中的字段都是“智能字段”(由它们的小图标表示),因为它们不仅可以接受文字输入,而且可以接受数以百计的类型对任意自然语言的解释自然语言理解Wolfram | Alpha的核心技术。顺便说一下,如果您的表单需要颜色,Wolfram编程云将自动创建一个带有颜色选择器的字段。或者您可以使用单选按钮、滑块或其他任何东西。

好的,但是在这一点上,专业程序员可能会说,“这一切都很好,但我如何在我的特定环境中使用它?”我们已经做了很多努力让它变得简单。例如,对于表单,Wolfram语言有一个非常清洁机制让你随心所欲地建造它们XML模板,给他们任何你想要的外观和感觉。

说到api, Wolfram编程云让创建它变得容易。”嵌入代码从任何标准语言调用API:

嵌入用于从任何标准语言调用API的代码

很快,它也将很容易部署到移动应用程序。在未来,也会有嵌入式Wolfram引擎和其他东西。

那么这一切意味着什么呢?我认为这非常重要,因为它确实改变了编程的整个过程和经济性。我甚至在我们自己的公司中看到了这一点。随着Wolfram语言和Wolfram编程云的结合,我们已经有了越来越多的地方能够做到这一点在内部使用它们。每一次,看到过去需要数周或数月的编程任务突然在几天或更短的时间内完成,都是令人惊讶的。

但更重要的是,Wolfram语言以知识为基础的特点第一次使所有以前认为荒谬的编程都可行。事实上,在我们自己的组织中,这就是如何使构建Wolfram| alpha成为可能的例子——它现在是数百万行Wolfram语言代码。

但今天令人兴奋的事情是,随着Wolfram编程云的发布,所有这些技术现在都可供任何人使用,无论是大型还是小型项目。

它的设置使任何人都可以直接进入web浏览器,免费开始编写Wolfram语言代码,甚至可以将其小规模部署到Wolfram云。然后,有一整套选项可用于更大规模的部署,包括在组织内拥有自己的Wolfram私有云。

值得一提的是,你不必在浏览器中做所有的事情。在网络上实现Wolfram编程云笔记本界面是一个巨大的挑战,而且现在的网络浏览器和工具肯定会施加一些限制。但也有一个本地桌面版本的Wolfram编程云-受益于25年以上的界面工程,我们已经做了MathematicaCDF

Wolfram桌面

完全在web上使用Wolfram编程云非常酷,而且通常很方便。但至少现在,通过将桌面和云相结合,并运行连接到Wolfram云的本机Wolfram桌面界面,您可以获得非常好的体验。真正有趣的是,这一切完美地结合在一起,因此您可以在云和桌面之间无需传输笔记本电脑。

在我的一生中,我已经建立了一些相当复杂的软件系统。但是Wolfram编程云是我见过的最复杂的。当然,它是基于Wolfram语言的巨大技术堆栈。但是在Wolfram语言内核之间的Wolfram编程云中必须进行的交互的集合Wolfram知识库这个Wolfram自然语言理解系统这个Wolfram云,以及其他各种各样的子系统都非常复杂。

当然,这其中仍有一些不完善之处(请不要羞于告诉我们!)例如,许多事情会变得更快、更有效率。但我很高兴我们今天能够推出Wolfram编程云。

如果你要试一下,你应该怎么做?首先,去web上的Wolfram编程云:

web上的Wolfram编程云

有一个快速入门视频在那里。或者你可以看看例子画廊.或者你可以去尝试的事情-然后开始在Wolfram编程云中运行Wolfram语言示例。如果你是一个有经验的程序员,我强烈建议你去程序员快速入门:

Wolfram语言:对程序员的快速介绍

这将使您快速了解Wolfram语言的基本原则和概念,并迅速使您了解到您可以阅读大多数Wolfram语言代码并开始粗略地“扩展您的词汇表”5000个内置功能:

Wolfram语言的函数类别

今天是一个重要的日子,不仅对我们的公司和我们的技术,而且,我相信,对编程来说也是如此。Wolfram编程云中有很多新的东西,有些是关于它可以走多远,有些是关于基本的思想和哲学.除了极大地简化和自动化许多种类的现有编程之外,我认为Wolfram编程云将使全新类型的软件应用成为可能——我怀疑,还将掀起一波新的基于算法的初创企业。

对我来说,这是一段漫长的旅程。但是今天,我非常兴奋地开始了一个新的篇章,并且能够看到人们将能够用Wolfram语言和Wolfram编程云做什么。


如欲发表评论,请访问Wolfram博客»

Baidu