
Hello! My name is Sergey Konstantinov, and I am the head of the Yandex.Maps API Development Team.
Today we launched a new version of JavaScript API - 2.0. In general, in this place there should be a reprint of the
post from the Yandex blog , but this time we decided to depart from the tradition :).
Instead of a dry official message, I will try in a warm lamp environment to tell you how and why we did JavaScript API 2.0.
')
I think those of you who are familiar with our API will easily understand that this is not a cosmetic update, but a full release of an almost new product. We completely rewrote the core, expanded the functionality and added a number of new features - more in-depth support for mobile devices, multilingualism, HTTPS, traffic statistics, etc. (see our
promo site ).
But not fichechki and not a new design led us to such work. We launched the first version of the API in November 2008. More than three years have passed since then, and our understanding of for whom and for what we are doing the API has changed somewhat.

We have always imagined our audience in the form of a kind of pyramid: the base of the pyramid is our users; middle layer - business using cartographic API; and the cherry on the cake - the developers.
The first version of the API, we wrote primarily for developers. We thought that we needed to convince developers to choose our technology, because business trusts the decision to choose technology to developers, and users will eventually see exactly the service that the developers have made for them.
As practice has shown, then it was the right decision - our API quickly conquered the market. But as time went on, we began to realize that in practice everything happens a little differently, and there are feedbacks in this system. Perhaps something helped us an example of one company with a fruit logo, which began to produce a product that focuses primarily on the end user; the user chose his product, and the business, seeking to satisfy its users, formed an order for the development of a new platform.
We realized that we are making a product not only for developers, but also for
users . If the user is comfortable and pleasant to use our cards and he will require the use of our cards from our favorite services, then we will be able to consider our task accomplished.
The problem is that we ourselves do not interact with users directly - we do it indirectly, through developers using our API. The task, by and large, broke up into two large blocks:
- make it so easy and pleasant for the user to work with our map;
- to make the developers make convenient and beautiful services on our API.
The field for experiments was the Yandex.Maps service, where the second version of the API has been running since October last year. We very seriously approached the question look & feel of our map and began to customize the behavior of the map for each browser separately. I will not say that it was easy - in the end, we had to write two or three implementations of key interfaces.

(In fact, while I was preparing this text, the picture is outdated - we had to make some changes in connection with the release of new versions of browsers.)
We seriously preoccupied with the size of the plug-in code and isolated several assemblies from the API. Now the kernel weighs only 60 Kb, and is forcibly loaded asynchronously.
Finally, we strongly refreshed the design of standard map elements (toolbars, traffic panels, etc) and labels on the map. But, of course, this is all - only the beginning. We will be constantly engaged in improving the appearance, smoothness and beautiful interfaces.
We turn to the second task - to help developers make good services. We have always tried to promptly answer questions in our club and letters to the support, but with the release of API 2.0 we finally understood that the problems of the developers are, in fact, our problems, and we must do everything to solve them. For example, we completely transferred the entire layout to custom tags (or, more precisely, the custom tag - ymaps), so that third-party css-resets or styles of the CMS theme did not break the design of the cards.
We are trying to provide developers with not only the API, but also tips on how to make your service even slightly better. For example, try using
clustering technology - perhaps your site will become more comfortable and more beautiful :).
In the
presentation to my report at the RIT ++ conference, all of this is described in more detail. But this, in fact, is only the tip of the iceberg - in version 2.0 we implemented many interesting technological solutions - our own touch-framework, a cascade system of options, simultaneous display of several layers in different projections (yes, on our engine you can now easily and easily for example, tiles from OSM) and more. Come April 26 to our
API in Yandex office - we will tell you in detail and show what and how we made a new one in API 2.0.
Well, as a conclusion, I want to briefly formulate why we still made a new API. First, because time does not stand still, - new platforms, technologies and markets appear - and you have to run very fast in order to just stay in place. And secondly, because something has changed in our own perception of what product we are doing and for whom.
Questions about the new API can be asked directly in the comments :)