Программисты и джинны
Как писал Дуглас Адамс, компьютеры — самые старательные исполнители в мире и в этом смысле похожи на очень глупого но очень старательного ученика. Они делают в точности то, что мы им говорим, а не то что мы подразумеваем. И будто всегда находят способы показать тебе где ты что-то не учёл.
Программирование в этом смысле очень похоже на общение с джинном из сказок. Джинн исполнит любое желание со скоростью мысли, но обязательно попытается тебя обмануть.
"Хочу, чтобы программа считала проценты!"
- Без проблем, 0.1 + 0.2 ≠ 0.3. Потому что могу.
"Хочу работать с датами!"
- потирает лапки В феврале то 28 дней, то 29, а в UTC+14 уже завтра, когда у тебя ещё вчера.
"Сделаю так, чтобы на сатйе пользователи могли вводить имена!"
- Роберт'); DROP TABLE Students;-- уже спешит познакомиться.
Отладка вообще превращается в допрос джинна:
panic: runtime error: invalid memory address or nil pointer dereference
—_ Почему nil pointer dereference?_
— Потому что ты не сказал, что делать с null.
—_ Но там не может быть null!_
— показывает логи Сюрприз! 😁
Правишь это всё, тестишь, "Походу работает, задеплою сейчас в пятницу вечером, не ждать же понедельника..." — шепчешь ты себе под нос и идёшь за пивом.
Но прелесть конечно в том, что если ты достаточно аккуратен — джинн будет вынужден делать именно то, что нужно. Буквально. До последней буквы. Главное помнить: он всегда ждёт момента, когда ты скажешь «тут всё просто, что может пойти не так?»