Никита Прокопов (tonsky) wrote,
Никита Прокопов
tonsky

Categories:

«Программирование на языке Эрленг» Франческо Цезарини

Возобновляем рубрику про прочитанные книги. Теперь, правда, это не только рецензии на книги, а больше мои мысли по теме.

В плане пользы для мозга Эрленг пока вне конкуренции, и книгу стоит прочитать даже если никогда им пользоваться не будете. Практически каждая глава расширяет горизонты сознания.

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

Еще, скажем, в Эрленге нету никаких классов, поэтому для прокрастинации мест в сущности нет, каждый кусочек кода делает что-то полезное. Хотя синтаксис страшный, приходится продираться.

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

Про экторов я уже знал, но познакомиться с прародителем все равно полезно. И опять же поразительно, как органично все куски языка работают вместе. Для любителей прекрасного, в общем.

Грустнее всего от того, что допустим на ФИТе на два года магистратуры всего один технический курс, и студенты там чуть ли не формально числятся, а на деле рубят деньги; а ведь могли бы хотя бы обзорно по существующим парадигмам и решениям пробежаться, времени много, кругозор дать, чтобы к выпуску магистранты вообще представляли, какие инструменты для каких задач есть за пределами C, C++ и Java. Что был бы за дивный новый мир.

UPD: А, да, про книгу. Есть в ней один неприятный прием — повествование ведется последовательно, и иногда одну и ту же проблему несколько раз в нескольких главах подряд все более и более «совсем решают». То есть, говорится, что «вот решение», а потом разбирается еще что-то новое и объясняются проблемы предыдущего. Я долго подвисал на таких случаях, потому что проблемы описывают только в следующей главе, а внимательный читатель-то сам сообразит неприятность заранее и на этом вот частичном «решении» долго может протупить. Остается какая-то ненадежность, неосновательность от изложения в итоге. Конечно, если расслабиться и отпустить руль, то в итоге все соберется в цельную непротиворечивую картину, но а если кто-то пропустит главу или вообще книгу не дочитает? Нельзя так с читателем. Как говорил Воннегут, выкладывайте все, что у вас есть, в самом начале, на случай, если последние страницы съели тараканы.

UPD2: Для изучения нового языка клевой штукой оказался http://projecteuler.net. Все основные жизненные вещи — синтаксис, коллекции, стандартная библиотека, юнит-тесты осваиваются не на абстрактном коне в вакууме, и не сразу в бою, а на небольших осмысленных задачках, которые еще и решать приятно и интересно — азарт не дает заскучать, а алгоритмы не настолько сложные, чтобы сильно отвлечь от программирования. Штуки после двадцатой чувствуешь себя на новом поле уже человеком.
Tags: девелопмент, книги
Subscribe
  • Post a new comment

    Error

    default userpic
    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 32 comments