The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Выпуск Exim 4.90.1 с устранением уязвимости, не исключающей ..."
Отправлено Ordu, 13-Фев-18 06:02 
> Exim написал чувак который половину своей жизни был программером IBM mainframe(s) ...

Оу, действительно. Заглянул в википедию -- это ведь такое старпёрище, что у меня всякое удивление пропало от того, как можно писать столь говённый код.

В коде видно, что principle of the least surprize этому Хазелу не известен совершенно. Мысль о том, что программы пишутся для людей, а не компьютеров тоже ни разу не освещала его внутричерепные пустоты. Код напоминает ассемблерную лапшу для тех самых 286 и для даже более младших микропроцессоров. Лапшу, от которой Дейкстру хватил бы удар, потому что там считалось, что экономия двух байт на стеке стоит того, чтобы уже запутанный код запутать ещё больше. При этом код совершенно игнорирует способности современных компиляторов к оптимизации, он высокооптимизированный, но для компилятора C из 80-х годов, который генерировал машинный код более похожим на исходный, чем современный компилятор генерирует с флагом -O0 для удобства отладки. Кстати встаёт вопрос, не становится ли этот код медленнее из-за демонстративного игнорирования способностей компилятора к оптимизации.

Пока я втыкал в этот код, я вспоминал одного из преподавателей информатики в своей молодости, который втирал мне, что инициализируя переменную типа float целым числом, надо в сорце обязательно писать не 'float a = 2', а 'float a = 2.0'. Само по себе может и здравая мысль (rust, например, требует писать именно так), но аутентичное объяснение этому было феерическим: если написать 2, то компилятор сгенерирует код, который будет преобразовывать (int)2, к (float)2.0, а это (sic!) замедлит программу. Будучи ещё молодым и глупым тогда, двадцать лет назад в конце 90-х, я слушал его со скепсисом, подозревая, что меня где-то нaёбывают (благоразумно сохраняя молчание: мне был нужен зачёт), но в в конце 10-х -- через двадцать мазафака лет -- я вижу "продакшн" код, который был написан на тех же принципах.

Вот смотришь в этот код и удивляешься: как так можно? Но всякое удивление пропадает, когда узнаёшь что автор всю жизнь отработал в IT, вышел на пенсию десять лет тому назад, и уже успел написать мемуары: многим людям не удаётся испытать на себе, что такое открытость к новым идеям, но лишь очень немногим удаётся сохранить эту открытость до старости.

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру