Kaptain Kitty
انتشار :۱۱ اسفند ۱۳۹۳
بازدید :1157 بار

در این قسمت بیشتر می خواهیم زبان برنامه نویسی PHP را بررسی کنیم و ببینیم که غیر از تعربف و تمجید های تکراری که در تمام وبسایت ها شاهد آن هستیم، چه نقاط ضعفی هم دارد.

مقایسه node و php

مقایسه node و php

مقایسه ی PHP + Apache Stack و پلت فرم Node.js

مقایسه ی این دو مانند مقایسه ی سیب و پرتقال است. php زبان قدیمی تری است که در پشت صحنه ی وب سرور با متد  request/response اجرا می شود، در حالی که Node.js یک فریم ورک non-blocking (بدون بلوکه شدن) و event-loop (حلقه ی رویداد ها) می باشد که جاوا اسکریپت را در موتور V8 و با یک وب سرور اختیاری اجرا می کند. حال آیا واقعا این دو مانند مقایسه ی سیب و پرتقال هستند؟ هر دو تکنولوژی برای اجرای صفحات وب در مرورگرها مورد استفاده قرار می گیرند.

هر دوی این محیط ها دارای مزایا و معایبی هستند و نمی توان گفت که به عنوان مثال یکی از آنها زبان بی نقص و ایده آل برای تمام پروژه ها و دیگری زبانی مملو از کاستی است. در این مقاله می خواهیم به نقاط ضعف و قوت آن دو پرداخته و موارد استفاده ی بهتر آنها را در پروژه های مختلف معرفی کنیم. اما چرا به مقایسه ی این دو زبان می پردازیم؟ چون سینتکس هر دوی آنها متاثر از زبان C می باشد.

نقاط قوت PHP

PHP تا کنون پر استفاده ترین زبان برنامه نویسی سمت سرور بوده است. زبانی با قدمت زیاد که سرویس دهندگان سرور های آن همواره خدماتی ارزان و هاستینگ های مشترک ارائه می دهند. برخی از بزرگترین و مرسوم ترین پلتفرم ها یا اپلیکیشن ها از php استفاده می کنند. WordPress، محبوب ترین پلتفرم self-hosted بر پایه ی php می باشد. MediaWiki، Joomla نیز برخی دیگر از اپلیکیشن های self-hosted هستند که از php استفاده می کنند.

برخی از بزرگترین وب سایت هایی که از php استفاده می کنند فیسبوک و ویکی پدیا هستند. PHP از روش های قدیمی شیء گرا استفاده می کند. صدها فریم ورک وب و ملیون ها مستندات مختلف به زبان های گوناگون برای php وجود دارد.

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

PHP کمپانی قدرتمند Zend (که برچسب تجاری آنها “The PHP Company” می باشد) را پشت خود دارد.

نقاط ضعف PHP

PHP برای استفاده های طولانی مدت ساخته نشده است. ممکن است در اینجا برخی با این نظر مخالف کنند و آن را به چالش بکشند اما php به طور پیشفرض به گونه ای ساخته شده است که خود به خود بعد از ۳۰ ثانیه یا رسیدن به حجم مشخصی از حافظه terminate شده یا متوقف می شود. می توان این قابلیت را غیر فعال کرد و اپلیکیشن ها را به گونه ای ساخت که برای مدت های طولانی با موفقیت اجرا شود اما در این زمینه php خیلی موفقیت آمیز عمل نمی کند.

این زبان نمی تواند کد ها را به صورت موازی اجرا کند. شما می توانید با استفاده از ابزاری به نام Gearman برخی از کارها را به عهده ی پردازش های دیگر بگذارید و مراقب پیشرفت کار باشید اما PHP برای این کار ساخته نشده است. Gearman به تنهایی ویژگی های فوق العاده ای را ارائه می دهد که می توان در محیط های دیگر مثل Node.js به کار برد.

وقتی به روز هایی برمیگردیم که URL ها و filesystem ها دارای mapping با مختصات ۱:۱ بودند، منطقی بود که وب سرورهایی داشته باشیم که مجزا از زبانی باشند که اجرا می کنند. اما این روز ها، تمام اپلیکیشن های php که دارای URL های جذابی هستند و در پشت صحنه ی وب سرورهای Apache عمل می کنند، نیاز به یک فایل .htaccess دارند که یک عبارت با قاعده را به سرور اعلام می کنند تا فایل را قبل از ارائه بررسی کند.

روی هم رفته، stack پشتیبانی کننده از php در مقایسه با موارد ساده تری مثل Node، بسیار پیچیده است. یک نفر php را برای تنظیمات global و تنظیمات مخصوص وب سایت نیاز دارد. فردی دیگر php را برای تنظیمات global مربوط به php.ini نیاز دارد که می تواند در زمان اجرای برنامه override شود. چند ویژگی قدیمی و اضافه ی دیگر نیز وجود دارد که باید حذف شود مثل y2k (که در نسخه ی ۵٫۴ حذف شد).

همچنین وبسایت رسمی آن بسیار زشت و قدیمی است. مستندات آن قابل قبول بوده و نکاتی که توسط کاربران نوشته شده است بسیار مفید است البته متد آپدیت کردن مستندات از SVN استفاده کرده و برای کسانی که مستندات را می نویسند خیلی جالب نیست.

مدیریت پکیج اصلا وجود ندارد. البته PEAR را داریم اما استفاده از این ابزار به طور مسخره ای دشوار است. Package manager های دیگری هم پدید آمدند مثل Pyrus (PEAR2) و Pachagist اما کاربرد آنها به قدری پراکنده است که هیچ استاندارد مشخصی برای آن وجود ندارد. PHPClasses.org نیز وجود دارد اما این سایت نیز خیلی کاربردی نداشته و کاربر حتما باید در آن ثبت نام کرده باشد تا بتواند سایت را بررسی کند.

از زمانی که یک فرآیند PHP آغاز می شود، کارهای مختلفی انجام می شود که همان task مورد نظر کاربر اجرا شود اما پس از آن همه چیز از بین می رود، داده ها در حافظه ذخیره نمی شوند. شما می توانید با ابزار های دیگر مانند Memcache یا دیتابیس های قدیمی این داده ها را به صورت دائمی حفظ کنید اما تعداد تبادل اطلاعات با این فرآیند های خارجی بیش از حد خواهد بود.

 

سه قسمت قبلی این مقاله در لینک های زیر قابل دسترس می باشند:

قسمت اول : مقایسه ی زبان های برنامه نویسی PHP و Node.js- قسمت اول

قسمت دوم : مقایسه ی زبان های برنامه نویسی PHP و Node.js- قسمت دوم

قسمت سوم : مقایسه ی زبان های برنامه نویسی PHP و Node.js- قسمت سوم

 

برچسب‌ها, , , , , , , , , , ,

مطالب مرتبط

اشتباه کردن در مسیر فریلنسر شدن بخشی از منحنی یادگیری است. هیچ‌کس یک شبه فریلنسر نمی‌شود و دستۀ جدیدی از مشتریان پول‌ساز را به یکباره نمی‌یابد و باز هیچ‌کس ۱۰۰۰۰ دلار در یک هفته به چنگ نمی‌آورد تا بقیۀ ماه را به خوشگذرانی در ساحل رویایی با شن‌های سفید بگذراند. زمانی که من تازه کارم […]

بیانه لینکدین در روز افتتاح لینکدین لرنینگ: “امروز خوشحالیم تا آغاز فعالیت لینکدین لرنینگ را به عنوان یک پلتفرم یادگیری آنلاین اعلام کنیم  که افراد و سازمان ها را قادر می سازد تا به آمال و اهداف خود دست یابند. هدف ما کمک به افراد برای کشف  و توسعه  مهارت های مورد نیاز آنها ازطریق  یادگیری شخصی […]

نسخه‌ی ۳٫۱۲ تلگرام ساعاتی پیش منتشر شد و در این نسخه نیز همانند ورژن‌های قبلی امکانات جذاب و بسیار کاربردی جدیدی به این برنامه‌ی محبوب اضافه شد. سرنجام بعد از مدتی انتظار نسخه‌ی ۳.۱۲ تلگرام منتشر شد و امکاناتی همچون ساخت تصاویر گیف، ویرایشگر جدید عکس‌ها و امکان اضافه کردن ماسک و استیکر و متن […]

آی‌فون ۷ و ۷ پلاس اپل هفته جاری با چندین امکان جدید ارائه شد. در این مطلب نگاهی می‌اندازیم به مهم‌ترین ویژگی‌های نسل جدید آی‌فون‌ها که در آنها دیگر خبری از جک هدفون نیست؛‌ آغاز عصر فراگیری هدفون‌های بی‌سیم، به حکم اپل. کمپانی اپل به رسم هر ساله سپتامبر امسال هم در مراسم ویژه‌ای طیفی […]

نظراتتان را برایمان بنویسید

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

مطالب ما تو این شبکه های اجتماعی هم پخش میشه