Новый язык для веб-разработки объединил возможности HTML, CSS и JavaScript
Американцы предложили новый язык программирования для разработки веб-сайтов. Он объединяет в себе популярные технологии, такие как HTML, CSS и JavaScript, и освобождает разработчика от необходимости работать с этими языками по-отдельности.Создание относительно сложной веб-страницы требует понимания целого ряда языков, включая HTML, CSS и JavaScript. Исследователи из Массачусетского технологического института утверждают, что интегрировали все эти технологии в новый единый язык программирования, позволяющий упростить и ускорить разработку веб-сайтов и сделать их надежнее и безопаснее.
Язык под названием Ur/Web позволит разработчикам писать веб-страницы как самостоятельные замкнутые программы. А так как он включает большинство самых популярных из современных веб-технологий, разработчик будет освобожден от работы с каждым из языков по-отдельности.
«Я думаю, что этот язык может найти очень широкое применение, так как он способен сократить издержки на веб-разработку во многих случаях», — заявил создатель Ur/Web Адам Члипала (Adam Chlipala), помощник профессора из Массачусетского технологического института. Он добавил, что язык обладает большей степенью универсальности по сравнению с современными веб-стандартами.
Сейчас разработчику нужно знать язык HTML, который позволяет сформировать макет страницы, язык CSS, который определяет цвета, шрифты и другие свойства элементов, JavaScript, позволяющий внедрить расширенные функции и интерактивность, язык PHP, на котором написаны популярные системы управления контентом, а также SQL для работы с базами данных, которые есть на большинстве сайтов, и т. д.
Ur/Web включает в себя функции и возможности всех отдельных языков, на которых пишутся веб-сайты, и компилирует их в исполняемый машинный код.
Так как код Ur/Web скомпилирован заранее, производительность получается гораздо более высокой по сравнению с традиционными методами разработки веб-сайтов, утверждает Члипала. В одном из тестов Ur/Web показал в два раза более высокую скорость по сравнению с PHP.
К недостаткам языка относится необходимость изучения функционального программирования
«В Ur/Web все базируется на транзакциях, когда каждый клиентский запрос обрабатывается поочередно своего рода центральной функцией, — объяснил автор. — Язык при этом оптимизирован с той целью, чтобы он мог обрабатывать одновременно множество параллельных запросов на физических серверах».
Помимо облегчения для части разработчиков, новый язык привносит некоторые новые механизмы, помогающие повысить надежность и безопасность сайтов. Так, он позволяет исключить возможность взаимодействия между различными элементами на одной странице — например, кодом рекламного объявления и виджетом календаря.
Кроме того, как и традиционные языки программирования, такие как C, Pascal и Java, и в отличие от веб-языков, таких как JavaScript, Ur/Web имеет жесткую типизацию. То есть все переменные связываются с определенным типом данных в самом начале, и затем этот тип уже нельзя изменить. Это затрудняет взлом сайта посредством отправки специальным образом сформированных команд с помощью форм на веб-страницах. Ur/Web также поддерживает задание областей видимости переменных, то есть позволяет ограничить те места, из которых переменная в программе может быть вызвана.
Но есть у языка и недостаток. Он требует постижения функционального программирования. Эта задача будет сложной для тех, кто привык иметь дело с процедурными и объектно-ориентированными языками (С, Pascal). Члипала сравнил Ur/Web с функциональным языком программирования Haskell. Многие программисты считают его чем-то потусторонним, но небольшая группа разработчиков любит и почитает этот язык за его вычислительные возможности.