Спросите, кому это надо? Ведь есть JavaScript, PHP, Python в конце концов… Всё это так. Однако, если вы не знаете на нужном уровне ни одного из этих языков, а какое-то веб-приложение надо сделать уже сейчас, ну или вам просто нечего делать, и вы решили во чтобы то ни стало написать веб-приложение на Паскале, то почему бы и нет?
Оказывается, в Lazarus есть пакет Pas2JS, который позволяет создавать достаточно сложные программы, вообще не зная JavaScript. При этом исходные коды компилируются в два файла (как минимум) - HTML и JS. А файл HTML вы можете открыть в браузере и таким образом получить веб-приложение на Паскале.
Хотя, конечно, ни на каком не на Паскале. На Паскале будет написан только исходник в Lazarus. А при компиляции код на Паскале будет преобразован в код на JavaScript. Но всё равно - это же круто!
Сегодня не буду рассказывать о том, как установить пакет и как писать веб-программы в Lazarus (подробнее об этом в другой раз). Приведу только пример кода и результат работы.
Как видите, эта программа ничем не отличается от обычной программы на Паскале. Однако при компиляции у нас был создан не исполняемый файл ЕХЕ, а файл hello.js. Этот файл будет использован в файле hello.html, который был создан при создании проекта. И теперь, если мы откроем файл hello.html в браузере и нажмём F12 (в Яндекс.Браузере и в Хроме, в других может быть другая клавиша), чтобы отобразить инструменты разработчика, то в консоли мы увидим нашу надпись “Привет, МИР !!!”:
Если же мы хотим, чтобы текст выводился не в консоли, а непосредственно в браузере, то нам надо будет подключить модуль browserconsole к нашей программе. Больше ничего менять не надо. В этом случае результат работы нашего веб-приложения будет таким:
При этом в консоль текст по-прежнему будет выводиться. Но обратите внимание, что в консоли справа от выводимой надписи будет уже модуль browserconsole, а не system.
Ну вот так лёгким движением руки мы написали веб-приложение на Паскале. В следующий раз подробнее расскажу о пакете Pas2JS, о том, как его установить и т.п. Возможно, ещё и видео запишу. Так что подписывайтесь на канал, чтобы ничего не пропустить.