Some people say, “Why are you qualified to make such a big talk? In fact, when I was watching the live broadcast of LOL matches, a famous anchor once said that those who played the league of Lol matches above 2400 would become professional players, those who played the league of LOL matches above 2400 would still struggle, and those who played the league of LOL matches above 2400 would only become professional players, while those who played the league of LOL matches above 1800 would still struggle, and those who played the league of LOL matches above 2000 would only become anchors. If you are a capable programmer who can handle any new technology or framework, your awesome ability may mask some real problems, but some people just call them features.

Many front-end developers pride themselves on despessing jQuery and taking JQ-free as their funding, which is fine, because if you’re targeting IE9+, or mobile, the MVVM framework lets you do without JQ. However, let’s consider two points: why force users to upgrade from IE8 to Chrome? Win7 is such an excellent operating system, Internet cafe computers, even a lot of office computers are XP, a large number of websites compatible with IE8, the user is God, we are qualified to ask God to upgrade the browser for no reason? A lot of programmers despise 360, but you should really thank 360 for making a lot of users upgrade their browser with Chrome kernel in a mild way, compared to YY, which is just like raping users and doing dirty work in the background.

What makes JQ great is that it is not a framework but a framework, and I hope every product manager learns about JQ. JQ usage is no accident. First of all, the API design of JQ is excellent (replacing all selectors is a great design. Underscore (), which is much higher than a fetch that goes backwards, uses axios, which uses params and data under get and post. Is it semantic or standard? I don’t care about semantics, because the encapsulation of utility classes is about masking semantic differences and inconveniences and being people-oriented. Many people criticize JQ for doing too much with a single selector, but if underscore is used instead of all the selectors, then underscore is just a little bit higher than fetch goes backwards. I have also used Axios, Axios uses params and data under GET and POST. Is that semantic or is that standard? I don’t care about semantics, because the encapsulation of utility classes is about masking semantic differences and inconveniences and being people-oriented. Many people criticize JQ for doing too much with a single selector, but if underscore is used instead of all the selectors, then underscore is just a little bit higher than fetch goes backwards. I have also used Axios, Axios uses params and data under GET and POST. Is that semantic or is that standard? I don’t care about semantics, because the encapsulation of utility classes is about masking semantic differences and inconveniences and being people-oriented. Many people criticize JQ for doing too much with one selector, but if JQ were replaced with jqDOM, jqString, and jqSelector, how many people would still be using a framework?

Compatibility aside, JQ2 is perfectly compatible with JQ1, with the exception of some browsers. The lesson for product managers is that JQ focuses on solving the DOM manipulation problems programmers encounter, along with a near-perfect Ajax package and some utility classes that come with almost no extra functionality. So, before the mobile end, a lot of the front end is jQ + template to do everything. So, want to criticize JQ and make a big story?

Next, let’s talk about React. I recently fell into the same pit. Ng2 and Vue performed poorly on a third-party core component THAT I needed. But react doesn’t have problems. There are many people who say react is awesome on JSX. Yes, I’ve been working on JSX recently. JSX is not a template. The definition of a template is too simple. A string supports variable substitution like ${}, and that’s what a template is. JSX fulfills this requirement. Of course, the needs of the masses will always be met, and there are plenty of if and for implementations available on NPM.

Another point I would like to mention is redux or Flux, which is designed to make up for the lack of one-way data transmission in React itself (I can’t help it if you say it’s a feature). I think one-way is actually a reverse, because no matter before NG1 and now NG2, Vue and Avalon support for IE6 are dual binding, but react is one-way binding. I first saw the story, isn’t that a state machine, think again, recall the undergraduate course studied the compilation principle and formal language and automaton these courses, yes, the state machine is not easy, especially a large system of state clear comb up, is not an easy thing, the team asked very high, so I’m in the project selection, Redux was decisively rejected and used the previously familiar event model.

There is a problem that I have encountered, a TAB component, which requires very simple (1) implementation of the basic TAB function, namely click the TAB highlight TAB and switch the corresponding TAB (2) tag style and HTML input by the user, no restrictions, just highlight the TAB BG-color is enough. (3) Tabbed tags and content do not necessarily have adjacent or nested relationships in the DOM, which is optional. This requirement is written by JQ or even by source. How much code does it take to develop Reactive?

Then talk about mixed development, this thing, obviously is specifically designed for enterprise development, of course, for the kind of start-up how long to close down or get money to transfer to native do not say. Enterprise development, implementation can, do not require more cool interface and fluency, the Intranet is not sensitive to network speed, internal applications no one idle to look at your code or find your vulnerabilities, which is perfect to avoid the weakness of mixed development. However, the js feature, no matter how confusing it is, can be as naked as no pants, which is nothing compared to a scripting language like Lua, which can transform parsers in addition to traditional obfuscation. So, in addition to the traditional H5 problems, your entrance, users and the whole life are in the hands of others. Are you willing to do that? Perhaps, this can purify the current app chaos, leaving the functions that users really need, that is, those “public welfare” applications of large companies, large enterprises, such as checking express delivery, registration, checking laboratory list, these uncompetitive, copy all useless things, is the perfect thing to try small applications.

Recently, There was an RN and ali’s Weex, which is not the same framework as Cordova. Whatever is on top of Cordova, There are a large number of native plugins in the bottom layer, which can help you adapt to the source function. It is ok to use RN, after all, there are too many people on the ship of React. Some people solve the problem of the Native layer, but for the new Native framework, are you sure you can make it?

Front end people like to make wheels, a few days ago to find a URL param splicing frame, after the installation of other applications also rely on 2 URL Param, long is not the same. If you look closely, there are a lot of isEmail and isURL dependencies, and if you count the 600 + node modules (including dev dependencies of course) in a single project, it’s pretty incredible in Java. Because Apache Utils alone offers untold functionality. Since Apache is mentioned, I would like to talk about Java. Many people say that the front end is undergoing great changes and the back end is just like a stagnant water. Then I would like to ask, whether Taobao or 12306 in recent years is the result of front-end optimization, and the back end can solve the problem of large concurrency as long as it is put on its own?

If it is a Java project selection, Spring as the bottom must be unanimously approved, the next may be Mybatis and Hibernate, according to the characteristics of the project is almost the only choice, there is no debate behind these. But the front-end model selection, I estimate react, Vue, NG can play a day. As a result, Java has remained unchanged for a decade, and has lost much of its essence. In addition to tuning virtual machines, there are a lot of sports cars, not wheels, including Lucene, which is now elasticSearch. There are a number of data mining frameworks such as Hadoop and Spark, and the rest of the workflows and data buses are too embarrassing to mention. But now that the front end is out and they are going to use js to sweep everything, I wonder if so many Java, PHP, python, c++, Erlang, golang engineers are going to sit around and die?

Change is a good thing, js started off in a bad way and now it’s rapidly evolving to ecma2015, but the underlying version is still ugly ecma3 (I don’t say no to god, god gives me money and I’ll do IE8 compatibility), compared to how many people are using java1.6, python2.7, I believe that the language/syntax candy itself is definitely not the first choice, because if you really like syntax candy, you should be supporting c#. The only explanation is that js people have nothing to do with their lives. Habit is a good thing, if stable, and can meet the requirements, how many years you see TV is square, bicycle how many years are two round wheels, js is a what kind of the world, now has a very cow force of the bicycle, cool running fast, the only problem is that no wrap, wrap yourself..

What really solved the problem was JQ, and I think ng1 was a massive push of MVVM. Unfortunately, both of them were despised by you. Then Google just rolled out ng2. I found myself adding an awesome complier to the front end of the system, until the official release of aoT a few days ago. And react again, mixing HTML into JS. On the other hand, if you look at architecture tools, Glup and Grunt are history, Webpack started last year and this year someone is trying to kill it, what packaging tools are there next year? Grunt is not wrong, his design is batch processing, compression, obfuscating, integration can be done, WebPack bundle is easy to heat and debug, so what features of the new architecture tools will allow users to abandon the previous things, and recreate a large number of wheels?