Серия «Курьёзы программиста»

7

Ох уж этот *СиПлюсПлас*

Серия Курьёзы программиста

Так получилось что я научился писать на языке С++. Как так получилось? Амбиции, тщеславие, желание выебнуться. Главные чувства, пульсирующие в моём сердце, когда я слушал лекцию Рылова В. по плюсам в нгу на фите. До сих пор помню его слова:

Спустя два года изучения, я понял что знаю весь язык в совершенстве. Спустя семь лет практики я осознал, что не знаю его совсем.

(с) Рылов В.

Я начал кодить на плюсах примерно на втором курсе универа, т.е. 2015 год. Сейчас двадцать четвертый, жесть. Девять лет прошло. Конечно я не кодил непрерывно на этом языке. Последний год до работы на заводе я вообще бросил их, обещая себе наивно, что не вернусь к ним. Думал, что перешёл на Python. Но... Вот я снова с ними. В первые года отношений я испытывал влюблённость, меня тянуло к ним как сейчас тянет к своей мадам. Но потом стали появляться звоночки. Причём громкие. Мне больно было слушать их. Сердце разрывалось. Я не понимал, язык ведь идеальный, на нём можно столько крутого всего делать. На нём делают ААА игры (и ни на чём больше!), потому что такой уровень науки (да-да, в компьютерных играх используются бешенные технологии) можно захерачить только там. Чтобы игра выглядела красиво, игралась драйвово, ничего не лагало. На этом языке такие мощные штуки делаются, ну разве кроме запуска ракет. Там вроде до сих пор Fortran в моде. Короч писец. Язык крутой. И понятное дело не простой. На нём сложно (тогда мне казалось, что это сложно, хи-хи-хи) программировать. Я принял эти правила. Но почему было так больно. Когда...

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

Вывод:

0a


Код выводит число в шестнадцатеричном формате. Мне, как embedded программисту часто приходится работать именно с этим представлением. Выяснил, что плюсах до 20 стандарта вообще какие-то проблемы с выводом шестнадцатеричных чисел. Есть функции на Си, но блинский, плюсы, ё-моё, а своё?

Идём дальше. Теперь нам потребовалось написать вот так:

Вывод:

15 45 e4

Да, кто внимательный, заметил, что пиздец чёт дохуя одинаковой хуйни. Программист на то и программист, что любит избавляться от дублирования. Я по крайней мере точно, у меня это синдром. Прям не могу спокойно на это смотреть. Я специально использовал переменные разного типа данных, чтобы не было соблазна запихать их в массив и в цикле перебрать это добро. Поэтому решение с моей колокольни лишь одно: нужно реализовать собственный манипулятор ввода/вывода, по примеру с setw, setfill или hex. Как истинный гуру программирования я заглянул в свою душу, чтобы отыскать ответ, а душа мне говорит:

Гугли. Ну а хули, я загуглил. Вот ответ. Портянка слабо говоря немаленькая (именно длину кода я имею в виду). Однако у меня получилось встроить её в проект:

Итого, что мы имеем. Я добился уменьшения длины строки. Теперь вместо

<< std::setw(2) << std::setfill('0') << std::hex << (int)a

я напишу:

<< Utils::hex << a

Результат на лицо. Я доволен. Пока не начал считать строки кода...

Было 6 строк кода, а теперь 32! Вау, сэкономил ... длину строки. Да, конечно я могу вынести пространство Utils в отдельный файл и подгружать, когда мне нужно воспользоваться этим "волшебным" манипулятором ввода/вывода. НО: а я воспользуюсь им вообще когда-нибудь? Зачем я потратил 4 рабочих часа на это? Ну были бы у меня те 3 длинные строчки (в рабочем проекте мне нужно вывести 6 переменных, но написать пришлось бы всего один разок). Что я получил? На самом деле я получил удовлетворение. Малюсенькое. Да, теперь я спокоен. Но проблема в том, что я это не контролирую. Если я вижу, что могу что-то улучшить, я это делаю практически не задумываясь, чего мне это будет стоить. Сколько сил уйдёт.

Да, вы можете сказать, что не в языке дело, а во мне. Да, это правда. НО блять сука но. Но заключается в том, что этот язык, язык С++ даёт мне кучу возможностей для улучшения. Буквально бесконечную возможность способов себя заебать.

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

В целом вот весь тэйк, я нарик и снова попал в заложники.

Показать полностью 4
2

Я ~программист~ ~~программирую~~ ~кодирую~ ~пишу код~ занимаюсь магией

Серия Курьёзы программиста

Сейчас наверное я уже так не ощущаю, но когда-то для меня это было настоящим волшебством. В один момент я достиг такого уровня кодинга и познания вселенной программирования, что уверился в своём могуществе. Что я могу запрограммировать буквально что захочу. Почему-то когда рассказывают про обучение чему-то, показывают график, где ты вначале считаешь себя богом этого дела короткое время, а потом много времени убеждаешься, что ты дно. По мне это как-то неправильно. И даже не потому, что это спойлер (хотя у меня было не так), а просто есть ощущение, что первый этап, первое ощущение определённым образом принижается. Типа это наивный взгляд. Совсем юный, "зелёный" - любимый эпитет эксперта в области. Он ещё зелёный в этом. Тип ребёнок. Во-первых почему это плохо???

Я вспоминаю то время, и оно очень сильно отдаёт теплом. Когда мне папа купил книжку по Visual Basic. Как я переписал код из книжки, самый первый пример, калькулятор. И запустил его. Это был не консольный калькулятор, а полноценное оконное приложение с кнопочками. Боже, как я обожал кнопки. Пиздец обоссаться можно было. Это был неистовый кайф как из текста получалась живая программа. Я чувствовал её дыхание, как байтики катались по шине в компьютере, чтобы показать мне эту красоту.

Ладно, я шучу, я тогда всего этого не знал. Но магию, дуновение чего-то прекрасного я точно ощущал. Это был шедевр. Даже сейчас вспоминая это, мне не кажется это чем-то детским. Или зелёным. И хочется передать, поделиться с другими своим видением. Не вот этой погоней за бабосиками, айтишными зарплатами - фуу, мне даже слово айти в чём-то противно. Потому что как будто слово айти спрятало внутри себя магию программирования. А может даже выплюнуло и оставило программиста голого, работающего за еду.

Короче приглашаю всех к моему столу, вкусить это прекрасное блюдо, вспомнить его аромат из детства и что с ним происходит сейчас у меня на работе:) Жду ваши истории, впечатления, когда впервые с этим столкнулись и как вы наслаждались послевкусием [forward into comments]. Мы на канале в серии статей😁 Курьёзы программиста, да начнётся магия!!!

Показать полностью
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества