大家好,我是你们懂一点技术的cho老师。如果你觉得过去的7天很短,那么恭喜你。接下来的7天一定会让你觉得很漫长。今天我们要聊一个经典的话题——什么是最好的编程语言?编程语言的划分根据百度百科,编程语言有近2500种,甚至汉字都可以成为编程语言(哪位天才想出了易语)。即使有这么多语言,也可以简单地分为两类。一个是我正在学习或使用的,另一个是废话。好吧,别开玩笑了。事实上,我们可以根据处理变量类型的方式将很多编程语言分为两类——静态类型语言和动态类型语言。从名字上看,静态类型语言是在编译时决定变量的类型。因此,可以在编译时进行比较完善的类型检查,减??少运行时的错误。动态类型语言的变量类型,在程序运行时,只有在变量被赋予一定的值后,才会具有一定的类型。在使用变量之前不需要声明变量的类型。这两种方法非常不同。JSVSTS以前端领域最著名的TS和JS为例。JavaScript是一门非常典型的动态类型语言,也是所有前端编辑最熟悉的(之一)语言。JS的优点很明显——简单、安全、动态、跨平台,而且JS的开发者社区也非常成熟和完善。发展到现在,JavaScript几乎是无所不能的。其应用场景从早期的网站前端开发到现在的服务端开发、命令行工具开发、桌面应用、移动开发、插件开发等等。但是JavaScript作为一种动态类型的语言,仍然存在固有的缺陷。例如,无法合并类型,在编译时缺乏错误检查,如果用作企业和大型代码库中服务器端代码的语言,可能会导致错误。在大型项目开发中,JS代码会比较杂乱,难以调试。为了解决这些缺点,微软开发了专门为大型项目开发而设计的TypeScript语言。TS刚诞生的时候,前端逻辑比较简单,所以有开发者觉得TS不实用,抱怨不实用。时过境迁,随着这几年前端项目越来越复杂,各路开发者终于转向了微软,将TS引入到一个又一个项目中,并称之为“真香”。TS有什么好?我们可以简单地将TypeScript理解为JavaScript的超集,可以编译成纯JavaScript。它包含了JavaScript的所有元素,可以加载JavaScript代码运行,并扩展了JavaScript的语法,添加了静态类型、类、模块、接口和泛型等概念。从技术上讲,TS是静态类型的JS,这意味着编译后的TS可以在任何可以使用JS的地方使用。TS类型的定义和编译器的引入,使得TS避免了JS无法合并类型的缺陷,在编译时进行类型检查。因此,TS可以帮助开发人员构建更健壮和安全的代码。一项研究表明,TypeScript可以检测出所有JavaScript错误的15%。我们可以更轻松地避免错误并进行代码重构,而不会严重破坏代码。除了帮助我们构建更安全可靠的代码之外,TS还可以帮助我们进行类似babel的转换。在编码时,我们可以随心所欲地使用新语法。编译的时候,我们可以选择编译到哪个JS版本。即使我们不使用TS的类型系统,作为转换工具也非常好用。因此,TS具有明显的优势:兼容JS的所有语法规则,让开发者的代码更清晰、更安全、更易于他人理解代码和代码重构在《2022 前端开发者现状报告》,84%的受访者表示他们使用过TypeScript。可见这门语言已经被越来越多的前端开发者所接受,其流行度和应用也在不断超越JS本身。VUE3和Angular等框架也引入了TS编码。静态语言VS动态语言TS对JS的胜利,其实就是静态语言对动态语言的胜利。动态语言和静态语言最大的区别在于可读性和可维护性的区别。简单地说,您可以将动态语言理解为一组密码,可以用少量代码解释非常复杂的事物。(比如4位存款用6位密码保护)我定义一个A,指的是“国庆连续7天”。简单意味着模糊,更高的门槛,增加检查的难度。所以这个A也可能是指“回来连续工作7天”。这个时候评论很重要。因为连程序员自己都不记得昨天的代码是怎么定义的了。在那个软盘最大容量只有1.4M,内存和性能都极其昂贵的年代,动态语言因为语法简洁而受到大家的青睐。但是进入图形化时代之后,动态语言的劣势就很明显了。程序越来越大,要表达的东西也越来越多。一目了然的静态语言自然更受欢迎。TS是最好的编程语言吗?上面提到了TS的诸多优点,那么TS是不是最好的编程语言呢?并不真地。TS并不完美,甚至有开发者不喜欢它。例如,一个库开发人员认为该类型浪费了太多时间并降低了开发效率。作为终端开发者,我其实很喜欢TypeScript,它大大减少了手动编写自动化测试的需要,腾出劳动力投入到更多能创造价值的领域。但从库开发的角度来看,我讨厌TypeScript。它在很多方面都很烦人,但归根结底,TypeScript的原罪是降低了库开发人员的工作效率。从本质上讲,TypeScript将复杂性从终端开发人员转移到了库开发人员,最终显着增加了库开发过程方面的工作量。这位开发商说的其实也有一定的道理。其实TS也不是万能的。TS的缺点是——1.需要编译,编译速度比较慢。浏览器和Nodejs不支持TypeScript,所以多了一步编译操作。正常的项目一般用不了多长时间,其实还好。2、不适合小项目对于小项目,灵活的JS就足够了,但是使用TS可能会增加太多的开发成本,因为开发时有很多类型声明。3、有一定的学习成本。TS引入了太多的新概念,比如类型泛型等,对于开发者来说还是有很大的学习成本。但是因为它兼容JS,所以在语法上和JavaScript语法没有明显区别,这意味着你不需要学习很多知识就可以无缝地开始编写TypeScript代码。但综合考虑,TS仍然是前端领域最好的解决方案之一。没有万能的灵丹妙药。其实不只是前端,任何方向都存在以上问题。编程中从来没有灵丹妙药。每种编程语言都有自己的特点,也有其独特的缺点。只有在特定的场景下才能发挥出最大的优势。例如,Python是一门非常容易上手和学习的语言,在数据领域有着广泛的应用。但是也被吐槽慢,执行速度不够快,版本不兼容。Java虽然是后端开发最常用的语言,也是研发领域最重要的工具,但它也有一些缺点。老铁们常说PHP是世界上最响亮的语言。不过说实话,从一线城市的岗位需求来看,对PHP的需求没有Java大,这也说明PHP本身确实存在一些缺陷和问题。当然,这并不影响我们继续相信。来,跟我一起念那十二个字——!每种编程语言都是由于某种需要而诞生的。说到底,语言只是我们实现思想的一种方式。工具。工具本身没有对错之分,每种技术都应该在特定的应用场景下讨论。承认优点,正视缺点,并不丢人。祝大家工作愉快!本文由mdnice多平台发布
