Питер Сейбел - Кодеры за работой. Размышления о ремесле программиста
- Название:Кодеры за работой. Размышления о ремесле программиста
- Автор:
- Жанр:
- Издательство:Символ-Плюс
- Год:2011
- Город:Санкт-Петербург
- ISBN:978-5-93286-188-2
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Питер Сейбел - Кодеры за работой. Размышления о ремесле программиста краткое содержание
Программисты - люди не очень публичные, многие работают поодиночке или в небольших группах. Причем самая важная и интересная часть их работы никому не видна, потому что происходит у них в голове. Питер Сейбел, писатель-программист, снимает покров таинственности с этой профессии. Он взял интервью у 15 величайших профессионалов: Кена Томпсона, создателя UNIX, Верни Козелла, участника первой реализации сети ARPANET, Дональда Кнута, Гая Стила, Саймона Пейтон-Джонса, Питера Норвига, Джошуа Блоха, Брэда Фицпатрика, создателя Живого Журнала, и других. Все они “подсели” на программирование еще в школе. Тогда, на заре зарождения отрасли, лишь в немногих учебных заведениях читались курсы по компьютерным наукам. Поэтому будущим гуру приходилось покорять профессиональные вершины самостоятельно, но всех их отличает творческое горение и полная самоотдача любимому делу.
Вы узнаете, что они думают о будущем программирования и как сами научились программировать, как, по их мнению, нужно проектировать ПО, как выбор языка программирования влияет на продуктивность и можно ли облегчить выявление труднонаходимых ошибок.
Кодеры за работой. Размышления о ремесле программиста - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
Одна из первых подработок была у профессора-гуманитария, который каталогизировал труды Гомера. У него были “Илиада” и “Одиссея” на перфокартах. Ему были нужны частота употребления слов и их количество, то есть сравнительный статистический анализ этих двух поэм. И это было интересно. Это была работа с текстом, которую в те дни компьютеры просто не выполняли. Да, это и была моя первая странная подработка.
Сейбел:В интервью 1999 года вы рассказали, как убедили сына заниматься биологией, а не компьютерами, потому что те исчерпали себя. Это было почти десять лет назад. Что вы об этом думаете сейчас?
Томпсон:То же самое. В компьютерной сфере не происходит ничего, что нельзя было бы предсказать. Последним значительным событием стал, думаю, Интернет, а в 1999 году он уже работал. Да, все растет, скорость персональных компьютеров продолжает экспоненциально расти, но что радикально нового?
Сейбел:Когда читаешь историю UNIX, кажется, что вы, ребята, изобрели операционную систему, просто чтобы поиграть с этим компьютером. То есть для того, чтобы сделать какую-то простую штуку - написать игру или что-то подобное на компьютере, пришлось сначала писать целую операционную систему. Чтобы хоть что-то начать делать, нужны были компиляторы и серьезная инфраструктура. Уверен, все это само по себе было интересно. Но не является ли сложность современного программирования, о которой мы уже говорили, нынешним эквивалентом все того же “Итак, в первую очередь ты должен создать собственную операционную систему!” По крайней мере, сейчас этого делать не нужно.
Томпсон:Сейчас все еще хуже. Операционная система не только дана - она обязательна. Поговорив сейчас с выпускниками компьютерных специальностей, вы увидите, что они совсем не понимают базового уровня. Очень, очень страшно за то, как они далеки от понимания того, что такое компьютер или хотя бы теория вычислений. Они просто ничего не понимают.
Сейбел:Я все думаю о вашем совете сыну - заняться биологией вместо компьютеров. Нет ли в программировании чего-то такого - интеллектуального удовольствия от определения процесса, который эти волшебные машины могут для вас выполнить, - вроде как ты работаешь с железом, но на очень абстрактном уровне?
Томпсон:Это затягивает. Но вы ведь не предложите своему ребенку попробовать крэк. Думаю, все изменилось. Может, я просто старею, но кажется, что когда накладываешь слой на слой, а затем еще слой, это не приносит такой радости, как, например, создание детерминированного конечного автомата. Да, разумеется, дело и в алгоритмах: со временем они становятся все сложнее. Новый алгоритм - это нечто основанное на пятидесяти мелких алгоритмах. А когда я был молодым, достаточно было писать один такой маленький алгоритм - и это было интересно. Их можно было понять, не прибегая к сложным вычислениям, когда алгоритмы надо делить на блоки, когда вот этот блок решается тем алгоритмом, о котором читал, но на самом деле почти ничего не знаешь, и так далее. Так что все изменилось. Я действительно так считаю и во многом из-за того, что постоянно надстраиваются новые слои, с которыми мы и имеем дело. А может, я просто слишком стар, чтобы их понять.
13. Фрэн Аллен
В 1957 году Фрэн Аллен собиралась стать учителем математики, но поскольку ей нужны были деньги, чтобы выплатить кредиты на обучение в университете, она временно (как тогда казалось) устроилась программистом в исследовательский центр IBM. Началом ее деятельности стало преподавание ученым IBM недавно созданного языка Фортран.
Учителем Аллен так и не стала - она проработала в IBM 45 лет и занималась рядом проектов по созданию компиляторов, в том числе компиляторов для компьютера STRETCH-HARVEST и для грандиозного, но так никогда и не законченного суперкомпьютера ACS-1. Кроме того, она работала над собственным проектом PTRAN, в рамках которого были разработаны технологии автоматической параллелизации программ на Фортране и создана система промежуточного представления SSA (Static Single Assignment), которая сейчас широко используется как в статических, так и в динамических (ЛТ) компиляторах.
В 2002 году Аллен была удостоена премии Тьюринга “За новаторский вклад в теорию и практику технологий оптимизационных компиляторов”, став, таким образом, первой женщиной, получившей эту награду, за 40 лет существования премии. Кроме того, она стала первой женщиной, удостоенной звания действительного члена научного общества IBM - высшего почетного звания в компании для технического сотрудника. Кроме того, она является почетным членом научного общества Института инженеров электротехники и электроники (IEEE) и Ассоциации вычислительной техники (АСМ), а также членом Национальной академии инженерных наук, Американской академии искусств и наук и Американского философского общества.
На протяжении всей своей карьеры Аллен видела, как менялась роль женщины в сфере информационных технологий - от первых лет, когда компании, вроде IBM, нанимали именно женщин на новую и непонятную должность “программиста”, до последних десятилетий, когда в этой области стали преобладать мужчины.
В беседе мы обсудили особенности этих изменений, необходимость предоставления равных возможностей в сфере информационных технологий и пагубное влияние, которое язык Си оказал на компьютерные науки.
Сейбел:Как вы начали заниматься программированием? Я знаю, что в начале вы собирались стать учителем математики, но устроились на работу в IBM, потому что вам нужно было погасить кредиты на учебу.
Аллен:Для того чтобы получить лицензию учителя в штате Нью-Йорк, нужна была степень магистра. У меня были степень бакалавра по математике, вторая специальность - физика и двухлетний опыт преподавания. Затем я поступила в университет штата Мичиган, где углубилась в изучение математики. Для того чтобы получить степень магистра в университете Мичигана, нужна была вторая дополнительная специальность - и я выбрала вычислительные системы. Компьютерных наук тогда, в 1957 году, еще не было. Лишь 10 лет спустя они всерьез заявили о себе. Но в инженерной школе было несколько курсов.
Сейбел:Что вы там изучали?
Аллен:Там был компьютер IBM 650 - он весьма отличался от привычных нам сегодня компьютеров, и студенты учились на нем программировать. Это включало не только изучение всех свойств компьютера и написание кода - на ассемблере, естественно, - но и запуск своих программ на компьютере. Результат был абсолютно наглядным.
Сейбел:То есть вы набивали перфокарты, сами несли их к компьютеру и пропускали через него?
Аллен:Верно. А потом шли и исправляли. Это была машина с магнитным барабаном - барабан постоянно вращался, на нем и были записаны твои инструкции. Поэтому, чтобы все работало быстро, нужно было рассчитывать положение программ на барабане таким образом, чтобы при каждом новом обороте каждая новая программа располагалась на нужном месте.
Читать дальшеИнтервал:
Закладка: