آیا React به زندگی Angular پایان خواهد داد؟

14 خرداد 1398

آیا Angular به روزهای پایانی عمر خود رسیده است؟

همانطور که میدانید کتابخانه بسیار محبوب و جاوا اسکریپتی React در چند سال اخیر سر و صدای زیادی به پا کرده است. از طرفی اکثر کسب و کارهای امروزی و جدید در حال حرکت به سمت React هستند و خود به خود این سوال را در ذهن ما ایجاد می کنند: «آیا Angular به روزهای پایانی خود رسیده است؟» این سوال برای ما توسعه دهندگان از اهمیت دو چندانی برخوردار است چرا که ما را بر سر دوراهی ری اکت یا انگولار قرار می دهد! کدام را انتخاب کنیم؟ آینده شغلی مان چه می شود؟

از زمانی که Facebook لایسنس کتابخانه React را به MIT تغییر داد، همه جا پر از react شده است! لایسنس یا گواهی MIT اینطور تعریف می شود:

The MIT License is a permissive free software license originating at the Massachusetts Institute of Technology. As a permissive license, it puts only very limited restriction on reuse and has, therefore, an excellent license compatibility. source:Wikipedia

ترجمه ی این عبارت در ویکی پدیا به این شکل است:

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

این ترجمه کمی ثقیل است؛ مفهوم ساده تر آن این است که MIT یک لایسنس تقریبا رایگان است که محدودیت های بسیار کمی را برای استفاده کنندگان آن قرار میدهد. محبوبیت این کتابخانه در حال حاضر سر به فلک گذاشته و نشانی هم از توقفش دیده نمی شود اما چیزی که اکثر صاحبان کسب و کار تازه وارد نمیدانند این است که react یک سیستم کامل front-end نیست بلکه یک کتابخانه از صدها کتابخانه ی موجود است که به شما کمک می کند تا برنامه/سایت خود را بر اساس طرح کامپوننت محور و بهینه ای بسازید.

دعوای بین angular و react - ری اکت یا انگولار؟

Facebook همیشه گذشته ی پر از موفقیت خود را با خود به همراه دارد بنابراین جای تعجبی ندارد که کتابخانه اش نیز معروف و محبوب شود اما نباید فراموش کرد که کتابخانه ی react تنها یک قطره از دریای وسیعی از تکنولوژی های مختلف است که غول های تکنولوژی دنیا به کار گرفته اند. react تنها یک کتابخانه ی UI است اما Angular مجموعه ای از کتابخانه هاست که همراه با هم و منظم به صورت یک واحد کامل همکاری می کنند.

Angular به راحتی از پس برخی از کارهایی برمی آید که React توانایی انجام آن ها را ندارد و از طرفی پیاده سازی تئوری React بسیار قوی تر از Angular است؛ حداقل این طرز فکر شایع بین برنامه نویسان و توسعه دهندگان دنیای وب است. بنابراین هر دوی آنها بسیار قوی هستند و واقعا نیازی به دعوا ندارند! به طور مثال اگر چه React بسیار محبوب شده است اما Angular هم هنوز از سمت غول بزرگی به نام گوگل پشتیبانی می شود. تیم های پشتیبانی هر دو (react و angular)، کنفرانس هایی که برایشان برگذار می شود، سخنرانان و طرفداران هر کدام نظرات بسیار خوبی دارند اما در این هیاهو و سر و صدای دعوا بین طرفداران Angular و React نفر سومی به آرامی وارد میدان شده که بین این دو قرار گرفته است اما حواس هیچکس به آن نیست!

باید در مورد Vue حرف بزنیم

داده های دریافتی از Google Trend - رنگ قرمز = Angular - رنگ آبی = React - رنگ زرد = Vue
داده های دریافتی از Google Trend - رنگ قرمز = Angular - رنگ آبی = React - رنگ زرد = Vue

Vue جدیدترین عضو این خانواده ی شلوغ و پر سر و صداست و دارد به آرامی خودش را به React و Angular می رساند؛ با اینکه هنوز جامعه ی آن بسیار کوچک تر از React و Angular است اما در حال رشد با سرعت قابل توجهی می باشد چرا که بسیار سبک است و یادگیری و استفاده از آن به سختی Angular نیست و از حالت ساده ی React (قابلیت های core) قابلیت های بیشتری دارد.

جالب است بدانید که سازنده ی Vue جزو تیم توسعه دهندگان AngularJS در گوگل بوده است که بعدها از پروژه جدا می شود اما نسخه ی امروزی آن بسیار بیشتر به React شباهت دارد تا به Angular!

سختی و آسانی!

همه می دانند که یادگیری و استفاده از React آنقدرها هم سخت نیست و هر کسی می تواند به سادگی آن را فرا بگیرد و با آن برنامه های mobile friendly نیز بسازد. این کتابخانه در بین تازه کاران نیز بسیار محبوب شده است. از طرفی یادگیری و کار با Angular کمی سخت تر است و برای آشنایی کامل با آن واقعا به زمان نیاز دارید چرا که گوگل در طراحی آن از Java الهام گرفته است (جاوا عموما یک زبان back-end محسوب می شود که پایه ی تمام زیر ساخت های کمپانی گوگل است) اما فیسبوک بر اساس PHP نوشته شده است. بنابراین یادگیری و کار با آن برای ما توسعه دهندگان راحت تر است.

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

به طور مثال Netflix (غول بزرگ دنیای Streaming) از React  و کمپانی عظیم PayPal از Angular استفاده می کند. آیا این دو کمپانی با این سابقه و متخصصین خود نمیدانند که کدام بهتر است؟ هر کدام از این دو کمپانی بر اساس نیازهای خود از این کتابخانه ها استفاده کرده است که خود ثابت می کند هیچ نوع برتری کلی بین آن ها وجود ندارد و انتخاب کتابخانه ی برتر بر اساس شرایط کاری شما معنا پیدا می کند.

شاید بپرسید آیا سایت معروفی وجود دارد که از Vue استفاده کند؟ جواب مثبت است. یکی از وب سایت های مطرح برنامه نویسی یعنی GitLab‌ از سال 2016 از Vue استفاده می کند. با کلیک روی لینک نام این وب سایت به مقاله ای برده می شوید که به شما توضیح می دهد چرا آن ها Vue را انتخاب کرده اند. همچنین وب سایت های زیر از Vue استفاده می کنند:

  • وب سایت بسیار معروف 9gag (بازدید این وب سایت در جولای 2018 در حدود 164.63 میلیون نفر بوده است)
  • وب سایت کمپانی بزرگ کنسول های بازی Nintendo (با 37.92 میلیون بازدیدکننده در جولای 2018)
  • وب سایت بسیار معروف Font Awesome (با 11.48 میلیون بازدیدکننده در جولای 2018)
  • وب سایت محبوب ترین فریم ورک PHP در دنیا به نام Laravel (با 7.91 میلیون بازدیدکننده در جولای 2018)
  • و بسیاری از سایت های دیگر...

دنبال ابزار راه حل باشید!

چیزی که توسعه دهندگان امروزی باید بپرسند این است: کدام یک به درد پروژه ی من می خورد؟ اگر به دنبال توسعه ی سریع و بدون هزینه های اضافی هستید احتمالا react به دردتان می خورد، اگر می خواهید توسعه ی قوی تر و پروارتری داشته باشید تا از امکانات بیشتری استفاده کنید احتمالا Angular گزینه ی مناسبی است. زمانی که می گوییم کدام فریم ورک گلچینی از قسمت های خوب هر دوی این کتابخانه ها است، فریاد هوادارن Vue بلند می شود، چرا که همیشه این ادعا را داشته اند!

همچنین Angular در حال گذران روز های آخر خود نیست:

تعداد جست و جو در گوگل - داده های دریافتی از Google Trend - رنگ قرمز = Angular - رنگ آبی = React
تعداد جست و جو در گوگل - داده های دریافتی از Google Trend - رنگ قرمز = Angular - رنگ آبی = React

Angular هنوز هم در حال تاختن است تنها مسئله این است که در سر و صدای بلند React دیگر خبری از آن شنیده نمی شود اما بر اساس آمار جست و جو های نام این دو در گوگل میبینید که Angular در حال مرگ نیست. همچنین پس از مرگ AngularJS و معرفی Angular 2 تمام توسعه دهندگانی که از آن استفاده می کردند مجبور شدند همه چیز را دوباره یاد بگیرند بنابراین Angular مجبور شد جامعه ی خود را دوباره بسازد!

به عنوان یک توسعه دهنده سعی کنید آنچان وابسته به کتابخانه ها و فریم ورک ها نشوید که کدنویسی ساده را از یاد ببرید! این یک خطر است که همیشه در کمین شما نشسته است! سعی کنید بهترین روش های کدنویسی را یاد بگیرید و کدهای تمیز و مرتبی بنویسید تا از همتایانتان جلو بزنید و زمانی وارد دنیای کتابخانه ها شوید که با زبان مورد نظرتان آشنایی کامل را کسب کرده اید!

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

نویسنده شوید
دیدگاه‌های شما (2 دیدگاه)

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

abdolreza
22 شهریور 1399
به عنوان یک توسعه دهنده سعی کنید آنچان وابسته به کتابخانه ها و فریم ورک ها نشوید که کدنویسی ساده را از یاد ببرید! این یک خطر است که همیشه در کمین شما نشسته است! عالی

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

سید میلاد حسینی
23 مهر 1398
امیر دمت گرم مقاله ی جالبی نوشتی, اگه بخوام عادلانه قضاوت کنم از لحاظ ادبیات نوشتاری,عالیترین مقاله ای بود که تا بحال خوندم.

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

امیر زوارمی
26 مهر 1398
سلام دوست عزیز نظر لطف شماست!

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.