من Win32 إلى الكاكاو: سيكون مستخدم Windows محتملاً تحويل إلى Mac OS إكس ، الجزء الثالث

هكذا ... بيت بيتر برايت الجديد للدعم الفني ، أليس كذلك؟ وبالتالي… بيت بيتر برايت الجديد للحصول على الدعم الفني ، أليس كذلك؟ antxoa عشر سنوات منذ حوالي هذا الوقت بالذات – من أبريل إلى يونيو 2008 – مقدامنا من الواضح أن جورو مايكروسوفت بيتر برايت يعاني من أزمة هوية. استطاع هذا المستخدم الكمبيوتر مدى الحياة حقا قد دفعت إلى حافة الهاوية؟ هل كان تفكر في التبديل إلى … نظام التشغيل Mac OS؟!؟ بينما موظفينا نأمل يتمتع اليوم التذكاري أقل إرهاقا هذا العام ، في جميع أنحاء عطلة نهاية الاسبوع نحن الظهور هذه السلسلة جزء ثلاثة أن يتضاعف باعتباره معضلة نظام التشغيل الوجودي حوالي 2008. ركض الجزء الثالث على 1 يونيو 2008 ، ويبدو أنه لم يتم تعديله أدناه.

لقد سبق أن وصفت كيف أن سوء الحظ والشدائد تركا شركة أبل مع نظام تشغيل OS جديد خالٍ من القيود القديمة ؛ و I’ve ناقش أيضا كيف فشلت مايكروسوفت في أن تفعل الشيء نفسه ، واختيار بدلاً من ذلك لتعطيل نظام التشغيل الجديد الخاص به مع الكثير من الأمتعة القديمة.

قراءة متعمقة

من Win32 إلى كاكاو : التحويل المحتمل لمستخدم Windows إلى Mac OS X

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

The NeXT cube, displaying all four of its brilliant shades of اللون الرمادي. تكبير / المكعب NeXT ، الذي يعرض كل أربعة من ظلاله الرائعة من grey.

اتصال نيكست

أولاً ، دعنا نلقي نظرة مختصرة على ما حصلت عليه Apple عندما اشترته نيكست ، وفي بعض الأجزاء المهمة من تقنية نيكست ذلك عش اليوم. عندما اشترت Apple NeXT ، ورثت ما كان عليه العديد من الطرق تماما نظام التشغيل غير عادية. معظم أنظمة التشغيل مكتوبة في C وتحديد جميع واجهات برمجة التطبيقات ونقاط التمديد لنظام التشغيل في C شروط. كما قلت في الجزء 2 ، هذا لأن بساطة C تعني يمكن أن تستخدم جميع لغات البرمجة تقريبًا واجهات برمجة تطبيقات C دون ذلك الكثير من الصعوبة. C هو كثيرا لغة مشتركة لل لغات البرمجة – لغة كافية ، وإن كانت ناقصة ، وهي أقل شيوعًا مقام تعريض وظائف نظام التشغيل للتطبيقات. الخطوة التالية كان (ولا يزال) غير عادي ، لأن NeXTstep خالف هذا الاتجاه. لم يتفادى NeXTstep C تمامًا ، وفي الحقيقة كثير من المستويات المنخفضة لم تستخدم الميزات واجهات برمجة التطبيقات (API) – يضمن استخدامها لـ BSD UNIX ذلك أيضًا UNIX و C يسيران جنبًا إلى جنب – لكنه يستخدم أيضًا ديناميكية ، لغة وجوه المنحى ، الهدف جيم ، لكثير من الأشياء.

Obj-C هو نوع من الهجين بين C واللغة Smalltalk. Smalltalk هي لغة متخصصة لم يتم استخدامها على نطاق واسع ، ولكن لديها دعم قوي بشكل خاص لنهج واحد ل البرمجة الموجهة للكائنات ، والتي تسمى تمرير الرسائل. في رسالة OO ، الكائنات ترسل كل رسائل أخرى لأداء أجراءات. عندما يتلقى كائن رسالة ، يمكنه فحصها و اختر الرد عليه أو تجاهله أو إرساله إلى مكان آخر. ما إذا كان الكائن يعرف كيفية التعامل مع الرسالة غير معروف حتى البرنامج يعمل بالفعل. رمز البرنامج الذي يكتب المطور لا يحتاج إلى أي قيود معينة على الرسائل التي يتم إرسالها إلى أي الكائنات ، وبالفعل الرسائل التي قد يستجيب لها كائن يمكن أن تختلف أيضا عند البرنامج أشواط. على الرغم من أن هذا السلوك الديناميكي ليس غريباً بشكل خاص لغات البرمجة النصية ، إنها أقل شيوعًا في برمجة النظام اللغات. نهج تمرير الرسائل غير عادي في OO العالمية؛ معظم لغات OO (بما في ذلك جميع اللغات الشائعة: C ++ و Java و C #) استخدام نموذج مختلف لمرافق OO الخاصة بهم ، واحد يعتمد على لغة سيمولا بدلا من ذلك. هذا النهج هو أكثر صرامة. ما إذا كان يمكن استدعاء وظيفة معينة على كائن معين عندما يتم تجميع البرنامج ، وليس عند تشغيله.

الأجزاء الموجهة نحو كائن Smalltalk المستوحاة من Obj-C تمامًا مستقلة عن أجزاء C. أي برنامج جيم يمكن جمعها من قبل مترجم Obj-C باستخدام واجهات برمجة التطبيقات C من داخل برامج Obj-C هو تافهة ، لأن Obj-C يمكنه فعل كل ما يمكن لـ C القيام به. الذهاب في الاتجاه الآخر اصعب بكثير العديد من اللغات ببساطة ليس لديها وسيلة لهذا النوع من الأشياء التي يأخذها Obj-C أمرا مفروغا منه ، وخاصة عندما يتعلق الأمر some of its more complex features.Model-View-ControllerEnlarge / Model-View-ControllerApple

إلى جانب هذه لغة البرمجة غير عادية كان API ذلك استغلال الخصائص الفريدة للغة. تم تقسيم API في عدد من “الأطر” ، كل منها غطت محددة مجال الوظيفة. على الرغم من أن هذه الأطر قد تطورت الوقت (كان تاريخ NeXTstep أكثر تعقيدًا مما كان لدي الموصوفة هنا ، وهذا التاريخ أثر على تطور API إلى حد كبير) ، هناك نوعان على وجه الخصوص من أهمية قصوى ، لأنها هي التي تشكل الكاكاو.

يحتوي الكاكاو API على جزأين ؛ “مجموعة الأساس” و “التطبيق Kit “. توفر Kit Foundation الوظائف الأساسية الشائعة ل تقريبا جميع البرامج: معالجة سلسلة ، حاوية / جمع فئات ، تحليل XML ، ملف I / O ، وهلم جرا. طقم التطبيق هو ما يوفر مرافق البرمجة واجهة المستخدم الرسومية. ومن هنا Mac OS X (و NeXTstep قبله) يميز نفسه عن منصات مثل Win32 و.

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

ماذا يعني هذا اليوم

NSTextView في العمل. An NSTextView in action. Cocoaتحصل التطبيقات على الكثير من الأشياء مجانًا ، فقط بحكم كونها تطبيقات الكاكاو. النماذج المحددة مسبقًا ، المشاهدات ، وحدات التحكم توفير قدرات قوية مدمجة التي يمكن استخدامها و الموسعة من قبل البرنامج. فئة NSTextView ، على سبيل المثال ، يوفر متسق تحرير النص متعدد الخطوط عرض ، كاملة مع متعددة الخطوط وأحجام الخطوط وألوان النص ، إلى جانب الأحمر والأخضر تذبذب تسطير الأخطاء الإملائية والنحوية (على التوالي) مع التراجع غير المحدود / الإعادة. كما تضاف قدرات جديدة ل فئة NSTextView ، يمكن للبرنامج الذي يستخدمه التقاط هذه القدرات تلقائيا.

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

آليات التخصيص للفئات التي توفرها Apple تعتمد بشدة على ميزات Obj-C. على الرغم من أن فئة فرعية النهج الموجود في معظم لغات OO هو خيار ، فإنه ليس هو واحد فقط. السهولة التي يمكن لـ Obj-C إعادة توجيه الرسائل إليها كائنات مختلفة تعني أن التفويض (حيث يمر كائن واحد المسؤولية عن سلوك كائن آخر) من السهل جدا ل التعبير عن والدعم. على عكس ، على سبيل المثال ، Java أو C ++ ، فإن المفوض إلى كائن لا يحتاج إلى تنفيذ أي واجهة محددة أو تمديد أي فئة أساسية معينة ؛ يمكن الاستماع فقط ل الرسائل الفردية التي تهتم بها وتتجاهل كل شيء آخر. وهذا يجعل استبدال أو تعديل الفرد عمليات سريعة وسهلة.

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

توصيل الأشياء معًا في Interface Builder.

جذور Interface Builder تأتي من شراء شركة Apple التالى. هنا منشئ واجهة ل NeXTSTEP.

Apple’s Interface Builder ، والذي تم دمجه مباشرة في كسكودي.

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

Like this post? Please share to your friends:
Leave a Reply

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: