I guess you have not developed in Silverlight. HTML is DOM based, I am not building hacked documents that look like apps, I'm building applications, therefore I want to use XAML, have you ever developed in XAML before? React = HACK, Angular = HACK, Vue = Hack.
XAML: The Application-First Approach
Purpose-Built for Applications: XAML (eXtensible Application Markup Language) is a declarative UI language explicitly designed for building applications, particularly in the Microsoft ecosystem (e.g., WPF, UWP, and Silverlight). It emphasizes:
- Separation of Concerns: Clean separation of UI and logic (via MVVM).
- Rich Tooling: Tight integration with tools like Visual Studio and Blend, which provide a first-class development experience.
- Stateful UI: Built to handle rich, stateful desktop-style application needs.
- Strong Typing: Leverages .NET's type system, making it easier to avoid runtime errors.
Application-Centric Philosophy: XAML was designed with the assumption that you're building applications with complex states, user interactions, and reusable components—not trying to retrofit app-like behavior into a document structure.
Web-Based Frameworks (React, Angular, Vue)
You refer to these as "hacks," which suggests a viewpoint that these frameworks are retrofitting application-like behavior onto an inherently document-oriented system, the DOM. Here's why:
HTML Origins:
- HTML was not originally designed for application development; it was created for displaying static documents (hypertext).
- CSS and JavaScript were later bolted on to style and add interactivity, leading to significant limitations in structure and state management.
Frameworks to Bridge the Gap:
- React, Angular, and Vue attempt to make the DOM behave like a stateful, interactive UI framework through a combination of virtual DOMs, reactive programming models, and component hierarchies.
- While powerful, these frameworks are ultimately abstracting the document-oriented foundation of the web.
**Challenges in Tooling and Complexity**:
- Debugging and tooling in these frameworks often feel bolted-on rather than native.
- The need for build tools (Webpack, Vite) and polyfills further highlights the complexity of overcoming the limitations of a document-based system.
React, Angular, Vue as "Hacks"
From your perspective, these frameworks are hacks because:
- They work around the limitations of the DOM to approximate the experience of an application-first system.
- Their state management and component models attempt to mirror features that XAML and other application-first frameworks offer natively.
Comparative Philosophy
XAML: Starts with the premise, "We are building a fully stateful application."
Are Web Frameworks Truly Hacks?
While web frameworks like React and Angular require significant effort to overcome the limitations of the DOM, they:
- Have evolved into powerful tools capable of building highly interactive applications.
- Provide portability across platforms, including browsers and native apps (e.g., React Native).
Still, your argument is valid if you prioritize:
- Native application development experiences.
- Frameworks designed explicitly for stateful applications.
- Development environments where the tooling feels seamless and application-centric.
Silverlight's Legacy
For developers familiar with Silverlight or WPF, the simplicity and elegance of XAML for building applications are hard to beat. However, the web's ubiquity and the push toward browser-based solutions have forced developers to embrace frameworks that are less "clean" in their underlying philosophy.
XAML: The Application-First Approach
Purpose-Built for Applications: XAML (eXtensible Application Markup Language) is a declarative UI language explicitly designed for building applications, particularly in the Microsoft ecosystem (e.g., WPF, UWP, and Silverlight). It emphasizes:
- Separation of Concerns: Clean separation of UI and logic (via MVVM).
- Rich Tooling: Tight integration with tools like Visual Studio and Blend, which provide a first-class development experience.
- Stateful UI: Built to handle rich, stateful desktop-style application needs.
- Strong Typing: Leverages .NET's type system, making it easier to avoid runtime errors.
Application-Centric Philosophy: XAML was designed with the assumption that you're building applications with complex states, user interactions, and reusable components—not trying to retrofit app-like behavior into a document structure.
Web-Based Frameworks (React, Angular, Vue)
You refer to these as "hacks," which suggests a viewpoint that these frameworks are retrofitting application-like behavior onto an inherently document-oriented system, the DOM. Here's why:
HTML Origins:
- HTML was not originally designed for application development; it was created for displaying static documents (hypertext).
- CSS and JavaScript were later bolted on to style and add interactivity, leading to significant limitations in structure and state management.
Frameworks to Bridge the Gap:
- React, Angular, and Vue attempt to make the DOM behave like a stateful, interactive UI framework through a combination of virtual DOMs, reactive programming models, and component hierarchies.
- While powerful, these frameworks are ultimately abstracting the document-oriented foundation of the web.
**Challenges in Tooling and Complexity**:
- Debugging and tooling in these frameworks often feel bolted-on rather than native.
- The need for build tools (Webpack, Vite) and polyfills further highlights the complexity of overcoming the limitations of a document-based system.
React, Angular, Vue as "Hacks"
From your perspective, these frameworks are hacks because:
- They work around the limitations of the DOM to approximate the experience of an application-first system.
- Their state management and component models attempt to mirror features that XAML and other application-first frameworks offer natively.
Comparative Philosophy
XAML: Starts with the premise, "We are building a fully stateful application."
Are Web Frameworks Truly Hacks?
While web frameworks like React and Angular require significant effort to overcome the limitations of the DOM, they:
- Have evolved into powerful tools capable of building highly interactive applications.
- Provide portability across platforms, including browsers and native apps (e.g., React Native).
Still, your argument is valid if you prioritize:
- Native application development experiences.
- Frameworks designed explicitly for stateful applications.
- Development environments where the tooling feels seamless and application-centric.
Silverlight's Legacy
For developers familiar with Silverlight or WPF, the simplicity and elegance of XAML for building applications are hard to beat. However, the web's ubiquity and the push toward browser-based solutions have forced developers to embrace frameworks that are less "clean" in their underlying philosophy.