مقالات معمّقة حول التكنولوجيا التي تشكّل المستقبل.

السكيومورفية مشكلة في الرسم لا نكتة

سطح مكتب ويلاند سكيومورفي مثل DEsk يُرهق خطوط معالجة الرسوميات بطرق لا تعرفها الواجهات المسطحة. إليك التكلفة الحقيقية لتتبع الأشعة على سطح مكتب.

مكتب خشبي مُضاء بمصباح واحد، عليه أوراق متوهجة وصندوق بريد.
عندما يصبح سطح المكتب كله مشهداً واحداً مُضاءً، يتحول الـ compositor إلى محرك ألعاب شاء أم أبى.

إليك ادعاء سيُزعج الطرفين: السكيومورفية لم تمت لأن المستخدمين كرهوها. ماتت لأنها كانت مكلفة، بالبكسلات وبدورات GPU وبساعات المصممين، وفاز التصميم المسطح اقتصادياً لا جمالياً. مشروع جديد يتداوله الناس، DEsk، وهو سطح مكتب ويلاند سكيومورفي لنظام لينكس تتحول فيه النوافذ إلى أوراق على مكتب من الجوز مُتتبَّع الأشعة، وهو أول اختبار حقيقي لهذه الفرضية منذ سنوات. وهو يثبتها بجمال: لحظة تقرر أن الغرفة كلها يضيئها مصباح مكتب واحد، فقد التزمت ببنية رسم أقرب إلى محرك ألعاب منها إلى GNOME Shell.

ما الذي يجب أن يرسمه سطح المكتب السكيومورفي فعلياً

التصميم المسطح رحيم بالمُصيِّر (renderer). الـ compositor الحديث مثل Mutter أو KWin يقضي معظم وقته في تركيب الـ textures: التطبيقات تسلّمك buffers، فترسم مستطيلات، وتطبّق بين الحين والآخر shader لزوايا مستديرة وظلاً خفيفاً، وينتهي الأمر. الإطار كله تقريباً مجاني على أي GPU صُنعت في العقد الأخير، ولهذا انتصرت الواجهات المسطحة: لا تكلف شيئاً وتتوسع إلى أي دقة بتحويل بسيط.

السكيومورفية تكسر هذا الاتفاق من كل جانب. فحين تقول لغة تصميمك «هذه النافذة ورقة كريمية بألياف وسُمك وزاوية مطوية»، تحتاج إلى:

  • تظليل المواد — الورق ليس لوناً، بل استجابة انتشار شبيهة بالتحت‑سطحية مع نسيج ألياف. هذا عمل لكل بكسل، لا تعبئة مستطيل.
  • إضاءة متسقة — كل جسم في المشهد يجب أن يتفق على مكان الضوء. مصباح مكتب واحد يعني خريطة ظلال واحدة (أو استعلام أشعة واحد) تشارك فيه كل العناصر، بما فيها محتوى النوافذ الحي.
  • ظلال التلامس — النافذة «الممددة على المكتب» تحتاج إلى occlusion محيطي حيث تلتقي الورقة بخشب الجوز، وإلا انهار الوهم فوراً.
  • التشوه — يتيح DEsk رفع زاوية الورقة لرؤية ظهرها، وطيّ النوافذ إلى كرة عند إغلاقها. وهذا إزاحة للرؤوس على texture حي، لا مجرد أنيميشن تحجيم.

لا شيء من هذا صعب بذاته. محركات الألعاب تفعله منذ عقود. لكن لمُركِّب سطح المكتب قيوداً لا تواجهها اللعبة: محتوى «الأوراق» مخرجات تطبيقات عشوائية تتحدث حتى 60 إطاراً في الثانية، ولا يمكنك حساب أي شيء مسبقاً عنها. أنت تُظلِّل بثاً مرئياً حياً كأنه حبر على ألياف.

الـ Compositor يصبح محرك ألعاب

توثيق معمارية DEsk يصف هذه النقلة بوضوح: الغرفة — المكتب والرف والوحدة والصندوق البريدي — تُتبَّع أشعتها على GPU عبر GLES 3، مع متتبّع على المعالج كاحتياطي، والنتيجة تُخزَّن مؤقتاً لكل حجم شاشة. هذه الجملة تحوي استراتيجية الهندسة كاملة، وتستحق التفكيك لأنها الطريقة المعقولة الوحيدة لتنفيذ ذلك.

الحيلة هي التقسيم الثابت/الديناميكي. تتبّع أشعة الغرفة في كل إطار سيكون عبثاً، فحتى متتبّع مسار متواضع يحتاج ثوانٍ لكل إطار على عتاد متوسط. لكن الغرفة ثابتة: المكتب لا يتحرك، والمصباح لا يتحرك. لذا تُتبَّع مرة واحدة عند تسجيل الدخول («أول تسجيل دخول يرسم الغرفة مرة واحدة: بضع ثوانٍ على GPU، وأطول بدونه»)، ثم تُخزَّن الإشعاعية مؤقتاً، ومن بعدها تصبح الغرفة مجرد خلفية مُنسَّجة. أما العناصر الديناميكية — نوافذ الورق والدرج والرسائل في الصندوق البريدي — فتُرسم بالتقديم الأمامي فوقها، ومُضاءة لتتطابق مع المشهد المخزَّن.

// Sketch of the two-layer architecture a skeuomorphic shell converges on
struct frame {
// Layer 1: the room. Traced once at login, cached per output size.
texture room_cache;          // desk, shelf, post box, baked lamp light
// Layer 2: dynamic objects, forward-rendered each frame.
vector<object> paper_windows; // app buffers mapped onto paper quads
vector<object> drawer_items;
vector<object> notifications;
};
void render(frame *f) {
blit(f->room_cache);                       // one textured quad, nearly free
for (auto &o : f->paper_windows)
draw_paper(o);                         // fibre shader + fake AO + dog-ear
composite(f->drawer_items, f->notifications);
}

وهذا ليس مصادفة: هكذا عملت لعبة Myst عام 1993 تماماً، مشاهد مُصيَّرة مسبقاً مع عناصر ديناميكية مُركَّبة فوقها. لاحظ عدة متابعين أن DEsk يبعث «أجواء Myst ثقيلة»، وهم محقون أكثر مما يدركون، فالتشابه ليس جمالياً فحسب، بل هو المعمارية الرسومية نفسها، وقد وصل إليها الاثنان لأن القيود نفسها ما زالت قائمة: الإضاءة الشاملة مكلفة، والتركيب رخيص. وأنا المولع بالتاريخ أستمتع بهذا كثيراً. ثلاثون عاماً من تطور GPU، ولا تزال الإجابة الصادقة عن «كيف أتتبع أشعة سطح مكتبي» هي: «لا تفعل — تتبعه مرة واحدة وتظاهر بالباقي.»

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

السكيومورفية تُثقل GPU بطرق لا تفعلها الواجهات المسطحة أبداً

لنكن محددين في هذه الكلفة، لأن عبارة «إنه أثقل» تقوم بعمل كثير غير مستحق في معظم النقاشات حول هذا الأسلوب. قارن ما يفعله compositor مسطح لنافذة واحدة بما تطلبه استعارة الورق في DEsk:

المسطح: اربط wl_buffer الخاص بالعميل كـ texture، وارسم مستطيلاً واحداً بـ shader يأخذ منه العينات، وربما تُدوِّر الزوايا بدالة المسافة الموقّعة، وتطبّق ظلاً رخيصاً من 9 نقاط. الكلفة لكل نافذة: عدد قليل من قراءات الـ texture لكل بكسل، كلها من مناطق ودودة للذاكرة المؤقتة.

الورق: بافر العميل ليس سوى «الحبر». تحتاج أيضاً إلى طبقة ورق أساسية (نسيج ألياف، وتعتيم للحواف، وشفة للسُمك)، وزاوية مطوية هي هندسة منفصلة لها إضاءتها الخاصة، وظل تلامس على المكتب يعتمد على موضع النافذة في المشهد، وإضاءة تتفق مع المصباح المدموج في ذاكرة الغرفة المخزَّنة. وحين يسحب المستخدم حافة «ليسحب مزيداً من الورق»، يتغير حجم مستطيل الورق مستقلاً عن المحتوى — وهذا يعني أنك فصلت هندسة النافذة عن هندسة السطح، وهو ما لا يفعله أي compositor عادي.

مستطيل نافذة مسطح على اليسار مقابل كومة ورق مفككة وطبقات ظل وإضاءة على اليمين.
الواجهة المسطحة مستطيل واحد؛ أما نافذة الورق فهي كومة من المواد والظلال وهندسة قابلة للتشوه.

لكن الكلفة الحقيقية ليست في الإنتاجية — فوحدات GPU الحديثة تضحك على طبقات نسيج إضافية. إنها تعقيد خط المعالجة. ميزانية الـ shaders في compositor مسطح هي برنامج أو اثنان لطول الجلسة. أما الغلاف السكيومورفي فيحتاج نظام مواد صغيراً: ورق، وجوز، ونحاس، وزجاج (عدسات مصباح الساعة)، وقماش. كل مادة هي متغير shader، وكل متغير قابل للكسر على تعريف ما، وكل واحد يتفاعل مع إضاءة المصباح المشتركة، فلا يمكن تأليفها بمعزل عن بعضها. لهذا ماتت حقبة الثيمات الكلاسيكية في Enlightenment وGTK2، وهذه أقوى حجة مضادة من الممارسين: مدير النوافذ هو الجزء السهل. كل تطبيق ما زال يرسم محتواه بـ GTK أو Qt، ولن يجعل أي قدر من الجوز على جانب الـ compositor تطبيق libadwaita يبدو وكأنه ينتمي إلى مكتب حقيقي. يحل DEsk هذا جزئياً فقط: النوافذ ذات الزينة من جهة العميل «تجلس على الورق أيضاً»، أي أن الاستعارة تُغلِّف التطبيقات لا تُحوّلها.

ويلاند يُسهّل ويُعقّد الأمر في آنٍ واحد

هناك سبب يجعل مشروعاً كهذا ممكناً الآن ولم يكن ممكناً في 2010. الرهان المعماري لـ Wayland — أن الـ compositor يملك الإطار كله، وأن كل بكسل يمر عبره — هو الرهان نفسه الذي تحتاج الواجهة السكيومورفية أن تراهن عليه. في X11 كان بإمكان التطبيق أن يرسم أينما شاء، وأفضل ما تستطيعه هو مدير تركيب يعيد توجيه النوافذ بيأس ويأمل. في Wayland تتلقى الواجهة فرات أسطح معزولة ونظيفة، ولها حرية كاملة في طريقة عرضها. إن أردت تعيين سطح على ورقة قابلة للتشوه بزاوية مطوية، فـ Wayland هو أول نظام عرض يجعل ذلك صعباً فحسب، لا غير متماسك.

لكن Wayland يرفع الفاتورة أيضاً. بيئة سطح المكتب ليست مُصيِّراً؛ إنها مُصيِّر زائد عشرون عاماً من تراكم البروتوكولات: Xwayland للتطبيقات القديمة، وجسر IBus لطرق إدخال اللغات (يدعم DEsk الكتابة في فهرس الرف ومفكرة الملاحظات)، وPipeWire لمقبض الصوت، وlogind للسطوع ومعالجة غطاء الجهاز، وMPRIS لصفحة الوسائط في الساعة، وPAM لشاشة القفل. كل واحدة منها سطح تكامل تتوزعه بيئة مثل GNOME على مئات المساهمين. يرسم DEsk خطاً واضحاً — «ما يصنعه وما يستعيره» — فيفوض الشبكات والبلوتوث والطباعة وثيمات التطبيقات الأخرى إلى برامج حرة قائمة. استراتيجية الاستعارة هذه هي الطريقة الوحيدة لفريق صغير كي يشحن سطح مكتب كاملاً، لكنها تعني أن وهم السكيومورفية ينقطع فجأة عند الحواف: إعدادات Wi-Fi هي لوحة GTK مسطحة تخص غيره.

جدير بالملاحظة لمن يُغريه التجربة: لأن الغرفة مخزنة مؤقتاً لكل حجم شاشة، وطبقة الديناميكية عرض أمامي بسيط بـ GLES 3، فينبغي أن تكون كلفة الحالة المستقرة عادية — مماثلة لأي compositor يقوم بتأثيرات ثقيلة. نقاط الألم هي تتبع وقت تسجيل الدخول على أجهزة بلا GPU (يوجد احتياطي المعالج، وهو بطيء)، والخشونة العامة لإصدار تجريبي 0.1: أفاد المراجعون بأنيميشن غير متسقة في عناصر ذات حالة مثل زر الطاقة في لوحة التحكم، وهذه في واجهة سكيومورفية ليست عيباً تجميلياً، فحين يخطئ أنيميشن إدارة المفتاح لا يمكنك أن تعرف هل سيُطفأ الجهاز فعلاً. ترفع السكيومورفية سقف الرهان على صحة الأنيميشن، لأن الأنيميشن هو مؤشر الحالة. الفضيلة غير المقدَّرة للتصميم المسطح أن مفتاح التبديل له حالتان قابلتان للرسم بالضبط، ولا وسط بينهما.

لماذا توقفنا عن البناء بهذه الطريقة

الرواية المعتادة تقول إن السكيومورفية كانت عكازاً — استعارات تبدو حقيقية لتعليم الناس شاشات اللمس — وحين كبر المستخدمون رمينا التطريز الجلدي. وهذه الرواية خاطئة في معظمها، ولهذا يفيد DEsk: لأنه يكشف الاقتصاد الحقيقي. ماتت السكيومورفية حين حدث أمران معاً: شاشات Retina ضاعفت أعداد البكسلات التي كان على الأنسجة المرسومة يدوياً أن تغطيها، والهواتف جعلت الواجهات تعمل على GPU محدودة تستهلك البطارية. واجهات الفيكتور المسطحة تتوسع مجاناً؛ أما ملمس المعدن المصقول بدقة 1x و2x و3x فلا. لم يكن إعادة تصميم iOS 7 من Apple تطوراً في الذوق؛ كان تخفيضاً حاداً لميزانية الرسم. وإن قرأت عن كيف انتقلت الطرفيات المُسرَّعة بالـ GPU من شبكات الحروف TTY إلى خطوط shaders كاملة، فقد رأيت المقايضة نفسها من الجهة الأخرى: ننفق GPU بسخاء داخل محتوى التطبيق، لكن الإطار نفسه خضع لحمية.

هناك أيضاً سبب أعمق لا علاقة له بـ GPU: الاتساق لا يتراكب. مصمم واحد يستطيع صنع استعارة مادية رائعة؛ ألف مطور طرف ثالث لا يستطيعون. تنجح استعارة الرف مع تطبيقات DEsk نفسها. لكن ما إن يرسم Firefox واجهته الرمادية المسطحة فوق الورق، ترى لقطة شاشة ملصقة على دعامة مسرحية. ولخّص نقاش Hacker News هذا من اتجاهين في آن: أحدهم يحن إلى عصر GTK2 القابل للتخصيص، وآخر يشير إلى أن الأدوات الحديثة تبدو مصممة لمقاومة الثيمات. يمكن للسطح أن يكون مكتباً؛ أما التطبيقات فلن تكونه أبداً. تتسرب الاستعارة، ومن بنى بيئة مُتحكَّماً فيها يعرف أن التسرب قاتل للوهم. هي الفجوة نفسها التي تجعل أنماط UX المضادة عنيدة إلى هذا الحد: السطح سهل الإصلاح، أما المنظومة فليست كذلك.

أين تنهار الفرضية المضادة

قلت إن السكيومورفية خسرت لأسباب اقتصادية، وأنا أصدق ذلك. لكن الأمانة تقتضي التنازلات، وعيوب DEsk الخشنة نفسها تقدمها.

أولاً، جزء من الكلفة ليس رسماً أصلاً، بل غموض التفاعل. الاستعارة المادية تستعير توقعات المستخدم من العالم الحقيقي، والفيزياء لا تعرف التراجع. حين يصبح إغلاق النافذة «طيها كرة ورميها»، فهذا ساحر مرة واحدة، ومقلق قليلاً في المرة الأربعين حين تغلق النافذة الخطأ بلا تفكير. تجريد الأزرار المسطحة ميزة: علامة × وعد لا استعراض. ثانياً، الحالة. الأجسام المادية يجب أن تبدو دائماً كما هي؛ فأنيميشن مفتاح عالق ليس انتقالاً متعثراً، بل كذبة عن هل سيطفئ جهازك نفسه. على الواجهة السكيومورفية أن تكون صحيحة في أماكن تُسمح فيها الواجهة المسطحة بالتقريب، والصحة في الأنيميشن مكلفة بشدة من حيث وقت ضمان الجودة، كما يعرف جيداً من شحن أنظمة يجب أن تعكس فيها الواجهة الحالة الموزعة بأمانة.

الفضيلة غير المقدَّرة للتصميم المسطح أن مفتاح التبديل له حالتان قابلتان للرسم بالضبط، ولا وسط بينهما. أما المفتاح النحاسي فله عدد لانهائي منها، وكل واحدة منها تقرير خلل محتمل.

ثالثاً، إمكانية الوصول والاكتشاف يعملان في الاتجاهين. اقترح عدة معلقين أن استعارة المكتب الحرفية قد تساعد كبار السن الذين لم يكوّنوا نموذجاً ذهنياً لأنظمة الملفات، فيتعلمون مواضع النقر بالتكرار ولا يتعافون حين يتغير الأمر، لأن الواجهة المسطحة «ليس لها منطق متأصل بالنسبة إليهم». للمكتب منطق: الرسائل تُوضع في الصندوق البريدي، والوثائق ورق، والأشياء التي تحتفظ بها توضع في الدرج. هذه حجة حقيقية، والتعامل معها كحنين إلى الماضي كسل. لكن الجسدية نفسها التي تساعد مستخدماً تُخفي الوظائف عن آخر: كيف تكتشف أن Super+D يفتح الدرج، أو أن النافذة المطوية يمكن أن تُوضع فيه؟ الإيحاءات المادية تنجح حين تكون الأشياء في متناول اليد؛ أما اختصارات لوحة المفاتيح فهي تجريد مُتعلَّم خالص في كلتا الحالتين.

أيادٍ تتفاعل مع أشياء مكتب مادية متوهجة: رسالة، ودرج مفتوح، ومفتاح.
للمكتب منطق متأصل — الرسائل تذهب إلى الصندوق البريدي — بطريقة لن تبلغها شبكات الأيقونات المسطحة أبداً.

ما الغاية الحقيقية من DEsk

سيكون خطأ قراءة DEsk كاقتراح بأن نعمل جميعاً على مكاتب مُتتبَّعة الأشعة الآن. لن يحدث ذلك، والاقتصاد الذي بدأت به ما زال قائماً: بائع منصة يشحن إلى مليار جهاز لا يستطيع تحمل مُظلِّلات مواد لكل بكسل على الواجهة، وإضاءة مصباح مضبوطة يدوياً، ومفاتيح نحاسية صحيحة الأنيميشن. تبقى الواجهة المسطحة الخيار الافتراضي الصحيح لبرمجيات النظام، كما أن الخرسانة هي الخيار الافتراضي الصحيح للجسور.

ما يُظهره DEsk فعلاً هو شيء احتاج Linux desktop إلى إثباته لعقد: طبقة الـ compositor صارت معبّرة بما يكفي لتكون وسيطاً. يمنح Wayland مع GPU حديثة مطوراً واحداً مُصمِّماً لوحة إطار كاملة بهامش يكفي لرسم عالم متماسك، لا مجرد ترتيب مستطيلات. حيلة عصر Myst — اخبز الضوء المكلف، وارسم الطبقة الديناميكية أمامياً — تسد فجوة الأداء التي كانت تجعل ذلك مستحيلاً. سواء كان العالم الذي يبنيه أحدهم مكتب جوز حنينياً، أو مقصورة قيادة سفينة Nostromo التي حلم بها أحد المعلقين، أو شيئاً لم يتخيله أحد بعد، فذلك مسألة ذوق. القدرة هي الخبر.

في الحوسبة نمط يتكرر: تنضج التقنية، ويتقارب توجه السوق الرئيسي نحو الجمالية الأرخص والكافية، ثم يكتشف الهواة الجماليات الباهظة من جديد بوصفها حرفة. حدث ذلك مع لوحات المفاتيح الميكانيكية، ومع الفن ثنائي البت المُرقَّش بالتعتيم، ومع مُظلِّلات شاشات CRT في المحاكيات. والأسطح المكتبية السكيومورفية هي التالية في الطابور. لن تُزيح شيئاً، لكنها ستذكّرنا — كما يذكّرنا مصباح المكتب الواحد في DEsk وهو يضيء غرفة كاملة مُتتبَّعة الأشعة — بأن المستطيل الرمادي المسطح كان قرار ميزانية منذ البداية، والميزانيات، على عكس الأذواق، يمكن الجدال حولها.