Lasso (programozási nyelv)

programozási nyelv

A Lasso egy internetes alkalmazások fejlesztésére használt alkalmazásszerver és szerverkezelő felület, és általános célú, magas szintű programozási nyelv. Eredetileg a Filemaker webes adatforrás-összekapcsoló eszközeként fejlesztették ki,[1] és később az Apple FileMaker 4.0 és a Claris Home Page szerkesztő része lett CDML néven.[2][3] Azóta komplex nyelvvé fejlődött, amelyet nagyszabású internetes alkalmazások és weboldalak fejlesztésére és kiszolgálására használnak.

Lasso
Paradigma
Megjelent1995
Hatással volt rá
Weboldal

A Lasso egy egyszerű sablonrendszert használva lehetővé teszi a HTML és más tartalomtípusok létrehozását kód által. A Lasso objektumorientált, és minden értéket objektumként kezel. Támogatja a procedurális programozást is úgynevezett nem kötött metódusokkal, és széles körben használja a trait-eket és a multimetódusokat.

A Lasso dinamikus típusok rendszerét használja, vagyis az objektumok futás közben tölthetőek be és bővíthetőek; automatikus memóriakezeléssel, átfogó standard könyvtárral és három fordítási módszerrel: dinamikus fordítás (hasonló a PHP-hez és Pythonhoz), futásidejű fordítás (hasonló a Javához vagy a .NET keretrendszerhez), és elő-fordítás (hasonló a C-hez). A Lasso támogatja a lekérdezés kifejezést (Query Expressions) is,[4] amely lehetővé teszi a tömbökben és más tárolókban lévő elemek iterálását, szűrését és manipulálását az SQL-hez hasonló természetes nyelvi szintaxissal.[5] A Lasso teljes Unicode karaktertámogatást tartalmaz karakterlánc-objektumában, amely lehetővé teszi több bájtos karakterek kezelését, valamint támogatja az UTF-8 átalakítást, amikor karakterlánc-adatokat ír a hálózatra vagy a fájlrendszerbe.

A Lasso hasonló a szerveroldali szkriptnyelvekhez, mint például a PHP,[6][7] Python, ColdFusion, Ruby stb.[8][9] Gyakran használják szkriptnyelvként, de más kontextusok széles skálájában is alkalmazzák. A kód önálló „LassoApps” nevű futtatható programokba csomagolható, amelyekben a mappastruktúrák egyetlen fájllá vannak összeállítva.[10]

A Lasso Server alkalmazásszerver rendszerszolgáltatásként fut, és FastCGI-n keresztül fogad kéréseket a webszervertől. Ezután átadja a kérést a megfelelő Lasso példánynak, amely megfogalmazza a választ. Több egyedi példány támogatott, így egy szerver több webhelyet is kezelhet, mindegyiket külön folyamatként. A szerver nagy teljesítményű IO-alapú virtuális szálak (green threads) rendszerét használja, amelyet többmagos rendszerek számára terveztek.

A Lasso ingyenes, és részleges hozzáférést is biztosít a forráskódjához,[11] lehetővé téve a fejlesztők számára, hogy hozzáadják vagy megváltoztassák a nyelv főbb elemeit (például Ke Carlton DS implementációja a Lasso Inlinehoz).[12] A licencelés SAS és önálló verziókban egyaránt elérhető.[13]

Története szerkesztés

A Lasso története a kilencvenes évek derekán kezdődött, amikor a korai webfejlesztők adatbázis-alapú webhelyeket próbáltak készíteni az Apple FileMaker Pro segítségével. Mac platformon két lehetőség volt erre: Eric Bickford WEB-FM-je és Russell Owens FileMaker CGI-je (ROFM), mindkettő AppleScript-ben épült, és a formázáshoz a FileMaker Pro számítási mezőinek használatát igényelte. (A WEB-FM-et később C-ben írták át).

1995 őszén Vince Bonfanti független fejlesztő egy új CGI-t írt a ROFM alapjára, C/C++-t használva a jobb teljesítmény érdekében, és a HTML-alapú „sablonok” fogalmát alkalmazva a számítási mezők helyett. Ez nagyon népszerűnek bizonyult a FileMaker közösségében, és Bill Doerrfeld, a Washington állambeli Issaquah-ban működő Blue World Communications Inc, egy nyomtatási és weboldal fejlesztő cég tulajdonosa is felfigyelt rá, és megvásárolta a forráskódot.[14] Ebben az időben a Blue World Frontier-alapú CGI-fejlesztéssel kísérletezett a Frontier parancsfájl-környezetben, és ez sugallta a Lasso elnevezést is. A további fejlesztési igény ösztönözte egy C-alapú CGI létrehozását, amelyet később Lasso 1.0 néven adtak ki. Ekkor a Lasso még csak a FileMaker Pro 3.x és a WebSTAR programokkal működött, és csak Apple Mac OS 8 és újabb rendszereken.[15]

A Lasso legnagyobb mértékben a nyomtatott kiadványokban megjelent ismertetéseknek köszönhette népszerűségét, továbbá annak, hogy a Blue World számos e-mailes vitalistát üzemeltetett, amelyek közül sok kifejezetten a FileMaker Pro-val foglalkozott. A Blue World sok esetben szerepelt a MacWorld konferenciákon, és ezeken vezető cégként ismerték.[16]

1997 januárjában, a Lasso 1.2 megjelenésével után a Blue World és a Bonfantik magántárgyalásokba kezdtek a Clarisszal, az Apple Computer szoftveres részlegével és a FileMaker Pro tulajdonosával. A Claris végül licencelte az 1.2-es verzió utáni Lasso forráskódot, és Vince és Paul Bonfanti segítségével kiadta a FileMaker Web Companiont, a FileMaker Pro 4.0 összetevőjeként. A FileMaker Web Companion nyelve, a CDML (Claris Dynamic Markup Language)[17] különbözött a Lasso 1.2 LDML-jétől (Lasso Dynamic Markup Language), de elég hasonló volt ahhoz, hogy könnyű átmenetet kínáljon azoknak a fejlesztőknek, akik FileMaker Proval harmadik féltől származó szervereken keresztül dolgoztak,[18] és vonzóbb szolgáltatásokat kínált.[19]

A Lasso-szerű Web Companion belefoglalása a FileMaker 4.0-ba előremozdította a Lasso népszerűségének növekedését a gyorsan növekvő Macintosh webfejlesztő közösségben. A Blue World folytatta a Lasso fejlesztését, és Kyle Jessup lett a Lasso vezető programozója. 1997 júliusában megjelent a Lasso 2.0, néhány alapvető változtatást bevezetve a Lasso használatának lehetőségeiben.[20]

2002. február 26-án a Blue World kiadta a Lasso 5-öt, amely szakított a FileMaker-centrikus nyelvezettel (megjegyzendő, hogy 4-es verzió nem volt, a 3-as után rögtön az 5-ös következett). A Lasso 5 más fejlesztések mellett egy teljesen átírt architektúrát tartalmazott (OS X, Windows, Linux számára), és egy beágyazott MySQL adatbázist. Bár a Lasso 5 továbbra is kommunikált a FileMaker adatbázissal (de nem a FileMaker Serverrel), a FileMaker adatforrásként lassabb és drágább volt az SQL motornál. A 2.0 verziótól kezdve a Lasso teljesen többszálas volt és lehetővé tette több kapcsolat egyidejű létesítését, de megadta magát a FileMaker lassúságának és latenciájának, és nem volt más módszer ez ellen, minthogy megváltoztassák az adatforrást.[21]

A Lasso 5 már nem támogatta a Mac OS 9-et, viszont egyik újítása az Apache HTTP Server natív támogatása volt OS X, Windows és Linux alatt, hasonlóan a Webstar 5-höz, az AppleShare IP-hez (amelyet az OS X Server váltott fel) és a Tenon iTools-ához.[22] Ez szorosabbra fűzte a kapcsolatokat egy klasszilus LAMP szerver architektúrával.

A Blue World Communications több plug-int adott ki a Macromedia és az Adobe népszerű webfejlesztési csomagjai számára. A Dreamweaverhez írt Lasso Studio 1.5 2001-ben második helyezett lett a MacWorld magazin Editors' Choice Awards for Internet and Development díjazásán,[23] ahol az első helyet az Adobe Dreamweaver 3 szerezte meg. A MacWorld magazin pozitív kritikát közölt a Lasso Studio 1.5-ről, ötből négy és fél „egeret” adva neki.[24] A Lasso Studio későbbi verziói (például a 2004-ben megjelent Lasso Studio 7) mind a Dreamweavert, mind a GoLive-ot támogatták.[25]

A FileMaker Server és a FileMaker Server Advanced 7-es verziójának 2004-es megjelenésével a FileMaker jelentős változást vezetett be az adatkiszolgálási stratégiájában. Hangsúlyt helyeztek az XML-XSLT, ODBC és JDBC kapcsolatokra, de csak a drágább FileMaker Server Advanceden keresztül.[26] A Blue World így kezdte eltávolítani a Lasso nyelvet a FileMakertől és az Appletől. 2005-ben a Lasso Pro megkapta a MySQL Network tanúsítványt,[27] aláhúzva a népszerű nyílt forráskódú adatbázis fontosságát a Lasso jövője szempontjából.

2004. augusztus 1-jén Bill Doerrfeld hivatalosan eladta a Lasso termékcsaládot a Fort Lauderdale-bázisú OmniPilot Software Inc-nek. A Lasso 7.0.3 volt az utolsó verzió, amelyet a Blue World adott ki.[28] 2004. október 25-én az OmniPilot hivatalosan bejelentette a Lasso 8-at, amely egyazon szerveren több webhely sandboxolását, és sok új adatforráshoz való kapcsolódást tartalmazott.[29] Ez magában foglalta a Lasso első, IP-címekre korlátozott ingyenes verzióját is.[30] Számos kiegészítő termék is megjelent, köztük a Lasso Studio 8 Dreamweaver-hez és GoLive-hoz,[31] 2005. március 28-án pedig a Lasso Studio for Eclipse, ChartFX integráció, és több ingyenes Lasso-alapú megoldás.[32]

2007-ben az OmniPilot három munkatársa, Kyle Jessup (a Lasso 1.0 eredeti fejlesztője), Fletcher Sandbeck (a Blue World első alkalmazottainak egyike, aki a rendszeres „tippek és trükkök” javaslatairól volt nevezetes) és Kerry Adams (egy OmniPilot alkalmazottj) létrehozta a LassoSoft LLC vállalkozást, hogy megvásárolja az OmniPilottól a Lasso szellemi tulajdont és folytassa a fejlesztést.[33][34] Felismerve annak szükségességét, hogy versenyképesek legyenek a sokkal népszerűbb nyelvekkel (PHP, ASP) szemben, radikális változásokat hajtottak végre az architektúrában, a szintaxisban és a struktúrában, és kiadták a Lasso 9.0 változatát. A változások okozta technikai kihívások, a dokumentáció és támogatás hiánya, a korlátozott marketingforrások a felhasználói bázis jelentős hanyatlásához vezettek.[35][36]

2010 decemberében megalakult egy új kanadai cég, a LassoSoft Inc, amely megvásárolta a Lasso 9.0-át és jelentős méretű beruházást hajtott végre marketing és dokumentáció területén. Kyle Jessup beleegyezett abba, hogy a vállalat élén maradjon vezető fejlesztőként és alapító tagként. Számos kiadás (9.1 és 9.2) további fejlesztéseket hozott az elkövetkező években.[37]

Verziók szerkesztés

Kulcs
Szín Jelentése Fejlesztés
Piros Régi kiadás Nincs
Sárga Stabil kiadás Biztonsági javítások
Zöld Stabil kiadás Hiba- és biztonsági javítások
Kék Tervezett kiadás Új funkciók
Verzió Kiadás dátuma Megjegyzések
ROFM > 1994-03-14 Russell Owens FileMaker CGI-je, korai AppleScript-alapú csatlakozó FileMaker Pro adatbázisokhoz
0.1 1995. szept Vince Bonafonti által C/C++-ban írt CGI csatlakozó a FileMaker Pro-hoz weben keresztül
1.0 1996. szeptember 27 Csatlakozó FileMaker Pro 3.x-hez és WebSTAR-hoz [38][39]
1.1 1996 dec WebSTAR plug-in, kliens böngésző információ, teljes GUI biztonsági réteg[40]
1.2 1997. január A forráskód licencelése a Claris (Apple Computer Inc.) által CDML néven, telepítés a Claris honlapján
2 1997. július 17 Matematikai számítások, változók, összetett adattípusok, kiszolgálóoldali adatok, kliens fejléc-információk, speciális feltételes utasítások, egy Java-kliens felület, Apple Events vezérlés a webkiszolgáló egyéb alkalmazásaihoz, több adatbázis-művelet és Instant Web Publishing
2.5 1997. december 1 Címkék szabványosítása és interoperabilitása, kommunikáció a WebTen webkiszolgálóval (az Apache HTTP Server portja Mac OS rendszerre)[41]
3.0 1998. október 07 Adathitelesítés, makrók, fájl- és könyvtárkezelés, dátum / idő vezérlők, listaváltozók, több nevezett token, robusztus hibakezelés, MIME e-mail, e-mail mellékletek, kiterjesztett matematikai rutinok, továbbfejlesztett karakterlánc-funkciók, továbbfejlesztett kódolási vezérlők[42]
3.5 1999. április 14 WYSIWYG szerkesztés Macromedia Dreamweaver 2 és Adobe GoLive 4 segítségével, több szál, LJAPI, opcionális HTTP szerver, Netscape szerver támogatása, JavaScript, XML és speciális tag-elemző beépített hibakeresési vezérlőkkel[43]
3.6 2000. január 5 FileMaker 5 adatforrások támogatása, SQL varázsló interaktív SQL lekérdezésekhez, testreszabható globális hibaoldalak, Studio a MacroMedia DreamWeaverhez[44]
3.6.5 2000. október 1 Csatlakozó MySQL, Red Hat és OS X támogatáshoz[45]
5. 2002. február 26 Átírt architektúra OS X, Windows, Linux számára beágyazott MySQL-lel, hozzáadott munkamenetek, fájlkezelés, natív csatlakozó Apache-hoz, LassoScript (szkript-metódusok hozzáadása a nyelvhez)[46]
6. 2002. szeptember 17 Képkezelés, PDF-kezelés, natív XML, FTP-integráció, dátumszámítások, időtartamok[47]
7 2004. augusztus 30 MySQL externalizálása (licencelés miatt), FileMaker zárt csatlakozó
7.1 2004. szeptember 13 Filemaker Pro 7 kompatibilitás[48]
8. 2004. október 25 A Lasso Server külön „webhelyekre” bontva a tárhelyszolgáltatók számára
8.1 2005. szeptember 19 Dokumentum-gyorsítótár, stabilitási javítások[49]
8.5 2006. június 9 Teljes AJAX integráció, több adatforrás-csatlakozó előre telepítve a FileMaker, a FileMaker Server Advanced, a MySQL, az SQLite, az MS SQL Server, a Sybase, az Oracle, a PostgreSQL, az OpenBase, az ODBC és az Apple Spotlight motorjaihoz[50]
9. 2010. január 29 Jelentős architekturális változás: több szintaxis, erős tipizálás és gyenge tipizálás, JIT-fordítás, natív szerializálás, 64 bit támogatása[51]
8.6 2011. április 20 A sebesség, a stabilitás növekedett[52]
9.1 2011. július 11 Új adminisztrációs felület, 64 bites csatlakozó, új SAS licencelés[53]
9.2 2012. június 1 Windows támogatás, integrált hibakeresés, integrált kódprofilozás[54]
9.3 2015. január 23 Új rendszergazda felület, új fordítási metodológia, központosított szervertelepítés[55]

Kódpéldák szerkesztés

Hello World szerkesztés

Háromféle mód a „Hello world!” kiírására:

<?lasso 'Hello World!' ?>

['Hello world!']

Hello world!

A szögletes zárójelek foglaltak a Lassoban, ezért HTML elemeket kell használni a szögletes zárójelek Lasso oldalakon történő megjelenítésére. Alternatív megoldásként a szögletes zárójeleket kiírhatja vagy letilthatja a Lasso a fájl kezdetén megjelenő [no_square_brackets] elemtől függően.

Inline szerkesztés

A inline-ok az adatbázis-műveletek alapvető eszközei a Lassoban. Adatbázis-parancsok a lentiek szerint adhatók ki a Lasso adatbázis-független metanyelvén; az alábbi keresőkód működik MySQL, FileMaker Pro vagy bármely más adatbázis esetén, amelyhez a Lasso csatlakozni tud.

// Az összes mező keresése egy táblázatban
inline(		
	-database='db_name', 
	-table='table_name', 
	-findall	
) => {
	// Minden sor iterációja
	rows => {	
		// A sorok kiírása az aktuális webes kéréshez
		content_body += '<a href="' + column('url') + '">' + column('title') + '</a>'
	}	
}

Ha szükséges, SQL-utasítás is beágyazható a programsorba:

 // SQL utasítás végrehajtása
 inline(		
 	-database='db_name', 
 	-sql = 'SELECT * FROM table_name'	
 )...

A fenti példában a parancsok előtti kötőjelek (-) opcionális paramétereket jeleznek. Ezek tetszőleges sorrendben megadhatók, továbbá dinamikusan előállíthatók; duplikált paraméterek esetén az utolsót fogadja el. Az inline a paraméterek széles skáláját támogatja, így a fejlesztők olyan adatbázisokkal is dolgozhatnak, amelyekről nincsenek behatóbb ismereteik.

Egyéni adatbázis-csatlakozók hozhatók létre, így lehetséges az inline parancs absztrakt jellegének kihasználása.

Fejlesztési eszközök, környezetek szerkesztés

  • LassoLab
  • Lasso Studio az Eclipse számára
  • Lasso nyelvi mód a Coda számára
  • Lasso nyelvi modul a BBEdit számára

Jegyzetek szerkesztés

  1. New Web tools help servers link to legacy data, April 25, 1997
  2. Filemaker Pro Requires external connector, 2000. február 1.
  3. Web-Enabling Filemaker Pro Databases, 2002. augusztus 1.
  4. Microsoft on Query Expressions
  5. Query Expressions Defined
  6. Chris: A Closer Look at Two OS X Scripting Languages, 2006
  7. Brian: Pick the Right Tool for the Job, 2005. február 1.
  8. Lasso vs Scripting Languages on W3Techs
  9. Comparison of Popular Languages. [2009. január 16-i dátummal az eredetiből archiválva].
  10. An explanation of LassoApps
  11. Forum discussion linking to Lasso 9 source. [2019. február 2-i dátummal az eredetiből archiválva]. (Hozzáférés: 2021. június 13.)
  12. DS on GitHUB
  13. Lasso Licensing. (Hozzáférés: 2021. június 13.)
  14. Vince Bonafonti LassoTalk Post. (Hozzáférés: 2021. június 13.)
  15. Lasso 1.0 Requirements. [1996. december 27-i dátummal az eredetiből archiválva].
  16. Apple offers Connect: Pro2Pro event at Macworld
  17. Claris Dynamic Markup Language
  18. Blue World Technology Acquired by Claris. [2001. április 30-i dátummal az eredetiből archiválva].
  19. Yu: Lasso provides more features than Web Companion. [2004. december 26-i dátummal az eredetiből archiválva].
  20. Changes in Lasso 2.0. [2001. május 1-i dátummal az eredetiből archiválva].
  21. Slashdot discussion about abandoning FileMaker
  22. Tenon. [2018. augusztus 28-i dátummal az eredetiből archiválva]. (Hozzáférés: 2005. szeptember 5.)
  23. Editors' Choice Awards: Internet and Development. MacWorld. IDG. (Hozzáférés: 2013. október 28.)
  24. Seiter: Lasso Studio for Dreamweaver 1.5. MacWorld. IDG. (Hozzáférés: 2013. október 28.)
  25. Cohen: Lasso Studio 7 for Dreamweaver, GoLive released. MacWorld. IDG. (Hozzáférés: 2013. október 28.)
  26. FileMaker Server 7 Advanced Now Available. CMO. [2013. október 29-i dátummal az eredetiből archiválva]. (Hozzáférés: 2013. október 28.)
  27. Cook: Lasso Pro receives MySQL Network certification. MacWorld. IDG. (Hozzáférés: 2013. október 28.)
  28. OmniPilot Software acquisition article. [2019. április 23-i dátummal az eredetiből archiválva]. (Hozzáférés: 2021. június 13.)
  29. Lasso 8 release announcement
  30. 8.5 for free. (Hozzáférés: 2021. június 13.)
  31. Cohen: Lasso Studio 8 for Dreamweaver & GoLive released. MacWorld. IDG. (Hozzáférés: 2013. október 28.)
  32. List of releases by OmniPilot on MacNN
  33. LassoSoft acquires OmniPilot's Lasso, 2007. március 5.
  34. LassoSoft LLC acquisition article. (Hozzáférés: 2021. június 13.)
  35. Gunderson: What I hope Lassosoft is doing right now. (Hozzáférés: 2021. június 13.)
  36. Gunderson: Graph of LassoTalk community decline. [2013. október 29-i dátummal az eredetiből archiválva]. (Hozzáférés: 2021. június 13.)
  37. 9.2 Release
  38. First Version of Lasso Released. [1996. október 19-i dátummal az eredetiből archiválva].
  39. Lasso 1.0.4 Manual. [1996. december 27-i dátummal az eredetiből archiválva].
  40. Lasso 1.1 Released. [1996. december 27-i dátummal az eredetiből archiválva].
  41. Broken Link to MacWeek Review. [1998. április 22-i dátummal az eredetiből archiválva].
  42. Lasso 3.0 Released. [2003. június 12-i dátummal az eredetiből archiválva].
  43. Lasso 3.5 Released. [2003. június 8-i dátummal az eredetiből archiválva].
  44. Lasso 3.6 Release. [2003. június 11-i dátummal az eredetiből archiválva].
  45. Lasso 3.6.5 Released. [2003. június 11-i dátummal az eredetiből archiválva].
  46. Lasso 5.0 Release. [2003. augusztus 2-i dátummal az eredetiből archiválva].
  47. Lasso 6.0 Released. [2003. június 22-i dátummal az eredetiből archiválva].
  48. Lasso 7.1 Release (copy). (Hozzáférés: 2021. június 13.)
  49. Lasso 8.1 Released. (Hozzáférés: 2021. június 13.)
  50. Lasso 8.5 Released. (Hozzáférés: 2021. június 13.)
  51. Lasso 9 Release. (Hozzáférés: 2021. június 13.)
  52. Lasso 8.6 Release. (Hozzáférés: 2021. június 13.)
  53. Lasso 9.1 Release. (Hozzáférés: 2021. június 13.)
  54. Lasso 9.2 Release. (Hozzáférés: 2021. június 13.)
  55. Lasso 9.3 Release. (Hozzáférés: 2021. június 13.)

Külső hivatkozások szerkesztés