Понадобилось написать небольшое приложение с визуальным интерфейсом под Windows. Приложение довольно простое - с десяток полей для ввода данных и кнопка для обработки введённых значений.
Первоначально хотел делать его на Delphi, так как имею довольно приличный опыт программирования на нём, а также считаю, что для быстрой разработки визуальных приложений под Windows это до сих пор лучший инструмент. Но потом подумал, что опыт программирования на Delphi у меня есть, что-то новое я на вряд ли узнаю (только если память освежу), а вот на Python я приложений с визуальным интерфейсом никогда не делал, хотя знаю, что это можно. Так что выбор был сделан в пользу Python и изучения чего-то нового. Первоначально думал для визуальных элементов использовать библиотеку Qt, и даже посматривал на книгу Python 3 и PyQt 6. Разработка приложений, но потом, в комментариях к одной статье отметили, что для небольших и не очень сложных приложений (вроде бы как раз как моё) можно использовать встроенную в Python библиотеку Tkinter - на ней и решил попробовать пока остановиться.
А дальше начинается самое интересное, что, собственно, и подтолкнуло меня к написанию этой заметки - Андрей живо заинтересовался этой задачей и тоже решил попробовать реализовать такое приложение, но только используя "вайбкодинг" - программирование с активным использованием ИИ.
В итоге уселись вечером рядом и получилось своего рода соревнование - оба знаем Python, оба не знакомы с используемой библиотекой Tkinter - в общем условия более менее равные. Раз, два, три - поехали.
Я, так как не знал этой библиотеки, читал описание, копировал и адаптировал под свои нужды найденные примеры, Андрей же сделал несколько запросов к ИИ и... первая (пусть и "черновая") версия интерфейса готова, и даже реализована часть обработки введённых данных. Я же к этому моменту только создал форму, кнопку для обработки результата (только кнопку, без какой-либо обработки) и разместил на форме несколько полей.
Когда же я доделал предварительный внешний вид будущего приложения, т.е. реализовал приблизительно тоже самое, что получил Андрей практически сразу, но без какой-либо обработки вводимых данных, что у него, пусть и частично, но тоже было сделано, Андрей продвинулся ещё дальше - реализовал выпадающий список для выбора значений и более удобный интерфейс для выбора даты - календарь. Правда, с этим он провозился довольно долго - кратно дольше, чем чтобы получить первый прототип. Пришлось многократно тестировать и указывать ИИ что именно не работает или работает не так. Пока ещё не знаю как это делается в Tkinter, так что возможно меня ждëт неприятный сюрприз, но на Delphi такие доработки заняли бы буквально пару минут.
Так что выводы напрашиваются очень неоднозначные - с одной стороны - по скорости реализации положил меня на обе лопатки, с другой стороны с ростом сложности приложения скорость разработки у него значительно просела. Так что, возможно, идея отправки исходного кода приложения в ИИ с просьбой его оптимизировать и структурировать не так уж и плоха, как могло показаться на первый взгляд, особенно для небольших проектов.