
转载自www.youtube.com/watch?v=T2T...
原文
Wow, can you hear me? Great.
Let me start with a quick disclaimer: I'm actually a product of this institution, and one of my former teachers is here. So if this talk really goes south, you know who to complain to.
It's truly inspiring to stand in front of so many young people who are trying to help the world. You're about to do something great, and I hope the world will benefit from what you create.
Let me begin with a brief introduction. My name is Lars Bak, and I work at the local Google office. Despite the fancy title you gave me, I spend most of my time programming---and I hope many of you do the same. Can I see a show of hands? Great, thank you.
Google is a proud sponsor of this event and has been for several years. We're always looking for ways to help where we can. One example is Google's Crisis Response Team. About a year ago, during the catastrophic earthquake in Haiti, Google sent planes into the air to capture high-resolution images of the affected areas. These images helped relief organizations assess damage across different towns and coordinate their efforts.
So we try to help where we can, and I think that aligns closely with what you're trying to do this weekend.
I've been asked to speak about innovation in general terms---which is actually quite difficult. But before I get into that, let me give you some background so you understand my perspective.
I've spent the last 24 years working on virtual machines for object-oriented languages. You've probably heard of things like the JVM, Smalltalk virtual machines, or JavaScript engines. I've implemented several of these---in fact, I counted recently, and it's about ten.
The most recent one I worked on is V8, the open-source JavaScript engine used in Google Chrome. I hope you're all using Chrome---can I see a show of hands? Good, that's what I like to see.
V8 is an interesting piece of technology with several innovative aspects. When we first shipped it in September 2008, JavaScript performance was much slower. Since then, execution speed has improved dramatically. How much do you think? Ten times? No---fifty times.
JavaScript today runs about 50 times faster than it did less than two years ago, on the same hardware. That's pretty amazing---and we're not done yet.
As you may know, Chrome is open source, and so is V8. Anyone can take it, modify it, even close the source and sell it if they want to. Google strongly believes in the open-source movement, and I hope some of you are using Chrome and V8 in your own projects.
One of the great things about friendly competition is that it inspires people to do better. When we started working on V8, we approached other browser vendors and asked if they were interested in adopting this technology. None of them were. So we went home and built it ourselves.
After we released it, people started to pay attention. Other browser teams began developing their own improvements. Because V8 was open source, they could study our ideas, use them, or come up with their own.
What followed was a healthy competition in the browser space. Now, whenever a new browser is released, performance is a key benchmark---everyone wants to be faster than the others. I really like that.
And the result? Browsing the web today is much faster and more enjoyable than it was just a couple of years ago. It has also enabled innovation for web application developers. Previously, developers spent most of their time just trying to make things work because browsers were so limited. I won't mention any specific browser... but you probably know which ones I mean.
I'm proud to have contributed to pushing that competitive direction forward. However, I do have a bit of a bad conscience about it---but I'll come back to that later.
Now, how many of you actually like JavaScript? That's about what I expected... maybe ten people. I'll get back to that.
It's hard to give a universal recipe for innovation, but I can share a few key ingredients that I've learned over the years.
First, keep your team small. Ideally, everyone should be in the same room. This minimizes communication overhead---especially across time zones---and allows you to move quickly. Most teams I've worked with started with three or four engineers. As the product matures, you might grow to around ten people, which is still manageable.
Beyond that, things get complicated: more emails, more meetings---and I personally don't like meetings. So keep teams small and efficient, and avoid unnecessary meetings.
Second, you have to be passionate about what you're building. Passion often comes from competition. If you're competitive, you'll want to win---and that drive can push a team to excel. When you're behind, you're forced to innovate and come up with new ideas. I really like that dynamic.
When we started the V8 team, we set an aggressive goal: before releasing the product, we wanted it to be 20 times faster than existing solutions. It sounded completely insane, and most people laughed at us---but we did it.
If you don't set the bar high, you'll never reach extraordinary results. So being ambitious is another key ingredient of innovation.
Third, you need to be a specialist. Trying to innovate in a completely new field without deep expertise is extremely difficult. In the book Outliers, Malcolm Gladwell talks about the "10,000-hour rule"---the idea that mastery requires significant time and practice.
So don't jump around too much. Focus, invest the time, and become an expert.
Another important factor is the marketplace. Innovation only matters if it has an impact. If there's no audience or need, it doesn't matter how clever your idea is. So find a space where your work can truly make a difference---and I believe what you're doing this weekend does matter.
I've personally enjoyed competing with browsers like Internet Explorer, Firefox, and Safari. I hope you'll find that same passion for competition in your own careers.
Finally, here's something many companies don't like: sometimes, you have to break the rules. If you set ambitious goals---like making something 20 times faster---you need to focus intensely.
If someone tells you to attend a meeting that doesn't help you achieve that goal, you should feel empowered to say no. Protect your time and your focus. Innovation requires isolation and deep work; otherwise, progress is slow.
Now, back to my "bad conscience."
Yes, we made JavaScript dramatically faster---but as a computer scientist, I have to admit: JavaScript is probably one of the worst programming languages I've ever seen.
So it's a bit ironic---and somewhat painful---that by making it faster, we may have extended its lifespan.
On that note, I hope you all have a fantastic conference over the next two days. I wish you the best of luck.
Thank you.
中文翻译
哇,大家能听见我说话吗?太好了。
让我先作个简短的"免责声明":我其实也算是这所学校(机构)培养出来的,而且我的一位昔日恩师今天也在场。所以,如果这场演讲真的"翻车"了,你们知道该去找谁投诉。
站在这么多渴望改变世界的年轻人面前,真的非常振奋人心。你们即将去做一番了不起的事业,我希望这个世界能从你们的创造中受益。
先做个简单的自我介绍。我叫拉尔斯·巴克(Lars Bak),在本地的谷歌办公室工作。尽管大家给我安了一个听起来很酷的头衔,但我大部分时间其实都在写代码------而且我希望在座的各位也有着同样的爱好。能举手让我看看有多少人吗?太棒了,谢谢。
谷歌是本次活动引以为豪的赞助商,并且我们已经持续赞助好几年了。我们总是在寻找能够提供帮助的机会。谷歌的"危机响应团队"(Crisis Response Team)就是一个很好的例子。大约一年前,在海地发生特大地震时,谷歌派出了飞机在空中拍摄受灾地区的高分辨率图像。这些图像帮助救援组织评估了不同城镇的受损情况,并有效协调了他们的救援行动。
所以,我们力所能及地去提供帮助,我认为这与大家这个周末正在努力做的事情是不谋而合的。
主办方让我泛泛地谈一谈"创新"这个话题------这其实相当难。但在切入正题之前,我想先介绍一下我的背景,这样大家就能理解我看待问题的视角了。
过去24年里,我一直在从事面向对象语言虚拟机(Virtual Machines)的研发工作。你们可能听说过 JVM、Smalltalk 虚拟机或者 JavaScript 引擎之类的东西。我参与实现了其中的好几个------其实我最近数了一下,大概有十个了。
我最近研发的一个项目是 V8,它是谷歌 Chrome 浏览器所使用的开源 JavaScript 引擎。我希望你们都在用 Chrome------能举起手让我看看吗?很好,这正是我希望看到的。
V8 是一项非常有趣的技术,它包含了一些创新的设计。当我们在2008年9月首次发布它时,当时的 JavaScript 运行速度还非常慢。从那以后,它的执行速度得到了极大的提升。你们猜提升了多少?10倍?不------是50倍。
如今的 JavaScript 在相同硬件上的运行速度,比不到两年前快了大约50倍。这相当惊人------而且我们的工作还没有结束。
大家可能知道,Chrome 是开源的,V8 也是开源的。任何人都可以拿走它的代码,修改它,甚至把它闭源拿去卖掉也没问题。谷歌坚信开源运动的价值,我也希望在座的各位中有一些人能在自己的项目中使用 Chrome 和 V8。
良性竞争的一大妙处在于,它能激励人们做得更好。当我们刚开始研发 V8 时,我们接触过其他浏览器厂商,问他们有没有兴趣采用这项技术。结果没人感兴趣。于是我们只好打道回府,自己动手做。
但在我们发布它之后,人们开始关注了。其他浏览器团队开始开发他们自己的优化方案。因为 V8 是开源的,他们可以研究我们的想法,借鉴它们,或者想出他们自己的点子。
紧随其后的是浏览器领域的一场良性竞争。现在,每当有一款新浏览器发布时,性能都会成为一个关键的基准测试指标------每个人都想跑得比别人快。我非常喜欢这种氛围。
结果呢?今天浏览网页不仅速度大幅提升,体验也比几年前要顺畅得多。这同时也为 Web 应用开发者的创新扫清了障碍。以前,由于浏览器的限制太大,开发者们把大部分时间都花在如何让程序勉强跑起来上。我就不点名提某个特定的浏览器了......但你们大概懂我说的是哪一个。
能够为推动这种竞争趋势贡献一份力量,我感到非常自豪。不过,对此我确实也有点"良心不安"------至于为什么,我一会儿再说。
那么,在座各位中有多少人是真心喜欢 JavaScript 的?嗯,和我的预期差不多......大概只有十个人。关于这个,我也留到后面再说。
要给出一个放之四海而皆准的"创新秘方"是很难的,但我可以和大家分享一下我这些年总结出的几个关键要素。
第一,保持团队的小规模。 理想状态下,每个人都应该在同一个房间里办公。这能将沟通成本降到最低------尤其是跨越时区的沟通------从而让你们能够快速推进。我合作过的大多数团队,一开始通常只有三四个工程师。随着产品逐渐成熟,团队可能会扩充到十个人左右,这仍然是一个好管理的范围。
如果超过这个规模,事情就会变得复杂起来:更多的电子邮件,更多的会议------而我个人是非常讨厌开会的。因此,保持团队的小巧精悍,并尽量避免不必要的会议。
第二,你必须对自己正在开发的产品充满热情。 激情往往来源于竞争。如果你有好胜心,你就会想赢------这种动力能够推动一个团队追求卓越。当你处于落后境地时,你会被迫去创新,去想出新的点子。我非常喜欢这种动态的过程。
当我们刚组建 V8 团队时,我们设定了一个极具野心的目标:在产品发布之前,我们要让它的速度比现有的解决方案快上20倍。这听起来完全是个疯话,当时很多人嘲笑我们------但我们做到了。
如果你不把标准定得足够高,你永远也无法取得超凡的成就。所以,胸怀野心是创新的另一个关键要素。
第三,你需要成为专家。 如果你在某个全新领域缺乏深厚的专业知识,想要进行创新是极其困难的。马尔科姆·格拉德威尔(Malcolm Gladwell)在他的著作《异类》中提到了"一万小时定律"------也就是要达到精通的境界,需要投入大量的时间和精力去刻意练习。
所以,不要总是频繁地转换赛道。保持专注,投入时间,成为某个领域的专家。
另一个重要的因素是市场环境。 创新只有在产生实际影响时才有意义。如果没有受众或需求,你的点子再巧妙也无济于事。因此,要去寻找一个能让你的工作真正带来改变的领域------而我相信,大家这个周末在这里做的事情,就极具意义。
我个人非常享受与 Internet Explorer、Firefox 和 Safari 等浏览器的竞争过程。我希望你们在未来的职业生涯中,也能找到同样对竞争的热爱。
最后,这一点可能是很多公司不喜欢的:有时候,你必须打破常规。 如果你设定了宏大的目标------比如要把某样东西的性能提升20倍------你就必须保持高度的专注。
如果有人叫你去参加一个对实现该目标毫无帮助的会议,你应该要有底气去拒绝。保护好你的时间和你的注意力。创新需要一定程度的与世隔绝和深度工作;否则,进展将会极其缓慢。
现在,回过头来说说我的"良心不安"。
是的,我们确实让 JavaScript 的速度有了极大的飞跃------但作为一名计算机科学家,我不得不承认:JavaScript 可能是我见过的最糟糕的编程语言之一。
因此这就有些讽刺了------甚至让人有点痛苦------因为我们提升了它的速度,反而可能变相地为它"续了命"。
带着这个思考,我希望大家在接下来的两天里度过一场精彩的活动。祝你们好运!
谢谢大家。