Введение
Lasso — это сервер приложений и интерфейс управления сервером, предназначенный для разработки интернет-приложений. Это также универсальный язык программирования высокого уровня. Изначально разработанный как инструмент подключения к веб-источникам данных для Filemaker, а затем включенный в FileMaker 4.0 от Apple Computer и Claris Homepage под названием CDML, он с тех пор эволюционировал в сложный язык, используемый для разработки и обслуживания масштабных интернет-приложений и веб-страниц. Lasso включает простую систему шаблонов, позволяющую коду управлять генерацией HTML и других типов контента. Lasso — объектно-ориентированный язык программирования, в котором каждое значение является объектом. Он также поддерживает процедурное программирование посредством свободных методов. Язык широко использует трейты и множественную диспетчеризацию. Lasso имеет динамическую систему типов, позволяющую загружать и расширять объекты во время выполнения, автоматическое управление памятью, обширную стандартную библиотеку и три методологии компиляции: динамическую (аналогичную PHP и Python), компиляцию в реальном времени (аналогичную Java или .NET Framework) и предварительную компиляцию (аналогичную C). Lasso также поддерживает Query Expressions, позволяя выполнять итерацию, фильтрацию и манипулирование элементами в массивах и других типах последовательностей с использованием синтаксиса, близкого к естественному языку и аналогичного SQL. Lasso обеспечивает полную поддержку символов Unicode в стандартном строковом объекте, что позволяет ему обслуживать и поддерживать многобайтовые символы, такие как японский и шведский, а также поддерживает прозрачное преобразование в UTF-8 при записи строковых данных в сеть или файловую систему. Lasso часто используется как язык сценариев, а также в широком спектре контекстов, не связанных со сценариями. Код Lasso можно упаковывать в автономные исполняемые программы, называемые "LassoApps", в которых структура папок компилируется в отдельные файлы. Сервер приложений Lasso Server работает как системная служба и получает запросы от веб-сервера через FastCGI. Затем он передает запрос соответствующему экземпляру Lasso, который формирует ответ. Поддерживается несколько независимых экземпляров, что позволяет одному серверу обслуживать несколько сайтов, каждый из которых работает как отдельный процесс. Сервер использует высокопроизводительную IO-ориентированную систему "зеленых" потоков, предназначенную для многоядерных систем. Lasso можно сравнить с серверными языками сценариев, такими как PHP и Python, ColdFusion, Ruby и т.д.
История
Lasso началась в середине 1990-х годов, когда первые веб-разработчики пытались создавать веб-сайты с поддержкой баз данных, используя FileMaker Pro от Apple. На платформе Mac существовало два решения: WEB FM от Эрика Бикфорда и FileMaker CGI (ROFM) Рассела Оуэнса, оба разработанные на AppleScript и требовавшие использования полей вычислений FileMaker Pro для форматирования. (WEB FM впоследствии был переписан на C). Осенью 1995 года независимый разработчик Винс Бонфанти создал новый CGI на основе ROFM, используя C/C++ для повышения производительности и концепцию HTML-шаблонов вместо полей вычислений. Это решение оказалось очень популярным в сообществе FileMaker и привлекло внимание Билла Дёррфельда, владельца Blue World Communications Inc., компании, занимающейся разработкой печатной продукции и веб-сайтов, базирующейся в Иссакуа, штат Вашингтон, который приобрел исходный код. В то время Blue World экспериментировала с улучшениями CGI в среде сценариев Frontier, что и послужило вдохновением для названия "Lasso". Дальнейшая потребность в улучшениях привела к созданию CGI на основе C, который позже был выпущен как "Lasso 1.0". На тот момент Lasso работала только с FileMaker Pro 3.x и WebSTAR, и поддерживала только Apple Mac OS 8 и более поздние версии. Популярность Lasso значительно возросла благодаря обзорам в печатных изданиях и активному участию Blue World в многочисленных списках рассылки, многие из которых были посвящены FileMaker Pro. Blue World также регулярно участвовала и была известна как ведущая компания на конференциях MacWorld. После выпуска Lasso 1.2 в январе 1997 года Blue World и Бонфанти начали конфиденциальные переговоры с Claris, подразделением Apple Computer, отвечающим за разработку программного обеспечения и владеющим FileMaker Pro. В конечном итоге Claris лицензировала исходный код Lasso версии 1.2 и выше, а с помощью Винса и Пола Бонфанти выпустила FileMaker Web Companion в качестве компонента FileMaker Pro 4.0. Язык FileMaker Web Companion, CDML (Claris Dynamic Markup Language), отличался от LDML (Lasso Dynamic Markup Language) в Lasso 1.2, но был достаточно близок, чтобы обеспечить легкий переход для разработчиков, желающих публиковать данные из FileMaker Pro через сторонние серверы, и предлагал более привлекательные возможности. Включение Web Companion в FileMaker 4.0 также способствовало росту популярности Lasso в сообществе веб-разработчиков Macintosh. Blue World продолжила разработку Lasso, а Кайл Джессап стал ведущим программистом. В июле 1997 года была выпущена Lasso 2.0, внедрившая ряд фундаментальных изменений в использовании Lasso. 26 февраля 2002 года Blue World выпустила Lasso 5, что стало радикальным отходом от языка, ориентированного на FileMaker. (Выпуск Lasso 4 был пропущен, номер версии перешел с 3 на 5). Lasso 5 включала в себя множество обновлений, в том числе полностью переписанную архитектуру (для OS X, Windows, Linux) и встроенную базу данных MySQL. Хотя Lasso 5 по-прежнему взаимодействовала с базой данных FileMaker (но не с FileMaker Server), FileMaker как источник данных оставался относительно медленным по сравнению с SQL-движком и был значительно дороже. Начиная с версии 2.0, Lasso была полностью многопоточной, что позволяло обрабатывать множество одновременных подключений, но подвергалась задержкам в FileMaker при определенных операциях, и надежно обойти это ограничение можно было только путем внесения существенных изменений в источник данных. Lasso 5 также добавила встроенную поддержку Apache HTTP Server под управлением OS X, Windows и Linux, к которым уже относились Webstar 5, AppleShare IP (замененный OS X Server) и iTools (от Tenon). (Mac OS 9, на которой Lasso использовалась в течение многих лет, больше не поддерживалась). Это способствовало более тесной интеграции с классической архитектурой LAMP. Blue World Communications выпустила серию плагинов для популярных пакетов веб-разработки от Macromedia и Adobe. Lasso Studio 1.5 для Dreamweaver стала финалистом в конкурсе Editors' Choice Awards от журнала MacWorld в номинации "Интернет и разработка" в 2001 году, уступив Adobe Dreamweaver 3. Lasso Studio для Dreamweaver 1.5 также получила положительные отзывы от журнала MacWorld, получив оценку 4,5 мыши. Более поздние версии Lasso Studio поддерживали как Macromedia Dreamweaver, так и Adobe GoLive, включая Lasso Studio 7 для Dreamweaver и GoLive, выпущенную 26 марта 2004 года. С выпуском FileMaker Server и FileMaker Server Advanced версии 7 в 2004 году FileMaker заявила о существенном изменении своей стратегии предоставления данных для веб-сайтов. Компания сделала акцент на возможностях XML XSLT, ODBC и JDBC, но только в более дорогостоящем продукте FileMaker Server Advanced. Blue World начала дистанцироваться от языка Lasso и продуктов Apple. В 2005 году Lasso Pro получила сертификацию MySQL Network, что подчеркнуло важность популярной базы данных с открытым исходным кодом для будущего Lasso. 1 августа 2004 года Билл Дёррфельд официально продал продуктовую линейку Lasso компании OmniPilot Software, Inc. в Форт-Лодердейле, штат Флорида. Lasso 7.0.3 стала последней версией Lasso, выпущенной Blue World. 25 октября 2004 года OmniPilot официально объявила о выпуске Lasso 8, версии, включающей в себя песочницу для нескольких сайтов на одном сервере и поддержку подключения ко многим новым источникам данных. Также была выпущена первая "бесплатная" версия Lasso с ограничением по IP-адресам. OmniPilot продолжила выпуск дополнительных продуктов, включая Lasso Studio 8 для Dreamweaver и GoLive 28 марта 2005 года, Lasso Studio для Eclipse, интеграцию с ChartFX и ряд бесплатных решений на основе Lasso. В 2007 году трое сотрудников OmniPilot, Кайл Джессап (оригинальный разработчик Lasso 1.0), Флетчер Сэндбек (один из первых сотрудников Blue World, известный своими советами и рекомендациями) и Керри Адамс (сотрудник OmniPilot), основали новую компанию LassoSoft LLC, чтобы приобрести интеллектуальную собственность Lasso у OmniPilot и продолжить разработку. Осознавая необходимость конкуренции с более популярными языками, такими как PHP и ASP, были внесены радикальные изменения в архитектуру, синтаксис и структуру, которые были выпущены как Lasso 9.0. Технические проблемы, вызванные этими изменениями, в сочетании с ограниченными маркетинговыми ресурсами, привели к снижению активности сообщества, поскольку компании было трудно выпускать документацию и поддержку для нового языка. В декабре 2010 года была создана новая канадская компания LassoSoft Inc., которая приобрела и активно инвестировала в язык Lasso 9.0, маркетинг и документацию. Кайл Джессап согласился остаться ведущим разработчиком Lasso и "Бессменным Диктатором на всю жизнь". В последние годы были выпущены несколько версий (9.1 и 9.2) с дальнейшими улучшениями.