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