数十倍性能优势,前端使用swc来取代babel

数十倍性能优势,前端使用swc来取代babel

最近我抽空把myddd-web与myddd-electron从babel迁移至了swc,其效率提升非常多,我觉得这是个非常好的工具,就向大家介绍下
做前端的朋友应该都非常清楚babel是做什么的吧。
JavaScript这门语言受限于历史因素,有许多问题,其中一个就是新的语言特性始终无法在浏览器中得到全面支持与应用。
如果你要写一个支持绝大多数浏览器的网页,最好的选择可能就是ES5了,但你要知道ES5之后,JavaScript也一直在不停的更新,其中最重要的一个版本是ES6,而到今年2022年,已经是ES2022(ES13)了
和其它语言不同,JavaScript是要在浏览器中运行,这就决定了你在使用JS时不得不考虑浏览器的支持情况。
而浏览器一方面对新特性的支持需要时间,再一个你还得考虑旧版本浏览器还是有很多人在用,这就造成一个困境:
你可能不敢使用最新版本的JS语言特性
但所幸,babel横空出世,它就是一个作用:转换,将你写的JS转换成大多数浏览器都支持的语法样式。
这样,你就能够在使用JS最新的特性的同时,而又不用担心浏览器的兼容性问题了。
确实很棒的东西,甚至你可以说它挽救了JavaScript,但它有一个问题:
它不够快
原因很简单:
Babel是JavaScript写的,JavaScript就是有点慢
如果是这样,我们都很容易会去思考一个问题,如果JavaScript能写一个转换器,为什么不用一些更高性能的语言来写一个类似的转换器呢?
好想法,这也是为什么会有swc与esbuild出现的原因。
babel是开创性的,它的价值永远值得纪念,但这不表示我们不能有新的东西取代它,技术就是如此,新的取代旧的,这是永恒不变的趋势。
在意识到了babel的缺点后,一些优秀的程序员开始使用不同的语言来实现一个”更快的babel”。
而在这其中,以swc和esbuild脱颖而出。
swc
swc是2019由KangDongYoon发布的,它后面的支持者是Vercel(next.js的创建者),搞React应该知道next.js吧,非常有名的一个框架。
而最近的一个next.js12版本,它们也迁移至了swc,据其官网反馈:
“CompilationusingtheNext.jsCompileris17xfasterthanBabelandenabledbydefaultsinceNext.jsversion12.”
它们说有17倍的速度提升,确实太惊人了。
swc是基于Rust语言
esbuild
esbuild是由EvanWallace在2020写的,EvanWallace是Figma的创始人。
esbuild是由go语言写的。
可能前端人员对go不是非常熟悉,在后端领域,go现在非常火爆,它以杰出的性能而闻名。
而最近比较流行的Vite工具,它就是使用的esbuild,所以它非常快。
网上对这三者做性能测试的文章和数据挺多的,总体来说,esbuild最快,swc和esbuild差不多,babel最慢。
swc官网自己的描述是:
“SWCis20xfasterthanBabelonasinglethreadand70xfasteronfourcores.”
esbuild和swc确实都快很多,这是事实。
我把我2020年基于electron做的一个跨平台桌面软件,使用了swc,编译速度提升非常明显,以前需要10多秒编译完成,而swc下只需要1-2秒瞬间完成。
这种性能提升的感受非常明显。
为什么使用swc替换,而不是esbuild?
其实我也是受next.js影响,我最开始是在next.js官网上看到它提及swc这个,而next.js是一个React框架,而我的myddd-web也好,myddd-electron也好,都是基于React的,所以就跟着也使用swc了。
而swc也提供了对webpack及jest的良好支持,所以使用webpack+swc搭配是没有任何问题的。
考虑到swc和esbuild的性能相差不大,未来myddd可能还是会持续使用swc而不是esbuild。
不过我也不能确定,技术永远都是会不断更新的对吧。
迁移至swc这个工作,我最近已经抽空完成了。
从现在开始,你可以访问https://starter.myddd.org上,生成myddd-web或myddd-electron的项目,默认就是使用的swc。
而我认为,如果你也是在做前端,无论如何,你都可以关注下swc或者esbuild,它们带来的速度提升是非常明显的。
也许我们是时候向babel说再见了。
最后,说个关于babel的有趣的事:
babel是SebastianMcKenzie在2014年时,他还在高中时期开始写的一款工具,而SebastianMcKenzie同时是前端另一款非常流行的工具yarn的创始人。
这让我不得不想到Linux内核的作者LinusTorvalds,经历如此相似。
向这些天才致敬,这使得我相信技术需要的是热情与创意。

主题测试文章,只做测试使用。发布者:最新稳定辅助网,转转请注明出处:https://www.744broad.com/14650.html

(0)
上一篇 2023年3月6日 上午6:48
下一篇 2023年3月6日 上午6:55

相关推荐

  • steam平台上,目前最热门的12款游戏

    steam平台上,目前最热门的12款游戏 目前在steam平台上有很多热门的游戏,有的人气值已经爆满,几乎每一个steam玩家,在他的库里,都会有这些游戏的身影,这些游戏在平台上,排行前卫,那么我们就看一下都有哪些游戏。它是一款是第一人称竞技型,射击游戏,这部作品,是基于十多年前的经典《反恐精英》改进而来,使用新的引擎打造出来的新作,不仅画面提升,武器装备种…

    RUST资讯 2023年2月21日
    90
  • NVIDIA GeForce Game Ready 512.59 WHQL驱动:新增Reflex Stats支持

    NVIDIA GeForce Game Ready 512.59 WHQL驱动:新增Reflex Stats支持 NVIDIA发布GeForceGameReady512.59WHQL驱动程序,与上一版最大的分别在新增NVIDIAReflexStats这个功能,另外还新增了对多款游戏的DLSS、光追支持或者NVIDIAReflex支持。《午夜猎魂》(Midni…

    RUST资讯 2023年2月19日
    70
  • 为什么许多电子游戏正面临着永远消失的危机?

    为什么许多电子游戏正面临着永远消失的危机? 在传播和分享游戏变得越来越容易的当代,保存老游戏却似乎变得越来越困难。近日,Kotaku刊发了一篇,作者采访了几位行业观察人士和游戏收藏家,请他们谈了谈在人们试图保存和收藏老游戏的过程中,面临着来自行业、游戏公司、法律法规等方面的哪些阻力。触乐对文章的主要内容进行了编译,原文标题为《WhySomeVideoGame…

  • 7月最受欢迎AI研究榜单出炉,马毅最新「标准模型」排名第9

    7月最受欢迎AI研究榜单出炉,马毅最新「标准模型」排名第9 编辑:Joey七月最受欢迎的AI研究榜单出炉啦!这份由Reddit网友@bycloudai整理的榜单,根据推特点赞、转发和Github星数排序,列入了2022年七月排名前十的AI研究,其中包括DeepMind、Google、MITCSAIL等知名机构。下面一起来看看上榜的都是何方大佬~TOP1:Fo…

    RUST资讯 2023年2月15日
    90
  • C语言能够被替换吗?

    C语言能够被替换吗? C语言真的很老了,而且事实证明他在很多地方都已经不再是最佳选择。为了使工作更加轻松,无数的开发者都想着寻找一种新的语言取代C的位置。那么,什么样的语言才能取代C?今天来跟鸥鹏来一起看看。众所周知,C是一种广泛非常使用的语言,从操作系统内核到加密算法的编写,到处都在使用C。如今,我们是否应该用另一种语言来替换C呢?尽管C语言发布于1972…

    RUST资讯 2023年2月17日
    70
  • 突破SLG格局纵深策略演绎我的王朝

    突破SLG格局纵深策略演绎我的王朝 硬核玩家就要MAN起来,这里是游戏MAN!说起经典游戏类型,那么SLG得算上其中一员了。无论是紧张烧脑的策略,还是热血沸腾的国战,都曾让多少玩家们为之疯狂和怀念。而光子工作室群在经历了《绝地求生刺激战场》的火爆之后,开始探索SLG领域,凭借着光子工作室群强大的研发实力,打破SLG格局的《我的王朝》应时而生。《我的王朝》的魅…

  • 机情烩:疑似荣耀V10曝光 全面屏+正面Honor LOGO!

    机情烩:疑似荣耀V10曝光 全面屏+正面Honor LOGO! 鲁大师机情烩汇集每日重点,有趣机情。要买机、爱搞机的小伙伴欢迎随时评价交流。一、疑似荣耀V10曝光全面屏+正面HonorLOGO!“全面屏”无疑是当下最火的手机概念,哪家没有绝对会显得落后一大截。今天,我们又看到了疑似荣耀的一款全面屏新机。华为将在10月16日推出全面屏旗舰Mate10,但在那之…

    RUST资讯 2023年2月27日
    40
  • 空调还会流水?流的水居然能做这些事

    空调还会流水?流的水居然能做这些事 相信大家对于夏日救命神器空调都不会很陌生,可是你知道吗?空调是会流水的!空调产生的水叫做冷凝水,如果新空调没安装好,空调产生的冷凝水甚至会流入室内。夏天气候炎热,人们为了续命常会大量使用空调,可是你知道吗?空调是会流水的!空调产生的水叫做冷凝水,如果新空调没安装好,空调产生的冷凝水甚至会流入室内,那么冷凝水是怎么产生的呢?…

  • 《沉浮》评测:在拟真的海洋中大开脑洞造军舰

    《沉浮》评测:在拟真的海洋中大开脑洞造军舰 还记得,在2020年3月5日的WeGame游戏测试节上,由无端科技开发的海战物理沙盒游戏——《沉浮(SeaofCraft)》,在一众游戏中脱颖而出,登上试玩榜首,成为了当年国产游戏的一匹黑马。两年过去,在制作组们不断地更新和优化之后,《沉浮》的抢先体验版本,将于4月29日北京时间12点,正式在steam和WeGam…

    RUST资讯 2023年2月13日
    90
  • 如何成为一个好的程序员

    如何成为一个好的程序员 本文作者:上海驻云开发实施工程师(实shi力li网wu红wang)方舟以下正文有很多程序员或者想成为程序员的同学们想要知道如何成为一个好的程序员,作为驻云CDO(ChiefDoubiOfficier),我有一些人生的经验想分享给大家。懒一个好的程序员首先必须是一个懒人。第一,需要懒得跟人打交道,能用机器完成的工作就不要给人做了,这样才…

关注微信