Тема: Темы будущих обсуждений и лекций
Пока вещание поломалось, попробую очертить круг тем, которые нужно проговорить на видео. Все возможные выступления делятся на две группы: философско-маргинальные и серьезные.
С точки зрения абстрактной теории философско-маргинальные темы нужно исключить и говорить только по существу, чтобы лишний раз не позориться, но у меня нет другого способа выговориться, кроме как на видео. Обвинения в маргинальности и возможный позор я воспринимаю как неизбежное зло, которое поможет продвинуть теории проекта.
Философско-маргинальные темы:
Американский и неамериканский способы решения задач. Маленькие и острые утилиты UNIX, toolchain. Русский след в программировании. Русское программирование объективно существует? Каким должен быть русский по духу язык программирования.
История Паскаля и Си глазами "Канторовых систем". Какой синтаксис круче? Важен ли синтаксис вообще? Европейские и американские языки и IDE. Первая в мире IDE. Культура F5 и культура F9.
Национальная ОС и государственный интегратор. Как должен выглядеть честный тендер на разработку национальной ОС. Какой может быть национальная ОС.
Проектирование, архитектура, ведение проектов:
Языки программирования с грузом совместимости и современные. Равенство системных и прикладных программистов. Как отличить хороший язык от плохого. (эту тему я уже пытался проговорить в старом цикле лекций, но ничего не получилось)
Объектно-ориентированная операционная система, чем она отличается от обычной. Классическая реализация -- Smalltalk/Squeak, 20000 строк Алана Кея. Windows Cairo -- канонический провал проекта ОООС. ОС как абстракция двоичных интерфейсов.
Реализация языка Кантор:
Последние изменения в Канторе: DSL встроенных типов и операций, итераторы (будет первая попытка проговорить итераторы, наверняка блин выйдет комом)
Блочный new в Канторе как способ описания данных, аналогичный XML или JSON. Объектный код Кантора. Универсальный двоичный контейнер -- аналог Google Protocol Buffers.
Управление памятью в Канторе, выделение памяти и передача владения.
Концепция объектов первого класса: что она дает и что покрывает. Суперкомпиляция в рамках Кантора. Исключения первого класса.
Функциональное и императивное программирование на Канторе: функции и процедуры, переменные, свойства. Заимствование концепций СУБД, почему не нужны монады. Система типов Хиндли-Милнера, вывод типов. Перегруженные функции, свойства, классы, переменные.