Я випробував їх на реальному програмувальному завданні, і один виявився найкращим

Written By: author avatar Христина Горда

19 Квітня, 2026

Порівнюємо популярних ШІ у створенні перевірки надійності пароля: хто краще впорається?

Обираємо завдання та критерії оцінювання

Пошук ідеального завдання для тесту ШІ був непростим. Не хотілося брати щось надто просте, наприклад, пошук дублікатів у списку — більшість ботів розв’язали б таку задачу однаково. З іншого боку, складні форуми на кшталт LeetCode могли б збентежити тих, хто не програмує глибоко.

Тож вибір упав на щось, близьке багатьом та корисне — перевірку надійності пароля. Це добре знайома функція: при створенні акаунту система показує, наскільки складний введений пароль і що можна зробити, аби зробити його безпечнішим.

Саме ця задача дозволить оцінити, наскільки грамотно ШІ підходять до розробки коду, чи дотримуються стандартів, наскільки зручними будуть створені рішення для користувача і які найкращі практики вони застосують.

Вибір золотої середини: не надто легка, але й не надто складна задача

Завдання має бути зрозумілим і водночас потребувати логіки та творчого підходу без жорсткої єдиної відповіді. Такий формат ідеально пасує для тестування креативності штучного інтелекту та його розуміння людських потреб.

Формулюємо запит: як правильно «поставити» завдання ШІ

Усі три боти — ChatGPT, Gemini та Claude — отримали однаковий стартовий запит. Це було зроблено для об’єктивного порівняння їх відповідей у першому турі. Подальші уточнювальні запити — про пояснення коду, обробку винятків чи рефакторинг — були адаптовані в залежності від початкової відповіді, щоб зрозуміти, наскільки глибоко кожен із ШІ може розвиватися.

Ось основний запит, який отримали всі три:

Напиши функцію на Python, що перевіряє надійність пароля, класифікуючи його як «слабкий», «середній» або «надійний».  
Поясни свою логіку простою мовою для початківця.

Відсутність зайвих підказок — мінімум напрямних

Запит був досить лаконічним, адже цікаво було побачити, скільки ініціативи або власних ідей продемонструють боти без зайвих намірів зі сторони користувача.

ChatGPT: чистий код із середнім рівнем пояснень

Використано безкоштовну веб-версію на базі моделі GPT 5.2. Результат був досить акуратним, код чистий, зрозумілий, з використанням модуля re для пошуку символів, хоч і не зовсім “початковий” підхід для новачка.

Основні особливості:

  • Оцінка насиченості пароля на основі кількості типів символів та довжини.
  • Прості коментарі, що описували загальні блоки коду.
  • Запропоновано варіант без регулярних виразів, якщо це буде потрібно.

Пояснення, яке надавав ChatGPT, було базовим і лінійним — крок за кроком, але без глибоких інсайтів.

Щоправда, для користувача це не був повноцінний додаток: відсутня інтерактивність, відсутні підказки щодо того, що саме не так із паролем і що покращити.

Дещо з коду для тесту:

print(check_password_strength("abc"))          # Weak
print(check_password_strength("abc12345"))     # Medium
print(check_password_strength("Abc@12345"))    # Strong

Gemini: простий код із дружнім для початківця поясненням, але слабка логіка оцінки

Модель Gemini 3 Fast у вільному веб-доступі запропонувала більш базовий підхід без regex, використовуючи вбудовані функції Python — це виглядає природним і зрозумілим.

Позитивні сторони:

  1. Зрозумілі коментарі, що пояснюють логіку кожного кроку.
  2. Добре структуроване пояснення після коду.

Втім у коді були недопрацювання:

  • Відсутня перевірка на наявність малих літер та спеціальних символів.
  • Система оцінки пароля не вловлює критичні моменти, через що навіть слабкі паролі іноді отримують позначку “Strong”.
  • Код менш охайний через поєднання перевірок і результатів у непослідовному порядку.

Приклад тестового запуску:

print(f"'12345': {check_password_strength('12345')}")
print(f"'Password123': {check_password_strength('Password123')}")
print(f"'qwerty': {check_password_strength('qwerty')}")

Claude: явний лідер із складною, але дуже продуманою логікою

Версія Sonnet 4.6 у безкоштовній веб-версії виділилась професійним підходом: використанням regex, докладним описом у вигляді докстрінга, а також багаторівневою системою оцінювання.

Цікаві моменти:

  • Максимальний бал — 7, із значними бонусами за довжину пароля та спеціальні символи.
  • Автоматичний збір рекомендацій для користувача, що підказують, які елементи варто додати.
  • Повний набір перевірок: великі літери, малі літери, цифри, символи.

На відміну від інших, Claude додав секцію демонстрації роботи — кілька тестових паролів із різним рівнем надійності.

for pwd in test_passwords:
    label, score, tips = check_password_strength(pwd)
    print(f"\nPassword : {pwd}")
    print(f"Strength : {label}  (score: {score}/7)")
    if tips:
        print("Tips     :", " | ".join(tips))

Єдиний нюанс — пояснення в тексті після коду було більше про систему оцінювання, ніж про деталі коду. Зате коментарі у коді добре детальні, тож усе зрозуміло без додаткових пояснень.

Різноманітність можливостей ШІ у програмуванні

Цей експеримент показав, наскільки по-різному штучні інтелекти сприймають одну й ту саму задачу, адаптують логіку та реалізують функціонал. Кожен мав свої переваги й недоліки, що робить процес порівняння дуже цікавим і повчальним для розуміння подальшого розвитку штучного інтелекту в сфері програмування.

Категорії Без категорії

різне