مقارنة بين php و asp.net
- khalid alali
- 2013-10-11T04:13:11+00:00
- 2017-11-02T15:59:15+00:00
السلام عليكم و رحمة الله و بركاته
بداية جزيل الشكر للقائمين على هذا المجتمع العربي التطويري الهادف .
الموضوع :
لطالما بحثت كثيرا و كثيرا عن الفروقات بين لغة ال php و تقنية asp.net في تطوير الويب . في المجتمعات الأجنبية كنت أجد الاختلافات و المقارنات مبنية بشكل علمي دقيق بينما في المجتمعات العربية بالرغم من قلة طرح هكذا نقاشات إلا أن كافة النقاشات الموجودة كانت و مع الأسف الشديد عبارة عن (نقاش هدّام) يكثر فيه التهجمات و الانحياز لشركات معينة و استحقار لشركات حتى يتغير سياق الموضوع و يتحول لشجار :) و استحقار للشخصيات :(
ما أريده من الأعضاء الكرام في هذا المجتمع البناء هو نقاش و مقارنات علمية و عملية حتى يجد الباحث ضالته و نساعد على تطوير الويب العربي إن شاء الله .
الفروقات بين اللغتين ؟
سرعة التطوير و الأداء ؟
الانتشار؟
الأمان ؟
مناسبة كل لغة لمشروع معين ؟
الدعم لكل لغة أو تقنية؟
تكلفة المشاريع المنجزة بكل لغة أو تقنية من حيث البرمجة و الاستضافة و التطوير ؟
مستقبل كل لغة و خصوصاً بعد التعرف على Visual Studio 2012 & 2013 و التحسينات الهائلة من قبل مايكروسوفت
علماً أني أستخدم ال asp.net مع #C و اعتمد عليهم كلياً .
و دمتم سالمين :)
انا لست مبرمج ASP لكن في بداية دخولي لهذا العالم كان امامي خيارين
ASP & PHP
اخترت PHP والحمد الله لم اندم سأحدثك عن اسبابي الخاصة لاختيار PHP
php مجانية ومفتوحة المصدر مستوى الدعم لها اكبر بكثير الطلب عليها في الاسواق العالمية والمحلية قوي جدا
نتيجة لهذا الطلب الكبير عليها في السوق يتيح لك ان تكون موظفا في شركة او تكون شركتك الخاصة وهذا الامر لو طبقته عربيا او عالميا على ASP سوف يكون صعب ولن تحقق نتائج مشابه لـ PHP تستطيع ان تتصفح المتاجر الخاصة ببيع البرمجيات ومشاهدة نسب البيع بين المنتجات بالغتين
العالم بدأ يتجه الى البرمجيات المفتوحه ويحتاج في طلب دائم الى الاضافات والى تطوير هذه البرمجيات ومعظم البرمجيات الحرة والمشهورة مبنيه على PHP طبعا هنا اتحدث عن برمجيات المواقع
بالنسبة للحماية وتكاليف التشغيل PHP تعتمد بنسبة كبيرة جدا في حمايتها على المبرمج فلو كان المبرمج ليس له خبرة في امور الحماية ولم يكن ذو عقلية قرصان فسيواجه صعوبات في الحماية
اما تكاليف التشغيل فبكل تاكيد PHP هي الاقل تكلفة في التشغيل من كافة النواحي سيرفرات او استضافات
المستقبل سوف يكون لـ PHP على الاكثر والغات المنافسة لها مثل ROR و Python ولا اعتقد انه سوف يكون هناك تقدم لـ ASP (مجرد وجهة نظر)
اتمنى ان يكون ردي بعيد عن التعصب لكن هذه وجهة نظري وما تعلمته من سنوات الخبره
شكرا لك أخي الكريم :)
بالتأكيد ال php أقل من ناحية التكلفة و هي مجانية و مفتوحة المصدر
و الكثير عندما نسأل عن سبب إختيار php يقول لأنها مفتوحة المصدر :( نحن ك مطورين و مبرمجين ماذا استفدنا من لغة مفتوحة المصدر ؟ او نظام تشغيل مفتوح المصدر ؟ مثلا هل استطعنا أن نضيف أمور متعلقة بالحماية إلى لغة البي اتش بش لتسهل علينا أعمالنا كما في ال asp.net
بإعتقادي بأن أي شيء مفتوح المصدر لا يفيد إلا المختص به
نظام التشغيل مفتوح المصدر يفيد مطوريين النظم و مهندسيها
لغة البرمجة مفتوحة المصدر تفيد مطور لفات البرمجة و المترجمات :)
العفو اخي الكريم لاشكرا على واجب
بالعكس قد يكون مفهوم مفتوح المصدر غير دقيق لدى الكثير من الناس
سأحاول ان اللخص لك فائدة مفتوح المصدر
1- بأمكانك ان تعدل على اللغه وتضيف وتحذف ما تشاء (ان كنت مبرمج C)
2- لايوجد قيود على استخدامك للغه او اي حقوق فكرية تطالب بها الشركة
3- يتم تطوير اللغة من قبل مجتمع المبرمجين ولايعتمد في تطويرها على مجموعة من الاشخاص يعملون في شركة وهذه لها ميزتان
[ 1- اللغة سوف تتقدم اسرع من اي لغة اخرى نظرا للكمية الهائلة من المجتمع الذي يقوم بتطويرها
2- لن تختفي هذه اللغه ولن يتم سحب الدعم عنها في يوم من الايام كما حصل في بعض اللغات في مايكروسوفت
]
4 - تكاليف تشغيلك بسعر قليل
5- أطر عمل وكلاسات واضافات كثيرة جدا ومتنوعه
وهناك لغات اخرى لديها القوة الان في الساحة وبدأ العديد يتجه لها لكن ليس هذا معناه ان ROR افضل من PHP
انا اشبه PHP باللغه العجوز ملكة الويب
لكن من يرغب بـ ROR او مثيلتها من اللغات فهو لديه توجه خاص به ومشاريعه الشخصيه ولن يمتلك اكثر من ذلك
كلامك سليم 100% :) و هذا بالضبط ما يتوجب على كل مبرمج معرفته عن كافة البرمجيات المفتوحة المصدر ... لأنني دائما و أيدا ما أجد أشخاص يبررون اختيارهم للغة معينة أو نظام معيين بسبب المصدر المفتوح .... أنا استعملت اللينوكس على لمدة 3 سنوات و كانت دراستي في الجامعة تقريبا تعتمد على اللينوكس لكن لم أفكر يوماً مثلا باستخدام php لأنها مفتوحة المصدر :) و استخدم asp.net مع ال #C لأنها أكثر ملائمة لتطبيقاتي حتى في مجال معالجة الصور و الرؤية الحاسوبية :)
يعتقد البعض ان هذه المناقشات/المقارنات تكون بين الحق والباطل بالاخص في المواقع العربية .
باختصار الموضوع نسبي ، ال ASP.NET موجهة في الاساس لمطورين ال .NET لانشاء تطبيقات ويب بسهوله وهي ليست لغة برمجة كما يعتقد البعض وانما هي Platform او مكتبة لمنصة ال .NET . بالتالي لايوجد شيء اسمه "الفروقات بين اللغتين" كما ذكرت -انت -في النقطة 1 .
بالنسبة لسرعة التطوير والاداء بالطبع ستفوز ال .NET لان الAssembly Code يتم ترجمته الي لغة الاله بالتالي اداء اعلي ، بعكس ال PHP التي هي تُفسر (interpreted-language) . وبالنسبة لسرعة التطوير ايضا ستفوز ال .NET لان لها IDE هائل جداً يساعدك علي انجاز مشروعات في وقت ومجهود اقل .
بالنسبة للانتشار ستفوز ال PHP لانها الاقدم طبعاً ، فاذا كنت تريد العمل ك Freelance Web Developer اختار ال PHP .
بالنسبة للامان فهو بشكل اولي يعتمد علي المبرمج ، وفي نفس الوقت ال ASP.NET مزودة بمكتبات تساعدك علي سد الثغرات الشائعة بشكل تلقائي .
اذا كان لك مشروع كبير فيمكنك انجازه بال PHP او بال .NET لا يهم الامر .
بالنسبة للدعم لن اتحدث عن PHP لان صديقي -Ahmed Shahen- تحدث عنها . ,وبالنسبة لدعم ال ASP.NET لن اتحدث عنها ايضاً لانها في يد عملاق البرمجيات Microsoft :D وتتحدث باستمرار .
بالنسبة للتكلفة تكون مشروعات ال ASP.NET اعلي قليلاً في التكلفة وفي المقابل ستحصل علي تطبيق ذو اداء عالي جداً يعتمد علي البرمجة المتوازية والغير متزامنة الخ .
بالنسبة لمستقبل ال PHP اعتقد ان لها مستقبل كونها مفتوحه المصدر . وايضا ً ASP.NET مفتوحة المصدر -يمكنك التأكد من موقع مايكروسوفت وتحميل السورس كود- ولها IDE متكامل ويتم تحديثه باستمرار .
في النهاية اختار ما تحب ولا تعتقد الموضوع مناشقة او مقارنة بين الحق و الباطل الموضوع نسبي :) .
أخي الفاضل شكرا لك :)
الموضوع ليس مقارنة بين الحق و الباطل ولا أشبه به
كثيرا ما نجد مقارنة بين الحق و الباطل في المواقع العربية و للأسف .لكن طرحت الموضوع هنا كما ذكرت حتى يجد الباحث ضالته . تعقيباً على كلامك بخصوص أن ال asp.net ليست لغة برمجة انا قصدت ذلك لأن الكثير يعتبرها لغة برمجة قائمة بحد ذاتها مثل ال php و هذا أكثر الأخطاء شيوعا في العالم العربي . و بالنسبة لي فأنا استخدم asp.net منذ نشأتها الأولى و فكرت كثيرا في الانتقال إلى ال php و لكن سرعان ما أعود أدراجي إلى asp.net و هي تثبت جدارتها يوما بعد يوم و أعتقد بأن الإصداريين الأخيرين من مايكروسوفت في visual studio 2012 & 2013 أعطونا الكثير من ما كنا نفتقد إليه في الإصدارات السابقة و هذا ما سوف يجعلني أعتمد على ال asp.net للسنوات الخمس القادمة :) إن شاء الله
انا ايضاً استخدم ASP.NET ولكن مع ال Development Model المسمي MVC وليس Web Forms :) . بالتوفيق ياعزيزي ^_^ .
لنكن صريحين ليس هناك لغة اسمها asp.net بل هي فقط مجموعة من المكتبات للتعامل مع الويب للغة C# أو VB.net وللتدقيق أكثر فالــ asp.net عبارة عن Web Framework بالنسبة لـ C#
إذا لتكون المقارنة صحيحة يجب مقارنة أحد أطر العمل للغة ال php كـ Laravel مثلا ...
تحية لك أخي الفاضل :)
ما نريده في مجتمعنا العربي هو القدرة على التمييز بين لغات البرمجة و أطر العمل و التقنيات و القدرة على فصل الأمور و معرفة المصطلحات الصحيحة .
و هنا إن شاء الله و بمتابعة هذا النقاش لا بد من ينتج ثمرة تكون نقطة البداية لكل عربي مهتم في تطوير الويب . فدائما طريق النجاح أساسه الخطوة الأولى :)
بداية احب التنويه الى ان ASP.NET ليست لغة مثل ASP وانما تعتبر تكنولوجيا يمكنك إستخدامها داخل .NET Platform لتطوير تطبيقات الويب باستخدام احدى لغات البرمجة الموجوده مثل C#,VB
الفروقات بين اللغتين ؟
PHP هي لغة مستقلة بحد ذاتها مفتوحة المصدر هناك العديد من الجهات التي تطور بيئات تطوير خاصة بها كما ويمكنك التعديل عليها على اعتبارها مفتوحة المصدر أما ASP.NET والتي اعتبرها هنا تكنولوجيا او ما شئت باستثناء لغه فهي ليست قائمة بحد ذاتها انما تعتمد على لغات البرمجة المتوافره ضمن .net platform كما اوردنا سابقا
سرعة التطوير و الأداء ؟
بالنسبة لسرعة التطوير فهو مما لا شك فيه لصالح ASP.NET فشخصيا لم ارى اية بيئة تطوير سلسة وسهلة وقوية كما هي في الفيجيوال ستوديو سواء اكان PHP ام غيرها, اما بالنسبة للاداء فيمكن حسم ذلك سريعا من خلال المقارنة بين السكربت والبرنامج, أي ما بين Compiled & Interpreter و ASP.NET هي Compiled والتي بدورها اسرع في التنفيذ.
الانتشار؟
هذه النقطة لصالح PHP حيث انها منتشرة بشكل كبير على اعتبار انها اقدم ومفتوحة المصدر واسعار الاستضافة ارخص ووجود الدعم والسكربتات الجاهزه بكثره
الأمان ؟
ASP.NET وذلك من خلال تجربة شخصية ويمكن هنا أخذ مثال بسيط كان موجود في نسخ قديمة من ASP.NET وهو عند قيامك بادخال نص HTML الى قاعدة البيانات يتم رفض ذلك تلقائيا من Compiler ويتوجب عليك تعطيل خاصية التدقيق على المدخلات اولا وبعد ذلك يمكنك ادخال نصوص html.
احدى المشاكل التي واجهتني سابقا عند استخدامي php انه يتوجب عليك تشفير ملفاتك بعد انتهاء البرمجة من خلال Zend او غيره ويبقى الموضوع معقدا الى حد ما, لست بحاجة الى كل هذا مع ASP.NET فمجرد نشر المشروع يتحول كله الى DLL وكودات مخفية لا يستطيع احد الوصول اليها
اعدادات الامان موجوده بشكل افتراضي في نسخ ASP.NET وتطور مع مرور الزمن ويبقى استخدامها هو مجرد تعطيل لما هو مفعل مسبقا على عكس PHP التي تنفذ كافة الاوامر بدون اي تدقيق من اللغة.
مناسبة كل لغة لمشروع معين ؟
اعتقد ان ما يبنى باحدى يبنى بالاخرى فمسألة المناسبة لم تعد ضمن حساباتي بخصوص هذه الامور
الدعم لكل لغة أو تقنية؟
كلاهما مدعوم بشكل كبير ولكن ما يميز PHP وكما قلنا سابقا وجود عدد كبير من البرمجيات المفتوحة المصدر والتي توفر عليك الكثير من الوقت والجهد بحكم عامل الزمن وقدمها
تكلفة المشاريع المنجزة بكل لغة أو تقنية من حيث البرمجة و الاستضافة و التطوير ؟
من ناحية التطوير والاستضافة تبقى ASP.NET اغلى قليلا
مستقبل كل لغة و خصوصاً بعد التعرف على Visual Studio 2012 & 2013 و التحسينات الهائلة من قبل مايكروسوفت
لا أرى اني املك المعلومات الكافية للتخمين
احدى الاشكالات التي يقع فيها من يقارن اللغتين من ناحية الاداء يرى ان php اسرع عند استخدامه لقواعد البيانات في تطبيقة والسبب بذلك ليس ضعفا من asp.net بل لان سرعة الموقع تعتمد على اكثر من مقياس كما تعتمد ايضا على سرعة سيرفر قاعدة البيانات في الاستجابة وهذه النقطة ارجح mysql لها بدلا من mssql , لذلك تشعر ان asp.net ابطا في قواعد البيانات من php
تفتقد هذا النوع من المقارنات إلى المقارنات الفنية البحتة,
فلو درسنا التوجه العام للغة مثل لغة PHP ستجد أنها إلى حد كبير تتجه إلى ما توصلت إليه ASP.NET منذ فترة طويلة.
والعكس, فإن ASP.NET بدأت تتحول إلى لغة مفتوحة المصدر في الفترة الأخيرة وعززت هذه الثقافة وهي لغة انتاجية من الدرجة الأولى ومرتبة.
أما المقارنة الفنية فتحتاج إلى تفصيل حتى نستطيع أن نيقول أيهما أفضل
وفي وجهة نظري الشخصية لا يوجد أفضل بل يوجد أنسب, فكلاهما قوي ولكن تختلف حسب بيئة العمل التي سيعمل عليهاُ ونوع التطبيق
وجهة نظر
العادة تغلب التطبع مثل ما يقولون، اذا المبرمج تعود على ASP بالتاكيد ستكون هي الافضل بالنسبة له كونه اعتاد عليها، اما اذا نظرنا الى موضوع الاداء والسرعة وغيرها من المقارنات فهذه الامور لا تظهر بشكل واضح الا في المشاريع العملاقة عندما يصل عدد زوار الموقع الى اكثر من 20 الف زائر يوميا او لنقل مليون وأكثر زائر يوميا هنا ستعمل جاهدا ً للمحافظة على اداء الموقع بالشكل المناسب وهو الشئ الذي فعلته Facebook عندما حولت من php الى c لان لغة php هي عبارة عن scripting language وتعتمد على لغة c في الترجمة وموضوع أستخدام interpreter في موقع زواره بالملايين قد يفرق كثيرا في الاداء والسرعة.
بالضبط أخي لكن هل جربت لغة ال php أو (asp.net & #C ) في إحدى التطبيقات الضخمة ؟ بعيداً عن الشركات العملاقة و الامثلة العالمية
جربتها على موقع صغير يصل زواره الى 15 الف زائر في اليوم، في احد الملفات عدد الاستعلامات على قاعدة البيانات حوالي 10 استعلامات هذا الملف سبب لود على السيرفر لذلك قللت عدد الاستعلامات واستخدمت الكاش لكن طبعا اخذ مني مجهود، واعتقد على ASP هناك حلول سهلة وجاهزة لمثل هذه الأمور.
بعد ثلاث سنوات من مروري الاول على هذا النقاش وجدت أن الموضوع يستحق التجربة من الجهتين فالحكم يتطلب الملموس ونحن كما قال أحدهم مطوري تطبيقات ولسنا مطوري أنظمة ..
إن تحول ميكروسوفت للمصادر المفتوحة زاد الامر تعقيدا وزادت النسخ والروايات للتطبيقات والبرمجيات والمكونات وزاد معها عدم التوافق . كلمة مصدر مفتوح هي في الاساس مشكلة لمطور يعنيه مشروعه فقط وليس بيئة البرمجة.
بعدما كنت مطور php جربت net. والأمر قد أعجبني كثيرا لذلك قررت البقاء في بيئة التطوير .net لميكروسوفت. مع أنني أحسست بالخوف من فتح ميكروا سوفت لمصادرها فأكثر ما شدني لها الاستقرار والتوافق والتركيز على الانتاجية
أخي الفاضل :) لا يمكننا المقارنة بين أمريين من خلال من يستخدم هذه و من يستخدم تلك :) فمثلا لو رأينا الفيس بوك هو قائم على ال php بالتأكيد هذا ليس دليل على أن ال php هي الأفضل !
أنا لا أجري مقارناتي على لا شيء أو مجرد كثرة الإستخدام .. ولو كان كثرة الإستخدام عامل مهم من العوامل لأن كثرة الإستخدام سوف تعود إليك بالخبرة ستجد أشخاص جيدون في هذا المجال و ستجد مكتبات كثيرة لها .. وأيضاً إذا كانت الPHP ليست الأفضل ما الذي يجعل المبرمجين يستخدموها .. ثانياً الآن فقط من يدرسون في كليات الحاسبات والمعلومات هم من يستخدموها ,, وأنا في وجهة نظري لا ءأمن بهم لأن أكثرهم مجرد أشخاص يريدون الدراسة من أجل التوظيف و الشهادات فقط .. لغة ASP عقيمة بمعنى الكلمة في وجهة نظري .. وهذ لا يعني أنني مؤيد أيضاً جميع ما في الPHP .. فأنا أفضل الjavascript .. وكما قال أخي في الأعلى الASP مجرد مكتبة .. وإذا أردت معرفة الفروق حقيقةً أبحث عنها عبر Google وسوف تجدها .. في النهاية هذه وجهة نظري أرجوا أن لا تكون قد أزعجتك :))
شكرا لك أخي الكريم :)
في النهاية لكل شخص وجهة نظر و معطيات تجعله يسلك الطريق المناسب له .
و فكرة طرح الموضوع من الأساس هي أن تضع وجهة نظرك و آرائك و آخر كذلك يضع وجهة نظره و أفكاره و نكون قد بنينا مجتمع يحترم وجهات النظر و الأفكار و فيها الاختلاف الذي يكون منارة لغيرنا بإذن الله :)
------ تعديل --------------------------------------------------------------
لا أعتقد بأن المقارنة هنا عادلة لأنه ببساطة لغة PHP ليست Enterprise-Level .. لغة PHP جيدة فقط للمشاريع/الشركات الصغيرة والبروتوتايب, وليس فيها دعم فعلي تقني في حال عمليات تحتاجها الانظمة الضخمة مثل System Integration .. طبعاً أنا هنا أتحدث عن جانب Enterprise-Support للمؤسسات, وقد لا تحتاج هذا الشئ فعلياً
PHP لديها مميزات على ASP.net و Java EE .. ومنها عدم الاعتماد على موارد مشتركة ووجود نظام غير مركزي عدم وجود بيئة في السيرفر, وهذه من جهة أخرى تعتبر مميزات, لأنها تحسن اداء موقعك بدون الحاجة لقوة سيرفرات اعلى, وحرية اعادة تركيب السيرفر لديك بالطريقة التي تراها مناسبة
بالانجليزية نقول: Instead of using a framework for your server, you make your own framework
باختصار أنا أنصح باستخدام لغة PHP لبناء السيرفر الخاص بك .. ولكنك ستحتاج لبناء كل شئ وهذا يتطلب مطور لديه خبرة في كل ما يدور حول الويب, والافضل هو وجود تصميم واضح ومفصل قبل العمل
إضافة لوجود دراسات لمعرفة ذلك:
مجتمع لمناقشة وتبادل الخبرات حول تطوير الويب. ناقش أحدث التقنيات، اللغات، والأدوات في عالم تطوير المواقع والتطبيقات. شارك مشاريعك، اسأل عن نصائح، وتعاون مع مطورين محترفين وهواة.