Программисты-«волшебники»

Про программистов-«волшебников», большая цитата (ниже весь текст не мой).

Хочу высказаться также по триаде «объект — указатель — ссылка».

Изначально в Си (не «++») ссылок не было. Были только объекты и указатели. Любой начинающий сталкивался с указателями, как только ему требовалось впервые изменить в теле функции значение переданного функции параметра:

void func1(int i) { i = 1; }
void func2(int* i) { *i = 1; }

Далее:

int i = 0;
func1(i); // всё ещё i==0
func2(i); // вот теперь i==1

Этот код демонстрирует то свойство Си, из-за которого он называется «высокоуровневым ассемблером». В тексте языка явно указано, что происходит на уровне ассемблера. В func1 в ячейку на стеке, отведённую под параметры функции, кладут целое значение, i — имя этой ячейки. Туда пишется «1». В func2() в ячейку кладётся указатель i, то есть адрес некоторой другой ячейки, где и лежит значение. В теле явно стоит операция разадресации (*i) — «обратимся к той другой ячейке, адрес которой лежит i». Именно в ту ячейку засовываем «1».

Спрашивается, так зачем ещё потребовались ссылки? Ответ таков. В мире существует, не исчезает и даже порой ширится класс «программистов-волшебников», то есть любителей «программирования с волшебными словами». Программисты-волшебники рассуждают так: запись i = 1; хорошая и понятная. «Присвой i единицу». Запись *i = 1; — противная, компьютерная, не для людей. «Положи „1“ в ячейку, адрес которой лежит в i». Фу.

Пусть лучше в теле func2 тоже будет написано по-человечески: i=1. Однако работает пусть всё, как раньше — func1 получает на стек значение, а func2 — указатель. И оператор присваивания, с виду теперь одинаковый, пусть работает по разному. В func1 — обычное присваивание, в func2 — с разадресацией указателя. А чтобы теперь понять, как это работает, мы введём в язык волшебный значок «&». Теперь всё просто:

void func1(int i) { i = 1; }
void func1(int &i){ i = 1; }
int i = 0;
func1(i); // волшебного значка нет, i не изменилось
func2(i); // волшебный значок! i изменилось.

Смотрите, операторы в теле функций одинаковые, а работает по-разному, и всё из-за волшебного значка! При этом можно даже не разбираться, как это работает, даже не знать про какие-то указатели. Как-то само присваивается, из-за чудесного значка.

Программисты Си долго сопротивлялись, но программисты-волшебники победили, и ссылки появились в Си++.

Оставить комментарий

Спички Сапожникова

И снова продолжаю разбирать находки с чердаков.

Иногда среди чердачного хлама попадаются коробки́ спичек, один такой, советских времён, я уже выкладывал. На этот раз хочу поделиться фотографией оборотной стороны дореволюционного коробка.

Мало что проясняющая для современного обывателя надпись «безъ сѣры и фосфора» означает, что спички производились по шведской технологии — без ядовитого белого фосфора (он заменялся красным), а серу, которая сильно воняла при горении (что породило поговорку «сначала вонь, потом огонь»), заменили воском, стеарином или парафином, пропитав ими головку спички.

Старая коробка спичек с надписью «Безъ серы и фосфора», фирмой, основанной в 1887 г., и логотипом с якорями.
Задник дореволюционной (1888—1905 гг.) коробки спичек Сапожникова, фирма основана в 1887 году

Как и написано на этикетке, фабрика, произведшая коробок, основана в 1887 году. Её основатель — Иван Исаакович Сапожников родился в деревне Барминская Пустошь Бобинской волости Вятского уезда, вблизи станции Вятка, в семье крестьянина. Однажды Иван Исаакович узнал, что в Слободской волости появился новый промысел — спичечное производство, заинтересовался, разузнал подробности и в 50-х годах 19 века организовал производство спичек на дому.

Сначала работала только семья Ивана, но товар пользовался большим спросом, производство ширилось, вскоре пришлось нанять других крестьян в своей деревне, потом задействовать рабочие руки из других сёл. Спрос рос и Иван Исаакович решил построить собственную фабрику. Купил за бесценок землю на болоте и в 1887-м году открыл фирму «Первая паровая спичечная фабрика И. И. Сапожникова с сыновьями».

Дела шли хорошо, продукция стала экспортироваться за рубеж. В 1900 году предприятие Ивана Сапожникова вышло в лидеры губернии: годовой оборот производства составил 260 тысяч рублей, продукция сбывалась в Казанскую, Пермскую, частично в Вятскую губернии, в приволжские города.

Чёрно-белая фотография: мужчина в тёмном костюме сидит слева, женщина в светлом платье стоит справа, её рука на его плече; фон — студийный с радиальным узором.
Сапожников Иван Исаакович с женой, владелец фабрики в д. Сапожнята (бывш. Барминская пустошь)

В мае 1909 года был учреджён торговый дом с названием «Иван Исаакович Сапожников с сыновьями», а 1916 году открылась ещё одна спичечная фабрика близ слободы Дымково.

Но наступила революция, в 1918 году спичечная фабрика Ивана Исааковича была национализирована и в 1920 году получила название «Красная Звезда». Дальнейшая её история мне уже малоинтересна.

Хоть бренд и исчез, но судя по легкообнаруживаемым на специализированных ресурсах генеалогическим деревьям, потомки Ивана Исааковича живы-здоровы и продолжают интересоваться своим предприимчивым предком.

Оставить комментарий