Это похоже на будущее веб-разработки. Такой подход к созданию веб-приложений позволяет с лёгкостью разворачивать в вебе системы, выдерживающие тысячи одновременных и непрерывных подключений. Что греет сердце и душу, создание таких систем возможно в привычной многим среде языка JavaScript. Используя такие ключевые технологии, как Node.js, Socket.IO и HTML5 Canvas, мы убедимся, что событийное веб-программирование в JavaScript может соревноваться в производительности с Erlang и делать Python с завязанными глазами.
Мы уже немного затронули эту тему летом, но не раскрыли её во всех цветах. В рамках обсуждения этой темы мы получим в своё распоряжение набор мощных иснтрументов, позволяющих менять все правила в используемом языке программирования. Например, менять поведение конструкций языка, добавлять новые конструкции (расширять язык), а главное — ответим на вопрос, кому и зачем всё это нужно, как это позволяет упростить себе жизнь и повысить читабельность исходного кода.
Оно же, на английском, Behavior Driven Development. BDD является закономерным продолжением практик Test-Driven Development, которые популярны в кругу приверженцев «гибкой» разработки ПО (Agile). Высшая цель этих практик — путём следования простым, логичным правилам в разы повысить надёжность и документированность своего кода. В рассмотрение BDD входит знакомство с распределёнными системами контроля версий на примере Git.
Говоря об операционном исчислении мы увидим, как у, на первый взгляд, сложных задач могут находится неожиданно простые решения. Например, как дифференциальные уравнения заменяются обычными алгебраическими.
LLVM — это универсальный бэк-энд для языков программирования. Он позволяет превратить академические наброски вашего языка в настоящий компилятор, генерирующий оптимизированный код для большинства популярных платформ (x86, x86-64, ARM и другие). У Анатолия есть планы по завоеванию галактики через применение статического метапрограммирования для выращивания на примитивном наборе инструкций LLVM языка сверх-высокого уровня. Для вникания в эту тему требуются знания из курса «Проектирования компиляторов».
Теория групп — это наиболее общие математические законы, характерные для совершенно различных разделов математики. Знания из теории групп позволяют путешествовать между областями математики и использовать инструменты одной области в решении задач, сформулированных в другой. Также, эти знания открывают дорогу в теорию категорий и позволяют понять, почему работают методы операционного исчисления.
Теория функций комплексного переменного сшивает воедино многие, казавшиеся разрозненными, части элементарной математики. Это приводит к целостному пониманию многих элементов вычислительной математики, а также даёт основу для вникания в современные физические теории (такие как теория струн).