Responsive web Design (RWD) __go:2015 and future technologies

Source: Internet
Author: User
Tags ruby on rails zurb foundation
This is a creation in Article, where the information may have evolved or changed.

In this article, we will take a look at the development trend of WEB development today, to share my views, observations and predictions for the 2015 and the future. I've been working on WEB technology since 2000, and in recent years I've been mainly doing cloud architecture solutions. As a web developer, I have developed Web applications and Web services on the. Net, node. js, and Go technology stacks. Recently, I've studied Web technology and development trends as a whole, and I'll share my thoughts and observations here.

First, let me share some of the current trends in usability and architecture that I've observed.

Trends in Usability

Today, the user experience becomes more important than ever, and responsive web design (RWD) is also a must-have feature of the site. RWD enables end users to access websites on different sizes of devices, including mobile phones and tablet browsers. With RWD instead of a mobile site, we don't have to develop additional sites for mobile users alone. This is especially useful when we need to focus on how to present the content. But if you're developing a web app that contains a lot of UI interactions, and not a website, RWD can't help you. Remember that Web apps are different from websites. Twitter Bootstrap and Zurb Foundation are currently the most popular RWD frameworks. If you are developing apps for mobile users, I would recommend using a lightweight framework such as Yahoo! Pure CSS .

Trends in Application Architecture

The mobile-first policy in the enterprise also affects the WEB development architecture. When an organization develops Web applications and Web services, they adjust their own mobile policies as the main direction. And today, Web APIs have become the center of Web applications and mobile applications, where developers build restful services on the server side and then develop front-end applications for Web and mobile based on RESTful services.

The rise of API-driven development

In the Mobile World, APIs (especially RESTful APIs) have become a critical part of WEB applications, and server-side implementations have become a thin layer of data and security-related APIs. These RESTful APIs are not restricted to WEB applications, and mobile apps are also available. So the server-side code written by modern Web developers is used for both mobile applications and Web applications, giving us more opportunities. Another trend here is the rise of mobile back-end cloud services, such as the Parse and Service (MBaaS) cloud Platform solutions for Azure Mobile services. These MBaaS platforms provide automatic RESTful APIs for data models for a variety of specific mobile backend services. We can use the MBaaS service to develop WEB applications because they provide not only RESTful APIs, but also a JavaScript SDK for HTML5 clients along with the Mobile SDK. In the future, I firmly believe that MBaaS services will be widely used in WEB applications and mobile applications.

The appearance of single page application (SPA)

When the server side of the RESTful API is limited, WEB front-end development is migrated to the client, and the class desktop UI on the browser is rendered on the client instead of on the server side. In a SPA app, the front end simply calls the RESTful API to deliver the data, and then builds the complete UI on the client. In this case, JavaScript becomes a key technology for building WEB applications. One advantage of SPA apps is that we can easily package these Web apps into mobile apps using hybrid mobile containers (hybrid mobile container) such as Phonegap and Trigger.io . This approach can be used for small to medium-sized data-based UI applications. So we can build Web applications and mobile apps with a single piece of code.

In SPA-based Web development, JavaScript has become a key technology, and JavaScript skills are more important than ever. I have been exposed to different frameworks to develop some SPA applications and have noticed some challenges in this model. As follows:

    1. When we are developing large-scale SPA applications, comparing the previous server-side approach, it becomes very difficult to maintain the application. I feel it's really hard to build a large JavaScript application to maintain maintainability.
    2. It is difficult to implement complex security models on the client side, restricting different access levels of the UI for different types of authorization roles.

My views on the SPA framework

Currently Angularjs, Emberjs and Backbone are some of the most popular SPA frameworks for practical use. I have evaluated these three frameworks and used them to develop applications. In my experience, AngularJS is the most productive framework with the features you need to build a large SPA application. As fools see it, using the mv* framework for front-end development is not a good approach, and MVC is not suitable for large front-end applications. But now we're using MVC on both the server side and the client, and I don't think that's the best practice.

reactjs– stunning front-end frame

When most SPA frameworks are still using the traditional MVC model, REACTJS provides a different way for the client to build the UI.Reactis a JavaScript library developed by the Facebook and Instagram teams to build the user interface.InstagramThe entire front end of the site andFacebookPart of the site is built with Reactjs. Interestingly, you can use REACTJS with other front-end frameworks such as AngularJS and Emberjs. You can use Reactjs as the view layer of the MVC framework. But in practice, I don't recommend using Reactjs on a traditional MVC framework. Reactjs introduced the virtual DOM, which is the amazing part of the Reactjs Library, which brings high performance to the rendering UI. REACTJS provides higher performance UI rendering than the MVC framework such as AngularJS and Emberjs. You can use virtual DOM to abstract reusable UI components and then synthesize them on the actual DOM. The virtual DOM allows you to build your UI outside of your browser with React. For example, Facebook's React team built the Objective C Bridge to build the UI on IOS apps. For extended front-end applications, we can use the ReactFluxArchitecture, which is a set of basic conventions for architecture that provides a single-direction flow of data. I have evaluated Backbonejs, Emberjs, AngularJS and React and strongly recommend that you use React to build the user interface.

2014 trends in server-side web technology stacks

A few years ago, dynamic type languages such as Ruby and Python had attracted many startups. Until a few years ago, Ruby on Rails was a revolution in WEB development. Many startups have developed innovative products using the RoR and Python Web frameworks. But now interestingly, due to the challenges of performance and scalability, these applications are being rebuilt by other Web technology stacks. Using a dynamic type language in a large application is like drinking a drink with too much sugar. At first, the sweetness of the sugar will be more appealing, but in the long run it will hurt the health of the application. This year, we've seen many companies adopting node. JS, especially for building much-watched mobile app backend services. Large enterprises such as LinkedIn (LinkedIn) and Wal-Mart (Walmart) are using node. js to strengthen their mobile backend services. As a new technology, node. JS is the winner of the 2014-year adoption market. node. JS is also the preferred technology stack for mobile back-end service (MBaaS) cloud solutions. This year we also saw many command-line tools based on node. JS being used for front-end development. The rise of node. JS and the decline of the Ruby stack are the most noteworthy trends this year.

Here are some observations of the server-side WEB stack:

    • Microsoft. NET Web Stack and open specification  owin   will have a big shift – which is actually good for both ASP.

Predictions for 2015 and beyond

What kind of technology will dominate the 2015? What kind of technology loses its momentum? I deeply feel that the era of WEB development using dynamic language is coming to an end. and is node. js going to build on the emerging technology market? I don't think so. Since 2011 I have been mainly writing the node. JS code and intend to write a book for it, but later gave up the plan. I have recently left the node. JS Platform for the following reasons:

    • node.js is always emphasized as a technology for building high-performance applications, but for large applications, Its support for performance over availability and maintainability will be one of the biggest challenges. So I predict that many large node. JS applications will fail in the near future due to maintainability issues, and the era of over-hyped node. JS will end.
    • callback to hell. I know that generator and promise are a good way to fix a callback to hell. koa.js   frameworks provide a workaround at the expense of performance. But for me there are still a lot of problems that can't be solved.
    • javascript language is also a problem for me. JavaScript is not suitable for building large-scale applications.

I use these problems with node. JS and others will, and there will be many usability problems with error handling, debugging, and usability. I believe maintainability will be a big problem for large node. JS applications. If you build RESTful services on node. JS, I strongly recommend that you use the hapi.js framework developed by Wal-Mart, which is really doing well. I really admire Hapi.js author Eran Hammer .

In 2015 I was optimistic about the Go language, not just for WEB development, but also as a technology ecosystem for building distributed applications. For me, Go is a better choice than node. js. I predict 2015 many Ruby and node. JS developers will migrate to go.

Here are some of my predictions for 2015 and beyond:

    • Performance-focused WEB applications that are rebuilt from Rails to other stacks will reach peak values.
    • At least for performance-oriented Web applications, the era of web development with dynamic language is over.
    • Many node. js applications are stuck with maintainability issues. The pursuit of performance exceeding availability and maintainability may cause node. js to fail.
    • Go will appear as a common programming language that attracts the WEB developer community. Go will be a good alternative to Java and dynamic languages and the node. JS community.
    • Go will follow Cobol and Java into a wide range of languages for the next generation of businesses, but it still takes time. Go is the language of the cloud era.
    • Java and the. Net stack will continue to be the momentum for large enterprise applications, but will slowly decline in WEB development.

Go:2015 and the future of technology

There have been a lot of good apps developed with Go recently, including Docker and Packer.io . I predict that go will have a huge appeal in a variety of communities, including Java, Ruby, Python, and node. js. Go is a static type language but provides the flexibility of dynamic type language productivity. In the go language, concurrency is a class-one citizen of the core programming language. Similar to C and C++,go compiled into native machine code; unlike Java and. Net, it does not require any JIT compilation. I fell in love with the simplicity of Go, the practical design and the pretty handy package system. It might not be a good place to build a traditional Web application, but it's definitely a good place to do the HTTP server that provides RESTful services. In the future, you may also be able to develop Android apps with Go. The advantage of Go is that it is a general-purpose programming language that can be used in any possible scenario – including system programming and large distributed commercial applications. I feel strongly that go is a distributed, concurrent, parallel computing language that belongs to the cloud era. Go can become the next Java in the enterprise

http://www.iteye.com/news/29544

Related Article

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.