Главные релизы недели: альтернатива VS Code, форк Vim лишился поддержки Windows 7 и новый Rust
Долгожданный «строгий» режим таблиц в SQLite, гибрид IDE и редактора кода от JetBrains, а также релиз очередной релиз амбициозного языка программирования Julia. Об этом и других новинках недели — читайте далее.
SQLite 3.37
Команда разработчиков легковесной СУБД SQLite опубликовала новую версию продукта. Среди главных новшеств — «строгий» режим таблиц, в котором движок следит, чтобы данные таблицы в столбце соответствовали типу.
Среди других изменений:
- Добавлена поддержка создания таблиц с признаком STRICT. При выставлении такого флага программа выдает ошибку при невозможности привести указанные данные к типу столбца.
- Реализовано выражение
PRAGMA table_list
— для вывода информации о таблицах и представлениях. - В операции
ALTER TABLE ADD COLUMN
добавлена проверка условий существования строк при добавлении столбцов с проверками на базе выражения CHECK или условия NOT NULL. - Добавлена команда
.connection
, которая позволяет CLI держать открытыми несколько соединений с базой данной одновременно. - Добавлен интерфейс
sqlite3_autovacuum_pages()
. - Для хранения схемы базы данных используется меньше памяти.
- В CLI проведена оптимизация производительности чтения SQL-выражений, разбиваемых на несколько строк.
Больше информации о новой версии по ссылке.
Julia 1.7
После четырех бета-версий и трех релиз-кандидатов вышла новая версия высокоуровневого языка программирования с динамической типизацией для математических вычислений Julia. Язык может похвастаться высокой производительностью, поддержкой динамической типизации и встроенными средствами параллельного программирования.
Особенности языка:
- открытый исходный код и свободная лицензия;
- скорость С;
- динамизм Ruby;
- макросы Lisp, но с очевидными, знакомыми математическими обозначениями, как в Matlab;
- удобство Python;
- статистические возможности R;
- обработка строк как в Perl;
- интерактивность и компилируемость;
- простота изучения, но чтобы даже самым опытным разработчикам было интересно.
Что нового в Julia 1.7:
- новый синтаксис для создания многомерных массивов;
- новые возможности потоковой передачи;
- повышена производительность обработки реестров в Windows и распределенных файловых системах;
- неявное перемножение теперь разрешено для символов радикалов;
- логические операторы
&&
и||
теперь могут быть использованы к элементам массива в форме.&&
и.||
; - для контроля за макросами
@inbounds
со значением по умолчанию auto добавлена опция–check-bounds=yes|no|auto
.
С полным списком изменений можно ознакомиться в файле NEWS.
Кстати, по мнению некоторых экспертов, в силу своих характеристик Julia уже наступает на пятки лидеру рейтингов Python.
Rust 1.57
Команда языка программирования Rust сообщила о выходе новой версии. Если у вас установлена предыдущая версия через rustup, обновиться можно с помощью следующего кода:
$ rustup update stable
Если у вас еще нет Rust, получить rustup
можно на официальной странице продукта.
Что нового:
- Стабилизировано использование макроса
panic!
в контекстах, создаваемых при компиляции, таких как объявленияconst fn
. - В const-объявлениях разрешено использование макроса assert.
- Поддержка Cargo для пользовательских профилей с произвольными именами, не ограниченными
dev
,release
,test
,bench
. - Стабилизировано использование
try-reserve
дляVec
,String
,HashMap
,HashSet
иVecDeque
. Это позволяет API заранее резервировать место для определенного числа элементов заданного типа. - Стабилизированы следующие методы и реализации типажей:
-
- [T; N]::as_mut_slice
- [T; N]::as_slice
- collections::TryReserveError
- HashMap::try_reserve
- HashSet::try_reserve
- String::try_reserve
- String::try_reserve_exact
- Vec::try_reserve
- Vec::try_reserve_exact
- VecDeque::try_reserve
- VecDeque::try_reserve_exact
- Iterator::map_while
- iter::MapWhile
- proc_macro::is_available
- Command::get_program
- Command::get_args
- Command::get_envs
- Command::get_current_dir
- CommandArgs
- CommandEnvs
- Обновлена поддержка Unicode до версии 14.0.
- Добавлен экспериментальный бэкенд для генерации кода с использованием
libgccjit
. - Для вывода предупреждения в случае игнорирования возвращаемого значения расширено число функций, помещенных
#[must_use]
.
Больше информации о релизе репозитории на GitHub.
Fleet: гибрид IDE и редактора кода
Компания JetBrains представила интегрированную среду разработки (IDE) Fleet — легковесный редактор с подсветкой синтаксиса, базовым автодополнением и другими традиционными для IDE функциями.
Особенности:
- редактор можно трансформировать в полноценную IDE, где будет поддерживаться «умное» автодополнение, навигация к определениям и использованиям, отладка и рефакторинг;
- распределенная архитектура;
- можно запустить на личном ПК или в «облаке», а также на виртуальном машине, в Space или Docker;
- поддержка совместного редактирования кода, в том числе наличие общего терминала, возможность заниматься отладкой, исследованием кода и код-ревью;
- поддержка множества языков программирования (пока их восемь, но список расширяется).
Функционал и инструментарий Fleet:
- терминал;
- Git;
- запуск и отладка;
- навигация;
- кроссплатформенность — macOS, Windows и Linux;
- темы интерфейса — светлая/темная;
- плагины (скоро);
- переадресация портов.
Больше информации о новом продукте по ссылке.
Neovim 0.6.0
Вышла новая версия редактора Neovim — это ответвление от Vim, который был создан для устранения части проблем оригинального редактора. В частности переработка началась из-за раздутой монолитной базы кода, которая состояла более чем из 300 тысяч строк кода на C. В целях команды — упростить сопровождение кода и реализовать новую расширяемую архитектуру на основе плагинов. Их уже около 130.
Что нового:
- прекращена поддержка Windows 7 и 32-разрядных сборок для Windows;
- добавлена поддержка виртуальных строк;
- улучшена поддержка языка Lua для разработки плагинов и управления конфигурацией;
- добавлена поддержка локальных переменных;
- для подсвечивания имен групп задействована хэш-таблица;
- добавлена возможность вызова Lua-функций.
Обо всех изменениях можно почитать в репозитории продукта.
Сообщить об опечатке
Текст, который будет отправлен нашим редакторам: