Lasso (język programowania) - Lasso (programming language)

Lasso
LassoSoft i Lasso logo.png
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 ; 23 lat temu ( 1995 )
Wersja stabilna
9.3.1 / 23 października 2015 ; 3 lata temu ( 23.10.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 .lassosoft .com
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.

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

Klawisz
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

  • LassoLab
  • Lasso Studio for Eclipse
  • Tryb język lasso na Coda
  • Moduł język lasso dla BBEdit

Referencje

Linki zewnętrzne