新知一下
海量新知
6 6 1 0 5 6 8

[精选] Go语言弥补了PHP的不足,然后。。。

php自学中心 | 用编程思想感受你的生活 2022/09/02 13:17

七年来,从PHP被其他语言冷嘲热讽到由中国人惠新宸参与核心开发的php7横空出世以及到目前已经发布的PHP8, 在性能方面也提高了不少,但是渐渐的趋向完善与稳定。我们先来看看PHP有多完善?

完善的面向对象编程支持 ,主要包括

  • namespace 处理命名冲突

  • interface 分离实现与接口

  • traits 代码混入(mixin)支持

  • 类型系统 限制函数参数、返回值、类成员的类型

完善的依赖管理体系 ,这一点主要由 composer 实现。

支持 FFI (foreign function interface),可以很方便的跟各种C语言库(如 TensorFlow)交互,极大地扩展了 PHP 的能力。

更加安全 ,主要是引入了更加现代更加安全的密码学类库 libsodium。

性能不断提升 ,PHP7.4的性能大约是PHP5.6的3倍,比PHP7.0也快了近18%。主要的性能提升来自于PHP7.0的zval重构。

而PHP7.4也能过引入 preload 特性进一步加快了代码的执行速度。PHP8.0 也引入了 JIT 技术,性能也有了更大的提升。

然后这些都是php的优点,那也不要忽略了php的缺点

  1. 不支持泛型。程序员无法限制PHP的数组的成员类型。

  2. 运行时类型检查。PHP的参数类型检查是在代码执行的过程完成的,降低了执行效率。

  3. 不支持多核。PHP虚拟机就是一个C语言的 while 循环,边读取边执行。如果想跑满多核,只能利用多进程或都多线程,多线程存在同步问题,多进程存在IPC问题。

  4. PHP本身和扩展都使用C语言开发,要想深入理解PHP,单写PHP代码是不够的。这在一定程度上增加了改进PHP的门槛。

而 go 语言恰恰是解决了这些问题

  1. 支持基本的的范型 slice 和 map 都支持指定类型

  2. 编译时类型检查,没有运行时开销

  3. 基于线程实现协程,先天支持多核

  4. 使用 go 语言自举,编译器和运行时本身由 go 语言加少量汇编语言开发,只要熟悉 go 语言就可以深入研究编译器和运行时代码

  5. 支持类型推导,开发体验跟 php 这种动态语言类似

GO语言是一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。

Go语言有九大核心特性,具体是哪些,你可以看看这篇文章: https://www.toutiao.com/i6761038826761617933/

随着互联网企业进入三高时代,企业对程序员的技术要求也越来越高,很多团队会引入 Golang到在项目运作中,这不仅会提升性能,还能在原有基础上改变可扩展性,并且运行速度提高将近几十倍。 GO语言与PHP的完美结合,取长补短,既满足高效率开发又能弥补性能优势。

当在PHP开发中用到GO语言,不仅对性能大大提升。它加入了并发编程,多线程编程、其中涉及到大数据、云计算、微服务架构等领域,而且将服务器总数减少了近三分之二,节省了大量工作成本和服务器成本。

PHP与Go语言结合契合了大厂在招聘中的技术要求,PHP+GO双剑合璧让你如鱼得水! 进可攻退可守:既能满足一线大厂的要求,也不阻碍你在二三四线城市的中小厂用PHP谋求一份高薪的工作!

最近在面试中,搜索了很多企业招聘php的岗位职责,比如是3-5年经验的,且公司的项目有涉及到 高并发,直播,短视频,游戏 等的,基本都是要你会GoLang。这也是PHP学到高级的时候必须要会的。

总结

当你用php用到一定水平的时候,你就会知道它有哪些不足了,然而你也会发现为什么很多人最后都要去学习swoole并且去用好它,或者最后都要去学习go语言。

语言只是一门工具,说白了就是以后你用来养家糊口的,甚至用来创造更多。。。作为用了7年多的php的我,如果还是要在php这个行业继续稳定下去,除了一些辅助的扩展语言要会(docker,Mq,MongoDB等),你还要会swoole,甚至是go语言等一些正好弥补php不足的语言

个人觉得php是最容易入门的语言,以前是这样,现在也是这样。php会了(语言语法相当),你还怕Go语言学不会吗?

技多不压身,多学一门语言,况且是两语言可以组合着用的,没什么不好,而不是你们总是说的我转Go语言了!!



更多“Go”相关内容

更多“Go”相关内容

新知精选

更多新知精选