Использовал DeepSeek как ассистента. Скажу сразу: на сложных архитектурных вещах он экономит кучу времени. Но когда дело доходит до написания кода на Yabasic, нейросеть начинает откровенно галлюцинировать. Модель обучена на тоннах Python и C++, поэтому она постоянно пытается приписать Yabasic функции и синтаксис из современных языков.
Я собрал список «мифов», которые ИИ предлагал внедрить в проект. Все примеры реальные: я копировал код от нейросети, пытался запустить, получал ошибку и переписывал руками.
Миф 1: Встроенная функция file_exists()
Что предлагал ИИ:
Реальность: В Yabasic такой функции нет.
Как решал: Пришлось писать свою. Причем просто открыть файл open fname$ for reading as #1 нельзя — если файла нет, интерпретатор вылетит с фатальной ошибкой. Работает только проверка через f = open(fname$, "r") и сравнение с нулем.
Миф 2: Оператор инкремента i++ или i += 1
Что предлагал ИИ:
Реальность: В Yabasic нет ни постфиксного инкремента, ни сокращенных операторов присваивания. Вообще.
Как решал: Писать полную форму i = i + 1.
Миф 3: Методы строк (как в Python)
Что предлагал ИИ:
Реальность: В Yabasic строки — это не объекты. replace$ вообще нет в версии 2.91.1 (ее завезли только в 2.92.0). strip() нет.
Как решал: trim$() — это встроенная функция (работает). А замену replace пришлось писать руками через instr и mid$.
Миф 4: Режим for append
Что предлагал ИИ:
Реальность: В Yabasic нет конструкции for append. Она выдает синтаксическую ошибку.
Как решал: Использовать строковый режим: open #1, "test.txt", "a"
Миф 5: Запятая в line input
Что предлагал ИИ:
Реальность: Запятая ломает парсер Yabasic. Это не QBasic и не VB.
Как решал: Убирать запятую: line input #1 line$. (Кстати, ИИ выдавал эту ошибку несколько раз, пока я не начал бить его по рукам в промпте).
Миф 6: Оператор остатка от деления %
Что предлагал ИИ:
Реальность: В Yabasic нет оператора %. Более того, mod — это не оператор, а встроенная функция.
Как решал: if (mod(i, 2) = 0) then .
Миф 7: Получение длины массива
Что предлагал ИИ:
Реальность: len() в Yabasic работает только со строками. Для массивов такой функции нет.
Как решал: Передавать количество элементов в функцию вручную как аргумент (sub build(arr$(), n)).
Миф 8: Встроенный elseif через пробел
Что предлагал ИИ:
Реальность: Конструкция else if (два слова) не работает так, как в C или JS. Yabasic ждет слитное написание elsif.
Как решал: Менять на elsif.
Вывод
ИИ отлично справляется с рутиной: написать цикл, расставить скобки, сгенерировать однотипный HTML-тег. Но как только дело касается специфики Yabasic, он врет примерно в 30% случаев. И это кстати считаю заслуга нашего форума! Т.к. пару лет назад он врал на 90%
Если будете писать на Yabasic с помощью ИИ, обязательно давайте ему в контекст мануал (2484.de/yabasic) или файл с вашими заметками (я прям в проекте обычно веду YABASIC_NOTES, собирая там костыли да грабли). И всегда запускайте код перед тем, как вставлять его в проект.
Я собрал список «мифов», которые ИИ предлагал внедрить в проект. Все примеры реальные: я копировал код от нейросети, пытался запустить, получал ошибку и переписывал руками.
Миф 1: Встроенная функция file_exists()
Что предлагал ИИ:
Код: Выделить всё
if file_exists("clients.csv") then
// ...
end ifКак решал: Пришлось писать свою. Причем просто открыть файл open fname$ for reading as #1 нельзя — если файла нет, интерпретатор вылетит с фатальной ошибкой. Работает только проверка через f = open(fname$, "r") и сравнение с нулем.
Миф 2: Оператор инкремента i++ или i += 1
Что предлагал ИИ:
Код: Выделить всё
i = 1
while i <= 10
// ...
i++
wendКак решал: Писать полную форму i = i + 1.
Миф 3: Методы строк (как в Python)
Что предлагал ИИ:
Код: Выделить всё
s$ = s$.replace("a", "b")
s$ = s$.strip()Как решал: trim$() — это встроенная функция (работает). А замену replace пришлось писать руками через instr и mid$.
Миф 4: Режим for append
Что предлагал ИИ:
Код: Выделить всё
open "test.txt" for append as #1
print #1, "data"Как решал: Использовать строковый режим: open #1, "test.txt", "a"
Миф 5: Запятая в line input
Что предлагал ИИ:
Код: Выделить всё
line input #1, line$Как решал: Убирать запятую: line input #1 line$. (Кстати, ИИ выдавал эту ошибку несколько раз, пока я не начал бить его по рукам в промпте).
Миф 6: Оператор остатка от деления %
Что предлагал ИИ:
Код: Выделить всё
if (i % 2 = 0) then
// ...
end ifКак решал: if (mod(i, 2) = 0) then .
Миф 7: Получение длины массива
Что предлагал ИИ:
Код: Выделить всё
n = len(my_array$())Как решал: Передавать количество элементов в функцию вручную как аргумент (sub build(arr$(), n)).
Миф 8: Встроенный elseif через пробел
Что предлагал ИИ:
Код: Выделить всё
if x > 0 then
// ...
else if x < 0 then
// ...
end ifКак решал: Менять на elsif.
Вывод
ИИ отлично справляется с рутиной: написать цикл, расставить скобки, сгенерировать однотипный HTML-тег. Но как только дело касается специфики Yabasic, он врет примерно в 30% случаев. И это кстати считаю заслуга нашего форума! Т.к. пару лет назад он врал на 90%
Если будете писать на Yabasic с помощью ИИ, обязательно давайте ему в контекст мануал (2484.de/yabasic) или файл с вашими заметками (я прям в проекте обычно веду YABASIC_NOTES, собирая там костыли да грабли). И всегда запускайте код перед тем, как вставлять его в проект.