هدف از این مطالب زیر سئوال بردن هیچ زبان و یا صنفی نمی باشد و فقط بر اساس یکسری واقعیتها مطالب را به اطلاع می رساند ، زیرا هر زبانی برای هدف خاصی ارائه شده است و استفاده از تكنولوژی های مایكروسافت به معنی این نیست كه اوپن سورس بد است یا بالعكس .
(PHP (Personal Homepage Processor برای ساده سازی نوشتن سایت های سمت سرور بدون نیاز به برنامه نویسی سخت CGI ایجاد و با استفاده از مزایای متن باز بودن به پیشرفت هایی نائل شد از طرفی مایكروسافت، (ASP (Active Server Pages كه همان VBScript است را برای ورود به دنیای برنامه نویسی وب بدون برنامه نویسی ISAPI و برای جلوگیری از نیاز به JSP شركت سان، ارائه داد.
توفیق های پی اچ پی با ارائه نسخه 5 و ورود به دنیای شی گرا (Object Oriented) باعث پیشی گرفتن از ASP كلاسیك شد و ظاهر بینان، این قضیه را موفقیتی برای اوپن سورس در مقابل مایكروسافت دیدند در حالیكه مایكروسافت قبلاً اعلام كرده بود ASP را نه برای وب سایت های غول پیكر و application های بزرگ، بلكه برای رفع نیاز وب سایت های متوسط ارائه داده است و طبیعتاً در سایت های بزرگ دچار افت نسبی سرعت خواهد شد. تا اینكه مایكروسافت تكنولوژی جدید دات نت را ارائه و در پی آن ASP.Net 1.0 و در سال بعد ASP.Net 1.1 را بعنوان رقیبی جدی برای PHP روانه بازار كرد.
این تكنولوژی علی رغم شباهت اسمی، نسخه جدید ASP نبود ولی برنامه نویسان سنتی و ویژوالی مایكروسافت را قادر می ساخت مانند برنامه نویسی تحت ویندوز، وب سایت ها پویا بسازند ولی اینكه مایكروسافت ایده های تحت وب را با ایده های تحت ویندوز می خواست یكی كند برای وب كاران قدیمی و من خوشایند نبود تا اینكه Whidbey یا همان ASP.Net 2.0 در اواخر سال 2004 ارائه شد!
این تحول بزرگ نه تنها PHP بلكه حتی JSP را هم بنظرم پشت سر گذاشت. در ASP.Net 2.0 تمام نیاز های برنامه نویسان وب بطور كامل لحاظ شده و از همان روز نخست كه با این تكنولوژی آشنا شدم دیگر با دنیای PHP خداحافظی كردم! اینكه زبان PHP را با ASP.Net مقایسه كنیم، كار كاملاً غلطی است چرا كه ASP.Net اصلاً زبان نیست و یك تكنولوژی محسوب می شود و اگر قرار باشد PHP را با زبان هایی كه در این تكنولوژی استفاده می شود مثلاً با C# مقایسه كنیم، مسلما PHP را فاقد صلاحیت برای مقایسه خواهیم یافت!
دات نت فریم وركی با معماری حرفه ای و كاملاً شی گرا و پی اچ پی زبانی اسكریپتی است و سایت های ساخته شده با آن تركیبی از كد PHP و HTML و بقول مهندسان نرم افزار، یك مشت Spaghetti Code است در حالیكه تمام اصول مهندسی نرم افزار را می توان در دات نت پیاده كرد برای مثال كد و طرح از هم جدا می باشند!
PHP زبانی محبوب است ولی از نظر پشتیبانی از شی گرایی و برخی موارد دیگر هنوز در اوایل راه تكامل است و بر عكس زبانی مانند C# (كه می توان آن را پیشرفته ترین زبان مدرن دانست) و یا VB.Net (زبان ساده انتخاب سنتی ها) زبان هایی قدرتمند و منطبق بر اصول هستند. اگر سایتی را با PHP نوشته باشید بایستی كد را هم تحویل مشتری دهید ویا آن را رمزنگاری كنید كه كاری بسیار غیر حرفه ایست! ولی در دات نت شما مختارید كه سورس را بدهید یا اصلاً در اختیار نگذارید و یا اصلا كد های برنامه نویسی را ندهید و فقط كد های HTML را بدهید!
برای اجرای سایت های نوشته شده با پی اچ پی، نیاز به انجین PHP و سرور Apache و احتمالاً برای دیتابیس به MySQL نیاز دارید بنابراین می توانید در ویندوز هم بدون مشكل اجرا كنید. (اینكه چرا همه پی اچ پی كاران از سرور لینوكس استفاده می كنند، به طرز فكر آن ها برمی گردد نه اینكه ایرادی برای ویندوز باشد) و برای اجرای سایت های نوشته شده با دات نت، به فریم وورك .Net، سرور IIS و احتمالاً برای دیتابیس به SQL Server نیاز دارید. (اینكه چرا دات نت كاران از سرور ویندوز استفاده می كنند چون لینوكس نمی تواند از سرور IIS پشتیبانی كند هر چند بجای دات نت می تواند از Mono بهره ببرد)
در مورد معماری نرم افزاری، محیط استفاده از دات نت یعنی Visual Studio و همچنین تمام تكنولوژی های مورد استفاده در مجموعه عظیم dot Net Framework با نرم افزار ها و متدولوژی های مهندسی نرم افزار سازگار بوده و بر عكس در PHP حتی نمی توان كد را از طرح جدا ساخت تا چه برسد به رعایت سایر اصول مهندسی نرم افزار! در ضمن PHP از نظر سرعت اجرا بدلیل ساختار موتور آن از ASP كلاسیك بسیار سریعتر است و برعكس نسبت به ASP.Net ذاتاً كند است!
یعنی كد PHP تفسیری است و در هر بار اجرا خط به خط تفسیر می شود در حالیكه ASP.Net یكبار كامپایل شده و در بقیه موارد بعنوان یك نرم افزار كامپایل شده در نهایت سرعت پاسخ می دهد. (اینكه بگویید مثلاً چرا فلان سایت از بهمان سایت سریعتر یا كند تر است ربطی به زبان ندارد، مربوط به نحوه پیاده سازی برنامه نویس آن است) این را هم در نظر بگیرید كه هنگام اجرای یك صفحه PHP، دستورات یكی یكی سریعاً اجرا و پاسخ به مرورگر ارسال می شود ولی در دات نت در چندین لایه بایستی پردازش انجام گیرد تا خروجی ارسال شود ولی نكته مهم، ذات كامپایل شدن آن است كه هم از لحاظ حفظ حقوق نرم افزار و مالكیت معنوی (یعنی اینكه سورس را ندهیم) و هم از لحاظ مهندسی كامپیوتر، ارجح می باشد.
از لحاظ پشتیبانی از زبان فارسی، مسلماً تكنولوژی های مایكروسافت با پشتیبانی كامل از یونیكد بدون هیچ دردسری نیاز شما را برطرف می كند و بالعكس Php تصور صحیحی از یونیكد نداشته و هرچند تحت شرایطی درست كار بكنند ولی عملاً اطلاعات فارسی موجود در دیتابیس سایت شما بدلیل انكدینگ های نا معلوم فقط به درد خودتان خواهد خورد و هیچگاه مثلاً نخواهید توانست مطالب فارسی موجود در دیتابیس سایت خود را مستقیماً وارد یك نرم افزار تحت دسكتاپ كنید!
در مورد سرعت توسعه پروژ ها، صد در صد توسعه نرم افزار در محیط دات نت بسیار مقرون به صرفه می باشد چرا كه اصولاً هدف استفاده از دات نت، ایجاد وب سایت ها بزرگ با فرم های متعدد است و با استفاده از كنترل های مفید و كتابخانه كد عظیم دات نت می توان ساخت صفحه ای را كه در Php یك روز وقت می برد را در دات نت یك ساعته تمام كنید! حال دو نوع سوال پیش می آید:
1- فلانی سایت بزرگی را با پی اچ پی در سه روز نوشت در حالیكه فلان شركت دات نت كار گفته بود این سایت تا چهار ماه آماده می شود! درسته؟
جواب: فلانی یك اسكریپت آماده را به شما فروخته است و خودش ننوشته! 90% php كاران ایرانی علت گرایششان به زبان PHP را آماده بودن انوع اسكریپت ها می دانند یعنی نه نیاز دارند و نه توانایی آن را كه اسكریپتی را خودشان از صفر بنویسند. این مورد، اصل prefabricate programming نیست در حقیقت بیشتر تقلب است. اوپن سورس بودن زبان به نرم افزار های توسعه داده شده با آن ربطی ندارد بلكه به پیشرفت خود زبان مربوط است. اینكه بگویید فلان سایت خوب است چون php اوپن سورس است، جمله بی ربطی است.
در چند سال اخیر طرز فكری مانند یك انگل در جان جامعه IT ایران افتاده است، این ویروس صنعت نرم افزاری كشور این است كه برخی شركت ها كارشان شده دانلوئد یك سیستم رایگان و متن باز، ترجمه فایل زبان و تغییر نام سیستم و ادعای ساخت آن و در نهایت فروش با قیمت های بالا به افراد نا آگاه! در مدت تحقیق متوجه شده ایم تمامی شركت های ایرانی PHP كار كه اقدام به فروش سیستم های مدیریت محتوا می كنند همگی با جعل نام یك سیستم رایگان مانند جوملا، ادعای ساخت آن را داشته و با نهایت افتخار و بدون كوچكترین توانایی تولید فنی، آن را بفروش می رسانند. حال فكر می كنید چند سایت دولتی كشور ما با قیمت های چند میلیونی بر روی سیستم های متن باز كه سورس آن در اختیار همه قرار دارد (با حالت رایگان كه نقض توافقنامه شده و یا پولی null شده!)، راه اندازی گردیده است؟!! جالب اینكه این اشخاص/شركت ها چنان به اوپن سورس تعصب دارند انگار نه انگار كه نه تنها برای توسعه اوپن سورس كاری نكرده اند بلكه چیزی از آن كاسته (دزدیده) و وارد بازار تجاری كرده اند!
2- اینگه می گویید php كار ها از اسكریپت های آماده استفاده می كنند و این بد است، در دات نت مگر از كامپوننت ها و كنترل های آماده استفاده نمی كنید؟
جواب: اینكه كل سیستم آماده باشد به این معنی است كه سیستم نه برای تطابق با نیاز مشتری توسعه داده شده بلكه این مشتری بوده كه نیاز هایش را برای سیستم وفق داده است و این یعنی نقض اصول توسعه نرم افزار. در ضمن استفاده از كامپوننت ها و كنترل های آماده به معنی ایجاد محدودیت نیست چرا كه استفاده از هر كدام از این موارد، نیازمند دانش فنی كامل در پیاده سازی و مدیریت پروژه است بگونه ای كه هر بخشی از تیم توسعه بر روی قسمتی از سیستم كار كند بدون اینكه به كار گروه بعدی خلل وارد كند و در نهایت كامپوننت های حاصله نه فقط در محیط وب بلكه حتی در محیط دسكتاپ نیز بكار رود!
در مورد بازار كار، توجه به این نكته اهمیت دارد كه می خواهید وارد شركتی شوید كه به تولید نرم افزار می پردازد یا به بومی سازی آن. اكثر شركت های علاقمند به ترجمه سیستم های آماده، از php كاران دعوت به همكاری می كنند و اگر به آگهی های استخدام دقت فرمائید تمام شركت های بزرگ نرم افزاری، معتبر و اهل فن از برنامه نویسان دات نت استفاده می كنند.
این كه برای شركت كدام گزینه به صرفه تر است بسته به راهبرد شركت می باشد. پولی (تجاری) بودن نرم افزارهایی مانند SQL Server، Visual Studio و ... در مقابل رایگان بودن ابزار های PHP، هیچ خللی در قیمت یا كیفیت توسعه و ارائه محصول نهایی ندارد و اصولاً اینكه از اوپن سورس فقط بخاط رایگان بودنش خوشمان بیاید نهایت فلاكت است! این كه كدام را یادبگیرید بستگی به هدف شما دارد. اكثر دانشجویان، دات نت را یاد می گیرند چون تنها در محیط وب كاربرد ندارد بلكه مجموعه ای از تكنولوژی های نوین و پركاربرد است و مفاهیم آن مطابق با درس های ارائه شده در رشته های مهندسی نرم افزار می باشد و كتب فراوانی در این زمینه منتشر می گردند و بالعكس اكثر افرادی كه از رشته های غیر مرتبط علاقمند به طراحی وب شده اند، php را فرا می گیرند چرا كه یادگیری آن مستلزم دانش های دیگر نیست.
در پایان لازم به ذکر است برای انتخاب زبان، نیاز دارید اول هدف خود را تعریف كنید زیرا هر زبانی برای هدف خاصی ارائه شده است و اگر شركت یا سایت معتبری با تعصب كامل، از تكنولوژی مورد استفاده خود، دفاع می كند، هدف تجاری دارد وگرنه استفاده از تكنولوژی های مایكروسافت به معنی این نیست كه اوپن سورس بد است یا بالعكس! كافیست جستجوی ساده ای در گوگل انجام دهید تا با هزاران نرم افزار موفق تجاری ساخته شده با بستر های اوپن سورس و یا هزاران نرم افزار اوپن سورس موفق ساخته شده با بستر های مایكروسافت آشنا شوید!
علاقه مندی ها (بوک مارک ها)