رايت اقبالا متزايدا على الJSP في الاونة الاخيرة
هل JSP افضل من PHP ؟
وماهي المميزات
رايت اقبالا متزايدا على الJSP في الاونة الاخيرة
هل JSP افضل من PHP ؟
وماهي المميزات
سوف اكون واقعيا
ال JSP جبارة
لكن ال PHP بنظري اسهل جدا
واسرع
ال PHP لا ترحتاج وسيط للتعامل مع السيرفر وتعمل على
الويندوز و اليونكس بدون وسيط
اما ال JSP فتحتاج الى ال GDK كوسيط
وهذا بحد ذاتة يبطء من عملية المعالجة
وايضا ال JSP صعبة التعامل و طريقة المتغيرات وشك الكود صعب شوي
على حسب فهمي للغة
لكن ال PHP سهلة و تحاكي العقل وايضا فوق كل هذا مجانية
والقرار لك .
على ما أضن ان JSP هو اختصار Java Script Pages
__________________
يا نبض الضفة لا تهدأ أعلنها ثورة
حطم قيدك إجعل لحمك جسر العودة
JSP هي اختصار ل
Java Server Pages
و تستخدمها
hypermart.com بكثافة
و هذه بعض المعلومات عنها من Internet.com
What Are the Advantages of JSP?
JSP vs. Active Server Pages (ASP). ASP is a similar technology from Microsoft. The advantages of JSP are twofold. First, the dynamic part is written in Java, not Visual Basic or other MS-specific language, so it is more powerful and easier to use. Second, it is portable to other operating systems and non-Microsoft Web servers.
JSP vs. Pure Servlets. JSP doesn't give you anything that you couldn't in principle do with a servlet. But it is more convenient to write (and to modify!) regular HTML than to have a zillion println statements that generate the HTML. Plus, by separating the look from the content you can put different people on different tasks; your Web page design experts can build the HTML, leaving places for your servlet programmers to insert the dynamic content.
Contents
What Are Java Servlets?
What Are the Advantages of Servlets over Traditional CGI?
What Is JSP?
What Are the Advantages of JSP?
JSP vs. Server-Side Includes (SSI). SSI is a widely-supported technology for including externally-defined pieces into a static Web page. JSP is better because it lets you use servlets instead of a separate program to generate that dynamic part. Besides, SSI is really only intended for simple inclusions, not for "real" programs that use form data, make database connections, and the like.
JSP vs. JavaScript. JavaScript can generate HTML dynamically on the client. This is a useful capability, but only handles situations where the dynamic information is based on the client's environment. With the exception of cookies, HTTP and form submission data is not available to JavaScript. And, since it runs on the client, JavaScript cannot access server-side resources like databases, catalogs, pricing information, and the like.
JSP vs. Static HTML. Regular HTML, of course, cannot contain dynamic information. JSP is so easy and convenient that it is quite feasible to augment HTML pages that only benefit marginally by the insertion of small amounts of dynamic data. Previously, the cost of using dynamic data would preclude its use in all but the most valuable instances.
للمواقع الكبيرة جدا طبعا ال jsp افضل لأنها اسرع واقوي فهي تدعم الMultiThreads
لكن البي اتش بي اسهل بكثير وملائمة للمواقع الصغيرة والمتوسطة اكثر
__________________
اللهم صلي على محمد وآل محمد
هنالك الكثير للقول في هذا المجال، وسأحاول تقسيم الموضوع لتسهيل المقارنة ..
* الأداء
تتفوق JSP حتى الآن على جميع تقنيات البرمجة جهة الويب من ناحية الأداء، فلا يوجد ما يضاهيها في هذا المجال، في برامج CGI مثلا فإن مزود الويب يقوم بطلب برنامج خارجي كامل بكل ما يحتاجه من موارد مع كل طلب لأحد الصفحات، أما البرامج التي تعمل كفلاتر للصفحات مثل SSI أو PHP فإن المترجم يقوم بإمرار شفرة الصفحة على مترجم PHP الذي يجب أن يستعد لتنفيذ صفحة PHP من البداية إلى النهاية بكل ما تحتاجها الصفحة من موارد، أما JSP فهي تختلف كليا في طريقة عملها.
عندما تقوم بكتابة صفحة JSP، فإنها تخزن على المزود مثل أي صفحات أخرى في صورة نصوص، ولكن الزيارات إلى صفحة JSP تلك لا تنفذ الشفرة التي في الملف أبدا، وإنما ينفذ برنامج آخر موجود وجاهز في الذاكرة يمثل هذه الصفحة، تبدأ العملية بكتابة ملف JSP من قبل المبرمج ووضعه على مزود الويب في المكان المناسب، عند أول زيارة للصفحة الجديدة، يقوم محرك JSP ( جزأ يضاف على سيرفر الويب ) بقراءة محتويات هذه الصفحة ومعالجتها وتحويل تلك الصفحة إلى برنامج Java Servlet، هذه البرامج هي مجرد برامج Java عادية تستخدم نوعا خاصا من الواجهة البرمجية API لتنفيذ الأمور المختلفة المتعلقة بطلب الصفحات، وهي تكون عادة في صورة برامج Java متعددة المسالك ( Multithreaded ) بحيث أن نسخة واحدة من البرنامج تستطيع خدمة أكثر من طلب في نفس الوقت، مقارنة بلغة مثل PHP مثلا، إذا قام شخصان بطلب صفحة PHP نفسها مرتين في نفس الوقت ( أو حتى في أقوات متباعدة ) فإن كل زيارة ستؤدي إلى قراءة كاملة ومعالجة لمحتويات الصفحة، أما JSP فهي تقرأ وتعالج وتنفذ مرة واحدة، وتوضع منها نسخة واحدة في الذاكرة لتخدم جميع زوار الموقع.
يمكن حل هذه المشكلة في PHP وعمل أمر مشابه عن طريق البرامج التي تقوم بحفظ نسخة معالجة من الصفحات على الذاكرة لتعمل بسرعة في الطلبات المتلاحقة دون الحاجة لقراءة الملف من جديد من القرص الصلب مع كل طلب جديد للصفحة، ومن أمثلة تلك البرامج برنامج Zend Cache من شركة Zend الصهيونية، وبرنامج APC المجاني، وبرنامج من Beware مجاني أيضا ( لا يحضرني اسمه الآن ).
* المتطلبات
في سكريبتات PHP، يزور الزائر صفحة ما، فيقوم المزود بقراءة الصفحة وتمريرها إلى المترجم الذي يقوم بمعالجتها وطباعة محتوياتها للزائر وإنهاء الصفحة، وفي أثناء تنفيذ البرنامج فإن البرنامج سيحتاج إلى تخزين عدة أمور ومعلومات في الذاكرة، وحتى تتمكن من عمل ذلك ستحتاج إلى ذاكرة كافية بالطبع، أغلب المزودات يأتي بذاكرة أكثر بكثير من كافية لتنفيذ عملية مثل هذه، فهي تتوقع عدد كبيرا من الصفحات يطلب في نفي الوقت، أي أن الذاكرة التي ستحتاجها تلك البرامج للعمل هي مجموع ما يحتاجه كل برنامج على حدى، ولكن إذا لم يكن هنالك مقدار كبير من الضغط على مزودك فإن عدد السكريبتات التي ستنفذ في نفس اللحظة سيكون أقل، وبالتالي لن تحتاج إلى الكثير من الذاكرة، فلو كان لديك 1000 سكريبت على المزود، وزائر واحد لكل سكريبت في الثانية، لن تحتاج إلى الذاكرة الكافية لتنفيذ ذلك السكريبت لوحده، وبالتالي تستطيع تقدير ما تحتاجه من ذاكرة بناءا على عدد الزوار، ونفس الموضوع ينطبق على برامج CGI الأخرى، أما JSP فهنالك اعتبارات أخرى.
حيث أن جميع الصفحات يجب تعالج وتوضع في الذاكرة جاهزة للتنفيذ، لذا فإنك ستحتاج إلى مقدار ثابت وكبير من الذاكرة، فإذا كان لديك 1000 سكريبت على السيرفر، يجب أن تكون جميع هذه السكريبتات مجهزة في الذاكرة، حتى ولو كان الضغط على موقعك لا يشكل سوى زيارة واحدة في نفس اللحظة، إلا أنك ستحتاج إلى ما يكفي من الذاكرة لجعل هذه السكريبتات جاهزة للعمل في أي وقت، وبالتالي فإنك قد تحتاج إلى مقدار كبير من الذاكرة الغير مستغلة عمليا.
في مقابل ذلك، إذا كان لديك سكريبت واحد PHP و 1000 طلب في نفس اللحظة، فإنك ستحتاج إلى مقدار ما يحتاجه ذلك السكريبت من ذاكرة مضاعفة ألف مرة، ولكن ذلك ليس هو الحال مع JSP.
ففي JSP، إذا كان لديك سكريبت واحد ( معالج ومجهز في الذاكرة للتنفيذ )، وكان لديك 1000 زائر أو 1000000 زائر، فإن بإمكانك تنفيذ السكريبت بقدر أقل من الذاكرة الإضافية لكل زائر، وذلك عن طريق تخزين الكثير من الأمور المشتركة ( شفرة البرنامج، وحتى متغيرات داخل البرنامج ) في جزء من الذاكرة تشترك عليك جميع الزيارات.
لتوضيح ذلك أكثر بمثال، لنفرض أن لديك برنامج منتدى يعتمد على قوالب مخزنة في قواعد البيانات لعرض الصفحات، ولنفرض أن لديك ملفات لعرض صفحة أحد الساحات عن طريق تمرير رقم الساحة ( forumid ) كما في برنامج vB، حيث أن هنالك ملفا واحدا لعرض جميع المنتديات، بناءا على قيمة forumid الممرة، في لغة PHP، ستحتاج مع كل طلب يقوم به أحد الزوار لصفحة أحد المنتديات إلى أن تطلب بيانات قوالب الصفحة من قاعدة البيانات وتضعها في الذاكرة، ثم تطلب معلومات عن آخر 40 طرح في ذلك المنتدى، ثم تضع المواضيع في أماكنها الصحيحة في القوالب وتعرضها للمستخدم، المشكلة هنا أنك مضطر لتكرار العملية لكل زائر، فلا يمكنك مثلا تخزين البيانات في مكان ما في صورة cache ومن ثم عرضها للمستخدمين، لأن الصفحة تتغير مع كل مستخدم بناءا على المنتدى المطلوب، وقد تختلف حتى بناءا على كل زائر في حال أردت مثلا أن تعرض اسم الزائر في الصفحة مع التاريخ والوقت الحالي في المنتدى.
مع ذلك، ستجد بأن هنالك الكثير من الهدر، لأن هنالك الكثير من الأمور المشتركة بين الصفحات على الرغم من الأمور المتغيرة، فنظام JSP يتيح لك عمل متغيرات على مستوى البرنامج وحتى على مستويات أوسع لتخزين بيانات مشتركة بين الطلبات المختلفة، فيمكنك مثلا وضع القوالب في الذاكرة مرة واحدة عند تشغيل المزود، وتحديث هذه المعلومات فقط بعد تغيير القوالب في قواعد البيانات، بحيث لن تحتاج إلى طلب هذه المعلومات لكل مستخدم أو طلب جديد, ولن تحتاج إلى حجز الكثير من الذاكرة لوضع نسخ مكررة من البيانات نفسها لكل طلب لوحده.
بجانب الذاكرة، تحتوي JSP على مزايا ممتازة لتقليل الحاجة إلى المعالجة المتكررة، على سبيل المثال، إذا كان لديك برنامج يقوم بمعالجة بيانات ملف XML وتكوين شجرة من هذه البيانات تسهل عليك الوصول إلى أجزاء مختلفة منها ( يسمى هذا النظام من التعامل مع XML بالاسم DOM )، وكان برنامج يتيح لك مثلا التعامل مع هذا الملف، ستجد بأنك ستحتاج مع كل طلب جديد للسيرفر لقراءة ملف XML ومعالجته من جديد، لأنك عندما تعالج ملف XML فستحصل في PHP على resource identifier للتعامل معه، وبمجرد الانتقال إلى صفحة أخرى، سيضيع هذا الـ resource identifier وجميع البيانات التي كان يشير إليها وعليك إذا معالجة المستند مرة أخرى، ولكن مع JSP فإنك ستحصل على كائن ( Object ) يمكنك وضعه بأكمله في الذاكرة واستخدامه على طلبات متلاحقة دون أن تفقده بين الطلب والآخر، وهي ميزة مهمة كان هنالك فريق لتطويرها على مترجم PHP، وكان على العمل على وشك الانتهاء قبل بضعة أشهر، لكنني انشغلت بعد ذلك عن متابعة آخر أخبار المشروع.
وهنالك المزيد للمقارنة ..
لكنني سآخذ استراحة الآن بعد اذنكم
__________________
http://www.ArabBuilder.com
الاخ مبرمج ..
هل لديك دورات تعليم لغات برمجة معينة ..
وهل لك مكان محدد ..
ارجو ان تفيدني ..
ولك تحياتي
ما شاء الله عليك يا مبرمج ....قاعدة بيانات ....اللهم لا حسد...
كنت اريد ان اسألك سؤالين..
1-ماهي اللغات التي تبرمج بها.
2-بما انني جديد على البرمجة فأريد رأيك .هل أبرمج بالphp أو بالjsp.
3- من اين اكتسبت هذه المعلومات خاصة في غياب المعاهد والكتب التي تهتم بالphp في الوطن العربي....
__________________
يا نبض الضفة لا تهدأ أعلنها ثورة
حطم قيدك إجعل لحمك جسر العودة
اخي مبرمج عندي بعض الاسئله اتمني ان تتفضل علي بالاجابة عليها
*فهمت من كلامك ان الـJSP يجب ان اقوم بحساب مساحه من الذاكره لكل سكربت حتي وان لم يعمل ، فهل هذه المساحه محدودة ام على حسب حجم السكربت ؟ وهل هذا يعتبر عيبا في JSP ام ميزة ؟
*ذكرت انهم كانو بصدد تطوير هذه الميزه (Multi thread) في الـPHP فهل انتهو من تطويرها؟ ، وهل ستحتاج مني الي تركيب شي خارجي؟ وهل مشكلة ضياع الـ(resource indtifier) *لاتشيك على الـspell * مشكلة موجودة في لغة الـPHP ام تم حلها؟ واين يمكنني معرفه تفاصيل اكثر عن هذا الموضوع في الـPHP (من ناحية انتهاء تطوير ميزه الـmulti thread في الـPHP) لو سمحت ؟
* نقطة اخيرة هي :
ماهو الذي في الـPHP وغير موجود بالـJSP والعكس ؟
جزاك الله خير استاذي مبرمج على ماوضحته ووننتظر المقارنات التي ستاتي بعد الاستراحه *حشيك بعد الفطور مباشره *
للرفع
للرفع
للرفع
ارفعو معاي الموضوع طيب
فوق
up
__________________
يا نبض الضفة لا تهدأ أعلنها ثورة
حطم قيدك إجعل لحمك جسر العودة