Как на самом деле пишут софт в 2016 году
Многие годы софтварные компании скрывали от нас это. Читайте скорее, пока не удалили, и распространяйте как можно шире.
Вы до сих пор думаете, что огромные корпорации обладают большим штатом разработчиков, которые пишут им программный код руками? Наивно. На дворе 2016 год, и правила полностью изменились. Сейчас легко доступны чудовищные вычислительные мощности, о которых 10 лет назад нельзя было и заикнуться. Ваш телефон мощнее, чем вычислительные модули, которые ставили на космические корабли. А человеческое время стоит страшно дорого - в особенности время квалифицированных программистов, которыми, словно пчёлами, якобы набиты офисы технологических гигантов.
Не знаю, кто начал это первым, но это был изящный и логичный ход - во всей своей безумной топорности. Если на обычном пользовательском компьютере мы можем генерировать случайный программный код и проверять его сотнями килобайт тысячи раз в секунду - то только представьте, что могут мейнфреймы, кластерные системы, и даже системы, построенные на видеокартах, которые обладают огромной производительностью на параллельных вычислениях. Как вы думаете - зачем нужен штат из сотен технических писателей, которые выверяют техническое задания и вылизывают до последнего символа, чтобы было понятно даже дровосеку из лесов, который никогда не видел компьютера? Возможно, вы уже сделали единственный логичный вывод. Эти технические задания в качестве входных и выходных параметров скармливаются огромным генераторам случайного кода, которые за считанные часы или даже секунды выдают готовый программный продукт, на написание которого у живых людей ушли бы годы жизни.
Вы чувствуете звоночек в голове? Всё резко встало на свои места! Например, производительность современных программ, которые требуют кучу места на диске, памяти и процессорного времени. Конечно - ведь код случаен и совершенно не оптимален! Пока вы делаете свою работу, программа может заниматься вычислением абсолютного значения числа пи, прокладыванием маршрутов звёздного неба, общением в чатах или просто зависнуть в сотнях бесконечных циклов. Никто не знает, что там происходит на самом деле - но никого это не волнует, ведь программа выполняет поставленную задачу!
Всё стало ясно. Политики, запрещающие раскрывать код приложений. Объём и требования приложений. Глюки и зависания. Уязвимости. Странные, непонятные или односимвольные названия переменных в коде. Сложность поддержки легаси кода. Даже опечатки это просто случайно сгенерированные ошибки, вкравшиеся в недостаточно точно поставленное техническое задание!
Уровень заговора ужасает. Впрочем, не все знают, в чём принимают участие. Созданы даже специальные концепции и методологии, чтобы показать, что случайный код в порядке вещей. Как иначе кому-то в голову могла прийти концепция TDD, когда сначала пишутся тесты, а потом сам код? Зачем иначе сотни фреймворков и автоматизированных инструментов тестирования? Всё - для того, чтобы прикрыть, что разработчиков в компании больше нет.
Какие-то несколько лет, и проблема выйдет на качественно новый уровень с появлением квантовых компьютеров, вычислительная мощность которых просто необъятна для человеческого разума. После этого любая задача будет решаться генератором случайного кода. И нет - не подумайте, что я боюсь за свою профессию. Я боюсь, что однажды кости случайности так ударятся о стол вероятностей, что простейший текстовый редактор в качестве побочной функции сможет внедриться в центры управления ядерным вооружением и устроить настоящий апокалипсис.
Запомните это. Распространите это. Человечество должно знать настоящую угрозу, которая над ним возникла - беззлобного и безжалостного мутанта из симбиоза технологий и жадности. Я не знаю, сколько провисит этот пост. На прошлой неделе нам в офис поставили огромный гудящий шкаф. Директор сказал, что это биткоин майнер, но зачем он нам тут? А на этой неделе уже пошли слухи о сокращении отдела разработки… Возможно, вы обо мне больше не услышите.
P.S. Сегодня пятница, и пост этот пятничного формата, но эта шутка - повод задуматься о качестве того, что мы делаем. Поскольку очень часто я провожу целые сутки в позе Мыслителя - только рука закрывает моё лицо в искажённом фейспалме. Порой объяснить некоторые вещи я могу только генератором случайного кода или состоянием тяжёлой наркотической зависимости. Ребята, давайте писать код, который качественно лучше случайной последовательности байт! Кстати, хех, майнер у нас действительно стоит.
P.P.S. Отвечу на комментарии позже, тут какие-то люди пришли, вероятно партнёры. НЕЕЕЕЕЕЕЕ