Мигель де Икаса, 2014 г. Фото: he San Diego Union-Tribune
Как известно, гении предпочитают общаться и работать с равными себе, они притягивают друг друга. И если вы хотите что-то узнать о человеке — посмотрите, кто его друзья. Например, взять выдающегося Фабриса Беллара, о котором мы публиковали несколько статей. Его не очень волнует мирская суета (карьера, деньги, известность и прочие атрибуты «успеха» у обывателей), а только интересная работа. В интернете всего две фотографии Фабриса, и одна из них — с компьютерной конференции, где он сфотографировался с Мигелем де Икаса, основателем проектов GNOME и Mono.
Сразу понятно, кто достоин уважения с точки зрения Беллара.
Мигель де Икаса — один из самых уважаемых разработчиков сообщества Open Source. Хотя кое-кто критикует его за сотрудничество с Microsoft и «предательство» идеалов свободного ПО, но заслуги человека говорят сами за себя.
▍ Проекты
- Участие в проекте Wine (1993). В истории Wine Мигель де Икаса упоминается как один из первых контрибуторов.
- Текстовый файл-менеджер Midnight Commander (1994). Одна из первых программ, которую написал Мигель (в 21 год).
Классический старый интерфейс Midnight Commander - Первые оригинальные драйверы RAID-1 и RAID-5 для ядра Linux (1996−1997), совместно с Инго Мольнаром.
- Порт Linux на платформу SPARC (1997), а впоследствии на MIPS и SGI (2000).
- Электронные таблицы Gnumeric (1998).
- GNOME (3.3.1999, совместно с Федерико Меной) — десктопное окружение, которое стало дефолтной системой во многих популярных дистрибутивах Linux. В отличие от KDE на проприетарном фреймворке Qt, новое окружение было полностью свободным и сделано на базе самого продвинутого на тот момент свободного фреймворка на C от создателей GIMP.
GNOME (1999) - Ximian (19.10.1999), прежние названия Helix Code и International Gnome Support. Мигель де Икаса совместно с Натом Фридманом основал компанию, которая занималась разработкой, продажей и поддержкой прикладного ПО для Linux на платформе GNOME. Корпорация Novell выкупила компанию в 2003 году и продолжила поддержку её оригинальных продуктов.
Интересно, что с Фридманом они познакомились в компании Microsoft, куда юный Мигель пришёл на собеседование по поводу устройства на работу в 1997 году, незадолго до того, как он запустил проект GNOME. Нат работал там в качестве стажёра. Вскоре они стали лучшими друзьями.
Этторе Пераццоли, Раф Левьен, Нат Фридман (за рулём) и Мигель де Икаса (на переднем сиденье) в конце 90-х. Фото из личного архиваИменно у Фридмана родилась идея основать компанию для монетизации GNOME и выпуска «отполированных» версий свободных программ GNOME, OpenOffice.org и Gaim. Среди собственных разработок — персональный информационный менеджер Ximian Evolution, Ximian Connector, пакетный менеджер Red Carpet, Bonobo (устаревший аналог Microsoft OLE) и Mono.
Календарь в менеджере GNOME EvolutionСейчас Ximian Evolution носит название GNOME Evolution. Это самый крупный проект в истории опенсорса, написанный с нуля с открытыми исходниками (браузер Mozilla и офисный пакет OpenOffice изначально создавались как проприетарные продукты).
Почтовый клиент в менеджере GNOME Evolution - Свободный фреймворк Mono (19.07.2001). После выхода фреймворка .NET в декабре 2000-го Мигель де Икаса начал изучать его возможное использование на Linux. Работу сильно затрудняло отсутствие документации на формат файла метаданных (хотя .NET заявлялся как якобы открытый стандарт ECMA). Коллеги-хакеры помогли с реверс-инжинирингом, а сам Мигель начал писать компилятор C#, ридер метаданных и прочие инструменты. Пока Microsoft созрела до выпуска документации, альтернативный компилятор C# был уже готов.
Результатом всей этой работы стал выпуск опенсорсного фреймворка Mono, совместимого с .NET, тогда ещё в компании Ximian. После трёх лет разработки первая версия Mono 1.0 вышла в июне 2004 года. Первоначальный фокус только на Linux решено было расширить на разнообразные архитектуры и ОС, включая встроенные системы.
Поскольку компания Ximian была куплена Novell, а сама Novell в 2011 году продалась Attachmate с последующими массовыми увольнениями, проект Mono оказался под угрозой. Тогда Мигель принял решение основать новую компанию Xamarin.
Мигель де Икаса, 2006 г, фото: Jesús Corrius - Xamarin (16.05.2011) — новая компания, которую Мигель с Натом основали для продолжения разработки Mono, Xamarin.Mac, Xamarin.Android (бывш. Mono for Android) и Xamarin.iOS (бывш. MonoTouch), которые представляли собой кросс-платформенные реализации Common Language Infrastructure (CLI) и Common Language Specifications (известны также как Microsoft .NET). В 2014 году вышла программа Xamarin.Forms для генерации нативных элементов управления под все платформы.
Из других продуктов — облачный сервис Xamarin Test Cloud для тестирования мобильных приложений на реальных смартфонах в облаке (дата-центре).
Инструментарий Xamarin позволяет на общей кодовой базе C# писать нативные приложения под Android, iOS и Windows, с нативными интерфейсами. В качестве среды разработки распространялась кроссплатформенная IDE Xamarin Studio (MonoDevelop).
MonoDevelopВ 2016 году компанию Xamarin купила корпорация Microsoft предположительно за $400−500 млн. В 2022 году Xamarin.Forms перевыпустили как .NET MAUI. Ещё раньше фирменные дополнения Xamarin for Visual Studio были нативно интегрированы в Visual Studio. Постепенно шло переваривание и других продуктов. Например, сканер .NET Mobility Scanner стал частью инструмента Shared Projects в Visual Studio.
Что касается проекта Mono, он относительно успешно живёт и развивается до сих пор. Кроме базовых компонентов, он содержит стек разработки Mono/Linux/GNOME и стек совместимости с Microsoft. Первый включает Gtk# для разработки GUI (с нативной интеграцией в GNOME), библиотеки Mozilla для работы с движком рендеринга Gecko, библиотеки интеграции с Unix (Mono.Posix), библиотеки для подключения к СУБД, стек безопасности и язык XML-схем RelaxNG.
- SwiftTerm (2020) — эмулятор терминала VT100/Xterm в виде библиотеки Swift, его можно встраивать в приложения macOS и iOS. Используется в нескольких коммерческих SSH-клиентах, включая Secure Shellfish, La Terminal и CodeEdit.
- SwiftTermApp (2022) — SSH-клиент для iOS на родной библиотеке SwiftTerm.
SwiftTermApp
В последнее время Мигель в основном программирует для удовольствия на Swift.
▍ Биография
Мигель де Икаса родился 23 ноября 1972 г. в Мехико в семье учёных: отец был физиком, а мама — биологом. В стране третьего мира трудно получить высококлассное образование. Мигель отучился несколько лет на факультете математики в Национальном автономном университете Мексики, но бросил его ради реальной работы в IT. В итоге он учился программированию самостоятельно, а его главным «университетом» стали опенсорсные проекты. Здесь же Мигель и применял полученные знания. В интервью Linux World он говорит, что если бы не опенсорс, то никогда не получил доступ к технологиям (и коду) такого высокого уровня.
Как мы уже упоминали, в 2017 году де Икаса познакомился с Натом Фридманом, с которым они быстро нашли общие интересы в сфере Linux-разработки. В 1999 году Фридман помог другу получить визу США и переехать в Америку. В процессе возникли определённые сложности. У Мигеля не было высшего образования, поэтому он не соответствовал критериям стандартной рабочей визы H1B, хотя являлся сооснователем американской компании Ximian. Юристы предложили трюк: открыть филиал Ximian в Мексике, трудоустроить туда сооснователя, а потом перевести его в головную компанию по программе корпоративного трансфера (виза L1), но это довольно длительный процесс, так что в итоге Мигеля привезли по визе для талантов O-1.
Мигель де Икаса даёт интервью о проекте Mono, 30.12.2014
▍ Linux на десктопах
Если посмотреть историю всех проектов Мигеля де Икаса, то прослеживается одна общая цель — Linux на десктопах. Он посвятил этому практически всю карьеру, выпустил кучу программ и инструментов, а потом в разных интервью и статьях рассуждал, что же пошло не так и в чём Linux проиграл OSX:
«Много лет назад Линус как низкоуровневый специалист по ядру задал тон нашему сообществу, когда отказался от бинарной совместимости для драйверов устройств. Возможно, у специалистов по ядру были какие-то веские причины, и они смогли заставить индустрию играть по их правилам, но у людей из мира десктопа не было такой власти…
Сообщество нацелилось на инженерное совершенство: никакого устаревшего кода в исходниках, никаких сломанных конструкций, только чистый и красивый код, и долой любые следы плохих или плохо реализованных идей.
И мы это сделали.
Мы отказались от API, потому что есть способ лучше. Мы удаляли функции, потому что «этот подход неправильный», причём степень неправильности варьировалась от «это дыра в безопасности» до «это не соответствует нашему новому стилю».
Мы заменили основные подсистемы в ОС на плохие пути перехода. Ввели уровни совместимости, которые на самом деле не совместимы и не поддерживались. Когда мы сталкивались с проблемой «это не работает», ответом сообщества обычно было «вы делаете это неправильно»…
Второй аспект проблемы в том, что дистрибутивы Linux не договорились, какие основные компоненты использовать. Либо не договорились, либо график переходов не совпадал, либо существовали конкурирующие реализации одной и той же функциональности…
Это убило экосистему для сторонних разработчиков, пытавшихся портировать Linux на настольные компьютеры. Вы делаете всё возможное для поддержки «лучшего» дистрибутива или «трёх лучших», если чувствуете себя в ударе. Но всего через полгода ваш софт уже не работает.
Поддержка Linux на настольных компьютерах стала непосильной ношей для независимых разработчиков», — Мигель де Икаса, 2012.
В общем, Linux на настольных компьютерах так и не взлетел, оставшись уделом энтузиастов, продвинутых пользователей и разработчиков. Но борьба продолжается. Как говорится, важна не цель, а путь к ней…
- Джастин Танни
- Джей Фриман (saurik)
- Михал Залевски
- Джон Кармак: 1, 2
- Марк Руссинович
- Юрки Алакуйяла
- Андрей Карпаты
- Даниэль Стенберг, автор curl
- Колин Персиваль, автор tarsnap
- Джефф Дин
- antirez, автор СУБД Redis
- Оскар Толедо: потомственный волшебник
- Ральф Меркл: криптограф, крионик и теоретик молекулярной инженерии
- Чем сейчас занимается Фабрис Беллар
Автор: Анатолий Ализар