向Java程序员介绍Go,还需要优雅的介绍,我觉得主要从以下角度考虑 。
1. Java 有哪些优点,Go 是否拥有;
2. Java 有哪些不足,Go 有没有解决;
3. Go 特别棒的特性;
Java 经过很多年的发展,形成了很好的生态 。一门语言的生态是至关重要的,就好比一家公司的壁垒 。Java 一直以来,有 谷歌、IBM、Oracle 等超级大厂的支持,有开源界牛逼的 Apache 组织支持,产生了很多顶级的软件,比如大名鼎鼎的 Hadoop、ElasticSearch 等等,Java 社区的原则也比较统一,基本 Spring 一统天下,没那么多纠结,很成熟!这些都是很强的壁垒!
相较而言,Go 语言还比较年轻 。但是,自从 Docker、k8s 的兴起,为 Go 语言的生态搭建了自己的壁垒,同时带来了一大批学习者,很有明星项目效应!
因此,在大型项目中,一般会多语言、多生态并存!
1. Java 目前大家抱怨比较多的是写法啰嗦,虽然新版本在不断改进,但毕竟有历史包袱 。
2. Java 学习门槛较高 。拿 Java Web 开发来说,首先你得学完 Java SE,然后是 Java EE,学习 Tomcat 这类容器,接着你还得掌握 SSH 框架,这些经过了很多年的发展,生态庞大,学习成本较高!
3. Java 程序内存占用较多,经常莫名卡死 。目前公司使用了 confluence 一套系统,隔断时间就有人反馈打不开了,和美团的人聊过,他们也是遇到同样的问题,得定期重启 。
4.Java 近期版权似乎也是个问题
【如何优雅地向Java程序员介绍go语言?】Go 从诞生之日起,就崇尚简洁,崇尚工程实践,没有历史包袱,可以借鉴先辈们的优秀设计经验 。比如 对 C 语言扬弃,保留指针,但废弃指针运算;避免隐式类型转换带来莫名问题,必须显示转换 。虽然是静态语言,但从 Python 这样的动态语言借鉴了很多优点,语言层面支持 slice 和 map,使得开发效率有很大提升;同时支持面向过程、面向对象和函数式编程 等等 。
整体上,Go 语言简洁,易于学习,每个人写出的代码风格一致 。在内存占用方面,因为没有重的 VM,还是比较少的 。
在现在重前端的大背景下,服务端负责 API 的情况下,Go 会是很好的选择 。
1. Go 的招牌是并发 。因为原生支持协程(goroutine),使得写并发程序非常方便 。goroutine + channel 一对招牌搭档!
2. 极快的编译速度 。有一个段子说,Go 语言是在 C++ 项目在编译的时候开发出来的!
3. 强大的工具链 。
4. 标准库提供 net 和 http 包,可以很方便的实现一个 HTTP 服务 。
5. 类鸭子类型的接口,interface 的设计 。
6. 标准库支持日志和单元测试 。
7. 和Java 一样,自带 GC 。
无意语言之争,只是希望大家对语言有更全面的了解,根据情况选择适合的,没有最好,只有最适合!
当然,Go 也在不断完善中,比如没有泛型,近期才对包依赖有了较好的官方支持,被人议论最多的错误处理等,如果 GC 一样,我相信 Go 会越来越好 。
最后补充:Go 是谷歌出品的,创作者是几个骨灰级程序员,国内有很多大厂在使用 Go,学习 Go 语言能够让你比 Java 更容易接触底层知识!
假设我告诉你,全球最牛的互联网公司、全世界成长最快的超级独角兽、以及全球发展最快的云计算独角兽都是以Golang为核心技术栈的,你觉得还需要优雅的向你介绍Go语言吗?这三家公司分别是Google、字节跳动(抖音、今日头条)和七牛云!
如何优雅暂时没想到,反而想到这事并不能轻松实现 。因为Java程序员学习第二语言的愿望并不是很强烈 。当然Go语言的优势会打动一部分程序员的 。
- 如何快速提高dota2水平?
- 到贵州贵阳旅游,你对这座城市印象如何?
- 失恋之后如何调整自己?
- 如何提高边牧对飞盘的兴趣?
- 通信技术专业学什么 就业前景如何
- 生物技术专业主要课程有哪些 就业前景如何
- 如何找到赚钱快又多的工作?
- 如何通过饮食来促进身体健康?
- 如何培养引导学生阅读的兴趣呢?
- 运动鞋该如何清洗?
特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
