Бесплатная библиотека Wolfram Engine для разработчиков программного обеспечения

Автор оригинала: Стивен Вольфрам
  • Перевод

Оригинал перевода в моём блоге

Пара видео о Wolfram Language


Почему вы до сих пор не используете технологии Wolfram?


Что ж, такое случается, и довольно часто. В процессе общения с разработчиками программного обеспечения, они достаточно лестно отзываются о наших технологиях, например о том как они очень помогали им при обучении в школе или в проведении научных работ, но когда после этого я задаю им вопрос: «Итак, вы используете язык Wolfram Language и его вычислительные возможности в своих системах программного обеспечения?» Иногда они отвечают — да, но слишком часто наступает неловкое молчание, и после этого они говорят: «Нет, а разве это возможно?».

Free Wolfram Engine for DevelopersЯ хочу быть убежден, что ответом на этот вопрос всегда будет только: «Да, это просто!». И чтобы помочь Вам в этом, мы сегодня запускаем бесплатный движок Wolfram Engine для разработчиков (Free Wolf Engine for developers). Это полноценный движок языка Wolfram Language, который можно развернуть в любой системе и вызвать из любых программ, языков, веб-серверов или чего-либо еще…

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

Язык программирования Wolfram Language


Многие люди знают о языке Wolfram Language (часто только в форме программы Mathematica) как о мощной системе для интерактивных вычислений, а также для проведения научных исследований в области образования, при обработке данных, а также «Computational X» (области вычислений) для многих X (областей знаний). Однако все чаще его используют, не выводя на передний план, как ключевой компонент в построении производственных программных систем. Так что же сейчас может сделать бесплатная библиотека Wolfram Engine для разработчиков? — Она именно упаковывает язык таким образом, чтобы его было удобно вставлять во множество программных сред и проектов.

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

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

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

Цель языка Wolfram Language проста, хотя при этом достаточно амбициозна: все что необходимо должно быть встроено в язык и при этом быть максимально автоматизированным.

Например: Необходимо проанализировать изображение? Нужны географические данные? Обработка звука? Решить проблему оптимизации? Информация о погоде? Создать 3D-объект? Анатомические данные? Распознавание на основе естественного языка (NLP)? Обнаружение аномалии во временном ряду? Отправить сообщение? Получить цифровую подпись? Все эти задачи (и многие другие) являются просто функциями, которые вы можете незамедлительно вызвать из любой программы, написанной на языке Wolfram Language. Отсутствует необходимость выискивать специализированные программные библиотеки, а все сразу встроено в язык.

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

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

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

Движок Wolfram


Бесплатная библиотека Wolfram Engine для разработчиков реализует полный язык Wolfram Language как программный компонент, который можно сразу подключить к любому стандартному стеку разработки программного обеспечения. Он может работать на любой типовой системной платформе (Linux, Mac, Windows, RaspberryPi,…; персональном компьютере, сервере, виртуально, распределенно, распараллеленно, встроенно). Вы можете использовать его напрямую из программного кода или из командной строки. Вы можете вызвать его из языков программирования (Python, Java, .NET, C/C++,…) или из других программ таких как Excel, Jupyter, Unity, Rhino и др. Вы можете вызывать его через различные средства передачи данных — сокеты, ZeroMQ, MQTT или через собственный встроенный протокол WSTP (протокол символьной передачи Wolfram). Он читает данные и записывает в сотни форматов (CSV, JSON, XML,… и др.), подключается к базам данных (SQL, RDF / SPARQL, Mongo, ...) а также может вызывать внешние программы (исполняемые файлы, библиотеки...), из браузеров, почтовых серверов, API-интерфейсов, устройств, а также языков (Python, NodeJ, Java, .NET, R, ...). В ближайшем будущем он также сможет подключаться напрямую к веб-серверам (J2EE, aiohttp, Django, …). Вы можете редактировать и управлять своим кодом на языке Wolfram Language с помощью стандартных сред IDE, редакторов и инструментов (Eclipse, IntelliJ IDEA, Atom, Vim, Visual Studio Code, Git и др.).

Бесплатный движок Wolfram для разработчиков имеет доступ ко всей базе знаний Wolfram посредством бесплатной базового плана подписки на сервис Wolfram Cloud. (Если вам не требуются данные в режиме реального времени, все может быть кэшировано и вы сможете запускать Wolfram Engine без подключения к сети). Базовая подписка на Wolfram Cloud также позволяет вам хранить свои методы API в облаке.

Ключевой особенностью языка Wolfram Language является то, что вы можете запускать точно такой же код где угодно. Вы можете запустить его в интерактивном режиме с помощью документов Wolframна персональном компьютере, в облаке или на мобильном телефоне. Вы можете запустить его в облачном API (или в виде запланированной задачи и т. д.), в общедоступном облаке Wolfram или в частном локальном облаке Wolfram Enterprise. А теперь, с использованием Wolfram Engine, вы также можете легко выполнить его внутри любого стандартного стека разработки программного обеспечения.

(Безусловно, если вы хотите использовать всю нашу «сверхархитектуру», охватывающую настольные, серверные, облачные, параллельные, встроенные, мобильные — и интерактивные, разработки и производственные вычисления — тогда хорошей отправной точкой для Вас будет Wolfram|One, которая доступна в виде бесплатной пробной версии).

Запуск в эксплуатацию


Итак, как же работает лицензирование бесплатной библиотеки Wolfram Engine для разработчиков? За последние 30 с лишним лет у нашей компании была очень простая модель использования: мы лицензировали наше программное обеспечение с целью получения прибыли, именно это и позволяет нам продолжать нашу долгосрочную миссию непрерывных, и энергичных научных разработок. Также мы сделали много важных программ доступными бесплатно — например, это наш основной сайт Wolfram|Alpha, Wolfram Player и доступ к облаку Wolfram в подписке по базовому тарифу.

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

Если у вас есть готовый программный продукт (система), готовый к запуску, вы также можете получить лицензию на производство с применением Wolfram Engine. Как именно это работает, будет зависеть от того, какой именно программный продукт вы создали и предлагаете. Существует несколько вариантов: для локально-индивидуального, для корпоративного развертывания, для распространения библиотеки Wolfram Engine с программным или аппаратным обеспечением, для развертывания на платформах облачных вычислений и для развертывания в Wolfram Cloud или Wolfram Enterprise Private Cloud.

Если вы создаете бесплатную систему с открытым исходным кодом, в этом случае вы можете подать запрос на бесплатную лицензию на использование Wolfram Engine. Кроме того, если у вас уже есть лицензия по типу лицензии Wolfram (того типа, который есть, например, в большинстве университетов), вы можете свободно использовать Free Wolfram Engine for Developers для всего, что прописано в лицензии.

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

Применяйте на здоровье!


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

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

Наша команда упорно работала для того, чтобы сделать Free Wolfram Engine для разработчиков, настолько простым в использовании и развертывании, насколько это вообще возможно в принципе. Но если вдруг что-то не сработает у вас лично или в вашем проекте на работе, тогда пожалуйста отправьте мне письмо! Если все в порядке, используйте то, что мы разработали для вас, и сделайте что-то новое на базе того, что уже создано!

О переводе
Перевод поста Стивена Вольфрама "Launching Today: Free Wolfram Engine for Developers
".

Выражаю огромную благодарность Петру Тенишеву и Галине Никитиной за помощь в переводе и подготовке публикации.

Хотите научиться программировать на языке Wolfram Language?
Смотрите еженедельные вебинары.
Регистрация на новые курсы. Готовый онлайн курс.
Заказ решения на Wolfram Language.
Wolfram Research
142,69
Wolfram Language, Mathematica, Wolfram Alpha и др.
Поддержать автора
Поделиться публикацией

Комментарии 19

    +2
    OsipovRoman не могли бы вы описать преимущества wolfram engine перед python в качестве языка для ML и DS?
      +1
      Можно посмотреть на такое. Скорей всего из коробки будет гораздо более функциональным.
      habr.com/ru/company/wolfram/blog/451640
      +5
      нам хотелось бы держаться как можно дальше от множества вариантов рекламных уловок, которые, к сожалению, в последнее время стали слишком распространенными в области лицензий на программное обеспечение

      всем желающим

      применяйте на здоровье!

      Лицензионные ограничения весьма нешуточные. По сути, можно только играть дома по вечерам или в университете, привыкая к первой дозе. Любое коммерческое (и вообще production) использование требует покупки лицензии. Нет, всё понятно, бизнес есть бизнес, я только за, но упомянутые альтруистические декламации выглядят как подмена понятий.

        0
        Цена почти не кусается
        Price per copy distributed: typically $5–$100 per Wolfram Engine, depending on volume and application
        0
        А у кого-то получилось так же красиво видеть графики/изображения в консоли?
        У меня пишет «Out[16]= -Graphics-» и всё…
          0
          С помощью Export можете их выгружать в любой растровый формат на жесткий диск.
            0
            Да, но как сделано на видео?
              0
              Уточните, пожалуйста, что именно имеете ввиду? Если вам нужна интерактивная среда разработки — можете использовать:
              Wolfram|One, Wolfram Cloud, Mathematica…
          +6
          Статья немного похоже на воззвание «Почему же, черт возьми, меня, такого замечательного, никто не любит?»

          И вроде бы преимущества Вольфрама, по сравнению с условным Питоном, очевидны — встроенные базы данных и алгоритмов.

          Но так ли это важно в типичной разработке? На Питоне можно найти те же алгоритмы, да придется гуглить, но и в Вольфраме никто не помнит все 5000 функций, примеры решения конкретной задачи придется тоже искать. Если бы в язык была встроена интеллектуальная система которой можно было бы ставить и уточнять задачу на естественном языке, в режиме диалога, а она предлагала решения – да, это бы перевесило многое. Но да такого еще далеко.

          С базами данных тоже не все очевидно – в реальном проекте почти наверняка понадобятся данные которых в языке нет. Какому проценту разработчиков может пригодиться база населения городов мира? В научном проекте – безусловно, подобные базы очень полезны. Но в разработке обычного ПО их польза сомнительна.

          Преимущества безусловно важные, но есть два фатальных недостатка: объем и цена.

          Wolfram Engine после установки занял у меня на диске 4 Гб. Если я захочу задействовать пару алгоритмов в своем продукте – должен буду убедить каждого клиента получить такой довесок. Это как минимум неудобно. Возможно есть вариант сократить базу оставив только нужные функции, не знаю.

          Второе (и главное) – даже для собственного некоммерческого использования я должен получить на сайте временную лицензию и зарегистрировать продукт через интернет. А судя по фразе «В отличие от Mathematica, он не лицензирован для генерации результатов для коммерческого или организационного использования.» — я даже прав на результаты полученные дома не имею.

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

          Иными словами, овчинка, конечно, хороша, но выделки явно не стоит.

          На мой взгляд у языка Wolfram два пути:

          Первый – выход на массовый рынок пойдя по пути игровых движков: предлагать бесплатную базовую версию, в том числе для коммерческого использования, но только при обороте менее заданной суммы (как Unity, 100 тыс. $ в год), при превышении оборота – ставить серьезный ценник для разработчиков. С конечных пользователей не брать денег совсем, даже упоминания не требовать. Иначе о массовости можно забыть.

          Второй – оставаться в собственной нише «умного» вычислительного инструмента, для хобби проектов и научных исследований. Честно признать, что это не «язык программирования», а продвинутая система запросов к базе, обычное ПО с соответствующей системой лицензирования. По сути, все та же «Mathematica» только с базой побольше.

          Оба пути вполне «достойные», хорошие пути. Но вот статьями типа этой делать вид что поддерживаешь первый путь, на самом деле стабильно сидя на втором – как то не очень.
            0
            Wolfram Language изначально разрабатывался как язык для символьных вычислений и в этом ему нет равных. Но отсюда же следует его главный недостаток: он медленный, и это никак не победить. Что-то можно оптимизировать — но на это нужны отдельные усилия, и решения не всегда очевидные.

            Wolfram Language не поддерживает ООП. Без ООП он никогда не станет полноценным языком программирования — для программистов, а не математиков.

            В Wolfram Language есть ошибки. Но позиция Стивена в том, чтобы эти ошибки — не признавать. Некуда слать баг-репорты о неправильно посчитанных интегралах. Это удручает.

            Многое, помимо математики, в Wolfram добавлено ради галочки и не доработано до логического завершения. Например — обработка звука в реальном времени невозможна в принципе. А жаль. Есть основные оконные функции, но нет Дольфа-Чебышева. Понятно, почему — определение через дискретный спектр не позволяет её определить аналогично другим через функцию времени. Но оконную функцию Тейлора вполне можно было добавить.

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

            Утечки памяти имеют место быть. Диспетчер задач у меня открыт постоянно, чтобы вычислительные ядра грохать периодически. PVS-Studio им не помешал бы.
              +1

              Оставлю дополнение к вашему комментарию.


              Статья немного похоже на воззвание «Почему же, черт возьми, меня, такого замечательного, никто не любит?»

              Абсолютно согласен с этим, хотя может быть сам Стивен Хьюгович и не пытался вкладывать такой посыл, но получилось похоже. Данная статья вышла относительно давно и на самом деле эта новость уже освещалась на хабре, хоть и юридически это был перевод другой статьи-конспекта.


              С базами данных тоже не все очевидно – в реальном проекте почти наверняка понадобятся данные которых в языке нет. Какому проценту разработчиков может пригодиться база населения городов мира? В научном проекте – безусловно, подобные базы очень полезны. Но в разработке обычного ПО их польза сомнительна.

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


              Второе (и главное) – даже для собственного некоммерческого использования я должен получить на сайте временную лицензию и зарегистрировать продукт через интернет. А судя по фразе «В отличие от Mathematica, он не лицензирован для генерации результатов для коммерческого или организационного использования.» — я даже прав на результаты полученные дома не имею.

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


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

              Это на мой взгляд проблема даже больше чем сама по себе стоимость для разработчика. Полное отсутствие возможности пользоваться готовыми решениями для массового пользователя. Есть конечно Wolfram Player (Ранее CDF Player), который совсем бесплатен, но его функционал сильно урезан, да и все что он может делать по сути — просматривать красивые подготовленные презентации. Установка Wolfram Player — это отдельная история. Когда браузеры еще поддерживали такие расширения — думаю пользователи уже тогда не хотели устанавливать Adobe Flash Player, на который требуется 2 минуты и чуть-чуть свободного места, после чего он находится где-то в тени браузера, тогда как Wolfram Player весит больше гигабайта и его необходимо специально запускать, так как в качестве расширения браузера он тоже больше не поддерживается.


              Первый – выход на массовый рынок пойдя по пути игровых движков: предлагать бесплатную базовую версию, в том числе для коммерческого использования, но только при обороте менее заданной суммы (как Unity, 100 тыс. $ в год), при превышении оборота – ставить серьезный ценник для разработчиков. С конечных пользователей не брать денег совсем, даже упоминания не требовать. Иначе о массовости можно забыть.

              Второй – оставаться в собственной нише «умного» вычислительного инструмента, для хобби проектов и научных исследований. Честно признать, что это не «язык программирования», а продвинутая система запросов к базе, обычное ПО с соответствующей системой лицензирования. По сути, все та же «Mathematica» только с базой побольше.

              Также абсолютно согласен с обоими предложениями. В данный момент Wolfram Research делает не очень быстрые шаги в сторону бесплатного использования и разработки, как будто пробует почву — об этом говорит и бесплатный (в том числе для коммерческого использования но с сильными ограничениями по ресурсам) Development Platform и Wolfram Player и совсем свежий Wolfram Engine, который кстати можно прикрутить к jupyter notebook. На мой взгляд можно также использовать и еще один путь, похожий на первый, предложенный вами. Это сделать полностью бесплатной для любого типа использования минимальную версию ядра, которая бы весила значительно меньше чем Wolfram Engine. Пусть эта версия содержала бы основной язык, работу с сетью, файловой системой, примитивную графику и что-то еще подобное, а за отдельную плату предоставлять доступ к встроенным базам, тренировочным данным для машинного обучения, серверам, запланированным задачам и прочему. Тогда можно было бы добиться легкого распространения как среди разработчиков, так и среди пользователей. К сожалению такой вариант малореалистичен из-за того, что с самого начала Wolfram Mathematica проектировалась с тесной интеграцией всех модулей, библиотек и пакетов друг с другом, а по итогу безболезненно разделить их уже не получится.


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

              0
              Периодически читаю статьи про вольфрам, но всё ещё с трудом понимаю где область его применения, кроме «быстро что-то посчитать и сделать красивый отчёт» и «даёшь хардкорную математику».

              Есть в природе success story его применения в «обычных» проектах? Каком-нибудь онлайн магазине, например :-) или в геймдеве.
                0
                Вот тут Отраслевые решения… вы найдете кучу примеров применения в самых разных областях и компаниями.

                Лично я применял в своей работе Wolfram со следующими заказчиками (Яндекс, Баласс, ВалентаФарм и др.).
                  +2
                  Могу поделиться своим опытом использования. Я занимаюсь анализом геолого-геофизической информации и часть работы выполняю в специализированном ПО (что то вроде этого ). Но нередко возникает необходимость использовать относительно новые алгоритмы, которые ещё не появились в релизе этого специального ПО. В этом случае использую Wolfram – как мне кажется для таких задач неплохо походит. Один из примеров по этой ссылке .
                  0
                  OsipovRoman, подскажите имеется ли возможность управлять сторонними приложениями, например как AutoIt?
                  Также интересна возможность создания интерактивных приложений, например визуально создавать электрические подключения?
                    0
                    OsipovRoman, подскажите имеется ли возможность управлять сторонними приложениями, например как AutoIt?
                    Да, через Run, скажем. Подробнее см. Calling External Programs.

                    Также интересна возможность создания интерактивных приложений, например визуально создавать электрические подключения?
                    Это можно делать через Wolfram Cloud выгружая через Cloud CDF, см. скажем Web Operations. Сами интерактивы делаются на основе Manipulate, DynamicModule.
                      0
                      OsipovRoman, спасибо за ответ, но видимо и дальше буду смотреть в сторону AutoIt и draw.io
                      0
                      Не туда написал, удалил сообщение.
                      0
                      нам хотелось бы держаться как можно дальше от множества вариантов рекламных уловок

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

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

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