Абраш, Майкл

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Майкл Абраш — программист и технический писатель, специализирующийся на оптимизации кода, программировании на ассемблере под архитектуру 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, где был одним из создателей программного обеспечения для рендеринга, которое эмулирует функциональность видеокарт уровня DirectX 7 и использовалось в игре Unreal Tournament 2004. В конце 2005 Pixomatic была приобретена Intel. Во время разработки Pixomatic Абраш и Майк Сертейн (Mike Sartain) спроектировали архитектуру Larrabee, которая теперь используется Intel в технологии GPGPU[5].

Гейб Ньюэлл, директор Valve, сказал, что «пытался нанять Майкла Абраша постоянно. Примерно раз в квартал мы ходили вместе пообедать и я спрашивал „ты уже готов присоединиться к нам?“»[6]. В 2011 Абраш присоединился к Valve[7].

В 2014 году Абраш покинул Valve и присоединился к компании по разработке устройств виртуальной реальности OculusVR (несколькими месяцами ранее состав компании также пополнил программист из 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 0-673-38602-3.
  2. Abrash Michael Zen of Graphics Programming: The Ultimate Guide to Writing Fast PC Graphics. — Coriolis Group; Bk&Disk edition. — ISBN 1-883577-08-X.
  3. Hague, James The Giant List of Classic Game Programmers. Архивировано из первоисточника 3 октября 2012.
  4. Abrash, Michael Ramblings in Realtime. www.drdobbs.com (1 февраля 1996). Проверено 10 июля 2010. Архивировано из первоисточника 3 октября 2012.
  5. Abrash, Michael A First Look at the Larrabee New Instructions (LRBni). www.drdobbs.com/architecture-and-design (1 апреля 2009). Проверено 10 июля 2010. Архивировано из первоисточника 3 октября 2012.
  6. Walker, John RPS Exclusive: Gabe Newell Interview. Rock, Paper, Shotgun (21 ноября 2007). Проверено 22 января 2010. Архивировано из первоисточника 3 октября 2012.
  7. Crossley, Rob Valve hires world-class development trio. Develop (13 мая 2011). Проверено 16 мая 2011. Архивировано из первоисточника 3 октября 2012.
  8. Hague, James Five Memorable Books About Programming. prog21.dadgum.com (18 февраля 2008). Проверено 10 июля 2010. Архивировано из первоисточника 3 октября 2012.
  9. Abrash Michael Zen of Code Optimization: The Ultimate Guide to Writing Software That Pushes PCs to the Limit. — Coriolis Group Books. — ISBN 1-883577-03-9.
  10. Abrash MichaelMichael Abrash Graphics Programming Black Book. — Coriolis Group Books, 1997. — ISBN 1-57610-174-6.
  11. Abrash, Michael Graphics Programming Black Book. www.drdobbs.com/high-performance-computing (1 ноября 2001). Проверено 10 июля 2010. Архивировано из первоисточника 3 октября 2012.

Ссылки[править | править вики-текст]