Хорошая книжка
Oct. 27th, 2009 01:04 am![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Автор известен своей первой книгой "Practical Common Lisp", которая бесплатно доступна на его сайте. Именно по ней я осваивал Common Lisp. При этом на сайте автора помимо самой книги выложена специальная сборка Emacs+SLIME+sbcl, которая хотя и слегка устарела, представляет собой полную среду разработки на Lisp для начинающих.
Новая книга "Coders at work" состоит из интервью со следующими известными программистами:
-
Jamie Zawinski (
jwz) - основатель XEmacs, автор bbdb, один из создателей Netscape
- Brad Fitzpatrick - создатель LiveJournal, memcached
- Douglas Crockford - изобретатель JSON
- Brendan Eich - автор JavaScript
- Joshua Bloch - один из авторов Java Collections Framework, автор кучи книжек про Jav-у, главный архитектор Google по Java
- Joe Armstrong - создатель Erlang
- Simon Peyton Jones - ведущий разработчик GHC
- Peter Norvig - автор известных книг про искусственный интеллект, директор исследовательского подразделения Google
- Guy Steele - серийный создатель и стандартизатор языков программирования. Придумал Scheme и Fortress, участвовал в стандартизации Scheme, Common Lisp, Fortran, C, ECMAScript и Java.
- Dan Ingalls - один из создателей Smalltalk и первого GUI.
- L Peter Deutsch - работал над Interlisp и Smalltalk, один из авторов Just-in-time компиляции, автор Ghostscript.
- Ken Thompson - создатель UNIX.
- Fran Allen - пионер оптимизирующих компиляторов, первая женщина, получившая Turing Award.
- Bernie Cosell - автор первой реализации Arpanet.
- Donald Knuth - в представлении не нуждается :)
Набор вопросов разным людям задавался примерно одинаковый, поэтому очень интересно читать, как зависит отношение к тому или иному предмету от опыта человека.
Например, взгляды на язык C у Дональда Кнута и Fran Allen прямо противоположны - Кнут считает, что язык C очень хорош, так как позволил программистам самим создавать гибкие структуры данных, такие, как двусвязный список. А для Fran Allen его появление стало катастрофой, так как после этого пропал интерес к оптимизирующим компиляторам. По её мнению это отбросило всю отрасль на десятилетия назад.
В отношении C++ взгляды почти у всех сходятся - этот язык не нравится никому =) Peter Seibel просуммировал это в своём посте. Однако Java тоже вызвала некоторые споры.
Небезынтересно также обсуждение TDD
и Literate
Programming. Оказывается, почти никто из почтенных героев книги
не использует TDD, хотя все соглашаются с важностью тестов. Питер
Норвиг вообще считает, что тесты - это не главное. Он приводит в
подтверждение историю написания программы для решения судоку. Сам
Питер Норвиг написал эту программку, а другой блоггер,
пропагандирующий TDD увяз в написании тестов в самом начале, так как
просто не знал, как решать задачу. Рассказ jwz о
разработке в Netscape и роли в ней тестов, и реакция на него Joel-a
Spolsky также вызвали драму. (Ссылка
1, ссылка
2, ссылка
3).
Почти все говорят о важности чтения кода, но полноценным Literate Programming-ом занимается только Кнут =). Впрочем, проблема заключается лишь в том, что программисты не очень привыкли писать. Поэтому надежда на рост блоггерства. Я вот тоже решил попробовать пойти по стопам Кнута, так что следующий пост будет про Literate Programming.
Надеюсь, я вас убедил прочитать книгу "Coders at work". Бумажную книжку можно купить в Amazone :) А электронная есть на gigapedia.org (нужна регистрация).