LINUX.ORG.RU

Как поживает The Julia Language?

 , , , ,


2

3

Как там поживает Julia (https://julialang.org/)? Уже вышла версия 1.1.

Решил почитать на выходных документацию. Некоторые вещи показались интересными, а некоторые вызвали недоумение (греческие буквы в переменных?).

Что скажут специалисты? Является ли язык достаточно зрелым? Применяет ли кто-то в реальных проектах?

★★★★★

греческие буквы в переменных?

я если что сварщик ненастоящий, так что для себя поинтересуюсь: а что, там греческие буквы как-то прибиты гвоздями и их надо использовать? а то так-то сейчас разве в диковинку использование юникода в названии переменных?

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

А я и не утверждаю, что это плохо. Просто возник сразу вопрос: «А не хипстеры ли разработчики?».

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

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

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

Ты технарь или где? :) Нафиг упоминание хрен его знает чьих мнений (может его авторы сами упороты) вместо описания тех самых «разных причин»? Может там очередные страдания по CoC-у... :)

Как бывший лиспер присматриваю в пол глаза я Джулией, ибо язык с макросами )) По мне - неплохой «недоязычёк» для заявленных целей. Почему «недо-» - потому-что не для программистов (современных), ибо недо-ООП и недо-макросы. Но какое-никакое развитие присутствует и какой-то хайп вокруг языка поддерживается. Вряд ли выстрелит как «язык для всего», но отдельные программисты могут «выстрелить» на волне этого самого небольшого хайпа «там».

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

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

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

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

Просто возник сразу вопрос: «А не хипстеры ли разработчики?».

Я тоже ненастоящий сварщик, но с таких вопросов у меня встречный вопрос: тебе в сути разобраться или ярлыки наклеить? Потому, что «хипстер» на ЛОРе — это обычно ничего не значащее ругательство, которым обозначают любого человека, делающего то, в чём ругающий просто не может или не хочет разобраться.

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

Большинство греческих букв мапятся в латиницу, поэтому могут набираться как key+a = α, key+b = β, key+g = γ, key+d = δ... Где key это какой-то модификатор

Но как их набирают на практике, я хз

Crocodoom ★★★ ()
Последнее исправление: Crocodoom (всего исправлений: 1)

Что скажут специалисты? Является ли язык достаточно зрелым? Применяет ли кто-то в реальных проектах?

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

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

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

Решил спросить на ЛОРе, может тут кто-то использует. Но похоже, что нет.

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

Большинство греческих букв мапятся в латиницу

Смешнее то, что большинство латиницы содрано с греческих букв древними римлянами. Зачем более поздним учёным нужно было писать α вместо a, - не очень понятно.

DonkeyHot ★★★★★ ()
Последнее исправление: DonkeyHot (всего исправлений: 1)
Ответ на: комментарий от aquadon

C 2012 года он у всех многообещающий, годный и нужный...

Не у всех, а только у тех, кто (больше) не хочет писать Фортране/Питоне/Матлабе/R (с соответствующими нишами применения, (около-)научные вычисления). Т.е., рядовому веб-разработчику на Питоне эта Джулия как собаке пятая нога. И если нужны проверенные инструменты типа Симулинк, никакая Джулия их не заменит. Это раз, т.е. уже далеко не все.

Но библиотек пока нет и никто не использует, только присматриваются.

Каких именно библиотек? Если вы хотите бесцельно «потратить свободное время для изучения», то отсутствие непонятно каких библиотек вас не должно останавливать. Точно так же успешно можно потратить время на изучение какого угодно экзотического языка.

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

Кто сказал, что я веб-разработчик? Я математик.

Если вы хотите бесцельно «потратить свободное время для изучения»

Бесцельно тратить время я не хочу. На данный момент мои вычислительные задачи успешно решены с помощью python+numpy.

Я хочу инвестировать свое время в изучение перспективного инструмента. Перспективность Julia - предмет обсуждения здесь.

aquadon ★★★★★ ()
Последнее исправление: aquadon (всего исправлений: 1)
Ответ на: комментарий от aquadon

Попробуй решить какую-то реальную задачу на julia и все выяснишь для себя. Лоровские срачи по поводу ЯП конечно забавны, но только практика критерий истины. Может оказаться так, что во всем прекрасный в теории и модный инструмент тебе лично вообще не подходит из-за какой-то незначительной фигни. И наоборот, закопанный прогрессивным сообществом школьников какой-нибудь фортран очень даже подходит.

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

Еще у кодеров-утят есть такая черта: залипание на синтаксисе. Увидит такой end end end например и в ужасе бежит причитая: невозможно это терпеть, упоролись совсем! Так что множество отзывов сразу летит в /dev/null по этой причине.

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

Это я к тому, что «все» «всем» рознь. ИМХО рекламируемые плюсы Джулии так же и её минусы. Например, если мне нужно что-то быстренько проверить на практике, реализовать определенный алгоритм, и отобразить/посмотреть, как он работает на конкретных данных, мне совершенно не интересно, чтобы мой код компилировался для какой-то там ЛЛВМ, достаточно оберток над оптимизированными библиотеками на С/С++/Фортран, которые выполняются «достаточно быстро» без всяких компиляций каждый раз. С другой стороны, когда я уже разобрался с алгоритмом, и мне нужно закодировать библиотеку для использования ее извне, мне совершенно не нужна инфраструктура Джулии, РЕПЛ, ноутбуки, языковые возможности типа абстрактных типов данных. А нужен только оптимизирующий компилятор с поддержкой векторизации кода для SIMD, CUDA, и возможность беспроблемной линковки/вызова из других ЯП.

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

На данный момент мои вычислительные задачи успешно решены с помощью python+numpy.

А чего ты дёргаешься тогда? Джулию выдумали для тех, чьи задачи не могут быть успешно решены с помощью python+numpy. Мне, например, приходится использовать f2py/cython для некоторых задач. Преимущества джулии здесь вижу я невооружённым глазом.

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

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

Сравнивать джулию с фортраном - это как сравнивать попу с пальцем. Фортран используется там, где каждый процент производительности критичен. Джулия по производительности с фортраном тягаться (пока) не может, потому что llvm и фортран компиляторы - это разные весовые категории. Джулия - это конкурент матлабу, numpy, R и т.д. Для последних есть компиляторы, но они все плохо оптимизируют код, потому что изначально эти языки разрабатывались как интерпретируемые, и проблема производительности решается с помощью костылей. В джулии компилятор есть из коробки, и весь язык устроен так, чтоб компилятор мог его легко оптимизировать.

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

yvv ★★☆ ()

А почему у них IDE на базе Atom'a? Он же практически умер, MS купила GitHub, и будет развивать Visual Code. Собираются ли с этим что то делать? Например создавать плагин для Visual Code как основной?

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

чтобы показать, например, что величины зависимы...

Для этого есть более надёжные способы: 1. «величины такие-то зависимы». 2. апострофы и т.п. 3. заглавные/прописные 4. цифровые или буквенные «декорации» со всех сторон.

Не, там точно какая-то психическая зараза.

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

Смешнее то, что большинство латиницы содрано с греческих букв древними римлянами. Зачем более поздним учёным нужно было писать α вместо a, - не очень понятно

Не, там точно какая-то психическая зараза

Спешите видеть! Регистрант ЛОРа срывает покровы с научного сообщества. 18+

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

Я так понимаю что если алгоритм пишется не один раз, мол сначала прототипирование на Python, а потом реализация на чем-то быстром - то важна постоянная поддержка, разработка, дополнение алгоритма. Это проще делать на основно одного кода. А не постоянно менять прототип, а потом дописывать (почти) то же самое на продакшн версии

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

Это идеально, но так все равно не получается, потому что часто «читабельно, просто и вариабельно», к сожалению противоположно «эффективно». Собственно, само существование матлабов и прочими нумпитонами, R, и, собственно Julia этому свидетельство.

Но конечно, язык прототипирования не должен быть чрезмерно медленным, иначе на нем невозможно проверять содержательно.

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

важна постоянная поддержка, разработка, дополнение алгоритма. Это проще делать на основно одного кода. А не постоянно менять прототип, а потом дописывать (почти) то же самое на продакшн версии

М.б., хотя тут надо считать на примере конкретного проекта. Но в случае использования разных языков с разной специализацией появляется возможность разделения труда. Теоретик в предметной области может понятия не иметь, как реализовать эффективно тот или иной алгоритм на конкретной аппаратной платформе или как достичь простой расширяемости программной архитектуры, а может только обладать базовыми алгоритмическими навыками. С другой стороны, технарь, спец по ЯП, параллелизации кода и программной инженерии может обладать только базовыми знаниями в области теории предметной области, чтобы теоретик мог разжевать, что именно нужно закодировать. ИХМО вместе как команда они будут более эффективны при использовании своих специализированных инструментов, а не одного и того же инструмента, который не может удовлетворить одновременно взаимоисключающие требования.

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

seiken ★★★★★ ()