Ali Hoseinpoor
Ali Hoseinpoor
خواندن ۷ دقیقه·۳ سال پیش

آیا زبان دارت قویه ؟؟ ??

سلام دوستان گلم امیدوارم حالتون خوب باشه ❤️❤️

قبل از اینکه بخوایم وارد بحث بشیم بگم که تمام مباحثی که توی این مقاله میگم جامع تر و کامل ترش توی کانال یوتوبم هست ممنون میشم به اون هم سر بزنید ??? : تماشای ویدیو در یوتوب

خیلی وقتا شده که دوستان ازم میپرسن دارت اصن زبان قویه ؟؟

یا تو گروه های تلگرام میبینم که جنگ و دعوا شده سر اینکه یکی میگه دارت بهترین زبان دنیاس یکی میگه نه دارت بدترین زبان دنیاس ???. ( مثه اتفاقی که واسه رونالدو و مسی میوفته ?? )

تو این مقاله میخوام یه بار واسه همیشه به این سوال جواب بدم که آقا دارت چجور زبونیه. اصن ارزش داره بریم سمتش یا نه ولش کنیم به امون خدا.

اولین نکته ای که وجود داره اینه که اصن این سوال از بیخُ و بُن غلطه چون ما نمیتونیم بگیم یه زبان بهترین زبان دنیاس و یا یه زبان بدترین زبان دنیاس چون آقا هر زبانی رو بهر کاری ساختن ??

قرار نیس یه زبانی ساخته بشه که به تمام نیاز های ما جواب بده و در عین حال هم سریع ترین باشه هم قوی ترین و هم ..... این یکی از محکم ترین قوانین دنیاس که شما نمیتونی بهترینِ کل باشی واسه همین اگه میخوای بهترین زبان از لحاظ سرعت باشی قطعا یه چیز دیگه رو باید از دست بدی پس ما باید بر اساس نیازمون و بر اساس حوزه ای که میخوایم توش فعالیت کنیم یک زبان رو انتخاب کنیم که توی اون حوزه یکی از خوب ها باشه. پس لطفا دیگه سر اینکه کدوم زبان بهترین زبان دنیاس دعوا نکنین ?.

پس دوستان اگه قراره مقایسه ای صورت بگیره باید تو حوزه های یکسان این کار انجام بشه نه اینکه بیایم مثلا دارت رو با پایتون مقایسه کنیم یا فلاتر رو با جاوا چون فلاتر اصن زبان نیست و فقط یک فریمورک ui هست پس مقایسه اون با یک زبان اصلا کار درستی نیست.

خب الان که این همه سخنرانی کردم ?? وقتشه یکم به خود زبان دارت بپردازم :

زبان دارت یک سری ویژگی خیلی خوب داره که به نظرم توی حوزه خودش اون رو به یکی از بهترینا تبدیل کرده (دقت کنید که گفتم یکی از بهترینا)

Syntax :

گرامر زبان دارت چیزی شبیه به جاوا و c++ است اما با این تفاوت که خیلی به زبان انسان نزدیک تر و قابل فهم تره و بسیاری از ویژگی های جاوا اسکریپت هم داره.

زبان دارت یک زبان شی گرا است و از ارث بری یگانه٬ کلاس های abstract و کلاس های Generic و ... استفاده میکنه.

کلا طبق شواهدی که وجود داره گوگل زبان دارت رو توسعه داده تا جایگزین جاوا اسکریپت بشه واسه همین خیلی از قابلیت هایی که جاوا اسکریپت داره رو دارت هم داره.

خب تو بخش اول که به نظرم سربلند بود چون هم شی گراس هم ویژگی های جاوااسکریپت رو داره و هم اینکه گرامرش خیلی نسبت به زبان های دیگه قابل فهم تر و ساده تره. بریم سراغ ویژگی های دیگش .

Support AOT and JIT :

ویژگی خیلی خوبی که دارت داره اینه که همزمان هم میتونه از کامپایلر AOT استفاده کنه هم از کامپایلر JIT. مثلا اگه با فلاتر کار کرده باشید زمانی که توی فاز توسعه و طراحی هستید واسه اینکه قابلیت Hot Reload و ویژگی های مربوط به دیباگ کردن رو داشته باشید دارت از کامپایلر JIT استفاده میکنه و زمانی که میخواید خروجی نهایی از برنامتون بگیرید و نیاز دارید که اپ سرعت خوب و start up time کمی داشته باشه دارت از کامپایلر AOT استفاده میکنه و این ینی یه چیییز فوق العاده ???. همین اتفاق واسه زمانی که میخواید web app هم درست کنید میوفته ینی توی فاز طراحی از کامپایلر dartdevc استفاده میکنه و توی فاز اجرایی از کامپایلر dart2js.

در کل دیدیم که دارت با ۴ تا کامپایلر داره همه چیز رو مدیریت میکنه و خب این یه ویژگی خیلی خوبه که دارت این ویژگی رو داره.

Documentation :

ویژگی بعدی که دارت داره و من وااااقعا امیدوارم که بقیه زبان ها هم این کار رو بکنند اینه که زبان دارت مستندات خیلی قوی و خوبی داره. ینی شما کافیه مستنداتی که خود دارت فراهم کرده رو بخونید تا از همه چیش سر در بیارید. از مفاهیم اولیه و ابتدایی گفته تا پیچیده ترین مفاهیم، و این خیلی خوبه که یه زبان چنین مستنداتی داشته باشه که تو اکثر مواقع اگه یه وقت کارتون جایی گیر کرد مطمئن باشید که خود مستندات رسمیش کارتون رو راه میندازه و مثل خیلی از زبان های دیگه نمیشه که حالا بخواید کل اینترنت و یوتوب رو زیر و رو کنید تا مشکلتون رو حل کنید.

اگه میخواید مستنداتش رو ببینید یه سر به این سایت بزنید : https://dart.dev/guides

هم چنین دارت یک ادیتور آنلاین هم داره که واقعا خیلی عاالیه و شما میتونید روی اون ادیتور کد بزنید و کدتون رو هم اجرا کنید ???. دیگه واقعا از یه زبان چی میخواید ????.

لینک ادیتور آنلاین دارت : dartpad

Sound Type Safe & Sound Null Safe :

اول از همه بگم که دارت یه زبانیه که حتما باید تایپ یا نوع یک متغیر رو همون اول مشخص کنید و حالا ویژگی بعدی دارت اینه که هم sound type safe هست هم sound null safe. حالا ینی چی ؟؟

Sound type safe :

این sound type safe ینی اگه شما تایپ یک متغیر رو گذاشتید int دارت به شما این تضمین رو میده که اون متغیر از زمانی که ایجاد بشه تا زمانی که زندس int میمونه. ینی هم توی زمان کامپایل و هم توی زمان اجرا تایپ متغیر حفظ میشه و به هیچ عنوان احتمالش نیس که احیانا چیزی جز int توی متغیر ریخته بشه.

Sound null safe :

و sound null safe هم به شما تضمین میده که اگه شما یک متغیری ساختید که نمیتونه مقدار null رو بگیره این متغیر از زمانی که ساخته میشه تا زمانی که زندس ینی چه تو زمان کامپایل و چه تو زمان اجرا این متغیر non null able میمونه و نمیتونه به هیچ عنوان مقدار null رو بگیره.

دوستان زبان های خیلی کمی هستند که sound null safe هستند چون بقیه زبان هایی که null safe هستند تنها توی زمان کامپایل این تضمین رو داریم که اگه یک متغیر رو non null able تعریف کنیم نتونه مقدار null رو بگیره و توی زمان اجرا این تضمین رو به ما نمیدن و ممکنه به اون متغیر مقدار null رو بدیم و به ارور های null برخورد کنیم اما دیدیم که دارت هم توی زمان کامپایل هم توی زمان اجرا این تضمین رو به ما میده و به همین خاطر خیلی از ارور های ناخواسته مربوط به null رو برطرف میکنه.

dynamic & var :

دارت از تایپ dynamic هم پشتیبانی میکنه که ما میتونیم هر مقداری که میخوایم رو به یک متغیر dynamic بدیم هم چنین دارت یک کلمه کلیدی داره به اسم var که اجازه میده ما مستقیم نگیم که متغیرمون از چه جنسیه بلکه خود آنالیزور دارت با استفاده از مقداری که به اون متغیر دادیم میاد نوع اون متغیر رو پیدا میکنه که به این ویژگی هم میگن tyep inference

یه مثال اگه بخوام بزنم :

var number = 4;

توی خط بالا من به صورت واضح نگفتم که متغیرم از نوع int عه و نوشتم var. حالا اتفاقی که میوفته آنالیزور دارت با استفاده از مقداری که ما به متغیر number دادیم میفهمه که این مقدار از جنس int هست و جنس متغیر number هم int میزاره و تا آخر عمرش هم int میمونه.

ینی مثل dynamic نیست که ما هر چی دلمون خواست توی متغیر بریزیم، بلکه اولین مقداری که توی متغیر ریخته شد آنالیزور جنس اون مقدار رو تشخیص میده و جنس متغیر رو هم همون جنس مقدار میزاره و دیگه جنس متغیر قابل تغییر نیس مزیتش اینه که ما میتونیم تنبلی کنیم و به جای اینکه هر دفعه نوع متغیر رو خودمون بنویسیم از var استفاده کنیم و تعیین نوع رو بندازیم گردن آنالیزور دارت.


خب دوستان این بود از یه سری ویژگی های مهم زبان دارت و امیدوارم که جواب سوالتون رو داده باشم که آیا دارت زبان قوی هست یا نه.

اما بازم در انتها میگم دارت زبان خوب و قوی هست اما توی حوزه خودش و به هیچ عنوان نمیشه اونو با زبان های دیگه که واسه کار های دیگه هستند مقایسش کرد.

در انتها اگه میخواید تمام این ویژگی ها رو به صورت کامل تر و همراه با مثال ببینید میتونید ویدیو مقدمه ای بر زبان دارت که توی کانال یوتوب من هست رو تماشا کنید.

لینک کانال یوتوب : https://www.youtube.com/c/FlutterStan

لینک ویدیو مقدمه ای بر زبان دارت : https://www.youtube.com/watch?v=PHjWRDnfHEY

ممنون از وقتی که گذاشتید ❤️

flutterdartفلاتر
دوستان لطفا کانال یوتوب برنامه نویسی بنده رو حمایت کنید : https://www.youtube.com/c/FlutterStan
شاید از این پست‌ها خوشتان بیاید