为什么程序员如此热爱 TypeScript?

本文最初发表于 Towards Data Science 博客 , 经原作者 Rhea Moutafis 授权 , InfoQ 中文站翻译并分享 。
Python 是我的谋生工具 , 我很喜欢它 。 尽管我对这门语言有一些批评的地方 , 但我还是强烈推荐给任何开始从事数据科学的人 。 反正在这个领域中 , 比较有经验的人往往都是 Python 的布道师 。
然而 , 这并不意味着你不能时不时地挑战你所在领域的极限 , 例如探索不同的编程范式或新的编程语言 。
Python 的竞争对手名单很长: Rust 、 Go 、 Scala 、Haskell、 Julia 、Swift、C++、Java 和 R 都可以在其中找到条目 。 在如此拥挤的领域里 , JavaScript 和 TypeScript 没有得到那么多的认可 , 这是可以理解的 。
但这并不意味着 TypeScript 不是通用编程领域的主流 。 然而 , 在数据科学家群体中 , 它似乎从来就没有特别受欢迎过 。
你可能会得出这样的结论 , TypeScript 可能不是数据科学的理想选择 。 但不要急着下结论 。 尽管它可能不适合数据科学的每一部分 , 但在某些领域上 , 它比 Python 有明显的优势 。
如果你碰巧在这些领域之一工作的话 , 那么值得给 TypeScript 一个机会 。 如果你不这么做的话 , 谁知道你的下一步会在哪里呢?这个领域发展得如此之快 。 如果你能将眼光放远一些 , 你就有了竞争优势 。
TypeScript:是一种 JavaScript , 但类型安全大约十年前 , Microsoft 的软件工程师注意到 , JavaScript 已经不能满足他们所有的需求了 。 一方面 , 该语言发展迅速 , 并增加了非常有趣的新特性 。 另一方面 , 管道中的任何功能都不能解决一个根本性的问题:JavaScript 对于小型程序来说非常棒 , 但用它来编写整个应用程序却一团糟 。
解决这一问题有几种可能性:例如 , 可以使用不同的编程语言 , 或者使用更好的语法重新设计 JavaScript 。 Microsoft 的开发团队采取了一种不同的方法:他们通过扩展 JavaScript 创建了 TypeScript 。 通过这种方式 , 他们能够利用 JavaScript 的所有新特性 , 同时摆脱了那些不适合大型项目的东西 。
与 Python 类似 , JavaScript 是在运行时编译的 , 这意味着你需要运行代码来调试它 。 另一方面 , TypeScript 是编译的 。 这提供了额外的安全层 , 因为程序员在执行时间之前就可以获得关于可能存在的 Bug 信息 。 对于 Python 或 JavaScript 这样的非编译语言 , 一旦意识到代码的行为与预期不符 , 定位 Bug 可能会非常耗时 。
然而 , JavaScript 和 TypeScript 之间的关键区别在于类型检查器 。 在编译时 , 每个 TypeScript 程序都会检查数据类型是否彼此一致 。
手动做这些事可能听起来微不足道 。 但是 , 当你在项目中使用数千行代码时 , 你就会感谢上帝赐予你这一切 。
还有一些其他不同之处 , 例如 , TypeScript 有匿名函数和异步函数 。 匿名函数是函数式编程的一个关键特性 , 它可以使程序在大数据负载下更加高效 。
当你需要并行执行多个操作时 , 或者在处理不应中断后台进程的 I/O 操作时 , 异步编程非常有用 。 异步编程在 Python 和 JavaScript 中是可能实现的 , 但在 TypeScript 中 , 异步编程是内置在内核中的 。
为什么程序员如此热爱 TypeScript?文章插图
TypeScript 是 JavaScript 的超集
TypeScript 是如何流行起来的如果你讨厌 JavaScript 中不断发生的不合逻辑但又滑稽可笑的、令人抓狂的时刻 , 那么 , 我有一个坏消息告诉你:你在 TypeScript 中也会看到所有这些东西 。
但是 , 这些语法上的小问题 , 并不是程序员如此热爱 TypeScript 的原因 。 更确切地说 , 这可以归结为这样一个想法:你需要一个很棒的产品(JavaScript) , 并添加更棒的东西(静态类型) 。
当然 , 我并不是说 JavaScript 总是很棒 , 或者静态类型总是最好的处理方式 。 但是 , 对于构建大型 Microsoft 风格的应用程序来说 , 这似乎非常好用 。
话虽如此 , TypeScript 仍然只拥有 JavaScript 的一小部分人气 。 这可以归结为发行时间的原因:TypeScript 发行有八年了 , 而 JavaScript 的发行时间是它的三倍!Python 在这一领域中 , 也是一款有着三十年发行历史的老古董 。
尽管它很年轻 , 但在某些领域中 , TypeScript 是不可避免的 。 这就增加了它的受欢迎程度 。 例如 , 当 Google 在 2016 年宣布 Angular.js 将与 TypeScript 一起使用时 , TypeScript 在 StackOverflow 上的标签数量呈爆炸式激增 。
为什么程序员如此热爱 TypeScript?文章插图