LINUX.ORG.RU

Релиз языка Julia 1.0

 , ,


5

7

Спустя 9 лет активной разработки, свет увидел язык для инженерных и технических вычислений Julia 1.0!

Авторы языка многие годы работали с такими языками, как R, Matlab, Fortran и Python. Каждый язык, по мнению авторов, имел свои изъяны и недостатки, вследствие чего было решено разработать современный универсальный специализированный язык, который заменит все вышеперечисленные языки в инженерно-технических вычислениях.

Особенности языка:

  • Гибридная типизация с возможностью явно указывать типы.
  • Несмотря на нестатическую типизацию, имеет мощные средства для работы с типами. Например, два типа можно объединить в составной тип.
  • Имеет JIT-компилятор, который компилируется в LLVM-представление и далее в машинный код.
  • Вместо ООП используется множественная диспетчеризация, как более продвинутый механизм.
  • Простой и легкий вызов функций языка Си.
  • Поддержка многоядерности, в отличие от R, который всегда работает в одном потоке и использует одно ядро.
  • Поддержка модулей в стиле Python.
  • Макросы и метапрограммирование. Писать программы, создающие другие программы ― легко и просто!
  • Поддержка векторизации.
  • Свой пакетный менеджер.

>>> Подробности

★★

Проверено: jollheef ()
Ответ на: комментарий от pftBest

https://en.wikibooks.org/wiki/Introducing_Julia/Arrays_and_tuples#Accessing_t...

The first element is index number 1. Julia is one of the languages that starts indexing elements in lists and arrays starting at 1, rather than 0. (And thus it's in the elite company of Matlab, Mathematica, Fortran, Lua, and Smalltalk, while most of the other programming languages are firmly in the opposite camp of 0-based indexers.)

elite company

Мда...

xaizek ★★★★★ ()

Julia произносится на итальянский или испанский манер?

В последнем случае, с нетерпением жду появления резюме со строчкой «Хулия-программист».

gene1 ()

Обновился. Получил офигенные грабли:

julia> A = [1 2; 3 4]
2×2 Array{Int64,2}:
 1  2
 3  4

julia> det(A)
ERROR: UndefVarError: det not defined
Stacktrace:
 [1] top-level scope at none:0
Где теперь эти функции??

unanimous ★★★★★ ()

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

Скорее заменят авторов, чем вышеперечисленные языки.

quickquest ★★★★★ ()

Кто пользовался? Как впечатления?

Название языка регулярно встречаю уже лет 5. Но при этом с каким либо софтом на нем ни разу не сталкивался.

anonymous ()
Ответ на: комментарий от FilosofeM

В мире математики индексация начинается с единицы.
Предприниматель, инвестор, финансист и конечно-же физмат.
конечно-же физмат
физмат

Бгг. Сдай диплом в ту шаражку, которая его тебе выдала.

anonymous ()
Ответ на: комментарий от anonymous

Кто пользовался? Как впечатления?

Название языка регулярно встречаю уже лет 5. Но при этом с каким либо софтом на нем ни разу не сталкивался.

А много ты используешь софта

для инженерных и технических вычислений

?

Virtuos86 ★★★★★ ()

Молодцы! Это действительно нужный проект, но есть один серьёзный недостаток, который устранять придётся годами: для Julia ещё нет обширной кодовой базы. Зато как раз к появлению кодовой базы актуальность будет очень даже сильная.

Quasar ★★★★★ ()
Ответ на: комментарий от Quasar

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

bread ()

Тред переписи альтернативных учоных и энженеров. С заявлений «октава убила матлаб», «в математике индексы начинаются с нуля» и «питон всё» уже начали.

anonymous ()
Ответ на: комментарий от xaizek

The first element is index number 1. Julia is one of the languages that starts indexing elements in lists and arrays starting at 1, rather than 0. (And thus it's in the elite company of Matlab, Mathematica, Fortran, Lua, and Smalltalk, while most of the other programming languages are firmly in the opposite camp of 0-based indexers.)

RIP.

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

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

* встраиваемость - скрипты не должны тормозить основное приложение или жрать много памяти * reference-counting вместо сборщика мусора * работа в один поток, отсутствие скрытых потоков выполнения или чего-то такого * 100% синхронность выполнения скриптов * удобные операции со строками * стандартный набор стандартных фич: целочисленое деление, битовые операции, индексы с нуля, etc

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

anonymous ()
Ответ на: комментарий от Rot1

Матлаб убит октавом уже давно

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

Можешь привести примеры сложных серьёзных разработок на октаве? Я не ради срача, мне правда, интересно (ну и если будет на что сослаться, потыкаю в это знакомых матлабщиков).

hobbit ★★★★★ ()
Ответ на: W. Dijkstra - Why numbering should start at zero от krasoffski

Re: W. Dijkstra - Why numbering should start at zero

Во-первых, это связано с устройством языка. Например, в Си массив — это просто указатель, и запись array[n] означает всего лишь область памяти в n элементах от начала. Другими словами, индекс используется как смещение. Первый элемент массива располагается прямо по адресу array (то есть смещение 0), и потому к нему надо обращаться как array[0]. Большинство языков устроены именно так, но это лишь особенности языков.

вообще-то это не особенности языков, а так устроены компьютеры: первый элемент массива расположен по нулевому смещению. а ещё 3/2=1, а не 1.5, но иногда 1.5, да. это разные вещи. ещё 3>>1 тоже равно единице, а 3<<1=6, и вообще битовое смещение эквивалентно делению или умножению на два. просто компьютеры так устроены.

Дейкста просто объяснил один из этих простых фактов математикам(-недоучкам) на языке математики. но компьютеры надо программировать на языке программирования компьютеров, разумеется. а на языке программирования математики надо программировать что-то другое в каком-то другом месте.

anonymous ()
Ответ на: комментарий от Quasar

У матлаб есть симулинк, который очнь хорошо интегрируется в цикл рзработки для ПЛИСин основных производителей, как там у юльки с этим ? Боюсь что никак.

pylin ★★★★★ ()
Ответ на: комментарий от bread

если речь идёт о программировании компьютеров, то привычный инструмент - компьютер. си повторяет характерные черты компьютеров в силу своей «низкоуровневости», поэтому в нём индексы начинаются с нуля. другие языки программирования компьютеров тоже будут повторять те или иные характерные черты компьютеров.

если речь идёт про программировании матлаба, то это другая тема, имеющая к программированию компьютеров всего лишь посредственное отношение.

anonymous ()
Ответ на: комментарий от Rot1

Octave матлаб убить не может хотя бы по той причине, что этот пакет нацелен на совместимость с ним. А совместимость там до сих пор даже не 80%, из-за чего место матлаба octave ещё долго занять не сможет. Матлаб ценен только тулбоксами.

Quasar ★★★★★ ()