Browser Environment
The Browser Environment, typically refered to as just a 'browser', is a set of standardized langauges intended to provide facilities to build user interfaces. The backbone of the browser environment is an HTML document which may additional documents such as CSS for customizing the display of the information and JavaScript to enhance the behavior of the elements. Browsers are typically network oriented, communicating over HTTP protocols to retreive remote resources.
There are multiple competing browser implementations, usually focused around the rendering engines which take CSS and DOM as inputs to position allow interaction with content. The most notable engines are Webkit (used for Safari, Chrome, and many mobile devices), Mozilla (Firefox, among many Linux alternative browsers), Opera, and Trident (Internet Explorer and MS post-IE browers). There are many more engines out there, however these have the highest market penetration.
The standards are large with many fine details and are continuly evolving. As with any decently complex standard, there are points open to interpretation, if the rendering engine chooses to honor the standard at all. Since 2010 many browsers have began to converage on the HTML5 features and associate standard such as CSS3 and ECMAscript 5, however there are still many gaps. Large compability matricies including legacy browsers and versions where the implementers chose to deivate from the standard quickly becomes costly. My personal expierence has shown supporting legacy versions of Internet Explorer (prior to 10) can consume as much as 1/3 of the development of an application. This has resulted in a movement among progressive web development groups to only support the most recent two versions of a browser releases within thier compatability matricies.
Alternatives to HTML resources in the browser
Through out hte long history of browsers several other alternatives have surfaced, however no such alternative have received such fan fair as HTML. There are several factors for competing interface descriptions to have failed, including lack of browser support, developer buy-in, and tooling. Several such technologies include VRML (Virtual Reality Markup Language) and XML using XSLT or CSS for visual description of the elements.
Related Technologies
- JavaScript in the browser - JavaScript applied to the browser.
- AngularJS - A browser based MVC-style system utilizing JavaScript and fragments of HTML to build a single page application.
- Polymer - A WebComponent base library and polyfill for building custom web page components.
- React - JavaScript application framework/library (I haven't decided if it meets my qualifications for framework) for build DOM components.
- WebGL - OpenGL ES 2.0 adaption for the browser.