Комментарии 18
Сочетает в себе скорость выполнения языка C и динамическую типизацию MATLAB/Python. Причина: Julia, является компилируемым языком программирования, в отличие от MATLAB и Python
Позволяет преодолеть разрыв между высокоуровневым и низкоуровневым программированием за счёт простого синтаксиса, схожего с Python и MATLAB
И вот тут бы пару-тройку примеров этого языка...
И неплохо бы добавить ссылку на официальный сайт проекта Julia, для тех, кто из статьи так и не понял (кроме рекламы школы) что из себя она, Julia эта, представляет...
Система макросов конечно потрясающая. 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 в 2024 году