Всем здравия!
В этот раз публикация не совсем по теме канала, зато от всей души.
В комментариях к одной из прошлых публикаций прозвучало, что автор из "эйтыжпрограммистов". Если под этим подразумевать специалистов широкого профиля, то, наверное, я именно из них. Просто с некоторых пор программистами стали именовать людей, которые уже отличают клавиатуру от мыши, но ещё могут позволить себе системный блок назвать процессором. Про то, что они в принципе не способны написать ни одной программы, вообще молчу.
Просто в старые-стародавние времена (1982 год), когда я впервые познакомился с программированием, у нас не было возможности позволить себе такую роскошь как специализация. В Вычислительном центре (ВЦ) было только два отдела: программирования и эксплуатации. Начинал я в "эксплуатации" как оператор ЭВМ, затем недолго (после поступления в ТРТИ на "Автоматику и телемеханику") поработал в группе техобслуживания, а когда закончил первый курс, меня перевели в отдел программирования. Все программисты владели всеми используемыми в работе языками программирования. И могли и меню для столовой санатория обсчитать, и психологический тест составить.
Позже я ушёл в частный бизнес. Это было начало 1990-х. Мастерских по ремонту компьютеров было, в буквальном смысле, "раз-два и обчёлся". Поэтому волей-неволей надо было уметь и системник разобрать-почистить-собрать обратно (и чтоб ещё и работал после этого!), и "винду" поставить, и сервак поднять, и сеть проложить-настроить, и даже офисную мини-АТС подключить и настроить.
А конкретно в моём случае ко всему вышеперечисленному добавилось ещё и телевидение: студию скоммутируй, операторов научи, заставки/отбивки/концовки нарисуй, рекламу/передачи к эфиру смонтируй; а также наружная реклама: макет нарисуй, на плоттер-каттер отправь, излишки обдери и на основу наклей.
В общем, скучно не было. А параллельно всему этому ещё и программы писал, некоторые из которых по сей день работают, хотя уж 20 лет минуло.
К чему я это всё
Сейчас времена изменились и на смену универсалам пришли узкие специалисты. Как шутил покойный Михаил Задорнов: "пришёл специалист по правой ноздре, в левой вообще не ориентируется"!
Это не хорошо и не плохо – это реальность. Сегодня можно быть React Senior Developer и слабо разбираться в нативном JavaScript или лихо "печь" проекты на Yii2 и "мелко плавать" в "чистом" PHP.
Жизнь заставила меня с огромным недоверием относиться ко всевозможным фреймворкам, потому что косяки там есть гарантированно, а вот исправить их я не могу. Я наступал на эти грабли и с MFC (C/C++), и с .NET (CShapr), и с VisualBasic+Access, и позже уже в веб-разработке. Пишешь всё в точности по документации, а оно в некоей специфичной ситуации работает самым неожиданным образом. Поэтому я везде, где это возможно, предпочитаю писать на "чистом" языке – пусть это медленнее, зато все косяки точно твои собственные, а значит ты сам же и можешь их устранить.
Один из ярчайших примеров из прошлого: на рубеже 1990-2000 писал я на VisualBasic+Access программу учёта рекламы, в которой надо было преобразовывать даты в полный текст (типа: 22 апреля 2021 г) и обратно. Это легко делалось стандартной функцией, и проблем, по идее, быть не должно было. Пока не пришёл февраль месяц. Вот тут-то и выяснилось, что вместо "февраля" получается "феврапя". Если не присматриваться, то сразу и не заметишь, но в бухгалтерских документах это всё равно недопустимо. После целого детективного расследования косяк нашёл в системном файле Windows oleaut32.dll. Я честно написал в поддержку мелкомягких о найденной проблеме с указанием двоичного смещения от начала файла и требуемого значения байта, однако ответ был в стиле "в нашем офисе лампочка горит нормально". Сначала просто исправил байт двоичным редактором и добавил DLL в дистрибутив, в WinNT 4.0 всё было ОК, однако в Windows 2000 установщик давал ошибку CRC и файл не устанавливал. После чего плюнул и сделал "костыль" – функцию-обёртку для стандартной, которая меняла "п" на "л" и обратно, в зависимости от формата преобразования.
Сейчас – в эпоху "эффективных манагеров" – заказчику надо, чтобы проект был сделан быстро, качественно и недорого. И он (заказчик) совершенно искренне не понимает, почему, как минимум, два из этих трёх требований несовместимы друг с другом.
Вот и гонятся все за "валом по плану" (кто пожил в СССР меня поймут) – лепят монструозный фреймворк на простенький, в сущности, проект, только чтобы уложиться в дедлайн. И никому нет дела, что это сродни поездке за булкой хлеба на седельном тягаче с фурой. Экономия получается копеечной, а потом персонал заказчика годами мучается с неповоротливым монстром, который слабо поддаётся "дрессировке".
Что-то я увлёкся... Возвращаясь к "тыжпрограммисту" – поскольку сопутствующие навыки сисадмина уже наработаны и никуда не делись, то я и делюсь на этом канале своим личным опытом решения некогда возникавших у меня проблем. Я не претендую на непогрешимость своих решений – возможно, того же (или лучшего) результата можно было достичь быстрее и проще, может проблема была вообще в другом – кто знает!..
За сим всё. Всем бобра (или добра?) и всяческих вкусняшек по жизни!