Опубликован релиз языка программирования Julia 1.12, сочетающего такие качества как высокая производительность, поддержка динамической типизации и встроенные средства для параллельного программирования. Синтаксис Julia близок к MATLAB с заимствованием некоторых элементов из Ruby и Lisp. Метод манипуляции строками напоминает Perl. Код проекта распространяется под лицензией MIT...Подробнее: https://www.opennet.dev/opennews/art.shtml?num=64032
> Экспериментальный параметр "--trim", позволяющий создавать более компактные бинарные файлы за счёт удаления кода, который не достижим из указанных точек входа. Точки входа можно помечать с помощью "Base.Experimental.entrypoint". С этой опцией может работать не весь код.Что за цирк?
> Что за цирк?У Джулии бинарник традиционно представляет собой дамп памяти со всем откомпилированным кодом.
Что, всё говорит о профессионализме авторов...Да и тут:
> высокая производительность, поддержка динамической типизации- Типа не противоречие...
> Высокая производительность: одной из ключевых целей проекта является достижение производительности близкой к программам на языке Си.
> Компилятор Julia основан на наработках проекта LLVM и генерирует эффективный нативный машинный код для многих целевых платформКак будто входная лапша ему при этом - на Си.. как и программист - с Си + его потенциальные оптимизации мышлением...
> всё говорит о профессионализме авторов...нет профессионализма, так набирайтесь
zog перелогинься
> - Типа не противоречие...Нет.
> Как будто входная лапша ему при этом - на Си.. как и программист - с Си + его потенциальные оптимизации мышлением...
Вот это каша...
Тоже...2) Врёшь, в обоих случаях.
> У Джулии бинарник традиционно представляет собой дамп памяти со всем откомпилированным кодом.Юля научилась компилироать в исполняемый бинарник без плясок с бубном?
Я серьезно, без подколов, есть какая-то подвижка и правда можно компильнуть что то сложнее чем Хелло ворлд?
Вопрос очень абстрактный. Если проект чисто джулийный, она лет 5 как уже могла собрать бинарник из своего кода. Проблемы были когда зависимости от внешних пакетов возникали. Вот там уже зависело и от автора пакета (например на eval понадеялись), так и от конкретного набора динамических библиотечек. И да, каждая версия всё лучше и лучше с этим справляется.
> Вопрос очень абстрактный. Если проект чисто джулийный, она лет 5 как уже могла собрать бинарник из своего кода.Не знаю, у нас было приложение на Юлии, вообще без сторних либ, всё свое как говорится, но в итоге так ничего и не получилось компильнуть в исполняемый независимый файл. Надо будет народ поднапрячь чтоб опять попробовали. Спасибо за фидбэк !
Для 12-й Джулии ещё вот такую штуку сделали - https://github.com/JuliaLang/JuliaC.jl
Выглядит вкусно, спасибо!
Идеальный ЯП для специалистов в области математики. \(^_^)/Это лишь малая часть того, что я юзаю:
- https://juliaintervals.github.io
- https://juliadiff.org/
- https://github.com/AlgebraicGeometricModeling
Коллега по работе, КТН, сказал, что язык с индексацией начинающейся с 1 должен сдохнуть.
Тут надо учитывать нишу, для которой разработан язык. В нише языков для расчетов индексация с единицы — это золотая классика, тут скорее у языка с индексацией от нуля не так много шансов. R, Matlab, Wolfram передают привет, да и Fortran еще живее всех живых, еще и трудится внутри популярных математических библиотек чуть ли не всех языков программирования. Для использования в качестве языка общего назначения — это конечно несколько непривычно, но на самом деле это такая мелочь, что не стоит воспринимать это всерьез как проблему. В случае с Julia намного более ощутимой является проблема получения компактного автономного бинарника. Вот это проблема, да. Уже сколько лет решают, но до сих пор до конца непонятно, решаема ли она в принципе. Для численных расчетов это не важно, но для массового использования в качестве универсального языка — это реально сдерживающий фактор. Но разработчики проблему осознают, и постепенно вроде как движутся в сторону ее решения, молодцы.
Противоречие с вашим же "Уже сколько лет решают, но до сих пор до конца непонятно, решаема ли она в принципе"...Хотели бы - давно решили. (Т.б.решение проблемы не так уж и сложно).
Зачем же могут не решать?
Информацию о типах и именах идентификаторов [пользователей] да и исходный код в бинаре прятать удобно, и вообще что угодно - любые пароли и реквизиты(включая криптокошельков, понятно), список ф-лов на дисках и в локалке, содержимое недавне изменённых мелких файлов или указанных в обновлении компилятора - на случай недоступности сети компилятору).Естественно это относится не только к этому компилятору...
А, и в т.ч.даже к открытым. Ибо одно дело исходники, которые к тому же никто же не проверяет т.б.из-за их объёма и просто сверх сложности темы, другое - бинарники компилятора которые давно даже в линуксе - никто не компилирует самостоятельно и что хочешь туда добавляй, да и полноценно безопасно компиляцию проблемно вообще осуществить.
На фокспро иные КТНы тоже хелловорлд писали, но получалось в 20 раз больше места занятого чем на паскакале...
Спорно. Если в "классику" упроть поглубже, то можно и римскими числами ограничиться, без десятичной точки.
Язык должен не сдерживать, а позволять.
> Julia:A = [10, 20, 30]
A[1] # → 10. Просто. Человечно. Математично.
last = A[length(A)] # → 30 (красиво!)> Языки, где индексация с нуля:
int A[] = {10, 20, 30};
A[0]; // → 10, но ты должен помнить, что это первый элемент, хотя он нулевой. !Σ(×_×;)!
~~~~~~~~~~
A = [10, 20, 30]
last = A[len(A) - 1] # → 30 (ノ-_-)ノ~┻━┻
Нужно просто помнить, что адрес массива совпадает с адресом первого элемента. Тогда индекс, это отступ от первого элемента массива. 0 - отступать не надо, 2 - отступить на два элемента. На самом деле, это просто вопрос привычки. Во многих математических формулах гораздо проще начинать циклы с нуля, а не с единицы. Посмотрите на разложение в ряд Тейлора, например.
ага и возводите в нулевую степень с какого-то бодуна и получаете единицу. Вера!
А в чем проблема нулевой степени и единицы? https://scienceland.info/algebra7/degree-zero
Мы не верим, мы определяем. Математика - это формальная игра, в которой мы сами правила определяем, и смотрим, не приводят ли они к противоречиям
>Нужно просто помнить, ...Если ты сишник, то да надо помнить, остальным необяательно.
>На самом деле, это просто вопрос привычки.
Если сишник, то да, надо привыкать. Но зачем тащить странные практики из прошлого в новые языки программирования XXI века?
>Во многих математических формулах гораздо проще начинать циклы с нуля, а не с единицы.
В математике есть последовательность чисел, полного аналога "программистского цикла" там нет. "Програмистский цикл" это скорее инженерия.
Индексация с нуля сделана была только ради того, чтобы первые высокоуровневые языки были близки к машинному коду. И всё. И это было полвека назад. Это не надо оправдывать, или осуждать. Просто примите как данность, или историческую традицию.
> Коллега по работе, КТН, сказал, что язык с индексацией начинающейся с 1 должен сдохнуть.скорее всего, у него нет опыта в программировании или ему не место в этой области. Конкретно у Джулии в большинстве случаев вообще не надо думать о том, с нуля или с единицы начинается массив, когда есть методы, словами обозначающие first/last
Это не индексация, а нумерация.
лол, а че 0 порядковое число?
Нуль - обозначение пустоты. Начинаем считать: одно яблоко, второе яблоко, третье яблоко...
Нулевое яблоко мы в расчёт не берём, потому-что ноль яблоков означает всякое отсутствие яблоков.
Счёт элементов массива начинаем считать с единицы, а не нуля.У таких языков как Си или Фортран с исторической точки зрения можно понять эту особенность. Но для высокоуровневых языков. которые появились в XXI веке отсчёт с нуля - это невежество и дикость.
>Счёт элементов массиваСори, нумерацию элементов.
На часы свои посмотрите в полночь.
Сколько показывают? 0 часов. Какой это час? Первый.Если непонятно, почему так, то как раз это невежество и дикость.
А в Си-подобных языках нет никакого счета элементов. Это смещение от начала. То, что обычно и нужно в программировании. Явно записанный индекс, кроме нуля, бывает только в школьных упражнениях.
0 - это ординал, даhttps://ru.wikipedia.org/wiki/Порядковое_число
> Синтаксис Julia близок к MATLABПо производительности джулия не менее близка к матлабу, в отдельных случаях матлаб даже побыстрее будет, а главное гарантировано выполнит работу. И это при том факте, что матлаб это огроменный комплекс, жирнющее медленное джава поделие с сишнофортрановскими кишками, и 41 годом легаси под капотом.
что за брехня
> что за брехняТа вполне себе правда.
C R2025a вроде не Джава. Всё переписали на Си, не?
> C R2025a вроде не Джава. Всё переписали на Си, не?Ну всё ещё джава, но стало чуть быстрее чем в 2022 релизе. И способ взлома немного поменялся.
Вдруг кому интересно. Автор больше не рекомендует никому использовать Julia, промучавшись с этим ЯП много лет.
Ну не получилось у человека 5 лет назад что-то... С кем не бывает... Что же нам теперь его, до конца века вспоминать? Может он уже и программирование совсем забросил.
Эту заметку обсуждали в официальном джулийном форуме - https://discourse.julialang.org/t/discussion-on-why-i-no-lon...
Чем оно лучше Фортрана-90?
Сильно современнее
В чем это выражается?
синтаксис, набор инструментов для разработки