Cựu CTO của Microsoft Jeffrey Snover, người đã làm việc cho Microsoft được 23 năm, gần đây đã xuất bản một bài đăng blog dài. Hệ thống đã phân loại những thay đổi lặp đi lặp lại của Microsoft trong GUI (giao diện người dùng đồ họa) trong vài thập kỷ qua, tiết lộ lý do tại sao hệ sinh thái phát triển Windows trở nên phân mảnh.
Đầu tiên, dòng thời gian được kéo về những năm 1980. API Win16 và Win32 vào thời điểm đó đã cung cấp mô hình phát triển nhất quán cho tất cả các nhà phát triển Windows. Các nhà phát triển chỉ cần học một bộ thứ để bao quát hầu hết các kịch bản ứng dụng Windows.
"Lập trình Windows" do tác giả kỹ thuật Charles Petzold viết dài 852 trang và được coi là kinh thánh về phát triển ứng dụng máy tính để bàn.
Vào những năm 1990, Microsoft đã cố gắng vượt qua những hạn chế của Win32 bằng các công nghệ như MFC, COM, OLE và ActiveX. Snover đã chỉ ra rằng các kiến trúc thành phần này "thâm nhập vào mọi ngóc ngách của quá trình phát triển Windows và tạo ra sự phức tạp về nhận thức chưa từng có".
Tại hội nghị nhà phát triển, phần tường thuật kỹ thuật của Microsoft trở nên rời rạc, trong đó Snover mô tả một cách không khách sáo bài phát biểu quan trọng vào thời điểm đó là "cụm bài phát biểu quan trọngf*ck".
Năm 2003, Microsoft đã trình diễn tầm nhìn kỹ thuật của Windows Longhorn, trong đó Avalon (sau đổi tên thành WPF) dựa trên hệ thống con kết xuất vectơ XAML được tăng tốc GPU và cực kỳ mạnh mẽ về mặt kỹ thuật. Tuy nhiên, vào tháng 8 năm 2004, Microsoft đã thực hiện một thay đổi đột ngột và yêu cầu tất cả các phát triển mới phải sử dụng C++.
Mặc dù WPF được phát hành cùng với Windows Vista nhưng bản thân Windows Shell lại không áp dụng nó. Quyết định này đã gây ra rạn nứt sâu sắc giữa nhóm kỹ thuật Windows và nhóm .NET.
Snover đã chỉ ra rằng những xung đột nội bộ cuối cùng đã dẫn đến việc từ bỏ WPF, cái chết của Silverlight và UWP (Nền tảng Windows phổ quát) đã được định sẵn là sẽ thất bại ngay khi nó ra đời.
Năm 2007, sau khi WPF chứng tỏ được sức mạnh của mình, Microsoft lại chuyển sang Silverlight.
Năm 2010, Microsoft bất ngờ thông báo rằng Silverlight không phù hợp để phát triển đa nền tảng và HTML5 là hướng đi trong tương lai. Silverlight chỉ được sử dụng để phát triển Windows Phone. Một số lượng lớn các nhà phát triển đã đặt cược vào Silverlight đã bị bất ngờ.
Chuyển nhanh đến bản phát hành Windows 8 vào năm 2012, phiên bản này đã giới thiệu thời gian chạy WinRT dựa trên C++ gốc. Sự thù địch của nhóm Windows đối với .NET đã khiến 10 năm đầu tư sau này bị hủy bỏ ngay lập tức. Snover mô tả tình hình hỗn loạn vào thời điểm đó:
"Microsoft đang kể hai câu chuyện cùng một lúc. Nhóm Windows đang làm việc trên WinRT và nhóm .NET vẫn đang phát triển WPF. Các tòa nhà khác nhau, các phó chủ tịch khác nhau, lộ trình khác nhau.
Các nhà phát triển tại //Build What we đã nghe trong 2012: Tương lai là WinRT và HTML+JS là hạng nhất, .NET vẫn có sẵn, C++ đã quay trở lại và bạn nên viết các ứng dụng Metro và mã WPF của bạn sẽ chạy tốt. Đây không phải là chiến lược, đây là The Hunger Games, với sáu nhóm cạnh tranh để thu hút sự chú ý của bạn
Các nhà phát triển doanh nghiệp hãy xem xét sandboxing của UWP, phân phối cửa hàng ứng dụng bắt buộc và thiếu API Win32, quay người và rời đi.”
Snover chỉ ra rằng trong 14 năm qua, Microsoft đã luôn khuyến nghị sử dụng Windows. Khung GUI đã thay đổi 14 lần. Ngày nay, 17 công nghệ GUI cùng tồn tại trên nền tảng Windows, bao gồm 5 ngôn ngữ lập trình:
Microsoft framework gốc:Win32 (1985), MFC (1992), WinForms (2002), WPF (2006), WinUI 3 (2021), MAUI (2022)
Giải pháp kết hợp Web của Microsoft: Blazor Hybrid, WebView2
Giải pháp của bên thứ ba: Electron (VS Code, Slack và Discord đều được sử dụng, Snover đặc biệt chỉ ra rằng đây hiện là công nghệ GUI dành cho máy tính để bàn được triển khai rộng rãi nhất trên Windows và Microsoft không liên quan gì đến nó) , Flutter (Google), Tauri, Qt, React Native cho Windows, Avalonia (được sử dụng bởi JetBrains, GitHub, Unity, Snover đã châm biếm những nhà phát triển này là "không còn chờ đợi Microsoft nữa"), Uno Platform, Delphi, Java Swing/JavaFX
Snover đã sử dụng từ tự tạo "boof-a-rama" để mô tả tình hình hiện tại là những người thông minh đang làm những điều ngu ngốc. Ông nhấn mạnh rằng bản thân các công nghệ do Microsoft giới thiệu thường không tệ. Điều thực sự giết chết họ không phải là sai sót kỹ thuật mà là chính trị nội bộ, những thông báo sớm về những thay đổi tại hội nghị nhà phát triển và các chiến lược kinh doanh khó hiểu.
"Lập trình Windows" của Petzold đã không được cập nhật kể từ phiên bản thứ sáu vào năm 2012 (bao gồm Windows 8/WinRT), đây có lẽ là chú thích cuối trang hay nhất cho sự phân mảnh không thể đoán trước này.
Snover gia nhập Microsoft vào năm 1989 và liên tiếp giữ chức vụ Kiến trúc sư đối tác, Kỹ sư xuất sắc (2009), Thành viên kỹ thuật và Kiến trúc sư trưởng (2015) và CTO (2019). Ông rời đi để gia nhập Google vào năm 2022 và chính thức nghỉ hưu vào năm 2025. Với sự hiểu biết của ông về mô hình hoạt động nội bộ của Microsoft, độ tin cậy của bài đăng trên blog này là điều hiển nhiên.
