There are a lot of excellent people in the front-end field in China. Why do no one make excellent frameworks such as angularjs and jQuery? -

Source: Internet
Author: User
I personally think this circle looks like a lot of great gods, but where are the real things? I also saw a "Daniel commented that jQuery is a stool, and everyone is using a stool. I personally have a hard time understanding this kind of thinking, and I want to solve this problem. Why is it really awesome that I didn't make anything popular like angularjs. I personally think this circle looks like a lot of great gods, but where are the real things? I also saw a "Daniel" rating that jQuery is stool, and everyone is using stool. I personally have a hard time understanding this kind of thinking, and I want to solve this problem. Why is it really awesome that I didn't make anything popular like angularjs. Reply: The most important thing about a framework is not the technical implementation of multi-nb, but whether the framework represents an advanced development concept (in its age.

For example, when most developers complain about browser compatibility and poorly designed native DOM APIs, the emergence of jQuery naturally looks brilliant. In those days, we didn't write the front-end as an application, and the nice DOM operation was enough. JQuery's concise syntax, gorgeous chained API, and a variety of compatibility issues at the same time, can it survive?

Slowly, we found that the front-end should be used for applications, and there was not enough fancy DOM operations, so we had to have an application structure. So the emergence of Backbone introduced the MVX concept to the front-end, so that you can find that the front-end can also have an architecture.

Next, we found that the view layer of Backbone still needs to manually listen for model changes for various DOM operations, and the data-to-view ing is still cumbersome. As a result, we began to advocate MVVM data binding. (In fact, Knockout has been around the same time as Backbone, but its implementation is not as concise and understandable as Backbone, so it is not as popular as Backbone.

I have to admit that, even if we look at the world, the concept of front-end development is basically a follow-up State compared to other areas of software development. For example, function programming has recently had a huge impact on front-end development-the first thing to do is React, which uses idempotent rendering functions as the core concept. Because of the functional logic of React itself, it is easy to introduce other functional concepts as a rendering layer, so we can see that the foreign front-ends are studying immutability, FRP, uni-directional data flow, stateless stores, isomorphic application, and so on.

If you are writing a new framework based on a popular concept, even if the implementation is good, it is just a wheel. Of course, there will still be many people who will use the best wheel of a similar idea, but it is only a wheel of improvement after all. You will not regard you as an epoch-making thing. Only when you implement a concept that has never been used in this field can you achieve the position of jQuery, Backbone, Angular, and React milestone frameworks. (By The Way, Meteor can be regarded as a milestone in front-end data communication, and Relay may be the next one)

So in the end, whether or not we can make things popular is partly an eye view and partly a trend. First, we can only expand our horizons beyond the boundaries of the current field to develop things in this field. At present, the front-end field in China is basically in a situation that follows the foreign front-end field (just like the foreign front-end field follows the entire software development field), which is far from an eye-catching position, how can we expect to make epoch-making things?

Another part of the current trend is whether your philosophy conforms to the general needs of the industry. Too advanced or too backward.

It must be noted that vision and engineering strength are two things. As far as engineering strength is concerned, I believe that domestic engineers are no worse than foreign engineers, and the gap is on the horizon. First, as he said, English proficiency is an obstacle that limits the overall vision. Second, the percentage of foreign front-end engineers trained by Orthodox CS theory is estimated to be much higher than that in China. Finally, domestic companies have serious overtime work, and it is good to complete their work tasks, where they have the strength to open source (unless they turn open source into KPIs ). So it is a big environmental problem. Another reason is that if English is good enough, It turns over the walls. You know. I have repeatedly said that success is an accident, and it is normal that no one cares about it.

GitHub has millions of repo. It is said that more than half of the repo is a 0-note project that nobody cares about since its first release. There are not several fork projects in 90%. A few projects are said to be tens of thousands.

JQuery and Angular are among the most popular in the world.

If you don't have to look up and put your head down, you can still see some, such as Baidu's echarts (you can see the number of stars, fork, and issue, the number of PR is high, indicating that this project is highly active ). I also take an example for my main project: @ sofish/pen · GitHub , There are more than 3000 stars on github.


There are many reasons why the most popular frameworks/libraries are not in China. For example, English proficiency (do not underestimate the influence of this ). Is there a gap between domestic and foreign Internet companies in the frontend field? -He Shijun's answer


PS. I don't agree that jQuery is stool. However, when you listen to what others say, you need to consider the context, or you may just use a slightly intense rhetoric when the speaker wants to express his point of view. It does not mean that his point of view is wrong, there is no value.

---- The following content is irrelevant to the topic ----
JQuery is the most successful front-end framework/Library in history, but needless to say, the first early jQuery code is very frustrating (so many old front-end experts cannot look at it ), second, jQuery is outdated. (today, people who really understand the future trend of the front-end will not tell you how jQuery works well ).

Of course, this does not cover up the brilliance of jQuery.

I think there are two kinds of errors about jQuery. One is that jQuery's success is purely accidental, or that jQuery is just a little bit satisfied. The other is to think that jQuery is good and that all other frameworks/libraries are unnecessary.

The reasons for these two errors are the same, that is, they do not understand exactly what jQuery is. If you do not understand this, you will not understand why the jQuery era has passed (although we will continue to use it for a long time ).

I will write down this topic if I have time. To make the framework popular, you only need to do one thing: solve the current problems of most people.

Some frameworks are technically powerful, but they do not solve the problems of most people. Some Frameworks Solve the Problems of most people in the past. For example, many people say they can write jQuery, but who needs it now? There are also some frameworks to solve the future problems of most people. For example, I wrote Async equivalent to Promise in 2009, and @ Zhao Yu wrote Wind equivalent to async generator. js, but this is worthless when callback hell is not a problem for most people. There are also some frameworks that can solve the problem clearly, but they are high and unwilling to help the white-haired users. In the words of John Resig, the author of jQuery, if a technology community in which old people call New People RTFM, the technology will be finished in two years.

All in all, writing a framework requires special training. This is not something that can be done by professional knowledge in any field.


Jquery can be developed without your front-end skills.

It's not your skill in C ++ that you can invent stl yourself.

You don't know how to write a build system when you make a lot.

Many friends say that programmers in China are impetuous. I totally disagree with this.
First of all, it is not suitable for you to compare jQuery. This is just like why you do not create a new J2EE.
Secondly, do you think that the awesome open-source projects are a group of volunteers? Apparently not. The well-known open-source front-end projects are all from well-known companies, Angular and React, including bootstrap, which is more ui-oriented. Let's see who the company is. They are all well-known companies. This is an industry phenomenon.
Including celebrities in many open-source communities, which are supported by companies, such as Linux, webkit, webrtc, crosswalk, and openstack... Many foreign companies have open-source projects (Intel has ssg otc) dedicated to open-source projects to improve the industry's right to speak.
Therefore, it is not an impetuous front-end engineer in China, nor a question about the level of engineers in China, but a question about the big environment of domestic companies. At present, improving the right to speak in open-source communities is clearly not what domestic it companies are doing now, although there are some small open-source projects, they are not dedicated to setting up an open-source department. The domestic environment has created a large number of pseudo-experts. They can only use others' code and start to criticize them when they are familiar with it to show that they are awesome, those who are better than this will refer to other people's code to build their own wheels, claiming that their wheels are stronger than jQuery, angular cloud clouds, in fact, the level gap is still relatively large. In general, our current strength can only be followed, but cannot be pioneered. In addition, the domestic environment allows a large number of pseudo experts to run rampant, you can't claim that you are an expert for several years. You are embarrassed to communicate with colleagues. On the surface, it looks like a lazy copy.
In fact, jquery and others are the results of actual projects and needs + excellent programmers + high-quality communities.
First, water is required.
Some "Daniel" cannot tell clearly, "I will make a huge difference between" vs "I will make a good thing with the technology I have mastered. The cool Chinese coders cannot do anything (or make it public), not the front-end framework, but AngularJS and jQuery? How many mainstream open-source frameworks, libraries, platforms, and development tools are currently used by Chinese programmers? Almost all of them are used. This gap in software engineering is not one to two years, but eight to ten years, or even longer.

This is a market phenomenon and a cultural phenomenon.

There are many reasons for this phenomenon. I will analyze several main reasons:

1. Poor software engineering education and impetuous environment lead to a lack of a large number of excellent, experienced, and creative professional software designers

The development of excellent frameworks such as AngularJS, jQuery, Spring, Struts, and RoR requires strong technical strength and programming ideas. No unique top-notch expert thinking, mature Programming Methodology (such as OOAD), and solid software Scientific Foundation (such as algorithms and data structures) advanced software architecture design knowledge and capabilities (such as architecture mode and design mode), good coding quality and habits, skilled software engineering and team management skills ..., can we develop excellent frameworks? All the elements of writing expert-level and excellent Framework Code require an innovator with at least 10 years of accumulation.

@ Zhang Meng's comments on accumulation are in place. I will introduce them:

I think the most important thing is that there are too few front-end workers in China between 35 and 50 years old, or that most of the older generation's technology-to-front-ends are transferred to management or start their own business as products. The root cause is that the number of front-end coder at the top level is small, and 3-5 years of experience is 55. By the 10 years, there are too many leading countries.

Same feeling! Foreign 30-50 years old is the prime age of achievement, and most of the domestic dolls are cheap to use. Lack of profound technical experience accumulation and accumulation is indeed a major cause. Our society is so impetuous that everyone wants to make money. There is no craftsman spirit that can withstand loneliness, keep improving, and constantly polishing. If you want to be world-class, you can climb the sky.

The rise, debate, and prosperity of OOAD methodology have matured in the 1990s s and 2000 s, and become the core basic skills of foreign professional software engineers, with this period, the rise and strength of OO languages such as C ++ and Java and a large number of open-source frameworks have emerged.

In contrast, in China, OOAD's entry into Chinese university courses mainly came after 2005, and there was a time difference. So far, many people on the rivers and lakes have not even understood an Object Model and Design Pattern. They are still ignoring and degrading OOAD and advocating "Naked coding" and pseudo-agility, think "design is code "... In such a big environment, can we cultivate world-class framework design?

This is actually very similar to the poor Chinese football. There is no solid and powerful basic football education, and there is a culture and environment that advocates professionalism. How can we rush out of Asia? How many world-class stars are there in China? I know how to throw money (the Chinese are not inferior to money), engage in human and sea tactics (the Chinese are mostly), give high salaries (the brave man must be rewarded), and work overtime culture (the Chinese are diligent, have good endurance, and are good at working overtime )... Is P available? Dream.

The comments from an anonymous user upstairs are brilliant:

The domestic environment has created a large number of pseudo-experts. They can only use others' code and start to criticize them when they are familiar with it to show that they are awesome, those who are better than this will refer to other people's code to build their own wheels, claiming that their wheels are stronger than jQuery, angular cloud clouds, in fact, the level gap is still relatively large. In general, our current strength can only be followed, but cannot be pioneered. In addition, the domestic environment allows a large number of pseudo experts to run rampant, you can't claim that you are an expert for several years. You are embarrassed to communicate with colleagues.

Can the impetuous, cool-running pseudo-experts generate world-class programming masters, especially open-source masters who dare to show code? Difficult.

Cause 2: It is related to the immature open-source market environment in China.

Cause 3: there must be some real experts and Daniel in China, but they are busy with other more valuable things, and they are still unable to focus on open source.

This may not be a capability issue, but a question of value, timing, and entry point. So I am optimistic about the next decade.

To be continued... 1. Valuable wheels have been created countless times, and there are not many worth creating wheels.
2. Writing frameworks and calling interfaces (Application Layer) require a completely different mindset, which is two different types of work. Most professional programmers call interfaces.
3. Any product, including open-source projects, must be promoted to become popular. Most people in science and engineering have a simple obsession: If I build it, they will come, and do not understand distribution.
4. For most programmers in China, writing code is just a mix of food, and they are really powerless outside of work. For most enterprises, writing a framework cannot be directly converted into benefits and traffic. There is a lack of internal and external driving forces.
5. Language-caused communication barriers. Open-source projects all require an international community where members can communicate smoothly in English and the Chinese are not dominant. 1. Concepts fall behind, always following others
2. How can we create the best wheel for KPIs and reputation?

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.