WebKit يعيد كتابة محمّل الـ modules في Safari لإصلاح top-level await
أخطاء غريبة ظهرت في Safari وحده سنوات كان سببها قرارًا معماريًا بُني على مواصفة متروكة منذ 2016، لا كود المطورين.
قسم
أخطاء غريبة ظهرت في Safari وحده سنوات كان سببها قرارًا معماريًا بُني على مواصفة متروكة منذ 2016، لا كود المطورين.
طبقة بنى عليها المطورون ست سنوات تُغلق في موعد لم يحددوه، والاستثناء يشمل الألعاب القديمة غير المصانة، لا التطبيقات التي تُباع اليوم للعملاء.
حين يصبح كل إصدار طويل الدعم يختفي الخيار الصعب بين الاستقرار والتحديث، ويصبح رقم الإصدار نفسه دليلًا على عمر النظام.
قرار الانتقال إلى ESM الذي أجّلته فرق كثيرة لسنوات اتخذه الإطار نيابة عنها، وأغلب كلفة الترقية ستقع في أدوات البناء والاختبار لا في منطق التطبيق.
أشهر خطأ صامت في Promise.all لا يرمي أي error بل يبدّل القيم بهدوء، والدالة الجديدة تزيل سببه بجعل الاسم لا الترتيب هو ما يربط كل نتيجة بمصدرها.
حماية من ملفات zip bomb كانت مسؤولية كل مطور يتذكرها أو ينساها، صارت جزءًا من الـ runtime نفسه، ومعها قد تختفي حزمة كاملة من كثير من المشاريع.
جزء كبير من مشكلة يعمل على جهازي ولا يعمل على الـ CI سببه ملف lockfile يتغير دون تغيير حقيقي، والإصدار الجديد يعالج هذا السبب تحديدًا.
القواعد المفروضة في الواجهة وحدها كانت خفية حين كان المستخدم إنسانًا أمام الشاشة، وأصبحت مكشوفة حين صار العميل برنامجًا يقرأ الـ API مباشرة.
الصفحات التي تعتمد على XSLT لن تُظهر خطأ عند توقفها، بل ستعرض XML خامًا للزائر، وأكثر المتأثرين مواقع قديمة لا يتابع أحد فيها ملاحظات إصدارات المتصفحات.
الإضافة التي تُثبَّت لتلوين ملف أو تنسيقه تعمل في المحرر نفسه الذي يفتح كود العمل وملفات .env ومفاتيح الـ API، والـ sandbox هو الحاجز الوحيد بينهما.
برامج يومية مثل VS Code وSlack وDiscord مبنية على Electron، وأي منصة يتركها Chromium يتركها Electron خلفه، فتتوقف البرامج على الأجهزة القديمة عند آخر نسخة داعمة.
انتقال المنظومة عن مكتبة أساسية لم يحتج إلى خلاف على الرخصة، بل إلى مشروع هدأ طويلًا، وكثير من الاعتماديات في المشاريع اليوم تعيش الحالة نفسها دون أن تفشل.
كان اكتشاف ضعف الجهاز يتطلب إرهاقه أولًا بحسابات تجريبية، والآن تصل المعلومة مجانًا قبل رسم أول pixel، وهو ما يهم أسواقًا تغلب فيها الأجهزة المتوسطة.
الاستغناء عن الـ virtual DOM في Vue ليس قرار إعادة كتابة للتطبيق، بل قرار على مستوى المكوّن الواحد، يمكن أن يبدأ بالشاشة الأثقل وحدها.
كل حزمة تختفي من المشروع تعني سلسلة توريد أقصر وحساب مشرف أقل يمكن اختراقه، لكن الاعتماد لا يختفي، بل ينتقل من npm إلى الـ runtime نفسه.
الفارق بين مركز بيانات مكيّف وجهاز تخزين منزلي في صيف حار ليس درجة أو درجتين، وأثره يتراكم مع كل سنة تشغيل، وهو ما لا يظهر في مقارنة الماركات وحدها.
تسرب الـ goroutines لا يظهر في أي benchmark، بل في خدمة تثقل بعد أسابيع من التشغيل ويُعاد تشغيلها دوريًا، والآن صار الـ runtime نفسه يشير إليه.
قرار شراء لمركز بيانات ذكاء اصطناعي في أمريكا يصل بعد أشهر إلى سعر الهاتف في المنطقة، وتجديد أجهزة الفرق هو البند الذي يُعاد تسعيره الآن.
فشل الكتابة مع بقاء القراءة يجعل التطبيق يبدو سليمًا بينما يضيع كل حفظ بصمت، وتركز المنتجات على مزوّد واحد يجعل عطله عطلًا للجميع.
المسافة المخفية التي تحجزها الخطوط أكبر في العربية منها في اللاتينية، وهذه الخاصية تتيح أخيرًا حذف الحلول الملتوية التي تكتبها الواجهات العربية لضبط المحاذاة.
موقع الخادم لم يعد يُرسم على خريطة المستخدمين بل على خريطة الطاقة، وهذا يجعل وفرة الكهرباء في منطقة ما موردًا صناعيًا نادرًا.
أغلى جزء في رفع الصور من الهاتف على شبكة ضعيفة هو الشبكة نفسها، والإصدار الجديد يقلص ما يمر فيها ويخفف الحمل عن الاستضافة المشتركة.
أي نظام حصص يطرد أولًا من يلتزم بحدّه عند الازدحام يكافئ المتجاوز ويعاقب الملتزم، وهذا ينطبق على الـ rate limits والـ quotas كما ينطبق على الذاكرة.
العطل الجزئي أثقل على فرق التطوير من التوقف الكامل، ونسبة التوفر التي تعد بها أي شركة عملاءها سقفها أضعف خدمة تعتمد عليها في البناء.
قدرة برنامج يثبّته المستخدم بإرادته على جهازه أصبحت بندًا تقرره شركة المتصفح، والتغيير كله يدور حول API واحد انتقل فيه القرار من الإضافة إلى المتصفح.
أغلب عمل Rust الجاد هو استبدال كود C قائم قطعة بعد قطعة، وكل فجوة في التوافق كانت تترك سطرًا من C يعيش في المشروع سنوات.
إغلاق الموارد يصبح مرتبطًا بتعريف المتغير نفسه لا بكود يُكتب يدويًا ويمكن نسيانه، ومن يكتب TypeScript يقترب من استهداف المحركات مباشرة دون تحويل.
ثغرتا محرك regex والبحث النصي الكامل لا تحتاجان وصولًا إلى الخادم، بل يكفي أن يمرر التطبيق نص المستخدم إلى الاستعلام، كما أن PostgreSQL 14 يتوقف عن تلقي الإصلاحات في نوفمبر.
حين يكون للمكوّن الأساسي في المنتج مزوّد واحد، يصبح سعره ومكانه ومصيره قرار ذلك المزوّد، وظهور تطبيق مفتوح له يعيد جزءًا من هذا القرار إلى من يبني عليه.
حين تغيب منطقة كاملة عن خريطة البيع الرسمية لشركة، يصل الجهاز عبر المستوردين بتأخير وعلاوة ندرة ودون ضمان محلي، فلا يكون السعر المعلن هو السعر المدفوع.