Урок 1: Введение

Julia — это высокопроизводительный динамический язык программирования высокого уровня, разработанный с учетом научных вычислений. Первоначально он был выпущен в феврале 2012 года после нескольких лет разработки в Массачусетском технологическом институте (MIT).

Как заявила команда разработчиков:

Нам нужен язык с открытым исходным кодом и либеральной лицензией. Нам нужна скорость C с динамикой Ruby. Нам нужен гомоиконичный язык с настоящими макросами, как у Lisp, но с очевидными, знакомыми математическими обозначениями, как у Matlab. Нам нужно что-то такое же пригодное для общего программирования, как Python, такое же простое для статистики, как R, такое же естественное для обработки строк, как Perl, такое же мощное для линейной алгебры, как Matlab, и такое же хорошее для склеивания программ, как оболочка. Что-то, что чертовски просто в освоении, но делает счастливыми даже самых серьезных хакеров. Мы хотим, чтобы он был интерактивным, и мы хотим, чтобы он был скомпилирован. (Мы упоминали, что он должен быть таким же быстрым, как C?)

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

  • Множественная диспетчеризация: предоставление возможности определять поведение функции для многих комбинаций типов аргументов.
  • Динамическая система типов: типы для документации, оптимизации и диспетчеризации
  • Производительность приближается к производительности языков со статической типизацией, таких как C.
  • Встроенный менеджер пакетов
  • Lisp-подобные макросы и другие средства метапрограммирования
  • Вызов функций C напрямую: без оберток или специальных API
  • Возможность взаимодействия с другими языками, например. Python с PyCall, R с RCall и Java/Scala с JavaCall
  • Мощные возможности оболочки для управления другими процессами
  • Предназначен для параллельных и распределенных вычислений
  • Сопрограммы: облегченная зеленая многопоточность
  • Пользовательские типы такие же быстрые и компактные, как и встроенные.
  • Автоматическое создание эффективного специализированного кода для различных типов аргументов.
  • Элегантные и расширяемые преобразования и продвижения для числовых и других типов
  • Эффективная поддержка Unicode, включая, помимо прочего, UTF-8.

Julia был разработан как язык, похожий на другие языки сценариев, поэтому его легко освоить всем, кто знаком с Python, R и MATLAB. Синтаксически он наиболее близок к MATLAB, но важно отметить, что это не вставной клон.

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