Как стать автором
Обновить

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

Сочетает в себе скорость выполнения языка C и динамическую типизацию MATLAB/Python. Причина: Julia, является компилируемым языком программирования, в отличие от MATLAB и Python

Позволяет преодолеть разрыв между высокоуровневым и низкоуровневым программированием за счёт простого синтаксиса, схожего с Python и MATLAB

И вот тут бы пару-тройку примеров этого языка...

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

Вот пример где я вытягивал максимальную скорость

https://habr.com/ru/articles/706228/

бы добавить ссылку на официальный сайт проекта Julia

https://julialang.org/

пару-тройку примеров этого языка


https://ru.wikipedia.org/wiki/Julia_(%D1%8F%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)

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

Матлаб компилируемый, на нем часто делают как минимум прототипы фичей для смарт-часов и подобной техники

Тут надо различать – MATLAB при выполнении из среды обращается к dll и... потенциально... код прототипа программы можно скомпилировать и отвязать от зависимости от dll. А код на Julia компилируется в бинарное приложение при помощи llvm, очень современного компилятора, и только потом выполняется.

Извините за не очень официальный пример, но вот форумный пост, где навскидку показано, как получить внутреннее представление программы "1+1" вплоть до ассемблера.

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

Ну, ок, я не могу утверждать что именно используется в качестве бэка для matlab compiler ибо он закрытый и последний раз я его тыкал лет 10 назад, но вполне возможно что тот же llvm, написать фронт для него не сильно сложно.

Конечно, мы оба понимаем, о чем говорим, давайте просто распутает термины ради тех, кто читает.

Различия очень существенные. Оба языка компилируемые, но абсолютно по-разному. MATLAB – интерпретатор с опционально компилируемым языком. А в Julia программы неизбежно компилируются, хоть из скрипта, хоть из REPL.

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

Дело, конечно, прошлое... но всё-таки...

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

Так и было, я помню, пока людям платили деньги за решённые задачи, и так перестало быть когда появился посредник в лице индустрии программирования и человек с задачей лишился непосредственного доступа к способной её решить машине, но перестало быть не до конца. Если сравнивать Julia, то скорее с Racket, которая пока жива и которую обязательно нужно рассмотреть прежде яем заниматься Julia, с Emacs с его Emacs Lisp, который считай умер, особенно как нечто большее чем редактор, и только потом с Python, который сейчас царствует, но каксредство решения личных задач сильно уступает Julia, в том числе потому, что последняя может использовать и его пакеты.

Критерий различия прост - приходит программист и говорит - моя сделаль! Если имеется в виду приложение - один мир, если библиотека - другой.

В этом году Экспонента вместе со средой разработки Engee стали информационными партнерами бесплатной Летней школы Julia.

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

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

Не вижу почему это не так. Однако, появляется предварительное условие изучения Julia - членство в научных и инженерных средах.

Недавно Julia дебютировала в TIOBE Index
– рейтинге популярности языков программирования, который основывается
на результатах поисковых систем, дискуссионных форумах и других ресурсах

И да, по ссылке мы видим Julia на 34-ом месте. Это точно достижение? Да и индекс становится всё страньше и страньше по мере удаления от топа, разве естественно выгдядит сильно опережающая Julia последовательность Delphi/Pascal > Rust > Ruby > PHP > Swift > Kotlin? А полезной эта последовательность точно выглядит?

Рост популярности Julia можно проследить на этом графике:

И мучаться вопросом - что же произошло в годах 2017 и 2021 и происходит прямо сейчас? Приводя такой график, особенно аудитории склонной к Julia, автор обязан поделиться хотя-бы предположениями.

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

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

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

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

Верно, из всех языков «ChatGPT лучше всего пишет код на Julia». К чему бы это? :)

Наверно потому, что на Julia меньше очень плохого кода путать ChatGPT. Как это ни объясняй, для "войти в АйТи" - получается одновременно и преимущество и недостаток.

И забыл - у Julia не такая уж и широкая поддержка платформ. Что в Termux готового пакета нет - это ладно, но бросается в глаза что лучше всего сидеть на Интел и Линукс с картой nVidia.

лучше всего сидеть на Интел и Линукс с картой nVidia

Не совсем правда... Конечно в Julia есть байндинги для openCL. Я сижу на windows и локально работаю с Julia через Jupyter (расшифровывается... Julia, Python R). И вот мой опыт: недавно писал для коллег идентичный код на Julia и на Python (взятие классических метрик от большого набора текста, вывод HTML). Запрототипировал на Julia, но пайплайн оказался на Python. Скорость выполнения на Julia была раз в 15 выше, чем на Python.

И да, по ссылке мы видим Julia на 34-ом месте

Список довольно турбулентный, языки этой категории часто перепрыгивают на десятки мест. Доказательство – пару лет назад Julia была номер 20. Как вы видите, согласно TIOBE топовый язык мат.моделирования – это Fortran. Но так не дожно быть :)

Можно поискать более сложные гипотезы. Например, отсеять языки, пригодные для вашей сферы (скажем, техника/инженерия/прикладная математика в промышленном масштабе), и тогда Julia идет сразу после MATLAB (который потомок Fortran). Python, при всей моей любви к нему, требует очень много интуиции программиста, там математикам приходится переучиваться на кодеров.

что же произошло в годах 2017 и 2021 и происходит прямо сейчас... автор обязан поделиться хотя-бы предположениями

Боюсь что ни у кого не будет предположений о том, почему в индексе были небольшие скачки популярность Julia в эти годы. Турбулентный индекс, да и всё...

программисты эти нужны в последнюю очередь

Если воспринимать MATLAB как специальность, а не как продукт, то спрос на MATLAB-программистов не падает. Продакшен и саппорт – вообще другие миры, Julia для них хорош, но это ничего не говорит о спросе на программистов по Julia. Если вопрос стоит – учить Си или нет, то тут тоже каждый решает за себя. Как алгоритмическая база – отлично. Если надо пахать над моделями и нет времени отвлекаться – то не стоит.

Julia меньше очень плохого кода путать ChatGPT

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

Вас это может удивить, но на Delphi стабильный спрос, особенно в странах Бразилии, Индии, Германии и некоторых других. В России вообще находятся несколько разработчиков этого инструмента.

Никогда бы не хотелось ничего плохого говорить про Delphi 7 (и Kylix), когда-то был моей любимой средой, но это было в стародавние времена GUI приложений, и нравился он не эффективностью, о которой у меня понятия не было, а уютной средой и альтернативностью microsoft. Для чего вы его используете, какие видите сильные стороны?

Со времен Delphi 7, среда разработки развивается до сих пор. Сейчас Delphi - это полностью кроссплатформенный язык с штатным кроссплатформенным GUI фреймворком с возможностями не уступающими HTML+CSS и тем более WPF.

Другими словами, мы создаем и мобильные приложения (iOS, Android) и десктоп приложения (Win, Mac, Linux) и даже веб приложения (и фуллстек решения (UniGui, WebUI) и только фронтенд (TMS Web Core - трансляция в js) и бэкенд (тут очень много: MARS, mORMot, DMVC, Horse, ...)).

Под мобильные платформы есть и нативный фреймворк - FGX, сторонний, от нашего разработчика.

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

Можете зайти в мой профиль гитхаб и посмотреть некоторые решения https://github.com/HemulGM

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

Интересно, как они прикручивают проприетарное ядро Delphi к разным средам, пусть даже к Eclipse... Может быть вы знаете, как это устроено?

Kylix давно нет. И работы с другими средами тоже.

RAD Studio - среда для Delphi, имеет несколько компиляторов для разных платформ. Сама среда только по Винду. Сборка под разные платформы тоже из под винды. Используется llvm для сборки.

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

Где вы были 12 лет?

О том и речь, спасибо что сформулировали кратко. :) Надеемся, всяких школ по Julia, в том числе и летних, будет только больше.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий