- PVSM.RU - https://www.pvsm.ru -
Перевод поста Стивена Вольфрама [1] (Stephen Wolfram, CEO Wolfram Research).
Оригинал поста: Wolfram Programming Cloud Is Live! [2]
Двадцать пять лет назад [3] в этот самый день мы выпустили Mathematica [4] 1.0. И я очень рад, что сегодня тоже станет историческим днем: мы выпускаем Wolfram Programming Cloud [5] (Облако программирования Wolfram) — первый объект в линейке продуктов [6], основанных на новом Wolfram Language [7] (Языке программирования Wolfram).
[8]
Моей основной целью в работе с Wolfram Language [7], и Wolfram Programming Cloud в частности, было переопределение процесса программирования, максимально возможная автоматизация всего, что возможно, для того, чтобы человек мог выразить все, что он хочет сделать, с достаточной ясностью и простотой, а все тонкости того, как это выполнить делались автоматически.
Я работал над этой концепцией последние 30 лет, постепенно надстраивая необходимый набор технологий, сначала в Mathematica, затем в Wolfram|Alpha [9], а теперь все это представлено в законченном виде в Языке Wolfram. Язык Wolfram, как я рассказывал ранее [10], является новым типом языков программирования — это язык программирования, основанный на знаниях, философия [11] которого заключается в том, чтобы включить в язык настолько много знаний, насколько это возможно, таким образом, чтобы при этом все была автоматизировано настолько, насколько это возможно.
Облако программирования Wolfram — это приложение Языка Wolfram, которое специализировано для программирования, разработки и развертывания облачных программ.
Как же оно работает? Вы можете выяснить это самостоятельно [12]! Начать работу с ним крайне просто. Просто зайдите в Wolfram Programming Cloud из любого браузера под своим именем и нажмите New. Вы получите то, что мы называем блокнотом [13] (ноутбуком) (да, мы ввели их уже более чем 25 лет назад для системы Mathematica). После этого вы можете просто начать вводить код [14].
Все в этом документе интерактивно [14]. Когда вы ввели что-то, вы можете сразу же вычислить это и увидеть результат непосредственно в блокноте.
Скажем, вы хотите создать небольшую программу, которая берет текст и выясняет, на каком языке этот текст написан, затем показывает картинку в виде флага самой большой страны, жители которой говорят на этом языке.
Для начала, вам следует использовать встроенные возможности Языка Wolfram в области машинного обучения — применить функцию-классификатор [16] языка:
OK. Это хорошее начало. Теперь нам требуется найти самую большую страну, которая говорит на этом языке:
Теперь мы можем получить её флаг:
Блокноты в Облаке программирования Wolfram могут содержать в себе смесь текста, кода и любых других вещей, скажем вы можете легко задокументировать все, что вы сделали:
Мы, очевидно, только что сильно использовали то, что Язык Wolfram основан на знаниях. Теперь давайте представим, что мы хотим сделать некий графический объект — картинку — в которой мы программно наложим код языка на флаг страны.
Мне потребовалось около 3 минут, чтобы написать небольшую функцию, использующую алгоритмы обработки изображений [17], которая решает эту задачу:
Теперь мы можем протестировать эту функцию:
Интересно посмотреть на то, что используется в этой маленькой функции. В ней есть немного машинного обучения [18], некоторые сведения о языках людей [19] и странах [20], немного набора текста [21], и, наконец, немного алгоритмов обработки изображений [17]. Вот что поистине потрясающе в Wolfram Language, так это то, что все это и много много больше [22] — уже встроено в язык, который устроен так, что все эти элементы прекрасно работают вместе. (Конечно, эта концепция устройства языка — то, над чем я провел [23] значительную часть последних трех десятилетий моей жизни.)
Итак, мы имеем функцию, которая что-то выполняет. Что мы можем сделать с ней теперь? Одна из самых больших особенностей Wolfram Programming Cloud заключается в том, что оно позволяет нам использовать Wolfram Language для того, чтобы сделать развертывание этой функции [24] в облаке.
Один из способов, которыми мы можем сделать это — сделать Web API. И это очень просто в Языке Wolfram. Мы просто создадим символьную функцию API [25] — после чего поместим её в облако:
Теперь если мы вызовем эту API функцию из любого места в Интернете перейдя по соответствующему URL, наш код на Языке Wolfram будет выполнен в Облаке Wolfram и мы получим результат в том месте, откуда мы вызывали API функцию, в данном случае в виде PNG-изображения:
Конечно, можно добавить к этой функции множество наворотов. Мы можем сделать картинку более красивой. Можем сделать код более эффективным, заранее вычислив некоторые вещи. И так далее. Но для меня весьма поразительно и чрезвычайно полезно то, что в считанные секунды я в состоянии развернуть что-то в облаке и могу затем использовать это на любом сайте, в любой веб-программе и т. д.
Ниже еще один пример. На этот раз я создам URL который, каждый раз, когда его посещают, будет выдавать текущее количество минут до заката в том месте [27], в котором сейчас находится пользователь:
Каждый раз, когда вы будете посещать этот URL, вы получите число в виде небольшого текстового фрагмента. (Вы можете также получить результат, скажем, в формате JSON [29] или во множестве других форматов.)
Вы также можете создать, скажем, веб-страницу, на которой отображался бы обратный отсчет до заката, который автоматически обновлялся каждую секунду:
Вы спросите «Как насчет форм ввода?». Создавать их также очень просто [31]. Скажем, код ниже создает форму, которая генерирует карту [32] заданной локации с отмеченным на ней диском заданного радиуса:
Вот полученная форма ввода:
И результат, полученный после вычислений:
В этой форме использовано много замечательных технологий. Скажем, поля ввода в этой форме являются так называемыми «Интеллектуальными полями» (об этом говорят соответствующие иконки), потому что в них можно вводить не только конкретные запросы, но также сотни типов [34] произвольных форм естественного языка, которые интерпретируются посредством той же самой Технологии Понимания Естественного Языка [35], которая является сердцем Wolfram|Alpha. И, кстати, если вам требуется, например, чтобы у пользователя была возможность задать цветовое значение [36] в форме, Облако Программирования Wolfram автоматически создаст поле с выбором цвета с помощью палитры. Вы также можете добавлять всевозможные переключатели, слайдеры или любые другие элементы управления.
OK, но в этом месте профессиональные программисты могут задаться вопросом: “Это все замечательно, но как я могу использовать все это в своей среде?”. Ответ — мы приложили немало усилий, для того, чтобы это было просто. Например, скажем для форм, Язык Wolfram имеет крайне прозрачный механизм [37], позволяющий вам встраивать их в произвольные XML шаблоны [38], а также настраивать их внешний вид и функционал так, как вам это нужно.
Когда вы работаете с API, Облако Программирования Wolfram позволяет вам легко создавать “код встраивания [39]” для вызова API из любого стандартного языка программирования:
Вскоре также просто будет развертывать объекты облака и в мобильных приложениях. В будущем появятся Embedded Wolfram Engines (Встраиваемые Движки Wolfram) и другие вещи.
Итак, что же все это означает? Я думаю, что это очень важно, потому что это действительно меняет весь процесс и экономику программирования. Я даже видел насколько сильно все меняется в нашей собственной компании. Так как Язык Wolfram и Облако Программирования Wolfram выходят вместе, то образовывалось все больше и больше мест, где нам приходилось использовать их внутри компании. И каждый раз было удивительно видеть задачи программирования, которые ранее решались несколько недель или месяцев, а теперь вдруг делались в дни или даже меньше.
Но гораздо более важным является то, что вся концепция Языка Wolfram, как я зыка основанного на знаниях, делает впервые возможными такие вещи в программировании, которые было бы абсурдным ранее даже рассматривать. Пример из нашей собственной компании — благодаря Языку Wolfram нам удалось создать Wolfram|Alpha, сервис, который сейчас состоит уже из миллионов строк кода на этом языке.
Но самая захватывающаяся вещь, которая происходит сегодня, так это то, что с запуском Облака Программирования Wolfram, все эти технологии теперь доступны каждому для реализации проектов от больших до самых маленьких.
Оно устроено так, что любой может просто зайти в веб-браузер и — бесплатно — начать писать коды на Языке Wolfram, и даже в небольших масштабах развертывать их в Облаке Wolfram. Для больших проектов также есть широкий диапазон возможностей — включая даже возможность получения своего собственного Wolfram Private Cloud (Частного Облака Wolfram) внутри своей организации.
Следует упомянуть, что вам нет нужды делать все в веб-браузере. Создание интерфейса блокнота для Облака Программирования Wolfram было очень не простой задачей и на сегодняшний день существуют определенные ограничения для этого, накладываемые современными веб-браузерами и инструментами. Но существует также и эквивалентная настольная версия Wolfram Programming Cloud — которая даст вам преимущества 25 с лишним лет интерфейсных разработок, проделанных нами для Mathematica и CDF [41]
Это отлично — и часто удобно — иметь возможность использовать Облако Программирования Wolfram чисто в Интернете. Но, по крайней мере сейчас, вы получите наилучшие результаты и опыт от совмещения в своей работе настольного компьютера и облака, запуская родной Wolfram Desktop interface (Настольный Интерфейс Wolfram), соединенный с Облаком Wolfram. Что на самом деле потрясающе, так это то, насколько все вместе хорошо соединено, что вы можете без каких-либо усилий передавать блокноты между облаком и настольным компьютером.
Я создал в свое время несколько достаточно сложных программных систем. Но Wolfram Programming Cloud это самое сложное из того, что я когда-либо видел. Конечно, оно основано на огромном стеке технологий Языка Wolfram, но коллекция взаимодействий, которая происходит в Облаке Программирования Wolfram между ядром Языка Wolfram, Wolfram Knowledgebase [42] (Базой Знаний Wolfram), Системой Понимания Естественного Языка Wolfram [43], Облаком Wolfram [44] и всеми видами других подсистем является удивительно сложной.
Еще есть, конечно, шероховатости (и, пожалуйста, не стесняйтесь рассказывать нам о них!). Многие вещи будут, скажем, сделаны более эффективными и быстрыми. Но я очень доволен тем, что мы сегодня выпускаем под именем Wolfram Programming Cloud.
Итак, если вы захотите попробовать Облако Wolfram, что же вам следует сделать? Во-первых, зайдите в Wolfram Programming Cloud в Интернете [12]:
Ниже приведены два видео для быстрого старта (на русском языке):
Вы также можете воспользоваться Галереей Примеров [45]. Или перейти в блокнот Вещи, которые стоит попробовать [46] — и начать запускать примеры кодов на Языке Woflram непосредственно в Облаке Программирования Wolfram. Если вы опытный программист, я настоятельно рекомендую вам перейти к Быстрому введению для программистов [47]:
Это поможет вам быстро усвоить основные принципы и понятия Языка Wolfram, и быстро дойти до уровня, когда вы сможете легко читать большие программы на Языке Wolfram и просто начать «расширять свой словарный запас» среди его примерно 5000 встроенных функций [22]:
Сегодня важный день не только для нашей компании и нашей технологии, но также, я надеюсь, для программирования в целом. Есть много такого, что появляется впервые в Wolfram Programming Cloud — что-то в том, насколько широко и глубоко он может работать с вещами, что-то в основных идеях и принципах [11]. Вдобавок к тому, насколько сильно Облако Программирования Wolfram упрощает и автоматизирует многие вещи в существующем программировании, я думаю что оно способно создать совершенно новые классы программных приложений, а также, я подозреваю, способно породить волну новых стартапов, основанных на алгоритмах.
Для меня это было долгое путешествие. Но сегодня я невероятно взволнован, начиная новую главу в своей жизни, а также тем, что я имею возможность увидеть то, что люди смогут делать вместе с Языком Wolfram и Облаком Программирования Wolfram.
Автор: OsipovRoman
Источник [49]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/news/63127
Ссылки в тексте:
[1] Стивена Вольфрама: http://www.stephenwolfram.com/
[2] Wolfram Programming Cloud Is Live!: http://blog.wolfram.com/2014/06/23/wolfram-programming-cloud-is-live/
[3] Двадцать пять лет назад: http://www.mathematica25.com/
[4] Mathematica: http://www.wolfram.com/mathematica/
[5] Wolfram Programming Cloud: http://www.wolfram.com/programming-cloud/index.en.html
[6] линейке продуктов: http://habrahabr.ru/post/221487/
[7] Wolfram Language: http://www.wolfram.com/language/
[8] Image: http://www.wolfram.com/programming-cloud/
[9] Wolfram|Alpha: http://www.wolframalpha.com/
[10] рассказывал ранее: http://blog.stephenwolfram.com/2014/02/starting-to-demo-the-wolfram-language/
[11] философия: http://www.wolfram.com/language/principles/
[12] самостоятельно: http://www.wolframcloud.com
[13] блокнотом: http://www.wolfram.com/language/fast-introduction-for-programmers/notebook-documents/
[14] вводить код: http://www.wolfram.com/language/fast-introduction-for-programmers/interactive-usage/
[15] Image: http://www.wolframcloud.com/
[16] классификатор: http://reference.wolfram.com/language/ref/Classify.html
[17] алгоритмы обработки изображений: http://reference.wolfram.com/language/guide/ImageProcessing.html
[18] машинного обучения: http://reference.wolfram.com/language/guide/MachineLearning.html
[19] сведения о языках людей: http://reference.wolfram.com/language/ref/LanguageData.html
[20] странах: http://reference.wolfram.com/language/ref/CountryData.html
[21] набора текста: http://reference.wolfram.com/language/guide/NotebookFormattingAndStyling.html
[22] много много больше: http://reference.wolfram.com/language/
[23] я провел: http://blog.stephenwolfram.com/2008/01/ten-thousand-hours-of-design-reviews/
[24] сделать развертывание этой функции: http://reference.wolfram.com/language/guide/CloudFunctionsAndDeployment.html
[25] функцию API: http://reference.wolfram.com/language/ref/APIFunction.html
[26] Image: https://www.wolframcloud.com/objects/2ad71fe2-50a4-47c0-8e00-446f5bc3c7a9?text=bonjour
[27] в том месте: http://reference.wolfram.com/language/ref/$GeoLocation.html
[28] Image: https://www.wolframcloud.com/objects/cd7b240a-80cc-4ac0-bb71-cf1614b22228
[29] JSON: http://reference.wolfram.com/language/ref/ResponseForm.html
[30] Image: https://www.wolframcloud.com/objects/c418da80-fbb2-4559-8f6e-a3c36bf2d4cd
[31] очень просто: http://reference.wolfram.com/language/ref/FormFunction.html
[32] генерирует карту: http://reference.wolfram.com/language/ref/GeoGraphics.html
[33] Image: https://www.wolframcloud.com/objects/247910be-d0ba-4808-b64b-6199cbdaa6a7
[34] сотни типов: http://reference.wolfram.com/language/guide/InterpretingStrings.html
[35] Технологии Понимания Естественного Языка: http://www.wolfram.com/natural-language-understanding
[36] цветовое значение: http://reference.wolfram.com/language/ref/interpreter/Color.html
[37] прозрачный механизм: http://reference.wolfram.com/language/guide/WorkingWithTemplates.html
[38] XML шаблоны: http://reference.wolfram.com/language/ref/XMLTemplate.html
[39] код встраивания: http://reference.wolfram.com/language/ref/EmbedCode.html
[40] Image: http://habrastorage.org/getpro/habr/post_images/4ac/e13/9a8/4ace139a8b283d8d4f64cc5866714169.png
[41] CDF: http://www.wolfram.com/cdf/
[42] Wolfram Knowledgebase: http://www.wolfram.com/knowledgebase/
[43] Системой Понимания Естественного Языка Wolfram: http://www.wolfram.com/natural-language-understanding/
[44] Облаком Wolfram: http://www.wolfram.com/cloud
[45] Галереей Примеров: http://www.wolfram.com/language/gallery/
[46] Вещи, которые стоит попробовать: https://programming.wolframcloud.com/objects/7ea9a27a-1ea8-4df6-9f99-8995ef312428
[47] Быстрому введению для программистов: http://www.wolfram.com/language/fast-introduction-for-programmers
[48] Image: http://www.wolfram.com/language/fast-introduction-for-programmers/
[49] Источник: http://habrahabr.ru/post/227325/
Нажмите здесь для печати.