С общим посылом статьи: точные инструкции + постоянный контроль – согласен полностью:
LLM не делает junior’а senior’ом. Он просто позволяет тому, кто уже умеет, делать быстрее.
Да, как-то так. Это инструмент для тех, кто уже обладает серьёзными навыками проектирования. Для джуна, подозреваю, он будет скорее вреден, чем полезен.
Но есть нюансы. В частности:
и в ноль не помнит, что вы обсуждали в предыдущей сессии
Это не так. Он сохраняет историю работы с проектом в `~/.claude/projects/<project path>` и прекрасно помнит, что было не то, что в прошлой сессии – а вообще всё. Иногда удивляюсь даже, насколько уместно он напоминает о предыдущих решениях.
В моем проекте 814 unit-тестов, каждый написан до соответствующего кода.
Вот тут его приходится даже притормаживать – иначе он запускает тесты ещё не созданных модулей и радостно рапортует: О! Упало, так и должно быть! Что, разумеется, ничего не говорит о качестве кода – чисто перевод токенов. Я это явно запрещаю – причём иногда он об этом запрете "забывает", приходится напоминать.
Разумеется. А зачем? Я же честно попытался выяснить, каким может быть его применение (см. вопрос про воркфлоу) ‒ сам не вижу, так зачем мне время тратить? Вы позиционируете в качестве преимущества своего приложения возможность многодорожечного редактирования. А я не понимаю, зачем оно нужно в мобильном редакторе ‒ ну не будет же кто-то всерьёз сводить на телефоне материал с нескольких камер. Не, так Вы этого слона не продадите.
Вот я и пытаюсь понять, какой тип работы может такого потребовать. Собрать видео с телефонов всех участников события и тут же смонтировать? Весьма сомнительно, девайсы разные, навыки съёмки тем более, таймкода нет – только синхронизировать упаришься. Про перенос материала с про камер на телефон уже писал. Не вижу, для чего такое может понадобиться.
Обе темы знакомые – и видеомонтаж, и флаттер. Каждую в отдельности люблю – а вот как их поженить, не понимаю. Видеоредактор – это же не просто нарезка. Даже многодорожечная. Это и работа с цветом – от банального баланса белого до полноценного грейдинга в разных цветовых пространствах. Это работа с различными входными форматами и рендер в различных стандартах, с разными разрешениями и т.п. Это высококачественные титры – что добавляет элементы композитинга. Эффекты ладно – в профессиональной работе они особо не нужны, хотя любители хотят. Но вот резкость, размытие, маски, трассировка объектов – тоже неотъемлемая часть любого сколько-нибудь приличного видеоредактора. Где всё это и где флаттер?
Ну и самое главное – воркфлоу. Как это всё выглядит? Видео с профессиональных камер загружается на телефон и там обрабатывается? Звучит, ээээ... необычно. А если съёмка на телефон, то напуркуа многодорожечность? И вообще о каком профессиональном использовании тогда речь? Автор таки позиционирует себя, как видеомонтажёра.
Как развлечение – понимаю. Как коммерческий (или хотя бы просто востребованный) продукт – нет.
Король – голый. Непонятно, зачем нужен какой-то отдельный скилл, если встроенный superpowers делает всё то же самое и гораздо больше. Похоже на хайп на известном имени, рассчитанный на тех, кто не удосужился глубоко разобраться с инструментом. А ИИ – именно инструмент, а не волшебная палочка: напиши мне код, как Карпаты. Необходимость думать никто не отменял.
Ну нет никакой VM в AOT. GC есть, да. И если он видит свободную память, то чего бы не скушать. Вам действительно нужны эти большие мегабайты, буквально под каждый запрос? Если нет, то решением могло бы быть ограничить доступную память для докера ‒ как только она начнёт заканчиваться, GC начнёт её чистить.
Но зачем читать, когда можно сразу комментировать?
Действительно: зачем читать комментарии, в которых пытаются разобраться, действительно ли проблема GC нерешаема ‒ если есть убеждённость, что это Дарт виноват, и решения нет? Вроде с этого начали?
Если я что-то готовлю неправильно - PR открыт, исходники там же. Жду.
Ждать не нужно, мне есть, чем заняться. Впрочем, на пару исходников взглянул. Вот, например. Скажем, этот код зачем?
Object? _listToMap(Object? reply) {
if (reply is! List) return reply;
final map = <String, Object?>{};
for (var i = 0; i < reply.length; i += 2) {
map[reply[i].toString()] = reply[i + 1];
}
return map;
}
Почему не встроенный asMap()? Подозреваю, там такого порядочно, и это вносит свой вклад во время обработки. Ну и как бы в принципе характеризует качество кода.
по тестам Dart код проигрывает в производительности нативному C++ в 2-3 раза.Это согласно тестам в которых использовались оба языка
Мы сменили тему? Довольно трудно спорить с тем, что хорошо оптимизированный код на С/С++ будет быстрее в большинстве случаев. Но это никак не связано с тем, работает ли Дарт под VM или просто задействует свой рантайм.
Вы уверены, что эта ссылка хоть сколько-то релевантна? Там речь о потреблении памяти сервером анализа кода в JIT среде. Как это связано с работой реального кода в AOT, я не знаю.
В реальном нативе, тот же C/C++. Ваша программа набор инструкций процессору. Которые он будет выполнять без остановки, пока они не закончатся. И нет в собранном бинарнике никаких Loop.
Эмм, я дико извиняюсь, но это так работает только в fire-and-forget утилитах. Как только появляется хоть минимальная интерактивность ‒ а все сервисы/демоны работают именно так, без главного цикла никуда, иначе программа завершится сразу после запуска и не сможет обрабатывать внешние события. Ежели чего, С/С++ ‒ чуть ли не единственные (после ассемблера) языки, на которых я писал код за деньги. И главные циклы там обязательно присутствовали.
Мне кажется, в этом и проблема ‒ Вы пытаетесь напрямую перенести привычки из JS в Дарт. А там таки сильно иначе всё. И GC тоже можно управлять в какой-то степени, прямо из кода. В частности, убедиться, что все объекты имеют реализацию dispose(), и что ссылки на них обнуляются после использования. Но это надо экспериментировать, конечно ‒ навскидку волшебную таблетку не предложу.
В случае Dart это тот самый Loop который строит очередь тасков/микротасков и построчно выполняет каждый шаг программы.
Ммм, а где не так? В любой программе есть event loop, который так работает. Дарт ни разу не исключение. И это сильно отличается от запуска внутри изолированной среды VM/application server ‒ которая вносит свои накладные расходы.
Все деления Runtime/VM - чистый маркетинговый флуд.
Почему? Разница существенная, виртуалка ‒ это именно что отдельная среда исполнения внутри host OS, а рантайм ‒ просто кусок кода, подключающийся по необходимости и крутящийся внутри самой ОС.
С общим посылом статьи: точные инструкции + постоянный контроль – согласен полностью:
Да, как-то так. Это инструмент для тех, кто уже обладает серьёзными навыками проектирования. Для джуна, подозреваю, он будет скорее вреден, чем полезен.
Но есть нюансы. В частности:
Это не так. Он сохраняет историю работы с проектом в `~/.claude/projects/<project path>` и прекрасно помнит, что было не то, что в прошлой сессии – а вообще всё. Иногда удивляюсь даже, насколько уместно он напоминает о предыдущих решениях.
Вот тут его приходится даже притормаживать – иначе он запускает тесты ещё не созданных модулей и радостно рапортует: О! Упало, так и должно быть! Что, разумеется, ничего не говорит о качестве кода – чисто перевод токенов. Я это явно запрещаю – причём иногда он об этом запрете "забывает", приходится напоминать.
Разумеется. А зачем? Я же честно попытался выяснить, каким может быть его применение (см. вопрос про воркфлоу) ‒ сам не вижу, так зачем мне время тратить? Вы позиционируете в качестве преимущества своего приложения возможность многодорожечного редактирования. А я не понимаю, зачем оно нужно в мобильном редакторе ‒ ну не будет же кто-то всерьёз сводить на телефоне материал с нескольких камер. Не, так Вы этого слона не продадите.
Ну извините 🤷♂️ Не знал, что принимаются только восторженные отзывы.
Вот я и пытаюсь понять, какой тип работы может такого потребовать. Собрать видео с телефонов всех участников события и тут же смонтировать? Весьма сомнительно, девайсы разные, навыки съёмки тем более, таймкода нет – только синхронизировать упаришься. Про перенос материала с про камер на телефон уже писал. Не вижу, для чего такое может понадобиться.
Обе темы знакомые – и видеомонтаж, и флаттер. Каждую в отдельности люблю – а вот как их поженить, не понимаю. Видеоредактор – это же не просто нарезка. Даже многодорожечная. Это и работа с цветом – от банального баланса белого до полноценного грейдинга в разных цветовых пространствах. Это работа с различными входными форматами и рендер в различных стандартах, с разными разрешениями и т.п. Это высококачественные титры – что добавляет элементы композитинга. Эффекты ладно – в профессиональной работе они особо не нужны, хотя любители хотят. Но вот резкость, размытие, маски, трассировка объектов – тоже неотъемлемая часть любого сколько-нибудь приличного видеоредактора. Где всё это и где флаттер?
Ну и самое главное – воркфлоу. Как это всё выглядит? Видео с профессиональных камер загружается на телефон и там обрабатывается? Звучит, ээээ... необычно. А если съёмка на телефон, то напуркуа многодорожечность? И вообще о каком профессиональном использовании тогда речь? Автор таки позиционирует себя, как видеомонтажёра.
Как развлечение – понимаю. Как коммерческий (или хотя бы просто востребованный) продукт – нет.
Король – голый. Непонятно, зачем нужен какой-то отдельный скилл, если встроенный
superpowersделает всё то же самое и гораздо больше. Похоже на хайп на известном имени, рассчитанный на тех, кто не удосужился глубоко разобраться с инструментом. А ИИ – именно инструмент, а не волшебная палочка: напиши мне код, как Карпаты. Необходимость думать никто не отменял.Никогда такого не было, и вот опять ©
Ну нет никакой VM в AOT. GC есть, да. И если он видит свободную память, то чего бы не скушать. Вам действительно нужны эти большие мегабайты, буквально под каждый запрос? Если нет, то решением могло бы быть ограничить доступную память для докера ‒ как только она начнёт заканчиваться, GC начнёт её чистить.
🤦♂️ Да поставьте её уже, наконец.
Вы понимаете, что здесь написано? Рантайм входит составной частью в Dart VM ‒ но никак не является ей.
Действительно: зачем читать комментарии, в которых пытаются разобраться, действительно ли проблема GC нерешаема ‒ если есть убеждённость, что это Дарт виноват, и решения нет? Вроде с этого начали?
Логично, вопрос снимается.
Ждать не нужно, мне есть, чем заняться. Впрочем, на пару исходников взглянул. Вот, например. Скажем, этот код зачем?
Почему не встроенный asMap()? Подозреваю, там такого порядочно, и это вносит свой вклад во время обработки. Ну и как бы в принципе характеризует качество кода.
Там речь о том, что Analyzer uses too much memory when there is many lints enabled. При чём тут боевой код?
Нет. Тут ниже бурное обсуждение этого вопроса, повторяться не буду. Вкратце: JIT == VM, AOT == runtime. Разные вещи.
Мы сменили тему? Довольно трудно спорить с тем, что хорошо оптимизированный код на С/С++ будет быстрее в большинстве случаев. Но это никак не связано с тем, работает ли Дарт под VM или просто задействует свой рантайм.
По-моему, мы пошли по кругу. Уже писал ‒ event loop есть неотъемлемая часть любой интерактивной программы, на любом языке.
Вы уверены, что эта ссылка хоть сколько-то релевантна? Там речь о потреблении памяти сервером анализа кода в JIT среде. Как это связано с работой реального кода в AOT, я не знаю.
Эмм, я дико извиняюсь, но это так работает только в fire-and-forget утилитах. Как только появляется хоть минимальная интерактивность ‒ а все сервисы/демоны работают именно так, без главного цикла никуда, иначе программа завершится сразу после запуска и не сможет обрабатывать внешние события. Ежели чего, С/С++ ‒ чуть ли не единственные (после ассемблера) языки, на которых я писал код за деньги. И главные циклы там обязательно присутствовали.
Мне кажется, в этом и проблема ‒ Вы пытаетесь напрямую перенести привычки из JS в Дарт. А там таки сильно иначе всё. И GC тоже можно управлять в какой-то степени, прямо из кода. В частности, убедиться, что все объекты имеют реализацию
dispose(), и что ссылки на них обнуляются после использования. Но это надо экспериментировать, конечно ‒ навскидку волшебную таблетку не предложу.Ммм, а где не так? В любой программе есть event loop, который так работает. Дарт ни разу не исключение. И это сильно отличается от запуска внутри изолированной среды VM/application server ‒ которая вносит свои накладные расходы.
Почему? Разница существенная, виртуалка ‒ это именно что отдельная среда исполнения внутри host OS, а рантайм ‒ просто кусок кода, подключающийся по необходимости и крутящийся внутри самой ОС.
Runtime != VM. Код, написанный на чистом С тоже использует свой рантайм, например.