Стивен Вольфрам: “Внедряя вычисления повсюду”

Перевод доклада Стивена Вольфрама, прочитанного им на фестивале SXSW 2014.
Оригинальный текст вы можете найти здесь.

sw-sxsw.png

Две недели назад я выступал с речью на конференции SXSW в Остине, Техас. Эта статья является немного доработанными тезисами доклада (это конспект текста, включающий демонстрации, от которых пришлось отказаться в процессе выступления):

Итак, на этот час запланировано довольно много.

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

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

Итак, основная задача в том чтобы начать относиться к вычислениям серьезно. Понять идею вычислений как таковых, а затем создать технологию, которая позволит внедрить их повсюду — после чего посмотреть к чему это приведет.

Можно сказать, я гонялся за этой идеей 40 лет. Я уже давно балансирую на стыке науки и технологий — создаю все более масштабные строительные блоки и строю из них все более высокую башню. И каждые несколько лет мне удается увидеть куда она будет расти дальше. По-моему, получается здорово. Однако, в последние несколько лет случилось нечто удивительное — своего рода великая унификация, которая ведет к технологическому Кембрийскому взрыву. И сегодня я впервые вам частично её представлю.

Но, для начала, немного истории. 40 лет назад я был 14-летним юнцом, который впервые прикоснулся к компьютеру (он тогда еще был размером со стол). Я не часто использовал его как нечто фундаментальное, но пытался с его помощью понять некоторые вещи из физики, которая меня по-настоящему интересовала. В тот момент я открыл для себя некоторые важные вещи, которыми пользуюсь до сих пор. Но сейчас я понимаю что самая важная вещь, которую я понял тогда относилась вовсе не к физике: чем лучше инструменты, которые мы используем, тем глубже мы сможем копнуть. Мне не очень хорошо давалась “математика на бумаге”, а в то время это было серьезной проблемой для тех, кто хотел заниматься физикой. Однако, я осознавал, что расчеты можно делать на компьютере и начал создавать инструменты для этого. Очень скоро я с моими программами был лучше всех в математических расчетах для физики.

Вернемся в 1981-й год. В этом году случилось нечто восхитительное для 21-летнего ученого — я превратил все это в свой первый продукт и свою первую компанию. Важно то, что это заставило меня осознать — программные продукты могут стимулировать интеллектуальное мышление. Предстояло выяснить как создать язык для математических расчетов на компьютере, и мне потребовалось многое понять о вычислениях чтобы достигнуть цели. А потом я снова погрузился в основы науки уже с использованием созданных инструментов.

В итоге, я понял, что в то время как с математикой все хорошо, её фундаментальная концепция нуждается в обобщении. Я начал изучать всю вселенную всевозможных формальных систем, которая по сути является всеобщей вычислительной вселенной возможных программ. Я ставил небольшие эксперименты — как бы направлял свой вычислительный телескоп на части этой вселенной и смотрел что там было. То что я увидел, было потрясающе. Ниже я покажу вам несколько простых программ.

Некоторые делают очень простые вещи, но есть и такие, которые при кажущейся простоте делают удивительно сложные вещи.

StephenWolfram-SXSW2014_2.gif

Эта — моя любимая программа, потому что ее я увидел первой в данном классе программ. Она называется правило 30, и 30 лет спустя она все еще на обороте моих визиток. (См. примечание 1 в конце.)

StephenWolfram-SXSW2014_3.gif

Простейшая программа. Простейшее начальное условие. Но она делает нечто безумное. Она создает сложные структуры из ничего, что является довольно интересным феноменом. Мне кажется, она отражает великий секрет того как работает природа. И да, я потратил много лет на изучение этого — безумно интересное занятие.

Но в процессе изучения этих вещей я понял, что мне необходимы более совершенные инструменты, чем те, которые были у меня. И, в основном поэтому, я создал Mathematica. Немного иронично, что названием программы является слово “математика”. Потому что она изначально задумывалась чтобы расширить границы классической математики. Основная сверхидея в том, чтобы докопаться до самой сути математики и отыскать ее вычислительный фундамент, на котором все будет строиться. Мне удалось это сделать в языке системы Mathematica. За многие годы он отлично себя показал, а мы постоянно его дополняли и дорабатывали. (См. примечание 2 в конце.)

StephenWolfram-SXSW2014_4.gif

На самом деле, Mathematica в прошлом году праздновала свою 25-летнюю годовщину. За 25 лет ее использовали для изобретения, открытия и изучения бесчисленного количества вещей в огромном количестве университетов, больших компаний и подобных организаций по всему миру. Мне самому удалось около 10 лет поработать с Mathematica для собственных научных исследований. Я открыл много интересного в области науки, технологий и философии и написал об этом книгу, которая называется “Новый вид науки” (A New Kind of Science). (См. примечание 3 в конце.)

StephenWolfram-SXSW2014_5.gif

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

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

StephenWolfram-SXSW2014_6.gif

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

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

StephenWolfram-SXSW2014_7.gif

Вы вводите что-нибудь туда на естественном языке, а система использует всю мощь вложенных в нее данных, знаний, методов и алгоритмов чтобы просто сгенерировать отчет о том что вы спросили. Да, кстати, если вы пользуетесь Wolfram|Alpha, вы должно быть заметили, что вчера веб-интерфейс Wolfram|Alpha приобрел новый элегантный вид. Wolfram|Alpha знает очень о многом. Тысячи областей знаний и квинтильоны частичек данных покрывают по истине огромную область имеющихся у человечества знаний.

StephenWolfram-SXSW2014_8.gif

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

Итак, что мы имеем: Mathematica, ставшая фундаментом для языка описания и выполнения любых технических вычислений. А еще у нас есть Wolfram|Alpha, которая знает все о нашем мире и взаимодействие с которой происходит с помощью крайне неоднозначного естественного языка. Ну, Mathematica росла более 25 лет, а Wolfram|Alpha всего 5. Мы непрерывно изобретаем новые пути для расширения основных направлений этих систем все дальше и дальше. Но сейчас случилось нечто поистине глобальное и невероятное. И лично для меня катализатором этого стала совсем другая область: облачные технологии.

Тогда мне казалось, что Облако не несет чего-то качественно нового — я думал, что это просто практично. Но я ошибся. Теперь я, наконец, понимаю, что это та самая деталь, позволяющая объединить два глобальных подхода к вычислениям (Mathematica и Wolfram|Alpha), чтобы сделать из этого нечто значительно более глобальное.

Сейчас я должен признаться, что результат всего этого обладает немалой интеллектуальной сложностью. Однако, он крайне практичен. Мне всегда нравились ситуации, когда большие идеи ведут к по-настоящему полезным инновационным продуктам, как это и происходит в Wolfram Research. Мы взяли одну сверхидею и делаем множество (надеюсь, полезных) продуктов. На каком-то уровне описать каждый продукт довольно просто, однако самое захватывающее — то, что они представляют из себя вместе. И вот об этом мне хотелось бы поговорить сегодня. Но, скажу наперед — хотя мне эта история кажется крайне важной, ее совсем не просто рассказать.

Но, главное — начать. В основе всего лежит то, что мы называем Языком Wolfram. Мы только сейчас начинаем понемногу его выпускать. (См. примечание 4 в конце.)

StephenWolfram-SXSW2014_9.gif

Ядро Языка Wolfram “выращивалось” в Mathematica более 25 лет. Там оно было отлично испытано, а теперь мы добавляем туда все новые идеи и технологии из Wolfram|Alpha и из Облака. Это позволяет нам перейти на новый качественный уровень. Я в полном восторге от этого.

Идея в том, чтобы создать язык, ориентированный на знания. Язык, в который встроен огромный объем знаний о вычислениях и о нашем мире. Дело в том, что большинство языков программирования ориентируются на основные машинные операции. Они предоставляют множество отличных путей для управления исполняемым кодом. Иногда у них бывают библиотеки для специфических вещей.

Но наша идея Языка Wolfram прямо противоположна — создать язык, в который встроено столько, сколько возможно. Где язык сам может выполнить столько, сколько возможно. Где все автоматизировано настолько, насколько это возможно.

Ок, давайте посмотрим на то как он работает.

Вы можете использовать язык Wolfram полностью в интерактивном режиме используя интерфейс ноутбука который мы создали для Mathematica.

StephenWolfram-SXSW2014_10.gif

Ок, здесь все понятно. Давайте сделаем что-нибудь немного посложнее:

StephenWolfram-SXSW2014_11.gif

Да… это большое число. Выглядит почти как куча случайных цифр, подобная, скажем, 60 тысячам точек, взятых с некоторого сенсора.

StephenWolfram-SXSW2014_12.gif

Каким образом мы можем проанализировать их? Всё, что может потребоваться уже встроено в язык Wolfram.

Так, скажем, мы можем вычислить среднее значение точно и приближенно:

StephenWolfram-SXSW2014_13.gif

StephenWolfram-SXSW2014_14.gif

Можем вычислить коэффициент асимметрии:

StephenWolfram-SXSW2014_15.gif

Или сотни других статистических величин, тестов или визуализаций.

StephenWolfram-SXSW2014_16.gif

Эта зависимость выглядит немного странно на самом деле. Но позвольте мне сейчас не вдаваться в подробности, объясняя этот эффект.

Хорошо. Вот нечто совсем другое. Давайте позволим языку Wolfram обратиться к учётной записи некоторого пользователя Facebook и извлечь граф его друзей:

StephenWolfram-SXSW2014_17.gif

Хорошо, мы получили граф, что дальше? Язык Wolfram знает как работать с графами и сетями. Скажем, давайте вычислим его разбиение на сообщества:

StephenWolfram-SXSW2014_18.gif

Давайте попробуем что-то иное. Сейчас мы получим изображение с моей маленькой камеры:

StephenWolfram-SXSW2014_19.gif

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

StephenWolfram-SXSW2014_20.gif

Мы получили изображение, разбитое на мелкие кусочки. Давайте сделаем это же интерактивным:

StephenWolfram-SXSW2014_21.gif

Теперь повернем каждый из фрагментов на некий угол:

StephenWolfram-SXSW2014_22.gif

Теперь, давайте ещё отсортируем их по цвету. Мы можем сделать таким образом некоторое забавное приложение, на выходе выдающее таблицу фрагментов:

StephenWolfram-SXSW2014_23.gif

StephenWolfram-SXSW2014_24.gif

Ок, это весьма забавно. Почему бы нам не написать об этом в нашем Твиттере?

StephenWolfram-SXSW2014_25.gif

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

StephenWolfram-SXSW2014_26.gif

Или время между восходом и закатом сегодня:

StephenWolfram-SXSW2014_27.gif

Или мы могли бы получить текущую температуру воздуха там, где мы сейчас:

StephenWolfram-SXSW2014_28.gif

Или график зависимости температуры от времени за прошедший день:

StephenWolfram-SXSW2014_29.gif

StephenWolfram-SXSW2014_30.gif

Этот язык на самом деле очень большой объект и на основе того, что мы сделали для Wolfram|Alpha, он также может отвечать на многие вопросы в форме естественного языка. И что действительно мощно, это то что мы можем использовать его для обозначения предметов в реальном мире.

Давайте просто введём “Ctrl” + “Shift” + “=” + “nyc” (первые три клавиши нужны просто для запуска интерфейса свободного ввода):

StephenWolfram-SXSW2014_31.gif

И эта конструкция преобразуется в объект “город Нью-Йорк”. Так что, теперь мы можем найти разницу температур там где мы находимся и в Нью-Йорке:

StephenWolfram-SXSW2014_32.gif

Ок. Давайте сделаем что-нибудь более сложное, найдем страны, граничащие с Украиной:

StephenWolfram-SXSW2014_33.gif

Теперь найдем длины границ этих стран:

StephenWolfram-SXSW2014_34.gif

И создадим из полученных данных таблицу:

StephenWolfram-SXSW2014_35.gif

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

StephenWolfram-SXSW2014_36.gif

Или мы можем найти все бывшие республики СССР:

StephenWolfram-SXSW2014_37.gif

И отобразить их флаги:

StephenWolfram-SXSW2014_38.gif

Теперь давайте найдем флаг какой из стран наиболее близок к французскому:

StephenWolfram-SXSW2014_39.gif

Довольно просто, не так ли?

Или давайте возьмем первые несколько бывших советских республик и создадим карты их столиц, на которых отметим круг с радиусом 10 миль:

StephenWolfram-SXSW2014_40.gif

StephenWolfram-SXSW2014_41.gif

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

И, вы знаете, есть огромное количество областей знаний, встроенных в язык Wolfram. Мы создавали все это более чем четверть века.

StephenWolfram-SXSW2014_42.gif

В языке есть знания как о алгоритмах, так и о мире.

В нем существует два больших принципа. Во-первых, максимальная автоматизация — автоматизировать как можно больше. Вы задаёте то, что вы хотите, чтобы язык сделал, и он сам выясняет, как это сделать. Могут быть сотни алгоритмов для выполнения чего-то в различных случаях. Но то, что мы хотим сделать — это мета-алгоритм, который сам выбирает наилучший способ сделать это. Таким образом, все что человек должен сделать — определить свои цели, после этого дело за системой, которая будет стремиться решить задачу наиболее быстрым, точным и красивым способом.

Например, есть функция Classify которая классифицирует данные, осуществляя классическую задачу машинного обучения. Вы просто набираете Classify и помещаете в нее небольшой обучающий набор прописных цифр (изображений) и значений, им соответствующих:

StephenWolfram-SXSW2014_43.gif

На выходе вы получаете классификатор.

Мы можем применить его к тому, что мы только что нарисовали:

StephenWolfram-SXSW2014_44.gif

Хорошо, ну вот еще одна важная вещь о языке Wolfram: это согласованность и единообразие всего. Мы стремимся, чтобы всё в языке сочеталось друг с другом. Даже при том, что это огромная система, если вы делаете в ней что-то с географическими данными, мы делаем так, чтобы она идеально подходила и тому, что вы делаете с графами и сетями.

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

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

StephenWolfram-SXSW2014_45.gif

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

StephenWolfram-SXSW2014_46.gif

или объекты, такие как Austin, TX (Остин, штат Техас):

StephenWolfram-SXSW2014_47.gif

StephenWolfram-SXSW2014_48.gif

Или же, скажем графические примитивы, скажем вот сфера:

StephenWolfram-SXSW2014_49.gif

А вот коллекция цилиндров:

StephenWolfram-SXSW2014_50.gif

StephenWolfram-SXSW2014_51.gif

Так как все это является просто символьными выражениями, то мы можем взять любое из них и сделать, если хотим, некоторую морфологическую обработку изображения, например — поиск границ объектов:

StephenWolfram-SXSW2014_52.gif

Вы знаете, все является просто символьным выражением. Еще один пример — это графические интерфейсы. Вот символьный слайдер:

StephenWolfram-SXSW2014_53.gif

Вот коллекция слайдеров:

StephenWolfram-SXSW2014_54.gif

Знаете, так как всё является символьным выражением, то это дает вам огромную свободу. Вот последовательное применение функции f к выражению:

StephenWolfram-SXSW2014_55.gif

Вот последовательное применение функции под названием Framed, которая на выходе обрамляет выражение рамкой:

StephenWolfram-SXSW2014_56.gif

А вот уже полностью аналогичная символьная конструкция уже на основе простейшего графического интерфейса:

StephenWolfram-SXSW2014_57.gif

Ах… Боже мой… это фрактальный интерфейс!

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

StephenWolfram-SXSW2014_58.gif

Теперь, в одно движение, сделаем его интерактивным:

StephenWolfram-SXSW2014_59.gif

Вы можете сделать то же самое с чем угодно:

StephenWolfram-SXSW2014_60.gif

Ок. Еще одним класс объектов, которые являются символьными — документы.

Документ, в котором я сейчас набираю текст — это еще одно символьное выражение. И вы можете создать в нём все, что вы хотите символьно.

StephenWolfram-SXSW2014_61.gif

Скажем, вот некоторый текст. Если мы хотим, можем вращать его на произвольный угол:

StephenWolfram-SXSW2014_62.gif

Все является просто символьным выражением.

Ок. Есть ещё одна вещь, которая является символьным выражением — это код. Каждый фрагмент кода в языке Wolfram является просто символьным выражением, которое можно взять и работать с ним как угодно и где угодно. Это чрезвычайно важно для программирования, так как это означает, что вы можете в создавать вещи модульным способом.

Это также важно и по другой причине: это отличный способ работы с Облаком, которое можно рассматривать как своего рода гигантское активное хранилище для частей символьных вычислений. Фактически мы уже создали всю эту инфраструктуру, которую я собираюсь здесь сегодня впервые демонстрировать. (См. примечание 5 в конце.)

Скажем, у нас есть символьное выражение:

StephenWolfram-SXSW2014_63.gif

Теперь мы можем просто поместить его в Облако:

StephenWolfram-SXSW2014_64.gif

StephenWolfram-SXSW2014_65.gif

Мы получили символьный объект CloudObject с адресом URL по которому мы можем перейти к этому объекту из любой точки мира. Мы перешли по ней и вот мы получили наш объект.

Теперь давайте сделаем вместо этого неизменного объекта некоторую программу. В интернете к ней будет удобно обращаться с помощью API. Благодаря нашей символьной концепции всего, эта операция тоже может быть легко представлена таким образом.

StephenWolfram-SXSW2014_66.gif

Теперь мы можем поместить эту программу в Облако:

StephenWolfram-SXSW2014_67.gif

Таким образом мы получили прямой API. Теперь мы можем просто дописать в конце ссылки параметр API, скажем, ?size=150 и получим ответ, причем совершенно не важно из какого места в Интернете мы посылали запрос:

StephenWolfram-SXSW2014_68.gif

И каждый раз, когда вы будете делать это, вы будете на самом деле вызывать этот небольшой код на Языке Wolfram в Wolfram Cloud и получать в ответ результат вычислений.

Есть еще кое-что, что можно сделать — создать форму для ввода пользователем. Просто измените APIFunction на FormFunction:

StephenWolfram-SXSW2014_69.gif

Теперь то что мы получили является уже формой ввода:

StephenWolfram-SXSW2014_70.gif

Давайте добавим еще одно поле ввода, которое позволит поворачивать введенный текст на произвольный угол:

StephenWolfram-SXSW2014_71.gif

Теперь давайте введём некоторые значения в форму ввода:

StephenWolfram-SXSW2014_72.gif

Когда мы нажмем на кнопку Submit (Отправить), мы получим результат:

StephenWolfram-SXSW2014_73.gif

Ок. Давайте попробуем другой пример. Вот форма, которая берёт названия двух городов, и рисует карту с отображением кратчайшего пути между ними:

StephenWolfram-SXSW2014_74.gif

Давайте поместим эту функцию в Облако:

StephenWolfram-SXSW2014_75.gif

Теперь заполним форму:

StephenWolfram-SXSW2014_76.gif

И когда мы нажимаем на Submit (Отправить), вот что мы получим:

StephenWolfram-SXSW2014_77.gif

Всего одна строка кода и мы фактически получили готовое небольшое, но мощное, веб-приложение! Внутри него скрыта весьма мощная новая технология. Вы видите эти поля ввода — они то, что мы называем “умными полями ввода”, так как они способны понимать естественный язык:

StephenWolfram-SXSW2014_78.gif

Если вы указываете то, что не является городом, то вот что произойдет:

StephenWolfram-SXSW2014_79.gif

Когда вы вводите название города, система автоматически интерпретирует ввод как объект из множества городов. Позвольте я покажу вам, что происходит внутри. Давайте зададим форму, которая просто возвращает список введенных объектов:

StephenWolfram-SXSW2014_80.gif

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

StephenWolfram-SXSW2014_81.gif

Ладно, давайте попробуем что-нибудь другое.

Давайте я вам покажу пример популярного сегодня типа программирования. Давайте сделаем забавное приложение, которое показывает нам изображения глазами кошки или собаки. Ок, давайте создадим простейшую основу кода:

StephenWolfram-SXSW2014_82.gif

StephenWolfram-SXSW2014_83.gif

StephenWolfram-SXSW2014_84.gif

StephenWolfram-SXSW2014_85.gif

Теперь давайте создадим алгоритм, который преобразует изображение в соответствии с тем, как его видела бы собака, преобразуем цветовые каналы и учтем остроту зрения.

StephenWolfram-SXSW2014_86.gif

StephenWolfram-SXSW2014_87.gif

StephenWolfram-SXSW2014_88.gif

Хорошо, давайте теперь создадим приложение на основе этого кода:

StephenWolfram-SXSW2014_89.gif

StephenWolfram-SXSW2014_90.gif

Теперь мы можем распространять это приложение. Но сперва создадим для него иконку:

StephenWolfram-SXSW2014_91.gif

А сейчас давайте сделаем из него публичное приложение:

StephenWolfram-SXSW2014_92.gif

Теперь перейдем в приложение Wolfram Cloud для iPad:

StephenWolfram-SXSW2014_93.gif

И в нем мы уже видим приложение, которое только что опубликовали:

StephenWolfram-SXSW2014_94.gif

Нажмем на иконку приложения. То что мы увидим — уже готовое мобильное приложение, созданное с помощью Языка Wolfram в Облаке.

StephenWolfram-SXSW2014_95.gif

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

StephenWolfram-SXSW2014_96.gif

Довольно неплохо, не правда ли?

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

StephenWolfram-SXSW2014_97.gif

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

Ок, итак вот Облако Программирования Wolfram:

StephenWolfram-SXSW2014_98.gif

Вы можете создавать приложения непосредственно в Облаке. Создадим функцию и просто используем CloudDeploy[]:

StephenWolfram-SXSW2014_99.gif

Или используем GUI (графический интерфейс пользователя):

StephenWolfram-SXSW2014_100.gif

Еще можно взять CDF и поместить его в Облако.

Давайте возьмем некоторый код с сайта Wolfram Demonstrations Project. На самом деле, так получилось, что это была самая первая Демонстрация, которую я сделал, когда сайт еще создавался.

StephenWolfram-SXSW2014_101.gif

Вот готовое приложение Cloud CDF.

StephenWolfram-SXSW2014_102.gif

Для него потребуется лишь браузер и, поскольку он работает с помощью Wolfram Engine в Облаке, оно обладает произвольной интерактивностью.

Ок, используя эту технологию, мы создаем другой продукт — Data Science Platform.

StephenWolfram-SXSW2014_103.gif

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

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

Например, вот шаблон отчета количества входящих сообщений на моем почтовом ящике. Он создан в виде простого символьного документа, так что я могу его легко редактировать.

StephenWolfram-SXSW2014_104.gif

А потом программно генерировать отчеты с его помощью:

StephenWolfram-SXSW2014_105.gif

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

Ок. С другой стороны у нас есть действительно хороший способ представления отдельных фрагментов данных. Мы называем его WDF — Wolfram Data Framework (Структура Данных Wolfram).

StephenWolfram-SXSW2014_106.gif

В основном WDF — это своего рода алгоритмическая онтология, которую мы создали для Wolfram|Alpha — мы знаем, что она работает — и используем её. WDF использует наши средства понимания естественного языка для того, чтобы импортировать неструктурированные данные и автоматически преобразовать их в нечто структурируемое и вычислимое. Скажем, наша Data Science Platform хорошо с этим справляется.

Ну хорошо. Вот нечто другое. Быстро растущим источником данных в мире являются так называемые подключенные устройства, которые представляют собой, по сути, разнообразные сенсоры и роботы, которые могут передавать информацию в сеть или делиться ней другими способами. Люди на самом деле все теснее связаны с ними. Одну вещь, которую я хотел недавно сделать, было просто узнать, какие же устройства такого типа сейчас существуют. Итак мы начали Connected Devices Project, чтобы курировать реально существующие на данный момент устройства, подобно тому, как мы курируем самые разные вещи в Wolfram|Alpha.

StephenWolfram-SXSW2014_107.gif

В нашей базе сейчас уже есть примерно 2500 устройств, и их количество растет с каждым днем. Конечно, мы используем WDF, чтобы организовать все это, и, конечно, вся эта информация доступна через Wolfram|Alpha.

StephenWolfram-SXSW2014_108.gif

Ок. Таким образом есть все эти устройства и они измеряют что-то и что-то делают. И все они как правило взаимодействуют с Интернетом. То, чем мы занимаемся — с нашей Data Science Platform и вообще со всем — это создание действительно бесперебойной и гибкой инфраструктуры для обработки данных с этих устройств или любых других, для того, чтобы визуализировать, анализировать и вычислять всё то, что доступно и приходит в “Интернете Вещей”.

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

StephenWolfram-SXSW2014_109.gif

Давайте посмотрим, сможем ли мы ввести данные с этого устройства в Wolfram Language. Это не так сложно:

StephenWolfram-SXSW2014_110.gif

StephenWolfram-SXSW2014_111.gif

Теперь визуализируем эти данные:

StephenWolfram-SXSW2014_112.gif

Итак, вот так можно присоединять устройства к Языку Wolfram. Но есть кое-что еще. Это уже внедрение Языка Wolfram в устройства. И это то дело, которое окупает 25 лет жесткой программной инженерии, потому что, так же, как устройства запускают вещи такие как Linux, мы можем запустить на них Язык Wolfram. И сейчас, пока что немного ограниченная (до официального релиза) версия Языка Wolfram уже поставляется в комплекте со стандартной операционной системой для каждого Raspberry Pi.

StephenWolfram-SXSW2014_113.gif

Это довольно удобно: иметь устройство за 25 долларов, которое работает с Языком Wolfram и подключается к сенсорам, датчикам и пр. И каждый такой небольшой компьютер представляется просто как еще один символьный объект в Языке Wolfram. При этом весьма просто, скажем, использовать возможности встроенных параллельных вычислений Языка Wolfram, чтобы извлекать данные из множества таких машин.

Заглядывая в будущее, вы можете вполне ожидать увидеть Язык Wolfram на большом количестве встроенных процессоров. Есть еще и другой вид встраивания, который нас тоже интересует. Это встраивание в программное обеспечение. Мы хотим, чтобы у нас была Universal Deployment System (Универсальная Система Разработки) для Языка Wolfram.

StephenWolfram-SXSW2014_114.gif

Если у нас есть готовая программа на Языке Wolfram, то у нас есть множество путей ее распространения и внедрения.

Вот, к примеру, возможность вызвать код на Языке Wolfram из других языков программирования.

У нас есть действительно простой способ сделать это. Обычно существует GUI, но в Языке Wolfram вы можете просто взять функцию по работе с API и сказать: создай код для вставки этой функции в код на языке Python или Java или любой другой.

StephenWolfram-SXSW2014_115.gif

StephenWolfram-SXSW2014_116.gif

StephenWolfram-SXSW2014_117.gif

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

Такого рода вещи действительно легко создать и, как я уже говорил, они просто вызовут Wolfram Cloud для выполнения кода на Языке Wolfram. Но также есть и другая концепция. Существует Embedded Wolfram Engine (Встраиваемая Машина Wolfram) который вы можете использовать локально. При этом, по существу будет работать тот же самый код, но в этом случае он будет запущен на вашей локальной машине, а не в Облаке. Становится очень интересной возможность внедрения Встраиваемой Машины Wolfram во все виды программного обеспечения, которая сразу добавит все возможности алгоритмов, курируемых баз, понимания естественного языка, доступные в Языке Wolfram, в это программное обеспечение. Вот как, скажем, выглядит Встраиваемая Машина Wolfram внутри Unity Game Engine IDE:



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

В этой связи весьма удобно, что мы у нас есть продукт, способный работать с нашей системой Mathematica, который называется SystemModeler и выполняет крупномасштабное системное моделирование и симуляцию.

StephenWolfram-SXSW2014_119.gif

Сейчас он также интегрируется в Язык Wolfram.

Так, скажем, вот схема выпрямителя:

StephenWolfram-SXSW2014_120.gif

И это все, что потребуется, чтобы смоделировать это устройство.

StephenWolfram-SXSW2014_121.gif

И отобразить параметры этой модели:

StephenWolfram-SXSW2014_122.gif

И есть еще одна вещь. Мы создаем функционал для использования способностей понимания естественного языка, которые мы создали для Wolfram|Alpha, и мы делаем их настраиваемыми. Сейчас это конечно же важно для тех, кто ведет обработку запросов к базам данных или управление устройствами. Это также будет интересно для тех, кто взаимодействует с моделями. Скажем, посмотреть на машину, работающую на улице и иметь возможность получить множество информации о ней по запросу к мобильному приложению о ней, после чего запустить симуляцию ее работы в Облаке.

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

StephenWolfram-SXSW2014_123.gif

Так же, для вас доступно свыше 100000 готовых примеров интересных кодов, которые есть в документации Языка Wolfram.

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

Так что же это означает?

Я думаю, что это довольно захватывающе. Потому что я считаю, что мы на самом деле изменили наш подход, перешли от алгоритмических идей к реализации готовых продуктов. Если вы будете проходить мимо нашей выставки, проходящей в рамках фестиваля, вы увидите, как мы программируем вживую. И вполне возможно, мы даже сможем создать небольшие продукты прямо на месте для желающих. Но я считаю, что наш Programming Cloud приведет к росту алгоритмических стартапов. Будет действительно интересно посмотреть на то, что же получится.

Еще одна вещь, которая, как я думаю, поменяется: обучение программированию. Я считаю, что Язык Wolfram исключительно хорош для образования. Потому что это язык, в котором вы можете делать реальные вещи на удивление легко. Вы можете видеть вычисления в деле в самых разных областях и наблюдать их мощь. И, между прочим, без особых усилий вы сможете познакомиться с кучей современных идей из области современной вычислительной техники и технологии… причем все это в непосредственной связке с реальным миром.

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

Например, мы можем просто написать следующее — draw a pink dodecahedron (построй розовый додекаэдр):

StephenWolfram-SXSW2014_124.gif

И вот мы уже имеем автоматически сгенерированный код

Мы, в Wolfram Research, крайне заинтересованы в образовательных возможностях. У нас есть материал, которого хватит на сотни тысяч отличных проектов для хакатонов.

Знаете, каждое лето, вот уже десяток с лишним лет, мы устраиваем крайне успешную летнюю школу, посвященную Новому Виду Науки, над которой я сам долго работал.

StephenWolfram-SXSW2014_125.gif

Там мы успешно занимаемся наукой в реальном времени. Также уже несколько лет действует летний лагерь для старшеклассников.

StephenWolfram-SXSW2014_126.gif

Мы используем наш опыт, чтобы создать множество вариантов применения Языка Wolfram в обучении программированию. Вот уже более 25 лет мы тесно работаем в области образования. Здесь Mathematica находит невероятно широкое применение. И я счастлив, что Wolfram|Alpha стала своего рода универсальным инструментом для учащихся.

Грядет еще больше интересного.

Вот, например, уже почти готова версия Wolfram|Alpha на китайском языке.

StephenWolfram-SXSW2014_127.gif

А вот Problem Generator (Генератор Задач), созданный с помощью Языка Wolfram и доступный в Pro версии Wolfram|Alpha.

StephenWolfram-SXSW2014_128.gif

Мы собираемся добавить возможность осуществления всего спектра возможностей для анализа образовательного процесса, с применением нашей Облачной системы. Знаете, здесь есть так много возможностей. Как, например, с нашим форматом CDF — Computable Document Format (Форматом Вычисляемых Документов) — который используется уже несколько лет для создания интерактивных Демонстраций.

Кстати, вот наш сайт, содержащий около 10,000 готовых Демонстраций.

StephenWolfram-SXSW2014_129.gif

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

StephenWolfram-SXSW2014_130.gif

С другой стороны, с точки зрения других областей, помимо образования, многое происходит в корпоративной сфере. В течение нескольких лет мы разрабатываем полномасштабные сделанные на заказ комплексы на основе нашей платформы Wolfram|Alpha. Но сейчас с приходом Data Science Platform, мы получим, по сути, безгранично модифицируемую версию этих возможностей. И конечно же, все это интегрировано между настольной и облачной версиями. Мы также собираемся создать частные облачные сервисы.

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

Конечно, для нашей небольшой частной компании из примерно 700 талантливых человек, это большое испытание — справиться со всеми перспективами.

Мы начали раскручивать компании. Такие как Touch Press, которая делает электронные книги для iPad.

StephenWolfram-SXSW2014_131.gif

У нас в планах еще много всего, и нам нужно больше предпринимателей и инвесторов, работающих с нами.

Хорошо, что же можно сказать о более далеком будущем?

Я думал над этим достаточно долго. Сейчас у меня слишком мало времени, чтобы сказать обо всем. Так что расскажу лишь о малой части.

Мы пытаемся взять все знания нашей цивилизации и обратить их в вычисляемую форму. Так, что мы сможем использовать их всюду. Например, в Wolfram|Alpha мы, по существу, осуществляет вычисления по запросу. Вы спрашиваете о чём-то, и Wolfram|Alpha делает это.

StephenWolfram-SXSW2014_132.gif

Дальше — больше. Мы собираемся сделать так, чтобы вычисления были предсказательными, и, с помощью Языка Wolfram, нами сделано многое, чтобы приблизиться к этому. Представьте себе возможность смоделировать целый мир, и предсказывать что случится в будущем. Говорить вам, что вы хотели бы сделать на своем следующем шаге. Сейчас, когда бы вы ни использовали Язык Wolfram, вы всегда видите эту маленькую панель Предложения Дальнейших Действий Предсказательного Интерфейса, которая использует довольно нетривиальные вычисления, чтобы предложить вам, что можно сделать дальше.

StephenWolfram-SXSW2014_133.gif

Но реальный способ заставить все это работать — использовать знания о самом себе. Длительное время я очень увлеченно занимался персональной аналитикой. Вот, например, 25-летняя история моей e-mail активности.

StephenWolfram-SXSW2014_134.gif

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

Но вот, что я недавно осознал. Я интересуюсь историей и посещал архивы Готфрида Лейбница, жившего 300 лет назад, но уже тогда имевшего множество современных идей о вычислениях. Но в его время единственное, что у него было — очень примитивный вычислитель, который он сам и сконструировал.

StephenWolfram-SXSW2014_135.gif

Сегодня же работают миллиарды компьютеров. Так что я подумал об экстраполяции. И я осознал, что в какой-то момент у нас не просто будет много компьютеров — буквально всё будет содержать в себе компьютеры.

Биологи уже немного прониклись этой идеей. Но однажды не будет иметь смысла создавать что-либо из “глупых” материалов, вместо этого все будет сделано из полностью программируемых структур.

Что же это значит для нас? Ну, конечно, это размывает границу между программным обеспечением и оборудованием. И это также обозначает, что языки, которые мы создаем станут частью того, из чего будет все сделано. Я долгое время интересовался фундаментальной физической теорией. И, по сути, те исследования, что я провел, позволяют мне думать, что существует реальная возможность, что мы наконец-то нашли новый подход, который позволит нам эту теорию получить. Фактически этот подход заключается в том, что нашу физическую Вселенную, можно обнаружить в вычислительной Вселенной всех возможных Вселенных.

StephenWolfram-SXSW2014_136.gif

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

Итак, что же все это означает для человечества? Без сомнения, мы сможем воплотить в жизнь этот мир, в котором программирование пойдет дальше, чем это происходит сейчас в биологических объектах. Вы фактически сможете создать любую вселенную для самого себя. Я представляю себе тот момент, когда появится хранилище, содержащее триллионы таких сущностей. Каждая из которых запускает любой фрагмент вычислительной вселенной, который она хочет.

И что же произойдет дальше? Будет производиться множество вычислений. Из исследований, которые я провел, и, частично, из Принципа вычислительной эквивалентности — я думаю, что это все напоминает положение, в котором оказался Коперник. Мне кажется, что не существует серьезного различия между этими вычислениями и тем, что происходит во Вселенной, или даже в гораздо меньших программах.

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

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

Я должен сказать, что я очень рад тому, что я живу в то самое время, когда я могу что-то привнести в это дело. Это огромная честь и радость для меня. И я также очень рад тому, что сегодня имел возможность немного рассказать вам об этом.

Большое спасибо за ваше внимание!

ПРИМЕЧАНИЕ 1

Правило 30 — это по сути логическая функция от трех аргументов, которая имеет вид: p XOR (q OR r). Ее можно представить в виде 8 правил, по которым преобразуются тройки ячеек вернего яруса в нижний, (см. рис. ниже). Начальная строка — первая сверху — содержит один черный квадрат (True) и набор белых квадратов (False), бесконечный в обе стороны. Центральный столбец, порождает качественную последовательность псевдослучайных чисел и именно на этом правиле построен используемый по умолчанию метод генерации псевдослучайных чисел в системе Mathematica.

StephenWolfram-SXSW2014_137.gif

ПРИМЕЧАНИЕ 2

Само название Mathematica было придумано Стивом Джобсом. До этого Стивен думал назвать систему по-разному:

StephenWolfram-SXSW2014_138.gif

ПРИМЕЧАНИЕ 3

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

ПРИМЕЧАНИЕ 4

Видео-введение Стивена Вольфрама в язык Wolfram

Оригинал видео

ПРИМЕЧАНИЕ 5

Начало работы с облаком программирования Wolfram

Оригинал видео

Над переводом работали участники Русскоязычной поддержки Wolfram Mathematica: Егор Рукин, Владислав Глаголев, Сильвия Торосян, Алик Клименков, Осипов Роман.
Wolfram Research 45,76
Wolfram Language, Mathematica, Wolfram Alpha и др.
Поделиться публикацией
Комментарии 56
  • +8
    Ох, еле дочитал. Это круто!
    • +7
      Не дочитал, но это всё равно круто!
    • +14
      image
      • +3
        Да, это одна из парадигм языка Wolfram, называть функции в соответствии с тем, что они делают полными словами, словосочетаниями или распространенными аббревиатурами на английском языке. Кстати в дополнение, весьма интересные функции RotationTransform (по сути общая формула для поворота в аналитическом виде) и FindGeometricTransform (поиск геометрического преобразования, переводящего один объект в другой).
      • +1
        В «введении в язык» двухмесячной давности речь идет о 30 годах трудов. Уже 40…
        • +3
          Там речь шла только о языке, а здесь Стивен говорит о всем пути. Он достаточно долго работал в области теоретической физики и клеточных автоматов, вынашиваю идею создания нового языка программирования и новой системы, которая получила с легкой руки Стива Джобса название Mathematica, а перед этим, по сути, она начиналась со студенческого проекта SMP — Symbolic Manipulating Program.
          • –4
            Муть, жуть, хренотень! Вот именно, что 40 лет трудов, и, соответственно, используется подход 40-летней давности.

            Кому нужна эта предельная формализация всего и вся??? Для описания всего и вся есть обычные человеческие языки. Вот куда надо идти!
            Кто запомнит все эти операторы в этом монструозном языке?? Тут придется пять лет учиться одному только языку. Такая формализация была адекватной 40 лет назад в тех условиях медленных процессоров и дефицита памяти.

            С таким стоически-идиотическим упорством уже можно было настоящий ИИ написать за 40 лет, а не эту лабуду, которую будут эффективно использовать от силы 500 человек во всем Мире.
            • +2
              Вы не правы. Язык содержит в себе весьма компактное подмножество функций называемое «Базовым языком» и, по сути, коллекции функций из предметных областей, а также специальные подмножества — скажем «Язык графических примитивов», «Язык динамических объектов». Так что его изучение занимает не больше времени, чем изучению любого другого языка. Скажем для работы с теорией вероятности и мат. статистикой служит порядка функций 250-ти, среди которых свыше 150-ти распределений случайных величин. Если вы не работаете с теорией вероятности, вы их можете и не заметить.

              Не хорошо так писать, все таки общение должно быть интеллигентным и обоснованным.
              • 0
                Я не имел в виду Mathematica. Там может быть хоть миллион разных функций — это в самом деле математика. Я написал об этой химере: Mathemathica + Wolfram/Alpha. Это в самом деле Вавилон собственной персоной.
                И главная моя мысль, что надо идти по пути описания задач и отдачи команд на нормальном человеческом языке. Компьютеры к этому готовы. Другое дело, что разработчики застряли далеко в прошлом (как пример — сам Стивен Вольфрам) и не знают с какой стороны к этому подступиться.

                Продолжайте минусовать за личное мнение. Я знаю: в России время охоты на несогласных, людей со своим отличным от толпы мнением.
                • 0
                  Послушайте, «несогласие» должно базироваться на знаниях.
                  Mathematica 25 лет была программой, сейчас на основе нее появился язык Wolfram, а Wolfram|Alpha написана на языке Mathematica и это отдюдь никакая не химера. Если вам не нужно, вы можете не использовать ни Wolfram|Alpha, ни Wolfram Cloud… можете использовать только standalone версию Mathematica.
                  Но прежде чем говорить так, все же хотелось бы, чтобы вы разобрались что есть что и зачем служит.
                  К сожалению беда современных несогласных — то что несогласие базируется на отсутствии знаний о чем то.
                  Если вы считаете что то, что делает Wolfram Research плохо и не нужно вам — просто не используйте.

                  Что касается идей Стивена, то они опередили время и подтверждений тому масса. Google, Maple, Python… многие открыто заимствуют, копируют или попросту воруют идеи, появившиеся в Mathematica.
                  • 0
                    Роман, простите, но что… вот прям таки воруют? С доказанными фактами воровства? Можно 3-4 примера? Может, MathWorks тоже воруют у Wolfram?
                    • 0
                      Если не вдаваться в алгоритмические вопросы, вот пара примеров:
                      Интерфейс для Python полностью дублирующий внешний вид документов Mathematica http://ipython.org/notebook.html
                      Вскоре после выходя 9-й версии у Matlab обновилась документация http://www.mathworks.com/help/matlab/index.html, сравните с документаций Mathematica 9 http://reference.wolfram.com/mathematica/guide/Mathematica.html
                      С точки зрения алгоритмов и технологий заимствований еще больше, скажем вот для Maple
                      http://www.wolfram.com/mathematica/compare-mathematica/files/ReviewofNewFeaturesinMaple17.pdf
                      http://www.wolfram.com/mathematica/compare-mathematica/files/ReviewOfMaple18.pdf
                      • 0
                        Ну знаете! Говорить, что кто-то что-то «украл», а потом приводить в пример схожее оформление веб-страниц с документацией, это как-то слишком. Да и пусть даже интерфейс-оформление документов.
                        Сравнение с Maple — вряд ли стоит называть реализацию каких-то схожих функций воровством или, даже, заимствованием. Надо же, Mathematica сделала автодополнение скобок/подсветку синтаксиса/работу с дискретными граммианами аж в 2007/2007/2010 годах, а Mapple только в 2013. Очевидно же, Maple заимствовала и украла эти безумно свежие и оригинальные идеи у Mathematica!
                        Роман, некрасиво как-то.
                        • 0
                          Я говорю о очевидных вещах. О том что есть флагман, за которым следуют. Это суть моих слов.
                          Ситуация похожа на Apple, они сделали iPhone — остальное уже реплики и переделки.
                          Так же и здесь. Есть воровство по закону и по факту… с точки зрения закона фактов наберется мало, с точки зрения простого сравнения визуального и динамики развития — ситуация иная.
                          Раз вам не нравится слово «воровство», может я погорячился, признаю, назовем это «обильным заимствованием идей у Wolfram Research». На эту тему можно говорить долго и можно приводить еще факты, вроде: Maple использует символьную часть ядра Mathematica для интегрирования очень общих выражений от специальных функций.
                          Но в целом, для Wolfram Research и для меня лично многие заимствования говорят только об одном — Wolfram идет в верном направлении, а идеи компании действительно новые и оригинальные.
                          • 0
                            Роман, я понимаю, что вы тесно связаны с Wolfram со всеми вытекающими, и это, разумеется, влияет на ваше видение рынка. Я просто прошу вас воздержаться от употребления таких выражений, как «многие воруют», если только вы не готовы представить фактологическое подтверждение.

                            Если Maple использует часть ядра Mathematica, то, наверное, это делается на основе каких-то соглашений, так? Matlab тоже долгое время использовал ядро Maple для символьного пакета, что не мешает ему в своих специфических областях рвать и Maple и Mathematica. А в других — проигрывать.
                    • –1
                      Я и не использую и выразил мое личное отношение к продукту. Вам кто-то запрещал его использовать??? С какой стати тогда ко мне претензии?

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

                      И только не надо мне далее писать, что матеаика и формализация это так классно. Я сам математик. Формальный поход хорош в ограниченной сфере применений. Поймите, люди рождаются и учат сначала разговорный язык (это первично) далее постигают всякие формальные описания (та же математика, например). Так вот давайте стремиться к первичному, а не городить огород формальных описаний). Да, это удобно (формальный подход) для сжатого описания и ограниченного круга шаманов (математиков и програмистов, если говорить о ЯП), но не удобно для людей в целом. Но всякие гаджеты и вообще компы это инструмент для каждого, массовый инструмент. И все хотят эффективно взаимодействовать с компами.
                      • +1
                        Я вас не очень понимаю… вроде бы из статьи ясно следует, что Стивен как раз стремится создать внутреннюю формализацию знаний и создать систему, которая бы позволила пользователю как раз обращаться с ней не формализовано. Безусловно эта задача титаническая… Но ей богу, интересно, как же сделать систему, которая бы внутри не была формализована… нечеткой логики тут будут мало. Любое средство нашего общения с компьютером всегда будет формализовано, а если нет — то это уже реальный искусственный интеллект, но до него, уверен, человечеству еще идти и идти… Если вы знаете как, то уверен вы быстро перевернете мир и заработаете миллиардов 200 долларов…
                        Но я также не понимаю, как вы можете рассуждать о продуктах и идеях Wolfram Research, если вы ими не пользовались, или уже давно не пользуетесь… это все равно как говорить о книге, не прочтя.
                        В целом я вашу позицию понял, так что можно закончить наш диалог, либо как-то более конструктивно его продолжить.
                        • –1
                          Не вы начинали дискуссию — не ва заканчивать. Поэтому не надо затыкать рот.
                          • –1
                            Не вы начинали дискуссию — не вам заканчивать. Поэтому не надо затыкать рот. Или вы настолько упоротый, что вам маниакально и болезненно необходимо обязательно ответить на чей-то чужой коммент последним???

                            Насчет ИИ — несколько американских компаний выдадут кое-что интересное очень скоро. Это IBM, Google, даже Amazon и другие. Это вам, конечно, в России малоизвестно, но сейчас в Штатах началась гонка в разработке Strong AI. Вброшены миллиарды долларов. А это не просто так — значит видят свет в конце тоннеля. Так что результат скоро будет. И вы поймете тогда наконец о чем я писал.

                            А Wolfram — он в любом случае остается там, где и был 40 лет назад. Это не тот путь. Это как пойти в соседний квартал через Аляску или Камчатку.
                            • +1
                              Посмотрел бы я, как бы вы лично в таком тоне общались бы) Но конечно, сидя за n км от человека можно его и «упоротым» назвать). Это безопасно. Учитесь разговаривать, в ваших любимых штатах вам хамство дорого обойдется.
                              • 0
                                Как вижу — так и назвал. Причем хамите именно вы, предлагая закончить разговор на вашей фальшивой ноте. Еще раз говорю: не надо затыкать рот человеку если его мнение отличается от вашего.

                                Вам что Вольфрам платит за продвижение его продуктов?? Другого повода так покрывать устаревшую технологию не вижу.
                                • 0
                                  Со Стивеном я знаком лично, но не в этом дело. Спешу отсечь гневные выпады — денег я не получаю ни от него, ни от компании Wolfram Research. Я успешно зарабатываю реализуя IT проекты для бизнеса и образования на базе продуктов Wolfram.

                                  Вот когда вы представите хоть что-то реальное, что подтверждает ваш тезис о том, что продукция Wolfram Research «устарела», тогда можно будет продолжить обсуждение, подчеркну, специально для вас — обсуждение лично со мной.

                                  Я вам рот не закрываю… интернет не отключаю… клавиатуру не отнимаю… написал лишь что я лично с вами закончил говорить. Вы можете писать сколько вашей душе угодно… можете ненавидеть Стивена, меня, да хоть весь мир, вы также можете считать всех дураками и все что делается в мире устаревшим…
                                  • 0
                                    А сорри. посмотрел профиль и увидел, что похоже действительно вы имеете с Вольфрама. и не говорите, что это не так, и это чистый альтруизм.

                                    Так вот я как раз-таки в Штатах и занимаюсь как раз тем о чем пишу — ИИ. Тут, кстати, все смеются над дедушкой Вольфрамом. Есть у него пара здравых моментов, но не более — остальное полный тупик. Для математики, да, сойдет, но не далее. Смеются также над тем, что его бы напористость да в более правильное русло направить. Развивал бы только свою Mathematica — цены бы ему не было. А он норовит залезть туда, куда путь с его идеями ему заказан. Пустая трата времени — там поисковые компании все теплые места забили, у них не менее развитые технологии для описания окружающего мира. Тоже символьные, но уже с элементами ИИ. Вольфрам там лишний. Отстал.
                                    И ничего к нему личного — это мнение профессионального сообщества.
                    • 0
                      Зачем библиотеки называть языком?
                • +1
                  Багрепорт:

                  В In[58] чётко видно, что size это Number, однако при заполнении формы используется «Hello, world».
                  • +4
                    Игорь? Почему у него в списке вариантов имен — Igor?
                    • +1
                      Возможно, как в случае с пейпелом — какой-нибудь местный мем.
                      • 0
                        Может не хотел ассоциаций с Франкенштейном ))
                        • +1
                          Я думаю, это намёк на слугу-ассистента настоящего безумного ученого. Тема хорошо раскрыта, например, в книгах Пратчетта.
                        • 0
                          Это магия о_О
                          • +1
                            Название Mathematica действительно было придумано Стивом Джобсом или это опечатка?
                          • 0
                            Очень интересно! Куда устроиться работать, чтобы заниматься подобным?
                            • 0
                              В Wolfram Research
                              На территории России тоже постепенно формируется спрос на разработки на базе Wplfram Language.
                            • +6
                              По аналогии с «Чтобы распарсить программу на Perl, нужно быть самим интерпретатором Perl» — чтобы писать программы на языке Wolfram, нужно быть самим Стивом Вольфрамом.
                              • +3
                                Если вы про то, что финальный релиз языка еще не вышел, то да. А так, конечно нет. Более того, примерно 3/4 языка Wolfram можно посмотреть уже в 9-й версии Mathematica. Впрочем релиз уже не за горами. Вполне возможно что ко 2-й конференции Wolfram технологии, которая пройдет в июне в Санкт-Петербурге, релиз уже пройдет.
                            • +4
                              К сожалению не все так радужно как кажется, на практике есть недочеты/условности.

                              Во первых, вы не можете просто использовать Wolfram Alpha с обычным языком Mathematica. В Mathematica это две раздельные ммм… строки ввода что ли. Плюс у Wolfram Alpha свой синтаксис, и он не понимает выражения Mathematica (ну, некоторые понимает, но все же). Если у кого то получилось решить конкретную задачу с Wolfram Alpha, поделитесь опытом. Ибо как по мне сырой он больно.

                              Во вторых, некоторых элементарных вещей не хватает. Банально в Graphics нельзя задать направление осей (скажем, направить ось y вниз). То есть, есть некое свойство Axes, но направление задать нельзя. Векторное поле в 2d тож танцы с бубной. И это только то с чем столкнулся.

                              В третьих CDF player, просто так не загрузить, обязательно указуй ему email.
                              • +2
                                Для работы с Wolfram|Alpha в языке есть функция WolframAlpha, которая появилась еще в 8-й версии Mathematica.

                                Wolfram|Alpha понимает встроенные функции и многие небольшие коды, а большие он и не должен понимать.

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

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

                                plot = Plot[x Cos[x], {x, 0, 10}]

                                reveresePlot[plot_] := Block[{options, plotRange, ticks},
                                options = Sequence @@ AbsoluteOptions[plot];
                                plotRange = AbsoluteOptions[plot, PlotRange][ [1, 2, 2]];
                                ticks = AbsoluteOptions[plot, Ticks][ [1, 2]];
                                ticks = {ticks[ [1]],
                                ticks[ [2]] /. {x_, y_, z_, t_} :> {-x, y, z, t}};
                                Graphics[plot[ [1]] /. {x_?NumericQ, y_?NumericQ} :> {x, -y},
                                options] /. ((Ticks -> x_) -> (Ticks ->
                                ticks)) /. (PlotRange -> _) -> (PlotRange ->
                                Reverse[-plotRange])]

                                reveresePlot[plot]

                                По поводу векторного поля, скажите что именно не получается.

                                Ну а про то что вас просят указать e-mail при загрузке бесплатного плеера… неужели это такая проблема?
                                Кстати с появлением Cloud CDF плеер уже не понадобится.
                                • +1
                                  Да тут флешь обновить не заставишь, а вы говорите скачать че-то, да ещё и емейл вводить. Для демонстрации в массы 100% не катит. Хотя по задумке реально круто.

                                  >>Для работы с Wolfram|Alpha в языке есть функция WolframAlpha
                                  Она то есть. Но в том формате в котором оно выдает данные его дальше в Mathematica без парсинга не заюзаешь. Например, население Китая. Вот зачем мне слово «people» после цифры, спрашивается? Ну куда мне его? Может я конечно не въехал…

                                  Не знаю, у меня сложилось впечатление что оно как то недоинтегрировано пока. А ежели это различные системы, так что тогда WolframAlpha вообще делает в Mathematica?

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

                                  И что это значит? Типа погуглить, но не погуглить а повольфрамить? :)
                                  В моем понимании ежели в WolframAlpha хранится такая большая знаний, то он должен возвращать значения из таблиц (скажем жесткости/сопротивления материалов), которые потом можно как то использовать дальше в расчете. А сейчас он помойму просто информацию, как поисковик выдает

                                  >> это по сути вычислитель знаний
                                  Это как?

                                  P.S. Вы не поймите меня неправильно. WolframAlpha отличная штука, но что она делает в Mathematica? И это не претензии, я просто как новичок не могу понять эту часть.
                                  • +1
                                    Да тут флешь обновить не заставишь, а вы говорите скачать че-то, да ещё и емейл вводить. Для демонстрации в массы 100% не катит. Хотя по задумке реально круто.

                                    Для этого в том числе и будет Cloud CDF, чтобы этот единственный «недостаток» CDF был устранен.

                                    Она то есть. Но в том формате в котором оно выдает данные его дальше в Mathematica без парсинга не заюзаешь. Например, население Китая. Вот зачем мне слово «people» после цифры, спрашивается? Ну куда мне его? Может я конечно не въехал…

                                    Есть различные форматы Output от WolframAlpha в Mathematica, в том числе, скажем, Number Data, выдаст вам просто число, Computable Data — число с размерностью. peoles — это размерность величины. От размерностей можно легко избавляться, если необходимо через QuantityMagnitude. Но часто за счет того что у вас есть размерность можно делать очень классные вещи.

                                    Не знаю, у меня сложилось впечатление что оно как то недоинтегрировано пока. А ежели это различные системы, так что тогда WolframAlpha вообще делает в Mathematica?

                                    Вам стоит теснее поработать, вы увидите что интеграция очень хорошая.

                                    И что это значит? Типа погуглить, но не погуглить а повольфрамить? :)
                                    В моем понимании ежели в WolframAlpha хранится такая большая знаний, то он должен возвращать значения из таблиц (скажем жесткости/сопротивления материалов), которые потом можно как то использовать дальше в расчете. А сейчас он помойму просто информацию, как поисковик выдает

                                    Скажем, алгоритмы Wolfram|Alpha для лингвистики и курирования данных сейчас перетекают в Mathematica и язык Wolfram давая вам возможность создания полей с произвольным вводом от пользователя, мощных парсеров и т. д. В 10-й версии будет огромное количество встроенных баз данных благодаря Wolfram}Alpha. Это взаимодополняющие системы.
                                    Причем то что вы написали — да, вы можете импортировать коллекции данных.

                                    >> это по сути вычислитель знаний
                                    Это как?

                                    Система, которая по вашему вопросу старается обработать для вас имеющуюся у нее информацию так, чтобы выдать вам максимально подробный экспертный ответ.

                                    P.S. Вы не поймите меня неправильно. WolframAlpha отличная штука, но что она делает в Mathematica? И это не претензии, я просто как новичок не могу понять эту часть.

                                    Понимаю, что вопросов будет у людей много и я готов их объяснять, как и другие представители компании.
                                • +1
                                  Мне это напомнило недавний пост сотрудника Яндекса, который написал какую-то крутую фичу из закоммитил её.
                                  А в ответ, вместо анализа ошибок алгоритма, получил отказ из-за отсутствия пробела между названием функции и открывающей скобкой.
                                • +2
                                  До какой степени серьезные задачи смогут решаться в их облаке и сколько будет стоить время вычислений?
                                  Приведу пример: все устройства GPS/ГЛОНАСС определяют высоту не относительно уровня моря, а относительно усредненной поверхности земного эллипсоида. Чтобы получить высоту над уровнем моря, нужно проделать для каждой точки довольно «тяжелые» вычисления, большинство пользовательских устройств эти вычисления не тянут. Подойдет ли их облако для решения такой задачи?
                                  • +2
                                    Пользователь сможет покупать различное количество ядер, оперативной памяти и объема физической памяти в облаке, также объем запросов. Так что да, облако справится. К тому же Wolfram Research еще будет делать частные облака на заказ. К сожалению в данный момент формирование списка цен еще не закончено.
                                    • 0
                                      То есть пока нельзя сопоставить, будет ли какая-то выгода относительно использования облаков общего назначения для решения прикладных математических задач?
                                      • +2
                                        Если вы говорите о цене, то думаю пока нет. Хотя, как говорится, птичка напела, что цены не будет кусаться.
                                  • +2
                                    Как обстоит дело с интеграцией других языков? Китайский, появился. Будет ли русский? Другие языки?
                                    • +1
                                      С языками все просто — зависит от объема рынка или прямого инвестирования. Китай заказал напрямую полную поддержку китайского.
                                    • 0
                                      дайте этому человеку нобелевская премию, он ее заслужил
                                      • 0
                                        Ждём расширение воззрения системы средствами ввода типа мультитача и вывода. Автору респект.
                                        • 0
                                          Сенсорные экраны уже поддерживаются, равно как и, скажем, например, геймпад.
                                        • –1
                                          Ребяты, вам большое спасибо за перевод.

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

                                          Еще большая проблема в том, что у нас в России никуда не делся языковый барьер, и многие просто не могут воспользоваться всеми возмостями вольфрама. Для англоговорящих людей/стран нааличие такого инструмента — мощное конкурентное преимущество, а в глобальном смысле стратегическая вещь, которая определяет скрость развития науки и технологий.
                                          • 0
                                            Выражу в лице всех авторов спасибо вам за отзыв.
                                            Именно для того, чтобы языковой барьер не был такой большой преградой мы уже несколько лет развиваем Русскоязычную поддержку Wolfram Mathematica и других продуктов Wolfram Research.
                                            С каждым днем вас будет ждать все больше ресурсов на русском языке.
                                            Многие вещи уже переведены, скажем вот перевод встроенных How To Mathematica.
                                          • 0
                                            А вот как узнать, как сделать чтобы вывод запроса «draw a pink dodecahedron» можно было увидеть с другого ракурса?

                                            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                            Самое читаемое