Node.js
یک محیط توسعۀ بکاند بر پایهٔ زبان JS
است و همچنین زبان برنامهنویسی اپنسورس Go
نیز به سرعت در میان دولوپرها به عنوان یک زبان ساده، کاربردی و قابلاعتماد جای خود را باز کرده است. در جامعۀ دولوپرها، بر سر انتخاب یکی از این دو (Node.js
و Golang
) اختلافنظرهای بسیاری وجود دارد.برای ارائه نظر باید اول این زبان روبشناسیم.
دیدگاه کاربران وبسایت Quora
در مورد سوال امروز :
عملکرد ضعیف Node.js
تمام دولوپرهایی که هم از گو و هم از نودجیاس استفاده کردهاند روی این موضوع اتفاقنظر دارند که در برنامههای توسعه داده شده با نودجیاس، عملکرد پردازنده کُند بوده و تَسکهای مرتبط با حافظه در آن با سرعت کمتری انجام میشوند.
نودجیاس مبتنی بر زبان مفسری JS
(جاوااسکریپت) است و در آن برنامهها برای اجرا کامپایل نمیشوند بلکه خطبهخط تفسیر میشوند. سرعت زبانهایی که برنامهها در آن تفسیر میشوند اندکی از زبانهای برنامهنویسی کامپایلری کمتر است؛ همچنین ماهیت پویای این زبان موجب میشود که کارایی آن بسیار کمتر از کارایی زبان گو باشد و این در حالی است که عملکرد زبان Go
مشابه C
یا ++C
است (C
نیز یک زبان کامپایلری است.) همچنین به یاد داشته باشیم تنها در مواردی که توسعه دنده قصد برنامهنویسی برای ارتباطات بین شبکه یا تعامل با دیتابیس را داشته باشد، نودجیاس میتواند همچون گو عمل کند.
کانکارنت و مقیاسپذیر بودن زبان GO
یکی دیگر از نکات مثبت زبان گو نسبت به نودجیاس کانکارنت و مقیاسپذیر بودن آن است که باعث میشود این زبان عملکردی بهتر در مقایسه با اکثر زبانهای برنامهنویسی مدرن داشته باشد و این در حالی است که نودجیاس از چنین قابلیتی بهره مند نیست.
به علاوه اینکه زبان گو به علت دارا بودن قابلیتی تحت عنوان Goroutines
، مقیاسپذیر است. این قابلیت باعث میشود تا در حین اجرای برنامۀ نوشته شده با این زبان، چندین Thread
به صورت همزمان اجرا شود؛ به عبارت دیگر، تَسکها به صورت موازی اجرا خواهند شد که اجرای تَسکها به این صورت بسیار کارآمد و قابلاعتماد است و این در حالی است که نودجیاس برنامهها را با یک Thread اجرا میکند و دستورالعملها در آن به ترتیب اجرا میشوند که همین مسئله باعث میشود که توانایی این محیط توسعه برای مقیاسهای بزرگ و زمانی که نیاز است تا فرآیندها به صورت موازی و در یک زمان اجرا شوند، محدود شود.
تکامل زبان GO
زبان گو به نسبت مدت کوتاهی که از عرضهٔ آن میگذرد، زبانی بسیار قوی و بالغ است و این در حالی است که تغییر API
در نودجیاس مشکلات فراوانی را برای دولوپرهایی که در این محیط کدنویسی میکنند و از ماژولهای آن استفاده میکنند، به وجود میآورد.
البته موارد گفته شده به این معنی نیست که Node js
به این زودی ها بازار و برنامه نویس های خود رو از دست میدهد و به فراموشی سپرده میشود،بلکه طبق آمار stackoveflow survey در سال ۲۰۲۱، Node js
دارای محبوبیت ۳۳/۹۱ درصدی و مقام ششم را دربین برنامه نویس ها داراست، این در حالیست که GO
دارای محبوبیت ۹/۵۵ درصدی و مقام چهاردهم را داراست که البته با توجه به جوان بودن این زبان(نسبت به زبان هایی مثل PHP
, C
) امری طبیعی هست و نمیتوان منکر این امر شد که برنامه نویسان هنوز به شکل قابل توجهی (مانند دیگر زبان های کامپایلری) از این زبان استفاده نمیکنند.
سخن پایانی
میتوان گفت که برای دولوپرها زبان گو انتخاب عاقلانهتری به نظر میرسد.البته نمیتوان منکراصل مطلب که بازار کار هست هم شد،چرا که Node js
بازار کار بسیار گسترده تری نسبت GOlang
را داراست.