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

Аллен: Да, но мы должны заниматься этим с учетом известных сегодня высокоуровневых языков.

Сейбел: А неверная дорога — это поиск лучших путей явного использования параллелизма?

Аллен:

Да, думаю, в конце концов мы таким образом лишь усугубили свои проблемы.

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

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

Сейбел:

Вы говорите об удобстве для программиста или для конечных пользователей этих систем?

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

Сейбел: Кем вы себя ощущаете — ученым, инженером, художником или ремесленником?

Аллен:

Я специалист в области компьютерных наук. Работая в своей узкой области, я помогала развиваться этой дисциплине. Это были интересные времена — когда компьютерные науки только появились, — потому что были вопросы «А наука ли это? Если в названии чего-то есть слово „наука", наукой это не является». Тогда мне было совсем непонятно, что этот термин означает.

Но компиляторы — это очень старая область, старше разработки операционных систем. Как-то я решила узнать об этом побольше. Слово «компилировать» в исходном смысле означало вставку небольших отрывков инструкций для исполнения. Так, например, слово «add» (сложить) нужно было заменить примитивными машинными инструкциями. Если требуется выполнить сложение, то машина обращается к библиотеке, которая находит его определение и вставляет его.

Но ассемблеры также использовали символы. Не уверена, что это правда, но раньше я считала, что впервые символьные имена для переменных использовал человек по имени Нэт Рочестер, работавший над одной из первых машин (IBM 701) где-то в 1951 году. Он занимался ее тестированием, и они писали программы, чтобы тестировать компьютер. В процессе тестирования они стали использовать символические переменные. Но с тех пор мне приходилось сталкиваться со свидетельствами того, что информацию представляли в символическом виде и раньше. Мне кажется, это стали делать в начале 1950-х, или даже в 1940-х. Например, стоит найти и посмотреть, как все записывалось и выражалось в ENIAC.

Сейбел:

То есть в какой-то момент вы поняли, что стали специалистом в области компьютерных наук, создателем теорий об оптимизации компиляторов и так далее. Но начинали вы как программист, вас нанимали для того, чтобы вы писали код. На момент работы над проектом PTRAN вы уже руководили командой программистов, непосредственно писавших ПО. Почему вы тогда решили все изменить?

Аллен: Что ж, вероятно, причин было две. Во-первых, я не была очень хорошим программистом. Я часто делала небольшие ошибки, опровергая тогдашнее расхожее мнение, что из женщин получаются хорошие программисты, поскольку они уделяют внимание мельчайшим деталям. Я была не из их числа. Мне скучно было приводить в порядок все мелочи — гораздо интереснее было разбираться в том, как работают системы.

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

Сейбел: Ваш технический вклад в проект PTRAN, судя по всему, заключался в цельности вашего взгляда на архитектуру всего проекта, на его работу; кроме того, вы могли указать на те вещи, о которых нельзя было уверенно сказать, как они будут работать.

Аллен: Точно.

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

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

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

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

Питер Сейбел

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

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

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

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

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

Пит Гудлиф

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

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