type inference и время компиляции

2 мая 2016

Недавно я исследовал проблему аномально большого времени компиляции вполне безобидного кода. Мораль получилась следующая:

Ссылки по теме:


сева

12 января 2014

В четверг мы похоронили Севу (выражаясь более официальным языком — Всеволода Александровича Крищенко, но у нас его так никто не называл; «Всеволод» лично и «Севик» — в разговорах между собой). Сева был одним из самых молодых преподавателей у нас на кафедре и, по совместительству, моим научным руководителем на магистрском дипломе. Ему было 38.

Первый раз мне повезло иметь дело с Севой в 2007 году на проекте локализации Microsoft Visual Studio, где я был одним из переводчиков, а он — менеджером проекта. Несмотря на своё, мягко говоря, критическое отношение к Microsoft, Сева всё делал чётко и аккуратно, приглашал нас к себе домой, где поил чаем и даже как-то дал мне денег в долг, когда первый транш с оплатой нашей работы задержался в пути.

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

После этого был ещё один проект локализации и двойной курс ПОС (Проектирование Операционных Систем) и ПВС (Протоколы Вычислительных Сетей), который вёл Сева, параллельно переписывая сам курс и все методички с нуля. На нём я впервые собрал ядро Линукса со своими исправлениями, построил в Netkit сеть из нескольких подсетей, DHCP- и DNS-серверов и файрвола, изучил, как работает ядро XNU на этапе загрузки, пописал на Эрланге и формально верифицировал алгоритм маршрутизации. Помню, каким культурным шоком было это всё для нас, неопытных C#-кодеров.

Наконец, несмотря на мой эпичный факап с магистрским дипломом, Сева взял меня в свою группу магистров буквально за три месяца до защиты. Мы очень хорошо и продуктивно поработали, Сева опять поил меня чаем с печеньями на кафедре, а один раз, когда я сутки не ел из-за отсутствия денег, даже угостил меня шашлыком в «Му-му» на Бауманской. На защите Сева отвлекал разговорами самых суровых членов ГАКа, и я защитился на пятёрку, хотя в начале пути уже был готов отчисляться из универа.

После этого мы виделись буквально пару раз: когда я приходил забирать свой диплом и когда уговорил его продать мне свой Mac Mini на PowerPC, который Сева специально купил, чтобы подлавливать тех студентов, которые использовали Интеловский ассемблер в своих курсовиках (естественно, на этом Маке был установлен Debian, потому что это был Севин Мак). Он сказал, что ему совесть не позволяет брать деньги с бывших студентов, и мы остановились на бутылке 18-летнего Чиваса.

Больше я Севу не видел. Знаю, что он сделал много правильных и полезных вещей на кафедре, и я даже слегка завидовал нынешним студентам, у которых была возможность ходить на Севины лекции и лабы или писать у него диплом. Думал, что было бы неплохо как-нибудь снова заехать на кафедру, выпить чаю с печеньками и потрындеть с Севой о программировании и студенческой жизни. Но не успел.

У меня остались пара фоток Севы (точнее, одна фотка, и одна фотка фотки с доски лучших преподавателей МГТУ) и несколько часов записи его лекций и консультаций по моему диплому, которые я тайком записывал на ноут.

Спасибо, Сева. Я многому научился. Было круто.