image

К чему ведет нас прогресс в области производства программного обеспечения? Средства разработки ПО становятся все более совершенными, некоторые этапы разработки полностью или частично автоматизированы. Консерваторы, конечно же, скажут, что программист в настоящее время – уже не торт, что подобная автоматизация ведет к упрощению задач и потере квалификации инженера-программиста. По их мнению, на фоне развития инструментария происходит деградация кадров.

Но если копнуть глубже, возникнут вопросы. О каких именно программистах речь? О тех, кто проектирует ПО? О тех, кто разрабатывает алгоритмы? О ведущих разработчиках или простых «кодерах»? В любом случае, одного мнения здесь быть не может.

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

Точка отсчета


Как сказал Михаил Густокашин на лекции в «Яндексе», давайте начнём с самого начала:
В самом начале у компьютеров не было даже клавиатуры! То есть всё было очень плохо — у них не было ни клавиатуры, ни экрана, были перфокарты (это такие штучечки с дырочками или с отсутствием дырочек).

И программы в то время писали с помощью машинных кодов — у каждой операции в компьютере (сложение, умножение, какие-то более сложные операции) был код. Люди сами по табличке выбирали этот код, всякие адреса в памяти, всё это выбивали руками и засовывали в считыватель — и оно всё считалось. Конечно, работа программиста была, наверное, тогда не особо интересной — проделывать дырочки — и с развитием науки и техники, конечно, начали придумывать всякие более «интересные» штуки.

Например, ассемблер (Assembler), который уже несколько облегчал жизнь. Ну, как он облегчал жизнь? Вместо запоминания того, что там какой-то «волшебный» код у команды, использовались всякие слова, похожие на «человеческий» английский язык — какие-нибудь add или mov — ну и затем перечислялись регистры или области памяти, переменные, с которыми нужно эти операции производить. Но понятное дело, что это в общем-то тоже требовало достаточно большого напряжения ума, чтобы держать у себя в голове, в каком регистре у нас что лежит, где какие переменные и что вообще происходит. Почему так происходило? Потому что компьютеры были «глупые» и ничего более «умного» понять не могли.

image
Изображение с сайта devdelphi.ru

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

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

Уровень выше — порог ниже


С появлением языков программирования высокого уровня жизнь программистов становилась легче, а производительность – выше. Программы не нужно было переписывать для каждой машины. Появились компиляторы, среды разработки. Fortran, Algol, а позже BASIC, PASCAL, C действительно были больше похожи на «человеческий» язык.

Конечно, по-прежнему требовалось значительное время на их изучение, но это было более выгодное вложение времени и сил. В процессе работы компилятор указывал программисту на синтаксические ошибки в его коде, что в особенности облегчало разработку начинающим специалистам. С появлением модульности и переносимости кода проекты стали больше, а программисты начали широко использовать в проектах сторонние библиотеки, больше работать в командах. Это избавило их от необходимости подробно разбираться в том, как работает весь проект.

С появлением объектно-ориентированного программирования (С++, Object Pascal и так далее) тенденция повторного использования кода усилилась. Кроме того, со временем среды разработки становились более дружественными, и желающих освоить азы программирования становилось больше.

Программирование — в массы


Постепенно программирование перестало быть прерогативой хардкорных инженеров и математиков. Число проектов стремительно росло, программное обеспечение проникало в разнообразные сферы производства. Этому также способствовало и развитие систем управления базами данных. Появились даже такие специализации как «оператор СУБД».

Постепенно понятие «инженер-программист» стало многогранным: кто-то занимался алгоритмами, кто-то проектировал интерфейсы, кто-то просто занимался кодированием – то есть реализовывал в коде готовые алгоритмы своих коллег. Само программирование стали делить на две крупные группы – системное и прикладное: кто-то разрабатывал операционные системы и драйверы, а кто-то писал приложения для автоматизации бизнес-процессов на овощной базе.

Для каждой из специализаций требовались индивидуальные компетенции, поэтому переход от одной специализации к другой был затруднителен. Но минимальный порог вхождения в разработку ПО стремительно снижался.

Появление языков (Java, C#) и соответствующих фреймворков еще больше способствовало этому снижению, а также дифференциации специалистов по направлениям и уровням подготовки.

В результате у программистов закрепилась градация наподобие [Junior-разработчик, Senior/Middle, Team Lead, Software Architect]. С одной стороны, продвинутый инструментарий разработки позволял менее квалифицированным программистам успешно справляться с относительно простыми задачами, не имея глубоких знаний и серьезных навыков. С другой стороны, с каждой последующей ступенью карьерной лестницы порог вхождения также становился выше.

image
Изображение с сайта

Но если специалист задерживался в статусе начинающего, он мог заметить одну особенность: бурно развивающиеся технологии разработки ПО еще сильнее снижали порог вхождения, и среднестатистический Junior урожая N-го года знал и умел еще меньше, чем его старший товарищ — Junior (N — k)-го года.

Веб-разработка методом «тяп-ляп»


С развитием веб-разработки программистам потребовалось встать на другие рельсы (ассоциация с Ruby On Rails здесь тоже уместна), чтобы освоить новые языки и стек интернет-технологий разработки в целом.

После того как веб-разработка, начавшая набирать обороты только в 90-х годах, совершила огромный скачок в развитии, Михаил Густокашин может свободно пускаться в подобные рассуждения:
Допустим, вы хотите написать новый Facebook (социальную сеть). На чем вы будете это писать? HTML, CSS — это дизайн, а мы хотим, чтобы там можно было фотографии добавлять, друзей, комментарии оставлять.

Для скриптовой части — то есть то, что будет происходит на стороне клиента, — это JavaScript.

На удивление, он написан на PHP — и Facebook, и многие другие большие проекты. Пришлось, конечно, написать свои какие-то вещи, чтобы это всё-таки работало нормально, а не так как «тяп-ляп» было сделано, но они справились.

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

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

На волне автоматизации


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

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

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

Мы выяснили, что по этому поводу думают эксперты, представители ИТ-индустрии:



image
Алексей Бычко, старший релиз-менеджер (Percona), разработчик проектов Percona Server for MySQL, Percona XtraDB Cluster, Percona XtraBackup, Percona Server for MongoDB, PQuery, преподаватель курса «Системное администрирование» в ИТ- Академии Алексея Сухорукова:

Появляется всё больше и больше сред для автоматизации рутинных вещей – это помогает лишний раз не писать что-то вручную, не изобретать велосипедов. Многое уже предусмотрено в интегрированных средах разработки, из которых можно вызывать нужные библиотеки и так решать стандартные задачи. Для тех, кто умеет и привык думать, это хорошо – можно сконцентрироваться на основном, на логике приложения. (Это люди «старой школы», которым для написания качественного кода хватит и простейшего текстового редактора).

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

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

Но если у нас есть задача, которая конкретной процедурной системой, библиотекой или средой решается плохо или не решается вовсе (коллеги постарше помнят, что бывает, когда в написанный в C++ Builder или Delphi текстовый редактор попадает большой файл – ничего не листается и всё тормозит, и это никак не поправить), то нам нужно взять «чистую» систему, которая даёт больше свободы, и позвать программиста, который согласен не просто гуглить, а писать адекватное решение самостоятельно с нуля.

image
Олег Бунин, основатель компании «Онтико», организатор конференций Highload++, РИТ, FrontendConf, RootConf, WhaleRider, AppConf, Backend Conf.
Как организатор крупнейших в России конференций для разработчиков я вижу специализацию, упрощение рутинных процедур, но мозги и глубокое понимание происходящего востребованы не меньше, а даже больше, чем раньше.

С появлением автоматизирующих разработку инструментов ценность людей, которые понимают, что происходит под капотом таких инструментов, растёт. Требования, которые к ним предъявляются, растут. Объём знаний, который нужно освоить, растёт.

Конечно, речь идёт не о создании лендингов, а о разработке мало-мальски серьёзного проекта.

image
Макс Лапшин, создатель ErlyVideo, создатель Flussonic, разработчик многих известных решений в области стриминга видео.

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

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

Всё дело в том, что индустрия идет вперед. Да, на компьютерах больше не 640 КБ памяти, и программисту под Windows больше можно не волноваться о памяти вообще. Но на замену большим компьютерам пришли маленькие, и их много.

Сегодня всё равно приходится думать, как записать на прошивку IP-камеры софт, упихнувшись в 200 КБ на диске. Приходится думать, как упихнуть код в маленький IOT-сенсор, который должен на своей крохотной батареечке прожить год с радиообменом.

Индустрия очень стремительно расширяется, и в ней появляется место людям, которые не очень глубоко разбираются в деталях работы ЭВМ, но безусловно: сегодня людей, которые знают, как работает, например, DMA, нужно больше, чем 10 лет назад просто потому, что индустрия до сих пор растет.

image
Александр Лямин, основатель и CEO компании Qrator Labs, одного из ведущих мировых поставщиков в области защиты от DDoS-атак.

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

Так вот, программисты нужны в компаниях совершенно разного толка. Какие-то компании производят холодильники, какие-то — клепают скворечники, а некоторые, как SpaceX, действительно разрабатывают звездолёты. Поэтому пропорция 1:9, естественно, не догма, она везде будет своя. Где-то, действительно, достаточно нескольких кодеров в штате. Где-то нужны уже хорошие прикладные программисты — люди, обладающие алгоритмическим багажом и способные грамотно его применять.

В ряде случаев требуется уже даже не столько программист, сколько computer scientist — человек способный не только, как минимум, грамотно модифицировать алгоритмы под нужды конкретной ситуации и задачи. Следующий уровень — это data scientist, хороший прикладной математик. Продолжая аналогию, скворечник можно склепать из общедоступных стройматериалов, но сплавы для ракеты на строительном рынке уже не купишь. На этом уровне задача уже начинает выглядеть примерно так: вот проблема, вот массив данных, нужны гипотезы-алгоритмы-PoC и, как следствие, постановка задачи для реализации. И в процессе создания действительно хороших продуктов — рано или поздно, так или иначе — задачи нетривиальной обработки данных возникают неизбежно.

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

Естественно, действительно высококлассных программистов на рынке труда мало, а задач для них много, поэтому очень давно возникла идея: разработать инструментарий, с помощью которого специально обученный оператор ЭВМ сможет справиться с задачами высокой сложности. Но все попытки сделать это, можно сказать, провалились. Язык SQL был разработан изначально для того, чтобы им мог воспользоваться любой пользователь, даже не имеющий навыков программирования. Сейчас этим языком пользуются программисты, а операторы ЭВМ даже после тренингов не в состоянии написать даже более-менее простой запрос.

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

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

Поэтому вряд ли когда-нибудь кому-нибудь удастся превратить программиста в оператора ЭВМ окончательно.
Поделиться с друзьями
-->

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


  1. Amareis
    16.06.2016 20:49
    +13

    сможет ли «программист» превратиться в «оператора ЭВМ»
    Нет, не сможет.

    Ну, вдруг кому лень всё это читать )


    1. perfect_genius
      16.06.2016 22:51
      +1

      Не, там написано «вряд ли».


    1. perfect_genius
      17.06.2016 08:06

      21ый век, 2016 год, информационное общество, нанотехнологии, гравитационные волны, будущее…
      А человек захотел шевелить чёрным кругом на белом экране посредством джойстика, а не может. Придумал идею, надо визуализировать и показать всем, а не может. Какое же это будущее, когда для таких простых вещей человеку необходимо получить специфические знания?
      Рано или поздно программисты исчезнут, без сомнений. Любой сможет программировать свою технику простым «объяснением» чего он хочет. Я, простой художник, захотевший сделать простую игру, к этому тоже буду причастным 8)


      1. poxu
        17.06.2016 11:06
        +2

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


        1. perfect_genius
          17.06.2016 12:45

          Я сейчас именно этим и занят — созданием среды рисования артов любой сложности без умения рисовать (достаточно сфоткать себя в нужном ракурсе и позе, которые наложатся на 3D-сцену и останется выбрать нужный «фильтр», чтобы выглядело нарисованным от руки).
          А «программирование для всех» — это рисовать линии пальцем на изначально белом экране телефона или планшета, и среда сама разбирается, что хочет человек и в конце компилирует в код. Проще только голосом объяснять или прямой связью мозг-компьютер.
          Надеюсь вскоре написать статью здесь про это.

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


          1. Amareis
            17.06.2016 12:49

            Программисты в описываемом вам случае просто исчезнут как класс, но никак не станут операторами ЭВМ )


            1. poxu
              17.06.2016 12:54
              +1

              В описываемом случае будет огромное количество специалистов по работе со средой для программирования игр и ещё более огромное количество программистов :). Как сейчас есть программисты, а есть моделлеры всякие.


            1. perfect_genius
              17.06.2016 12:58

              Ну что же теперь, все профессии когда-нибудь исчезнут 8)


              1. Toshiro
                17.06.2016 15:17

                Не все)) Многие профессии никуда не денутся даже если наш вид эволюционирует в бессмертную энергетическую форму жизни, способную силой мысли мгновенно перемещаться в соседние вселенные))

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

                Это не так) Программист, это в первую очередь человек, профессионально умеющий работать с информацией) Инструменты вторичны, а порой и вовсе несущественны) Так что в ближайшие пару миллионов лет никуда мы не денемся)

                Начнут выпускать био-компы, научившись копировать живые мозги, просто начнем кодить через РНК/ДНК и будем использовать живые нейронные сети вместо искусственных))) Квантовые компы уже на подходе) Возможно привычная математика будет заменена на какую-то специфическую, или чем-то новым, но программист все-равно останется программистом)

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


                1. poxu
                  17.06.2016 15:37

                  Не все)) Многие профессии никуда не денутся даже если наш вид эволюционирует в бессмертную энергетическую форму жизни, способную силой мысли мгновенно перемещаться в соседние вселенные))

                  Это какие?


                  1. Toshiro
                    17.06.2016 16:01

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

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

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

                    P.S: древнейшую профессию не стал упоминать, т.к. этот пример очевиден)))


                    1. poxu
                      17.06.2016 16:12

                      Серьёзно? Если наш вид эволюционирует в бессмертную энергетическую форму жизни, сспособную силой мысли мгновенно перемещаться в соседние вселенные, нам понадобятся врачи? Психологи? Администраторы, прости господи? Повара, военные — вы думаете, что энергетическая форма жизни это как человек, только энергетическая? Только ест не шоколад, а гравитационные поля?

                      Если подходить с таких позиций, то наверное ИИ действительно упрётся в те же самые проблемы, что мы упираемся сейчас. Ну то есть с кем провести ближайшую ночь — с вот тем сгустком тёмной материи или вот с той чёрной дырой, вы так себе это представляете? :)


                      1. Toshiro
                        17.06.2016 16:20

                        Есть причина по которой вы не допускаете, что у энергетической формы жизни могут быть свои «врачи»?) Да, разумеется копаться в кишках они не будут, т.к. никаких кишок уже не будет. Я не знаю как это будет выглядеть, но законы физики не запрещают нарушать волну энергии различными способами)) А значит что-то аналогичное по смыслу врачам точно будет))

                        Или вы не допускаете, что у разумного сгустка энергии может поехать крыша, и ему может потребоваться помощь?)

                        Или вы твердо считаете, что из всех потенциально существующих разумных рас на этапе энергетической формы существования мы ни с кем точно не будем воевать?)))

                        И почему у вас в вариантах с кем провести ночь одни брюнетки?)) Рыжие, шатенки, русые и блондинки тож ниче так))


                        1. poxu
                          17.06.2016 16:35

                          Почему у энергетической формы жизни не будет врачей? Каверзный вопрос, да :)

                          Я думаю, что всеми такими вещами будет заниматься ИИ, разумный, но не имеющий личности. А эти самые энергетические существа будут заниматься только целеполаганием. Вот поэтому профессии вообще не могут уцелеть. Что касается потенциально существующих рас — непонятно за что воевать вообще.

                          Рыжие и шатенки прекрасны, но в женщине должна быть загадка и я по инерции назвал самые загадочные объекты с которыми знаком :)


                          1. Toshiro
                            17.06.2016 17:02

                            Мы сейчас перейдем к дискуссии о том, зачем таким существам вообще ИИ, если они могут сами «силой мысли» оп-оп и в продакшен))

                            Но согласитесь, программист который кодит LifeSim про пищевую цепочку на python и программист, который кодит рождение новой солнечной системы на «квантовой пене» — суть одно) Знание паттернов, архитектур, инструментов, целей и задач, и бесконечные попытки понять чего же хочет «заказчик»)))

                            Он возможно будет называться уже не программистом… но ведь и мы уже не «механики»… мы — развитие той профессии, выделившееся в новую ветвь)


                        1. perfect_genius
                          17.06.2016 17:07

                          Вот мой вариант будущего профессий, если интересно: когда человек доберётся до возможности изменять черты своей личности, то каждый захочет удалить неприятные черты и сделать себя «добрее».
                          В итоге все люди будут так похожи, что начнут сливаться и такой человек будет знать все профессии.
                          Если он сам может себя защитить, чинить, кормить и разобраться в себе, то понадобиться ли вообще слово «профессия»?


                          1. Toshiro
                            17.06.2016 17:14

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

                            Далее, сливаться с кем-то… а ради чего?) Сила цивилизации, как и любой группы в разнообразии) Будь мы все одинаковы, наши действия будут легко предсказуемы, ведь что верно для группы в целом, верно и для каждого отдельного ее представителя, а это равносильно добровольному самогеноциду))

                            И даже если 1 человек будет знать все профессии, это не отменит ограничения по пространству и времени) всеравно придется выбирать чем заниматься, а что откладывать или даже отказываться))


                            1. perfect_genius
                              17.06.2016 18:39

                              Значит ты сольёшься с «злой» группой личностей.
                              Сливаться, чтобы не держать две копии почти того же человека для экономии ресурсов.
                              Группы человечества итак почти одинаковы и предсказуемы. Два лучших друга или возлюбленных, у которых одинаковое мировоззрение, скорее всего и поступят одинаково. Есть ощущение, что типов личностей не так много. «Сколько людей — столько и мнений» — абсолютная глупость, не может быть 7 миллиардов мнений насчёт ситуации.
                              Разнообразие нужно лишь для эволюции.
                              Зная всё не придётся выбирать чем заниматься, что-то откладывать или отказываться. Личность одна, а количество тел-аватаров — по количеству требуемых дел. Все их знания в общий котёл.
                              И даже если эти несколько личностей не сольются, то могу расшарить знания.


                              1. Toshiro
                                20.06.2016 13:23

                                Во-первых, в масштабе вселенной и с учетом эволюции человека, довод про экономию ресурсов выглядит бессмысленным)

                                Во-вторых, две копии «почти» того же человека… ну так блин вся суть в деталях)) весь смысл в этом самом «почти» +))

                                В третьих, группы человечества одинаковы и предсказуемы только в рамках определенных классификаций, которые априори УЖЕ делят человечество на группы по схожим признакам) Да и то, это деление чуть более, чем условно))

                                Стереотипы безусловно нужны и важны, но они как мат. модель — допустимые упрощения в рамках задачи и достаточно далеки от реальности)

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

                                В пятых, 7 миллиардов мнений о ситуации — как нефиг делать) Просто из-за самого механизма работы сарафанного радио — каждый услышавший новость при пересказе другому добавляет отсебятины. И в итоге изначальная информация преображается, зачастую до неузнаваемости) Это работает даже в интернете, где вроде бы легко проверить первоисточник) Но всем просто пофиг)) Смысл фразы — об этом)

                                А далее по тексту, про «разнообразие только для эволюции» или про «зная все», у вас ничем не обоснованные утверждения) Со схоластикой я точно спорить не собираюсь)

                                А вот тема про одну личность и несколько тел-аватаров, это тема, согласен)) Это уже было несколько раз показано фантастами, например в Ghost In The Shell: Solid State Society.

                                Или Куалькуа из дилогии «Звезды — холодные игрушки» С. Лукьяненко, который равномерно размазан по вселенной в симбиозе с живыми существами и может переносить свое «сознание» между носителями, но при этом он фактически «один».

                                Вопщем есть интересные варианты))


          1. poxu
            17.06.2016 12:52

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

            Вот представьте себе, что у вас есть художник, который в вашем распоряжении 24 часа в сутки, вы вслух ему объясняете что хотите получить, а он рисует для вас картину. Вот это — реально рисование для всех.


            1. perfect_genius
              17.06.2016 13:06

              Просто я не хочу раскрывать деталей раньше времени.
              Снимок нужен только для ракурса и позы, их можно установить и без фото — мышкой, стилусом, пальцем тянуть на экране.
              Болванка настраивается как в любом редакторе персонажей в играх.
              Насчёт объяснения чего хочется («мрачнее», «реалистичнее», «брутальнее»?) — тоже интересно будет заморочиться, но это будет явно сложнее, чем с созданием программы.

              Хотя, я гляжу со своей колокольни геймдева, поэтому могу не знать, что в системном программировании не всё так «просто», посмотрим.


          1. Shamov
            17.06.2016 13:18
            -1

            Как только вы этого добьётесь, это перестанет быть актуальным. Если рисование станет слишком простым, то результат такого рисования перестанет кого-либо впечатлять. Так всегда бывает. Лет 20 назад можно было удивить людей тем, что ты нашёл что-то в интернете. Возможность искать в интернете была только у избранных. Попробуйте сейчас удивить кого-нибудь тем, что у вас есть доступ в интернет.


            1. perfect_genius
              17.06.2016 13:23

              Поэтому и написал «После такого упрощения вряд ли будут цениться программы, написанные человеком, чем арты, нарисованные с руки.»
              Раз всё можно автоматизировать, даже рисование кисточкой на бумаге/холсте, то художникам останется доказывать «душевность-человечность» арта только рисуя на виду.


  1. MaxAkaAltmer
    16.06.2016 22:50
    +1

    Консерваторы, конечно же, скажут, что программист в настоящее время – уже не торт, что подобная автоматизация ведет к упрощению задач и потере квалификации инженера-программиста. По их мнению, на фоне развития инструментария происходит деградация кадров.


    Я однозначно не ТОРТ, но с консерваторами отчасти соглашусь, становится много низкоквалифицированных программистов ввиду снижения порога вхождения в профессию, но и программистов стало больше, в том числе и квалифицированных.


  1. Shamov
    17.06.2016 11:21

    На самом деле, это всё вообще не про программирование, а про экономику. Капиталисты отчаянно желают удешевления труда программистов. А снизить стоимость рабочей силы в условиях свободного рынка можно только одним способом — через увеличение конкуренции на рынке труда. Вот они и мечтают о том, чтобы программистов стало больше. Но ведь чудес не бывает. Чтобы их стало больше, нужно снизить требования. Работа программиста должна состоять в том, чтобы её мог хорошо выполнять любой человек с улицы, прошедший двухнедельное обучение. Это задача минимум. А задача максимум — это разработать компилятор для естественного языка, на котором заказчик будет описывать требования к программной системе. Один раз разработать, а затем просто всегда использовать. Смешно, конечно. Но многие действительно думают, что рано или поздно прогресс приведёт к тому, что всё так и будет.


    1. MaxAkaAltmer
      17.06.2016 11:56
      -2

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


      1. Shamov
        17.06.2016 12:31
        +1

        Конечно, нет. Ведь то, что стоимость разработки такого компилятора будет сопоставима со стоимостью создания солнечной системы «с нуля», — это не фундаментальное препятствие. Чисто количественная проблема. Вот появятся 128-битные компьютеры и тогда можно будет оформлять настолько большие кредиты в банке. А сейчас просто сумма кредита не влазит в 64-битный регистр.


        1. MaxAkaAltmer
          18.06.2016 15:02

          Прогресс не стоит на месте, а идеального ничего не бывает, и если такой компилятор покроет 99% потребностей, можно сказать, что программисты не нужны, ведь основная масса задач — тривиальна. Взять Питон (или другой скрипт) и C++, первый пригоден в 99% процентах задач и успешно их решает снижая время разработки, но есть 1% который на нем решить невозможно. Так же С++ и Ассемблер. И с компиляторами с естественных языков будет то же самое чуть лучше, чуть хуже.


          1. Shamov
            18.06.2016 18:32
            -1

            Прогресс может и не стоит на месте, но его скорость такова, что на появление компилятора, покрывающего 99% потребностей, можно расчитывать не раньше, чем наступит тепловая смерть вселенной.


      1. man1ok
        17.06.2016 12:54

        Есть: проблема формулировки требований.


        1. MaxAkaAltmer
          18.06.2016 15:05

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


          1. qw1
            19.06.2016 12:17

            Не будет владелец бизнеса методично, по 5 часов в день, объяснять системе, какие нужны окна ввода данных, по каким формулам что должно считаться (не забывая про граничные случаи и исключения), как храниться (системе нужны будут оценки, хотя бы грубые, чтобы выбрать SQL или column storage).

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

            И не важно, естественный это язык или искусственный, это программирование. В этой профессии появятся свои уловки, как быстрее объяснить той или иной системе очередную тонкость.


    1. perfect_genius
      17.06.2016 12:55

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

      Вот бы Ватсона научить такому.


      1. Shamov
        17.06.2016 13:08

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


        1. perfect_genius
          17.06.2016 13:14

          Почему бы заказчику не видеть свои требования в реальном времени? Он видит результат и понимает, в каком направлении идти.


          1. Shamov
            17.06.2016 13:39
            -1

            Это как так? Вот ему, допустим, нужен софт для управления складом. Он обрисовал в общих чертах, что ему хочется. И перед ним сразу возникает действующая модель склада, которая управляется той программой, которую он заказал. И он в реальном времени видит, что происходит. Видит, как некоторые сотрудники читают фейсбук, потому что им сложно пользоваться программой и они воспринимают работу с ней как пытку. Видит, как рабочие не могут найти на складе нужные товары из-за того, что система использует неудачную систему для адресации мест хранения. И всё в таком духе.


            1. perfect_genius
              17.06.2016 14:39

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


              1. Shamov
                17.06.2016 14:49
                -1

                А программистам-то зачем давать её изучать? Откуда они знают, как работает склад? Причём не вообще, а конкретный склад заказчика.


                1. perfect_genius
                  17.06.2016 18:42

                  | Давайте сначала хотя бы людей научим правильно формулировать требования на естественном языке.

                  Из этого я понял, что из-за неправильно сформулированных требований страдают разработчики. Значит, им надо изучить его склад и написать всё как надо.
                  Если не страдают, то и проблемы нет — заказчик предупреждается, что программа может не соответствовать складу и потом для переделки придётся потратиться дополнительно.


                  1. Shamov
                    17.06.2016 20:26
                    -1

                    А вообще смысл всего этого в чём? В том, чтобы получить деньги с заказчика и впарить ему какую-нибудь бесполезную туфту?


                    1. perfect_genius
                      17.06.2016 21:06

                      Похоже, мы оба говорим о чём-то своём, поэтому я лучше прекращу обсуждение.


                      1. Shamov
                        17.06.2016 21:30
                        -1

                        В данном случае правильно говорить не «мы оба говорим», а «каждый из нас говорит». Видите, как сложно правильно формулировать даже самые простые мысли на естественном языке? А вы хотите, чтобы компьютер всё это распознавал и что-то потом программировал по мотивам…


                        1. perfect_genius
                          17.06.2016 21:50

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

                          оффтоп:
                          А вот насчёт «мы оба говорим» и «каждый из нас говорит» интересно стало. Собирался написать «каждый», но почему-то выбрал «оба». В чём отличие-то? Так не говорят или есть какие-то правила русского языка?


                          1. Shamov
                            17.06.2016 22:16
                            -1

                            Отличие в смысле. Слово «оба» имеет объединяющую смысловую коннотацию, а словосочетание «каждый из нас» — наоборот, разделяющую. И в том, и в другом случае речь идёт сразу об обоих, но в первом случае выражается единство, а во втором — различие. Правил на этот счёт, конечно, нет, поскольку правила не регулируют смысл. Всё зависит от того, что именно вы хотите сказать. Если про зелёный мяч вы скажете, что он красный, то это будет только смысловая ошибка. Никаких правил русского языка вы при этом не нарушите…


  1. JediPhilosopher
    17.06.2016 13:56

    «Мечта любого программиста — запрограммировать сам процесс программирования».
    Я когда-то разрабатывал такую штуку, которая позволяла компьютеру оптимизировать код программ (у меня там был поддержан ассемблер х86, байткод JVM и ассемблер пиксельных шейдеров) с помощью генетического алгоритма https://habrahabr.ru/post/265195. Оно работало, и даже находило такие оптимизации, до которых лично я бы не додумался, находя как некоторые нюансы работы отдельных инструкций, так и просто преобразуя и упрощая математические формулы.

    Когда-нибудь думаю в этом направлении все и пойдет, и компьютеры смогут программировать себя сами. Но до этого еще очень далеко.


  1. theg4sh
    17.06.2016 16:33

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