تفاوت فریم ورک های جاوا جان اسکریپت!
سلام،
دلم میخواست اینجا که سه فریم ورک معروف و بزرگ دنیای جاوا اسکریپت و وب رو بیایم باهم مقایسه کنیم.
ولی از چه جنبهای؟
اول از همه دوست دارم در مورد ویژگیهای کلیدی هر کدوم از این فریمورکها بنویسم. به هر حال باید بدونیم که قراره با چی کار کنیم؟ اصلاً دوس داریم باهاش کار کنیم یا نه؟
بعد در مورد محبوبیت هر کدوم از این فریمورکها قراره بنویسم. چون به هر حال، محبوبیت یا معروف بودن
هر فریمورک، تأثیر مستقیمی روی میزان فرصتهای شغلیای که اون فریمورک ایجاد میکنه داره.
علاوه بر این، میتونیم بهتر بفهمیم دنیای وب و برنامهنویساش دارن به کدوم سمت میرن؟ و بعد هم قراره در مورد عملکرد هر کدوم از این فریمورکها صحبت داشته باشیم. ببینیم کدوم بهتر عمل میکنن؟
اصلاً بهتری وجود داره یا نه؟
ویژگیهای کلیدی 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 برندۀ واقعیای وجود نداره.
با هر کدوم میتونید اپلیکیشنهای مشابهی رو بسازید؛ اینطور نیست که بگیم این از اون بهتره یا اون از این بهتره.
ممکنه از نظر ما، بر حسب تجربه، یکی از این فریمورکها یا کتابخونهها برای یه کار خاص، مناسبتر به نظر برسه. ولی اینکه با قطعیت در مورد خوب یا بد بودنش نظر بدیم، غیر منطقیه.
هر کدوم روش کار و فلسفۀ خاص خودشون رو برای ایجاد یه اپلیکیشن دارن.
همین دیگه امیدوارم مفید واقع بشه براتون:)
مطلبی دیگر از این انتشارات
? نظرسنجی وضعیت توسعهدهندگان Front-end ایرانی
مطلبی دیگر از این انتشارات
راهنمای کامل State management در فریمورک انگولار
مطلبی دیگر از این انتشارات
چه سایت هایی با ریاکت یا ویو یا انگولار نوشته شدن؟