Sejak akhir 2010, ada banyak suara tentang kematian Silverlight yang akan datang. Kemudian semakin banyak fakta telah menunjukkan bahwa Microsoft memang secara bertahap menyerahkan Silverlight. Alasan mendasarnya kira -kira karena merasakan tekanan HTML5, dan alasan langsungnya adalah bahwa ia belum mencapai banyak kemenangan dalam kompetisi dengan Flash.
Karena popularitas iPhone, pekerjaan dengan percaya diri mengumumkan bahwa semua plug-in browser adalah "jahat", jadi browser iOS menolak plug-in apa pun, termasuk flash, dan tentu saja, Silverlight. Kemudian, ketika Metro-Ie di Win8 benar-benar seperti pekerjaan yang dirancang dan tidak mendukung plug-in, saya masih tidak percaya bahwa kacamata saya rusak. Mengapa Microsoft menjadi sangat tidak percaya diri dan mandiri?
1. Mengapa HTML5 Tidak Dapat Mengganti Silverlight (atau Flash)Produk apa pun adalah alat. Saya bukan perancang Silverlight dan tidak memiliki perasaan khusus untuk itu. Jika ada teknologi yang lebih baik yang dapat menggantikannya, itu bagus. Saya akan menjadi orang pertama yang berdiri untuk mendukung produk baru. Tapi pertanyaannya adalah, bisakah HTML5 benar -benar menggantikan Silverlight?
Silverlight adalah klien gemuk yang dikembangkan dalam bahasa C# (atau VB.NET). Silsilah ini menentukan proses pengembangannya secara bawaan. Struktur program harus persis sama dengan aplikasi Windows. Bahkan, itu melangkah lebih jauh. Silsilah yang diwarisi oleh Silverlight dari WPF membuat MVVM bekerja sangat ideal. Set produk lengkap ini merupakan rantai ekologis yang kuat berdasarkan .NET Framework, MVVM sebagai model organisasi, dan bahasa tingkat tinggi sebagai bahasa pengembangan. Silverlight menyatukan teknologi pengembangan klien dan server, dan mengisi celah antara berbagai browser.
Lebih dari itu. Silverlight sangat berguna dalam model kerja SOA. Integrasi yang mendalam dengan WCF membuatnya sederhana dan elegan untuk mengembangkan program web yang kuat dan berorientasi layanan.
Bagaimana dengan html5? Ini meningkatkan kemampuan pemrosesan grafis, menambahkan kemampuan streaming, dan juga menambahkan beberapa fungsi praktis lainnya. Namun, ini masih jauh dari RIA. Tidak berguna untuk rekayasa perangkat lunak, kinerja, dan efisiensi pengembangan.
Pertama-tama, dari perspektif bahasa dan struktur, keuntungan bahasa tingkat tinggi, pengetikan yang kuat, dan berorientasi objek tidak memerlukan penjelasan yang tidak perlu. Sejarah perangkat lunak selama beberapa dekade terakhir adalah bukti besi, dan pola desain yang sangat baik bahkan lebih penting bagi keterbacaan, pemeliharaan, keamanan, dan fleksibilitas perangkat lunak. Mengenai ini, pada dasarnya tidak perlu "bukti" tambahan. Setiap orang yang telah belajar pemrograman harus mengetahui pentingnya dan peran pola desain.
Html5 bukan "html itu sendiri". Faktanya, ada seorang protagonis bernama JavaScript yang hampir diabaikan oleh orang -orang. Di semua tempat di mana prospek indah dan fitur lintas platform dari HTML5 dibicarakan, hampir tidak ada yang menyebutkan nama JavaScript. Namun, pada kenyataannya, berbagai fungsi dan perilaku dinamis dalam HTML harus diimplementasikan sepenuhnya oleh JS. HTML5, sebagai solusi aplikasi web, harus benar -benar disebut solusi "HTML5 dan JavaScript".
Faktanya, jika Anda memikirkannya dengan lebih hati -hati, Anda akan menemukan bahwa JavaScript, yang sengaja disembunyikan di balik layar oleh orang -orang, adalah protagonis nomor satu yang sebenarnya, dan HTML5 sebenarnya hanyalah peran pendukung.
Belum lama ini, Microsoft menunjukkan permainan yang disebut "Cutting Rope" yang mengklaim akan diimplementasikan dengan HTML5. Gim ini memang mengejutkan. Namun, siapa pun yang bekerja dalam pengembangan web harus segera menyadari bahwa dalam implementasi game ini, HTML5 akun untuk berapa banyak akun JavaScript? Bahasa mana kode fungsionalnya? Jawabannya sangat sederhana dan jelas. Daripada mengatakan bahwa game ini digunakan untuk menampilkan HTML5, saya pikir lebih baik menampilkan JavaScript.
Ketika datang ke game, Anda harus terbiasa dengan versi web game online populer di China dalam beberapa tahun terakhir. Fungsi yang kuat sepenuhnya terwujud oleh JS? Itu membuat saya merasa mati rasa jika saya memikirkannya. Terlepas dari apakah itu mungkin, bahkan jika itu dapat dilakukan, tidakkah Anda benar -benar berpikir ini adalah regresi utama dalam sejarah pemrograman? ---- Setelah bertahun-tahun pengembangan, bahasa tingkat tinggi telah digantikan oleh bahasa skrip?
Bahkan, game hanyalah contoh. Ketika aplikasi web menjadi semakin populer, orang membutuhkan aplikasi klien yang lebih kuat, lebih halus, lebih tinggi dan lebih kompleks, yang semuanya berarti skala pemrograman yang lebih besar. Untuk "solusi HTML5", pada kenyataannya, ini berarti bahwa semua harapan pengguna harus diimplementasikan melalui JavaScript, dan untuk aplikasi besar, ini dapat berarti jutaan baris kode. ---- dalam pemrograman pada skala ini, apakah JS sebanding dengan C#yang kuat?
Bukan hanya itu.
Misalnya, proyek perusahaan saya, aplikasi web berfokus pada jaringan area lokal dan tidak mempertimbangkan keterbatasan Internet. ---- Ini sebenarnya skenario penggunaan untuk banyak aplikasi web. Di LAN, plug-in klien seperti Silverlight dapat mencapai komunikasi kinerja yang sangat tinggi (aliran data biner) dan pemrosesan data. Ini adalah penghalang untuk garis keturunan HTML5 berdasarkan interpretasi teks biasa. Kinerja tidak pernah bisa lebih tinggi dari plug-in.
Selain kinerja komunikasi, ada juga kinerja efek dinamis. Silverlight dapat secara langsung menggunakan akselerasi perangkat keras, sedangkan HTML5 bergantung pada browser, jadi seperti kinerja komunikasi, itu hanya akan lebih rendah dari Silverlight, dan tidak ada kemungkinan yang lebih tinggi.
Apakah ada efisiensi pengembangan (biaya waktu)? Silverlight berdasarkan .NET dapat sepenuhnya menggunakan fungsi yang kuat dari Visual Studio. Pengembang sering tidak merasakan perbedaan antara ini dan mengembangkan program Windows. Kerangka .NET merangkum sejumlah besar fungsi siap pakai, kontrol yang kaya, pengalaman pemrograman yang akrab, dan dukungan debugging yang kuat.
Kami juga akrab dengan pengembangan JS. Meskipun VS telah terus memperkuat dukungannya untuk JS selama bertahun -tahun, dibandingkan dengan kerangka kerja .NET yang besar dan runtime .NET dan debugger yang matang, itu hanya bahasa skrip. Tidak peduli seberapa gemuk tikus itu, itu tidak akan lebih berat dari gajah. Ini adalah akal sehat dasar.
2. Dimana html5Mengesampingkan masalah praktis di atas, di mana html5?
Pertama -tama, HTML membutuhkan dukungan browser. HTML5 itu sendiri hanyalah standar, dan implementasinya tergantung pada browser. Karena berbagai alasan, setiap browser selalu memiliki beberapa "kepribadian" sendiri. HTML4 bukan tanpa standar, tetapi fakta -fakta di depan Anda telah sepenuhnya menunjukkan bagaimana produsen browser akan memperlakukan standar ini. Tidak ada alasan untuk membuktikan bahwa era HTML5 dapat sepenuhnya menyelesaikan masalah ini.
Kedua, masih ada beberapa yang mendukung browser HTML5. Masih jauh untuk menghilangkan semua browser lama. Dan dapat diprediksi bahwa apakah dalam lima tahun atau sepuluh tahun, pasar akan diisi dengan berbagai versi browser, dan setiap browser akan agak berbeda. Selain itu, sudah berapa lama IE9 Microsoft diluncurkan? IE10 telah dirilis. Meskipun IE10 dan IE9 keduanya adalah browser yang mendukung HTML5, ada banyak perbedaan yang terlihat. Di antara browser yang masih hidup, Microsoft sendiri memiliki 5 produk berbeda dari IE6 hingga IE10.
Ketiga, membangun aplikasi web yang kuat tidak hanya membutuhkan kedewasaan dalam teknologi dasar, tetapi juga membutuhkan sejumlah besar perpustakaan kelas. HTML5 itu sendiri tidak cukup matang, dan membangun aplikasi web yang kompleks berdasarkan HTML5 (JS) tidak memiliki persuasi yang cukup dan dukungan perpustakaan kelas. Jika browser di masa depan benar -benar dapat menjelaskan JS seperti Silverlight atau Flash, itu akan menjadi proses yang sangat panjang, apalagi saya pribadi berpikir itu tidak mungkin.
Dibandingkan dengan ketidakdewasaan HTML5, Silverlight adalah produk jadi di depan Anda. Saya khawatir tentang apa yang akan terjadi sepuluh atau dua puluh tahun kemudian. Itu karena saya kenyang dan tidak ada hubungannya.
3. Win8 dan Masa DepanYah, saya akui bahwa mengkhawatirkan tentang apa yang akan terjadi sepuluh atau dua puluh tahun kemudian tidak selalu berarti bahwa Anda penuh dan tidak ada hubungannya. Lalu mari kita lihat masa depan.
Win8 sebenarnya setara dengan Win7+Metro. Dengan kata lain, mengesampingkan mode desktop yang kompatibel dengan Win7, Mode Metro adalah Win8 yang sebenarnya.
Namun, apa itu Metro? Mode metro meninggalkan jendela, WPF, dan bahkan .net. Dengan harga yang begitu besar, itu sebenarnya mereplikasi sistem operasi seluler. Tidak hanya benar -benar tidak inovatif dalam penampilan, tetapi toko aplikasi Windows juga mengekspresikan kecintaannya pada Apple secara langsung. Mempertimbangkan desain abnormal Metro-Ie ... Saya pernah meragukan apakah Win8 dikembangkan di bawah bimbingan pekerjaan.
Meskipun mode metro memang terlihat agak menyegarkan, komputer pribadi bukan konsol game. Lebih banyak orang harus menggunakan komputer untuk bekerja, atau melakukan sesuatu yang mirip dengan kantor. Semakin banyak mereka menggunakannya, semakin banyak mereka menemukan betapa menyakitkannya memiliki mode metro tanpa jendela. Sangat umum bagi orang untuk menggunakan dua atau lebih aplikasi secara bersamaan. Selain itu, karena ukuran monitor terus meningkat, monitor sebenarnya memiliki kemampuan untuk menampilkan lebih banyak informasi setiap tahun, tetapi Metro memberi tahu pengguna: tidak, semua layar Anda hanya dapat digunakan untuk menampilkan satu aplikasi. Apakah Anda ingin mengobrol dengan QQ saat menonton film? Sayang, itu tidak diperbolehkan ...
Komputer bukan ponsel. Para desainer Win8 tidak memahami kebenaran yang sederhana seperti itu. Metro Win8 tidak dapat dikatakan tidak ada gunanya, tetapi memang sangat terbatas dalam digunakan.
Oleh karena itu, arah pengembangan Windows di masa depan pasti tidak akan menjadi metro yang membosankan, tetapi mode jendela klasik.
Setelah Anda memahami ini, Anda dapat percaya bahwa masa depan saya tidak akan menonaktifkan plug-in. Bahkan jika Metro masih parasit dalam sistem operasi seperti orang aneh yang cacat di Win9, itu tidak akan menyebabkan badai. Mode Win7 berbasis desktop adalah raja, dan selama browser tidak menonaktifkan plug-in, tidak ada keraguan tentang ketersediaan Silverlight atau Flash. Meskipun mungkin Microsoft tidak akan meluncurkan Silverlight 6 lagi, jadi apa? Silverlight masih akan bekerja dengan baik dalam setidaknya sepuluh tahun, seperti apa yang akan terjadi sepuluh tahun kemudian ... Faktanya, sebagian besar kode tidak akan bertahan begitu lama.
4. Sifat Teknologi KomputerAda seorang Cina tua yang mengatakan bahwa "lupakan leluhur numerologi". Untuk aplikasi web, saya pikir jenius teknologi melupakan nenek moyang numerologi. Mereka berfantasi secara membabi buta tentang cross-platforms, tetapi lupa apa teknologi komputer yang digunakan?
Komputer adalah alat, dan seluruh riwayat pengembangannya hanya untuk melayani pengguna. Teknologi yang hanya membawa pengalaman yang lebih baik bagi pengguna sangat berharga dan dapat mengalahkan teknologi lama. Tidak masuk akal dan bodoh untuk menyematkan masa depan web pada level rendah, tanpa tipik, sulit dikendalikan, javascript kinerja rendah (HTML pada dasarnya digunakan untuk menyajikan konten statis, dan aplikasi web fokus pada dinamika daripada statis) adalah ide yang bodoh. Ketika Jobs dengan bangga mengklaim bahwa semua plug-in adalah "jahat", saya sepakat bahwa filosofinya ("diksi") masuk akal, tetapi ketika ia menghitung kamus ini, ia melupakan "leluhur" -nya. (Aplikasi harus melayani pengguna)
Teknologi tidak dapat menekan kebutuhan pengguna hanya karena dapat menghemat tenaga kerja, dan harus mengkonsumsi lebih banyak sumber daya komputer pengguna yang tidak perlu. Sebaliknya, jika dapat meningkatkan kinerja, menghemat sumber daya, mencapai hasil yang lebih baik, dan meningkatkan pengalaman pengguna, tidak peduli berapa banyak upaya yang diperlukan, itu harus dilakukan.
Bahkan, ada banyak fungsi yang tidak dapat dicapai JS+HTML, dan JS+HTML sangat buruk dalam keamanan. (Siapa yang dapat menjamin keamanan belanja online?) Tidak mungkin menonaktifkan plug-in, tidak hanya di depan Anda, tetapi juga dalam sepuluh tahun. Pikirkan saja perlunya lingkungan web yang lebih kuat dan lebih aman bagi pengguna, Anda tahu bahwa plug-in hanya dapat dibatasi, tetapi mereka tidak dapat dilarang. (Beberapa plug-in yang berantakan benar-benar menjengkelkan, tetapi apakah mereka dilarang makan ikan karena mereka memiliki duri? Selalu bodoh untuk berhenti makan karena tersedak)
Flash adalah plug-in web yang sangat bagus dan kuat, tetapi tidak ideal dalam ekosistem Microsoft, jadi sebenarnya tidak realistis untuk menggunakan flash, bukan silverlight. Entah menyerah pada teknologi Microsoft sepenuhnya atau Silverlight hanyalah.
Bahkan, saya pribadi berpikir bahwa masa depan web harus didasarkan pada mode SOA dari banyak klien. Fungsi diimplementasikan oleh layanan, dan UI diimplementasikan oleh platform yang berbeda menggunakan teknologi yang paling tepat. Tidak masuk akal untuk secara membabi buta mengejar lintas platform. Layar ponsel menentukan bahwa tampilan dan mode operasinya harus berbeda dari komputer.
5. Xaml, Array Binding dan MVVMTopik ini agak buruk, tetapi saya masih harus menyebutkannya. Metode pengembangan baru aplikasi Metro Win8, yang sebenarnya dapat disebut Silverlight6, masih menggunakan XAML, dan menggunakan serupa dengan "kerangka kerja .NET terbatas" seperti Silverlight sebagai kerangka pemrograman. Beberapa program Silverlight bahkan dapat dikompilasi langsung ke dalam aplikasi Win8 tanpa mengubah garis apa pun.
Saya tidak optimis tentang Win8 dan aplikasi Metrol -nya, tapi saya percaya XAML dan MVVM akan bertahan selamanya, WPF tidak akan mati, dan teknologi yang digunakan oleh Silverlight tidak akan mati.
Dalam arti tertentu, bahkan jika Silverlight5 benar -benar versi terakhir, dapat dipertimbangkan bahwa Silverlight baru saja mengubah namanya, dan telah dilahirkan kembali dalam teknologi baru.
6. Sikap MicrosoftMicrosoft menghentikan pengembangan Silverlight, tetapi Microsoft tidak pernah secara eksplisit mengumumkan bahwa Proyek Silverlight akan ditinggalkan. Ini adalah fenomena yang sangat menarik. Peraturan Microsoft saat ini "tidak diperbolehkan menyebutkannya". Jika Microsoft benar -benar bertekad untuk menyerah, mengapa Anda harus membuat "tidak diizinkan untuk menyebutkannya" untuk berpura -pura menjadi burung unta?
Saya pikir Microsoft juga menonton. Mereka menonton apakah plug-in browser benar-benar tidak memiliki prospek. Jika plug-in lain, termasuk flash, perlahan-lahan sekarat di masa depan, maka Microsoft secara alami akan menyerah Silverlight. Sebaliknya, jika plug-in browser terbukti sangat nyaman dan tidak ada tanda-tanda kematian, mereka dapat memulai kembali proyek Silverlight kapan saja dan meluncurkan Silverlight6.
Jadi, saya pikir bahkan jika reinkarnasi dan kelahiran kembali Silverlight tidak dipertimbangkan, bahkan produk Silverlight itu sendiri (dan nama ini) kemungkinan akan dibangkitkan di masa depan.
Oleh karena itu, untuk pengembang web yang hidup di bawah langit Microsoft, memilih Silverlight dapat mencapai fungsi yang lebih kuat lebih cepat dan lebih elegan. Mengapa tidak memilih Silverlight?