Это были лихие девяностые, технологии веба зарождались как могли. Тогда сайты выглядели намного проще и чаще всего были просто статичными HTML-файлами: читать текст и смотреть картинки можно, а вот запустить социальную сеть — вряд ли. Так было до 1995 года, когда Джереми и Джозеф Аллеры решили, что хватит это терпеть.
Братья Аллеры разработали ColdFusion. С одной стороны, это был сервер для веб-приложений, с другой — язык разметки, чтобы генерировать страницы. Язык сначала назвали DataBase Markup Language, но позже переименовали в ColdFusion Markup Language. Как ColdFusion он в итоге и стал известен.
👉 На ColdFusion работал один из наших героев — Антон Леонов. Прочитайте интервью о его карьерном пути в 25 лет: от мобильных сайтов до позиции аналитика.
Зачем нужен и в чём особенность
Синтаксис ColdFusion состоит из тегов. Для вёрстки используют стандартные теги HTML, а ColdFusion расширяет его скриптовыми тегами, которые помогают получать данные из базы или работать с переменными на стороне браузера:
<body>
<b>Добро пожаловать!</b>
<!-- Заводим переменную Name со значением «Иван» -->
<cfset name="Иван">
<!-- Выводим фразу «Привет, Иван» на экран -->
<cfoutput>
Привет, #name
</cfoutput>
</body>
<body>...</body>
и <b>...</b>
— теги HTML, а <cfoutput>...</cfoutput>
— тег ColdFusion. С помощью символа # мы обращаемся к переменной. Названия всех тегов в ColdFusion начинаются с префикса cf — так их можно отличить от тегов HTML.
ColdFusion умеет обращаться к базе данных с помощью sql-запросов:
<cfquery NAME="getTravelerInfo" DATASOURCE="travelers.db">
SELECT FirstName_traveler, LastName_traveler, Birthday_traveler
FROM Traveler WHERE EMail_traveler = '#Form.Email#'
</cfquery>
Здесь мы создали запрос getTravelerInfo, который идёт в базу данных travelers.db, находит там нужного пользователя по почте, которую ввели в форму Form в поле Email. И возвращает из базы имя, фамилию и дату рождения этого пользователя.
❤️ Если совсем просто, то ColdFusion даёт возможность встроить в HTML специальные теги для работы с базами данных и скриптами. На выходе получается простой с другим расширением — .cfm. В итоге можно делать динамичные страницы, а не только выводить статику.
Как развивался
В первой версии ColdFusion особо ничего не умел. Это был просто язык разметки, который мог сходить в базу данных, взять из неё какую-то информацию и подставить в нужное место в HTML-вёрстке.
Со временем появилась возможность разрабатывать пользовательские дополнения к языку. Если разработчиками не хватало какого-то компонента или тега, они могли написать его самостоятельно на C или C++, а позже — на Java.
В ColdFusion появилась возможность писать скрипты, похожие на JavaScript. Язык умеет работать не только с данными из базы, но и с информацией, которая хранится в Cookie. Например, можно вывести на экран время последней сессии пользователя:
Сначала зададим значение:
<CFCOOKIE NAME=»TimeVisited»
VALUE=»#Now()#»>
А потом запросим его:
<CFOUTPUT>
Time Visited : #DateFormat(«#COOKIE.TimeVisited#»)#
</CFOUTPUT>
С каждой новой версией у сервера ColdFusion росли возможности, а в языке появлялось всё больше тегов. Так что в конце 90-х и начале нулевых ColdFusion вовсю применяли для создания веб-приложений. ColdFusion использовали, например, таск-менеджер ProWorkflow, сервис для саппорта Giva, ERP-система Promisan.
Что сегодня
В 2001 году компанию Allair приобрела Macromedia, которую, в свою очередь, в 2005 году купила Adobe. Adobe продолжает поддерживать и обновлять ColdFusion — последний значительный апдейт был в ноябре 2020 года. Сегодня ColdFusion — коммерческий продукт, стоимость лицензии для компаний начинается от 2499 долларов.
Adobe нашли для ColdFusion довольно узкую нишу: интранеты и сайты, для которых важно работать с данными. ColdFusion из коробки умеет строить графики и создавать PDF-файлы, так что его используют в проектах, где нужно визуализировать информацию, например, сделать дэшборд с данными о продажах.
⚠️ Язык и технологию в России сложно назвать востребованными: в конце декабря 2020 года на HH.ru всего три, а на «Хабре» ни одной вакансии с упоминанием ColdFusion. С нуля сегодня на нём почти не пишут, но остались проекты, где его используют с давних времён и пока что поддерживают.
👉 Мы не рекомендуем изучать ColdFusion как свою первую веб-технологию. Лучше посмотрите в сторону Python или PHP, а в идеале для начинающих — JavaScript. Вот статьи, которые вас вдохновят:
Вместе с тем в разное время ColdFusion использовали в Bank of America, Cisco, eBay, Boeing. Из отечественных компаний — Лаборатория Касперского. Как раз там герой нашего интервью Антон Леонов разрабатывал B2B-платформу на ColdFusion. Почитайте, как это было и чем он занимается сейчас →