گوگل تقریبا در تمام بخشهای تکنولوژی، حداقل یک محصول ارائه کرده و حرفی برای گفتن دارد. در سال ۲۰۱۱، گوگل وارد حوزه های برنامه نویسی شد تا در این بازار هم سهمی برای خودش داشته باشد. زبان برنامه نویسی دارت به طور خلاصه راهکار گوگل برای حل مشکلات رایج جاوا اسکریپت است. دارت در گذشته بیشتر توسط خود گوگل به کار گرفته میشد و نتوانست تا مدتها بین برنامه نویسان محبوبیت زیادی پیدا کند. اما با معرفی فریم ورک Flutter و قابلیت ساخت اپلیکیشنهای موبایل با دارت، توسعهدهندگان کم کم از آن استقبال کردند. در این مقاله بررسی میکنیم که زبان برنامه نویسی دارت (Dart) چیست و چه کارهایی با آن میتوان انجام داد؛ با پلتفرم حافظ همراه باشید.
زبان برنامه نویسی دارت (Dart) چیست؟
تنوع زبانهای برنامه نویسی آنقدر زیاد شده که اعتماد به یک زبان جدید را برای برنامه نویسان، بسیار سخت کرده است. از قدیم این موضوع برای برنامه نویسان سوال بود که در اقیانوس پرتلاطم زبانهای برنامه نویسی که هر روز هم بزرگتر میشود، یادگیری کدام زبان برای ما بهتر است و باید کدام یک از آنها را انتخاب کنیم؟ برای پاسخ به این سوال، بهتر است ابتدا نیازهایمان را بشناسیم. یعنی باید بدانیم که چه انتظاری از یک زبان داریم و میخواهیم با آن چه کار کنیم. یکی از انتخابهای ما میتواند زبان Dart باشد.
Dart یک زبان برنامه نویسی نسبتا جدید میباشد و همانطور که گفتیم توسط شرکت گوگل در سال ۲۰۱۱ معرفی شده است. دارت از مجوز یا لایسنس BSD استفاده میکند و استفاده از آن برای عموم رایگان است. زبان دارت در یکی از زیباترین شهرهای دانمارک رونمایی و معرفی شد و ۲ سال طول کشید تا نسخهی ۱.۰ آن عرضه شود. در سال ۲۰۱۸ نیز شاهد معرفی نسخهی دوم این زبان بودیم که تغییرات مثبتی در آن به چشم میخورد. این زبان، چندمنظوره است و میتوانید با آن اپلیکیشن موبایل بسازید، برای دسکتاپ نرم افزار بنویسید یا طراحی سایت انجام دهید. همچنین از شی گرایی نیز پشتیبانی میکند و میتوانید با زبان دارت، برنامه نویسی شی گرا را تجربه کنید.
بسیاری از متخصصان کامپیوتر، زبان C را زبان برنامه نویسی مادر میدانند و معتقدند که یادگیری زبان C، ذهن افراد را برای ورود به دنیای برنامه نویسی آماده میکند. یکی از مزیتهای اصلی دارت این است که بر پایهی زبان C میباشد. اگر قبلا با زبانهای C Base مثل PHP یا جاوا اسکریپت، برنامه نویسی کرده باشید، یاد گرفتن دارت برایتان بسیار لذتبخش و شیرین خواهد بود.
رابطهی زبان برنامه نویسی دارت (Dart) و جاوا اسکریپت
دلیل اصلی به وجود آمدن زبان دارت، انجام کارهایی بود که با جاوا اسکریپت، انجام دادن آنها بسیار دشوار بود. جاوا اسکریپت را تقریبا در همه جا میتوان استفاده کرد. جاوا اسکریپت زبانی است که از مدتها قبل در کنار HTML و CSS برای رندر کردن صفحات وب استفاده میشد. این زبان، بعدها با معرفی Node.js پای خودش را به برنامه نویسی سمت سرور باز کرد. فیسبوک نیز با معرفی React و React Native نقش مهمی در موفقیت جاوا اسکریپت ایفا کرد و این قدرت را به برنامه نویسان داد که با جاوا اسکریپت، برنامههای موبایل را توسعه دهند.
جاوا اسکریپت از سالها قبل توسط برنامه نویسان استفاده میشده است و هم اکنون نیز به عنوان یک زبان پایدار و آسان شناخته میشود. تنوع کتابخانهها و فریمورکهای جاوا اسکریپت بسیار زیاد است و توسعهدهندگان میتوانند از کدهای آماده و از پیش نوشته شده نیز استفاده کنند.در مقابل، زبان دارت جدیدتر است و برای کسانی که خارج از گوگل قرار دارند تازگی دارد، اما هنوز به آن پختگی و جاافتادگی جاوا اسکریپت نرسیده است. با وجود مستندسازی قوی گوگل، هنوز هم فرومهای قدرتمندی برای برنامه نویسان دارت وجود ندارد که مشکلاتشان را برطرف کنند. از طرفی، ساختار کدنویسی و شباهتی که دارت به زبانهای C و جاوا دارد، به توسعهدهندگان قدیمی کمک میکند تا راحتتر با آن ارتباط برقرار کنند.
زبان دارت به چند روش اجرا میشود؟
۳ روش کلی برای اجرای کدهای زبان دارت وجود دارد. اولین راه کامپایل کدهای دارت به جاوا اسکریپت است. اما این کار به چه شکلی انجام میشود؟ همانطور که گفتیم، یکی از کابردهای دارت در برنامه نویسی تحت وب است. وقتی کدی که به زبان دارت نوشتهاید در مرورگر کاربر اجرا میشود، کامپایلر dart2js، این کدها را تبدیل به جاوا اسکریپت میکند و کاربر نتایج را میبیند. کامپلایر دارت در اکثر مرورگرهای جدید پشتیبانی میشود. حتی گاهی وقتها از کدهای خالص جاوا اسکریپت هم سریعتر اجرا میشود.
یک حالت دیگر، استفادهی مستقل از زبان دارت است. کافی است پکیج SDK این زبان را روی سیستم خود نصب کنید و در محیط خط فرمان، خروجی کدهای خود را ببینید. درون این SDK، ابزارهای متنوعی وجود دارد که با زبان دارت نوشته شدهاند و مهمترین آن، ماشین مجازی دارت یا Dart VM است. همچنین، کامپایلر dart2js، پکیج منیجر pub و کتابخانههای استاندارد و متنوع که به کاربر اجازه میدهند یک سیستم کامل مثل وب سرور را بسازد، نیز در این SDK موجود هستند.
زبان برنامه نویسی دارت (Dart) در کجا استفاده میشود؟
امروزه زبانهای چند منظوره محوبیت زیادی دارند. در واقع شما فقط یک زبان برنامه نویسی را یاد میگیرید اما میتوانید در پلتفرمها و حوزههای مختلف از آن زبان استفاده کنید. نقطهی عطف دارت زمانی بود که گوگل یک از یک فریمورک توسعهی اپلیکیشن موبایل به نام Flutter رونمایی کرد. با کمک فلاتر میتوانید برای Android و iOS اپلیکیشن بسازید و پشتیبانی یک شرکت قدرتمند یعنی گوگل را داشته باشید.
کاربرد دیگر زبان دارت در طراحی صفحات وب است. همانطور که قبلا هم با جاوا اسکریپت همین کار را میکردیم. شاید برایتان سوال پیش بیاید که چرا از خیر جاوا اسکریپت قدیمی و ثابت شده بگذریم و سراغ دارت برویم؟ در پاسخ میتوان گفت که دارت در تلاش است مشکلات جاوا اسکریپت را حل کند. جاوا اسکریپت تا قبل از ES6 نمیتوانست از شی گرایی پشتیبانی کند و دارت به طور پیشفرض این قابلیت را دارد. همینطور چون در جاوا اسکریپت هنگام کار با Ajax یا تکنیکهای دیگر با مفهوم Prototype سروکار داریم، ممکن است گاهی به مشکل خورده و کار کمی دشوار شود.Angular Dart یکی از معروفترین سرویسهای زبانهای دارت به حساب میآید. یک فریم ورک وب قدرتمند که در کارنامهی خود، محصولاتی مثل Google Adwords را دارد. این فریم ورک شبیه به Angular است با این تفاوت که با زبان Dart نوشته شده است.
مثال معروف سلام دنیا با زبان برنامه نویسی دارت
حال نگاهی به سینتکس این زبان میاندازیم و چند کد ساده را اجرا میکنیم. اگر زبان C را بشناسید، با دیدن سینتکس دارت ذهنتان به سمت این زبان میرود. میدانیم که معروفترین مثال برای شروع یک زبان، چاپ سلام دنیا (!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.