毕业之后,我去了施工单位,干了三个月,感觉很累。我试着兼顾工作和学习Go语言,在敲打Go代码时,我感到了极大的编程乐趣,这是我在学习Java和Python时所没有的。
1. Python
在大学时,最先接触Python。我承认,python真的很有用,特别是做一些
- 数据分析
- 爬虫
- 自动化
但是作为一门解释型语言,性能不高,在生产中更多地做为一些配角。我们使用python,更多地是调包,难以搞清其背后运行的原理python容易上手,是因为包替我们掩盖了这种复杂性,同时也降低了灵活性。
python值得诟病的是,总有一些依赖包你安装不上。有时候折腾大半天,身心俱疲。
有时候做好一个程序,想分享给同伴使用,没法打包成单一的可执行性文件,还需要配置python环境,搞得很麻烦。
总之,对于非程序员而言,python是一门非常好的语言,能提高我们的生产力。但是对于程序员,python给的还不够。
2. JAVA
在毕业前,学了3个月的JAVA,没有找到工作,只好去了工地。我想说,Java的学习曲线太陡峭了。你需要学
springbootJVM虚拟机MyBatisTomcat服务器
JAVA有很多魔法命令,特别是sprintboot的注解,我只会用,但不知道其背后的原理,也很难灵活地进行扩展。总之, 你要想把Java学透,要花费很长的时间,因为Java本身就是很复杂的设计。同时,使用Java进行开发,也需要投入更多的精力。
不可否认,Java有非常丰富的开发生态和活跃的社区,在后端开发有着统治的地位。
3. Golang
Go作为Google开发的后起之秀,以其杰出的性能和“简单,直接,清晰,优雅”的设计哲学,正在被越来越多的开发者和公司青睐。docker的崛起,服务器上云,都说明了Go的强大与成功。Go在后端开发一直在稳步增长,特别是在一些云原生和微服务领域。可以预测,未来Go和Java将平分后端市场。
Go的优势在于
- 高效的性能,
Go作为一门编译型语言,其性能仅次于C/C++。(C/C++性能最高,但其开发和维护过程是一场灾难) - 原生支持并发,
Go的协程不同于Java和python的线程。Go天生支持并发! 如无必要,请勿增添的设计哲学,使其有极致的开发体验,延长程序员的寿命。易于开发与维护,降低开发与维护的成本。- 杰出的依赖管理。在我写Go的生涯中,几乎碰不到依赖管理的问题。Go使用去中心化的仓库如
github,如果你想创造一个包,可以直接上传github, 其他人就能使用,这相对于使用中心化仓库的python和Java来说,简单多了。 - 直接编译成可执行性文件,跨平台运行。
Go是最简单的一门语言。而python是一门容易的语言。如果一门语言让你有编程的乐趣,那你就该选择那门语言,就像交朋友一样。