مقایسه php و asp.net

poria zareie

عضو جدید
مقایسه زبان php و سکوی asp.net برای طراحی سایت بحثی طولانی و تمام نشدنی است. اکثر شرکت ها و برنامه نویسانی که یک زبان برنامه نویسی را یاد میگیرند علاقه مند به دفاع کردن از آن زبان هستند و بعضا دلایل غیر منطقی و غیر علمی برای کار خودشان دارند. دلیل اینکه تصمیم گرفتم این مقاله را بنویسم دامن زدن به بحث های طولانی و غیر منطقی که بین برنامه نویسان زبان های php و asp.net وجود دارد نیست زیرا شخصا اعتقاد دارم که زبان های برنامه نویسی ابزار هستند و در صنعت نرم افزار نیروی انسانی و تخصص است که حرف اول را می زند نه یک زبان برنامه نویسی. یک برنامه نویس بد با هر زبانی میتواند یک برنامه ضعیف، کند، غیر ایمن و سرشار از باگ را تولید کند و یک برنامه نویس خوب با یک زبان قدیمی نیز می تواند یک برنامه خوب بنویسد.


دلیل اصلی من از نوشتن این مقاله صحبت هایی است که به طور اتفاقی در دو جلسه متفاوتی که داشتم شنیدم، دلایل مطرح شده در دفاع از زبان اسکریپتی php به قدری برای من عجیب بود که نهایتا مجبور شدم در اینترنت جستجو کرده و به دنبال کشف واقعیت باشم.


مقایسه php و asp.net


قبل از اینکه وارد مباحث مربوط به مقایسه این دو زبان بشویم لازم است این نکته را مطرح کنم که من به عنوان برنامه نویس وب بیش از 15 سال تجربه برنامه نویسی دارم و در این مدت با زبان ها و پلتفرم هایی مانند جاوا، php ، asp، و asp.net کار کرده ام و به تمام آنها مسلط هستم.


برخی از مواردی که در دفاع از php مطرح می شوند عبارتند از:


سرعت php از asp.net بیشتر است؟


یکی از دلایلی که برنامه نویسان php برای دفاع از آن مطرح می کنند سرعت آن است و میگویند که سرعت php از asp.net بیشتر است، در حالیکه آزمایشات انجام شده نتیجه کاملا متفاوت را نشان می دهند. از نظر منطقی نیز چنین چیزی امکان ندارد به این دلیل که کدهای خروجی asp.net در سمت سرور تفسیر نمی شوند و به صورت dll هستند و web server در زمان اجرای کدها هیچگونه زمانی برای تفسیر آنها نمی گذارد و با سریعترین زمان ممکن اجرا می شوند. لذا چنین حرفی هیچ پایه و اساس علمی ندارد.


برای بررسی سرعت میان زبان های سمت سرور و مقایسه سرعت php و asp.net مقاله زیر را مشاهده کنید:


مقایسه سرعت php ، asp ، asp.net و cgi


همانطور که در نتایج آزمایش مقاله فوق مشخص است، سرعت asp.net قابل مقایسه با سایر زبان ها و تکنولوژی ها نیست و به مقدار قابل توجهی مخصوصا در زمانی که مقدار داده ها افزایش می یابد و مقیاس سازمانی است سریع تر است.


امنیت php بالاتر است؟


ایمن بودن نرم افزارهای کدباز یکی از مباحثی است که برخی برنامه نویسان مطرح می کنند. به طور کلی هر سیستمی که افراد زیادی بر روی آن کار کنند و استفاده کنندگان زیادی داشته باشد به مرور تکمیل می شود. اما کدباز بودن نه تنها دلیل بر ایمن بودن نیست بلکه در بسیاری از موارد ممکن است باعث شود که سیستم فوق مورد حمله قرار گرفته و هک شود. به عنوان مثال پلتفرم جوملا که بر پایه php است یکی از ضعیف ترین پلتفرم ها از نظر امنیتی است و هر از چندگاهی شاهد هک شدن نسخه های مختلف آن در اینترنت هستیم.


برخی از مشکلات امنیتی که ممکن است به خاطر برنامه نویسی سایت پیش بیاید عبارتند از:


Remote code execution
SQL injection
Cross Site Scripting (XSS)
Session Hijacking
XSRF


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


سایت های بزرگی مانند گوگل، فیسبوک و آمازون با php برنامه نویسی شده اند؟


پاسخ قطعا منفی است! سایت های فوق عمدتا از زبان های c++ پایتون و جاوا برای برنامه نویسی سمت سرور خود استفاده می کنند و به هیچ وجه از پلتفرم های اپن سورس مثل php در طراحی بخش های اصلی آنها استفاده نشده است. تنها گوگل برای برخی از سرویس های جانبی خود به طور محدود از زبان php استفاده می کند. تنها سایت پربازدید دنیا که از php استفاده می کرده است سایت یاهو است که آن هم در حال انتقال برنامه های خود به زبان جدید node.js است.


برای مشاهده زبان های استفاده شده در سایت های بزرگ اینترنتی می توانید به لینک زیر مراجعه نمایید:


مشاهده زبان برنامه نویسی سایت های پربازدید اینترنت


اگر ایران به قانون کپی رایت بپیوندد...


در حال حاضر درصد قابل توجهی از سایت های بزرگ اینترنتی بر پایه asp.net طراحی شده اند، سوال اینجاست که مگر کشورهای دیگه از قانون کپی رایت حمایت نمی کنند؟ پس چرا با این وجود استفاده از تکنولوژی دات نت روز به روز در این کشورها رو به افزایش است؟ متاسفانه زمانی که ما میخواهیم هزینه استفاده از یک سیستم را محاسبه کنیم فقط به قیمت خرید آن فکرمیکنیم و این فرهنگ در ما ایرانی ها وجود دارد.


درست است که زبان php یک زبان اپن سورس و رایگان است، اما اگر شما بخواهید یک پورتال اینترنتی را با استفاده از آن طراحی کنید این کار چقدر زمان خواهد برد؟ آیا خروجی پروژه به مقدار کافی مقیاس پذیر خواهد بود؟ آیا قابلیت توسعه و گسترش کافی خواهد داشت؟ اگر هزینه استخدام یک برنامه نویس n تومان در ماه باشد و پروژه php سه ماه طول بکشد و پیاده سازی همان پروژه با asp.net یک ماه زمان بخواهد، عاقلانه خواهد بود که با خرید لایسنس به سمت asp.net برویم یا از سیستم رایگان php استفاده کنیم؟


اگر منطق فوق درست بود، تا کنون تمام کشورهای دنیا از php استفاده می کردند و کسی به سراغ asp.net نمی رفت در حالیکه در عمل می بینیم که چنین نیست.


گرچه سعی کردم بی طرفانه به مقایسه هر دو تکنولوژی فوق بپردازم اما واقعیت این است که پلتفرم asp.net از نظر امکانات، سطح تکنولوژِی و قابلیت هایی که دارد به هیچ وجه قابل مقایسه با زبان اسکریپتی php نیست. استفاده از php تنها زمانی منطقی است که یک اسکریپت رایگان و آماده برای پروژه ای که می خواهید انجام دهید وجود داشته باشد و نوشتن مجدد کد مقرون به صرفه نباشد. از طرف دیگر به دلیل اینکه سرورهای لینوکس از asp.net پشتیبانی نمیکنند و قیمت ارزان تری نسبت به سرورهای ویندوزی دارند، بسیاری از افراد به دلیل صرفه جویی در زمینه هاست به سراغ php می روند، در حالیکه به دلیلی که در بخش قانون کپی رایت ذکر کردم چنین کاری مقرون به صرفه نیست!


چه زمانی بهتر است از php استفاده کنیم؟


اگر پروژه ای که میخواهید انجام دهید یک پروژه کوچک است و در مقیاس های بزرگ عملیاتی اجرائی نمیشود php میتواند گزینه خوبی باشد.
اگر اسکریپت های آماده و کدهای آماده برای پروژه فوق به زبان php وجود دارند، گزینه مناسبی است.
اگر سرور شما لینوکس است، از php استفاده کنید.
چه زمانی بهتر است از asp.net استفاده کنیم؟


اگر پروژه شامل انواع نقش های سیستمی و سطوح دستری مختلف و یک پورتال است از دات نت استفاده کنید
اگر می خواهید از ساختارهای نوین برنامه نویسی مانند MVC استفاده کنید از دات نت استفاده کنید
اگر می خواهید نرم افزار وب شما به صورت شی گرا تولید شود از دات نت استفاده کنید
اگر به دنبال توسعه ساختار و پشتیبانی سیستم در دراز مدت هستند و دید کوتاه مدت به پروژه ندارید از دات نت استفاده کنید
پوریا زارعی​
 

شهریاری 2

کاربر فعال تالار اسلام و قرآن
کاربر ممتاز
ممنون دوست عزیز
این سوالی بود مدتها ذهن منو درگیر خودش کرده
چون سی شارپ بلدبودم، خیلی سختم میومد که برم سمت پی اچ پی.
ولی الان دیگه تقریبا قطعی شده که میخام برم ای اس پی بخونم


ولی امیدوارم که بی طرفانه قضاوت کرده باشی
 

negin17h

مدیر تالارهای مهندسی کامپیوتر و رباتیکمتخصص #C
مدیر تالار
با تشکر بسیار از استارتر و در تکمیل صحبت ایشان:
به نظر من هریک از این زبان ها برتری ها و از همه مهمتر ، کاربرد خودشون رو دارن.
بعضی چیزها نباید قیاس شه. شما میتونید جاوا و سی شارپ (asp.net هم) مقایسه کنید یا جاوا و پی اچ پی و ... اما در حیطه ی از کاربرد.
بلی پی اچ پی در بسیاری موارد بسیار خوب است اما اپلیکیشن های کاربردی با زبان های ASP.NET و یا جاوا و یا شیر پوینت دیده میشن و هیچ زمان اپلیکیشن قدرتمند جاوایی نمی بینید چون کاربردش اپلیکیشن نیست :gol: همانطور که سایت های قدر بسیاری یا پی اچ پی دیده میشن و ممکنه تولیدش در ASp بسیار زمانبر و حتی سخت باشه :heart:
 

SHM.IT

عضو جدید
کاربر ممتاز
الان خیلی از سایتها و اپ ها دارن میرن سمت جاوا و پی اچ پی!!
بنظرم همیشه ادم باید خودشو برای اینده اماده کنه!
 

joghd123

عضو جدید
کاربر ممتاز
ممنون دوست عزیز
این سوالی بود مدتها ذهن منو درگیر خودش کرده
چون سی شارپ بلدبودم، خیلی سختم میومد که برم سمت پی اچ پی.
ولی الان دیگه تقریبا قطعی شده که میخام برم ای اس پی بخونم


ولی امیدوارم که بی طرفانه قضاوت کرده باشی
پس سایت هایی مثل فیسبوک , ویکی پدیا , یوتیوب , ... احتمالا اشتباه کردن که از php استفاده کردن؟:D
مقایسه ی asp.net و php اصلا درست نیست. چون php زبان هست و asp.net فریمورک. اگرم خواستین مقایسه ای انجام بدین بین فریمورک های php مثل (zend - yii - laravel - phalcon , ...) با asp.net مقایسه کنید.از لحاظ فراگیر بودن که قابل قیاس نیستن. چون همونطور که میبینی این همه فریمورک اومده بخاطر تعداد بالای برنامه نویساش و open source بودنشه و همه جا به اشتراک گذاشته میشه.
راحت از php نگذر.زبان پر قدرت و شیرین و راحتیه...
تو php تمام ساختار ها دست خود برنامه نویس هست حتی سیستم mvc رو خودش میتونه تعریف کنه. هر مدلی که دلش بخواد از صفر میتونه یه چیزو تولید کنه. دست برنامه نویس بازه.مثلا خود php با چنتا کلیک gridview نمیسازه و باید خود برنامه نویس بنویسه و مواردی ازین دست... اما میتونه برنامه نویس از فریمورک های php استفاده کنه که کارایی بسیار بالایی دارن یا اینکه خود برنامه نویس یک فریمورک اختصاصی برای خودش بنویسه. اما لازمه ی کار با فریمورک های php اینه که این زبانو بهمراه شی گرایی و معماری هایی مثل mvc و ... بلد بود.
بیشتر تحقیق کن. دقت کردین اکثر حملات هکرها روی سرورهای لینوکس بوده؟ هکر ها ویندوز رو اصلا به حساب هم نمیارن..احتمالا اون چن مورد نفوذ هم واسه دست گرمیه سره صبحشون بوده.:D
 

شهریاری 2

کاربر فعال تالار اسلام و قرآن
کاربر ممتاز
پس سایت هایی مثل فیسبوک , ویکی پدیا , یوتیوب , ... احتمالا اشتباه کردن که از php استفاده کردن؟:D
مقایسه ی asp.net و php اصلا درست نیست. چون php زبان هست و asp.net فریمورک. اگرم خواستین مقایسه ای انجام بدین بین فریمورک های php مثل (zend - yii - laravel - phalcon , ...) با asp.net مقایسه کنید.از لحاظ فراگیر بودن که قابل قیاس نیستن. چون همونطور که میبینی این همه فریمورک اومده بخاطر تعداد بالای برنامه نویساش و open source بودنشه و همه جا به اشتراک گذاشته میشه.
راحت از php نگذر.زبان پر قدرت و شیرین و راحتیه...
تو php تمام ساختار ها دست خود برنامه نویس هست حتی سیستم mvc رو خودش میتونه تعریف کنه. هر مدلی که دلش بخواد از صفر میتونه یه چیزو تولید کنه. دست برنامه نویس بازه.مثلا خود php با چنتا کلیک gridview نمیسازه و باید خود برنامه نویس بنویسه و مواردی ازین دست... اما میتونه برنامه نویس از فریمورک های php استفاده کنه که کارایی بسیار بالایی دارن یا اینکه خود برنامه نویس یک فریمورک اختصاصی برای خودش بنویسه. اما لازمه ی کار با فریمورک های php اینه که این زبانو بهمراه شی گرایی و معماری هایی مثل mvc و ... بلد بود.
بیشتر تحقیق کن. دقت کردین اکثر حملات هکرها روی سرورهای لینوکس بوده؟ هکر ها ویندوز رو اصلا به حساب هم نمیارن..احتمالا اون چن مورد نفوذ هم واسه دست گرمیه سره صبحشون بوده.:D

php مگه شی گراست؟
از مباحث شی گرایی مثل وراثت، plymorphism و... پشتیبانی میکنه؟
یا فقط کلاس میشه داخلش ساخت؟
 

ali199_1991

کاربر بیش فعال
مگه ASP زبان هست که با PHP مقایسه بشه؟
فک میکنم asp یک تکنولوژی باشه که کار رو راحت تر کرده حداقل برای برنامه نویسان ویندوز که میخوان بیان سمت وب...
ولی در نهایت کدهای asp هم به چیزی باید تبدیل بشن،درسته؟
 
بالا