PHP ،Python یا Ruby: کدام‌ یک را برای توسعهٔ وب اپلیکیشن خود انتخاب کنیم؟

PHP ،Python یا Ruby: کدام‌ یک را برای توسعهٔ وب اپلیکیشن خود انتخاب کنیم؟

وقتی صحبت از زبان‌های سمت سرور برای توسعهٔ وب به میان می‌آید، دولوپرهای تازه‌کاری بر سر چندراهی قرار می‌گیرند که چه زبانی را برای توسعهٔ پروژهٔ خود انتخاب کنند: دانت‌نت، جاوا، پرل، روبی، پایتون، پی‌اچ‌پی و یا دیگر زبان‌ها و پلتفرم‌های توسعهٔ وب. آنچه در این پست قصد داریم مورد بررسی قرار دهیم، پارامترهایی است که بر آن اساس می‌توان یکی از زبان‌های سمت سرور اپن‌سورس PHP ،Python یا Ruby را برای توسعهٔ یک سایت داینامیک مورد استفاده قرار داد.

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

PHP: معروف‌ترین زبان توسعهٔ وب
PHP یک زبان اصطلاحاً اسکریپتینگ است که توسط Rasmus Lerdorf در سال ۱۹۹۵ به منظور طراحی صفحات وب داینامیک (پویا) و تعاملی طراحی شده است (جهت شروع یادگیری این زبان، به دورهٔ آموزش PHP در سکان آکادمی مراجعه نمایید). برخی از مهم‌ترین مزایای زبان PHP عبارتند از:
- اپن‌سورس و رایگان
- یادگیری آسان
- جامعهٔ کاربران و دولوپرهای گسترده
- پشتیبانی از دیتابیس‌های مختلف
- قابلیت ادغام با زبان HTML 
- دارای تعداد اکستنشن‌های بیشمار
- پشتیبانی در بسیاری از وب‌سرورها همچون آپاچی
- قابل‌اجرا روی هر پلتفرم و سیستم‌عاملی
- دارای فریمورک‌های بسیاری من‌جمله لاراول، زند و غیره 
- توسعهٔ معروف‌ترین سی‌ام‌اس‌های دنیا من‌جمله وردپرس، جوملا و دروپال با این زبان

در کنار مزایایی که این زبان دارا است، PHP یکسری نقاط ضعف هم دارد که برخی از مهم‌ترین آنها عبارتند از:
- عدم کاربرد برای اپلیکیشن‌های دسکتاپ
- ارور هندلینگ تقریباً ضعیف
- امنیت کمتر نسبت به سایر زبان‌ها
- برخورداری از فانکشن‌هایی با عملکرد تقریباً مشابه
- عدم استفاده از نامگذاری فانکشن‌ها از روالی یکسان 
- ابتدا به ساکن شیٔ‌گرا نبوده و به مرور زمان فیچرهای OOP به آن افزوده شده

Python: یک زبان برنامه‌نویسی همه‌منظوره
Python یک زبان سطح‌ بالا و همه‌منظوره است که توسط Guido van Rossum در سال ۱۹۹۱ طراحی شده است. قوانین سخت‌گیرانهٔ سینتکسی این زبان منجر به ایجاد سورس‌کدی خوانا و قابل‌فهم می‌شود. همچنین با استفاده از پایتون هم می‌توان به صورت شیٔ‌گرا و هم فانکشنال کدنویسی نمود. برخی از مهم‌ترین مزایای زبان پایتون عبارتند از:
- اپن‌سورس و رایگان
- یادگیری آسان و سریع
- شباهت زیاد سینتکس این زبان به زبان انگلیسی
- قابل‌اجرا در پلتفرم‌ها و سیستم‌عامل‌های مختلف
- سینتکس منظم و قابل‌فهم
- کامیونیتی فعال و گسترده
- همه‌منظوره
- دارای پکیج‌ها و ماژول‌های بسیار زیاد

در عین حال، یکسری نقاط ضعف هم برای این زبان برشمرده می‌شود که برخی از مهم‌ترین آنها عبارتند از:
- عدم برخورداری از ساختار switch
- عدم برخورداری از اپراتور ? 

Ruby: زبانی کاملأ شیٔ‌گرا
Ruby یک زبان شیٔ‌گرا و اپن‌سورس است که توسط یک دولوپر ژاپنی به نام Yukihiro Matsumoto در سال ۱۹۹۵ با هدف ساده‌تر کردن فرایند کدنویسی برای دولوپرها طراحی شده است (البته برخی اعتقاد دارند که یادگیری این زبان کمی سخت است). وقتی پای روبی برای توسعهٔ اپلیکیشن‌های تحت وب به میان می‌آید، می‌بایست یادی از فریمورک محبوب این زبان یعنی Ruby on Rails هم بکنیم (این فریمورک محبوب توسط David Heinemeier Hansson طراحی شده است). برخی از مهم‌ترین ویژگی‌های این زبان عبارتند از:
- اپن‌سورس و رایگان
- قابل‌اجرا روی پلتفرم‌های مختلف
- قابلیت ادغام با زبان HTML 
- زبانی بسیار سطح بالا
- کاملاً OOP
- قابلیت طراحی اپلیکیشن‌های اینترپرایز و بزرگ 
- سینتکس تمیز و قابل‌فهم
- امکان طراحی اپلیکیشن‌های اصطلاحاً Multi-threaded
- امکان نوشتن لایبرری‌های اکسترنال با خود این زبان یا زبان C 
- دارای فریمورک قدرتمند روبی آن ریلز (که از اختراع مجدد چرخ توسط دولوپرها جلوگیری می‌کند)
- برخورداری از لایبرری‌هایی کاربردی تحت عنوان Gem 

به عنوان برخی از نقاط ضعف این زبان هم می‌توان به موارد زیر اشاره کرد:
- یادگیری سخت این زبان نسبت به سایر زبان‌ها
- منابع یادگیری محدود در وب فارسی
- ارائهٔ پج‌ها و آپدیت‌های کمتر این زبان نسبت به دیگر زبان‌ها

حال در ادامه قصد داریم برخی از مهم‌ترین معیارهایی که در انتخاب یکی از زبان‌های فوق‌الذکر می‌بایست مد نظر داشته باشیم را مورد بررسی قرار دهیم.

وب‌سایت‌های توسعه یافته با این زبان‌ها
از جمله وب‌سایت‌های معروفی که با زبان PHP نوشته شده‌اند می‌توان به ویکیپدیا و بخش‌هایی از فیسبوک اشاره کرد (البته لازم به ذکر است که کمپانی فیسبوک زبانی تحت عنوان Hack را بر پایهٔ PHP طراحی کرده و امروزه بیشتر از استفاده می‌کند). موتور جستجوی گوگل و یوتیوب هم جزو سایت‌های معروفی هستند که با Python نوشته شده‌اند و از جمله وب‌سایت‌های طراحی شده با زبان Ruby هم می‌توان به توییتر و گروپان اشاره کرد. 

سهم بازار
سهم بازار هر زبان برنامه‌نویسی به نوعی نشانگر میزان محبوبیت آن زبان در میان شرکت‌های نرم‌افزاری و دولوپرها است. بر اساس داده‌های سایت W3Techs،‌ زبان پی‌اچ‌پی با ۸۳ درصد بیشترین سهم بازار را به خود اختصاص داده است؛‌ زبان روبی ۰/۵ درصد و پس از آن پایتون ۰/۲ درصد را به خود اختصاص داده است.

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

میزان محبوبیت
اگر آمار وب‌سایت‌های طراحی شده با این زبان‌ها را مبنا قرار دهیم، بدون شک زبان پی‌اچ‌پی معروف‌ترین زبان این لیست است اما بر اساس سایت TIOBE که میزان محبوبیت زبان‌های برنامه‌نویسی مختلف را از دید دولوپرها بررسی می‌کند، در این تاریخ (۲۰۱۷) زبان پایتون در جایگاه چهارم، زبان پی‌اچ‌پی در جایگاه هشتم و زبان روبی در جایگاه سیزدهم قرار دارد.

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

فرصت‌های شغلی
باتوجه به میزان محبوبت زبان PHP مسلماً فرصت‌های شغلی بیشتری هم برای این زبان نسبت به Python و Ruby وجود دارد اما در عین حال این مسأله ممکن است در برخی موارد حقوق دولوپرهای این زبان را نیست به زبان‌های پایتون و روبی پایین آورد. 

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

فریمورک‌های عرضه شده به بازار
در میان این سه زبان، بیشترین تعداد فریمورک کاربردی با جامعهٔ توسعه‌دهندگان زیاد را زبان پی‌اچ‌پی دارا است که از جملهٔ معروف‌ترین آنها می‌توان به Symfony ،Laravel و Zend اشاره کرد (برای آشنایی بیشتر با فریمورک‌های زبان پی‌اچ‌پی، به مقالهٔ معرفی فریمورک‌های مختلف زبان برنامه‌نویسی PHP مراجعه نمایید).

معروف‌ترین فریمورک تحت وب برای زبان پایتون هم Django است (در تلفظ Django، حرف D خوانده نمی‌شود). معروف‌ترین فریمورک زبان روبی -Ruby on Rails- هم نیاز به معرفی ندارد چرا که به عقیدهٔ برخی دولوپرها، بیشترین محبوبت زبان روبی به خاطر این فریمورک است!

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