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

لاسو یک سرور کاربری و رابط مدیریت سرور است که برای توسعه دادن نرم‌افزارهای کاربردی اینترنتی به کار می‌رود. لاسو یک زبان برنامه‌نویسی عمومی و سطح بالاست. در ابتدا لاسو فقط یک ابزار اتصال به منابع داده وب، برای فایل‌میکر بود و بعداً در FileMaker 4.0 Apple Computer و صفحه اصلی Claris به عنوان CDML از آن استفاده شد. از آن زمان تا کنون لاسو به یک زبان پیچیده تبدیل شده که برای توسعه نرم‌افزارهای کاربردی اینترنتی مقیاس بزرگ و صفحات وب به کار می‌رود.

لاسو شامل یک سیستم قالب ساده است که به کد اجازه کنترل نسل اچ‌تی‌ام‌ال و سایر انواع محتوا را می‌دهد. لاسو شی گرا است و هر مقدار ،شیء است. لاسو همچنین از برنامه‌نویسی رویه ای از طریق روش‌های غیر وابسته پشتیبانی می کند. این زبان از متدهای چندگانه به‌طور گسترده استفاده می‌کند.

لاسو یک سیستم پویا دارد، که در آن اشیاء را می‌توان در زمان اجرا بارگذاری و افزوده کرد. مدیریت حافظه به صورت خودکار، کتابخانه استاندارد همه‌جانبه و سه روش کامپایل: پویا (قابل مقایسه با پی اچ پی - پایتون)، کامپایل درجا (قابل مقایسه با جاوا یا NET Framework.)، و از پیش کامپایل شده (قابل مقایسه با C) است. لاسو همچنین از عبارات Query پشتیبانی می‌کند، که به عناصر در آرایه‌ها و انواع دیگر دنباله‌ها اجازه می‌دهد با استفاده از سینتکس یک زبان طبیعی شبیه SQL ,تکرار، فیلتر، و دستکاری شوند. لاسو شامل پشتیبانی کامل از کاراکترهای Unicode در شیء استاندارد رشته‌ای است که به آن اجازه می‌دهد کاراکترهای چند بایتی مانند ژاپنی و سوئدی را پشتیبانی کند، و از تبدیل UTF-8 هنگام نوشتن داده در شبکه یا سیستم فایل پشتیبانی می‌کند.

لاسو اغلب به عنوان یک زبان اسکریپت نویسی استفاده می‌شود و همچنین در طیف گسترده‌ای از زمینه‌های غیر اسکریپت نویسی هم از آن استفاده می‌شود. کد لاسو را می‌توان به برنامه‌های اجرایی مستقل به نام "LassoApps" دسته‌بندی کرد، که در آن ساختار پوشه‌ها به فایل‌های تک تک کامپایل می‌شوند.

سرور کاربردی لاسو به عنوان یک سرویس سیستم اجرا می‌شود و درخواست‌ها از سرور وب را از طریق سرور FastCGI دریافت می‌کند. سپس درخواست را به قسمت مربوطه لاسو ارجاع می‌کند که پاسخ را فرموله می‌کند. چندین نمونه از قسمت‌های مستقل پشتیبانی می‌شوند، که به سرور این اجازه را می‌دهد که چندین سایت را (هر کدام به عنوان فرایندهای مستقل) مدیریت کند. سرور از یک سیستم تردینگ با عملکرد بالا که بر اساس IO است و برای سیستم‌های چند هسته ای طراحی شده، استفاده می‌کند.

لاسو را می‌توان با زبان‌های اسکریپت نویسی سمت سرور مثل PHP و پایتون , ColdFusion، روبی و غیره مقایسه کرد.

لاسو برای توسعه، رایگان است و اجازه دسترسی جزئی به کد منبع خود و اضافه کردن یا تغییر اجزای مهم زبان (به عنوان مثال، اجرای Ke Carlton DS Lasso Inline) را می‌دهد. مجوز در هر دو نسخه SAS و مستقل ارائه می‌شود.

 تاریخچه 
لاسو در اواسط دهه ۹۰ میلادی آغاز به کار کرد، زمانی که توسعه دهندگان اولیه وب سعی در اتصال پایگاه داده FileMaker Pro اپل با شبکه جهانی وب داشتند. در پلتفرم Mac دو راه حل وجود داشت: WEB-FM اریک بیکفورد و FileMaker CGI راسل اوونز (ROFM) که هر دو در اپل اسکریپت ساخته شده بودند و نیازمند استفاده از زمینه‌های محاسباتی FileMaker Pro برای قالب بندی بودند. (وب-FM بعداً به زبان C بازنویسی شد).

در پاییز سال ۱۹۹۵، وینس بونافونتی (توسعه دهنده)،CGI جدید را بر اساس ROFM، با استفاده از C / C ++ و از مفهوم «قالب» مبتنی بر HTML به جای تکیه بر زمینه‌های محاسباتی، برای بهبود عملکرد نوشت. این امر در انجمن FileMaker بسیار محبوب بود و توجه بیل دررفلد، صاحب شرکت Blue World Communications Inc.، یک شرکت چاپ و توسعه وب در خارج از ایساوا، واشینگتن، که کد منبع را خریداری کرد، را به خود جلب کرد.

در این زمان، جهان آبی با پیشرفت‌های انجام شده برای CGI در محیط اسکریپت Frontier آزمایش‌هایی انجام داد، که نام لاسو را الهام بخشید. نیاز به پیشرفت بیشتر باعث ایجاد CGI مبتنی بر C شد که بعدها به عنوان "Lasso 1.0" منتشر شد. در این مرحله، لاسو فقط با فایل‌میکر پرو 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 برای اینترنت و توسعه، دوم شد. در سال ۲۰۰۱ به ادوبی دریم‌ویور ۳ باخت. 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 و دیکتاتور خیرخواه برای زندگی باقی بماند. چندین نسخه (۹٫۱ و ۹٫۲) پیشرفت‌های بیشتری را در سال‌های اخیر منتشر کرده‌اند.

 تاریخ انتشار 
+ کلید رنگ معنای توسعه سرخ نسخه قدیمی بدون توسعه رنگ زرد انتشار پایدار رفع امنیت سبز انتشار پایدار رفع اشکال و امنیت آبی انتشار آینده ویژگی‌های جدید
 نسخه تاریخ انتشار یادداشت ROFM> ۱۹۹۴-۰۳-۱۴ Russell Owens 'FileMaker CGI، رابط اولیه مبتنی بر AppleScript برای پایگاه داده‌های FileMaker Pro است. ۰٫۱ Sep-1995 اتصال CGI توسط Vince Bonafonti در C / C ++ نوشته شده‌است تا FileMaker Pro را به وب وصل کند ۱٫۰ ۲۷ سپتامبر ۱۹۹۶ اتصال برای FileMaker Pro 3.x و WebSTAR ۱٫۱ دسامبر ۱۹۹۶ پلاگین WebSTAR، اطلاعات مرورگر کلاینت، لایه امن GUI کامل ۱٫۲ ژانویه ۱۹۹۷ کد منبع مجوز Claris (Apple Computer Inc)، به نام CDML، در صفحه کلاریس نصب شده‌است. ۲ ۱۷ ژوئیه ۱۹۹۷ شامل محاسبات ریاضی، متغیرها، انواع داده‌های پیچیده، بخش سرور شامل اطلاعات هدر مشتری، اظهارات شرطی پیشرفته، رابط کاربری Java-client، کنترل اپل رویدادهای دیگر برای برنامه‌های کاربردی دیگر در وب سرور، اقدامات پایگاه داده چندگانه و Instant Web Publishing ۲٫۵ ۱ دسامبر ۱۹۹۷ تگ استانداردسازی و قابلیت همکاری، توانایی برقراری ارتباط با وب سرور WebTen (پورت سرور آپاچی HTTP به سیستم عامل مک توسط Tenon Intersystems) ۳٫۰ ۰۷ اکتبر ۱۹۹۸ فیلترهای اعتبار سنجی اضافه شده، ماکروها، مدیریت فایل / پوشه، کنترل‌های تاریخ / زمان، متغیرهای لیست، چندین برچسب نام، پردازش خطاهای قوی، ایمیل MIME، پیوست‌های ایمیل، برنامه‌های ریاضی پیشرفته، توابع پیشرفته رشته، کنترل‌های رمزگذاری پیشرفته ۳٫۵ ۱۴ آوریل ۱۹۹۹ اضافه شدن WYSIWYG نویسنده با استفاده از Macromedia Dreamweaver 2 و Adobe GoLive 4، multithreading, LJAPI، سرور HTTP اختیاری، پشتیبانی از سرور Netscape، جاوا اسکریپت، XML تجزیه‌کننده برچسب پیشرفته با کنترل‌های ساخته شده در کنترل اشکال زدایی ۳٫۶ ۵ ژانویه ۲۰۰۰ پشتیبانی از FileMaker 5 منابع داده، SQL جادوگر برای پرس و جوهای تعاملی SQL، صفحات خطای قابل تنظیم جهانی و استودیو برای MacroMedia DreamWeaver ۳٫۶٫۵ ۱ اکتبر ۲۰۰۰ اتصال افزونه برای MySQL, Red Hat و OS X پشتیبانی ۵ ۲۶ فوریه ۲۰۰۲ معماری بازنویسی برای OS X، ویندوز، لینوکس با MySQL جاسازی شده؛ جلسات اضافه شده، دستکاری فایل، اتصال بومی برای Apache و LassoScript (با اضافه کردن روش «اسکریپت» به زبان) ۶ ۱۷ سپتامبر ۲۰۰۲ تصویربرداری اضافه شده، دستکاری PDF, XML بومی، ادغام FTP، ریاضیات تاریخ، مدت زمان ۷ ۳۰ اوت ۲۰۰۴ MySQL خارج شده (به علت صدور مجوز)، FileMaker بسته اتصال ۷٫۱ ۱۳ سپتامبر ۲۰۰۴ سازگاری اضافه شده با Filemaker Pro 7 ۸ ۲۵ اکتبر ۲۰۰۴ سرور لسو به "سایت" جداگانه برای ارائه دهندگان میزبانی وب تقسیم شده‌است. ۸٫۱ ۱۹ سپتامبر ۲۰۰۵ ذخیره سند سند، رفع ثبات ۸٫۵ ۹ ژوئن ۲۰۰۶ یکپارچه سازی کامل AJAX، چندین منبع داده منبع به‌طور پیش فرض برای FileMaker, FileMaker سرور پیشرفته، MySQL, SQLite, MS SQL سرور، Sybase، اوراکل، PostgreSQL, OpenBase, ODBC، و موتور Spotlight اپل اضافه شده‌است ۹ ۲۹ ژانویه ۲۰۱۰ تغییر عمده معماری: نحو بیشتر، تایپ قوی با تایپ ضعیف، جمع‌آوری JIT، سریال سازی بومی، پشتیبانی ۶۴ بیتی ۸٫۶ ۲۰ آوریل ۲۰۱۱ سرعت، ثبات افزایش یافته‌است ۹٫۱ ۱۱ ژوئیه ۲۰۱۱ رابط کاربری جدید، اتصال ۶۴ بیتی، مجوز جدید SAS ۹٫۲ ۱ ژوئن ۲۰۱۲ پشتیبانی از ویندوز اضافه، اشکال زدایی یکپارچه، پروفیل کد یکپارچه ۹٫۳ ۲۳ ژانویه ۲۰۱۵ رابط کاربری جدید، روش جدید تدوین، گسترش سرور متمرکز

 نمونه‌های کد 
 سلام دنیا 
در اینجا سه راه برای گفتن "Hello World" در یک صفحه Lasso. <?lasso 'Hello World!' ?>

['Hello world!']

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

 خطوط 
// 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 ابزار پایه لاسو برای اقدامات پایگاه داده‌است. دستورات پایگاه داده را می‌توان به صورت فوق در زبان 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 methods

define 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 مثال بعدی از یک روش OOP برای چاپ اشعار استفاده می‌کند وقتی که شی به عنوان یک رشته نمایش داده می‌شود: // Define type
define bottles_of_beer => type {

// Define internal data
data private bottles = 99

// Define private methods
private 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

 ابزارهای توسعه، محیط 
 LassoLab
 لاسو استودیو برای گرفتگی
 حالت زبان Lasso برای Coda
 ماژول زبان Lasso برای BBEdit

 منابع 

  , LassoSoft
  , LassoGuide
 LassoReference
 FileMaker
 ListSearch - موتور جستجوی فهرست LassoSoft
 بایگانی LassoTalk در Nabble 
 آرشیو LassoTalk در Google Groups
 ExecuChoice - PDF Tag Suite - PassThru - ShortString
 Knop - چارچوب وب برنامه Open Source برای Lasso 8 و ۹ است
 LassoFusebox - یک پورت Lasso از چارچوب برنامه وب Fusebox محبوب Open Source برای Lasso 8 و ۹ است
 LassoBin - یک PasteBin برای Lasso
 LassoForge - پروژه‌های OpenSource Lasso
 tagSwap - یک تبادل عمومی برای برچسب‌های سفارشی Lasso
 L-Debug - مجموعه اشکالزدایی برای Lasso 8 & Lasso 9
 این ورود ویکی‌پدیا به شدت بر اطلاعیه‌های اولیه و بسیاری از منابع قابل توجه دیگر که در وب موجود نیست، تکیه می‌کند.

رده:پسوند نام پرونده
رده:زبان‌های اسکریپت‌نویسی
رده:زبان‌های برنامه‌نویسی ساخته‌شده در ۱۹۹۵ (میلادی)
رده:زبان‌های برنامه‌نویسی سطح بالا
رده:زبان‌های برنامه‌نویسی شیءگرا
رده:زبان‌های برنامه‌نویسی کلاس محور
رده:زبان‌های برنامه‌نویسی ماشینی پویا
رده:صفحات با ترجمه بازبینی‌نشده
رده:مقاله‌ها با نحو منسوخ‌شده تصویر
رده:نرم‌افزارهای چندسکویی
رده:ویکی‌سازی رباتیک