Summary

  • حددت مسودة W3C لعام 2009 واجهة لقاعدة بيانات محلية تُستعلم بنسخة من SQL. وسجلت في الوقت نفسه أن كل المنفذين المهتمين استخدموا SQLite، وأن الإحالة إلى سلوك ذلك المحرّك لا تكفي لتعريف لغة قابلة للتنفيذ المستقل.
  • اتفقت مجموعة Web Applications في 1 نوفمبر 2010 على تحويل Web SQL Database إلى مذكرة فريق عمل وإخراجه من مسار التوصية. صدرت المذكرة في 18 نوفمبر، ثم وصف عرض W3C لعام 2011 مسار قاعدة SQL بأنه متروك لصالح IndexedDB.

في عالم المواصفات، يُحتفل عادة بوجود تنفيذين. غير أن عدّ واجهتين لا يحسم ما يقع خلفهما. إذا أرسل متصفحان السؤال نفسه إلى SQLite، فقد يتطابق الجواب لأنهما يعتمدان على المفسّر نفسه. الامتحان الأصعب هو أن يبني طرف آخر مفسّراً مختلفاً ويصل إلى النتيجة نفسها بالاعتماد على النص المنشور. ذلك الامتحان لم يكن ممكناً لـ Web SQL.

قدمت مسودة W3C الصادرة في ديسمبر 2009 واجهة غير متزامنة لفتح قاعدة البيانات وتنفيذ أوامر داخل معاملة وقراءة الصفوف. وُصفت خطوات الواجهة بتفصيل معقول. أما اللغة المرسلة من خلالها فسميت «نسخة من SQL» من دون رسم حدودها بمعزل عن المحرّك. ذكرت المسودة المأزق صراحة: جميع المنفذين المهتمين استخدموا SQLite؛ والإشارة إليه لتعريف اللهجة ليست مواصفة كافية. دعا محررها من يريد صنع محرّك مستقل إلى المساهمة حتى يمكن وصف اللغة ذاتها.

لم تكن المسألة خصومة مع SQLite. كتب مهندس Mozilla، Vladimir Vukicevic، في رسالة أصلية إلى قائمة W3C العامة في أبريل 2009 أنه يحبه ودافع عن إدخاله في Gecko. لكنه رأى أن صفحات الويب ستعتاد قراراته الخاصة بشأن بناء الجمل وأنواع البيانات. وقد تفشل تطبيقات كُتبت لهذه القرارات على محرّك آخر. عبارة «افعل ما يفعله SQLite» كانت ستلزم صانعي المتصفحات أيضاً بتبعات تغيّر مكتبته وصيانتها الأمنية. هذا تحليل مشارك في النقاش، وليس إحصاء لتطبيقات تعطلت بالفعل.

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

في محضر اجتماع W3C بتاريخ 1 نوفمبر 2010، سُجل وجود تنفيذين مع غياب الرغبة في دفع المشروع إلى الأمام، واعتمادهما على SQLite، وغياب تعريف منفصل للجزء المستخدم من SQL. وافقت المجموعة على نشر النص كمذكرة. ذُكر إمكان إعادته إلى مسار التوصية إذا عاد الاهتمام، مع التنبيه إلى ضرورة استئناف إجراءات الملكية الفكرية. إتاحة وثيقة للقراءة شيء، واعتمادها معياراً مكتملاً شيء آخر.

أعلنت مذكرة 18 نوفمبر 2010 توقف عمل المواصفة لحاجتها إلى تنفيذات مستقلة متعددة. وظل فصل SQL فيها يطلب من وكلاء المستخدم تطبيق لهجة SQLite 3.6.19. أصبح رقم إصدار مكتبة جزءاً من الحد العملي للغة. وواصل W3C العمل على Web Storage وIndexedDB؛ وفي عرضه الصادر في أغسطس 2011 وصف العمل على قاعدة SQL في المتصفح بأنه تُرك لصالح IndexedDB.

لا تحدد هذه السجلات تاريخ إزالة Web SQL من كل متصفح، ولا عدد المواقع التي اعتمدت عليه؛ يحتاج ذلك إلى بيانات التطبيقات وإصدارات المتصفحات. لكنها تحسم سبب التعثر: تنفيذان يقتسمان محرّكاً واحداً لا يبرهنان أن اللغة قابلة للبناء خارج ذلك المحرّك.

السجلات الأصلية