|
2.8, Аноним (-), 22:47, 10/10/2024 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| +1 +/– |
Как язык Julia очень проста. Синтаксис за вечер можно освоить. Сложности могут быть с написанием макросов, но они начинающим не нужны. И есть очевидные сложности изучения новых библиотек.
| |
|
3.54, Аноним (54), 10:04, 11/10/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Джулию не понимает чатгпт, поэтому сложна. И на курсах от скилбрейнс не преподают. Это чтобы её выучить надо книги читать, а не видео смотреть - вкатун такое не выучит.
| |
|
4.60, Аноним (2), 10:32, 11/10/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Чатгпт понимает. Могут быть некоторые проблемы, если задача касается библиотек, где сильно меняли API, но в целом, работает. Причём, были даже наблюдения, что генерируемый на Julia код в целом правильнее, чем на Питоне (сказывается, что на Джулии студенты и школьники свои поделки на гитхаб не выкладывают).
| |
|
5.68, Аноним (68), 11:45, 11/10/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Он даже питон не понимает и генерирует совершенно случайный булшит, который каким-то чудом может работать (хоть и не так, как предполагает бот). А вы тут хотите от него эзотерические языки.
| |
|
6.86, decaprox (?), 16:37, 11/10/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Ну хз, чувак, я регулярно генерирую вспомогательные скрипты в chatgpt и claude.
Периодически использую claude для генерации простых драйверов. Там это крайне удобно: создаешь проект, заливаешь в knowledge base datasheet и всякую сопутствующую инфу а-ля стиль кодирования и т.д. Даешь задачу оно генерит. Это как иметь виртуального джуна, но как и за реальным за ним надо проверять, что оно сделало. Но в целом каких-то радикальных промахов обычно не бывает.
| |
|
7.88, Аноним (68), 18:38, 11/10/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +1 +/– |
Генеративные сети могут экономить время на тривиальщине, но ровно до тех пор, пока не окажется, что они его не экономят, а цена ошибки ощутимо возрастает (как и их количество). И если чатгпт хотя бы генерирует код, который в теории как-то работает (чего может даже оказаться достаточно, хотя обычно надо несколько раз указать на проблемы), то клауде генерирует какую-то дичь, надёрганную непонятно как и откуда, которая выглядит замечательно (по сравнению с тем же чатгпт), но содержит невообразимое количество ошибок, которые ты ещё долго бкдешь искать. Ой, даже не начинай, чувак.
| |
|
|
|
|
|
2.105, Аноним324 (ok), 21:03, 12/10/2024 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| –1 +/– |
Обычный матлабообразный фотраносодержащий язык. Все непонятки возникают если ты начинаешь мыслить как программист, а не как инженер или учёный.
| |
|
1.7, Аноним (7), 22:44, 10/10/2024 [ответить] [﹢﹢﹢] [ · · · ] [↓] [↑] [к модератору]
| +/– |
В принципе, хороший язык с достойно организованной ориентацией на научные вычисления. Дай Дарвин ему ресурсов для развития. Но сам нашёл лучшую замену. Язык, компилируемый в бинарный код, работающий без всяких прослоек. Рекламировать не буду.
| |
|
2.22, OpenEcho (?), 02:05, 11/10/2024 [^] [^^] [^^^] [ответить] [↓] [↑] [к модератору]
| +/– |
> Язык, компилируемый в бинарный код, работающий без всяких прослоек. Рекламировать не буду.
И как это вы делаете? (Пусть хоть чуть чуть посложнее чем Хелоу Ворлд)
Ну чтоб вот правда, взяла и готовый выполняемый бинарник чтоб сделала, который можно выполнить на другой машине где нет Юлии Петровны.
| |
|
|
4.98, OpenEcho (?), 10:51, 12/10/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +1 +/– |
> Вот за это мне язык и нравится )
> (Аноним 7)
Я не совсем понял, нравится то, что язык хвалится что комилит нативные бинарники под мульти платформы, но в реальности нет тулчэйна по сборке и это или очень большая головная боль чтоб просто компильнуть (привет StaticCompiler, StaticTool) или чаще - это просто не возможно, и это нравится ?
| |
|
|
2.23, Аноним (23), 02:38, 11/10/2024 [^] [^^] [^^^] [ответить] [↓] [↑] [к модератору]
| +/– |
Я тоже на естественный отбор надеюсь, но в другом смысле.
Julia создали как язык, который решит "проблему двух языков" (прототип приходится делать на одном удобном языке типа питона, релиз на другом быстром типа C++; неудобно, поэтому делаем язык, удобный как питон и быстрый как C++).
В итоге получилось, что Julia не прыгает выше питоновских JIT'ов и математических либ и назначение языка замяли. Зачем он теперь нужен? Просто так.
В сообществе пользуются уникальным термином "time to first plot" (время до первого графика), потому что запуск тормозит. Статические бинарники занимали сотни мегабайт, память не экономит, часть решений продиктована NIH-синдромом (конкатенация строк через оператор умножения).
| |
|
3.28, Аноним (28), 02:59, 11/10/2024 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| +/– |
> конкатенация строк через оператор умножения
Оператор + тоже некорректно использовать несмотря на популярность этого в мейнстримных языках.
| |
|
4.32, Аноним (23), 03:32, 11/10/2024 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| +7 +/– |
str1 + str2 - узнаваемость, правило наименьшего удивления.
[str1 str2] - математичность, преемственность с MATLAB/Octave
str1 * str2 - "видали как я могу, а!? да я три бутылки залпом могу"
| |
4.42, Аноним (2), 07:35, 11/10/2024 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +1 +/– |
Во-первых, для конкатенации есть метод string("abc", "def"), который ещё и типы умеет преобразовывать. А во-вторых, объяснение почему нельзя использовать * как операцию склейки приводится тут - https://docs.julialang.org/en/v1/manual/strings/#man-concatenation
Причина в том, что с математической точки зрения операция + должна гарантировать коммутативность. То есть 1 + 2 == 2 + 1. Но со строками это не проходит. А вот операция матричного умножения не является коммутативной по определению. Поэтому её и взяли для конкатенации.
| |
|
5.46, Аноним (23), 08:04, 11/10/2024 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| +/– |
> с математической точки зрения операция + должна гарантировать коммутативность
> In mathematics, + usually denotes a commutative operation (#man-concatenation)
.
> должна гарантировать
> usually denotes
...
Её взяли из-за NIH-синдрома. Так-то и операция умножения над векторами должна умножать вектора.
'abc' * transpose('def') == 29696 % MATLAB
| |
|
6.47, Аноним (23), 08:20, 11/10/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +1 +/– |
Да и если избегать +, в языках программирования для конкатенации уже использовали 5 других операторов:
~ <> ++ . ..
Julia захотела отличиться от всех этих языков (Wolfram Mathematica, Haskell, D, Lua, Perl...).
| |
|
|
6.87, Аноним (2), 16:40, 11/10/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +1 +/– |
> Хм, а операция умножения разве не должна быть коммутативной?
Матричное умножение? Нет, не должна. Матричное сложение может быть коммутативным.
| |
|
5.109, Прохожий (??), 02:00, 13/10/2024 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +/– |
> А вот операция матричного умножения не является коммутативной по определению. Поэтому её и взяли для конкатенации.
Причём здесь матрицы? Речь же о строках. По аналогии? Ну тогда так и говорить надо.
| |
|
|
3.49, ИмяХ (ok), 09:21, 11/10/2024 [^] [^^] [^^^] [ответить] [↓] [↑] [к модератору]
| +1 +/– |
>>прототип приходится делать на одном удобном языке типа питона, релиз на другом быстром типа C++; неудобно
Как это? Наоборот же, очень удобно сначала накидал тяп-ляп быстренько, чтоб работало, а потом пишешь нормально. Так всегда делается, даже если всё на одном языке. Тем более при переписывании одновременно производится и аудит и рефакторинг в одном флаконе.
| |
|
4.57, Аноним (-), 10:21, 11/10/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +2 +/– |
Если язык прототипа отличается от целевого и не используется автоматическая трансляция кода, это означает, что оба раза будет тяп-ляп. И после переписывания на другой язык придётся отдельно делать рефакторинг и переписывание уже под прод. Джулийный подход с написанием прототипа на ней же всегда будет дешевле, чем связка питон + что-то ещё. Не говоря уже о том, что квалификация одного универсального джулийного программиста будет выше, чем питониста + чеготоещениста. Он и задачу понимать будет, и оптимизацию решения.
| |
4.99, YetAnotherOnanym (ok), 11:09, 12/10/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Если тебе удобно так - ну, ок, не вопрос, пожалуйста. Кому-то (в т.ч. мне) удобнее сразу на целевом языке - не надо тратить время на изучение отдельного языка для этапа тяпляпинга, не надо насиловать мозги переключением с одного языка на другой, не надо переделывать внутреннюю логику работы программы под другой язык.
| |
|
3.102, Илья (??), 11:41, 12/10/2024 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| –1 +/– |
> прототип на одном удобном языке типа питона
Часто прототипы не переписывают, а живут с ними в мучениях.
Поэтому и нужны языки, которые и удобные, и быстрые, и гибкие. C#, go, rust.
Питон вообще не поддается рефакторингу. Чуть что, - рантайм исключение.
Не повторяйте ошибки
| |
|
|
5.121, Илья (??), 11:05, 17/10/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Из практики. Из отсутствия культуры.
У нас была команда пэйфон девелоперов. Так они просто писали код, затем при первой проблеме выкидывали его и переписывали с нуля.
| |
|
|
|
2.35, Аноним (35), 04:17, 11/10/2024 [^] [^^] [^^^] [ответить] [↓] [↑] [к модератору]
| +1 +/– |
>Но сам нашёл лучшую замену. Язык, компилируемый в бинарный код, работающий без всяких прослоек. Рекламировать не буду.
Fortran?
| |
|
3.36, Аноним (36), 05:46, 11/10/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +1 +/– |
так Фортран быстрее Си на математических вычислениях и сами математики прекрасно это знают, и задел библиотек у них в нем огромный. Поэтому спроса на новинку не будет в принципе.
| |
|
2.50, Аноним (51), 09:46, 11/10/2024 [^] [^^] [^^^] [ответить] [↓] [↑] [к модератору]
| +2 +/– |
Никто пока не назвал :) Уже становится забавным. Zig — тепло, но не он.
Ребята, ещё попытка. Компилируемый в нативный код на большинстве известных платформ и ОС. Строгая типизация. Простой как топор синтаксис. Чрезвычайно легко реализовывать научные вычисления, хотя предназначен скорее для системного программирования. Мощная система макросов. Входит в десятку языков, генерирующих наиболее быстрый код. Как уже освоивший этот язык, добавлю пару недостатков: не самая развёрнутая документация. Сравнительно медленная компиляция.
Подпись: Аноним 7 )
| |
|
|
|
5.65, Аноним (68), 11:17, 11/10/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Твой бот бракованный. У D рантайм, для системного программирования не очень. Согласно чатгпт, существуют определённые способы исключения GC, но, что-то сомнительно, видимо, это задача уровня написать ОС на GO. Nim сомнительно.
| |
|
|
|
|
|
|
3.44, Аноним (-), 07:45, 11/10/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Слишком коряво по синтаксису. Даже близко нет лаконичности Джулии. И чрезмерный расход вычислительных ресурсов. Несерьёзно.
| |
|
|
1.17, голос из леса (?), 00:48, 11/10/2024 [ответить] [﹢﹢﹢] [ · · · ] [↓] [↑] [к модератору]
| +/– |
Julia такое же дурацкое название как и Go. Хуже не придумаешь, гуглить что-то себе дороже. Для go уже давно синонимом стало "golang". А здесь? "Julialala"?
| |
|
|
|
4.84, Аноним (81), 14:40, 11/10/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +1 +/– |
C/C++ есть везде помимо UNIX. В этом достоинство - компилируется (адекватным компилятором) в любой системе. Недавно ради смеха взял и сделал тот же код вообще в экзотике.
| |
4.95, Аноним (36), 07:37, 12/10/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Изучая эти руководства максимум можно было достичь уррвня джуна, ибо всё описано было поверхностно. Например арифметика указателей максимум простой пример обмена значениями двух переменных. Чтоб научиться серъезно нужны были совсем другие книжки.
| |
|
|
2.103, Аноним (103), 19:11, 12/10/2024 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +/– |
Трое создателей языка во время очередной попойки пошли к Джулии. на утро, чтобы она не подавала в суд, сказали что назовут язык в честь неё. Ведь ночка была та ещё.
| |
|
|
2.43, Аноним (2), 07:40, 11/10/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Для разукрашивания текста, выводимого в консоль. И для формирования отчётов. Идея в том, что к частям строки можно навесить атрибуты отображения, для которых прописать стиль. То есть, формируем строку в вычислительной части программы, навешиваем стили на кусочки, из которых её формируем, а потом кидаем на отображение.
https://julialang.github.io/StyledStrings.jl/dev/examples/
| |
|
|
4.48, Аноним (2), 09:20, 11/10/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Поскольку оно только что появилось, очевидно, никто реального опыта использования не имеет. Чисто в теории разница с шаблонами в том, что в одном случае код надо кусочками компоновать по частям шаблона (в зависимости от того чем шаблон делаем), во втором - формируем линейную строку и полностью развязываем отображение от кода. Да ещё и можем легко нанизывать разные схемы отображения на одну и ту же строку без перекомпоновки кода.
| |
|
|
|
1.66, Аноним (66), 11:19, 11/10/2024 [ответить] [﹢﹢﹢] [ · · · ] [↓] [↑] [к модератору]
| –1 +/– |
>Высокая производительность
julia - это скриптота. Поэтому о высокой производительности можно забыть. Чтобы собрать статический бинарник, придется запихивать целый интерпретатор.
| |
|
2.69, Аноним (69), 12:26, 11/10/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Перед тем как писать комментарии, стоит хотя бы поверхностно ознакомиться с предметной областью.... Ну или почитать как работает компилятор Julia. Тесты же производительности присутствуют на главной странице сайта языка.
| |
|
3.72, Аноним (68), 12:55, 11/10/2024 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| +/– |
Мало ли, что там написано. Вон даже чатгпт утверждает, что жулия язык с динамической типизацией и рантаймом, сиречь питон, и других вариантов использования не подразумевает (т.е. нельзя как жаву скомпилировать без вм при отказе от части функциональности).
| |
|
|
5.74, Аноним (68), 14:07, 11/10/2024 [^] [^^] [^^^] [ответить] [к модератору]
| –1 +/– |
Естественно, синтетика позволяет показывать красивые графики для недалёких. Это конкурент жаваскрипта и никому не нужен ещё один жаваскрипт.
| |
|
|
3.76, Аноним (66), 14:13, 11/10/2024 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +/– |
Я-то знаком с этой скриптотой. Даже простой джулиевский хеллоуворлд выжирает 250 мегабайт, потому что интерпретатор запускается.
| |
|
|
1.75, Аноним (75), 14:08, 11/10/2024 [ответить] [﹢﹢﹢] [ · · · ] [↓] [↑] [к модератору]
| +/– |
'occursin' — наверное смешно было, когда имя функции придумывали ('случись грех'). А у меня сразу же стойкое мнение - "разрабы - придурки".
| |
|
2.77, Аноним (2), 14:19, 11/10/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> А у меня сразу же стойкое мнение - "разрабы - придурки".
Нет, это всего лишь незнание английского языка в части использования глаголов с местоимением (первый аргумент) в треьем лице.
| |
|
1.91, Аноним (91), 19:42, 11/10/2024 [ответить] [﹢﹢﹢] [ · · · ] [↓] [↑] [к модератору]
| +/– |
>поддержка динамической типизации
Но зачем? Из-за динамической типизации куча проблем вылазит в рантайме.
>Высокая производительность: одной из ключевых целей проекта является достижение производительности близкой к программам на языке Си. Компилятор Julia основан на наработках проекта LLVM и генерирует эффективный нативный машинный код для многих целевых платформ;
Управления памятью в нём нет, из-за динамической типизации данные всегда придётся оборачивать и тратить дополнительное время на проверки во время исполнения.
| |
|
|
|
|
5.104, Аноним (91), 20:24, 12/10/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
>"Динамическая типизация" - это признак синтаксиса языка, а не этапа выполнения программы.
Наоборот. Динамеческая - во премя выполнения, статическая - во время компиляции. А с точки зрения синтаксиса - явная/неявная.
>JSON - это не тип данных, а формат обмена данными
Да, но формат диктует определённые ограничения на типы. В каких-то языках, например Ocaml, json парсится в определённый тип, и особенности формата, например ключи в виде строк явно отображены в самом типе данных. В других языках, система типов недостаточно выразительна, чтобы описать все ограничения в виде типа, и он будет рабираться в нетипизированный объект.
| |
|
6.107, Аноним (2), 21:12, 12/10/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> Наоборот. Динамеческая - во премя выполнения, статическая - во время компиляции.
Если хотите, считайте, что в Джулии динамической типизации нет. Поскольку после компиляции методов с выведенными конкретными типами, никаких накладных расходов на их выполнение нет.
> Да, но формат диктует определённые ограничения на типы.
https://quinnj.github.io/JSON3.jl/stable/#Basic-reading-and-writing
https://quinnj.github.io/JSON3.jl/stable/#Read-JSON-into-a-type
https://quinnj.github.io/JSON3.jl/stable/#Parametric-types
разбор в Dict, разбор в структуру, разбор с возможность валидации данных...
| |
|
7.113, Аноним (91), 17:55, 13/10/2024 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
>Если хотите, считайте, что в Джулии динамической типизации нет
Факты не зависят от желания
>Поскольку после компиляции методов с выведенными конкретными типами, никаких накладных расходов на их выполнение нет
Расходы есть на компиляцию. И в случае изменения типа данных на перекомпиляцию существующего кода. Например, есть функция, которая иногда по недосмотру возвращает string вместо date.
>разбор в Dict, разбор в структуру, разбор с возможность валидации данных...
Вы меня не поняли. В системе типов можно описать, что в качестве ключа может быть только строка, а в качестве значения не может быть, например даты. И если вы работаете с данными без схемы, например как в утилите jq, то джулия вам ничем не поможет
| |
|
|
|
|
|
|
|