Diagram by Developer Economics
4th Problem: Cross Browser Incompatibility
But during the interim, working in a standards vacuum, browser vendors like Opera, Apple Safari, and Mozilla Foxpro inevitably embarked on unique browser extensions. Cross browser full stack compatibility was a pipedream. One can see the different approaches in the many variations in CSS3 prefixes and HTML5 among the current browser vendors. Even with the adoption of the Webkit engine by Google + Apple then Blackberry and now Opera, the Cross Browser Incompatibility die was already cast.
Already wide variations in HTML5 masks some further differences among browsers. See here, here and here.
Take the following Bootstrap+DHTMLX mobile responsive demo built as a test for a client:
Click here to go to the live demo app
This is a classic Full HTML Stack solution. The Bootstrap framework provides the easy to use mobile responsive capabilities while DHTMLX provides the UI/Widget and backend data interchange features.It works pretty well on the LOCALHOST test environ for the most part with some resizing problems and speed of operation issues. But look what happens when the demo is run on the Web using different browsers:
Running on LOCALHOST Test server, it is all tests go on Chrome 36. But upload to theOpenSourcery.com server, and Chrome suddenly has style changes and iframe problems. Move to IE and the styling and iframe problems are gone; but now mouse-wheel and touchscreen operations don’t work. Ditto for Foxpro and Maxthon browsers. Only Apple Safari and Opera run the app on the Web like it was developed and reviewed on the LOCALHOST server. Want to know hair-pulling Web development exasperation? This is it – typical “browser incompatibility” and “making things run in older versions of IE” which adds silver to your hair and subtracts months from your life-span.
Compared to Microsoft Visual Studio systems, The Oracle Stack and IBM’s Web Development Architecture, Full HTML Stack development looks very attractive if cross OS platform and identical performance across computing devices are your highest priority. However, be advised that cross browser incompatibility will surely arise – so be prepared after getting the app working locally for a new and sometimes non-trivial task of now getting that same app deployed on 5 major browsers successfully on the Web.