Python开发人员,请不要低估TypeScript!

TypeScript可能不适合数据科学。但不要着急。尽管它可能并不适用于数据科学的每个部分,但在某些领域它比Python具有明显的优势。

TypeScript可能不适合数据科学。但不要着急。尽管它可能并不适用于数据科学的每个部分,但在某些领域它比Python具有明显的优势。

  作者 | Ari Joury

  译者 | 康少京

  审校 | Noe

  Python是我的生计,我喜欢它。尽管我对这门语言有一些意见,但我强烈建议从事数据科学的新手去尝试使用Python语言。不管怎样,在该领域具有丰富经验的人往往是
Python传道者。

  但是,这并不是意味着不能挑战您所在领域的限制,例如通过探索不同的编程范式或新语言。

  大约在十年前,微软的软件工程师注意到JavaScript已经不能满足他们的所有需求。一方面,这门语言发展迅速,增加了非常有趣的新功能,管道中的所有功能都无法解决一个基本问题,JavaScrip对于小程序来说很好,但用它编写整个应用程序却一团糟。

  解决这一问题有几种可能性:例如,使用不同的语言,或者用更好的语法重新设计JavaScript。微软的开发团队采用了不同的方法:他们通过扩展JavaScript创建了TypeScript。通过这种方式,他们能够使用JavaScript的所有新功能,同时摆脱对大型项目不利的东西。

  与 Python类似,JavaScript是在运行时编译的,这意味着您需要运行代码来调试它。另一方面,TypeScript
是经过编译的。这提供了额外的安全层,因为程序员在执行之前就有可能得到有关错误的信息。对于像Python或JavaScript
这样的非编译语言,一旦意识到代码没有按预期运行,在查找bug时可能会非常耗时。

  然而,JavaScript和TypeScript之间的主要区别在于类型检查器。编译后,每个TypeScript程序都会检查数据类型是否相互一致。

  这可能听起来很简单,但是当你做一个有数千行代码的项目时,你会特别惊讶,感谢上帝拥有它。

  还有一些其他差异,例如TypeScript具有匿名函数和异步函数这一事实。匿名函数是函数式编程的一个关键特性,它可以使程序在大数据的负载下更高效。

  当您需要并行执行多个操作,或者处理不应中断后台进程I/O
操作时,异步编程非常有用。在Python和Javascript中可以进行异步编程,但在TypeScript中它是从核心内置的。

Python开发人员,请不要低估TypeScript!

TypeScript是javaScript的超集

  Python的竞争对手名单很长:Rust、Go、Scala、Haskell、Julia、Swift、C++、Java和R都在上面找到了一个条目。可以理解的是,JavaScript和TypeScript
在如此拥挤的领域得不到那么多认可

  这并不意味着TypeScript不是通用编程世界中的主流。然而,在数据科学家中,它从来就不是特别受欢迎。

  由此可以得出结论,TypeScript可能不适合数据科学。但不要着急。尽管它可能并不适用于数据科学的每个部分,但在某些领域它比Python具有明显的优势。

  如果你碰巧在其中一个领域工作,就得尝试一下TypeScript。如果你没有尝试过,谁知道你接下来会在哪里着陆呢?该领域发展的很快。如果你能看得更远,你就有了竞争优势。

 TypeScript是如何流行起来的

  如果你讨厌JavaScript中不断发生的不合逻辑但又很滑稽的WTF时刻,那么我要告诉你一个坏消息:你也会在TypeScript中看到所有这些东西。

  但这些语法问题并不是程序员喜欢TypeScript的愿因。相反,它归结为这样一种想法:使用一个很棒的产品——JavaScript——并添加一些更强大的东西——静态类型。

  当然,我并不是说JavaScript总是很棒,或者静态类型总是最好的做事方式。但是对于构建大型的微软风格的应用程序来说,这似乎非常有效。

  也就是说,TypeScript的流行程度只是 JavaScript
的一小部分。这可以归因于年龄:TypeScript是8岁了。但JavaScript的历史是TypeScript的三倍!Python也是该领域的老前辈,已有三十年历史。

  尽管TypeScript成立的时间不长,但在一些领域是不可避免的。同时也增加了它的受欢迎程度。例如,当Google在2016年宣布
Angular.js 将与TypeScript一起运行时,StackOverflow上的标签数量呈爆炸式增长。

Python开发人员,请不要低估TypeScript!

堆栈溢出趋势

  TypeScript只分享了Python和JavaScript所具有的一小部分吸引力。不过,在某些领域这是不可避免的

 TypeScript可能比Python更有优势的地方

  当年JavaScript之所以流行,是因为它无处不在。您可以在服务器、浏览器或任何您喜欢的地方运行它。只要编译一次,它就可以在任何地方运行。当它首次出现的时候,简直跟变魔术一样。

  由于它是基于JavaScript构建的,因此TypeScript也具有这种魔力。Python也可以!当然,它的实现略有不同,因为它使用解释器而不是虚拟机。但这并没有改变这样一个事实,即在run-me-anywhere方面,TypeScript
和Python不相上下。

  泛型和静态类型等特性使用TypeScript进行函数编程比用Python更容易。这可能是一个优势,因为由于数据科学、并行编程、异步编程等方面的发展,对函数代码的需求正在增长。

  另一方面,Python也增加了越来越多的函数式编程功能。在数据科学、机器学习等领域,Python处于最前沿。

  这使得并行编程和异步编程成为可能。尽管这两种语言都可以实现,但有一个很大的区别:在Python中,需要使用特定的库来完成任务。在TypeScript中,所有库从核心开始都是异步的。由于后者在默认情况下更具功能性,所以进行并行编程通常更容易一些。

  换句话说,如果你是一名涉及异步进程和并行计算的Python开发人员,你可能想尝试一下TypeScript。

 是什么让TypeScript对数据科学如此重要——或者不是

  许多数据科学家处理异步和并行编程。可能首先考虑得是TypeScript而不是Python编写,不过,这是否是个好点子取决于很多因素。

  首先,TypeScript不会用直接的方式进行列表推导,例如,在处理大型数组时,这可能会令人苦恼。

  其次,TypeScript
中没有原生矩阵运算Python具有NumPy以及许多其他工具,用起来会很简单。因此,如果项目涉及大量的线性代数,这个时候可能你会不想采用TypeScript。

  第三,如果你对JavaScript不太熟悉,肯定会有感到困惑的时候。由于
TypeScript是基JavaScript构建的,它继承了它的所有特性——好的、坏的和WTF。不过,老实说,遇到这些现象也很有趣……

  最后,要考虑到编程不是个独立的职业,在数据科学领域中,有个庞大的Python社区可以提供支持和建议,但目前TypeScript在数据科学家中还不是很流行。所以你可能找不到那么多关于StackOverflow和其他问题的有用答案。

  话虽如此,如果开发一个没有太多大数据和矩阵运算的项目,你可能还是想试试TypeScript,尤其是当它涉及到一些并行或异步编程时。

  没有一种语言适用于所有的项目要求。当然,有些语言比其他语言更有趣或更直观。当然,你喜欢的工具也是非常重要,因为这会让你在困难时期继续前进。因此,从TypeScript或Python等深受欢迎的语言开始学习是个不错的主意。

  但归根结底,你不应该像宗教一样坚持一种语言。编程语言是工具。哪种工具最适合您取决于您尝试使用它做什么。取决于它做什么。

  目前,Python对于数据科学来说非常重要。但在一个快速发展的领域,你需要能够看得更远。随着任务的变化,工具也会发生变化。

  另一方面,TypeScript有一个关于前端 Web、后端Node和移动开发的热门社区。有趣的是,这些领域与数据科学的交集比人们想象的要多。尤其是
Node,它在数据科学家中获得了越来越多的关注。

  当然,这并不意味着您应该一次涉足十几种语言。精通一门语言是很有价值的。但对其他语言和技术保持好奇将帮助你长期保持领先地位。

  所以,当你想尝试新事物的时候。请不要犹豫,为什么不用TypeScript?

  原文标题:Hey Python devs, don’t underestimate TypeScript​​

  

©本文为清一色官方代发,观点仅代表作者本人,与清一色无关。清一色对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。本文不作为投资理财建议,请读者仅作参考,并请自行承担全部责任。文中部分文字/图片/视频/音频等来源于网络,如侵犯到著作权人的权利,请与我们联系(微信/QQ:1074760229)。转载请注明出处:清一色财经

(0)
打赏 微信扫码打赏 微信扫码打赏 支付宝扫码打赏 支付宝扫码打赏
清一色的头像清一色管理团队
上一篇 2023年5月6日 01:41
下一篇 2023年5月6日 01:41

相关推荐

发表评论

登录后才能评论

联系我们

在线咨询:1643011589-QQbutton

手机:13798586780

QQ/微信:1074760229

QQ群:551893940

工作时间:工作日9:00-18:00,节假日休息

关注微信