程序开发语言 Go 的七宗罪_程序语言谁发明的

createh51个月前 (02-09)技术教程10

老妖觉得目前 Go 语言并不适合在规模化项目中使用。为避免大家踩坑,总结和整理了一些 Golang 目前存在的问题,希望能有所帮助。


一、没有框架

这凸显的就是生态的问题。比如,我想搭建一套微服务框架,使用 Spring 可以毫不费力气地轻松做到;使用 Go,就得从一无所有处全部自己编写,等你规范完框架。Java 开发的程序都已经上线运行了,

在这个时间就是金钱的时代,放弃 Go 就是一个显而易见的选择了。


二、多环境部署

这在很多人看来不是什么问题。但不要忘了当年 Java 是怎么火起来的,正是靠着 Java 虚拟机实现了一次编译多环境部署。Go呢?直接就是编译成二进制文件,也就是每个不同的运行环境都要重新编译。

有人说,这不是个事,我们用 Docker 就一马平川了。我对此嗤之以鼻,我就不信从开发环境,测试环境再到生产环境就真能做到一马平川。


三、成本高

Go 还是比较新的语言,会得人很少。而且也都是大厂在招聘 Go 开发人员,我觉得 Go 语言现在的火就是大厂单方面为了自己的利益而撺掇出来的。

从招聘角度来看,一个 Go 开发人员的待遇成本比一个 Java 开发人员至少要高三分之一,且 Go 的开发能力未必就高于 Java 人员的开发能力。

从企业角度看,能使用较低的成本就达到目的,何乐而不为呢?毕竟,新的技术只有纯技术人员在追求,企业才不在乎技术是不是新的呢,只要花最少的钱赚到更多的利润就行了。


四、没有异常处理

这是一件非常扯的事情,Go 没有异常处理,是通过多个返回值来实现的。我对此不想再说什么。懂得会懂,不懂得也就不懂了。


五、没有三元运算符(?:)缺少泛型

这两个应该是一个现代化开发语言的基础,但 Go 都不支持。是 Go 觉得自己引领了世界的潮流,不需要这些东西了吗?


六、包管理

Go 语言的软件包管理绝对不是完美的。默认情况下,它没有办法指定特定版本的依赖库,也无法创建可复写的 builds。相比之下 Python、Node 和 Ruby 都有更好的软件包管理系统。


七、自动生成代码很麻烦

使用 Java,尤其是在使用 Spring 框架时,大家都知道,有很多的非业务代码可以通过工具来生成,不要小看这些生成工具,这给开发效率的加成不是一星半点的。

反过来看 Go,由于各种规则的限制,尤其各种语法糖的使用,使使用生成工具生成出来的代码极难使用,不如自己从头重新写呢。


总之,老妖极不赞成在规模化的项目中轻易地就采用 Go 开发。当然如果仅是解决某一方面的问题,那么拿来用用也许不会有什么影响。

相关文章

Java程序员学Go语言指南(上篇)_java程序员入门书籍

环境配置篇:从JDK到GoRoot1. 安装对比Java:安装JDK → 配置JAVA_HOME → javac验证Go:官网下载.msi → 自动设置GOROOT → go version验证2....

三十分钟入门基础Go(Java小子版)_java小白入门

前言Go语言定义Go(又称 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 开发的一种静态、强类型、编译型语言。Go 语言语法与...

Java程序员学习go语言之入门篇_java程序员要学多久

在软件开发领域,Java凭借其强大的生态系统、平台无关性以及面向对象的特性,长期占据着重要地位,广泛应用于企业级应用开发、安卓应用开发等诸多场景。而Go语言,作为一门相对年轻的编程语言,近年来在云计算...

Java:Java 和Go—你应该知道的8个主要区别

  因为有太多的编程语言可供选择,开发人员经常对哪一种最适合他们的项目感到困惑。因此,今天我们将介绍Java与 Go。Java 和Go都是全球非常流行的语言,它们争夺对服务器端 Web 应用程序的控制...

Java程序员学习go语言之提高篇_go语言工资高还是java工资高

作为一名精通Java的开发者,在掌握Go语言基础后,深入探索Go语言的高级特性,能让你在编程领域拓展新的边界。Go语言凭借其独特的设计理念,在并发编程、内存管理、工具链等方面展现出卓越的性能与优势,为...

有一定的c++ go java的编程基础,如何3天学会flutter开发

如果你有多种编程语言的基础,想要在 3 天内学会 Flutter 开发,可以按照以下的计划来进行:第一天:熟悉 Flutter 基础环境搭建首先,安装 Flutter SDK。根据 Flutter 官...