گوگل تقریبا در تمام بخشهای تکنولوژی، حداقل یک محصول ارائه کرده و حرفی برای گفتن دارد. در سال 2011، گوگل وارد حوزه های برنامه نویسی شد تا در این بازار هم سهمی برای خودش داشته باشد. زبان برنامه نویسی دارت به طور خلاصه راهکار گوگل برای حل مشکلات رایج جاوا اسکریپت است. دارت در گذشته بیشتر توسط خود گوگل به کار گرفته میشد و نتوانست تا مدتها بین برنامه نویسان محبوبیت زیادی پیدا کند. اما با معرفی فریم ورک Flutter و قابلیت ساخت اپلیکیشنهای موبایل با دارت، توسعهدهندگان کم کم از آن استقبال کردند. در این مقاله بررسی میکنیم که زبان برنامه نویسی دارت چیست و چه کارهایی با آن میتوان انجام داد؛ با ما همراه باشید.
زبان برنامه نویسی دارت چیست؟
تنوع زبانهای برنامه نویسی آنقدر زیاد شده که اعتماد به یک زبان جدید را برای برنامه نویسان، بسیار سخت کرده است. از قدیم این موضوع برای برنامه نویسان سوال بود که در اقیانوس پرتلاطم زبانهای برنامه نویسی که هر روز هم بزرگتر میشود، یادگیری کدام زبان برای ما بهتر است و باید کدام یک از آنها را انتخاب کنیم؟ برای پاسخ به این سوال، بهتر است ابتدا نیازهایمان را بشناسیم. یعنی باید بدانیم که چه انتظاری از یک زبان داریم و میخواهیم با آن چه کار کنیم. یکی از انتخابهای ما میتواند زبان Dart باشد.
Dart یک زبان برنامه نویسی نسبتا جدید میباشد و همانطور که گفتیم توسط شرکت گوگل در سال 2011 معرفی شده است. دارت از مجوز یا لایسنس BSD استفاده میکند و استفاده از آن برای عموم رایگان است. زبان دارت در یکی از زیباترین شهرهای دانمارک رونمایی و معرفی شد و 2 سال طول کشید تا نسخهی 1.0 آن عرضه شود. در سال 2018 نیز شاهد معرفی نسخهی دوم این زبان بودیم که تغییرات مثبتی در آن به چشم میخورد. این زبان، چندمنظوره است و میتوانید با آن اپلیکیشن موبایل بسازید، برای دسکتاپ نرم افزار بنویسید یا طراحی سایت انجام دهید. همچنین از شی گرایی نیز پشتیبانی میکند و میتوانید با زبان دارت، برنامه نویسی شی گرا را تجربه کنید.
بسیاری از متخصصان کامپیوتر، زبان C را زبان برنامه نویسی مادر میدانند و معتقدند که یادگیری زبان C، ذهن افراد را برای ورود به دنیای برنامه نویسی آماده میکند. یکی از مزیتهای اصلی دارت این است که بر پایهی زبان C میباشد. اگر قبلا با زبانهای C Base مثل PHP یا جاوا اسکریپت، برنامه نویسی کرده باشید، یاد گرفتن دارت برایتان بسیار لذتبخش و شیرین خواهد بود.
رابطهی دارت و جاوا اسکریپت
دلیل اصلی به وجود آمدن زبان دارت، انجام کارهایی بود که با جاوا اسکریپت، انجام دادن آنها بسیار دشوار بود. جاوا اسکریپت را تقریبا در همه جا میتوان استفاده کرد. جاوا اسکریپت زبانی است که از مدتها قبل در کنار HTML و CSS برای رندر کردن صفحات وب استفاده میشد. این زبان، بعدها با معرفی Node.js پای خودش را به برنامه نویسی سمت سرور باز کرد. فیسبوک نیز با معرفی React و React Native نقش مهمی در موفقیت جاوا اسکریپت ایفا کرد و این قدرت را به برنامه نویسان داد که با جاوا اسکریپت، برنامههای موبایل را توسعه دهند.
جاوا اسکریپت از سالها قبل توسط برنامه نویسان استفاده میشده است و هم اکنون نیز به عنوان یک زبان پایدار و آسان شناخته میشود. تنوع کتابخانهها و فریمورکهای جاوا اسکریپت بسیار زیاد است و توسعهدهندگان میتوانند از کدهای آماده و از پیش نوشته شده نیز استفاده کنند.
در مقابل، زبان دارت جدیدتر است و برای کسانی که خارج از گوگل قرار دارند تازگی دارد، اما هنوز به آن پختگی و جاافتادگی جاوا اسکریپت نرسیده است. با وجود مستندسازی قوی گوگل، هنوز هم فرومهای قدرتمندی برای برنامه نویسان دارت وجود ندارد که مشکلاتشان را برطرف کنند. از طرفی، ساختار کدنویسی و شباهتی که دارت به زبانهای C و جاوا دارد، به توسعهدهندگان قدیمی کمک میکند تا راحتتر با آن ارتباط برقرار کنند.
زبان دارت به چند روش اجرا میشود؟
3 روش کلی برای اجرای کدهای زبان دارت وجود دارد. اولین راه کامپایل کدهای دارت به جاوا اسکریپت است. اما این کار به چه شکلی انجام میشود؟ همانطور که گفتیم، یکی از کابردهای دارت در برنامه نویسی تحت وب است. وقتی کدی که به زبان دارت نوشتهاید در مرورگر کاربر اجرا میشود، کامپایلر dart2js، این کدها را تبدیل به جاوا اسکریپت میکند و کاربر نتایج را میبیند. کامپلایر دارت در اکثر مرورگرهای جدید پشتیبانی میشود. حتی گاهی وقتها از کدهای خالص جاوا اسکریپت هم سریعتر اجرا میشود.
یک حالت دیگر، استفادهی مستقل از زبان دارت است. کافی است پکیج SDK این زبان را روی سیستم خود نصب کنید و در محیط خط فرمان، خروجی کدهای خود را ببینید. درون این SDK، ابزارهای متنوعی وجود دارد که با زبان دارت نوشته شدهاند و مهمترین آن، ماشین مجازی دارت یا Dart VM است. همچنین، کامپایلر dart2js، پکیج منیجر pub و کتابخانههای استاندارد و متنوع که به کاربر اجازه میدهند یک سیستم کامل مثل وب سرور را بسازد، نیز در این SDK موجود هستند.
دارت در کجا استفاده میشود؟
امروزه زبانهای چند منظوره محوبیت زیادی دارند. در واقع شما فقط یک زبان برنامه نویسی را یاد میگیرید اما میتوانید در پلتفرمها و حوزههای مختلف از آن زبان استفاده کنید. نقطهی عطف دارت زمانی بود که گوگل یک از یک فریمورک توسعهی اپلیکیشن موبایل به نام Flutter رونمایی کرد. با کمک فلاتر میتوانید برای Android و iOS اپلیکیشن بسازید و پشتیبانی یک شرکت قدرتمند یعنی گوگل را داشته باشید.
اگر شما هم به برنامه نویسی اندروید علاقهمندید ما پیشنهاد میکنیم به صفحات آموزش فلاتر و آموزش برنامه نویسی اندروید با جاوا سر بزنید و اطلاعات لازم درباره این دو دوره آموزشی را کسب کنید.
کاربرد دیگر زبان دارت در طراحی صفحات وب است. همانطور که قبلا هم با جاوا اسکریپت همین کار را میکردیم. شاید برایتان سوال پیش بیاید که چرا از خیر جاوا اسکریپت قدیمی و ثابت شده بگذریم و سراغ دارت برویم؟ در پاسخ میتوان گفت که دارت در تلاش است مشکلات جاوا اسکریپت را حل کند. جاوا اسکریپت تا قبل از ES6 نمیتوانست از شی گرایی پشتیبانی کند و دارت به طور پیشفرض این قابلیت را دارد. همینطور چون در جاوا اسکریپت هنگام کار با Ajax یا تکنیکهای دیگر با مفهوم Prototype سروکار داریم، ممکن است گاهی به مشکل خورده و کار کمی دشوار شود.
Angular Dart یکی از معروفترین سرویسهای زبانهای دارت به حساب میآید. یک فریم ورک وب قدرتمند که در کارنامهی خود، محصولاتی مثل Google Adwords را دارد. این فریم ورک شبیه به Angular است با این تفاوت که با زبان Dart نوشته شده است.
مثال معروف سلام دنیا با زبان برنامه نویسی دارت
حال نگاهی به سینتکس این زبان میاندازیم و چند کد ساده را اجرا میکنیم. اگر زبان C را بشناسید، با دیدن سینتکس دارت ذهنتان به سمت این زبان میرود. میدانیم که معروفترین مثال برای شروع یک زبان، چاپ سلام دنیا (!hello world) بر روی صفحه نمایش است. پس بیایید به کمک دارت به دنیا سلام کنیم.
main() {
print('Hello World!);
}
پروژههای بزرگی که با زبان برنامه نویسی دارت طراحی شدهاند
همانطور که گفتیم گوگل در اکثر محصولات خود از زبان دارت استفاده میکند، محصولاتی همچون گوگل ادسنس، گوگل ادوردز و... . به غیر از استفادههای گوگل، برنامهها و پروژههای زیادی توسط برنامه نویسان آزادکار با دارت برنامه نویسی شدهاند. شاید عموم مردم این سرویسها را نشناسند چون مثل اینستاگرام، فیسبوک یا واتس اپ کاربران میلیاردی ندارند اما هنوز هم سرویسهای باارزشی به حساب میآیند. برخی از این پروژهها عبارتند از:
AngularDart: یک نسخه از Angular است که به طور کامل با دارت نوشته شده است
ArrowLogo: یک پیاده سازی از زبان برنامه نویسی Logo
Chromium: یک مرورگر سریع، امن و پایدار
Chromium OS: یک سیستم عامل ساده برای کسانی که وقت زیادی در وب میگذارند
Dart Sass: یک پیاده سازی از Sass میباشد
Google Web Toolkit: یک محیط توسعه برای ساخت برنامههای پیچیده تحت وب
Lovefield: یک دیتابیس رابطهای برای برنامههای تحت وب
myip: یک راه بهتر برای بدست آوردن IP
برخی از پروژههای تحت موبایل که از دارت استفاده کردهاند:
Android: محبوبترین سیستم عامل دنیا
Agera: یک زبان برنامه نویسی تعاملی برای اندروید
Flutter: فریم ورکی برای ساخت اپهای اندروید و iOS
Flex box-Layout: ساخت فلکس باکس در اندروید
ADB sync tool: یک ابزار برای Sync کردن فایلها در اندروید و iOS
هنوز آیندهی مشخصی در انتظار این زبان نیست و به نظر میرسد که قرار نیست با آمدن دارت، جاوا اسکریپت از بین برود. هر چند جاوا اسکریپت در بازار محبوبتر است اما دارت توسط برندی به نام گوگل پشتیبانی میشود و گوگل هنوز تصمیمی برای کنار گذاشتن این زبان برنامه نویسی ندارد. ارائهی سیستم عامل جدید فیوشا توسط گوگل نیز میتواند گواهی بر آیندهدار بودن زبان دارت و فریمورک فلاتر باشد.
نظر شما در رابطه با آیندهی این زبان چیست؟ اگر تجربهای در رابطه با زبان برنامه نویسی دارت دارید، خوشحال میشویم آن را با ما و سایر کاربران به اشتراک بگذارید.
۱۷ دیدگاه
امیرحسین۲۷ آذر ۱۴۰۲، ۱۳:۵۹
سلام آیا برای یادگیری زبان دارت باید اینگلیسی بلد باشیم ؟
نازنین کریمی مقدم۰۲ دی ۱۴۰۲، ۱۸:۰۴
درود
نیازی نیست مسلط باشید. میتونید از آموزشهای فارسی استفاده کنید و به مرور با تقویت انگلیسی سراغ آموزشهای انگلیسی برید.
۱۴ شهریور ۱۴۰۲، ۲۰:۰۲
خانم گودرزی دارت زبان برنامه نویسی هست و فلاتر فریمورک پس برای اینکه بتونیم فلاتر رو یاد بگیریم او باید دارت رو خیلی خوب بلد باشیم .
لطفا درست راهنمایی کنید
۱۵ تیر ۱۴۰۲، ۰۸:۱۹
پیش نیاز آموزش زبان دارت چیست؟
نازنین کریمی مقدم۱۶ تیر ۱۴۰۲، ۱۰:۳۳
درود
یادگیریش پیش نیاز خاصی نداره میتونید استارت بزنید.
۰۴ خرداد ۱۴۰۲، ۰۲:۰۳
چجوری حساب کردین php جزء زبانهای c base هست؟
نازنین کریمی مقدم۲۵ خرداد ۱۴۰۲، ۲۰:۰۳
درود
احتمالا باید این جمله رو سرچ بزنید: is php c-based
۳۱ تیر ۱۴۰۱، ۰۸:۰۵
سلام خانم گودرزی وقت بخیر ببخشید بهتره اول زبان کاتلین رو یاد بگیریم یا دارت
نازنین کریمی مقدم۰۱ مرداد ۱۴۰۱، ۰۴:۴۰
درود
کاملا بستگی به خودتون داره. هردو درحال حاضر بازارکار خوبی دارند و هیچکدوم هم پیشنیاز همدیگه نیستند.
محمد داوودی۱۹ اردیبهشت ۱۴۰۱، ۲۳:۳۴
سلام
برای شروع دوره ی متخصص فلاتر نیازی به پیشزمینه ای هست؟؟
کسی که قبلا با زبان دارت کار نکرده باشه میتونه توی این دوره شرکت کنه؟؟
و آیا اصلا زبان دارت تدریس میشه توی این دوره؟؟
نازنین کریمی مقدم۲۰ اردیبهشت ۱۴۰۱، ۱۱:۰۳
درود
خیر خوشبختانه نیاز به پیش زمینه نداره و زبان دارت هم توش تدریس میشه.
برای اطلاعات بیشتر درمورد سرفصلها میتونید به صفحه دوره مراجعه کنید و یا با با بخش فروش تماس بگیرید.
۰۱ اسفند ۱۴۰۰، ۰۹:۴۳
سلام اول فلاتر یاد بگیریم بهتره یا دارت؟؟
نازنین کریمی مقدم۰۱ اسفند ۱۴۰۰، ۰۹:۵۱
درود
باتوجه به تعداد آگهیهای شغلی، بهتره اول فلاتر رو یاد بگیرید.
ماهان ۱۱ آذر ۱۴۰۰، ۱۳:۵۷
سلام آیا در سون لرن دوره آموزش دادت هست؟؟
Nazanin KarimiMoghaddam۱۳ آذر ۱۴۰۰، ۰۶:۱۰
درود
در حال حاضر خیر.
علی۲۴ خرداد ۱۴۰۰، ۰۹:۵۹
سلام
وقت بخیر
خانم گودرزی دارت بایت کد نداره.
More recently, the authors of V8[1] and Dart[7] have challenged the notion that intermediate bytecode is needed for fast and efficient VM implementation. Both of these language implementations currently do direct JIT compiling from source code to machine code with no bytecode intermediary.[8]
Source: wikipedia
نازنین گودرزی۳۱ خرداد ۱۴۰۰، ۱۵:۲۱
ممنون از همراهی شما بهروزرسانی شد. در زمان نگارش مقاله، این مورد از منبع ترجمه شده بود.
راهنمای مقاله
زبان برنامه نویسی دارت چیست؟
رابطهی دارت و جاوا اسکریپت
زبان دارت به چند روش اجرا میشود؟
دارت در کجا استفاده میشود؟
مثال معروف سلام دنیا با زبان برنامه نویسی دارت
پروژههای بزرگی که با زبان برنامه نویسی دارت طراحی شدهاند
راهنما و فهرست مقاله
زبان برنامه نویسی دارت چیست؟
رابطهی دارت و جاوا اسکریپت
زبان دارت به چند روش اجرا میشود؟
دارت در کجا استفاده میشود؟
مثال معروف سلام دنیا با زبان برنامه نویسی دارت
پروژههای بزرگی که با زبان برنامه نویسی دارت طراحی شدهاند