Джулия vs Python

Джулия - претендент на Python в научной области, каждый из которых имеет обширную библиотеку. Может ли новичок заменить старого? (Питон датируется 1991 годом).

Démo Langage de programmation Julia
Пример кода на языке Julia

Разработка Джулии началась в 2009 году, и язык стал популяризироваться, когда в 2012 году компилятор стал открытым исходным кодом. В настоящее время он доступен по лицензии MIT. Цель - создать язык с преимуществами Python (простота и динамизм), R (статистическая обработка), C (скорость выполнения), Perl (обработка строк), Mathlab (линейная алгебра) и другие. Он тоже хочет, чтобы его распространяли, обобщали.
В традиции Паскаля название языка происходит от французского математика Гастона Джулии, первооткрывателя фракталов.

Его простота и научные возможности делают его возможной альтернативой Python. Но лучше ли он? Обычно он значительно быстрее Python, который использует библиотеки, написанные на языке C, чтобы компенсировать медленную работу интерпретатора. Для выполнения алгоритма важно, но главное, как они ведут себя на больших наборах данных, например, матричных вычислениях. К Бенчмаркам.
Преимущество Python в том, что библиотеки также могут быть написаны на Julia и скомпилированы, в то время как для добавления быстрых функций в Python необходимо использовать другой язык.

Будут также сопоставлены функции и синтаксис. Оба языка хотят легко понять и адресованы прежде всего аудитории, которая не заинтересована в hardware, а значит, и в языках, полученных из C, таких как Go, которые сделаны для упрощения задачи компилятора, а не повышения производительности программиста.

Подобия

Разногласия

Введение в синтаксис Юлии

Функция

Определение начинается с ключевого слова function и заканчивается end. Это обычно, но не оптимально, язык Script упрощается, завершая функцию возвращением или возвращением, за которым следует возвращаемое значение.

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

fun(x) = x * 5

println(fun(2))

Что должно показать 10.

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

Операторы - это функции. Можно назначить символ + функции f и выполнить вызов f (x, y), который вернет сумму двух аргументов .

Контрольные структуры

Структура if похожа на структуру PHP или Python.

Цикл для фигуры :

for i = 1:n
 ... 
end 

Что так же просто, как Python, как с другим синтаксисом.

Итерация на контейнере, в той же форме, что и в Script или других современных языках:

for s in [1, 2, 3]
 ... 
end

Петля while классическая:

while a < 5
  a += 5
end

Другой структуры контроля нет. Нет, нет, нет, нет. Маттерн не рассматривается создателями.

Классы и однородность

Классы - это составные типы, в которые вложены функции, которые таким образом становятся их методами.

type myclass 
   function f(x, y)
     ....
   end
end

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

Это трактуется в учебнике, но примеры не очень яркие. На данный момент я полагаю, что функция eval, как и в JavaScript, позволяет оценивать и интегрировать код в программу, и что существуют различные команды для «самоанализа», доступа к коду даже в соответствии с данными.

Я должен использовать Джулию ?

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

Но он не идеален. Для маттерна ничего не предусмотрено, что-то очень развито в Scala, другом современном и инновационном языке. Объекты не поддерживают наследство или композиции, что вызывает широкое применение.
Документация краткая и непонятная. Большинство примеров находятся в командной строке и не очень читаемы.
Сообщения об ошибках в основном были слабым местом во время моей первой попытки в 2014 году. Большинство ошибок внутри функции отмечаются в строке 1, которая является строкой или начинается функцией и поэтому ее трудно найти.
Мой опыт реализации критерия Erasthothenes был трудоемким в то время, но был бы легким с нынешней версией.

Обновлено 23 апреля 2017

Язык сильно изменился после первого теста, проведенного в 2014 году:


Julia Studio - бесплатный EDI, посвященный этому языку.

Джулия против Питона. Сравнение языков.

Джулия Он Васм. Как скомпилировать Джулию в WebAssembly. Экспериментальный .

Ссылки: Сайт Юлии. Авторы - Джефф Безансон, Стефан Карпинский, Вирал Б. Шах, Алан Эдельман.

Programming and датировал languages - Asm.js - - Бейсик - C - C++- - C # - Дарт - Эйфель- - Го - Ява - JavaScript- Джулия- - Паскаль- PHP- - Питон - Пролог - - Руби - - Ла СкалаСкриптолСвифт TypeScriptHTMLВасмXMLXAML SQL