تفاوت فریم ورک های جاوا جان اسکریپت!

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

ولی از چه جنبه‎ای؟
اول از همه دوست دارم در مورد ویژگی‎های کلیدی هر کدوم از این فریم‎ورک‎ها بنویسم. به هر حال باید بدونیم که قراره با چی کار کنیم؟ اصلاً دوس داریم باهاش کار کنیم یا نه؟
بعد در مورد محبوبیت هر کدوم از این فریم‎ورک‎ها قراره بنویسم. چون به هر حال، محبوبیت یا معروف بودن
هر فریم‎ورک، تأثیر مستقیمی روی میزان فرصت‎های شغلی‎ای که اون فریم‎ورک ایجاد می‎کنه داره.
علاوه بر این، می‎تونیم بهتر بفهمیم دنیای وب و برنامه‎نویساش دارن به کدوم سمت میرن؟ و بعد هم قراره در مورد عملکرد هر کدوم از این فریم‎ورک‎ها صحبت داشته باشیم. ببینیم کدوم بهتر عمل می‎کنن؟
اصلاً بهتری وجود داره یا نه؟

ویژگی‎های کلیدی React:
اول از همه باید بدونیم که React یه کتابخونه‎ست. دونستن این مسأله خیلی خیلی مهمه.
کتابخونه‎ای هست که باهاش میشه اجزای یه سایت رو ساخت و در قالب یک صفحۀ وب نمایش داد. اصطلاحی که توی دنیای React و خیلی از فریم‎ورک‎های جدید دیگه برای اجزای سایت به کار می‎برن، Component هست. این Componentها در کنار هم قرار میگیرن، و یه سایت کامل رو نمایش میدن. اصطلاحی که توی دنیای React برای "نمایش‎دادن" به کار می‎برن Render هست.
React به شدت معروف و محبوبه. خیلی از شرکت‎های بزرگ و کوچیک دارن ازش استفاده می‎کنن. مثل نت‎فلیکس یا فیس‎بوک. در واقع فیس‎بوک شرکتی هست که این کتابخونه رو خلق کرده و داره توسعه‎ش میده. روی کتابخونه بودنش تأکید کردم، چون کتابخونه‎ها معمولاً فقط یه سری کارهای مشخص و محدودی رو انجام میدن. امکانات خیلی زیادی رو قرار نیست در اختیار توسعه‎دهنده‎ها قرار بدن.
در صورتی که Angular یا Vue کتابخونه محسوب نمیشن و برای اونا لفظ "فریم‎ورک" به کار برده میشه. برای همین مقایسه کردن React با Vue یا Angular یه مقداری معمولاً چالش‎پذیره و چندان کار درستی نیست.
اما از اونجایی که ابزارهای دیگه‎ای به کمک React اومدن تا اون رو بیشتر به یه فریم‎ورک شبیهش کنن، شاید بشه استثناء قائل شد و اون رو توی این مقایسه شرکتش داد.
از طرف دیگه همونطور که گفتم، React خیلی معروفه و معمولاً اسمش کنار Angular و Vue زیاد قرار میگیره. این هم دومین دلیلی هست که من تصمیم گرفتم توی این مقایسه شرکتش بدم.

توانایی ایجاد و کنار هم قرار دادن و نمایش اجزای یه سایت یا همون Componentها، یکی از مهم‎ترین ویژگی‎های React به حساب میاد. در واقع این Componentها، همون اجزای رابط کاربری هستند که میشه ازشون هر چقدر که خواستیم توی سایت استفاده کنیم.
مثلاً اینستاگرام رو در نظر بگیرید. Frontend سایت اینستاگرام با React نوشته شده. تموم پست‎هایی که داخل اینستاگرام مشاهده می‎کنیم، Component هستند. Componentهایی که تکرار شدند. تازه هر Post از Componentهای کوچکتری تشکیل شده. مثلاً بخش دیدگاه‎های هر پست، اطلاعات نویسندۀ اون پست و...؛

حتی HTML هم خودش به صورت پیش‎فرض Componentهایی رو داره. مثلاً فیلد Input و دکمه و امثالهم که داخل HTML وجود دارن، Component هستند؛ ولی از لحاظ ظاهری خیلی ساده و ابتدایی هستند. ولی اینطور نیست که HTML به صورت پیش‎فرض بتونه یه Component پیچیده‎تری مثل تقویم و Datepicker رو داشته باشه.
React به ما کمک می‎کنه که بتونیم یه چنین Componentهایی که وجود ندارن و پیچیده‎تر هستن رو بسازیم. اما تموم این کارها رو ما با JavaScript انجام میدیم. توی دنیای React، همه‎چیز با JavaScript نوشته و ساخته میشه. حتی HTML و CSS هم با جاوا اسکریپت نوشته میشن.
البته عُرف اینه که برای نوشتن HTML از یه ابزاری به اسم JSX استفاده کنیم. مجبور نیستیم، یعنی میتونیم ازش استفاده نکنیم؛ ولی عُرف دنیای React اینه که ازش استفاده کنیم. استاندارد شده یه جورایی.

مسأله اینه که JSX تقریباً همون HTML هست؛ با این تفاوت که شما اون کدهای شِبه HTML رو داخل JavaScript می‎نویسید.

چرا میگم شبیه HTML هست، ولی خودِ خودِ HTML نیست؟
چون از لحاظ نوشتاری و Syntaxـی یه جاهایی یه تفاوت‎های خیلی ریزی با HTML داره. مثلاً داخل HTML می‎تونید از یه خصیصه (Attribute) به اسم class استفاده کنید تا بتونید CSS رو روی یه عنصر اعمال کنید، ولی داخل JSX، این Attribute تحت عنوان className شناخته میشه. اینکه HTML رو داخل JavaScript بنویسیم، موافقان و مخالفان خاص خودش رو داره؛ قطعاً یه سری مزایا و یه سری معایب هم داره؛ ولی به طور کلی چیزی هست که پذیرفته شده و خیلی‎ها هم باهاش راحت هستن. پس چندان مشکل بزرگی به حساب نمیاد.

اما یکی از مسائلی که در مورد React وجود داره اینه که اگه قصد داشته باشیم اپلیکیشن‎های بزرگ‎تر و پیچیده‎تری رو باهاش پیاده کنیم،
یا قصد داشته باشیم یه SPA (برنامۀ تک صفحه‎ای) پیچیده رو باهاش پیاده کنیم، به عنوان مثال قطعاً به Routing، مدیریت Stateهای برنامه، و یا ارتباط با پروتکل HTTP/S نیاز پیدا می‎کنیم.

حالا مشکل چیه؟
مشکل اینه که React به خودیِ خودش، سیستمی به اسم Routing یا State Management و امثالهم رو نداره.
جامعۀ توسعه‎دهنده‎هایی که از React استفاده می‎کردن، اومدن افزونه‎هایی رو روی هستۀ React توسعه دادن، که این مشکلات رو حل کنه. مسأله اینه که این افزونه‎ها رو تیم اصلی React خلق نکرده یا توسعه نداده.
ممکنه تداخل‎هایی بین این‎ها به وجود بیاد. مثلاً برای سیستم Routing، کتابخونه‎ای به اسم React Router ایجاد شده. برای مدیریت Stateها، کلی کتابخونه ایجاد شده که از معروف‎ترین‎هاش میشه به Redux اشاره کرد.برای ارتباطات Ajax و یا به طور کلی ارتباط با پروتکل HTTP/S از کتابخونۀ Axios استفاده میشه.
اما هستۀ React توسط تیم توسعه‎دهندۀ فیس‎بوک نوشته شده و داره مرتباً توسعه‎داده میشه. چون فیس‎بوک از React داخل محصولات بزرگ خودش هم استفاده می‎کنه. برای همین میشه روش خیلی حساب کرد.
یکی دیگه از مزایای React اینه که با یاد گرفتنش می‎تونید بعدها سراغ توسعۀ اپلیکیشن‎های موبایل هم برید.
با وجود React Native به راحتی میتونید اپلیکیشن‎های موبایل (اندروید یا iOS) رو هم توسعه بدین.

البته React Native با React متفاوته، و قطعاً باید چیزای بیشتری رو یاد بگیرید تا بتونید برید سراغ React Native. ولی هستۀ هر دو React هست، و یاد گرفتن React، روند یادگیری React Native رو براتون ساده‎تر می‎کنه.

ویژگی‎های کلیدی Angular:
فریم‎ورک Angular هم مثل React بسیار معروف و محبوبه، و خیلی از شرکت‎های بزرگ و کوچیک مثل گوگل ازش استفاده می‎کنن.
در واقع گوگل شرکتی هست که Angular رو ایجاد کرده و در حال حاضر داره توسعه‎ش میده. پس همون مزیت به روز بودن همیشگی رو داره و از حمایت یه شرکت خیلی قدرتمند هم برخورداره.
بر خلاف React که یه کتابخونه بود، Angular یه فریم‎ورک تموم عیار با معماری MV* هست که حتی بعضی اوقات تحت عنوان یه پلت‎فرم شناخته میشه. دقیقاً مثل React، با Angular هم میشه Component ایجاد کرد. ولی Angular خیلی بیشتر از این حرفاست. کلی ابزار دیگه هم در اختیار توسعه‎دهنده قرار میده که بتونه باهاش یه اپلیکیشن تحت وب حرفه‎ای و پیشرفته رو پیاده‎سازی کنه.
فریم‎ورکی مثل Angular نه تنها توانایی ایجاد Component و Render کردن اون‎ها رو داره، بلکه درون خودش یه سیستم Routing قدرتمند داره؛ راهکارهایی رو برای مدیریت State به توسعه‎دهنده میده.
امکان اعتبارسنجی Formها رو داره. امکان ارتباط با پروتکل HTTP/s رو فراهم کرده و خیلی چیزای دیگه که همۀ این‎ها رو تیم اصلی Angular ایجاد کردن و توسعه دادن، پس اینجا دیگه مشکلی بابت تداخل هم نداریم.
یکی از مزیت‎هاش اینه که از APIهای بومی و اصلی خود وب استفاده می‎کنه. یعنی برای توسعۀ اپلیکیشنی با فریم‎ورک Angular ،توسعه‎دهنده عملاً با HTML Templates و CSS کار می‎کنه.

اما مسأله‎ای که وجود داره اینه که برای نوشتن JavaScript داخل Angular، شما از خودِ JavaScript استفاده نمی‎کنید. بلکه از یه زبانی به اسم TypeScript استفاده می‎کنید.
خالق و توسعه‎دهندۀ تایپ‎اسکریپت، مایکروسافت هست. این زبان یه سری امکانات بیشتر و پیشرفته‎تری رو به جاوا اسکریپت اضافه کرده تا جاوا اسکریپت رو هر چه بیشتر به زبان‎هایی مثل C# و Java و امثالهم نزدیک کنه.

اما در نهایت کدهایی که با تایپ‎اسکریپت نوشته میشن توسط یه مترجم مبدأ به مبدأ (Transpiler) به جاوا اسکریپت برگردونده میشن. چون مرورگر در نهایت فقط جاوا اسکریپت رو می‎شناسه، ولاغیر.
مثل React، با Angular هم امکان توسعۀ اپلیکیشن‎های موبایل وجود داره. با وجود ابزارهایی مثل Ionic و NativeScript این امکان به راحتی برای توسعه‎دهنده‎ها فراهم شده.
یکی دیگه از مزیت‎های Angular، استفاده از الگوی Observableها به جای Promiseها هست. الگویی که نه تنها می‎تونه در کدنویسی Asynchronous کمک‎های بزرگی رو به توسعه‎دهنده داشته باشه، بلکه می‎تونه بهترین گزینه برای کنترل کردن Data Streamها باشه.
برای این کار Angular از کتابخونۀ قدرتمند RxJS استفاده می‎کنه.
البته که امکان استفاده از این الگو در React و Vue هم وجود داره؛ ولی در Angular، از این الگو به صورت رسمی استفاده شده و در مستندات اون استفاده از این الگو پیشنهاد اکید شده.

ویژگی‎های کلیدی Vue:

اگه بتونم یه تعریف سطحی برای Vue داشته باشم، اینه که Vue ترکیبی از Angular و React هست. یه چیزی فی ما بین هست!

هم یه سری از ویژگی‎های خوب Angular رو داره و هم یه سری از ویژگی‎های خوب دیگۀ React رو داره.
ولی یه جوری اومده این ویژگی‎ها رو با هم ترکیب کرده، که کاملاً با هم هماهنگ هستن. بنابراین بهترین مزیت‎های React و Angular رو در خودش جا داده. دقیقاً مثل Angular و React، خیلی معروف و محبوبه. حتی میشه گفت هر روز داره معروف‎تر و محبوب‎تر هم میشه.
شرکت‎های بزرگ و کوچیک ازش استفاده می‎کنن، ولی خب میزان استفاده ازش مثل Angular و React نیست.

بر خلاف React یا Angular، هیچ شرکت بزرگی پشتیبان این فریم‎ورک نیست و خب عادیه که هر شرکت بزرگی در استفاده از این فریم‎ورک تردید باشه. چون نسبت به به روز بودن و توسعۀ همیشگیش، اطمینان نداره.

مثل Angular، برای Vue از لفظ فریم‎ورک استفاده می‎کنیم. ولی این فریم‎ورک به اندازۀ Angular بزرگ نیست؛ در نتیجه امکانات کمتری رو نسبت به Angular درون خودش داره.

مجدداً مثل React و Angular، نحوۀ توسعۀ Frontend مبتنی بر Component هست. همچنین امکاناتی مثل Routing و State Management هم توسط تیم اصلی توسعه‎دهندۀ Vue برای این فریم‎ورک فراهم شده.

اما به عنوان مثال، بر خلاف Angular، هیچ پکیج یا بستۀ رسمی‎ای برای اعتبارسنجی فرم‎ها نداره.
نحوۀ کدنویسی در Vue مبتنی بر ترکیبی از بهترین ایده‎های Angular و React هست. مثل Angular، از APIهای بومی و اصلی وب برای توسعه استفاده می‎کنیم. یعنی از HTML Templates و CSS استفاده می‎کنیم.در عین حال، انتخاب اینکه بخش جاوا اسکریپتی چطوری نوشته بشه، کاملاً در اختیار توسعه‎دهنده‎ست. توسعه‎دهنده می‎تونه تصمیم بگیره که جاوا اسکریپت بنویسه یا تایپ‎اسکریپت.
ضمن اینکه تمامی کدهای HTML و CSS و JS مربوط به یک Component در یک فایل نوشته میشن؛ چیزی که با سلیقۀ اکثر توسعه‎دهنده‎ها سازگار بوده و طبق نظرسنجی‎ها اکثر توسعه‎دهنده‎هایی که سمت Vue رفتن، جذبش شدن.
بزرگترین ایرادی که از سمت جامعۀ توسعه‎دهنده‎ها و شرکت‎های بزرگ به Vue گرفته میشه، این هست که این فریم‎ورک بر خلاف Angular یا React، پشتیبانی و حمایت یه شرکت بزرگ رو به دنبال خودش نداره. خالق این فریم‎ورک شخصی به اسم Evan You بوده، که سابقاً در گوگل مشغول به کار بوده و الان هم این فریم‎ورک توسط Evan You و تیمش داره توسعه داده میشه. این تیم داره به مرور زمان بزرگتر هم میشه.
البته اخیراً فریم‎ورک معروف Laravel هم که مبتنی بر PHP هست، و از اون به عنوان یکی از محبوب‎ترین فریم‎ورک‎های استفاده شده سمت Backend یاد میشه، حامی توسعۀ این فریم‎ورک شده.
بنابراین میشه گفت آیندۀ خوبی در انتظار Vue هست.
مثل Angular و React، امکان استفاده از Vue برای توسعۀ اپلیکیشن‎های موبایلی در قالب Ionic و NativeScript وجود داره.

با کدوم راحت‎تر می‎تونیم توسعۀ سمت Frontend رو شروع کنیم؟ یاد گرفتن کدوم یک از این فریم‎ورک‎ها ساده‎تره؟

شروع کار با React ساده‎ست ولی به مرور زمان ممکنه یاد گرفتنش نیازمند زمان بیشتری باشه.

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

به همین خاطر نحوۀ نوشتار (Syntax) مربوط به JSX ممکنه اوایل یادگیری و استفاده، مقداری عجیب به نظر برسه.

اینکه همۀ قسمت‎های یه اپلیکیشن (HTML و CSS و JS) رو با JavaScript بنویسید، اون اوایل ممکنه این حس رو بهتون تلقین کنه که دارید اشتباه می‎کنید.

ولی با React خیلی راحت میتونید یه پروژه رو شروع کنید. خیلی راحت می‎تونید توی اپلیکیشن‎هایی که از قبل نوشتید، React رو بیارید و ازش استفاده کنید.

نیازی به آماده کردن یه چهارچوب پیچیده برای شروع کار ندارید.

اما اگه تصمیم بگیرید که یه SPA نسبتاً بزرگ رو توسعه بدین، مجبورین خیلی از امکاناتی که مدنظر دارید رو به صورت دستی از جاهای مختلف بگیرید و داخل پروژه‎تون بیارید.

شروع کار با Angular نسبتاً پیچیده‎ست. لازم هست که TypeScript رو یاد بگیرید، ولی از اونجایی که از لحاظ نوشتاری شباهت TypeScript به JS زیاده، بنابراین خیلی جای نگرانی وجود نداره.

ضمن اینکه HTML و CSS رو به همون شکلی که یاد گرفتید، می‎تونید داخل Angular استفاده کنید و هیچ مشکلی هم نخواهید داشت.

تموم امکاناتی که مدنظر دارید تا بتونید یه SPA تمام عیار بسازید رو خودِ فریم‎ورک در اختیارتون گذاشته.

اما میشه گفت Angular به مرور زمان، به مراتب پیچیده‎تر هم میشه و یاد گرفتن بعضی از مباحثش (مثل Dependency Injection و امثالهم) ممکنه به مراتب زمان بیشتری رو ازتون بگیره.

بر خلاف React شروع یه پروژه با Angular به مراتب پیچیده‎تر هست. اینطور نیست که هر جایی که خواستید از Angular استفاده کنید.

Angular چهارچوب خاص و پیچیدۀ خودش رو داره و آماده کردن ساختار اولیه‎ش علاوه بر زمان‎بر بودن، الزامیه.

البته برای راحتی کار، تیم Angular، یک CLI رو در اختیار توسعه‎دهنده‎ها گذاشتن. اما استفاده از این CLI اختیاری نیست؛ بلکه برای شروع کار تقریباً میشه گفت الزامی هست.

این CLI برای React هم وجود داره. ولی برای React حکم ساده‎تر کردن کار رو داره. در صورتی که در Angular، وجود CLI به نوعی میشه گفت ضروری هست.

شروع کار با Vue بسیار ساده‎ست. از همون دانش HTML و CSSـی که دارید، میتونید داخل Vue استفاده کنید. می‎تونید از Vue هر جایی که خواستید به راحتی استفاده کنید.

حتی اگه اپلیکیشنی رو قبلاً نوشتید که از Vue استفاده نکرده، این امکان رو دارید که از Vue داخلش استفاده کنید.

نحوۀ نوشتار کدهای Vue به راحتی قابل درک و فهمه و امکاناتی که توسط تیم توسعه‎دهندۀ اصلی در اختیارتون گذاشته شده، برای توسعۀ اپلیکیشن‎های نسبتاً بزرگ کافیه.

اگرچه شاید برای اپلیکیشن‎های بزرگ‎تر مجبور باشید از کتابخونه‎ها و افزونه‎هایی که خارج از تیم اصلی توسعه داده شدند استفاده کنید.

مثل Angular و React، فریم‎ورک Vue هم یک CLI داره که کارو به مراتب ساده‎تر می‎کنه و شروع یک پروژه رو سریع‎تر می‎کنه.

کدوم فریم‎ورک محبوب‎تر و معروف‎تره؟

نمودار زیر، تعداد دانلودهای هر کدوم از این فریم‎ورک‎ها رو در NPM نشون میده:

https://npmcharts.com/compare/react,@angular/core,vue,angular?&periodLength=30

البته که تعداد دانلودهای یه فریم‎ورک تعیین‎کنندۀ میزان محبوبیت یا معروفیت اون نیست. ولی قصد دارم از همه زاویه‎ای این مسأله رو ملاحظه کرده باشیم.

همونطور که در نمودار بالا مشاهده می‎کنید، در 30 روز گذشته، بیشترین میزان دانلود رو با اختلاف قابل توجهی نسبت به بقیۀ گزینه‎ها، React داشته.

اما همونطور که می‎بینید، من توی اون نمودار، علاوه بر Angular، یه گزینۀ دیگه رو هم داخل مقایسه آوردم و اون @angular/core هست.

دلیلم برای این کار، این بود که Angular بر خلاف React یا Vue دانلود پکیج‎های NPM رو Cache می‎کنه.

در نتیجه اون دانلودها داخل این نمودارها نمایش داده نشدند و در واقع حجم زیادی از دانلودهای Angular در این نمودار مشخص نیست.

به همین خاطر @angular/core رو هم داخل این مقایسه آوردم که ببینید اگرچه Angular پایین‎ترین میزان دانلود از NPM رو داشته؛ ولی پکیج زیرمجموعۀ Angular، بعد از React، بیشترین دانلود رو از NPM داشته.

همچنین باید در نظر بگیریم که این نمودار شامل تعداد دانلودهای فریم‎ورک Angular.js نمیشه و فقط تعداد دانلودهای فریم‎ورک Angular (نسخۀ 2 به بعد) رو شامل میشه.

بنابراین میشه گفت بعد از React، بیشترین دانلودها برای Angular انجام شده و جایگاه بعدی رو هم Vue گرفته.

البته باید در نظر داشت که Vue فریم‎ورکی هست که هنوز اوایل کارش هست و نسبت به 2 گزینۀ دیگه، فریم‎ورک جدیدتری محسوب میشه.

وقتی به تعداد ستاره‎های صفحۀ گیت‎هاب هر کدوم از این فریم‎ورک‎ها مراجعه کنیم،

می‎بینیم که React تا این لحظه حدوداً 110.000 ستاره داره؛

Angular حدوداً 40.000 ستاره داره؛

Angular.js حدوداً 60.000 ستاره داره؛

و بالاخره Vue که حدوداً 112500 ستاره داره.

اگرچه مجدداً عرض می‎کنم؛ تعداد ستاره‎های گیت‎هابِ یک فریم‎ورک، نمی‎تونه به صورت واضح بیانگر مسألۀ خاصی باشه. فقط میزان علاقۀ کاربرهای گیت‎هاب به اون فریم‎ورک یا کتابخونه رو نشون میده.

اخیراً Vue از این جنبه، با کسب بیشترین تعداد ستاره، از این نظر جایگاه محبوب‎ترین فریم‎ورک رو از آنِ خودش کرده.

کدوم فریم‎ورک یا کتابخونه عملکرد بهتری داره؟

اگه به سایت زیر مراجعه کنیم، می‎تونیم نتایج Benchmark هر کدوم از این فریم‎ورک‎ها رو ببینیم و مقایسه کنیم:

https://rawgit.com/krausest/js-framework-benchmark/master/webdriver-ts-results/table.html

طبق نتایجی که از Benchmark مذکور گرفته شد، بهترین عملکرد رو Angular نسخۀ 6 - Optimized داشته؛ Vue در ردۀ دوم قرار گرفته و React در ردۀ سوم از نظر Performance قرار گرفته.

اما اختلاف این نتایج در حدی نیست که بشه یه فریم‎ورک یا Library رو نسبت به اون یکی برتر دونست. این Benchmark و این تست‎های به خصوص، این نتایج رو ارائه کردن.

اختلاف زمانی در حدی کم هست، که میشه تقریباً این اختلافات رو نادیده گرفت و تقریباً Performance هر 3 رو یکسان برشمرد؛

البته بسته به پروژۀ شما ممکنه یه فریم‎ورک نسبت به یه فریم‎ورک یا کتابخونۀ دیگه عملکرد بهتری داشته باشه. پس لزوماً این نتایج نمی‎تونه حرف آخر رو بزنه؛

چرا که انتخاب فریم‎ورک یا کتابخونۀ مناسب، در بهینه‎بودن عملکرد اپلیکیشن تأثیر زیادی داره. اینکه این انتخاب چطوری باید به وجود بیاد، صرفاً بر حسب تجربه‎ست.

باید با هر کدوم از این فریم‎ورک‎ها و کتابخونه‎ها، به صورت مجزا حداقل 2 پروژه کار کرده باشید،

تا بتونید مزایا و معایب هر کدوم رو نسبت به اون یکی برای یک پروژۀ خاص متوجه بشید و در نهایت بتونید انتخاب بهتری داشته باشید.

یک مورد دیگه‎ای که باید بهش اشاره کنیم، زمان Bootup اسکریپت‎ها هست. یکی از مواردی هست که Angular در اون نسبت به Vue و React ضعیف‎تر هست.

دلیلش اینه که Angular به مراتب از لحاظ ساختاری بزرگتر و سنگین‎تر هست، بنابراین این نتیجه کاملاً عادی هست.

اگرچه در Angular نسخۀ 7 شاهد کاهش چشمگیر این زمان خواهیم بود، چرا که Renderer اون تغییر و به مراتب بهبود پیدا می‎کنه.

خب حالا کدوم بهتره؟

نکته‎ای که تا الان با توجه به توضیحاتی که دادم، باید متوجهش شده باشید، اینه که واقعاً بین این 3 برندۀ واقعی‎ای وجود نداره.

با هر کدوم می‎تونید اپلیکیشن‎های مشابهی رو بسازید؛ اینطور نیست که بگیم این از اون بهتره یا اون از این بهتره.

ممکنه از نظر ما، بر حسب تجربه، یکی از این فریم‎ورک‎ها یا کتابخونه‎ها برای یه کار خاص، مناسب‎تر به نظر برسه. ولی اینکه با قطعیت در مورد خوب یا بد بودنش نظر بدیم، غیر منطقیه.

هر کدوم روش کار و فلسفۀ خاص خودشون رو برای ایجاد یه اپلیکیشن دارن.

همین دیگه امیدوارم مفید واقع بشه براتون:)