۲۹-دى-۱۳۸۴, ۱۲:۵۹:۵۲
:lol:
بخواهيد يا نخواهيد شما در عصر رنسانس دنياي الكترونيك و IT قرار داريد و بلا شك بايد نظاره گر تغييراتي باشيد كه بزرگان درهء سيليكون و لژ نشينان ردموند منشاء آن هستند .
لانگهورن دقيقا" چيست ؟ آيا بايد به عنوان يك برنامه نويس در مورد لانگهورن و فلسفهء آن نگران باشم ؟ آيا لانگهورن فناوري جديد مايكروسافت است يا به عقيدهء متعصبان دنياي سورس آزاد " يك تقليد ديگر" است ؟ و دست آخر آيا لانگهورن تغيير و تحول اساسي در ادبيات توسعهء نرم افزار خواهد گذاشت ؟
سعي ميكنم در اين نوشتار ضمن پاسخ به اين سوالات فناوريهاي ديگري كه به آيندهء توسعهء نرم افزار مربوط اند را معرفي كنم و اميدوارم اين نوشته برايتان مفيد باشد .
1.توليد يك سيستم عامل جديد كار بزرگ و هزينه بري است كه هنوز براي مايكروسافت توجيه اقتصادي ندارد
از شواهد و قوائن چنين پيداست كه لانگهورن ، مانند ويندوزهاي اكس پي و 2003 سرور همچنان بر فراز هسته و SubSystem هاي اصلي NT كار خواهد كرد . همچنان HAL ( يا Hardware Abstraction Layer ) مسئول تراكنش هاي سطح پائين با سخت افزار است ( ويندوز روي خانوادهء پردازنده هاي اينتل و آلفا و DEC ، كار ميكند اما تمام ويندوز براي اين معماري هاي متفاوت بازنويسي نشده است ، بلكه يك سطح بسيار شفاف بنام HAL آنچه براي ارتباط با سخت افزار لازم است را محصور مينمايد و ويندوز با HAL ارتباط برقرار ميكند ) كرنل و Device Driver هاي سطح كرنل ( Kernel Mode ) كه همگي از كدهاي ويندوز NT بازسازي شده اند برفراز HAL قرار دارند و سرويسهاي اصلي سيستم ، يعني سيستم فايل ( NTFS ) ، لايه هاي برقراري ارتباطات شبكه اي ( مانند TCP/IP Stack ) ، ابزارهاي نمايش بصري اجزاء ( مانند GDI و GDI+ ) و ... همگي همچنان سرجاي خود هستند ولي بعد از اين هر چه براي معماري لانگهورن در نظر گرفته شده است ، براي سيستم عامل ويندوز، جديد است و البته مفهوم اين عبارت اين نيست كه تمام اين افزونه ها جديدا" خلق شده اند . لانگهورن بصورت دروني داراي dot NET Framework است و بسياري از اجزاء سطح بالاي لانگهورن نيز مبتني بر كتابخانه هاي كلاس دات نت هستند . به عنوان مثال اگر پيش از "رابط كاربري" ويندوز مبتني بر user32.dll يا gdi.dll بود ، بعد از اين "رابط كاربري" ويندوز مبتني بر كتابخانهء كلاس مديريت شدهء دات نت خواهد بود و اصطلاحا" به آن Avalon ميگويند ، دسترسي به سيستم فايل نيز مبتني بر دات نت خواهد بود كه اصطلاحا" به آن WinFS ميگويند و تمام Win32 API ها يك محصور كنندهء شيء گرا بنام WinFX خواهند داشت .
2.مدل برنامه نويسي در لانگهورن با آنچه تا كنون ديده ام متفاوت خواهد بود
مايكروسافت به پنهان سازي سطوح پائين پياده سازي و ارتباط با سيستم عامل و قرار دادن رابطهائي سهل و ساده براي توسعهء نرم افزار علاقه مند شده است كه بروز و ظهور آن را در لانگهورن خواهيم ديد . Win32 API و subsystem هائي مثل سرويسهاي شبكه اي همچنان در دسترس هستند . دات نت هم هست و همگي آن را ميشناسيم اما قرار نيست روند استاندارد توصيه شده توسط مايكروسافت با آنچه تا كنون متداول بوده است سازگار باشد بلكه مايكروسافت به شما پيشنهاد ميكند از WinFX براي ارتباط و سرويس گيري از سيستم عامل استفاده كنيد ، آنجا كه مستقيما" به قابليتهاي مخصوص ويندوز نياز داريد ، و از Avalon و Areo براي توسعهء رابطهاي كاربري استفاده كنيد ، از WinFS براي ارتباط با سيستم فايل و از Indigo براي ارتباطات شبكه اي و ميان پردازه اي ( همان IPC سابق ) . برخي از اين كتابخانه هاي كلاس مبتني بر دات نت هستند و برخي ( مانند بخشي از WinFS ) مبتني بر دات نت نيستند ! يعني كسانيكه بصورت جدي به لانگهورن مهاجرت ميكنند يا برنامه نويساني كه كار خود را با لانگهورن آغار ميكنند احتمالا" حتي نيازي به دات نت نخواهند داشت ! آنها بدون اينكه بدانند در اغلب موارد از دات نت استفاده ميكنند . مثلا" وقتي كه در حال ساخت يك رابط كاربري ساده براي تقويم يا دفتر تلفن خود هستند . آنها از Visual Studio 2006 و كتابخانهء Avalon استفاده ميكنند كه اين دو ، خود ، بر فراز دات نت ساخته شده اند يا وقتي قرار است اطلاعاتي را در يك فايل ذخيره كنند از WinFS استفاده ميكنند ، كه بخش قابل توجهي از ان مبتني بر دات نت است و هر گاه بخواهند برنامه اي براي ارتباطات شبكه اي بنويسند از كتابخانهء Indigo استفاده ميكنند كه مبتني بر دات نت است و ... يعني اگر بخواهيم از همان ادبيات قديمي براي توصيف لانگهورن استفاده كنيم ، Lognhorn SDK تشكيل شده است از : WinFX ، WinFS ، Avalon ، Indigo و چند كتابخانهء كوچك ديگر . بخشي از Lognhorn SDK مبتني بر دات نت است و بخشي نيست . بعد از توزيع ويندوز لانگهورن ، استفاده از Longhorn SDK مورد حمايت مايكروسافت است و توسط او توصيه ميشود ، ضمن اينكه برنامه هاي Win32 يا مبتني بر دات نت ( كه همين حالا مينويسيد ) روي آن كار خواهند كرد .
3.ويژگي هاي لانگهورن نشان ميدهد در طراحي آن خلاقيت و نوآوري قابل ذكري وجود ندارد .
با نگاهي اجمالي بر معماري و ويژگي هاي لانگهورن ( چه به عنوان يك سيستم عامل چه به عنوان يك فرهنگ جديد براي توسعهء نرم افزار ) به وضوح مشخص ميشود كه مايكروسافت باز هم با تقليد و گرته برداري از ساير تكنولوژي هاي نسبتا" موفق و باز چيني مهره هاي فراهم آمده از تلاش (!) براي ايجاد يك بستر توسعه نرم افزار ، سعي ميكند به حيات نرم افزاري خود پويائي ببخشد . براي اينكه عمق تلاشهاي مايكروسافت در توسعهء لانگهورن مشخص شود بهتر است با هم نگاهي به جبههء مقابل ، يعني مبارزان دنياي سورس آزاد بيندازيم و ببينيم آن سوي خط چه خبر است ؟
4.موزيلا ، بادبان كشتي توسعهء نرم افزارهاي Open Source
اگر در يك جمع عمومي سوال كنيد موزيلا چيست احتمالا" چند نفري پيدا خواهند شد كه به شما توصيه كنند سري به لينوكس بزنيد و يكي از مرورگرهاي محبوب لينوكس دوستان را ببينيد ، اما اينجا يك جمع عمومي نيست . موزيلا يك بستر توسعه ء نرم افزار مستقل از سكو است . به عبارت عاميانه تر ، موزيلا ، برادر كوچكتر جاوا و برادر بزرگتر دات نت است . يك كتابخانهء غني و قدرتمند براي توسعهء نرم افزار كه در اقتدا به برادر بزرگتر به سكو و سيستم عامل خاصي محدود نيست . توسط موزيلا ميتوانيد برنامه هاي مبتني بر بانك اطلاعاتي ، برنامه هاي گرافيكي ، برنامه هاي ارتباطي- شبكه اي ، برنامه هاي مبتني بر وب ، سيستم هاي كلاينت – سرور و ... بسازيد و براحتي براي هر سكوي سخت افزاري مورد حمايت موزيلا و تمامي سيستم عاملهاي موجود آن را توسعه دهيد . اما موزيلا با دو برادر خود تفاوتهاي فاحشي دارد . جاوا و دات نت ( اگر مسامحتا" آنها را قابل قياس بدانيم ) هر دو داراي يك استخوان بندي مشابه هستند كه از همان ادبيات قديمي و همچنان متداول استفاده ميكنند اما موزيلا واقعا" متفاوت است و اين تفاوت چشمگير باعث گسترش روز افزون محبوبيت موزيلا ميان ساكنان سرزمين سورس آزاد شده است و خواهيم ديد ، Longhorn SDK كه فرزند نا خلف دات نت است ، بجاي تبعيت از روش دات نت ، به موزيلا رجوع كرده است و آيندهء برنامه نويسان سپاه مايكروسافت را فناوري امروز دنياي سورس آزاد رقم ميزند .
5.موزيلا ، براي توسعهء نرم افزار
موزيلا تقريبا" از 3000 كامپوننت مختلف تشكيل شده است كه از رابط كاربري گرفته تا سرويسهاي وب و از بانك اطلاعاتي گرفته تا ارتباطات شبكه اي را حمايت ميكنند . در موزيلا كتابخانهء Gecko مسئول نمايش و جلوه هاي بصري است ( كه Avalon همين وظيفه را در لانگهورن انجام ميدهد ) و براي توسعهء رابط كاربري از يك زبان شبه XML بنام XUL استفاده ميكند ( كه اين وظيفه را در معماري لانگهورن ، زبان XAML انجام خواهد داد ) . براي ارتباطات شبكه اي كتابخانهء Necko توسعه داده شده است ( كه در معماري لانگ هورن Indigo همين وظيفه را دارد ) . كتابخانه هاي XPCOM براي توزيع شدگي و شيء گرائي در سطح كاربرد طراحي شده اند ( همانطور كه در معماري لانگهورن اين وظيفه هنوز بر عهدهء كتابخانه هاي اصلي دات نت ، مانند ريموتينگ است ) و ...
موزيلا بر اين اصل تاكيد دارد كه بستر توسعهء نرم افزار ، منطق نرم افزار ، رابط كاربري نرم افزار ، ارتباط نرم افزار با ساير عناصر ( كامپوننتهاي ديگر ) و ارتباطات شبكه اي ، بايد بصورت كاملا" از هم جدا و مستقل توسعه داده شوند و كليد ارتباطي اين موجوديت هاي مستقل چيزي نخواهد بود بجز : XML . به ديگر بيان برنامه نويسي با موزيلا ، تركيب و تلفيق كتابخانه هاي مناسب و ايجاد ارتباط بين آنها با XML است . در اين معماري ، نرم افزارهاي كوچك توسط هر كسي كه قدري با ادبيات نرم افزار آشنا باشد قابل تهيه هستند و نرم افزارهاي بزرگ فرصت مي يابند در سطح تيم توزيع شوند و اعضاي تيم توسعه بدون اطلاع از جزئيات ساير بخشها ، اجزاء لازم را با هم تلفيق ميكنند و نهايتا" توسط XML نرم افزار اصلي متولد ميگردد و هر زمان لازم بود اجزاء نرم افزار تغيير مكان يا موضع دهند ، براحتي و بدون درگير شدن با خروارها كد ، ميتوان با تغيير چند خط XML مرتبط كنندهء دو عنصر ، روند كاربرد نرم افزار را تغيير داد .
از ديدي ديگر موزيلا ميخواهد برنامه نويسي براي وب ، با برنامه نويسي Desktop تفاوتي نداشته باشد . وقتي قرار است آيندهء سيستم هاي رايانه اي مبتني بر وب باشد و ماهيت از هم جداي نرم افزارها و رايانه ها تبديل به يك اتصال هميشه در دسترس و جهاني شود ، بايد برنامه نويسان براحتي همراه با توسعهء Desktop براي وب هم نرم افزارهايشان را توسعه دهند .
اين خط مشي و الگو ، قطعه به قطعه توسط مايكروسافت در لانگهورن توسعه داده ميشود . مايكروسافت هم در توصيف علت ايجاد يك مدل جديد برنامه نويسي ( يعني لانگهورن) ميگويد :
Why Another Programming Model?
Longhorn programming model is designed to fill the gap between Windows client applications and Web applications. In today's programming model, if you write a new application, first you have to decide whether the target is Windows or Web. If you target both users, then you have to develop two seperate applications.
منبع : http://www.c-sharpcorner.com/Longhorn/Lo...ornFAQ.asp
بزودي همانطور كه Win32 به پشت صحنه رفت تا دات نت خودنمائي كند ، دات نت هم از جلوي صحنه حذف خواهد شد تا لانگهورن فرصت خودنمائي پيدا نمايد . توسعه گران معتقد به راهكارهاي مايكروسافت ، ديروز به Win32 افتخار ميكردند ، امروز خواب و خيالهاي تعبير نشدهء خود را با دات نت تعبير ميكنند و فردا لانگهورن "بهترين" فناوري توسعهء نرم افزار است كه آزمايشگاههاي چند ميلياردي مايكروسافت با كوشش و تلاش و تحقيق مداوم و اهتمام به در نظر گرفتن نيازهاي كاربران و توسعه گران آن را توليد نموده است !!
6.پس مايكروسافت دقيقا" چه كرده است ؟
به غير از استفاده از ايدهء ديگران ، اتفاقات مهم ديگري هم در جبههء مايكروسافت افتاده است . مثلا" شايد دوست داشته باشيد بدانيد كه Gecko ( كه مسئول ترسيم عناصر بصري در معماري موزيلا است ) يك تكنيك Raster- Based است . هر چند عناصر گرافيكي دلخواه خود را ميتوانيد براحتي توليد كنيد اما توسعه گران تابع مايكروسافت از داشتن يك Avalon متمدن تر كه Vector-Based است خوشحال تر خواهند بود و براحتي ميتوان قابليتهائي كه همينك در SVG ادوبي يا Flash SWF مكرومديا موجود است را توسط برنامه هاي معمولي لانگهورن ايجاد نمود . در ساير بخشها هم چنين ويژگيهائي مشاهده ميشود . در واقع مايكروسافت تا توزيع نهائي لانگهورن ، به تقويت موزيلا ، ببخشيد ، به تقويت لانگهورن براي حمايت از " هر آنچه ممكن است يك توسعه گر نرم افزار نياز داشته باشد" خواهد پرداخت تا برنامه نويسان ، تا حد ممكن از هيچ تكنيك ، قطعهء نرم افزاري يا ابزاري كه محصول مايكروسافت نباشد استفاده نكنند . اما براي شما ، به عنوان يك توسعه گر نرم افزار آنچه بيشترين نمود را خواهد داشت XAML است . زباني كه بخش قابل توجهي از توسعه گران براي ساخت برنامه هاي جديد خود از آن استفاده خواهند نمود . در آينده توسعهء نرم افزار هاي ويندوزي ، بسيار شبيه طراحي نرم افزارهاي مبتني بر وب ، خواهد بود .
بخواهيد يا نخواهيد شما در عصر رنسانس دنياي الكترونيك و IT قرار داريد و بلا شك بايد نظاره گر تغييراتي باشيد كه بزرگان درهء سيليكون و لژ نشينان ردموند منشاء آن هستند . عصر ارتباطات جهاني كه كليد تمامي ارتباطات تجاري ، اقتصادي ، سياسي ، فرهنگي و اجتماعي آن ، شبكه هاي با سيم يا بي سيم تحت فرمان نرم افزارهاي پيام رسان هستند ، در اختيار چه كساني خواهد بود ؟ آيا آينده اجازه ميدهد همانند امروز تا حدي براي انتخاب راه و مسير زندگي انعطاف داشته باشيم ؟
بخواهيد يا نخواهيد شما در عصر رنسانس دنياي الكترونيك و IT قرار داريد و بلا شك بايد نظاره گر تغييراتي باشيد كه بزرگان درهء سيليكون و لژ نشينان ردموند منشاء آن هستند .
لانگهورن دقيقا" چيست ؟ آيا بايد به عنوان يك برنامه نويس در مورد لانگهورن و فلسفهء آن نگران باشم ؟ آيا لانگهورن فناوري جديد مايكروسافت است يا به عقيدهء متعصبان دنياي سورس آزاد " يك تقليد ديگر" است ؟ و دست آخر آيا لانگهورن تغيير و تحول اساسي در ادبيات توسعهء نرم افزار خواهد گذاشت ؟
سعي ميكنم در اين نوشتار ضمن پاسخ به اين سوالات فناوريهاي ديگري كه به آيندهء توسعهء نرم افزار مربوط اند را معرفي كنم و اميدوارم اين نوشته برايتان مفيد باشد .
1.توليد يك سيستم عامل جديد كار بزرگ و هزينه بري است كه هنوز براي مايكروسافت توجيه اقتصادي ندارد
از شواهد و قوائن چنين پيداست كه لانگهورن ، مانند ويندوزهاي اكس پي و 2003 سرور همچنان بر فراز هسته و SubSystem هاي اصلي NT كار خواهد كرد . همچنان HAL ( يا Hardware Abstraction Layer ) مسئول تراكنش هاي سطح پائين با سخت افزار است ( ويندوز روي خانوادهء پردازنده هاي اينتل و آلفا و DEC ، كار ميكند اما تمام ويندوز براي اين معماري هاي متفاوت بازنويسي نشده است ، بلكه يك سطح بسيار شفاف بنام HAL آنچه براي ارتباط با سخت افزار لازم است را محصور مينمايد و ويندوز با HAL ارتباط برقرار ميكند ) كرنل و Device Driver هاي سطح كرنل ( Kernel Mode ) كه همگي از كدهاي ويندوز NT بازسازي شده اند برفراز HAL قرار دارند و سرويسهاي اصلي سيستم ، يعني سيستم فايل ( NTFS ) ، لايه هاي برقراري ارتباطات شبكه اي ( مانند TCP/IP Stack ) ، ابزارهاي نمايش بصري اجزاء ( مانند GDI و GDI+ ) و ... همگي همچنان سرجاي خود هستند ولي بعد از اين هر چه براي معماري لانگهورن در نظر گرفته شده است ، براي سيستم عامل ويندوز، جديد است و البته مفهوم اين عبارت اين نيست كه تمام اين افزونه ها جديدا" خلق شده اند . لانگهورن بصورت دروني داراي dot NET Framework است و بسياري از اجزاء سطح بالاي لانگهورن نيز مبتني بر كتابخانه هاي كلاس دات نت هستند . به عنوان مثال اگر پيش از "رابط كاربري" ويندوز مبتني بر user32.dll يا gdi.dll بود ، بعد از اين "رابط كاربري" ويندوز مبتني بر كتابخانهء كلاس مديريت شدهء دات نت خواهد بود و اصطلاحا" به آن Avalon ميگويند ، دسترسي به سيستم فايل نيز مبتني بر دات نت خواهد بود كه اصطلاحا" به آن WinFS ميگويند و تمام Win32 API ها يك محصور كنندهء شيء گرا بنام WinFX خواهند داشت .
2.مدل برنامه نويسي در لانگهورن با آنچه تا كنون ديده ام متفاوت خواهد بود
مايكروسافت به پنهان سازي سطوح پائين پياده سازي و ارتباط با سيستم عامل و قرار دادن رابطهائي سهل و ساده براي توسعهء نرم افزار علاقه مند شده است كه بروز و ظهور آن را در لانگهورن خواهيم ديد . Win32 API و subsystem هائي مثل سرويسهاي شبكه اي همچنان در دسترس هستند . دات نت هم هست و همگي آن را ميشناسيم اما قرار نيست روند استاندارد توصيه شده توسط مايكروسافت با آنچه تا كنون متداول بوده است سازگار باشد بلكه مايكروسافت به شما پيشنهاد ميكند از WinFX براي ارتباط و سرويس گيري از سيستم عامل استفاده كنيد ، آنجا كه مستقيما" به قابليتهاي مخصوص ويندوز نياز داريد ، و از Avalon و Areo براي توسعهء رابطهاي كاربري استفاده كنيد ، از WinFS براي ارتباط با سيستم فايل و از Indigo براي ارتباطات شبكه اي و ميان پردازه اي ( همان IPC سابق ) . برخي از اين كتابخانه هاي كلاس مبتني بر دات نت هستند و برخي ( مانند بخشي از WinFS ) مبتني بر دات نت نيستند ! يعني كسانيكه بصورت جدي به لانگهورن مهاجرت ميكنند يا برنامه نويساني كه كار خود را با لانگهورن آغار ميكنند احتمالا" حتي نيازي به دات نت نخواهند داشت ! آنها بدون اينكه بدانند در اغلب موارد از دات نت استفاده ميكنند . مثلا" وقتي كه در حال ساخت يك رابط كاربري ساده براي تقويم يا دفتر تلفن خود هستند . آنها از Visual Studio 2006 و كتابخانهء Avalon استفاده ميكنند كه اين دو ، خود ، بر فراز دات نت ساخته شده اند يا وقتي قرار است اطلاعاتي را در يك فايل ذخيره كنند از WinFS استفاده ميكنند ، كه بخش قابل توجهي از ان مبتني بر دات نت است و هر گاه بخواهند برنامه اي براي ارتباطات شبكه اي بنويسند از كتابخانهء Indigo استفاده ميكنند كه مبتني بر دات نت است و ... يعني اگر بخواهيم از همان ادبيات قديمي براي توصيف لانگهورن استفاده كنيم ، Lognhorn SDK تشكيل شده است از : WinFX ، WinFS ، Avalon ، Indigo و چند كتابخانهء كوچك ديگر . بخشي از Lognhorn SDK مبتني بر دات نت است و بخشي نيست . بعد از توزيع ويندوز لانگهورن ، استفاده از Longhorn SDK مورد حمايت مايكروسافت است و توسط او توصيه ميشود ، ضمن اينكه برنامه هاي Win32 يا مبتني بر دات نت ( كه همين حالا مينويسيد ) روي آن كار خواهند كرد .
3.ويژگي هاي لانگهورن نشان ميدهد در طراحي آن خلاقيت و نوآوري قابل ذكري وجود ندارد .
با نگاهي اجمالي بر معماري و ويژگي هاي لانگهورن ( چه به عنوان يك سيستم عامل چه به عنوان يك فرهنگ جديد براي توسعهء نرم افزار ) به وضوح مشخص ميشود كه مايكروسافت باز هم با تقليد و گرته برداري از ساير تكنولوژي هاي نسبتا" موفق و باز چيني مهره هاي فراهم آمده از تلاش (!) براي ايجاد يك بستر توسعه نرم افزار ، سعي ميكند به حيات نرم افزاري خود پويائي ببخشد . براي اينكه عمق تلاشهاي مايكروسافت در توسعهء لانگهورن مشخص شود بهتر است با هم نگاهي به جبههء مقابل ، يعني مبارزان دنياي سورس آزاد بيندازيم و ببينيم آن سوي خط چه خبر است ؟
4.موزيلا ، بادبان كشتي توسعهء نرم افزارهاي Open Source
اگر در يك جمع عمومي سوال كنيد موزيلا چيست احتمالا" چند نفري پيدا خواهند شد كه به شما توصيه كنند سري به لينوكس بزنيد و يكي از مرورگرهاي محبوب لينوكس دوستان را ببينيد ، اما اينجا يك جمع عمومي نيست . موزيلا يك بستر توسعه ء نرم افزار مستقل از سكو است . به عبارت عاميانه تر ، موزيلا ، برادر كوچكتر جاوا و برادر بزرگتر دات نت است . يك كتابخانهء غني و قدرتمند براي توسعهء نرم افزار كه در اقتدا به برادر بزرگتر به سكو و سيستم عامل خاصي محدود نيست . توسط موزيلا ميتوانيد برنامه هاي مبتني بر بانك اطلاعاتي ، برنامه هاي گرافيكي ، برنامه هاي ارتباطي- شبكه اي ، برنامه هاي مبتني بر وب ، سيستم هاي كلاينت – سرور و ... بسازيد و براحتي براي هر سكوي سخت افزاري مورد حمايت موزيلا و تمامي سيستم عاملهاي موجود آن را توسعه دهيد . اما موزيلا با دو برادر خود تفاوتهاي فاحشي دارد . جاوا و دات نت ( اگر مسامحتا" آنها را قابل قياس بدانيم ) هر دو داراي يك استخوان بندي مشابه هستند كه از همان ادبيات قديمي و همچنان متداول استفاده ميكنند اما موزيلا واقعا" متفاوت است و اين تفاوت چشمگير باعث گسترش روز افزون محبوبيت موزيلا ميان ساكنان سرزمين سورس آزاد شده است و خواهيم ديد ، Longhorn SDK كه فرزند نا خلف دات نت است ، بجاي تبعيت از روش دات نت ، به موزيلا رجوع كرده است و آيندهء برنامه نويسان سپاه مايكروسافت را فناوري امروز دنياي سورس آزاد رقم ميزند .
5.موزيلا ، براي توسعهء نرم افزار
موزيلا تقريبا" از 3000 كامپوننت مختلف تشكيل شده است كه از رابط كاربري گرفته تا سرويسهاي وب و از بانك اطلاعاتي گرفته تا ارتباطات شبكه اي را حمايت ميكنند . در موزيلا كتابخانهء Gecko مسئول نمايش و جلوه هاي بصري است ( كه Avalon همين وظيفه را در لانگهورن انجام ميدهد ) و براي توسعهء رابط كاربري از يك زبان شبه XML بنام XUL استفاده ميكند ( كه اين وظيفه را در معماري لانگهورن ، زبان XAML انجام خواهد داد ) . براي ارتباطات شبكه اي كتابخانهء Necko توسعه داده شده است ( كه در معماري لانگ هورن Indigo همين وظيفه را دارد ) . كتابخانه هاي XPCOM براي توزيع شدگي و شيء گرائي در سطح كاربرد طراحي شده اند ( همانطور كه در معماري لانگهورن اين وظيفه هنوز بر عهدهء كتابخانه هاي اصلي دات نت ، مانند ريموتينگ است ) و ...
موزيلا بر اين اصل تاكيد دارد كه بستر توسعهء نرم افزار ، منطق نرم افزار ، رابط كاربري نرم افزار ، ارتباط نرم افزار با ساير عناصر ( كامپوننتهاي ديگر ) و ارتباطات شبكه اي ، بايد بصورت كاملا" از هم جدا و مستقل توسعه داده شوند و كليد ارتباطي اين موجوديت هاي مستقل چيزي نخواهد بود بجز : XML . به ديگر بيان برنامه نويسي با موزيلا ، تركيب و تلفيق كتابخانه هاي مناسب و ايجاد ارتباط بين آنها با XML است . در اين معماري ، نرم افزارهاي كوچك توسط هر كسي كه قدري با ادبيات نرم افزار آشنا باشد قابل تهيه هستند و نرم افزارهاي بزرگ فرصت مي يابند در سطح تيم توزيع شوند و اعضاي تيم توسعه بدون اطلاع از جزئيات ساير بخشها ، اجزاء لازم را با هم تلفيق ميكنند و نهايتا" توسط XML نرم افزار اصلي متولد ميگردد و هر زمان لازم بود اجزاء نرم افزار تغيير مكان يا موضع دهند ، براحتي و بدون درگير شدن با خروارها كد ، ميتوان با تغيير چند خط XML مرتبط كنندهء دو عنصر ، روند كاربرد نرم افزار را تغيير داد .
از ديدي ديگر موزيلا ميخواهد برنامه نويسي براي وب ، با برنامه نويسي Desktop تفاوتي نداشته باشد . وقتي قرار است آيندهء سيستم هاي رايانه اي مبتني بر وب باشد و ماهيت از هم جداي نرم افزارها و رايانه ها تبديل به يك اتصال هميشه در دسترس و جهاني شود ، بايد برنامه نويسان براحتي همراه با توسعهء Desktop براي وب هم نرم افزارهايشان را توسعه دهند .
اين خط مشي و الگو ، قطعه به قطعه توسط مايكروسافت در لانگهورن توسعه داده ميشود . مايكروسافت هم در توصيف علت ايجاد يك مدل جديد برنامه نويسي ( يعني لانگهورن) ميگويد :
Why Another Programming Model?
Longhorn programming model is designed to fill the gap between Windows client applications and Web applications. In today's programming model, if you write a new application, first you have to decide whether the target is Windows or Web. If you target both users, then you have to develop two seperate applications.
منبع : http://www.c-sharpcorner.com/Longhorn/Lo...ornFAQ.asp
بزودي همانطور كه Win32 به پشت صحنه رفت تا دات نت خودنمائي كند ، دات نت هم از جلوي صحنه حذف خواهد شد تا لانگهورن فرصت خودنمائي پيدا نمايد . توسعه گران معتقد به راهكارهاي مايكروسافت ، ديروز به Win32 افتخار ميكردند ، امروز خواب و خيالهاي تعبير نشدهء خود را با دات نت تعبير ميكنند و فردا لانگهورن "بهترين" فناوري توسعهء نرم افزار است كه آزمايشگاههاي چند ميلياردي مايكروسافت با كوشش و تلاش و تحقيق مداوم و اهتمام به در نظر گرفتن نيازهاي كاربران و توسعه گران آن را توليد نموده است !!
6.پس مايكروسافت دقيقا" چه كرده است ؟
به غير از استفاده از ايدهء ديگران ، اتفاقات مهم ديگري هم در جبههء مايكروسافت افتاده است . مثلا" شايد دوست داشته باشيد بدانيد كه Gecko ( كه مسئول ترسيم عناصر بصري در معماري موزيلا است ) يك تكنيك Raster- Based است . هر چند عناصر گرافيكي دلخواه خود را ميتوانيد براحتي توليد كنيد اما توسعه گران تابع مايكروسافت از داشتن يك Avalon متمدن تر كه Vector-Based است خوشحال تر خواهند بود و براحتي ميتوان قابليتهائي كه همينك در SVG ادوبي يا Flash SWF مكرومديا موجود است را توسط برنامه هاي معمولي لانگهورن ايجاد نمود . در ساير بخشها هم چنين ويژگيهائي مشاهده ميشود . در واقع مايكروسافت تا توزيع نهائي لانگهورن ، به تقويت موزيلا ، ببخشيد ، به تقويت لانگهورن براي حمايت از " هر آنچه ممكن است يك توسعه گر نرم افزار نياز داشته باشد" خواهد پرداخت تا برنامه نويسان ، تا حد ممكن از هيچ تكنيك ، قطعهء نرم افزاري يا ابزاري كه محصول مايكروسافت نباشد استفاده نكنند . اما براي شما ، به عنوان يك توسعه گر نرم افزار آنچه بيشترين نمود را خواهد داشت XAML است . زباني كه بخش قابل توجهي از توسعه گران براي ساخت برنامه هاي جديد خود از آن استفاده خواهند نمود . در آينده توسعهء نرم افزار هاي ويندوزي ، بسيار شبيه طراحي نرم افزارهاي مبتني بر وب ، خواهد بود .
بخواهيد يا نخواهيد شما در عصر رنسانس دنياي الكترونيك و IT قرار داريد و بلا شك بايد نظاره گر تغييراتي باشيد كه بزرگان درهء سيليكون و لژ نشينان ردموند منشاء آن هستند . عصر ارتباطات جهاني كه كليد تمامي ارتباطات تجاري ، اقتصادي ، سياسي ، فرهنگي و اجتماعي آن ، شبكه هاي با سيم يا بي سيم تحت فرمان نرم افزارهاي پيام رسان هستند ، در اختيار چه كساني خواهد بود ؟ آيا آينده اجازه ميدهد همانند امروز تا حدي براي انتخاب راه و مسير زندگي انعطاف داشته باشيم ؟