مقارنة بين لغتي البرمجة PHP و ASP

ترجمة بتصرف عن هذه المقالة

عند بناء أي موقع ديناميكي فإن أكثر لغات البرمجة استعمالاً في هذه الحالة هما PHP و ASP، وهذه مقارنة ودراسة لكلتيهما. إن كلتا اللغتين تستخدمان لبناء المواقع الديناميكية التي تتفاعل مع قواعد البيانات والمعلومات المتبادلة.
حيث أن ASP (Active Server Pages)  هي لغة مطوّرة من قبل شركة مايكروسوفت وتعمل مع IIS (Internet Information Server) يعمل حصراً على أنظمة مايكروسوفت الخاصة بأجهزة سيرفر.
وPHP (PHP: Hypertext Preprocessor)  هي لغة صممها راسموس ليردورف  Rasmus Lerdorfوعمل على تطويرها في ما بعد الكثير من المبرمجين والمطورين. تعمل هذه اللغة على أنظمة  Unix و Linux الخاصة بأجهزة سيرفر.
وهنالك العديد من نقاط الاختلاف بين اللغتين.

التكاليف

تحتاج لغة ASP إلى برنامج IIS منصباً على سيرفر يتمتع ببيئة ويندوز، وهذه البرامج مكلفة جداً للجهة التي تريد العمل بها على صعيد اللغة بحد ذاتها والسيرفر وقواعد البيانات. في حين أن مواقع PHP تعمل على أنظمة لينوكس المجانية الغير محتكرة من قبل أي جهة في العالم عكس حالة (ASP مع شركة مايكروسوفت). حتى أن التواصل والتعامل مع قواعد البيانات في حالة ASP يتطلب شراء منتج مكلف من مايكروسوفت ألا وهو MS-SQL. في حين أن لغة PHP تستخدم عادة قواعد البيانات من النمط MYSQL والتي تتوفر بشكل مجاني.

السرعة

إذا أردنا مقارنة سرعة أداء المواقع بين اللغتين، فإن PHP هي الفائز الفعلي في هذه المنافسة، حيث أن أي برنامج مكتوب بلغة PHP أسرع كثيراً من نظيره بلغة ASP. لغة ASP هي لغة مبنية وفقاً لما يدعى هندسة COM البنائية والتي تستدعي عملاً أكبر وطاقة أكبر للسيرفر، في حين أن برامج PHP تعمل ضمن أي مساحة للذواكر على السيرفر نفسه.

التوافقية مع السيرفرات

تعمل لغة PHP مع أي نوع من أنواع السيرفرات في العالم مهما كان البرنامج المنصب عليها Linux, Unix, Windows و Solaris . في حين أن ASP تعمل حصراً مع أنظمة ويندوز.

التكاليف الإضافية

تحتاج المكتبات البرمجية الخاصة بلغة ASP إلى عملية شراء مرخصة من شركة مايكروسوفت، في حين أن المكتبات الخاصة بلغة PHP متوفرة بكل سهولة ويسر وهي مجانية أيضاً. دون أن ننسى أن لغة PHP تحوي ميزات مبنية داخلها تعتبر في لغة ASP برامجاً إضافية وينبغي شراؤها عند الحاجة إليها.
الاتصال مع قواعد البيانات
لكون PHP عالية المرونة فهي تتصل بالعديد من أنواع قواعد البيانات، في حين أن ASP تتصل حصراً مع MS-SQL.

في النهاية لا بد من ذكر أن للغتين استخداماً كبيراً، لكن لغة PHP تتفوق بعدد المستخدمين وكما رأينا في الفترة السابقة انتقال محرك البحث الضخم Yahoo إلى لغة PHP. ونذكر من المواقع الكبرى التي تستخدم PHP:
Yahoo, AOL, Lycos, Netscape, Nassej, FaceBook.
في حين أن أغلب الشركات التي تستخدم ASP هي الشركات التي فُرِضَ عليها استخدام سيرفرات مع نظام التشغيل ويندوز.

12 رأي على “مقارنة بين لغتي البرمجة PHP و ASP”

  1. مقالة حلوة، رح إستعملها مع كل مين بيجي وببلش يقلي الـASP والـASP!

    مر وقت من الأوقات من يللي كان كل مين عم يشتغل بالـPHP عم يشد بجهة، بينما الـASP تحت مظلة مايكروسوفت عم تمشي بشكل ثابت أكتر، وعم يتطورلها كتير components، الشي اللي شد البعض إلها من مبدأ أنو الشغل فيها أسرع بكتير من الـPHP، بالإضافة للـIDE القوي جداً من مايكروسوفت.

    بس من فترة مليحة، التطوير بالـPHP صار إلو مناهج واضحة، إعتمدتها كتير من جهات التطوير، الشي إللي خلا كتير من جماعة المصادر المفتوحة يعملو بيئات تطوير (IDEs) بتدعم الـPHP بشكل كتير قوي، وframeworks متطورة لإلها، الشغلتين يللي خلوا الشغل فيها سريع ومنظم. وخلا تطوير المواقع لايقل سهولة عن القيام بذلك في الـASP.

    أضف إلى ذلك أنو التطور بشكل عام بأمور الـWeb Development في عالم المصادر المفتوحة سمح بأنو يتم تطوير الـframeworks والـintegration بالـIDEs بشكل متسارع يوماً بعد يوم.

    وبإضافة كل اللي ذكرتو بالمقالة، بتكون الـPHP هي الفائز وبالضربة القاضية : )

    بالمناسبة هناك برامج مفتوحة المصدر على اللينوكس تدعم الـASP تخديماً وتطويراَ، كبديل للبرمجيات الأساس المغلقة المصدر والمدفوعة من مايكروسوفت (هدول جماعة الـopen source ما بخلوا على حالهن وحدة).

  2. شدَّني عنوان مقالكـ في حفار المدونات ، وبعد ما قرأته اضطررتُ للرجوع إلى تاريخ كتابته .. هل كُتب في عام 2000 مثلاً أو قبله ! .

    قلت لعلَّ الرجل أخطأ فترجم مقالاً قديمًا دون أن ينتبه لتاريخه ، فوجدتُ أنَّ الموضوع الأصلي كُتِب في 2005 ، فعجبتُ أكثر والله !

    اسمح لي أن أقول أنَّ كاتب هذا المقال لا يعرف عن ماذا يتحدَّث ، وقد استفزني جدًا جدًا !

    في عالم البرمجة نحن لسنا أطفالاً نتنافس حول ” من هو البطل الأفضل / سوبرمان أم بات مان ؟ ” فلماذا يقارن مبرمجي Php دومًا بين اللغتين بصبيانية ؟!..

    ثمَّ إنه في عام 2005 ، لا نقارن بين php وasp ، بل بين php و asp.net ، فكيف بعام 2008 ؟! ..

    كيف يمكن أن نقارن لغةً ميتة ASP بلغة ” متجددة ” php ، متجاهلاً الـASP.net ؟!.

    .
    .
    المقارنة جدًا سطحية ومتعصبة ، وأستطيع أن أردَّ عليها مغمضة العينين :

    أولاً : لا نتحدث عن ASP فمايكروسوفت أوقفت دعمها لها ، وASP.Net هي اللغة التي يجب أن نتحدَّث عنها هنا على افتراض أننا في عام 2005 ، حتى لو لم يكن لها علاقة بـASP الميتة جدًأ !! .

    ثانيًا : ASP.net لا تحتاج إلى تثبيت IIS الذي يدعي الكاتب تكلفته العالية ، بينما هو مكون من مكونات نظام تشغيل xp مرفق مع قرصه ! .

    ولن أقول بأنَّ بيئة ال .net مجانية الآن ، لأنَّ هذا الكلام لم يكن صحيحًا عام 2005 !.

    ثالثاً : من قال أنَّ الـPHP أسرع من الـASP.net ؟ .. الكاتب حتى لم يتحدث بطريقة علمية عن ذلك ..

    رابعًأ : ASP.Net تعمل على لينكس ، ويمكنكم زيارة هذه الصفحة للتأكد :

    http://dev.mainsoft.com/Default.aspx?tabid=45

    خامسًا : أنا بنفسي قمت بتحويل بعض المكتبات الخاصة بـASP.net مجانًا من موقع مايكروسوفت ، ثمَّ إنَّ مايكروسوفت لها الحق في أن تبيع ما تصنعه ! .

    أما عن المواقع التي ذكر أنها تستخدم php ، فيكفي أن تعرف أنَّ المطورين الفضولين عجزوا حتى الآن عن معرفة اللغة التي استخدمت لبناء yahoo !

    .
    .

    أخي الكريم ..
    أنا أحترم php وأحب asp.net ..
    ليس شرطًا أو لزاماً علي أن أجبر على استخدام php فقط لأن غالبية مطوري الويب يفضلونها ! .
    أنا أرتاح مع asp.net ، ولا يعني هذا أن أفتش عن عيوب php وأنشرها وأوزعها بين الناس ! .
    asp.net لغة قوية .. مرنة .. سهلة .. ذات أمنية عالية جدًا ، الـphp أيضًا بها مميزات رائعة ، فلماذا تحاربون asp.net ? ..

    أخي الكريم ..
    اهتموا بتطوير مستقبل الويب العربي ..
    أعتقد أنَّ هذا سيكون أفضل من تراشق الإتهامات بين محبي لغات ! .

  3. أهلاً بك، أعجبتني مناقشتك على طول الموضوع، عدا البداية “اسمح لي أن أقول أنَّ كاتب هذا المقال لا يعرف عن ماذا يتحدَّث ، وقد استفزني جدًا جدًا !” لأنك بهذه الحالة أصبحت أنت في موضع الملامة على النقاش بعصبية وإعطاء الآراء بسطحية، فالموضوع وضع للنقاش، كل يبدي وجهة نظره، لو أراد الكاتب فرض وجهة نظر ما على القارئ لكان وضعه بشكل آخر.

    أعلم أن هناك الكثير من النقاط المذكورة في المقال التي قد تكون إنتهت صلاحيتها منذ مدة، ولكنها لم توظف في الحصول على إستنتاجات خاطئة، مثلاً الإتصال مع قواعد البيانات، حيث أنه أصبح حالياً دعم native أو عن طريق third party plugins لكل قواعد البيانات تقريباً وفي كلتا اللغتين.

    أما عن الـASP والـASP.net فأعلم أن التغيير جذري، والتشابه هو بالأسماء فحسب، وأن الأخيرة تعتمد منهج تفكير وطريقة تطوير مغايرة تماماَ، حيث أمنت مايكروسوفت بيئة تطوير خارقة -وأعترف لهم بذلك- لشد المبرمجين إليها، بحيث أصبح من الممكن أن يبرمج المرء بأي من لغات الـ.NET وستتولى الـframework باقي العمل. والكثير من ذلك، ولكن هذا كله لا يغير من النتائج التي وصل إليها، والتي قد تشكل فروقاً كبيرة بالنسبة للبعض فيفضلون الـPHP، وقد لا تشكل الفرق الكبير للبعض الآخر الذي تعجبه بعض الميزات الموجودة في الـASP.net والـintegration مع الـ.NET بشكل عام فيفضلها عن الـPHP وله الحق في ذلك، كل له وجهة نظره وهذه المقالة عرض لوجهة نظر.

    أعود إلى المقالة : )
    بالنسبة لـ1: لنتحدث عن ASP.net ليست المشكلة مع الـASP بل ربما تعكس طيفاً من منتجات مايكروسوفت، والمشاكل نفسها موجودة هنا وهناك وإن كانت تأخذ منحىً مختلفاً لسبب أو لآخر.

    2: طبعاً الـASP تحتاج إلى ذلك، ولكن الـIIS موجود كمكون إختياري من مكونات نظم التشغيل من مايكروسوفت بدءاً من IIS 1.0 على NT 3.5 مروراً بالـXP كما تفضلت ولكن بالطبع لا توجد هذه النسخة لأغراض تجارية، لن يقوم أحد بوضع موقعه على مخدم عليه Windows XP، والذي يحمل بالمناسبة نسخة من الـIIS لاتسمح سوى بعشر إتصالات متزامنة قد تكفي لمخدم صغير على شبكة محلية دون وجود واجهة تسمح للمستخدم بتغيير هذا الرقم الإفتراضي.
    الذي يريد أن يستعمل ASP.net فعلاً على مخدم فعلي (production server) فبالتأكيد سيعمد إلى شراء نسخة Windows Server ما.

    ثالثاً: الطريقة العلمية هي كتابة سكريبت ما لتنفيذ مهمة برمجية/خوارزمية معينة وتجربة الأمر مع اللغتين، أترك الأمر لك لتجربة ذلك.
    بكل الأحوال هذه مقالة قديمة (من الـ2002) تتحدث عن الفرق بالأداء (كان ذلك على ما أعتقد مع بدايات الـASP.net والـPHP 4.2) وفي حينها كان النقاش أن الـphp تقدم أداء أفضل من الـasp.net ولكن على حساب سهولة التطوير، وهنا تعود الأمور لوجهات النظر، كل يختار اللغة التي تناسب إحتياجاته. المقالة: http://forums.asp.net/t/733.aspx
    الجدير بالملاحظة أنه على طول السنين منذ ذلك الوقت كانت مايكروسوفت تضخ الكثير لدعم الـASP.net على جميع الأصعدة ومنها على صعيد الأداء، فأصبح للـASP.net العديد من الميزات مثل الـprecompilation للسكريبتات التي حسنت بشكل واضح من أداءها إلى حد وصلت فيه إلى أداء ينافس أداء الـPHP. ولكن أود ملاحظة أن مجتمع الـPHP يعمل على حلول مشابهة منذ فترة ليست بقريبة، ولكنها إلى الآن عبارة عن modules يجب إضافتها على الـphp لتقوم بعملها، وكما نعلم فإن أكثر مخدمات الـPHP المنتشرة لا يملك المرء حق الوصول الكافي للقيام بهكذا عملية، فتبقى الـPHP على الأداء التقليدي لها، ولكن المواقع الضخمة توظف هذه التقنيات لا ريب. للإطلاع على هذه الإضافات: http://en.wikipedia.org/wiki/PHP_accelerator
    مع ملاحظة أن الـAPC سيكون مضمناً في نواة الـPHP 6

    رابعاً:
    راجع آخر التعليق الأول : )

    خامساً:
    كما ذكرت منذ قليل فإن Microsoft أصبحت تفعل الكثير للمحافظة على وضع منتجاتها في الأونة الأخيرة بعد المد الذي شهدته الحلول مفتوحة المصدر فمن كان يعتقد أنها ستصدر بعض من مكوناتها البرمجية بشكل مفتوح المصدر في يوم من الأيام (راجع Microsoft Public License هنا: http://en.wikipedia.org/wiki/Microsoft_Public_License#Microsoft_Public_License_.28Ms-PL.29 )، فمايكوسوفت تقوم بفترة بإظهار الجانب الجميل منها والسماح بالتحميل المجاني لإجتذاب بعض الآراء إلى صالحها، لكن هل قرأتي عن ترخيص هذه المكونات، ربما تكون مجانية ولكن ليس للإستخدام التجاري.

    وطبعاً لمايكروسوفت الحق في بيع منتجاتنا، ولكن ليس واجبنا أن نشتريه، يشكل العنصر المادي أحياناً كثيرة كلمة الفصل بين خيار وآخر، وكل حر في إختيار ما يريده.

    بالنسبة لكون Yahoo مبنية بالـPHP؛ في الواقع لم يشر أحد لذلك صراحة، ولكن إذا بحثتي بين سطور الـsourcecode لصفحاتها أو درتي أرجاء موقعهم لوجدت أن الكثير من صفحات الخدمات ما تزال تحمل اللاحقة .php وإن كانت Yahoo كغيرها من الشركات الكبرى في عالم الوب تحاول إخفاء معالم لغة البرمجة المستخدمة فيها، نفس الحالة بالنسبة للـPython عند Google على ما أعتقد، إذا كان لديك الوقت ألق نظرة على هذا الموضوع: http://www.hackits.de/forum/thread.php?threadid=1806

    في النهاية أشكر لك تعليقك الذي دفعني إلى كتابة هذا، في النهاية أظن أن الحوار الذي يجري سيساعد أحداً ما في إختيار ماهو مناسب له، ففي النهاية، وكما يقال، الدنيا وجهات نظر، بالنسبة لي قد يشكل أي عبء مالي مشكلة، وبالنسبة لك قد تشكل بيئة التطوير القوية التي تؤمنها الـ.NET صفقة لا تعوض. الكاتب في النهاية يعرض وجهة نظره، هو لا يفرض الـphp على أحد.

    وبالنسبة لتطوير الوب العربي، أعتقد أن الذي نوقش هنا -كم أشرت سابقاً- سيساعد ولو بشكل بسيط في مساعدة البعض. إذا أتيت لرأيي الشخصي فإنني أرى أن المصادر المفتوحة هي الحل الأمثل لمشاكلنا في هذا المجال : )

    أعتذر إذا كنت أخذت دور كاتب المقال، أترك لك الرد على باقي الإتهامات!

  4. أسعد الله أوقاتكم جميعاً:

    كنت أبحث صدفة عن مقالات تدور فحواها عن الفرق بين لغتي البرمجة php و asp.net ، وعن مدى قوى كل من اللغتين السابقة الذكر.
    وقد قرأت الكثير من المقالات والحوارت، وصراحة لم أجد أفضل من هذا الحوار الجميل الذي تبادلتموه سابقاً، ولحرصي الشديد على توثيق أدقع للمعلومة وعلى أستفادة كل مطور او مبرمج يبحث عن الاجابة الصحيحة.

    فقد أستنتجت بحسب خبرتي الشخصية، فأنا مبرمج ومطور ويب، و team leader لفريق برمجي يحوي مبرمجين يكتبون كلا الغتين php and asp.net فقد تبين لي صراحة أنا اللغتين تتمتعان بمزايا جيدة مشتركة، لا نستطيع القول أن أحدهما أفضل من الأخرى.

    لكن من الناحية الاقتصادية، نجد أن php أقل تكلفة من نظيرتها asp.net وذلك ينعكس بالتاكيد على المردود المادي للمشروع كلل.
    ومن ناحيتي الشخصية أفضل العمل بـ php ، لانتشارها بشكل أوسع، ولوجود العديد من المواقع التي تقدم free open php source .

    هذا رأيي الشخصي ، اتمنى أن يكون الرأي وصاحبه خفيفي الظل عليكم.

    ودمتم

أضف تعليقاً

إملأ الحقول أدناه بالمعلومات المناسبة أو إضغط على إحدى الأيقونات لتسجيل الدخول:

WordPress.com Logo

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   / تغيير )

صورة تويتر

أنت تعلق بإستخدام حساب Twitter. تسجيل خروج   / تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   / تغيير )

Google+ photo

أنت تعلق بإستخدام حساب Google+. تسجيل خروج   / تغيير )

Connecting to %s