avva: (Default)
[personal profile] avva
Питер Норвиг, автор (помимо множества прочих заслуг) знаменитых книг об AI и Лиспе, автор эссе Teach Yourself Programming in Ten Years, которое следует прочитать каждому программисту, рассказывает, как написать программу, решающую любую задачу Судоку. 100 строк на Питоне.

Рон Джеффриз, один из изобретателей системы XP Programming, один из духовных отцов движения Agile и авторов Agile Manifesto, пытается написать программу для решения Судоку: раз, два, три, четыре, пять. На Руби, с использованием TDD (test-driven development).

Прочитайте эти два описания двух разных попыток - включая все пять записей Джеффриза, не поленитесь, чтобы как следует их оценить - сравните, и вы будете знать все, что вам надо знать, об XP и Agile.

Бонус:

Роберт Мартин ("Uncle Bob Martin"), один из главных создателей Agile, специалист по Agile, XP и UML, автор книг обо всех этих методологиях, пишет код на Clojure, с помощью TDD, вычисляющий результат игры Bowling Game, простого варианта боулинга. Вот его код.

Матиас Джованнини пишет код на OCaml, без TDD, для решения той же проблемы. Вот его код.

Сравните, и вы будете знать все, что следует знать об XP, Agile и TDD.

Все всегда звучит очень заманчиво. Все всегда звучат очень убедительно. Все полемики и манифесты можно просто не читать, а если читать, то ни в коем случае не воспринимать всерьез. Читайте код. Или, если есть время и желание, пробуйте сами. А манифесты и методологические книги - пусть себе скрипит губерния.

Date: 2009-10-06 07:30 pm (UTC)
From: [identity profile] nikto.livejournal.com
Пожалуй, это уже оффтопик, но, раз уж возникла тема "язык - алгоритм", вставляю цитату из статьи (http://vinnik.info/index.php?id=dijk00.html) авторитетного программиста (http://ru.wikipedia.org/wiki/%D0%94%D0%B5%D0%B9%D0%BA%D1%81%D1%82%D1%80%D0%B0,_%D0%AD%D0%B4%D1%81%D0%B3%D0%B5%D1%80_%D0%92%D0%B8%D0%B1%D0%B5) :

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

Date: 2009-10-06 07:42 pm (UTC)
From: [identity profile] nikto.livejournal.com
Т.е. я смотрю на свой код, на код коллег, какие они используют абстракции для описания, в сущности, окружающего мира (сиречь "предметной области") в своем коде, и мне кажется, что Дейкстра тут сказал важную вещь. Не знаю уж, общеочевидную, или нет.

Date: 2009-10-08 12:08 am (UTC)
From: [identity profile] cema.livejournal.com
Вполне важную, да.

На ту же тему в общелитературном варианте: if all you have is a hammer, everything looks like a nail.

Date: 2009-10-06 08:42 pm (UTC)
From: [identity profile] kobak.livejournal.com
"Die Grenzen meiner Sprache sind die grenzen meiner Welt"

("Границы моего языка -- это границы моего мира")

Date: 2009-10-07 09:00 am (UTC)
From: [identity profile] shpriz.livejournal.com
Простите за беспокойство, вы не могли бы сказать откуда точно эта цитата? (если можно ссылку на английский вариант)

Спасибо.

Date: 2009-10-07 09:38 am (UTC)
From: [identity profile] nikto.livejournal.com
Отсюда: http://www.cs.utexas.edu/users/EWD/ewd03xx/EWD340.PDF , там ближе к концу.

December 2025

S M T W T F S
  123 4 56
78 9 10 11 1213
1415 1617181920
21 22 23 24 2526 27
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 29th, 2025 01:31 pm
Powered by Dreamwidth Studios