编程语言-[讨论] Go语言和Python、C++相比有什么优势?

小组事务管理 小组事务管理 主题:974 回复:1955

编程语言-[讨论] Go语言和Python、C++相比有什么优势?

想挽留 发布于 2017-02-14 字数 123 浏览 1281 回复 17

CSDN刘江评价:说C++擅长的Go还是不行,而Python擅长的,Go还可以且性能足够。请问Go语言和Python、C++相比到底有什么优势?

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

支持 Markdown 语法,需要帮助?

评论(17

虐人心 2017-10-27 17 楼

还是C++ 在钱途方面,比较有优势

清晨说ぺ晚安 2017-10-27 16 楼

golang,py,cpp根本没有可比性。
golang,py都不是C系语言。语法与运行时技术都不相同。所服务的是本地平台还是虚拟平台都不相同。
若你拿gcc,vstudio cpp,qt cpp相比还有得一说。至少要工作在同一语言规范下(gcc,microsoft cpp),或同一套编译器下(qt cpp vs legay cpp)。

我的建议:

学语言不如学C系语言。学C系语言不如学qt cpp。它才是one language for all。它的语言是基于signal / slot的,可以模拟多种抽象惯用法,多种设计模式,多种应用框架,与多种系统应用逻辑,或web应用逻辑进行设计上的一一对应。。即,它足够generic,用一种典范代替传统cpp的多典范。

私以为:cpp的多典范,从提出来就是错的。

编程的根本在于抽象方案和应用方案的不断整合向一,最高境界是轻适抽象,保核向用。--------- 轻量但不要过度抽象,保持一个面向应用的最小工业和教育核心。

想挽留 2017-10-02 15 楼

Go语言因为晚出来,所以综合了c++,python等的优势, 这里有一篇介绍Go的,你可以看看:
http://www.kunli.info/2012/03/03/golang-feeling/
官网: http://golang.org/

偏爱自由 2017-09-19 14 楼

所谓“C++擅长的Go还是不行”,是因为Go还很年轻,其生态环境还不够完善。用Go编码来调用系统级C库是非常非常方便的。

Go相对于C++的优势我认为是其先进性、规范性和简单性。

Go相对于Python的优势我认为是其性能、语法和工程特性。

夜无邪 2017-09-16 13 楼

现在评论go还太早,刚出来简洁,越变越臃肿的例子太多了

想挽留 2017-06-21 12 楼

1:Golang开发的初衷是为了替代繁琐的C++做系统编程的。简单,轻量级,少即是多。目前看来,python和ruby的程序员更喜欢它。
2:Golang是编译语言,python是解释性语言。在运行效率上golang>python。在开发效率上golang=python。这也是python程序员喜欢golang的原因,相比熟悉的python并没有失去什么,但是获得了更高的运行效率。
3:在运行效率上golang想比c++还是有一定差距的。但是开发效率上c++和golang不是一个量级的。
4:个人认为golang会逐渐取代java的位置。

夜无邪 2017-06-16 11 楼

主要就是更简便 特别是并发编程一块 目前我也在学~~

虐人心 2017-06-01 10 楼

Go很多不成熟,Google都只限于内部一些项目的开发。C++已经非常成熟C++11以后C++将继续发展。

夜无邪 2017-05-09 9 楼

以前用python写一个程序快是挺快的,啪啪啪就完成了,但是想使得这个程序充分利用多个cpu核心,提高性能,能做的就是开启多个进程,然后想办法添置进程同步的函数进行处理,当然也可以利用现有框架,而go语言在保留python的快速开发能力的同时,非常方便的解决了这个问题,并且提供了编译步骤,可以在快速编译期,非常友好的提示错误在哪儿,不是像python那样,某个逻辑分支没有运行到,你很难发现一些基本错误。
对于C++来说,go补充了一个快速开发多线程程序的方案,在c++中使用指针,必须小心的包装智能指针进行和弱引用来保证线程与指针析构之间的先后顺序,而go显然更灵活的做到这一点,并且将异步,通知的方案直接嵌入到了I/O层,与他自己的goroutine调度器进行了结合,非常方便开发i/o相关的程序。另外在文本处理方面也有线程的优良库,方便的结合github的安装第三方库方案,这些现代的新方案确实要比c++老迈的发展步伐更让人眼前一亮。
最后go语言能做到什么,我个人觉得多线程、重度i/o,快速开发是他的标签。另外,新语言提供的新思路,肯定会提高包括C++/python在内各种语言发展的步伐。

瑾兮 2017-04-28 8 楼

刚刚学习Golang, 感觉很新颖, 就和这个新房子一样, 还有很多地方需要优化, 不过可以肯定的是Golang很强, 有Python的灵活性和C的性能

泛泛之交 2017-04-17 7 楼

看是用在什么地方吧,底层操作,只有C++与ddk结合才是正道,其它语言就没一个是好用的

晚风撩人 2017-04-11 6 楼

接触GO一个多月,理解有限,轻拍。从实际应用说一下,
做了两个东西,一个是解析xml然后把相关信息放到数据库查询,在解析xml方面非常方便简单,有goweb包,对web处理非常简单。使用goweb.Maprest()函数。
另一个是跑在网关上,接收传感器信号,然后转换信息,发送平台上的小程序。主要利用socket通讯和多线程,GO有专门的chan 类型,用于管道通信。线程的支持更简单,GO function()这一句语句就开启了function对应的线程。
GO把C++的面向对象整合到struct里,所有对象都是结构,结构也可以派生,比如B要继承A
type A struct{a int}
type B struct {A}//注意A没有赋变量
同样,结构的派生会继承方法和成员函数。
GO的接口类似于JAVA的interface,也类似于C++的抽象类,接口内只能定义方法。想想吧,结构的继承加上接口,可以做基础的面向对象了。
GO的结构非常清晰,package的使用,大小写区分public和private,简单明了。
这段时间用GO写的很开心。

瑾兮 2017-04-05 5 楼

我是C++程序员,用go写过几个小程序,说下我对go和C++区别的看法:
1.完善的库,这个对于C++程序员来说是很需要的,包括json,html库等等

2.并发的支持,如果是C++写程序,一旦设计到多线程肯定会搞死人,包括数据通讯,线程通讯,编程模式,这些都是C++代码膨胀的原因,但是在go里面没有这个问题,->和go routine可以很好的解决这些问题

3.不完善的编译器,因为go还没办法替代所有C/C++的工作,所以在编程的时候需要用到C/C++的地方你只能用Cgo去嵌入,也就是把C代码写在go里面,这样又是搞死人的设定,如果是python,可以把python的代码独立出来,但go没办法,你只能把代码写在go的代码里面

4.垃圾回收,这个对于C/C++程序员真心是福音,当然前提是要不保证内存大量泄露,小量的泄露大多数人还是能接受的

PS:今天我们组的一个程序员写一个结构体,总共有将近100+个数据,要全部写入XML,只能一行一行代码的写,现在写了差不多有200+行了,但是如果用GO的json模块,只需要2行左右,当然格式是json的,不过我觉得json比xml好多了

浮生未歇 2017-03-10 4 楼

对服务器编程来说,一个最直接的变化就代码逻辑简单很多。可以直接用同步阻塞的方式写逻辑,代码结构非常的清晰简洁,少了很多异步调用和状态处理,也相应减少了很多不必要的代码量。大约估计:200行C++代码,用go只要100行就搞定。

灵芸 2017-03-10 3 楼

接触GO有三四个月了,用到最多的就是goroutine,另外代码风格比原来也好了一些,大概是因为GO严格要求规范吧。GO应该算是一门很年轻的语言,还有很多可以优化的部分吧。编译器方面,调试的功能还远远无法与eclipse相比,调试时候比较费事,其他时候感觉编程还是很方便的

瑾兮 2017-03-06 2 楼

仅仅语言语法、语言特性这个层次的优势不大。

go erlang这些语言相对其他语言的优势,在于go erlang这样的语言,不仅仅是一个语言,而是一个操作系统,它定义了自己的任务概念,实现了任务调度管理,使我们的程序可以在多核甚至分布式环境具备很好的伸缩性。

你不需要关心有几个核几个CPU,你的程序在2个CPU的系统上就会启动2个线程(OS级别)运行,8个CPU就8个,始终有很好的多核并发能力,充分利用系统资源。这才是这些语言的最大优势所在。

泛泛之交 2017-02-24 1 楼

都有优势!python简单