زمان مطالعه: 17 دقیقه
فهرست محتوای این مطلب:
زبانهای برنامهنویسی
زبانهای برنامهنویسی بسیار متنوع هستند. اما هر کسی که به دنبال برنامهنویسی وب و حوزههای مربوط به آن میرود، ناخودآگاه دو گزینه به گوشش میرسد:
یکی از این اسامی PHP و دیگری ASP.net آن است. افراد معمولاً بین این دو گزینه باید یکی را برای شروع انتخاب کنند.
هر دو زبان برنامهنویسی PHP و ASP.net زبانهای اسکریپتنویسی سمت سرور هستند که برای طراحی سایتهای داینامیک مورد استفاده قرار میگیرند. عبارت «سمت سرور» ترجمهی اصطلاح فنی Server Side Scripting است.
صفحات وب داینامیک ابتدا درخواست کلاینت را در سمت سرور پردازش کرده و پس از هر بازدید کاربر، نتیجه را به سمت کاربر ارسال میکنند.
منظور از کلایت همان کاربر یا بازدید کننده است.
انتخاب بین این دو زبان اسکریپتنویسی بستگی به مواردی از جمله بزرگی سایت، قابلیتهای توسعه سایت، هزینههای هاستیگ، هزینههای پشتیبانی و زمان پیادهسازی و… دارد. در ادامه به بررسی بعضی از این موارد خواهیم پرداخت.
زبان برنامهنویسی ASP یا ASP.net چیست؟
- php vs ASP.net
ASP سرکلمات عبارت Active Server Pages است و یک محصول منحصر به فرد برای شرکت مایکروسافت به حساب میآید. این زبان برنامهنویسی اکنون منسوخ شده است و جای خود را به زبان اسکریپتنویسی ASP.net داده است.
در واقع ASP.net یک زبان برنامهنویسی نیست، بلکه یک تکنولوژی برنامهنویسی وب با استفاده از داتنت است.
شما میتوانید با #C یا #F یا زبانهای برنامهنویسی دیگر داتنت، ASP.net بنویسید. اما چون شما با آن به عنوان یک زبان آشنا هستید، من در این مقاله از ASP.net به عنوان یک زبان برنامهنویسی یاد میکنم.
بیشتر شرکتها و سازمانهای بزرگ برای نرمافزارهای تحت وب خود از این زبان برنامهنویسی استفاده میکنند. نرمافزاری که بیشترین هماهنگی با این زبان برنامهنویسی را دارد، به عنوان Microsoft Visual Studio شناخته میشود که در واقع محیط برنامهنویسی مایکروسافت محسوب میشود. در این نرمافزار قابلیتهای بسیار زیادی برای برنامهنویسی به صورت پیشفرض قرار گرفتهاند که کار برنامهنویسی را برای برنامهنویسان بسیار راحت میکند.
معمولاً تعداد خطهای کدی که باید برای یک برنامه به زبان ASP.net نوشته شود نسبت به محصولات مشابه کمی بیشتر است. همین دلیل به تنهایی میتواند تا حدودی باعث زمانگیر بودن کدنویسی در این زبان برنامهنویسی برای فعالیتهای پیچیده شود. در صورتی که تغییری در هر خط کد از این زبان برنامهنویسی انجام شود، به ناچار کل برنامه باید مجددا کامپایل شود. بنابراین زمان برنامهنویسی تا حدودی افزایش مییابد.
پیشرفتها و توسعههایی که در این زبان برنامهنویسی انجام میشود، توسط بازخوردها و تجاربی است که کاربران این محصول به سایت این شرکت اطلاع میدهند. همین موضوع باعث ارایه نسخههای جدیدتر این زبان برنامهنویسی با امکانات جدید میشود.
ماژولهای آماده، محیط ساده و رابط کاربری آسان، برنامهنویسی را برای برنامهنویسان این زبان لذت بخش میکند.
-
هزینههای ASP.net
توجه کنید که یکی از مشکلاتی که در دنیای زبانهای برنامهنویسی به داتنت وارد میشود، هزینهای است که برای خرید نرمافزارهای آن صرف میشود. اما با توجه به اینکه ما در ایران هستیم و هیچ هزینهای برای خرید این نرمافزارها نمیکنیم، ASP.net میتواند گزینه مناسبی برای برنامهنویسی وب باشد. در این مورد در انتهای این مطلب بیشتر صحبت میکنم.
وب سروری که با این زبان برنامهنویسی هماهنگ است، صرفاً وب سرور شرکت مایکروسافت است. نام این وبسرویس IIS است که از سرکلمات عبارت Internet Information Service گرفته شده است. معمولاً به عنوان پایگاه داده نیز در این نوع زبان برنامهنویسی از Microsoft SQL Server استفاده میشود.
درست است که ASP.net و IIS هر دو نرمافزارهایی رایگان هستند؛ اما شما برای لایسنس ویندوز باید پول پرداخت کنید و از طرفی نرمافزار Visual Studio نیز نرمافزار ارزان قیمتی نیست.
-
مالکیت و پشتیبانی ASP.net
ASP.net تحت برند مایکروسافت است و این یعنی بسیاری از زبانها یا پلتفرمهای دیگر را پشتیبانی میکند؛ اما در عین حال به شما امکانات بسیار سادهای برای شروع برنامهنویسی میدهد.
پشتیبانی زبان برنامهنویسی ASP.net توسط سایت و مرجعی به نام MSDN انجام میشود که سرکلمات عبارت Microsoft Software Developer Network است.
زبان برنامهنویسی PHP چیست؟
PHP سرکلمات عبارت PHP Hypertext Preprocessor است و یک نرمافزار یا بستر برنامهنویسی متن باز و رایگان است که توسط شخصی به نام رزموس لردورف در سال ۱۹۹۵ طراحی و ایجاد شد.
یکی از نکات مهمی که در خصوص برنامهنویسی به زبان PHP وجود دارد این است که این زبان وابسته به هیچ پلتفرم خاصی نیست و میتوان آن را بر روی هر سیستم عاملی اجرا و استفاده کرد.
شرکتهای متوسط و کوچک، بیشتر از این زبان برنامهنویسی در دنیا استفاده میکنند؛ زیرا هزینه توسعه و همچنین هزینه هاستینگی که در اینترنت دارد، بسیار ارزان است.
بسیاری از ابزارهای رایگان برای توسعهدهندگان این زبان برنامهنویسی به صورت رایگان در اینترنت وجود دارد که به برنامهنویسان PHP این امکان را میدهد که بتوانند بهراحتی با آنها برنامه بنویسند.
تکنولوژی زبانهای برنامهنویسی ASP.net بهتر است یا PHP؟
زبان برنامهنویسی PHP در اصل و ماهیت برای نوشتن اسکریپتهای وب ایجاد شد و هدف اصلی آن کاهش پیچیدگیهای زبانهای برنامهنویسیهای وب مانند Perl و CGI بود.
PHP ایجاد شد تا این امکان را ایجاد کند که افراد تازهکار نیز بتوانند در این حوزه شروع به فعالیت کنند. به همین دلیل بیشتر کارهای ساده و طراحی سایتهای کوچک با این زبان برنامهنویسی شروع شد. در ابتدا، برنامهنویسان حرفهای از این زبان استفاده نمیکردند؛ اما به مرور زمان با توجه به گسترش نرمافزارهای OpenSource حرکت رو به جلوی این زبان بسیار سریع صورت گرفت.
یکی از مشکلاتی که به این زبان گرفته میشد عدم وجود توابع زیاد و همچنین دستورات کم بود که با گستردگی استفاده از PHP این موانع و مشکلات برطرف شد و امروزه میتوان با PHP توابع و کارهای تقریباً پیچیدهای را برنامهنویسی کرد.
PHP یک زبان مفسری است؛ یعنی در هر بار اجرا باید کد توسط وبسرور خط به خط اجرا و نتیجه نمایش داده شود.
اگر شخصی بتواند به سرور لینوکسی یا آپاچی شما دسترسی پیدا کند، با توجه به اینکه کدهای شما به صورت کامپایل نشده و Open Source روی سرور قرار دارند، میتواند به آنها دسترسی پیدا کنند. این مشکل در ASP.net وجود ندارد؛ زیرا برنامه قبل از اجرا به فایلهای DLL کامپایل میشود و باعث عدم نمایش کد به مهاجم میشود. این مشکل را PHP با معرفی تکنولوژی رمزنگاری به نام Zend حل کرد تا بتواند کدهای PHP را Encode کند و دیگر نگران این مسأله نباشد.
در ابتدا PHP از شیگرایی پشتیبانی نمیکرد؛ اما به مرور این قابلیت به یکی از قدرتهای این زبان تبدیل شد. تکنولوژی کاربردی این زبان بیشتر برای نوشتن و اجرا کردن اسکریپتهای وب برای اجرا در سیستم عاملهای Open Source مانند یونیکس و لینوکس استفاده میشود.
-
LAMP چیست؟
یکی از قدرتهای بی بدیل PHP عدم وابستگی به پلتفرم خاص است؛ یعنی برنامههایی که با زبان PHP نوشته میشوند، بهراحتی قابل اجرا بر روی هر سیستم عاملی از جمله ویندوز هستند. اما ذاتاً تکنولوژی برنامهنویسی وب PHP مبتنی بر یک ساختار است که به آن در اصطلاح فنی LAMP میگویند.
LAMP سرکلمات کلمات زیر است:
- Linux به عنوان سیستم عامل
- Apache به عنوان وب سرور
- MySQL به عنوان پایگاه داده
- PHP به عنوان زبان برنامهنویسی
بنابراین اکثر افرادی که به برنامهنویسی وب PHP میپردازند، با این ابزارهای کاملاً رایگان آشنا هستند. جالب اینجاست که بهراحتی میتوان این ابزارها را در سیستم عامل ویندوز نیز نصب و استفاده کرد.
-
اما ASP.net
یکی از قدرتهای اصلی ASP.net وجود کتابخانهها یا همان Libraryهای بسیار غنی و توایع زیاد و همچنین کلاسهای زیادی است که در ASP.net وجود دارد و همین امر امکان انجام تقریباً هر کاری را در محیط وب به یک برنامهنویس میدهد.
در ASP.net کدها در سمت سرور Encode میشوند و اگر کسی بتواند به سرور دسترسی پیدا کند نمیتواند از این کدها که در قالب فایلهای DLL هستند استفاده کند. در اصطلاح فنی به این عملیات Code-Behind گفته میشود.
زبان برنامهنویسی ASP.net ذاتاً برای سیستم عامل ویندوز و استفاده در آن طراحی و ایجاد شده است و بیشتر برنامههایی که در این زبان نوشته میشوند وابسته به سیستم عامل ویندوز هستند. البته این نکته را به عنوان نکته منفی در خصوص زبان برنامهنویسی ASP.net مطرح میکنند؛ اما توجه کنید که مایکروسافت پروژههایی را شروع کرده است که برنامههایی که توسط ASP.net نوشته میشوند بر روی سیستم عاملهای دیگر نیز قابل اجرا باشند. معروفترین این پروژهها به نام MONO شناخته میشود. بنابراین در آیندهای نه چندان دور شاهد این خواهیم بود که برنامههایی که توسط ASP.net نوشته میشوند، بهراحتی بر روی لینوکس و یونیکس نیز اجرا شوند.
از نظر تکنولوژی و معماری ASP.net و Java از پلتفرمهایی هستند که در سطح Enterprise و کلان استفاده میشوند و PHP معمولاً برای نوشتن اسکریپتهای وب استفاده میشود.
همانطور که قبلاً هم اشاره کردم، برای نوشتن یک برنامهی پیچیده در زبان ASP.net تعداد خطوط کد بیشتری نسبت به PHP نیاز است و به همین دلیل زمان تولید و توسعه (Develop Time) مربوط به زبان برناهنویسی ASP.net نسبت به زمان مشابه PHP بیشتر است.
بر خلاف PHP که یک زبان مفسری است، ASP.net یک زبان کامپایلری است. بدین معنا که کدها بعد از هر بار نوشتن؛ مجدداً باید کامپایل شده و با فایلهای DLL تبدیل شوند.
کدام یک از زبانهای برنامهنویسی ASP.net یا PHP آسانتر است؟
بحث سادگی کار با یک محیط برنامهنویسی بستگی به موارد مختلفی دارد که از جمله آنها میتوان به اندازهی پروژهای که میخواهیم انجام دهیم، اشاره کرد.
-
میزان سادگی زبان برنامهنویسی PHP
در وهلهی اول باید بگویم که یادگیری زبان PHP قطعاً برای شروع سادهتر از برنامهنویسی به زبان ASP.net است اما برای برنامهنویسی اسکریپتهای چند خطی یا سایتهای کوچک نه برای نوشتن وباپلیکیشنهای بزرگ و سازمانی و یا اتوماسیونهای اداری پیچیده.
اگر میخواهید صرفاً یک سایت یا یک CMS یا یک وباپلیکیشن ساده و دارای پیچیدگیهای کم بنویسید، برای شروع یادگیری PHP بهترین گزینه است.
شما با استفاده از هر ویرایشگر متنی قادر به نوشتن کدهای PHP هستید که این خود یکی از مزایای اصلی این زبان برنامهنویسی وب است. متاسفانه PHP ویرایشگر و ابزار مشخصی برای کدنویسی ندارد. شرکتهای مختلفی در اینترنت ابزارهای مختلفی برای کدنویسی این محصول ارایه دادهاند که این خود یک عدم تمرکز برای برنامهنویسی PHP را ایجاد میکند.
-
میزان سادگی زبان برنامهنویسی ASP.net
اما اگر قصد برنامهنویسی وباپلیکیشنهایی در سطح Enterprise دارید، ترجیحاً ASP.net را انتخاب کنید.
هدف اصلی و ماهیت واقعی زبان ASP.net (که همانطور که گفتم یک پلتفرم به حساب میآید) نوشتن وباپلیکیشنهای بزرگ و دارای فرمها و اطلاعات ورودی و پیچیدگیهای زیاد است.
برای کسانی که به برنامهنویسی در محیطهای گرافیکی عادت دارند، این زبان بسیار بهتر است. در ASP.net شما در قالب استفاده از ابزارهای گرافیکی بهراحتی میتوانید تولید کد داشته باشید و همچنین با استفاده از فرمهای آماده یا همان وبفرمها میتوانید بهراحتی به بانکهای اطلاعاتی و ماهیتهای مختلف اطلاعات و جدولها به صورت گرافیکی دسترسی پیدا کنید، بدون اینکه نیاز به کد نوشتن داشته باشید.
ASP.net به صورت خودکار با ماژولهایی که در اختیار دارد این کدها را برای شما ایجاد میکند. در کنار اینها فریم ورک داتنت برخی از موارد مانند Caching، احراز هویت و بسیاری دیگر از این مسایل را به خودی خود انجام میدهد.
توابع ASP.net اینقدر زیاد است که تقریباً شما را از استفاده کردن از توابع خارجی در برنامهنویسی خود بینیاز میکند.
تمامی کارهایی که قرار است شما در ASP.net انجام دهید در یک محیط یکپارچه یا بهتر بگوییم یک ابزار قدرتمند به نام Microsoft Visual Studio انجام میشود که طبیعتاً سادگیهای کار گرافیکی در محصولات مایکروسافت به خوبی در این نرمافزار نیز دیده میشود.
وابستگی به سیستم عامل در ASP.net بیشتر است یا در PHP؟
یکی از مواردی که تا چند وقت پیش به عنوان مزیت PHP بر ASP.net مطرح میشد، این بود که کدهای نوشته شده توسط PHP بر روی هر سیستم عاملی قابل اجرا هستند و این موضوع برای کدهای ASP.net وجود ندارد.
با این موضوع تا حدودی موافق هستیم؛ اما نه امروز.
همانطور که کدهای PHP بهراحتی با استفاده از نرمافزارهای شبیهسازی مثل WAMP و XAMP و… بر روی سیستم عامل ویندوز اجرا میشوند و شما نیازی نیست برای برنامهنویسی PHP حتما لینوکس بلد باشید. شما با پروژه معروفی به نام MONO که مایکروسافت آن ار ارایه کرده است، میتوانید کدهای ASP.net را بر روی پلتفرمهایی مثل لینوکس و یونیکس اجرا و کدنویسی کنید.
همین مورد باعث شده که دیگر ASP.net این ضعف را نداشته باشد. اما به دلایل:
- عدم شناخت درست افراد از وجود چنین پروژهای
- همچنین عادت کردن به زبان PHP
- و گسترده شدن این زبان
معمولاً این مسأله عنوان نمیشود. هر چند شخصی که واقعاً میخواهد کدنویسی در محیط ASP.net کند در ۹۹ درصد موارد از ویندوز استفاده میکند؛ اما با این پروژه حرف و حدیثها در مقابل این نقطه ضعف تمام شد.
امنیت ASP.net بیشتر است یا PHP؟
پرسیدن این موضوع که امنیت در ASP.net بیشتر است یا در PHP دقیقا مثل همین سؤال است که امنیت در لینوکس بیشتر است یا در ویندوز؟ در نهایت شما به جواب قاطعی در این زمینه دست پیدا نخواهید کرد.
بحث امنیت بیشتر در هر دوی این حوزهها به میزان تخصص و دانش برنامهنویس بستگی دارد.
اما مواردی هست که کمیقبلتر هم در مورد آنها صحبت کردم. یکی از موارد امنیتی که در پروژههای PHP وجود داشت این بود که فایلهای PHP متن باز هستند و در صورتی که کسی به سرور شما دسترسی داشته باشد، میتواند سورس کدهای شما را بهراحتی بخواند؛ اما در ویندوز به دلیل اینکه فایلها قبل از اجرا توسط کامپایلر به فایلهای DLL تبدیل میشوند و دارای قابلیت Code-Behind هستند نمیتوان از این نقطه ضعف استفاده کرد. PHP برای پوشش این مسأله و Encode کردن سورس کدهای خود قابلیت Zend را معرفی کرد که یک روش رمزنگاری برای کدهای PHP است که دیگر این نقطه ضعف را نداشته باشند.
گفته میشود: «یکی دیگر از مزایایی که به عنوان مزیتی امنیتی برای PHP محسوب میشود، این است که نرمافزارهایی که به صورت عام و در قالب پروژههایی مثل GNU ارایه میشوند، متن باز هستند و شما میتوانید سورس کد آنها را مشاهده و از نظر امنیتی آن را تحلیل کنید و به دلیل استفاده زیاد افراد در دنیا از این گونه نرمافزارها و به دست آوردن باگهای امنیتی آن کدهای PHP از امنیت بالاتری برخوردارند.»
سرعت و کارایی ASP.net بیشتر است یا PHP؟
قبل از این که این بحث را باز کنم، یک مسأله را هم روشن کنم:
شما هر کاری را که میتوانید با زبان برنامهنویسی PHP انجام دهید با زبان برنامهنویسی ASP.net نیز میتوانید انجام دهید و بر عکس همین موضوع نیز صادق است.
سرعت و کارایی هر زبان برنامهنویسی به عوامل مختلفی بستگی دارد که از آن جمله میتوان به تکنولوژی مورد استفاده در زبان برنامهنویسی، نوع سیستم عامل مورد استفاده، نوع فایل سیستم مورد استفاده، بزرگی و گستردگی برنامه و پروژه و دانش برنامهنویسی اشاره کرد.
-
کامپایلری یا مفسری بودن زبان
در وهلهی اول برنامهنویسان ASP.net اینطور القا میکنند که چون زبان برنامهنویسی ASP.net یک زبان کامپایلری است و زبان PHP یک زبان مفسری است بنابراین سرعت اجرا کدها در ASP.net بیشتر از سرعت اجرا کدها در PHP است. این حرف هم درست است و هم اشتباه.
درست از این بابت که سرعت اجرای برنامههای کامپایل شده که در قالب فایلهای DLL وجود دارند از برنامههای مفسری که به صورت خط به خط اجرا میشوند بیشتر است.
یک اسکریپت PHP سرعت بیشتری نسبت به اسکریپت مشابه در ASP.net دارد؛ اما دلیلی برای اینکار وجود دارد. زمانی که شما یک اسکریپت PHP را اجرا میکنید، این کد به سرعت تفسیر شده و اجرا میشود و خروجی به مرورگر کاربر ارسال میشود که در این میان وقفهای نداریم؛ اما زمانی که صحبت از اسکریپت ASP.net میشود این کد علاوه بر این که به خودی خود باید اجرا شود، باید چندین ماژول مانند ماژولهای خواندن تنظیمات، کنترل کردن وبفرمها، انجام authenticationها و بسیاری دیگر از موارد را به صورت همزمان انجام دهد که همین مورد باعث کمتر شدن سرعت آن نسبت به مفسر PHP میشود.
اینجا است که برنامهنویسهای PHP به خود مغرور میشوند که زبان سریعتری دارند؛ اما حقیقت طور دیگری است. بدون شک در برنامههایی با تعداد خطوط پایین و اسکریپتهای کوچک برتری با PHP است. اما در سطوح کلان و برنامههای بسیار بزرگ سطح Enterprise که دارای دهها یا صدها هزاران خط هستند برتری بدون شک با زبانهای کامپایلری است. هر چند برنامههایی برای سرعت بخشیدن به عملیات اجرای کدهای PHP ایجاد شده است اما همچنان برتری در سطح کلان با ASP.net است.
-
نقش سیستم عامل
نوع سیستم عامل نیز عامل بسیار مهمیدر سرعت اجرای نرمافزارها است. قطعاً و بدون شک سیستم عامل ویندوز از نظر کارایی و سرعت نمیتواند با سرویسهای لینوکسی برابری کند. ویندوز به یکباره کلیه منابع سیستم را در اختیار میگیرد و وجود رابط گرافیکی ناخواسته سرعت اجرای نرمافزارها و سرویسها را کند میکند. اما لینوکس بر حسب نیاز اینکار را انجام میدهد و تمامیکارها از طریق Command و دستورات خط فرمان انجام میشود و رابط گرافیکی عملاً وجود ندارد.
سرویسهای لینوکس بسیار قابل اعتمادتر از سرویسهای ویندوزی هستند و قطعاً به این مورد برخوردهاید که با انجام هر تغییری در سیستم عامل ویندوز یک Restart نیاز است.
اگر کدهای ASP.net را بر روی سرور لینوکس و از طرفی کدهای PHP را بر روی سرور ویندوزی اجرا کنید، دیگر سیستم عامل جزو ملاکهای سرعت و کارایی نمیتواند باشد. از طرفی طبق تحقیقات، فایل سیستم مورد استفاده در هارد دیسک شما نیز میتواند عامل سرعت اجرای کد شما باشد. در این حالت گفته میشود بهترین فایل سیستم برای سرعت فایل سیستم لینوکسی ext4 است.
هر چند این ملاکها نسبی است؛ زیرا من بیشتر میخواهم دربارهی خود برنامهنویسی صحبت کنم نه سخت افزار و فایل سیستم. در اینصورت وجود RAID در هارد دیسکها نیز میتواند جزو ملاکها محسوب شود. با توجه به تحقیقات انجام شده در صورت اجرای کدهای ASP.net با استفاده از MONO در لینوکس سرعت اجرا آن از PHP به نسبت بالاتر خواهد بود.
-
دانش برنامهنویسی
از همه اینها که بگذریم، مهم دانش برنامهنویسی است که در این حوزه استفاده میشود. شیوه Query گرفتن و شیوه کدنویسی بر حسب دانش افراد در این حوزه متفاوت است.
هر چقدر هم که شما پروژه بزرگتری داشته باشید، طبیعی است که به دانش بیشتری نیاز خواهید داشت. این موضوع را به یک خاطره بیشتر باز میکنم:
همانطور که میدانیم در حوزه پایگاه داده قطعاً Oracle از برتری مشهوی نسبت به MSSQL Sever برخوردار است. در یکی از پروژههایی که یکی از دوستان در یک سازمان دولتی داشت قرار شد که یک Query از دیتابیسهای Oracle گرفته شود که بعد از نوشته شدن این Query و اجرای آن در حدود ۳۰ ثانیه پاسخ به Query و دریافت پاسخ از Oracle طول کشید؛ اما جالب اینجا بود که همین Query در MSSQL Server تنها ۵ ثانیه طول میکشید.
اینجا مسأله دانش Oracle بود که دوست من این دانش را نداشت. فردای همان روز یک Oracle کار حرفهای همان Query را با کمیتغییر در Oracle وارد کرد و مشاهده کردیم که پاسخ در کمتر از یک دهم ثانیه ارایه شد. این نشان از اهمیت دانش برنامهنویسی و کدنویسی در سرعت و کارایی یک برنامه دارد که واقعاً از همه چیز در بحث سرعت و کارایی مهمتر است.
ابزارها و رابطهای کاربری ASP.net بهتر است یا PHP؟
برای هر یک از زبانهای برنامهنویسی PHP و ASP.net یک محیط برنامهنویسی وجود دارد که در اصطلاح فنی به آن IDE گفته میشود.
یکی از مزایای بسیار خوب زبان برنامهنویسی PHP این است که نیازی به محیط برنامهنویسی خاصی ندارد. تقریباً شما میتوانید با هر ویرایشگر متنی که در دسترس است به زبان PHP کدنویسی کنید. این مورد یکی از مزایای عالی زبان PHP به حساب میآید. البته این مورد یک بدی هم دارد که قبلتر به آن اشاره کردم. آن هم این که نداشتن ویرایشگر کد اختصاصی باعث عدم تمرکز در این مورد شده است.
اما برای ASP.net یک IDE معروف وجود دارد به نام Microsoft Visual Studio. نرمافزاری گرافیکی که با استفاده از محیط آن بهراحتی میتوانید برنامههای خود به زبان ASP.net را کدنویسی کنید. البته انحصاری بودن آن یکی از نقاط ضعف ASP.net محسوب میشود.
در کنار IDEها بحث ابزارها و اسکریپتهای آماده نیز وجود دارد. بدون شک برای زبان PHP اسکریپتهای آماده و همچنین کدهای آمادهی بسیار بیشتری وجود دارد.
درست است که پروژههای Open Source برای ASP.net هم وجود دارد؛ اما واقعاً با پروژهها و اسکریپتها و نرمافزارهای متن بازی که برای PHP وجود دارد، قابل مقایسه نیستند. تقریباً شما هر نوع اسکریپت آمادهای را که بخواهید میتوانید به زبان PHP آن را با یک جستجوی ساده پیدا کنید. از این موضوع هم غافل نشویم که اگر در ASP.net شما فقط از یک IDE انحصاری استفاده میکنید این IDE شما را از استفاده کردن از هر IDE دیگری بی نیاز میکند.
سرعت توسعه کدام یک از زبانهای برنامهنویسی بیشتر است؟
سرعت توسعه و پیشرفت هر یک از این زبانهای برنامهنویسی به عوامل متعددی بستگی دارد که از آن جمله میتوان به پشتیبانی، منابع آموزشی و یادگیری و بازار کار این زبانهای برنامهنویسی وب اشاره کرد.
-
پشتیبانی ASP.net
در خصوص پشتیبانی یکی از مهمترین موارد، وجود یک ارگان یا یک شرکت منسجم در پسزمینه است. در خصوص برنامهنویسی ASP.net قطعاً نمیتوان به غول نرمافزاری بزرگ دنیا یعنی مایکروسافت شک کرد.
شرکت مایکروسافت به خوبی و با بهترین و منسجمترین حالت ممکن همیشه در حال بهروزرسانی، پشتیبانی و ارتقای ASP.net است. همچنین مرجعی به نام MSDN وجود دارد که شما میتوانید مشکلات خود را آنجا مرتفع کنید.
از دیگر نقاط قوت ASP.net این است که کتابهایی که برای این محصول نوشته میشود هم همیشه منسجم و دارای نظم و یکپارچگی خاصی هستند؛ زیرا از طرف شرکت مایکروسافت به خوبی پشتیبانی میشوند.
وجود سایتی مثل TechNet و امثال آنها برای پشتیبانی و دریافت بازخورد از کاربران، یکی دیگر از نقاط قوت این زبان برنامهنویسی است.
یکی از نقاط قوت برنامهنویسی به زبان ASP.net پشتیبانی ذاتی این زبان از یونیکد و زبان فارسی است که برای برنامهنویسان ایرانی این موضوع بسیار مهم است.
یکی از نقاط ضعفی که برای پشتیبانی از ASP.net عنوان میشود این است که فقط یک شرکت انحصاری به نام مایکروسافت از این زبان پشتیبانی میکند و ممکن است این شرکت روزی دیگر از این زبان پشتیبانی نکند و در مقابل برای زبان PHP با توجه به فراگیر بودن آن منابع و پشتیبانیهای متعددی وجود دارد.
به نظر من این یک مبحث طنز است تا یک بحث انتقادی. اگر قرار باشد روزی مایکروسافت از ASP.net پشتیبانی نکند، قطعاً باید بیشتر به فکر ویندوز باشیم تا برنامهنویسی داتنت.
-
پشتیبانی PHP
در مقایسه با ASP.net منابعی که در اینترنت برای آموزش و یادگیری PHP وجود دارد، بسیار فراوانتر و گسترده است. این امر کاملاً طبیعی است؛ زیرا عمومیت بیشتری در استفاده از PHP نسبت به ASP.net وجود دارد.
بر حسب ذات Open Source بودن PHP، سایتها و تالارهای گفتمان تخصصی بسیار زیادی برای پشتیبانی از این محصول وجود دارد. بهعلاوه بهطور رسمی شرکتی به نام Zend مسؤول توسعه و ارایه نسخههای جدید PHP است که به پشتیبان اصلی این زبان معروف است. شرکت Zend همان کاری را انجام میدهد که مایکروسافت برای ASP.net انجام میدهد. در واقع این شرکت وظیفهی بهروز کردن انجین مربوط به PHP را بر عهده دارد.
پس هیچوقت نیازی نیست که نگران پشتیبانی یا عدم پشتیبانی از PHP باشیم. آن قدر منابع آموزشی و اسکریپتهای آماده برای یادگیری این محصول وجود دارد که به هیچ عنوان وابستگی به شرکت خاصی ندارد.
با توجه به سادگی یادگیری و توسعه نرمافزارها در PHP و سهولت کاربری برای برنامهنویسان تازه کار، سرعت توسعه و پیشرفت این زبان نیز به سرعت رو به پیشرفت است.
بازار کار زبانهای برنامهنویسی ASP.net و PHP
از دیگر مسایلی که بسیار زیاد در توسعه و پیشرفت زبانهای برنامهنویسی وب دارای اهمیت هستند، بحث بازار کار آن است. قطعاً برنامهنویسی که قصد ورود به بازار کار را دارد، میخواهد بهترین گزینه برای اینکار را انتخاب کند. معروف است که چه در ایران و چه در خارج از کشور تفاوتی در بازار کار این زبانهای برنامهنویسی وجود ندارد.
البته من (میثم عربی؛ نویسندهی این مطلب) با توجه به تجربیات شخصی خودم فکر میکنم بازار کار PHP هم در ایران و هم در اروپا بسیار بهتر از بازار کار ASP.net است. در مورد بازار آمریکا اطلاعی ندارم.
نکتهی مهم دیگر این که معمولاً سازمانهای بزرگ، علاقهمند به جذب برنامهنویسان ASP.net هستند. در مقابل شرکتهای کوچک و متوسط بیشتر برای کارهای وب خود ترجیح به جذب برنامهنویسان PHP دارند. توجه کنید که به طور میانگین حقوق یک برنامهنویس ASP.net بیشتر از یک برنامهنویس PHP است. همین موضوع میتواند عاملی برای توسعه بیشتر این زبان برنامهنویسی در دنیا باشد.
هزینه استفاده از ASP.net بیشتر است یا PHP؟
قبل از اینکه به سراغ هزینه برویم، اول یک مورد را مشخص کنیم: آیا شما در کشور ایران زندگی و برنامهنویسی میکنید یا در یک کشور خارجی؟ این موضوع خیلی مهم است.
-
هزینههای استفاده از PHP
در خصوص هزینههای استفاده از این زبانهای برنامهنویسی، یکی از مواردی که PHP کارها به عنوان نقطه قوت خود میدانند، رایگان بودن کلیه بستههای نرمافزاری مورد استفاده در این زبان است. ساختار کاری PHP بر اساس پروژه GNU و نرمافزارهای آزاد است. بدین معنی که همه چیز در حوزهی نرمافزار در اینجا رایگان است.
سیستم برنامهنویسی PHP یک ساختار مشخص دارد که به عنوان LAMP شناخته میشود. همانطور که قبلا هم اشاره کردم، این کلمه سرکلمات عبارت Linux و Apache و MySQL و PHP است. همه این بستههای نرمافزاری، بدون هیچ گونه هزینه ی اضافی و به صورت رایگان – چه در ایران و چه در دیگر نقاط جهان – برای برنامهنویسان در دسترس است.
پس از این بابت، برای افرادی که در خارج از کشور زندگی میکنند کاملاً PHP به صرفه است؛ زیرا کوچکترین هزینهای بابت خرید لایسنس نرمافزار خود نباید بدهند. هم لینوکس رایگان است و هم آپاچی و هم MySQL. پس نیازی به هزینههای اضافی نیست.
-
هزینههای استفاده از ASP.net
از طرف دیگر در برنامهنویسی به زبان ASP.net چیزی به نام رایگان وجود ندارد. شما باید برای هر چیزی در این حوزه هزینه کنید و طبیعی است؛ زیرا یک شرکت در دنیا پشتیبانی کلی مجموعه ASP.net را بر عهده دارد نه یک جامعه. به همین دلیل شرکت سازنده باید بتواند از پس مخارج خود در بیاید.
ASP.net باید:
- بر روی ویندوزی نصب شود که خود ویندوز سیستم عامل رایگانی نیست.
- بر روی Microsoft Visual Studio ایجاد شود که آن هم رایگان نیست.
- از پایگاه دادهای استفاده کند به نام MSSQL که آن هم رایگان نیست.
- از وب سروری استفاده کند که در سیستم عاملهای مایکروسافت نصب شود.
بنابراین استفاده از ASP.net هزینههایی را در بر دارد. البته این هزینهها برای اشخاص یا شرکتهایی است که در خارج از کشور هستند. در ایران ما چیزی به عنوان هزینه نرمافزار نداریم. قبلترها جملهی معروف و بامزهای بود که میگفت: «اینجا قیمت ویندوز سون از ماست سون کمتر است!!»
-
هزینههای ASP.net در ایران و قانون کپیرایت
صحبت از هزینه در ایران بی معنی است. در خارج از کشور هم اینگونه نیست که همه به سراغ PHP بروند؛ زیرا هزینه کمتری دارد، شرکتها و سازمانهای بزرگی که در حال پیادهسازی پروژههای Enterprise هستند، بهراحتی هزینههای اولیه خرید لایسنس بسته ASP.net را قبول میکنند؛ زیرا به قابلیتهای این بسته برای انجام پروژههای سنگین اعتماد دارند. از طرفی این هزینه فقط یکبار انجام میشود و طبیعی است که هر بار نیاز به تکرار آن نیست.
مورد دیگر این است که اگر ایران به قانون کپی رایت بپیوندد، چه اتفاقی برای برنامهنویسان ASP.net میافتد؟ در واقع این نیز یک نکته جالب برای برتری PHP عنوان میشود؛ اما خب چند نکته را در این خصوص باید متذکر شویم:
اول به این نکته توجه کنید که زمانی که شما به قانون کپی رایت بپیوندید، دغدغههایی بیشتر از ASP.net خواهید داشت. ما هزاران نرمافزار دیگر نیز داریم که دارای همین مشکل هستند. بنابراین اگر ایران به قانون کپی رایت بپیوندد، قطعاً کشورهای دیگر دنیا با علم به وجود چنین موردی به صورت گام به گام مراحل سوق به سمت کپی رایت را در ایران پیش میبرند و نه به یکباره.
از طرف دیگر پروژههایی که در حوزه ASP.net انجام میشود معمولاً پروژههای بزرگی هستند که هزینههای بالایی نیز دارند. همیشه به فکر هزینه نباشید. چه بسا یکبار برای خرید بسته ASP.net هزینه میکنید؛ اما بارها در پروژههای گسترده سازمانی از آنها استفاده میکنید و قطعاً در همان بار اول هزینههای خرید نرمافزار خود را در میآورید.
بدون شک چه بخواهیم و چه نخواهیم بسته نرمافزاری ASP.net از قدرت بیشتر و امکانات بیشتری نسبت به PHP برخوردار است. اگر هم هزینهای بابت آن، آن هم در صورت پذیرفتن قانون کپی رایت به وجود بیاید دریافت شود ارزشش را دارد.
نتیجهی نهایی مقایسه زبانهای برنامهنویسی PHP و ASP.net
فاکتورهای مختلفی را در رابطه با مقایسهی این دو زبان برنامهنویسی وب عنوان کردمم. اما سعی کردم حقایق را عنوان کنم و طرفداری از محصول خاصی را نکنم.
در نهایت، این خلاقیت، دانش و مهارت برنامهنویس است که یک زبان برنامهنویسی را خوب جلوه میدهد و یا برعکس.
یک برنامهنویس حرفهای باید بتواند با پلتفرمها و ابزارهای مختلف کار کند و با آنها تا حدودی آشنایی داشته باشد. نوع ابزار مهم نیست. مهم دانش و شیوه ی پیادهسازی است.
برای یک برنامهنویس حرفهای، سویچ کردن از زبانهای برنامهنویسی ASP.net به PHP و برعکس، کار چندان سختی نیست؛ زیرا مفاهیم را همیشه در ذهن دارد. تعصب بیجا به یک زبان برنامهنویسی صرفاً برای برنامهنویسان مبتدی است، نه برای برنامهنویسان حرفهای.
انتخاب یک زبان برنامهنویسی به به سطح و اندازه کار و نیازمندیهای پروژه شما دارد که در پاراگرافهای قبل به این مسأله اشاره کردم. در نهایت مهمترین رکن در برتری یک زبان برنامهنویسی دانش شخصی است که زبان را در دست میگیرد.
اگر این مطلب آموزشی برایتان جالب بود، به مطلب محبوبترین زبانهای برنامهنویسی نیز نگاهی بیاندازید.
ممنون از این مقاله کاربردی
با سلام خدمت تمام عزيزان و تشكر از مقاله مفيد و مفصلتون.
من قصد سفارش كار براي طراحي يك سايت فروشگاهي اختصاصي با امكانات اختصاصي كه مرتبط با اپليكيشن هاي اندرويد و آي او اس باشه و از طرفي نرم افزار ويندوزي هم داشته باشه دارم. با توجه به تجربيات شما آيا اينكه اين پروژه با چه زباني نوشته بشه با در نظر گرفتن امكان گسترش پروژه و داستانهاي ديگه ، چقدر مهمه و آيا خودتون براي اين پروژه زبان خاصي رو پيشنهاد ميكنيد ؟
با سپاس
این معیارهایی که گفتید در هر ۲ زبان php و asp قابل پیادهسازیه.
خیلی ممنون
خیلی خوب بود
سلام
بنده از دوتاش استفاده میکنم !! پس نظر خوم رو میگم:
در php دستت کاملاً باز هست ، اما در Asp.net با یه سری محدودیت ها روبرو میشی ولی خب اونم راه براش گذاشته
در php باید برنامه نویس امنیت صد در صد رو پیاده کنه ، اما در asp مایکروسافت یه سری تدابیری اندیشیده و تا حدودی امنیت رو تامین میکنه ، مثلا فایرباگ !
توی php اگه یه textbox داشته باشی باید تو کد نویسی بگی if(isset (باید چک کنی که بگی اگر یه مقدار گرفته باشه ، یعنی اگر کسی تو فایرباگ name رو پاک کرد ، چک کنی !!) ، اما تو asp مایکروسافت خودش اینکار رو انجام داده../
در Asp کد نوشتن سریعتر پیش میره ، اما در php بسیار وقت گیر!
از نظر من هر دوتاش یه مزایا و معایبی داره ، نمیشه گفت کدوم بهتره کدوم بدتره ، در کل با هر دو هم میشه بهترین سایت با بهترین امکانات نوشت
خیلیی خوب بود توضیحاتتون
من معتقدم که مقایسه ی این دوتا زبون
مثل این میمونه که بگی اگه ماشین خوب میخوای، مثلا L90 واقعا ماشین خوبیه اما اگه بیشتر کار کنیو تلاش کنیو پولاتو جم کنی، میتونی لذت داشتن مثلا KIA OPTIMA بخری
L90 = PHP
Optima = ASP .NET
ینی هر دو خوبن، کار میکنن و …
اما اگه دنبال درآمد بیشتری، باید ارتقا بدی خودتو ینی بری سراغ .NET
اگه دنبال امکانات بیشتر و قدرت مانور بیشتری، باید ارتقا بدی خودتو و بری سراغ .NET
اینکه تعداد خط کدهات زیاد تر میشه، کاملا نکته ی قابل توجهیه اما نمیشه حتمن هم اسمشو ایراد گذاشت
فرضا منِ برنامه نویس با paython برنامه مینویسم حرفه ای و در حجم ۱۰۰KB اما همون برنامه با C شد ۱KB
گاهی ممکنه خطوط زیا بشه اما امکانات بیشتری بهت میده
زبونای سطح بالا مثل ماشین دنده اتومات میمونه، زود یاد میگیریشو زود میتونی باهاش کار کنی
اما زبونای سطح پایینی مثل C مثل ماشین دنده ای میمونه،
کار کردن باهاش دنگو نگ داره، سخته اما با همون ماشین دنده ایه که میتونی رالی اول بشی! 😀
اینه که .NETکارا، خودشونو بالاتر میدونن
چون واقعا قدرت و درک و دانششون نسبت به PHP کارا بالاتره
اما نتیجه گیری نهایی، خوب بود که گفتین برحسب نیاز باید زبونو انتخاب کرد 🙂