می خواهیم یک وب اپ، که اتفاقا دو سه سالی هم بیشتر نیست که نوشته شده را، ارتقا بدهیم. بخش front با Angular.js نوشته شده و به زعم ما، این مهم ترین قسمت ارتقا است. چون نسخه روز آنگولار که 8 است نسبت به نسخه موجود پروژه ما که v1.6.8 است Backward compatibility ندارد.
فرانت اند در حال حاضر angular.js است وangular 2 خیلی وقت است که منتشر شده. برای این که به روز بمانیم، باید فرانت اند را به روز کنیم. از آنجا که angular 2 با angular.js سازگار نیست، پس خود angular 2 نیاز به یادگیری جدید یا استفاده از developer جدید دارد. پس فرقی ندارد که از angular.js به angular 2 برویم یا از هر فرانت-اند دیگری به جز آنگولار استفاده کنیم. به هر حال باید هزینه سنگین تغییر را بپردازیم.
هم در ایران و هم در دنیا، Angular و React دو فریمورک رایج هستند. به نظر می رسد که هر کدام از این دو تا انتخاب خوبی برای پروژه هستند. آنگولار ساختار قانونمند تری دارد و برای پروژه های بزرگ هم جواب می دهد. React ساختار ساده تری دارد و برای پروژه های خیلی بزرگ مناسب نیست. Angular یادگیری سخت تری دارد و React یادگیری راحت تری دارد. آنگولار استفاده از TypeScript را ترویج می کند در حالی که React با جاوا اسکریپت کار می کند. از آنجا که بیشتر افراد آشنایی مختصری با جاوا اسکریپت دارند، پس با React نیازی به یادگیری زبان جدید TypeScript نیست.
تا اینجا به این نتیجه می رسم که React انتخاب بهتری برای یک سری پروژه خاص است. چون یادگیری آن ساده تر است، زبان برنامه نویسی آن آشنا تر است و ذاتا برای پروژه های کوچک مناسب تر است. اما نکته ای که باید بیشتر راجع به آن بدانیم، بزرگی بازار کار آن است. باید مطمئن شویم در استخدام افراد جدید کمترین مشکل را خواهیم داشت.
در اولین قدم سراغ سرویس کاریابی جابینجا رفتم. اول از همه آگهی هایی را که مستقیما از صفحه اول به آنها دسترسی بود را چک کردم، یعنی استخدام های اخیر، استخدام های فوری و نوار بالای این دو تا. تعداد 9 آگهی مرتبط با front end در این چند قسمت وجود داشت. که از این تعداد، 7 مورد به React.js، 4 مورد به Vuej.js، 2 مورد به Angular 2 و هیچ مورد به Angular.js تعلق داشت. آگهی هایی که بررسی کردم اینها هستند: این، این، این، این، این، این، این، این و این.
در قدم بعدی، از امکان جستجوی سایت استفاده کردم. این بار هم react خیلی بیشتر از angular بود با نسبت 124 به 86. به سایت JobVision سر زدم. اینجا نسبت آگهی های react به آگهی های angular، 22 به 5 بود. اما سایت ایران تلنت یک مقدار متفاوت از بقیه بود. این نسبت در اینجا 39 به 44 بود. در جستجوها، هم react.js بوده و هم react native. اما تعداد react native ها خیلی زیاد نبوده، این را چشمی کنترل کرده ام. حتی اگر بخشی از آگهی ها را مربوط به react native بدانیم، باز هم چون اختلاف دو عدد خیلی زیاد است، می توان تا اندازه ای آن را اغماض کرد. آخرین جستجو را هم در گوگل انجام دادم. عبارت «استخدام react.js» عدد 780000 را برگرداند در حالی که عبارت «استخدام angular» عدد 382000 را برگرداند.
به طور تخمینی می توان گفت که تعداد آگهی های استخدام برنامه نویس react.js دو برابر تعداد آگهی های استخدام برنامه نویس angular است. من با کنار هم گذاشتن این نسبت در کنار راحتی یادگیری و استفاده از react و عدم نیاز آن به TypeScript نتیجه گیری می کنم که در حال حاضر، در آبان 1398، استفاده از react معقول تر است.
به روز رسانی 98/8/24: این لینک حاوی مقایسه مفیدی است.
Comments
سلام دوست خوبم
نظر شخصی من اینه که angular در آینده سهم بیشتری از بازار رو از دست خواهد داد و دو قطبی vue.js و react ایجاد میشه. شاید بگیم react در حالت پیش فرض برای پروژه های خیلی بزرگ مناسب نیست بهتر باشه.
این نمودار رو هم در بازه دو سال اخیر ببینید بد نیست:
https://www.npmtrends.com/angular-vs-react-vs-vue
Author
ضمن عذرخواهی بابت 7 روز تاخیر در جوابگویی، باید عرض کنم که با نظر شما راجع به افول آنگولار و افزایش سهم vue.js موافقم. فک کنم آن backward compatible نبودن angular 2 با نسخه های ماقبل، کار آنگولار را ساخت.
معمولا مقایسههای بین دو تکنولوژی صرفا در حد شناخت دو فریمورک مختلف کمک خواهد کرد. در سایر موارد (سختی یادگیری، نیاز بازار کار، مناسب بودن برای فلان پروژهها و …) چندان کمکحال نخواهد بود. بدلیل اینکه شرایط، پیشزمینهها، نیازها و انگیزهها در افراد مختلف و حتی در برهههای مختلف بسیار مختلف و متضاد است و بهتر و بدتری چندان در کار نیست مگر بررسی مورد به مورد آنها. که البته این مهم در متن هم آمده است. مثلا خودم در یک پروژهی شخصی از Vue.js استفاده کردم. بهصورت جزیرهای و فقط در برخی از صفحات. از نظرم با توجه به زمان کمم یادگیری ویو منطقیتر و دستیافتنیتر بود.
من دوازده سال هستش که دات نت کار میکنم و توی این دوازده سال ، علی رقم این که تکنولوژی های جدیدی مثل دات مت کور ، معرفی شدن ، هیچ وقت احساس نکردم که اطلاعات قبلیم به درد نمیخوره و منسوخ شده ، یکی از دلایلی که از دنیای جاوااسکریپت خیلی بدم میاد ، همین فریم ورک بازی ها هستش .