Golang Go语言中做项目选择它的理由而不是Java?

发布于 1周前 作者 gougou168 来自 Go语言

golang 是代替 java 的,因为两个都是 GC 语言 java 是 c++替代者第一代 golang 是 c++替代者第二代 (rust 无有 GC 所以真正进入了 linux windows kernel 而 golang 不能进入)

做项目选择 golang 而不是 java 的理由? 并发来说,估计 java 的库也不错 选择 go 唯一的理由是没有 vm 所以节省内存?


Golang Go语言中做项目选择它的理由而不是Java?
101 回复

写 go 代码心智负担小

更多关于Golang Go语言中做项目选择它的理由而不是Java?的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


看个人顺手了,性能方面大差不差,所以我选 kotlin

java 环境部署还是第三方库管理感觉都跟屎一样

JVM 有个好处,支持编译语言比如 Java/Kotlin ,同时也支持 Groovy 这种脚本,且可以在项目里面混编应对各种需求

每段时间都会出来语言之争,这重要吗

上手快,无论以前是写什么语言的,招进来一周就能开干。

技术选型的时候好不好招人绝对是第一优先级,性能啥的在招人面前不值一提。选 java 基本上只能招以前写 java 的程序员,但是选 go 你可以招一切程序员

服务器成本以及方便部署上来讲,golang 对配置需求远远低于 java ,golang 能跑在更多设备上,我甚至把 golang 写的 frp 内网串通程序直接运行在我的一个 4 年前 53 元一个的廉价小米路由器 4c ( cpu 是 mips 架构,刷 openwrt linux )上。

新入行的兄弟们不想跟 java 的存量庞大群体卷了, 另开一个赛道。

啥乱七八糟的,谁告诉你 go 替代 java ,java 替代 c++ 了。 有个 gc 就替代了?你咋不说他们都用 if 呢

软件项目考虑的首要根本不是并发,再说一遍 不是并发, 你自己算算开 Java 线程 要多少内存,java 每个对象有多少元数据吧, 每条 tcp 连接到底占多少内存。

如果考虑真正的高并发, 那么 java 和 go 都不是首选。go 的 并发设计是很容易让一个普通程序员写出不错的业务和并发兼顾的程序。

很没意思的帖子和话题,多学学几门语言去做项目,而不是停留在表面。


java 替代 c++ 是不争论的事实

什么替代, 搞笑, 你讨论这个,我觉得你以后大概率被 AI 替代了。

我先来
1. 云原生
2. java 太卷
3. 我就听说过这么多!

我一直觉得 c++,go 和 java 他们都不是一个赛道的,为啥在你这里都是这个代替那个的。

go 没那么多语法糖,体积小,内存小!

最主要是,年轻,没那么多复杂啰嗦的设计模式,写代码直接怼上就完事了

当然是因为我不会 JAVA😎

最近公司给我一个活儿用 golang 写,之前我主要写 java ,就靠着 gpt 加看一些基本规范,再找人问问, 慢慢就磨下来了。用什么语言开发,更多的不是来自技术本身,看现有条件和需求。
最后,go module 用起来有点怪,只能从 github 拉代码吗? 能不能想 java 一样打个 jar ,有人知道麻烦 @我一下,谢谢

  1. go 薪资更高。
    2. go 编译更快。
    3. go 面向未来的语言,早晚都要学,有机会不如找在项目里面实践。
    4. 面向前途编程,万一将来 java 不行了,还有条退路。

go 直接编译成多平台二进制可执行文件,以 fiber 框架做个物联网后后台为例,docker 编译打包完才几兆大,服务器性能好不特别,但 go 能在低配嵌入式电视盒比如斐讯 t1 跑到 1W QPS

行了行了你说的都对,opencv, qt, unreal 他们没用 java 肯定是因为太菜学不会

做业务你就用 java 吧,做系统网络服务就选 go 吧。

其他的加一起也没有招个 java 简单吧。

Java 替代 C++你是搞笑的吗?你把 Chromium, Firefox, Gnome, KDE, Qt, 乃至 Windows ,到一系列嵌入式设备固件,包括你电脑上跑的 UEFI BIOS ,用 Java 来写试试?

就连 Android 这个由 Java/JVM 打造的庞大框架,底下的 system services 都是一堆 C++在跑,你用 Java 实现个 surfaceflinger 试试?

我不是否定或者贬低 Java ,它自然有适合它的赛场,但是作为一种依赖 VM 的托管语言,跟 C/C++就注定不是同一类东西,没有可比性。

不想客户端带着 java 运行时.

c++和 java ,go 就不是一个赛道,写业务老老实实用 Java ,偏向网络的中间件,比如业务网关之类的用 go 重构了,再底层一些基础组件,之前用 c/c++写的现在在用 rust 重构,不用 c/c++是因为真的不好招人。我们现在是这样的。用 go 去写纯业务没有看到比 Java 好在哪里,面向 Spring 编程的 javaer 便宜又好用。

java 替代 c++的结论是怎么来的。。

我倒觉得 go 是替代 php 的

并不影响我月薪 3000

主要有个 jvm ,没 jvm 都一样

看到 java 和 golang 替代 c++,绷不住了。这都不是一个赛道的,替代啥?

可以都试试看,高兴写哪个写哪个。

对我来说我不喜欢写 Java 的主要原因是 Java 历史包袱太重了,没这个功夫从 Servlet TomCat 学,也没功夫去搞这些八股文。有些东西,比如操作系统,数据结构,算法是不会变的,什么时候学都不会褪色。但是一个编程语言那么八股文很大一部分是因为路径依赖,各种演进带来的问题,是补丁上面打补丁。而且 Java 在一些新的领域比如云原生,这个领域就是在 Java 之后才有的,本身就没有这么大的包袱,社区自然也没必要陪着 Java 一起卷八股文。

其次,Java 太 JB 罗嗦了。

因为项目小,是运维工具,所以选择 Go 。
复杂业务系统继续老实的用 Java 。

云原生时代了 java 也能编译成 native 的了,写起来自己感觉哪个舒服就哪个,面向工资和岗位就行了

典中典之编程语言日经帖

你们都转 go 吧,我强烈支持,这样就没人和我卷 Java 了。

哪个库好用点就用哪个? 比如 golang 有原生的 webdav, java 没有. golang 有 http 路由相关的库, java 很少, 难用.

那有没有 java 的有的, golang 没有? 那还真有, 比如 hadoop 之类.

#32 用 go 写过几个小工具。几乎全平台都可以跑,低内存占用(相比 java ),部署方便(一般只有运行文件和配置文件),不需要安装 JVM

Go 用來替代 java 卻是作者始料不及的事

java 替代 c++ 是不争论的事实,当你说出这句话时我就知道你的水平了。

小年轻 没入门的见解 大家看看就好。
GO 写技术类的服务还行,比如网络 监控等你等,性能不差,心智负担比 CPP 小,但是写业务就自找麻烦。

这位大哥,那是因为打包时把 runtime 也带上了,java 打包时也可以带上 JRE 都是虚拟机语言,逃不出那个坑,除非编译成 native 两者都支持,但是跨平台就…
那.net js GO 运行时总要带一个。CPP 写的客户端 极少了

  1. 喜欢 go
    2. 不差钱
    3. 基础设施类项目

    否则商业项目第一要务“能找到便宜量大的程序员”就把 go 毙了

#40 我是觉得没必要纠结那么多,编程语言只是工具,重点是拿来做出了什么。退一步来说,手上多个工具,不是坏事。

关于跨平台,同一个 go 项目,能分别编译出 Linux 和 Windows 的可执行文件。这对我来说,已经够好用了。

那请用 Go ,再见。

楼上所谓替代其实是某一语言(新)从另一语言(旧)手里抢份额,实质应该是编程语言在各个领域不断细化不断开花的结果。

go 替代不了 java ,但某些场景更合适。java 与 c++ 也是这样。

如果是后端开发,推荐 golang 。
从运行时来说,golang 的协程比较自然,在服务器上来说,这对性能提高非常大;当然,更重要的,golang 入门比较容易,没有那么多模式,标准库也设计得非常精良,所以对团队非常友好。
但是,我想说,golang 真的太土了,写多了真的很郁闷。现代化的语言那么多了,golang 出来还是那么朴素…
代码密度太低了…

i.dont.expect(code).to.read().like(english);
assert(simple > clever);

确实现在偏应用的我都首选 Kotlin, 底层一点的就 Rust 美滋滋

go 的包管理基于 git, 不只是 github ; go 没有 jar 类似的东西,只能 import go 源码

#11

看到你这句话,大半夜的给我笑得。

不争的事实,给个出处?很好奇是哪个神人。

你一个带 gc 的语言跟 cpp 这种讲替代,cpp 多少年来一直有的 mem 管理问题被你吃了?

写 tag 简直反人类

golang 的语法跟屎一样

心智成本低,spring 生态有很多不错的轮子,也可能有很多滥用黑魔法的轮子。golang 搞不了,都是静态可见的代码,容易控制和调试。

。。。我们 hls 开发从来没见过 java

可以用自己的代码库的

你的项目已经到了要选语言才能进一步优化的地步了吗,如果没有到这么高端的话都是业务肯定是哪种语言好招人,轮子多用哪个啊。

会什么就用什么, 都会就用最顺手的 , 哪有那么多语言之争 …

公司项目基本还是 java,部分中间件用了 go,个人项目还是喜欢用 go,毕竟随便玩玩买个低配服务器就可以,java 用 spring 那一套东西 512m 内存估计不一定跑得起来

有时间去医院看看

所有的为什么都是领导决定

是这样的.java 是 95 年出现的,那时没有 web

今天一票语言都是 web/mobile 时代
95 年后 java 抢走了大部分 c++的后端和 ui 份额

而 golang 确实在侵入 web 和中间件,显然是抢 cpp java 份额

rust 不是,它是试图替代 cpp 的一众语言里面唯一敢于继续不 GC 的

c#不值得一提,java 是一代, golang/rust 是二代
c#抄袭 java,可惜了安德森这个人才,没有达到 golang/rust 的高度

我喜欢 typescript

为啥你们选个语言还能说这么多,哪个熟悉选哪个,语言只是个工具而已,你选个“新”出的语言能证明你更 NB ?
又不是编译器开发者,这玩意有啥好争个高下的。
c ,java ,python ,scala ,go 我都写过

#2 那我可选 swift 了啊

我觉得没有一个替代是对的- -。

语言看场景和成本吧 没谁替代谁一说

#17 默认依赖的库都是 git 拉取的,可以是公司内部自建的 git 仓库.
还可以替换为本地库, go.mod 文件 replace 方式.

纸上谈兵 哈哈 你聊的这几个语言都不是一个赛道的

springboot 连 tomcat 都不需要跟屎一样?更别说 maven 这些大家都有私仓

语法比较简单把,真的 半天就能上手写代码了,
编译速度快也是优势像我这种长期 debug 的人。

不说做什么,只说语言好坏的都是流氓。业务首选还是 Java ,脚本 python ,shell ,groovy 等。。。。

1.可以从任何地方拉,把 github 的域名换了就行

2.可以编译成.so 文件,但是不推荐,坑很多。最简单的方式还是直接导入源码到项目里面

改改,应该说 go 是替代 basic 、Delphi 、java 、C# 、Php 、Javascript 、Ruby 、Swift 等等。
后浪推前浪 这不很正常吗?就好像说 Java 17 是替代 Java 5 的,可是还拿这样的东西来讨论已经没有意义了。

说到第三方库管理,我觉得 maven 比 go mod 强

为啥写业务用 go 是自找麻烦。

哈哈,看到 java 替换 C++真的绷不住了。也许移动互联网时代刚刚开始的时候你可以说 C 艹相比 java 没那么热门了,但是现在 AI 时代来临了,还有人喷 C 艹不行,我是真的绷不住了,神人。

[java 替代 c++ 是不争论的事实] 谁告诉你的 工作这么多年,没听说过
用 c++的场景压根瞧都不会瞧一下 Java

说下字节的情况,之前用的 Python ,要换语音,那时候备选也只有 go 、c++、Java ,c++门槛高,做业务不适合,然后又都不喜欢 Java ,只能选 go 了

看似 java 和 go 有竞争,其实不然,被干死的是 Python web 和 PHP

不喜欢 Golang ,要搓很多轮子,都是半成品。
Java 又啰嗦,所以现在我都写 Kotlin🥲

新团队新项目肯定没啥历史包袱,庞大的 Java 开发群体在这,环境复杂,类库多,用不好容易被喷,golang 就没这些顾虑。

你这个字节的例子恰恰说明了 c++是第 0 代,java 是 1 代,golang 是 2 代

创业时候用动态语言,后来切换静态,选择了 c++的第二代替代品:golang.rust, 字节没毛病

gc 语言永远替代不了 cpp

选啥都无所谓,软件最大的魅力是随时可以重构,错了就重新选择呗。什么,你说重构成本高 ?那你这个业务看来并不赚钱。

项目分大中小,也分领域。具体情况具体分析。

想起来 一篇文章 https://coolshell.cn/articles/21672.html

「注,一些有主观喜好的人一定会对我上述对 Java 的描述感到不适,我还用一些证据说明一下——全中国所有的电商平台,几百家银行,三大电信运营商,所有的保险公司,劵商的系统,医院里的系统,电子政府系统,等等,基本都是用 Java 开发的,包括 AWS 的主流语言也是 Java ,阿里云一开始用 C++/Python 写控制系统,后面也开始用 Java ……你可能会说 B 站是用 go 语言,但是你可能不知道 B 站的电商和大数据是用 Java……懂着数据分析的同学,建议上各大招聘网站上搜一下 Java 的职位数量,你就知道某个技术是否主流和热门……」

选 go 也不咋地,很多人用 go 随便写点什么,一堆 tm 的 interface 嵌套,最终把 go 写成了 java 的模样

世界第一语言不是 php 吗


官方 gomodule 上线前有第三方 govendor 方案,就是自带所有库代码,不过已经不推荐用了。
goproxy 解决 github 连接问题,这其实是类似透明缓存的东西。

感觉现在有虚拟线程了,Java 也还好?

就是觉得 go 比较新鲜,就像 windows 用久了想体验一下 macos 。

旁边公司销售跟客户说:我们的系统是用 go 开发的,比 java 更高级。。。

对我来说,我会选择 java ,但会抽空用 go 再写一遍。 那个熟悉用哪个,那个快用哪个。性能那些东西,说白了不到一定瓶颈根本无需关注。另外一个就是单人用 go ,多人用 java 。

只要 team leader 的技术水平和架构水平 hold 得住,语言什么的都好说

低消耗,响应国家碳中和

代码量大,微服务肯定是 java 好管理,go 适合单人搞简单项目

适合自己的就是最好的,语言本身是工具,帮助解决问题的,无所谓好坏之分

你不要瞎总结结论 go 和 c++、java 没啥替代关系

利益相关:go 和 java 重度用户,github 开源了大量 go 项目的开发者

轻量高效会折腾选 go ,拿来就用写业务选 java:)

看老板,老板要我用啥就用啥

我就想问个问题,写了几年 golang ,vue ,js 也挺熟悉,未来还应该写写啥呢?想玩玩新鲜的,也有前途的,好找工作的

喷都没喷到点
1.springboot 部署 jar 包启动就完事了,除了老项目才需要去 tomcat ,tomcat 确实恶心。
2.第三方库跟屎一样。。 这个你真的喷错了,maven 随便都秒杀 go mod 了好吗,难道从 github 拉库很舒服嘛

在选择Go语言(Golang)而非Java进行项目开发时,主要基于以下几个理由:

  1. 简洁性与高效性:Go语言语法简洁,代码可读性高,编译速度快,运行效率高。相比之下,Java语法相对复杂,且在某些特定场景(如微服务、实时处理系统)的性能可能稍逊于Go语言。
  2. 并发处理:Go语言内置强大的并发机制,通过轻量级的协程(goroutine)和通道(channel)实现高效的并发编程。而Java虽然也支持并发编程,但处理并发时可能需要手动管理线程的生命周期和同步机制,相对复杂。
  3. 部署便捷:Go语言编译后的程序体积小,无需额外安装运行环境,便于部署和分发。
  4. 生态系统与发展趋势:Go语言生态系统虽然相对较小,但增长迅速,且有一些优秀的第三方库和框架可供使用。同时,Go语言在云计算、容器技术和分布式系统等领域有广泛应用,未来前景广阔。

综上所述,Go语言在简洁性、高效性、并发处理、部署便捷性等方面具有显著优势,更适合开发高性能、高并发的应用程序。当然,Java在大型企业级系统和复杂应用中也有其独特的价值,选择哪种语言应根据具体项目需求和团队技能来决定。

回到顶部