СберТех и ИТ-Планета при инфоподдержке ГНУ/Линуксцентра проводят первый Open OS Challenge 2023 для профессионалов в области системного программирования для операционных систем на базе Linux.
Спустя 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 ГБ).
Здесь мы каждую неделю обновляем список конференций и других мероприятий по тематикам: C#, C++, DevOps, JS, GameDev, IT-стартапы, тестирование и так далее.
Возможно, вы сталкивались с тем, что затруднительно узнать, а какие, собственно, конференции можно посетить в этом году. Мы точно сталкивались. Есть разные списки, агрегаторы, но они весьма разрозненные или заброшенные. Поэтому мы решили сами собирать мероприятия для разработчиков. Думаем, этот список окажется многим интересным и полезным.
Конференции можно фильтровать по странам (или наоборот выбрать онлайн-варианты), типу, теме. Приятного ознакомления. Если мы пропустили что-то важное, дайте знать, будем добавлять. Заранее спасибо.
Дональд Кнут — разработчик ряда программных технологий, в том числе создатель настольных издательских систем ΤΕΧ и METAFONT, предназначенных для набора и вёрстки книг научно-технической тематики, автор 19 книг и 160 статей.
Но более всего он, наверное, известен как автор фундаментального труда «Искусство программирования», первые три тома, которого вышли еще в конце 1968 — 1973-х годах. Всего же запланировано 7 томов. Труд этот уникален тем, что хотя и не без белых пятен, но его автор постарался на высочайшем академическом уровне преподнести практически все известные алгоритмы решения задач. Мало кто может похвастаться тем, что прочитал все тома, тем не менее, вряд ли возможно считать настоящим программистом того, чьей квалификации не хватит, чтобы использовать хотя бы как справочник.
В 2011-м году вышла 4-я книга (том 4A), под конец 2022-го — 5-я книга (том 4B). 4B пока отсутствует в русском переводе. Изданное «Пятикнижие Кнутово» выглядит так:
Искусство программирования для ЭВМ. Том 1. Основные алгоритмы
Искусство программирования для ЭВМ. Том 2. Получисленные алгоритмы
Искусство программирования для ЭВМ. Том 3. Сортировка и поиск
Искусство программирования, том 4, A. Комбинаторные алгоритмы, часть 1 (комбинаторный поиск)
Искусство программирования, том 4, B. Комбинаторные алгоритмы, часть 2 (продолжение комбинаторного поиска)
В планах
Части 4C и 4D Комбинаторных алгоримов — продолжение темы поиска, а также рекурсивные комбинаторные алгоритмы
Синтаксические алгоритмы: лексикографический и синтаксический поиск, включая поиск строк и сжатие данных
Контекстно-свободные языки
Теория компиляторов
Пожелаем же Дональду Кнуту ясного ума, работоспособности и прожить не менее, чем столько, чтобы завершить эти планы!
Привет всем! Второго декабря, в Москве, пройдет второй RustCon — конференция для тех, кто пишет на языке Rust, и для тех, кто только приглядывается к нему. И сразу хорошая новость — в этом году RustCon пройдет одновременно в офлайн и онлайн-форматах! Что мы готовим:
Продвинутые доклады
Крутейшие спикеры будут весь день делиться опытом и рассказывать о своих кейсах в Rust-разработке. Поговорим о новых технологиях и методах, поищем оптимальные решения типичных задач, обсудим перспективы языка (до сих пор не утихают споры!).
Воркшопы
Потрогаем код руками и вживую освоим несколько классных приемов программирования на Rust.
Нетворкинг
Разработчиков Rust трудно встретить в «естественной среде обитания», а на конференции можно будет познакомиться и пообщаться в неформальной обстановке со всеми заинтересованными лицами: спикерами, слушателями, участниками и представителями компаний, где уже пишут на Rust или собираются запускать проекты на нем.
По промокоду linux.org действует скидка 10 % на билет.
Также реализовано формирование имён функций доступа к полям структуры по правилам русского языка.
$ uname -a
Linux alatyr 5.4.0-3.19-e1cp #1 Wed Mar 9 16:53:28 MSK 2022 e2k E1C+ MBE1C-PC GNU/Linux
$ cat тест.1
#!1
структура человек
; имя
отчество #:изменяемое
#:суффикс -человека
иван = человек "Иван" "Иванович"
отчество-человека иван := "Петрович"
отчество-человека иван
$ racket/bin/racket тест.1
"Петрович"
Пока сборка есть только для Эльбрус Линукс на Эльбрус-1С+ (система команд e2k-8c). Для остальных можно воспользоваться скриптом для сборки.
Язык 1 - функциональный язык программирования на основе русского языка. Синтаксис унаследован от Haskell, семантика от Racket.
Mission Zero - это проект, который предлагает молодым людям возможность запустить свой код в космосе! Напишите простую программу для получения показаний датчика цвета и яркости на компьютере Astro Pi на борту Международной космической станции и используйте ее для установки цвета фона в персонализированном изображении, чтобы астронавты могли видеть, выполняя свои повседневные задачи.
Следуя пошаговым инструкциям, участники конкурса пишут код для считывания показаний с датчика Astro Pi и отображения цветного изображения, которое астронавты МКС могут видеть во время выполнения своих повседневных задач. Это отличное часовое занятие для начинающих программировать.
Участие бесплатное и открыто для молодых людей в возрасте до 19 лет в государствах-членах ЕКА. (критерии приёма). Все можно сделать в веб-браузере на любом компьютере с доступом в Интернет. Не требуется специального оборудования или предварительных навыков кодирования.
Участники получат часть истории космической науки, которую они смогут сохранить: персональный сертификат, который они могут загрузить, в котором указано точное время начала и окончания их программы Mission Zero.
Конкурс начался 22 сентября и продлится до 17 марта 2023 года.
Впервые представлен широкой публике язык программирования Hare, который разрабатывает Дрю ДеВолт (автор Sway и SourceHut) со своей командой последние пару лет.
Hare — язык для системного программирования с минималистичным рантаймом, статической типизацией и ручным управлением памятью.
Исходный код компилятора предоставляется под лицензией GPLv3, а для стандартной библиотеки под лицензией MPL (Mozilla Public License).
Компилятор Hare не основан на LLVM или GCC, а использует легковесный qbe. Программы на Hare не линкуются с libc по умолчанию.
Много воды утекло с момента выхода LDD3 (LDD4 мы, видимо, уже не дождёмся), безнадёжно устарел фундаментальный труд Бовета и Чезати, Роберт Лав давно не радовал нас своими прекрасными творениями. Казалось бы, в мире литературы о программировании ядра Linux наметилась устойчивая стагнация…
Но нет! Ситуацию спасает замечательный индийский программист со звучным именем Кайван Биллимория. Он написал книгу о программировании ядра, аж в двух томах.
Об авторе
Кайван программирует с 1983 года. В то время он самостоятельно научился программировать на бейсике, затем освоил Си и ассемблер под MS-DOS, а потом открыл для себя мир UNIX и Linux. Занимался программированием ядра и драйверов, участвовал в коммерческих и свободных проектах, занимался преподавательской деятельностью.
Повествование в книге ведётся на основе Ubuntu 18.04 LTS и ядра версии 5.4.
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 миллионов долларов.
Вышел релиз библиотеки PCRE2 10.37. PCRE2 это вторая версия оригинальной библиотеки PCRE с несовместимым API.
Библиотека PCRE2 это набор функций, которые реализуют регулярные выражения и сопоставление с образцом (pattern matching), используя синтаксис и семантику схожие с Perl 5.
Основные изменения:
Из библиотеки libpcre2-posix удалены символы POSIX-функций, такие как regcomp и т.д., так как они вызывали проблемы у некоторых приложений. Патч pcre2-symbol-clash.patch принят в апстрим. Также обновлена версия ABI этой библиотеки.
Обновление популярного редактора кода, не прошло и двух лет.
Основное в изменении лицензии – лицензионные ключи получают срок действия - будут доступны для новых обновлений редактора в течение 3-х лет с момента покупки лицензии.
Но, как и раньше Sublime Text можно БЕСПЛАТНО загрузить для ознакомления. Принудительного ограничения по времени оценки на текущий момент нет.
14 мая в Екатеринбурге пройдет 10-й юбилейный DUMP – главная IT-конференция на Урале. Это общение, идеи, тренды!
Приходи за практической пользой и инструментами, которые сразу можно интегрировать в работу команд.
Приглашаем разработчиков, тестировщиков и QA, devops-специалистов, веб-дизайнеров и проектировщиков интерфейсов, аналитиков, продактов, тимлидов и менеджеров разработки.
На конференции выступят более 100 спикеров, в том числе:
Евгений Сатуров, Flutter Teamlead из Surf и основатель Flutter Dev Podcast;
Сергей Абдульманов, PR-агентство Loft, Туту.ру;
Григорий Петров, DevRel в Evrone;
Владимир Лила, СКБ Контур;
Андрей Цветцих, Lead.NET developer в ЕПАМ и другие интересные ребята.
Нас ждут 9 тематических секций и мастер-классы, нетворкинг, дискуссии. Неофициальная программа экскурсий и вечеринок рассчитана на целые DUMP-выходные с 13 по 16 мая!
Кстати, впервые можно выбрать формат участия: офлайн или онлайн.
Вышел новый релиз динамического рефлективного интерпретируемого высокоуровневого объектно-ориентированного языка программирования Ruby версии 3.0.0. По заявлению авторов, зафиксировано утроение производительности (по тесту Optcarrot), таким образом достигнута поставленная в 2016 году цель, описанная в концепции Ruby 3x3.
Вышла новая версия системного языка программирования Nim, которому в этом сентябре исполнился год с момента выхода первой стабильной версии. По синтаксису язык похож на Python, а по производительности почти как C++. Согласно FAQ язык во многом заимствует из (в порядке весомости вклада): Modula 3, Delphi, Ada, C++, Python, Lisp, Oberon.
Появился новый сборщик мусора 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.
Qt Company сообщила в своём блоге о доступности первой предварительной сборки Qt 6.0.
Компания сообщает, что первая предварительная сборка содержит бинарные файлы только для настольных платформ, а для тестирования на мобильных и встроенных платформах необходимо воспользоваться сборкой из исходных текстов, при этом Qt 6.0 требует поддержки C++17 от компилятора, поэтому разработка фокусируется на сравнительно недавно выпущенных компиляторах.
Первая предварительная сборка содержит следующие модули:
Qt Core
Qt GUI
Qt Widgets
Qt Network
Qt QML
Qt Quick
Qt Quick Controls
Qt SVG
Qt Network Authorization
Qt SQL
Qt Test
…и несколько других модулей
Qt Company и далее собирается предоставлять регулярные предварительные сборки Qt 6.0, получить же их можно воспользовавшись установщиком Qt в категории Preview.
Выпуск Qt 6 намечен на 1 декабря, а 31 августа предполагается заморозка добавления функциональности.
Вышла новая версия системного языка программирования Nim. В ней имеется частичная несовместимость с версией 1.0, например, из-за более строгого преобразования типов. Но на этот случай есть флаг --useVersion:1.0.
Главное нововведение — новый сборщик мусора, включаемый опцией --gc:arc. Автор языка Andreas Rumpf собрается написать подробную статью о преимуществах ARC, а пока предлагает ознакомиться с его выступлением на FOSDEM, где показаны результаты бенчмарков.
Компилятор теперь поддерживает опцию --asm для более удобного изучения производимого ассемблерного кода.
align pragma может быть использована для переменных и полей объекта, это похоже на alignas в C/C++.
=sink оператор теперь опционален. Компилятор теперь может использовать комбинацию =destroy и copyMem для эффективного перемещения объектов.
Новый синтаксис для 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.
Помимо этого добавлено множество изменений в стандартную библиотеку и множество исправлений багов.
16 января состоялся мажорный релиз GNU Guile — встраиваемой реализации языка программирования Scheme с поддержкой многопоточности, асинхронности, работы с сетью и системными вызовами POSIX, бинарного интерфейса Си, разбора PEG, REPL по сети, XML; имеет собственную систему объекто-ориентированного программирования.
Главной особенностью новой версии является полноценная поддержка JIT-компиляции, что позволило ускорить работу программ в среднем в два раза, максимум — в тридцать два для бенчмарка mbrot. По сравнению с виртуальной машиной Guile предыдущей стабильной версии, набор инструкций стал более низкоуровневым.
Также улучшена совместимость со стандартами языка программирования Scheme R5RS и R7RS, появилась поддержка структурированных исключений и чередующихся между собой объявлений и выражений внутри лексического контекста. Написанный на Scheme eval по производительности сравнялся с аналогом на языке Си; Для разных реализаций типа Record предоставлен унифицированный набор инструментов для работы с ними; Классы в GOOPS перестали быть переопределяемыми; Подробности и прочие изменения можно прочитать в анонсе релиза.
Новой стабильной веткой языка отныне является 3.x. Она устанавливается параллельно предыдущей стабильной ветке 2.x.
Андрей Шитов, известый Perl-разработчик, решил в этом году попробовать как можно больше языков программирования и поделиться опытом с читателями.
Языки программирования восхитительны! Ты влюбляешься в какой-либо язык как только напишешь несколько тестовых программ. Чем больше изучаешь, тем лучше чувствуешь сам язык и идеи положенные в его фундамент.
В рождественском календаре этого года (с 1 по 24 декабря), я буду ежедневно публиковать статьи повествующие об основах различных языков программирования: один день - один язык. Чтобы сделать обзоры более полезными, я постараюсь придерживаться единого формата и разобрать аспекты языка, необходимые для написания следующих мини-проектов:
Hello, World!
Функция, вычисляющая факториал рекурсивно или в функциональном стиле
Программу, создающую массив объектов и выполняющую полиморфный вызов методов на них
Реализацию сонной сортировки (sleep sort). Данный алгоритм не применяется в боевых условиях, но замечательно демонстрирует возможности языка в разрезе конкурентности