اَختروَش که بود و چه کرد؟ (مقدمه ای بر فریم ورک Quasar)

فریم ورک Quasarنسل اول زبان هااز دوران زبان های برنامه نویسی نسل اول مثل Assembly، Fortran، ALGOL، Basic حدود 60 سال می گذره. زبان هایی که از لحاظ محیط های اجرا به شدت محدود بودن و توسعه دهندگان به ناچار از استاندارد ها و پیاده سازی های مختلف یک زبان برای توسعه برنامه ای که روی سخت افزار و سیستم عامل های مختلف قابل اجرا باشه استفاده می کردن. برای مثال اگه به ستون آخر این جدول دقت کنید می بینید که برای هر معماری خاص و هر نسل از پردازشگر ها باید از چه پیاده سازی متفاوتی از ALGOL استفاده کرد. به همین دلیل اصلا سخت نیست تصور این که همیشه از خواسته ها و آرزو های توسعه دهنده ها و طراح های زبان های برنامه نویسی، پیاده سازی معماری و سیستم ای بوده که با نوشتن یک (یا نزدیک به یک) سری کُد بشه اپلیکیشن خودمون رو روی حداکثر سیستم عامل های ممکن اجرا کرد. ما به این ایده میگیم "یک بار بنویس، همه جا اجرا کن"."یک بار بنویس، همه جا اجرا کن."در تاریخ زبان های برنامه نویسی یکی از مهم ترین قدم هایی که به این سمت برداشته شد، استفاده از ماشین های مجازی بود. از اصطلاحی جا افتاده بین دانشمندان و مهندسان کامپیوتر در مورد مدل ماشین های مجازی اطلاعی ندارم پس توی این مقاله از اصطلاح من در آوردی "مدل ب.م.م" استفاده میکنم که مخفف "مدل بالا-میانی-ماشین" هست و منظور از بالا یک زبان سطح بالا، منظور از میانی یک زبان میانی و منظور از ماشین، زبان ماشینی هست. ممکنه اولین برخورد بیشتر ما جوانان با این مدل، توی زبان جاوا و ماشین مجازی جاوا (JVM) باشه ولی این ایده ی جدیدی نیست و زبان هایی مثل پاسکال و حتی قبل تر از اون هم از چنین مدلی بهره می برن. "یک بار بنویس، همه جا اجرا کن" در کنار مبلغ های سرسام آوری که Sun Microsystems برای تبلیغ جاوا خرج کرد باعث شد که جاوا برای مدت ها جزو مهم ترین زبان ها باشه. ولی خیلی وقته که به خاطر سنگین بودن ماشین مجازی جاوا و Cold Start بد، حفره های امنیتی و... جاوا از محیط مرورگر ها حذف شده.سلطنت استک وبامروزه وب سایت ها و وب اپلیکیشن ها اگه بین عموم مردم از اپلیکیشن های Native محبوب تر و مهم تر نباشن، از اهمیت کمتری هم برخوردار نیستن. این باعث شده که حجم زیادی از توسعه دهنده های جوان، دانشجو ها و افراد جویای کار برای ورود به فضای برنامه نویسی با استک وب شروع کنن که از مهم ترین بازیکن های این استک، زبان جاوا اسکریپت هست. زبان جاوا اسکریپت برای اجرا شدن نیاز به یک موتور جاوا اسکریپت داره و مرورگر های مختلف از موتور های مخصوص خودشون (مثل V8 برای گوگل، SpiderMonkey برای موزیلا) استفاده میکنن. این زبان با استفاده از این موتور ها از همون شعار "یک بار بنویس، همه جا اجرا کن" پیروی میکنه و این قابلیت کلیدی باعث شده تا توسعه دهنده های خلاق سراسر جهان به دنبال پیاده سازی این موتور ها به شکلی هستن که بهشون کمک کنه تا وب اپلیکیشنی که ساختن رو به پلتفرم ها و سیستم عامل های مختلف ببرن.فریم ورک Quasarفریم ورک Quasar (بخونید: کو؟ اِی! زار.) از محصولات همین بینش و همین شعار و همین سیستم هست. با یک Codebase برای همه! با یک بار نوشتن اپلیکیشن خودتون، میتونید به راحتی خروجی SPA و PWA و اپلیکیشن موبایل یا اپلیکیشن دسکتاپ بگیرید و حتی اکستنشن مرورگر بسازید! Quasar.devچرا Quasar؟فریم ورک Quasar از 3 قسمت اصلی تشکیل شده:1- Quasar CLI2- Quasar App3- Quasar UI1- با استفاده از Quasar CLI میشه به راحتی تنظیمات مورد نظر رو موقع ساخت پروژه انجام داد تا پکیج های لازم به صورت خودکار نصب بشن و پوشه بندی پروژه به صورت استاندارد صورت بگیره تا محیط کار به صورت خودکار، مرتب و آماده Scale up شدن باشه.2- از وظایف Quasar App اجرا کردن سرور توسعه لوکال هست تا هر تغییری که توی کُدتون اعمال می کنید، اجرا بشه و به صورت زنده بتونید ببینید تغییراتتون رو. همچنین به شما کمک میکنه تا از پروژتون خروجی های مختلف مورد نظر رو دریافت کنید.3- کتابخونه عظیم Quasar با بیش از 70 کُمپوننت، چندین Vue Directive، Plugin، Extension و Util، تقریبا هر چیزی که یک توسعه دهنده وب برای طراحی بهترین UI با پرفورمنس خیلی خوب نیاز داشته باشه رو داره. همچنین لازمه بگم که تمامی کُمپوننت های ارائه شده در کتاب خونه ی Quasar از قوائد و دستورات Material Design پیروی می کنن. در کنار این ها، Quasar از داکیومنتیشن عالی با تعداد مثال های خوبی برخورداره و حتی راهنمای طراحی و استایل دادن به پروژه رو هم در سایتش قرار داده. از تایپ اسکریپت پشتیبانی میکنه، به راحتی کاستومایز میشه و حجم بزرگی از Helper Class برای استایل دادن سریع به المنت ها داره که همشون قابل Override کردن هستن. لیست کاملی از تمامی توانایی های این فریم ورک رو می تونید توی سایت Quasar.dev ببینید.یک مثالبرای نشون دادن یک مورد از توانایی های Quasar به خصوص Quasar CLI، میخوایم یک اپلیکیشن دسکتاپ بسازیم. برای نصب پکیج هامون میتونیم از Yarn یا NPM استفاده کنیم. برای نصب NPM از این راهنما و برای نصب Yarn از این یکی راهنما استفاده کنید. برای استفاده از Quasar میتونید از 3 راه تزریق با CDN، اضافه کردن به عنوان پلاگین به Vue.js یا CLI خود Quasar استفاده کنید که بهترین راه و راه پیشنهادی خود تیم Quasar، استفاده از Quasar CLI هست. نکته دیگه ای که وجود داره اینه که Quasar CLI برای توسعه ی اپلیکیشن های دسکتاپ فعلا (آذر 99) فقط از فریم ورک Electron.js پشتیبانی میکنه که محبوب ترین ابزار برای این کار هست. پس اگه علاقه مند به استفاده از فریم های دیگه مثل NW.js هستید، میتونید با استفاده از این راهنما با Vue.js و NW.js ساختمان اپلیکیشن رو بسازید و Quasar رو به عنوان پلاگین به Vue.js اضافه کنید. بیاید با هم ببینیم چقدر طول میکشه تا آماده کد زدن پروژمون بشیم:1- ابتدا پکیج @quasar/cli رو نصب میکنیم:$ npm install -g @quasar/cli یا $ yarn global add @quasar/cli2- بعد داخل دایرکتوری ای که میخوایم پروژه مون رو قرار بدیم، وارد میکنیم:$ quasar create [اسم پروژه شما]3- وارد CLI میشیم و تنظیمات دلخواهمون رو وارد میکنیم:Quasar Command Line Interface4- صبر میکنیم تا کار دانلود و نصب کردن فایل ها تموم بشه. بعد وارد پوشه پروژه میشیم و حالت Electron رو به پروژه اضافه میکنیم: $ quasar mode add electron نکته: اگه از سیستم عامل ویندوز استفاده می کنید و موقع نصب به مشکلی در مورد node-gyp برخورد کردید، با این راهنما حل کنید مشکل رو.5- حالا می تونید اپلیکیشن رو توی حالت Development اجرا کنید:$ quasar dev -m electronتموم شد. الان شما آماده توسعه اپلیکیشن خودتون هستین!اپلیکیشن اولیه6- در آخر وقتی که نیاز به Build کردن اپلیکیشن داشتید، با دستور زیر این کار رو انجام بدین:$ quasar build -m electronمشابه همین مراحل رو برای توسعه اپلیکیشن موبایل و اکستنشن مرورگر و PWA ها میتونید طی کنید.