‍‍‍‍‍‍‍‍‍编者按:Python 在数据科学领域的地位显而易见是难以被撼动的,它拥有着太多太多的优势,然而在某些领域,TypeScript 或许是更好的选择。

原文标题:Why developers love TypeScript every bitas much as Python

原文链接:https://towardsdatascience.com/why-developers-love-typescript-every-bit-as-much-as-python-687d075cfb5e

作者简介:Rhea Moutafis,正在创业中,同时在攻读 Sorbonne Université 的 PhD,以及 Collège des Ingénieurs 的 MBA。

本文基于 CC BY 4.0 许可协议,由 CSDN 翻译‍‍‍‍‍‍‍‍‍

作者 | Rhea Moutafis

译者 | 香槟超新星  责编 | 张文

头图 | CSDN 下载自东方 IC

出品 | CSDN(ID:CSDNnews)

以下为译文:

Python 和 TypeScript 都是深受开发者们喜爱的编程语言。但如果你需要处理前端或者后端 Node 开发的话,也许你会考虑切换到 TypeScript。

图自 Unsplash,摄影师Obi Onyeador

Python 是我赖以生存的技能,我很喜欢它。虽然我对这门语言有一些批评的意见(相关文章链接:https://towardsdatascience.com/why-python-is-not-the-programming-language-of-the-future-30ddc5339b66),但我还是强烈建议所有人在刚开始从事数据科学的时候使用 Python。因为不管怎么样,在数据科学领域有一定经验的人往往会自行成为 Python 传道者。

但是,这并不意味着你不能时不时地挑战你所在领域的局限,比如探索不同的编程范式或一门新语言。

(相关文章链接:https://towardsdatascience.com/why-developers-are-falling-in-love-with-functional-programming-13514df4048e)

Python 有着一长列的竞争对手:Rust、Go、Scala、Haskell、Julia、Swift、C ++、Java和R,从他们身上都能够找出挑战 Python 的角度。所以在一个拥挤着如此多编程语言的领域中,JavaScript 和 TypeScript 没有获得很多认可也是可以理解的。

虽然这并不意味着 TypeScript 在更宽泛的编程世界中不是一种必需品,但是在数据科学家们中间,它从来没有流行过。

你可以现在就得出结论说:TypeScript 对于数据科学来说可能不是一种理想的编程语言。但是先不要着急。尽管可能不是对于数据科学的每个方面都适用,但在某些领域,与 Python 相比,TypeScript 具有明显优势的。

如果你的工作内容刚好处于这些领域之一,那么 TypeScript 就值得一试。如果你不尝试,谁知道下一步会在哪里呢?数据科学领域发展是很迅速的,如果你能看得更远一步,那么你就有了竞争优势。

TypeScript:类型安全的 JavaScript

大约十年前,微软的软件工程师们发现,JavaScript 已经不能再满足他们的所有需求了。一方面,这门语言正在迅速进化,不断添加非常有趣的新特性。另一方面,pipeline 中的所有特性都无法解决一个基本的问题:JavaScript 非常适合小型程序,但是如果用它编写整个应用程序,情况将会变得一团糟。

解决这个问题的思路主要有以下几种:可以转而使用另一种语言,或者使用更好的语法来重新设计 JavaScript。但微软的开发团队采取了一种不同的方法:通过扩展 JavaScript,他们创建了 TypeScript。这样一来,他们就可以使用JavaScript 的所有新功能了,同时还能摆脱对大型项目不利的负面因素。

与 Python 相似,JavaScript 是在运行时进行编译的。这意味着你需要运行代码来进行 debug。另一方面,TypeScript 是编译型语言。这提供了额外的一层安全性,因为程序员能在执行之前获得可能会出现的 bug 信息。对于Python 或 JavaScript 之类的非编译型语言,一旦你发现自己的代码没有像预期的那样运行,查找 bug 可能会非常耗时。

TypeScript 是 JavaScript 的超集。JavaScript 和 TypeScript 之间的主要区别在于类型检查器。编译后,每个 TypeScript 程序都会经历检查,以确保数据类型一致。

听起来好像是手动也能顺手完成的事情。但是,当你需要处理上千行代码的项目时,你会感谢上苍眷顾的。

JavaScript 和 TypeScript 之间还有其他一些区别,比如 TypeScript 有匿名函数(anonymous function)和异步函数(asynchronous function)。匿名函数是函数式编程的关键特性,它可以让程序更加高效地处理大量数据。

当你需要并行执行多个操作,或者当你正在处理不应中断后台进程的 I / O 操作时,异步编程非常有用。你也可以使用 Python 和 Javascript 来进行异步编程,但在 TypeScript 中,异步编程从核心上就是内置的。(相关文章链接:https://developer.mozilla.org/enUS/docs/Web/JavaScript/Reference/Statements/async_function)

图片由作者提供,参考了Guru99和Wikipedia的内容。

TypeScript 是如何流行起来的

如果你讨厌那些在 JavaScript 不断发生的不合逻辑但又让人哭笑不得的 WTF时刻(相关文章链接:https://github.com/denysdovhan/wtfjs),那么我有个坏消息要告诉你:在 TypeScript 中你还是会遇到这些东西。

但是,这些语法上的偶尔抽风并不是程序员们如此喜欢 TypeScript 的原因。相反,原因归结为,以一个优秀的产品——JavaScript——为基础,接着添加更为优秀的特性­——静态类型。

当然,我的意思并不是说 JavaScript 永远都是那么优秀,或者静态类型始终是最好的处理方式。但是对于构建大型的 Microsoft 风格的应用程序来说,这看起来似乎非常适用。

话虽这么说,TypeScript 的流行程度仍然远不如 JavaScript。这可能归因于年龄的差距:TypeScript 才八岁。而 JavaScript 的年龄是它的三倍!而Python 已有 30 年的历史,在自己的领域内已经比较老了。

尽管 TypeScript 还很年轻,但在某些领域,TypeScript 已经成为不可避免的趋势。这增加了它的流行度。比如,当 Google 宣布 Angular.js 将于 2016 年与 TypeScript 一起运行时,StackOverflow 上 TypeScript 的标签数量激增。

图片来自 StackOverflow Trends

TypeScript 的流行程度仍然远不如 JavaScript。尽管如此,在某些领域,TypeScript 依然是不可避免的趋势。

在某些方面 TypeScript 可能比 Python 更具优势

过去 JavaScript 流行起来的原因在于它可以在任何地方运行。你可以在服务器、浏览器上或者任何你喜欢的地方运行 JavaScript。只需编译一次,你就可以在任何地方使用。当 JavaScript 刚刚问世时,它几乎就像是魔法。

由于 TypeScript 是基于 JavaScript 构建的,所以 TypeScript 也同样具有这种魔力。Python 也一样!当然,由于它使用解释器而不是虚拟机,因此它的具体实现略有不同。但这并没有改变这样一个事实:TypeScript 和 Python 都能够在各个地方运行,在这方面它们是可以比肩的。

泛型和静态类型等特性使 TypeScript 比 Python 更适合函数式编程。这可能是一个潜在的优势,因为由于数据科学,并行编程,异步编程等领域的发展,对函数式编程的需求正在增长。

而另一方面,Python 也在添加越来越多的函数式编程特性(相关文章链接:https://docs.python.org/3/howto/functional.html)。在数据科学,机器学习等方面,Python 处于前沿领域。

然后剩下的就是并行编程和异步编程两方面。即使这两种语言都可以被你用来完成这两项工作,其中也有很大的不同。在 Python 中,你需要为特定任务使用特定的库。在 TypeScript 中,所有库都异步。而且由于一般情况下后者更加偏向函数式编程,因此并行编程通常会稍微容易一些。

换句话说,如果你是从事异步流程和并行计算的 Python 开发人员,你可能会想要尝试一下 TypeScript。

图自 Unsplash,摄影师 9TH Coworking

TypeScript 比 Python 更好吗?有时候是这样的。

为什么 TypeScript 非常适合数据科学?

许多数据科学家都需要处理异步和并行编程。你可能已经在考虑使用TypeScript 而不是 Python 来编写下一个项目了。不过,TypeScript 是否更合适还取决于许多其他因素。

首先,TypeScript没有一种简单直接的方法来进行列表推导(list comprehension,在处理大型数组时,这可能非常折磨人。(相关文章链接:https://itnext.io/introducing-list-comprehension-for-typescript-6204d9b1003e)。

其次,TypeScript 中没有原生的矩阵运算。Python 有 NumPy 以及许多其他工具,能够很容易地实现各种矩阵运算。因此,如果你的项目会大量地用到线性代数,那你可能要远离 TypeScript。

第三,如果你不太熟悉 JavaScript,那么几乎肯定会遇到困惑的时刻。由于TypeScript 是在 JavaScript 基础上构建的,因此它继承了 JavaScript 的所有特性——优点、缺点,以及让人哭笑不得的 WTF(相关文章链接:https://github.com/denysdovhan/wtfjs)。然而,说实话,遇到这些现象时可能会非常好玩……

最后,你需要考虑到,编程不是一个孤独的职业。数据科学领域有一个庞大的Python 社区,能够为人们提供支持和建议。但是目前来说,TypeScript 在数据科学家中还没有那么受欢迎。因此,你可能无法在 StackOverflow 上或者其他地方找到许多有用的答案。

话虽如此,如果你要着手的小型项目不包含太多大型数组或者矩阵运算,那么可以尝试一下 TypeScript,特别是如果项目涉及并行或异步编程的话。

重点在于:知道工具应该用在哪里

并不是每一项任务都对应唯一的一种编程语言。当然,对于某项任务某些语言会比其他语言更有趣或更直观。你必须爱自己的工具,这当然很重要,因为只有热爱可以支撑你在困难时期继续前进。因此,从一门深受人们喜欢的语言(如TypeScript 或 Python)开始学习并不是一个坏主意。

但最终的时候,你不应该像对待宗教一样,坚持只用一种语言。编程语言只是工具。哪种工具最适合你,取决于你要完成的任务是什么。

目前,Python 对于数据科学而言非常重要。但是在这样一个快速发展的领域,你需要把目光放得更远一些。随着任务的不断变化,你使用的工具也可能会随之变化。

另一方面,TypeScript 则有一个围绕前端 Web,后端 Node 和移动开发的活跃社区。有趣的是,这些领域与数据科学的交集比人们想象的更多。特别是Node,在数据科学家中它正在受到越来越多的关注。(相关文章链接:https://medium.com/microsoftazure/integrating-the-data-science-and-app-development-cycles-9845da423adc)

当然,这并不意味着你应该同时去涉猎十几种语言。真正地深入了解一门语言是非常有价值的。但是,对其他语言和技术保持好奇心,这将帮助你长期保持领先地位。

所以,想尝试新事物的时候就去尝试吧。为什么不试试 TypeScript 呢?

原文:https://towardsdatascience.com/why-developers-love-typescript-every-bit-as-much-as-python-687d075cfb5e

本文为 CSDN 翻译,转载请注明来源出处。

更多精彩推荐
☞为什么苹果 M1 芯片如此之快?
☞一行代码能做什么? 看到最后一个我终于忍不住...☞JavaScript:对象都是这样生成的!☞网易首支 AI 生成歌曲《醒来》正式发布;FSF :苹果 OCSP 事故在道德上不可接受;CentOS 8.3 发布|极客头条
☞买房必看!又一程序员自编“购房宝典”火爆 GitHub挑战 TensorFlow、PyTorch,谁才是中国 AI 开源框架之星?☞沉痛哀悼!现代无线网络之父 Norman Abramson 辞世,享年 88 岁
点分享点点赞点在看

喜欢 TypeScript 的人,一点都不比 Python 少相关推荐

  1. python为什么那么难学_Python入门很难吗? 为什么越来越多的人都学Python?

    Python都说是最容易学习的编程语言,但是为什么还是有很多的小白在学习的过程中学的云里雾里,一天到晚都是报错,异常,这也怪不得会有那么多人说,学Python是从入门到入土!其实一门编程语言不像语文那 ...

  2. Python入门很难吗? 为什么越来越多的人都学Python?

    Python都说是最容易学习的编程语言,但是为什么还是有很多的小白在学习的过程中学的云里雾里,一天到晚都是报错,异常,这也怪不得会有那么多人说,学Python是从入门到入土!其实一门编程语言不像语文那 ...

  3. python难学吗-Python入门很难吗? 为什么越来越多的人都学Python?

    Python都说是最容易学习的编程语言,但是为什么还是有很多的小白在学习的过程中学的云里雾里,一天到晚都是报错,异常,这也怪不得会有那么多人说,学Python是从入门到入土!其实一门编程语言不像语文那 ...

  4. 感叹号的形状像什么_12星座删掉自己喜欢的人时都在想什么?

    这是糖浆陪伴你的 第340天 看完大概需要6分钟 假设12星座删掉了自己喜欢的人⏬ 我一定要先删掉他 做什么事都想争第一又好面子的白羊,如果想好了不再纠缠一定要删掉喜欢的人,那么他一定会比你删他还快, ...

  5. python好学-所有人都说Python 简单易学,为何你觉得难?

    记得刚学Python的时候,几乎所有人都说Python 简单易学,而对于编程零基础,只掌握Word和Excel的人来说,感觉真的好难. 学习之前网上的教材看了,Python的书也看了,包括<核心 ...

  6. python易学吗_所有人都说Python 简单易学,为何我觉得难?

    记得刚学Python的时候,几乎所有人都说Python 入门简单易学,而对于编程零基础,只掌握Word和Excel的人来说,感觉真的好难. 有许多自学的同学,学习之前网上的教材看了,Python的书也 ...

  7. 等你爱我的伤感QQ日志:听说,喜欢隐身的人都有一种伤

    等你爱我的伤感QQ日志:听说,喜欢隐身的人都有一种伤 - 等你爱我的伤感QQ日志:听说,喜欢隐身的人都有一种伤 听说,喜欢隐身的人都有一段伤 上线,是为了打发寂寞. 隐身,是为了躲避失望. 喜欢上了安 ...

  8. python数据分析岗位做什么_给力!数据分析岗位内部人的建议,可以少走很多弯路...

    原标题:给力!数据分析岗位内部人的建议,可以少走很多弯路 这次我请到了在数据分析岗位的一位大佬,最近也面试了很多准备转行过来的小伙伴,他从数据分析岗位内部人士的角度来解读,什么是数据分析岗位,需要那些 ...

  9. python能帮我们实现什么用_你都用 Python 来做什么?

    「除了生孩子,Python 啥都能做!!!」这句话最近实在是有些火啊,难道 Python 就真的这么强吗?当然,不信咱们可以看一下数据 这是近期 TIOBE 公布的 2019 年 10 月编程语言排行 ...

最新文章

  1. POJ2955Brackets[区间DP]
  2. 自动化测试基础篇--Selenium框架设计(POM)
  3. VTK:隐式函数之ImplicitQuadric
  4. 文件处理-写模式操作文件
  5. 数据库(MySQL)
  6. 32张图带你彻底搞懂事务和锁!
  7. c语言修改字符串c2133,通过create_string_buffer、create_unicode_buffer让C语言具备修改字符串的能力...
  8. Failed to execute request because the App-Domain could not be created
  9. 如何自定义一个starter组件
  10. 危机时刻,我们需要多少个“冷锋”?
  11. 求最小公倍数与最大公约数(C语言)
  12. 蓝桥杯 ADV-237 算法提高 三进制数位和
  13. TreeSet有序集合
  14. Launch MySQL on my PC
  15. 12.万无一失:网站的高可用架构
  16. 技术支持和测试的区别_PlatON测试网升级至0.13.0版本并正式启用全新账户地址格式 | 云图双周报2020.07.0107.15...
  17. 2021年最值得推荐的5款在线文档制作工具,效率这块稳稳拿捏
  18. 网络视频会议软件哪个好?欢迎大家补位!
  19. (转)常用PC服务器LSI阵列卡配置
  20. Macbook 开机黑屏

热门文章

  1. TWaver初学实战——基于HTML5的交互式地铁图
  2. 试试既然没人玩,没得试验了
  3. 微软一站式示例代码库(中文版)2011-05-13版本, 新添加Windows Azure, WinForms等16个Sample...
  4. .net winfrom 定义全局快捷键!
  5. [技術]如何合併 GridView 中的多個標題
  6. 一步一步SharePoint 2007之四十八:实现Excel Service(3)——调用Excel Service
  7. Hive中时间格式的转换
  8. mysql 主键个数
  9. [DFS|剪枝] leetcode 22 括号生成
  10. 写出一下Java方法对应的签名_Java中的方法签名是否包含其返回类型?