Чтение онлайн

на главную - закладки

Жанры

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

Сейбел: Что вы можете посоветовать программистам-самоучкам?

Крокфорд: Много читать. Есть масса хороших книг — берите и читайте. А если вы веб-разработчик, зайдите на лучшие сайты и посмотрите их код. Правда, я даю этот совет не без опаски. Большинство веб-разработчиков учились своему делу «глядя в исходники», и до недавнего времени эти исходники никуда не годились. Целое поколение программистов выросло на плохом коде, который они считают образцовым. Сейчас положение исправляется, но плохого кода все еще так много, что я боюсь давать подобный совет.

Сейбел: А что вы порекомендуете тому, кто

получает диплом по компьютерным наукам и хочет работать программистом?

Крокфорд: На их месте я бы сконцентрировался на коммуникации. Учитесь писать, учитесь читать.

Всем остальным советую то же самое: читайте и пишите. Принимая человека на работу, я не требую от него специальных навыков. До недавнего времени невозможно было найти хорошего JavaScript-программиста — их было крайне мало. Сейчас они появились, но это произошло буквально только что. До того я брал на работу за хорошие способности. Мне неважно, кто вы — хороший Java-программист, хороший Си-программист или хороший программист на чем-нибудь еще. Для меня важно просто знать, что вы можете реализовать алгоритм, понимаете структуры данных и умеете их документировать. Тогда вам будет понятен и JavaScript.

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

Крокфорд: У меня было такое, скажем, с Windows-программистами. В Windows есть ряд очень сложных API, их можно осваивать годами. И получается, что вы ничего не можете, кроме как написать обработчик оконных сообщений. Без особой необходимости я никогда не ищу таких узких специалистов. В общем случае я предпочитаю тех, кто разбирается во всем понемногу, кто способен освоить некоторый API, а не тех, кто на нем специализируется.

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

Крокфорд: У меня именно такое намерение.

Сейбел: И что из этого выходит?

Крокфорд: Большей частью мы справляемся неплохо. Мир улучшается, хотя при этом он не обязательно двигается вперед. Возьмите, к примеру, международные отношения за последние десять лет — появление Интернета не компенсировало разлагающий эффект от объединения крупных СМИ. Это большое разочарование.

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

Сейбел: Но ведь миллионы блогеров могут сказать: «Мы тут в блогах отслеживаем все, а традиционные СМИ отдыхают».

Крокфорд: Да, это потрясающе. Но мы все еще делаем это неправильно. У нас есть отличная возможность быть друг к другу ближе, обмениваться сообщениями, но это пока не работает. Пока это все не то.

Сейбел: Думаете, решение этой проблемы отчасти зависит от техники? Могут ли программисты и проектировщики систем создать такую архитектуру, которая будет для этого полезна? Или проблема чисто социальная?

Крокфорд: Может быть, новые социальные системы будут строиться на основе новой сетевой инфраструктуры, и, может быть, она

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

4. Брендан Айк

Создатель языка JavaScript, вероятно, самого популярного у веб-разработчиков и самого проклинаемого, Брендан Айк в настоящее время является главным техническим директором компании Mozilla Corporation — подразделения Mozilla Foundation, отвечающего за совершенствование браузера Firefox.

Поклонник изящных теоретических решений и одновременно практичных подходов в программировании, Айк в начале своей карьеры занимался тем, что программировал сетевой код и код ядра в Silicon Graphics и MicroUnity. После MicroUnity работал в Netscape над браузером и в условиях жестокого цейтнота разработал язык JavaScript.

В 1998 году вместе с Джейми Завински он возглавил движение за открытие исходного кода Netscape, что привело к созданию mozilla.org, где Айк стал главным проектировщиком.

В последние годы Айк является одним из руководителей работ по развитию платформы Mozilla и одновременно входит в число разработчиков ЛТ-виртуальной машины для JavaScript, названной TraceMonkey. В интервью Айк объясняет, что он также пытается «сдвинуть ось исследований» в проекте Mozilla, приведя в проект практически мыслящих ученых, чтобы сблизить академическую теорию и промышленную практику.

Мы затрагивали и другие темы, например: почему JavaScript должен был походить на Java, но не слишком сильно, почему JavaScript должен развиваться, несмотря на неудачу проекта ECMAScript 4, и почему необходимы новые разновидности статического анализа кода.

Сейбел: Где вы учились программировать?

Айк: В конце 1970-х — начале 1980-х я заканчивал Университет Санта-Клары, специализируясь по физике. Мы часто бывали в Стэнфорде и работали на LOTS-A и LOTS-B — больших системах с разделением времени типа DEC TOPS-20, а в Санта-Кларе как раз стояла система TOPS-20: отличный 36-битный процессор от DEC, великолепная операционная система, отличный макроассемблер. Си — это что-то вроде «портируемого ассемблера», но работа с макросами в ассемблере — это просто кошмар. А там были настоящие макросы для ассемблера, и имея навыки структурного программирования, можно было сделать многое. Системы типов не было, но и Си в этом отношении особенно ничем похвалиться не может. Зато был богатый набор системных вызовов, системных служб, ввод/вывод с отображением в память — все то, что первоначально не входило в UNIX.

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

Поделиться:
Популярные книги

Курсант: назад в СССР

Дамиров Рафаэль
1. Курсант
Фантастика:
попаданцы
альтернативная история
7.33
рейтинг книги
Курсант: назад в СССР

Чужая семья генерала драконов

Лунёва Мария
6. Генералы драконов
Фантастика:
фэнтези
5.00
рейтинг книги
Чужая семья генерала драконов

Пышка и Герцог

Ордина Ирина
Фантастика:
юмористическое фэнтези
историческое фэнтези
фэнтези
5.00
рейтинг книги
Пышка и Герцог

Имперский Курьер. Том 5

Бо Вова
5. Запечатанный мир
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Имперский Курьер. Том 5

Имя нам Легион. Том 7

Дорничев Дмитрий
7. Меж двух миров
Фантастика:
боевая фантастика
рпг
аниме
5.00
рейтинг книги
Имя нам Легион. Том 7

Возвышение Меркурия

Кронос Александр
1. Меркурий
Фантастика:
героическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия

Законы Рода. Том 11

Андрей Мельник
11. Граф Берестьев
Фантастика:
юмористическое фэнтези
аниме
фэнтези
5.00
рейтинг книги
Законы Рода. Том 11

Измена. (Не)любимая жена олигарха

Лаванда Марго
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Измена. (Не)любимая жена олигарха

Вираж бытия

Ланцов Михаил Алексеевич
1. Фрунзе
Фантастика:
героическая фантастика
попаданцы
альтернативная история
6.86
рейтинг книги
Вираж бытия

Отмороженный 11.0

Гарцевич Евгений Александрович
11. Отмороженный
Фантастика:
боевая фантастика
рпг
попаданцы
фантастика: прочее
фэнтези
5.00
рейтинг книги
Отмороженный 11.0

История "не"мощной графини

Зимина Юлия
1. Истории неунывающих попаданок
Фантастика:
попаданцы
фэнтези
5.00
рейтинг книги
История немощной графини

Крестоносец

Ланцов Михаил Алексеевич
7. Помещик
Фантастика:
героическая фантастика
попаданцы
альтернативная история
5.00
рейтинг книги
Крестоносец

Газлайтер. Том 15

Володин Григорий Григорьевич
15. История Телепата
Фантастика:
боевая фантастика
попаданцы
5.00
рейтинг книги
Газлайтер. Том 15

Призыватель нулевого ранга

Дубов Дмитрий
1. Эпоха Гардара
Фантастика:
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Призыватель нулевого ранга