Релиз оболочки Fish 4.0. Полностью переписана на Rust. Все началось с шутки. Linux новости

Релиз оболочки Fish 4.0. Полностью переписана на Rust. Все началось с шутки

39
Лайков: +12
войдите, чтобы ставить лайки

Fish 4.0 теперь на Rust

Fish 4.0
Версия:4.0
Дата релиза:27 февраля 2025
Предыдущий релиз:3.7.1 от 19 марта 2024

Вышел новый релиз командной оболочки Fish 4.0. Весь основной исходный код fish 4.0 был переписан с языка программирования C++ на Rust. Отмечается, что для пользователей данное изменение должно пройти относительно незаметно, при этом значительно изменяются зависимости и способы сборки программы.

fish 4.0
fish 4.0
Оболочка fish (friendly interactive shell) — это многофункциональная командная оболочка для Linux, BSD, MacOS и Windows (wsl, cygwin). fish не совместима с POSIX, имеет встроенную подсветку синтаксиса, широкие возможности автодополнения команд, интерактивный поиск и так далее.

Переход на Rust

Примерно два года назад один из разработчиков fish создал предложение (задачу/Pull Request) по переписыванию fish на Rust, причем сделал это, скорее, в качестве шутки. Но сообщество восприняло инициативу очень серьезно, и она стала самой популярной и обсуждаемой среди всех остальных.

За два года fish был полностью переписан на Rust. Для компиляции теперь требуется Rust 1.70 (или новее) и компилятор C, который нужен для сборки некоторых компонентов и тестов. Компилятор C++ не требуется.

Рекомендуемой системой сборки остается CMake (3.15 или новее).

Библиотека ncurses больше не используется. Зависимость от библиотеки/базы данных terminfo сохраняется.

Примеры выполнения команд в fish 4.0
Примеры выполнения команд в fish 4.0

Причины перехода на Rust

Как написано в блоге разработчиков — «Rust — это круто. Это весело.» Разработчики отмечают, что Rust имеет отличный инструментарий, который очень быстро настроить, ошибки компилятора максимально информативны, включает удобные программные средства для работы с потоками и так далее.

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

fish functions
fish functions
39
  • Опубликовано: 06.03.2025

Комментарии

Minor748
Активный пользователь
Активный
06.03.2025
11:31
Постоянная ссылка на комментарийПостоянная ссылка на комментарий
0
войдите, чтобы ставить лайки
Плюс не читая. Видел и оставлял ссылку на иностранные источники, сам использую, только у меня пока версии 3.7.1
igorborisov
Активный пользователь
Активный
06.03.2025
12:21
Постоянная ссылка на комментарийПостоянная ссылка на комментарий
+1
войдите, чтобы ставить лайки
Надеюсь возобновят проект Oh My Fish. Но наверное это будет не так весело
x230
Активный пользователь
Активный
06.03.2025
13:15
Постоянная ссылка на комментарийПостоянная ссылка на комментарий
+4
войдите, чтобы ставить лайки
Был Bash, и останусь на Bash...
Minor748
Активный пользователь
Активный
06.03.2025
13:20
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийx230Родительский комментарий
+4
войдите, чтобы ставить лайки
Bash на bash?
igorborisov
Активный пользователь
Активный
06.03.2025
13:25
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийMinor748Родительский комментарий
+1
войдите, чтобы ставить лайки
У меня так: bash -> fish -> zsh
scorpii
Активный пользователь
Активный
06.03.2025
13:25
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийMinor748Родительский комментарий
0
войдите, чтобы ставить лайки
ash, не?
igorborisov
Активный пользователь
Активный
06.03.2025
13:39
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийscorpiiРодительский комментарий
0
войдите, чтобы ставить лайки
sh
Minor748
Активный пользователь
Активный
06.03.2025
13:57
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийscorpiiРодительский комментарий
0
войдите, чтобы ставить лайки
Такой нет, увы (

/bin/bash
/bin/csh
/bin/dash
/bin/esh
/bin/fish
/bin/ksh
/bin/mksh
/bin/sash
/bin/sh
/bin/tcsh
/bin/yash
/bin/zsh
/usr/bin/bash
/usr/bin/csh
/usr/bin/dash
/usr/bin/esh
/usr/bin/fish
/usr/bin/ksh
/usr/bin/mksh
/usr/bin/sash
/usr/bin/sh
/usr/bin/tcsh
/usr/bin/yash
/usr/bin/zsh
/usr/bin/systemd-home-fallback-shell
scorpii
Активный пользователь
Активный
06.03.2025
14:01
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийMinor748Родительский комментарий
0
войдите, чтобы ставить лайки
> Такой нет, увы (

Уверены?
https://ru.m.wikipedia.org/wiki/Almquist_shell
Minor748
Активный пользователь
Активный
06.03.2025
14:07
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийscorpiiРодительский комментарий
0
войдите, чтобы ставить лайки
Что-то Hyprland'овское?
https://github.com/MalpenZibo/ashell
scorpii
Активный пользователь
Активный
06.03.2025
14:10
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийMinor748Родительский комментарий
+2
войдите, чтобы ставить лайки
Вообще из другой оперы
Minor748
Активный пользователь
Активный
06.03.2025
14:12
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийscorpiiРодительский комментарий
0
войдите, чтобы ставить лайки
Само собой, но это первое, что привлекло внимание при поиске через eix
igorborisov
Активный пользователь
Активный
06.03.2025
14:11
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийMinor748Родительский комментарий
+1
войдите, чтобы ставить лайки
гений
Alexander707
Активный пользователь
Активный
06.03.2025
14:17
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийigorborisovРодительский комментарий
0
войдите, чтобы ставить лайки
гиганат мысли
Neo
Активный пользователь
Активный
06.03.2025
13:32
Постоянная ссылка на комментарийПостоянная ссылка на комментарий
+2
войдите, чтобы ставить лайки
Что-то заморочено совсем.. Глаза устанут от толпы бегающих строк ))
Да еще синее на фиолетовом бррр... вместо правильного на века - зеленое на чёрном-ласкающее взгляд !
igorborisov
Активный пользователь
Активный
06.03.2025
13:39
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийNeoРодительский комментарий
0
войдите, чтобы ставить лайки
Надеюсь это шутка
Neo
Активный пользователь
Активный
06.03.2025
13:51
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийigorborisovРодительский комментарий
0
войдите, чтобы ставить лайки
Новость-то ? Конечно! Это к первому апреля угар )))
Alexander707
Активный пользователь
Активный
06.03.2025
13:51
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийigorborisovРодительский комментарий
0
войдите, чтобы ставить лайки
Не шутка. Я с ним согласен. Да еще и шрифт пухлый. Для терминалов шрифт тонкий нужен - Hack (9pt) девятого размера то бишь.
Alexander707
Активный пользователь
Активный
06.03.2025
13:54
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийAlexander707Родительский комментарий
0
войдите, чтобы ставить лайки
А для текста, какой сам печатаю использую шрифт TT2020 стилизует шрифт под печатную машинку то бишь Typewriter по-английски.
Minor748
Активный пользователь
Активный
06.03.2025
14:01
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийAlexander707Родительский комментарий
+3
войдите, чтобы ставить лайки
Для терминала шрифт/фон/цвета/прочее нужны такие, чтоб приятно и удобно было с этим набором работать, чтоб не рябило от чёрно-зелёного сочетания и после не бегали "зайчики" не существующие.
evgnor86
Активный пользователь
Активный
09.03.2025
08:10
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийAlexander707Родительский комментарий
0
войдите, чтобы ставить лайки
это субъективно, я люблю моноширинник средней толщины 10-11 кеглем
Fargate
Активный пользователь
Активный
06.03.2025
14:13
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийNeoРодительский комментарий
+2
войдите, чтобы ставить лайки
Все настраивается, в т.ч. зеленое на черном
Neo
Активный пользователь
Активный
06.03.2025
14:35
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийFargateРодительский комментарий
+1
войдите, чтобы ставить лайки
Этот терминал напомнил браузер Links ))
https://postimg.cc/4KtLhLvr
EvPix
Активный пользователь
Активный
06.03.2025
17:11
Постоянная ссылка на комментарийПостоянная ссылка на комментарий
0
войдите, чтобы ставить лайки
Как по мне, теперь кодовую базу Fish будет сложнее дорабатывать тем, у кого глаза болят при взгляде на код на языке Rust.

Сам пишу на этом языке, так ещё головная боль. Но постепенно ухожу от этого монстра. Безопасный код можно писать не только на Rust.
xKDE
Активный пользователь
Активный
08.03.2025
16:29
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийEvPixРодительский комментарий
+1
войдите, чтобы ставить лайки
Как ни крути, rust - это зло в linux... Ещё и в ядро пытаются внедрить...
EvPix
Активный пользователь
Активный
08.03.2025
18:26
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийxKDEРодительский комментарий
0
войдите, чтобы ставить лайки
В целом согласен с вами.

Но какие-то преимущества у Rust всё же есть для разработки программ. Но лично я постепенно буду переходить с этого языка на более удобные и не вызывающие такой головной боли.
Mockingbird
Активный пользователь
Активный
08.03.2025
18:43
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийxKDEРодительский комментарий
0
войдите, чтобы ставить лайки
Судьба Rust-кода в ядре Linux находится в руках человека с биполяркой, он и раньше-то был не совсем адекватным (по моему субъективному мнению).

10 февраля Торвальдс против Rust-кода в ядре Linux.
https://www.cnews.ru/news/top/2025-02-10_problema_v_tebelinus_torvalds

19 февраля уже готов сам принимать Rust-код в состав ядра Linux в обход мейнтейнеров.
https://www.cnews.ru/news/top/2025-02-19_sozdatel_linux_pereobulsya.

Запасся попкорном и наблюдаю, как лебедь-раком-щуку разрабатывает ядро Linux.
xKDE
Активный пользователь
Активный
08.03.2025
18:59
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийMockingbirdРодительский комментарий
0
войдите, чтобы ставить лайки
Сдается мне, что это просто плавный переход с GPLv3 на MIT. А это проприетарЪ. Вот и пихают всюду, заодно и лицезию меняют под шумок зачастую...
Mynana919
06.03.2025
17:18
Постоянная ссылка на комментарийПостоянная ссылка на комментарий
0
войдите, чтобы ставить лайки
Хахаха, я пошутил....
Или нет...
enep
Активный пользователь
Активный
07.03.2025
17:06
Постоянная ссылка на комментарийПостоянная ссылка на комментарий
0
войдите, чтобы ставить лайки
А чем луче zsh, учитывая то fish POSIX несовместим
xKDE
Активный пользователь
Активный
07.03.2025
17:24
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийenepРодительский комментарий
0
войдите, чтобы ставить лайки
Вкусовщина, тут кому что нравится. Мне и bash вполне. Но а POSIX-совместим или нет - особо без разницы на самом деле! Всё равно вне "родного" шелла нет гарантии работы.
Minor748
Активный пользователь
Активный
07.03.2025
18:33
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийenepРодительский комментарий
0
войдите, чтобы ставить лайки
Всё работает по умолчанию (из коробки) и не требуется установка доп. ПО из сторонних реп, хотя для кого-то мб и не так.
https://pingvinus.ru/note/fish-shell-features-better-than-bash
scorpii
Активный пользователь
Активный
07.03.2025
20:01
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийenepРодительский комментарий
0
войдите, чтобы ставить лайки
Ни чем, кроме того, что fish не потребуется ничем дополнять (улучшать так сказать)
posix-совместимость - такая штука, что полного соответствия нет ни у bash, zsh. Но, - это же не мешает, fish - еще менее совместима всего-навсего
evgnor86
Активный пользователь
Активный
09.03.2025
08:08
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийenepРодительский комментарий
0
войдите, чтобы ставить лайки
а чем вам помогает наличие данной совместимости или мешает ее отсутствие? хотя бы 1-2 кейса можно? :)
evgnor86
Активный пользователь
Активный
09.03.2025
08:06
Постоянная ссылка на комментарийПостоянная ссылка на комментарий
+2
войдите, чтобы ставить лайки
Мне fish прям зашел! Вот несколько моментов:
- кастомизация, настраиваемая из web-браузера! круть!
- отличная работа с подсказками! можно просто табом посмотреть все ключи приложения с краткой справкой! огонь!
- отличная работа с историей командной строки

Пока использую запуская из .bashrc, но подумываю полностью заменить им bash
scorpii
Активный пользователь
Активный
09.03.2025
10:13
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийevgnor86Родительский комментарий
0
войдите, чтобы ставить лайки
> Пока использую запуская из .bashrc, но подумываю полностью заменить им bash

Вопрос, есть ли такая необходимость, а именно "полностью заменить им bash"? Что мешает просто не трогать bash и оставить его в качестве оболочки входа, а пользоваться fish? Тут ни .bashrc, ни .bash_profile не нужен. Достаточно терминал(ы) запускать с любимой оболочкой (все решается настройками терминала).
bash может сгодиться, если потребуется что-то делать вне gui, в консоли по Ctrl+Alt+F1(2,3...) или написания собственных скриптов, Вы же не планируете в них в качестве шебанга использовать #!/usr/bin/fish
evgnor86
Активный пользователь
Активный
09.03.2025
10:27
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийscorpiiРодительский комментарий
0
войдите, чтобы ставить лайки
В текстовой консоли я тоже предпочитаю теперь fish, отсюда и .bashrc. А что мешает сделать символьную ссылку с bash на fish и ничего переписывать не надо, надо будет проверить, но если честно пока лень. А так да пусть валяется баш, он места не жрет.
climber
Активный пользователь
Активный
10.03.2025
21:16
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийscorpiiРодительский комментарий
0
войдите, чтобы ставить лайки
У меня уже куча скриптов на bash написаны. Поэтому bash остается для них. А в эмуляторах терминал уже fish. И новые скрипты тоже пишу на fish.
evgnor86
Активный пользователь
Активный
11.03.2025
04:56
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийclimberРодительский комментарий
+1
войдите, чтобы ставить лайки
Не копал глубоко, а разве там нет совместимости?

Копнул... различия есть, ну и ладно пусть пока bash живет на заднем фоне)))

Написать комментарий

Ваше имя:
Текст комментария:
  • Уважать других.
  • Не ругаться.
  • Без оскорблений.
  • Без грубости.
  • Не переходить на личности.
  • Писать на русском языке.
  • Без политики.
  • Без флуда.
Правила