Я уже около 30 лет пишу на C++, а последние несколько лет пишу, используя исключительно Qt + Qt-Creator. За несколько лет я более-менее освоил и эту библиотеку, и ее родную среду разработки. Если кто не в курсе, то это сегодня, наверное, самая мощная библиотека, содержащая для программиста множество заготовок, и в которой есть практически всё, что душа предпенсионного программиста пожелает. Из тех заготовок, которые содержит эта библиотека, формируется примерно 80% практически любой программы, которую делает программист, использующий эту библиотеку. Но в силу её монстроузности, освоить эту библиотеку полностью практически невозможно, поэтому "курить доку" или "шерстить форумы" - это наше всё на веки вечные. Специфика рода деятельности - никуда не денешься! "Учиться, учиться и еще раз - учиться!"(с)
Но и с документацией проблемы. То, что ее много - это, с одной стороны, хорошо! Но её очень и очень много! И иногда возникает просто психологическое отторжение (вырастающее у некоторых в рефлекс) - просто не хочется что-то искать в этой куче материалов (хотя ее основа и идеально структурирована), а ищешь решения сначала сам. Да, тут еще сказывается рефлекс «старорежимных» программистов – сначала подумать самому, а только потом уже искать что-то готовое , но это … про другое.
Конечно, не без проблем, но в целом получается неплохо - по большей части пишем, как поём (в целом), но иногда спотыкаемся и несколько часов (а то и дней) ковыряемся в какой-нибудь ерундовой мелочи. И не то, чтобы это раздражает ... на самом деле это уже давно привычно, по-другому у нас - программистов - и не бывает, но, тем не менее, хочется, чтобы было вообще без всяких спотыканий. Да и волнения для немолодого программиста от всяких таких «спотыкалочек»... зачем оно? Надо бы уже обходиться без всего этого, надо бы уже поспокойнее работать. Хотя бы к концу карьеры достичь программистской нирваны! :-)
И тут появился ChatGPT, его "соплеменники" и производные и от него, и от них.
И вот не успел я еще толком сообразить что к чему, как уже народ (мои друзья и знакомые) SQL-запросы пишет почти исключительно через ИИ. И вот уже и мой сын какие-то алгоритмы на C++ начинает писать с того, что дает задание ИИ набросать эскиз. И вот уже и его супруга, пытаясь разобраться в том, что им в очередной раз дал в универе не совсем адекватный преподаватель по программированию "на плюсах", просит ChatGPT дать свою интерпретацию решения поставленной задачи и получает от ИИ такую интерпретацию, что всё сразу становится понятным! В общем, обложили меня со всех сторон! Получается, что я какой-то единственный архаичный динозавр среди всех их - молодых и борзых! Но мало мне всего этого - теперь еще и моя супруга с каким-то недобрым (для меня) интересом посматривает на то, каким бы образом приспособить ИИ для написания технической документации по софту, который я пишу. Но это уже край! Кто в доме хозяин? Я хозяин! Значит, кто должен быть первым? Я должен быть первым! А значит, первым в моей семье (сын своей семьей давно живет отдельно) в деле освоения ИИ должен быть именно я!
И я «рискнул».
Споткнулся очередной раз о какую-то техническую проблему, связанную со спецификой применения какой-то библиотеки Qt, побарахтался сам, порылся в доке ... Час, другой, третий … что-то не решается в общем-то простая задачка - где-то какая-то мелочь мешает. Попросил помощи коллег, но коллеги тоже не смогли разобраться, поскольку задачка редкая. Ну и решил я спросить у ИИ. И ИИ сразу подсказал именно то, что мне и было нужно! Через пару-тройку минут у меня всё заработало!
Ура! Чудо чудное !
Однако никаких чудес тут нет. Как я уже говорил, по Qt С++ сегодня имеется огромное количество документации, форумов, примеров и даже больших решений в исходных кодах. А для ИИ - это то, что надо. На таком материале он хорошо учится. И он научился! И , похоже, научился замечательно.
Но я не был бы автором Катакомбы, если бы не стал ковыряться вглубь - думать о том, что же реально происходит и куда всё это ведёт.
А происходит, как мне кажется, вот что ...
И начну я немного издалека. Иногда я слышу разговоры о том, что ИИ вот-вот будет вместо программистов писать программы. Ясно, что так могут говорить лишь те, кто в программировании или совсем ничего не понимает, или знает о нем лишь поверхностно, или те, кто выбивает очередные сумасшедшие инвестиции на развитие технологий ИИ (эти еще и не такого понаобещают). ИИ - не волшебник, он если и будет что-то писать, то лишь что-то небольшое - кусочки. "Кубики лего", из которых уже программист будет выстраивать системы. Может когда-то будет иначе, но пока и в обозримом будущем - так.
Современный ИИ - не экстраполятор, он всего лишь интерполятор. Для тех, кто в теме, этим всё сказано.
Но, вместе с тем, просматривается еще один возможный вектор эволюции отрасли разработки ПО, связанный с развитием ИИ. И связано это со сложными, но действительно эффективными платформами программирования – такими, как Qt C++. С появлением ИИ в качестве настолько мощного помощника программиста, освоение сложных и эффективных платформ среднестатистическим (и даже слабым) программистом будет намного (на порядки) проще. И к чему это приведет? А к тому, что, в итоге, на рынке будет существенно больше относительно высококлассных программистов, а не сплошное засилье пэтэушников от программирования с питоном наперевес. Да, остается проблема знаний и умения проектирования решений (алгоритмической и математической их составляющей), но, хотя бы, технологическая составляющая выйдет на новый уровень.
Замечательно! Эх, заживем!
Есть, правда, одно сомнение …
Экосистема (а это именно экосистема) будет развиваться лишь при наличии необходимого стимула. А в данном случае стимул – это соответствующие задачи. Причем, на сопровождение бухгалтерии и т.п. никакого Qt C++ c его мегамощью не нужно. Для "утилизации" нового качества разработчиков требуется запрос на те задачи, для которых Qt С++ и т.п. действительно нужен. А что это? Системы управления бизнесом, производством? Нет! Поскольку там уже лет 50 реального запроса нет - одни разговоры и ничего больше. В лучшем случае - тривиальные информационные системы. Кто всерьез занимался SAP, Oracle т.п., тому много про это объяснять не надо. Или просто на современные решения в ТОИР или в производственном планировании посмотрите внимательно ... через призму нормального образования. Или на бизнес-планирование посмотрите. И сразу всё становится кристально ясно. Сплошная тривиальщина с гигантскими маркетинговыми бюджетами.
А может быть оборонка? Тоже нет! Запрос там, по идее, должен быть, и когда-то возможно (или даже неизбежно) будет, и, наверное, даже какой-то есть уже сейчас, но там, как я понимаю, на самом деле, очень немного задач. Более того – там грядет стандартизация (интуиция мне это подсказывает), и, в итоге, каждая сложная задача будет решаться всего один раз (например, задача построения какого-нибудь расписания, или распознавания целей, или т.п.), а потом будет везде применяться. Грядет мир типовых ИРЗ (информационно-расчетные задачи)! Да святятся ТЗ на них! Да будет воля их! Да придет царствие их! Я очень поверхностно знаком с этой сферой, но почему-то мне кажется, что там всё близко к тому, что я тут "настебал".
Медицина и всякий биотех ? Возможно! Но вся эта сфера, пока еще, - сплошная "алхимия", "шарлатанство" и "фейкомётство", а писать сложный софт по постановке задачи "алхимиков" и, тем более, "шарлатанов", а уж тем более - жуликов ... Дело гиблое. Да и у кого на это столько нервов ?
Конструкторская и строительная сфера ? Но там, вроде бы, уже определились отраслевые стандарты софта. А что-то более сложное ... так там еще прикладные науки не наработали на качественный прорыв, а без него и старый софт неплохо справляется - всякие катии, аутодэски, лиры и иже с ними.
Экономика ? Я имею ввиду макро-экономика, социально-экономическое прогнозирование, анализ, синтез. Вот тут есть где применить серьезные технологии! Нелинейные динамические балансовые модели, имитационные модели, сложные экспертные модели и т.п.. Красота! Но эта сфера крайне политизирована, и объективность там не нужна никому. А придумать как еще лучше дурить друг друга, дурить начальство и "паству" с помощью наукообразных моделей ... они всё это еще никак придумать не могут. Потому и тормозят. И слава богу!
Стратегия ? А для этого нужны действительно стратеги, а не всякие школьники-"геостратеги" и им подобные!
Ситуационное управление ? А эта тема еще жива, или уже почила в бозе под гнетом новомодного управления инцидентами ?
Образование ? RIP!
Определение социальных рейтингов и т.п. ? Т-с-ссс! Не буди лихо, пока оно тихо!
А что тогда остается для того, чтобы действительно во всей красе заиграли эти эффективные технологии?
Компьютерные игры и виртуальные миры!
И что в итоге ? Развитие одного из самых интеллектуальных направлений человеческой деятельности - разработка сложного программного обеспечения - приводит, в итоге, к тому, что почти все лучшие интеллектуальные силы этого направления будут задействованы для … развлекухи масс. Приехали!
Какая-то ерунда получается. "Это просто какой-то позор !" (с)
Мне кажется, что такой перекос между возможностями и потребностями, в итоге, выльется в нечто ... весьма неприятное для окружающих. Примеров из истории на ходу что-то не припоминается, но понимание того, как живут большие системы, подсказывает мне, что закончиться это может какой-то революцией (в противовес эволюции). А хочется уже как-то поспокойнее... устойчивое развитие и всякое такое. Хватит уже на нашем веку потрясений. Может можно предстоящие лет 40-50 как-то поспокойнее ?
PS. Я знаю, что мои тексты читают и потенциальные мои заказчики, и заказчики настоящие. И возможно у кого-то из них на основе прочитанного закрадывается мысль о том, что теперь на проекты можно выделять меньше средств, в силу того, что разработка становится проще. И если у кого-то такие крамольные мысли есть, я сразу говорю - "Побойтесь Бога!". Вы уже давно таким, как я, платите не за то, что "ударил молотком", а за то, что мы "знаю, куда ударить!". А "знаю ..." - это не про Qt C++ и ИИ, а про глубокое знание прикладной области. Вашей области! Очень глубокое, зачастую - более глубокое, чем даже у "корифеев" этой области. А программирование - это так ... просто инструмент. Один из многих. И разговор о нем - это всего лишь "подмалевок", чтобы на его основе еще раз задуматься о чем-то намного более важном.