لوحة التجارب من الإلكترونيات إلى الواجهات

protoboard

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

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

رأيت مشروعاً سماه صاحبه Protoboard وهو واجهة مقسمة إلى مساحات وكل مساحة يمكن إنشاءها وحذفها حسب الحاجة وكل مساحة يمكنها التفاعل مع مساحات أخرى، الفكرة مستوحاه من لوحة التجارب للإلكترونيات (Breadboard) وهي لوحة تسمح للفرد بأن يجرب فكرة ما بحرية ومرونة ويمكنه أن يضيف القطع بحسب الحاجة.

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

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

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

ما أراه من أفكار تطرح حول واجهات الاستخدام تسير نحو نفس الاتجاه، أن تكون هناك واجهة واحدة لكل شيء يحتاجه المستخدم، أن تكون قابلة للتخصيص والتغيير بحسب ما يحتاجه كل مستخدم، لفعل ذلك نحتاج لواجهة مرنة توفر أدوات لصنع واجهات، أعط المستخدم هذه الأدوات ودعه يصنع الواجهة التي يريد، كل شخص له احتياجات مختلفة وكل شخص سيكون لديه واجهة مختلفة لكن الأساس واحد.