探索aigc电商新纪元,火山引擎《云上新视界》公开课等你来报名!
写点什么

尤雨溪:typescript不会取代javascript-金马国际

  • 2020-09-11
  • 本文字数:2513 字

    阅读完需:约 8 分钟

尤雨溪:typescript不会取代javascript

重磅上线,10 周带你进行工具、对话及多模态等不同类型 agents 工程化开发实战!

近日,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 编写而成的强大界面成果。


原文链接:




2020-09-11 16:116373

评论 7 条评论

发布
摇树是什么呢
2020-09-19 16:33
回复
tree shaking
简单来讲,就是源代码构建时,删除无用的代码
2020-09-20 13:43
回复
回复
谢谢哈~
2020-10-21 20:06
回复
尤大是个实在的人, "平平无奇却易于理解", 在工程上,我们需要的是简单的东西,但不排除某些程序员有炫技的心理,喜欢搞一个特别复杂的东西,显示与众不同
2020-09-15 10:38
回复
任何事情都不是非黑即白的。举个例子,面条式 php 代码也是「平平无奇易于理解」的,c 里面的 goto: 也是「平平无奇易于理解」的。但正是由于它们太平平无奇,难以形成一定的结构性,反而造成工程上的灾难。因此我认为追求「平平无奇易于理解」应该在在共时性与历时性的基础上进行。
2020-09-21 22:34
回复
回复
“易于理解”的宾语是“要做什么”而不是“做了什么”
2021-02-01 17:55
回复
语言是这么容易被取代的吗
2020-09-14 09:43
回复
没有更多了
  • 开始做某件事情很容易——终止才是难事。

  • 首先我想澄清一点,我对react没有任何敌意。

  • 那时候我天天盼着下班,我白天疯狂地在项目室闭关,回到家里,快速吃个饭,就又开始疯狂地参与开源。印象中我每天晚上都干到凌晨两三点,很开心,很兴奋,好像不觉得累

    2022-10-25

  • 这节课我们一起来学习如何活用typescript,在react应用中加入数据类型检查。

    2022-10-11

  • 比 vite快10 倍,比 webpack 快700 倍。

  • 这一讲玉伯讲了讲他和当年那些失败的创新产品的故事。

    2022-10-26

  • 这节课,我们会把redux与react结合起来使用,看看它能为react的状态管理带来什么好处,同时也要探讨什么时候该用redux,什么时候用react内建的state,更或者,是否可以混用两种状态管理。

    2022-10-08

  • 我认为整个react生态系统和社区踏出这一步后都会变得更好

  • 本文向你展示的是 solid 一些让我惊叹的部分。

  • 了解和关注技术领域的关键发展更为重要。

  • 探索svelte框架的优势和潜力。

  • 我认为大多数定期使用 react 的人并没有意识到它落后了多少。

  • 这节课,我会新搭建一个开源react项目,在其中设计一系列扩展点,然后请你跟我一起,合作开发这个大型react项目。

    2022-10-25

  • 本文应该被解读为一个人从每天使用 react 到不去触碰它的思考,以及这样做的经验。

  • items: [

    2021-11-10

  • 第一阶段是源码开放,第二个阶段是社区讨论,第三阶段是产品视角。内源很容易卡在第二步,因为第二步有很核心的点,是要有足够的人参与进来。

    2022-10-25

  • 两大主流框架之争

  • 开源项目,“用爱发电”不是长久之计。

  • react已经不再是唯一的选择,紧跟潮流,快来学习这些被低估的优秀javascript框架吧!

  • “现在的bun已经足够应付小型子项目或者公司里的简单内部仪表板了。”

发现更多内容
金马国际
网站地图