آموزش دارت (Dart)

دسته بندی: آموزش طراحی وب

دارت 

در این صفحه می خوانید :

معرفی زبان دارت

یک زبان برنامه نویسی بهینه شده برای برنامه های سریع در سیستم عامل های مختلف است.دارت توسط گوگل توسعه یافته و برای ساختن برنامه های موبایل، دسکتاپ و وب مورد استفاده قرار می گیرد. شرکت گوگل زبان برنامه نویسی دارت (Dart) را طراحی کرد تا جاوااسکریپت که زبان داخلی مرورگرهای وب است را  توسط کامپایلر dart2js با آن جایگزین کند. کد نوشته شده در Dart می تواند در بعضی موارد سریعتر از کد معادل با استفاده از اسکریپت های جاوااسکریپت اجرا شود. نحو Dart براساس جاوااسکریپت است  و برپایه کلاس، وراثت یگانه و شی گرایی تعریف شده که شبیه زبان C می باشد.

تاریخچه دارت

دارت در کنفرانس GOTO در آروش ، دانمارک، در اکتبر 2011 به نمایش در آمد. این پروژه توسط لارس باک و کسپر لود تاسیس شد. Dart 1.0 در تاریخ 14 نوامبر 2013 منتشر شد. Ecma International کمیته فنی  TC52 اولین نسخه Dart را در ژوئیه 2014، در مجمع عمومی خود  و نسخه دوم در دسامبر 2014 تایید کرد.

معماری دارت

معماری دارت

تکنولوژی انعطاف پذیر کامپایلر شما را قادر می سازد تا کدهای Dart را بسته به پلتفرم هدف و اهداف خود به روش های مختلف اجرا کنید:

Dart Native : برای برنامه هایی که دستگاه های (موبایل، دسکتاپ، سرور و ...) را هدف قرار می دهند شامل هر دو کامپایلر با JIT (فقط در زمان) و AOT (پیش از زمان) برای تولید کد ماشین استفاده میشود.

Dart Web :  برای برنامه هایی که وب را هدف قرار می دهند، Dart Web شامل کامپایلر زمان توسعه (dartdevc) و کامپایلر زمان تولید (dart2js) می باشد.

Dart Native (VM JIT و AOT)   Dart Native امکان اجرای کد DART را برای ARM یا X64 بومی برای برنامه های تلفن همراه، دسکتاپ و سرور را کامپایل می کند. چارچوب Flutter یک ابزار محبوب UI چندپخشی است که توسط Dart Native طراحی شده است و دستگاه های تلفن همراه یا دسکتاپ را هدف قرار داده است.

جریان کار توسعه سریع (DART VM JIT) Dart VM دارای کامپایلر فقط در زمان (JIT) است که از هر دو تفسیر خالص استفاده می کند .به عنوان مثال در دستگاه های( iOS) و بهینه سازی زمان اجرا پشتیبانی می کند.

کد تولید بهینه شده (Dart AOT) هنگامی که برنامه ها آماده هستند تا به مرحله تولید اعمال شوند می توانید از کامپایلر DART AOT  پیش نویس برنامه خود را به کد محلی ماشین ARM یا X64 کامپایل کنید. کد کامپایل شده AOT در داخل Dart  به طور موثر کار می کند که یک نوع سیستم Dart را اجرا و حافظه را با استفاده از تخصیص سریع و یک جمع کننده زباله نسلی مدیریت می کند .

Dart Web می تواند کد های Dart را در سیستم عامل های وب مبتنی بر جاوا اسکریپت اجرا کند. با Dart Web، کد Dart را به کد جاوا اسکریپت وارد می کنید، که به نوبه خود در یک مرورگر اجرا می شود - به عنوان مثال، V8 در داخل Chrome.

کد تولید بهینه شده (کامپایلر Dart JS) ابزار dart2js کد جاوااسکریپت را برای اسکریپت سریع، جمع و جور و قابل استفاده، کامپایل می کند. این ابزار تکنیک هایی مانند حذف کد مرده را به کار می گیرد.

ویژگی های دارت

برنامه های موبایلی که در Dart با فلاتر نوشته شده اند، برنامه های مرسوم کراس پلتفرم هستند؛ بنابراین می توانند بر روی هر دو سیستم عامل Android و iOS (مانند React Native، Xamarin و غیره) اجرا شوند. از دید توسعه دهنده، انعطاف پذیری و قابلیت انتقال زبان بسیار مهم است.

دارت پشتیبانی قوی ابزار را دارد. تقریبا هر ویرایشگر متن اصلی و IDE پشتیبانی گسترده ای از زبان Dart دارد. شما می توانید IDE های سنگین مانند Webstorm، IntelliJ IDEA و Android Studio را استفاده کنید یا از ویراستاران ساده مانند VS Code، Sublime text، VIM، Emacs، Atom، و غیره استفاده کنید. بنابراین شما می توانید هر ویرایشگری را که دوست دارید انتخاب کنید.

Dart یکی از سریع ترین زبان های در حال رشد در گوگل است و توسط محصولات داخلی آن مانند Adwords، Flutter، Fuchsia، AngularDart و غیره استفاده می شود. در خارج از Google، شرکت هایی مانند Alibaba ، Adobe MailChimp ، JetBrains از این زبان در تولید استفاده می کنند.اغلب دیده می شود که شرکت ها محصولاتشان را با زبان های جدید عرضه می کنند ، اما آنها را اختصاصی می کند. از آنجایی که Dart منبع باز از ابتدا بود، توسعه دهندگان هرگز نباید نگران مسائل صدور مجوز باشند.

مثال:

نمایش !Hello World

main() {
  print('Hello World!');
}

تابع برای محاسبه n سری فیبوناچی:

int fib(int n) => (n > 2) ? (fib(n - 1) + fib(n - 2)) : 1;
// this is a fibonacci function implementation with a ternary operator in Dart
// this code shall be read as:
// If int n > 2, return fib(n - 1) + fib(n - 2); 
// otherwise, return int 1 as result

void main() { print('fib(20) = ${fib(20)}'); }

یک کلاس ساده:

// Import the math library to get access to the sqrt function.
import 'dart:math' as math;

// Create a class for Point. class Point {

// Final variables cannot be changed once they are assigned. // Create two instance variables. final num x, y;

// A constructor, with syntactic sugar for setting instance variables. // The constructor has two mandatory parameters Point(this.x, this.y);

// A named constructor with an initializer list. Point.origin() : x = 0, y = 0;

// A method. num distanceTo(Point other) { var dx = x - other.x; var dy = y - other.y; return math.sqrt(dx * dx + dy * dy); }

// Example of Operator Overloading Point operator +(Point other) => Point(x + other.x, y + other.y); // When you Instantiating a class such as Point, in Dart 2+, new is // an optional word }

// All Dart programs start with main(). void main() { // Instantiate point objects. var p1 = Point(10, 10); var p2 = Point.origin(); var distance = p1.distanceTo(p2); print(distance); }

 

آیا این نوشته را دوست داشتید؟