LINUX.ORG.RU

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

 , , , ,


2

3

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

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

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

★★★★★

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

Чем больше разделения труда в команде, тем она более эффективна

А потом появляются Devops. Увольняются все «админы» и увольняются все «DBA». Потому что это устраняет горы бюрократии, когда инструменты стали более высокоуровневыми и автоматизироваными

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

Владимир

Фантастика!
А у меня одна проза:
- один в игры играет;
- другой видики, музыку ...;
- третий ...
- ...

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

PS: Неужели то чем вы написали правда /не то, чтобы не верю вам/?
Впрочем меня такое поведение окружающих не задевает от слова - совсем.

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

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

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

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

каждому доктору наук кандидату аспиранту лаборанту дать по квалифицированному прогеру для решения повседневных задач

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

Хотя если нужно закодировать велосепед в одно рыло, то конечно, можно самые модные и «универсальные» ЯП задействовать. Но такие велосипеды можно по-прежнему писать на Fortran/Matlab/Python/С++.

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

А вы что, думаете, каждый физмат теоретик будет разбираться в очередном модном ЯП?

«Каждый»?.. Это обвинение в идиотизме?

В любом случае - их уже достаточно для поддержания некоторого хайпа вокруг Джулии. Что каждый из них нашёл для себя в Джулии, а не стал продолжать использовать или изучать «Fortran/Matlab/Python/С++» - это надо спросить у них.

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

Лаконичность. Чем больше алфавит, тем выше выразительность. Латинский + греческий это 2*(24 + 26) букв для обозначения переменных. Иногда используют и дополнительные алфавиты, например букву Алеф. Русские буквы тоже используют, хотя это экзотика. А вот сколько различных значков они придумали для обозначения операций.

Всё это может быть неудобно набирать с нашей клавиатуры, зато прекрасно пишется пером или мелом. Быстро и понятно, если человек обучен читать математически тексты. Эти традиции сложились задолго до появления пишущей машинки. А легко ли набирать музыкальные ноты? Или иероглифы?

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

Зачем более поздним учёным нужно было писать α вместо a, - не очень понятно.

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

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

Я что-то пропустил, и в IT-области уже жуткий кризис и нормальные программисты не могут себе на миску риса накодить?...

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

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

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

И Julia решает эту проблему?

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

Мозгам теоретиков копошения в человейнике компутер недосайнс не интересны.

Ну ладно, дедам простим, но вообще-то ученый, не умеющий в компутер в 21 веке это такой инвалид, что возникают вопросы, а насколько он компетентен в своей специальности, и не является ли проффэсором кислых щей.

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

Ну ладно, дедам простим, но вообще-то ученый, не умеющий в компутер

О чем вы? Про «не умеющий в компутер» вообще не было речи.

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

Достаточно сравнить вклад в науку греков и римлян

Недостаточно. Теперь. В 15м столетии - возможно Но как ни крути, за последние 5 было сделано намного больше, чем всеми греками вместе взятыми.

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

прекрасно пишется пером или мелом

И сколько же текста написал средний лоровец пером или мелом за последний год?

традиции сложились задолго

Именно. Традиции есть психическое явление. Передающееся воздушно-пинательным путём. Практически вирус, если начитаться Докинза.

легко ли набирать музыкальные ноты

Случилось так, что в детстве я набрал немало нот. На правильной клавиатуре - очень просто.

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

Да, забыл.

Лаконичность. Чем больше алфавит, тем выше выразительность

Возьмём 26 английских букв. Умножим на 3 варианта декораций(апостроф и палка сверху) и 2 регистра. Много ты видел мат. текстов, использующих 156 разных символов?

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

Осознал!

сколько различных значков они придумали

Им нужно было много значков! Потому, что писать пером - нудная ручная работа!

И вот мы, в 3м тысячелетии, тщательно вытаптываем «lambda». Гордые последователи культа карго, Предавшие всё, за что боролись отцы-математики — минимизацию рутины!

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

И сколько же текста написал средний лоровец пером или мелом за последний год?

А при чём тут вообще лоровцы???

Возьмём 26 английских букв. Умножим на 3 варианта декораций(апостроф и палка сверху) и 2 регистра. Много ты видел мат. текстов, использующих 156 разных символов?

У декораций есть своя, опять же традиционная, семантика.

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

Апостроф означает производную, или координаты после замены базиса, или транспонирование, или дополнение множества.

Что конкретно — зависит от области математики и научной школы авторов текста.

Crocodoom ★★★★★
()
Ответ на: Осознал! от DonkeyHot

И вот мы, в 3м тысячелетии, тщательно вытаптываем «lambda». Гордые последователи культа карго, Предавшие всё, за что боролись отцы-математики — минимизацию рутины

Последние лет 5 этот «культ карго» постоянно всплывает, к месту и не к месту. В данном случае не к месту. Традиция — это не культ карго. Любая научная статья ссылается на другие, предшествующие статьи. А те ссылаются на предшествующие. А те ещё дальше. Если какие-то обозначения уже устоялись, например греческая psi для обозначения волновой функции, или lambda для обозначения длины волны, то они переносятся и в более новые статьи.

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

Традиция — это не культ карго

(от лат. traditio «предание», обычай) — множество представлений, обрядов, привычек и навыков

cargo cult is a belief system ... in which adherents practice superstitious rituals hoping to bring ...

Видишь разницу? Я вижу 1 - конкретные навыки не попадают во второе но только при наличии нескольких равноэффективных способов получения результата.

В каждой отрасли есть свой «словарь», повторное и повсеместное использование которого ускоряет общение. Ключевое слово - оптимизация. Если какой-то кусок не оптимален — не очень важно на сколько, его использование есть "... superstitious rituals hoping to bring ...".

означает Ф или Ы или В или П или ...

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

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

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

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

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

И сколько же текста написал средний лоровец пером или мелом за последний год?

Я исписал пером больше тысячи листов за последний год.

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

Ну, например, в Mathematica я с удовольствием использую её типографские возможности: всякие дроби, корни, мнимую единицу и т.д.

Что касается julia и её разработчиков, то греческие буквы, на мой взгляд, вызывают меньше всего удивления. Меня гораздо больше смущают их бенчмарки, где julia обгоняет C, не говоря уже о C++. Я понимаю, что в отдельных случаях этого можно достичь, но мне кажется, что это результат специальных оптимизаций, а не показатель совершенства их компилятора. Интересно было бы почитать истории, когда кто-то натыкался на существенное снижение производительности там, где его быть не должно, но я как-то такого не нашёл (хотя плохо искал).

knovich
()
Ответ на: Традиция — это не культ карго от DonkeyHot

В каждой отрасли есть свой «словарь», повторное и повсеместное использование которого ускоряет общение.

В кои-то веки адекватные мысли

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

А вот это ахинея. И, главное, полностью противоречит предыдущей цитате. Psi-функция это именно такой «словарь», а «квантовая физика» это именно такая отрасль.

Вывод?

Вывод у меня такой, что ты имеешь далёкое отношение к науке и споришь ради спора. Ибо с предложением переименовать пси-функцию ты крепко лажанулся. Может ещё число pi переименуем? Завязывай

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

Хо-хо, как удачно.

Сегодня, оказывает, день числа пи! π

И почти любому человеку на Земле понятно, о чём речь. Потому что это греческая буква с почти однозначной семантикой в математике. Как и лямбда, и пси в физике.

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

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

Ох, и тебя постигла эта «психическая зараза». И времени на набор тратишь уйму, и место на экране не экономишь. Ну-ка переименовывай :D

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

Буду называть теперь «л». Я же в России живу. Или «д», от слова длина?

Непонятно, кстати, как быть с постоянной Планка. Поскольку наш собеседник предложил только три варианта декораций, и палки, перечёркивающей хвост, там не было, то \hbar==h, отсюда 2\pi==1. Чёрт возьми, никогда не было так удобно. Длина окружности равна радиусу.

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

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

Причем тут мифические греко-римляне, если языком науки и образования от средневековья вплоть до 20-го века была латынь?

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

В кои-то веки адекватные мысли

Неадекватные я публикую кнопкой «отменить», т.ч ты не имел возможности ознакомиться.

это ахинея

Это арифметика. «щ = волновая функция (см...)» в русскоязычном тексте, в зависимости от метода ввода, окупается при использования оной ф-ии от 5 до 20 раз(и для последнего нужно сильно постараться). Cтрашно подумать про эпсилон.

полностью противоречит предыдущей цитате

А вот это ты щаз оскорбил всех математиков вместе взятых. Думаю, новым сокращением их c толку не собъешь. Это даже простые программисты постоянно делают, и никто не помер.

ты имеешь далёкое отношение к науке

Я не имею никакого отношения к науке. Однако академики не имеют монополии на логику и арифметику. Их в начальной школе преподают.

Может ещё число pi переименуем

процесс пошёл:)

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

\hbar==h, отсюда 2\pi==1

Соврал же! На самом деле должно быть, например:

то Ж==Х, отсюда 2Ф==1. Чёрт

vs

то <super><space>\hbar==h<super><space>, отсюда 2,<super><space>2\pi==1<super><space>. Чёрт

и это если не ошибиться ни разу.

И да, палка, перечёркивающая хвост, не критична для теории.

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

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

Где ты такие нашёл? В целом именно некоторая тормознутость Джулии при использовании «на всю катушку» (с потоками, тредами, IO и вот этим всем) малость напрягает.

Опять-же, LLVM - можно посмотреть что она там нагенерила. Ибо «не верю», что на си нельзя написать такой-же код (без учёта времени и трудозатрат).

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

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

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

  • psi-function, синонимом wave-function
  • число pi
  • alpha-, beta-, gamma- излучение
  • delta-функция в математике
  • epsilon-окрестность

Переименовывать эти никто и никогда не будет. Это не культ карго, не синдром утёнка. Это уже просто словарь, язык.

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

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

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

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

Я вообще не представляю, как люди всерьёз сравнивают по производительности языки. Это же настолько вилами по воде. Никакой чёткой методологии, просто какие-то графики порисовали, какие-то ключики компилятора поприменяли, выводы сделали, и разошлись.

В мире HPC мы сравниваем по производительности алгоритмы, а не языки. Вот этот алгоритм cache-friendly, а вот этот использует прямую адресацию, вместо косвенной. А вот этот скрывает латентность памяти. А этот лучше параллелится. А этот имеет меньшую асимптотическую сложность.

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

Владимир

И это правильно! +10050 - 1

PS: Все эти «языковые войны» разводятся армиями бездельников.

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

желание сделать свой труд чуть более лёгким для восприятия

Это хороший аргумент. Именно из-за него мы и зарабатываем rsi об qwerty, не можем проехаться на авто в британию и наоборот без риска убиться об встречное, рарабатываем и материм переключатели раскладки, и тратим годы на изечение 2+ языков...

Может это и не культ, но уж точно не менше, чем тупая пила, и никак не профит.

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

Ты не прав, язык даже в HPC имеет значение. Хрестоматийный пример: циклы в матлаб vs векторизация. Один и тот же алгоритм написаный в разных стилях может по скорости в сотни раз отличаться. Собственно, Julia писалась как well-rounded язык, где можно и так, и так делать без существенной разницы в производительности, что дает большую свободу для написания имплементаций.

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

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

В Julia есть поддержка ручного распараллеливания? Могу ли я сам указать, как я хочу задействовать все ядра? И как именно применить векторные инструкции? Если да, то хорошо, и он может быть использован вместо C++ в HPC в реальных задачах. Если нет, то не может. Всё просто.

Игрушечные задачки, где компилятор всё-таки справился с распараллеливанием, мне не интересны.

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

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

Компиляторы это просто black box с тюнингом. Сравнение их производительности имеет смысл только в рамках одного языка. Вот, дескать, icc компиляет лучше gcc один и тот же код числодробилки. Но сравнивать и бенчить компиляторы разных языков... Мартышкин труд.

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

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

Зайди на их форум, там таких историй - вагон. Обычно опытные пользователи помогают неопытным оптимизировать код.

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

Могу ли я сам указать, как я хочу задействовать все ядра?

Можно самому распределять задачи по threads. Можно ли их разнести по ядрам - не знаю, надо смотреть.

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

Где ты такие нашёл?

Честно говоря, не могу сейчас привести ссылку. Какие-то презентации главарей на конференциях, не помню. Суть в том, что я не понимаю, что они хотят сделать. Быстрый питон? Убийцу фортрана? Всё сразу?

Плюс меня смутило, что у них «официальная IDE» сделана на Atom. Как-то не вяжется с идеологией эффективного использования ресурсов. Хотя, конечно, никто не заставляет этим пользоваться, но зачем вообще было её делать?

По поводу тормозов.

Зайди на их форум, там таких историй - вагон. Обычно опытные пользователи помогают неопытным оптимизировать код.

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

Вообще-то, мне поначалу всё очень нравилось, просто вот теперь я не совсем понимаю, какое у них направление развития.

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

Julia писалась как well-rounded язык, где можно и так, и так делать без существенной разницы в производительности

А как это достигается?

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

Вообще-то, мне поначалу всё очень нравилось, просто вот теперь я не совсем понимаю, какое у них направление развития.

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

Julia писалась как well-rounded язык, где можно и так, и так делать без существенной разницы в производительности

А как это достигается?

Компиляцией в нативный код.

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

Компиляцией в нативный код.

А как это спасёт от той же проблемы «циклы vs векторизация», упомянутой в Как поживает The Julia Language? (комментарий)

Концепция развития - исправить патологические недостатки матлаба и питона.

Зачем тогда IDE на модном Atom? Маркетинг? Уже посмотрел, это лишь один из вариантов, отбой.

Я правда не пытаюсь выискивать недостатки, просто вот что-то смущает, поэтому спрашиваю.

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

А как это спасёт от той же проблемы «циклы vs векторизация»

Компутер выполняет (почти)одни и те же инструкции в обоих случаях. Всё одинаково быстро работает.

yvv ★★☆
()
Последнее исправление: yvv (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.