The author of the article, CJ, is a senior engineer of Google for eight years, and is now home to create an online collaboration document "Write together", this article is also his colleagues with geek fan in the "write together" collaboration completed. Click on the NEXT product set "google Open source project to see the full view of the technology and open source projects mentioned in this article.
Over the past more than 10 years, WEB development technology has evolved from the original pure HTML to CGI, php/jsp/asp, Ajax, Rails, node. js, to a very mature stage. Last year's Google I/O, Google Developer Center launched a best practice Manual on Web Development, and this year's Google I/O, "the Next Generation of Mobile web" remains one of the key agendas.
But, walnuts, posterity. Now the copy of the code is not their own from the soil itself, but the technical Daniel line to knock out. Even internet giants such as Google have experienced countless efforts and trampled on the pit of Web development. I'll tell you about these things before the Google I/O is officially opened tonight, and talk about the evolution of Google's Web development technology and the pit of the Mobile era from the Desktop era to today.
| Gmail, Google Map: The world has gone crazy two times
As you know, the earliest web development refers to the html,css,javascript, a lot of just graduated students will say, "Cut, will write Html,js, CSS does not write program, will write C + + just calculate", this can be a big mistake. You think, write a C + + program only need to speak a language, write a WEB application to learn three languages, and these three languages also with some mysterious, many times there are no documents in the strange way together, and some of the northwest corner of the company in the inside to make trouble, resulting in Web applications is very difficult to maintain, The direct consequence is that 99% of the applications are simple Web pages with a little bit of pathetic logic, completely unable to replace the desktop application.
At this time, the hero appeared. Google on April Fool's Day in 2004 released a thing called Gmail, when the capacity of email only poor 10MB or 20mb,google suddenly said to provide 1GB mailbox and growing, so, the world is crazy. But behind the big volume, you find that Gmail is not just big, it makes you feel like you're using a desktop app instead of a traditional web page. so it can be said that Gmail is a milestone in WEB development, the first large-scale deployment of AJAX applications.
The next year, around Valentine's Day in 2005, Google maps magically appeared, and the world went mad again. Everyone feels incredible, the original Web page program can do so cool, and 2000 years or so at the height of the technology bubble of those sites is how ridiculous. At that time, there were 2 people in the group of maps that were worth mentioning, an Australian named Lars Rasmussen, an American named Bret Taylor, which we would mention slowly.
| Rewrite Gmail
In the process of developing maps and Gmail, Google's engineers are increasingly aware of the importance of a highly structured JavaScript library. Because the logic is getting more complex, the code is getting more and more, and the functionality is piling up, the code that was written before has simply not met the ever-changing requirements. So the great engineers made a decision that Googler often made: let's rewrite it.
A great rewrite of Gmail's plan is gradually opening up, which is what we see today as the predecessor of Gmail. Throughout the rewrite, a library of highly independent, structured JavaScript has been abstracted, which is probably what many front-end engineers know about Google Closure. In today's words, Closure is not a simple JavaScript library, he is a methodology, a feeling, so any comparison of JQuery and Closure is an insult to Closure. Closure tells you that you should write javaScript like Java, to know what is a class, what is a member variable of a class, what is a member method, what inherits, what is an interface, etc... All the object-oriented concepts you are familiar with can be found in Closure. The advent of Closure dramatically changed the efficiency of Google's internal write JavaScript, leading to the rapid emergence of complex Ajax applications springing up within Google.
| The product of a wise man is too many: wonderful technology GWT
If you let Google engineers find Google a bad place for themselves, there must be a little bit of intelligence that is too much to manage. While Gmail was in full swing, another team was quietly doing another similar effort to change Web development, which was released in 2006 by GWT (Google Web Toolkit). This is a wonderful technology, programmers write code is Java, out of JavaScript, as you eat grass, squeezed out of the same milk. The fundamental purpose of this technology is the same as Closure, that is, to allow programmers to write Java to write Web applications, but his way more direct, even JavaScript is saved. In fact, the principle is very simple, is through the compiler in the compilation phase of Java into JavaScript code. However, this technique has a fatal disadvantage: you have to think how much trouble it takes to debug a bunch of JavaScript code produced by the compiler in a browser. So countless various additional debugging techniques appear, to tell you how to simplify GWT debugging, but did not solve the fundamental problem. One of the great benefits of GWT is that if your Web page is made up of standard controls, such as input boxes, selection boxes, multiple selections, and so on, GWT will greatly simplify your code. That's why GWT has lived to this day, because the front end of Google's most lucrative advertising system is written in GWT. Visible, the computer language of the world is also watching dad haha.
2007,2008 seems calm, and Google has not released any amazing, big front-end products and frameworks. In fact, they were not idle. Google has made several important acquisitions during that two-year period, laying the groundwork behind the famous Google Docs.
2009, in the snow hidden in Google for a long time Closure library finally open source, while open source also has a corresponding called Closure Compiler things, the General people understand Closure Compiler is another jQuery minifier , but it's not that simple, Closure's compier can really understand the type of your JavaScript code. With a syntax called JSDOC, you can completely write JavaScript as a strong-typed language, and have a compiler to help you find the wrong way. In the face of powerful tools, jQuery is relentlessly crushed. In the next few years, Google launched a succession of the corresponding Closure template language, and the corresponding Closure Stylesheet compiler, so the Web three-piece set, HTML + JS + CSS in the Closure World has a corresponding tool in the G Within the oogle, most of the front-end projects are developed based on this set of tools.
At the same time, GWT's team is not idle, on the one hand, to better support Google's most lucrative advertising system front-end, while silently suppress a super big recruit-the famous Google Wave. Yes, Google wave is written in GWT, and Wave's founder is the founder Lars of the Map we mentioned earlier.
| And rewrite the most lucrative ad system again.
On 2011,2012 IO, many of the topics on Web development are based on GWT, Closure, and have been calm for 2013 years. But at the same time, there has been a dark force inside Google, quietly developed a completely subversive front-end framework-AngularJS. It is a AngularJS named after the HTML tag starter shape, referred to as Angular. Where's the subversion? Google's web front-end development framework basically uses the well-known MVC (MODEL-VIEW-CONTROLLER) structure, effectively separating the data model and the last displayed view, making the code clearer and easier to maintain. Most of the earlier MVC was implemented on the server side, including the previously mentioned GWT artifact. But AngularJS is not the same, is a completely in the client-side browser is the MVC framework. This framework labels new attributes in HTML, and the runtime uses JavaScript to dynamically parse and bind data associations, simplifying the development of Web applications, especially single-page applications (single-page application). A lot of data bidirectional synchronization logic can not even be done by hand-written JavaScript. More importantly, it has developed a complete set of front-end component development specifications. Although various rules and regulations make it popular in both the Google and the open source community, it is quickly favored by many companies, in recent years, a sudden rise in the trend of many companies to recruit front-end programmers a standard requirement. So the crazy handlers went crazy and started rewriting many old systems with Angular, including the front end of the most lucrative ad system. Even when the Angular came out, someone predicted that Angular was the early HTML6.
| The birth of a heterogeneous language
Speaking of which, we must mention a heterogeneous language called Dart. The Dart is a pedigree, invented by V8 's chief programmer, Lars Bak, while improving the performance of V8 while figuring out how to break through the JavaScript language itself, such as weak typing, to make Web programs perform faster. He finally decided to get rid of JavaScript, reinvent designed a new language for the new Era Web App-Dart.
Before you get to know Dart, simply popularize your half-brother V8. Google's Chrome browser shook the world with its web page rendering speed far beyond Internet Explorer and Firefox when it was released. One of the core strengths is the new V8 JavaScript engine. The powerful V8 engine uses just-in-time compilation (JIT) technology to take JavaScript to a whole new level when competitors are also Chi Chi to interpret scripts in the Execute (interpret) Web page. In the next few years, browser vendors have followed suit, pushing the development of the entire WEB platform. At present, the deeply sought-after node.js/io.js in fact are V8 after the open-source derivative products, creating a front and back end with the same programming language of the emerging development ecology.
The Dart language draws on the familiar Java syntax of programmers, and supports language features such as object-oriented, single-inheritance, interface, generics, and non-mandatory type tagging. Dart's virtual machines are, of course, super-strong in the V8 Daniel's build. The DART program can also be compiled into JavaScript and run in an environment that does not have a dart VM.
However, Dart has been controversial and questioned since its release date. It is considered a split-web move and has not been supported by any other browser vendor for a long time. In early 2015, Google announced that it would cancel the plan to bind the Dart VM to the Chrome browser. But this is not Dart's death sentence. Google still supports and uses Dart to develop large Web applications because it is more efficient and code-quality than Javascript,dart.
In summary, we can see that the web in the development of two trends, the first is to improve the quality of the code from the scripting language level, improve efficiency, the second is to start from the Web standards, provide more abstract modular components, make it easier to write Web applications.
And speaking of the 2nd, have to mention Google's a project called Polymer, if you go to polymer site, you will find polymer slogan is "leverage the future of the Web platform now". Indeed, polymer is a library used to implement Web Component, and Web Component is a standard for the next generation of HTML, which is a project with a red seedling. It can be said that the progress of the polymer project in some way represents the development of the next generation of HTML standards. Let's look forward to how Google will update polymer on this IO.
The history of Google Web Development technology change and the history of stepping on the pit