For quite a while now, I want to streamline my thoughts about the development of browsers, standards, technologies, prospects, and therefore decided to present them in the form of an article. Any innovations and revelations will not be here, but there is enough reason to think.
I have been involved in client development for 8 years and during this time browsers have made a giant leap forward. First of all, there are a lot of them. At the moment, the developer's zoo has 10 (!) Main browsers - IE6 / 7/8/9, Fx 3.6 / 4/5, Opera, Chrome, Safari plus mobile and specific. Fortunately, a veteran of IE6 will soon die completely, and IE7 is already losing ground. Firefox has changed its approach to versioning after Chrome and we hope that soon we will work only with the latest release, without looking at the numbers. Opera, too, has matured and is moving toward auto-update.
Why, in the first place, did I speak about browsers, and not standards? Because companies are browser developers and are the main developers and evangelists of modern web development standards. All of them are active members of the W3C and help develop standards and implement them, often without waiting for specification approval. This creates a jumble of redundant syntax with vendor prefixes, but this is a temporary phenomenon.
')
The implementation of standards in browsers is like an arms race. Who is faster, who is stronger, who is bigger and more. In fact, we, the developers only benefit from this. But as always and in everything, excesses sometimes occur. When you see a link to one or another showcase with oops and ahs, you go to the page, and it says “Best viewed at latest Chrome” - you immediately remember about the times of IE6 and start to feel nauseous. Standards are excellent, promotion of standards is even better, but not in the same way.
At a certain point, the developer is lost in what and who support and no longer fully understands how to write code that will work correctly in all major browsers that are present in the application. Here come to the aid of various emulators, libs and scripts "include" support for a particular property or functionality in the "lagging" browsers.
Sometimes this is an absolutely irreplaceable thing that saves you from red eyes, many hours of scribbling of code and threats of reprisals from managers, and sometimes leads you to the wilds and crawls sideways from a completely unexpected direction. For example, I’ll say that this is
CSS3PIE , which emulates
CSS3 properties such as
border-radius
,
box-shadow
, RGBA and gradient support in the
background
for IE6-8. For simple static pages and pages with a small number of elements, everything works wonderfully and the developers are delighted, but you should apply PIE to the elements involved in the animation or generated using Javascript, and begin dancing with a tambourine.
But this refers to the things used as is.
Modernizr for example, uses a different approach. Initially, you check whether the browser supports a particular standard, and depending on this, you decide what to give out to it. At the exit, in any case, you will need to either fill in the missing functionality with the help of JavaScript, or use redundant code and images. In this and in another case, you pay for it with performance.
What do we have in the end? Some browsers get a beautiful, semantic code and all the buns, and some browsers shut up and load the processor, or eat traffic. For everything, as you know, you have to pay, but I propose to think for what exactly and whether it is worth paying. The good old and proven solutions have not been canceled.
By the way, if you remember all sorts of beautiful, such as rounded corners, shadows and gradients, then it is worth noting that browser manufacturers primarily implemented them, partly due to the fact that their implementation was not too complicated and partly due to marketing. The implementation of a new box-model, in return for a frankly outdated existing one, is still lagging behind. Also such parts of standards as local storage, indexed database api, page visibility, Cross-Origin Resource Sharing and many others that are really important for developers, but not Eye Candy, are lagging behind. which resembles the well-known phrase that people demand bread and circuses. The main thing that was beautiful.
In connection with the previous passage about clarity and whistles, fakes, I would like to mention the purpose. Out of nowhere, like mushrooms after rain, various games made on HTML5 and CSS3 began to appear. Their developers are very proud of their creations and can be understood. After all, they are so tormented to make an application using technologies that are not intended for this. But why? HTML was and still is a hypertext markup language, although it has expanded and evolved according to reality.
Finally. Dear developers, remember that standards and technologies are only tools that can not necessarily be used for good. And our job is to create good and working interfaces that other people will use and it’s not at all necessary that our users will be geeks and accept our reservations. Use technology and approaches wisely, not forgetting the main goal. Think, think, think.