زبان برنامه نویسی دارت چیست؟ + مزایا و معایب Dart
دارت Dart یک زبان برنامه نویسی منبع باز است که توسط کمپانی گوگل طراحی و تولید شده است. هدف اصلی گوگل از خلق dart، این بود که برنامه نویسان بتوانند با استفاده از آن، زبان های برنامه نویسی شئ گرا را به تحلیل نوشتاری تبدیل کنند.
زمان انتشار اولیه دارت به سال 2011 بازمی گردد. از آن زمان تاکنون، dart با تغییرات زیادی رو به رو بوده است. این تغییرات هم در زمینه ساختار اصلی زبان برنامه نویسی dart و هم در زمینه اهدافی که این زبان برنامه نویسی دنبال می کرد رخ داد.
در نسخه 2.0 دارت، سیستم نوشتاری این زبان برنامه نویسی از فرمت داینامیک به فرمت استاتیک یا ایستا تغییر شکل داد. همچنین از زمان انتشار این زبان برنامه نویسی، Flutter که جلوتر درباره آن صحبت خواهیم کرد، هدف اصلی زبان برنامه نویسی dart قرار گرفت.
چه ویژگی هایی dart را متمایز می کند؟
برخلاف بسیاری از زبان های برنامه نویسی، dart با هدف تبدیل برنامه نویسی به یک امر سریع و آسان برای برنامه نویسان، پدیدار شد. از این رو dart مجموعه گسترده ای از ابزارهای داخلی را برای کابران خود ارائه کرده است. برخی از مهمترین این ابزارها عبارتند از:
- پکیج مدیریت مخصوص dart
- کامپایلرها و ترنسپایلرهای مختلف (Compilers & Transpilers)
- تجزیه کننده
- قالب ساز
همچنین ماشین مجازی dart و امکان ساخت در لحظه (Just-in-Time Build)، این امکان را به برنامه نویسان می دهد که هر تغییری که در کدها اعمال می کنند را به سرعت اجرایی کرده و خروجی آن را مشاهده نمایند.
زمانی که در حال کدنویسی هستیم، می توانیم کدها را به یک زبان برنامه نویسی بومی گردآوری کنیم. بنابراین هیچ محیط خاص و منحصر به فردی برای اجرای کدهای نوشته شده در dart نیاز نداریم.
برای زمانی که در حال توسعه وب هستیم نیز dart می تواند به جاوا اسکریپت تغییر شکل داده و تبدیل شود. از نظر ساختار سینتکس، dart شباهت زیادی به زبان های برنامه نویسی جاوا اسکریپت، جاوا و C++ دارد. بنابراین، زمانی که شخصی به یکی از این زبان های برنامه نویسی را مسلط باشد، آموختن زبان برنامه نویسی dart برای او طی چند ساعت امکان پذیر خواهد بود.
همچنین dart از پشتیبانی بسیار خوبی برای رفع عدم هماهنگی های احتمالی موجود در ساختار خود برخوردار است. کارکردن با آن بسیار ساده است و مشکلات احتمالی آن به راحتی قابل حل است.
از dart در چه مواقعی می توان استفاده کرد؟
دارت یک زبان برنامه نویسی عمومی است که برای هر هدفی در حوزه برنامه نویسی می توان از آن استفاده کرد:
- تهیه وب اپلیکیشن ها، استفاده از کتابخانه Android Run Time : اچ تی ام ال HTML و Transpiler برای تبدیل کدهای dart به جاوا اسکریپت، یا استفاده از فریم ورکی مانند Angular Dart.
- استفاده از Android Run Time بر روی سرورها : کتابخانه io و همچنین فریم ورک های زیادی وجود دارد که می توان از آن ها استفاده کرد. مانند Aqueduct.
- هیه اپلیکیشن های کنسولی
- تهیه اپلیکیشن های موبایلی (با استفاده از Flutter که جلوتر به معرفی آن خواهیم پرداخت.)
Flutter چیست؟
فلاتر Flutter فریم ورک اصلی زبان برنامه نویسی dart است که از آن برای تهیه و تولید اپلیکیشن های کراس پلتفرم استفاده می شود. برخلاف فریم ورک هایی که برای پلتفرم های چندگانه هستند، مانند Lonic، کدهای نوشته شده در Flutter به یک زبان برنامه نویسی بومی تبدیل می شوند.
همچنین برخلاف فریم ورکی مانند react native، Flutter از کامپوننت های بومی استفاده نمی کند، بلکه کامپوننت های خاص خود را دارد.
مزایای زبان برنامه نویسی dart
- یادگیری زبان برنامه نویسی dart، امری بسیار آسان و سریع است.
- اسناد و مقالات زیادی در زمینه زبان برنامه نویسی dart در سرتاسر اینترنت موجود است.
- از عملکردی سریع برخوردار است. برنامه هایی که با dart نوشته شده اند نسبت به آن هایی که با جاوا اسکریپت نوشته شده اند، سریعتر اجرا می شوند.
- یک زبان برنامه نویسی ثابت و پایدار است که خروجی های باکیفیتی را حاصل می شود.
- به صورت تلفیقی از JIT و AOT استفاده می کند.
- اگر قصد دارید بدون آنکه برنامه یا نرم افزاری را دانلود و بر روی سیستم خود نصب نمایید، اولین محصول خود را با استفاده از زبان برنامه نویسی dart بنویسید، می توانید از dartpad استفاده کنید و این یک مزیت برای این زبان برنامه نویسی به حساب می آید.
معایب زبان برنامه نویسی dart
- علیرغم وجود مقالات و اسناد زیادی در زمینه آموزش زبان برنامه نویسی dart، منابع بسیار کمی برای رفع باگ های احتمالی به وجود آمده در این زبان برنامه نویسی حین انجام یک پروژه برای توسعه دهنده وجود دارد.
- از آنجایی که زبان برنامه نویسی dart در دسته زبان های جدید برنامه نویسی قرار دارد و عده کمی از آن استفاده می کنند، اگر شما یک برنامه نویس dart باشید، احتمال پیدا کردن کار برای شما اندکی سخت است چرا که کمپانی های کمتری به برنامه نویس dart نیاز دارند.
- به دلیل آنکه dart همچنان در حال توسعه و بهینه سازی است، اگر اکنون به یادگیری آن بپردازید، ممکن است به زودی تغییراتی در آن به وجود بیاید که به موجب آن شما نیز مجبور به یادگیری مجدد و به روز نگه داشتن دانش خود باشید.
- امکان پشتیبانی بومی از آن فراهم نیست.
نمونه ای از یک کدنویسی به زبان Dart
در این قسمت یک بخش مختصر از ساده ترین کدنویسی انجام شده به زبان برنامه نویسی dart را نمایش می دهیم:
1 2 3 4 5 6 7 8 9 |
void main() { for (int i = 0; i < 5; i++) { print('hello ${i + 1}'); } } |
کدنویسی به زبان dart
دارت یک زبان برنامه نویسی بسیار قوی است. در واقع هر Value که از آن در برنامه نویسی خود استفاده می کنید، یک نوع نوشتاری خاص دارد. حتی رشته ها و اعداد. به این ترتیب زمانی که قصد گردآوری کدهای نوشته شده خود را دارید باید به نوع نوشتاری dart مسلط باشید.
در این قسمت، برخی از پرکاربردترین نوع نوشتاری مفاهیم در زبان برنامه نویسی dart را معرفی می کنیم:
نوع نوشته | مثال | توضیحات |
String | String myName = ‘javatpoint’; | نگهدارنده متن ها است. در اینجا می توانید از single quotation mark یا double quotation mark استفاده نمایید. اما زمانی که انتخاب کردید از کدام کوتیشن مارک می خواهید استفاده کنید، باید تا انتهای پروژه از همان استفاده کنید. |
num, int, double | int age = 25;
double price = 125.50; |
Num اشاره به number دارد. دارت دو نوع number یا همان اعداد دارد:
– عدد صحیح (اعداد بدون اعشار) – اعداد دابل ( اعدادی که اعشار دارند) |
Boolean | bool var_name = true;
Or bool var_name = false; |
از کلمه کلیدی Bool برای مشخص کردن ارزش True یا False برای Boolean استفاده می شود. |
object | Person = Person() | به طور کلی هرچیزی در dart یک آبجکت است. برای مثال اعداد صحیح، رشته ها و غیره.
ولی یک آبجکت می تواند بیشتر از این ها پیچیده باشد. |
متغیرها و کارکردها در dart
متغیرها، عناوینی در حافظه هستند که محل ذخیره ارزش ها محسوب می شوند. به اسم یک متغیر، شناسه می گویند. آنها مخازن نگهداری اطلاعات هستند و می توانند هر نوع Value را در خود ذخیره کنند. برای مثال:
1 |
var myAge = 50; |
در اینجا، myAge، یک متغیر است که یک ارزش (Value) صحیح (50) را در خود ذخیره کرده است. البته می توانیم ارزش هایی اعشاری یا صحیح را برای آن در نظر بگیریم. د رواقع dart امکان استنباط نوشته ها را دارد. به این معنی که می تواند از ارزش های ما استنباط کند. بنابراین اگر شما یک متغیر را با کلمه کلیدی var ایجاد نمایید، dart می تواند متغیر شما را به عنوان یک عدد صحیح استنباط کند.
در کنار متغیرها، کارکردها و عملکردها از موارد دیگری هستند که هسته یک زبان برنامه نویسی را تشکیل می دهند. عملکردها در واقع، عباراتی هستند که به یک وظیفه خاص اشاره دارند.
عملکردها به بلاک های منطقی و ساختار یافته ای برنامه ریزی شدند که قابل خوانش، قابل نگهداری و قابل استفاده مجدد هستند. اعلان عملکردها یا همان Function Declaration شامل اسم عملکرد، نوع بازگشت و پارامترها می شود.
مثال زیر، استفاده از عملکرد در dart را نمایش می دهد:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
//Function declaration num addNumbers(num a, num b) { // Here, we use num as a type because it should work with int and double both. return a + b; } var price1 = 29.99; var price2 = 20.81; var total = addNumbers(price1, price2); var num1 = 10; var num2 = 45; var total2 = addNumbers(num1, num2); |
اپراتورها
زبان برنامه نویسی Dart، تمام اپراتورها را پشتیبانی می کند، همانطور که شما با سایر زبان های برنامه نویسی مانند C، Koltin و Swift آشنا هستید. اسامی اپراتورهای زبان برنامه نویسی دارت نیز به شرح زیر هستند:
- Arithmetic
- Equality
- Increment and Decrement
- Logical
- Comparison
تصمیم گیری و حلقه ها
تصمیم گیری یا Decision making قابلیتی است که به شما این اجازه را می دهد تا یک موقعیت را پیش از آنکه ساختارش به اجرا در بیاید مورد ارزیابی قرار دهید. زبان برنامه نویسی dart، از عبارات تصمیم گیری زیر پشتیبانی می کند:
- If statement
- If-else statement
- Switch statement
نمودار زیر، موارد گفته شده را واضح تر توضیح می دهد:
مثال :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
void main() { var num = 12; if (num % 2 = = 0) { print("Number is Even."); } else { print("Number is Odd."); } } |
حلقه ها نیز برای به اجرا درآوردن یک بلوک از کدها به صورت مکرر استفاده می شود تا به این وسیله یک موقعیت مورد نظر و دلخواه تحقق یابد. زبان برنامه نویسی dart از عبارات حلقه ای زیر پشتیبانی می کند:
- for
- .in
- while
- .while
نمودار زیر موضوع را شفاف تر بیان کرده است :
مثال:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
void main() { var name = ["Peter", "Rinky Ponting", "Abhishek"]; for (var prop in name) { print(prop); } } |
کامنت ها در زبان برنامه نویسی دارت
کامنت ها، خطوطی از کدهای غیر قابل اجرا هستند. آنها یک جنبه مجزا در زبان های برنامه نویسی به حساب می آیند. هدف اصلی از پیدایش و استفاده آن ها، ارائه توضیحات و اطلاعات بیشتری درباره یک پروژه، یک value یا یک function است.
در زبان برنامه نویسی dart، سه نوع کامنت وجود دارد:
- Make format comments: یک کامنت تک خطی (//)
- Block Comments: کامنت چند خطی (/*…*/)
- Doc Comments: یک کامنت سندی است که برای اعضا و انواع استفاده می شود(///)
Continue and Break در دارت
Dart نیز از کلمه کلیدی Continue and Break در حلقه های خود یا هر جای دیگری که نیاز باشد، استفاده می کنند. عبارت Continue به شما این امکان را می دهد که از آنچه در حلقه اتفاق می افتد گذر کرده و به آنچه در پایان حلقه وجود دارد انتقال پیدا کنید. مثال زیر موضوع را به طور شفاف تری به ما نمایش می دهد:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
void main() { for(int i=1;i<=10;i++){ if(i==5){ print("Hello"); continue; //it will skip the rest statement } print(i); } } |
عبارت Break به شما این اجازه را می دهد که به جریان فعلی برنامه خاتمه و توقف دهید و ادامه اجرای آن را به پس از بدنه حلقه موکول نمایید. مثال:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
void main() { for(int i=1;i<=10;i++){ if(i==5){ print("Hello"); break;//it will terminate the rest statement } print(i); } } |
کلمات کلیدی Final and Const
ما می توانید از کلمه کلیدی Final برای محدود کردن کاربر استفاده کنیم. در بسیاری از کانتکست ها می توان این موضوع را پیاده سازی کرد. مانند متغیرها، کلاس ها و متدها و روش ها.
Const برای اعلام مقدار ثابت استفاده می شود. ما نمی توانیم ارزش کلمه کلیدی const را بعد از اختصاص دادن آن تغییر دهیم. مثال:
1 2 3 4 5 6 7 8 9 10 11 |
void main() { final a = 100; const pi = 3.14; print(a); print(pi); } |
برنامه نویسی آبجکت جهت دار
Dart یک زبان برنامه نویسی Object-Oriented است. به این معنا که هر Value در دارت یک Object است. یک عدد نیز در زبان برنامه نویسی dart یک آبجکت است. زبان برنامه نویسی دارت از امکانات OOPs، مثل آبجکت ها، کلاس ها و اینترفیس ها پشتیبانی می کند.
Object : یک آبجکت، موجودیتی است که قوانین، ساختار و رفتار خاص خود را دارد. آبجکت می تواند به صورت یک شئ فیزیکی یا به صورت یک منطق باشد. در زبان برنامه نویسی دارت، هر ارزشی یک آبجکت است. حتی ارزش های اولیه و ابتدایی مانند متن ها و اعداد. Dart همچنین می تواند به شما این اجازه را بدهد که آبجکت های مخصوص به خود را بسازید تا به این ترتیب بتوانید روابط پیچیده تری را میان اطلاعات مطرح شده خود بیان نمایید.
Class : یک کلاس، مجموعه ای از آبجکت هاست. این به معنای آن است که آبجکت ها به کمک کلاس ها به وجود آمده اند. چرا که هر آبجکتی به یک طرح اولیه مبتنی بر موضوعی نیازمند است که شما قادر باشید به وسیله آن آبجکت های منحصر به فرد بسازید.
یک کلاس شامل موارد زیر می شود:
- Fields
- Methods
- Constructor
- Getters and setters
برای آنکه مفهوم OOPs را آسان تر بیان کنیم، به مثال زیر اشاره می کنیم:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
class Mobile { // Property Declaration String color, brandName, modelName; // Method Creation String calling() { return "Mobile can do call to everyone."; } String musicPlay() { return "Mobile can play all types of Music."; } String clickPicture() { return "Mobile can take pictures."; } } void main() { // Object Creation var myMob = new Mobile(); // Accessing Class's Property myMob.color = "Black"; myMob.brandName = "Apple Inc."; myMob.modelName = "iPhone 11 Pro"; //Display Output print(myMob.color); print(myMob.modelName); print(myMob.brandName); print(myMob.calling()); print(myMob.musicPlay()); print(myMob.clickPicture()); } |
در این مثال، ما یک کلاس موبایل را تعریف کرده ایم که سه متغیر از string ها و سه function دارد. سپس ما یک function اصلی ساخته ایم که dart زمانی که اپلیکیشن شما شروع می شود، در ابتدای امر آن را اجرا می کند. درون این function اصلی، ما یک آبجکت ساخته ایم که به خواص کلا دسترسی داشته باشیم و در آخر هم از خروجی یک پرینت گرفتیم.
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.