浅谈编程语言和ServiceMesh

编程语言

周五和同事们一起头脑风暴谈了谈各种编程语言以及新技术的看法。

Java
Java最大的优势是工程化,不得不说Java的生态、语法等要素一起构成了它独有的工程化特性,相比现代编程语言如Go之类的,强大的生产化、工程化生态,才使得那么多人用Java。

Go
说起Go语言,其实我比较惭愧,大学毕业时原本是准备找Go相关的后端开发,当时也拿了一个Go的offer,但是最终还是来做了Java。不过经过这一两年的时间,我发现现在Go还是大多用在了运维侧,比如公司运维部,很多工具都是Go开发的,很多运维人员也都知道和会用Go。不过,现在经常和docker和K8s接触,两者都是用Go开发的,不知道未来能不能将Go知识用上,也期待Go能尽快将泛型等功能生产化,提高Go的工程化特性。

Kotlin
其它诸如kotlin语言,其实我觉得kotlin前景还是非常不错的,它能够和Java共同使用,即同一个项目既有Java又有kotlin,这其实是一个大杀器,迁移成本将非常低,而且kotlin这两年吸收了Go和Python的协程特性,作为一门现代化编程语言,kotlin能够集众家之长,这是非常值得称赞的。不过其实我也没在生产环境用过,同事也不太认可,毕竟他们对安卓端不太了解,他们都是以服务端开发的角度,认为kotlin没有太大前景,而据我所知安卓端开发,已经有近一半的项目用上kotlin了,虽然我平时也在开发安卓软件,但是我并没有引入kotlin,但是我深知在安卓开发领域kotlin未来大概率会取代Java,因为我身边写安卓软件的,很多都已经全面迁移到kotlin了。

Service Mesh

近些年云原生技术非常火,火到每年infoQ等组织举办的各种技术分享都有一大堆相关的内容,而其中最顶尖的探索就是Service Mesh技术。在两年前我就通过一些博客、论坛了解到服务端从分布式、微服务、Serverless再到Service Mesh的发展趋势,不过现在大多数厂商都还在微服务的发展道路上,不过也有百度阿里等头部公司在积极探索Serverless和Service Mesh技术。

不过从今年再看其趋势,发现已经很少有人分享Serverless技术,而Service Mesh依然在探索,比如阿里的SOFA,其实我本身不是特别了解,但是和同事的探讨,我发现我似乎把Service Mesh等技术想得过于复杂了。实际上SideCar本身也就是放到应用层的一个代理层,同时支持限流熔断等功能而已,而我们公司现行架构下,已经有接入层,并且应用层也有一层代理层,实际上已经和SideCar比较接近了,主要还是看有没有必要在应用层做限流熔断等服务治理功能,还是说这些能力是在接入层或者业务代码里面。

作为一个服务端小白,我在架构上的能力还有待提高,这些新技术还需要持续观察和了解。

tag(s): Android Java Go 
show comments · back · home