لاسو (زبان برنامه‌نویسی)

تاریخچه

لاسو در اواسط دهه ۹۰ میلادی آغاز به کار کرد، زمانی که توسعه دهندگان اولیه وب سعی در اتصال پایگاه داده FileMaker Pro اپل با شبکه جهانی وب داشتند. در پلتفرم Mac دو راه حل وجود داشت: WEB-FM اریک بیکفورد و FileMaker CGI راسل اوونز (ROFM) که هر دو در AppleScript ساخته شده بودند و نیازمند استفاده از زمینه‌های محاسباتی FileMaker Pro برای قالب بندی بودند. (وب-FM بعداً به زبان C بازنویسی شد).
در پاییز سال ۱۹۹۵، وینس بونافونتی ( توسعه دهنده )،CGI جدید را بر اساس ROFM، با استفاده از C / C ++ و از مفهوم «قالب» مبتنی بر HTML به جای تکیه بر زمینه‌های محاسباتی، برای بهبود عملکرد نوشت. این امر در انجمن FileMaker بسیار محبوب بود و توجه بیل دررفلد، صاحب شرکت Blue World Communications Inc.، یک شرکت چاپ و توسعه وب در خارج از ایساوا، واشینگتن، که کد منبع را خریداری کرد، را به خود جلب کرد.
در این زمان، جهان آبی با پیشرفت‌های انجام شده برای CGI در محیط اسکریپت Frontier آزمایش‌هایی انجام داد، که نام لاسو را الهام بخشید. نیاز به پیشرفت بیشتر باعث ایجاد CGI مبتنی بر C شد که بعدها به عنوان "Lasso 1.0" منتشر شد. در این مرحله، لاسو فقط با FileMaker Pro 3.x و WebSTAR کار می‌کرد و تنها در سیستم عامل اپل Mac OS 8 و بالاتر اجرا می‌شد.
محبوبیت لاسو به‌طور قابل ملاحظه ای از بررسی در نشریات چاپی و همچنین میزبانی جهان آبی و مشارکتش در بسیاری از لیست‌های بحث ایمیل است که بسیاری از آن‌ها به‌طور خاص مربوط به FileMaker Pro بود. جهان آبی همچنین به صورت مداوم در همه جا حضور داشت و به عنوان یک شرکت پیشرو در کنفرانس MacWorld شناخته شد.
پس از انتشار سری Lasso 1.2 در ماه ژانویه سال ۱۹۹۷، جهان آبی و Bonfantis با Claris، بخش نرم‌افزاری Apple Computer و مالک FileMaker Pro وارد گفتگوهای خصوصی شدند. Claris در نهایت مجوز کد منبع نسخه ۱٫۲ پست لاسو را صادر کرد، و با کمک وینس و پل بونفانتی از FileMaker همنشین وب به عنوان یک جزء از نرم‌افزار FileMaker 4.0 منتشر شده‌است. زبان، (CDML (Claris Dynamic Markup Language (زبان نشانه گذاری پویا clarys), از Lasso 1.2 LDML متفاوت بود، که به توسعه دهندگان که به دنبال به کار بردن FileMaker Pro از طریق سرورهای شخص ثالث بودند، یک گذار راحت را پیشنهاد می‌کرد و همچنین ویژگی‌های کامپایل بیشتری را ارائه می‌کرد.
اضافه کردن همنشین وب شبه لاسو در FileMaker 4.0 به محبوبیت لاسو در جامعه رو به رشد توسعه وب Macintosh کمک کرد. جهان آبی به توسعه لاسو همراه با Kyle Jessup که اکنون برنامه‌نویس رهبر لاسو شده بود، ادامه داد. Lasso 2.0 در ژوئیه سال ۱۹۹۷ منتشر شد و تغییراتی اساسی در نحوه استفاده از لاسو معرفی کرد
در تاریخ ۲۶ فوریه ۲۰۰۲، جهان آبی Lasso 5 را عرضه کرد، که این امر تا آن روز، جدایی رادیکال از زبانی بود که بر مبنای FileMaker ساخته شده بود. (نسخه آزمایشی Lasso 4هرگز عرضه نشد؛ شماره نسخه از ۳ به ۵ پرید) Lasso 5 شامل بسیاری از به روز رسانی‌ها، معماری کاملاً بازنویسی شده (برای OS X، ویندوز، لینوکس) بود و یک پایگاه داده MySQL در آن تعبیه شده بود. اگر چه Lasso 5 هنوز از پایگاه داده FileMaker استفاده می‌کرد (اما نه از سرور آن)، FileMaker به عنوان یک منبع داده نسبتاً کند در مقایسه با یک موتور SQL باقی ماند که به طرز غیرقابل قبولی گران‌تر بود. از آنجا که v2.0، لاسو کاملاً چند ریسه ای بود که اجازه اتصال‌های بسیاری در یک زمان را می‌داد، اما در زمان وقوع یا تأخیر در کارکردهای خاصی به FileMaker باخت و هیچ راهی دیگری برای جبران آن نبود مگر آن که تغییرات اساسی در منبع داده ایجاد شود.
Lasso 5 همچنین پشتیبانی از Apache HTTP Server را اساساً تحت سیستم عامل OS X، ویندوز و لینوکس ایجاد کرد، که Webstar 5، AppleShare IP (که توسط OS X Server جایگزین شده‌است) و iTools (از Tenon) را به هم پیوند می‌داد. (Mac OS 9، که در آن چند سال از لاسو استفاده شده بود، پشتیبانی نشده بود). که این باعث نزدیکی بیشتر به معماری کلاسیک سرور LAMP شد. 
ارتباطات جهان آبی همچنین یک سری از افزونه‌ها را برای بسته‌های محبوب وب توسعه یافته از Macromedia و Adobe منتشر کرد. Lasso Studio 1.5 برای Dreamweaver در مراسم اهدای جوایز به انتخاب ادیتورهای مجله MacWorld برای اینترنت و توسعه ، دوم شد. در سال ۲۰۰۱ به Dreamweaver 3 باخت. Lasso Studio برای Dreamweaver 1.5 نیز از نظر مجله MacWorld با موفقیت ۴ و نیم موش مورد بررسی قرار گرفت. نسخه بعدی Lasso Studio از هر دو Macromedia Dreamweaver و Adobe GoLive از جمله Lasso Studio 7 برای Dreamweaver و GoLive در تاریخ ۲۶ مارس ۲۰۰۴ پشتیبانی کرد.
با انتشار FileMaker Server و FileMaker Server Advanced نسخه ۷ در سال 2004 FileMaker یک استراتژی جدید برای ارائه داده به سایت‌های وب عرضه کرد. آن‌ها روی XML-XSLT, ODBC و اتصال JDBC تأکید داشتند، اما تنها از طریق نرم‌افزار پیشرفته FileMaker Server Advanced. جهان آبی شروع به دور کردن زبان لاسو از FileMaker و اپل کرد. در سال ۲۰۰۵، Lasso Pro گواهینامه شبکه MySQL را دریافت کرد که اهمیت پایگاه داده منبع باز را در محبوبیت لاسو در آینده نشان می‌داد.
در ۱ آگوست سال ۲۰۰۴، بیل دورفلد رسماً خط تولید Lasso را به OmniPilot Software, Inc. در Ft. لادردریل، فلوریدا فروخت. Lasso 7.0.3 آخرین نسخه لاسو منتشر شده توسط جهان آبی بود.
در ۲۵ اکتبر ۲۰۰۴، OmniPilot رسماً انتشار Lasso 8 را اعلام کرد، یک نسخه شامل جعبه شنی برای چند سایت در سرور یکسان و اتصال به بسیاری از پایگاه داده جدید است. این همچنین شامل اولین نسخه «رایگان» از لاسو است که محدود به آدرس‌های IP بود. OmniPilot این عرضه را با تعدادی محصول مکمل ادامه داد، از جمله Lasso Studio 8 برای Dreamweaver و GoLive در تاریخ ۲۸ مارس ۲۰۰۵، لاسو استودیو برای گرفتگی، ادغام ChartFX و تعدادی از راه حل‌های مبتنی بر لاسو.
در سال ۲۰۰۷، سه کارمند، Kyle Jessup (توسعه دهنده اصلی Lasso 1.0)، فلچر سندبک (کارمند اولیه جهان آبی شناخته شده برای نکات و ترفندهای معمول) و کری آدامز (کارمند OmniPilot) یک شرکت جدید را (LassoSoft LLC) برای خرید مالکیت فکری لاسو از OmniPilot و ادامه توسعه آن ایجاد کردند. شناخت نیاز به رقابت در برابر زبان‌های بسیار محبوب مانند PHP و ASP، باعث شد تا آن‌ها تغییرات رادیکال در معماری، سینتکس و ساختار لاسو ایجاد کنند و به عنوان Lasso 9.0 منتشر کنند. چالش‌های فنی ناشی از این تغییرات همراه با منابع محدود بازاریابی منجر به کاهش طرد شدن از طرف جامعه شد در حالیکه شرکت تلاش می‌کرد تا مستندات و پشتیبانی از زبان جدید را منتشر کند.
در دسامبر ۲۰۱۰، یک شرکت جدید کانادایی، LassoSoft Inc.، که Lasso 9.0 را خرید، روی آن، بازاریابی و مستنداتش سرمایه‌گذاری کرد. کایل جاسوپ موافقت کرد که به عنوان رهبر توسعه دهندگان Lasso و دیکتاتور خیرخواه برای زندگی باقی بماند. چندین نسخه (۹٫۱ و ۹٫۲) پیشرفت‌های بیشتری را در سال‌های اخیر منتشر کرده‌اند.

سلام دنیا

در اینجا سه راه برای گفتن "Hello World" در یک صفحه Lasso. 
<?lasso 'Hello World!' ?>['Hello world!']Hello world!
 براکت‌های مربعی در Lasso رزرو می‌شوند، بنابراین برای ساختن عناصر HTML باید علامت مربع در صفحات Lasso برای اهداف دیگر استفاده شود تا از علامت گذاری برچسب‌های لاسو. متناوباً، چاپ مربع می‌تواند توسط لاسو باشد یا توسط [no_square_brackets] در بالای فایل غیرفعال شود.

خطوط

// Find all records in a tableinline( 
-database='db_name',-table='table_name',-findall) => {// Iterate through and process each rowrows => {// Output each row to the current web requestcontent_body += '<a href="' + column('url') + '">' + column('title') + '</a>'}}
 Inlines ابزار پایه لاسو برای اقدامات پایگاه داده‌است. دستورات پایگاه داده را می‌توان به صورت فوق در زبان Metz زبان مستقل از زبان Lasso صادر کرد، در این صورت همان کد جستجو برای MySQL, FileMaker Pro یا برای هر پایگاه داده دیگری که Lasso می‌تواند به آن متصل شود، کار می‌کند.
در صورت نیاز، در هنگام استفاده از یک سرور پایگاه داده‌ای که از SQL پشتیبانی می‌کند، بیانیه SQL می‌تواند به صورت خطی تعبیه شود: 
 // Execute SQL statement
 inline( 
  -database='db_name',
  -sql = 'SELECT * FROM table_name'
 )...
 در مثال بالا، خط تیره (-) قبل از دستورات پارامترهای اختیاری را نشان می‌دهد. این‌ها را می‌توان در هر منظور مشخص کرد و به صورت پویا تولید کرد. آخرین پارامترهای هر تکراری برتری دارند. فرمان inline از طیف وسیعی از پارامترها پشتیبانی می‌کند اجازه می‌دهد که توسعه دهندگان با پایگاه‌های داده ارتباط برقرار کنند که ممکن است دانش آن‌ها را درک نکنند.
اتصال به پایگاه داده سفارشی ایجاد می‌شود که امکان استفاده از ماهیت انتزاعی فرمان inline را می‌دهد.

۹۹ بطری آبجو

مثال رویه بعدی شعرهای "۹۹ بطری آبجو" را چاپ می‌کند. 
// Define a couple of useful methodsdefine br => '{{سخ}}'define bottles(n::integer) => #n != 1 ? ' bottles' | ' bottle'// Declare the local that will store the lyrics as a stringlocal(out = '')// Use Lasso query syntax to generate the lyricwith 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
 مثال بعدی از یک روش OOP برای چاپ اشعار استفاده می‌کند وقتی که شی به عنوان یک رشته نمایش داده می‌شود: 
// Define typedefine bottles_of_beer => type {// Define internal datadata private bottles = 99// Define private methodsprivate br => '{{سخ}}'private s => .bottles != 1 ? 's' | ''// Generate lyrics when object represented as a stringpublic asstring => {local(out = '')// Use Lasso query syntax to generate the lyricswith 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 resultreturn #out}}bottles_of_beer