Многие годы софтварные компании скрывали от нас это. Читайте скорее, пока не удалили, и распространяйте как можно шире.

Вы до сих пор думаете, что огромные корпорации обладают большим штатом разработчиков, которые пишут им программный код руками? Наивно. На дворе 2016 год, и правила полностью изменились. Сейчас легко доступны чудовищные вычислительные мощности, о которых 10 лет назад нельзя было и заикнуться. Ваш телефон мощнее, чем вычислительные модули, которые ставили на космические корабли. А человеческое время стоит страшно дорого — в особенности время квалифицированных программистов, которыми, словно пчёлами, якобы набиты офисы технологических гигантов.

Не знаю, кто начал это первым, но это был изящный и логичный ход — во всей своей безумной топорности. Если на обычном пользовательском компьютере мы можем генерировать случайный программный код и проверять его сотнями килобайт тысячи раз в секунду — то только представьте, что могут мейнфреймы, кластерные системы, и даже системы, построенные на видеокартах, которые обладают огромной производительностью на параллельных вычислениях. Как вы думаете — зачем нужен штат из сотен технических писателей, которые выверяют техническое задания и вылизывают до последнего символа, чтобы было понятно даже дровосеку из лесов, который никогда не видел компьютера? Возможно, вы уже сделали единственный логичный вывод. Эти технические задания в качестве входных и выходных параметров скармливаются огромным генераторам случайного кода, которые за считанные часы или даже секунды выдают готовый программный продукт, на написание которого у живых людей ушли бы годы жизни.

Вы чувствуете звоночек в голове? Всё резко встало на свои места! Например, производительность современных программ, которые требуют кучу места на диске, памяти и процессорного времени. Конечно — ведь код случаен и совершенно не оптимален! Пока вы делаете свою работу, программа может заниматься вычислением абсолютного значения числа пи, прокладыванием маршрутов звёздного неба, общением в чатах или просто зависнуть в сотнях бесконечных циклов. Никто не знает, что там происходит на самом деле — но никого это не волнует, ведь программа выполняет поставленную задачу!

Всё стало ясно. Политики, запрещающие раскрывать код приложений. Объём и требования приложений. Глюки и зависания. Уязвимости. Странные, непонятные или односимвольные названия переменных в коде. Сложность поддержки легаси кода. Даже опечатки это просто случайно сгенерированные ошибки, вкравшиеся в недостаточно точно поставленное техническое задание!

Уровень заговора ужасает. Впрочем, не все знают, в чём принимают участие. Созданы даже специальные концепции и методологии, чтобы показать, что случайный код в порядке вещей. Как иначе кому-то в голову могла прийти концепция TDD, когда сначала пишутся тесты, а потом сам код? Зачем иначе сотни фреймворков и автоматизированных инструментов тестирования? Всё — для того, чтобы прикрыть, что разработчиков в компании больше нет.

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

Запомните это. Распространите это. Человечество должно знать настоящую угрозу, которая над ним возникла — беззлобного и безжалостного мутанта из симбиоза технологий и жадности. Я не знаю, сколько провисит этот пост. На прошлой неделе нам в офис поставили огромный гудящий шкаф. Директор сказал, что это биткоин майнер, но зачем он нам тут? А на этой неделе уже пошли слухи о сокращении отдела разработки… Возможно, вы обо мне больше не услышите.

P.S. Сегодня пятница, и пост этот пятничного формата, но эта шутка — повод задуматься о качестве того, что мы делаем. Поскольку очень часто я провожу целые сутки в позе Мыслителя — только рука закрывает моё лицо в искажённом фейспалме. Порой объяснить некоторые вещи я могу только генератором случайного кода или состоянием тяжёлой наркотической зависимости. Ребята, давайте писать код, который качественно лучше случайной последовательности байт! Кстати, хех, майнер у нас действительно стоит.

P.P.S. Отвечу на комментарии позже, тут какие-то люди пришли, вероятно партнёры. НЕЕЕЕЕЕЕЕ
Поделиться с друзьями
-->

Комментарии (58)


  1. Mabusius
    02.12.2016 11:50
    +3

    Аминь брат! Теперь мне все стало понятно! Понятно откуда берутся эти люди-роботы, которые пишут сразу и бек и фронт и о которых вечно мечтают работодатели!


    1. inkvizitor68sl
      02.12.2016 14:59

      Ещё и админят всё это на сдачу.


      1. MaximChistov
        02.12.2016 15:51

        еще и работодателю приплачивают за такое-то счастье самореализации


  1. SamoilowAlex
    02.12.2016 12:07
    +4

    Так вот откуда берется это бесчетное число js-библиотек, фреймворков и просто js-шлакософта, которые дублируют друг друга и сами себя(переписывая с нуля при каждом обновлении версии), и код которых здоровый человек не в состоянии понять.

    Стоп, а существует-ли Поттеринг? Может шумы в Пыщ-пыщ-аудио и жиреющий с каждой версией код systemd — это просто результат работы генератора кода.

    А если запустить генератор кода на выполнение невозможного проекта, то «свободные радикалы» не сформируют в нем искусственный интеллект?


  1. Dark_Rider
    02.12.2016 12:12
    +1

    Странно, что еще Путина не упомянули.


    1. Ra-Jah
      02.12.2016 15:28
      +2

      Его тоже случайно написали.


  1. aikeps
    02.12.2016 12:16
    -2

    You make my friday!


    1. A-Stahl
      02.12.2016 12:58
      +3

      Может таки «made»? Или каждый раз? Каждую пятницу? :)


      1. aikeps
        02.12.2016 13:17

        Ну как бы пятница еще не закончилась ))


        1. A-Stahl
          02.12.2016 13:22
          +1

          Ну тогда «You are making my friday». В процессе, так сказать…


          1. aikeps
            02.12.2016 13:25
            +1

            ok
            A-Stahl — You are making my friday
            ))


          1. roir
            03.12.2016 14:37
            +1

            И это не совсем верно. Получается, что процесс еще продолжается, но очевидно, что человек уже прочитал статью. Это чистый present perfect — действие завершено, но период времени еще не закончен.

            You have made my friday


    1. aikeps
      02.12.2016 18:25

      оригинал — www.youtube.com/watch?v=mevxenJ6Mtc
      как же тут все строго ))


      1. qw1
        03.12.2016 01:34

        Так цитируйте правильно.

        Go ahead — make my day
        Совсем иной смысл


  1. Varim
    02.12.2016 12:20
    +2

    Ребята, давайте писать код, который качественно лучше случайной последовательности байт!

    Это для себя, для души такое может быть, хочу качественный код, хочу спагетти код.
    А на работе надо — как работе надо


    1. martin_wanderer
      03.12.2016 11:54

      даже на работе надо так, как готов завтра мучаться, сопровождая сегодняшний код


      1. qw1
        03.12.2016 16:50

        На работе никогда не знаешь, что будет завтра.

        Можно потратить 2 дня, делая универсальный механизм вместо простейшего костыля, но потом к этому месту никто никогда не вернётся, или вернётся, но понять костыль будет гораздо легче, чем универсальный механизм.

        Или послезавтра заказчик скажет: «верни всё, как было, — не пригодилось».


        1. martin_wanderer
          04.12.2016 02:46

          Так я о том и говорю, что если нет код-ревью, то это личное дело разработчика, спагетти он пишет, или хоть сколько-то структурированный код. В моей практике «код возвращается», поэтому я пишу так, чтобы мне завтра было понятно.

          А вот любители «универсальных механизов» у меня в печенках сидят — гениальная же идея, запилить убер-комбайн, который никогда, кроме как для текущей задачи, использован не будет. Даже если будет еще одна похожая задача. Потому что мало универсальный механизм сделать, надо еще сделать так, чтобы о его существовании знали те, кому он может понадобиться.

          Я считаю, что универсальный vs костыль — вообще некорректная постановка вопроса. Код должен быть а) понятным, б) легко переделываемым. Например: понадобилась мне переменная с какой-то, скажем, датой, ок — сделали переменную. Завтра появилась какая-то минимальная логика ее вычисления — тут же выкинули ее в отдельную функцию. Понадобилось ее читать из базы и еще черти-откуда, все уже внутри функции. Послезавтра стало ясно, что вся эта логика не нужна и вообще можно захардкодить — так и сделали, выкинув функцию, чтобы не затрудняла чтение.


  1. lexs
    02.12.2016 12:37

  1. Sega100500
    02.12.2016 12:38
    +1

    Вы что там такое курите, а?


    1. Garbus
      02.12.2016 13:03

      Пятница, что тут еще сказать?
      Но по сути, недалеко от истины. Чем больше проект, тем монструознее не просто код, а грамотно написанное ТУ и схема взаимодействия данных в нем. Какой уж тут ИИ, если простая оптимизация учета в организации, порой выглядит подвигом Геракла в конюшнях?


      1. Am0ralist
        02.12.2016 16:17
        +1

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


  1. Fedarod
    02.12.2016 12:57

    В программировании произошло то, что когда-то произошло в строительстве. Теперь код будут писать джамшуты за еду, а настоящих программистов-архитекторов будет так мало, что их будут знать поименно. Так что у рядового погроммиста сегодня два пути — бригадиром-тимлидом в бэкэнд или архитектором-дизайнером во фронтэнд и работать пока не сядут глаза и не отвалятся руки.


  1. Altaisky
    02.12.2016 12:57
    +1

    Если серьёзно, то нейросеть, пишущая код, должна появиться с минуты на минуту, если уже не появилась.


    1. kristoferrobin
      02.12.2016 14:05
      +1

      знаете как называется самое полное, понятное и корректное ТЗ? код (с) commitstrip


    1. Sormovich
      03.12.2016 21:21

      Эту нейросеть ждут с нетерпением для написания симулятора живой клетки

      http://www.nanonewsnet.ru/news/2016/uchenye-rabotayut-nad-sozdaniem-pervoi-trekhmernoi-modeli-zhivoi-kletki

      Далее, для симулятора органов и организма человека
      И далее, Биг Дата, ИИ, глубокое машинное обучение для диагностики и лечения стволовыми клетками in vivo


  1. Olorin111
    02.12.2016 12:57

    Это даже страшнее, чем у Пелевина. Вам бы писать попробовать. И я сейчас не о софте.


    1. jehy
      02.12.2016 14:09

      Да пишу периодически. Просто потенциальный профит от этого гораздо меньше, чем от работы тимлида…


      1. Leutenant
        02.12.2016 14:26

        Также думают и большие корпорации :)


    1. glockbender
      02.12.2016 16:35

      Подскажите в какой книге он об этом писал?


      1. Olorin111
        06.12.2016 00:05

        Конкретно об этом у него не было. То о чем здесь — сюжетной линией Омон Ра навеяно, скорее.


  1. GeraldIstar
    02.12.2016 12:57
    +4

    Уважаемый jehy, Мы же предупреждали вас о том, что будет, за разглашение информации. Извините, но за Вами уже выехали. Сами понимаете, кому дорогу перешли.


    1. Keyten
      02.12.2016 13:20
      +1

      А у вас запятая лишняя.


      1. JerleShannara
        02.12.2016 15:53
        +1

        Спокойно, сейчас наша новая нейросеть поправит нейросеть предупреждения о разглашении в области пунктуации. Эээ, а зачем мне калашников в лицо су


  1. erema86
    02.12.2016 12:57

    «Я бегу чтобы жить
    А вокруг ликует паранойя» (Ария)


  1. iehrlich
    02.12.2016 12:57

    Уровень заговора ужасает. Впрочем, не все знают, в чём принимают участие. Созданы даже специальные концепции и методологии, чтобы показать, что случайный код в порядке вещей. Как иначе кому-то в голову могла прийти концепция TDD, когда сначала пишутся тесты, а потом сам код? Зачем иначе сотни фреймворков и автоматизированных инструментов тестирования? Всё — для того, чтобы прикрыть, что разработчиков в компании больше нет.

    Шутка перестаёт быть шуткой, если поменять настоящее время на будущее, с учётом ретроспективы последних 40-50 лет. Ну и разработчики конечно останутся, в реальном-то мире. Хотя с академической точки зрения они в такой системе действительно не очень нужны с определенного момента. А что вы думаете про UML? :)


  1. Mii
    02.12.2016 13:48

    Преимущество от реализации такой схемы перевешивают все ваши примитивные страхи. Скорее бы


    1. jehy
      02.12.2016 14:10

      Ваш ник похож на линию продукции Xiaomi. Совпадение? Не думаю.


      1. Mii
        02.12.2016 15:43

        Великий Утюг Мао загладил мою провинность и направил сюда червей в вашей голове удоборять.
        Мой ник существует дольше, чем Xiaomi, это совпадение.


    1. Nekto_Habr
      02.12.2016 15:00

      Вот и я думаю. Скармливаешь компьютеру свои пожелания (пока еще оформленные в ТЗ, но думаю в будущем можно и в свободной форме, и даже с матом), а он тебе — решение. Что плохого? Ошибки? А кто из «живых» разработчиков (то есть, людей) их не допускает?

      :)


  1. jedishat
    02.12.2016 14:05

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


    1. qw1
      03.12.2016 01:39

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


  1. mictiax
    02.12.2016 14:05
    +2

    Замечательная небольшая антиутопия. Вообще, если уж программистов смогут заменить ИИ, то большинство других специальностей тем более. Мы будем одними из последних в этом великом плане по автоматизации. А потом SkyNet пофиксит нас, как излишний биологический вид.

    Программисты — не нужны. Программисты — это лишняя прокладка между ученым и компьютером.
    Программисты не разбираются ни в одной предметной области. Это мне так одна преподша по физике в универе говорила.


  1. edd_k
    02.12.2016 14:26
    +1

    Зачем писать качественный код, когда есть «as is»?

    Бесполезно призывать к качеству в asis-бизнесе. Не будет его там никогда.


  1. AgentSIB
    02.12.2016 15:40

    Автор слишком много знает… Братство программистов скомпрометировано… НА КОЛ ЕГО!


  1. Equin0x
    02.12.2016 17:12

    Немного устаревшая информация. Сейчас обычная Nvidia Tesla, подключенная к /dev/random и гитхабу вполне справляется с написанием винды за 3 месяца.


  1. alexhott
    02.12.2016 17:32

    Вы пропустили один щаг
    сначала тысяча псевдо-программистов создают кучу случайного кода
    потом только его скармливают гиганскому мейнфрейму
    он его перемешивает и выдает тестерам


    1. Am0ralist
      02.12.2016 18:07

      не тестерам, а тестирующей нейросети!


  1. avigmati
    02.12.2016 20:14
    +3

    image


  1. lpwaterhouse
    02.12.2016 20:14

    Так ведь платят же. Поэтому хранить тайну мы будем вечно.


  1. kelevra
    02.12.2016 20:40

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


  1. Alexey2005
    02.12.2016 22:16
    +1

    Предметная область фрагментируется всё сильнее, причём время жизни отдельных фрагментов быстро падает.
    Это лет 20 назад вы могли всю свою жизнь оттачивать ваши знания C++ и изучать нюансы кодирования под WinAPI. Теперь же не существует по-настоящему универсальной, всеобъемлющей и при этом живучей технологии. Например, изучая JS и React, можете ли вы быть уверены, что через 3 года они ещё будут востребованы?
    Отсюда возникает потребность в кроссплатформенности. Никто не может себе позволить писать код для всех 256 платформ, все хотят написать один раз, и чтоб более-менее работало везде. Именно в эту бездонную дыру и улетает вся производительность современных систем — чтобы выстроить кучу абстракций, способных сделать код универсальным. Если бы существовала одна-единственная платформа с чётко очерченными и неизменными характеристиками, из неё удалось бы выжать максимум…
    Второе — никто не может позволить себе быть профессионалом, т.к. уже невозможно изучить ни одну предметную область за сколь-нибудь разумный срок, хотя бы сравнимый со сроком её существования. Уже сейчас кодеры вынуждены играть в лотерею, пытаясь наугад выбирать платформы, языки и фреймворки «новой волны» пока те ещё не стали популярными. Потому что когда станут, учить их будет уже поздно, как раз изучите к моменту их кончины.
    В дальнейшем проблема будет только нарастать, и в пределе любой софт будет писаться кодерами, которые в первый и последний раз в жизни видят используемый стек технологий — ведь все эти фреймворки и инструменты загнутся даже быстрее, чем будет дописан продукт.


    1. qw1
      03.12.2016 01:43
      +1

      Если бы существовала одна-единственная платформа с чётко очерченными и неизменными характеристиками, из неё удалось бы выжать максимум…
      Да, но рано или поздно на рынке возникло бы предложение, от которого трудно отказаться: «Вы из платформы выжали максимум, поэтому, если хотите большего, вот вам новая платформа. Она почти как старая, но на 20% лучше» )))


  1. klod_ua
    02.12.2016 22:40
    +2

    уже можно плакать, ибо есть заказчики, прочитав такое, не поверят в последний абзац, и в понедельник будут требовать новую ОС через 3… ну 5 дней. Мне было сказано, что не компьютеры управляют нами, а мы ими… и не важно что там кто-то криворукий внес…


  1. maydjin
    03.12.2016 21:14
    +1

    Полностью согласен, половина моего офиса, включая меня генерирует случайный код. Особенно в пятницу.


  1. netch80
    03.12.2016 21:49
    +3

    Мне тут подсказали, что техзадание обычно пишут тем же методом. Так что всё в порядке.


    1. handicraftsman
      04.12.2016 13:19

      Да, техногенный апокалипсис уже тут.


  1. hzs
    05.12.2016 11:24
    +1

    Не, не стоит бояться кода машины.
    Я вчера вечером такого наговнокодил, оно хотя и работает, но ни одному генератору случайных чисел такой код и не снился.
    Если Скайнет решит захватить планету, с десяток говнокодеров его быстренько утихомирят.