初识golang
来源:互联网 发布:mysql 语句编写 编辑:程序博客网 时间:2024/06/06 00:27
最近几天闲着无聊,老大给推荐了一门新的语言golang(对于我来说),看了一些
介绍,也写了几个小demo,马上爱上了这门语言,凭着一股“生命不止,折腾不息”的
极客精神,也写个小博客,发表一些个人见解。
本人主语言Java,如果说比较,那就拿Java和golang做个比较,比较的目的不是要
引发诸如“php是世界上最好的语言”这种无意义的语言之争,而是对语言的应用场景
有个大致的了解,以满足不同业务场景的应用,其实对我来说更是一种学习,一种思维
模式的练习。
先讲讲写golang程序的感受吧,写起来真是爽,没接触golang之前,用Java写程序
,有IDE还好办,代码写起来也没觉得太冗长啰嗦,但用了golang就不同了,golang就
像一把瑞士军刀,小巧、精悍、锋利,瞬间感觉Java在这方面弱爆了。
上个HelloWorld代码比较下吧:
Java版:
public class Main{ public static void main(String[] args){ System.out.println("Hello,world!"); }}
golang版:
package mainimport( "fmt")func main(){ fmt.Println("Hello,world!")}
看到没,golang连分号都省了,简洁,不多说,以后还有更多的例子。
galang作为一门现代语言,博采众长,背后是google这座大靠山,吸取了各种语言
的精华,其设计理念就是为解决软件工程中的诸多问题而生的,是一种偏向于服务端的
编程语言,主要目的是为编写大型分布式系统提供支持,现在已经愈发成熟,像
Docker、今日头条的微服务架构,七牛的云存储。
下面说说golang的优点或者说吸引我的地方:
1.它在语言级别就提供了并发的支持,不像Java,是库级别的,而且并发的工具
繁多,用Java写出高质量的并发程序是一件相当有挑战性的工作。而golang不同,首先它的并发模型设计的比较好,采用一种叫协程(这是一种更轻量级的线程)的概念处理并发,可以同时开启上万个协程而毫无压力,同时解决了线程切换的开销,能把cpu的性能最大化,尤其是在当前服务器动辄几十核的处理器上,把多核的优势发挥到极致,这是它比其它语言的最大优势。
2.它的标准库工具强大:这包括互联网应用、系统编程和网络编程。Go里面的标准
库基本上已经是非常稳定了,特别是我这里提到的三个,网络层、系统层的库非常实用
3.有指针(但没有C的指针运算),有垃圾回收(现在已经比较完善了,给力),Go
语言支持当前所有的编程范式,包括过程式编程、面向对象编程以及函数式编程。程序员们可以各取所需、自由组合、想怎么玩就怎么玩,编程十分灵活,给了程序员很大的想象空间,同时自带的工具在源码编译之前就固定了格式,使得格式统一,所有程序员写的代码都是同一格式,方便团队开发和阅读源码。
这是以上我感受比较深的,当然golang的优点还有许多,也还有不完善的地方,以
后我打算把go语言作为第二语言来学习,也会更多地分享关于go的文章,也希望看过这篇文章的你和我一起加入go语言的大家庭,下面附上2017年6月的编程语言排行榜,从中可以发现golang目前的发展势头是多么火爆:
go一年内从48上升到现在的15,在看其增长速度1.83%,对比其他语言,排名前三的
语言都是负增长,而在golang前面的语言没有一个增长速度超过1%的,所以我十分看好golang的发展,强大的开发团队,完善的文档,火爆的社区和分布式开发的需求,这些都是推动这门语言欣欣向荣的原动力。
阅读全文
2 0
- 初识Golang
- 初识golang
- 初识Golang
- golang 初识小结
- golang mysql-1(初识)
- Go语言学习(一):初识Golang
- Golang
- golang
- golang
- golang
- golang
- GOLANG
- golang
- golang
- golang
- golang
- golang
- golang
- hdu 1907 Jone 尼姆博弈
- 对话框操作
- “玲珑杯”线上赛 Round #17 河南专场 D -.妩钶取玳°月(FFT)
- 动态链接库的显示加载和隐式加载的区别
- Java中级开发工程师知识点归纳
- 初识golang
- 计算器算法----C语言实现(堆栈法)
- 小小人与编程的第一次邂逅
- (转)Steve Cohen:重出江湖?(上)
- spring配置文件头信息最全约束
- 给一个正整数 n, 找到若干个完全平方数(比如1, 4, 9, ... )使得他们的和等于 n。你需要让平方数的个数最少。
- Android 通知栏Notification
- 判断其中一个radio被选中
- angularJS用于radio、checkbox