مقایسه Angular و React

محمدامین سعیدی راد
1400/03/31
127
مقایسه Angular و React

انگولار بهتر است یا ری اکت؟

angular یا react کدام بهتر است؟ اگه شما تو حوزه طراحی و برنامه نویسی وب فعالیت داشته باشین، قطعا اسم تکنولوژی هایی مثل react و angular رو حداقل یه بار شنیدین. اگه سایت های مختلف در حوزه آگهی های استخدامی مثل جابینجا رو بررسی کرده باشین، قطعا دیدین که اکثر آگهی های استخدامی در حوزه برنامه نویسی مهارت تو یکی از تکنولوژی های react و angular رو از شما می خوان.

اما خیلی از دوستانی که وارد این حوزه میشن و اسم همچین تکنولوژی هایی به گوششون میخوره، تو انتخاب یکی از این دو سردرگم میشن و نمیدونن کدوم رو انتخاب کنن. واسه همین ممکن هست دنبال مشورت با افراد مختلف برن.

فرض کنید یکی از این افراد مختلف مشاوره غلطی ارائه بده و برنامه نویس عزیز به اشتباه یکی از این تکنولوژی ها (angular یا react ) رو انتخاب کنه و بعد از مدتی که کلی هزینه و زمان صرف کرده، متوجه میشه مسیری که اومده اشتباهه و این موضوع یکی از فاجعه بار ترین و شایع ترین مشکلات تو حوزه برنامه نویسی هست.

اموزش ریکت

از کسی نپرسین که کدوم بهتره انگولار بهتر است یا ری اکت؟ !

اگه خیلی خلاصه بخوام بهتون بگم، انتخاب فریمورک های جاوااسکریپت فقط و فقط به سلیقه و علاقه شما بستگی داره.
اگه یه مثال بزنیم، این سوال شما مثل این میمونه که از یکی بپرسین چه غذایی خوبه؟
خب قطعا هر شخص بنا به علاقه و سلیقه ای که داره، به یه غذای خاصی علاقه داره.
ممکنه از افراد مختلفی بپرسین چه غذایی خوبه؟
یکی میگه برنج. یکی میگه کوبیده. یکی میگه ماکارونی و ….
شما میخواین با سلیقه بقیه مردم پیش برید؟!
اگه یه موقع علاقه شما با اونا یکی نبود چی؟
یا مثلا در مورد رنگ ها.
ممکنه از چند نفر بپرسین چه رنگی خوبه؟
یکی بگه سبز. یکی بگه قرمز و …
چون سلیقه ای هست.
مثل ریاضی نیست که همه بگن 2+2 میشه 4.
برای انتخاب فریمورک ها فقط و فقط باید به علاقه خودتون نگاه کنید!! و بنا به معیار ها و علاقه خودتون یکیشون رو انتخاب کنین.
بیشتر اوقات سعی کنین این سوالات رو از هر کسی نپرسین. چون ممکنه تو یه گروهی بپرسین “کدوم فریمورک خوبه یاد بگیرم؟” و یه نفر از روی ناآگاهی یا تعصبی که داره مثلا بگه ریکت، یا بگه ویو یا انگیولار
و شما هم بنا به حرف ایشون میرید مثلا سمت ریکت
کلی هزینه میکنین، کلی وقت میذارین و تهش میبینین شما اصلا به ریکت علاقه ندارین و اصلا ریکت با علاقه های شما سازگار نیست.
پس هر موقع خواستین همچین سوالی بپرسین، حتما حتما معیارهاتون رو بیان کنین.
شاید براتون سوال باشه که منظور از معیار چیه؟
خب بریم سراغ قسمت بعدی …

چه معیارایی واسه انتخاب react یا angular مناسب هستن؟

شاید اولین باری هست که تو حوزه برنامه نویسی کلمه “معیار” رو میشنوین. یه مثال براتون میزنم که براتون قابل درک تر باشه.

کلمه “معیار های ازدواج” رو قطعا شنیدین. مثلا واسه یه شخص معیار قد برای ازدواج مهمه، واسه یه شخص تحصیلات مهمه، واسه یکی ممکن هست وزن مهم باشه و … .

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

تو حوزه برنامه نویسی واسه انتخاب زبان برنامه نویسی، فریمورک، لایبرری و … باید بنا به معیار هاتون عمل کنین و یکی از اونا رو انتخاب کنین.

مثلا یه نفر ممکنه براش بازار کار مهم باشه، واسه یه نفر محبوبیت اون تکنولوژی مهم باشه، واسه یکی آسون بودن، واسه یه نفر دیگه سرعت توسعه و …

اینا چند مورد از معیار هایی هستن که شما می تونین از بین تکنولوژی های موجود بنا به این معیار ها یکیش رو انتخاب کنین.

تو قسمت های بعدی مقاله angular یا react رو با این معیار ها مقایسه می کنیم.

angular یا react کدومش بهتره؟

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

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

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

پس سعی کنین تا جایی که امکان داره همچین سوال هایی رو مطرح نکنین.

توضیح مختصر در مورد React

react یکی از لایبرری (کتابخونه) های جاوا اسکریپت هست که توسط فیسبوک ارائه شده.

کتابخونه ریکت اول واسه استفاده داخل خود فیسبوک ساخته شد ولی تو سال 2013 به عنوان یه کتابخونه متن باز واسه استفاده مردم ارائه شد.

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

طبق گفته داکیومنت خود ریکت، ریکت یه کتابخونه واسه ساختن UI (رابط کاربری) وب سایت هست.

وقتی شما از ریکت استفاده می کنین، دیگه هیچ خبری از هیچ فایل html نیست و کل وب سایت رو تو فایل هایی با فرمت Js توسعه میدین.

ممکنه براتون سوال باشه که همچین چیزی چطور ممکنه! ریکت از یه سینتکسی به نام JSX استفاده می کنه که مخفف Java Script XML هست.

شما تمام کد های Html که واسه سکشن های مختلف سایتتون نیاز دارین، داخل فایل های Js می نویسین.

همین موضوع استفاده از Jsx، ریکت رو واسه دوستانی که تازه شروعش کردن براشون سخت به نظر برسه.

ولی همین که سینتکس JSX و XML رو درک کرده باشین و با سیستم ماژولار آشنایی داشته باشین، هیچ سختی در کار نیست.

آدرس داکیومنت ریکت وب سایت reactjs.org هست که می تونین واسه اطلاعات بیشتر و آشنایی بیشتر با ریکت بهش مراجعه کنین.

به نظرم همین قدر توضیح برای معرفی ریکت کافیه و ادامه توضیحات رو تو قسمت مقایسه ریکت با انگولار ادامه میدیم.

توضیح مختصر در مورد Angular

Angular (با تلفظ انگیولار) یکی از فریمورک های قدرتمند جاوا اسکریپت هست که تو سال 2010 توسط شرکت Google ارائه شد.

فریمورک انگولار هم مثل بقیه فریمورک ها و لایبرری های رقیب خودش برای توسعه قسمت فرانت اند وب سایت مورد استفاده قرار میگیره.

آدرس داکیومنت Angular وب سایت angular.io هست که می تونین واسه اطلاعات بیشتر و آشنایی بیشتر با Angular بهش مراجعه کنین.

به نظرم همین قدر توضیح برای معرفی Angular کافیه و ادامه توضیحات رو تو قسمت مقایسه ریکت با انگولار ادامه میدیم.

تفاوت های بین React و Angular

قصد دارم این قسمت رو به جای توضیح متنی، به صورت عکس توضیح بدم تا هم مطالب براتون خشک و متنی نباشن و هم این که تا این جای مقاله خستگیتون در بره.

دو تا تصویر زیر نقاط قوت و ضعف ریکت و Angular رو به خوبی نشون میده. بهشون توجه کنین:

انگولار بهتر است یا ری اکت؟ مقایسه angular و react

انگولار بهتر است یا ری اکت؟ مقایسه angular و react

همه تفاوت هایی که تو این تصاویر بررسی شدن، تفاوت های فنی ریکت و انگولار بود.

تو قسمت های بعدی این دو تکنولوژی قدرتمند رو با معیار های غیر فنی هم مقایسه می کنیم.

مقایسه از لحاظ بازار کار

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

از سایت های معتبر ایرانی که تو این حوزه فعالیت می کنن میشه به سایت های جابینجا و کوئرا اشاره کرد.

به عکس زیر توجه کنین:

انگولار بهتر است یا ری اکت؟ مقایسه angular و react

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

در حالی که با توجه با توجه به تصویر زیر:

انگولار بهتر است یا ری اکت؟ مقایسه angular و react

فریمورک angular فقط 127 تا آگهی برای استخدام داره. یعنی ریکت 2 برابر بیشتر از angular تو بازار کار جا داره.

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

محبوبیت و جامعه آماری کدومش بیشتره؟

اگه بخوایم به همون معیار قبلی (معیار بازار کار) اکتفا کنیم، قطعا میشه گفت وقتی ریکت بازار کار خوبی داره، پس جامعه آماری و محبوبیت بیشتری هم داره.

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

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

قطعا هممون سایت استک اور فلو رو قبول داریم. اگه به آمار استک اور فلو توجه کنیم: با توجه به عکس زیر React محبوبیت  و جامعه آماری زیادی نسبت به Angular داره:

انگولار بهتر است یا ری اکت؟ مقایسه angular و react

بله …

همون طور که تو این عکس هم مشاهده می کنین، ریکت از محبوبیت و جامعه آماری بیشتری نسبت به Angular برخوردار هست. ممکن هست براتون سوال باشه که منظور از جامعه آماری چیه؟!

منظور از جامعه آماری تعداد میانگین و تقریبی فعال تو یه حوزه هست. به عنوان مثال وقتی میگیم جامعه آماری ریکت از انگولار بیشتره، منظور این هست که تعداد توسعه دهندگان ریکت بیشتر از تعداد توسعه دهندگان انگولار هست.

اگه معیار شما جامعه آماری، تعداد توسعه دهندگان و محبوبیت باشه، قطعا بهتون ریکت رو پیشنهاد می کنم.

حالا ممکنه براتون سوال باشه که خب محبوبیت یا جامعه آماری بالا به چه دردمون میخوره؟

حتی ممکنه براتون سوال باشه که وقتی جامعه آماری بالا باشه، پیدا کردن کار و استخدام شدن سخت تر هم میشه!!

حالا بریم این دو تا ابهام رو هم برطرف کنیم.

خب اولش سوال اول (رابطه جامعه آماری و معیار خوب) رو بررسی می کنیم. واسه جواب دادن به این سوال یه خاطره از خاطرات تلخ (یا شیرین) از خودم تعریف می کنم.

تقریبا 2 سال پیش یکی از فریمورک هایی رو انتخاب کرده بودم که جامعه آماری پایینی داشت. وقتی داخل فریمورک ذکر شده به یه مشکلی برمیخوردم، واقعا منبع یا شخصی نبود سوالم رو بپرسم و مشکلم رو برطرف کنم. دقیقا همین موضوع سرعت یادگیری و همچنین انگیزه من رو پایین آورده بود.

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

ولی اگه جامعه آماری پایین باشه، بلایی که سر خودم اومده بود سر شما میاد. (البته بعدا اون فریمورک رو گذاشتم کنار – اسم فریمورک رو از عمد تو مقاله نگفتم تا فکر نکنین هدفم تخریب اون فریمورک هست)

حالا بریم سراغ سوال بعدی (سخت شدن فعالیت در بازار کار در صورت بالا بودن جامعه آماری).

اگه در رابطه با برنامه نویسی تو دنیای مجازی فعالیت خوبی داشته باشین، قطعا اطلاع دارین که برنامه نویسا تو سطح های مختلفی وجود دارن، از کارآموز تا سنیور و فول استک و خیلی از برنامه نویسا تو سطح های خیلی پایینی وجود دارن. قصد دارم جواب این سوال رو خیلی کوتاه و خلاصه بهتون بگم. اینطوری بگم که اگه شما تو یه فریمورک تخصص و مهارت کافی و خوبی داشته باشین، همیشه میتونین بهترین موقعیت های شغلی رو به خودتون اختصاص بدین. پس پیشنهاد می کنم به جای درگیر شدن با حاشیه و خوب یا بد بودن یه تکنولوژی، فقط و فقط به فکر تقویت تخصص و مهارت خودتون باشین (اینطوری بهتون قول میدم که از لحاظ بازار کار هیچ مشکلی نخواهید داشت).

پس بنا به جامعه آماری و محبوبیت، باز هم خیلی شیک و مجلسی امتیاز این مرحله رو هم به ریکت اختصاص میدیم.

react یا angular بر اساس سرچ گوگل

این قسمت رو می تونیم ادامه همون جامعه آماری و محبوبیت بدونیم.

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

انگولار بهتر است یا ری اکت؟ مقایسه angular و react

همون طور که میبینین بر اساس آنالیز دقیقی که از سرچ های گوگل به دست اومده، کاملا واضح هست که بیشتر موضوع هایی که تو این زمینه سرچ میشه به ریکت مربوط هست.

تو این مرحله خیلی عمیق و کامل به محبوبیت بالای ریکت پی بردیم.

کدومش آسون تره؟ react یا angular؟

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

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

واسه این معیار قطعا نمیشه جواب قطعی داد (چون ممکنه هر کدومش واسه افراد مختلف آسون یا سخت باشه) اما بنا به برخی شواهد موجود میشه نظر تقریبا درستی ارائه داد.

ریکت از سینتکس JSX استفاده می کنه و دقیقا همین موضوع باعث اذیت شدن برنامه نویسای ریکت هنگام یادگیری میشه.

فریمورک انگولار هم بر اساس تایپ اسکریپت نوشته شده و شما واسه یادگیری Angular باید تایپ اسکریپت رو هم بلد باشین و دقیقا مثل JSX همین موضوع هم تو Angular صدق می کنه و ممکن هست برنامه نویسایی که به تازگی قصد ورود به همچین تکنولوژی هایی رو دارن، ابتدای کار یکم اذیت بشن.

اما اگه بخوام نظر شخصی خودم رو بگم اینطوری مطرح می کنم که اگه شما به تکنولوژی انتخابیتون واقعا علاقه داشته باشین و همچنین جاوا اسکریپت رو به خوبی بلد باشین، هم Angular و هم React رو میتونین تو مدت زمان معقولی بدون هیچ مشکلی یاد بگیرین.

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

سخن پایانی

تو این مقاله سعی کردیم در مورد انتخاب react یا angular صحبت کنیم که یکی از مشکلات دوستانی هست که بعد از جاوا اسکریپت میخوان یکی از تکنولوژی های جاوا اسکریپت رو انتخاب کنن ولی از اون جایی که جاوا اسکریپت کتابخونه و فریمورک های زیادی داره، سردرگم میشن.

علاوه بر این که تو همین مقاله گفته شد، باز هم تاکید می کنم خوب یا بد بودن بین فریمورک ها و لایبرری های جاوا اسکریپت وجود نداره و شما فقط و فقط باید بنا به علاقه و معیار های خودتون یکی از اونا رو انتخاب کنین و هیچ وقت از هیچ کسی نپرسین که “تو کدوم یکی رو پیشنهاد می کنی؟!”

اموزش ریکت

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

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

تا مقاله بعدی خدا یار و نگهدارتون.

محمد امین سعیدی راد

نظرات

ثبت نظر جدید
stuofalzahra | کاربر
1402/11/29

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

محمدامین سعیدی راد | مدرس
1402/11/30

🙏❤️

dmtbax | کاربر
1402/10/21

بنظرم برای شروع ری اکت خوبه
بعدش حالا بخایم موقعیت های شغلی بهتر داشته باشیم هم دانشتن انگولار هم خالی از لطف نیست !

محمدامین سعیدی راد | مدرس
1402/10/22

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

اتفاقا بازار کار ری‌اکت نسبت به انگیولار خیلی بهتره و اگه ری‌اکت کار بکنین اصلا نیازی به انگیولار ندارین.