вторник, 3 сентября 2013 г.

Дэйв Мэтвин: jQuery создают личности

Я уже писал о предстоящей конференции #jQueryRussia, которую организует ITmozg. И вот в предверии конференции организаторы взяли интервью у Дэйва Мэтвина - президента jQuery Foundation.



Оригинал стенограммы на английском я хочу вам представить сегодня, перевод на русский ищите на Хабре.

1) Which jQuery trends do you consider to be the most interesting?

jQuery is now being used in many places beyond the web page. People are using it in Chrome and Firefox add-ons, PhoneGap applications, and Windows 8 Metro apps for example. People are even using jQuery on the server through node.js. One of the reasons we felt it was important to release jQuery 2.0 was to support these environments that use HTML, CSS and JavaScript but are not traditional web pages viewed in a browser.

2) jQuery 2.0 has lost its compatibility with IE versions earlier than 9. What are the advantages of jQuery 2.0, and is jQuery 1.x still OK for usage?

jQuery 2.0 is smaller since we were able to remove the code necessary for older IE versions. This makes it faster to load, and also speeds up the performance of several operations that now don't need to check for those old IE special cases. We know there is a lot of old IE out there on the open web, so the team will continue to support the 1.x line and keep it in sync with 2.x as well as we can. In fact, we recommend that people continue using jQuery 1.x for public web sites where there is any chance of IE8 or older being encountered.

3) What do you think about Web Components and native template tools?

The jQuery team is excited about Web Components and is working with the W3C groups to help define that standard. We are also working with the Polymer project to bring new features like Pointer Events into older browsers via a shim. We want to ensure that jQuery developers can easily work with both new and existing models, especially as browsers evolve at different rates and do not have the same sets of capabilities.

4) What’s your opinion on development and introduction of ES6 standard? Is it going to be a new language that will be difficult to get used to, or most browsers will easily switch to it?

ES6 has some great new features, but it is likely to be several years before any developers can use it on the open web because the installed base changes slowly. As an example, about half of all Android devices are still running version 2.3 or older! In projects where the installed base is not a problem, for example node.js or perhaps an internal company app, a developer might be able to use ES6 sooner. But jQuery can't take advantage of ES6 internally until the installed base supports ES6. Or perhaps we should create jQuery 3.0. :-)

5) At jQuery Conferences you discuss not only technical issues of the library itself. What Front-end development trends could you recommend to keep an eye on?

The ideas of Responsive Design and Progressive Enhancement have been around for a while, but they are trends that front-end developers should follow if they have not kept up. In the USA the Boston Globe site (bostonglobe.com) is a great example of how to use those concepts to create a single flexible design that works well on all types of devices.

6) In the modern development world there is a lot of relatively new frameworks – such as Angular and Ember. Where do you see jQuery fitting in this system?

jQuery is a foundational component for both the Angular and Ember frameworks. Angular provides a "jQuery light" alternative but developers can (and many do) use full jQuery and jQuery UI with it. Developers should also remember that any of these frameworks, even ones as simple as Backbone, are totally dependent on Javascript building the page. That may cause problems with Responsive Design or for search engines finding the content.

7) jQuery started its way in 2006. Long time has passed, and community expectations should have changed as well. What do people using the library tend asking for?

When jQuery was first announced, all web developers were familiar with the details of browser differences and the behavior of JavaScript. jQuery was important to them because it eliminated browser differences and made it easier to write web pages, but they also understood what it was doing. Today, many developers have only written web pages using jQuery and are not familiar with browser or JavaScript in general. For example, it is not unusual to have people ask about "adding two numbers in jQuery" when that is not jQuery's job.

jQuery started out adding functionality that some users might find to be useful, but that led to complex and confusing APIs plus a large amount of code inside the libraries that few people really needed. In response, both jQuery and jQuery UI have set a goal to provide just the essential functionality and allow uncommon needs to be fulfilled by simple extensions and plugins outside the library. The API cleanups that began with jQuery 1.8 and jQuery UI 1.9 were part of that process.

We believe that the jQuery Core API is relatively complete at this point. Nearly everything that users ask to be added to jQuery Core today can be implemented as a plugin, or with a small amount of code in the user's own page. That lets people add the features they want without burdening every user with a size and performance penalty.

8) How are all the requests from the community processed? How do you sort tickets and determine their priority?

Each jQuery project has an issue tracker where we accept bug reports and feature requests. The jQuery Core tracker is at http://bugs.jquery.com but that page also has a directory at the top that can point you to the separate bug trackers for jQuery UI, Mobile, and other related projects.

We try to evaluate each new ticket within a few days of when it arrives. The priority depends on the severity of the problem, whether it is a regression from previous behavior, and the likelihood that jQuery users will encounter it. Simple bug fixes usually are made in the next patch release.

9) For Dave: When you stepped into jQuery development, the library was a rather young project. What caught your interest that time and why did you start investing your time and efforts into that?

My original interest in jQuery was not even for web pages. I was writing a Windows application that used Microsoft's WebBrowser control to render HTML inside a window, so that the app could be delivered over the Internet. Writing the JavaScript for that app was very tedious until I found jQuery to make it easier. It really made the code a lot faster to write and easier to maintain.

jQuery's creator, John Resig, deserves much of the credit for being so welcoming to both people and ideas. Based on my experience with the app, I sent John an email suggesting some improvements shortly after jQuery was announced in early 2006. John responded enthusiastically, adding me to a mailing list of jQuery users discussing what should be done with the library. I became active on the bug tracker and eventually a full member of the team.

10) For Dave: You started as a member of a development team. Now you are Core Team Lead. What influence does it have on your view of the project?

One of the things I really like about the jQuery team is that the entire team participates on all aspects of the project. That includes bug triage, reviews of pull requests, writing patches, and deciding on what happens with the next release. That is again something that John Resig put in place when he managed the project, and I have tried to continue that tradition. It's like managing a herd of very smart cats. Everyone is smart enough to know what they need to do without a lot of direction.

11) Can you name the main things in the team that develops the product for millions of people. What qualities are vital for developers of such project?

The people who develop jQuery need to know all about problems with browsers. These are the same problems that jQuery tries to fix for its users, so it's not always the case that a good jQuery user is a good jQuery team member. Our team needs to be good at solving problems and making sure that they don't take a toll on overall performance or file size. We also value communication, since the team is spread across the globe.

Most of all, we realize we're responsible for a library that is used by more than 60 percent of the top 10,000 sites in the Internet. When we break something in a new release it can affect thousands of web sites. Sometimes people are upset when we say we won't fix what they think is a bug. But one man's bug is another man's feature. Requests to make changes in the behavior of the library can have far-reaching effects and can be hard to assess before a release happens.

12) jQuery Conference has travelled to many countries already. It’s the first time it comes to Russia. Are there any expectations from the Russian developers community?

Our experience with the developers in Russia has already been very positive. We have a Russian team member! Oleg Gaidarenko became an official team member this year but has been contributing to jQuery for several years before that. Oleg works as a front-end developer at Yandex so he is very familiar with the problems jQuery needs to solve. We hope that others in the Russian community will join us.