Главная > Технический изврат > Web-программирование на Turbo Basic

Web-программирование на Turbo Basic

По просьбам выкладываю отдельным постом код, написанный ради прикола в форуме Winreview.

Все началось с цитаты в разделе приколов:

XXX
20:10:26 кто в здравом уме будет пейсать веб-скрипты на бейсике?

20:11:25 впрочем, .NET показало, что можно пейсать и плеваться вне зависимости от языка

Я решил показать, что это все-таки возможно и даже местами прикольно. Современные версии языка юзать не интересно, поэтому я решил обратиться к истокам – Borland Turbo Basic.

Ранее мне где-то попадался реальный FAQ на тему программирования CGI скриптов на досовом турбо бейсике. Причем у скомпиленных им экзешников был какой-то косяк с stdout, приходилось подставлять костыль, что-то типа заворачивания экзешников в батники. Я не пробовал, но автор клялся и божился, что все работает. В общем, не устоял и попробовал.

Итак:

5 open "out.txt" for output as #1
10 print# 1,"Content-Type: text/html"
20 print# 1,""
30 print# 1,"Hello World!"
40 qs$ = environ$("QUERY_STRING")
50 vn$ = "name"
60 gosub 1000
70 if vv$<>"" goto 100
80 print# 1,"<h1>Please, enter your name</h1>"
90 goto 200
100 print# 1,"<h1>Fuck you, "+vv$+"!</h1>"

200 close# 1

1000 rem Parsim peremennyu QUERY_STRING
1001 rem vn$ - imya peremennoi, vv$ - znachenie.
1010 vt$ = vn$ + "="
1020 vv$ = ""
1030 vp = 0
1040 for i=1 to len(qs$)-len(vt$)+1
1050 if mid$(qs$,i,len(vt$))=vt$ then vp=i+len(vt$) else goto 1070
1060 goto 1080
1070 next i
1080 if vp=0 goto 1200
1090 ls = 0
1100 for i=vp to len(qs$)
1110 if mid$(qs$,i,1)<>"&" then ls=ls+1 else goto 1130
1120 next i
1130 vv$ = mid$(qs$,vp,ls)
1200 return

Да, там действительно есть проблемы с stdout. Обычные операторы PRINT выводят текст на экран. Но перенаправление вывода в файл не работает. А это значит, что Апач не видит и не может передать клиенту вывод экзешника. Я попытался вывести текст в стандартный файл CON, но это не сработало. Поэтому появился такой костыль:


@echo off
cgi.exe
type out.txt

А теперь полюбуйтесь на результат:

Итак, начало положено. Ждем появления в интернете мегапорталов, написанных на Турбо Бейсике. Программисты, вперед! Возродим любимый язык наших предков! Думаю, Хрюкину понравится

TODO: Надо еще как-то научиться ловить STDIN (чтобы POST запросы работали).

P.S. Да, я знаю все косяки этой конструкции, но они устранимы. Это пример, сляпанный на коленке за несколько минут.

  1. Дмитрий
    31 мая 2015 в 15:15 | #1

    Возродим! Программы расчета оптических систем, написанные на Туро бейсике лучше современных.
    http://www.proza.ru/2015/05/28/1750
    http://www.proza.ru/2015/05/19/1630
    На Турбо бейсике можно и музыку писать – https://yadi.sk/d/1g2qF95ogtHyT
    послушайте. и не надо иронизировать насчёт отсталости языка
    Дмитрий

*