نظرة إلى مستقبل الحواسيب الخاصة

23 02 2009

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

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

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

بالنسبة للعتاد، أتخيل أن المستقبل يتجه أكثر نحو العمومية، فقطع العتاد تتجه أكثر نحو الاندماج فيما بينها، والمثال على ذلك هو التغاء الحاجة -تدريجياً- لبطاقات الصوت الإضافية، بطاقات الشبكة السلكية أو اللاسلكية، وحتى بطاقات الإظهار. ولعل أكبر مثال حالي على هذا التقدم هو ظهور ما يسمى بالنظم المدمجة على شريحة (Systems On a Chip SOC) مثل المنصات الداعمة لمعالجات Intel Atom الحالية أو مثلاً منصة nVidia Tegra، وهي جميعها لا تحتاج سوى التوصيل إلى أجهزة العرض!
هذا الدمج بين المكونات يدعو بالضرورة إلى تصميم شرائح جديدة تستطيع أداء مهمة جميع البطاقات والشرائح الأخرى، وهذه هي أساساً مهمة المعالجات متعددة الأنوية بجميع أشكالها (Intel Core i7، Creative Zii، STI Cell، AMD Phenom 2، وغيرها). وهذا يعني أن المستقبل سيحمل لنا شريحةً واحدة قادرة على أداء جميع المهام في الحاسب دفعةً واحدة، ذات حجم صغير، وذات استهلاك منطقي للطاقة.

أما واجهة المستخدم (أو البرامج بشكل عام) فهي تتجه نحو تبسيط الاستخدام قدر الإمكان، وتتجه نظم التشغيل نحو ضم المزيد من الأدوات والتسهيلات للمستخدم بحيث يحتاج إلى عدد أقل من الخطوات لتنفيذ مهامه وللتعامل مع العتاد. ولكن الخطوة الأكبر تتجه نحو استضافة البرامج على شبكة الانترنت، وهي خطوة منطقية نظراً لازدياد عرض الحزمة والسرعات المتاحة للمستخدمين. وبذلك تنتهي مشاكل التنصيب والتوافقية مع العتاد، وتسهّل من عملية الصيانة والتحديث وكشف الأخطاء، وبالتالي فهي أيضاً توفر من كلفة انتاج البرامج وصيانتها، وبالتالي تتركز قدرات المطورين أكثر على إمكانيات البرنامج وقدراته وتحسين أدائه.
وتفيد هذه الفكرة أيضاً في تخفيض كلفة الاستخدام بالنسبة للمستخدم، فبدلاً عن الحاجة إلى دفع ثمن برنامج كامل لمجرد أنه يحتاج لتعديل فقرة معينة مثلاً، يقوم المستخدم بالدفع وفق حاجته فقط، كما أنها توفر عليه كلفة تطوير الحاسب ليتمكن من تشغيل البرنامج على جهازه الخاص. وعلى الرغم من أن هذه النقلة تعتبر نوعية وضخمة بكافة المقاييس إلا أنها تعتبر المصير المحتوم لمعظم البرامج التي نستخدمها يومياً، وهذه الفكرة مطبقة حالياً ومستخدمة، ومنها Google Docs، والبرامج التي تعتمد على منصة Adobe AIR.

أما التصور النهائي للحاسب في المستقبل بشكل عام فأعتقد أن التقنية الحالية المسماة (Cloud Computing) تعبر عن الفكرة العامة للحاسوب. فكل ما يحتاجه المستخدم في النهاية هو وسيلة العرض، وشريحة مدمجة مصغرة وبسيطة تتحكم بالمهام البدائية للحاسب (أو ما سيسمى الـInterface)، بالإضافة إلى اتصال سريع بالانترنت. وهذا سيكفي لآداء جميع المهام التي يحتاجها المستخدم العادي.
تعتمد هذه الفكرة بشكل عام على اللامركزية. مثلاً نقل مركز معالجة البيانات من المنزل إلى “مكان ما” على الشبكة، ونقل مركز التخزين إلى المساحة المخصصة لكل مستخدم في “مكان ما” على الشبكة. وهذه الخدمات مدفوعة حسب الحاجة، ويمكن توسيعها أو تضييقها حسب الحاجة الشخصية لكل مستخدم على حدة. فإذا تم نقل مهام المعالجة، ومركز تخزين المعطيات إلى الشبكة لن يحتاج المستخدم في منزله (أو بالأحرى في جيبه) إلى أكثر من شريحة بسيطة ووسيلة إظهار لأداء جميع مهامه.
طبعاً الفكرة أشمل وأوسع وتحتاج إلى موضوع خاص، ولكنها ذكية ومنطقية بشكل كافٍ لتكون في مقدمة التقنيات التي يتم تطويرها حالياً.

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

(Note: This post was originally intended to appear in a public forum, so it’s not specifically written for a blog)





The DemoScene (Pt.2)

27 05 2008

The reason I wrote about the Demoscene is because it’s an amazing concept when applied in video games.

In fact, it was a gaming article that introduced me to the Demoscene. I don’t have it on my PC right now, but I believe it was a Gamespot article about the upcoming Will Wright’s game “Spore”. Will Wright (the designer of the holy grail game: “The Sims”) pointed out how modern games are becoming more and more sophisticated in terms of animation and textures. He said that future games would require an army of animators to make the game as real as possible.

So, the point is, why use pre-generated animations if we can animate objects on the go?! Meaning that we could generate animations as needed in the game. The generation algorithm would be based on constant rules defined by the programming team.

That animation method will be used in his upcoming game “Spore”, where you’ll be able to create your own custom species, and the game will automatically generate the animations required to move your creatures around, make it dance, fight, etc… The creature generator would define the static points on the creature’s body, and the body structure (arms, legs) and the game would do the rest. The creature’s animations will be generated according to the laws of physics. So, the creature would actually move realistically, because his motion is built on real-world physics.

The great achievement here is that the user has the freedom to create whatever he/she wants, and the game would generate the animations required for that creatures behavior. So, the user is no longer bound by the game’s own pre-generated content! And game developers no longer require massive animation teams.

Wrapping it all up:

Realtime content generation = less animators = more programmers = more creative and expandable games = happy gamers all around the world.

And, for those of you who believe this is mere junk, take a look at “.Kkrieger” (developed in 2004) by “The Produkkt”, a 3D FPS in 96 KB! with all the fluffy 3D effects of a full-blown x GB game!

Check their website to download it and see for yourself: www.theprodukkt.com

Also, don’t forget to check the Spore official website: www.spore.com

It’s a new world out there. Imagine using that technology along with ray-tracing rendering technique!

WoW! I’m speechless!!!





The DemoScene (Pt.1)

21 05 2008

I wanted to write about the Demoscene ever since I saw the first real demo.

The Demoscene, as defined by Wikipedia “…is a computer art subculture that specializes in producing demos, which are non-interactive audio-visual presentations run real-time on a computer. The main goal of a demo is to show off programming, artistic, and musical skills.”

Those of you who owned a PC during the 90’s will surely remember those executable files that were bundled with certain pirated games or programs. They would probably show an animated scene about the piracy group who cracked the software. So, they’d show their names and make pride of their abilities. All that in a relatively small file. (That was my first contact with a demo.)

However, after some research I have found that the Demoscene actually started before the 90’s, on some early platforms, like the Commodore64, Atari, & Amiga.

Demos (or Intros) have evolved well beyond traditional pixelized images floating around on the screen, to become more like a short movie, including most of the artistic values of any real-life movie: art, direction, storyboard, photography, 3d art & animation, and music.

The really stunning fact about Demoscene is that Demos are a real programming challenge, where some groups are challenged to write a Demo in a restricted file size of 64 KB! There are even some recent Demos stuffed in a tiny space of 4 KBs. Early Demos are available in 256 Bytes!

So, yes, the Demoscene IS a programming challenge that focuses on new, innovative techniques to generate all the required contents in real-time. As opposed to saving each component in a separate file.

When I watched my first Demo, I was instantly shocked about the great amount of effort put in it. And as I watched more and more Demos I really started to notice how each Demo has its own artistic mood.

I could talk for hours about Demos and Intros, but it won’t matter, because you won’t believe it until you see it with your own eyes. So, I’m gonna cut to the chase and list some sites and groups to give you a head start:

– More info about the Demoscene: http://www.demoscene.info/

– Even more info: http://pilgrimage.scene.org/demoscene.html

– The Demoscene online TV: http://www.demoscene.tv

– One of the best groups on the scene (ASD): http://www.asd.gr/ (Go for their “Animal Attraction” Demo first)

– Another amazing group (Conspiracy): http://conspiracy.hu/ (I like their “Chaos Theory” Intro)

– And finally, the biggest Demoscene archive on the web: http://pouet.net

Have fun.