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

در این قسمت بیشتر می خواهیم زبان برنامه نویسی 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- قسمت سوم

 

node js چیست php بهتر است یا node js آشنایی با node js برنامه نویسی no پلت فرم node js پلت فرم نود جی اس زبان برنامه نویسی node js ساخت وب اپلیکیشن فریم ورک نود جی اس معماری non blocking در جاوا اسکریپت مقایسه ی node و php نود جی اس چیست
مطالب مرتبط

آن را هیروگلیف (hieroglyph) زمانه ما می‌دانند. نمادها و سمبل‌های کوچکی که نوعی خط تصویری هستند. سمبل‌هایی ظاهرا قابل فهم برای همگان. اما درک مردم از اموجی‌ها در همه جا یکسان نیست. حرفه جدیدی راه‌اندازی شده. حرف مترجمی برای خط تصویری اموجی (Emoji). رد اموجی ‌را که بگیریم به ژاپن می‌رسیم. اول بار آنجا باب […]

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

گوگل یک پیش نمایش از “اندروید اشیاء” یا همان Android things برای برنامه نویسان ارائه کرد- سیستم عاملی مبتنی بر اندروید برای دستگاه های هوشمند و محصولاتی که از اینترنت اشیاء (IOT) استفاده می کنند. سیستم عامل اندرویدی اینترنت اشیاء به این منظور طراحی شده است که ساخت وسایل هوشمند برای برنامه نویسان آسان تر شود، […]

فیس‌بوک به رغم واکنش اولیه مبنی بر بی‌طرفی‌اش نسبت به خبرهای منتشر شده در این شبکه اجتماعی، به درخواست‌های گسترده عمومی تن داد و اعلام کرد خبرهای جعلی را به کمک گزارش‌های کاربران و سرویس‌های درستی‌سنجی مهار خواهد کرد. بزرگ‌ترین شبکه اجتماعی جهان زیر فشار انتقادات گسترده عمومی اعلام کرد که از همین حالا کار […]

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

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

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