Комментарии 52
Мне кажется тут дано неправильное понятие junior программиста. По крайней мере junior программисту очень очень просто объяснить, что "надо сделать" (добавь ту кнопку вот сюда, эту перенеси, ту перекрась, исправь опечатки, при поворот экрана сохрани введенные данные...), но это не всегда "просто сделать".
С ИИ тут закопаешься объяснять, что сделать, быстрее самому будет исправить такие задачи. Junior программист на этих задачах вырастет, а ИИ так и останется.
а ИИ так и останется.
вы правда в это верите??.... эх, правду писал Тим Урбан - люди умеют в линейные прогнозы и не умеют в логарифмы...
Когда появился пар, когда полетел самолет, когда полетели в космос и сделали компьютер, считалось, что через 50 лет будем вот вот уже цивилизацией 1го типа.
За хайпили 10 лет крипту, бигдату и водительский ИИ. И где они? В нашей жизни, но изменения не критические.
Вы заменили одно рассуждение по индукции другим рассуждением по индукции, причем по крайне сомнительному признаку (что общего у самолетов, крипты, и бигдаты?). Не надо так.
нененене, вы не с тем сравниваете :)
когда взорвали атомную бомбу, когда взорвали термоядерную бомбу, когда сделали ракету, которая максимум за 50 минут долетает до любой точки земного шара из любой другой точки земного шара.
какая цивилизация 1го уровня, о чем вы ? тут дайбог не повторить историю, когда "ну, да развалины, да неизвестная письменность"
( https://ru.wikipedia.org/wiki/Катастрофа_бронзового_века )
Так получается, что нам понадобится нейросеть для того, чтоб превращать поток сознания в понятные для других нейросетей команды?
И заново начнется история с миллионами языками и фреймворками.
Скажем... Назовём нейросети для преобразования речи в простую логику нейросетями низкого уровня! Внезапно. Потом нам понадобятся нейросетевые фреймворки для применения низкого уровня в различных областях, нейросети высокого уровня и нейросети-интрефейсы для связи этого всего. Ну и наконец понадобится вариативность. Будут нейросети высокого уровня, которые лучше пишут текст новостей, а будут те, что пишут код. И у меня совершенно нет никаких флешбеков, честно!
Мне кажется, что даже недооцененность уровня Junior разработчиков тут далеко не на первом месте. Все, поголовно все, кто рассматривает эту нейронку рассматривают какие то мизерные куски, которые эта сеть могла находить в готовом варианте уже в сети интернет. Потому что училась она еще (Скорее всего) через web scrapping. Вопрос насколько хорошо она отсеяла ошибочные, неправильные тупиковые для расширения решения - никто не рассказал. Ну сортирнула пузырьком она, ну нарисовала что-то на html. Если бы ей можно было скормить мокапы и она могла бы на выбор выдать фронт на React или Angular (который не надо было править) - тогда можно было говорить о том, что эта сеть умеет программировать. Пока (исходя из того, что показывают) умеет только писать несвязанные куски кода, что надо признать несложно, а вот как их друг с другом соединить правильно - это уже работа программиста. Потому что в том же самом фронте, как в данной статье есть много вариантов как кнопку сделать, или как сделать компонент. Можно написать на каждый чуть измененный компонент (ориентация или еще что-то) свой, а можно предусмотреть в пропсах. Вопрос что выберет эта нейронка. Скорее всего наколотит кучу кода, который обслуживать будет нельзя. А это не программирование.
Согласен, но зацепил один момент
Скорее всего наколотит кучу кода, который обслуживать будет нельзя.
Вот это как раз вполне может стать реальностью - новый уровень абстракции, когда код генерится каждый раз новый из описания и это описание само становится "высокоуровневым кодом". В конце концов, не так это далеко от того, что уже есть и вообще похоже на новую итерацию давно знакомого пути.
звучит как нужно нанять не джуна, а разраба разноробочего, тут заклепает тут подлатает
Для программиста такой инструмент, он как автодополнение кода. Всё что он сделает - даст большую скорость написания бойлерплейта. Если разработчик не может в архитектуру, то он просто будет клепать кадавров из таких ИИ генераций бойлерплейта, содержащих в сумме кучу архитектурных багов
Вот так выглядит готовый сайт по этому коду.
...
Not bad.
Не правда. Именно, что плохо. Это очень плохо в качестве сайта электронной коммерции. Он попросту не работает в этом качестве. Это правдоподобие требуемого результата, а не сам требуемый результат.
ИИ подберёт вам типовое (или очень похожее на него) решение из существующих, но он не сможет вместо вас объяснить самому себе, чем это типовое решение отличается от требуемого именно вам. Это ваша задача. И тут внезапно выясняется, что для объяснения ИИ, что не так в его решении, требуется больше времени, чем для создания аналогичного решения собственными силами. По факту программисты и сейчас объясняют компьютерам, чего от них требуется. Только делают наиболее оптимально для обеих сторон - с использованием ЯП высокого уровня. Да, требуется время, чтобы изучить соответствующий ЯП и особенности его употребления. Но и с общением с ИИ точно так же - нужно будет найти слова, которые понимает ИИ. Для разминки попробуйте на "сайт электронной коммерции" прикрутить через ИИ возможность добавления продуктов в продуктовую корзину. Кнопки там есть, нужно "просто добавить немного JS'а". И даже после этого он всё ещё не будет являться "сайтом электронной коммерции", нужно будет прикручивать доставку, оплату, учёт остатков и вот это вот всё.
А кодогенераторы были и раньше (например, GUI builder'ы появились во второй половине 90-х), но популярными они так и не стали. Если посмотрите код, который они генерят, то увидите причину, почему так (как заметили коллеги чуть выше - boilerplate).
А кодогенераторы были и раньше (например, GUI builder'ы появились во второй половине 90-х), но популярными они так и не стали.
Совершенно верно, т.к. код приходится ещё и читать. А знаете какие кодогенераторы стали популярными? Которые сами читают ЯВУ и пишут машкоды — это компиляторы.
Короче, Изя, нас таки опять пытаются учить коммерции! Наверное так же пугали программистов на макроассемблере.
Т.е., вы сводите к тому, что программы, создаваемые в ходе общения с ИИ, не нужно будет читать, т.к. они сразу будут создаваться в машкодах? Ну да, это явно эффективнее, чем создавать промежуточные варианты на ЯВУ, а потом использовать компиляторы. Дебажить, правда, сложно будет. Зато опять станут востребованы программисты на макроассемблере.
Но пока не появится ЯОВУОИИ (Языка Очень Высоко Уровня для Общения с "Искусственным Интеллектом") программистам на ЯВУ ничего не угрожает (кроме программистов на других ЯВУ - естественная эволюция языков). Пока что то, что я вижу, это попытка использования английского языка для получения каких-то результатов из обширной базы знаний людьми с нечёткими желаниями. Типа SQL в СУБД, но гораздо более аморфное.
А так-то да, игратся с новыми технологиями никто не запрещает. Я с GUI builder'ами тоже игрался в нулевых.
Я не свожу, я просто напоминаю, что человек не должен заниматься регулярным чтением нагенерированного машиной мусора. В таком случае нейросетка становится просто ещё одним компилятором. Может быть, в крайнем случае, ещё и дизассемблером в этот самый ЯОВУОИИ, но таких потуг я пока не вижу — все хотят заставить нейросеть «создавать код», то есть, заниматься работой компилятора.
Ну вы пытаетесь напугать ежа голой попой.
Программирование — это самая автоматизируемая профессия уже лет 70. Сначала программисты перетыкивали провода, потом пошли машинные коды (слава Тьюрингу за его универсальную машину), потом автокоды — машина стала сама переводить мнемоники в числа, затем ассемблеры, когда она ещё и метки пересчитывать стала сама, после ЯВУ, начиная с Фортрана, и т.д., и т.п.
С++ — это устарелый и перегруженный язык, который в большинстве применений не нужен: есть языки с ADT, сборщиком мусора и т.д.
Порог входа снижается, и очень скоро он может снизиться драматически. Раньше была профессия "писарь", потому что мало кто умел писать. Скоро то же самое может случиться с профессией "программист" (скажем, приложений или веб-сайтов) - "напрограммировать" его сможет любой, кто хотя бы умеет минимально мыслить о концепции системы и проводить абсолютно минимальный системный анализ. То есть, грубо говоря, любой человек с IQ больше 90.
Он с каждым переходом снижается драматически, и что?
Кстати, последнее время я вижу не снижение потребности в раб. силе, а наоборот, увеличение: индустрия отбрасывает нормальные практики программирования, упирая на агиле, на бесконечные юнит тесты в купе с динамически типизированными языками для больших проектов, С++ с его UB и прочей фигнёй.
То есть, грубо говоря, любой человек с IQ больше 90.
И тут у нас выяснится жуткий недостаток таких людей. См. недавнюю статью про то, как студенты решают задачки с помощью Гугеля.
P.S. С моей точки зрения, подавляющая часть «приложений» и «сайтов» просто не нужна. Ну я поборник плановой экономики, поэтому можно сказать, что я ничего не понимаю в рынках.
Ну вот во времена, когда "писарь" было профессией, количество текста, которое писалось в мире, было на много порядков меньше, чем сейчас. И сейчас "потребность в писательстве" ничуть не снизилась: обратите внимание, как многие "диджитал специалисты" и "номады" отчаянно стучат по клавишам почти без перерыва: они все время что-то пишут, хоть бы и сообщения в чате коллегам, или письма партнерам, или комментарии в постах на Хабре, и т. д. И тем не менее: сейчас за "чистое писательство" не платят. Платят даже за "грамотное писательство" (редактура/корректура), способность минимально запроцессить какие-то входные тексты и выдавить из себя какое-то ревью или саммари (новостная и обзорная журналистика, например), способность думать о системах (системный и бизнес-анализ), знания о конкретных типах систем и каких-то стандартов (техписательство), и т. д.
Так вот: за все способности, перечисленные выше, а также за многие другие, включая способность к программированию, платить скоро не будут.
Тут на Хабре большинство пребывает все еще в убеждении, что платить все равно будут, за что-то другое. Я согласен только в одном: платить будут "за красивые глаза", то есть, универсальный базовый доход. Но не только лишь везде. А какой-то еще особо креативной или "сложной" работы для армии белых воротничков и диджитал специалистов больше не будет.
Обратите внимание, что это не значит, что люди не будут делать сайты, приложения, анализировать системы, и т. д. - будут, так же как сейчас - пишут. Просто это будет неоплачиваемая деятельность. Оплачиваемым может быть только бизнес, который люди будут делать, играя роль СЕО-человека-оркестра, который один управляется со всеми ролями, густо делегируя все разным сеткам и системам.
И сейчас "потребность в писательстве" ничуть не снизилась:
внимание, как многие "диджитал специалисты" и "номады"
по клавишам почти без перерыва: они все время что-то пишут,
хоть бы и сообщения в чате коллегам, или письма партнерам,
комментарии в постах на Хабре, и т. д. И тем не менее: сейчас за
писательство" не платят
Ну это в програзме давно так. Чистое программирование «для себя» давно не оплачивается (оплачивалось он разве что в НИИ, в 70е), везде нужна та или иная прикладуха.
Более того, с точки зрения ак. Ершова, с кем я абсолютно согласен, программирование должно быть ещё одной грамотностью. Ибо программирование — это просто расширенная функциональная грамотность: умение писать и читать высокологичные тексты на формальных языках.
Но мы, если вы не заметили, движемся в сторону от обычной-то грамотности. В смысле, следующее поколение-то сконцентрироваться на 10 минут не может, как правило.
Так вот: за все способности, перечисленные выше, а также за многие другие, включая способность к программированию, платить скоро не будут.
Какие ужастики, право слово. У нас тут сейчас мировая война идёт, которая «война контроллеров и моторов», если вы не заметили. А вы рассказываете, что программирование не нужно. Ну это как рассказывать в ВОВ, что мотористы не нужны.
Оплачиваемым может быть только бизнес, который люди будут делать, играя роль СЕО-человека-оркестра, который один управляется со всеми ролями, густо делегируя все разным сеткам и системам.
Это вы какие-то мрии рассказываете. В реальном мире эти самые CEO строят необъятные пирамиды из менеджеров, тратя всю жизнь на то, чтобы остаться на вершине этих пирамид.
Сейчас у ChatGPT очень короткий "контекст". Поэтому не получится последовательно уточнять детали задачи, как это можно делать с человеком. Долгий контекст сделать я думаю не получится пока, потому что даже для коротких описаний когда задача состоит из нескольких подзадач логика их связывания в половине случаев ломается. Для более длинных задач логика разных подзадач вообще перестанет вязаться. Для того чтобы это заработало в теории обучения должно быть существенно улучшение в направлении построения сетью стратегий решения задач.
Сеть должна как бы последовательно волнами много раз сканировать возможные стратегии решения задачи, дообучаясь по ходу и подбираясь к оптимальному варианту. Такой техники пока как я понимаю нет. Но по субъективным ощущениям мозг как раз делает нечто подобное при решении задач.
Грубо можно считать, что сейчас сеть - это как очень опытный старичок-препод, который не задумываясь может выдать ответ на любой вопрос, потому что его мозг тренирован выдавать определенный выход на привычные входные вопросы. Но старичка можно попросить проснуться из подумать час другой над задачей которую он раньше не видел, проявив креатив в поиске решений. А ИИ пока нельзя пропросить. Он все равно выдаст решение "не приходя в сознание", которое просто логически сшивает то что он уже видел.
1. Изобретение письменности и ее распространение
2. Изобретение книгопечатания и его распространение
3. Изобретение и распространение интернета
Теперь настает очередь следующей — распространение ИИ. Пора поистерить)
Вы не очень понимаете, что такое legacy по-настоящему. Legacy — это наследие, то есть оно не просто старое, но оно ещё и ценное, причём не всегда понятно что именно там ценное.
В применении к типичному кроваво-энтерпрайзному legacy, этот код содержит выполнение каких-то требований, которые нигде, нигде больше не документированы. Поэтому если вы просто его возьмёте и перепишите, с учётом тех требований, о которых вы знаете, то с высокой вероятностью, у какого-то клиента в полнолуние что-то сработает категорически не так, как должно.
Простой пример:
sum = flt_arr[0];
correction = 0.0;
for (i = 1; i < ARR_SIZE; i++)
{
corrected_next_term = flt_arr[i] - correction;
new_sum = sum + corrected_next_term;
correction = (new_sum - sum) - corrected_next_term;
sum = new_sum;
}
return sum;
Очевидно, что алгоритм суммирования массива переусложнён — зачем-то добавлены correction
и corrected_next_term
. Давайте их уберём?
Я, видимо, недостаточно чётко выразился: в legacy коде нет информации о том, какая часть этого кода действительно важна.
А объять код целиком может команда copy
. Цель же рефакторинга legacy кода — это отделить те редкие части, которые действительно важны от наслоений мусора. И основная проблема — это не выплеснуть с водой и ребёнка. Для этого нужно иметь контекст предметной области, который может быть утерян.
То есть, в принципе, можно представить себе гениальнейшего программиста, посаженного внутрь видеокарточки, но этому программисту для рефакторинга legacy понадобится серьёзнейшим образом взаимодействовать с людьми, которые этим legacy пользуются. То есть, ему придётся выйти в реальный мир.
Без этого, к примеру, в системе складского учёта, нельзя будет заменить double
на float
в поле, куда записываем массу песка в кг, засыпанного в самосвал (внутри интернета не очень понятно, вдруг надо учитывать всё вплоть до песчинки? или же есть самосвалы, вывозящие миллион тонн?).
Для легаси уже хорошо если его нормально причесать, разбить на модули, провести анализ оптимальности используемых алгоритмов, выявить неиспользуемые куски кода и т.п.
Для этого ИИ не нужен, достаточно компилятора или стат. анализатора, если вы допускаете ложные срабатывания.
именно по-этому у меня осталась надежда только на ИИ..
ИИ — это инструмент, отражение человека. Если человек в теории не может что-то, ИИ тем более не сможет.
Зачем мне просить ИИ сделать уродливый и простой шаблон сайт-магазина, если я могу сделать/найти шаблон такого сайта и просто его повторно использовать? И он будет уже намного круче того, что было представлено. Пока перспектива очень сомнительная вот у этого ИИ.
А остальное какая то восторженная вода с вангованием и страшилками для детей. Наслушался этого в плане рисования, а теперь тут смешите меня.
Насчёт рисования - держу в курсе: ИИ до сих пор может делать только общие наброски пусть и впечатляющие. Это будут использовать художники будущего (потому что это дешево и быстро), но это не заменит художников. До сих пор дешевле и быстрее попросить художника нарисовать что-то, чем сидеть и крутить рулетку нейросети и подбирая к ней заклинание, которое наконец-то выдаст тебе то, что тебе нужно.
Раз в несколько лет ИИ радует нас прикольными вещами и особо впечатлительные на основе этого начинают придумывать антиутопии где все люди станут подчиняться компьютерам. В общем жаль, послушать бы что там реально происходит, а не вот это вот всё.
Ну эти генераторы можно использовать для вдохновения. Так что оно полезно, хотя, конечно, максимально настроено на эмоции. Ведь основная цель OpenAI — это получить финансирование, а для этого нужно именно казаться, а не быть.
Вот да, вдохновение, референсы, сырые наброски начальные, постобработка некоторая, которая требовать будет постпостобработки. В принципе относительно неплохо, но этим надо овладевать всем чтобы использовать. И насчёт "казаться" - это прям да. Смотришь некоторые такие нейросети и они прост взяли на витрину лучшие свои моменты с генерацией и то часто не пишут какая была строка написания, чтобы не оказалось что нейросеть сделала не то и не так.))
Казаться, а не быть — это слоган до-и-постсоветского мира. Поскольку мы с февраля опять возвращаемся в реальность из морока киберпанка, всё это начинает уходить.
Поэтому страхи, что «всех программистов заменит chatGPT», в общем необоснованы, скорее вебмагазинчики станут ненужными из-за того, что мир поменялся.
Люди будут учить на собственном примере, а всё остальное сделает машина
А что если полученная программа/модель уже на проде допустит критичную ошибку, кто виноват и что делать?
Я думаю программисты будущего будут скорее системными аналитиками, которые будут ставить супер подробные тз для ии.
Мне 15 лет, интересуюсь программированием ещё лет с 11 и хочу связать с этой сферой свою жизнь. Но я боюсь, что пока обучусь, пока стану грамотным специалистом, эта профессия уже будет не нужна. Стоит ли продолжать двигаться в этом направлении?
Смерть или эволюция. Что ждёт программирование в будущем?