دارت یک زبان برنامه نویسی کاملا شی گراست که در ابتدا توسط گوگل برای توسعه نرم افزارهای کلاینت مثل برنامه های وب و موبایل (اندروید و iOS) طراحی شد. اما اکنون میتوان با آن برنامه بومی سیستم عامل های مختلف رایانه (لینوکس ، ویندور و مک) تولید کرد و یا حتی سورس کد موجود را به جاوااسکریپت تبدیل کرد تا بتواند در هر مرورگری اجرا شود. پس ما میتوانیم با یک بار کد زدن با حداقل تغییرات روی کد خود آنرا برای استفاده در هر محیطی آماده کنیم!!
دارت یک زبان شی گرا با قابلیت ها و سادگی عملکرد بسیار بالا، مبتنی بر کلاس و زباله روب خودکار با سینتکسی نزدیک به سبک زبان C است و از interface، mixin، abstract class، generic و استنتاج نوع پشتیبانی میکند.
تاریخچه
دارت در کنفرانس GOTO در آرهوس دانمارک، 10 تا 12 اکتبر 2011 رونمایی شد. این پروژه توسط لارس باک و کسپر لوند تأسیس شد. Dart 1.0 در 14 نوامبر 2013 منتشر شد.
دارت در ابتدا با استقبال متفاوتی روبرو شد و ابتکار Dart به دلیل طرحهای اولیه برای گنجاندن یک ماشین مجازی Dart در کروم توسط برخی به دلیل تکهتکهکردن وب مورد انتقاد قرار گرفت. این برنامه ها در سال 2015 با انتشار نسخه ی 1.9 دارت کنار گذاشته شدند تا به جای آن بر روی کامپایل دارت به جاوا اسکریپت تمرکز شود.
Dart 2.0 در آگوست 2018 با تغییرات زبانی منتشر شد.
Dart 2.6 افزونه جدیدی به نام dart2native معرفی کرد که کامپایل بومی را به پلتفرمهای دسکتاپ لینوکس، macOS و ویندوز گسترش میدهد. توسعه دهندگان قبلی می توانستند ابزارهای جدیدی را تنها برای استفاده دستگاه های اندروید یا iOS ایجاد کنند. با این افزونه، نوشتن یک برنامه به فایل های اجرایی مستقل نیز امکان پذیر می شود. به گفته نمایندگان شرکت، دیگر نیازی به نصب Dart SDK نیست، میتوان فایل های اجرایی مستقل و مختص هر سیستم عامل را برای اجرای بومی تولید کرد. افزونه جدید همچنین با جعبه ابزار Flutter یکپارچه شده است و امکان استفاده از کامپایلر را در سرویس های کوچک (مثلاً Backend) فراهم می کند.
موارد استفاده از دارت

وب
برای اجرا در مرورگرهای وب اصلی، دارت به یک کامپایلر منبع به منبع برای تدیل به کد جاوا اسکریپت متکی است.دارت “طراحی شده بود تا ابزارهای توسعه برای نوشتن آسان، مناسب برای توسعه برنامه های مدرن، و قابلیت اجرا با کارایی بالا را در اختیار ما بگذارد.” با استفاده از کامپایلر dart2js، کد دارت به کد جاوااسکریپت تبدیل میشود که با تمام مرورگرهای اصلی سازگار است. با بهینه سازی خودکار خروجی جاوا اسکریپت کامپایل شده و جلوگیری از بررسی ها و عملیات های سنگین ، کدهای نوشته شده در دارت می توانند در برخی موارد سریعتر از کدهای معادل دست نویس در جاوا اسکریپت اجرا شوند.
ایجاد برنامه های مستتقل
کیت توسعه نرمافزار دارت (SDK) با یک Dart VM (ماشین مجازی) مستقل عرضه میشود که به کد دارت اجازه میدهد در یک محیط رابط خط فرمان اجرا شود.ابزارهای زبان موجود در SDK عمدتاً در دارت نوشته میشوند. این ابزارها شامل کامپایلر dart2js و یک مدیریت بسته به نام pub است که میتوان به کتابخانه های دسترسی داشت. دارت همچنین با یک کتابخانه استاندارد کامل عرضه می شود که به کاربران امکان می دهد برنامه های سیستمی کاملاً کارآمد مانند وب سرورهای سفارشی بنویسند.
AOT یا کامپایل جلوتر از زمان
کد دارت را می توان با AOT به کد ماشین (کد بومی هر سیستم عامل) کامپایل کرد. برنامههای ساخته شده با Flutter، بهعنوان کد Dart کامپایلشده توسط AOT در فروشگاه ها عرضه میشوند میشوند.
تولید نرم افزار بومی
Dart 2.6 شامل کامپایلر dart2native برای کامپایل به کدهای اجرایی بومی و خوداتکا است. قبل از دارت 2.6، این قابلیت فقط در دستگاه های موبایل iOS و اندروید از طریق فلاتر وجود داشت، اما در حال حاضر میتوان برای سیستم عامل های لینوکس،ویندوز و مک هم بصورت بومی نرم افزار تولید کرد.