التخطي إلى المحتوى الرئيسي

جافاسكريبت JavaScript - الحلقة الأولى

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

ربما لن يوافقني suckless في هذا الكلام، لكن من يهتم لأمرهم؟..هم جماعة من المتصوفة وأفكارهم لن تناسب عملاءنا على أي حال (ولو راقت لي!).

قصة جافاسكريبت

في بداياتها، سنة 1995، أضافت نيتسكيب محرك جافا سكريبت الأول على متصفحها، ومنذ ذلك الحين، قطعت جافاسكريبت طريقا طويلاً من التطور بل واستبعاد خصومها، وأصبح لها العديد من محركات التشغيل، أشهرها بلا منازع هو محرك V8 مفتوح المصدر المطور بواسطة جوجل، والمستخدم في متصفح كروم، كما هو مستخدم كجزء من محرك node.js, deno.js

فماذا يعمل المحرك؟

حسناً، هكذا يعمل كود جافاسكريبت على جهازك (طريقة محرك V8):

  1. يدخل الكود بصورته النصية إلى المحرك
  2. يقرأ المحرك Parsing الكود سريعا
  3. ينشئ المحرك شجرة تجريدية بالأوامر
  4. يتم تحسين الكود وتحويله إلى لغة الآلة compiling

بالطبع تتفاوت طرق العمل من محرك لآخر، لقراءة المزيد راجع مصدر الصورة.

هذه الاستقلالية التي تتسم بها اللغة مكنتها في النهاية من أن تتحول من لغة لا تؤخذ مأخذ الجد، إلى لغة مناسبة لكل الأغراض، بل وتتسرب إلى مالا يخطر على بالك من مجالات.

إليك مثلاً، مشروع انشاء حواسيب افتراضية بلغة جافا سكريبت..

سأعود لاحقاً لنكمل ما بدأناه، مع جافاسكريبت.

تعليقات

المشاركات الشائعة من هذه المدونة

جدران النار - خطوط الدفاع

جدران النار Firewalls هي واحدة من أهم مواردك للدفاع عن الشبكة، هي الحراسة الخاصة على بوابتك للإنترنت. تأتي جدران النار بصور وأشكال مختلفة، فمن حيث طبيعتها، قد تكون أجهزة متخصصة appliances، أو برامج مختصة ، تماماً كمضاد الفيروسات. لكل من هذين النوعين مميزاته وعيوبه، فالأجهزة المختصة يمكنها أن تفرض القواعد العامة على مؤسسة كاملة مبقية التحكم في أيدي مديري الشبكة، كذلك تكون هذه الأجهزة محسنة لتقوم فقط بفلترة حزم البيانات الداخلة إلى الشبكة مما يقلل من امكانية تعطيلها بسبب ثغرات مختلفة بواسطة المخترقين، كما هناك في كثير منها، العديد من التقنيات الذكية الأحدث التي تتبنى تقنيات تعلم الآلة لتتمكن من ملاحظة أي سلوك غير مألوف (أو عدواني، ربما) على الشبكة الخاصة بك، والاستجابة الفورية.. كذلك، فهي قادرة إلى حد بعيد على حماية الأجهزة الذكية وانترنت الأشياء من عبث المخترقين، ربما لا تستطيع وضع برنامج جدار ناري على تلفزيونك الذكي وكاميرا المراقبة الأبوية في منزلك، لكنك تستطيع حماية بيئتك المنزلية من خلال جدار ناري على مصدر الانترنت. أما البرامج فهي في الغالب تستخدم لحماية جهاز بعينه، أو نقطة واحدة ...

جافاسكريبت JavaScript - الحلقة الثانية

حسناً، إذا كنت مهتماً بجافاسكريبت فلا شك أنك سمعت تعبير ECMAScript، ما هو؟..وما معناه؟ الواقع أن جافاسكريبت عندما اخترعت للمرة الأولى بواسطة إيريك بريندن سنة 1995 احتاجت لمعايير للغة، كلغة مفتوحة المصدر تحتاج لمعايير كي تمكن مصنعي المتصفحات من تبنيها بشكل موحد وصحيح، ظهرت هذه المعايير في صورة ECMAScript سنة 1997 لأول مرة، كعمل تحت التطوير المستمر، وصدر منها العديد من الاصدارات منذ ذلك الحين، ومع كل اصدار من هذه المعايير، يتم تبني الاصدار الأحدث تدريجياً في المتصفحات ومحركات جافاسكريبت. نستطيع القول بأن ECMAScript هي المعايير التي تحدد شكل اللغة، ومن خلالها تضاف التحديثات بشكل دوري. هذه حلقة قديمة للمهندس مدحت داود على يوتيوب، يشرح فيها تاريخ ECMAScript وماهيتها..أنصح بها بشدة، كما يشرح المهندس كثيرا من مفاهيم جافاسكريبت ومكتباتها في قناته..

أيهما أفضل؟ Firebase vs. MySql

يعتمد، ﻷي شئ تريده؟ والحكم عموماً على النظم واﻷدوات دائماً ما يقوم على تحليل احتياجاتك. سأعطيك المزايا والعيوب لفايربيز من خلال تجربتي الشخصية.. مزايا Firebase: المرونة قاعدة بيانات فايربيز تتألف من وثائق JSON بالكامل، بالتالي، ففي أي وقت يمكنك تغيير محتويات الوثائق، اضافة/حذف الخانات دون أي مشاكل سهولة اﻻستخدام خدمة فايربيز توفر لك مكتبة كاملة ﻻجراء العمليات بشكل متزامن أو غير متزامن دون أي قلق أو كتابة أكواد مطولة دعم جوجل قد تقلق كثيراً بعد اطلاق منتجك بخصوص السيرفر ومناسبته لحجم الطلبات وغير ذلك، ليس في حالة فايربيز، بتكلفة زهيدة (بالمقارنة بتكاليف ادارة مركز بيانات مثلاً) تتولى جوجل عنك استضافة قاعدة البيانات والتعامل معها مهما كبر حجم قاعدة البيانات.. هذا ﻻ يعني أنها مثالية لكل التطبيقات، بعض عيوبها التي ﻻحظتها كالتالي: ضعف خصائص البحث خصائص البحث وشروطه فيها ضعيفة جداً، مقيدة جداً وﻻ تقارن بما هو موجود في قواعد البيانات البنيوية SQL، تعمد أكثر التطبيقات إلى تكرار البيانات المختلفة بين الوثائق وهذا ليس مثالياً..لهذا ﻻ أنصح بها لتطبيقات ادارة الموارد، مثل ERP وما ش...