by Vivian Cromwell

通过维维安·克伦威尔(Vivian Cromwell)

电线之间:采访Microsoft Edge性能PM Nolan Lawson (Between the Wires: An interview with Microsoft Edge performance PM Nolan Lawson)

I interviewed Nolan Lawson, Web Performance PM at Microsoft Edge. He also maintains the popular open source library PouchDB together with others.

我采访了Microsoft Edge的 Web Performance PM的Nolan Lawson。 他还与其他人一起维护了流行的开源库PouchDB 。

告诉我们一些关于您的童年以及您成长的地方。 (Tell us a little bit about your childhood and where you grew up.)

I grew up in a small navy town called Bremerton, near Seattle. I had a pretty typical middle-class upbringing: my step dad worked for the naval shipyard, and my mom was a school nurse and later a school teacher.

我在西雅图附近的海军小镇布雷默顿长大。 我有一个非常典型的中产阶级成长经历:我的继父在海军造船厂工作,我的妈妈是一名学校护士,后来是一名学校老师。

As a child I was a voracious reader. I read lots of fantasy and horror books, from the Narnia series to everything by Stephen King. My teachers were suspicious of me reading adult horror novels, but they tolerated it because at least I was reading. I was also really into video games.

小时候,我是一个贪婪的读者。 我读了很多幻想和恐怖书籍,从纳尼亚系列到史蒂芬·金的所有作品。 我的老师对我读成人恐怖小说感到怀疑,但他们容忍了,因为至少我在读书。 我也很喜欢电子游戏。

I have a great appreciation for the outdoors thanks to an early experience in the Boy Scouts. I’ve also visited France a lot because my biological father is French. That gave me a bit of a travel bug, and as an adult I moved to Ottawa, to Geneva, and then to New York City before coming back to Seattle. I moved around every few years, just on a whim.

我对户外运动非常感谢,这要归功于童子军的早期经验。 我也去过法国很多,因为我的亲生父亲是法国人。 那给了我一些旅行的烦恼,成年后我搬到渥太华,去了日内瓦,然后又去了纽约,然后又回到了西雅图。 我每隔几年就动了一下,只是一时兴起。

At some point I realized it would be a good idea to go back home and be closer to family. My girlfriend also wanted to settle there, because that’s where her family is from too. I started looking for jobs around Seattle, and Microsoft became a pretty obvious choice.

在某个时候,我意识到回到家与家人更近是个好主意。 我的女友也想在那定居,因为那也是她家人的家。 我开始在西雅图附近寻找工作,微软成了一个显而易见的选择。

告诉我们您的初次编程经验。 (Tell us a little bit about your first programming experience.)

When I was six or seven, my uncle gave me a hand-me-down MS-DOS machine with a 5¼ inch floppy drive. It was ancient by today’s standards. It had basically two games: Snake and Gorillas, and it actually displayed the BASIC code before they started up. Those two games were all I could figure out to do with it.

当我六,七岁时,叔叔给了我一台具有5¼英寸软盘驱动器的手动MS-DOS计算机。 按照今天的标准,这是古老的。 它基本上有两个游戏: Snake和Gorillas ,并且在启动之前实际上显示了BASIC代码。 那两个游戏我都想办法解决。

“I didn’t get back into programming again until I was in college.”

“直到上大学后,我才重新回到编程领域。”

I also had a book on MS-DOS programming, so I took some time to write a really simple Batch script. When the computer would start up, it would print:

我也有一本关于MS-DOS编程的书,所以我花了一些时间来编写一个非常简单的批处理脚本。 当计算机启动时,它将打印:

“Hi, Nolan. Which game do you want to play? 1. Gorillas 2. Snake?”

“嗨,诺兰。 您想玩哪个游戏? 1.大猩猩2.蛇?”

And you would type one or two depending on which game you wanted to play. I was pretty proud of that script!

然后您将根据要玩的游戏键入一两个。 我为那个脚本感到骄傲!

When I was around nine, my daycare had a similar computer with even more games on it, so I decided to apply my Batch skills to it. Unfortunately, I messed up the computer and made it so you couldn’t play the games anymore. I felt guilty and it kinda scared me away. I didn’t get back into programming again until I was in college.

当我九岁左右的时候,我的托儿所拥有一台类似的计算机,上面有更多的游戏,因此我决定将Batch技能应用于该计算机。 不幸的是,我弄乱了电脑并制作了它,所以您再也无法玩游戏了。 我感到内,这让我很害怕。 直到上大学,我才重新回到编程领域。

As an undergraduate I studied linguistics, mostly because I was learning French and Japanese at the time. I was fascinated by languages. But after graduation, I realized it was kind of hard to get a job in linguistics. As it turned out, though, my department at the University of Washington had a Master’s program in computational linguistics, which seemed like a great option career-wise. That was how I finally got back into programming.

作为一名本科生,我学习语言学,主要是因为当时我正在学习法语和日语。 我着迷于语言。 但是毕业后,我意识到很难找到语言学的工作。 但事实证明,我在华盛顿大学的系拥有计算机语言学硕士学位,这在职业上似乎是一个不错的选择。 那就是我最终回到编程的方式。

是什么促使您参与PouchDB的? (What motivated you to get involved with PouchDB?)

Around 2012, I was working for an NGO in Geneva. We were building a web app for a client that was using CouchDB. Later on, I started playing with CouchDB for a side project. Through that I found PouchDB, which could sync data between CouchDB on the server and IndexedDB in the browser. I thought it was amazing.

2012年左右,我在日内瓦的一个非政府组织工作。 我们正在为使用CouchDB的客户端构建一个Web应用程序。 后来,我开始与CouchDB一起进行辅助项目。 通过该操作,我找到了PouchDB ,它可以在服务器上的CouchDB和浏览器中的IdexedDB之间同步数据。 我认为这太神奇了。

While working on that project, I noticed a few bugs in PouchDB. I realized I knew enough Android and enough JavaScript to solve the bugs. Eventually, I ended up fixing more bugs, and contributing to the project more frequently. In early 2014 I become one of the main contributors, and still am today.

在进行该项目时,我注意到PouchDB中的一些错误。 我意识到我知道足够的Android和足够JavaScript来解决这些错误。 最终,我最终修复了更多的错误,并更加频繁地为该项目做出了贡献。 2014年初,我成为主要贡献者之一 ,直到今天仍然如此。

The story of how PouchDB got started is pretty interesting. Back in 2010, Mikeal Rogers did this one-off experiment called IDBCouch, which only worked in Firefox Nightly because IndexedDB was so new at the time. Max Ogden later renamed it to PouchDB, when he was bicycle shopping in San Francisco and thought up the name “Portable Couch.” Then Dale Harvey, who works at Mozilla, picked up the project and did an enormous amount of work to get it running well in Firefox and Chrome.

关于PouchDB如何开始的故事非常有趣。 早在2010年, Mikeal Rogers进行了一次名为IDBCouch的一次性实验,该实验仅在Firefox Nightly中有效,因为IndexedDB当时还很新。 马克斯·奥格登(Max Ogden)后来在旧金山骑自行车购物时将其重命名为PouchDB,并想到了“ 便携式沙发 ”的名称。 然后,在Mozilla工作的Dale Harvey选择了该项目,并进行了大量工作以使其在Firefox和Chrome中正常运行。

When I came to the project in late 2013, I wanted PouchDB to work in all the browsers, like jQuery but for databases. I thought people should be able to drop it in and it should “just work” on old versions of Android, IE, and Safari. A lot of my early work was on cross-browser compatibility, which really helped PouchDB become more popular.

当我在2013年底参加该项目时,我希望PouchDB在所有浏览器(如jQuery)中都能使用,但适用于数据库。 我认为人们应该可以使用它,并且应该可以在旧版本的Android,IE和Safari上“正常工作”。 我的很多早期工作是关于跨浏览器兼容性的,这确实帮助了PouchDB变得越来越流行。

PouchDB is a good example of what the IndexedDB authors originally intended when they wrote the spec. They wanted people to build libraries on top of it, in the spirit of the extensible web manifesto. The original spec author, Nikunj Mehta, even wondered if someone would write a “JavaScript CouchDB.” Today, there are a lot of interesting libraries built on top of IndexedDB, including PouchDB, localForage, Dexie.js and Lovefield, which provide a more developer-friendly experience.

PouchDB是IndexedDB作者编写规范时最初意图的一个很好的例子。 他们希望人们本着可扩展的Web宣言的精神在其上构建库。 最初的规范作者Nikunj Mehta甚至想知道是否有人会编写“ JavaScript CouchDB”。 今天,有很多建立在IndexedDB的顶部有趣的库,包括PouchDB, localForage , Dexie.js和Lovefield ,它提供了更开发者友好的体验。

PouchDB是否从大型企业和社区寻求资金? (Did PouchDB seek funding from large corporations and the community?)

“I’ve always had this somewhat idealistic notion that PouchDB should be a passion project that’s not corrupted by money. I don’t want to be swayed by one organization or another to push it in a particular direction. It ought to be whatever’s best for users.”

“我一直抱有某种理想主义的观念,即PouchDB应该是一个不受金钱破坏的热情项目。 我不想被一个组织或另一个组织所吸引,将其推向特定的方向。 它应该是最适合用户的。”

We did try to seek funding pretty early on, around 2013. Dale set up a bounty system where each GitHub issue might have a notice saying, “Hey, if you solve this issue, there’s a bounty.” There were a few issues with that.

我们确实尝试在2013年左右早些时候寻求资金。Dale建立了一个赏金系统,每个GitHub问题可能都会有一个通知,说:“嘿,如果您解决这个问题,就会有赏金。” 有一些问题。

Random people could come in and submit a PR to fix one of the bounty issues. I recall one issue where the PR didn’t quite fix it, but it was halfway there, so I went in and fixed the other half. At that point, it was unclear who the bounty should go to. Should it be split in half? In the end, the person who offered the bounty didn’t even end up paying it. So this system didn’t work too well, and we scrapped it.

随机的人可以进来并提交PR来解决其中一个赏金问题。 我记得一个问题,PR并没有完全解决它,但是它已经解决了一半,所以我进了一步,修复了另一半。 在那时,尚不清楚赏金应该归谁。 应该将它分成两半吗? 最后,提供赏金的人甚至没有付清这笔钱。 因此,该系统无法正常运行,因此我们将其报废。

Today, PouchDB has grown to over 200 contributors, but essentially Dale is the BDFL and I’m the lieutenant. Recently we started the funding discussionagain, but we need to set up a formal governance model first. This is especially important to enterprises. IBM, which is heavily invested in CouchDB through Cloudant, wants to be able to tell their customers that CouchDB and PouchDB are rock-solid solutions to their problems. However, while CouchDB is under the Apache Foundation and has a very clear governance model, PouchDB doesn’t. So some enterprise clients might be a little concerned about that.

如今,PouchDB的贡献者已增长到200多个 ,但本质上Dale是BDFL,而我是中尉。 最近,我们再次开始了资金讨论 ,但我们需要首先建立一个正式的治理模型。 这对企业尤其重要。 通过Cloudant对CouchDB进行了大量投资的IBM希望能够告诉客户CouchDB和PouchDB是解决他们问题的坚如磐石的解决方案。 但是,尽管CouchDB在Apache Foundation之下,并​​且具有非常清晰的治理模型,但PouchDB却没有。 因此,某些企业客户可能对此有所担心。

I’ve always had this somewhat idealistic notion that PouchDB should be a passion project that’s not corrupted by money. I don’t want to be swayed by one organization or another to push it in a particular direction. It ought to be whatever’s best for users. We’re at this point in the maturity of the project, though, where we need to start asking the hard questions. For instance, we want to figure out how to raise and distribute money so we can give it out fairly to contributors. We’re exploring options right now, but we haven’t committed to anything yet.

我一直有这样一种理想主义的观念,即PouchDB应该是一个不受金钱破坏的热情项目。 我不想被一个组织或另一个组织所吸引,将其推向特定的方向。 它应该是最适合用户的。 不过,我们正处于项目的成熟阶段,我们需要开始提出棘手的问题。 例如,我们想弄清楚如何筹集和分配资金,以便我们公平地将其分配给捐助者。 我们目前正在探索各种选择,但我们尚未做出任何承诺。

关于OSS可持续性,您从PouchDB项目中学到了什么? (What have you learned from the PouchDB project when it comes to OSS sustainability?)

“That’s why I think it’s important to remember what it’s like to be a beginner. When you’re just starting out, even talking to an open-source maintainer can be intimidating.”

“这就是为什么我认为记住初学者的感觉很重要的原因。 当您刚刚起步时,甚至与开源维护者交谈也可能令人生畏。”

PouchDB was my first big open-source project. I have to hand it to Dale; he was my mentor from the start. He taught me all the fundamentals of how to interact in an open-source project.

PouchDB是我的第一个大型开源项目。 我必须把它交给戴尔; 从一开始他就是我的导师 他教了我有关如何在开源项目中进行交互的所有基础知识。

In the beginning, even just talking to Dale Harvey on IRC was intimidating. He was the kind of person who gives talks at conferences; people respected him. I was just some rando on the Internet. But Dale is always very patient with new contributors. He responds to everyone’s questions and issues. Even if he thinks something’s a bad idea, he’ll tell them gently. Slowly, I realized Dale is just a normal human being, and he’s happy to have people involved in the project.

刚开始时,即使只是与IRC的Dale Harvey交谈也是令人生畏的。 他是那种在会议上发表演讲的人。 人们尊重他。 我只是互联网上的一名兰多。 但是Dale对新的贡献者总是很耐心。 他回答每个人的问题。 即使他认为某事是一个坏主意,他也会轻柔地告诉他们。 慢慢地,我意识到Dale只是一个普通的人,他很高兴有人参与该项目。

That’s why I think it’s important to remember what it’s like to be a beginner. When you’re just starting out, even talking to an open-source maintainer can be intimidating. I learned from Dale to be a thoughtful maintainer and to always encourage people to contribute.

这就是为什么我认为记住初学者的感觉很重要的原因。 当您刚入门时,甚至与开源维护者交谈也可能令人生畏。 我从戴尔(Dale)中学到了要成为一个周到的维护者,并始终鼓励人们做出贡献。

Today, PouchDB is very mature, and it requires a huge amount of knowledge to get started, which is challenging to new contributors. One thing I’d like to fix is to make it a little bit easier for newcomers to get on board. That’s something I think is missing right now.

今天,PouchDB已经非常成熟,它需要大量的知识才能入门,这对新的贡献者来说是挑战。 我想解决的一件事是使新来者更容易加入。 我认为这是现在缺少的东西。

自2010年以来,我们一直在谈论“脱机优先”。您认为我们终于可以为此做好准备了吗? 今天的主要挑战是什么? (“Offline first” is something we have been talking about since 2010. Do you think we are finally ready for it? What are the main challenges with it today?)

Offline is really difficult. It’s one of those things that’s even missing from a university computer science education. What folks don’t realize is, when you’re building an offline-first application, you are essentially building a distributed system: client and server. Just by storing data on those two nodes, you have all the theoretical problems of the CAP theorem: consistency, availability, and partition tolerance — pick two.

离线真的很困难。 这是大学计算机科学教育中甚至还缺少的东西之一。 人们没有意识到的是,当您构建脱机优先应用程序时,实际上是在构建分布式系统:客户端和服务器。 仅通过将数据存储在这两个节点上,您便具有CAP定理的所有理论问题:一致性,可用性和分区容限-选择两个。

So if you’re building that kind of system, but don’t realize it going in, you’ll probably end up just hacking something together. You may think you got 100% of the way there, but you really only got 90%, and the remaining 10% may take years to finish. It’s taken years to fix all the edge cases in PouchDB.

因此,如果您正在构建这种系统,但是不知道它会进入其中,那么您可能最终只会一起入侵某些东西。 您可能会认为自己达到了目标的100%,但实际上只有90%,而剩下的10%可能要花费数年才能完成。 在PouchDB中修复所有极端情况花了几年的时间。

One of the things we’re trying to do with PouchDB is to raise awareness and help people think about the inherent issues of offline-first architecture. PouchDB has a built-in concept of conflict management, because CouchDB thought about those problems from the very beginning. It’s designed with the multi-version concurrency control model, which answers the question of what happens when the client and server get out of sync.

我们正在尝试使用PouchDB进行的一件事是提高认识并帮助人们思考脱机优先架构的内在问题。 PouchDB具有内置的冲突管理概念,因为CouchDB从一开始就考虑到这些问题。 它是使用多版本并发控制模型设计的,该模型回答了当客户端和服务器不同步时会发生什么的问题。

User experience is another big problem that hasn’t really been solved yet in offline-first. I think that new models like Progressive Web Applications will force us to start to think about how to communicate this to users. There’s a great post from Jesse Beach where she talks about how to effectively communicate offline states, and at Offline Camp we discussed some of these techniques, like switching the UI to grayscale when the app goes offline. It’s not as negative or jarring as an alert, but it’s a subtle indication that you’re offline.

用户体验是另一个离线优先解决的大问题。 我认为诸如渐进式Web应用程序之类的新模型将迫使我们开始考虑如何将此与用户进行交流。 杰西海滩 ( Jesse Beach)上有一篇很棒的文章 ,她谈到如何有效地传达离线状态,在离线营地中,我们讨论了其中一些技术,例如当应用程序离线时将UI切换为灰度。 它不像警报那样消极或刺耳,但这是您处于离线状态的微妙指示。

There’s been a great deal of progress on offline first, but it’s still definitely an unsolved problem.

首先,离线方面已经取得了很大的进步,但这绝对是一个尚未解决的问题。

是什么让您决定加入Microsoft Edge团队? 从小型初创公司到大型组织,您对前六个月的印象如何? (What made you decide to join the Microsoft Edge team? What is your impression of the first six months, going from a small startup to a large organization?)

“But there’s a general feeling across the company now that when we’re transparent and seeking feedback from the community, it works out well for us.”

“但是,现在,整个公司普遍感到,当我们保持透明并寻求社区的反馈时,这对我们来说很有效。”

I came to Microsoft Edge because I wanted to help make the web platform better. I thought it would be a good opportunity to build out a lot of the standards that I’m passionate about. For instance, we’re in the process of building out Service Workers and Progressive Web Apps, as well as improvements to IndexedDB. I wanted to be on the ground floor to see those things happen.

我之所以加入Microsoft Edge,是因为我想帮助改善Web平台。 我认为这是一个很好的机会来建立我热衷的许多标准。 例如,我们正在构建Service Worker和Progressive Web Apps以及对IndexedDB的改进。 我想在底层看到这些事情的发生。

Microsoft is fascinating to watch because it’s a company in transition. It’s moving from being fairly closed to being a lot more open. Certain teams have embraced this openness more than others, and even certain people within the same team. But there’s a general feeling across the company now that when we’re transparent and seeking feedback from the community, it works out well for us.

微软非常着迷,因为它是一家转型中的公司。 它已经从相当封闭的状态转变为更加开放的状态。 某些团队比其他团队甚至在同一团队中的某些人对开放性的接受程度更高。 但是,现在,整个公司都有一种普遍的感觉,那就是当我们保持透明并征询社区的反馈时,对我们来说效果很好。

I am still actively involved in the PouchDB project, but I tend to keep my work at Microsoft and PouchDB separate. I’ll triage GitHub issues on the way to work and then do some programming for PouchDB in the evenings or weekends. But I find these two blending together more and more, in a positive way. For example, I might find a bug in IndexedDB on Edge while I’m working on PouchDB issues.

我仍然积极参与PouchDB项目,但我倾向于将我在Microsoft和PouchDB的工作分开。 我将对GitHub问题进行分类,然后在晚上或周末为PouchDB进行一些编程。 但是我发现这两种方式越来越以积极的方式融合在一起。 例如,当我处理PouchDB问题时,可能会在Edge上的IndexedDB中发现一个错误。

带领我们完成在Microsoft Edge担任绩效PM的一天。 (Walk us through a day in the life of being a performance PM at Microsoft Edge.)

I’m on the performance team, so most of my job centers around identifying performance problems in the browser and communicating those problems to the web developers and the browser team.

我是性能团队的一员,所以我的大部分工作都围绕着识别浏览器中的性能问题并将这些问题传达给Web开发人员和浏览器团队。

One project I’ve been working on is “Performance Clubs,” where we invite web teams to come in and talk about their site’s performance. Usually these are Microsoft sites like Outlook.com and MSN, but sometimes they’re also external partners. When they come in, we do a deep performance analysis of the website using the same tools that we use to build the browser itself. Then we give performance advice to them so they can go back and make their websites faster. I also file issues reported by the site authors and write test cases.

我一直在研究的一个项目是“ Performance Clubs”,我们邀请网络团队加入进来,讨论他们网站的性能。 通常,这些网站是Microsoft网站,例如Outlook.com和MSN,但有时它们也是外部合作伙伴。 当它们进入时,我们将使用与构建浏览器本身相同的工具对网站进行深入的性能分析。 然后,我们向他们提供性能建议,以便他们可以回头并使其网站更快。 我还归档了站点作者报告的问题并编写了测试用例。

The performance clubs are private for now. Not everyone wants to take the aspects of their websites that they’re not proud of and put them out on public display; it’s like airing your dirty laundry. There has been some discussion about maybe anonymizing and publishing the data, but it’s incredibly difficult to do without revealing the site that you’re analyzing. There’s been some recent controversy about public performance audits; it’s not always welcome.

表演俱乐部目前是私人的。 并非每个人都希望将自己不满意的网站内容放到公众面前展示; 就像在晾脏衣服一样。 已经进行了一些讨论,可能涉及匿名化和发布数据,但是如果不透露正在分析的站点,很难做到。 最近有一些关于公共绩效审计的争议; 它并不总是受欢迎。

鉴于最近引起了热烈的讨论,浏览器供应商和框架作者如何在Web性能上进行更紧密的协作? (How can browser vendors and framework authors collaborate more closely on web performance, given that it has been a heated discussion recently?)

“…the people who can provide the most value here are JavaScript library and framework authors. They’re in a position where they can be impartial and compare performance across browsers, which is extremely valuable to browser vendors.”

“……在此能提供最大价值的人是JavaScript库和框架作者。 他们处于公正的位置,可以在不同浏览器之间比较性能,这对浏览器供应商来说非常有价值。”

I think it’s important for web developers to understand why performance is such a touchy subject. Browsers don’t compete on API features — we stopped doing that when we agreed to implement web standards — but browsers do compete on performance. Speed is a huge selling point for a browser. Every browser claims to be the fastest, kind of like how McDonald’s and Burger King each claim to have the best burgers. Obviously they can’t both be right.

我认为对于Web开发人员来说,重要的是要理解为什么性能如此棘手。 浏览器在API功能上没有竞争-当我们同意实施Web标准时,我们就停止了这样做-但是浏览器在性能上确实竞争。 速度是浏览器的巨大卖点。 每个浏览器都声称是最快的,就像麦当劳和汉堡王各自声称拥有最好的汉堡一样。 显然他们不可能两者都是正确的。

In general, browser vendors only speak publicly about what they do well. If you talk privately with someone who works on a browser team, they can easily tell you 50 things the browser does well and 50 things it doesn’t do well; they know them by heart. But publicly we tend to only talk about the stuff we do well, because there are business implications there.

通常,浏览器供应商只会公开谈论他们的优势。 如果您与浏览器团队的成员私下交谈,他们可以轻松地告诉您浏览器运行良好的50件事和运行不正常的50件事。 他们很了解他们。 但是在公开场合,我们倾向于只谈论我们做得好的事情,因为那里存在业务隐患。

For instance, when the WebKit team comes out with the Speedometerbenchmark or the MotionMark benchmark, it’s no surprise that Safari wins. Similarly, when Microsoft writes a blog post about how we have a great JavaScript Engine, we tend to talk about Octane and JetStream. Surprise, surprise: we win on those benchmarks.

例如,当WebKit团队推出Speedometer基准或MotionMark基准时,Safari获胜就不足为奇了。 同样,当Microsoft撰写有关如何拥有出色JavaScript引擎的博客文章时,我们倾向于谈论Octane和JetStream 。 惊喜,惊喜:我们在那些基准上取胜。

I think the people who can provide the most value here are JavaScript library and framework authors. They’re in a position where they can be impartial and compare performance across browsers, which is extremely valuable to browser vendors. Unfortunately I feel many of them could be doing better on this.

我认为可以在此提供最大价值的人是JavaScript库和框架作者。 他们处于公正的位置,可以在不同浏览器之间比较性能,这对浏览器供应商来说非常有价值。 不幸的是,我觉得他们中的许多人可能会做得更好。

There’s a lot of interest in web performance today, and you see many JavaScript frameworks competing with one another on performance — React, Inferno, Preact, Vue, Svelte, etc. But when you look at their benchmarks, they’re often only testing in Chrome or maybe Mobile Safari. Sometimes they don’t even specify which browser they test on, so you just have to assume it’s Chrome.

有很多的当今网络性能的兴趣,你可以看到很多JavaScript框架与性能相互竞争- 阵营 , 地狱 , Preact , Vue公司 , Card.svelte ,等等。但是当你看到他们的基准,他们往往只在测试Chrome或也许移动Safari浏览器。 有时他们甚至没有指定要测试的浏览器,因此您只需要假设它是Chrome。

One framework that’s bucking this trend, which I really love, is Ember. They’ve created their own benchmark, the Ember Benchmark, and they sometimes go on Twitter and maybe raise some eyebrows by pointing out that Chrome doesn’t do as well on their benchmarks as Safari.

我真正喜欢的一个逆转这种趋势的框架是Ember 。 他们创建了自己的基准测试Ember Benchmark ,有时他们会在Twitter上露面 ,并指出Chrome与Safari相比在基准测试中表现不佳,因此引起了一些关注。

This is great feedback for browser vendors. Even if we don’t send public signals about how we feel about the benchmark, we may use it internally and work hard to make our browser better. I would love to see more cross-browser benchmarking and more recognition from JavaScript framework authors that it’s valuable to test across browsers. That’s the big thing I see missing right now.

对于浏览器供应商来说,这是一个很好的反馈。 即使我们不向公众发送有关基准测试感觉的信号,我们也可能会在内部使用它并努力使浏览器变得更好。 我希望看到更多的跨浏览器基准测试,以及JavaScript框架作者的更多认可,这对于跨浏览器进行测试非常有价值。 这是我现在错过的大事情。

Edge has pretty good browser market share; it’s improving anyway. I don’t think it’s safe to just ignore browsers because they have too low of a market share, especially because a lot of web developers have a very skewed perception of what the market share is. Windows is the dominant operating system in the world; it’s used by about 90% of all desktop users. And Android is the most popular mobile operating system on the planet by far.

Edge拥有相当不错的浏览器市场份额; 无论如何它正在改善。 我认为仅仅忽略浏览器是不安全的,因为它们的市场份额太低,尤其是因为许多Web开发人员对市场份额的看法非常不正确。 Windows是世界上主要的操作系统。 大约90%的桌面用户都在使用它 。 到目前为止,Android是全球最受欢迎的移动操作系统 。

If you just look at web developer conferences, though, you could be forgiven for thinking that the world is purely Mac, or that everybody is using Chrome, or that most people are carrying an iPhone. But the reality is far different. I would say web developers are doing a big disservice to their users if they live in that bubble and assume that everyone else is living in that bubble too.

但是,如果只看Web开发者大会,您可能会认为世界纯粹是Mac,或者每个人都在使用Chrome,或者大多数人都在使用iPhone,这是可以原谅的。 但是现实却大不相同。 我要说的是,如果Web开发人员生活在该泡沫中并假设其他所有人也生活在该泡沫中,则会给用户带来极大的伤害。

在编程之外您还有哪些其他爱好或兴趣? (What other hobbies or interests do you have outside of programming?)

I play a little guitar and sing a little, mostly for myself. I have a YouTube channel where I post some of my performances. I don’t perform publicly.

我弹一点吉他,唱歌一点,主要是为了我自己。 我有一个YouTube频道,我在那里发布一些表演 。 我不公开表演。

我对电子竞技真的很感兴趣。 我花了大量时间观看Super Smash Brothers锦标赛或观看视频游戏的运行速度。 速度的运行实际上使我想起了很多浏览器性能。 您试图将其优化为尽可能快的速度,有时您会作弊很多,例如使角色在墙壁上出现毛刺。 有时我发现,一个经过良好调整的网站就像是一个经过调整的速度运行-您作弊要取得成功。 看到这些相似之处真是有趣。 (I’m really interested in e-sports. I spend a lot of time watching Super Smash Brothers tournaments or watching video game speed runs. Speed runs actually remind me a lot of browser performance. You’re trying to optimize this thing to go as fast as possible, and sometimes you’re cheating quite a bit, such as making your character glitch through a wall. Sometimes I find that a well-tuned website is like a well-tuned speed run — you cheat a bit to get ahead. It’s kind of funny to see the parallels.)

您的编程英雄是谁? (Who are your programming heroes?)

I really admire D. Richard Hipp, the creator of SQLite, which is arguably the most popular database on the planet. SQLite is a rigorous piece of software with 745 times as much test code as code. You could send that thing to the moon.

我真的很佩服SQLite的创建者D. Richard Hipp ,它可以说是全球最受欢迎的数据库。 SQLite是一款严格的软件,其测试代码是代码的745倍。 你可以把那东西送上月球。

Richard Hipp is also something of a programming Renaissance Man; he’s implemented lots of interesting things. He wrote a whole version control system called Fossil. He wasn’t happy with Git, so he wrote an entire version control system, and that’s the version control system used for SQLite.

理查德·希普(Richard Hipp)还是一位编程复兴者。 他实现了很多有趣的东西。 他编写了一个称为Fossil的完整版本控制系统。 他对Git不满意,因此他编写了一个完整的版本控制系统,这就是用于SQLite的版本控制系统。

If you look at SQLite source code, you’ll also find my favorite open source license of all time, which says “In place of a license, I offer you this prayer.” It’s really beautiful, like a poem.

如果您查看SQLite源代码,您还将找到我最喜欢的开源许可证,上面写着:“代替许可证,我为您祈祷。” 真的很美,就像一首诗。

And yet despite his success, Hipp is also incredibly humble. He never boasts in any interview. I find it inspiring to see someone who is so humble, and yet so proficient in the software world.

尽管他取得了成功,但希普还是非常谦虚。 他从来没有自夸过任何采访。 我发现看到一个谦虚但精通软件世界的人鼓舞人心。

This project is made possible with sponsorships from frontendmasters.com, egghead.io, Microsoft Edge and Google Developers.

来自frontendmasters.com , egghead.io , Microsoft Edge和Google Developers的赞助使该项目成为可能。

Donate to support this project.

捐款支持该项目 。

To suggest a maker you’d like to hear from, please fill out this form.

要建议您想听听的制造商,请填写此表格 。

You can also send feedback to betweenthewires on Twitter.

您还可以发送反馈betweenthewires在Twitter上。

翻译自: https://www.freecodecamp.org/news/between-the-wires-an-interview-with-microsoft-edge-performance-pm-nolan-lawson-ca3240dec2eb/

电线之间:采访Microsoft Edge性能PM Nolan Lawson相关推荐

  1. Microsoft Edge使用方法和心得

    Microsoft Edge 使用方法和心得 本文目录: 一.写在前面的话 二.Edge浏览器简介 三.Microsoft Edge性能 3.1.睡眠标签 3.2.启动加速 3.3.清晰度提升 四.M ...

  2. 电线之间:采访开发商和企业家Guillermo Rauch

    by Vivian Cromwell 通过维维安·克伦威尔(Vivian Cromwell) 电线之间:采访开发商和企业家Guillermo Rauch (Between the Wires: An ...

  3. Microsoft Edge 提供快速的 JavaScript 性能

    我们已经在 Windows 10 和 Microsoft Edge 大大地提高了 Chakra JavaScript 引擎的性能.目的是尽可能地利用现有硬件,让你的 JavaScript 代码跑的更快 ...

  4. Microsoft Edge是一款现代化的浏览器,它拥有众多功能和强大的性能

    随着互联网的不断发展,浏览器已经成为我们日常生活中必不可少的工具之一.作为一款现代化的浏览器,Microsoft Edge拥有许多强大的功能,为用户带来更加流畅的浏览体验.最近,Edge推出了分屏功能 ...

  5. 电线bat_电线之间的新功能

    电线bat by Vivian Cromwell 通过维维安·克伦威尔(Vivian Cromwell) 电线之间的新功能 (What's New With Between the Wires) It ...

  6. mootools_电线之间:MooTools贡献者访谈

    mootools by Preethi Kasireddy 通过Preethi Kasireddy 电线之间:MooTools贡献者访谈 (Between the Wires: An intervie ...

  7. 国内quora_电线之间:Quora联合创始人Charlie Cheever的访谈

    国内quora by Vivian Cromwell 通过维维安·克伦威尔(Vivian Cromwell) 电线之间:Quora联合创始人Charlie Cheever的访谈 (Between th ...

  8. css tricks_电线之间:接受CodePen和CSS-Tricks声望的Chris Coyier访谈

    css tricks by Preethi Kasireddy 通过Preethi Kasireddy 电线之间:接受CodePen和CSS-Tricks声望的Chris Coyier访谈 (Betw ...

  9. 微软edge如何退出登录_如何更新Microsoft Edge

    微软edge如何退出登录 Microsoft 微软 Browser updates are important. Updates for Microsoft Edge deliver critical ...

最新文章

  1. 全国计算机表演赛登录,科技支教 妙笔生辉----第十六届全国“六一”儿童节计算机表演赛...
  2. 神经科学如何影响人工智能?看DeepMind在NeurIPS2020最新《神经科学人工智能》报告,126页ppt...
  3. IntelliJ IDEA 问题总结之中的一个 —— jar包、assets、maven、git
  4. 实例告诉你如何把 if-else 重构成高质量代码!
  5. 网站中人性化提示信息的JavaScript实现
  6. redis的主从数据库复制功能
  7. 使用spring ResponseEntity处理http响应
  8. [密码学基础][每个信息安全博士生应该知道的52件事][Bristol Cryptography][第9篇]香农对熵和信息的定义是什么?
  9. Unity3d之HashSlash学习笔记之(二)--角色基础类的构建
  10. Yocto tips (10): Yocto hellworld 加入一个软件包
  11. j2me游戏改成android,将j2me移植成android
  12. 计算机职业素养论文1500字,【职业素养论文】职业素养论文范文(共40篇)
  13. Postman的tests断言
  14. ******CSDN后引发 7K7K 、嘟嘟牛、178、多玩、猫扑、人人等各大知名网站数据库下载地址 (转载)...
  15. Java JVM参数调优配置
  16. 视网膜数据集(3)STARE
  17. 点清垃圾渗滤液脱色剂的现场应用和数据
  18. 数据库 - 数据查询
  19. “低头走路”与“抬头看天”
  20. 由ORA-01652想到的

热门文章

  1. Java-进阶:多线程2
  2. 大牛带你直击优秀开源框架灵魂,给大家安排上!
  3. 面试加分项!Android权限处理,手慢无
  4. 多亏了这篇文章,我的开发效率远远领先于我的同事
  5. 上海大都会 H.A Simple Problem with Integers
  6. 01_Struts2概述及环境搭建
  7. centos 7安装配置vsftpd
  8. 【Linux高频命令专题(23)】tar
  9. ASP.NET应用程序客户端执行的优化小技巧
  10. C#操作静态路由表(增、删、改、查、遍历)