یکی از سختترین انتخابها در برنامهنویسی، انتخاب زبان Backend است؛ چرا که با طیف گستردهای از زبانها طرف هستیم:
PHP, NodeJS, Python, ASP, JSP, Ruby on Rails, ...
اما خوشبختانه خبر خوب این است که فعلاً علیالحساب درگیری اصلی بین سه زبان اول یعنی PHP و NodeJS و Python است. (در هر زمانی چند زبان در صدر هستند؛ مثلاً زمان ما دعوا بین PHP و ASP بود؛ که خوب ASP به رحمت خدا رفت)
چرا Python را پیشنهاد نمیکنم؟
به نظر من Python موجی است مانند Delphi و VB و ... که یک روز (که دیر نیست) خواهد خوابید. (۲۰ سال پیش وقتی میگفتند فلانی برنامهنویس است یعنی دلفی بلد بود! حالا برنامهنویسان جدید اسم آن را هم نشنیدهاند)
بزرگترین دلیل مرگ زبانهایی مانند Delphi و VB از نظر من ساختار غیر مبتنی بر C بود. پایتون نیز همان اشتباه را تکرار کرده است. بهخصوص حذف آکولادها {} که به نظر من فقط یک احمق میتواند این کار را انجام دهد! (البته سازنده این زبان تقصیری نداشته، او قرار بود یک زبان ساده برای آموزش برنامهنویسی به دبیرستانیها بسازد که شوخیشوخی جدی شد! و من فکر میکنم به همان صورت هم به ملکوت اعلا خواهد پیوست) شما تصور کنید، در برنامهنویسی دائم پیش میآید که هنگام کپی کردن کدها، تورفتگیها از بین میرود. اگر در یک قطعه کد پایتون چنین اتفاقی بیفتد، شما باید بشینید کل آن کد را از اول مرور کنید و تورفتگیها را خودتان اصلاح کنید! هیچ هوش مصنوعیای نمیتواند به طور ۱۰۰٪ به شما کمک کند!
خلاصه اینکه این Syntax، یک سینتگس حرفهای نیست...

PHP یا NodeJS ؟
حالا چالش اصلی انتخاب بین پی.اچ.پی و نودجیاس است. انتخاب فوقالعاده سختی است؛ چون هر کدام برتریهای وسوسهکنندهای دارند.
مزایای PHP نسبت به NodeJS
- PHP از نظر درک، سادهترین زبان برنامهنویسی دنیا به حساب میآید.
- بزرگترین عیب NodeJS این است که شما چندین جایگزین برای آن دارید که همه ادعا میکنند بهتر از NodeJS هستند! یعنی تا میخواهید نود را یاد بگیرید، میبینید Deno آمد! تا میخواهید دنو را یاد بگیرید میبینید Bun آمد! و این قصه ادامه دارد! اما PHP اینطور نیست! شما یک زبان را یاد میگیرید و بس!
- PHP دارای صدها تابع توکار (Built-in) است که نیاز شما را به کتابخانهها و کدهای دیگران برطرف میکند اما در NodeJS شما برای یک کار ساده (مانند کار با کوکی) باید به کتابخانهها متوسل شوید و برای هر کار دهها کتابخانه وجود دارد که معلوم نیست کدام باگ دارد یا ندارد و کدام حرفهای نوشته شده یا بهینه نیست و خلاصه باید بشینید تکتک همه را تجربه کنید!
- NodeJS بر روی هر هاستی اجرا نمیشود؛ باید هاست مجهز به NodeJS باشد؛ اما PHP تقریباً بر روی همه هاستها بدون نیاز به تغییر خاصی اجرا میشود.
- NodeJS دهها نسخه و آپدیت دارد و تغییرات در هر نسخه تقریباً زیاد است؛ اما PHP اینطور نیست؛ یعنی کدی که ۲۰ سال پیش نوشته بودید تقریباً بدون مشکل روی PHP جدید اجرا میشود و کد جدید شما هم روی نسخههای قدیمی با حداقل تغییرات اجرا خواهد شد.
مزایای NodeJS نسبت به PHP
- بزرگترین مزیت نود این است که در حقیقت این زبان همان زبان JavaScript است که شما از قبل بلد هستید و این یعنی هر چقدر نودجیاس شما قوی شود، در سمت کلاینت، جاوا اسکریپت شما قوی میشود و هر چقدر جاوا اسکریپت خود را قویتر کنید، در سمت سرور نودجیاس شما قویتر میشود. و این واقعاً چیزی است که عقل حکم میکند! یعنی عقل میگوید به جای دو زبان، اگر میشود، یک زبان را تخصصیتر یاد بگیر...
- Node یک زبان Asynchronous (نامتقارن) است و PHP یک زبان Synchronous (متقارن) و این مزیت این زبان را به طور ویژه برای همزمانیهای زیاد عالی میکند. در این مورد در سال ۹۹ در مطلب «دنیای آینده برنامهنویسی وب به سمت Fullstack JS پیش خواهد رفت» توضیح داده بودم.
- مزیت پایانی، Syntax جالب زبان جاوا اسکریپت است؛ به ویژه کاربرد ` (بکتیک) در اطراف رشته که یکی از بزرگترین چالشهای PHP و دیگر زبانها را حل کرده است.
من با اینکه یک PHPکار هستم، اما در پروژه I'm done تلاش کردم که به طور کامل از NodeJS استفاده کنم؛ هر چند با یک پروژه نمیشود تصمیم گرفت، اما من در این سطح نتوانستم با مفاهیم نامتقارن نود.جی.اس کنار بیایم! شاید همان پیشنهاد وبسایتهای مشهور درست باشد: برای تولید CMSها و سامانههای مشابه، بهتر است از PHP استفاده شود و برای تولید سامانههایی مانند شبکههای اجتماعی و... که همزمانی در آنها مهم است، استفاده از NodeJS بهتر به نظر میرسد.
موفق باشید؛
حمید رضا نیرومند

English
العربی
Swedish
François









![[آی.جدول: اسکریپت ایجاد جدول آنلاین]](/img/blocks/ijadval.png)
![[مِلکا: سیستم مدیریت مشاور املاک]](/img/blocks/melka.png)
![[پارسخوان: نرم افزار خوانای متن فارسی]](/img/blocks/parskhan.png)
![[بوکفا ۲: سیستم مدیریت آنلاین کتابخانه]](/img/blocks/bookfa.png)
![[QuranPDF: قرآن پی.دی.اف]](/img/blocks/quran_pdf.png)
![[Robi: روبات روبی]](/img/blocks/robi.png)
![[هیسسس: سیستم هیسگوی خودکار: اولین سختافزار آفتابگردانی]](/img/blocks/hisss.png)
![[آی قصه!: نرم افزاری برای تقویت داستان سرایی کودکان]](/img/blocks/iqesseh.png)
![[دُر: نرمافزار کتابخوان تدریجی]](/img/blocks/dor.png)
![[Fonta: پژوهشی درباره فونت]](/img/blocks/fonta_book.png)
![[چگونه یک تجارت الکترونیک راهاندازی کنم]](/img/blocks/ecommerce_book.png)


علی: