PHP یا Node.js؟

 

PHP vs Node

در این مطلب قصد داریم تا بعضی از ویژگی های Node.js و PHP رو که باعث میشه اونها رو دوس داشته باشیم بررسی کنیم. ببینید هدف این نیست که بگیم کدوم یکی بهتر از اون یکیه! چون واقعا هیچکس نمیتونه در این مورد نظر کلی بده. ما هم قصد نداریم این کارو بکنیم. فقط نگاهی کلی داریم به اون دسته از ویژگی‌های اونا که باعث میشن توسعه دهنده‌ها توی انتخاب زبان سرورسایدشون دچار سرگیجه بشن:

نقطه قوت PHP:‌ ترکیب کد با محتوا

خب من می‌خوام کمی متن به صفحه‌ی وبم اضافه کنم، یا یه ساختار if else رو بر اساس اون چیزی که از url دریافت می‌کنم مابین کدهام قرار بدم. یا شاید بخوام اطلاعاتی که از پایگاه داده می‌گیرم رو با یه سری نوشته‌های دیگه ترکیب کنم. تگ PHP رو باز کنین و کدنویسی رو در عرض چند ثانیه شروع کنین! نیازی هم به template خاصی نیست چون اینجا هر چیزی میتونه یه template باشه. نیازی به فایل‌های اضافی یا معماری‌های مشقت بار نیست، فقط کافیه سر انگشتاتون با منطق برنامه نویسی آشنا باشن.

نقطه قوت Node.js: جدا سازی مسائل

ترکیب کد با متن و محتوا گاهی وقتها میتونه عصای دستتون باشه. مطمئنا برای بار اول و دوم جالبه که بتونین کدهای HTML رو با PHP ترکیب کنین. اما خیلی زود کد شما از نظر منطقی به شکل افتضاحی در میاد. برنامه نویسان واقعی به برنامه شون ساختار اضافه می‌کنن و لایه ی دیزاین رو از لایه‌ی منطق تفکیک می‌کنن. این برای برنامه نویس‌های تازه کار یه نعمته که کدهای تمیز ببینن و به آسونی اونا رو درک کنن. فریم ورک‌هایی که روی node.js اجرا میشن توسط برنامه نویسایی ساخته شدن که، میدونن زندگی وقتی بهتر میشه که مدل ، ویو و کنترلر‌ها از هم جدا باشن. البته PHP هم فریمورک‌هایی داره که این کار و انجام میدن و نمیشه گفت این نقطه قوت فقط مختص node.js هست!

نقطه قوت PHP: ریشه‌ی قویتر

وب پر از کدهای PHP هستش. اکثر پلتفرم‌های پرطرفدار ساخت وبسایت‌ها با PHP نوشته شدن. مثل وردپرس یا جوملا و دروپال. حالا به اینا اضافه کنید این همه پلاگین رنگارنگی که واسشون نوشتن رو! کدهای PHP همه جا هستن و فقط کافیه دانلودشون کنین، تغییرشون بدین و بر حسب نیازهاتون ازشون استفاده کنین.

نقطه قوت Node.js: کد جدیدتر = ویژگی‌های مدرن‌تر

خب قبوله، هزاران فایل اوپن سورس PHP وجود دارن. اما نکته ی بامزه‌ش اینجاس که من پلاگین‌هایی از وردپرس رو می‌شناسم که هشت سالشون شده و هنوز امیدوارن و در واقع التماس می‌کنن که تو رو خدا یکی منو دانلود کنه! چه کسی دوس داره ساعتها و روزها و هفته‌ها وقتش و با کدی تلف کنه که بعد از این همه سال هنوز به روز نشده؟ پلاگین‌های Node.js نه تنها جدیدترن، بلکه با دانش کامل از آخرین دیدگاهها و دستاوردهای معماری نرم‌افزاری ساخته شدن. اونها بوسیله برنامه نویسایی ساخته شدن که به این درک رسیدن که اپلیکیشن‌های وب مدرن باید هوشمندی بیشتری رو به کاربر از خودشون نشون بدن. به بیان ساده تر: خیلی خفن هستن!

نقطه قوت PHP: (نوعی از) سادگی

PHP چیز زیادی لازم نداره. چند تا متغیر و تابع (نکته: هنوز کسی معادل فارسی مناسبی واسه function پیدا نکرده؟!) برای کار با رشته‌ها و اعداد کافیه. در واقع میشه گفت سنگین‌ترین کاری که PHP انجام میده انتقال اطلاعات از پورت ۸۰ به دیتابیس و بالعکسه. این همون چیزیه که از PHP انتظار میره. PHP مقدار درست و صحیحی از پیچیدگی رو داره و کاری رو که پیچیده نیست، پیچیده ترش نمیکنه!

نقطه قوت Node.js: ترکیب Closureها و بیشتر

برای دونستن در مورد closure ها اینجا رو ببینید.
جاوااسکریپت ممکنه یه سری خصوصیاتی داشته باشه که دیوانه کننده به نظر برسه، اما بیشتر این خصوصیات باعث میشن جاوااسکریپت یه زبان مدرن باشه که از گرامر و سینتکس مدرنی و ویژگی‌های مفیدی مثل Closure ها پشتیبانی می‌کنه. شما میتونین اون رو پیکربندی کنید و به راحتی توسعه بدین، کتابخونه‌های قدرتمندی مثل جی‌کوئری باهاش بسازین و توابع رو مثل آبجکت‌ها پاس بدین. پس چرا باید خودتونو محدود کنین؟

نقطه قوت PHP: هیچ اپلیکیشن کلاینتی نیاز نیست

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

نقطه قوت Node.js: فراخوانی سرویس‌ها حجم کمتری از فراخوانی‌های سنگین PHP بر پایه‌ی HTML دارن

از اونجایی که اپلیکیشن‌های وب HTML5 که با ajax کار میکنن میتونن قسمت‌های متحرک زیادی داشته باشن، خیلی با حال و کاربردی هستن. تا وقتی کد جاوااسکریپت توی کَش مرورگر هست، تنها چیزی که توی سیم‌ها در حال جابجایی هست داده‌های جدید هست. دیگه خبری از یه تُن کد HTML نیست و دیگه لازم نیست صفحه رو مدام رفرش کنیم تا چیزای جدیدی ببینیم. فقط داده‌ها هستن که دارن عوض میشن. اگه میخواین یک اپلیکیشن تحت وب جذاب بسازین بهترین انتخاب جاوااسکریپته. Node.js ساخته شده تا فقط و فقط داده‌ها رو انتقال بده. اگه اپلیکیشن شما پیچیده و پر از داده‌ه است، Node.js یه ساختار خوب برای تحویل سریع داده ها داره.

نقطه قوت PHP: SQL

PHP و MySQL همیشه با هم هستن و اگه هم MySQL در دسترس نباشه، پایگاه داده‌های مبتنی بر SQL دیگه از طرف اوراکل و مایکروسافت هم هستن که میشه خیلی راحت با یه خرده تغییر توی کوئری‌ها بین اونا سوییچ کرد. دنیای بزرگ SQL محدود به مرز نیست و بسیاری از پروژه‌های بزرگ از دیتابیس های SQL استفاده می‌کنن. شاید بهترینِ بهترین‌ها نباشه، اما کارای بزرگی ازش برمیاد.

نقطه قوت Node.js: JSON

اگه مجبورین که با SQL در ارتباط باشین، Node.js هم کتابخونه‌هایی برای این کار داره. اما Node.js از JSON که در حد یه زبان بین‌المللی هست استفاده می‌کنه که میتونه با خیلی از پایگاه داده های NoSQL صحبت کنه. البته معنیش این نیست که شما نمیتونین از کتابخونه‌های کار با JSON توی PHP استفاد کنین، اما استفاده از JSON توی جاوااسکریپت با توجه به این که ساختارشون یکیه راحت تره. همین باعث میشه کلی از وقتتون رو صرفه جویی کنین.

نقطه قوت PHP: سرعت کدنویسی

برای خیلی از توسعه دهنده‌ها، نوشتن اپلیکیشن با PHP سریع‌تر به نظر میرسه. کامپایلر خاصی نیاز نیست، فایل JAR نیاز نداریم و قرار نیست از preprecessor ها استفاده کنیم. فقط ادیتور مورد علاقتون رو باز می‌کنین و یه تعداد فایل PHP رو توی دایرکتوری خودتون قرار میدین.

نقطه قوت Node.js: سرعت اولیه

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

برنامه نویس خوب کسیه که بتونه توی هر پلتفرمی برنامه‌ی خوب بنویسه و سرعت خودش و اپلیکیشنی که میسازه براش قابل قبول باشه و اگر هم نیاز شد بتونه بین پلتفرم‌های مختلف سوییچ کنه و کاراشو پیش ببره. پس درگیر این نباشین که چی بهتر و سریعتره، آستین‌ها رو بالا بزنین و شروع به نوشتن کنید!

 

مطالب مرتبط

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *