منذ نهاية عام 2010 ، كانت هناك العديد من الأصوات حول وفاة Silverlight الوشيكة. ثم أظهرت المزيد والمزيد من الحقائق أن Microsoft تتخلى بالفعل عن Silverlight. السبب الأساسي هو أنه يشعر بضغط HTML5 ، والسبب المباشر هو أنه لم يحقق الكثير من النصر في المنافسة مع Flash.
بسبب شعبية iPhone ، أعلنت Jobs بثقة أن جميع المكونات الإضافية للمتصفح هي "شريرة" ، لذلك ترفض متصفحات iOS أي مكونات إضافية ، بما في ذلك الفلاش ، وبالطبع Silverlight. بعد ذلك ، عندما يكون المترو في Win8 مثل الوظائف المصممة حقًا ولا يدعم أي مكونات إضافية ، ما زلت لا أستطيع أن أصدق أن نظارتي قد تم كسرها. لماذا أصبحت Microsoft غير واثقة ومستقلة؟
1. لماذا لا يمكن لـ HTML5 استبدال Silverlight (أو فلاش)أي منتج هو أداة. أنا لست مصمم Silverlight وليس لدي مشاعر خاصة تجاهها. إذا كانت هناك تقنية أفضل يمكن أن تحل محلها ، فهذا أمر رائع. سأكون أول من يقف لدعم منتج جديد. ولكن السؤال هو ، هل يمكن لـ HTML5 استبدال Silverlight حقًا؟
Silverlight هي عميل سمين تم تطويره بلغة C# (أو VB.NET). هذا النسب يحدد عملية التطوير الخاصة بها بشكل فطري. يجب أن تكون بنية البرنامج هي نفسها تمامًا لتطبيقات Windows. في الواقع ، فإنه يذهب خطوة إلى الأمام. النسب الموروثة بواسطة Silverlight من WPF يجعل MVVM يعمل مثاليًا للغاية. تشكل هذه المجموعة الكاملة من المنتجات سلسلة بيئية قوية تعتمد على .NET Framework و MVVM كنموذج تنظيمي ولغة عالية المستوى كلغة التطوير. توحد Silverlight تقنية تطوير العميل والخادم ، وتملأ الفجوة بين المتصفحات المختلفة.
أكثر من ذلك. Silverlight مفيد بشكل خاص في نموذج العمل الخدمية. إن تكامله العميق مع WCF يجعل الأمر بسيطًا وأنيقًا لتطوير برنامج ويب قوي موجه نحو الخدمة.
ماذا عن HTML5؟ إنه يعزز قدرات معالجة الرسومات ، ويضيف إمكانيات البث ، ويضيف أيضًا بعض الوظائف العملية الأخرى. ومع ذلك ، هذا لا يزال بعيدا عن ريا. لا جدوى لهندسة البرمجيات والأداء وكفاءة التطوير.
بادئ ذي بدء ، من منظور اللغة والهيكل ، لا تتطلب مزايا اللغة عالية المستوى ، والكتابة القوية ، والموجهة نحو الكائن أي تفسير غير ضروري. كان تاريخ البرمجيات على مدار العقود القليلة الماضية هو أدلة حديدية ، وأنماط التصميم الممتازة أكثر أهمية لقدرة البرمجيات وقابلية الصيانة والأمن ومرونة البرمجيات. فيما يتعلق بهذا ، لا توجد حاجة إلى "دليل" إضافي. يجب أن يعرف كل من تعلم البرمجة أهمية ودور أنماط التصميم.
HTML5 ليس "HTML نفسه". في الواقع ، هناك بطل الرواية يدعى JavaScript يتم تجاهله تقريبًا من قبل الناس. في جميع الأماكن التي يتم فيها الحديث عن الآفاق الرائعة والميزات عبر المنصات لـ HTML5 ، لم يذكر أي شخص تقريبًا اسم JavaScript. ومع ذلك ، في الواقع ، يجب تنفيذ وظائف وسلوكيات ديناميكية مختلفة في HTML بالكامل بواسطة JS. يجب أن يطلق على HTML5 ، كحل تطبيق ويب ، حل "HTML5 و JavaScript".
في الواقع ، إذا كنت تفكر في الأمر بعناية أكبر ، فستجد أن JavaScript ، التي تم إخفاؤها عن عمد وراء الكواليس من قبل الناس ، هي البطل الحقيقي الأول ، و HTML5 هو في الواقع دور داعم.
منذ وقت ليس ببعيد ، عرضت Microsoft لعبة تسمى "قطع الحبل" تدعي أنها تنفذ مع HTML5. اللعبة مفاجئة بالفعل. ومع ذلك ، يجب على أي شخص يعمل في تطوير الويب أن يدرك على الفور أنه في تنفيذ هذه اللعبة ، يفسر HTML5 عن مقدار حساب JavaScript؟ في أي لغة هي رمزها الوظيفي؟ الجواب بسيط جدا وواضح. بدلاً من القول بأن هذه اللعبة تستخدم لعرض HTML5 ، أعتقد أنه من الأفضل عرض JavaScript.
عندما يتعلق الأمر بالألعاب ، يجب أن تكون على دراية بإصدارات الويب الشهيرة للألعاب عبر الإنترنت في الصين في السنوات الأخيرة. يتم تحقيق الوظائف القوية تمامًا بواسطة JS؟ يجعلني أشعر بالخدر إذا فكرت في الأمر. بغض النظر عما إذا كان ذلك ممكنًا ، حتى لو كان يمكن القيام به ، ألا تعتقد حقًا أن هذا هو الانحدار الرئيسي في تاريخ البرمجة؟ ---- بعد سنوات عديدة من التنمية ، تم استبدال اللغات عالية المستوى بلغات البرمجة النصية؟
في الواقع ، الألعاب هي مجرد مثال. نظرًا لأن تطبيقات الويب تصبح أكثر شيوعًا ، يحتاج الأشخاص إلى أقوى وأكثر حساسية وأعلى تطبيقات عميل أكثر تعقيدًا ، مما يعني أن جميع مقاييس البرمجة الأكبر. بالنسبة إلى "حلول HTML5" ، في الواقع ، هذا يعني أنه يجب تنفيذ جميع توقعات المستخدم من خلال JavaScript ، وبالنسبة للتطبيقات الكبيرة ، قد يعني ذلك ملايين خطوط التعليمات البرمجية. ---- في البرمجة على هذا المقياس ، هل يشبه JS القوي C#؟
إنه ليس ذلك فقط.
على سبيل المثال ، يركز مشروع شركتي ، تطبيق الويب على شبكات المنطقة المحلية ولا يفكر في قيود الإنترنت. ---- هذا في الواقع سيناريو استخدام للعديد من تطبيقات الويب. في LANS ، يمكن لمكونات العميل مثل Silverlight تحقيق اتصال عالي الأداء للغاية (تدفقات البيانات الثنائية) ومعالجة البيانات. هذا عائق أمام نسب HTML5 استنادًا إلى تفسير النص العادي. لا يمكن أن يكون أدائها أعلى من المكونات الإضافية.
بالإضافة إلى أداء الاتصال ، هناك أيضًا أداء ديناميكي. يمكن لـ Silverlight استخدام تسريع الأجهزة بشكل مباشر ، بينما يعتمد HTML5 على المتصفح ، لذلك تمامًا مثل أداء الاتصال ، سيكون أقل فقط من Silverlight ، وليس هناك احتمال أعلى.
هل هناك أي كفاءة تنمية (تكلفة الوقت)؟ يمكن لـ Silverlight بناءً على .NET استخدام الوظائف القوية في Visual Studio تمامًا. غالبًا ما لا يشعر المطورون بالفرق بين هذا وتطوير برنامج Windows. يلف إطار .NET عددًا كبيرًا من الوظائف الجاهزة ، والضوابط الغنية ، وتجربة البرمجة المألوفة ، ودعم تصحيح الأخطاء القوية.
نحن أيضا على دراية بتطوير JS. على الرغم من أن VS قد تعزز بشكل مستمر دعمها لـ JS على مر السنين ، مقارنةً بإطار .NET الضخم ووقت تشغيل .NET الناضج وتصحيح الأخطاء ، فهي مجرد لغة نصية. بغض النظر عن مدى الدهون الفأرة ، لن يكون أثقل من الفيل. هذا هو الحس السليم الأساسي.
2. أين هو HTML5وضع جانبا المشاكل العملية أعلاه ، أين هو HTML5؟
بادئ ذي بدء ، يتطلب HTML دعم المتصفح. HTML5 نفسه هو مجرد معيار ، وتنفيذها يعتمد على المتصفح. لأسباب مختلفة ، يكون لكل متصفح دائمًا بعض "شخصيته". HTML4 لا يخلو من المعايير ، ولكن الحقائق التي أمامك قد أوضحت تمامًا كيف سيتعامل مصنعو المتصفح هذا المعيار. لا يوجد سبب لإثبات أن عصر HTML5 يمكنه حل هذه المشكلة تمامًا.
ثانياً ، لا يزال هناك عدد قليل فقط يدعم متصفحات HTML5. لا يزال الطريق طويلًا للقضاء على جميع المتصفحات القديمة. ويمكن التنبؤ أنه سواء في غضون خمس سنوات أو عشر سنوات ، سيتم ملء السوق بإصدارات مختلفة من المتصفحات ، وسيكون كل متصفٍ مختلفًا إلى حد ما. بالإضافة إلى ذلك ، ما هي مدة إطلاق IE9 من Microsoft؟ تم إصدار IE10. على الرغم من أن IE10 و IE9 هما متصفحان يدعمان HTML5 ، إلا أن هناك العديد من الاختلافات المرئية. من بين المتصفحات التي لا تزال تعيش ، لديها Microsoft وحدها 5 منتجات مختلفة من IE6 إلى IE10.
ثالثًا ، لا يتطلب بناء تطبيق ويب قوي استحقاق التكنولوجيا الأساسية فحسب ، بل يتطلب أيضًا عددًا كبيرًا من مكتبات الفصل. HTML5 نفسها ليست ناضجة بما فيه الكفاية ، وإنشاء تطبيقات ويب معقدة تعتمد على HTML5 (JS) يفتقر إلى دعم مكتبة ومكتبة الفصل. إذا تمكنت المتصفحات المستقبلية من شرح JS مثل Silverlight أو Flash ، فستكون عملية طويلة جدًا ، ناهيك عن أنني شخصياً أعتقد أن هذا مستحيل.
مقارنة بعدم نضج HTML5 ، يعد Silverlight منتجًا نهائيًا أمامك. أنا قلق بشأن ما سيحدث بعد عشر أو عشرين عامًا. هذا لأنني ممتلئ وليس لدي ما أفعله.
3. Win8 والمستقبلحسنًا ، أعترف أن القلق بشأن ما سيحدث بعد عشر أو عشرين عامًا لا يعني بالضرورة أنك ممتلئ وليس لديك ما تفعله. ثم دعونا نلقي نظرة على المستقبل.
Win8 هو في الواقع ما يعادل Win7+مترو. وهذا يعني أن وضع سطح المكتب جانبا متوافق مع Win7 ، وضع المترو هو Win8 الحقيقي.
ومع ذلك ، ما هو المترو؟ يتخلى وضع المترو عن النافذة ، و WPF ، وحتى .NET. بسعر كبير ، فإنه يكرر بالفعل نظام تشغيل الهاتف المحمول. لا يقتصر الأمر على ظهوره تمامًا ، ولكن متجر تطبيقات Windows يعبر أيضًا عن حب Apple مباشرة. بالنظر إلى التصميم غير الطبيعي للمترو-IE ... لقد شككت ذات مرة ما إذا كان Win8 قد تم تطويره تحت إشراف الوظائف.
على الرغم من أن وضع المترو يبدو منعشًا بعض الشيء ، إلا أن الكمبيوتر الشخصي ليس وحدة تحكم في اللعبة. يتعين على المزيد من الأشخاص استخدام جهاز كمبيوتر للعمل ، أو القيام بشيء مشابه للمكتب. كلما استخدموها أكثر ، كلما وجدوا مدى إيلامه لوجود وضع مترو بدون نوافذ. من الشائع جدًا أن يستخدم الأشخاص تطبيقين أو أكثر في نفس الوقت. علاوة على ذلك ، نظرًا لزيادة حجم الشاشة ، فإن الشاشة لديها في الواقع القدرة على عرض المزيد من المعلومات كل عام ، لكن Metro يخبر المستخدمين: لا ، لا يمكن استخدام جميع الشاشات إلا لعرض تطبيق واحد. هل تريد الدردشة مع QQ أثناء مشاهدة الأفلام؟ عزيزي ، هذا غير مسموح ...
أجهزة الكمبيوتر ليست هواتف محمولة. لم يفهم مصممو Win8 هذه الحقيقة البسيطة. لا يمكن القول أن مترو Win8 لا فائدة من ذلك ، لكنه في الواقع محدود للغاية في الاستخدام.
لذلك ، لن يكون اتجاه التنمية المستقبلي لنظام التشغيل Windows بالتأكيد متروًا مملًا ، ولكنه وضع نافذة كلاسيكي.
بمجرد أن تفهم هذا ، يمكنك أن تصدق أن المستقبل لن أقوم بتعطيل المكونات الإضافية. حتى لو كان المترو لا يزال طفيليًا في نظام التشغيل مثل مهووس مشوه في WIN9 ، فلن يتسبب ذلك في أي عاصفة. وضع Win7 المستند إلى سطح المكتب هو الملك ، وطالما لا يقوم المتصفح بتعطيل المكونات الإضافية ، فلا شك في توفر Silverlight أو Flash. على الرغم من أن Microsoft لن تطلق Silverlight 6 مرة أخرى ، فماذا في ذلك؟ سيظل Silverlight يعمل بشكل جيد في غضون عشر سنوات على الأقل ، كما سيحدث بعد عشر سنوات ... في الواقع ، لن تستمر معظم الكود لفترة طويلة.
4. طبيعة تكنولوجيا الكمبيوترهناك صينية قديمة تقول "تنسى أسلاف الأعداد". بالنسبة لتطبيقات الويب ، أعتقد أن عبقرية التكنولوجيا تنسى أسلاف الأعداد. إنهم يتخيلون بشكل أعمى حول المنصات عبر المنصات ، لكنهم ينسون ما هي تقنية الكمبيوتر المستخدمة؟
أجهزة الكمبيوتر هي أداة ، وسجل التطوير بالكامل هو خدمة المستخدمين فقط. التكنولوجيا التي تجلب تجربة أفضل للمستخدمين فقط قيمة ويمكن أن تهزم التقنيات القديمة. من غير المعقول والغبي تحديد مستقبل الويب على المستوى المنخفض ، لا معنى له ، يصعب التحكم فيه ، جافا سكريبت منخفض الأداء (يستخدم HTML أساسًا لتقديم محتوى ثابت ، وتركز تطبيقات الويب على الديناميكية بدلاً من الثابت) فكرة أحمق. عندما ادعى جوبز بفخر أن جميع المكونات الإضافية هي "شريرة" ، اتفقت على أن فلسفته ("Diction") منطقية ، ولكن عندما أحسب هذا القاموس ، نسي "أسلافه". (يجب أن تخدم التطبيقات المستخدمين)
لا يمكن للتكنولوجيا قمع احتياجات المستخدم لمجرد أنه يمكن أن يحفظ القوى العاملة ، ويجب أن تستهلك المزيد من موارد الكمبيوتر غير ضرورية. على العكس من ذلك ، إذا كان بإمكانه تحسين الأداء ، وتوفير الموارد ، وتحقيق نتائج أفضل ، وتحسين تجربة المستخدم ، بغض النظر عن مقدار الجهد الذي يتطلبه الأمر ، فيجب القيام به.
في الواقع ، هناك العديد من الوظائف التي لا يمكن لـ JS+HTML تحقيقها ، و JS+HTML سيئة للغاية في الأمن. (من الذي يمكن أن يضمن أمان التسوق عبر الإنترنت؟) من المستحيل تعطيل المكونات الإضافية ، ليس أمامك فقط ، ولكن أيضًا خلال عشر سنوات. فقط فكر في الحاجة إلى بيئة ويب أقوى وأكثر أمانًا للمستخدمين ، فأنت تعلم أن المكونات الإضافية لا يمكن تقييدها إلا ، لكن لا يمكن حظرها. (بعض المكونات الإضافية الفوضوية مزعجة حقًا ، ولكن هل يتم حظرها من تناول الأسماك لأنها شوكة؟ من الغباء دائمًا التخلي عن الأكل بسبب الاختناق)
يعد Flash مكونًا إضافيًا على الويب ممتازًا وقويًا ، لكنه ليس مثاليًا في النظام البيئي لشركة Microsoft ، لذلك من غير الواقعي استخدام Flash بدلاً من Silverlight. إما التخلي عن تقنية Microsoft بالكامل أو Silverlight فقط.
في الواقع ، أعتقد شخصياً أن مستقبل الويب يجب أن يستند إلى وضع SOA للعديد من العملاء. يتم تنفيذ الوظائف بواسطة الخدمة ، ويتم تنفيذ واجهة المستخدم بواسطة منصات مختلفة باستخدام التكنولوجيا الأنسب. من غير المعقول متابعة المنصات عبر الأطراف. تحدد شاشة الهاتف المحمول أن وضع العرض والتشغيل الخاص به يجب أن يكون مختلفًا عن جهاز الكمبيوتر.
5. xaml ، صفيف الربط و MVVMكان هذا الموضوع سيئًا بعض الشيء ، لكن لا يزال يتعين علي ذكره. لا تزال طريقة التطوير الجديدة لتطبيق WIN8 مترو ، والتي يمكن تسميتها بالفعل SilverLight6 ، تستخدم XAML ، وتستخدم مماثلة لـ "Framework المقيد .NET" مثل Silverlight كإطار برمجة. يمكن حتى تجميع بعض برامج Silverlight مباشرة في تطبيقات Win8 دون تغيير أي خط.
أنا لست متفائلاً بشأن Win8 وتطبيق Metrol الخاص به ، لكنني أعتقد أن XAML و MVVM ستستمر إلى الأبد ، ولن تموت WPF ، ولن تموت التكنولوجيا التي تستخدمها Silverlight.
بمعنى ما ، حتى لو كان Silverlight5 هو الإصدار الأخير بالفعل ، يمكن اعتباره أن Silverlight قد غيرت اسمها للتو ، وقد تولد من جديد في التكنولوجيا الجديدة.
6. موقف مايكروسوفتأوقفت Microsoft تطوير Silverlight ، لكن Microsoft لم تعلن صراحةً أنه سيتم التخلي عن مشروع Silverlight. هذه ظاهرة ممتعة للغاية. اللوائح الحالية لـ Microsoft "غير مسموح لها بالذكر". إذا كانت Microsoft مصممة حقًا على الاستسلام ، فلماذا يتعين عليك جعل "غير مسموح به أن يذكرها" للتظاهر بأنها نامة؟
أعتقد أن Microsoft تشاهد أيضًا. إنهم يراقبون ما إذا كان المكون الإضافي للمتصفح لن يكون له أي احتمالات. إذا كانت المكونات الإضافية الأخرى ، بما في ذلك الفلاش ، تموت ببطء في المستقبل ، فستتخلى Microsoft بشكل طبيعي عن Silverlight. على العكس من ذلك ، إذا ثبت أن المكون الإضافي للمتصفح مريح للغاية ولا توجد علامة على الوفاة ، فيمكنهم إعادة تشغيل مشروع Silverlight في أي وقت وإطلاق Silverlight6.
لذلك ، أعتقد أنه حتى لو لم يتم النظر في تناسخ Silverlight وتراجعه ، فمن المحتمل أن يتم إحياء منتج Silverlight نفسه (وهذا الاسم) في المستقبل.
لذلك ، بالنسبة لمطوري الويب الذين يعيشون تحت سماء Microsoft ، يمكن أن يحقق اختيار Silverlight وظائف أكثر قوة بشكل أسرع وأكثر أناقة. لماذا لا تختار Silverlight؟