What is the Web development trend after 2016 yearsSource: yafeilee.me release time: 2016-05-06 read:1378 3Progress in the last two years
The front-end is evolving, and there is even a joke: "Rewrite a front-end frame every six weeks", the industry is like a rocket, but our front-end engineers should do?
Let's talk about the problem.
Let's take a look at some of the most popular technology stacks:
-
AngularJS
The first two-way data binding, as well as built-in module injection, as well as the support of the component, so that it developed rapidly. In 2014-2015, there were surveys showing that over 50% of projects using the front-end framework used the AngularJS. But it's not worth it. We continue to study, we will look at the next.
Project Address: https://angularjs.org/
-
Emberjs
Inspired by the Rails full stack framework, EMBERJS gradually developed into another "rails" in the front-end area, becoming another unique option, in theory, you chose Emberjs, chose a complete and stable ecology, no more tossing Wheels. Emberjs not only fully supports modularity, MVC, but also implements a two-way binding similar to AngularJS (of course, different), even to the built-in packaging and publishing application functions. In summary, it is a very comprehensive front-end framework. In fact, if AngularJS is a peak of the current short-term front-end history, it is another peak. But recently, there has been a certain decline in sentiment, the reason why, we re-decomposition.
Project Address: http://emberjs.com/
The
-
Reactjs
Reactjs is very popular since its inception, and it is the first framework to adopt virtual DOM technology, which uniquely integrates the concept of functional programming and uses unidirectional data streams to design DOM rendering and The comparison, which makes it lightweight and flexible, in fact, itself only focuses on how to render the UI, and does not conflict with AngularJS and Emberjs. In other words, you can integrate it into other frameworks.
With the advent of the reactnative and Redux scenarios, Reactjs is back on top of the front, because its simplicity and elegance and impact on the Native APP have once again become a new wave of surfers.
But what happens later, who doesn't know, but I will also give some interpretation.
Project Address: https://facebook.github.io/react/
Fashion is not necessarily the fastest growing, let's take a look at several of the fastest-growing front-end technology stacks in nearly two years:
Reactjs
As mentioned above, React because of its own simplicity and the realization of component focus, has not been the new ES6 standards and the front-end trend of thought, it is almost unaffected by ES6, and the forefront of support native app development (through Reactnative), so has been developing trend Good.
And AngularJS is not the same, due to the release of ES6, so that its dependency injection features become chicken, and AngularJS first version of the support of the poor implementation of the component (can support is one thing, easy to use is another matter), and the component of the learning cost is too high, too complex, so Angul Arjs decided to overturn the design to re-develop the second edition, while the second version was too aggressive to use the Typescript, completely incompatible with the first version of the design, and the application of a variety of magic, making it farther away from the front end.
Vuejs
Vuejs is the rookie of the last two years, and it started out as a simplified version of the implementation of the two-way binding AngularJS (of course, the principle is different). But the idea is similar to Reactjs, just focus on data binding, modularization and component, so it is simple and flexible enough.
With the rapid development of the ecology, Vuejs AngularJS The first edition of the class, but also improved the AngularJS of the wrong design (in hindsight, the dependency injection and component-based two parts is a relatively failure of the design), the overall development of rapid, gradually become a rising star.
Project Address: http://vuejs.org/
Meteorjs
Meteorjs is not intended to be compared to several front-end frameworks, because it is actually a full stack frame, more like the role of Rails, but because it is a pure Javascript solution, it is still here.
If the above-mentioned front-end framework is to solve the front-end engineering products, that METEORJS is a subversive thinking of the web development framework, it applies javascript isomorphism technology to the extreme, and then integrate WebSocket real-time data notification and hot code updates, different from the concept of front-end separation, it The developer perspective has no front-end concept at all, the API is both front-end and back-end, plus its all-ecological support (mobile app support, app release), is also a new perspective, because it is very fast development, so listed here.
Project Address: https://www.meteor.com/
The major frameworks are in the rapid development, they have several common development direction:
ES6 Support
Every time the new standard of Javascript is released, is a good opportunity to update the major framework, so ES6 is sure to get the good support of the major framework, it is recommended that you must learn.
Web Component
There is no doubt that the component is a very important feature in the modern front-end engineering, and even Google has specifically polymer this component-only implementation of the framework. So every qualified front-end frame is very heavily supported. At the same time, the component will be defined as a standard, so the front-end framework will continue to improve compatibility with the standard.
Server-side Render
Service-Side rendering technology is the concept of the beginning of the 2016 fire, it is different from the traditional back-end rendering, in order to solve the front-end framework of the first load slow problem, as well as SEO problems, and proposed solutions. Previously there were PreRender, and now the big frameworks are trying to integrate and support it internally. But I personally feel that the problem is far more than the problem solved, such as asking us to develop more restrictions.
APP Render
There is now a large front-end concept that can be understood as web front-end support for app development, including Ionic (based on AngularJS), React Native (based on React philosophy), and Meteor for app development pain points.
Analysis of many of the most popular front-end frames, you may be more and more Hu Tu:
Who is the best technology that deserves our input?
Next, we remove a bunch of terminology to see its development from the definition of the front end.
What is the evolution of nature in the last two years
The front end is the technology facing the user, however, with the development of the Times:
- Increased user experience requirements (fast loading, fast response, no flicker)
- More front-end requirements
- The front-end code is getting bigger
- Rapid development of mobile H5 front-end demand
JQuery, Protoypejs, etc. only solve the problem of Javascript tool library, but there is no good solution to engineering requirements.
Front-end engineering is forced to eyebrow jie. and have the following requirements:
- Preferably a pure Javascript solution
- Support Modularity
- Separation of business code from framework code
- Testability
Thus, several different evolutionary schemes have been produced.
Back-End rendering technology:
Ajax-Pjax-SJR (requires service-side support)
Back-end rendering technology quickly developed to the top. But the technical understanding is still simple enough. We're going back to the front-end frame.
NodeJS, AMD (CMD), the advent of ES6, makes the organization a front-end framework a reality. Thus, the Hundred-Regiment war, there have been many of the above framework melee scenes.
Whether it is AngularJS, Emberjs, Reactjs, Vuejs are the different attempts around these points.
But as a result, we stand at a much higher level to rethink web development.
What the real user market needs
to the user
- Faster response times
- A better experience
For developers
- Faster speed of development
- Better maintainability
Think again, do we want to separate the front and back? Which front-end frameworks better meet our criteria?
As a rails engineer, I've been thinking about a question: is rails on the front end?
For those of you who are unfamiliar with rails, I'll simply review what the front end of rails is:
- Jquery
- Ujs
- Assets Pipeline
- SJR (service-side JS generation technology)
- Turoblinks (a small cost-effective technique for single-page effects)
The front-end technology of Rails is very rich compared to traditional web frameworks in languages such as PHP, Java, and Python.
About each frame I made a score comparison, 10 is divided into full marks, each column will be added together to calculate a total.
As can be seen from the table above:
The full stack frame features of Rails are
Advantage:
- Very high development efficiency
- The experience is also good through turoblinks technology.
- can also support hybrid application development
Disadvantages:
- Front-end code can be maintained poorly
Reactjs study cost is lower, through Webpack and NPM, can achieve good maintainability, but the development cost is high, which is one of the shortcomings of the component.
and Emberjs learning threshold is too high, and emberjs development is also relatively rapid, not conducive to learning mastery, relatively speaking, the total score will not be too high.
Meteorjs is also listed here, with the lowest total score, so it is still not recommended to study unless your app belongs to real-time applications.
We re-think of the component, the advantage of component is that the interface is clear, maintainability is high, but the development cost is relatively high, the front end belongs to engineering rather than science, so, I think the component is right, but not too extreme to all the DOM is modular.
Furthermore, the component also destroys the existing base technology stack.
Through the above analysis, we basically understand the existing technology stack situation. So what are we going to learn? This is the focus of this article.
Everything is built around modular, maintainable, efficient development, mobile support, and the core is the most basic thing:
- Javascript (ES6, NodeJS)
- Html
- Css
- Api
In a word, we should first lay the groundwork well.
Basic technology Stack
What should be well mastered:
- Javascript language (directly see ES6 related)
- NodeJS Ecology (NPM and related packages)
- Webpack (Learn how to package, publish)
- HTML (especially form tags, and HTML5 content)
- CSS (learning box model, latest Flex layout, and CSS3)
- API (Learn how to develop an API)
You must be a front-end engineer, but also a back-end engineer, to really touch the development of the current era, become a surfers!
Predicting the future
First of all, in my 2014 analysis of web development, the gulp mentioned in the article, Grunt has become a past style. Bower is already a bit out of the issue.
The current front-end build is recommended to use Webpack and npm enough, do not need more tool chain, should be simpler, more comfortable!
List a few concerns and try to predict
NodeJS do background development how?
NodeJS is already part of the front-end framework and is extremely successful, but for NodeJS to do background development, it can account for a certain market, but will be very small (less than 5%). So do PHP or Java development Friends do not worry, but if only to move bricks and write simple API, there is a danger.
Is Rails okay?
Rails has reached a certain point, it is impossible to grow, but still the most comfortable web development framework, its front-end solution is still a good experience and development efficiency, but maintainability is poor, if it is me, I will lead the team to adopt hybrid development, but now will not be introduced Angu Larjs and will be vuejs.
But Rails has reached its limit, and many front-end frameworks have just begun. (although it is not appropriate to take Rails with the front-end framework)
AngularJS or Reactjs?
Very simple, it is recommended to get started directly vuejs.
Anguarjs The first version is a good framework, but ANGULAR2 is not, so it is better to learn directly vuejs.
Reactjs is a good frame, but it's never the end. Vuejs and Reactjs have pros and cons in achieving each other. You can choose between them.
Is Meteorjs worth studying?
My advice is not worth it, because it starts off on the wrong road and is doomed to have no way to go.
Will the front end replace Native APP development?
Certainly, in the next 3 years, at least 70% of apps will use front-end development scenarios, such as using frameworks like Ionic or Meteor.
Rethinking Web Development
Really long-term front-end technology must be simple, focused, such as JQuery. But there are more or less problems at present in several frameworks.
Reactjs is not as simple as surface, but AngularJS more complex.
Whether there is a simpler and more effective solution to their problems, it can become the next generation of Web front-end framework.
QQ Group: Web Developer Official Group (415796102) authentication message: Admin10000
What are the trends in web development after 2016 years?