Go断后,Dart冲前,Google的野心

今天,我要讲讲新的前端web语言-Dart

我是网上看到这段话,激起了兴趣,虽然我不能算是真正的web前端从业者!哈哈

[

  Dart语言由谷歌制造,用来替代Javascript,弥补Javascript在web应用中大量使用时出现的缺点。对于Dart语言,谷歌的希望是,它将成为

  web编程的新官方语言。它有着与C语言类似的语法和关键词。然而,一个跟Javascript的重大不同之处是,Javascript是以prototype为基础的

  语言,可Dart里对象是用类和接口定义的,跟C++和Java一样。Dart语言还允许程序员将变量声明为静态类型。

]

我用了用,感觉就是跟java一样,当然就想向宣传的那样,比java语法简洁,就像是退到了C,越过了C++!哈哈,这点儿有点自相矛盾!大家就把它理解成比JAVA简单点儿的Java吧!

&&&&&&&&&&&

第一讲,涉及配置开发环境,服务端编程的demo,客户端编程的demo

一. 安装dart 编程环境

*************************

本来准备在linux 下安装,但linux 下访问不了Google 的仓库,立马完蛋了
后来在Windows 下安装,意外成功了
转念一想,Dart 主要是web 前端语言,windows 能行就对了!!!
哈哈哈
别以为windows 下安装大家都是驾轻就熟,其实,官网上也是有坑的啊
一.DART-SDK 安装
https://www.dartlang.org/install/windows
你会看到两种安装方法
第一种就别试了,我用了,当时就撞墙死了,本来是Windows 下经典安装,但Dart 开
发小组不熟悉windows,开发的在线安装不能成功(估计还是因为Google 服务器不能
访问吧)
第二种方法可用,我的机器是win10,接下来,就介绍它吧
1. Chocolatey 安装

从这里进去

这个就是安装
完成后就是完成了
我装的时候版本如下

2. dart-sdk
choco install dart-sdk

如果你有需要,关于历史版本下载
choco install dart-sdk –version <version>
二.DARTIUM
如果你需要开发前端应用,那么这一步是你需要的内容

Dart2.0 后就不需要了,显然,我下载时候还不是时候
Choco install dartium

也就是一个包含Dart VM(运行时,即虚拟机)的chrome 浏览器,你的Dart 代码在这个
浏览器里能直接被执行,而不需要借助工具转成js 代码。当然js 代码就可以在任意浏
览器运行了
别急,Dart2.0 取消了这玩意,就意味着,Google 借助于dartdevc(一款编译器),你的
Dart 代码能被所有浏览器识别(为JS 代码,我个人猜测)
好吧,2.0 的风暴快点到来吧,我都等不急了:)

*************************

Dart IDE的安装 DartEditor,可以编辑,调试,运行

*************************

你需要IDE 来开发Dart 代码,和调试运行功能
一.安装
choco install darteditor
二.运行安装目录下的DartEditor.exe
(C:\tools\dart)
DartEditor.exe
三.但是
就如同我经典安装dart-sdk 失败一样,这个IDE 在我机子上装载不上JAVA 虚拟机
(JVM.dll),尽管它报错信息

就是正确的虚拟机地址
可是,可是我,也搞不清,一往情深的错误。
Fuck~!!!,由它去吧,我也不是IDE 控,哈哈哈
四.风格
据说跟Eclipse 和VS 很像
我想大家自己去学吧
前提是你得比我幸运
忘了说了,我的JDK 是ver8, 根据我没去尝试的下一步,我建议你装JDK6 去碰碰运气

*************************

¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥

下边我们看看DEMO吧

//服务器端的控制台程序

//main.dart

//main.dart
import ‘dart:math‘;
class Point {
num x, y;
Point(num this.x, num this.y);
Point scale(num factor) => new Point(x*factor, y*factor);
num distance() => sqrt(x*x+y*y);
}
void main() {
Point a = new Point(12, 23).scale(10);  num old = a.distance();
print("You will live for ${a.distance()} years, don‘t you?$old:YESORNO.");
}

//运行

嗯,还是很吊的嘛!

//浏览器(客户端)

//DartWebApp.dart
import ‘dart:html‘;
class DartWebApp {
void run() {
write("Hello World!");
}
void write(String message) {
// the HTML library defines a global "document" variable
document.query(‘#status‘).innerHtml = message;
}
}
void main() {
new DartWebApp().run();
}
//dart.html
<!DOCTYPE html>
<html>
<head>
<title>Dart Web App</title>
</head>
<body>
<h1>Dart Web App</h1>
<h2 id="status">dart is starting up...</h2>
<script type="application/dart" src="DartWebApp.dart"></script>
<script src="http://dart.googlecode.com/svn/branches/bleeding_edge/dart/client/dart.js">
</script>
</body>
</html>
//dartium 里,也级启动那里面的chrome.exe 浏览器
运行dart.html 页面
1. 老问题,google 的svn 在国外,根本连不上还要去连,很慢
2. 当然能运行了

#dart.js 的作用是,如果浏览器不支持Dart,上面这个dart.js 文件将把application/dart 的
代码替换为等价的JavaScript 代码。
但是如前所述,它耽误我们了,所以干掉它
<!DOCTYPE html>
<html>
<head>
<title>Dart Web App</title>
</head>
<body>
<h1>Dart Web App</h1>
<h2 id="status">dart is starting up...</h2>
<script type="application/dart" src="DartWebApp.dart"></script>
</body>
</html>
再此打开dart.html,没有拖累,就是快,噢,不,是正常。哈哈哈

用其它浏览器试试吧

因为这个浏览器没有支持Dart VM,所以,就不能向你问好了,地球!哈哈哈

那怎么办呢?
有办法的啊,用dart2js 把DartWebApp.dart 转成javascript 代码,不就能加载了嘛!

OK!
你有了对应的DartWebApp.js 了,怎么做,你应该会了吧
<!DOCTYPE html>
<html>
<head>
<title>Dart Web App</title>
</head>
<body>
<h1>Dart Web App</h1>
<h2 id="status">dart is starting up...</h2>
<script src="DartWebApp.js"></script>
</body>
</html>

好了,没问题了

&&

类库

Dart 提供了下面这些类库支持客户端和服务器端开发:

核心库:包含通用数据结构和操作的接口。

HTML库:包含了支持 HTML5 DOM 的接口。

I/O 库:包含读写文件、目录、网络套接字和运行 HTTP server 的接口。

Isolate 库:包含创建 isolate 和 与 isolate 通信的接口,是 Dart 程序中用于并发和安全的机制。

Crypto 库:包含创建单向哈希 (SHA1, MD5, SHA256) 和 HMAC 支持的接口。

JSON 库:包含解析和生成 JSON 编码文本的支持。

单元测试库:包含用于编写 Dart 单元测试的函数和类。

&&

 Finally:

例子很简单,但说明的问题可是不得了,当你看到它支持的类库(如上),你就知道我说的不假

好吧,照例预言一下:

1. 未来服务端的c++/java会被Golang(GO)取代,不管你们信不信,我反正相信了

2. 未来客户端的javascript/java会被Dart取代,不管你们信不信,我反正相信了

哈哈,这世界变化快啊

Google是家了不起的公司,虽说,“唱的高,搞成的少”。但我们的企业不就是缺唱的吗?你仔细想想吧!

时间: 2024-11-10 15:15:06

Go断后,Dart冲前,Google的野心的相关文章

如何看待 Google 最新的系统 Fuchsia?

想必大家都知道了,前几天 Google 曝光了新 OS Fuchsia 的部分信息与 UI,已经很多人在后台给我留言,让我说说看法,那么趁我还没去美国,就给大家写篇文章普及下,顺便说下我个人对 Fuchsia 系统的期待与看法. Google 在开发一个全新的系统其实一直都不是秘密了,只不过 Google 一直没有透露出更多的消息,只透露说 Fuchsia 是完全区别于 Android 和 Chrome OS 的全新系统,我们都知道,开发一款操作系统可不是那么容易的事,虽然这对 Google 来

为Google每年带来100亿美元增长的A/B测试是什么?

最近,前Facebook工程师覃超一篇关于2010年到2015年Facebook改版网站首页历程的文章受到极大关注.按照他的记录,2012年,当时的Facebook产品副总裁带领一支公司内部顶尖高手组成的团队,历时大半年开发了新的网站首页,进行了重大的改版与更新.随后,Facebook对该首页进行了A/B测试:当测试到5%用户群的时候,各项数据指标都在下滑:当测试到12%用户群的时候,下滑趋势依旧明显.于是,Facebook不得不放弃了这支30余人团队近一年努力的结果. A/B测试是个什么鬼?

大型互联网技术架构4-分布式存储-II Google

The largest single database on earth - Google Spanner. 我们继续互联网技术架构-分布式存储. 上文大篇幅介绍了一些分布式存储的理论,偏重理论.可别小看这些理论,Google的各个神器都是建立在这些理论之上,甚至整个Apache的大数据3剑客项目都是受惠于这些理论.难怪@Tiger大牛讲Google靠的是一大批世界顶尖数据,物理,计算领域的Ph.D.,这些大神以及他们的Paper是Google为什么是Google的原因,以及Google没有开源

Google软件构建工具Bazel

转载Google软件构建工具Bazel FAQ 本文是我的翻译,原文在这里.欢迎转载,转载请注名本文作者和原始链接注:如果想了解Bazel的原理,可以看看我之前翻译的Google Blaze原理及使用方法介绍系列 Bazel是什么? Bazel是一个构建工具,即一个可以运行编译和测试来组装软件的工具,跟Make.Ant.Gradle.Buck.Pants和Maven一样. Bazel有什么特殊之处 Bazel是设计用来配合Google的软件开发模式.有以下几个特点: 多语言支持:Bazel支持J

揭秘Google CDN的神秘面纱

几个月前,Google 为即将到来的CDN服务推出了他们的 α 计划.我们一直密切关注他们的发展,同时,在2016年谷歌宣布CDN已经进入了测试阶段.我们已经讨论了 Google 的这个已经实现内容分发解决方案的新产品怎样适应各种不同的情况.我们已经看到谷歌在全球安装了800多个缓存的全局缓存,这主要是针对在ISP层面加快自己的服务.CDN使它们的程序与第三方供应商像Cloudflare,Level3,Akamai,Highwinds, Fastly,Verizon互相连接,必须允许他们使用谷歌

Google工程师打造Remix OS系统 桌面版安卓下载

三位前Google工程师打造的Remix OS系统终于来到了PC桌面上,现已可以下载尝鲜. Remix OS for PC基于Android-x86项目,由安卓5.1 Lollipop深度定制而来,不但兼容所有安卓应用和游戏,还针对桌面应用环境增加了各种使用功能,堪比Windows,并且能与Windows.Mac OS X系统共存. 本次放出的是Alpha预览版,版本号2016011201,体积约692.15MB,主要面向开发者和尝鲜者,可能会存在不稳定问题和很多Bug. 安装需要通过U盘进行,

小米的成功可以复制?

一: 2010年4月,一个新的手机品牌横空出世,那就是小米.雷军说,我们要用互联网思维卖手机,我们的手机是为发烧友而生. 小米之前,对于一部手机来说,它的配置高,也就意味着它的价格绝对不低,所以,对于极大多数的普通用户来说,他们能买到的手机,往往都是卡.慢.丑.尤其是对于爱折腾的年轻人来说,这种手机是不可忍受的,他们期望能有一款这样的手机,配置高,价格可以接受,也就是俗称的性价比要高.于是,当小米喊着“为发烧友而生”的口号进入这个市场的时候,这些用户们沸腾了.激动了.疯狂了.因为他们终于等到了这

(转载)李开复:我在硅谷看到的最前沿科技趋势

李开复:我在硅谷看到的最前沿科技趋势 新浪科技李根整理 15 天,100 人,2016 年新年伊始,李开复亲自带队奔赴硅谷. 26 位鼎鼎大佬,DST 米尔纳.Google 皮猜.雅虎杨致远.YC 孵化器 SAM.安卓之父 Andy Rubin…… 18 家时下最富盛名企业,苹果.谷歌.Facebook.Airbnb.特斯拉.推特.YC 孵化器…… 科技创新圣地硅谷有哪些趋势正在发生?什么样的科技会在下一阶段席卷全球.改变世界?通过投资奠定了当下互联网格局的 DST 创始合伙人米尔纳如何找“百亿

Android应用开发之PNG、IconFont、SVG图标资源优化详解

1 背景 最近因为一些个人私事导致好久没写博客了,多事之年总算要过去了,突然没了动力,所以赶紧先拿个最近项目中重构的一个小知识点充下数,老题重谈. 在我们App开发中大家可能都会有过如下痛疾(程序员和设计妹妹注意喽): 好多小的图标好烦人,又占体积还要考虑分辨率,一拉伸就模糊等. 同一个图标不同状态还有不同颜色的多张. 总是幻想IOS.Android.Web等对于一个图标只切一次图多好. 如果你有过类似的痛疾那么下面讨论的故事就是一个完美的解决方案,当然了,采用下面方案对于重型应用或者固件级的优