/Why JavaScript ?

Why JavaScript ?

how to start

كلنا عندنا  أفكار أكثر من رائعة ولكن عندما يأتي التنفيذ نتكاسل أو نستسلم بسهولة.

القصة من البداية

عندك مشروع هيكسر الدنيا و عرضت فكرتك على بعض العملاء اللي المشروع هيخدمهم وعجبتهم الفكرة جدا

فكرت هتبدأ ازاي معايا فكره ناجحه هتحقق ارباح كبيره  .

لسه مبدأتش التنفيذ مستني إيه ؟

طيب يلا نبدأ  website طيب يلا نبدأ بس استني هيا الفكرة عبارة عن ايه

وتيجي المفاجأة أنا مش عارف هيدأ ازاي؟

هستخدم أي لغة برمجة

• هستخدم أي framework
• هستخدم أي داتا بيز
• هستخدم أي hosting provider  إلخ…..

عندي اختيارات كتير  ولازم اختار الاسرع في عملية development  وكمان لازم أضع في الاعتبار الكفاءة .

الحماس بدأ يقل وممكن بعد فتره صغيرة تموت الفكرة

بس أنا  مشتت بين  لغات كتير  مش عارف الأفضل

الحل : استخدام لغة واحدة

ازاي لغه واحده  هتحل المشكله ؟

 افترض معايا  ان فعلا في لغه واحده هتحل المشكله وهي JavaScript

شوف ده

js-0

 Full Stack Paradigm

من الشكل اللي قدامي أقدر ابني  باستخدام لغة واحدة full feature web application

ومش بس  جافا سكربت  بتستخدم في server , client  بتستخدم أيضا في  building , testing ,templating

طيب جميل  هبدأ استخدمها وخلاص مشكلتي اتحلت let’s put javascript on the server

 استني هل فعلا جافا سكربت هي الحل ؟

مممممم مش عارف

طيب تعالى  معايا نشوف هل ممكن تحقق كل اللي انت عاوزه ولا لأ

نرجع بالزمن شوية

سنه 1998 كان معطم مطورين الويب بيستخدموا perl ومع ظهور الجافا سكربت client side تغيرت web server technology

لتشمل الكثير من اللغات

php , jsp , .net ,ruby ,python

مبرمجين بدأوا يدركوون أنا استخدام لغة برمجة لل server ولغة برمجة لل client  أمر معقد بعض الشئ  ومن هنا ظهرت المحاولات الأولى : لعمل compiling ل client component مكتوبة بجافا سكربت ولكن فشلت المحاولة ودي بعض  المحاولات :-

• ASP MVC replacing ASP.NET web forms
• GWT arguably being replaced in the near future by Polymer

فشلت طيب خلاص أشوف حاجة تانية استنى بس

بعد فشل المبدأي للفكرة إلا أنها ما زالت فكرة عظيمة وهي استخدام لغة واحدة client , server

وكمان  لو جافا سكربت اللي  تعتبر من اللغات سهلة التعلم .

في الحقيقة :

أول ميلاد للجافا سكربت  ك server side   في  Netscape Enterprise Server  ولكن اللغة لم تكن جاهزة في ذلك الوقت للاستخدام . ولكن بعد سنوات من المحاولات والاخطاء ظهرت node.js

ولكن لم تكن الميزة الوحيدة هي وضع جافا سكربت على السيرفر ولكن ايضا تطوير استخدام non-blocking programming

وده ببساطة

 في  بعض  العمليات التي تستغرق وقت طويل في التنفيذ مثال :-

 • file access
 network communication
 • database operations

 كل  ما عليه سوي ان يقوم بعمل request  ويضع جانبا إلى أن تنتهي العملية ويصبح هناك نتائج  ويتم  استرجاع النتائج باستخدام callback function

مش فاهم ؟

مثال صغير

function getUser(id) {

var user = db.query(id);

return user;

}

getUser(432, function (user) {

console.log(user.name);

});

console.log('Done');

في الحاله دي  السيرفر  هيستني العملية لما تخلص  وهيتجاهل أي request تانية وهنشوف اسم المستخدم وبعدين done

لكن مع الحل السحري اللي قدمته node.js  السيرفر مش هيستنى  هيستقبل اي request تاني

وهيكون ناتج الكود اللي قدامك ده done  وبعدين لما العملية تتنفذ اسم المستخدم هنشوف الناتج  في console

ومن هنا بدات تاخد node.js شهرة كبيرة

طيب ثواني  الفكره مش جديده ليه node.js أخدت الشهره دي ؟

ببساطة لأنها استخدام non-blocking programming بطريقتين :-

callback , event-loop

بس callback  موجودة في لغات كتير

لكن لو فكرت في event-loop لو حبيت تستخدمها في بايثون مثلا هتحتاج لمكتبات زي  Tornado

لكن تخيل ان كل الخصائص دي موجوده  في اللغه نفسها .

شكرا لل non-blocking programming

طيب انا قررت خلاص هستخدم جافا سكربت ابدأ ازاي استخدم full stack java script ؟

ده ان شاء الله اللي هنعرفه في المقال القادم .

Student at Faculty of Computer & Information Sciences (Mansoura University) java develper Geek php develper