Обновить
3

Пользователь

0,1
Рейтинг
1
Подписчики
Отправить сообщение

С общим посылом статьи: точные инструкции + постоянный контроль – согласен полностью:

LLM не делает junior’а senior’ом. Он просто позволяет тому, кто уже умеет, делать быстрее.

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

Но есть нюансы. В частности:

и в ноль не помнит, что вы обсуждали в предыдущей сессии

Это не так. Он сохраняет историю работы с проектом в `~/.claude/projects/<project path>` и прекрасно помнит, что было не то, что в прошлой сессии – а вообще всё. Иногда удивляюсь даже, насколько уместно он напоминает о предыдущих решениях.

В моем проекте 814 unit-тестов, каждый написан до соответствующего кода.

Вот тут его приходится даже притормаживать – иначе он запускает тесты ещё не созданных модулей и радостно рапортует: О! Упало, так и должно быть! Что, разумеется, ничего не говорит о качестве кода – чисто перевод токенов. Я это явно запрещаю – причём иногда он об этом запрете "забывает", приходится напоминать.

А вы даже не юсали приложение

Разумеется. А зачем? Я же честно попытался выяснить, каким может быть его применение (см. вопрос про воркфлоу) ‒ сам не вижу, так зачем мне время тратить? Вы позиционируете в качестве преимущества своего приложения возможность многодорожечного редактирования. А я не понимаю, зачем оно нужно в мобильном редакторе ‒ ну не будет же кто-то всерьёз сводить на телефоне материал с нескольких камер. Не, так Вы этого слона не продадите.

просто словоблудие , без обид

Ну извините 🤷‍♂️ Не знал, что принимаются только восторженные отзывы.

Тип работы разный бывает

Вот я и пытаюсь понять, какой тип работы может такого потребовать. Собрать видео с телефонов всех участников события и тут же смонтировать? Весьма сомнительно, девайсы разные, навыки съёмки тем более, таймкода нет – только синхронизировать упаришься. Про перенос материала с про камер на телефон уже писал. Не вижу, для чего такое может понадобиться.

Обе темы знакомые – и видеомонтаж, и флаттер. Каждую в отдельности люблю – а вот как их поженить, не понимаю. Видеоредактор – это же не просто нарезка. Даже многодорожечная. Это и работа с цветом – от банального баланса белого до полноценного грейдинга в разных цветовых пространствах. Это работа с различными входными форматами и рендер в различных стандартах, с разными разрешениями и т.п. Это высококачественные титры – что добавляет элементы композитинга. Эффекты ладно – в профессиональной работе они особо не нужны, хотя любители хотят. Но вот резкость, размытие, маски, трассировка объектов – тоже неотъемлемая часть любого сколько-нибудь приличного видеоредактора. Где всё это и где флаттер?

Ну и самое главное – воркфлоу. Как это всё выглядит? Видео с профессиональных камер загружается на телефон и там обрабатывается? Звучит, ээээ... необычно. А если съёмка на телефон, то напуркуа многодорожечность? И вообще о каком профессиональном использовании тогда речь? Автор таки позиционирует себя, как видеомонтажёра.

Как развлечение – понимаю. Как коммерческий (или хотя бы просто востребованный) продукт – нет.

Король – голый. Непонятно, зачем нужен какой-то отдельный скилл, если встроенный superpowers делает всё то же самое и гораздо больше. Похоже на хайп на известном имени, рассчитанный на тех, кто не удосужился глубоко разобраться с инструментом. А ИИ – именно инструмент, а не волшебная палочка: напиши мне код, как Карпаты. Необходимость думать никто не отменял.

  • VM не освобождает heap page пока жив хоть один объект

Никогда такого не было, и вот опять ©

Ну нет никакой VM в AOT. GC есть, да. И если он видит свободную память, то чего бы не скушать. Вам действительно нужны эти большие мегабайты, буквально под каждый запрос? Если нет, то решением могло бы быть ограничить доступную память для докера ‒ как только она начнёт заканчиваться, GC начнёт её чистить.

чтобы поставить точку

🤦‍♂️ Да поставьте её уже, наконец.

is part of the Dart VM

Вы понимаете, что здесь написано? Рантайм входит составной частью в Dart VM ‒ но никак не является ей.

Но зачем читать, когда можно сразу комментировать?

Действительно: зачем читать комментарии, в которых пытаются разобраться, действительно ли проблема GC нерешаема ‒ если есть убеждённость, что это Дарт виноват, и решения нет? Вроде с этого начали?

Очевидно потому что asMap() всегда вернет Map<int, ЧтоТо> а этот метод возвращает Map<String, Object?>

Логично, вопрос снимается.

Если я что-то готовлю неправильно - 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()? Подозреваю, там такого порядочно, и это вносит свой вклад во время обработки. Ну и как бы в принципе характеризует качество кода.

Если почитать всю ветку внимательно - там речь о поведении VM, а не специфике JIT.

Там речь о том, что Analyzer uses too much memory when there is many lints enabled. При чём тут боевой код?

VM одна и в JIT и в AOT. 

Нет. Тут ниже бурное обсуждение этого вопроса, повторяться не буду. Вкратце: JIT == VM, AOT == runtime. Разные вещи.

 по тестам Dart код проигрывает в производительности нативному C++ в 2-3 раза.Это согласно тестам в которых использовались оба языка

Мы сменили тему? Довольно трудно спорить с тем, что хорошо оптимизированный код на С/С++ будет быстрее в большинстве случаев. Но это никак не связано с тем, работает ли Дарт под VM или просто задействует свой рантайм.

Но код Dart сам по себе никогда не может быть так запущен. Он оборачивается в task и встает в очередь EventLoop.

По-моему, мы пошли по кругу. Уже писал ‒ event loop есть неотъемлемая часть любой интерактивной программы, на любом языке.

Если пройдет по ссылки которую я указал в тексте

Вы уверены, что эта ссылка хоть сколько-то релевантна? Там речь о потреблении памяти сервером анализа кода в JIT среде. Как это связано с работой реального кода в AOT, я не знаю.

В реальном нативе, тот же C/C++. Ваша программа набор инструкций процессору. Которые он будет выполнять без остановки, пока они не закончатся. И нет в собранном бинарнике никаких Loop.

Эмм, я дико извиняюсь, но это так работает только в fire-and-forget утилитах. Как только появляется хоть минимальная интерактивность ‒ а все сервисы/демоны работают именно так, без главного цикла никуда, иначе программа завершится сразу после запуска и не сможет обрабатывать внешние события. Ежели чего, С/С++ ‒ чуть ли не единственные (после ассемблера) языки, на которых я писал код за деньги. И главные циклы там обязательно присутствовали.

я пришёл из JS-мира 

Клод наваял порт ioredis

Мне кажется, в этом и проблема ‒ Вы пытаетесь напрямую перенести привычки из JS в Дарт. А там таки сильно иначе всё. И GC тоже можно управлять в какой-то степени, прямо из кода. В частности, убедиться, что все объекты имеют реализацию dispose(), и что ссылки на них обнуляются после использования. Но это надо экспериментировать, конечно ‒ навскидку волшебную таблетку не предложу.

В случае Dart это тот самый Loop который строит очередь тасков/микротасков и построчно выполняет каждый шаг программы. 

Ммм, а где не так? В любой программе есть event loop, который так работает. Дарт ни разу не исключение. И это сильно отличается от запуска внутри изолированной среды VM/application server ‒ которая вносит свои накладные расходы.

Все деления Runtime/VM - чистый маркетинговый флуд.

Почему? Разница существенная, виртуалка ‒ это именно что отдельная среда исполнения внутри host OS, а рантайм ‒ просто кусок кода, подключающийся по необходимости и крутящийся внутри самой ОС.

И что тут опровергает "образ DartVM + ваш код"?

Runtime != VM. Код, написанный на чистом С тоже использует свой рантайм, например.

1
23 ...

Информация

В рейтинге
4 289-й
Зарегистрирован
Активность