Питер Сейбел - Кодеры за работой. Размышления о ремесле программиста

Тут можно читать онлайн Питер Сейбел - Кодеры за работой. Размышления о ремесле программиста - бесплатно ознакомительный отрывок. Жанр: Биографии и Мемуары, издательство Символ-Плюс, год 2011. Здесь Вы можете читать ознакомительный отрывок из книги онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Кодеры за работой. Размышления о ремесле программиста
  • Автор:
  • Жанр:
  • Издательство:
    Символ-Плюс
  • Год:
    2011
  • Город:
    Санкт-Петербург
  • ISBN:
    978-5-93286-188-2
  • Рейтинг:
    3.4/5. Голосов: 101
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 60
    • 1
    • 2
    • 3
    • 4
    • 5

Питер Сейбел - Кодеры за работой. Размышления о ремесле программиста краткое содержание

Кодеры за работой. Размышления о ремесле программиста - описание и краткое содержание, автор Питер Сейбел, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Программисты - люди не очень публичные, многие работают поодиночке или в небольших группах. Причем самая важная и интересная часть их работы никому не видна, потому что происходит у них в голове. Питер Сейбел, писатель-программист, снимает покров таинственности с этой профессии. Он взял интервью у 15 величайших профессионалов: Кена Томпсона, создателя UNIX, Верни Козелла, участника первой реализации сети ARPANET, Дональда Кнута, Гая Стила, Саймона Пейтон-Джонса, Питера Норвига, Джошуа Блоха, Брэда Фицпатрика, создателя Живого Журнала, и других. Все они “подсели” на программирование еще в школе. Тогда, на заре зарождения отрасли, лишь в немногих учебных заведениях читались курсы по компьютерным наукам. Поэтому будущим гуру приходилось покорять профессиональные вершины самостоятельно, но всех их отличает творческое горение и полная самоотдача любимому делу.

Вы узнаете, что они думают о будущем программирования и как сами научились программировать, как, по их мнению, нужно проектировать ПО, как выбор языка программирования влияет на продуктивность и можно ли облегчить выявление труднонаходимых ошибок.

Кодеры за работой. Размышления о ремесле программиста - читать онлайн бесплатно ознакомительный отрывок

Кодеры за работой. Размышления о ремесле программиста - читать книгу онлайн бесплатно (ознакомительный отрывок), автор Питер Сейбел
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Сейбел:Выиграла ли UNIX от того, что была написана на Си, в то время как другие ОС - например TENEX и ITS - создавалась на языке ассемблера и, следовательно, их нельзя было так запросто переносить на другое оборудование, как UNIX?

Томпсон:Были и другие хорошие языки системного программирования, на которых писались такие вещи.

Сейбел:Например?

Томпсон:NELIAC был версией Алгола-58 для системного программирования.

Сейбел:BLISS тоже относится к той эре?

Томпсон:BLISS, кажется, был позже. В этих языках акцент делался на то, чтобы они хорошо компилировались. Думаю, с самого начала было вполне ясно, что из-за хорошей компиляции нельзя так уж убиваться. Нужно делать это хорошо, но вовсе не обязательно безупречно. Дело в том, что пока вы дорастаете до безупречной компиляции, закон Мура вас все равно обгонит. Вы можете повысить качество на 10%, но пока вы это делали, быстродействие компьютеров выросло вдвое и, возможно, появилось еще что-то более значимое для оптимизации, вроде кэшей. Думаю, по большей части стремление к совершенству здесь - пустая трата времени. Это очень тяжело: вы порождаете столько же ошибок, сколько устраняете. Нужно остановиться и не тратить 100% времени на 10% работы.

Сейбел:Вы, наверное, слышали о статье Ричарда Гэбриела “Worse Is Better” (Чем хуже, тем лучше).

Томпсон:Нет.

Сейбел:Он сравнивал два стиля - стиль Массачусетского технологического института (MIT), где на первом месте правильность, и стиль Нью-Джерси (то есть Bell Labs), где высоко ценят простоту реализации. Его теория состоит в том, что стиль Нью-Джерси, который он также называет “Чем хуже, тем лучше”, обеспечивает возможность немедленного запуска проекта и исправления в нем ошибок на ходу.

Томпсон:Думаю, у MIT всегда был некий комплекс неполноценности по поводу UNIX. Я выступал с лекцией о UNIX в MIT, и меня представлял, кажется, Майкл Детрузос. Он объяснял, почему UNIX не была написана в MIT, хотя именно так и должно было быть. Почему у них были возможности, люди и все такое, но тем не менее ничего не произошло. И тут меня осенило, что все это время в них сидит дух соперничества. У меня ничего подобного не было. Мы сделали UNIX, а они сделали MULTICS, настоящего монстра. Это явно синдром второй системы.

Сейбел:Где MULTICS была вторичной по отношению к операционной системе MIT CTSS?

Томпсон:Да. Слишком много лишнего. Почти неприменимо. Они по-прежнему уверяют, что это был потрясающий успех, хотя очевидно обратное.

Сейбел:Как я понимаю, большинство специалистов MIT придерживается именно такого мнения о MULTICS. Они предпочитали построенные ими же системы ITS и те, что были основаны на Лиспе. Похоже, после MULTICS получилась вилка. UNIX вышла в свет, как вам хорошо известно, и в MIT все эти любители Лиспа стали срочно работать на PDP-10 и строить основанные на Лиспе системы, которые в конце концов, думаю, и породили Лисп-машины.

Томпсон:Да-да. Я знал всех этих ребят. Я считал, что это сумасшедшая работа. Не думал, что Лисп - настолько уникальный язык, чтобы делать под него свою машину. И я, видимо, был прав. Все это время я говорил: “Вы с ума сошли”. Вот PDP-11 - отличная Лисп-машина. PDP-10 - отличная Лисп-машина. Зачем строить машину под Лисп, которая не будет быстрее? Да и вообще нет никакого смысла строить машину под Лисп. Это глупо, в конце концов.

Сейбел:Были ли у MULTICS такие черты, которые вам нравились, но тем не менее не были перенесены в UNIX?

Томпсон:Вещи, которые мне понравились настолько, что я их оттуда позаимствовал, - это иерархическая файловая система и оболочка - отдельный процесс, который можно было заменить другим процессом. До того во всех системах был “исполнительный компонент” - это так тогда называлось, - который был встроенным языком обработки. Он исполнялся в каждом процессе отдельно. А каждый раз когда вы что-то печатаете в оболочке, она порождает новый процесс и запускает то, что вы напечатали, а когда тот заканчивается, то вы возвращаетесь, и таким образом всегда находитесь недалеко от оболочки.

Сейбел:И все это вы перенесли в свою систему, там не осталось ничего, о чем бы вы жалели?

Томпсон:Нет.

Сейбел:Судя по тому, что я читал по истории UNIX, вы действительно использовали тот процесс проектирования, который здесь описали. Вы долго думали, а потом, когда жена и ребенок на месяц уехали, сказали: “Отлично! Теперь я могу написать код”.

Томпсон:Да... Мы собрались группой и поговорили о файловой системе. Нас было трое или четверо. Единственный, кто сейчас не очень хорошо известен, - это Радд Кэнеди (Rudd Canady). В те дни в Bell Labs были потрясающие удобства: можно было позвонить по телефону и потом получить распечатку вызова. То есть оставляешь заявку на то, чтобы оно было записано, и на следующий день в твоем почтовом ящике появится распечатка. И после того как мы обсудили файловую систему с помощью доски и мела, Кэнеди снял трубку, набрал номер и зачитал данные с доски.

Распечатка пришла, и получившееся оказалось так близко к проектной документации, которую мы тоже сделали, что были просто невероятные совпадения. И я взял и реализовал эту файловую систему, только на PDP-7. В какой-то момент я решил, что мне необходимо тестирование. И написал разные загрузочные штуки. Но у меня были проблемы при написании программ для файловой системы. Хотелось чего-нибудь интерактивного.

Сейбел:И вам просто хотелось поиграть с написанием файловой системы? В тот момент, получается, вы не собирались писать именно ОС?

Томпсон:Нет, это была просто файловая система.

Сейбел:И вы, таким образом, написали ОС, чтобы создать наилучшую среду для тестирования файловой системы.

Томпсон:Да. Примерно на полпути я понял, что это была настоящая система разделения времени. Я писал оболочку для запуска файловой системы. И еще пару программ, запускавших ее. Тут я подумал: “Осталось только сделать редактор, и у меня есть целая операционная система”.

Сейбел:Какую самую страшную ошибку вам приходилось отлавливать?

Томпсон:В основном это были ошибки, связанные с порчей памяти. Больше такого не бывает. Не знаю почему. Но поначалу мы постоянно работали с различным экспериментальным оборудованием, и в нем были ошибки.

Сейбел:То есть память портилась из-за аппаратных ошибок, а не из-за вышедшего из-под контроля указателя?

Томпсон:Мог быть указатель. Могло быть оборудование. Или и то, и другое. Та ошибка, которая мне сейчас вспомнилась как один из худших примеров, случилась на PDP-11. Там не было блока умножения, но его можно было докупить отдельно и подключить как периферию ввода/вывода. Сохраняешь числитель и знаменатель и запускаешь. Проходит цикл ожидания, затем выдается ответ - частное и остаток. И это было сделано под PDP-11 без управления памятью, а потом к нам пришло первое экспериментальное оборудование для PDP-11 с управлением памятью, и в результате блок умножения конфликтовал с управлением памятью.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Питер Сейбел читать все книги автора по порядку

Питер Сейбел - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Кодеры за работой. Размышления о ремесле программиста отзывы


Отзывы читателей о книге Кодеры за работой. Размышления о ремесле программиста, автор: Питер Сейбел. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x