Nicholas C. zakas Vs John resig a brilliant debate on yui3/jquery

Source: Internet
Author: User
Tags mootools

Address: http://ued.taobao.com/blog/2010/11/06/yui3-vs-jquery/

Translator's note: we often see various comparisons between different JavaScript libraries/frameworks. However, this direct conversation between yui3 architects and the father of jquery is very rare, and it is also a sudden burst of excitement, which is really hard to help, the translation is intended to inspire readers and inspire those who are interested in developing "libraries/frameworks.

The father of jquery replied, "how can yui3 improve its influence ?"

Original article: http://www.quora.com/How-could-YUI3-improve-its-image-compared-to-jQuery-MooTools-etc/

Question: How can yui3 improve its influence compared with jquery and mootools?
Author: John resin (father of jquery)
Translator: peakchi

Yui3 Already exceeded Yui2, and Jquery After all, how can yui3 improve its influence? Some of the answers to this question seem to be out of the box. The question is "How to Improve Yui's influence" (a good question). However, most of the answers are attacking jquery.

I will answer this question in two ways: 1. How should Yui be improved so that more people can use it? 2. How can Yui be improved to improve jquery's competitiveness.

I have to admit that, compared with other JS libraries, Yui is indeed very good, whether it isCodeExcellent job, a large number of excellent documents, demos, blog articles, video tutorials, and so on. Other JS libraries are not very careful about these aspects, and I think these contents are the most important part of a successful open-source project. However, Yui has not successfully occupied the market, I have been puzzled about this.

Here, for your understanding, I will make a few assumptions: 1. The current yui3 version is "Excellent enough", 2. the Yui documentation and Forum are also well-developed, it is enough to attract more users to use yui3.

Based on this, I will make some brief comments:

1. Scattered domain names should be merged into one. As others have pointed out, maintaining too many sites is often counterproductive and thankless.

2. The multi-code library should be merged into a code library. It is good that people are still using yui2. The APIs of yui3 are quite different from those of yui2, in the future, Yui will only succeed on yui3 (the Yui team stubbornly maintains yui2 and won't help Yui "more successful)

3. There are too many Yui introduction methods, so we should reduce them to one. People should get started with Yui (). Use (assuming these people really want to use Yui in depth ). Only one key point is retained on the homepage: Yui should be introduced in this way. <SCRIPT src = "http://yuilibrary.com/yui-min.js”> </SCRIPT> is much clearer.

Simply put, the Yui project should retain an overall direction. If the focus is too scattered, it will be counterproductive.

Today, if Yui is directly competing with jquery, both Yui and its subitem operations need to be adjusted. Because the current Yui project operation mode and Yahoo The method of work is the opposite. Yui project is an unfortunate victim to the poor operability of current management methods.

Originally, we should use Simpleyui To start our YuiProgram. Let's take a look at jquery. Its API is simple and practical. Many people aim at these fascinating features to build most websites. Therefore, when we access During yuilibrary.com, there should be only one way to use Yui, that is, simpleyui (this name should be changed to a more concise and natural name ).

In fact, the Yui website should not provide ZIP files. I even don't think that you should download the Yui file in a customized way. The official jquery website only provides a separate jquery file, which is used by all users, including mobile users. This is too simple, and the document is very simple. blog articles are also simple. Everyone can easily participate in jquery discussions without any difficulty.

Yui (). Use sandbox and asynchronous Script Loading Method are very handsome. I highly recommend this method. I would rather press all my code segments into a compact "simpleyui" and load scripts from Yui CDN as needed.

I especially want to refactor the official Yui website so that people can quickly find the components they want, including thoseCommunityProvided components. I will re-customize the home page so that visitors can see simpleyui at a glance, and then select some cool components from the Yui component library under the home page, and direct the user to access Yui Gallery (or not called Yui gallery. Yui gallery sounds more like a plug-in library designed for Yui ).

Therefore, we can see that the Yui project still has many structural problems.

All along, Yui projects have a large full-time and paid development team. This is a unique advantage of Yui, which makes other JavaScript library projects very coveted. I would like to say that this is really true. It is because of this that Yui has benefited a lot as a whole. But it also has some serious consequences. The fate of Yui is in the hands of Yahoo. This is not what we want to see. Because Yui is independent and open-source, Yui should be isolated from Yahoo.

As far as I know, there is no non-Yahoo Yui community. Many non-Yahoo developers have contributed a lot of good code to Yui, but they do not have the permission to submit, which is a serious problem. On the other hand, jquery's success has benefited a lot from the feedback and help of developers, and we have gained a lot of nourishment from the community. Now, let's take a look at our code library and code contribution model.

Migrate code GitHub This is the first beautiful step (because there is no version control, the project will die sooner or later). However, the way people contribute code is scattered and scattered, obviously, git is our best choice as an open and flexible open-source version control tool (compared to Yahoo's well-regulated version release ). On yuilibrary.com, it is almost impossible to initiate a pull request-like operation because it has its own code Submission mechanism and is very prone to conflicts. We need git to break into the developer's habits of coding and embrace git so that you can use it with ease.

Today, the biggest problem in the Yui community is that "Yui has been formed", or Yahoo is contributing code to Yui. A truly open-source project should have a complete community ecosystem, only when Yahoo stops supporting Yui can community developers build a Yui development environment with peace of mind and contribute code to Yui. If this problem persists, the bottleneck cannot be eliminated. We should make a quick effort to solve the problem, fix the root cause of the Yui problem from the underlying structure.

We need to establish a non-profit organization with Yui 100% copyright and allow unofficial developers to take charge of project operations, this has an extraordinary significance for the development of Yui and the improvement of its vitality in the community.

If you want to provide the ultimate improvement plan, I think these two points should be:

1. Simplicity is beautiful. It simplifies your code, your site, your documents, and your library files. A more concise code can be read and used by more people.

2. the open-source community is the key to the sustainable development of Yui. It will bring more feedback and enthusiastic developers. The influence of Yui has a subtle influence on everyone in the open-source community, yahoo should not be its only maintainer, but should come from a broader open-source community.

In addition, I have noticed that many of the replies here are pessimistic. Don't forget that jquery's popularity has just begun, jquery and Yui are available almost at the same time (they released the official version in January and February respectively). jquery has maintained its simplicity and ease of use, therefore, the number of developers is far higher than that of other JS frameworks. In fact, simplicity is more challenging than complexity, which has always been a problem that Yui cannot understand, but should be reflected on.

Zakas response

Original article: http://www.nczonline.net/blog/2010/11/03/response-to-john-resigs-comments-about-yui/

Question: Responding to John resig's comment on Yui
Author: Nicholas C. zakas (yui3 architect)
Translator: peakchi

This morning, someone was Quora [NOTE 1] I raised a question: "How can yui3 improve its influence ?", This question is very interesting, and the reply below is also very interesting. One of my most interesting replies is from John resig, the author of jquery. His interpretation is very unique and provides a roadmap for creating a huge and dynamic open-source community of jquery. I just disagree with many of them.

Before the discussion, it should be noted that I work in Yahoo and I have always contributed code to Yui, although I am not a member of the Yui Development Team, therefore, my opinion does not represent Yahoo and Yui development teams. I just personally reply to John resig to share my views. Furthermore, I respect John himself, the jquery team, and the jquery community developers very much. Therefore, please do not take my point of view out of context and give a special understanding.

First of all, I admit that scattered sites are indeed a problem of Yui. More than one person has struggled to access Ydn Or access yuilibrary.com? This is the first problem that Yui must solve. Similarly, John's advice on simplifying the boot information on the home page of the Yui document is also quite good, which is a good idea.

John's next section describes how Yui is competing with jquery. Twitter I had a brief comment: "I don't think there is a race between them." I don't want to turn Yui into another jquery. Both libraries have their own advantages, and the coincidence degree is extremely small. Jquery is more suitable for small websites. After all, it is very simple and accessible to the public and everyone. Therefore, jquery has a large set of designers, but I don't want to use jquery to build the Yahoo homepage. For scalable Web applications, Yui is indeed better. I don't believe that a single product can satisfy the diversified needs of all users. Jquery is indeed imaginative in its focus, and I would rather focus on solving complex web applications.

My comments on John disagree with the following:

"Yui projects have always had a large full-time, paid development team. This is a unique advantage of Yui, which makes other JavaScript library projects very coveted. I would like to say that this is really true. It is because of this that Yui has benefited a lot as a whole. But it also has some serious consequences. The fate of Yui is in the hands of Yahoo. This is not what we want to see. Because Yui is independent and open-source, Yui should be isolated from Yahoo ."

I have heard of this kind of point of view, which I have never understood and disagree with. Open-source communities seem to have always circulated such a point of view, believing that there is only "Pure autonomy ", rather than relying on a company's project, it is truly "Open Source ". Let me extract my previous chat record:

XX: I like Yui very much, but the annoying "Y" makes me very uncomfortable.
I said: What makes you uncomfortable? Who are full-time engineers holding Yahoo? Or are you not familiar with Yui testing on Yahoo, which has one of the world's most visited websites?

In my opinion, Yui is so valuable thanks to Yahoo. The Yui development team and other yahoo R & D teams fought side by side. This experience has created today's indestructible Yui products. Not long ago, I just joined Yui team engineers to apply yui3 to the Yahoo homepage. How many JS libraries do you dare to say you have the opportunity to test on top 5 websites around the world? How many JS libraries dare to say that they can continuously obtain test data from the most popular websites in the world. These websites have more than visits each day?

Yui is stripped out of Yahoo to truly deprive it of its strategic advantages. When Yui focuses on these high-end projects and some private projects, it cannot take into account those open-source communities at the same time. In yahoo, we can work with the Yui team to break the balance, and all Yui users also benefit from this. The hard work of all Yahoo engineers gathered here to inject energy into Yui over time.

some people say that Yahoo should not" manipulate "the fate of Yui. I cannot agree with this argument. Similarly, Yahoo makes Yui flash. Any open-source project has a core development team. In addition to maintaining the project source code, they are responsible for cultivating developers and providing them with a learning roadmap. Yahoo pays salaries for Yui developers, which cannot change the nature of the project. We can look at Mozilla, whose core R & D team controls the release of Firefox, mozilla pays them salaries, not how bad their products should be. Their product Firefox is the second largest browser in the world, and it is these dedicated engineers who are enthusiastic about this product. They are indeed eager to create the best product. This is easy to implement when your job is supporting this project. Who said big companies cannot support open-source projects? The formation of the open-source community ecosystem is ultimately determined by the spirit of communication, collaboration and constant transcendence, rather than the so-called "non-profit ".

Looking back at Yui, The Yui development team has been developing third-party component libraries with great care. This is a good option, which cannot avoid growing troubles. Today, Yui has achieved remarkable results. Of course, Yui has not received much attention as jquery, But Yui has been working hard. Last year Yui Annual Meeting [NOTE 2], Matt Snider (formerly working at Mint.com) introduced a fairly complete yui2-based component library developed by him. I think this is really great, because his behavior conveys a signal that anyone who has his own ideas can move closer to the Yui development team and get the absolute support of the Yui team, and package your components into Yui. Matt has made a lot of work for his Component Library and hopes that Yui can find more developers like him who are willing to spend time contributing high-quality code to Yui. Similarly, Yui gallery is also a pretty good thing: it opens a door for developers and developers can easily publish their components to the gallery list, they can also be pushed to Yahoo's CDN [NOTE 3]. So far, gallery has 227 components, which has benefited non-Yahoo developers.

So can Yui improve the form of the Community and contribute the code pattern? Of course. Does Yui have to disconnect from Yahoo to start these improvements? No. yui3 is a high-quality product with strong vitality in the ever-expanding open-source community. If you want to blame the Yui team for being incompetent, they ignore the importance of marketing and lack of effective promotion methods. These two aspects are the strengths of jquery, which is also the place where Yui needs to learn from jquery.

In short, yui is not jquery, and any attempt to convert Yui into jquery is wrong. Does that mean that the two of them are square brackets and cannot be used in water or fire? No. jquery has the largest developer group in the world. No open-source project dares to say that you don't want a developer group like jquery. Yui is also one of them, But Yui does not need to become a global developer like jquery, and it is not necessary to open Yahoo!. jquery is just a case study, it gives us a reference sample of how to operate open-source communities. As I often say to my colleagues, there is not only one solution to the problem, the real challenge lies in choosing appropriate policies rather than copying them to solve problems in specific scenarios. If we really follow jquery's step by step, for Yui, this will be a serious decision-making error. After all, they have different approaches and each has its own advantages, each has a specific developer group. Yui will stick to its own path, although it is inseparable from the purple soil that breeds it. However, I believe Yui can do this.

Note 1 : quora.com is a Q & A-based SNS with active user groups, the biggest difference between it and the previous Q & A website is that auora is based on the real name system.
Note 2 : yuiconf is short for the Yui Developer Conference, once a year. It will be held in July November 8 this year. You can get more information through yuiblog.
Note 3 : I believe zakas's original intention is good, but in my personal experience, publishing components to gallery is really easy, but pushing them to Yahoo CDN is a bit difficult, and the procedure is a little complicated

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.