به نام دانای بر حق
مقدمه
از آنجایی که من چندین سال هستش برنامه نویسی وب رو به صورت حرفه ای پیگیری میکنم و سالهای متمادی PHP و اما سالها در شهرداری تهران ASP.net کار کردم قصد داریم تا آخرین دستاورد های تکنولوژی های PHP و ASP.net رو مورد مداقه قرار بدیم تا عزیزانی که قصد انتخاب بین یکی از این دو مورد رو دارند. یک نگاه وسیعتری نسبت به این قضیه پیدا کنند. و مزیایا و معایب هر کدام را بسنجیم.
من یادمه وقتی خودم بین این دو مورد شک داشتم ASP با وجود این که به بلوغ نرسیده بود برنامهنویس اصلی بلگفا که اسم ایشان یادم نیست یک مطلب مفتضح و جانبدارانه نسبت به این موضوع ارائه کرده بود که باعث گمراهی حقیر شد و اما من سعی میکنم در این بحث کاملا بدون تعصب این کار رو انجام بدم همانطور که در مطلب مقایسه بین سی شارپ و دلفی در انجام شد و با استقبال خوبی مواجه شد.
وضعیت نرمافزاری و توسعه دهنده
مورد اول زبان برنامه نویسی می باشد که در خصوص ASP.net دست شما باز تر از پی اچ پی است لذا در ای اس پی شما میتوانید از زبان های دات نتی مثل vb.net و C# در این زمینه بهره ببرید ولی در PHP شما باید زبان PHP را یاد بگیرید چون فریم ورک نیست یک زبان است . این موضوع وقتی اهمیت پیدا میکند که شما از پیش یکی از زبان های دات نت را بلد هستید.
اما اگر هیچ زبانی بلد نیستید به سادگی میتونین بدون توجه به این موضوع انتخاب کنید.
اما اگر شما زبان های:
JAVA , visual basic را از پیش بلد هستید قطعا یادگیری ASP.net با C# برای شما ساده تر است.
اگر زبان های javascript یا C++ یا پایتون را بلد هستید به طور قطع نمیشود اذعان داشت ولی یادگیری PHP برای شما آسان تر خواهد بود.
اما در کل یادگیری PHP به نسبت به ASP.net آسان تر خواهد بود.
و اما نکته مهم دات نت در کل یک نرمافزار تجاری است و تحت سیاست های مایکروسافت پیش میرود ولی PHP یک نرم افزار کاملا اوپن سورس یا متن باز بوده توسط مردم آنچه لازم است توسعه پیدا میکند البته با اعمال نفوذ شرکت zend. با این اوضاف خیال شما راحت است که هرگز توسعه PHP متوقف نخواهد شد.
پایه و اساس راهندازی
PHP برای اجرا کد های خود به apache یا nginx و یا lighttpd برای اجرای خود نیاز دارد ولی asp.net به IIS نیاز دارد خوبی asp.net این است که زیاد درگیر کافنیگ این دو با هم نمیشوید ولی در PHP کمی مشکل با کافنیگ آنها خواهید داشته که البته در بسته های مثل xampp این مشکل برطرف شده است.
نکته: کاربر لینوکس در رابطه کانفیگ نیاز به نگرانی ندارند چرا که بسته های لینوکس به صورت پیشفرض تقریبا ۹۰٪ مشکلات را برطرف کرده اند.
مقایسه حجم وب سرور ها با بیان نسخه:( در ویندوز)
- Apache HTTP Server 2.4.39 – حجم ۱۶مگابایت
- Nginx 1.17.1 – حجم ۱.۶ مگابایت
- lighttpd Linux 1.4.54 – نسخه ویندوزی ندارد
- Internet Information Services (IIS) 10.0 Express – نسخه سبک ۹.۱ مگابایت
اما هنگام بحث در مورد راندمان به تفکیک وب سرور ها میپردازیم.
جدول مقایسه
عنوان | ASP.net | امتیاز | PHP | امتیاز |
---|---|---|---|---|
انشای کد syntax | یادگیری سخت تره و نیاز مبرم به شی گرایی | ۲ | یادگیری ساده و کمترین درد سر / اما اخیراً کمی سخت شده است | ۴ |
سرعت اجرای کد | متوسط رو به پایین | ۲ | سریع | ۴ |
سرعت همبندی یا کامپایل | بسیار کم | ۱ | بدون نیاز به کامپایل | ۵ |
انعطاف در کدنویسی | کم و اجبار در شی گرایی | ۲ | بسیار زیاد | ۵ |
شی گرایی | قوی | ۴ | خوب ولی در حال رشد | ۳ |
ارتباط با امکانات سیستم عامل | تسلط نسبی به سیستم عامل فقط ویندوز | ۴ | متوسط در ویندوز کم در لینوکس بیشتر | ۳ |
استقلال از سکو cross platform | ضعیف در برابر PHP | ۲ | بسیار بسیار قوی | ۵ |
قدرت IDE | خوب و ایده آل | ۴ | IDE رسمی خوبی ندارد | ۱ |
اسناد آموزشی documantion | بسیار خوب | ۵ | بسیار خوب و مثال های فراوان | ۵ |
شرکت در متن باز open source | بسیار ضعیف | ۲ | صد در صد متن باز | ۵ |
بازار کار داخلی | مناسب مخصوص محل های دولتی | ۴ | خوب ولی در بین شرکت های خصوصی | ۳ |
بازار کار جهانی | افتضاح | ۱ | تقریبا خوب | ۳ |
(در ایران)بحث دانشگاهی | بسیار محبوب | ۵ | عدم توجه مناسب | ۲ |
استفاده برای پایگاه داده ها database | بسیار خوب و دارای ORM محلی entity | ۵ | ارتباط بسیار قوی ولی بدون ORM محلی به در حد رقابت | ۴ |
پایداری IDE | عالی | ۵ | متوسط | ۲ |
جایگزینی در IDE | ندارد | ۰ | بسیار قوی | ۵ |
برنامه های چند نخی یا multi thread | دسته بسته ولی قابل اجرا | ۳ | ندارد | ۰ |
کتابخانه های خارجی | ضعیف | ۲ | بسیار قوی | ۵ |
امنیت داده ها و برنامه | ۴ | کامپایل میشود ولی قابلیت مهندسی معکوس را دارد | در کل عالی ولی سورس کد عینا تقدیم هکر یا مشتری میشود | ۱ |
پیشرو بودن در تکنولوژی های وب | عملکرد متوسط و پیاده سازی سخت | ۲ | عالی | ۵ |
پشتیبانی از زبان های غیر لاتین | خوب و قابل قبول در همه موارد | ۴ | بد همراه با اذیت | ۲ |
چرخه انتشار نگارش ها version release cycle | بسیار خوب و منظم | ۵ | خوب | ۴ |
خطازدایی یا debug برنامه | خوب با قابلیت بریک پوینت | ۴ | بد و سخت فقط نمایش خط ارور و دلیل | ۲ |
حرکت در چهار چوب و استاندارد توسعه دهنده زبان | بسیار خوب | ۵ | عدم توجه به موضوع و آزادی ۱۰۰٪برنامه نویس | ۲ |
اکوسیستم پیکج منیجر | ضعیف به نام nuGet | ۲ | بی نقص و پر بار به نام composer | ۵ |
هزینه استفاده | معقول | ۳ | صفر | ۵ |
جامعه پاسخگو یا commiunty | قابل تحمل | ۳ | بسیار قوی فعلا | ۵ |
فریم ورک های شخص ثالث یا third party |
افتضاح | ۱ | بسیار عالی | ۵ |
پشتیبانی از فایل های دودویی یا باینری | عالی | ۵ | خیلی ضعیف | ۱ |
در انتها اگر موردی فراموش شده بفرمایید اضافه کنیم.
بررسی Framework های سوم شخص یا third party
برای این که یه زبان قابلیت های بهتری داشته باشد از فریم ورک های زیر مجموعه که توسط سایر توسعه دهنده ها غیر از سازنده اصلی استفاد میشود در این زمینه asp.net میشود به جرائت گفت فقط DNN را دارد ولی در PHP شما با خیل عظیمی از فریم ورک خیلی خوب مثل Laravel , Symphiny, Zend, CakePHP و … روبهرو هستید.
راندمان و اجرای کد/ Performance & benchmark
برای بنج مارک آخرین بسته دات نت یعنی ۲۰۱۹ version 16.1.3
با PHP 7.3 بر روی یک ماشین مجازی امتحان شده است امتحان شده است
زمان نصب و راهندازی
به طور کلی نصب و راهندازی php و ملزوماتش بسیار سریع تر بوده لذا حجم فایل کمتر است.
موضوع | زبان | زمان |
---|---|---|
زمان نصب ویژال استدیو | Asp.net | ۳ ساعت و ۱۷ دقیقه |
زمان نصب xampp | PHP | ۱۴ دقیقه |
میزان مصرف رم به همراه هنگام standby
موضوع | زبان | زمان |
---|---|---|
استفاده از حافظه | Asp.net | ۱۷۱ MB |
استفاده از حافظه با فرض nginx | PHP | ۱۲ MB |
سرعت اعمال تغییرات
موضوع | زبان | زمان |
---|---|---|
سرعت اعمال تغییرات در پروژه خام بار اول | Asp.net | ۳۰ ثانیه |
سرعت اعمال تغییرات در پروژه خام بار دوم | Asp.net | ۱۱ ثانیه |
سرعت اعمال تغییرات | PHP | بالا فاصله بعد از ذخیره حدود ۰ |
سرعت اجرای کد
موضوع | زبان | زمان |
---|---|---|
اجرای یک حلقه ضرب یک میلیون عمل ریاضی | Asp.net | ۲.۹ ثانیه |
همان مورد بالا عیناً | PHP | ۱.۱ ثانیه |
زمان انتشار
موضوع | زبان | زمان |
---|---|---|
سرعت پابلیش | Asp.net | ۴۴ ثانیه کامپایل پروژه خام + زمان کپی |
سرعت پابلیش | PHP | درجا + زمان کپی |
نتیجه گیری
ما می توانستیم مبحث را در حد یک کتاب پیش ببریم ولی خارج از حوصله بحث است. پس لذا به همین اندازه اکتفا میکنیم. ما اکثر خصوصیات بد و خوب این دو زبان را مطرح کردیم. حال انتخاب با خود شماست که ببینید کدام یک از این دو مورد برای یاد گیری بهتر است.
فراموش نکنید اگر سی شارپ بلد باشید، میتوانید ویندوز اپ هم بنویسید ولی PHP میشود گفت بهترین انتخاب برای وب هست.
دیدگاهتان را بنویسید لغو پاسخ