الهام عابدی / وب مستر
یک کامپیوتر ساینتیست نه به معنای واقعی ولی چیزی که می خواهد شبیه آن شود بلکه شبیه تر! خوش آمدید
الهام عابدی زورآزمایی دو رقیب تحت وب

زورآزمایی دو رقیب تحت وب

php-vs-asp.net

موضوعی که همیشه برای تازه واردان در حوزه های برنامه نویسی مطرحه، اینکه در میان زبان های محبوب و پرکاربرد کدوم یک رو برگزینیم؟! در عین حال که سوال خوبیست، اشکال زیادی هم بهش وارده! چرا که ممکنه یک زبان نسبت به زبان دیگه مزیت کمتری داشته باشه اما از نظر کاربردی به صرفه تر باشه! به طور کل همچین مقایسه ای اطلاعات و دید ما رو نسبت به یادگیری کاربردی تر می کنه منتها به شرطی که به کمیت های هر زبان بسنده نکنیم و در نهایت بدانیم که از این کار چه می خواهیم و قرار است چه چیزی خلق کنیم!

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

php  شخصیت قدیمی تر و نام آشناتری نسبت به ASP.net داره چرا که مستقلا یه زبان محسوب میشه در حالیکه ASP.net در واقع فناوری برنامه نویسی وب هس؛ که در اون از زبان(net.)، از مشهوران مایکروسافتی استفاده میشه و بعد ها پا به عرصه وجود گذاش. اینجاس که برای خیلی ها این موضوع مطرح میشه که تکلیف برنامه نویسانی که از سیستم عامل های یونیکس و لینوکس و یا مک استفاده میکنن چی میشه در صورتیکه php با توجه به اینکه نرم افزاری متن باز است و بر روی هر سیستم عاملی قابل استفاده هس، آیا آن را در ابتدای امر پیروز ماجرا نمی کند؟! من پیشنهاد می کنم دست نگه دارین! تمام ماجرا به اینجا ختم نمی شه.

از آنجایی که از مایکروسافت بعیده که بخواد به این زودی ها تسلیم بشه فکر جالبی به سرش می زنه، چون نمیخواد از رقیب خود کم بیاره! از طرفی هم این ایراد کمی نبود و از آنجا که دوست لینوکسی ما واقعا جذاب هس و می تونه برنامه نویسان زیادی رو از ASP.net به دلیل ناهماهنگی با اون دور کنه، مایکروسافت اخیرا درصدد این موضوع برمیاد با یه سری برنامه ها که معروف ترین آن برنامه متن باز و البته رایگان mono هس، بشه برنامه های نوشته شده با net. رو بر روی سیستم عامل های دیگه اجرا کرد و اینجا بود که توانس مهمترین عامل شکست رو از خودش دور کنه!

حالا دوستداران ASP.net میان برای تلافی بهونه جالبی میارن.

+ اونا میگن: که php مگه یه زبون متن باز و مفسری با قابلیت خط به خط اجرا کردن کد رو نداره؟!

_ میگیم: چرا البته که درسته.

+ میگن: دقت کردین اگه کسی بتونه به سرور دسترسی پیدا کنه چون کدها کامپایل نشدن پس میشه امنیت زیر سوال بره در صورتیکه در ASP.net از آنجایی که کامپایلری هس، قبل از اینکه برنامه ها اجرا بشن به فایل هایی با پسوند dll کامپایل میشن که در واقع از نمایش کد جلوگیری میکنه.

خب بحث امنیت هم بحث کمی نیس! به نظرتون ASP.net می تونه از رقیبش پیشی بگیره یا خیر؟! بریم ادامه ماجرا…

از آنجایی که خب طرفداران php هم کم نیستن و البته طبق آمار های معتبر در سال ۲۰۱۷ در حدود ۸۲ درصد وب سایت های موجود در دنیا  از این زبان بهره گرفته شده، مگه میشه تمامی این سایت ها از نظر امنیتی دارای ایراد باشن و به راحتی بشه به اونا نفوذ کرد؟!

اینجاس که رجوع می کنیم به دوست صمیمی php یعنی فناوری zend ! این برنامه کارش کد گذاری بر روی فایل های php هس و در واقع کنترل و هدایت دوستش به عهده داره. پس از نظر امنیتی این نیز دارای مشکل نخواهد بود.

رقیبان تا اینجای کار شرایط تقریبا برابری دارن، اما ویژگی های بررسی هر زبان قاعدتا کم نیس. پیشنهاد میکنم بریم ادامه مطلب…

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

در صورتیکه بخوایم برای ASP.net از ویندوز استفاده کنیم سرعت کمتری نسبت به سرویس های لینوکسی داره اما تجربه نیز ثابت کرده که سرعت اجرای کد های ASP.net با فناوری mono در لینوکس بیشتر از سرعت اجرای php در همین سیستم عامل هس. پس از نظر سرعتی اگر ویندوز رو در نظر نگیریم جایی برای باخت ASP.net وجود نداره. ولی به طور کل گذشته از سیستم ها عامل و تعداد خطوط کدها، موضوعی که همچنان برنامه نویس رو از نظر سرعتی تقویت میکنه مسئله مهارت برنامه نویسی هس و این عامل میشه گفت عامل های دیگه رو یه تنه میزاره تو جیب خودش پس از این مهم غافل نشیم!

مسئله ی دیگه ای که مطرحه و میشه گفت جزو مسائل مهم تو این حوزه محسوب میشه، مسئله هزینه هس. اگه از گزینه علاقه مندی فاکتور بگیریم، برنامه نویسی که تو حوزه کاری، از دانشش بهره می گیره و کسب درآمد میکنه؛ ممکنه این فاکتور رو شاید؛ شاید و شاید اولویت قرار بده! همانطور که در جریانین مایکروسافت کمپانی رایگانی نیس و اینطور که پیش میره فک نکنم تا آینده ای نه چندان دور چیز رایگانی در بساط داشته باشه! ASP.net و وب سرور آن که IIS هس رایگانن اما نرم افزار های کاربردی مثل ویژوال استودیو که جزو نرم افزارای خفن مایکروسافت محسوب میشه رایگان نیستن و یا نرم افزار کاربردی دیتابیس SQL Server نیز همینطور، که اگه ایران و داستان های کرکش رو در نظر نگیریم، در خارج از کشور هزینه ی به نسبت زیادی صرف خرید اونا میشه. پس میشه گفت در کشور ما از نظر اقتصادی نمیتوان تفاوتی بین این دو قائل شد در صورتیکه php  و دیتابیس رایگان آن برای دنیا یه مزیت اقتصادیست! البته ادیتور خاصی برای آن تعریف نشده و شرکت های مختلفی ارائه دهنده اون هستن که غالبا هزینه خرید می طلبن. البته ناگفته نماند ادیتور قدرتمندی مثل NetBeans، که میشه php رو در اون کدنویسی کرد رایگان عرضه شده.

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

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

امیدوارم از این داستان رقابت لذت برده باشین!

http://geekstribemedia.com/

یک دیدگاه ثبت کنید