Lasso (język programowania) - Lasso (programming language)
LassoSoft Inc. Logo
| |
Paradygmat |
Wielu paradygmat : skonstruowany obiektowego ( multi-dis )
imperatyw : proceduralny , współbieżne , exp zorientowanych , Meta : odblaskowe |
---|---|
Zaprojektowany przez | Kyle Jessup |
Deweloper | LassoSoft Inc. |
Po raz pierwszy pojawiły się | 1995 |
Wersja stabilna | 9.3.1 / 23 października 2015
|
dyscyplina Typing | Dynamiczny z ograniczeniami (ścisła-hybrydowych), mianownik , kaczka (hybrydowe) |
język realizacja | C , Lasso |
Platforma | Cross-platform |
OS | ( OS X , system Windows , Linux ) |
Licencja | Prawnie zastrzeżony |
Plik rozszerzenia | .lasso, .LassoApp |
Stronie internetowej | www |
Ważniejsze realizacje | |
Lasso 8, 9 lasso | |
Wpływem | |
Dylan , Smalltalk , Scala |
Lasso jest serwer aplikacji interfejsu zarządzania serwerem i wykorzystywane do tworzenia aplikacji internetowych i jest ogólnego przeznaczenia , język wysokiego poziomu . Początkowo narzędzie Web Connection źródło danych dla FileMaker i później włączone do firmy Apple Computer „s FileMaker 4.0 i Claris Strona WWW jako CDML, że od tego czasu przekształciła się w skomplikowanej języka używanego rozwijać i służyć aplikacji internetowych na dużą skalę i stron internetowych.
Lasso zawiera prosty system szablonów kodu pozwalającego kontrolować generowanie kodu HTML oraz innych typów zawartości . Lasso jest zorientowany obiektowo i każda wartość jest obiektem . Obsługuje także programowanie proceduralne poprzez niezwiązanych metod. Językiem wykorzystuje cechy i wielokrotne wysyłanie obszernie.
Lasso ma dynamiczny system typów , gdzie obiekty mogą być ładowane i rozszerzonej w czasie wykonywania, automatyczne zarządzanie pamięcią , kompleksowej biblioteki standardowej oraz trzy kompilacji metodologii: dynamikę (porównywalną do PHP - Python ), kompilacji just-in-time (porównywalnej z Java lub ramowa NET ), i skompilowane (porównywalne C ). Lasso obsługuje również zapytań wyrażeń, umożliwiając elementów w macierzy i innych typów sekwencji należy powtórzyć, przesączono i manipulowane za pomocą języka naturalnego składni podobny do SQL . Lasso obejmuje pełny Unicode wsparcie w postaci standardowego obiektu strun, pozwalając, aby służyć i wspierać znaków wielo-bajtowych , takich jak japoński i szwedzki, a także wspiera przejrzystych UTF-8 konwersję pisząc ciąg danych do systemu sieciowego lub pliku.
Lasso jest często używany jako język skryptowy , a także stosowane w szerokim zakresie kontekstów non-skryptowych. Kod lasso można pakować do samodzielnych programów wykonywalnych zwanych „LassoApps”, w którym struktury folderów zestawionych w pojedynczych plików.
Lasso serwer aplikacji Server działa jako usługa systemowa i odbiera żądania z serwerem WWW poprzez FastCGI . Następnie podaje żądania wyłączenia z odpowiednim Lasso Instancji, który formułuje odpowiedź. Wiele indywidualne przypadki są obsługiwane, pozwalając jeden serwer do obsługi wielu witryn, każdy jako oddzielne procesy. Serwer wykorzystuje wysoką wydajność IO opartych zielony gwintów system przeznaczony do wielordzeniowych systemów.
Lasso może być porównywany do skryptów po stronie serwera języków PHP i Python , ColdFusion , Ruby , itp
Wolny dla rozwoju, Lasso pozwala częściowego dostępu do jego kodu źródłowego, co pozwala programistom dodać lub zmienić główne elementy języka (na przykład realizacja DS Ke Carlton z Lasso Inline). Licensing pochodzi zarówno SAS i samodzielne wersje.
Zawartość
Historia
Lasso rozpoczęła się w połowie 1990, kiedy pierwsi developerzy starali się połączyć bazę danych FileMaker Pro firmy Apple z World Wide Web. Na platformie Mac, były dwa rozwiązania: Eric Bickford w WEB-FM , a Russell Owens' FileMaker CGI (ROFM) , oba zbudowane w AppleScript i wymagające użycia FileMaker Pro polach obliczeniowych do formatowania. (WEB FM następnie zapisane w C).
Na jesieni 1995 roku, deweloper Vince Bonafonti napisał nowy CGI oparciu o ROFM, używając C / C ++ dla poprawy wydajności i używając pojęcia HTML oparte na „Szablony” zamiast opierania się na polach obliczeniowych. Ten okazał się bardzo popularne w społeczności FileMaker, i została wniesiona do wiadomości Bill Doerrfeld, właściciel Blue World Communications Inc. , wydruk i rozwój strony internetowej firmy opiera się w Issaquah, Waszyngton , który kupił kod źródłowy .
W tym czasie, Blue World eksperymentowali z ulepszeń dla CGI w Frontier środowisku skryptowym, który zainspirował nazwę „Lasso”. Dalsze zapotrzebowanie na poprawę doprowadził do utworzenia CGI C oparte który został zwolniony jako „Lasso 1.0”. W tym momencie Lasso pracował tylko z FileMaker Pro 3.xi Webstar i tylko pobiegł na firmy Apple Mac OS 8 i powyżej.
Lasso popularność rosła przede wszystkim z opinii w publikacjach drukowanych i hosting Blue World jest i uczestnictwo w wielu listach dyskusyjnych e-mail, z których wiele dotyczyło konkretnie FileMaker Pro. Blue World wykonane również częste występy, był znany jako wiodącą firmą na konferencji Macworld .
Po wydaniu Lasso 1.2 składzie w styczniu 1997 roku, Blue World i Bonfantis wszedł prywatne rozmowy z Claris , podział oprogramowania Apple Computer , a właściciel FileMaker Pro. Claris ostatecznie licencję na-version-1,2 pocztowy Lasso kodu źródłowego , a za pomocą Vince i Pawła BONFANTI wydany Web Companion FileMaker jako składnik FileMaker Pro 4.0. Język FileMaker Web towarzysza, CDML (Claris Dynamiczny Markup Language), różnił się od Lasso 1.2 za LDML (Lasso Dynamiczny Markup Language), ale był na tyle blisko, by oferować łatwe przejście dla programistów, którzy chcą służyć z FileMaker Pro przez serwery stron trzecich i zaproponował bardziej atrakcyjne funkcje.
W tym Lasso podobną Companion WWW w FileMaker 4,0 pomógł wzrastać popularność Lasso w szybko rozwijającym Macintosh tworzenie stron internetowych społeczności. Blue World rozwijał Lasso z Kyle Jessup coraz lasso za główny programista . Lasso 2.0 został wydany w lipcu 1997 roku, wprowadzając pewne fundamentalne zmiany w sposobie lasso mogą być wykorzystane.
W dniu 26 lutego 2002 roku, Blue World wydany Lasso 5, radykalne odejście od FileMaker-centric języka do tej pory. (Nigdy nie było Lasso 4 uwolnienie; numer wersji pomijane od 3 do 5 lat) Lasso 5 włączone, wśród wielu aktualizacji, całkowicie przepisany architektura (dla OS X, Windows, Linux), a wbudowany MySQL bazy danych. Choć Lasso 5 wciąż mówił do bazy FileMaker (ale nie do FileMaker Server), FileMaker jako źródło danych pozostawał stosunkowo powolny w porównaniu do silnika SQL i był niewspółmiernie droższe. Od v2.0, Lasso była w pełni wielowątkowych, dzięki czemu wiele połączeń na raz, ale ulegli latencji FileMaker lub pozostają w niektórych operacji i nie było sposobu, aby ominąć to niezawodnie inny niż dokonać poważnych zmian w źródle danych.
Lasso 5 dodaje również wsparcie dla serwera Apache natywnie pod OS X, Windows i Linux, dołączając Webstar 5, AppleShare IP (który został zastąpiony przez OS X Server) i iTools (od Tenon). (Mac OS 9, na której Lasso zostały wykorzystane przez wiele lat był nieobsługiwany). To pojechaliśmy bliższych więzi z klasycznym LAMP architektury serwera.
Blue World Komunikacja wypuścił serię wtyczek do popularnych pakietów Web Development z Macromedia i Adobe. Lasso Studio 1.5 dla programu Dreamweaver był wicemistrzem w Macworld Magazine Editors' Choice Awards za internet i Rozwoju w 2001 roku, przegrywając z Adobe Dreamweaver 3. lasso Studio dla Dreamweaver 1.5 została również przeglądu pozytywnie przez magazyn MacWorld zdobywając 4 i pół myszy. Nowsza wersja Lasso Studio obsługiwane zarówno Macromedia Dreamweaver oraz Adobe GoLive tym Lasso Studio 7 dla Dreamweaver i GoLive w dniu 26 marca 2004 r.
Wraz z wydaniem FileMaker Server i FileMaker Server zaawansowana wersja 7 w 2004 FileMaker zasygnalizował znaczącą zmianę w ich strategią porcja danych do stron internetowych. Podkreślali oni, XML-XSLT, ODBC, JDBC i łączność, ale tylko przez droższego produktu FileMaker Server Advanced. Blue World zaczął dystansować się języka Lasso z FileMaker i Apple. W 2005 roku otrzymała certyfikat Lasso Pro MySQL Network wykazujące znaczenie popularnej bazy danych open source dla przyszłości Lasso.
W dniu 1 sierpnia 2004 roku, Bill Doerrfeld oficjalnie sprzedawane Lasso linię produktów do OmniPilot Software, Inc w Ft. Lauderdale, Floryda. Lasso 7.0.3 był ostatnią wersję Lasso wydany przez Blue World.
W dniu 25 października 2004 roku, OmniPilot oficjalnie ogłosił wydanie Lasso 8 wersji tym Piaskownica dla wielu miejscach na tym samym serwerze i łączność z wieloma nowymi datasources. Obejmuje to również pierwsze „wolne” wersję Lasso ograniczone do adresów IP. OmniPilot po tej wersji z wielu produktów komplementarnych, w tym Lasso Studio 8 dla Dreamweaver i GoLive w dniu 28 marca 2005 roku, Lasso Studio for Eclipse , integracji ChartFX oraz szereg bezpłatnych rozwiązań opartych Lasso.
W 2007 roku trzech pracowników OmniPilot Kyle Jessup (oryginalny deweloper Lasso 1.0), Fletcher Sandbeck (wczesny pracownik Blue Świat znany regularnych Sztuczki i kruczki) i Kerry Adams (pracownikiem OmniPilot) stworzył nową firmę, LassoSoft LLC , na zakup własności intelektualnej Lasso z OmniPilot i kontynuować rozwój. Uznając potrzebę być konkurencyjne w stosunku do znacznie bardziej popularnych języków takich jak PHP i ASP , radykalne zmiany w architekturze, składni i struktury zostały wykonane i wydane jako Lasso 9.0. Wyzwania techniczne spowodowane przez te zmiany, w połączeniu z ograniczonymi zasobami marketingowymi, doprowadził do znacznego spadku społeczności jako firma starała się uwolnić dokumentację i wsparcie dla nowego języka.
W grudniu 2010 roku, nowa spółka powstała kanadyjski, LassoSoft Inc., która kupiła i zainwestowało w Lasso 9.0 językowych, marketingu i dokumentacji. Kyle Jessup zgodził się na pozostanie na stanowisku Lead Developer zarówno lasso i Benevolent Dictator for Life . Liczne wersje (9.1 i 9.2) wydali dalszy rozwój w ostatnich latach.
Historia Release
Kolor | Znaczenie | Rozwój |
---|---|---|
Czerwony | stary uwolnienie | No rozwój |
Żółty | Wersja stabilna | poprawki bezpieczeństwa |
Zielony | Wersja stabilna | Poprawki błędów i zabezpieczeń |
niebieski | Future uwolnienie | Nowe funkcje |
Wersja | Data wydania | Uwagi |
---|---|---|
ROFM | > 14.03.1994 | Russell Owens' FileMaker CGI, wczesne złącze AppleScript opartych na bazach danych FileMaker Pro |
0,1 | Sep-1995 | Złącze CGI napisany przez Vince Bonafonti w C / C ++, aby połączyć FileMaker Pro w internecie |
1,0 | 27 września, 1996 | Złącze do FileMaker Pro 3.xi Webstar |
1,1 | Dec-1996 | WebSTAR plug-in, informacje przeglądarki klienta, warstwa zabezpieczeń kompletny GUI |
1.2 | Jan-1997 | Kod źródłowy licencjonowane Claris (Apple Computer Inc), nazwany CDML, zainstalowany w Claris Strona główna |
2 | 17-Jul-1997 | Zawarte obliczeń matematycznych, zmienne złożone typy danych, po stronie serwera obejmuje informacje nagłówka klienta, zaawansowanych instrukcji warunkowych, interfejs Java-client, jabłko kontrolować wydarzenia na innych aplikacji na serwerze WWW, baz danych, wiele działań i Szybka publikacja w Internecie |
2,5 | 1 grudnia, 1997 | Dodano znacznik standaryzacja i interoperacyjność, zdolność do komunikowania się z WebTen serwer internetowy (portu serwera Apache do Mac OS przez Tenon Intersystems) |
3.0 | 07-paź-1998 | Dodano filtry walidacji danych, makra, plik / Zarządzanie katalogu steruje data / czas, zmienne lista, wiele nazwanych żetony, solidna obsługa błędów, e-mail MIME, załączników e-mail, rozszerzone rutyny matematyki, ulepszone funkcje łańcuchowe, wzmocnionej kontroli kodowania |
3.5 | 14 kwietnia 1999 r | Dodano WYSIWYG tworzenia za pomocą Macromedia Dreamweaver 2 i Adobe GoLive 4, wielowątkowość, LJAPI, opcjonalny serwer HTTP, wsparcie dla serwera Netscape, JavaScript, XML i zaawansowane tag parsera z wbudowanym kontroli debugowania |
3.6 | 5-Jan-2000 | Wsparcie dla FileMaker 5 Karta Sources, kreatora SQL interaktywnych zapytań SQL, dostosowywanych stronach globalny błędach i Studio dla Macromedia Dreamweaver |
3.6.5 | 1-Oct-2000 | Dodano złącze dla MySQL, Red Hat i OS X wsparcia |
5 | 26-lut-2002 | Przepisany architekturę dla OS X, Windows, Linux, z wbudowanym MySQL; dodano sesje manipulacji plików, natywne złącze Apache'u i LassoScript (dodawanie „skryptowy” metodologii języka) |
6 | 17 września, 2002 | Dodano obrazowania, manipulacja PDF, native XML, integracja FTP, data matematyka, czas trwania |
7 | 30-sie-2004 | MySQL externalized (ze względu na licencji) FileMaker zamknięty łącznik |
7.1 | 13-wrzesień-2004 | Dodano kompatybilność z FileMaker Pro 7 |
8 | 25-paź-2004 | Lasso Server w podziale na odrębne „miejsc” dla dostawców hostingu |
8.1 | 19-Sep-2005 | Dodano buforowanie dokument, poprawki stabilności |
8.5 | 9-cze-2006 | Dodano pełna integracja AJAX, złącza wielokrotnego źródła danych zainstalowane na FileMaker, FileMaker Server Advanced, MySQL, SQLite, MS SQL Server, Sybase, Oracle, PostgreSQL, OpenBase, ODBC, a silnik Spotlight Apple |
9 | 29-Jan-2010 | Główną zmianą architektoniczny: więcej składnia, silnej typowania vs. słabego typowania, kompilacja JIT, native postaci szeregowej, obsługa 64-bitowych |
8.6 | 20-kwi-2011 | Szybkość, stabilność wzrosła |
9.1 | 11-Jul-2011 | Nowy interfejs administracyjny, złącze 64-bit, nowe koncesje SAS |
9.2 | 1-Jun-2012 | Wsparcie dla Windows dodał wbudowany, zintegrowany debugowanie kodu profilowanie |
9.3 | 23-Jan-2015 | Nowy interfejs administratora, nowa metodologia opracowywania, wdrażania scentralizowanego serwera |
przykłady kodu
Witaj świecie
Oto trzy sposoby, aby powiedzieć „Hello World!” na lasso stronie.
<?lasso 'Hello World!' ?>
['Hello world!']
Hello world!
nawiasy kwadratowe są zarezerwowane w Lasso, więc podmioty HTML musi być stosowany w celu pokazania kwadratowych nawiasów na stronach Lasso do innych celów niż oznakowanie Lasso tagi. Alternatywnie, drukowania nawiasy kwadratowe może być przez Lasso lub jest wyłączony, włączając [no_square_brackets] w pliku góry.
W liniach
// Find all records in a table
inline(
-database='db_name',
-table='table_name',
-findall
) => {
// Iterate through and process each row
rows => {
// Output each row to the current web request
content_body += '<a href="' + column('url') + '">' + column('title') + '</a>'
}
}
Inlines są podstawowym narzędziem Lasso na działania bazy danych. Polecenia bazy danych może być wydane, jak wyżej, w db niezależne metajęzyka Lasso jest, w tym przypadku ten sam kod wyszukiwarka działa na MySQL, FileMaker Pro lub jakiegokolwiek innego systemu bazodanowego, z którym można połączyć Lasso.
Jeśli zachodzi taka potrzeba, SQL oświadczenie może oczywiście być osadzona w inline przy użyciu serwera bazy danych, który obsługuje SQL:
// Execute SQL statement
inline(
-database='db_name',
-sql = 'SELECT * FROM table_name'
)...
W powyższym przykładzie, kreski (-) przed poleceń oznacza opcjonalne parametry. Mogą być określona w dowolnej kolejności i generowane dynamicznie; ostatni zduplikowane parametry mają pierwszeństwo. Komenda inline obsługuje szeroki zakres parametrów pozwalających deweloperom interakcji z baz danych, które nie mogą mieć dogłębną wiedzę.
złącza baza niestandardowe można tworzyć który pozwala wykorzystując wydobywane charakter polecenia rolkach.
99 butelek piwa
Kolejnym przykładem proceduralny wypisuje tekst do piosenki „99 butelek piwa”.
// Define a couple of useful methods
define br => '<br/>'
define bottles(n::integer) => #n != 1 ? ' bottles' | ' bottle'
// Declare the local that will store the lyrics as a string
local(out = '')
// Use Lasso query syntax to generate the lyric
with n in 99 to 1 by -1 do {
#out += #n + bottles(#n) + ' of beer on the wall, ' + br
#out += #n + bottles(#n) + ' of beer; ' + br
#n--
#out += 'Take one down, pass it around, ' + br
#out += #n + bottles(#n) + ' of beer on the wall. ' + (br * 2)
}
// Output result
#out
Kolejny przykład wykorzystuje podejście OOP wydrukować tekst, gdy obiekt jest reprezentowany jako ciąg znaków:
// Define type
define bottles_of_beer => type {
// Define internal data
data private bottles = 99
// Define private methods
private br => '<br/>'
private s => .bottles != 1 ? 's' | ''
// Generate lyrics when object represented as a string
public asstring => {
local(out = '')
// Use Lasso query syntax to generate the lyrics
with n in 99 to 1 by -1 do {
.bottles = #n
#out += .bottles + ' bottle' + .s + ' of beer on the wall, ' + .br
#out += .bottles + ' bottle' + .s + ' of beer; ' + .br
.bottles--
#out += 'Take one down, pass it around, ' + .br
#out += .bottles + ' bottle' + .s + ' of beer on the wall. ' + (.br * 2)
}
// Return result
return #out
}
}
bottles_of_beer
Narzędzia programistyczne, środowiska
Referencje
Linki zewnętrzne
- Oficjalna strona , LassoSoft
- Oficjalna strona , LassoGuide
- LassoReference
- FileMaker
- ListSearch - LassoSoft za ListSearch Silnik
- LassoTalk Archiwum na Nabble
- LassoTalk Archiwum na Google Groups
- ExecuChoice - PDF Tag Suite - pośredni - ShortString
- Knop - open source do tworzenia aplikacji internetowych dla Lasso 8 i 9
- LassoFusebox - lasso portem popularnego open source ramach aplikacji internetowych Fusebox dla Lasso 8 i 9
- LassoBin - Pastebin dla Lasso
- LassoForge - OpenSource Projekty Lasso
- tagSwap - publiczną wymianę za Lasso niestandardowych znaczników
- L debugowania - Pokój debugowanie Lasso 8 i 9 Lasso
- Ten wpis Wikipedia opiera się głównie na początku ogłoszeń i wielu znanych źródeł nie jest już dostępna w internecie.