به مبارزه بین دو سنگینوزن خوش آمدید. در یک گوشه رینگ PHP رو میبینیم، محبوبترین زبان برنامهنویسی در اینترنت با میلیونها توسعهدهنده که واقعاً خاطرخواه اون هستند و حتی بیشتر از آن گروهی از هوادارانش رو! در سمت دیگه ASP.NET رو میبینیم، یک پلتفرم که پشتش به Microsoft گرمه و در نتیجه امکان استفاده از تمامی زبانهای پشتیبانیشده توسط NET. رو داره.
حالا کدام بهتر است؟ در این مقاله، قصد داریم مقایسهای بین PHP و ASP.NET داشته باشیم و به شما بگوییم کدام یک برای پروژههای شما مناسبتر است. بهتر است برای اینکه پیشزمینهای در مورد هر دو زبان داشته باشید، نگاهی به دورههای آموزشی آنها بیاندازید. (البته شاید در آیندهای نهچندان دور خودم یه فکری به حالش کردم م.)
نگاهی به PHP
PHP خلاصه عبارت Hypertext Preprocessor به معنای «پیشپردازنده ابر متن» است (پیشنهاد میکنم زیاد به معنیش فکر نکنید! م.). PHP بهعنوان یک ابزار برنامهنویسی، به لطف یادگیری ساده و جامعه بزرگ توسعهدهندگانش در همان ابتدا توانست به سرعت در سراسر اینترنت جا باز کند. بر اساس یک برآورد، PHP روی بیش از ۲۴۴ میلیون وبسایت نصب شده است بهاینمعنیکه سرورهای آنها عموماً به طور بالقوه از PHP پشتیبانی میکنند. PHP علاوه بر رایگان بودن توانسته با کمک فریمورکهایی توسعه وب را سادهتر کند.
از تعدادی وبسایتهای بزرگ که با PHP نوشته شدهاند، میتوان به WordPress و Facebook اشاره کرد.
نگاهی به ASP.NET
مایکروسافت ASP.NET را توسعه داد تا ابزار برنامهنویسی سادهای را جهت ساخت صفحهها و برنامههای وب در اختیار توسعهدهندگان وب قرار دهد. این ابزار جایگزینی برای ASP است، پلتفرمی دیگر از مایکروسافت که در اواسط دهه ۹۰ پیشگام بود. شما میتوانید با استفاده از هر زبان دیگری که NET. پشتیبانی میکند، برای ASP.NET کد بنویسید که باعث میشود در بین توسعهدهندگان NET. بسیار محبوب باشد. سلطه مایکروسافت بر بازار مرورگرهای وب که با IE ممکن شده بود نیز نقش بسزایی در افزایش شهرت ASP.NET داشت.
اکنون این سوال به ذهن میرسد: اگر قصد دارید برنامهنویسی وب را شروع کنید، کدام زبان را انتخاب کنید؟
بها
این مورد نیازی به بحث ندارد و کاملاً روشن است- PHP کاملاً رایگان است در حالیکه ASP.NET یک محصول تجاریِ مایکروسافت است. این بدان معناست که برای توسعه با ASP.NET باید هزینههایی را متقبل شوید. برای مثال:
- خریدن ویندوز، چون توسعه ASP.NET تنها روی ماشینِ ویندوزی ممکن است. البته اغلب مردم با این مورد مشکلی ندارند! اگر از Mac یا Linux استفاده میکنید، میتوانید از پروژه Mono برای استفاده از ASP.NET روی ماشین موردنظرتان بهره ببرید.
- برای استفاده از ASP.NET داشتن سرور ویندوزی ضروری است. سرور ویندوز تا چند سال پیش، به میزان قابلتوجهی از وبسرورِ لینوکس گرانتر بود. البته امروزه این مورد چندان درست نیست؛ بهطوری که امروزه قیمت هاستهای ویندوز با بیشتر وبهاستهای لینوکس برابری میکند.
- یک محیط برای توسعه نیاز دارید. محبوبترین IDE (محیط یکپارچهی توسعهی نرمافزار) برای ASP.NET، ابزار نامآشنای Visual Studio است. البته مایکروسافت نسخه رایگانی از آن با عنوان VS Express نیز عرضه کرده است.
در ابتدای امر، نیازی نیست که هزینهی اضافی برای استفاده از ASP.NET بپردازید، اما با کمی پیشرفت به چیزی شبیه به Visual Studio نیاز پیدا خواهید کرد که شما را مجبور به شل کردن سر کیسه و پرداخت چندصد دلاری میکند (البته این مورد برای بازار جهانی صدق میکنه و هنوز توی ایران چندان جا نیوفتاده. م.)
اما در سمت دیگر PHP قرار دارد که کاملاً رایگان است، علاوه بر اجرا روی وبهاست لینوکس بر روی هاست ویندوز و مک نیز اجرا میشود و در آخر اینکه IDE-های رایگان و غیرِرایگان زیادی از آن پشتیبانی میکنند.
برنده این بخش: PHP
مقیاسپذیری (Scalability)
هم PHP و هم ASP.NET از مقیاسپذیری بالایی برخوردارند. Facebook دومین سایت پرترافیک جهان را درنظر بگیرید؛ این وبسایت از پایه با PHP نوشته شده است، درحالیکه MySpace، وب سایتی که گوی رقابت را از Facebook بهعنوان محبوبترین شبکهی اجتماعی در جهان ربود، با ASP.NET نوشته شده است. این امر نشان میدهد که PHP و ASP.NET هردو به میزان بالایی مقیاسپذیرند البته تا زمانیکه برنامهنویسان بدانند چگونه مقیاس برنامههایشان را بسنجند.
برنده این بخش: هردو به یک اندازهکارآیی
کارایی برای بیشتر برنامههای وب، تابعی از تعامل بین اسکریپت، دیتابیس و سرور است. اغلب وبافزارهای نوشته شده با PHP از پشته LAMP پیروی میکند که عبارتند از: Linux (سیستم عامل)، Apache (سرور)، MySQL (پایگاه داده) و PHP (زبان برنامهنویسی). پشتهی LAMP برای توسعهی وب از محبوبیت بسیار زیادی برخوردار است و به همین دلیل بهطور گسترده برای عملکردی بهینه و پیشرفته بهینهسازی شده است.
MSSQL پایگاه دادهای است که اغلب با ASP.NET استفاده میشود، اگرچه امکان استفاده از MySQL با آن نیز وجود دارد. در مقایسه کارایی بین ASP.NET و MSSQL با PHP و MySQL، مورد دوم یعنی PHP+MySQL با اندک اختلافی از ASP.NET+MSSQL پیشی میگیرد.
عامل دیگری که در کارایی نقش ایفا میکند file system و OS استفاده شده بر روی سرور است. غالب آزمونهای انجام شده نشان میدهند که file system-های Linux و ext4 نسبت به فایلسیستمِ NTFS که مربوط به ویندوز است، عملکرد بهتری در I/O (ورودی/خروجی) دارند. بنابراین فرصت خوبی است تا یک برنامهی وبِ PHP که رویِ وبسرورِ لینوکس قرار دارد را به دلیل کارایی اندک بهتر آن بر یک برنامهیِ وب که روی یک وبسرور ویندوز است ترجیح دهیم.
برنده این بخش: PHPپشتیبانی
PHP رایگان و در زمرهی محبوبترین زبانهای برنامهنویسی آنلاین است. علاوه بر این گروهی بزرگ از جامعهی توسعهدهندگانِ open source به طور مداوم در توسعهی PHP مشارکت میکنند. این جامعهی open-source تمایل زیادی برای کمک دارند و این یک امتیاز بسیار ارزشمند برای تازهکارها به حساب میآید.
از سوی دیگر ASP.NET متعلق به مایکروسافت است، در حالیکه گروههای توسعهدهندهی بسیاری را خواهید یافت که توسط طرفداران ASP.NET ایجاد شدهاند، البته این گروهها تکاپو و فعالیتشان به پای گروههای PHP نمیرسد.
برنده این بخش: PHP
در دسترس بودن ابزارها و ویرایشگرها
اغلب توسعهدهندگان PHP ترجیح میدهند بهجای IDE-های تکاملیافته از ویرایشگرهایی نظیر VIM و ++Notepad استفاده کنند. اگر شما مایل بودید از یک IDE استفاده کنید، گزینههای رایگان و قابل اطمینان بسیاری نظیر eclipse در پیش رویتان قرار دارند.
اغلب IDE-ها از ASP.NET نیز پشتیبانی میکنند اما این ابزار بیشتر در کنار Visual Studio مورد استفاده قرا میگیرد. Microsoft VS باوجود غیررایگان بودن یکی از قویترین و منعطفترین IDE-ها با قابلیتهای بسیار است. بنابراین حتی اگر حاضر به پرداخت پول برای خرید IDE/ویرایشگرِ PHP باشید، قادر نخواهید بود چیزی حتی نزدیک به Visual Studio پیدا کنید.
برنده این بخش: هردو به یک اندازهیاد گرفتن کدام یک آسانتر است؟
PHP در این مورد برنده خواهد بود، میگید نه ببینید! ASP اغلب به زبان #C (بخوانید سیشارپ) نوشته میشود، #C بر مبنای زبان C ایجاد شده است که یادگیری آن برای بیشتر تازهکاران سخت خواهد بود. دستورات آن حتی برای برنامهنویسان باتجریه سخت و پیچیده است. افرادی که ASP.NET را انتخاب میکنند از آن به عنوان زبانی سخت یاد خواهند کرد.
اما PHP انتخاب سادهای است (تاحدی که اغلب برنامهنویسان عصر حاضر از PHP-کاران با عنوان «تازهکار» یاد میکنند.) شما میتوانید با یادگیری چند خط کد، به کمک قالبهای وردپرس در همان ابتدای کار و در مدتی کوتاه یک سایت سر هم کنید!
برنده این بخش: PHP
محبوبیت زبان
با توجه به رتبهبندی زبانها در سایت TIOBE، زبان PHP در رده ۷اُم از زبانهای محبوب قرار دارد، این در حالی است که ASP.NET حتی در فهرست ۲۰ زبان اول دیده نمیشود.
برنده این بخش: PHP
نتیجهگیری
هیچ دلیلی وجود ندارد که ASP.NET را به PHP ترجیح دهید، مگر اینکه الآن که این نوشته را میخوانید با آن آشنایی داشته باشید یا اینکه بخواهید بچسبید به تکنولوژیهای مایکروسافت. PHP میتواند هرکاری را که ASP.NET انجام میدهد انجام دهد با این تفاوت که این کار را رایگان انجام میدهد!
شما کدام یک را ترجیح میدهید؟ PHP یا ASP.NET؟ دیدگاه خود را با ما به اشتراک بگذارید.
برگرفته از udemy و ترجمه: آیتاتس
سلام
نسبتا خوب بود.
اما بهتر بود فقط روی بستر مورد نیاز بحث نشود و بیشتر روی قابلیت های آن اعم سرعت یا امنیت ویا چرا
دید افراد به این است که asp امنیت بیشتر دارد و …
سلام
ممنون از دیدگاهت مهدی جان!
این مقاله خیلی کلی بحث شده و زیاد وارد جزییات نشدیم. در مورد ویژگیهایی که گفتی مختصر در حد سوادم توضیح میدم:
سرعت: در مورد سرعت توی مقاله صحبت شده. همونطور که خوندی در این دو مورد چندان به خود زبان برنمیگرده و بیشتر به بستر اجرای اون و … مربوط هست.
امنیت: امنیت هردو در یک سطح هست. امنیت بیشتر بر میگرده به نحوهی استفادهی برنامهنویس؛ بهاین معنی که این خود برنامهنویس هست که باید امنیت رو پیادهسازی کنه و اون رو در پروژه مدنظر قرار بده. شاید پروژههای ASP.NET امنیتشون رو بیشتر مدیون محیط توسعه Visual Studio و کمکهای اون در کدنویسی باشن. البته فریمورکهایی برای PHP ساخته شدن که میتونن کمککننده باشن؛ در آینده به اونها هم خواهیم پرداخت. یک مورد دیگه اینکه PHP این مزیت رو داره که اگر bug-ی درش وجود داشت به سورسش دسترسی داری و میتونی خودت اون رو اصلاح کنی و در اختیار دیگران هم قرار بدی (این ویژگی رو از open source-ها به ارث برده که نتیجش رو میتونی از موفقیت لینوکس متوجه بشی). علاوه بر این PHP روی بستر Linux قابل اجراست که امنیت بالای اون اثبات شده هست.
در مورد اینکه بیشتر افراد دیدشون امنیتِ بیشترِ ASP.NET هست، من چندان باهات موافق نیستم. شاید کسایی که تو تا حالا باهاشون رابطه داشتی همچین نظری داشتن. همونطور که گفتم امنیت نسبی هست و شاید دلیل اینکه نظر اون دوستان به این سمت رفته عدم استفاده صحیح تعدادی از برنامهنویسها بوده. چون همونطور که در مقاله گفته شده PHP زبان سادهتری هست و تازهکارها بیشتر بهش رو میارن که واضحه برنامهنویسی تنها در یادگیری syntax یک زبان خلاصه نمیشه.
امیدوارم موفق باشی