anton_nazarov: (Default)
[personal profile] anton_nazarov
Недавно дочитал хорошую книжку Peter-а Seibel-а "Coders at work".

Автор известен своей первой книгой "Practical Common Lisp", которая бесплатно доступна на его сайте. Именно по ней я осваивал Common Lisp. При этом на сайте автора помимо самой книги выложена специальная сборка Emacs+SLIME+sbcl, которая хотя и слегка устарела, представляет собой полную среду разработки на Lisp для начинающих.

Новая книга "Coders at work" состоит из интервью со следующими известными программистами:

  • Jamie Zawinski ([livejournal.com profile] 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 увяз в написании тестов в самом начале, так как просто не знал, как решать задачу. Рассказ [livejournal.com profile] jwz о разработке в Netscape и роли в ней тестов, и реакция на него Joel-a Spolsky также вызвали драму. (Ссылка 1, ссылка 2, ссылка 3).

Почти все говорят о важности чтения кода, но полноценным Literate Programming-ом занимается только Кнут =). Впрочем, проблема заключается лишь в том, что программисты не очень привыкли писать. Поэтому надежда на рост блоггерства. Я вот тоже решил попробовать пойти по стопам Кнута, так что следующий пост будет про Literate Programming.

Надеюсь, я вас убедил прочитать книгу "Coders at work". Бумажную книжку можно купить в Amazone :) А электронная есть на gigapedia.org (нужна регистрация).

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

Profile

anton_nazarov: (Default)
anton_nazarov

September 2014

S M T W T F S
 123456
78910111213
14 151617181920
21222324252627
282930    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 30th, 2025 06:16 am
Powered by Dreamwidth Studios