10 марта вышел релиз самого популярного компилятора языка Haskell — GHC 9.6.1. С момента предыдущего мажорного выпуска 9.4.1 прошло более 10 месяцев. GHC на данный момент является эталонной реализацией языка и распространяется под модифицированной лицензией BSD3.
6 марта состоялся выпуск системы сборки Scons 4.5.0. Вслед за ним было выпущено корректирующее обновление 4.5.1.
SCons – инструмент автоматизации сборки программных проектов, автоматически анализирующий зависимости между файлами исходного кода и требования адаптации к целевой операционной системе.
Дональд Кнут — разработчик ряда программных технологий, в том числе создатель настольных издательских систем ΤΕΧ и METAFONT, предназначенных для набора и вёрстки книг научно-технической тематики, автор 19 книг и 160 статей.
Но более всего он, наверное, известен как автор фундаментального труда «Искусство программирования», первые три тома, которого вышли еще в конце 1968 — 1973-х годах. Всего же запланировано 7 томов. Труд этот уникален тем, что хотя и не без белых пятен, но его автор постарался на высочайшем академическом уровне преподнести практически все известные алгоритмы решения задач. Мало кто может похвастаться тем, что прочитал все тома, тем не менее, вряд ли возможно считать настоящим программистом того, чьей квалификации не хватит, чтобы использовать хотя бы как справочник.
В 2011-м году вышла 4-я книга (том 4A), под конец 2022-го — 5-я книга (том 4B). 4B пока отсутствует в русском переводе. Изданное «Пятикнижие Кнутово» выглядит так:
Искусство программирования для ЭВМ. Том 1. Основные алгоритмы
Искусство программирования для ЭВМ. Том 2. Получисленные алгоритмы
Искусство программирования для ЭВМ. Том 3. Сортировка и поиск
Искусство программирования, том 4, A. Комбинаторные алгоритмы, часть 1 (комбинаторный поиск)
Искусство программирования, том 4, B. Комбинаторные алгоритмы, часть 2 (продолжение комбинаторного поиска)
В планах
Части 4C и 4D Комбинаторных алгоримов — продолжение темы поиска, а также рекурсивные комбинаторные алгоритмы
Синтаксические алгоритмы: лексикографический и синтаксический поиск, включая поиск строк и сжатие данных
Контекстно-свободные языки
Теория компиляторов
Пожелаем же Дональду Кнуту ясного ума, работоспособности и прожить не менее, чем столько, чтобы завершить эти планы!
24 октября 2022 года объявлено о выпуске новой версии популярного языка программирования Python 3.11.
Python — это высокоуровневый язык программирования общего назначения с динамической строгой типизацией и автоматическим управлением памятью, ориентированный на повышение производительности разработчика, читаемости кода и его качества, а также на обеспечение переносимости написанных на нём программ (Википедия).
18 октября состоялся релиз серверной платформы на языке JavaScript Node.js 19.0.
Node.js 19.0 заменит Node.js 18 и станет «текущей» версией со сроком поддержки до апреля 2023 года, тогда как 18я версия после стабилизации перейдет в статус LTS.
Состоялся очередной релиз ErgoFramework, реализующего полный сетевой стек Erlang и его библиотеку OTP на языке Go.
Фреймворк предоставляет разработчику гибкий инструментарий из мира Erlang для создания распределённых решений на языке Go с помощью готовых шаблонов проектирования общего назначения gen.Application, gen.Supervisor и gen.Server. а также специализированных - gen.Stage (distributed pub/sub), gen.Saga (distributed transactions. реализация шаблона проектирования SAGA) и gen.Raft (реализация протокола Raft).
16 октября вышла стабильная версия компилятора Nuitka 1.1, предназначенного для сборки скриптовых приложений на Python в исполняемый файл через трансляцию в C.
Ричард Столлман опубликовал электронную книгу «Введение и справочное руководство по GNU C».
Труд за авторством Столлмана, Трэвиса Ротвелла и Нэльсона Биба распространяется по лицензии GFDL-1.3 и позиционируется одновременно и как введениие в язык C, и как справочник непосредственно по диалекту GNU C (т.е. включающему gnu-расширения gcc).
RMS просит сообщать о найденных ошибках, неточностях и непонятных, либо неоднозначно написанных пассажах.
Интернет, 29 июля 2022 года. Яндекс опубликовал исходный код и документацию фреймворка userver. Это первый открытый набор инструментов, который позволяет создавать высоконагруженные приложения на языке С++ и протестирован на масштабах уровня Яндекса. Userver используют в Яндекс Go, Лавке, Доставке, Маркете, финтех-проектах и многих других сервисах компании. Фреймворк предоставляется по открытой лицензии Apache 2.0.
Userver лучше всего подходит для разработки приложений с микросервисной архитектурой. Изначально фреймворк разрабатывался в Такси, с его помощью команда перешла с монолитного приложения на архитектуру, которая позволяет разрабатывать отдельные независимые компоненты (микросервисы) и использовать их в разных приложениях.
Микросервисы автономны, поэтому приложение на подобной архитектуре легко обновлять и добавлять в него новые функции. Так, микросервис поиска водителя на заказы в Такси можно использовать для схожей задачи — например поиска курьера для выполнения заказов Яндекс Доставки. То же самое можно проделать и с расчетом времени прибытия водителя или курьера и многими другими задачами.
«Когда мы переходили на микросервисы, мы понимали, что новый фреймворк должен быть как можно проще для разработчиков и бизнеса. Поэтому userver создавали с акцентом на надёжность и удобство, а внутри него есть всё необходимое для разработки, диагностики, мониторинга, отладки и экспериментов. Например, userver подсказывает как исправить ошибки ещё на этапе компиляции, умеет работать с разными базами данных, менять параметры на лету и так далее. Он хорошо подходит для разработки приложений как в небольших, так и в крупных компаниях. И с помощью userver даже новичок может за неделю написать новый микросервис», — говорит Антон Полухин, один из авторов фреймворка и руководитель группы бэкенд-разработки решений для продуктовых команд RideTech и eCom.
Яндекс выкладывает в опенсорс и другие свои ключевые технологии — например, распределенную систему управления базами данных YDB, способную обрабатывать миллионы запросов в секунду, а также библиотеку машинного обучения CatBoost, которую Яндекс применяет в Поиске и других сервисах.
Apache Software Foundation сообщила о релизе Apache NetBeans 14 – интегрированной среды разработки, поддерживающей языки программирования Java, Python, PHP, JavaScript, C, C++ и др.
Проект NetBeans IDE поддерживается и финансируется компанией Oracle, но разработка NetBeans ведётся независимым сообществом разработчиков (NetBeans Community) и компанией NetBeans Org.
Среди изменений 14-ой версии:
доступна сборка с использованием JDK17 и улучшена поддержка новых выпусков Java;
Популярный кроссплатформенный редактор кода Atom выпускаемый под лицензией MIT, возможности которого можно расширять с помощью плагинов, большое количество которых было создано пользователями за множество лет с момента самого первого релиза редактора, больше не будет разрабатываться. Официальный «закат» проекта намечен на 15 декабря 2022 года - Atom и связанные с ним репозитории будут заархивированы.
В GitHub обосновывают свое решение тем, что в последние годы в Atom уже не добавлялись какие-то новые значительные функции, а множество пользователей Atom перешло на использование родственного редактора - Visual Studio Code от Microsoft, во многом вдохновленного Atom, так же имеющего в основе фреймворк Electron (некогда известного как Atom Shell) и так же выпускаемого под свободной лицензией MIT. Теперь усилия разработчиков GitHub будут сосредоточены на проекте GitHub Codespaces, облачной среде разработки на основе VSCode.
Вышла первая публичная версия (0.9.6) тулкита для обратной разработки 16 битных DOS-игр: Masm2c и libdosbox.
Допустим, вы решили переписать движок старой любимой игры под ДОС или специализированного DOS-софта. Кроме того что реверс-инжиниринг сложен, задачу усложняет еще и то, что используется сегментная модель памяти (адресация за раз только 64 КБайт памяти одним сегментным регистром), прямой доступ к старому железу.
Если у вас есть бинарник с движком игры, тулкит позволяет сконвертировать его в работающий переносимый код на C++. Каждая инструкция x86 заменяется аналогичной функцией на С++ (native code). Libdosbox используется для эмуляции видео, звуковых устройств и для проверки конвертации каждой инструкции x86. Получается что-то среднее между декомпиляцией и дизассемблированием.
Если исключить документацию, автоматически генерируемые файлы и инструментарий для формирования самого релиза, в новой версии изменено 190000 строк в 1300 файлах .pm, .t, .c и .h.