Декларативное программирование и веб-

Как и большинство веб-разработчиков, я провожу дни дает указания компьютеров.

Эти инструкции обычно включают некоторый вклад (запрос на веб-странице), то логика (получить право контент из базы данных), а некоторые выход (передачу содержимого запрашивающему браузере).Этот процесс рассказывать компьютер, как выполнить задачу, например, создания веб-страницы, это то, что мы обычно называем “программирование”, но это только подмножество программирования: императивное программирование .

Там еще один тип программирования, декларативного программирования, что большинство веб-разработчики также использовать каждый день, но не часто признают программирования. С декларативного программирования, мы говорим, что компьютер не how.Опишем результат мы хотим, и детали о том, как выполнить его оставляют переводчика языка.Это тонкое изменение подхода к программированию имеет широкие последствия для, как мы строим программного обеспечения, особенно, как мы строим будущее веб .

Итак, давайте момент, чтобы исследовать декларативное программирование и Интернет, мы можем построить с ним .

Скрытые In Plain Sight

Декларативных языков, как правило, отходят на второй план программирования, в частности, потому, что они ближе к тому, как мы, естественно, взаимодействуют с людьми.Если вы говорите с другом, и вы хотите бутерброд, вы обычно не дает вашего друга шаг за шагом инструкции о том, как сделать бутерброд.Если вы сделали, он будет чувствовать себя, как программирование вашего друга.Вместо этого, вы гораздо более вероятно, говорить о результате вы хотите, например, “Пожалуйста, сделай мне бутерброд” (или, возможно, “ Судо сделать меня sandwich 1 “).Если ваш друг хочет и в состоянии следовать этой инструкции, то они бы перевести фразу “Сделайте мне бутерброд” в серии шагов, таких как поиск буханку хлеба, удаляя два ломтика, применяя начинки, и т.д. .

01-sandwich-opt

Этот тип результат-ориентированной инструкции как декларативное программирование works, оставляя логику о том, как реализовать запросы к системе, интерпретируя язык (например, ваш друг).Когда мы хотим изображение в HTML документ, например, мы просто включают <img> тег, а затем систему, которая интерпретирует HTML (обычно браузер) будет обрабатывать все шаги, необходимые для отображения, что изображение, например,извлечение его из сервера, определения, где именно, чтобы сделать ее, декодирование двоичных данных, масштабирования изображения и делает его на экран.Мы не должны объяснить все это, таким образом, мы часто забываем, что все это происходит, и что кто-то запрограммирован как, как это происходит, и как это сложный процесс, происходит от простого <img> .

Другой фактор, который делает декларативное программированиетрудно понять, как программирование в Интернете является то, что “просто работает”. Много работы вошло в создание языков, таких как HTML, CSS и SQL, способного обеспечить достаточно ясности в то, что должно быть достигнуто, что шаги, необходимые для достижения результата можетбыть определена без подробной инструкцией.Но большинство веб-разработчики начали использовать эти декларативные языки долгое время после жесткий work 2 строительства их было полно, так что мы просто рассматриваем их как нормальной и обычной, и просто естественной частью путивеб works 3 .

При веб-разработчики do ввязываться в декларативного программирования, прежде чем интересная работа делается, это, как правило, в то время как разработки API для веб-сайта. Большинство API-интерфейсы реализованы с помощью декларативного programming.Вместо того, чтобы обеспечивать способ дать сайт шаг за шагом инструкции, интерфейсы, как правило, имеют простой язык, который можно использовать, чтобы выразить желаемого результата.Когда мы хотим получить некоторые твиты от щебетать API, например, мы даем описание твитов мы хотим, например, “все, отA_single_bear.” Если API является обязательным, вместо этого мы будем описывать конкретные шаги, которые мы хотим, чтобы Twitterосуществить от нашего имени, объясняя, как загрузить, формат и вернуться твиты.К счастью, API скрывает все, что логику простой декларативный language, так что мы должны только описать то, что мы хотим, а не как его получить .

Два пути Forward

Как мы понимаем, насколько широко декларативные языки программирования в Интернете, трудно представить себе сеть без них.Жесткий, но не невозможно.Как JavaScript выросла в повсеместно, инструменты, которые мы должны были бы для императивном-только сети легко найти.Мы могли бы поменять HTML и CSS для оказание непосредственно в JavaScript __26 | 4 .Мы могли бы поменять SQL для JavaScript родной database 5 (или two 6 ).И мы могли бы поменять звонки на декларативных веб-интерфейсов с настоятельными призывы к функциям JavaScript, даже зазоре между клиентом и server __44 | 7 .

Мы могли бы поставить все это вместе, и полностью прекратить использование декларативных языков в Интернете, даже прежде, чем мы получим в более продвинутых технологий движется в нашем направлении, как Asm.js 8 .Мы можем теперь, построить веб эквивалент мэйнфреймов: большие, мощные системы, построенные не в виде набора разрозненных частей, а как единое целое.Теперь мы можем JavaScript все things 9 .Мы пытались это раньше, с технологиями, как Java и ActiveX.А некоторые организации, такие, как AOL, даже имели успех здание менее грязный веб-как стек.Разница на этот раз это технология доступна, чтобы построить эти “мэйнфреймы” является частью открытой веб-стека, так что теперь каждый может сделать свой собственный автономный веб-как stack .

Необходимо только наличие веб манит, если мы понимаем, в Интернете, как открытые технологии и связанные документы.Но если мы расширяем наше понимание сети, чтобы включить связанные системы, то декларативное программирование это ключевая часть, как мы связываем эти systems.При таком понимании, мы должны отправиться в др …

Если вы хотите прочитать полностью статью, посетите сайт наших спонсоров

Comments are closed.