Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Lasso является сервер приложений интерфейс и управление сервером используется для разработки интернет - приложений и является универсальным , язык программирования высокого уровня . Первоначально инструмент подключения к веб-источникам данных [1] для Filemaker, а затем включенный в FileMaker 4.0 Apple Computer и домашнюю страницу Claris как CDML [2] [3] , с тех пор он превратился в сложный язык, используемый для разработки и обслуживания крупномасштабных Интернет-приложения и веб-страницы.

Lasso включает в себя простую систему шаблонов, позволяющую коду управлять генерацией HTML и других типов контента . Лассо объектно-ориентировано, и каждое значение является объектом . Он также поддерживает процедурное программирование с помощью несвязанных методов. В языке широко используются черты и множественная отправка .

Lasso имеет систему динамических типов , в которой объекты можно загружать и дополнять во время выполнения, автоматическое управление памятью , всеобъемлющую стандартную библиотеку и три методологии компиляции : динамическую (сравнимую с PHP - Python ), своевременную компиляцию (сравнимую с Java. или .NET Framework ) и предварительно скомпилированный (сопоставимый с C ). Lasso также поддерживает выражения запросов, [4]позволяет выполнять итерацию, фильтрацию и манипулирование элементами в массивах и других типах последовательностей с использованием синтаксиса естественного языка, подобного SQL . [5] Lasso включает полную поддержку символов Unicode в стандартном строковом объекте, что позволяет ему обслуживать и поддерживать многобайтовые символы, такие как японский и шведский, а также поддерживает прозрачное преобразование UTF-8 при записи строковых данных в сеть или файловую систему.

Лассо часто используется как язык сценариев , а также в широком диапазоне контекстов, не связанных со сценариями. Код лассо может быть упакован в отдельные исполняемые программы, называемые «LassoApps», в которых структуры папок скомпилированы в отдельные файлы. [6]

Сервер приложений Lasso Server работает как системная служба и получает запросы от веб-сервера через FastCGI . Затем он передает запрос соответствующему экземпляру лассо, который формулирует ответ. Поддерживаются несколько отдельных экземпляров, что позволяет одному серверу обрабатывать несколько сайтов, каждый как отдельный процесс. В сервере используется высокопроизводительная система « зеленых» потоков на основе ввода-вывода, разработанная для многоядерных систем.

Лассо можно сравнить с серверными языками сценариев PHP [7] [8] и Python , ColdFusion , Ruby и т. Д. [9] [10]

Бесплатная для разработки, Lasso предоставляет частичный доступ к своему исходному коду [11], позволяя разработчикам добавлять или изменять основные компоненты языка (например, реализацию Lasso Inline в DS Ke Carlton [12] ). Лицензирование доступно как для SAS, так и для автономной версии. [13]

История [ править ]

Лассо началось в середине 1990-х годов, когда первые веб-разработчики пытались создавать веб-сайты на базе баз данных с помощью Apple FileMaker Pro. На платформе Mac было два решения: WEB-FM Эрика Бикфорда и FileMaker CGI (ROFM) Рассела Оуэнса , оба построенные на AppleScript и требующие использования расчетных полей FileMaker Pro для форматирования. (WEB-FM был впоследствии переписан на C).

Осенью 1995 года независимый разработчик Винс Бонфанти написал новый CGI на основе ROFM, используя C / C ++ для повышения производительности и используя понятие «шаблонов» на основе HTML вместо того, чтобы полагаться на поля вычислений. Это оказалось очень популярным в сообществе FileMaker и было доведено до сведения Билла Доррфельда, владельца Blue World Communications Inc. , фирмы по разработке печати и веб-сайтов из Иссакуа, штат Вашингтон , который купил исходный код . [14]

В это время Blue World экспериментировали с улучшениями CGI в среде сценариев Frontier , что послужило вдохновением для названия «Лассо». Дальнейшая потребность в улучшении привела к созданию CGI на основе C, который позже был выпущен как "Lasso 1.0". На данный момент Lasso работает только с FileMaker Pro 3.x и WebSTAR и работает только на Apple Mac OS 8 и выше. [15]

Популярность Лассо особенно выросла из обзоров в печатных публикациях [16] [ обсуждение ], а также благодаря размещению и участию Blue World во многих списках обсуждений по электронной почте, многие из которых конкретно относились к FileMaker Pro. Blue World также часто появлялась и была известна как ведущая компания на конференциях MacWorld . [17]

После выпуска линейки Lasso 1.2 в январе 1997 года Blue World и Bonfantis вступили в частные переговоры с Claris , программным подразделением Apple Computer и владельцем FileMaker Pro. В конечном итоге Claris лицензировала исходный код Lasso после версии 1.2 и с помощью Винса и Пола Бонфанти выпустила FileMaker Web Companion как компонент FileMaker Pro 4.0. Язык FileMaker Web Companion, CDML (язык динамической разметки Claris) [18], отличался от языка LDML (язык динамической разметки Lasso 1.2) в Lasso 1.2, но был достаточно близок к тому, чтобы предлагать разработчикам, желающим работать, с FileMaker Pro до третьего уровня. -партийные серверы [19]и предлагал более привлекательные функции. [20]

Включение Lasso-like Web Companion в FileMaker 4.0 помогло повысить популярность Lasso в быстрорастущем сообществе веб-разработчиков Macintosh . Blue World продолжила разработку Lasso, а Кайл Джессап стал ведущим программистом Lasso . Lasso 2.0 был выпущен в июле 1997 года и внес некоторые фундаментальные изменения в то, как можно использовать Lasso. [21]

26 февраля 2002 года Blue World выпустила Lasso 5, радикальный отход от языка, ориентированного на FileMaker на сегодняшний день. (Выпуск Lasso 4 никогда не был; номер версии пропущен с 3 до 5.) Lasso 5 включал, среди многих обновлений, полностью переписанную архитектуру (для OS X, Windows, Linux) и встроенную базу данных MySQL . [22] Хотя Lasso 5 по-прежнему взаимодействовал с базой данных FileMaker (но не с сервером FileMaker), FileMaker в качестве источника данных оставался относительно медленным по сравнению с механизмом SQL и был непомерно дороже. Начиная с версии 2.0, Lasso был полностью многопоточным, позволяя сразу несколько подключений, но уступал задержкам FileMaker или задержкам в определенных операциях, и не было другого надежного способа обойти это, кроме внесения серьезных изменений в источник данных. [23]

Lasso 5 также добавил поддержку Apache HTTP Server изначально под OS X, Windows и Linux, присоединившись к Webstar 5, AppleShare IP (который был заменен на OS X Server) и iTools (от Tenon [24] ). (Mac OS 9, на которой Lasso использовалась много лет, не поддерживалась). Это привело к более тесной связи с классической серверной архитектурой LAMP . [ необходима цитата ]

Blue World Communications выпустила серию подключаемых модулей для популярных пакетов веб-разработки от Macromedia и Adobe. Lasso Studio 1.5 для Dreamweaver заняла второе место в конкурсе Editors 'Choice Awards журнала MacWorld в области Интернета и разработки [25] в 2001 году, уступив Adobe Dreamweaver 3. Lasso Studio для Dreamweaver 1.5 [26] также получила положительную оценку журнала MacWorld, получив 4 балла. полторы мыши. Более поздняя версия Lasso Studio поддерживала Macromedia Dreamweaver и Adobe GoLive, включая Lasso Studio 7 для Dreamweaver и GoLive [27] 26 марта 2004 года.

С выпуском FileMaker Server и FileMaker Server Advanced версии 7 в 2004 году FileMaker ознаменовал серьезные изменения в своей стратегии обслуживания данных на веб-сайтах. Они сделали упор на возможности подключения XML-XSLT, ODBC и JDBC, но только через более дорогой продукт FileMaker Server Advanced. [28] Blue World начал дистанцировать язык лассо от FileMaker и Apple. В 2005 году Lasso Pro получила сертификат MySQL Network [29], демонстрирующий важность популярной базы данных с открытым исходным кодом для будущего Lasso.

1 августа 2004 года Билл Доррфельд официально продал линейку продуктов Lasso компании OmniPilot Software, Inc. в Ft. Лодердейл, Флорида. Lasso 7.0.3 была последней версией Lasso, выпущенной Blue World. [30]

25 октября 2004 г. OmniPilot официально объявила о выпуске Lasso 8, версии, включающей песочницу для нескольких сайтов на одном сервере и возможность подключения ко многим новым источникам данных. [31] Это также включало первую «бесплатную» версию Lasso, ограниченную IP-адресами. [32] OmniPilot последовал за этим выпуском с рядом дополнительных продуктов, включая Lasso Studio 8 для Dreamweaver и GoLive [33] от 28 марта 2005 г., Lasso Studio для Eclipse , интеграцию ChartFX и ряд бесплатных решений на основе Lasso. [34]

В 2007 году трое сотрудников OmniPilot, Кайл Джессап (первоначальный разработчик Lasso 1.0), Флетчер Сэндбек (один из первых сотрудников Blue World, известный своими регулярными советами и хитростями) и Керри Адамс (сотрудник OmniPilot) создали новую компанию, LassoSoft LLC. , чтобы приобрести интеллектуальную собственность Lasso у OmniPilot и продолжить разработку. [35] [36] Признавая необходимость конкурировать с гораздо более популярными языками, такими как PHP и ASP , радикальные изменения в архитектуре, синтаксисе и структуре были внесены и выпущены как Lasso 9.0. Технические проблемы, вызванные этими изменениями, в сочетании с ограниченными маркетинговыми ресурсами, привели к значительному сокращению сообщества, поскольку компания изо всех сил пыталась выпустить документацию и поддержку нового языка.[37] [38]

В декабре 2010 года была создана новая канадская компания, LassoSoft Inc., которая приобрела и вложила значительные средства в язык, маркетинг и документацию Lasso 9.0. Кайл Джессап согласился остаться и ведущим разработчиком Лассо, и пожизненным доброжелательным диктатором . Несколько выпусков (9.1 и 9.2) за последние годы выпустили дальнейшие разработки. [39]

История выпусков [ править ]

Примеры кода [ править ]

Привет, мир [ править ]

Вот три способа сказать «Привет, мир!» на странице лассо.

<? lasso  'Hello World!'  ?>[ 'Привет, мир!' ]Привет, мир!

Квадратные скобки зарезервированы в лассо, поэтому объекты HTML должны использоваться для отображения квадратных скобок на страницах лассо для других целей, кроме маркировки тегов лассо. В качестве альтернативы, печать квадратных скобок может быть выполнена с помощью лассо или отключена путем включения [no_square_brackets] в начало файла.

Встроенные [ править ]

// Находим все записи в таблице inline ( -database = 'db_name' ,  -table = 'table_name' ,  -findall )  =>  { // Проходим и обрабатываем каждую строку rows  =>  { // Выводим каждую строку в текущую веб - запрос content_body  + =  '<a href="'  +  колонка ('url') +'"> ' + колонки ( 'название' ) + '</a>' } }      

Встроенные строки - это основной инструмент лассо для действий с базой данных. Команды базы данных могут быть выполнены, как указано выше, на метаязыке, независимом от db, и в этом случае тот же поисковый код работает для MySQL, FileMaker Pro или для любого другого бэкэнда базы данных, с которым может подключаться Lasso.

Если необходимо, оператор SQL, конечно, может быть встроен во встроенную строку при использовании сервера базы данных, поддерживающего SQL:

 // Выполнение инструкции SQL  inline (  -database = 'db_name' ,  -sql  =  'SELECT * FROM table_name'  ) ...

В приведенном выше примере тире (-) перед командами обозначают необязательные параметры. Их можно указывать в любом порядке и генерировать динамически; последний из любых повторяющихся параметров имеет приоритет. Встроенная команда поддерживает широкий диапазон параметров [59], позволяющих разработчикам взаимодействовать с базами данных, о которых они могут не знать досконально.

Можно создавать настраиваемые соединители базы данных, что позволяет использовать абстрактную природу встроенной команды.

99 бутылок пива [ править ]

Следующий пример процедуры распечатывает текст песни "99 Bottles of Beer".

// Определяем пару полезных методовопределить  br  =>  '<br/>' определить  бутылки ( n :: integer )  =>  #n  ! =  1  ?  «бутылки»  |  'бутылка'// Объявить локальный, который будет хранить текст в виде строкиместный ( out =  '' )// Используйте синтаксис запроса Lasso для создания текста песнис  n  в  99  до  1  по  - 1  do  {#out  + =  #n  +  бутылок ( #n )  +  'пива на стене'  +  br #out  + =  #n  +  бутылок ( #n )  +  'пива; '  +  Ш #n - #out  + =  'Возьмите один вниз, передать его вокруг,'  +  ш #out  + =  #n  +  бутылки ( #n )  +  ' пива на стене. '  +  ( br  *  2 ) }// Вывод результата#из

В следующем примере используется ООП-подход для вывода текста песни, когда объект представлен в виде строки:

// Определить тип define  bottle_of_beer => type  {// Определяем внутренние данные data  private  bottle  =  99// Определяем частные методы private  br  =>  '<br/>' private  s  =>  . бутылки  ! =  1  ?  's'  |  ''// Создание текста песни, когда объект представлен в виде строки public  asstring  =>  {местный ( out =  '' )// Используйте синтаксис запроса Lasso для создания текста песнис  п  в  99  к  1  по  - 1  сделать  { . бутылок  =  #n #out  + =  . бутылки  +  «бутылка»  +  . s  +  'пива на стене', '  +  . br # выход  + =  . бутылки  +  «бутылка»  +  . s  +  'пива; '  +  . br . бутылки - #out  + =  'Взять одну, передать,'  +  . br# выход  + =  . бутылки  +  «бутылка»  +  . s  +  'пива на стене. '  +  ( . br  *  2 )  }// Возвращаем результат return  #out } }Bottle_of_beer

Инструменты разработки, среды [ править ]

  • ЛассоЛаб
  • Лассо Студия для Затмения
  • Языковой режим лассо для Coda
  • Языковой модуль Lasso для BBEdit

Ссылки [ править ]

  1. Дэйв, Паркхерст (25 апреля 1997 г.), «Новые веб-инструменты помогают серверам связываться с устаревшими данными», MacWEEK Magazine
  2. ^ «Filemaker Pro Требуется внешний соединитель» . 1 февраля 2000 г.
  3. ^ "Базы данных Filemaker Pro с поддержкой Интернета" . 1 августа 2002 г.
  4. ^ «Microsoft по выражениям запросов» .
  5. ^ «Определенные выражения запроса» .
  6. ^ «Объяснение LassoApps» .
  7. ^ Крис, Tracewell (2006). «Более пристальный взгляд на два языка сценариев OS X» . MACTech .
  8. Брайан, Даннинг (1 февраля 2005 г.). «Выберите подходящий инструмент для работы» .
  9. ^ «Лассо против языков сценариев на W3Techs» .
  10. ^ «Сравнение популярных языков» . Архивировано из оригинала на 2009-01-16.
  11. ^ "Обсуждение на форуме со ссылкой на источник Лассо 9" .
  12. ^ "DS на GitHUB" .
  13. ^ «Лицензирование Лассо» .
  14. ^ "Винс Бонафонти LassoTalk Post" .
  15. ^ «Требования к Лассо 1.0» . Архивировано из оригинального 27 декабря 1996 года.
  16. ^ «Лассо в прессе (в архиве)» . Архивировано из оригинала 8 июня 2003 года.
  17. Джим, Далримпл (4 января 2002 г.), «Apple предлагает мероприятие Connect: Pro2Pro на Macworld», PCWorld
  18. ^ "Язык динамической разметки Claris" .
  19. ^ «Технология голубого мира, приобретенная Claris» . Архивировано из оригинала на 30 апреля 2001 года.
  20. ^ Ю, Чонг-хо. «Lasso предоставляет больше возможностей, чем Web Companion» . Архивировано из оригинального 26 декабря 2004 года.
  21. ^ «Изменения в Лассо 2.0» . Архивировано из оригинала на 1 мая 2001 года.
  22. ^ "Лассо 5 выпущено" .
  23. ^ "Обсуждение Slashdot отказа от FileMaker" .
  24. ^ "Тенон" . Архивировано из оригинала на 2018-08-28 . Проверено 5 сентября 2005 .
  25. ^ "Выбор редакции: Интернет и развитие" . MacWorld . IDG . Проверено 28 октября 2013 года .
  26. ^ Зайтер, Чарльз. «Студия лассо для Dreamweaver 1.5» . MacWorld . IDG . Проверено 28 октября 2013 года .
  27. ^ Коэн, Питер. «Выпущено Lasso Studio 7 для Dreamweaver, GoLive» . MacWorld . IDG . Проверено 28 октября 2013 года .
  28. ^ «Теперь доступен расширенный FileMaker Server 7» . CMO . Проверено 28 октября 2013 года .
  29. ^ Кук, Брэд. «Lasso Pro получает сертификат MySQL Network» . MacWorld . IDG . Проверено 28 октября 2013 года .
  30. ^ "Статья о приобретении программного обеспечения OmniPilot" .
  31. ^ "Объявление о выпуске Lasso 8" .
  32. ^ «8.5 бесплатно» . MacNN .
  33. ^ Коэн, Питер. «Выпущено Lasso Studio 8 для Dreamweaver & GoLive» . MacWorld . IDG . Проверено 28 октября 2013 года .
  34. ^ «Список выпусков OmniPilot на MacNN» . MacNN .
  35. ^ "LassoSoft приобретает Lasso OmniPilot" . MacNN . 5 марта 2007 г.
  36. ^ "Статья о приобретении ООО" ЛассоСофт " .
  37. ^ Гундерсон, Ларс. «Я надеюсь, что Lassosoft делает прямо сейчас» .
  38. ^ Гундерсон, Ларс. «График упадка сообщества LassoTalk» .
  39. ^ «9.2 Релиз» .
  40. ^ «Выпущена первая версия лассо» . Архивировано из оригинального 19 октября 1996 года.
  41. ^ "Руководство по лассо 1.0.4" (PDF) . Архивировано из оригинального (PDF) 27 декабря 1996 года.
  42. ^ "Лассо 1.1 Выпущено" . Архивировано из оригинального 27 декабря 1996 года.
  43. ^ "Лассо 2.0 Релиз" . Архивировано из оригинала 12 июня 2003 года.
  44. ^ «Неработающая ссылка на обзор MacWeek» . Архивировано из оригинального 22 апреля 1998 года.
  45. ^ "Лассо 3.0 выпущен" . Архивировано из оригинала 12 июня 2003 года.
  46. ^ "Лассо 3.5 выпущено" . Архивировано из оригинала 8 июня 2003 года.
  47. ^ "Лассо 3.6 Релиз" . Архивировано из оригинала на 11 июня 2003 года.
  48. ^ «Лассо 3.6.5 выпущено» . Архивировано из оригинала на 11 июня 2003 года.
  49. ^ "Lasso 5.0 Release" . Архивировано из оригинала 2 августа 2003 года.
  50. ^ "Лассо 6.0 выпущен" . Архивировано из оригинала 22 июня 2003 года.
  51. ^ "Лассо 7.1 Выпуск (копия)" .
  52. ^ "Лассо 8.1 выпущен" .
  53. ^ "Лассо 8.5 выпущено" .
  54. ^ "Лассо 9 Выпуск" .
  55. ^ "Лассо 8.6 Релиз" .
  56. ^ "Лассо 9.1 Релиз" .
  57. ^ "Лассо 9.2 Релиз" .
  58. ^ "Лассо 9.3 Релиз" .
  59. ^ большой диапазон параметров

Внешние ссылки [ править ]

  • Официальный сайт , ЛассоСофт
  • Официальный сайт , LassoGuide
  • ЛассоСсылка
  • FileMaker
  • ListSearch - Система поиска списка LassoSoft
  • Архив LassoTalk на Nabble
  • Архив LassoTalk в группах Google
  • ExecuChoice - Набор тегов PDF - PassThru - ShortString
  • Knop - фреймворк для веб-приложений с открытым исходным кодом для Lasso 8 и 9
  • LassoFusebox - порт Lasso популярного фреймворка веб-приложений Fusebox с открытым исходным кодом для Lasso 8 и 9
  • LassoBin - PasteBin для лассо
  • LassoForge - проекты лассо с открытым исходным кодом
  • tagSwap - публичный обмен на пользовательские теги Lasso.
  • L-Debug - пакет отладки для Lasso 8 и Lasso 9
  • Эта запись в Википедии в значительной степени опирается на ранние объявления и многие известные источники, которые больше не доступны в Интернете.