stringtranslate.com

Lasso (lenguaje de programación)

Lasso es un servidor de aplicaciones y una interfaz de gestión de servidores diseñados para desarrollar aplicaciones de Internet. También es un lenguaje de programación de alto nivel y propósito general . Originalmente era una herramienta de conexión de fuentes de datos web [1] para Filemaker y luego se incluyó en FileMaker 4.0 de Apple Computer y Claris Homepage como CDML, [2] [3] desde entonces ha evolucionado hasta convertirse en un lenguaje complejo que se utiliza para desarrollar y ofrecer aplicaciones de Internet y páginas web a gran escala.

Lasso incluye un sistema de plantillas simple que permite que el código controle la generación de HTML y otros tipos de contenido . Lasso es un lenguaje de programación orientado a objetos en el que cada valor es un objeto . También admite la programación procedimental a través de métodos no vinculados . El lenguaje utiliza rasgos y envío múltiple de forma extensiva.

Lasso tiene un sistema de tipos dinámico , donde los objetos se pueden cargar y aumentar en tiempo de ejecución, administración automática de memoria , una biblioteca estándar integral y tres metodologías de compilación : dinámica (comparable a PHP - Python ), compilación justo a tiempo (comparable a Java o .NET Framework ) y precompilada (comparable a C ). Lasso también admite expresiones de consulta, [4] lo que permite iterar, filtrar y manipular elementos dentro de matrices y otros tipos de secuencias utilizando una sintaxis de lenguaje natural similar a SQL . [5] Lasso incluye soporte completo de caracteres Unicode en el objeto de cadena estándar, lo que le permite servir y admitir caracteres multibyte como japonés y sueco, y admite la conversión UTF-8 transparente al escribir datos de cadena en la red o el sistema de archivos.

Lasso se utiliza a menudo como lenguaje de scripting y también en una amplia gama de contextos que no son de scripting. El código Lasso se puede empaquetar en programas ejecutables independientes llamados "LassoApps", en los que las estructuras de carpetas se compilan en archivos individuales. [6]

El servidor de aplicaciones Lasso Server se ejecuta como un servicio del sistema y recibe solicitudes del servidor web a través de FastCGI . Luego, envía la solicitud a la instancia Lasso correspondiente, que formula la respuesta. Se admiten varias instancias individuales, lo que permite que un servidor gestione varios sitios, cada uno como procesos separados. El servidor utiliza un sistema de subprocesos ecológicos basado en E/S de alto rendimiento diseñado para sistemas de múltiples núcleos .

Lasso se puede comparar con los lenguajes de programación del lado del servidor PHP [7] [8] y Python , ColdFusion , Ruby , etc. [9] [10]

Historia

Lasso comenzó a funcionar a mediados de los años 90, cuando los primeros desarrolladores web intentaban crear sitios web respaldados por bases de datos utilizando FileMaker Pro de Apple. En la plataforma Mac, había dos soluciones: WEB-FM de Eric Bickford y FileMaker CGI (ROFM) de Russell Owens, ambas creadas en AppleScript y que requerían el uso de campos de cálculo de FileMaker Pro para el formato. (WEB-FM se reescribió posteriormente en C).

En el otoño de 1995, el desarrollador independiente Vince Bonfanti escribió un nuevo CGI basado en ROFM, utilizando C / C++ para mejorar el rendimiento y utilizando el concepto de "plantillas" basadas en HTML en lugar de depender de campos de cálculo. Esto resultó muy popular en la comunidad de FileMaker y llamó la atención de Bill Doerrfeld, propietario de Blue World Communications Inc., una empresa de desarrollo de sitios web e impresión con sede en Issaquah, Washington , que compró el código fuente . [11]

En ese momento, Blue World experimentó con mejoras para el CGI en el entorno de scripting de Frontier, lo que inspiró el nombre "Lasso". La necesidad de mejoras adicionales impulsó la creación de un CGI basado en C que luego se lanzó como "Lasso 1.0". En ese momento, Lasso solo funcionaba con FileMaker Pro 3.x y WebSTAR , y solo se ejecutaba en Apple Mac OS 8 y superiores. [12]

El uso de Lasso creció notablemente a partir de las revisiones en publicaciones impresas [13] [ discutir ] y el alojamiento y la participación de Blue World en muchas listas de discusión por correo electrónico, muchas de las cuales se referían específicamente a FileMaker Pro. Blue World también hizo apariciones frecuentes y era conocida como una empresa líder en las conferencias MacWorld . [14]

Tras el lanzamiento de la línea Lasso 1.2 en enero de 1997, Blue World y Bonfanti iniciaron conversaciones privadas con Claris , la división de software de Apple Computer y propietaria de FileMaker Pro. Finalmente, Claris licenció el código fuente de Lasso posterior a la versión 1.2 y, con la ayuda de Vince y Paul Bonfanti, lanzó FileMaker Web Companion como un componente de FileMaker Pro 4.0. El lenguaje de FileMaker Web Companion, CDML (Claris Dynamic Markup Language), [15] difería del LDML (Lasso Dynamic Markup Language) de Lasso 1.2, pero era lo suficientemente parecido como para ofrecer una transición sencilla para los desarrolladores que buscaban servir desde FileMaker Pro a través de servidores de terceros [16] y ofrecía funciones más atractivas. [17]

La inclusión de Web Companion, similar a Lasso, en FileMaker 4.0 también estimuló el crecimiento de Lasso dentro de la comunidad de desarrollo web de Macintosh . Blue World continuó desarrollando Lasso y Kyle Jessup se convirtió en el programador principal de Lasso. Lasso 2.0 se lanzó en julio de 1997 e introdujo algunos cambios fundamentales en la forma en que se podía utilizar Lasso. [18]

El 26 de febrero de 2002, Blue World lanzó Lasso 5, un cambio radical respecto del lenguaje centrado en FileMaker hasta la fecha (nunca hubo un lanzamiento de Lasso 4; el número de versión pasó del 3 al 5). Lasso 5 incluía, entre muchas actualizaciones, una arquitectura completamente reescrita (para OS X, Windows, Linux) y una base de datos MySQL incorporada . [19] Aunque Lasso 5 todavía se comunicaba con una base de datos FileMaker (pero no con un servidor FileMaker), FileMaker como fuente de datos seguía siendo relativamente lento en comparación con un motor SQL, y era prohibitivamente más caro. Desde la versión 2.0, Lasso era totalmente multiproceso, lo que permitía muchas conexiones a la vez, pero sucumbía a la latencia o el retraso de FileMaker en ciertas operaciones, y no había forma de evitarlo de manera confiable, salvo realizar cambios importantes en la fuente de datos. [20]

Lasso 5 también agregó soporte para Apache HTTP Server de forma nativa en OS X, Windows y Linux , uniéndose a Webstar 5, AppleShare IP (que fue reemplazado por OS X Server) y iTools (de Tenon [21] ). (Mac OS 9, en el que Lasso se había utilizado durante muchos años, no tenía soporte). Esto impulsó vínculos más estrechos con una arquitectura de servidor LAMP clásica . [ cita requerida ]

Blue World Communications lanzó una serie de complementos para los paquetes de desarrollo web más populares de Macromedia y Adobe. Lasso Studio 1.5 para Dreamweaver quedó en segundo lugar en los premios Editors' Choice Awards para Internet y desarrollo de la revista MacWorld [22] en 2001, perdiendo ante Adobe Dreamweaver 3. Lasso Studio para Dreamweaver 1.5 [23] también recibió críticas favorables de la revista MacWorld, que le valió un 4+12 ratones. Las versiones posteriores de Lasso Studio admitieron tanto Macromedia Dreamweaver como Adobe GoLive, incluido Lasso Studio 7 para Dreamweaver y GoLive [24] el 26 de marzo de 2004.

Con el lanzamiento de FileMaker Server y FileMaker Server Advanced versión 7 en 2004, FileMaker marcó un cambio importante en su estrategia para servir datos a sitios web. Hicieron hincapié en la conectividad XML-XSLT, ODBC y JDBC, pero sólo a través del producto más caro FileMaker Server Advanced. [25] Blue World comenzó a distanciar el lenguaje Lasso de FileMaker y Apple. En 2005, Lasso Pro recibió la certificación MySQL Network [26], lo que demuestra la importancia de la popular base de datos de código abierto para el futuro de Lasso.

El 1 de agosto de 2004, Bill Doerrfeld vendió oficialmente la línea de productos Lasso a OmniPilot Software, Inc. en Ft. Lauderdale, Florida. Lasso 7.0.3 fue la última versión de Lasso lanzada por Blue World. [27]

El 25 de octubre de 2004, OmniPilot anunció oficialmente el lanzamiento de Lasso 8, una versión que incluye sandboxing para múltiples sitios en el mismo servidor y conectividad a muchas nuevas fuentes de datos. [28] Esto también incluyó la primera versión "gratuita" de Lasso limitada a direcciones IP. [29] OmniPilot siguió este lanzamiento con una serie de productos complementarios, incluyendo Lasso Studio 8 para Dreamweaver y GoLive [30] el 28 de marzo de 2005, Lasso Studio para Eclipse , integración ChartFX y una serie de soluciones gratuitas basadas en Lasso. [31]

En 2007, tres empleados de OmniPilot, Kyle Jessup (el desarrollador original de Lasso 1.0), Fletcher Sandbeck (uno de los primeros empleados de Blue World conocido por sus consejos y trucos habituales) y Kerry Adams (un empleado de OmniPilot) crearon una nueva empresa, LassoSoft LLC, para comprar la propiedad intelectual de Lasso de OmniPilot y continuar con el desarrollo. [32] [33] Reconociendo la necesidad de ser competitivo contra lenguajes mucho más populares como PHP y ASP , se realizaron cambios radicales en la arquitectura, la sintaxis y la estructura y se lanzó como Lasso 9.0. Los desafíos técnicos causados ​​por estos cambios, junto con los recursos de marketing limitados, llevaron a un declive significativo de la comunidad mientras la empresa luchaba por publicar documentación y soporte para el nuevo lenguaje. [34] [35]

En diciembre de 2010 se formó una nueva empresa canadiense, LassoSoft Inc., que compró e invirtió fuertemente en el lenguaje, el marketing y la documentación de Lasso 9.0. Kyle Jessup aceptó quedarse como desarrollador principal de Lasso y dictador benévolo de por vida . Varias versiones (9.1 y 9.2) han lanzado desarrollos adicionales en los últimos años. [36]

Historial de versiones

Ejemplos de código

Hola Mundo

Aquí hay tres formas de decir "¡Hola mundo!" en una página Lasso.

<?lasso '¡Hola mundo!' ?>  [ '¡Hola Mundo!' ]¡Hola Mundo!

Los corchetes están reservados en Lasso, por lo que se deben usar entidades HTML para mostrar corchetes en páginas Lasso con otros fines que no sean marcar etiquetas Lasso. Alternativamente, la impresión de corchetes se puede realizar mediante Lasso o se puede deshabilitar incluyendo [no_square_brackets] en la parte superior del archivo.

En linea

// Buscar todos los registros en una tabla en línea ( -database = 'db_name' , -table = 'table_name' , -findall ) => { // Iterar y procesar cada fila rows => { // Enviar cada fila a la solicitud web actual content_body += ' <a href="' + column ( 'url' ) + '"> ' + column ( 'title' ) + '</a>' } }                

Las líneas son la herramienta básica de Lasso para las acciones de bases de datos. Los comandos de bases de datos se pueden emitir como se indicó anteriormente, en el metalenguaje independiente de la base de datos de Lasso, en cuyo caso el mismo código de búsqueda funciona para MySQL, FileMaker Pro o para cualquier otro backend de base de datos con el que Lasso pueda conectarse.

Si es necesario, se puede incorporar una declaración SQL en línea cuando se utiliza un servidor de base de datos que admita SQL:

 // Ejecutar declaración SQL en línea ( -database = 'db_name' , -sql = 'SELECT * FROM table_name' ) ...       

En el ejemplo anterior, los guiones (-) antes de los comandos indican parámetros opcionales. Estos pueden especificarse en cualquier orden y generarse dinámicamente; el último de los parámetros duplicados tiene prioridad. El comando inline admite una amplia gama de parámetros [56], lo que permite a los desarrolladores interactuar con bases de datos de las que quizás no tengan un conocimiento profundo.

Se pueden crear conectores de base de datos personalizados que permitan aprovechar la naturaleza abstracta del comando en línea.

99 botellas de cerveza

El siguiente ejemplo de procedimiento imprime la letra de la canción "99 botellas de cerveza".

// Definir un par de métodos útilesdefine br => '<br/>' define botellas ( n :: entero ) => #n != 1 ? ' botellas' | ' botella'            // Declara el local que almacenará la letra como una cadenalocal ( salida = '' )  // Utilice la sintaxis de consulta Lasso para generar la letracon n en 99 a 1 por - 1 hacer {         #out += #n + botellas ( #n ) + ' de cerveza en la pared, ' + br #out += #n + botellas ( #n ) + ' de cerveza; ' + br #n -- #out += 'Toma una, pásala, ' + br #out += #n + botellas ( #n ) + ' de cerveza en la pared. ' + ( br * 2 ) }                              // Resultado de salida#afuera

El siguiente ejemplo utiliza un enfoque OOP para imprimir la letra cuando el objeto se representa como una cadena:

// Definir tipo define botellas_de_cerveza => tipo {    // Definir datos internos datos privados botellas = 99     // Definir métodos privados private br => '<br/>' private s => . botellas != 1 ? 's' | '' // Generar letras cuando el objeto se representa como una cadena public asstring => {               local ( out = '' ) // Utilice la sintaxis de consulta Lasso para generar la letra  con n en 99 a 1 por - 1 hacer { . botellas = #n #fuera += . botellas + ' botella' + . s + ' de cerveza en la pared, ' + . br #fuera += . botellas + ' botella' + . s + ' de cerveza; ' + . br . botellas -- #fuera += 'Toma una, pásala, ' + . br #fuera += . botellas + ' botella' + . s + ' de cerveza en la pared. ' + ( . br * 2 ) }                                                // Devolver resultado return #out } } botellas_de_cerveza

Herramientas y entornos de desarrollo

Referencias

  1. ^ Dave, Parkhurst (25 de abril de 1997), "Las nuevas herramientas web ayudan a los servidores a conectarse a datos heredados", MacWEEK Magazine
  2. ^ "Filemaker Pro requiere un conector externo". 1 de febrero de 2000.
  3. ^ "Bases de datos de Filemaker Pro que permiten trabajar en la Web". 1 de agosto de 2002.
  4. ^ "Microsoft sobre expresiones de consulta". 6 de marzo de 2024.
  5. ^ "Expresiones de consulta definidas".
  6. ^ "Una explicación de LassoApps".
  7. ^ Chris, Tracewell (2006). "Una mirada más cercana a dos lenguajes de programación de OS X". MACTech .
  8. ^ Brian, Dunning (1 de febrero de 2005). "Elija la herramienta adecuada para el trabajo".
  9. ^ "Lasso vs lenguajes de script en W3Techs".
  10. ^ "Comparación de lenguas populares". Archivado desde el original el 16 de enero de 2009.
  11. ^ "Publicación de Vince Bonafonti LassoTalk".
  12. ^ "Requisitos de Lasso 1.0". Archivado desde el original el 27 de diciembre de 1996.
  13. ^ "Lasso en la prensa (archivado)". Archivado desde el original el 8 de junio de 2003.
  14. ^ Jim, Dalrymple (4 de enero de 2002), "Apple ofrece el evento Connect: Pro2Pro en Macworld", PCWorld
  15. ^ "Lenguaje de marcado dinámico de Claris".
  16. ^ "Blue World Technology adquirida por Claris". Archivado desde el original el 30 de abril de 2001.
  17. ^ Yu, Chong-ho. "Lasso ofrece más funciones que Web Companion". Archivado desde el original el 26 de diciembre de 2004.
  18. ^ "Cambios en Lasso 2.0". Archivado desde el original el 1 de mayo de 2001.
  19. ^ "Lasso 5 lanzado".
  20. ^ "Discusión en Slashdot sobre el abandono de FileMaker". 31 de agosto de 2004.
  21. ^ "Tenon". Archivado desde el original el 28 de agosto de 2018. Consultado el 5 de septiembre de 2005 .
  22. ^ "Editors' Choice Awards: Internet y desarrollo". MacWorld . IDG . Consultado el 28 de octubre de 2013 .
  23. ^ Seiter, Charles. "Lasso Studio para Dreamweaver 1.5". MacWorld . IDG . Consultado el 28 de octubre de 2013 .
  24. ^ Cohen, Peter. "Lanzamiento de Lasso Studio 7 para Dreamweaver y GoLive". MacWorld . IDG . Consultado el 28 de octubre de 2013 .
  25. ^ "FileMaker Server 7 Advanced ya está disponible". CMO . Consultado el 28 de octubre de 2013 .
  26. ^ Cook, Brad. "Lasso Pro recibe la certificación MySQL Network". MacWorld . IDG . Consultado el 28 de octubre de 2013 .
  27. ^ "Artículo sobre adquisición de OmniPilot Software".
  28. ^ "Anuncio de lanzamiento de Lasso 8".
  29. ^ "8.5 gratis". MacNN .
  30. ^ Cohen, Peter. "Lanzamiento de Lasso Studio 8 para Dreamweaver y GoLive". MacWorld . IDG . Consultado el 28 de octubre de 2013 .
  31. ^ "Lista de lanzamientos de OmniPilot en MacNN". MacNN .
  32. ^ "LassoSoft adquiere Lasso de OmniPilot". MacNN . 5 de marzo de 2007.
  33. ^ "Artículo sobre la adquisición de LassoSoft LLC".
  34. ^ Gunderson, Lars. "Lo que espero que Lassosoft esté haciendo ahora mismo".
  35. ^ Gunderson, Lars. "Gráfico del declive de la comunidad LassoTalk".
  36. ^ "Versión 9.2".
  37. ^ "Se publica la primera versión de Lasso". Archivado desde el original el 19 de octubre de 1996.
  38. ^ "Manual de Lasso 1.0.4" (PDF) . Archivado desde el original (PDF) el 27 de diciembre de 1996.
  39. ^ "Lanzamiento de Lasso 1.1". Archivado desde el original el 27 de diciembre de 1996.
  40. ^ "Lanzamiento de Lasso 2.0". Archivado desde el original el 12 de junio de 2003.
  41. ^ "Enlace roto a la reseña de MacWeek". Archivado desde el original el 22 de abril de 1998.
  42. ^ "Lanzamiento de Lasso 3.0". Archivado desde el original el 12 de junio de 2003.
  43. ^ "Lanzamiento de Lasso 3.5". Archivado desde el original el 8 de junio de 2003.
  44. ^ "Lanzamiento de Lasso 3.6". Archivado desde el original el 11 de junio de 2003.
  45. ^ "Ya está disponible Lasso 3.6.5". Archivado desde el original el 11 de junio de 2003.
  46. ^ "Lanzamiento de Lasso 5.0". Archivado desde el original el 2 de agosto de 2003.
  47. ^ "Lanzamiento de Lasso 6.0". Archivado desde el original el 22 de junio de 2003.
  48. ^ "Lanzamiento de Lasso 7.1 (copia)".
  49. ^ "Lasso 8.1 lanzado".
  50. ^ "Lasso 8.5 lanzado".
  51. ^ "Lanzamiento de Lasso 9".
  52. ^ "Lanzamiento de Lasso 8.6".
  53. ^ "Lanzamiento de Lasso 9.1".
  54. ^ "Lanzamiento de Lasso 9.2".
  55. ^ "Lanzamiento de Lasso 9.3".
  56. ^ amplia gama de parámetros

Enlaces externos