السبت، 9 يوليو 2005

تاريخ الحاسوب وواجهات البرامج

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

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

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

لكي تبحث عن تاريخ الحاسوب، إذهب إلى جوجل وابحث عن computer history وستجد عشرات المواقع المفيدة، مثل:

* [A HISTORY OF THE COMPUTER - PBS](http://www.pbs.org/nerds/timeline/)
* [صور قديمة للحواسيب](http://www.crowl.org/Lawrence/history/)
* [تاريخ الحاسوب من قرون قبل الميلاد إلى عام 1997م](http://www.maxmon.com/history.htm)
* [تاريخ الحاسوب الشخصي](http://www.islandnet.com/~kpolsson/comphist/)
* [العرض الأول للماوس](http://sloan.stanford.edu/MouseSite/1968Demo.html)
* [Digibran.com](http://www.digibarn.com/)
* [TheOldComputer.com](http://www.theoldcomputer.com/MainMenu.htm)
* [Retrocomputing](http://www.brouhaha.com/~eric/retrocomputing/)
* [Old-Computers.com](http://www.old-computers.com/news/default.asp)
* [Obsolete Computer Museun](http://www.obsoletecomputermuseum.org/)

أي شخص مولع بالحاسوب سيجد في هذه المواقع ما يكفي لقضاء ساعات في القراءة والبحث، ستقرأون في هذه المواقع عن شركات وأشخاص وتقنيات، أبحثوا في موسوعة [ويكيبيديا](http://en.wikipedia.org/wiki/Main_Page) عن أسماء الأشخاص أو التقنيات وستجدون المزيد من المعلومات.

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

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

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

لكي تبحث عن موضوع واجهات البرامج، إبحث كالمعتاد في ويكيبيديا وجوجل عن GUI وusability وGUI history، وستجد بعض المواقع المفيدة:

* [معرض واجهات الاستخدام](http://toastytech.com/guis/)
* [تاريخ واجهات الاستخدام](http://arstechnica.com/articles/paedia/gui.ars)
* [GUIdebook](http://www.aresluna.org/guidebook/index)، موقع مميز ويحوي مئات اللقطات لأنظمة تشغيل مختلفة.
* [مقالات جيكوب نيلسون](http://www.useit.com/alertbox/)
* [أكبر 10 أخطاء في التصاميم](http://www.asktog.com/Bughouse/BugHallOfFame.html)
* [التاريخ الحقيقي لواجهات الاستخدام](http://www.sitepoint.com/article/real-history-gui)

أما الكتب فهي كثيرة، هذه قائمة ببعض الكتب التي أنصح بقراءتها، إبحثوا عنها في أمازون:

* The Humane Interface
* The Design of Everyday Things
* Emotional Design
* Handbook of Usability Testing
* Designing Visual Interfaces: Communication Oriented Techniques

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

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