دارت (به انگلیسی: Dart) زبان برنامه نویسی است که توسط گوگل توسعه داده میشود. هدف دارت جایگزین کردن جاوااسکریپت که زبان داخلیمرورگرهای وب است میباشد. دارت راه حلی برای مشکلات موجود در جاوا اسکریپت (به طور مثال مشکل حافظه) میباشد که کارایی بهتر، قابلیت استفاده سادهتر برای پروژههای بزرگ و امنیت بیشتری را فراهم میکند. گوگل همچنین بسیار تلاش دارد تا دارت را پیچیده تر بسازد و ویژگیها و قابلیتهای فراوانی به آن ببخشد.
دارت زبانی برپایه کلاس، وراثت یگانه و شی گرایی است که گرامر آن شبیه زبان C بوده و دارای Interface،reified generics کلاسهای Abstract و Optional typing میباشد. type annotationهای ایستا تاثیری بر روی سمانتیک کد در زمان اجرا ندارد. در عوض type annotationn میتواند پروندههایی برای ابزارهایی مانند checkerهای ایستا و checkهای پویای در زمان اجرا را فراهم نماید. این پروژه توسط لارس بک و کسپر لاند پایهگذاری شدهاست.
مدهای زمانهای اجرا
برنامههای دارت در یکی از دو حالت اجرا میشوند. در مد چک شده، که مد پیش فرض نیست و باید فعال شود، type assertion پویا فعال میشود. این type assertionها میتوانند در صورتی فعال شوند که تایپهای ایستا در کد فراهم شده باشد، و همچنین میتواند مقداری از خطاها را هنگامی که نوعها نامناسب باشند را catch نماید. برای مثال اگر متدی اینگونه annotate شده باشد که رشتهای را بازگرداند، ولی در مقدار صحیح برگرداند، type assertion پویا این خطا را catch کرده و خطایی را ارسال مینماید. اجرای برنامه در مد چک شده برای حالت تست و توسعه توصیه میشود. برنامههای دارت به صورت پیش فرض در مد تولید است که تمام مدهای type assertion پویای آن غیر فعال میباشد. این حالت مد پیش فرض است زیرا که سریع ترین حالت برای اجرای برنامههای دارت میباشد.
کامپایل به جاوا اسکریپت
dartc اولین کامپایلری بود که توانایی تولید جاوا اسکریپت از روی کد دارت را داشت، ولی هم اکنون از رده خارج شدهاست. Frog دومین برنامه از کامپایلر دارت به جاوا اسکریپت بود که به زبان دارت نوشته شدهاست. Frog هرگز نتوانست مفاهیم کلی زبان دارت را پیادهسازی نماید، گرچه کامپایلر جدید به نام dart2js ساخته شده بود. همچنین این برنامه نیز به زبان دارت نوشته شدهاست و هم اکنون کامپایلری است که تمام ویژگیها و مفاهیم این زبان را پشتیبانی مینماید.
ویرایشگر
در ۱۸ نوامبر ۲۰۱۱، شرکت گوگل یک ادیتور دارت را منتشر کرد، که ادیتوری متن باز بر روی کامپوننتهای اکلیپس بود و روی سیستمهای Mac OS X، ویندوز و سیستم عاملهای مبتنی بر لینوکس اجرا میشد. این ادیتور قابلیت Syntax highlighting، Code completion، کامپایل کردن Java script، اجرای برنامههای دارت بر روی سرور یا تحت وب و debugging را دارد. محیطهای جتبرینز همچنین زبان دارت را پشتیبانی میکنند. پلاگین دارت برروی IntelliJ IDEA، PhpStorm و WebStormm موجود میباشد. این پلاگین ویژگیهای زیادی از جمله هایلایت کردن متن، کامل کردن کد، ریفرکتور کردن، دیباگ کردن و موارد بسیاری را دارا میباشد.
محیطهای گسترش
دارت به گونهای طراحی شدهاست که بر روی مرورگرهای مدرن اجرا شود، چه به صورت اجرا برروی ماشین مجازی که درون مرورگرها تعبیه شدهاست یا به صورت کامپایل شده به زبان جاواسکریپت. ماشین مجازی دارت همچنین برای اجرای برنامههای دارت برروی سرور یا خط فرمان طراحی شدهاست. به طور مثال پروژهٔ دارت کتابخانههایی جهت کار با ورودی خروجی شبکه و دایرکتوریها را فراهم مینماید.
تطبیق مرورگرها
دارت به حالت نسخهٔ مدرن جاواسکریپت کامپایل میشود و اجازه میدهد که بر روی مرورگرهای مدرن اجرا شود، گرچه یک نسخهٔ ویژه از کرومیوم وجود دارد که درون آن ماشین مجازی دارت تعبیه شدهاست. این ویژگی این مرورگر را قابل میسازد تا برنامههای دارت را بدون اینکه به جاواسکریپت کامپایل شوند، اجرا نماید. با نسخهٔ مایلستون یک، جاواسکریپت تولید شده، ۷۸٪ بازدهی جاواسکریپتی که به صورت دستی نوشته شده باشد را دارا میباشد، در حالی که کد دارت ۲۱٪ سریعتر از کد مشابه بر روی وی-۸ اجرا میشود. در می۲۰۱۲، اینترنت اکسپلورر مایکروسافت،فایرفاکس موزیلا، مرورگر اپرای شرکت اپرا و سافاری شرکت اپل برنامهای جهت تعبیه کردن ماشین مجازی جدای دارت را ندارند.
منبع: ویکی پدیا