📜 ⬆️ ⬇️

Wolfram Programming Cloud (Wolfram Programming Cloud) Now Available


Translation of Stephen Wolfram's post (Stephen Wolfram, CEO of Wolfram Research).
Original post: Wolfram Programming Cloud Is Live!

Twenty-six years ago on this very day we released Mathematica 1.0. And I am very pleased that today will also be a historic day: we are releasing the Wolfram Programming Cloud (Wolfram Cloud) - the first object in the product line based on the new Wolfram Language (Wolfram Programming Language).

Wolfram Programming Cloud

My main goal in working with Wolfram Language , and Wolfram Programming Cloud in particular, was to redefine the programming process, automating as much as possible everything that is possible so that a person can express everything he wants to do with sufficient clarity and simplicity, and all the subtleties of how to do this was done automatically.
')
I have been working on this concept for the last 30 years, gradually building on the necessary set of technologies, first in Mathematica , then in Wolfram | Alpha , and now all this is presented in a complete form in the Wolfram Language. The Wolfram language, as I mentioned earlier , is a new type of programming language — it is a knowledge-based programming language whose philosophy is to include as much knowledge in the language as possible, so that everything is so automated. , as much as possible.

Wolfram Cloud Programming is a Wolfram Language application that is specialized for programming, developing and deploying cloud programs.

How does it work? You can figure it out yourself ! Getting started with it is extremely easy. Just go to Wolfram Programming Cloud from any browser under your name and click New. You will get what we call a notepad (laptop) (yes, we introduced them more than 25 years ago for the Mathematica system). After that you can just start entering the code .

Type code in Wolfram Programming Cloud

Everything in this document is interactive . When you enter something, you can immediately calculate it and see the result directly in notepad.

Let's say you want to create a small program that takes a text and finds out what language this text is written, then shows a picture in the form of a flag of the largest country whose inhabitants speak this language.

To begin with, you should use the built-in capabilities of the Wolfram Language in the field of machine learning — use the language classifier function:

Wolfram Language has a built-in machine-learning classifier

OK This is a good start. Now we need to find the largest country that speaks this language:

Find the largest country that speaks a given language

Now we can get its flag:

Find the country's flag

Notebooks in the Wolfram Cloud can contain a mix of text, code, and any other things; let's say you can easily document everything you've done:

Notebooks in the Wolfram Programming Cloud let you mix text, code, and more

Obviously, we have just used the fact that the Wolfram Language is based on knowledge. Now let's imagine that we want to make a certain graphic object - a picture - in which we programmatically impose a language code on the flag of the country.

It took me about 3 minutes to write a small function using image processing algorithms that solves this problem:

Image processing function to put a language code on a flag

Now we can test this feature:

Testing the labeled-flag function

It is interesting to look at what is used in this little function. It has some machine learning , some information about the languages ​​of people and countries , some typing , and, finally, some image processing algorithms . What is truly amazing in Wolfram Language is that all this and much more is already built into the language, which is designed so that all these elements work beautifully together. (Of course, this concept of language is what I have spent a good part of the last three decades of my life.)

So, we have a function that performs something. What can we do with her now? One of the biggest features of Wolfram Programming Cloud is that it allows us to use the Wolfram Language to deploy this feature in the cloud.

One of the ways we can do this is to make a Web API. And it is very simple in the Wolfram Language. We simply create a symbolic API function - after which we put it in the cloud:

Specify a symbolic API function and deploy it to the cloud

Now if we call this API function from anywhere on the Internet by clicking on the appropriate URL, our Wolfram language code will be executed in the Wolfram Cloud and we will get the result from the place where we called the API function, in this case as a PNG image:

ay "bonjour," get a French flag

Of course, you can add to this feature a lot of bells and whistles. We can make the picture more beautiful. We can make the code more efficient by calculating some things in advance. And so on. But for me it’s quite amazing and extremely useful that in a matter of seconds I am able to deploy something in the cloud and can then use it on any website, in any web program, etc.

Below is another example. This time I will create a URL which, every time it is visited, will give out the current number of minutes before sunset at the place where the user is now:

Deployment code for the computed number of minutes until sunset

Every time you visit this URL, you will receive a number in the form of a small text fragment. (You can also get results, say, in JSON format or in a variety of other formats.)



You can also create, say, a webpage that displays a countdown to the sunset, which is automatically updated every second:

Deploy a counter for the number of seconds until sunset

How many seconds until sunset?

You ask "How about entry forms?". Creating them is also very easy . Let's say the code below creates a form that generates a map of a given location with a disk of a given radius marked on it:

A line of code makes a web form to generate maps marked with disks

Here is the input form you received:

The map-generating form deployed on the web

And the result obtained after calculations:

A map with a two-mile disk centered on the Empire State Building—it's that easy

In this form, used a lot of great technology. Let's say the input fields in this form are the so-called “Intellectual fields” (the corresponding icons speak about this), because they can include not only specific requests, but also hundreds of types of arbitrary forms of natural language, which are interpreted using the same Understanding Technology Natural Language , which is the heart of Wolfram | Alpha. And, by the way, if you need, for example, so that the user has the opportunity to set the color value in the form, the Wolfram Programming Cloud will automatically create a field with a choice of color using a palette. You can also add all sorts of switches, sliders, or any other controls.

OK, but in this place professional programmers may wonder: “This is all great, but how can I use all this in my environment?”. The answer is that we put a lot of effort into making it simple. For example, let's say for forms, the Wolfram Language has an extremely transparent mechanism that allows you to embed them in arbitrary XML templates , as well as customize their appearance and functionality as you need it.

When you work with the API, Wolfram Cloud Programming allows you to easily create “ embed code ” to call the API from any standard programming language:

Embed code for calling an API from any standard language

Soon, it will also be easy to deploy cloud objects in mobile applications. In the future, Embedded Wolfram Engines and other things will appear.

So what does all this mean? I think this is very important because it really changes the whole process and the economics of programming. I even saw how much everything changes in our own company. Since the Wolfram Language and the Wolfram Programming Cloud come out together, there are more and more places where we had to use them within the company. And each time it was amazing to see programming tasks that were previously solved for several weeks or months, and now they were suddenly done in days or even less.

But much more important is that the whole concept of the Wolfram Language, as I am knowledge-based, makes it possible for the first time to do things in programming that it would have been absurd to even consider. An example from our own company - thanks to the Wolfram Language, we managed to create Wolfram | Alpha, a service that now consists of millions of lines of code in this language.

But the most exciting thing that happens today is that with the launch of the Wolfram Programming Cloud, all these technologies are now available to everyone for projects from the smallest to the smallest.

It is designed so that anyone can just go to a web browser and - for free - start writing codes in the Wolfram Language, and even deploy them on a small scale in the Wolfram Cloud. For large projects, there is also a wide range of possibilities - including even the possibility of getting your own Wolfram Private Cloud (Wolfram Private Cloud) within your organization.

It should be mentioned that you do not need to do everything in a web browser. Creating a notebook interface for the Wolfram Programming Cloud was not an easy task and today there are certain limitations to this, imposed by modern web browsers and tools. But there is also an equivalent desktop version of the Wolfram Programming Cloud - which will give you the benefit of more than 25 years of interface development we have done for Mathematica and CDF

Wolfram Desktop

It's great - and often convenient - to be able to use the Wolfram Cloud Programmer purely on the Internet. But at least for now, you will get the best results and experience from combining a desktop computer and a cloud in your work by launching the native Wolfram Desktop interface connected to the Wolfram Cloud. What is really amazing is how well everything is connected together, that you can easily transfer notebooks between the cloud and the desktop computer.

I created in my time several fairly complex software systems. But the Wolfram Programming Cloud is the hardest thing I've ever seen. Of course, it is based on a huge stack of Wolfram Language technologies, but the collection of interactions that occurs in the Wolfram Programming Cloud between the Wolfram Language Core, Wolfram Knowledgebase ( Wolfram Knowledge Base), the Wolfram Natural Language Understanding , and all kinds of other subsystems is surprisingly complex .

There are, of course, rough edges (and please feel free to tell us about them!). Many things will be, say, made more efficient and faster. But I am very pleased that we are releasing today under the name Wolfram Programming Cloud.

So, if you want to try the Wolfram Cloud, what should you do? First, go to the Wolfram Programming Cloud on the Internet :

Wolfram Programming Cloud on the web

Below are two videos for a quick start (in Russian):





You can also use the Examples Gallery . Or go to the notebook Things you should try - and start running sample code in the Woflram Language directly in the Wolfram Programming Cloud. If you are an experienced programmer, I strongly recommend that you go to Quick Introduction for programmers :

The Wolfram Language: A Fast Introduction for Programmers

This will help you to quickly learn the basic principles and concepts of the Wolfram Language, and quickly reach a level where you can easily read large Wolfram programs and just start “expanding your vocabulary” among its approximately 5,000 built-in functions :

Function categories for the Wolfram Language

Today is an important day not only for our company and our technology, but also, I hope, for programming as a whole. There is a lot of things that appear for the first time in the Wolfram Programming Cloud - something about how wide and deep it can work with things, something in the basic ideas and principles . On top of how much Wolfram Programming Cloud simplifies and automates many things in existing programming, I think that it can create completely new classes of software applications, and I suspect it can generate a wave of new startups based on algorithms.

For me it was a long journey. But today I am incredibly excited to start a new chapter in my life, as well as the fact that I have the opportunity to see what people can do with the Wolfram Language and the Wolfram Programming Cloud.

Source: https://habr.com/ru/post/227325/


All Articles