Читаем Кодеры за работой полностью

Ингаллс: Хороший вопрос. Думаю, немедленная отдача хороша сама по себе.

Сейбел: Где же вы впервые получили немедленную отдачу?

Ингаллс: Вспоминаю пару примеров. У меня была возможность поработать с наполовину интерактивным PL/I. А мой друг работал на IBM, когда у них была интерактивная среда APL. Не помню, что из этого было сначала. Кажется, APL. Она повлияла на меня во многих отношениях: как из-за немедленного взаимодействия — результаты сразу же возвращались, — так и из-за вычисления выражений, которое очень отличалось от ориентированного на операторы программирования на Фортране.

И это сохранилось до сих пор, просто здорово, — вся традиция Си/С++/ Java, хотя и развивается в объектно-ориентированном направлении, по-прежнему ориентирована на операторы. Но если есть возможность удобной работы с выражениями, то это дает совершенно другой опыт. Для меня это применение математики в жизни. Короче, вот один из этих двух примеров. Когда я пришел в Xerox, интерактивных языков, кроме Лиспа, не было. Но мне посчастливилось не подсесть на Лисп. Все сложилось бы иначе, если бы я на него подсел.

Сейбел: Как так?

Ингаллс: Думаю, я бы тогда полностью перешел на то направление. А поскольку я не перешел, мне хочется делать то же самое по-другому. Думаю, то, над чем мы работали с Аланом, было столь же симпатично и живо, но включало более естественное представление объектов и сообщений.

Думаю, если бы мне было так же удобно в системе вроде Лиспа, то я бы и не беспокоился. Я бы попытался построить работу с ней таким образом, чтобы получить объекты, но начать работать с объектами, а затем сделать эту работу интерактивной и удобной было, думаю, серьезным вкладом.

Сейбел: Алан Кэй сказал, что и у Лиспа, и у Smalltalk одна и та же проблема: они настолько хороши, что пожирают собственных детей. И если бы вы знали Лисп, то Smalltalk оказался бы первым съеденным ребенком.

Ингаллс: Возможно.

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

Ингаллс: Так и есть.

Сейбел: Нужно ли с этим бороться? Или это просто цена пространства для творчества? Или лучше бы нам больше понимать, что происходит в мире?

Ингаллс: Я за разнообразие. Из приведенного мною примера можно заключить: «Нет, пусть люди делают что хотят». Да, от незнания порой делаешь лишнее, но естественный отбор все исправит. И в конце концов все это помогает продвигаться в будущее.

Можно вспомнить множество областей, где попытки стандартизировать, привести все к общему знаменателю подавляли творческий импульс. Я работаю в компании, где используют Java, так что без подробностей. На конференции OOPSLA было хорошо видно, что когда появился язык Java, это не только замедлило и даже приостановило работу над другими объектно-ориентированными языками, но также сказалось на динамическом программировании в целом. Я считаю это большой потерей.

Но ничто не вечно. В итоге все поняли: «Так, минутку, Java имеет ряд преимуществ, из-за которых мы его используем, но у других динамических языков программирования есть и другие преимущества, так что пора вернуться к ним». Этот очевидный для меня пример, так как я сам был тому свидетелем.

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

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

Есть некоторая разница между компьютерными науками в сфере производства и компьютерными науками в сфере интеллектуального развития. Так, мне нравилось работать над Lively Kernel, хотя это в каком-то смысле тривиальный проект. В нем нет ничего нового: я использую все, что уже было. Он построен на JavaScript и графике, которую можно получить в браузере. Но мне было интересно, поскольку это тоже ядро, как и Squeak. Поскольку JavaScript и графика уже есть в браузере, работы над ядром немного. Оживить графику и построить небольшую вычислительную среду.

Занимаясь чем-то подобным, небольшим, это может понять любой. Если что-то выкинуть, например язык и графику, то возникнет вопрос: где же тогда ядро? И это интересный вопрос, на мой взгляд.

Перейти на страницу:

Все книги серии Профессионально

Кодеры за работой
Кодеры за работой

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

Питер Сейбел

Биографии и Мемуары / Программирование / Прочая компьютерная литература / Документальное / Книги по IT
Человеческий фактор
Человеческий фактор

Немногие книги о компьютерах оказали такое заметное влияние на управление разработкой программного обеспечения, как «Человеческий фактор». Уникальное озарение этой книги, долгие годы сохранявшей свое положение в списке бестселлеров: самые сложные проблемы разработки ПО носят не технологический, а социальный характер. Эти человеческие проблемы решать не просто, однако, решив их, вы увеличите шансы на успех до верхнего предела.В третьем издании появилось шесть новых глав и внесены многочисленные правки в основной текст, так что теперь книга лучше соответствует современным средам разработки и современным проблемам. В частности, обсуждаются патологии лидерства, которые раньше за патологии не считались, эволюционирующая культура собраний, а еще растущее понимание того, что некоторые наши инструменты служат скорее якорями, а не двигателями. Каждый, кому необходимо управлять проектом по разработке ПО или целой организацией такого рода, найдет на страницах этой книги множество ценных советов.

Тимоти Листер , Том ДеМарко

Деловая литература
97 этюдов для программистов. Опыт ведущих экспертов
97 этюдов для программистов. Опыт ведущих экспертов

Приобщитесь к мудрости экспертов и запомните то, что должен знать каждый программист, с каким бы языком и на какой платформе он ни работал. 97 кратких и очень полезных советов повысят ваш профессионализм посредством новых подходов к старым проблемам, лучших практик и разумных подсказок, предназначенных для оттачивания мастерства.Авторы этой книги, очень опытные и признанные в отрасли специалисты, передадут вам практические знания и принципы, полезные для проектов любого типа. Статьи касаются разных тем: от рекомендаций по написанию кода до культуры, от выбора алгоритмов до гибкого программирования, от приемов реализации до профессионализма, от стиля до сущности. Новички смогут познакомиться с фундаментальными положениями, а для профессионалов сборник сможет стать отправной точкой для обсуждений.

Пит Гудлиф

Программирование, программы, базы данных

Похожие книги