Питер Сейбел - Кодеры за работой. Размышления о ремесле программиста
- Название:Кодеры за работой. Размышления о ремесле программиста
- Автор:
- Жанр:
- Издательство:Символ-Плюс
- Год:2011
- Город:Санкт-Петербург
- ISBN:978-5-93286-188-2
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Питер Сейбел - Кодеры за работой. Размышления о ремесле программиста краткое содержание
Программисты - люди не очень публичные, многие работают поодиночке или в небольших группах. Причем самая важная и интересная часть их работы никому не видна, потому что происходит у них в голове. Питер Сейбел, писатель-программист, снимает покров таинственности с этой профессии. Он взял интервью у 15 величайших профессионалов: Кена Томпсона, создателя UNIX, Верни Козелла, участника первой реализации сети ARPANET, Дональда Кнута, Гая Стила, Саймона Пейтон-Джонса, Питера Норвига, Джошуа Блоха, Брэда Фицпатрика, создателя Живого Журнала, и других. Все они “подсели” на программирование еще в школе. Тогда, на заре зарождения отрасли, лишь в немногих учебных заведениях читались курсы по компьютерным наукам. Поэтому будущим гуру приходилось покорять профессиональные вершины самостоятельно, но всех их отличает творческое горение и полная самоотдача любимому делу.
Вы узнаете, что они думают о будущем программирования и как сами научились программировать, как, по их мнению, нужно проектировать ПО, как выбор языка программирования влияет на продуктивность и можно ли облегчить выявление труднонаходимых ошибок.
Кодеры за работой. Размышления о ремесле программиста - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
2
Хакер - ИТ-специалист высшей квалификации, в совершенстве изучивший работу компьютерных систем и ПО. Хакерами часто называют взломщиков программ, что в общем случае неверно. - Прим. науч. ред.
3
Язык программирования APL отличается очень короткой нотацией (большинство операций обозначаются одним-двумя символами), что делает программы крайне непонятными для чтения, но достаточно простыми для записи. - Прим. науч. ред.
4
Речь о компьютерах, аппаратно оптимизированных для выполнения приложений на Лиспе, в отличие от обычных компьютеров, оптимизированных для ассемблерного кода. Такие компьютеры широко применялись для исследования задачи искусственного интеллекта, поскольку компьютеры общего назначения с ними просто не справлялись. См. en.wikipedia.org/wiki/Lisp_machine. - Прим. науч. ред.
5
Речь идет о коммерческой реализации языка Common Lisp компании Lucid, получившей название Lucid Common Lisp. Позднее права перепродавались от одной компании к другой, пока не перешли к компании Lisp Works, которая и продает эту реализацию под маркой Lucid Common Lisp. - Прим. науч. ред.
6
Упреждающее исполнение команд (Speculative Execution), или исполнение команд по предположению, - это совокупность методов, позволяющая ЦП с конвейерной архитектурой обрабатывать команды без уверенности в том, что они реально будут исполняться в программе (например, в случае условного перехода). Если предположение оказывается верным, то исполнение команд продолжается и выигрывается время, а если нет (misspeculation), результаты упреждающего исполнения аннулируются. - Прим. науч.ред.
7
Теоретически, при наличии условия, должна выполняться только одна ветвь программы, но благодаря упреждающему исполнению команд выполнялись обе ветви, хотя результаты одной из них затем отбрасывались. - Прим. науч. ред.
8
GDB (GNU Project Debugger) - переносимый отладчик проекта GNU, который работает на многих UNIX-подобных системах и умеет выполнять отладку многих языков программирования, включая Си, C++ и Фортран. - Прим. науч. ред.
9
vi (сокр. от visual) - серия текстовых редакторов операционных систем семейства UNIX, которые применялись совместно с компиляторами GCC для разработки ПО. - Прим. науч. ред.
10
В зависимости от реализации некоторые компиляторы могут преобразовывать исходный текст на языке ЛИСП сразу же в машинный код (native code), а некоторые вначале компилируют исходный код в промежуточный (байт-код), который уже затем интерпретируется в машинный код конкретной машины. Для Emacs были реализованы компилятор и интерпретатор. - Прим. науч. ред.
11
wget - программа для загрузки файлов по сети.
12
XScreenSaver - коллекция из более чем двухсот различных заставок (screen saver) для UNIX и Mac OS. Создана Джейми Завински в 1992 году и до сих пор им поддерживается. - Прим. науч.ред.
13
Сейчас все уже пользуются отладчиками, позволяющими проходить по исходному тексту программ, но так было не всегда. В то время, о котором идет речь, не все среды разработки имели подобные отладчики. - Прим. науч. ред.
14
Имеется в виду раскол 1991 года, когда ряд разработчиков GNU Emacs отделились для развития собственной ветки под названием XEmacs. - Прим. науч. ред.
15
Абельсон X. “Структура и интерпретация компьютерных программ”. - М.: Добросвет, 2006.
16
Гамма Э. и др. “Приемы объектно-ориентированного проектирования. Паттерны проектирования”. - СПб.: Питер, 2007.
17
Дональд Э. Кнут “Искусство программирования”. - Вильямс, 2008.
18
BBS (Bulletin Board System) - электронная доска объявлений. Когда кабельные компьютерные сети были редкостью, пользователи компьютеров широко применяли этот способ общения посредством коммутируемых телефонных сетей. - Прим. науч.ред.
19
AOL - America Online, американская медиакомпания, поставщик онлайновых сервисов. - Прим. науч. ред.
20
GFS (Google File System) - распределенная файловая система компании Google, кластерная система, оптимизированная для работы с большими блоками данных по 64 Мбайт и обладающая повышенной защитой от сбоев. - Прим. науч. ред.
21
Имеется в виду новая версия языка C++, которую в настоящее время принято называть C++ Од:. Ключевое слово auto позволяет не указывать явно тип, вместо этого компилятор определит его автоматически (строгая типизация сохраняется). Что касается циклов, то здесь речь идет о так называемом range-based for, который в значительной степени упрощает итерирование коллекций. - Прим. науч.ред.
22
JNI (Java Native Interface) - инфраструктура, позволяющая взаимодействовать коду внутри JVM с “неуправляемым” (native) кодом, таким как API операционной системы или любой код на Си или C++. - Прим. науч. ред.
23
SWIG (Simplified Wrapper and Interface Generator) - инструмент с открытым исходным кодом, предназначенный для взаимодействия языков программирования C/C++ с языками сценариев, такими как Tel, Perl, Python, Ruby и др. - Прим. науч.ред.
24
Google Арр Engine - сервис хостинга сайтов и веб-приложений на серверах Google с помощью различных служб Google. См. http://ru.wikipedia.org/wiki/Google_App_Engine. - Прим. науч. ред.
25
epoll - новый системный вызов, который появился в Linux 2.6. Призван заменить устаревший select (а также poll). В отличие от старых системных вызовов, длительность работы которых зависела от количества прослушиваемых дескрипторов, epoll использует алгоритм, который не зависит от количества дескрипторов, позволяя добиться хорошего масштабирования при увеличении количества прослушиваемых дескрипторов. - Прим. науч. ред.
26
reddit.com- социальный новостной сайт, на котором зарегистрированные пользователи могут размещать ссылки на какую-либо информацию в Интернете. Как и другие подобные сайты, reddit поддерживает систему голосования за понравившиеся сообщения - наиболее популярные из них оказываются на главной странице сайта. - Прим. науч. ред.
27
iptables - утилита командной строки, стандартный интерфейс управления работой брандмауэра netfilter для ядер Linux версий 2.4 и 2.6. - Прим. науч. ред.
28
Code golf - состязания в программировании: побеждает программа с минимальным количеством знаков, решающая данную задачу. Понятие пошло именно из языка Perl (Perl Golf Context), но потом распространилось и на другие языки программирования. - Прим. науч.ред.
29
XS - интерфейс, определяющий формат файлов для взаимодействия кода на Си/С++ и кода на Perl. - Прим. науч.ред.
Читать дальшеИнтервал:
Закладка: