النتائج 1 إلى 6 من 6

الموضوع: مقارنة لغات برمجة ويب (( مقالة نقدية ))

  1. #1
    عضو نشيط
    تاريخ التسجيل
    Apr 2002
    المشاركات
    140

    مقارنة لغات برمجة ويب (( مقالة نقدية ))



    بسم الله الرحمن الرحيم
    و الصلاة و السلام على سيد الخلق محمد و اله و خيرة اصحابه اجمعين .
    اما بعد :-

    قضية من هي افضل لغة برمجة تطبيقات ويب كانت و لا تزال و ستظل مصدر خلاف و جدل
    لذلك ظهرت الكثير من المقالات الانجليزية التي تحاول المقارنة بين اللغات و اختيار
    افضلها و لكن كانت المشكلة ان كل موقع ينشر مقالة بهذا الخصوص يتحيز للغته التي
    يتحدث عنها موقعه و اكثرها البي اتش بي حيث كثرت مقالات تفضيلها على سائر اللغات
    مثل البيرل ( و فيها نظر ) و الـ asp ( بلا شك ) و الـ CF و الـ Java و غيرها .
    و قس على هذا مواقع البيرل تكتب مقالات تفضيل البيرل ... و هلم جرا .

    ثم جاءت فترة انتشرت هذه النوعية من المواضيع في منتدى سوالف سوفت و الجميع يذكر
    الحوار العنيف الذي دار بين مبرمج ( بي اتش بي ) و مبرمج محترف ( اي اس بي ) و غيرهم
    و كان من اطول و افضل المواضيع على مستوى عال في الفكرة و النقاش . ثم عاد الاخ
    الفيصل اذا لم تخني الذاكرة بإعادة اشعال النيران بعد ان فتح موضوع مقارنة البيرل
    بالبي اتش بي و الذي تولى الدفاع عن البيرل المظلومة الاخ الوطواط و الاخ مبسوط .
    ثم هدأت الأجواء لتكون الهدوء الذي يسبق العاصفة فتفجر تقنية الدوت نيت الاجواء من جديد
    ليدخل مناصري البي اتش بي في مواجهة صعبة جدا مقابل الدوت نيت بكل عظمتها و جبروتها .
    و على الرغم من كل مميزات الدوت نيت و محاولة تجنب انصار البي اتش بي الدخول في مواجهات معها
    الا ان المستقبل هو الكفيـل بكشف الستار عن بقاء اللغة الاصلح .. - و لم اقل الاقوى لأن القوة ليست
    دليل النجاح و البقاء ، و ما الاكس بوكس عنا ببعيد !- .
    و لا اقصد ان اقلل من شأن هذه المقالات و المواضيع ( اقصد الانجليزية و العربية على السواء )
    و لكن احاول التنبيه الى ان هذه المقالات 1- عادة ما تقارن في اشياء سطحية او ثانوية الاهمية و لكي
    ابين ما ارمي اليه نأخذ بعض الأمثلة :- بخصوص المواضيع العربية فحدث و لا حرج فالعادة تفضيل احد
    اللغات لاسباب مثل ... السهولة !! جبارة !! الأمان .. فهذه الالفاظ الفاظ عامة لا تعدو ان تنطبق على اي
    لغة لو نظر اليها من الجهة الايجابية ... و هذا رد لاخي العزيز بيشو على الاخ البيتي في موضوعه ايهما
    افضل البي اشت بي او الJSP ؟!
    ((سوف اكون واقعيا
    ال JSP جبارة
    لكن ال PHP بنظري اسهل جدا
    .......
    وايضا ال JSP صعبة التعامل و طريقة المتغيرات وشك الكود صعب شوي
    على حسب فهمي للغة
    لكن ال PHP سهلة و تحاكي العقل وايضا فوق كل هذا مجانية
    والقرار لك . ))
    و لا اقول هنا ان الاخ بيشو اخطأ بل اهنئه على هذه الخبرة و لكن نقطة الخلاف
    هنا لماذا تذكر مثل هذه الالفاظ العامة دون ارداف ادلة و براهين تثبت صحة الكلام .. و لا احتاج ان اذكر
    بأن سهولة اللغة و صعوبتها ليست اصلا لتفضيل لغة و لكن الاخ بيشو كان في مقام الناصح فاراد مراعاة
    المنصوح و تنبيهه الى ما هو اسهل له .
    و نرى مثل هذه المشكلة في المواضيع الانجليزية على نفس الشاكله فنعذر بذلك اخواننا العرب
    و مثال ذلك ما ورد في احد المواضيع في تفضيل البي اتش بي على الاي اس بي
    MySQL makes it cooler و No Hidden Costs with PHP فنلاحظ ان المقارنة سطحية للغاية و ليست اسباب
    ترجح كفة البي اتش بي فلو جاء مبرمج ASP لرد عليه قائلا ان MYSQL تقابلها SQL SERVER في الASP
    و اما التكلفة و القيمة فهي ليست سبب في تفضيل اللغة تقنيا و لكن تفضيل مبني على مستوى الافراد
    وحتى الشركات و المؤسسات بل حتى الافراد لن تمانع في دفع مبالغ اذا كانت اللغة اقوى فعلا من غيرها !
    و في نهاية موضوعه يضيف هذه النقطة :
    Closer to Java/C++ Style of Programming
    و يعلق عليها : OK, the benefits of this statement is an opinion.
    I agree that you won't convince a hard-core Visual Basic programmer to switch to PHP just because
    PHP has C or Java style for-loops,
    curly-braces and ->.
    But you could convince someone who likes C++ or Java that
    PHP is a better or easier language to learn than VBScript.

    فنرى الكاتب يعتبر مشابهة طريقة كتابة الكود في البي اتش بي بطريقة الجافا و السي ++ من اسباب
    تفضيل البي اتش بي على الاي اس بي و الغريب في الامر انه يعود لنفي ذلك فيقول ان المسألة مسألة مناسبة
    طريقة التفكير و مدى تأقلم المبرمج مع طريقة كتابته للكود ..فلا يمكننا اقناع مبرمج الفي بي بترك
    الاي اس بي لصالح البي اتش بي لانها تشبه الجافا و السي .!!
    و لا ادري هل يحق لي ان اتهم الكاتب بمحاولة حشو الادلة لصالح البي اتش بي ام لا . و الجدير بالذكر ان
    الكاتب لم يستطع الا ان يكتب سبع نقاط لصالح البي اتش بي و قد بينا سطحيتها اما في موضوعه عن البي اتش بي
    و البيرل فالأمر لا يعدو ان يكون مسألة ذوق فهو يذكر دليل او اثنان توافقا مع مزاجه ! (( قد اترجم
    هذا الموضوع و الموضوع الذي قبله للفائدة فقط )) .
    و هذا مع الاسف ما لا تتوقعه من المواضيع الانجليزية بأن تكون سطحية و غير موضوعية بالشكل المطلوب .

    2 - اضف الى ذلك استخدام المقارنات العامة دون ذكر دليل قطعي او ارقام عملية مثال ذلك هذا المقطع
    من مقالة ترجح البي اتش بي على البيرل :-
    PHP: Speed, Speed, Speed
    In other articles, I have commented that the main reason why I like PHP is its speed.
    I have anecdotal evidence in WWWThreads.
    This is a popular web forum available in both PHP and Perl versions.
    The general consensus is that the PHP one is faster.
    Refer to this posting and this one by Scream, the author of the software.

    حيث نرى الكاتب قد بح صوته من كثرة ما ردد كلمة السرعة دون ان يأتي بدراسة علمية او ارقام عملية
    و من الجيد ان نراه قد اتى بمثال عن برنامج المنتديات الشهير دبليو ثريدز الذي تتوافر منه نسختين
    بالبيرل و البي اتش بي ... و الذي قد لا نراها في مواضيع اخرى مثل المواضيع العربية التي تكتفي بقول
    جملة .. (( البي اتش بي اسرع )) دون ذكر ادلة فلا ندري كيف حكم على سرعة البي اتش بي و هو في الاغلب
    لم يستخدم غيرها من اللغات !.
    هل علينا ان نحملها على محمل تجربته ؟! لما ورد عن الرسول (ص):
    (( احمل اخاك على سبعين محمل)) !!! ثم منذ متى صار الحكم على سرعة اللغة من خلال منتدى قد تكون
    نسخة المنتدى المكتوبة بالبيرل لم تكتب بالتخطيط المطلوب لقدمها اما البي اتش بي فأتت متأخرة مما
    يساعد حسن التخطيط لنسختها . هذا فضلا عن عدم تنويه الكاتب بالـmod_perl و بما يمتاز من سرعة و كأنه
    يتجاهله او يتناساه لمعارضته غايته و هي بيان تفوق البي اتش بي في السرعة .

    بل وصل الامر ان تعدى الموضوع الى الدراسات و الاحصائيات ففي احدى الدراسات لعام 2002 التي اجرها
    موقع نيت كرافت بالاشتراك مع موقع البي اتش بي الرسمي لقياس اكثر اللغات محبوبية في اوساط
    مواقع الانترنت و حساب معدل نموها . و ذلك بحساب عدد المواقع التي تم تنصيب اللغة فيها .
    جاءت النتائج على الشكل التالي :-
    1- ASP 48%
    2- PHP 30%
    3-CFM 20%
    4- JSP 2%
    فأين البيرل بين كل هذه اللغات و هي اكثر اللغات استخداما في الـ CGI . !!
    ثم هل ننسى ان ال PHP تأتي مرفقة كمودل مع الاباتشي يعني كل موقع وضع سيرفر الاباتشي
    سيكون فيه البي اتش بي . اضف الى ذلك انه لا يمكن ان نجزم بأن الموقع الذي تركب عليه البي اتش بي
    يستخدم البي اتش بي فعلا فقد تكون موجودة و لكن الكل يعمل على البيرل مثلا !

    3- بعض الكتاب يستعجل بكتابة خاصية او ميزة في لغة و ينفيها عن اللغة الاخرى و هو لا ادري فقد تكون
    هذه الميزة اضيفت فعلا في وقت لاحق في اللغة او يمكن عمل هذه الميزة بطريقة اخرى .. و مثال ذلك من
    المواضيع العربية .. رد الاخ ( المحبوب ) على موضوع الاخ البيتي عن الـ JSP :
    (( للمواقع الكبيرة جدا طبعا ال jsp افضل لأنها اسرع واقوي فهي تدعم الMultiThreads
    لكن البي اتش بي اسهل بكثير وملائمة للمواقع الصغيرة والمتوسطة اكثر))
    فلولا تدارك الاخ مبرمج للموقف و ذكره الطريقة البديلة في البي اتش بي لهذه الميزة و ذكره انهم
    بالاضافة الى ذلك في صدد اضافة هذه الخاصية للبي اتش بي لكانت هذه ميزة تفوق الجي اس بي و على
    البي اتش بي !
    اما مثال ذلك من المواضيع الانجليزية (( موضوع سبق ذكره في تفضيل البي اتش بي على البيرل )):
    (( PHP, Moses and the Separation of Code and Data
    One of the first code management techniques we are taught (or stumble upon) is separating code from data.
    This allows us to make changes to the code or data without affecting the other.
    PHP wisely uses the <?php ?> tags to indicate "code inside". So just like Moses divided the Red Sea,
    we have PHP dividing the code from the HTML for easy management.

    In Perl, you are encouraged to use print statements to generate all your HTML.
    True you can implement templates in Perl to separate code and HTML, but 90% of sample Perl code that you download doesn't do that. Just imagine, the Pharoah Perl, his html horses,
    the coding chariots and the soldiers in many files all mixed up, drowning in the Red Sea...Ugh.
    ))
    و خلاصة كلام الكاتب انه ادعى ان البي اتش بي افضل من البيرل في طريقة فصل الكود عن الاتش تي ام ال
    و سنتطرق لطريقة كتابة الكود في اخر الموضوع .. المهم انه قال ان البي اتش بي افضل في هذه النقطة
    لانه يمكن فصل كود البي اتش بي بطريقة <? ?> المعروفة ، هذا و يعود الكاتب ليرد على نفسه فيقول ان
    الفصل ممكن بالبيرل عن طريق التمبلتس ( القوالب ) و حاول ان يقلل من شأنها بأن البرامج التي ننزلها
    للبيرل من النت عادة لا تستخدم هذه الطريقة .. فهل يجب ان نقول له انك تكلم اشخاص يريدون ان يصبحوا
    مبرمجين و ليس اناس يريدون تنزيل سكربتات جاهزة لموقعهم !!
    هذا و لقد رد عليه احد القراء برد جميل :
    ((There is one version of Perl
    I know that supports the separation of code and html using <% %> tags,
    Active Perl with ASP.
    I am sure there are others (Ted Shieh pointed me to 2 more: mason and embperl).
    )) فرد عليه القاريء بامكانية الفصل بطريقة الاي اس بي و البي اتش بي في احدى اصدارات البيرل .!
    فهل نضع هذه النقطة على حساب عدم علم الكاتب فيكون بذلك ليس مؤهلا للمقارنة .. ام نعبرها تعصبا
    للبي اتش بي لان الكاتب مبرمج في عديد من اللغات و منها البيرل و لا اعتقد ان هذا الامر يخفى على مثله .

    __
    __ تابع لطول الموضوع





    sourcer غير متواجد حالياً


  2. #2
    عضو نشيط
    تاريخ التسجيل
    Apr 2002
    المشاركات
    140

    تابــــع :



    كل ما ذكرته هنا كان مقدمة لذكر نقطة احببت ان اصل اليها و حسب . و هي طريقة جيدة و سبق لبعض الاخوان
    التنبيه لها و لكن لم يواجه القبول اللازم ، و هي طريقة كتابة كود من لغة و كتابة مثيله باللغة الاخرى
    و التدرج من الاسهل الى الاصعب الى التعمق و ذلك امام عين الشخص الذي يريد ان يختار لغة لتعلمها و بذلك
    يعرف اي لغة تناسب طريقة تفكيره اكثر فيتعلمها و قد لا تكون هذه الطريقة هي الطريقة المثلى لمعرفة من
    هي افضل لغة برمجة تطبيقات ويب و لكنها تفي بالغرض اي تحديد اتجاه المتعلم و مساعدته على اختيار اللغة
    التي تناسبه و ليس اللغة الاقوى لان الأقوى أمر نسبي يختلف من شخص لاخر و يجب ان نعي انه لا توجد لغة اقوى
    الى الابد فاللغة التي تتعلمها يجب ان تتعلمها لفائدتك و استخدامها و ليس للتباهي بأنك تعرف افضل لغة برمجة
    لن تلبث حتى تعد من اضعف اللغات عندما تأتي لغات اخرى اقوى منها او تتطور لغات اخرى باصدارات نوعية .
    و قد اعجبني موضوع انجليزي يقارن بين طريقة كتابة الكود في البيرل و الجافا و البي اتش بي . و اردت
    ان اذكر المثال الاول الذي اختاره الكاتب للمقارنة :
    و المثال ليس قصده تفضيل لغة على اخرى لانه يجب التعمق في الامثلة لذاك الغرض اما نحن فسنكتفي بعرض
    طريقة كتابة الكود و للقارئ حرية اختيار التي تناسب ذوقه و تفكيره ..
    و المثال عبارة عن كتابة صفحة فيها متغيرين العنوان و تحية الدخول و التي ستكون بالـ html العادي
    بهذا الشكل :

    <html>
    <head>
    <title>My First Script</title>
    </head>
    <body>
    <h1>My First Script</h1>
    <p>Welcome to my first script.</p>
    </body>
    </html>


    نأتي اولا للبي اتش بي حيث سيكون بهذا الشكل :
    <?php
    $title = "My First Script";
    $greeting = "Welcome to my first script.";
    ?>
    <html>
    <head>
    <title><?php echo($title) ?></title>
    </head>
    <body>
    <h1><?php echo($title) ?></h1>
    <p><?php echo($greeting) ?></p>
    </body>
    </html>

    البي اتش بي معروفة بتنظيم كتابة الكود في البداية عرفنا متغيرين للعنوان و الاخر للتحية
    ثم اعدنا كتابة صفحة الHTML و لكن هذه المرة قمنا باستبدال الكلمات بالمتغيرات و ذلك تم
    ببساطة من خلال تضمين كود بي اتش بي من خلال وسوم الاستفهام المعروفة .

    ثانيا : مثال لغة البيرل ...
    #!/usr/bin/perl
    $title = "My first Script";
    $greeting = "Welcome to my first script.";
    print <<EOF;
    Content-type: text/html

    <html>
    <head>
    <title>$title</title>
    </head>
    <body>
    <h1>$title</h1>
    <p>$greeting</p>
    </body>
    </html>
    EOF

    اممم اعتقد انك لاحظت تعقد الكود قليلا فقط . فالسطر الاول يقوم باخبار النظام المستخدم في السيرفر
    ان الكود القادم بلغة البيرل و لا شيء اخر . و هذا عادة يستخدم مع مزودات يونكس اما في غيره من
    الانظمة فغالبا ما تعمل البيرل بشكل طبيعي و تقوم باعتبار هذا السطر كتعليق تتجاهله .
    عرفنا المتغيرين مثل البي اتش بي ثم استخدمنا الامر print<<EOF و هو ما سيقوم بارسال الاكواد التالية
    مباشرة الى المتصفح الى ان يصل الى EOF . و لان البيرل تعمل تحت السي جي اي فعليك اضافة الامر
    Content-type: text/html يتبعه فراغ ثم صفحة الـ html . و هذا الامر يقوم به البي اتش بي اوتوماتيكيا
    اما البيرل و الجافا فيجب ان تعمله يدويا . لاحظ انه بذلك استغنينا عن اضافة وسوم الاستفهام لتتعامل
    مع المتغيرات كما في البي اتش بي . فإذا اردت ان تطبع المتغير نفسه و ليس قيمته اكتبه هكذا
    /$title .

    اخيرا الجافا .:

    import java.io.*;
    import javax.servlet.*;

    public class
    HelloServlet extends GenericServlet {
    public void service (ServletRequest request,
    ServletResponse response)
    throws ServletException, IOException {
    response.setContentType("text/html");
    PrintWriter pw = response.getWriter();
    this.MyContentHere(pw);
    pw.close();
    }

    public void MyContentHere(PrintWriter pw) {
    String title = "My First Script";
    String greeting = "Welcome to my first script.";
    pw.println("<html>");
    pw.println(" <head>");
    pw.println(" <title>" + title + "</title>");
    pw.println(" </head>");
    pw.println(" <body>");
    pw.println(" <h1>" + title + "</h1>");
    pw.println(" <p>" + greeting + "</p>");
    pw.println(" </body>");
    pw.println("</html>");
    }

    اكيد انك لاحظت طول الكود هنا اممم ...
    لاحظ اننا قمنا بعملية استيراد في البداية باستخدام الامر import ثم قمنا بانشاء كلاس فرعي من
    GenericServlet و اعطيناه اسم HelloServlet .. و الامر response.setContentType("text/html");,
    هو الامر الكامل للـ MIME HEADer و الذي كتبناه مباشرة في مثال البيرل . الذي يجب مراعاته و الانتباه
    له هنا ان الجافا تستخدم البوينت رايتر pw كمدخل و ترسله الى المتصفح و ان المتغيرات تحاط بعلامتي + .
    و لا ننسى ان الجافا تعتمد على الاستيراد من الملفات الاخرى .

    قد يكون الشرح ليس واضحا بما فيه الكفاية و اعتذر من ذلك لانني في الحقيقة لست بمبرمج جافا .

    ___

    ليس القصد من هذا الموضوع التهجم على احد و لا على اي لغة و لكن كان نقد حاولت ان يكون موضوعيا بعيدا
    عن التحيز لصالح ما احبه من اشخاص او تقنيات . و الله من وراء القصد

    اخوكم SOURCER
    بريد و ماسنجر هوتميل : perl_sourcer@yahoo.com





    sourcer غير متواجد حالياً

  3. #3
    عضو نشيط
    تاريخ التسجيل
    Apr 2002
    المشاركات
    140
    sourcer غير متواجد حالياً

  4. #4
    عضو نشيط جدا
    تاريخ التسجيل
    Feb 2003
    المشاركات
    557


    الف شكر اخي الفاضل
    فعلا مقال متميز ، جزاك الله كل خير

    تحياتي





    __________________
    اشهد أن لا إله الا الله وان محمد عبد الله ورسوله

    إن أفضل ما في الحياة أن نقضيها في عمل شيء ، أي شيء يعيش أطول من الحياة نفسها
    abubakerhamd غير متواجد حالياً

  5. #5


    السلام عليكم

    ياسلام عليك اخي sourcer ....
    مقال اكثر من رائع .... وياريت تتحفنا بمثل هل مقالات المفيدة دائما

    وشكرك جزيل الشكر على هذا الموضوع

    وشكرا





    __________________
    موت الصالح راحة لنفسه * وموت الطالح راحة للناس
    مسالم2002 غير متواجد حالياً

  6. #6
    عضو نشيط
    تاريخ التسجيل
    Apr 2002
    المشاركات
    140


    abubakerhamd :
    شكرا على الاطراء و ان شاء الله نكون في حسن الظن

    مسالم2002 :

    شكرا و سأسعى الى ذلك ما استطعت





    sourcer غير متواجد حالياً





ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | دليل الكويت العقاري | مقروء | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض