Абраш, Майкл
Майкл Абраш | |
---|---|
Майкл Абраш — программист и технический писатель, специализирующийся на оптимизации кода, программировании на ассемблере под архитектуру 80x86. Репутация специалиста закрепилась за ним после появления в 1990 году его книги Zen of Assembly Language Volume 1: Knowledge[1]. Эта тема была продолжена позднее в его новой книге Zen of Graphics Programming[2]. Он часто начинает свои технические выступления с анекдота, показывающего параллель между его реальным опытом и темой выступления. Стиль его изложения заставляет читателей думать иначе (outside the box) и искать совершенно новый подход в решении технических проблем.
Программист игр
До того, как Абраш стал техническим писателем, он был программистом игр на заре появления IBM PC. Его первой коммерческой игрой была Space Strike, выпущенная в 1982. Он был соавтором нескольких игр вместе с Дэном Илловски, который ранее написал «Snack Attack» для Apple II. Абраш и Илловски работали вместе над «Cosmic Crusader» (1982), «Big Top» (1983), и «Snack Attack II»[3].
После работы в Microsoft над графикой и ассемблерной частью в Windows NT 3.1 он вернулся в индустрию видеоигр и в середине 1990-х присоединился к id Software для работы над Quake. В те времена Майкл также принял участие в разработке Doom. Некоторые из технологий, применённых в Quake, описаны в книге Абраша «Ramblings in Realtime» опубликованной в журнале Dr. Dobb[4]. После того как Quake был выпущен, Абраш вернулся в Microsoft, где работал над распознаванием естественных языков, затем перешёл в команду Xbox до 2001 года.
В 2002 Абраш устроился на работу в RAD Game Tools, где был одним из создателей Pixomatic - программного обеспечения для рендеринга, которое эмулирует функциональность видеокарт уровня DirectX 7 и использовалось в игре Unreal Tournament 2004. В конце 2005 Pixomatic была приобретена Intel. Во время разработки Pixomatic Абраш и Майк Сертейн (Mike Sartain) спроектировали архитектуру Larrabee, которая теперь используется Intel в технологии GPGPU[5].
Гейб Ньюэлл, директор Valve, сказал, что «пытался нанять Майкла Абраша постоянно. Примерно раз в квартал мы ходили вместе пообедать, и я спрашивал: „Ты уже готов присоединиться к нам?“»[6]. В 2011 Абраш присоединился к Valve[7].
В 2014 году Абраш покинул Valve и присоединился к компании по разработке устройств виртуальной реальности Oculus VR (несколькими месяцами ранее состав компании также пополнил программист из id Software Джон Кармак, с которым Абраш работал над Quake).
Технический писатель
Майкл Абраш в 1980-х вёл одну из рубрик в журнале «Programmer’s Journal». В 1989 году эти статьи были собраны в книге «Power Graphics Programming».
Его вторая книга «Zen of Assembly Language» (1990), фокусировалась на написании эффективного ассемблерного кода для 16-битных процессоров Intel 8086, но после её опубликования был уже доступен новый процессор Intel 80486[8]. Планируемая вторая часть книги о программировании графики так и не была выпущена. Ключевая мысль «Zen of Assembly Language» была в том, что производительность всегда должна быть измерена, и книга включала в себя инструмент для этого, названный «Zen Timer», для проверки, сработает ли теоретическая оптимизация кода.
Большая часть содержимого «Zen of Assembly Language» была обновлена в «Zen of Code Optimization: The Ultimate Guide to Writing Software That Pushes PCs to the Limit» (1994), появился и новый материал[9]. Презентация поэтапного улучшения программы демонстрировала, как модернизация алгоритма может улучшить производительность до 100 раз. С другой стороны, переписывание на ассемблере может повысить производительность только до 10 раз.
В 1997 вышла книга Абраша «Graphics Programming Black Book»[10] [11]. Это было собрание статей из журнала Dr. Dobb’s и наработок, касающихся графической подсистемы Quake.
Примечания
- ↑ Abrash, Michael[англ.]. Zen of Assembly Language: Knowledge (англ.). — Scott Foresman Trade, 1990. — ISBN 978-0-673-38602-1.
- ↑ Abrash, Michael[англ.]. Zen of Graphics Programming: The Ultimate Guide to Writing Fast PC Graphics (англ.). — Coriolis Group; Bk&Disk edition, 1994. — ISBN 978-1-883577-08-7.
- ↑ Hague, James The Giant List of Classic Game Programmers . Архивировано 2 октября 2012 года.
- ↑ Abrash, Michael Ramblings in Realtime . www.drdobbs.com (1 февраля 1996). Дата обращения: 10 июля 2010. Архивировано 2 октября 2012 года.
- ↑ Abrash, Michael A First Look at the Larrabee New Instructions (LRBni) . www.drdobbs.com/architecture-and-design (1 апреля 2009). Дата обращения: 10 июля 2010. Архивировано 2 октября 2012 года.
- ↑ Walker, John RPS Exclusive: Gabe Newell Interview . Rock, Paper, Shotgun (21 ноября 2007). Дата обращения: 22 января 2010. Архивировано 2 октября 2012 года.
- ↑ Crossley, Rob Valve hires world-class development trio . Develop (13 мая 2011). Дата обращения: 16 мая 2011. Архивировано 2 октября 2012 года.
- ↑ Hague, James Five Memorable Books About Programming . prog21.dadgum.com (18 февраля 2008). Дата обращения: 10 июля 2010. Архивировано 2 октября 2012 года.
- ↑ Abrash, Michael[англ.]. Zen of Code Optimization: The Ultimate Guide to Writing Software That Pushes PCs to the Limit (англ.). — Coriolis Group Books, 1994. — ISBN 978-1-883577-89-6.
- ↑ Abrash, Michael; Michael Abrash. Graphics Programming Black Book (англ.). — Coriolis Group Books, 1997. — ISBN 978-1-57610-174-2.
- ↑ Abrash, Michael Graphics Programming Black Book (англ.). www.drdobbs.com/high-performance-computing (1 ноября 2001). Дата обращения: 10 июля 2010. Архивировано 2 октября 2012 года.
Ссылки
- Ramblings in Valve Time, блог Майкла Абраша.
- Ramblings in Realtime by Michael Abrash, детальное описание графического движка, использованного в Quake (PDF version).
- «Graphics Programming Black Book» by Michael Abrash, для скачивания альтернативный источник.
- Another source of his Graphics Programming Black Book, «Graphics Programming Black Book».
- Byte.com’s copy of «Graphics Programming» (Active February 2008), «Graphics Programming».
- Black Book Special Edition, «Black Book Special Edition».
- 40 minutes with Michael Abrash of Valve Software", аудио интервью с Майклом Абрашем на конференции QuakeCon 2012, обсуждение его работы в Valve.