Как стать автором
Поиск
Написать публикацию
Обновить

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

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

Можно, не характерно, ага, но ерунда же написана. Речь в Джулии не о типах, речь об альтернативной релизации полиморфизма. И всё остальное на примерно том же уровне.

Как раз сейчас Джулия - моя новая игрушка, такие статьи конкретно бесят.

Больше интересного из мира машинного обучения эксперты OTUS рассказывают в рамках онлайн-курсов

Вывод: рекламу курсов нельзя делегировать тем, кто и не очень разбирается и не очень заинтересован.

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

А можете кратко сравнить с каким-нибудь другим языком, который знаете? Несколько есть смысл изучать Джулию?

Насколько есть смысл изучать Джулию?

Для себя я получил ответ на этот вопрос: https://habr.com/ru/articles/666332/

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

Насколько есть смысл изучать Джулию?

Изучать, чтобы изучать - наверное, это неумно. Для каких целей изучать? - это самый главный вопрос.

Julia позиционируется Процедурный и Объектно-Ориентированный язык с соответствующим синтаксисом для числовых и научных вычислений, который может работать намного быстрее Python. Глубоко под капотом у языка Julia находится Lisp-машина.

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

Посмотрите на кол-во вакансий в вашем местоположении и думайте - изучать или не изучать. Изучать, только если вы не научный работник, наверное, не стоит, а посмотреть можно, также, как впрочем, и языке Mojo, который тоже позиционируются как "намного быстрее Python", при этом с синтаксисом, похожим, но не одинаковым с Python.

Но всегда можно не "изучать", а "посмотреть" - это нетрудно для людей, которые знают другие Языки программирования, особенно если это С/C++ (хотя и другие тоже подойдут).

Сейчас, в общем случае, ориентируясь на кол-во вакансий и величину заработной платы, изучать стоит C/C++(после их изучения приходит понимание как работают все остальные языки программирования), SQL, Python, Java, Go, JavaScript/TypeScript, HTML/CSS.

Изучать/посмотреть R - если вы занимаетесь статистикой или около областями, типа эконометрии, биостатистики и т.д. - хотя Python и C++ закроют и это направление (мало вакансий по R и область узка).

Изучать/посмотреть Rust - как замену C/C++, Go, Fortran. (мало вакансий)

Если предстоит заниматься научными вычислениями или изобретать новые математические методы, то ответ да, однозначно надо изучать Julia. В остальных случаях неоднозначно. Но как язык со своими инструментами разработки Julia довольно приятна.

А можете кратко сравнить

Могу, но с трудом. Размножение языков с целью остановки (ещё позавчера написал бы "торможения") прогресса потому и работает изумительно, что чтобы узнать нужно ли изучать - обязательно нужно основательно изучить. Из "обязательно" следует, что рассказы тоже не работают...

Джулия минимально ориентирована на создание бинарника, хотя может. К ней в этом ближе всего Python и Lisp, а от неё дальше всего C++ и Go. REPL Джулии, пожалуй, лучший - выполнение, справка, менеджер пакетов, терминал и поиск по всему этому в одном флаконе.

Джулия одновременно универсальна и ориентирована на вычисления, в широком смысле. Всё остальное либо никуда не ориентировано (Python), либо устарело до смерти (FORTRAN), либо ушедшего поколения ориентированного на создание GUI (C++, Dart), либо равно ушедшего поколения ориентированного на раздачу HTML (PHP, Java). Поэтому в Джулии самая мощная какую видел встроенная система работы с матрицами, включая синтаксис для различения операции над матрицей целиком и её элементами по отдельности, и числами (комплексные, рациональные, десятичные, произвольной точности... и можно добавить ещё).

И вообще, 2а есть синоним 2*а. NULL аналогов не имеет, но есть nothing и missing и NaN, что вместо глупых (как выяснилось по знакомству с Джулией) танцев вокруг sound null safety или int? даёт возможность ds(x::Union{Int64, String, Missing}) = x^2 и будет тогда ds(45) -> 2025, ds("45") -> "4545", ds(missing) -> missing, ds([1,2]) -> ошибка, но только если нигде не написано вроде ds(q::Any) = 42, тогда ds([1,2]) -> 42 и ds([11, 12 : 3 : 21, 22]) тоже 42. И √(-1+0im) есть 0+1im (набирать, например, \sqrt<tab>...)

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

У Джулии система метапрограммирования не хуже, а то и лучше, чем у Lisp со товарищи. Иными словами, всё сколь либо популярное - отдыхает.

Несколько есть смысл изучать Джулию?

Я бы так советовал... Если Вас интересуют языки программирования сами по себе - изучение абсолютно обязательно. Если Вы являетесь одновременно программистом и потребителем результатов програмирования, хотя бы в составе комманды, то изучение желательно. Если Вы производите приложения в системе сеньор - тестер, то изучение Джулии смысла не имеет, а противопоказания к таковому изобильны.

Чтобы быстрее всего самостоятельно проверить имеет ли смысл изучать, изучите как "рецепты" позволяют получить красивые графики из чудоковатых данных в пакете Plots. Много особенностей Джулии затронуто, а материал довольно компактный.

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