7 poin oleh GN⁺ 15 hari lalu | Belum ada komentar. | Bagikan ke WhatsApp
  • Hingga akhir 1980-an, pengembangan aplikasi Windows jelas berpusat pada satu model, Win16/Win32 API, tetapi setelah itu selama beberapa dekade terjadi peralihan platform yang tidak konsisten secara berulang
  • Runtuhnya strategi GUI Windows bukan disebabkan kegagalan teknologi tertentu, melainkan tiga penyebab organisasional: politik antar tim, budaya pengumuman yang berpusat pada konferensi pengembang, dan perubahan strategi tanpa pemberitahuan terlebih dahulu
  • Pada 1988, Programming Windows karya Charles Petzold memberikan jawaban yang jelas tentang “bagaimana membuat aplikasi Windows” dengan satu API tunggal, satu mental model tunggal bernama Win32, tetapi selama 30 tahun setelahnya Microsoft tak pernah berhasil memulihkan kejelasan itu
  • Dari MFC, OLE, COM, ActiveX, WPF, Silverlight, WinRT, UWP, WinUI 3, hingga MAUI, puluhan tahun kekacauan framework GUI terus berlanjut, dan pada tiap inisiatif yang gagal, penyebab utamanya lebih terletak pada kegagalan pengambilan keputusan di dalam organisasi ketimbang cacat teknis
  • Saat ini ada lebih dari 17 teknologi GUI yang benar-benar digunakan di Windows, dan di antaranya, Electron—teknologi GUI desktop yang paling luas didistribusikan—dibuat pihak luar, bukan Microsoft
  • Diagnosis kuncinya adalah: “Jika sebuah platform tidak bisa menjawab pertanyaan 'bagaimana saya harus membuat UI' dalam 10 detik, maka platform itu telah mengecewakan pengembangnya”, dan pada 2026 penilaian ini masih tetap berlaku untuk Microsoft

Microsoft setelah hilangnya strategi GUI yang koheren

  • Selama lebih dari 30 tahun, kekacauan strategi GUI Windows terus berlanjut, sehingga tidak ada jawaban yang jelas untuk pertanyaan, “framework apa yang harus dipakai untuk membuat aplikasi desktop Windows baru?”
  • Pada 1988, ada satu model tunggal yaitu Win16/Win32 API, sehingga pengembang dapat menulis aplikasi dengan satu pendekatan yang sama
  • Dalam beberapa dekade berikutnya, Microsoft gagal mempertahankan platform yang konsisten akibat politik internal, pengambilan keputusan yang berpusat pada demo, dan perubahan strategi bisnis
  • Hasilnya, dari Win32 hingga MAUI, 17 teknologi GUI hidup berdampingan, dan para pengembang harus menghadapi kebingungan di dalam platform yang tidak punya strategi
  • Akar masalahnya bukan kegagalan teknis, melainkan kegagalan organisasional

Era Petzold: masa terakhir ketika semuanya jelas

  • Pada 1988, Programming Windows karya Charles Petzold (852 halaman) adalah satu-satunya jawaban otoritatif untuk Win16 API dalam C, dan itulah yang menjadi strategi pengembangan Windows saat itu
  • Win32 kemudian berkembang lebih besar, tetapi tetap mempertahankan satu mental model berupa message loop, window procedure, dan GDI; Petzold menjelaskannya dan para pengembang bisa mempelajarinya lalu langsung memakainya
  • “Satu OS, satu API, satu bahasa, satu buku” — kejelasan ini adalah sinyal bahwa platform tersebut layak dipercaya

Demam object-oriented (1992–2000): awal dari kompleksitas

  • Pada 1992, MFC membungkus Win32 dengan C++, tetapi kemudian OLE, COM, dan ActiveX muncul, dan arsitektur komponen ini menguasai pengembangan Windows secara luas alih-alih menjadi framework GUI yang koheren
  • Alih-alih menawarkan cerita yang konsisten, Microsoft hanya menyediakan primitif teknologi dan membiarkan pengembang merangkainya sendiri; ini terjadi karena budaya pengumuman yang berpusat pada keynote konferensi lebih memprioritaskan kesan bagi eksekutif daripada keberhasilan pengembang

PDC 2003 Longhorn: visi yang menelan dirinya sendiri

  • Longhorn yang diperkenalkan di PDC 2003 menghadirkan visi yang meyakinkan dengan tiga pilar: WinFS (sistem file relasional), Indigo (komunikasi terpadu), Avalon (UI berbasis XAML dengan akselerasi GPU)
  • Pada Januari 2004, memo internal Jim Allchin menyebutnya sebagai “seekor babi”, dan pada Agustus tahun yang sama diumumkan reset pengembangan total — kembali ke basis kode Server 2003
  • Setelah reset, kepemimpinan menetapkan arahan “managed code dilarang di dalam Windows, semua kode baru harus C++”; WPF memang dirilis bersama Vista, tetapi shell itu sendiri tidak memakai WPF
  • Keputusan ini memicu perang saudara organisasi selama 13 tahun antara tim Windows dan tim .NET, yang akhirnya berujung pada WPF menjadi yatim, Silverlight dihentikan, dan UWP gagal

Silverlight: pola yang kemudian terus terulang (2007–2010)

  • WPF dirilis pada akhir 2006, tetapi pada 2007 Silverlight muncul sebagai plugin browser untuk melawan Flash, sehingga investasi pengembangan terpecah
  • Di konferensi MIX 2010, seorang eksekutif Microsoft mengatakan dalam sesi tanya jawab bahwa “Silverlight bukan strategi lintas platform, melainkan strategi Windows Phone” — tim Silverlight sendiri tidak diberi tahu sebelumnya, dan para pengembang yang telah berinvestasi pada aplikasi LOB dengan Silverlight juga baru mengetahuinya lewat sesi Q&A konferensi
  • Akhir Silverlight bukan hasil kegagalan teknis, melainkan pergeseran strategi bisnis, dan pola bahwa pengembang selalu menjadi pihak terakhir yang diberi tahu mulai mengeras pada saat ini

Metro dan perang dua tim (2012)

  • Untuk merespons penjualan iPhone Apple yang mencapai 200 juta unit dan iPad yang mulai menggerus PC, Microsoft meluncurkan Windows 8 dan Metro, tetapi WinRT sengaja dirancang bukan sebagai runtime berbasis .NET melainkan runtime C++ native — hasil langsung dari antipati tim Windows terhadap .NET
  • Di //Build 2012, pengembang secara bersamaan menerima pesan yang saling bertentangan: “masa depan adalah WinRT, HTML+JS adalah warga kelas satu, .NET tetap berjalan, C++ kembali, aplikasi Metro juga bisa dibuat, dan kode WPF lama tetap bisa dijalankan”
  • Pengembang enterprise segera mundur setelah melihat sandboxing UWP, persyaratan distribusi lewat Store, dan tidak adanya banyak API Win32 — “app store tablet itu pada akhirnya tidak pernah terwujud”

Kebingungan UWP dan WinUI (2015–sekarang)

  • UWP (Universal Windows Platform) di Windows 10 membawa visi “tulis sekali, jalankan di mana-mana” untuk PC, ponsel, Xbox, dan HoloLens, tetapi ketika Windows Phone meredup dan aplikasi utama Microsoft sendiri (Office, Visual Studio, shell) tidak memakai UWP, sinyalnya menjadi jelas
  • Jawaban resmi merosot menjadi “it depends”; UWP tetap ada, WPF dipertahankan, XAML Islands muncul, WinUI 3 ditunggu, WinUI 2 hidup berdampingan, Project Reunion dirilis, lalu namanya diganti menjadi Windows App SDK — semua ini makin menambah kebingungan
  • Project Reunion / WinUI 3 memang kemajuan teknis, tetapi keberadaannya sendiri adalah hasil dari masalah organisasional: kontrol UWP terikat pada OS dan tidak dimiliki oleh tim .NET maupun tim alat pengembang
  • Retrospektif seorang pengembang pada 2024: “UAP, UWP, penggantian C++/CX dengan C++/WinRT (tanpa dukungan tool), XAML Islands, XAML Direct, restart Project Reunion, restart WinAppSDK, transisi membingungkan antara WinUI 2.0 dan 3.0… 14 tahun, 14 kali pivot

Kebun binatang tanpa penjaga: daftar teknologi GUI Windows saat ini

Framework native Microsoft:

  • Win32 (1985) — masih dipakai, buku Petzold masih relevan
  • MFC (1992) — mode maintenance, masih tersisa di enterprise dan CAD
  • WinForms (2002) — “bisa dipakai tapi tidak direkomendasikan”, namun masih yang tercepat untuk form input data
  • WPF (2006) — XAML, rendering DirectX, open source, tanpa investasi baru dari Microsoft
  • WinUI 3 / Windows App SDK (2021) — jawaban resmi yang “modern”, tetapi roadmap-nya tidak pasti
  • MAUI (2022) — penerus lintas platform dari Xamarin.Forms, taruhan Microsoft saat ini dari tim .NET

Web hybrid Microsoft:

  • Blazor Hybrid — komponen Razor .NET di dalam WebView native
  • WebView2 — menyematkan Chromium ke aplikasi Win32/WinForms/WPF

Pihak ketiga:

  • Electron — Chromium + Node.js, dipakai VS Code, Slack, Discord, dan saat ini merupakan teknologi GUI desktop yang paling luas didistribusikan di Windows, tetapi tidak terkait dengan Microsoft
  • Flutter (Google), Tauri (berbasis Rust), Qt (C++/Python/JS), React Native for Windows (disponsori Microsoft tetapi berbasis teknologi Facebook)
  • Avalonia — penerus spiritual open source dari WPF, diadopsi oleh pengembang yang tidak menunggu Microsoft seperti JetBrains, GitHub, dan Unity
  • Uno Platform — lebih berdedikasi pada WinUI daripada Microsoft sendiri
  • Delphi/RAD Studio, Java Swing/JavaFX — masih bertahan di pasar vertikal dan enterprise

17 pendekatan, 5 bahasa pemrograman, 3 filosofi rendering — ini bukan “platform”

Diagnosis inti

  • Semua inisiatif GUI yang gagal bermuara pada salah satu dari tiga penyebab: politik antar tim (Windows vs. .NET), taruhan platform terlalu dini yang didorong pengumuman konferensi (Metro, UWP), atau perubahan strategi bisnis tanpa pemberitahuan kepada pengembang lebih dulu (Silverlight)
  • Teknologinya sendiri sering kali bagus — WPF bagus, Silverlight bagus, XAML bagus — kegagalan organisasi pada akhirnya menjadi kegagalan produk
  • Tanpa Plausible Theory of Success yang mencakup seluruh siklus hidup “adopsi-investasi-maintenance-migrasi”, yang ada bukan strategi melainkan sekadar keynote konferensi
  • Charles Petzold merevisi Programming Windows hingga edisi ke-6 demi mengikuti hal-hal baru yang diumumkan Microsoft, tetapi setelah edisi ke-6 yang membahas WinRT (Windows 8), ia berhenti menulis

Belum ada komentar.

Belum ada komentar.