500 страниц

Ну вот, объём рукописи четвёртого тома перевалил за 500 страниц. И, к счастью, я всё-таки разделался с лиспами (CL и Scheme) — в главах, посвящённых этим языкам, пометок "к доработке" не осталось. Возвращаюсь к главе про Пролог, которая написана примерно на три четверти. Впереди ещё Refal и Hope, с ними надеюсь разделаться быстро — языки неживые, реализации хоть и есть, но не поддерживаются, в общем нечего там долго писать — но в плане парадигм они очень интересны, выкидывать их нельзя.

После этого фактически останется только глава про графические интерфейсы на Си++ и куча всяких мелочей там и тут. Конец виден, хотя ещё и далёк. Спасибо всем, кто всё ещё следит за проектом!

Проклятый Common Lisp

Ещё в июле я, добравшись до описания ввода-вывода в SWI-Prolog, понял, что вид этого параграфа будет сильно зависеть от того, что получится в параграфах, посвящённых вводу-выводу в Common Lisp и Scheme; самих этих параграфов на тот момент не существовало, я оставил их "на потом" вместе с тонкостями эксплуатации интерпретаторов.

Сказать, что создание соответствующего параграфа пошло через гадину — это ничего не сказать. Сегодня я ввод-вывод Common Lisp, наконец, добил, заодно убедившись, что "стандарт" Common Lisp, как и положено стандартам, ни на что не годится, но, в отличие от других языков, для Common Lisp создатели конкретных реализаций пошли дальше стандартизаторов и сотворили нечто ещё хуже, чем исходный стандарт. Рассматривал я SBCL, ECL и GCL; чтобы объяснить, как написать простую программу, которая всего-навсего не вываливается в отладчик при возникновении ошибки открытия файла и при нажатии Ctrl-C (и я ни фига не шучу), пришлось написать 15 страниц текста, причём до какой-то приемлемой степени это удалось только с SBCL (сообщение permission denied напечатать можно, но оно выглядит так, как хочет интерпретатор, а не программист); в ECL в объекте исключения информация о конкретной ошибке отсутствует (нет, не шучу, я серьёзен!), в GCL исключения вообще невозможно перехватить — интерпретатор вроде бы знает о существовании соответствующих примитивов, но при попытке их применить говорит, что такие функции у него не определены. Других свободно распространяемых (и при этом живых) реализаций Common Lisp я не нашёл. Похоже, Лисп всё-таки намного мертвее, чем мне бы этого хотелось.

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

UPD:Между делом, по объёму четвёртый том сравнялся с самым толстым из первых трёх (496 страниц), при этом писать там ещё довольно много. Мне уже интересно, удастся ли это всё загнать хотя бы в 600.

Первые два тома распроданы

Итак, настал тот момент, которого я, откровенно говоря, не ожидал, когда начинал этот проект: первые два тома распроданы. Точнее говоря, у меня их ещё некоторое количество есть, но мои обязательства перед донэйторами таковы, что ни продавать первые два тома, ни обещать их новым донэйторам я уже не могу. Возможно, спустя некоторое (достаточно продолжительное) время после выхода четвёртого тома я запущу в продажу комплекты, которые не востребуют донэйторы, но это только если такие останутся, что совсем не факт.

Есть в этом и положительная сторона: видимо, мне придётся сразу после выхода четвёртого тома форсировать подготовку второго издания всей книги. Возможно даже, что это будет сделано раньше выхода задачника; будет зависеть от того, как у меня пойдут дела с подготовкой текста задачника.

Спасибо всем, кто следит за проектом!

Оффтопик про видеоблог

По мотивам старой дискуссии на L.O.R.е начал экспериментировать с генерацией html-контента и в роли опытного огорода использовать свой видеоблог — не тот, что на ютюбе, а тот, что на отдельном сайте. Теперь там есть картинки и отдельные странички к каждому ролику (раньше не было, так что, когда нужно было сослаться на ролик, приходилось ставить ссылку на сам mp4-файл).

Если всё пойдёт дальше по плану, там вскоре появятся комментарии и ещё много чего, но, опять же, сроки предсказывать пока трудно. А пока там есть одна возможность, которая уже есть, но не задействована: «длинные» текстовые описания к роликам, которые показываются только на страничках роликов, а в общем списке не показываются.

Если вдруг (ну, мало ли) кому-то придёт в голову сделать текстовые версии некоторых из моих видео, присылайте, спасибо скажу :-)

Если вам советуют начать со второго тома

В последнее время я несколько раз столкнулся с довольно забавным явлением: есть люди (не знаю, сколько их, возможно, это один и тот же персонаж, возможно и нет), которые, с одной стороны, рекомендуют моё "Введение в профессию" в качестве самоучителя для начинающих программистов, но при этом, с другой стороны, всерьёз советуют начать сразу со второго тома.

Моё мнение на этот счёт сформулировано в предисловиях, но предисловия, увы, тоже в первом томе, поэтому выношу это сюда. Притрагиваться к материалу второго тома можно лишь в случае, если у вас УЖЕ нет ни малейших проблем с указателями, то есть вы свободно вручную строите и обрабатываете односвязные и двусвязные списки, деревья и прочие динамические структуры данных, построенные на связях через указатели. Впрочем, даже в этом случае я бы «перепрыгивать» через первый том не советовал, если не хотите получить сишность головного мозга (если что, это такая особенность мышления, то есть парадигма — и притом очень кривая; о ней будет глава в четвёртом томе, а во втором издании, если до него дойдёт дело, я это вытащу и в предисловия, и в паскалевскую часть).

Если же вы только начинаете знакомство с программированием, ни про какие указатели ещё и не слышали (не говоря уже о том, чтобы свободно с ними обращаться) и при этом кто-то вам всерьёз советует начать со второго тома, постарайтесь с этим человеком больше не общаться. Он опасен для окружающих.

Первые два тома и новые условия для плюшек

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

Нет, это не я

На всякий случай: к страничке на долбаном вконтактике под именем info_violence я никакого отношения не имею. Мотивации тех, кто её там слепил, я не знаю, кто

Достигнута цель

Очередное пожертвование (от Noko Anna) вывело их общую сумму за целевой миллион; и хотя эта цель была в определённой степени

Главы про Tcl/Tk

Воспользовавшись каникулами, совершил небольшой трудовой подвиг и добил три главы, посвящённые Tcl: первая из них — про сам язык, вторая — про то, как интерпретатор Tcl встраивать в программы на Си и как его расширять сишными функциями (в том числе как сделать плагин к обычному интерпретатору); третья глава посвящена быстрому стряпанью GUI на Tcl/Tk.

Общий объём рукописи IV тома достиг

Очередной майлстоун

Только что случилось сразу две примечательные вещи: во-первых, из первой (девятой в общей нумерации) части четвёртого тома, озаглавленной "Парадигмы в мышлении программиста", была выкинута последняя пометка "к доработке", так что эту часть можно в первом приближении считать готовой; во-вторых, объём рукописи четвёртого тома достиг ровно 300 страниц.

С остальными частями ситуация следующая. Предстоит

RSS-материал