Майкл Абраш — программист и технический писатель, специализирующийся на оптимизации кода, программировании на ассемблере под архитектуру 80x86. Репутация специалиста закрепилась за ним после появления в 1990 году его книги Zen of Assembly Language Volume 1: Knowledge[1]. Эта тема была продолжена позднее в его новой книге Zen of Graphics Programming[2]. Он часто начинает свои технические выступления с анекдота, показывающего параллель между его реальным опытом и темой выступления. Стиль его изложения заставляет читателей думать иначе (outside the box) и искать совершенно новый подход в решении технических проблем.

Майкл Абраш
Дата рождения 1957
Страна
Род деятельности инженер, программист игр, специалист в области информатики

Программист игр

править

До того, как Абраш стал техническим писателем, он был программистом игр на заре появления 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.

Примечания

править
  1. Abrash, Michael[англ.]. Zen of Assembly Language: Knowledge (англ.). — Scott Foresman Trade, 1990. — ISBN 978-0-673-38602-1.
  2. 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.
  3. Hague, James The Giant List of Classic Game Programmers. Архивировано 2 октября 2012 года.
  4. Abrash, Michael Ramblings in Realtime. www.drdobbs.com (1 февраля 1996). Дата обращения: 10 июля 2010. Архивировано 2 октября 2012 года.
  5. Abrash, Michael A First Look at the Larrabee New Instructions (LRBni). www.drdobbs.com/architecture-and-design (1 апреля 2009). Дата обращения: 10 июля 2010. Архивировано 2 октября 2012 года.
  6. Walker, John RPS Exclusive: Gabe Newell Interview. Rock, Paper, Shotgun (21 ноября 2007). Дата обращения: 22 января 2010. Архивировано 2 октября 2012 года.
  7. Crossley, Rob Valve hires world-class development trio. Develop (13 мая 2011). Дата обращения: 16 мая 2011. Архивировано 2 октября 2012 года.
  8. Hague, James Five Memorable Books About Programming. prog21.dadgum.com (18 февраля 2008). Дата обращения: 10 июля 2010. Архивировано 2 октября 2012 года.
  9. 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.
  10. Abrash, Michael; Michael Abrash. Graphics Programming Black Book (англ.). — Coriolis Group Books, 1997. — ISBN 978-1-57610-174-2.
  11. Abrash, Michael Graphics Programming Black Book (англ.). www.drdobbs.com/high-performance-computing (1 ноября 2001). Дата обращения: 10 июля 2010. Архивировано 2 октября 2012 года.

Ссылки

править