А чем это принципиально отличается от ситуации, когда над проектом работают несколько разработчиков? Конечно, рано или поздно будут баги. И в какой-то момент кодовая база может превратиться в месиво, которое проще выкинуть и переписать. Это все и до LLM было
Упомянутый в статье Cursor можно установить и попробовать либо на существующем репозитории либо с нуля какую-нибудь программу написать. В бесплатную версию включено какое-то количество бесплатных запросов. Доступны разные модели, в т.ч. Claude 3.5.
LLM конечно такую структуру данных не напишет самостоятельно. Но это не означает, что LLM не будет полезной. Если взять в качестве примера тот же Cursor, то LLM там поможет вот так:
"Простое" автодополнение, которое уменьшит объем механического набора текста. Это хорошо работает для генерации каких-то стандартных конструкций языка, написания комментариев.
Можно попросить сгенерировать некий скелет/основу: какие-то классы, параметры конфигурации и пр. Дополнять скелет, конечно, придется самому
Можно попросить сгенерировать тесты для той самой многопоточной структуры. Вот тут LLM может сделать очень много полезного и то, что обычно писать человеку лень.
LLM очень хороши в написании кода, который логирует ошибки и не только. В сообщение можно добавить сколько угодно хорошо отформатированного контекста: вместо "shit happened" написать "shit happened in thread ${thread_id}, x = ${x}, y = ${y}". Это же работает и с сообщениями об ошибках в исключениях (exceptions).
LLM хорошо справляется с механическим рефакторингом типа переименования или добавления нового параметра в вызов какой-то функции. Можно пытаться делать и чуть более сложные вещи типа "залогируй все вызовы вот этого метода и оберни это в какой-нибудь helper".
LLM хорошо справляется с написанием небольших изолированных компонент с простым API. К примеру, можно сгенерировать код на основе Reflection API из Google Protobuf - обойти поля протобуфа и чего-то с ними сделать в процессе. Поскольку протобуф поддерживает очень большое количество разных типов данных, то генерация код тут полезна. Однако нужно быть внимательным и направлять LLM в правильное русло.
Чат можно использовать как источник справочной информации. Можно задавать вопросы по языку/библиотеке/технологии. Тут нужно быть осторожным, т.к. есть простор для галлюцинаций.
В целом, LLM - хороший инструмент, но не серебряная пуля. Нужно уметь этим инструментом пользоваться и понимать ограничения.
В статье упоминается AutoFDO со ссылкой на документацию. А в документации говорится про sPGO. А поддерживается ли сборка профилей для AutoFDO или CSSPGO ?
Дешевизна DeepSeek может привести и к обратному эффекту за счет массового распространения. В особенности, если найдут способ сделать еще дешевле https://ru.wikipedia.org/wiki/Парадокс_Джевонса
В данном случае нет необходимости складывать числа разных порядков. За неделю штраф прирастает на 700К и затем удваивается. Это можно посчитать как сумму геометрической прогрессии: концу каждой N-й недели (начиная с N=1) получим сумму 700000 * (2 ^ N - 1). -1 тут влияет только на последние ~7 знаков после запятой, на больших N это вычитание можно просто игнорить.
Я до сих пор плачу 199р. за youtube premium, хотя страну в профиле я поменял давно - иначе в google play store некоторые местные приложения недоступны. Мне кажется, они раньше просто не заморачивались этим. Страна проживания не отслеживалась вообще никак, даже если пользователь ничего не скрывал и не пользовался vpn. А сейчас начали считать деньги, которые потенциально теряются на рекламе.
В мейнстримных компиляторах диагностика ушла вперед, да. Но тот же gcc без флагов -Wall -Werror не покажет никакого предупреждения про некорректное присваивание. В топовых open source проектах это скорее всего включено, поэтому такие ошибки оттуда ушли.
Из этого же не следует, что "теперь не осталось компиляторов, которые промолчат, встретив присваивание в условии"? Проекты под проверку PVS Studio же не случайно выбираются, а по популярности, объему кода и т.д. Выборка скорее всего смещенная. Тот же Хромиум разрабатывают в Гугле и качество кода там скорее всего выше, чем в целом в индустрии.
Утверждение "теперь не осталось компиляторов" неплохо бы подтвердить списком компиляторов, на которых автор проверил это утверждение. Иначе как-то голословно звучит на мой взгляд
Современные компиляторы умеют распознавать опечатку в сравнении и показывать предупреждение в таких случаях. В дополнение к этому предупреждения могут обрабатываться как ошибки, что вызовет ошибку сборки в случае опечатки. В Compiler Explorer видно, что и clang, и gcc, и msvc выдают ошибку с правильными флагами компиляции: https://godbolt.org/z/G73b6sbTM
Так-то с зарплаты, и то если сюда добавить всякие разные социальные взносы, уплачиваемые работодателем. С других видов дохода физлица платят 13/15%. К примеру, налог с прироста капитала или рента какая-нибудь.
Вы пишете, что компании других стран успешно переняли идеи Lean production, что помогло им выиграть ценовую конкуренцию. Из этого не следует, что идеи были плохими, скорее наоборот.
Но из-за того, что многие там продолжили фокусироваться на этой локальной оптимальности, они начинали вредить своему маркетингу и сервису. Или как минимум - не помогать.
Пример про экономику Японии кажется надуманным. Рецессия там началась еще в 1990 году, но какое отношение к этому имеет Lean production непонятно от слова совсем. https://en.wikipedia.org/wiki/Lost_Decades
union в С++ - это удобный инструмент для отстрела конечностей, своих и чужих. В то время как struct - это тот же класс, но с более удобными модификаторами доступа по умолчанию. struct практичен, позволяет писать более короткий и ясный код. Минус у него один - находятся эстеты, которым нравится писать слово "class", а "struct" их коробит по причинам зачастую не вполне рациональным.
Золотые деньги тоже подвержены инфляции, потому что новое золото добывается в рудниках, а товаров от этого процесса больше не становится. После открытия Америки в Европу хлынуло награбленное золото из колоний, что привело к росту цен в "реальных" деньгах. https://ru.wikipedia.org/wiki/Революция_цен
Человек тоже может посадить какой-то неочевидный баг. А потом этот код может скопипастить другой человек. Проблема не нова.
А чем это принципиально отличается от ситуации, когда над проектом работают несколько разработчиков? Конечно, рано или поздно будут баги. И в какой-то момент кодовая база может превратиться в месиво, которое проще выкинуть и переписать. Это все и до LLM было
Упомянутый в статье Cursor можно установить и попробовать либо на существующем репозитории либо с нуля какую-нибудь программу написать. В бесплатную версию включено какое-то количество бесплатных запросов. Доступны разные модели, в т.ч. Claude 3.5.
LLM конечно такую структуру данных не напишет самостоятельно. Но это не означает, что LLM не будет полезной.
Если взять в качестве примера тот же Cursor, то LLM там поможет вот так:
"Простое" автодополнение, которое уменьшит объем механического набора текста. Это хорошо работает для генерации каких-то стандартных конструкций языка, написания комментариев.
Можно попросить сгенерировать некий скелет/основу: какие-то классы, параметры конфигурации и пр. Дополнять скелет, конечно, придется самому
Можно попросить сгенерировать тесты для той самой многопоточной структуры. Вот тут LLM может сделать очень много полезного и то, что обычно писать человеку лень.
LLM очень хороши в написании кода, который логирует ошибки и не только. В сообщение можно добавить сколько угодно хорошо отформатированного контекста: вместо "shit happened" написать "shit happened in thread ${thread_id}, x = ${x}, y = ${y}". Это же работает и с сообщениями об ошибках в исключениях (exceptions).
LLM хорошо справляется с механическим рефакторингом типа переименования или добавления нового параметра в вызов какой-то функции. Можно пытаться делать и чуть более сложные вещи типа "залогируй все вызовы вот этого метода и оберни это в какой-нибудь helper".
LLM хорошо справляется с написанием небольших изолированных компонент с простым API. К примеру, можно сгенерировать код на основе Reflection API из Google Protobuf - обойти поля протобуфа и чего-то с ними сделать в процессе. Поскольку протобуф поддерживает очень большое количество разных типов данных, то генерация код тут полезна. Однако нужно быть внимательным и направлять LLM в правильное русло.
Чат можно использовать как источник справочной информации. Можно задавать вопросы по языку/библиотеке/технологии. Тут нужно быть осторожным, т.к. есть простор для галлюцинаций.
В целом, LLM - хороший инструмент, но не серебряная пуля. Нужно уметь этим инструментом пользоваться и понимать ограничения.
В статье упоминается AutoFDO со ссылкой на документацию. А в документации говорится про sPGO.
А поддерживается ли сборка профилей для AutoFDO или CSSPGO ?
Дешевизна DeepSeek может привести и к обратному эффекту за счет массового распространения. В особенности, если найдут способ сделать еще дешевле
https://ru.wikipedia.org/wiki/Парадокс_Джевонса
В данном случае нет необходимости складывать числа разных порядков. За неделю штраф прирастает на 700К и затем удваивается. Это можно посчитать как сумму геометрической прогрессии: концу каждой N-й недели (начиная с N=1) получим сумму 700000 * (2 ^ N - 1). -1 тут влияет только на последние ~7 знаков после запятой, на больших N это вычитание можно просто игнорить.
Я до сих пор плачу 199р. за youtube premium, хотя страну в профиле я поменял давно - иначе в google play store некоторые местные приложения недоступны. Мне кажется, они раньше просто не заморачивались этим. Страна проживания не отслеживалась вообще никак, даже если пользователь ничего не скрывал и не пользовался vpn. А сейчас начали считать деньги, которые потенциально теряются на рекламе.
В мейнстримных компиляторах диагностика ушла вперед, да. Но тот же gcc без флагов
-Wall -Werror
не покажет никакого предупреждения про некорректное присваивание. В топовых open source проектах это скорее всего включено, поэтому такие ошибки оттуда ушли.Судя по вашему тону, сраться в комменты пришли вы, а не я
Из этого же не следует, что "теперь не осталось компиляторов, которые промолчат, встретив присваивание в условии"? Проекты под проверку PVS Studio же не случайно выбираются, а по популярности, объему кода и т.д. Выборка скорее всего смещенная. Тот же Хромиум разрабатывают в Гугле и качество кода там скорее всего выше, чем в целом в индустрии.
О каких 8 годах идет речь? Вы о чем сейчас?
Утверждение "теперь не осталось компиляторов" неплохо бы подтвердить списком компиляторов, на которых автор проверил это утверждение. Иначе как-то голословно звучит на мой взгляд
Современные компиляторы умеют распознавать опечатку в сравнении и показывать предупреждение в таких случаях. В дополнение к этому предупреждения могут обрабатываться как ошибки, что вызовет ошибку сборки в случае опечатки.
В Compiler Explorer видно, что и clang, и gcc, и msvc выдают ошибку с правильными флагами компиляции:
https://godbolt.org/z/G73b6sbTM
Так-то с зарплаты, и то если сюда добавить всякие разные социальные взносы, уплачиваемые работодателем. С других видов дохода физлица платят 13/15%. К примеру, налог с прироста капитала или рента какая-нибудь.
Вы пишете, что компании других стран успешно переняли идеи Lean production, что помогло им выиграть ценовую конкуренцию. Из этого не следует, что идеи были плохими, скорее наоборот.
Тут примеров не хватает
Пример про экономику Японии кажется надуманным. Рецессия там началась еще в 1990 году, но какое отношение к этому имеет Lean production непонятно от слова совсем.
https://en.wikipedia.org/wiki/Lost_Decades
union в С++ - это удобный инструмент для отстрела конечностей, своих и чужих. В то время как struct - это тот же класс, но с более удобными модификаторами доступа по умолчанию. struct практичен, позволяет писать более короткий и ясный код. Минус у него один - находятся эстеты, которым нравится писать слово "class", а "struct" их коробит по причинам зачастую не вполне рациональным.
Непонятно почему они не вложат хотя бы часть этих денег в Мекку - инфраструктуру, жилье, транспорт и пр. Так могли бы и деньги отбить с паломников.
Золотые деньги тоже подвержены инфляции, потому что новое золото добывается в рудниках, а товаров от этого процесса больше не становится. После открытия Америки в Европу хлынуло награбленное золото из колоний, что привело к росту цен в "реальных" деньгах.
https://ru.wikipedia.org/wiki/Революция_цен