尤雨溪:TypeScript不会取代JavaScript

Souleigh ✨ 等级 860 0 0

近日,Evrone 与 Vue.js 的作者尤雨溪进行了一次访谈,了解他对于无后端与全栈方法、以及 Vue.js 适用场景的看法,还有他本人如何在工作与生活之间取得平衡。

记者: 嗨 Evan,很荣幸你能接受我们的访谈。那就先从一个简单的问题开始:您的全职工作岗位是由 Patreon 资助的,大多数人恐怕都没有这样的机会。您能聊聊怎样在工作与生活之间找到平衡,特别是如何避免长期工作带来的倦怠心理吗?

尤雨溪: 虽然我这份工作看似自己说了算,而且大部分时间也都是待在家里,但我每天还是会遵照固定的时间表。庆幸我有孩子,所以只要完成了工作内容,我可以马上陪伴家人。另外,我会在感觉需要的时候给自己安排一段比较长的假期,可能是几个礼拜。这一点对于上班族来说可能比较困难。

记者: 厉害!Vue 3 版本即将发布,在此之后,您是打算休息一阵子,还是马上开始规划 Vite build 系统的下一个版本?

尤雨溪: 我总是存着一大堆工作。在 Vite 方面,目前的目标就是努力提升稳定性——这是一套新系统,用户总会在我当初的设计场景之外使用,所以我得花点时间思考项目的下一步要如何发展。关于 Vue 3.1,我也已经有了一点想法。但休息是肯定的,给自己充电非常重要!

记者: 您是 Google Creative Lab 中的创造力技术专家与艺术史专家。在 Vue 项目当中,您有没有感觉自己的数学、算法以及数据结构功底有点薄弱?在您看来,是不是只有学习过计算机科学理论才能成为程序员?还是说只要能写出平平无奇但却易于理解的代码就可以?

尤雨溪: 坦率地讲,我遇到的这类问题不太多。我个人觉得 Vue 或者说大部分前端框架对于数学和算法专业知识的要求不算太高——至少跟数据库比没那么高。 我觉得自己在算法或者数据结构方面的确不强,虽然提升这方面能够肯定会有所帮助,但想要管理好前端框架项目,最重要的还是了解用户、设计出合理的 API、建立技术社区并长期维护项目承诺。

我觉得编写所谓“平平无奇却易于理解”的代码没什么不好,我不太认同这话里隐藏的那种贬义倾向。 实际上,编写出这样的代码也需要一定经验,而且好代码的核心在于执行效率高而不是令人拍案称奇的实现思路。 没有接受专业的计算机科学教育当然也能编写软件,不过每一位开发者都应该重视专业教育背景带来的扎实基础。我个人一直采取比较务实的态度——先开始做事,哪怕做得不好。在做的过程中,我们会找到自己的不足之处,并确定下一阶段该从哪些方面提升自己。

记者: 说得好。借助 Nuxt.js 与 JAMstack 等技术方案,开发者得以专注于处理应用程序的前端部分,因为后端部分只需要直接交给 minimal/JS/BaaS 即可。您怎么看待这些“无后端”或者说“全栈”开发方法?

尤雨溪: 我觉得这是一种强调以技术推动产品制造的开发思路。开发者们之所以选择这样的栈,是因为它们正适合自己当前构建的产品类型:后端逻辑相对简单,而前端交互更值得关注。虽然不是什么万灵药,但这类方案确实非常适合特定一部分应用场景。

记者: Vue 已经经历过多次重写。如果时光可以倒流,您会对现在的年轻人们提出怎样的技术建议?

尤雨溪: 请一定认真思考这个问题:怎么才能更好地拆分与解耦内部模块。

记者: 最近几年来,我们发现 JavaScript 与 TypeScript 可以说是齐头并进。您是怎么看待这样的趋势的?是会最终向核心 JavaScript 当中添加某些类型,用 TypeScript 取代 JavaScript,还是做出其他选择?

尤雨溪: 我觉得向 JS 本体中添加类型的可能性不大——因为 JS 是一套由社区委员会负责类型设计的系统,而根据 TC39 委员会的运作方式来看,这事没戏。另外,TypeScript 也不会取代 JS,前者只是 JS 的一个超集。我个人认为,JS 与 TS(带类型的超集)并行发展才是最合理的未来方向,而且这一点在可预见的未来不会改变。

记者: Vue 的用户群体已经超过百万。您认为衡量技术采用率的最佳方法是什么?Stack Overflow 问题热度、GitHub 星评以及其他公共访问指标都不错,但也有不少企业用户需要在隔离网络中工作。他们提不出多少问题,但却实实在在在“使用技术”。我们该怎样把他们纳入到技术普及率的计算中来?

尤雨溪: 对于开源软件来说,核定采用率确实是个老牌难题了,因为用户并没有义务上报自己的使用情况。而作为软件作者,我们也确实没有可靠的采用率跟踪方法。也正因为如此,我才觉得 devtools 扩展用户数量应该作为最可靠的指标,因为它至少覆盖到了全体用户。

记者: 即将发布的 Vue.js 3 中包含大量摇树(Tree Shaking)处理方面的更新。在您看来,为什么摇树处理用了这么久才正式登陆现代框架?是因为里头有什么重大阻碍吗?

尤雨溪: 摇树的工作机制,取决于源代码的特定构造方式——换句话说,只有在项目起步时就在代码编写与 API 设计中考虑到摇树机制,才能保证摇树拥有最好的效果。而现在,我们之所以需要引入大量变更才能实现摇树友好,就是因为直接摇树要么会影响到 API 变更、要么需要进行重大的结构调整(这会带来严重风险)。

记者: Vue 3 当中“基于函数的组件 API”提案遭到了社区成员们的强烈反对。事后来看,您有哪些值得与其他开发者分享的观点?

尤雨溪: 社区成员们之所以反对,是因为他们担心项目管理方会废弃掉 Vue 当前的(2.x 版本)API,其实我们并没有这样的想法。作为项目作者与维护者,我们一般会在日常工作中与热心的早期采用者交互,而他们对于新思路的态度往往比普通用户更开放、更积极,这也导致我们没能对向下兼容性给予应有的重视。用户不喜欢自己熟悉的一切被他人硬生生夺走,我已经深切理解到了这一点。

总而言之,最重要的是了解用户需求。但这事并不简单,有时候我们需要投入大量精力才能获得可靠的需求信息。倾听是必须的,综合各方面诉求才能得出合理的结论。

记者: Vue 的用例范围非常广泛,从小型企业到中型代理机构,再到市值数十亿美元的上市公司皆在其中。LV 公司与美国宇航局也在使用 Vue。有哪些使用 Vue 编写的高复杂度真实前端案例,给您留下了深刻印象?

尤雨溪: 问题在于,大多数“高复杂度真实前端案例”都不开源。我觉得要回答这个问题,大家可以多看看 Vue Devtools 与 Vue CIL UI,虽然它们不属于典型的面向消费者型 Web 应用程序,但无疑都属于由 Vue 编写而成的强大界面成果。

收藏
评论区

相关推荐

尤雨溪:TypeScript不会取代JavaScript
近日,Evrone 与 Vue.js 的作者尤雨溪进行了一次访谈,了解他对于无后端与全栈方法、以及 Vue.js 适用场景的看法,还有他本人如何在工作与生活之间取得平衡。 记者: 嗨 Evan,很荣幸你能接受我们的访谈。那就先从一个简单的问题开始:您的全职工作岗位是由 Patreon 资助的,大多数人恐怕都没有这样的机会。您能聊聊怎样在工作与生活之间找到
下一代前端构建工具 Vite (中英双语字幕)
关于 Vite,来看看作者本人怎么说。本视频是 Vue 以及 Vite 作者 尤雨溪 在 2021 年 2 月 12 日在 Twitch 上做客 GitHub Open Source Friday 节目的直播视频。在视频里有尤大关于 Vite 的各项功能的详细阐述、大神在线编码、在线 Debug、大佬 diss webpack 以及对 Vite 的哲学思考。
[译]尤雨溪: Vite 会取代 vue-cli 吗?
前言 最近在逛 Twitter 时,突发奇想去看了一眼尤大的账号,发现了一段有趣的推文,在尤大国内的社交平台账号中(_知乎、微博等_)并没有发现他发表过类似的话,倒是听过他说会有越来越多的人弃坑 Webpack 用 Vite,还听过有人说 vuecli 的下一个版本就要用 vite 重构了,不过看尤雨溪这说法,好像是 vite 是 vite,cli
[译]尤雨溪:Vue3将不会支持IE11
之前尤雨溪曾说过,Vue3 将会出一个 IE11 的兼容版本,现在 Vue3.0都已经发布很久了,却迟迟不见兼容版本的出现,原来是因为微软积极的推进自家的新 Edge 浏览器,并打算放弃 IE,这让尤雨溪同学觉得兼容 IE 是否还有必要,来看看他的知乎:译文从 Vue3 开始开发的时候一直到2018年底,我们一直被问到有关 IE11 的支持。
Vue 3 计划放弃支持 IE11
Vue.js 作者尤雨溪就 Vue 3 支持 IE11 的计划提交了新提案。提案摘要:1. Vue 3 将不会支持 IE11 2. 原定投入 Vue 3 IE11 支持的精力将投入给 2.7,移植 3.x 兼容的新功能,包括: Composition API \<script setup\ 以及其它新的单文件组件特性
看完尤雨溪338条知乎回答后,我突然找到了前进的方向
1、想要最大化创造价值,最重要的是两点。第一,会发现问题,并且判断出什么问题值得解决。第二,具备高质量解决某个领域问题的技术水准。2、为什么程序员不自己单干?可以啊,那些说难的,就是能力不够罢了(不一定是技术能力)。3、先问是不是,再问为什么。大部分 “我身边...” 开头的回答都是以偏概全的,只有数据才会给你真相。4、英语是否会成为开发工程师的发展瓶颈?回
了解什么是 TypeScript
内容纲要 了解什么是 TypeScript TypeScript 基本语法 TypeScript 介绍 TypeScript 是什么TypeScript 是 JavaScript 的强类型版本。然后在编译期去掉类型和特有语法,生成纯粹的 JavaScript代码。由于最终在浏览器中运行的仍然是 JavaScript,所以 TypeScript 并
Vue 3.0 有哪些新特性值得我们提前了解
一、迎接 Vue 3.0 1\. 简介在这里插入图片描述Vue.js 作者兼核心开发者尤雨溪宣布 Vue 3.0 进入 Beta 阶段。 已合并所有计划内的 RFC 已实现所有被合并的 RFC Vue CLI 现在通过 vueclipluginvuenext 提供了实验性支持 2\. 新特性重点关注: 更快更省
1元速抢,黄轶老师的《Vue.js 3.0 源码解析》课程
你好,我是黄轶(ustbhuangyi), **现任 Zoom 前端架构师,曾先后于百度、滴滴从事前端研发工作。**平时喜欢钻研新技术、新框架,关注前端自动化、工程化、前端架构。 在 2019 年的 10 月 5 日, Vue.js的作者:尤雨溪在微博宣布 Vue 3.0 的源码开放了。 ![](https://oscimg.oschina.ne
vite1.0还没学呢 这就出2.0了?
![](https://oscimg.oschina.net/oscnet/d29bdf29-db8b-46f2-bfcf-8e1cc1993aaa.gif) 前言 今天逛微博的时候不小心看到了尤雨溪的一条微博: ![](https://oscimg.oschina.net/oscnet/71fc3f83-2180-4e88-84e4-31dfcc5a
10分钟了解一下最近很火的Vite
![](https://oscimg.oschina.net/oscnet/155d0d0c-b907-46ab-a172-a8cb686c6ead.png) 关注公众号 **前端人**,回复“**加群**” 添加无广告学习群 > Vite 是 vue的作者尤雨溪开发的打包工具,目前亮点是本地开发时热加载编译极快,在大型项目中体验较
TypeScript 中提升幸福感的 10 个高级技巧
![](https://oscimg.oschina.net/oscnet/ec4f1d7b-017a-4d73-bb1a-9d3cd8b5e0ba.png) 用了一年时间的 TypeScript 了,项目中用到的技术是 Vue + TypeScript 的,深感中大型项目中 TypeScript 的必要性,特别是生命周期比较长的大型项目中更应该使用 Ty
TypeScript学习笔记
TypeScript学习笔记 -------------- TypeScript是JavaScript的超集,任何合法的JS程序都是合法的TypeScript程序 TypeScript通过向JavaScript增加可选的静态类型声明来把JavaScript变成强类型程序语言。 静态类型声明可约束函数、变量、属性等程序实体。 TypeScript语言内
TypeScript快速入门
TypeScript是JavaScript类型的超集,它可以编译成纯JavaScript。 TypeScript可以在任何浏览器、任何计算机和任何操作系统上运行,并且是开源的。 TypeScript是微软开源的,它有这强大的技术后盾。 ![](https://oscimg.oschina.net/oscnet/3b63ac2b-6b7f-4c49-
Vue 兼容 ie9 的全面解决方案
前言 -- **背景情况** * vue - 2.5.11 * vue-cli 使用模板 `webpack-simple` * http请求:axios Vue 官方对于 ie 浏览器版本兼容情况的描述是 ie9+,即是 ie9 及更高的版本。经过测试,Vue 的核心框架 `vuejs` 本身,以及生态的官方核心插件(VueRouter、V