Wolfram Programming Cloud (Облако Программирования Wolfram) теперь доступно!

в 22:48, , рубрики: Без рубрики

Wolfram Programming Cloud (Облако Программирования Wolfram) теперь доступно!
Перевод поста Стивена Вольфрама (Stephen Wolfram, CEO Wolfram Research).
Оригинал поста: Wolfram Programming Cloud Is Live!

Двадцать пять лет назад в этот самый день мы выпустили Mathematica 1.0. И я очень рад, что сегодня тоже станет историческим днем: мы выпускаем Wolfram Programming Cloud (Облако программирования Wolfram) — первый объект в линейке продуктов, основанных на новом Wolfram Language (Языке программирования Wolfram).

Wolfram Programming Cloud

Моей основной целью в работе с Wolfram Language, и Wolfram Programming Cloud в частности, было переопределение процесса программирования, максимально возможная автоматизация всего, что возможно, для того, чтобы человек мог выразить все, что он хочет сделать, с достаточной ясностью и простотой, а все тонкости того, как это выполнить делались автоматически.

Я работал над этой концепцией последние 30 лет, постепенно надстраивая необходимый набор технологий, сначала в Mathematica, затем в Wolfram|Alpha, а теперь все это представлено в законченном виде в Языке Wolfram. Язык Wolfram, как я рассказывал ранее, является новым типом языков программирования — это язык программирования, основанный на знаниях, философия которого заключается в том, чтобы включить в язык настолько много знаний, насколько это возможно, таким образом, чтобы при этом все была автоматизировано настолько, насколько это возможно.

Облако программирования Wolfram — это приложение Языка Wolfram, которое специализировано для программирования, разработки и развертывания облачных программ.

Как же оно работает? Вы можете выяснить это самостоятельно! Начать работу с ним крайне просто. Просто зайдите в Wolfram Programming Cloud из любого браузера под своим именем и нажмите New. Вы получите то, что мы называем блокнотом (ноутбуком) (да, мы ввели их уже более чем 25 лет назад для системы Mathematica). После этого вы можете просто начать вводить код.

Type code in Wolfram Programming Cloud

Все в этом документе интерактивно. Когда вы ввели что-то, вы можете сразу же вычислить это и увидеть результат непосредственно в блокноте.

Скажем, вы хотите создать небольшую программу, которая берет текст и выясняет, на каком языке этот текст написан, затем показывает картинку в виде флага самой большой страны, жители которой говорят на этом языке.

Для начала, вам следует использовать встроенные возможности Языка Wolfram в области машинного обучения — применить функцию-классификатор языка:

Wolfram Language has a built-in machine-learning classifier

OK. Это хорошее начало. Теперь нам требуется найти самую большую страну, которая говорит на этом языке:

Find the largest country that speaks a given language

Теперь мы можем получить её флаг:

Find the country's flag

Блокноты в Облаке программирования Wolfram могут содержать в себе смесь текста, кода и любых других вещей, скажем вы можете легко задокументировать все, что вы сделали:

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

Мы, очевидно, только что сильно использовали то, что Язык Wolfram основан на знаниях. Теперь давайте представим, что мы хотим сделать некий графический объект — картинку — в которой мы программно наложим код языка на флаг страны.

Мне потребовалось около 3 минут, чтобы написать небольшую функцию, использующую алгоритмы обработки изображений, которая решает эту задачу:

Image processing function to put a language code on a flag

Теперь мы можем протестировать эту функцию:

Testing the labeled-flag function

Интересно посмотреть на то, что используется в этой маленькой функции. В ней есть немного машинного обучения, некоторые сведения о языках людей и странах, немного набора текста, и, наконец, немного алгоритмов обработки изображений. Вот что поистине потрясающе в Wolfram Language, так это то, что все это и много много больше — уже встроено в язык, который устроен так, что все эти элементы прекрасно работают вместе. (Конечно, эта концепция устройства языка — то, над чем я провел значительную часть последних трех десятилетий моей жизни.)

Итак, мы имеем функцию, которая что-то выполняет. Что мы можем сделать с ней теперь? Одна из самых больших особенностей Wolfram Programming Cloud заключается в том, что оно позволяет нам использовать Wolfram Language для того, чтобы сделать развертывание этой функции в облаке.

Один из способов, которыми мы можем сделать это — сделать Web API. И это очень просто в Языке Wolfram. Мы просто создадим символьную функцию API — после чего поместим её в облако:

Specify a symbolic API function and deploy it to the cloud

Теперь если мы вызовем эту API функцию из любого места в Интернете перейдя по соответствующему URL, наш код на Языке Wolfram будет выполнен в Облаке Wolfram и мы получим результат в том месте, откуда мы вызывали API функцию, в данном случае в виде PNG-изображения:

ay "bonjour," get a French flag

Конечно, можно добавить к этой функции множество наворотов. Мы можем сделать картинку более красивой. Можем сделать код более эффективным, заранее вычислив некоторые вещи. И так далее. Но для меня весьма поразительно и чрезвычайно полезно то, что в считанные секунды я в состоянии развернуть что-то в облаке и могу затем использовать это на любом сайте, в любой веб-программе и т. д.

Ниже еще один пример. На этот раз я создам URL который, каждый раз, когда его посещают, будет выдавать текущее количество минут до заката в том месте, в котором сейчас находится пользователь:

Deployment code for the computed number of minutes until sunset

Каждый раз, когда вы будете посещать этот URL, вы получите число в виде небольшого текстового фрагмента. (Вы можете также получить результат, скажем, в формате JSON или во множестве других форматов.)

Wolfram Programming Cloud (Облако Программирования Wolfram) теперь доступно!

Вы также можете создать, скажем, веб-страницу, на которой отображался бы обратный отсчет до заката, который автоматически обновлялся каждую секунду:

Deploy a counter for the number of seconds until sunset

How many seconds until sunset?

Вы спросите «Как насчет форм ввода?». Создавать их также очень просто. Скажем, код ниже создает форму, которая генерирует карту заданной локации с отмеченным на ней диском заданного радиуса:

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

Вот полученная форма ввода:

The map-generating form deployed on the web

И результат, полученный после вычислений:

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

В этой форме использовано много замечательных технологий. Скажем, поля ввода в этой форме являются так называемыми «Интеллектуальными полями» (об этом говорят соответствующие иконки), потому что в них можно вводить не только конкретные запросы, но также сотни типов произвольных форм естественного языка, которые интерпретируются посредством той же самой Технологии Понимания Естественного Языка, которая является сердцем Wolfram|Alpha. И, кстати, если вам требуется, например, чтобы у пользователя была возможность задать цветовое значение в форме, Облако Программирования Wolfram автоматически создаст поле с выбором цвета с помощью палитры. Вы также можете добавлять всевозможные переключатели, слайдеры или любые другие элементы управления.

OK, но в этом месте профессиональные программисты могут задаться вопросом: “Это все замечательно, но как я могу использовать все это в своей среде?”. Ответ — мы приложили немало усилий, для того, чтобы это было просто. Например, скажем для форм, Язык Wolfram имеет крайне прозрачный механизм, позволяющий вам встраивать их в произвольные XML шаблоны, а также настраивать их внешний вид и функционал так, как вам это нужно.

Когда вы работаете с API, Облако Программирования Wolfram позволяет вам легко создавать “код встраивания” для вызова API из любого стандартного языка программирования:

Embed code for calling an API from any standard language

Вскоре также просто будет развертывать объекты облака и в мобильных приложениях. В будущем появятся Embedded Wolfram Engines (Встраиваемые Движки Wolfram) и другие вещи.

Итак, что же все это означает? Я думаю, что это очень важно, потому что это действительно меняет весь процесс и экономику программирования. Я даже видел насколько сильно все меняется в нашей собственной компании. Так как Язык Wolfram и Облако Программирования Wolfram выходят вместе, то образовывалось все больше и больше мест, где нам приходилось использовать их внутри компании. И каждый раз было удивительно видеть задачи программирования, которые ранее решались несколько недель или месяцев, а теперь вдруг делались в дни или даже меньше.

Но гораздо более важным является то, что вся концепция Языка Wolfram, как я зыка основанного на знаниях, делает впервые возможными такие вещи в программировании, которые было бы абсурдным ранее даже рассматривать. Пример из нашей собственной компании — благодаря Языку Wolfram нам удалось создать Wolfram|Alpha, сервис, который сейчас состоит уже из миллионов строк кода на этом языке.

Но самая захватывающаяся вещь, которая происходит сегодня, так это то, что с запуском Облака Программирования Wolfram, все эти технологии теперь доступны каждому для реализации проектов от больших до самых маленьких.

Оно устроено так, что любой может просто зайти в веб-браузер и — бесплатно — начать писать коды на Языке Wolfram, и даже в небольших масштабах развертывать их в Облаке Wolfram. Для больших проектов также есть широкий диапазон возможностей — включая даже возможность получения своего собственного Wolfram Private Cloud (Частного Облака Wolfram) внутри своей организации.

Следует упомянуть, что вам нет нужды делать все в веб-браузере. Создание интерфейса блокнота для Облака Программирования Wolfram было очень не простой задачей и на сегодняшний день существуют определенные ограничения для этого, накладываемые современными веб-браузерами и инструментами. Но существует также и эквивалентная настольная версия Wolfram Programming Cloud — которая даст вам преимущества 25 с лишним лет интерфейсных разработок, проделанных нами для Mathematica и CDF

Wolfram Desktop

Это отлично — и часто удобно — иметь возможность использовать Облако Программирования Wolfram чисто в Интернете. Но, по крайней мере сейчас, вы получите наилучшие результаты и опыт от совмещения в своей работе настольного компьютера и облака, запуская родной Wolfram Desktop interface (Настольный Интерфейс Wolfram), соединенный с Облаком Wolfram. Что на самом деле потрясающе, так это то, насколько все вместе хорошо соединено, что вы можете без каких-либо усилий передавать блокноты между облаком и настольным компьютером.

Я создал в свое время несколько достаточно сложных программных систем. Но Wolfram Programming Cloud это самое сложное из того, что я когда-либо видел. Конечно, оно основано на огромном стеке технологий Языка Wolfram, но коллекция взаимодействий, которая происходит в Облаке Программирования Wolfram между ядром Языка Wolfram, Wolfram Knowledgebase (Базой Знаний Wolfram), Системой Понимания Естественного Языка Wolfram, Облаком Wolfram и всеми видами других подсистем является удивительно сложной.

Еще есть, конечно, шероховатости (и, пожалуйста, не стесняйтесь рассказывать нам о них!). Многие вещи будут, скажем, сделаны более эффективными и быстрыми. Но я очень доволен тем, что мы сегодня выпускаем под именем Wolfram Programming Cloud.

Итак, если вы захотите попробовать Облако Wolfram, что же вам следует сделать? Во-первых, зайдите в Wolfram Programming Cloud в Интернете:

Wolfram Programming Cloud on the web

Ниже приведены два видео для быстрого старта (на русском языке):

Вы также можете воспользоваться Галереей Примеров. Или перейти в блокнот Вещи, которые стоит попробовать — и начать запускать примеры кодов на Языке Woflram непосредственно в Облаке Программирования Wolfram. Если вы опытный программист, я настоятельно рекомендую вам перейти к Быстрому введению для программистов:

The Wolfram Language: A Fast Introduction for Programmers

Это поможет вам быстро усвоить основные принципы и понятия Языка Wolfram, и быстро дойти до уровня, когда вы сможете легко читать большие программы на Языке Wolfram и просто начать «расширять свой ​​словарный запас» среди его примерно 5000 встроенных функций:

Function categories for the Wolfram Language

Сегодня важный день не только для нашей компании и нашей технологии, но также, я надеюсь, для программирования в целом. Есть много такого, что появляется впервые в Wolfram Programming Cloud — что-то в том, насколько широко и глубоко он может работать с вещами, что-то в основных идеях и принципах. Вдобавок к тому, насколько сильно Облако Программирования Wolfram упрощает и автоматизирует многие вещи в существующем программировании, я думаю что оно способно создать совершенно новые классы программных приложений, а также, я подозреваю, способно породить волну новых стартапов, основанных на алгоритмах.

Для меня это было долгое путешествие. Но сегодня я невероятно взволнован, начиная новую главу в своей жизни, а также тем, что я имею возможность увидеть то, что люди смогут делать вместе с Языком Wolfram и Облаком Программирования Wolfram.

Автор: OsipovRoman

Источник

Поделиться

* - обязательные к заполнению поля