PHP برای چه نوع پروژه‌هایی مناسب و برای کدام دست پروژه‌ها نامناسب است؟

PHP برای چه نوع پروژه‌هایی مناسب و برای کدام دست پروژه‌ها نامناسب است؟

یک سؤال فراگیر در بین دولوپرهای وب این است کدام زبان برنامه‌نویسی سمت سرور را باید برای Web Development انتخاب کرد؟ برخی دولوپرها زبانی همچون PHP را به خاطر قابل هک بودن، OOP ضعیف و معماری برنامه‌نویسی غیرحرفه‌ای رد می‌کنند اما این در حالی است که برخی عاشق این زبان هستند. در این پست، به این موضوع خواهیم پرداخت که در چه نوع پروژه‌هایی نباید از این زبان برنامه‌نویسی محبوب استفاده کرد و در خاتمه نیز به برخی مزیت‌های این زبان اشاره‌ای خواهد شد.

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

- هنگامی که ما یک اپلیکیشن CLI می‌خواهیم بنویسیم: اپلیکیشن‌های کامندلاینی (CLI)، نرم‌افزارهایی هستند که یک نوع ارتباط متقابل بین کامپیوتر و کاربر با استفاده از دستورات (کامندها) ایجاد می‌کنند. در واقع، این نرم‌افزارها یک ورودی یا دستور یک یا چند کلمه‌ای را با استفاده از کیبورد از کاربر می‌گیرند و با توجه به کدهایی که قبلاً نوشته شده، جوابی در پاسخ به دستورات ورودی می‌دهند.

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

- زمانی که آسان‌ترین راه به نظر می‌رسد: اگر PHP آسان‌ترین زبان در بین زبان‌های دیگر به نظر می‌رسد و چنین مسئله‌ای تنها انگیزهٔ شما برای برنامه‌نویسی است، شما در اشتباه هستید. PHP خیلی زود پیچیده می‌شود و مسلماً زمانی که در ابتدای کار هستید خیلی ساده‌تر از دیگر زبان‌ها به نظر می‌رسد و زمانی که به سطوح پیشرفته‌تر برنامه‌نویسی می‌رسید، سادگی آن به پیچیدگی تبدیل می‌شود.

- زیرا ارائه‌دهندهٔ هاست اشتراکی شما فقط از آن پشتیبانی می‌کند: اگر شما از یک هاست اشتراکی استفاده می‌کنید و از اینکه ارائه‌دهندهٔ هاست شما فقط از PHP پشتیبانی می‌کند خوشحال هستید، پس دست نگاه دارید. ما بسته به نیاز پروژه، باید بهترین زبان برنامه‌نویسی را انتخاب کنیم.

- نرم‌افزارهای ویژهٔ محاسباتی: زمانی که شما با مقدار زیادی معادلات ریاضیاتی، محاسبات سنگین و غیره در نرم‌افزار یا بهتر بگوییم وب اپلیکیشن خود روبه‌رو هستید، گزینه‌های بهتری نیز وجود دارند؛ به ویژه زمانی که نرم‌افزار شما مخصوص این کار درست شده باشد و جنبه‌های دیگر نرم‌افزار برای شما مهم نباشند.

زبان‌های برنامه‌نویسی ویژه‌ای برای کارهای محاسباتی تولید شده‌اند (مانند Scala) که خیلی بهتر از PHP (زبانی که شما باید بیشتر کد بزنید تا نتیجهٔ مطلوب شما را ایجاد کند) عمل می‌کنند. همچنین PHP کندتر از زبان‌هایی که مخصوص این کار تولید شده‌اند عمل می‌کند. بعضی اوقات به نظر می‌رسد که بخش سنگینی از نرم‌افزار به وسیلهٔ PHP خیلی سریع‌تر ایجاد می‌شود؛ اما همیشه برنامه‌نویسانی که خیلی تمایلی به سختی کشیدن ندارند این کار را انجام می‌دهند. 

به طور کلی در چنین شرایطی، می‌توان بخشی‌هایی از وب اپلیکیشن را که نیاز به توسعهٔ سریع دارند با PHP کدنویسی کرد و بخش‌های دیگر را به دیگر زبان‌های تخصصی‌تر واگذار نمود.

- اپلیکیشن‌های دسکتاپ: گرچه لایبرری‌هایی برای توسعهٔ اپلیکیشن‌های دسکتاپ برای زبان PHP عرضه شده‌اند، اما منطقی به نظر نمی‌رسد تا با وجود زبان‌هایی همچون سی‌شارپ، جاوا، سی‌پلاس‌پلاس، پایتون و غیره، برای توسعهٔ اپلیکیشن‌های دسکتاپ از زبان PHP استفاده نمود.

از بین بردن ایماژ منفی در مورد زبان PHP
پیش از هر چیز، به نقل‌قولی از وبلاگ MailChimp در سال 2010 در مورد تکنولوژی‌های مختلف اشاره‌ای می‌کنیم:

این مهم نیست که از چه ابزاری استفاده می‌کنیم، بلکه مهم این است که از یک ابزار خاص چگونه استفاده می‌کنیم.

در سال‌های اخیر، PHP پیشرفت قابل‌توجهی داشته است (به خصوص پس از عرضهٔ نسخهٔ ۷ این زبان) و امکانات خیلی زیادی را در اختیار دولوپرهای این زبان قرار داده و طبق ادعای کامیونیتی توسعه‌دهندهٔ این زبان، نسخهٔ ۷ از زبان پی‌اچ‌پی مصرف مِموری را تا ۵۰٪ کاهش و پرفورمنس را تا ۲ برابر افزایش داده است. در یک کلام، PHP طراحی سریع انواع مختلفی از اپلیکیشن‌های کاربردی تحت وب را امکان‌پذیر می‌کند و این در حالی است که در برخی جنبه‌ها، زبان PHP گوی سبقت را از دیگر زبان‌ها می‌رباید.

PHP یک زبان سریع و قوی در طراحی وب است و باتوجه به اینکه تیم‌های بزرگی مانند فیسبوک، ویکیپدیا و غیره به نوعی از این زبان در توسعهٔ پروژه‌های خود کمک گرفته‌اند، بنابراین منطقی است که PHP را کمی جدی‌تر بگیریم.

حقیقت امر این است که اگر ما فقط بخواهیم نقاط منفی یک زبان را مد نظر قرار دهیم، به هیچ وجه قادر نخواهیم شد تا به نقاط مثبت آن زبان واقف گردیم. لازم به ذکر است که به عقیدهٔ برخی برنامه‌نویسان، «یک زبان واقعی و حرفه‌ای می‌بایست بی‌نیاز از کمک دیگر شرکت‌ها، لایبرری‌ها و فریمورک‌ها باشد!» و این در حالی است که بسیاری از نقاط ضعف زبان PHP (اگر آنها را نقطهٔ ضعف بنامیم)، به واسطهٔ لایبرری‌ها و فریمورک‌های عرضه شده مرتفع گردیده است تا جایی که به گزارش وب‌سایت W3Techs، در حال حاضر -سال ۲۰۱۷- چیزی بیش از ۸۳٪ وب‌سایت‌های دنیا با زبان PHP کدنویسی شده‌اند و PHP به انتخاب اول بسیاری از کسب‌وکارهای نوپا و استارتاپ‌های تحت وب تبدیل شده است.

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

کلام آخر 
فارغ از اینکه یک پروژهٔ تحت وب (وب اپلیکیشن) چه‌قدر پیچیده باشد، زبان PHP می‌تواند انتخاب مناسبی باشد (البته امروزه کمتر دولوپری را می‌توان یافت که بدون کمک گرفتن از یکی از فریمورک‌های محبوب این زبان همچون لاراول اقدام به کدنویسی کند). زبان PHP این قابلیت را دارا است تا به راحتی بتوانید یک ایده را فقط ظرف مدت چند روز به یک اپلیکیشن تحت وب واقعی مبدل سازید و این ادعایی است صرفاً زبان‌های دیگری همچون پایتون می‌تواند داشته باشد.

نکتهٔ دیگری که امروزه به کرات از زبان دولوپرهای دیگر زبان‌های برنامه‌نویسی که خیلی رغبتی به زبان PHP ندارند می‌شنویم، این است که امنیت PHP پایین است! اما این در حالی است که اگر نظر دولوپرهای باتجربه را در مورد این گزاره جویا شویم، خیلی از ایشان بر این باورند که امنیت یک پروژه، بیش از هر چیزی مرتبط با نحوهٔ کدنویسی دولوپر آن پروژه است و ایشان پروژهٔ ویکیپدیا را مثال خواهند زد که روزانه چندین میلیون ویزیتور دارد (البته در میان دولوپرهای برخی از دیگر زبان‌ها همچون روبی، کسانی همچون سمیر رحمانی را می‌توان دید که از مخالفان سرسخت زبان PHP هستند؛ برای آشنایی بیشتر با دیدگاه‌های ایشان، توصیه می‌کنیم به پادکست سمیر رحمانی: برنامه‌نویس ارشد و فعال جامعهٔ اپن‌سورس مراجعه نمایید).

همچنین با پیاده‌سازی رویکرد Defensive Programming، می‌توان این اطمینان را حاصل کرد که پروژه -فارغ از نوع زبان‌ برنامه‌نویسی استفاده شده- از امنیت خوبی برخوردار است (برای آشنایی بیشتر با این موضوع، به مقالهٔ آشنایی با مفهوم Defensive Programming در صنعت توسعهٔ نرم‌افزار مراجعه نمایید).

همچنین پیش از این در مقاله‌ای تحت عنوان PHP ،Python یا Ruby: کدام‌ یک را برای توسعهٔ وب اپلیکیشن خود انتخاب کنیم؟، به مقایسه‌ای مابین نقاط ضعف و قوت زبان‌های برنامه‌نویسی مطرح سمت سرور که برای توسعهٔ وب اپلیکیشن‌های مختلف مورد استفاده قرار می‌گیرند پرداختیم که می‌تواند دید نسبتاً روشنی در مورد نقاط ضعف و قوت زبان‌های مختلف به شما دهد.

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



بهزاد مرادی