作者 | 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中它是从核心内置的。
(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上的标签数量呈爆炸式增长。
(堆栈溢出趋势)
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?
原文链接:
https://thenextweb.com/news/python-developer-dont-underestimate-typescript-syndication
译者介绍
康少京,51CTO社区编辑,目前从事通讯类行业,底层驱动开发岗位,研究过数据结构,Python,现对操作系统和数据库等相关领域感兴趣。
直播预告
点击视频号卡片,即可预约
扫码生成专属预约码
邀请好友看直播赢好礼
加入活动群领奖品
文章评论