LINUX.ORG.RU

Языки программирования


24

16

Всего сообщений: 43

c3c 0.7.6

Группа Разработка

4 октября состоялся выпуск 0.7.6 кроссплатформенного компилятора и стандартной библиотеки языка программирования C3.

C3 – это эволюция, а не революция: язык, похожий на C, для программистов, которые любят C.
C3 – это язык программирования, основанный на синтаксисе и семантике языка C, с целью его развития при сохранении привычности для программистов C.
Благодаря полной ABI-совместимости с C, можно без труда смешивать C и C3 в одном проекте. В качестве демонстрации, vkQuake был скомпилирован с небольшой частью кода, преобразованной в C3 и скомпилированной с помощью компилятора c3c.

Компилятор написан на языке C с использованием фреймворка LLVM (поддерживаются версии 17-22) и распространяется по лицензии GNU LGPL.
Стандартная библиотека распространяется по лицензии MIT.

( читать дальше... )

>>> Подробности на GitHub

 c3, , , ,

dataman
()

Рейтинг популярности языков программирования в 2025 от IEEE

Группа Разработка

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

На первом месте, ожидаемо, Python, на втором — Java, на третьем — C++. Javascript потерял три места за год, переместившись с 3-го места на 6-е.

TypeScript идёт отдельной строкой. Если сложить, то вместе с JS они всё ещё обгоняют Java.

Из удивительного: COBOL чуточку популярнее Elixir. Как известно, КОБОЛ до сих пор обслуживает многие системы бизнеса. В комментариях указывают цифры (похоже, для США):

  • 43% всех банковских систем;
  • 95% всех транзакций банкоматов;
  • 80% всех транзакций кредитками, совершаемых физлицами;
  • 96% резервирований путешествий.

>>> Top Programming Languages 2025

 ,

Chiffchaff
()

Проект TrapC развивает Си-подобный язык, безопасно работающий с памятью

Группа Разработка

Проект развивает Робин Роу (Robin Rowe), бывший профессор компьютерных наук, принимавший участие в комитетах по развитию стандартов С и С++, в своё время создавший графический редактор Cinepaint, использовавшийся при создании некоторых голливудских фильмов, и POSIX-библиотеку libunistd для Windows. Соучредителем компании Trasec выступает Габриэль Пантера (Gabrielle Pantera), занимавшая руководящий пост в компании Disney.

Из особенностей:

  • Проверки выхода за границы массива. В TrapC применяется фундаментально иной способ работы с указателями и специальный механизм перехвата ошибок на основе обработчиков исключений (trap).

  • Проверки use after free.

  • Наличие GC.

  • Выделение памяти через new. *alloc и free нет.

  • Явная инициализация нулями.

  • Строгая типизация.

Исходный код компилятора для TrapC планируют открыть в 2025 году.

>>> Подробности

 , ,

Ygor
()

Опубликован релиз-кандидат эталонной реализации языка Lua 5.4.7-rc1

Опубликован релиз-кандидат эталонной реализации языка Lua 5.4.7-rc1
Группа Разработка

Язык Lua – это мощный, переносимый, легковесный, встраиваемый и простой язык программирования, разработанный и развиваемый Роберту Иерузалимски в PUC-Rio вот уже более 30 лет.

Это минорный релиз посвящённый исправлению ошибок и улучшению документации. К использованию приглашаются все, кого затронули ошибки прошлой версии и все, кто имеет желание протестировать текущую. Если вы заметили ошибку или желаете связаться с авторами языка, это возможно исключительно через список рассылки. Любые патчи и рекомендации приветствуются, но важно помнить что они с вашей стороны будут всегда нести рекомендательный характер и будут так восприняты.

( читать дальше... )

>>> Подробности

 , , ,

LINUX-ORG-RU
()

Zig 0.11

Группа Разработка

Спустя 8 месяцев и 4457 коммитов от 269 различных участников вышла новая версия Zig.

Zig — это (кросс-)компилятор языков программирования Zig, С++, С, Objective-C, Objective-C++, а также сборочная система и менеджер пакетов для них. Проект разрабатывается под лицензией MIT. Недавно в Zig Core Team вошёл ещё один разработчик на зарплате: Jacob Young.

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

  • Появился пакетный менеджер.
  • Улучшена поддержка powerpc, powerpc64le и Plan9.
  • Архитектура i386 переименована в x86.
  • Множественные улучшения и исправления для WebAssembly и появление специфичного для него аллокатора wasm_allocator.
  • Реализация компилятора Zig на Zig (self-hosted) полностью готова, а старый компилятор на C++ «выкинут на орбиту» (требования к ОЗУ для сборки снижены с 11 до 4 ГБ).
  • Обновлены сторонние компоненты:
    • LLVM 16.0.6;
    • musl 1.2.4;
    • wasi-libc 3189cd1ceec8771e8f27faab58ad05d4d6c369ef;
  • Множество изменений в стандартной библиотеке (подробнее).

>>> Подробности

 , ,

anonymous
()

Доступен язык программирования Hare

Группа Разработка

Впервые представлен широкой публике язык программирования Hare, который разрабатывает Дрю ДеВолт (автор Sway и SourceHut) со своей командой последние пару лет.
Hare — язык для системного программирования с минималистичным рантаймом, статической типизацией и ручным управлением памятью.

Исходный код компилятора предоставляется под лицензией GPLv3, а для стандартной библиотеки под лицензией MPL (Mozilla Public License). Компилятор Hare не основан на LLVM или GCC, а использует легковесный qbe. Программы на Hare не линкуются с libc по умолчанию.

( читать дальше... )

>>> Подробности

 , ,

dadd
()

Язык программирования Crystal обзавёлся интерактивным интерпретатором

Группа Разработка

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

( читать дальше... )

>>> Подробности

 ,

LINUX-ORG-RU
()

Rust 1.55.0

Rust 1.55.0
Группа Разработка

Команда Rust рада объявить о новой версии языка программирования Rust, 1.55.0!

Основные изменения:

  • Cargo теперь дедуплицирует ошибки компилятора.
  • Ускорен и исправлен парсинг чисел с плавающей точкой по алгоритму Eisel-Lemire.
  • Обновлены варианты для std::io::ErrorKind.
  • Добавлены шаблоны открытого диапазона. (Подробности.)
  • Стабилизированы многочисленные API.

>>> Подробности

 ,

umren
()

Julia Computing собрала $24 млн в первом раунде финансирования

Группа Open Source

Julia Computing Inc., стартап, стоящий за специализированным языком программирования, используемым для таких задач, как разработка алгоритмов машинного обучения и моделирование космических полетов, сегодня объявил о привлечении финансирования в размере 24 миллионов долларов.

Первый раунд финансирования возглавила компания Dorilton Ventures. К венчурной компании присоединились Menlo Ventures, General Catalyst и HighSage Ventures. Боб Муглиа, бывший исполнительный директор гиганта по хранению данных Snowflake Inc., присоединяется к совету директоров Julia Computing в рамках раунда финансирования.

( читать дальше... )

«Ученые, изучающие данные, и инженеры используют продукты, которые были разработаны много десятилетий назад. JuliaHub позволяет проектировать новые лекарства и методы лечения, разрабатывать новые батареи, моделировать космический полет и составлять карты Вселенной, используя при этом меньше вычислительных ресурсов и сокращая выбросы центров обработки данных», – сказал Вирал Шах, генеральный директор Julia Computing и один из создателей языка Julia. «Благодаря последнему финансированию мы с нетерпением ждем увеличения численности нашей команды и внедрения суперспособностей языка Julia в новые отрасли и приложения.»

На сегодняшний день Julia Computing привлекла около 28,6 миллионов долларов.

>>> Подробности

 , ,

wall_jvm
()

Релиз nim 1.4.6

Группа Разработка

Nim (ранее — Nimrod) — язык программирования со статической типизацией, поддерживающий процедурный, объектно-ориентированный, функциональный и обобщённый стили программирования (Wikipedia).

19 исправлений в сравнении с предыдущей версией.

Ветка 1.2 также обновилась до версии 1.2.12

>>> Подробности

 ,

anonymous
()

Релиз языка nim 1.4.4

Группа Разработка

Nim (ранее — Nimrod) — язык программирования со статической типизацией, поддерживающий процедурный, объектно-ориентированный, функциональный и обобщённый стили программирования (Wikipedia).

Ветка 1.2 также обновилась до версии 1.2.10

45 коммитов с предыдущей версии. Ключевым исправлением этих выпусков, является переработка обработки сертификатов SSL; теперь код выполняется правильно и поддерживается в OC Windows.

>>> Подробности

 ,

acroobat
()

Релиз языка программирования Nim 1.4.0

Группа Разработка

Вышла новая версия системного языка программирования Nim, которому в этом сентябре исполнился год с момента выхода первой стабильной версии. По синтаксису язык похож на Python, а по производительности почти как C++. Согласно FAQ язык во многом заимствует из (в порядке весомости вклада): Modula 3, Delphi, Ada, C++, Python, Lisp, Oberon.

Работает везде благодаря возможности компиляции в С/C++/Objective-C/JS. В нём поддерживаются макросы, ООП, дженерики, исключения, горячая замена кода и многое другое. Лицензия - MIT.

Наиболее значительные изменения:

  • Появился новый сборщик мусора ORC, использующий алгоритм из ARC, но при этом специальным образом обрабатывающий циклические ссылки. Включается опцией --gc:orc. О различиях ARC/ORC есть отличная статья.

  • Добавлен режим строгих определений функций, при котором включается дополнительная проверка на мутабельность объектов. Активируется через прагму {.experimental: "strictFuncs".} или через ключ --experimental:strictFuncs.

  • Ключевое слово from теперь может быть использовано как оператор.

  • Добавлена прагма .noalias. Она сопоставляется с ключевым словом C restrict, чтобы повысить эффективность, которую может обеспечить это слово.

  • Конкретные предупреждения теперь можно превратить в ошибки через --warningAsError[X]:on|off.

  • Новая команда: nim r main.nim [args...], которая компилирует и запускает main.nim, и включает --usenimcache так, что результат сохраняется в $nimcache/main$exeExt, используя ту же логику что и nim c -r для избавления от перекомпиляции, когда исходники не изменились. Пример:

nim r compiler/nim.nim --help # скомпилирован в первый раз
echo 'import os; echo getCurrentCompilerExe()' | nim r - # это тоже работает
nim r compiler/nim.nim --fullhelp # без перекомпиляции
nim r --nimcache:/tmp main # бинарник сохранён в /tmp/main
  • Добавлена новая подсказка --hint:msgOrigin, которая покажет где компилятор сгенерировал сообщения об ошибках/предупреждения. Это помогает, когда неочевидно откуда пришло сообщение.

  • Добавлен флаг --backend:js|c|cpp|objc (или -b:js и т.д.) для смены бэкенда.

  • Добавлен флаг --usenimcache для вывода бинарников в nimcache.

  • Удалены ключи: --oldNewlines, --laxStrings, --oldast, --oldgensym

  • Утилита nimsuggest теперь показывает не только предварительное объявление, но и расположение реализации по запросу def.

Помимо этого добавлено множество изменений в стандартную библиотеку и множество исправлений багов.

>>> Подробности

 , ,

anonymous
()

Вышла новая версия языка программирования D (2.091.0)

Группа Разработка

Изменения в компиляторе:

  • Окончательно убран деаллокатор классов.
  • Возможность сообщать о номерах строк в стиле GNU.
  • Добавлена экспериментальная генерация заголовочников C++ из внешних (extern) объявлений C|C++: DMD теперь умеет писать заголовочные файлы C++, содержащие биндинги на объявления в существующих файлах D, помеченных как extern(C) или extern(C++).

Изменения в рантайме:

  • Добавлен пропущенный в некоторых местах pthread_attr_destroy.
  • Расширенные биндинги в core.sys.windows.security.
  • Добавлен core.stdcpp.memory.unique_ptr.
  • Добавлен TFD_TIMER_CANCEL_ON_SET.

Изменения в библиотеке:

  • std.bigint теперь @safe.
  • Замена approxEqual на isClose в std.math.
  • Удалён устаревший std.format.Mangle.
  • Удалены устаревшие структуры ByLine, ByChunk, ByRecord из std.stdio.
  • std.algorithm.sorting.schwartzSort теперь поддерживает и бинарные функции трансформации.
  • Добавлена curry в std.functional.

Изменения в инсталляторе:

  • Скрипт инсталляции теперь может исполняться на Windows.

Изменения в Dub:

  • Добавлена переменная окружения SOURCE_FILES.
  • У DUB теперь стиль дополнения zsh.

>>> Подробности

 ,

next_time
()

Релиз Nim 1.2.0

Группа Разработка

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

Главное нововведение — новый сборщик мусора, включаемый опцией --gc:arc. Автор языка Andreas Rumpf собрается написать подробную статью о преимуществах ARC, а пока предлагает ознакомиться с его выступлением на FOSDEM, где показаны результаты бенчмарков.

  • Компилятор теперь поддерживает опцию --asm для более удобного изучения производимого ассемблерного кода.
  • align pragma может быть использована для переменных и полей объекта, это похоже на alignas в C/C++.
  • =sink оператор теперь опционален. Компилятор теперь может использовать комбинацию =destroy и copyMem для эффективного перемещения объектов.
  • Преобразования в unsigned integers не проверяются в рантайме. Подробности в https://github.com/nim-lang/RFCs/issues/175
  • Новый синтаксис для lvalue: var b {.byaddr.} = expr, подключаемый через import std/decls
  • Компилятор поддерживает новый ключ --panics:on, который превращает рантаймовые ошибки такие как IndexError или OverflowError в фатальные ошибки, которые не могут быть пойманы через try. Это может улучшить эффективность рантайма и размер программы.
  • Генерируемый JS-код использует только пробелы вместо мешанины из пробелов и табов.
  • В компилятор добавлена поддержка .localPassc pragma, с помощью которой можно обработать специальные опции C(++) бэкенда для C(++) файла, который генерируется из текущего модуля Nim.
  • Nimpretty теперь не принимает отрицательный аргумент для настройки отступов, так как это ломало файлы.
  • Добавлены новые макросы (collect, dup, capture), подключаемые через import sugar.

Помимо этого добавлено множество изменений в стандартную библиотеку и множество исправлений багов.

>>> Подробности

 , ,

anonymous
()

Серия статей «По языку в день» от Андрея Шитова

Группа Разработка

Андрей Шитов, известый Perl-разработчик, решил в этом году попробовать как можно больше языков программирования и поделиться опытом с читателями.

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

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

  • Hello, World!
  • Функция, вычисляющая факториал рекурсивно или в функциональном стиле
  • Программу, создающую массив объектов и выполняющую полиморфный вызов методов на них
  • Реализацию сонной сортировки (sleep sort). Данный алгоритм не применяется в боевых условиях, но замечательно демонстрирует возможности языка в разрезе конкурентности

Список языков:

  • День 1. TypeScript
  • День 2. Rust
  • День 3. Julia
  • День 4. Kotlin
  • День 5. Современный C++
  • День 6. Crystal
  • День 7. Scala
  • День 8. Dart
  • День 9. Hack
  • День 10. Lua
  • День 11. Raku
  • День 12. Elixir
  • День 13. OCaml
  • День 14. Clojure
  • День 15. Nim
  • День 16. V
  • День 17. Go
  • День 18. Hy
  • День 19. Red
  • День 20. Mercury
  • День 21. Elm

>>> Подробности

 ,

perl5_guy
()

Состоялся релиз языка Nim 1.0

Группа Разработка

Nim — статически типизированный язык, который ориентируется на эффективность, читаемость и гибкость.

Версия 1.0 отмечается стабильной базой, которая может быть уверенно использована в ближайшие годы. Начиная с текущего релиза, любой код, написанный на Nim, не будет сломан.

Этот релиз включает в себя множество изменений, включая исправления ошибок и некоторые языковые дополнения. В комплекте также идет обновлённый пакетный менеджер Nimble.

Версия 1.0 теперь имеет статус LTS. Поддержка и исправление ошибок будут продолжаться до тех пор, пока будут востребованы. Новые возможности, которые не будут нарушать обратную совместимость, будут развиваться в ветке 1.х.

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

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

Обновиться можно уже сейчас:

choosenim update stable

>>> Подробности

 , ,

opqx
()

Вышел Erlang/OTP 22

Группа Open Source

Несколько часов назад команда Erlang объявила об очередном релизе языка программирования и всей платформы.

Напомню, что Erlang/OTP предназначен для создания широко масштабируемых систем, работающих в режиме мягкого реального времени с требованиями высокой доступности. Платформа давно и успешно используется в таких сферах, как телекоммуникации, банки, электронная коммерция, телефония и мгновенная передача сообщений.

( читать дальше... )

>>> Официальный релиз

 , , , ,

loz
()

Coq 8.9

Группа Open Source

Состоялся релиз Coq 8.9. Его разработка заняла 7 месяцев с момента выпуска Coq 8.8. Этот релиз является результатом ≈2000 коммитов и ≈500 pull request’ов.

Coq — интерактивное программное средство доказательства теорем, использующее собственный язык функционального программирования с зависимыми типами.

( читать дальше... )

>>> Подробности

 , , , ,

Guest_1488
()

Ruby 2.6.0

Группа Open Source

Ruby — динамический, опенсорсный язык с прицелом на простоту и продуктивность. Он имеет элегантный синтаксис: интуитивно понятный и простой для написания.

В этом выпуске представлен ряд новых возможностей и улучшений производительности. Самые важные:

  • Новый JIT-компилятор, который вместо работы в памяти сохраняет на диск код на языке C и обрабатывает его внешним компилятором (поддерживаются GCC, Clang и Microsoft VC++). Включается ключом --jit. На активно нагружающих процессор задачах достигнуто ускорение в 1.7 раз по сравнению с Ruby 2.5.
  • Модуль RubyVM::AbstractSyntaxTree (экспериментальный, поддержание будущей совместимости пока не гарантируется). Он предоставляет методы parse и parse_file для превращения соответственно строки или файла с кодом на Ruby в узлы абстрактного синтаксического дерева, представленного объектами класса Node из того же модуля.

Другие важные нововведения:

( читать дальше... )

Улучшения производительности:

( читать дальше... )

Другие важные изменения по сравнению с 2.5:

( читать дальше... )

>>> Скачать (SHA1=c95f4e86e21390270dad3ebb94491fd42ee2ce69)

>>> Подробности

>>> Источник

 , ,

Moondancer
()

Релиз языка Julia 1.0

Группа Open Source

Спустя 9 лет активной разработки, свет увидел язык для инженерных и технических вычислений Julia 1.0!

Авторы языка многие годы работали с такими языками, как R, Matlab, Fortran и Python. Каждый язык, по мнению авторов, имел свои изъяны и недостатки, вследствие чего было решено разработать современный универсальный специализированный язык, который заменит все вышеперечисленные языки в инженерно-технических вычислениях.

( читать дальше... )

>>> Подробности

 , ,

FilosofeM
()