Войти
BASIC[ProjectYaga]Форум

Рождение

Advanced: Тема повышенной сложности или важная.

#0
(Правка: 15 янв. 2021, 12:34) 11:44, 11 янв. 2021

Начало!

Почему?
Надоел подход Майкрософт к языку!
Со времён VB6 (великой версии по мнению большинства)
появился только vb.net (брат близнец c#.net) без нормальной компиляции... и огромного кол-ва спорных подходов
Но хоть какое-то движение вперед!
Сам работаю в vb.net, ... и как это все работает тормазнуто... слов нет...

Была надежда с выходом Core
НО ... https://devblogs.microsoft.com/vbteam/visual-basic-in-net-core-3-0/
https://devblogs.microsoft.com/vbteam/visual-basic-support-planned-for-net-5-0/
Все-же упор они делают на C# а VB подтягивают, а не развивают...

Зачем?
Хочется иметь свой, родной, но!... кроссплатформенный BASIC
В первую очередь для разработки игр, консольных приложений
и если потяну... приложений с формами и кнопками)

Как?
Начал с изучения того что уже было сделано в этом направлении!
Изучил проекты: qb64, FreeBASIC, BaCon, BCX...
Выбрал подход: транслировать код BASIC в C++ и уже его компилировать (по сути надстройка над с++ позволяющая комфортно писать на с++ используя синтаксис любимого языка Basic)
Что дает некоторые преимущества:
1. нет необходимости писать свой компилятор,
2. кроссплатформенность,
3. скорость С++,
4. возможность использовать код, библиотеки и т.д. С++ (без мучительного перевода на свой язык, или создания библиотек "промежутков")
>По исполнению,... на первых порах,... скорее будит похоже на DarkBASIC, Blitz BASIC (собственно это и есть цель)

Почему не стал использовать готовые варианты (qb64, FreeBASIC, BaCon, BCX...)?
Где не понравился подход, где реализация (ужасный С код, очумелое кол-во наворотов, ...), где лицензия...
Да и самому делать гораздо интереснее ;-)


#1
11:44, 11 янв. 2021

резерв

#2
11:44, 11 янв. 2021

резерв

#3
(Правка: 15:04) 11:44, 11 янв. 2021

Что готово:
Основа языка (основные команды)
Отдельно реализована работа с массивами (в С и С++ это ещё тот геморрой)
Подключен графический движок SFML (реализованы 3 примера: Mario, Match3, Pong)
Уже компилируется!!!

Что планирую сделать:
Дополнительные команды ()
Что-бы проект компилировал сам себя (сейчас проект написан на vb6)!

#4
(Правка: 12 янв. 2021, 16:52) 11:44, 11 янв. 2021

Идея не нова, вот похожие проекты:
1. FreeBASIC https://ru.wikipedia.org/wiki/FreeBASIC https://www.freebasic.net/
2. qb64 https://ru.wikipedia.org/wiki/QB64 https://www.qb64.org/portal/
3. BaCon https://www.basic-converter.org/
4. BCX https://en.wikipedia.org/wiki/BCX https://bcxbasiccoders.com/ http://bcx-basic.sourceforge.net/
5. VB to C++ Converter https://www.tangiblesoftwaresolutions.com/product_details/vb_to_c… _details.html

#5
5:22, 15 янв. 2021

Что вынес из использования спектрумбейсика, так это то, что с него можно легко и ненапряжно перепрыгнуть на борландпаскаль и при этом синтаксис, как в плюсах, не напрягает. Чувствуется продолжение прежней идеи. Микрософтовский бейсик, это такой конкурент дельфей, только нелюбимый создателем. Корпорации любят убивать старые продукты чтобы пропихнуть более прожорливые новые, как сейчас с флешем произошло. Если развивать свою версию бейсика, то получится ухудшенная версия fpc, просто потому что силы не те. И для чего тогда надрываться, если можно сразу писать на уже поддерживаемой кем-то версии с почти таким же синтаксисом, только с дополнительными знаками препинания? Заголовки для SFML там тоже есть - https://github.com/DJMaster/csfml-fpc  Движок кастле потихоньку развивается, кодить на нём можно даже в линуксе, марио он точно потянет, и никакого микрософта там и рядом нет. Игру в одиночку изготовить тяжело, а если для неё ещё и язык писать...

В принципе, удачи в нелёгкой борьбе с M$. А С++ студия или gcc?

#6
(Правка: 12:22) 12:18, 15 янв. 2021

Skvoznjak
> и при этом синтаксис, как в плюсах, не напрягает.
Дело в том, что меня напрягает)...

Skvoznjak
> это такой конкурент дельфей,
У Борланда был свой Бейсик, но они от него отказались (сейчас он в руках разработчика)

Skvoznjak
> с флешем произошло.
Флеш, я ненавидел с самого его появления
Сейчас доволен что его похоронили
Изжил он своё!

Skvoznjak
> Если развивать свою версию бейсика, то получится ухудшенная версия fpc, просто
> потому что силы не те. И для чего тогда надрываться, если можно сразу писать на
> уже поддерживаемой кем-то версии с почти таким же синтаксисом, только с
> дополнительными знаками препинания?
Как показывает практика, бывает противоположная ситуация,... что и произошло с Mono (теперь он Core)...
Все эти мастодонты - ленивые жопы, да и подходы множат и забрасывают.
Заковырка именно в знаках препинания!

Skvoznjak
> , а если для неё ещё и язык писать...
По факту - язык готов, это-ж просто транслятор
по сути надстройка над с++ позволяющая комфортно писать на с++ используя синтаксис любимого языка Basic

Skvoznjak
> В принципе, удачи в нелёгкой борьбе с M$. А С++ студия или gcc?
Спасибо! Конечно gcc!

#7
3:49, 17 янв. 2021

>Флеш, я ненавидел с самого его появления
>Сейчас доволен что его похоронили
>Изжил он своё!

С точки зрения потребителя он прекрасен. Скачал с сайта малый файл и запускай хоть где. Не надо инсталлировать, просто работает без особых тормозов, не требует 100500 библиотек нужных версий. А вместо него включили в браузеры такой же флеш но на жабоскрипте, который жрёт на порядок больше, имеет охеренные системные требования и хрен с сайта скачаешь игрушку. Если сайт гикнется, то и всё, с концами. Раньше всё говно в браузере было сосредоточено в маленьком плагине, а теперь оно растеклось по всему браузеру и вэбу. Всё хуже стало. Но чем хуже, тем лучше для корпораций. Теперь поддержку онлайновых флешигр запилили в гаменет, там они и дальше работают.

>Как показывает практика, бывает противоположная ситуация,... что и произошло с Mono (теперь он Core)...

Он с самого начала разрабатывался как байда имеющая в системных требованиях весь дистрибутив линукса последней версии. Если моно нет в репозитории, то сам скорее всего его не поставишь. Как спланировали, то и получили.

>по сути надстройка над с++ позволяющая комфортно писать на с++ используя синтаксис любимого языка Basic

Да, плюсы они такие, ненаглядные, лучше на них не глядеть.

BASIC[ProjectYaga]Форум