Комментарии к коду попадаются замечательные, да.
2. Coders at Work, судя по тем отрывкам, что я видел, замечательная книга, и собираюсь ее вскорости прочитать. (В последние годы было несколько попыток написать подобные книги; одна из них, Beautiful Code, тоже казалась поначалу очень удачной, но когда мне в руки попала сама книга, как-то совершенно "не пошла").
3. The different attitudes of computer scientists and economists. Стоит прочитать как минимум ради интересного примера с American Express в конце записи.
4. Tiny Code.
5. Speaking of tiny code - я посидел немного над Фортом на выходных, вспоминал язык и писал несколько тривиальных штук. Написал, например, квиксорт (а заодно и Mersenne twister, чтобы его проверять). Квиксорт получился вот такой:
\ simple quicksort : exchange ( i j -- ) 2dup = if 2drop exit then 2dup @ swap @ ( i j val-j val-i ) rot ! swap ! ; : simple-part ( start end pivot -- mid ) \ assumes pivot is stored at end >r swap r> 2 pick 2 pick ?do ( end stored pivot ) dup i @ >= if \ exchange elements at stored and i, increment stored swap dup i exchange cell + swap ( end stored pivot ) then cell +loop drop tuck exchange ; \ exchanged stored and last : simple-q2 recursive ( start end -- ) 2dup = if 2drop exit then 2dup 2dup swap - cell / 2/ cells 2 pick + \ choose pivot from middle 2dup exchange drop dup @ simple-part \ put pivot at right, partition 2dup = if dup cell - rot rot swap ( s m-1 m e ) else dup cell + rot ( s m m+1 e ) then simple-q2 simple-q2 ; : simple-qsort ( addr u ) 1- cells over + simple-q2 ;
Правда, подозреваю, что мои слова слишком сложны, и у опытного программиста на Форте получилось бы на несколько слов больше, зато куда проще и понятнее. Попробую позже рефакторнуть это дело.