Haiku: настоящее и будущее

И все-таки хотелось бы знать ответы на несколько вопросов: зачем в наше время нужна еще одна операционная система (локальный ответ приведу, с глобальным сложнее), и смогут ли разработчики этой системы преодолеть боязнь релизов?

Haiku: настоящее и будущее. Фото.

Операционной системой, официально застрявшей на отметке R1/Alpha 4.1, пользуется несколько десятков тысяч человек. Точное их число неизвестно. Может быть, их меньше.

У подавляющего большинства из них уже давно не та система, которая появилась на свет в ноябре 2012. Любовь творит чудеса и заставляет устанавливать на свой компьютер то, что называется nightly builds. Неофициальные релизы. С исправлениями, добавлениями, с чем-то новым.

Локальный ответ на вопрос “кому нужна эта Haiku?” – тем, кто пользуется этой системой, несмотря ни на что.

Глобально ответить на этот вопрос я не могу. С одной стороны – в системе точно есть что-то уникально притягательное. Разговоры про “генофонд операционных систем” мне, если честно, не совсем понятны.

А вот насчет боязни релизов…

Это девятая (последняя) часть серии про Haiku. Предыдущие части:

Релизофобия

В предыдущей части описана история выхода самого последнего, на настоящий момент, официального релиза Haiku. На ранней стадии разработки четвертой альфа-версии, в баг-треккере был зарегистрирован ticket с номером 8684. Но автор этого тикета не догадался указать в описании проблемы точную конфигурацию машины, на которой проявлялся баг.

Убедившись, что баг не воспроизводится, на него перестали обращать внимание. Иногда компьютер (сложное устройство, вообще-то) может, из-за чего-то случившегося с ним чуть раньше, прийти в “дурное настроение”.

И, скорее всего, баг “закрыли” с формулировкой “не воспроизводится”.

На всякий случай уточню: в этом тексте “баг”, “тикет” и “ticket” – синонимы.

Возможных конфигураций слишком много, чтобы тестировщики могли проверить код на всех из них. Можно ли с этим бороться? Да. Apple нашла очень удобное для себя решение: не умножать сущности сверх необходимого. Пользователи ворчали, но это приемлемо.

12-13 ноября, тот же самый баг был зарегистрирован под номерами 9139 и 9153. Вскоре выяснилось, что это тот же самый 8684. Проблема была решена.

Тем не менее, то что для всего программирующего мира обычная рабочая ситуация, для компании, чрезмерно и публично гордившейся отсутствием проблем в её продукции, это был удар ниже пояса.

Четвертая альфа должна была стать последней альфа-версией, в 2013 году планировался выпуск R1. На всякий случай, приступили к подготовке еще и R1/Beta 1.

В 2014 Адриан Дестюгю получил контракт на приведение R1/Beta 1 в релизное состояние, но, несмотря на самоотверженную работу с 9 утра до полуночи, обнулить число открытых багов ему не удалось.

Бета-версии выпускаются именно для обкатки их на максимально широком числе самых разных конфигураций, в разных условиях. Статус бета – предупреждение пользователю. А альфа – предупреждение в квадрате. Опаснее чем альфа только nightly builds.

Справятся ли они с релизофобией?

После Адриана Дестюгю, веткой R1/Beta 1 занималось еще несколько человек, сейчас (по данным на 14 августа 2018 года), в треккере R1/Beta 1 зарегистрировано 330 багов, из них 320 закрыто и 10 (только 10!) открыто. То есть… вот-вот? Поживем – увидим.

В ветке R1 общее число багов близко к десяти тысячам, и примерно полторы тысячи багов открыты. Коммерсанты давно закрыли бы глаза на все эти баги, и рискнули бы вывести продукт на рынок. В этом есть какой-то смысл – в версиях 1.0.1 и 1.0.2 какая-то часть из самых неприятных багов будет исправлена, то есть будет чем хвалиться…

Пара слов про архаику Haiku

Одна из задач, которую решают в настоящее время разработчики Haiku – избавление от устаревших частей системы, обеспечивающих её совместимость с BeOS R5. Эти части системы существуют в ней с 2001 года, и, естественно, многое в системе так или иначе зависит от них.

При написании нового кода, как прикладного (за пределами Haiku, Inc), так и системного, старые библиотеки использовались. Задача нетривиальная, но без её решения двигаться дальше нелегко.

Естественно, использовать приложения написанные для BeOS станет невозможно, но…

Swift в Haiku

В мае-августе 2017, стажер программы GSoC Джозеф ‘Калвин’ Хилл, взялся за проект переноса языка Swift в Haiku.

Менторами у Джозефа были Жером Дюваль и Джулиант Харнат.

Речь не шла о полном переносе Swift, за четыре месяца это нереально. Задачей Джозефа был перенос LLVM, компилятора Swift, REPL (это swift для командной строки), и других основ.

В июле в Haiku уже можно было компилировать несложные программы на Swift 3.1.

В последние дни лета Джозеф начал работать над поддержкой Swift 4.

Джозеф получил стипендию (он студент третьего курса Халлcкого университета в Восточном Йоркшире, Великобритания), после GSoC планировал продолжить перенос Swift в Haiku. Параллельно с учебой.

Работа над Swift продолжается, а у меня может скоро появиться повод связаться с Haiku. Этот язык я люблю.

Сегодня и завтра

В 2018 году в Haiku перенесен LibreOffice, и начались работы по переносу языка Rust.

И, сообщу вам по большому секрету, работа над R1/ Beta 1 тоже активизировалась. Уже не знаю в какой раз, и закончится ли она выходом новой версии…

Что будет завтра, и есть ли у Haiku надежда на лучшее место в мире будущего?

Поживем – увидим…

История AppleОперационные системы Apple