Джо Армстронг известен прежде всего как создатель языка программирования Erlang и Open Telecom Platform (OTP) - платформы для создания приложений на Erlang.
Среди современных компьютерных языков Erlang выглядит чудаком. Он старше и одновременно моложе многих популярных языков: Армстронг начал работу над ним в 1986 году - за год до появления Perl, - но язык был доступен лишь в качестве коммерческого продукта и использовался только в изделиях компании Ericsson, пока не был выпущен с открытым исходным кодом в 1998 году - через три года после появления Java и Ruby. Истоки Erlang кроются скорее в логическом языке Пролог, чем в каком-либо из языков семейства Алгол. Кроме того, он был разработан для специфического вида ПО с высокой доступностью и надежностью, как например АТС. Свойства, благодаря которым этот язык применялся на АТС, почти неожиданно сделали его пригодным также для написания программ, предназначенных к использованию в параллельных системах. Это привлекло к Erlang внимание программистов, когда стало понятно, что будущее за многоядерными процессорами.
Армстронг в каком-то смысле тоже чудак. Будучи физиком, он стал осваивать информатику, когда во время написания диссертации по физике, испытывая финансовые затруднения, нанялся исследователем в команду Дональда Мичи - одного из британских первопроходцев в области искусственного интеллекта. В лаборатории Мичи Армстронг познакомился со всеми достижениями в этой сфере, стал членом-основателем Британской робототехнической ассоциации и написал несколько статей о зрении роботов.
Когда финансирование работ в области искусственного интеллекта иссякло благодаря известному “Отчету Лайтхилла”, Армстронг на несколько лет вернулся к программированию для целей физики, работая в научной ассоциации EISCAT и затем в Шведской космической корпорации, пока наконец не оказался в Лаборатории информатики компании Ericsson, где и создал Erlang.
Сидя на кухне стокгольмской квартиры Армстронга, мы несколько дней обсуждали подход к параллелизму, реализованный в Erlang, необходимость поиска более простых и эффективных способов связи между программами, а также важность вскрытия “черных ящиков”.
Сейбел:Как вы научились программированию? Когда все это началось?
Армстронг:В школе. Я родился в 1950 году - тогда компьютеров было мало. В последнем классе, когда мне было примерно 17, местный совет приобрел мэйнфрейм - вероятно, производства IBM. На нем можно было писать программы на Фортране. Тогда все писали программы на специальных бланках и отсылали их. Через неделю программные бланки и перфокарты возвращались к вам, и надо было их одобрить. Но те, кто набивал перфокарты, часто ошибались, так что они путешествовали туда-сюда, иногда по два раза. В конце концов все это поступало в компьютерный центр.
Из компьютерного центра их опять присылали к вам, и компилятор Фортрана, споткнувшись о первую же синтаксическую ошибку, с остальной частью программы вообще не работал. Чтобы запустить свою первую программу, требовалось месяца три. Тогда я научился вместо одной программы писать несколько параллельных подпрограмм, и отсылал уже их. Я написал программку, которая выводила на печать изображение шахматной доски. Но все подпрограммы были решены как параллельные задачи, поскольку время обработки задания было невероятно большим.
Сейбел:Значит, приходилось писать подпрограммы, по сути, с модульными тестами для их проверки?
Армстронг:Да, и потом соединять их. Не знаю, можно ли это назвать обучением программированию. Потом я поступил на физическое отделение Лондонского университетского колледжа. Кажется, программирование там начиналось уже на первом курсе. Время обработки заданий составляло часа три. Но при запуске одновременно четырех-пяти программ все шло быстрее.
Сейбел:А в старших классах были уроки информатики?
Армстронг:Нет, был факультатив - что-то вроде компьютерного клуба. Помню, как мы ходили смотреть на компьютер. Множество серьезных, взрослых людей в белых халатах, с ручками в кармане, двигались торжественно, как в церкви. Компьютер был очень дорогой.
Сейбел:Вы изучали физику. А как вы перешли к программированию?
Армстронг:Когда я был на последнем курсе, на некоторых занятиях требовалось писать программы. Мне это нравилось. Я очень хорошо освоил отладку и делал ее для других, если ничто больше не помогало. Стандартной таксой была бутылка пива. Дальше все зависело от сложности - двухбутылочная задача, трехбутылочная задача и так далее.
Читать дальше
Конец ознакомительного отрывка
Купить книгу