MyGameLife|【MyGameLife】我的游戏职业生涯是从TS(TypeScript)开始的(2|CSDN创作打卡)


【MyGameLife】我的游戏职业生涯从TS(TypeScript)开始的:2

  • ts的今生
  • ts凭什么脱颖而出
  • 后记

ts的今生 【MyGameLife|【MyGameLife】我的游戏职业生涯是从TS(TypeScript)开始的(2|CSDN创作打卡)】2010年 微软c#的首席架构师:安德斯·海尔斯伯格(Anders Hejlsberg)就js本身设计的局限性,以胜任和维护大型项目开发,开始着手设计开发一门新的语言。
2012年 第一个公开版本发布,即 typescript 0.8
此后大约每一年都会推出一个新版本,到今年2022年底的圣诞节,就会是ts的12岁生日了。
据说安德斯一开始设计时因为将ts定义为开源,由此也让微软不少的高层不太看好。然而事实证明,开源成就了ts的生命力,是非常重要的一个决定。
另外ts也非常适配于母公司微软的其他主要开源项目,比如流行的代码编辑器 Visual Studio Code(VSCode)。类似于VSCode这样的集成开发环境(IDE),它们可以提高开发人员的生产率。(夹带一句私货:就java开发来说,idea真的比eclipse好用太多了。希望各位eclipser能够走出舒适圈尽快用上idea。)
ts凭什么脱颖而出 之前名不见经传的ts,为什么在受欢迎语言榜内从20名开外到现在前5名内?为什么甚至许多公司要求前端人员学习ts,用ts开发?和ts类似地语言也很多,为什么ts将会脱颖而出?
就我自己而言,我总结了ts几个特质:
1.我从java转写ts时,因为ts类型与java类似,并且java有的类、对象、模块等概念,切换过来非常容易。不过ts本质上还是属于脚本语言,其严谨性和系统性仍然低于java这样的编程语言,胜在学习简单,开发成本低。 (学习成本较低)
脚本语言和编程语言的区别可以参考这个博客内容,简单直观:脚本语言和编译语言的区别
2.在ts编译成js时,TypeScript 会删除所有类型并将代码还原回 JavaScript。这意味着,ts可以像js一样,在任何系统、任何浏览器上运行。而附加的类型只存在于开发人员编程期间,开发人员根据自定义的静态类型可以在编译前就找到出错的地方并进行修改,不像js在运行后才推断数据类型,容易引起神奇的bug。(有限度的自由)
3.js和ts不是非得放弃一个选择另一个,他们本就是同源,你甚至把源代码文件从js后缀改为ts后缀,就可以开始享受TypeScript带来的好处了。(容易接受)
4.除了宇宙第一IDE——Visual Studio对其有原生的支持,也有Eclipse的插件可用,WebStorm最近也加强了TypeScript的支持,当然也不缺Sublime Text的插件可用。(优秀的工具支持)
5.现在主流的游戏引擎unity(c#)和ue(c++),尤其c++对很多人来说是一道拦在游戏开发上的门槛,虽然ue很多功能可以用蓝图实现,但作为开发的话,不精通c++真不太好意思用ue。现在国内很多游戏引擎(比如白鹭、metaapp)已经支持用ts编写,无疑是降低了游戏开发的门槛,吸引了更多人进来开发。(更多框架支持)
后记 现在常常有人就js还是ts好用的问题争执不休,认为TypeScript 的唯一真正竞争对手是 JavaScript,因为这两种语言都是运行前端应用程序的必备语言。
然而架构师安德斯却说:
“但是 JavaScript 并不是真正的竞争者。它是我们的双胞胎或是另一个自我。”
的确如此。其实和玩游戏一个道理,因为js像一位身手敏捷的刺客:灵活、动态;ts像一位坚守沉稳的坦克:稳重、静态。什么样的怪上什么样的英雄,才是程序员应该做的事。

    推荐阅读