Google很已经以前做Web应用程序,大器晚成套内部

2019-12-14 23:39栏目:互联网
TAG:

原标题:工程师亲述在 Google 从事 TypeScript 工作的独家体会!

Java虽然是很受欢迎的语言,但是并不适合所有人,那么有哪些替代方案呢?本文将分析5种Java替代方案。

AngularJS | Closure | Google Web Toolkit | Dart | Polymer

图片 1

style="font-size: 16px;">【CSDN编者按】多年来,Google为了开发大型Java应用程序而构建了大量基础架构。

style="font-size: 16px;">今天,就来听听在Type上工作了两年多的Google软件工程师Evan Martin,对此有什么心得体会吧!

图片 2

GWT

Google Web Toolkit (GWT) 是一种开源 Java 软件开发框架,可以使不会使用第二种浏览器语言的开发人员编写 Google 地图和 Gmail 等 AJAX 应用程序时更加轻松。GWT 可在使您避免这些麻烦的同时,还为您的用户提供同样的与标准兼容的动态体验。您只需使用 Java 编程语言编写您的前端,GWT 编译器会将您的 Java 类转换为与浏览器兼容的 JavaScript 和 HTML。

在全球,有数百万的用户在使用Google的JavaScript-intensive应用,如Gmail,Google Docs,Google Maps。相信每个开发者都希望创建Web应用程序能变的更easy。哈哈,有个相当好的消息告诉大家,Google今天开放了Closure Tools,一套内部人员开发JavaScript的工具!上面提到了那几个Google应用都是使用此工具开发的。Closure Tools中包含三套工具:1。Closure CompilerClosure Compiler是用来编译JavaScript的编译器,除了像最常见的JavaScript的压缩机提供的功能,它还会对程序进行分析,把不需要的部份移除,减少的JavaScript程序的大小及提升效率。你可以将compiler与Closure Inspector一起使用。由于JavaScript的开发是多样化的,所以建立了很多种运行的方式:提供了一个开源的命令行工具 ;创建了一个Web应用程序,你可以使用text box或一个RESTful API来编译;还提供了一个Firefox的扩展,可以与Page Speed 一起使用,方便查看网页的性能优势。 2。Closure LibraryClosure Library是一个广泛,测试良好,模块化,跨浏览器的JavaScript库。它是Google的标准JavaScript类库.这套工具就像是许多一般的JavaScript框架,提供了许多简化的DOM操作的函数库,还有丰富的用户界面组件。 3。Closure Templates 这套工具就是提供一个在JavaScript中做模板的机制及函数库,你可以把HTML布局的部份写成一个*.soy,接着再利用封闭模板提供的工具把这个模板档案编译成的JavaScript代码,这样JavaScript开发者便省去了很多处理页面的负担。Closure Templates既可以实现JavaScript,又可以实现Java,所以你可以在服务器端和客户端使用相同的模板。

图片 3

1995年,Netscape聘请Brendan Eich为当时最受欢迎的网络浏览器Netscape Navigator添加一种新语言。Netscape希望增强网络的可编程性。

Closure 

如Closure Compiler(用于生成紧凑且高性能代码的工具)、Closure Templates(用于动态生成HTML)、Closure Linter(JavaScript风格检查器)及Closure Stylesheets(对CSS的一套扩展)

心动不如行动,赶紧去看看吧!

我已经在Type上工作了两年多了,所以我想写一两篇文章来回顾这两年的工作。首先,我应该写一个标准的免责声明:我只是一家公司的一个普通的工程师,公司拥有数万名工程师,肯定会有人对我在这里表达的观点持有不同的意见。

Live在1995年末发布了测试版的浏览器,并在最终发布前改名为Java,以利用Netscape与Sun Microsystems的合作关系,后者是流行的Java语言背后的公司(尽管Java本质上与Java没有任何关系)。

Dart

Dart([KK] 英语发音:/dɑrt/, [DJ] 英语发音:/dɑ:t/)是一种基于类型的可选类型化编程语言,类似于Javascript。它是一种面向对象语言,由Google主导开发,于2011年10月公开。它的开发团队由Google Chrome浏览器V8引擎)团队的领导者拉尔斯·巴克(Lars Bak)所主持。

谷歌很早就开始做Web应用程序

Mozilla的创始人之一是Eich,他在10天内开发出了Java的原始版本。在接下来的25年里,Java从一种不受欢迎且受到严重限制的语言发展成为现代web应用程序构建的强大基础。如今,Java主导了浏览器,并通过Node.js占领了大部分服务器。

angularjs

 

 

 

 

使用AngularJS构建大型Web应用

 

AngularJS 自集成了模板,不能使用第三方的——不过你仍然可以 Jade 之类的模板进行预编译,以简化书写。
与一些 MDV Model Driven Views同类相比(Facebook 有 React;Google 另外还有 Dart、Polymer;Mozilla 有 X-Tag),我认为 AngularJS 胜在可用和易于测试这两方面。

 Are you doing heavy DOM manipulation? I would use jquery and backbone

 Very data driven app? Angular with it's nice data binding

 Game programming? none, direct to canvas, maybe a game engine

 

  Top JavaScript MVC Frameworks 

Google很早就开始做Web应用程序了。我简直无法相信Gmail发布已经14年了。在当时使用Java是非常疯狂的做法。Gmail的工程师不得不担心IE糟糕的垃圾回收算法,他们需要手动将字符串文字从for循环中提取出来,以避免GC(Garbage collection垃圾回收机制)停止工作。

然而,Java并不是所有开发人员都喜欢的语言。Eich在早期做出了一些古怪的决定,这些决定一直持续到2019年,其中包括典型的继承、“this”以及Java的侵略性和不一致的类型强制。

Polymer

http://www.polymer-project.org

代表了下一代Web框架的方向:一切皆组件,尽量减少代码量,尽量减少框架限制。

Polymer由加盟Google的原Palm webOS开发团队打造,是一套以“一切皆组件、最少化代码量、最少框架限制”为设计理念的Web UI框架。Web Components则提供了一种更彻底的解耦方式,更加方便了UI的开发和模块化,可以说是Polymer的基础之一。

 以前的dart webui库

 

 

以上可见google开发个的web应用库就很多了,从语言到界面等多个层面提供了解决的方式,我们根据具体的需求进行选择吧。

最近我发现了一个那个时代的设计文档,他们当时在考虑做我们现在称为Java“压缩”的东西,但一些备选工具只能在Windows上使用。在今天看来,这些都难以想象。

近年来,开发人员已经创建了Java的替代品。Java仍然是在浏览器中运行的唯一语言,因此这些新语言主要是编译或转换为Java。Coffee是第一个类似的脚本,但很快就被众多竞争对手所超越,每个竞争对手都对Java进行了改进。

这些年,Google为开发大型Java应用程序,构建了大量基础架构。例如,有一个模块系统可以让源文件表述它们的相互依赖性。有一个捆绑程序可以组合并压缩源文件,生成可以兼容浏览器的产品。

Dart

另一个程序可以通过可动态加载的入口点来分析应用的依赖关系图,并分解出公共的块供其他块使用。服务器端的渲染很常见。对于如今的Web开发人员来说,所有这些概念载熟悉不过了,但Google的技术栈很早就有了,而且一直在发展,因此在概念上类似,但具体方面完全不同,Google拥有不同的流程、工具,甚至不同的概念名称。

Dart是一种面向对象的c语言,由Google创建,作为Java的替代品。它抛弃了Java的原型继承系统,而采用了更传统的面向对象的方法,任何使用过Java或c++的人都熟悉这种方法。与Java不同,Dart是一种静态类型的语言,消除了Java代码中的常见错误源。Dart支持类型推断,因此没有必要在每次声明变量或函数时都包含类型样板。

还有个例子可以说明并行发展:Google、Facebook和Microsoft各自构建了类似但不兼容的编译器,这些编译器向Java添加了静态检查。

也许Dart最令人激动的功能是它在网络之外的可用性。Dart代码可以转换为Java以便在浏览器中运行,但它也可用于独立应用程序和服务器端开发。Google的Flutter UI工具包是一个可移植的前端框架,可用于桌面、移动设备和Web,构建本机应用程序。

Google的编译器常被称为Closure。(请不要与Clojure语言混淆;为了避免混淆需要说明一下:Clojure使用的是Closure编译器。)

Type

版权声明:本文由澳门新濠登录网址发布于互联网,转载请注明出处:Google很已经以前做Web应用程序,大器晚成套内部