发布时间:2025-12-10 04:45:28 浏览次数:1
本文从《海量开放网络课程》开始。com”,而且想多了解一些IT干货,很受程序员欢迎。欢迎关注!
今天来说一个经典话题——
最好用什么编程语言?
编程语言的划分
根据百度百科,有近2500种编程语言,连汉字都可以成为编程语言(哪个天才想出的易语言)。
即使有这么多种语言,也可以简单地分为两类。
一个是我正在学习或使用的东西,一个是垃圾。
好吧,不开玩笑。
实际上,我们可以根据变量类型的处理方式,将很多编程语言分为两类——静态类型化语言和动态类型化语言。
从名字上看,静态类型语言是在编译时就已经确定的变量类型。
而动态类型化语言的变量类型,在程序运行并赋予变量某个值之前,是不会有某个类型的,所以在使用变量之前不需要声明其类型。
这两种方式截然不同。
JS VS TS
以前端领域最著名的TS和JS为例。
JaScript是一种非常典型的动态类型语言,也是前端读者最熟悉的语言之一。
JS的优势是显而易见的——比如简单性、安全性、动态性和跨平台性。
然而,JaScript作为一种动态类型语言,仍然有其固有的缺陷。
例如,无法合并类型,并且在编译时缺少错误检查。如果在企业和大型代码库中作为服务器端代码的语言,可能会导致错误。
在大型项目开发中,JS代码会更加凌乱,调试起来更加困难。
为了解决这些缺陷,微软开发了TypeScript语言,专门用于大型项目开发。
TS刚诞生的时候,前端逻辑比较简单,所以有些开发者觉得TS不实用。
时过境迁,随着近年来前端项目的日益复杂,各类开发者终于转向微软的怀抱,纷纷在项目中引入ts,并称之为“真香”。
TS有什么好的?
我们可以简单的把TypeScript理解为JaScript的超集,可以编译成纯JaScript。
从技术上讲,TS是静态类型的JS。它包含了JaScript的所有元素,可以加载到JaScript代码中运行,并扩展了JaScript的语法,增加了静态类型、类、模块、接口和泛型等概念。
有了TS的定义和编译器的引入,TS可以避免JS不能合并类型的缺陷,在编译时检查类型。
因此,TS可以帮助开发人员构建更健壮、更安全的代码。
我们可以避免错误,更容易地重构代码,而不会严重损坏代码。
除了帮助我们构建更安全可靠的代码,TS还可以帮助我们进行类似巴别塔的转换。
在编码过程中,我们可以充分利用新的语法。
编译时,我们可以选择编译到哪个JS版本。即使不使用TS类型系统,仅作为转换工具也是非常有用的。
因此,TS具有明显的优势:
兼容 JS 所有语法规则让开发者的代码更加清晰、安全更容易他人理解代码与代码重构
在《2022年前端开发者状态报告》中,84%的受访者表示他们使用过TypeScript。
可以看出,这种语言已经被越来越多的前端开发者所接受,其普及程度和应用范围都在不断超越JS本身。
静态语言 VS 动态语言
对TS JS的胜利,其实就是静态语言对动态语言的胜利。
动态语言和静态语言最大的区别在于可读性和可维护性。
简单来说,你可以把一种动态语言理解为一组密码,用少量的编码就可以解释非常复杂的东西。
(例如,用6位密码保护4位存款)
我定义一个A,意思是“国庆7天”。
它意味着简洁和模糊,意味着更高的门槛,意味着考察难度的提高。
所以这个A也可能是指“回来工作7天”。
这个时候,评论就很重要了。因为连程序员自己都不记得昨天这个类型是怎么定义的了。
在软盘最大容量只有1.4M,内存和性能都很匮乏的年代,动态语言因其简洁的语法而受到大家的青睐。
然而,进入图形化时代后,动态语言的弊端显而易见。
节目越做越大,要做的陈述也越来越多。静态语言,这是一种清晰的代码,自然更受欢迎。
TS是最好的编程语言吗?
上面提到的TS有很多优点。TS是最好的编程语言吗?
不完全是。
TS并不完美,甚至有些开发者不喜欢它。
比如一个库开发者认为类型让他浪费了太多时间,降低了开发效率。
作为一个终端开发人员,其实我喜欢TypeScript,它大大减少了手工编写自动化测试的需要,解放了劳动力,把它放到了更能创造价值的地方。
但是从库开发的角度来说,我讨厌TypeScript。它有很多令人讨厌的地方,但归根结底,TypeScript的原罪是降低了库开发者的效率。
本质上,TypeScript将复杂性从最终开发者转移到了库开发者身上,最终显著增加了库开发过程的工作量。
开发商说的有一定道理。其实TS也不是万能的。
TS的缺点是-
1.需要编译,编译速度慢。
而browser Node.js不支持TypeScript,所以多了一个编译的步骤。一般的项目一般都不长,但其实挺好的。
2.不适用于小型项目
对于小项目来说,灵活的JS就足够了,但是使用ts可能会增加太多的开发成本,因为开发中有很多类型声明。
3.有一定的学习成本。
TS引入了太多新概念,比如类型泛型,对于开发者来说还是有很大的学习成本。
但是因为兼容JS,所以语法上和JaScript没有明显区别,也就是说如果你有JS基础,基本上可以无缝的写出TypeScript代码。
总而言之,TS仍然是前端领域最好的解决方案之一。
没有万能的银弹
其实不只是前端,任何方向都有上述问题。
编程领域从来就没有什么灵丹妙药。
每种编程语言都有自己的特点和独特的缺点。只有在特定的场景应用中,才能发挥我们的优势。
比如Python就是一种非常好用的语言,在数据领域应用非常广泛。
但是也比较慢,执行速度不够快,版本不兼容。
虽然Ja是后端开发最常用的语言,也是R&D领域最重要的工具,但是它也有一些缺点。
老人们常说PHP是世界上声音最大的语言。
但说实话,从一线城市的岗位需求来看,PHP的需求量并没有Ja大,这也说明PHP本身确实存在一些缺陷和问题。
当然,这并不影响我们继续信仰。来,跟我一起读这十二个字-
************!
每一种编程语言的诞生都是因为某种需求。归根结底,语言只是我们实现想法的工具。
工具本身没有错,每种技术都要在具体的应用场景下讨论。
承认优点,正视缺点,并不可耻。
欢迎关注“海量开放在线课程. com”,发现更多IT圈优质内容,分享干货知识,帮助你成为更优秀的程序员!