bash.im ithappens.me zadolba.li
7764

Технология «Антикопипейст»

На горячей передовой компьютерных технологий в конце девяностых была BeOS. Операционка была шикарная, работала быстро, выглядела на то время весьма стильно. С точки зрения начинающего программиста её API был гимном простоты, красоты и разумности, в отличие от виндового, с которым мне впоследствии пришлось столкнуться.

Вместе с операционкой поставлялась книга документации этого самого гениального API в HTML-формате — так называемая BeBook. Книга была подробна, грамотно спроектирована, неплохо оформлена и пестрела интересными примерами кода. Вдруг выяснилось, что примеры, приведённые в книге, временами не то что падают с ошибками, но даже и не компилируются. Компилятор ругается на что-то, чего в исходном коде просто нет! Ещё веселее становится, если набрать этот же самый пример вручную: он без проблем компилируется и запускается.

Вдумчивое курение всего, что только можно, подсказало, где собака порылась. BeOS изначально работала в кодировке UTF-8, и в этой же кодировке была написана вся документация. Но поставляющиеся с BeOS шрифты не содержали абсолютно всех прописанных в UTF-8 символов. Так вот, там и сям в BeBook попадались эти самые UTF-символы, которые ничем не отображались, поэтому с точки зрения пользователя в любом вьюере или текстовом редакторе выглядели пустым местом. Но значения-то своего они при этом не теряли! Компилятор, неожиданно натыкаясь на непонятную пакость, считающую себя символом, естественно, начинал безбожно ругаться.

Некомпилирующиеся примеры из официального руководства программиста я никогда не забуду.