The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Выпуск языка программирования Julia 1.5

03.08.2020 21:59

Опубликован релиз языка программирования Julia 1.5, сочетающего такие качества как высокая производительность, поддержка динамической типизации и встроенные средства для параллельного программирования. Синтаксис Julia близок к MATLAB с заимствованием некоторых элементов из Ruby и Lisp. Метод манипуляции строками напоминает Perl. Код проекта распространяется под лицензией MIT.

В новой версии:

  • Проведена оптимизация размещения структур в памяти, которая позволила значительно сократить число операций распределения памяти в куче (за счёт inline-развёртывания или размещения в стеке), уменьшить потребление памяти и повысить производительность.
  • Улучшена поддержка многопоточности и стабилизирован API для работы с потоками.
  • Предоставлена возможность выбора уровня оптимизации, используемого при сборке отдельных модулей.
  • При передаче аргумента ключевого слова разрешено указание только одного имени, если оно совпадает для ключевого слова и переменной для хранения значения (например, вместо "x=x" можно указывать просто "x").
  • Добавлен новый макрос "@ccall", предоставляющий более удобный синтаксис для вызова функций на языке Си.
  • Разрешён вызов макросов без разделения пробелом (вместо "@foo {...}" теперь можно писать "@foo{...}").
  • На 25% увеличена производительность генерации псевдослучайных чисел.
  • Добавлена опция "--bug-report=rr" для записи и отправки rr-трассировок для упрощения исправления ошибок.
  • В пакетном менеджере по умолчанию активирован протокол Pkg, подразумевающий обращение к собственному репозиторию (pkg.julialang.org) вместо загрузки пакета напрямую из GitHub, GitLab, BitBucket и подобных хранилищ.



Ключевые особенности языка:

  • Высокая производительность: одной из ключевых целей проекта является достижение производительности близкой к программам на языке Си. Компилятор Julia основан на наработках проекта LLVM и генерирует эффективный нативный машинный код для многих целевых платформ;
  • Поддержка различных парадигм программирования, включая элементы объектно-ориентированного и функционального программирования. Стандартная библиотека предоставляет в том числе функции для асинхронного ввода/вывода, управления процессами, ведения логов, профилирования и управления пакетами;
  • Динамическая типизация: язык не требует явного определения типов для переменных по аналогии со скриптовыми языками программирования. Поддерживается интерактивный режим работы;
  • Опциональная возможность явного указания типов;
  • Синтаксис, превосходно подходящий для численных вычислений, научных расчётов, систем машинного обучения и визуализации данных. Поддержка многих числовых типов данных и средств для распараллеливания вычислений.
  • Возможность прямого вызова функций из библиотек на языке Си без дополнительных прослоек.


  1. Главная ссылка к новости (https://julialang.org/blog/202...)
  2. OpenNews: Выпуск языка программирования Julia 1.3
  3. OpenNews: Выпуск языка программирования Julia 1.1
  4. OpenNews: Увидел свет язык программирования Julia 1.0
  5. OpenNews: Новый открытый динамический язык программирования Julia, использующий наработки проекта LLVM
  6. OpenNews: Релиз языка программирования Haxe 4.1
Лицензия: CC-BY
Тип: Программы
Короткая ссылка: https://opennet.ru/53481-julia
Ключевые слова: julia
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (79) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 22:02, 03/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    > Динамическая типизация: язык не требует явного определения типов для переменных по аналогии со скриптовыми языками программирования.

    Так уже определитесь - динамическая типизация, или type inference. Динамическая типизация и высокая производительность несовместимы.

     
     
  • 2.45, funny.falcon (?), 09:42, 04/08/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Там все сразу: базовое динамическое типизирование. Если jit компилятор видит, что переменная/аргумент функции всегда одного типа, он делает специализацию функции. Плюс, можно явно указывать типы. В сочетании с mutiple dispatching (не помню, как точно называется: поиск перегруженной функции по всем аргументам) получаетсямощный инструмент.

    Если я правильно понимаю, в отличие от многих других языков с JIT, в Julia компилятор скорее "обычный", т.е. хотя он и запускается just in time, но больше опирается на имеюшиеся описания типов (как в классических компилируемых языках программирования) с частичным inferring типов (как в ML языках), чем на рантайм-статистику.

     

  • 1.2, Аноним (2), 22:07, 03/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –9 +/
    Кто-нибудь может мне объяснить, зачем придумывают новые ЯП? Неужели не придумали всё что нужно? Как это происходит, просыпается с утра а напишу ка я новыя ЯП. Или ка это бывает?
     
     
  • 2.3, Аноним (1), 22:09, 03/08/2020 [^] [^^] [^^^] [ответить]  
  • +8 +/
    Потому что находят фатальные недостатки в других языках программирования. Галактика в опасности, нужно срочно спасать.
     
     
  • 3.5, Аноним (2), 22:11, 03/08/2020 [^] [^^] [^^^] [ответить]  
  • –17 +/
    Вообще для написания новго ЯП надо быть шизофреником.
     
     
  • 4.9, Аноним (9), 22:34, 03/08/2020 [^] [^^] [^^^] [ответить]  
  • +11 +/
    Как же здорово, что есть такие "шизофреники", из-за которых нам не нужно тратить время на написание программ в байт-коде.
    П.С. Шизофреники обычно задают крайне тупые вопросы в стиле "а зачем писать новые япы?"(академический интерес, новая архитектура, новые задачи и еще десятки возможных причин для написания нового япа).
     
  • 2.6, Satori (ok), 22:14, 03/08/2020 [^] [^^] [^^^] [ответить]  
  • +7 +/
    >зачем придумывают новые ЯП?

    Julia, так-то, не очень новый.

     
     
  • 3.7, Аноним (2), 22:19, 03/08/2020 Скрыто модератором
  • –4 +/
     
     
  • 4.11, Аноним (9), 22:38, 03/08/2020 Скрыто модератором
  • +/
     
     
  • 5.23, Аноним (2), 00:12, 04/08/2020 Скрыто модератором
  • –2 +/
     
  • 4.16, Ordu (ok), 23:12, 03/08/2020 Скрыто модератором
  • +2 +/
     
     
  • 5.40, Ю.Т. (?), 07:28, 04/08/2020 Скрыто модератором
  • +2 +/
     
  • 3.10, Аноним (10), 22:36, 03/08/2020 [^] [^^] [^^^] [ответить]  
  • –5 +/
    Ну да, конечно же, в 2009-ом году появился, и уже в старую гвардию попал. Ох уж эти зумерки...
     
     
  • 4.13, Аноним (9), 22:48, 03/08/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ну да, 11 лет - это же абсолютно ничтожное количество времени для человека, который живет в среднем аж целые 72 года, всего ничего ведь. А твое начальство, если ты конечно не школьник, знает, что тебе можно платить месячную зарплату раз в 11 лет? Ведь даже этого будет много, для человека, у которого 11 лет словно одно мгновение.
     
  • 2.12, an0nymous (?), 22:39, 03/08/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Потому что эволюция. Она во всем и ее не остановить. Придумают новые концепции для решения каких-то задач и решают наболевшие проблемы в текущих языках(в том числе и надуманные типа NIH)
     
  • 2.26, SubGun (??), 00:24, 04/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Потому что на развитии существующего денег не срубить.
     
     
  • 3.80, Аноним (80), 21:59, 05/08/2020 [^] [^^] [^^^] [ответить]  
  • +/

    Это не так. Знаю как минимум несколько комании, которые ведут переговоры с разработчиками
    как минимум двух интерпретаторов и готовы оплатить им работы или даже сами разработать решение,
    но компании не хотят идти на сделку. Сегмент DSL и разработчик какой-то институт.

    Так что если язык станет популярным (будет использован в нужном проекте), то инвестиции пойдут.

    Вопрос в том как убедить акул ИТ сегмента убедить в том, что вот этот Julia дейсвтитльно стоит
    внимания, а не использовать какой-то Java или C#, который как говно пристает к каждому
    разработчику в университете.

     
  • 2.30, Sw00p aka Jerom (?), 00:44, 04/08/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> а напишу ка я новыя

    а напишу ка я новый коммент :) как это обычно бывает.

     
  • 2.31, Ями (?), 00:58, 04/08/2020 [^] [^^] [^^^] [ответить]  
  • +8 +/
    > Неужели не придумали всё что нужно?

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

     
     
  • 3.89, artomberus (ok), 20:13, 19/09/2020 [^] [^^] [^^^] [ответить]  
  • +/
    «Всё, что можно было изобрести, уже изобретено», – сказал в 1899 году сотрудник Патентного ведомства США Чарльз Дуэл.
     
  • 2.42, б.б. (?), 08:38, 04/08/2020 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Язык Наскальный v. 2.0

    - теперь копьё стачивается на 15% меньше
    - произдведены оптимизации при работе с хрупкой породой
    - можно рисовать коз

     
  • 2.46, funny.falcon (?), 09:56, 04/08/2020 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Если брать всю общность новых языков , то ты скорее прав Но воь с Julia как-т... большой текст свёрнут, показать
     
     
  • 3.66, ALex_hha (ok), 15:59, 04/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Сам факт, что Julia завоевал серьезную популярность

    а в чем выражается серьезность этой самой популярности?

     
     
  • 4.72, funny.falcon (?), 10:02, 05/08/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В том, что его не боятся использовать на суперкомпьютерах, например. Там время разработки и запуска стоят очень дорого, и раз julia был допущен, значит он доказал своë удобство при разработке прототипа.

    Вообще, об использовании julia информация просачивается из разных источников. Конечно, Python сейчас более популярен для "науки на скорую руку", но Julia явно откусила свой кусок рынка, и отдавать не намеренна.

     
  • 2.67, Аноним (67), 17:09, 04/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    я очнь хочу написать свой простенький лисп в качестве хобби, потому что это интересно мне
     
  • 2.71, СССР (?), 03:03, 05/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    1. либо ктото в рамках изучения яп yacc ии др. попробовал слепить поделку.
    2. либо (мое мнение) , крупным корпорациям не нужны программисты, им нужны контентщики что бы развивать свои платформы. для этого создается ЯП с динамич. типизацией идр. модными штучками. там типа все удобно, сборщик мусора, в интернете вбрасывают страшные истории про отстреленные ноги и яйца. по результату имеем стадо покемонов которые спорят срутся по вопросам какой ЯП моднее, на каком проще написать программу для подтирания клоаки, ибо самому взять бумагу это долго и не безопасно, можно рукав запачкать в дерьме, это будет вообще фиаско. А вот в это же время другие, адекватные ребята, на нормальном  ЯП, создают эти современные тенденции, и ноги и голова, все у них на месте.
     

  • 1.4, Аноним (2), 22:09, 03/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –11 +/
    > Код проекта распространяется под лицензией MIT.

    Вот если бы код написанный на этом, был бы обязан быть под под лицензией MIT, вот тогда было бы кошерно.

     
     
  • 2.14, Аноним (9), 22:53, 03/08/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Кто-нибудь может мне объяснить, зачем придумывают новые ЯП?
    >Вот если бы кто-то придумал еще одну GPL, но с другими буковками в названии.

    Дед, иди проверь голову, у тебя уже деменция походу начинается.

     
     
  • 3.34, Аноним (34), 02:56, 04/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    С каких пор GPL накладывает подобные ограничения на результаты работы подпадающего под её действие ПО? На license exception в GCC кивать не надо, там особый случай под названием libgcc.
     
  • 2.18, Аноним (34), 23:36, 03/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Как бээсдэшник со стажем яростно дизлайкаю ваш провокационный комментарий.
     
  • 2.32, Аноним (32), 01:00, 04/08/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Если бы он был обязан быть под лицензией MIT, то он был бы уже не под лицензией MIT. И тет, жадная капиталистическая жаба, код выпускался и будет выпускаться под GPL, чтобы ты лососнул, а не использовал его на халяву.
     
     
  • 3.35, Аноним (35), 04:15, 04/08/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > чтобы ты лососнул, а не использовал его на халяву.

    То есть несвободный код. Лишает меня свободы пользования

     
  • 3.68, Аноним (67), 17:50, 04/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    поскажите кто нибудь нубасу, где можно доходчиво почитать про разницу между всеми этими лицензиями
     
     
  • 4.69, Аноним (34), 18:20, 04/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Здесь, на OpenNet, где-то была wiki.
     

  • 1.15, Аноним (15), 23:04, 03/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    примеры программ написанных на сабже в студию
     
     
  • 2.20, dikiy_f90 (?), 23:57, 03/08/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Я начну кормить, пожалуй.
    Видел на какой-то конференции про это:
    https://github.com/CliMA
     
     
  • 3.81, Аноним (80), 22:01, 05/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Почему кормить? Мне вот тоже интересно посмотреть, что уже написано и на сколько оно сложно в интерпретации. Скажем код на Rust для меня вообще не читаемый и использовать в следующем небольшом проекте я опасаюсь, а вот например новый Python 3.9 можно попробовать, так как там ничего страшного нет.
     

  • 1.17, user90 (?), 23:33, 03/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Когда-то интересовался, нравился. Но потом засосали Perl, Lisp.. стало не до него :)
     
     
  • 2.19, dikiy_f90 (?), 23:54, 03/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Это для тех, кого Fortran засосал, действительно
     
     
  • 3.43, borbacuca (ok), 09:18, 04/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    как это ни странно, но некоторые вещи на фортране быстрее чем на си
     
     
  • 4.50, iZEN (ok), 10:59, 04/08/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > как это ни странно, но некоторые вещи на фортране быстрее чем на
    > си

    Типа матрицы под углом 90 градусов в памяти расположены и доступ к элементу столбца не загораживает следующий?

     
     
  • 5.57, dikiy_f90 (?), 11:24, 04/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    У Фортрана по дефолту доступ к аргументам подпрограммы по ссылке *для скорости*, не то что в С дурак (непременно) будет огромные структуры копировать. И Сишный рестрикт Там тоже по дефолту у этих ссылкоподобных параметров, не дай тебе бог пересекающиеся данные передать в субрутину, никто же и не проверит, Фортран всё оптимизирует!
     
     
  • 6.78, Аноним (78), 16:50, 05/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Сишное ABI обязует передавать числа и маленькие структуры через регистры, а большие структуры - через указатель на стек. Насколько именно большие - зависит от конкретного ABI, коих десятки.
     
  • 2.21, Annoynymous (ok), 00:02, 04/08/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Глубоко ж тебя засосало.
     

  • 1.37, mos87 (ok), 06:42, 04/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    >одной из ключевых целей проекта является достижение производительности близкой к программам на языке Си.

    что только ни делают лишь бы не учить Perl/Raku

     
     
  • 2.38, ыы (?), 06:53, 04/08/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Им ктото сказал что это не модно...
     
  • 2.60, nelson (??), 11:56, 04/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > что только ни делают лишь бы не учить Perl/Raku

    ты собрался заниматься математикой на Perl? ну, удачи

     
     
  • 3.70, Аноним (34), 18:24, 04/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Чистой математикой, наверное, действительно не очень удобно. А вот обрабатывать тонны снятых не пойми где не пойми как экспериментальных данных на Perl, внезапно, удобно.
     

  • 1.41, iZEN (ok), 07:52, 04/08/2020 Скрыто модератором [﹢﹢﹢] [ · · · ]
  • –6 +/
     
     
  • 2.47, funny.falcon (?), 10:10, 04/08/2020 Скрыто модератором
  • +6 +/
     

  • 1.44, borbacuca (ok), 09:24, 04/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Джулия опирается на линию языков математического программирования, но также многое заимствует из популярных динамических языков, включая Lisp , Perl , Python , Lua и Ruby .


    и ВСЁ

     
     
  • 2.48, funny.falcon (?), 10:11, 04/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    И этого оказалось достаточно.
     

  • 1.49, Hck3r (?), 10:51, 04/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Сейчас Julia в основном про сложную математику, где надо много считать. Численные вещи решались на фортране, какое-нибудь решение PDE было хорошо в матлабе, всё это уже хорошо делает Julia. Она к слову один из 3х языков, которая выбивала петафлопные вычисления на HPC машинах.
    Но ещё она хочет залезть в область Data Science/Machine Learning. Там где сейчас Python/R правят баллом. И даже скорее PyTorch/Tensorflow вот тут у Julia есть Gen, с встроенным в язык автодифференцированием так необходимым для градиентов, на которых это всё основывается.
    Но кто идёт часто работать в DS после академической области? Правильно математики и физики. И если у них Julia станет стандартом де факто (пока она продвигается сильно только в штатах и особенно в MIT), то потом она же теоретически сможет занять место Python. Думаю у них план такой :)
     
     
  • 2.52, Аноним (52), 11:01, 04/08/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Сложная (и быстрая) математика, включая "численные вещи", делаются на С.
     
     
  • 3.58, PnD (??), 11:38, 04/08/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А совсем уж критичные фрагменты — и вовсе на *asm.
    И чем это опровергает утверждение выше?
     
  • 3.59, Аноним (59), 11:46, 04/08/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Зачем их делать на C, если есть Julia?
     
  • 3.61, Hck3r (?), 12:05, 04/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    В том числе и на Си, но существует огромные области, где исторически всё делается на фортране. Работа с матрицами и тензорами (срезы) там сделаны гораздо удобнее, например.
    Навье-Стокса, CFD и кучу других вещей с использованием Coarrays, OpenMP, MPI, Blas, PETSC,Lapack и иже с ними библиотеками.
     
     
  • 4.62, Аноним (52), 13:33, 04/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > гораздо удобнее

    Чем в Си? Откройте исходники SSP/ESSL на Фортране и исходники нормального пакета на Си и убедитесь, что принципиальной разницы нет - основной принцип заключается в одномерном хранении массивов любой размерности. Чем, собственно, и достигается примерно одинаковое быстродействие аналогичных алгоритмов.

     
     
  • 5.64, Hck3r (?), 15:16, 04/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Внутри пакета, который жестко заточен на оптимизацию возможно (если честно в исходниках мат пакетов особо не копался). Но я же говорю, что до вызова пакета с данными как-то ещё работает исследователь. И тратить время на просчёт корректности индексов при развёртке своих н-мерных тензоровьто ещё удовольствие. Да и понятность логики и читаемость кода теряется.
    А когда я говорил про срезы имел в виду этот пример https://en.m.wikipedia.org/wiki/Array_slicing
    Гугл подсказал, что некоторые компиляторы (Sun) и возможно новые стандарты плюсов что-то вводили, но я никогда такого не встречал.
     
  • 3.77, Аноним (77), 15:48, 05/08/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Забавно, как на опеннете любят постоянно кричать про фанбоев раста. При этом в топике про ЯП для математиков, которым небольшой профит от скорости C по сравнению с Julia в 99% случаев как собаке пятая нога для бега, набежали сишники и рассказывают о том что кроме великого и неподражаемого С языки не нужны. Действительно, зачем нужна кувалда когда есть ювелирные молоточки? Зачем все эти глупые люди используют инструменты которые им удобны для решения задач?
     
     
  • 4.85, nelson (??), 13:14, 06/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > ЯП для математиков

    А нужен ли вообще этот специальный ЯП для математиков? Математикам удобнее готовый софт юзать в ряде случаев (но не всегда). Mathlab, Octave, Maxima и т.д. - вот что реально будет юзать математик. Попытки создания "ЯП'ов для пользователей" - так себе идея. Один только пистон чего стоит. Julia - это, по сути, ЯП для пользователей. В любом случае что-то нетривиальное придётся делать на том же C++ и функциональных ЯП. Математику выгоднее какой-нибудь OCaml освоить, нежели Julia. На чём там фронтэнд Julia написан? С, C++ и, внезапно - Scheme. Maxima написана на Common Lisp. Функциональные ЯП вполне себе годны как для создания математического софта, так и для вычислений. Непонятно, в какую нишу метит эта Julia. Разве что как замена математическим питоно-библиотекам.

     
     
  • 5.87, Анонолекс (?), 19:42, 08/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ну вот, Юля уже есть, осталось для математиков написать свой Mathlab с фракталами и 3D-визуализацией функций. И назвать его Scilab, FreeMat, GNU Octave или Genius. Ой, блин такое уже есть. Осталось только их спарить с Юлькой.

    П.С. Последним двум упомянутым надо ещё интерфейс немного поправить...

     
     
  • 6.88, Hck3r (?), 09:44, 09/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Производительность работы и вычислений большинства названных пакетов уступают Юльке
     

  • 1.51, Аноним (52), 10:59, 04/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    > Возможность прямого вызова функций из библиотек на языке Си без дополнительных прослоек.

    Это свойство любого достойного языка программирования. И это же аргумент, почему иные языки программирования, кроме С, не нужны.

     
     
  • 2.53, iZEN (ok), 11:03, 04/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >> Возможность прямого вызова функций из библиотек на языке Си без дополнительных прослоек.
    > Это свойство любого достойного языка программирования. И это же аргумент, почему иные языки программирования, кроме С, не нужны.

    Ну бред же пишешь. На TurboPascal легко внедрял модуль EGAVGA в исполняемый файл — отдельная подгрузка кода времени выполнения из модуля для работы с графикой не требовалась.

    Из Java получал доступ к динамическим библиотекам, откомпилированным в Delphi. Где тут Си? Что я делал не так?


     
     
  • 3.54, Аноним (52), 11:06, 04/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > TurboPascal

    Очнись, 92 год (до дележа сфер интересов) давно прошел.

     
  • 3.55, Аноним (52), 11:09, 04/08/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Да, и погугли "На чем написан Delphi". Удивишься.
     
     
  • 4.56, Аноним (52), 11:11, 04/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    И Java, кстати, тоже. :))
     
  • 4.63, iZEN (ok), 14:06, 04/08/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Да, и погугли "На чем написан Delphi". Удивишься.

    Turbo Pascal кроме библиотеки TurboVision написан на Turbo Pascal!

    Delphi среда и библиотека VCL написаны на Object Pascal/Delphi Pascal. Библиотека визуальных компонентов (VCL) также используется в C++Builder (в сишной среде очень тормозной компилятор — раз в десять тормознее дельфового на простых проектах).

    Для OCX/ActiveX компонентов в среде Delphi есть специальный компилятор для внедрения компонентов в виде "обёрток" этих объектов в саму среду, на палитру компонентов и работы с ними в режиме визуального проектирования в среде дизайнера форм. Также есть "обратный" процесс — любой компонент VCL можно преобразовать в OCX/ActiveX-компонент и использовать уже бинарную библиотеку (в формате файла .OCX или .DLL) в других средах разработки.

    Borland JBuilder был написан на C++, но впоследствии к четвёртой версии, кажется, переписан на Java с Look&Feel Metal Swing, а затем перешёл на платформу NetBeans и отвязался от нативного кода вообще.

     
  • 2.73, funny.falcon (?), 10:03, 05/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Правильно я понимаю, что Go недостоин?
     
     
  • 3.74, RomanCh (ok), 12:33, 05/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, вы видимо просто не знаете что Go даёт возможность не только делать вызовы функций C без всяких прослоек, но даже позволяет писать на С внутри файла с Go кодом:

    package main

    /*
    #include <stdio.h>
    void hello(void) {
        printf("Hello from C function!\n");
    }
    */
    import "C"

    func main() {
        C.hello()
    }

    $ go run test.go
    Hello from C function!

     
     
  • 4.82, Аноним (80), 22:02, 05/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Там одна только беда с интеграцией в Си рантайм это ThreadPool на стороне Golang,
    который расхреначивает весь не tread-safe код.
     

  • 1.65, OpenEcho (?), 15:58, 04/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > и генерирует эффективный нативный машинный код для многих целевых платформ;

    s/эффективный/огромные файлы размером в 10-ки мегабайт даже для Hello World/g

    s/нативный машинный код/только при очень сильном желании может быть получится сгенерировать нативный машинный код/g

     
     
  • 2.75, Аноним (77), 15:06, 05/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Да, математики очень страдают от бинарников в 10 мегабайт и не до конца нативного машинного кода. Отправляют их на сервера вычислительных центров с сотнями гигабайт RAM на каждой ноде чтобы крутить расчеты неделями и рыдают просто от того что файл грузился не секунду, а две.
    Серьезно, я понимаю, что у ретроградов есть фетиш на С, но люди которые работают предпочитают все-таки использовать удобные инструменты для решения задач которые повышают их продуктивность. Людям все-таки обычно платят за результат а не за фанбойство.
     
     
  • 3.76, OpenEcho (?), 15:38, 05/08/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Людям все-таки обычно платят за результат а
    > не за фанбойство.

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

     
     
  • 4.79, Аноним (77), 17:48, 05/08/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А, сорри, я затупил и не понял что это был наезд на их действительно спорный маркетинг компиляции в нативный код. Просто пролистав кучу сообщений вида "кроме C больше ничего не нужно" я подумал что это очередной наезд на то что язык не С. Ты прав а я не прав.
     
     
  • 5.84, OpenEcho (?), 23:51, 05/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Ты прав а я не прав.

    Я правда рад, что здесь есть люди подобные Вам!

     

  • 1.83, Аноним (80), 22:04, 05/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вопрос как всегда не в языке, а в развитии экосистемы. Сколько библиотек реализуют: графику, чтение документов Word/Excel, работу с базами данных, работу с сетью, работу с принтером, работу с GUI, работу с PDF и т.д.

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

     
     
  • 2.86, Аноним (86), 13:45, 06/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Сколько библиотек реализуют: ....

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

    У Julia с перечисленными выше задачами уже всё в порядке.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2020 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру