Новости «Разработка»
Облачная конференция по Perl и Raku
COVID-19 разогнал всех по домам, но как бы то ни было, у сообщества накопилось много интересных мыслей по Perl и Raku, которыми хочется поделиться.
Присоединяйся к трёхдневному мероприятию насыщенному интересными выступлениями!
Конференция будет проходить с 24 по 26 июня. Купившие билет в 10$, смогут смотреть живые выступления и задавать вопросы докладчикам. Для всех остальных, видеоотчёт будет доступен на ютуб совершенно бесплатно.
Доклады традиционно читают волонтёры и желающие могут поддержать альтруистов рублём.
>>> Подробности
U++ Framework 2020.1
В мае этого года (точная дата не сообщается) вышла новая, 2020.1, версия U++ Framework (Он же Ultimate++ Framework). U++ — кроссплатформенный фреймворк для создания GUI приложений.
Нововведения в текущей версии:
- Linux бэкенд по умолчанию теперь использует gtk3 вместо gtk2.
- «look&feel» в Linux and MacOS переработан и лучше поддерживает тёмные темы.
- У
ConditionVariable
иSemaphore
появились варианты методаWait
с параметромtimeout
. - Добавлена функция
IsDoubleWidth
для определения глифов UNICODE двойной ширины. - U++ теперь использует директории
~/.config
and~/.cache
для хранения разного. - Добавлена функция
GaussianBlur
. - Модернизирован внешний вид виджетов в дизайнере слоёв.
- Поддержка нескольких мониторов в MacOS и другие исправления.
- В дизайнер добавлено несколько часто используемых виджетов, таких как
ColorPusher
,TreeCtrl
,ColumnList
. - Нативный диалог выбора файлов,
FileSelector
, переименован вFileSelNative
и добавлен в MacOS (в дополнение к Win32 и gtk3). - Рефракторинг
GLCtrl
в OpenGL/X11. - Добавлена функция
GetSVGPathBoundingBox
. - PGSQL теперь может экранировать
?
через??
или использовать методNoQuestionParams
в целях избежания использования?
как символа подстановки параметров.
>>> Подробности
Вышла новая версия языка программирования 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.
>>> Подробности
Релиз кроссплатформенного UI фреймворка MauiKit 1.1.0

Проект Maui – это свободное программное обеспечение с открытым исходным кодом, поддерживаемое сообществом KDE и разработанное Nitrux Latinoamericana.
MauiKit – набор элементов управления и инструментов, основанных на QQC2 и Kirigami, совместно используемых в наборе приложений Maui. MauiKit помогает быстро создавать пользовательские интерфейсы, которые соответствуют Maui HIG. Основан на Qt, QML, и C++. Содержит компоненты, готовые к использованию и работающие на Android, Linux, Windows, Mac OS и iOS.
Версия 1.1.0 содержит обновления, новые функции, исправления ошибок. Для этого первого полного релиза пакеты распространяются непосредственно с официальной веб-страницы MauiKit. Это первый официальный стабильный релиз.
( читать дальше... )
>>> Подробности
Deno 1.0

Состоялся мажорный релиз Deno – открытой, безопасной среды выполнения программ на языке TypeScript, обладающей следующими особенностями:
- Исключительно явный доступ к файловой системе, сети и окружению через установку соответствующих разрешений пользователем;
- Исполнение TypeScript без Node.JS и tsc;
- Обратная совместимость с Javascript: любое подмножество программ для Deno, не ссылающееся на глобальное пространство имён
Deno
и являющееся валидным Javascript кодом можно исполнять в браузере; - Поставка в виде единственного исполняемого файла, также содержащего в себе дополнительные инструменты, такие как
deno run --inspect-brk
: дебаг-сервер, взаимодействующий с Visual Studio Code и инструментами удалённой отладки в Google Chrome;deno install
: установщик программ для Deno из удалённых ресурсов. Производит загрузку вместе с зависимостями и добавляет в$HOME/.deno/bin
cкрипт для запуска программы;deno fmt
: производит форматирование кода;deno bundle
: бандлер программ на Deno. Производит js-файл, содержащий в себе программу для Deno и её зависимости;- WIP: генератор документации и инструмент аудита зависимостей;
- Отсутствие зависимости от
npm
иpackage.json
: внешние модули подгружаются и используются (загрузка по сети происходит только во время первого выполнения, в дальнейшем модуль кэшируется вплоть до вызова с флагом--reload
) после указания их URL прямо в программе:import * as log from "https://deno.land/std/log/mod.ts";
- Абсолютно все асинхронные операции возвращают
Promise
, в отличие от Node.JS; - Выполнение программы всегда останавливается при возникновении необработанных ошибок.
Deno – встраиваемая среда, и может быть использована для расширения существующих программ на Rust с помощью крейта deno_core.
Также команда Deno поставляет стандартные модули без внешних зависимостей, аналогичные по функциональности со стандартной библиотекой в языке Go.
Deno подходит для использования в качестве выполнения скриптов – поддерживается вызов через shebang.
Есть REPL.
Написано на языке программирования Rust.
>>> Подробности
Embeddable Common Lisp 20.4.24
После трех лет разработки, 24-го апреля, была выпущена новая версия ECL – интерпретатора Common Lisp. ECL, опубликованный под лицензией LGPL-2.1+, может быть использован как в качестве встраиваемого интерпретатора, так и для постройки автономных библиотек и исполняемых файлов (есть возможность трансляции в C).
Изменения:
- поддержка локальных никнеймов в пакетах;
- поддержка атомарных операций;
- специализированное представление сложных типов с плавающей запятой;
- порт на iOS;
- исправления для слабых хэш-таблиц и слабых указателей;
- исправления состояний гонок во внутренностях ECL;
- синхронизация и кастомные тесты для хэш-таблиц;
- улучшенная метастабильность и улучшенная поддержка метаобъектного протокола (MOP).
Также у проекта появился второй мейнтейнер.
>>> Подробности
Tcl/Tk. Альтернативный диалог выбора файлов для платформ Linux и Android
Сегодня скриптовый язык Tcl/Tk используется не только на компьютерах, но и с успехом портирован на платформу Android. Но именно на этой платформе стали особенно видны все недостатки диалога выбора файлов tcl/tk (tk_getSaveFile, tk_getOpenFile или tk_chooseDirectory).
Что не устраивает в этом диалоге? Отсутствие в нем элементарных операций с папками/файлами: создать, уничтожить, переименовать. Нет, не подумайте, в самом tcl все эти механизмы, естественно, реализованы, их просто нет в GUI диалога. В Linux это не так заметно, а вот на платформе Android этот диалог вызывает массу неудобств.
В итоге была создана балалайка (так еще называют пакеты/package для tcl) tkfe (tk file explorer).
При разработке пакета tkfe учитывались не только необходимость хотя бы элементарных операций с файлами/каталогами, но и желание иметь проводник как в отдельном окне, так и в отдельном фрейме, который пользователь может разместить как ему удобно в своем GUI.
В проекте имеется комплексный пример по использованию пакета. Естественно, этот диалог можно также использовать и на других платформах. Не составляет также труда перенести его на Python/TkInter.
>>> Подробности
Вышел PyTorch 1.5.0
PyTorch — популярный фреймворк для машинного обучения — обновился до версии 1.5.0. Этот релиз включает в себя несколько крупных дополнений и улучшений API, среди которых можно отметить:
-
C++ API, ранее считавшийся экспериментальным, окончательно стабилизирован. Теперь пользователи могут легко переводить свои модели с Python API на C++ API.
-
Стабилизирован пакет
torch.distributed.rpc
, предоставляющий широкие возможности в распределенном обучении, включая автоматическое вычисление градиентов и обновление параметров модели. -
Обновлен torch_xla — пакет, который использует компилятор XLA для ускорения обучения моделей на облачных TPU.
-
Также обновлены пакеты torchaudio, torchvision и torchtext, предоставляющие инструменты для разработки моделей, обрабатывающих звуковые, графические и текстовые данные.
-
Python 2 больше не поддерживается. Вся дальнейшая разработка будет вестись только для Python 3.
>>> Подробности
Вышла бесплатная версия 3D-движка UNIGINE: Community edition
Вместе с релизом UNIGINE SDK 2.11 стала доступна UNIGINE 2 Community, бесплатная версия этого кросс-платформенного 3D-движка.
Поддерживаемые платформы - Windows и Linux (начиная с Debian 8; включая отечественный дистрибутив Astra Linux, используемый в оборонной промышленности). Также поддерживается работа с разнообразным VR оборудованием. Под Linux на 100% работает как сам движок, так и идущий в комплекте визуальный редактор 3D сцен (UnigineEditor). В качестве графического API используется OpenGL 4.5+.
На базе UNIGINE Engine выпущена серия GPU бенчмарков (включая популярные Heaven и Superposition), а также разрабатываются профессиональные тренажеры и различные промышленные цифровые двойники. Вышло несколько игр, включая Oil Rush (2012), Cradle (2015), RF-X (2016), Sumoman (2017). В настоящее время готовится к выпуску амбициозная космическая MMORPG Dual Universe. Отличительными особенностями движка является поддержка очень больших виртуальных сцен, наличие большого количества функционала «из коробки», высокая производительность, одновременная поддержка и C++, и C# API. Ряд продвинутых возможностей есть только в коммерческих версиях Sim и Engineering.
Community-версия движка бесплатно доступна независимым разработчикам и проектам с выручкой/финансированием до $100k в год, а также некоммерческим и образовательным организациям.
Разработкой UNIGINE последние 15 лет занимается одноименная компания в Томске.
>>> Подробности
Вышел Crystal 0.34.0
Вышла новая версия Crystal, компилируемого языка программирования с синтаксисом Ruby, главные особенности которого — рантайм с «вмонтированным» event loop’ом, в котором все операции ввода-вывода асинхронны, поддержка многопоточности (пока включается флагом при компиляции) и исключительно простая и удобная работа с библиотеками на Си.
Начиная с версии 0.34.0, язык официально начинает твёрдой поступью двигаться в сторону первого настоящего релиза (т.е. версии 1.0).
В новой версии Crystal можно отметить следующие изменения и улучшения в порядке их важности:
-
В API добавлена новая библиотека журналирования Log, которая, в отличие от старой, умеет направлять сообщения в разные бекенды и по-разному эти сообщения фильтровать в зависимости от «источника».
-
Рудименты из мира разработки на Си, Errno и WinError, использовавшиеся для примитивов ввода-вывода, уходят в прошлое благодаря иерархии исключений IO::Error (впрочем, использовать Errno никто пока не запрещает).
-
Убрана автоматическая подстановка
else nil
из оператора case/when/else. Это сделано для того, чтобы исключить случайный пропуск разработчиком одной из веток when при матчинге по детерминированным случаям наподобие enum’ов и прохода по типам из Union’а. Т.е., проще говоря, вот такой код больше работать не будет без указания ещё одного when (when Char
) или задания else-ветки:
a = 1 || 'x' || "foo"
case a
when Int32
# ...
when String
# ...
end
-
Опция компилятора disable_overflow больше недоступна. Для операций с переполнением используйте методы
&+
,&-
,&*
. -
Array#fill теперь летает быстрее пули, благодаря замене туповатого цикла на один простой memset;
-
Менеджер шардов (пакетов), называющихся, как это ни парадоксально, shards, теперь использует более быстрый и эффективный алгоритм удовлетворения зависимостей Molinillo, подсмотренный в CocoaPods (Swift) и Builder (Ruby).
-
Добавлена поддержка LLVM 10, что по идее даст нам некий рост производительности, стабильности, etc.
… и множество других, на мой субъективный взгляд, менее существенных улучшений.
Хотелось бы отметить, что Crystal — это построенный на LLVM язык, позволяющий писать приложения порой быстрее, проще и лаконичнее, чем на его интерпретируемых «собратьях», и при этом получать на выходе довольно шустрый бинарник. На фоне Golang выделяется абсолютно полноценным ООП, поддержкой дженериков и очень простым и понятным синтаксисом. По своему назначению во многом аналогичен Nim, но при этом явным образом ориентирован на практическое применение «здесь и сейчас», благодаря чему имеет в своём API-арсенале множество нормально документированных удобных и качественных инструментов, поддерживаемых разработчиками языка и потому весьма стабильных.
Релиз 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
.
Помимо этого добавлено множество изменений в стандартную библиотеку и множество исправлений багов.
>>> Подробности
()
LLVM 10.0
LLVM – платформа для разработки компиляторов и тулчейнов под лицензией Apache 2.0 с исключениями.
Некоторые изменения в clang:
-
Теперь по умолчанию компиляция не запускается в новом процессе как раньше.
-
Поддерживаются концепты C++20.
-
Арифметика указателей в C и C++ разрешается только в пределах массивов, в соответствии со стандартами. Добавлены соответствующие проверки в Undefined Behavior Sanitizer.
-
Улучшена поддержка OpenCL и OpemMP 5.0.
-
Поведение в ряде случаев приближено к поведению GCC.
Некоторые общие изменения в LLVM:
-
Новые intrinsics для генерации оптимизированных векторных инструкций.
-
Значительно расширены возможности межпроцедурной оптимизации в экспериментальном фреймворке Attractor.
-
Множество улучшений в поддержке различных архитектур (AArch64, ARM, MIPS, PowerPC, SystemZ, X86, WebAssembly, RISC-V).
А также различные улучшения в libclang, clangd, clang-format, clang-tidy, Static Analyzer, LLDB.
>>> Подробности
()
GitHub выпустил стабильную версию мобильного приложения
GitHub сообщил о завершении стадии бета-тестирования своих мобильных приложений.
GitHub — крупнейший веб-сервис для хостинга IT-проектов и их совместной разработки.
Веб-сервис основан на системе контроля версий Git и разработан на Ruby on Rails и Erlang компанией GitHub, Inc (ранее Logical Awesome). Сервис бесплатен для проектов с открытым исходным кодом и (с 2019 года) небольших частных проектов, предоставляя им все возможности (включая SSL), а для крупных корпоративных проектов предлагаются различные платные тарифные планы.
C 4 июня 2018 года принадлежит корпорации Microsoft
В приложении предоставлены следующие возможности:
- Отслеживать состояние проекта
- Просматривать код
- Разбирать сообщения о проблемах (issue) и отвечать на них
- Рецензировать pull-запросы
- Производить слияние изменений
Приложения доступны для Android и для iOS.
>>>
Google Play
>>>
AppStore
>>> Подробности
Релиз Java SE 14
17 марта была выпущена Java SE 14.
Представлены следующие изменения:
- На постоянной основе добавлены выражения для
switch
в видеcase VALUE -> {}
, которые выходят из условия по умолчанию и не требуют оператораbreak
. - Текстовые блоки, ограничиваемые тройкой кавычек
"""
вышли на второй предварительный этап. Добавлены управляющие последовательности\
, которая перед переводом строки не добавляет перевод строки в многострочном блоке, и\s
, которая обозначает один пробел. - На предварительной основе представлено новое поведение
instanceof
, позволяющее в дальнейшем развить сравнение по шаблону. - На предварительной основе представлены записи с ключевым словом
record
. Записи автоматически получают методыequals
,hashCode
,toString
, геттеры к членам записи и конструктор. - Улучшено описание ошибок NullPointerException.
- Добавлен упаковщик
jpackage
для самодостаточных приложений. - Порты для Solaris и платформ на SPARC объявлены устаревшими и могут быть исключены в будущем.
>>> Подробности
← предыдущие | следующие → |