AppleInsider.ru
X
О проекте Реклама
Чат
с читателями
Присоединяйтесь
в Телеграме

Еще одна отставка

Он пришел в NeXT в конце 80-х, он был одним из лучших в своей области, но даже не это было самым важным. Эксперты, склонные недооценивать и не доверять NeXT, меняли точку зрения узнав о том, что он работает на эту компанию.
Его имя и авторитет были одним из самых убедительных доводов в пользу Mac OS X, наследницы NeXTstep/OPENSTEP и классической Mac OS, в её ранние годы. Он был лучшим, но статья не столько о нём, и даже не о том, кто приходит ему на смену, сколько о раскрываемых этим событием тенденциях в развитии Apple.

Если вы представили себе гиганта духа, с седыми волосами и дерзким огоньком в выцветших от напряженной работы интеллекта глазах, вы почти не ошиблись. «Он» даже нечто большее: его создавали тысячи талантливых людей, не получая за это никакого вознаграждения (кроме морального), на протяжении многих лет.

«Он» — это огромная программа, с исходным кодом в миллионы строк. Программы, которые расширяют наши возможности, нередко очеловечивают. Неудивительно: их создают люди, и в них столько человеческого, они глючат, капризничают, ошибаются, сходят с ума. «Железо» (модный смартфон или вызывающий зависть окружающих ноутбук) — тело. Программы и операционные системы, установленные на них — душа.

«Он» — это GCC. С его помощью человеческие замыслы (мечты) превращаются в программы. Это коллекция компиляторов, отладчиков и оптимизаторов, и много чего еще, для огромного числа платформ. Среди его пользователей — Adobe, Google, Apple, разработчики Linux и многие другие. У него фантастическая репутация и он её честно заслужил.

С июля 2012 года GCC больше не будет в составе инструментария разработчиков для OS X (в Xcode 4.4), осенью GCC покинет и iOS (его не будет в Xcode 4.5). Что это — безумие?

GCC

До 1989 года, в компании NeXT Computer (основанной Стивом Джобсом в 1985 году, после ухода из Apple), в среде разработки операционной системы NeXTstep, опережавшей своё время, по мнению Джобса, лет на 5, а на самом деле лет на 15, использовался неудачный компилятор своей разработки.

Пресса с энтузиазмом смаковала подробности об идеально чёрном компьютере в форме куба, с чёрным-чёрным монитором, с лазерным диском вместо обычного и с дискетами необычной ёмкости. Операционная система этого компьютера (а не он сам) опережала своё время на полтора десятилетия, но именно её и не заметили.

Самый первый NeXT

Заметили другое: куб не продавался. Его цена вызывала оторопь, но даже те, кто был готов выложить эту сумму, в большинстве случаев просто не могли его купить: NeXT долго не удавалось наладить выпуск изделия в достаточных количествах, и никто не удосужился подумать о разумной системе продаж.

Желающих купить рабочую станцию NeXT было на порядок больше, чем тех, кому это удалось. Желающих не останавливали даже проблемы изделия, которых было немало. Компьютер был медлителен и задумчив.

Одной из причин этого, и самой трудноустранимой, был неудачный компилятор. Пишутся компиляторы долго и медленно, пишут их особенные люди, получающие от этого занятия фантастическое удовольствие, намного превосходящее все удовольствия, которые известны нам с вами. Если вам нужен компилятор, и нужен «позавчера», другого выхода нет: ищите его за пределами компании.

В 1989 году NeXT выбрала GCC, разглядев в этом бесплатном проекте с открытым исходным кодом особенный потенциал. Через несколько лет GCC был лучшим в своем классе, а также единственным и основным компилятором в NeXTstep.

NeXT slab, начало 90-х

В начале 90-х компьютеры и программное обеспечение NeXT использовали спецслужбы США и гигантские транснациональные корпорации: заказчики были готовы платить немалые деньги за уникальный и качественный продукт на условиях сохранения отношений в тайне. Тайна перестала быть тайной в начале «нулевых».

Если бы не GCC, сегодня не было бы ни OS X, ни iOS — история NeXT закончилась бы задолго до кризиса на Apple.

Чем плох GCC?

GCC был написан очень давно. Он поражал новизной в 80-е и 90-е, но с некоторых пор, став непомерно большим и запутанным, он практически перестал развиваться.

В 80-е и 90-е программируемые устройства были, в основном, однопроцессорными. Многопоточность применялась, но не везде и гораздо реже, чем в наши дни. Apple разрабатывала изменения для GCC, но организация, контролирующая проект, не разрешала их.

Год за годом, GCC превращался в препятствие для развития компании. Некоторые его проблемы можно было бы устранить, но не все. Если вам нужен компилятор, и нужен «позавчера», другого выхода нет: ищите его за пределами компании.

Преемник

Профессор Джеф Раскин утверждал, что:

Сравнивать сложные сущности на лучше/хуже так же неправильно, как сравнивать точки в двухмерной системе координат на больше/меньше.

LLVM, универсальная система анализа, трансформации и оптимизации программ, а кроме того, еще и коллекция компиляторов — редкое исключение из этого правила.

Логотип LLVM

LLVM начиналась как университетский эксперимент. Викрам Адве (Vikram Adve) и Крис Латнер (Chris Lattner) испытали на практике радикально новый подход к написанию компиляторов.

Через пять лет, в 2005 году, Apple пригласила Латнера и нескольких разработчиков LLVM в штат. С 2005 года этот проект с открытым исходным кодом финансируется Apple. В том же году, планы Apple относительно LLVM и Clang, фронт-енда для C-образных языков, были обнародованы. Мощь идей, заложенных в этих технологиях, была ощутима почти физически, создатели LLVM сообщали о своих разработках просто невероятные вещи, это было даже подозрительно.

Крис Латнер

Тем более, что многое в первых версиях LLVM или не работало вообще, или работало не так, как надо. До промышленного использования новинки было еще очень далеко. Компиляторы пишутся долго и медленно.

Apple считают сборищем сумасшедших, но в последнее время компания всё чаще поражает не отчаянной смелостью, а мудрой осторожностью. История адаптации LLVM к «яблочным» средам разработки в течение целых семи лет — один из примеров этого.

Университет штата Иллинойс в Урбана-Шампейн: здесь родился LLVM

В 2009 год компилятор на основе LLVM (экспериментальный) пришёл на Mac OS X. В 2010 году он появился в среде разработки для iOS. В последние два года применялся уже не «чистый GCC», а гибрид GCC/LLVM. Статус GCC постепенно снижался, а качество реализации LLVM доводилось до все большего и яркого блеска.

Основной компилятор для OS X и iOS образца 2011 года назывался Apple LLVM Compiler 3.0. В 2012 году на арену выходит его усовершенствованный вариант, Apple LLVM Compiler 4.0, и теперь ему абсолютно точно можно доверить судьбу «яблочных» платформ.

Это очень неплохой компилятор с C, C++, Objective-C и Objective-C++, список его вкусностей и достоинств был бы равен по размеру этой статье, но главное даже не в этом. LLVM — это неукротимый потенциал обновления.

Даже во время переходного периода, когда условности и ограничения сковывали LLVM, этот потенциал подарил Apple поразительные новшества. И не только Apple, «блоки», синтаксическая конструкция для C и C-образных языков разработанная в LLVM, имеет шанс войти в новый стандарт этих языков.

А ведь именно сейчас всё только начинается.

Новости партнеров
Strategy критикуют за последний раунд покупки Биткоина. Что компания делает не так?
Strategy критикуют за последний раунд покупки Биткоина. Что компания делает не так?
Специалисты по ИИ массово бегут из Apple к Цукербергу
Специалисты по ИИ массово бегут из Apple к Цукербергу
Почему варёные яйца плохо чистятся: главная причина и простые способы решения
Почему варёные яйца плохо чистятся: главная причина и простые способы решения