Lasso (programozási nyelv)
Lasso | |
Paradigma |
|
Megjelent | 1995 |
Hatással volt rá |
|
Weboldal |
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.
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]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]- ↑ New Web tools help servers link to legacy data, April 25, 1997
- ↑ Filemaker Pro Requires external connector, 2000. február 1.
- ↑ Web-Enabling Filemaker Pro Databases, 2002. augusztus 1.
- ↑ Microsoft on Query Expressions
- ↑ Query Expressions Defined
- ↑ Chris: A Closer Look at Two OS X Scripting Languages, 2006
- ↑ Brian: Pick the Right Tool for the Job, 2005. február 1.
- ↑ Lasso vs Scripting Languages on W3Techs
- ↑ Comparison of Popular Languages. [2009. január 16-i dátummal az eredetiből archiválva].
- ↑ An explanation of LassoApps
- ↑ 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.)
- ↑ DS on GitHUB
- ↑ Lasso Licensing. (Hozzáférés: 2021. június 13.)
- ↑ Vince Bonafonti LassoTalk Post. (Hozzáférés: 2021. június 13.)
- ↑ Lasso 1.0 Requirements. [1996. december 27-i dátummal az eredetiből archiválva].
- ↑ Apple offers Connect: Pro2Pro event at Macworld
- ↑ Claris Dynamic Markup Language
- ↑ Blue World Technology Acquired by Claris. [2001. április 30-i dátummal az eredetiből archiválva].
- ↑ Yu: Lasso provides more features than Web Companion. [2004. december 26-i dátummal az eredetiből archiválva].
- ↑ Changes in Lasso 2.0. [2001. május 1-i dátummal az eredetiből archiválva].
- ↑ Slashdot discussion about abandoning FileMaker
- ↑ Tenon. [2018. augusztus 28-i dátummal az eredetiből archiválva]. (Hozzáférés: 2005. szeptember 5.)
- ↑ Editors' Choice Awards: Internet and Development. MacWorld. IDG. (Hozzáférés: 2013. október 28.)
- ↑ Seiter: Lasso Studio for Dreamweaver 1.5. MacWorld. IDG. (Hozzáférés: 2013. október 28.)
- ↑ Cohen: Lasso Studio 7 for Dreamweaver, GoLive released. MacWorld. IDG. (Hozzáférés: 2013. október 28.)
- ↑ 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.)
- ↑ Cook: Lasso Pro receives MySQL Network certification. MacWorld. IDG. (Hozzáférés: 2013. október 28.)
- ↑ OmniPilot Software acquisition article. [2019. április 23-i dátummal az eredetiből archiválva]. (Hozzáférés: 2021. június 13.)
- ↑ Lasso 8 release announcement
- ↑ 8.5 for free. (Hozzáférés: 2021. június 13.)
- ↑ Cohen: Lasso Studio 8 for Dreamweaver & GoLive released. MacWorld. IDG. (Hozzáférés: 2013. október 28.)
- ↑ List of releases by OmniPilot on MacNN
- ↑ LassoSoft acquires OmniPilot's Lasso, 2007. március 5.
- ↑ LassoSoft LLC acquisition article. (Hozzáférés: 2021. június 13.)
- ↑ Gunderson: What I hope Lassosoft is doing right now. (Hozzáférés: 2021. június 13.)
- ↑ 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.)
- ↑ 9.2 Release
- ↑ First Version of Lasso Released. [1996. október 19-i dátummal az eredetiből archiválva].
- ↑ Lasso 1.0.4 Manual. [1996. december 27-i dátummal az eredetiből archiválva].
- ↑ Lasso 1.1 Released. [1996. december 27-i dátummal az eredetiből archiválva].
- ↑ Broken Link to MacWeek Review. [1998. április 22-i dátummal az eredetiből archiválva].
- ↑ Lasso 3.0 Released. [2003. június 12-i dátummal az eredetiből archiválva].
- ↑ Lasso 3.5 Released. [2003. június 8-i dátummal az eredetiből archiválva].
- ↑ Lasso 3.6 Release. [2003. június 11-i dátummal az eredetiből archiválva].
- ↑ Lasso 3.6.5 Released. [2003. június 11-i dátummal az eredetiből archiválva].
- ↑ Lasso 5.0 Release. [2003. augusztus 2-i dátummal az eredetiből archiválva].
- ↑ Lasso 6.0 Released. [2003. június 22-i dátummal az eredetiből archiválva].
- ↑ Lasso 7.1 Release (copy). (Hozzáférés: 2021. június 13.)
- ↑ Lasso 8.1 Released. (Hozzáférés: 2021. június 13.)
- ↑ Lasso 8.5 Released. (Hozzáférés: 2021. június 13.)
- ↑ Lasso 9 Release. (Hozzáférés: 2021. június 13.)
- ↑ Lasso 8.6 Release. (Hozzáférés: 2021. június 13.)
- ↑ Lasso 9.1 Release. (Hozzáférés: 2021. június 13.)
- ↑ Lasso 9.2 Release. (Hozzáférés: 2021. június 13.)
- ↑ Lasso 9.3 Release. (Hozzáférés: 2021. június 13.)
Külső hivatkozások
[szerkesztés]- Hivatalos weboldal , LassoSoft
- Hivatalos weboldal , LassoGuide
- LassoReference
- FileMaker
- Listakeresés – a LassoSoft ListSearch Engine-je
- LassoTalk Archívum a Nabble-n Archiválva 2019. február 2-i dátummal a Wayback Machine-ben
- LassoTalk archívum a Google Csoportokban
- ExecuChoice – PDF Tag Suite – PassThru – ShortString
- Knop – nyílt forráskódú webalkalmazás-keretrendszer a Lasso 8 és 9 számára
- LassoFusebox – a népszerű nyílt forráskódú Fusebox webalkalmazás keretrendszerének Lasso-portja a Lasso 8 és 9 számára
- LassoBin – PasteBin a Lasso számára Archiválva 2019. június 29-i dátummal a Wayback Machine-ben
- LassoForge – OpenSource Lasso projektek Archiválva 2011. július 13-i dátummal a Wayback Machine-ben
- tagSwap – Nyilvános csere a Lasso egyedi címkéihez Archiválva 2021. június 13-i dátummal a Wayback Machine-ben
- L-Debug – Hibakereső csomag a Lasso 8 és a Lasso 9 számára
- Ez a Wikipédia-cikk nagyban támaszkodik a régi híradásokra és számos figyelemre méltó forrás már nem elérhető az interneten.