关于初学Golang的一些感受

前言

前段时间获得字节跳动的后端开发实习生offer后就开始学习golang,目前算是将golang了解了个大概,但是还是在很浅层的了解层面,大学三年学了两年半的Java,突然接触golang真的有千般万般的感触,现在当作日志将这些感触记录下来,希望能在将来的某一天又返回来看看,感受一下自己以前的愚笨。

关于golang的一些吐槽

众所周知,golang的语法跟C很类似,还好我大一有些C语言的底子,虽然当时对于指针是一窍不通,但是学了Java之后也有所理解,所以要学习go其实还比较简单,但是对于用惯了Java语言的我,真的对于有些地方感到匪夷所思,就很想知道这样设计的意义是啥(也可能是我接触的语言太少了,所以目前以我的辣鸡水平还感受不到这样的妙处,就只是单纯吐槽一下。
首先go没有明确的对象,不像Java,一个类是一个对象,go里是一个个的结构体。其次,go的一个包里只能有一个main方法,这也是我以前不喜欢用C的原因之一,因为我觉得一个main方法好麻烦,要是想要不同的文件写不同的程序就得多建个工程或者多建一个包,虽然我知道可以用不同的方法代替,但是方法还是没有单独的文件对于这段代码的作用说明的清晰度高。
然后就是go不要写分号,这完全是个人习惯了,我真的很喜欢写分号…就很无奈,也不是不能写,但是写了就有个波浪线在下面看着很不爽。
还有就是关于const()里面,如果不赋值就跟上一行的值一样,还有iota,一行里写两个还只能算一行,我就真的感到匪夷所思啊。
最后就是Java写代码要写很多嘛,去完成一个功能,而同一个功能,go可能只要写一丢丢,跟python一样,非常简洁,但是我就是不喜欢这种简洁,可能是我太容易自我满足了,在看到在写了很多Java代码后,我会觉得很有成就感…这种成就感在go和python这种简洁的语言里感受不到啊!!
害,虽然吐槽很多,但是我对go还是给予重望的。

菜狗对于golang的一些期望

是的菜狗说的是我自己,说是期望,只是在我的直觉上认为golang会是未来的大势语言。我陈述一下我的观点。

  1. 现在后端的一大难题是高并发,在Java后端重,并发量一大,也就意味着线程多,线程一多就需要频繁的进行线程间的切换,因为CPU是永远小于并发量的,若是涉及到内核操作,就还要频繁的从用户级切换成内核级,这会浪费很多时间。而在go中,通过GMP模型,可以将用户级线程和内核级线程分离开,内核级线程跟Java一样通过CPU调度,而用户级线程分为多个叫做协程的东西,通过调度器来统一调度,所以减少了用户级线程切换成内核级线程的时间,也减少了线程间的切换次数,增加了CPU的利用率。由此可见,只要调度器做的好,go的高并发的CPU的HA远大于Java的。
  2. Java后端市场已经非常饱和了,近几年大量的人一头扎进Java这个坑,看这两年Java后端的内卷情况就可以看出来了,牛客网上的调查也非常清晰的说明了这个问题——百分之79以上的人都选择的Java后端这个方向。所以我认为现在再入坑Java的人多多少少有些不理智了。当然也会有人说Java都火了20多年了,还会继续火下去,对此我只能说,中国互联网市场的人才是只会越来越多,你会选择学Java,别人也会选择,如果你能卷的过别人,你选什么语言,什么方向都没问题。当然Java岗位也很多,不管是一线大厂还是不知名小厂,都有在招Java,但是现在很明显很多大厂都在使用go了,不然我就不会写这篇博客来记录我学golang的感受了。
  3. go能做的东西真的很多,它的标准库就可以做很多东西了,比如爬虫、web开发等等,当然这些Java也能做,但是go更简洁。还有就是Java的spring框架,越来越重量级了,虽然推出了springboot,但是学起来真的很困难,很多刚入门的人包括我当时学Java的时候也是,会被误导认为框架很厉害,学起来很难,我要花很多时间去学,而不是去将Java基础打牢打牢再打牢,因为框架学起来如果很多思想没有理解到,比如Java的反射、设计模式的动态代理等等,就很难get到,别说去看源码了,还是要强调,框架只能用来用,最重要的是自己吸收到别人在写框架时的思想,这也是我自己要时不时提醒自己的。

总结

Java和go都只是一种语言,Java能做的go也能做,go能做的Java也能做,包括其他语言,各有长处,各有千秋,作为一个立志成为非常牛的架构师的菜狗的我来说,我们最应该学会的是在正确的地方使用正确的技术,这是我目前的想法,也正在朝这个方向去努力,可能之后我就有其他不同的感受了,反正时间总会解决一切的。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值