java golang 性能1.4与 java8 比较 性能哪个更有优势

golang做web网站,对比php python java nodejs等有什么优势 - Golang中国
18:11 发布 15151 次点击
大家觉得用golang做论坛,做电商网站,做评论网站,对比php python java这些,有什么优势没有。
18:19 修改
哪个框架好用,其中语言和包上的坑多不多,自己要造的轮子多不多,方便不方便,成熟不成熟。谢谢。
另外站长这个论坛是用什么框架做的,用了多久成型的。
站长以前做过什么语言开发,在用golang做时,这期间感觉到有什么不便的地方吗,说出来大家共享。
站长这个网站,点击链接后,感觉页面切换速度很快。是跟服务器线路配置有关,还是跟golang语言有关,还是跟mongodb数据库有关。
如果用golang做,或,或百度知道,贴吧,百科等,会有什么不稳定不确定不成熟的地方吗。
站长对比自己用过的语言,对golang以后的前景如何看待,特别在动态web开发方面。能独领风骚未来三十年吗。
站长你觉得我想用golang做一个类似维基百科的网站,根据你的经验来说,靠谱不。比直接用php做,对小白来说golang比php简单容易入门吗,并且比php有更多的优势吗。
站长麻烦你看到时,认真详细回答下我的问题。我会定时刷新查看这个帖子内容的。谢谢你。
这位朋友,其实你说话可以一口气说完的。
我就尽我的经验回答你几个问题:
问:哪个框架好用,其中语言和包上的坑多不多,自己要造的轮子多不多,方便不方便,成熟不成熟。谢谢。答:Golang 框架我没有都用过,我就凭感觉当初选择了 ,其实也是没的选,当初我选择框架的时候就它成熟,后面才出来一堆其他框架,但是用下来一直挺顺手,就懒得换了。
问:另外站长这个论坛是用什么框架做的,用了多久成型的。答:这个社区没有用框架,Go 标准库的 net/http 提供了基本的功能,以及模板都是标准库提供的,如果非要说框架,我只是用
做了 url 的绑定。这个社区我2012年 Go 语言发布 1.0 后就开始写了,断断续续写了两个月的样子就上线了,那个时候缺乏资料,网上也找不到参考代码,全靠自己摸索。当然这近三年来一直在修改维护,添加功能。
问:站长以前做过什么语言开发,在用golang做时,这期间感觉到有什么不便的地方吗,说出来大家共享。答:我以前做 Python 开发,GUI 和 Web 都做,没感觉有多少不方便的地方,除了一些动态方面不如 Python 方便外,不过这点我不在乎。
问:站长这个网站,点击链接后,感觉页面切换速度很快。是跟服务器线路配置有关,还是跟golang语言有关,还是跟mongodb数据库有关。如果用golang做,或,或百度知道,贴吧,百科等,会有什么不稳定不确定不成熟的地方吗。站长对比自己用过的语言,对golang以后的前景如何看待,特别在动态web开发方面。能独领风骚未来三十年吗。答:网站切换速度跟你说的几个方面都有关系,这里每个页面底部都有页面渲染时间,另外服务器我换了 UCloud 的亚太主机,这个速度也比较快。豆瓣,天涯等等这些大型网站,都不是一蹴而就的,他们都是一步步发展起来的,做到目前这个地步其实跟语言关系已经不是很大了,如果你和你的团队水平和资源足够多,那么用 Golang 写一个出来也不是问题。就我个人而言,我是看好 Golang 的,但是我无法预言是否能够独领风骚30年,说不定未来有更好的 Web 开发语言或框架出现呢,另外,在我看来 Golang 在 Web 开发方面并不是最好的,但是综合起来看,是符合我的要求的。
问:站长你觉得我想用golang做一个类似维基百科的网站,根据你的经验来说,靠谱不。比直接用php做,对小白来说golang比php简单容易入门吗,并且比php有更多的优势吗。答:从你问得这些问题来看,做维基百科这类网站,靠不靠谱并不是语言的问题,而是你个人水平的问题,这个你心里应该有数。对于小白来说,主要的是先学从一门语言入门,选 Golang 或 PHP 并没有太大的区别,当然如果纯小白,建议还是先 PHP 吧。
另外,在我看来 Golang 在 Web 开发方面并不是最好的,但是综合起来看,是符合我的要求的。
请问做web,你觉得哪个是最好的呢,举例来说。
我的思路是这样,因为自己起点低,还精力有限,又想弯道追上技术潮流,所以着眼未来,选择Golang。既然敢叫云技术语言,那么它的性能自然是适合未来发展的,像facebook这样的大公司貌似也挺重视它…最最主要的,赌它未来能全栈应用,期待可以直接上手用Go开发Android和iOS应用的那一天~
框架选择上吗,初级选手建议Revel(开源案例比较多,老框架、Go官方给予了该框架很高的评价),其实Go语言众多框架性能都很卓越,水平高的不用框架直接玩更爽。顺嘴吐一下槽,Go语言框架之多如少女脸上的青春痘~
对了,选择Go语言的好处是,各个社区学习互助氛围比较好,你去哪个网上社区去请教问题,都会有人热情解答~
没有最好的。
没有最好的 只有最适合的
几个月前我选择beego框架,因为是初级和小白,从桌面程序开发转到web简单开发,一路过来觉得还蛮顺利。多亏有这些优秀的站长和论坛。我的理由:1、开始搞那个ror,连基本的在windows下环境的搭建就几个月也搞不定。这个beego和go在这方面就非常轻松了。2、go的web程序是编译了直接运行,不需要什么apache服务啥的,直接拷贝过来运行就行,对于我来讲真是省去了大量精力。3、数据库我也用sqlite,反正也不用装服务啥的,考过来就可以运行。反正对于我这个业余的搞工程设计的人来讲,就是简单,轻量,易部署……这些经验当然是基于一个小型的cms系统而言。
个人看法:
题主做web开发,根据个人能力和经验在php python java nodejs golang中可做如下选择:
1、小白或者初级:php,这个是需求最广、轮子最多的web开发教材式语言,java也可以试试
2、中级:py,node
3、高级:这个段位相信你也应该了解php,java,python这些大众语言了,那么就选择go吧
老实说,go的优势不在web开发这里。
谢谢楼上的chris,php框架选择ci slim laravel哪个好呢,laravel好像最慢的。
后方可回复, 如果你还没有账号你可以
一个帐号。来自Ubuntu中文
golang(中文名:go语言)是谷歌2009发布的第二款开源编程语言。Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程。。如果你想知道得更多,请移步至官网
网络搜索相关资料时,请使用约定的golang作为关键字(因为go关键字的干扰太多)。
Go语言是由Google开发的一个开源项目,目的之一为了提高开发人员的编程效率。 Go语言语法灵活、简洁、清晰、高效。它对的并发特性可以方便地用于多核处理器 和网络开发,同时灵活新颖的类型系统可以方便地编写模块化的系统。go可以快速编译, 同时具有垃圾内存自动回收功能,并且还支持运行时反射。Go是一个高效、静态类型, 但是又具有解释语言的动态类型特征的系统级语法。
由于Go尚未成熟,因此谷歌旗下各类面向用户的服务或应用都没有采用该语言。正因如此,谷歌才需要外部编程人员的协助。 通过创建新的编程语言,谷歌将继续拓展计算领域的各个方面,从而促进这些领域的发展。这同样也是谷歌开发Android操作系统、Chrome浏览器和Chrome OS的动机所在。北京时间日,Go语言摘得了TIOBE公布的2009年年度大奖。该奖项授予在2009年市场份额增长最多的编程语言。
 Google对Go寄予厚望。其设计是让软件充分发挥多核心处理器同步多工的优点,并可解决若干物件取向程序设计的麻烦。它具有现代的程序语言特色,如垃圾回收,帮助程序设计师处理琐碎但重要的内存管理问题。Go的速度也非常快,几乎和C或C++程序一样快,且能够快速制作程序。
  Go的网站就是用Go所建立,但Google有更大的野心。该软件是专为构建服务器软件所设计(如Google的Gmail)。Google认为Go还可应用到其他领域,包括在浏览器内执行软件,取代目前JavaScript的角色。
  Pike说:它至少在强度上比JavaScript高一级。Google自建Chrome浏览器,部分原因就是加速JavaScript和网页表现,而Google已经融合了本身的技术,如Native Client和Gears。
  Pike表示,Go另一项与网络相关的特色,是服务器和用户端设备,如PC或手机,可以分担工作。因此,使用Go的服务便可轻松适应不同的用户端处理性能。Go也可解决目前的一大挑战:多核心处理器。一般电脑程序通常依序执行,一次进行一项工作,但多核心处理器更适合同步处理许多工作。Pike说:我们自认有足够的支持,可改善这方面的问题。
  Go团队正在寻求帮助。其中一个重要领域是改善Go能够使用的runtime library。这类library可提供许多工具和功能,加快程序设计的过程。而Go的library还包括许多重要的设计元素,并供应处理同作、垃圾收集和其他低层杂务的资源。
  Go团队也需要编译器方面的协助。Thompson曾为32位元和64位元x86处理器,及ARM处理器写过一些编译器,Taylor也为GCC编译器写过一个Go前端。
  尽管Google对Go有很大的野心,该公司也明白,这项计划无法完全取代现有的技术。Pike说:我不认为我们能取代任何东西。我们只是创造出这个领域的另一个角色。
 简洁 快速 安全 并行 有趣 开源 支持泛型编程,内存管理,数组安全,编译迅速
 Thompson:1983年图灵奖(Turing Award)和1998年美国国家技术奖(National Medal of Technology)得主。他与Dennis Ritchie是Unix的原创者。Thompson也发明了后来衍生出C语言的B程序语言。
  Pike:曾是贝尔实验室(Bell Labs)的Unix团队,和Plan 9操作系统计划的成员。他与Thompson共事多年,并共创出广泛使用的UTF-8 字元编码。
  Robert Griesemer:曾协助制作Java的HotSpot编译器,和Chrome浏览器的JavaScript引擎V8。
  此外还有Plan 9开发者Russ Cox、和曾改善目前广泛使用之开原码编译器GCC的Ian Taylor。
golang目前有两种编译,一个是golang官方提供的,另一个是gnu提供的
golang官方编译器安装与配置
从仓库安装(apt-get)
sudo apt-get install golang
如果上面的命令执行不了的话,可以尝试以下命令
sudo add-apt-repository ppa:gophers/go
sudo apt-get update
sudo apt-get install golang-stable
从源代码编译安装
安装gcc工具,因为golang有些功能是使用c写的,所以构建golang的编译是必须的
$ sudo apt-get install bison gawk gcc libc6-dev make
安装mercurial工具,目的使用hg命令来提取golang的源代码
$ sudo apt-get install mercurial
代取提取,如果您的网速比较慢的话,此步要多花点时间
$ hg clone -r release /hg/ go
编译golang
$ cd go/src
$ ./all.bash
假如正常的话,会出现下面的信息
ALL TESTS PASSED
Installed Go for linux/amd64 in /home/you/go.
Installed commands in /home/you/go/bin.
*** You need to add /home/you/go/bin to your $PATH. ***
The compiler is 6g.
*配置系统环境
你在~/.bashrc或者 ~/.profile写入你的配置文件,下面我会以.bashrc来说明;
那么,golang要设置那些变量呢?
1、$GOROOT
golang的目录,这里我们是~/go
2、$GOOS 和 $GOARCH
系统的参数
设置方法如下:
incomplete
incomplete
golang的bin目录,这里是~/go/bin
下面是一个配置例子:请大家特别注意$GOOS 和 $GOARCH
$ gedit ~/.bashrc
export GOROOT=~/go
export GOARCH=386
export GOOS=linux
export GOBIN=$GOROOT/bin/
export GOTOOLS=$GOROOT/pkg/tool/
export PATH=$PATH:$GOBIN:$GOTOOLS
gccgo似乎是从4.6开始支持的。也就是说,要在ubuntu用命令安装gccgo只有ubuntu 11.10包括且以上的版本。
大家可以试一下命令gcc -v,查看
--enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin
如果有一个go,说明你的gcc支持golang,那么就执行以下命令安装gcc-go(大家试一下这命令,我不敢确定):
sudo apt-get install gccgo
如果用源代码编译的话,请参照gcc编译。这里就不介绍了!
新建一个hello.go,并写入以下内容:
package main
import "fmt"
func main() {
fmt.Printf("hello, world\n")
使用golang官网编译器('注意:'6g是amd64的go编译器,它生成的是.6文件。而386一般使用8g命令,它生成的一般是.8格式的文件。当然还有一个5g的命令是用于arm的cpu,同理amd64用6l,386用8l,arm用5l的链接器!)
$ 6g hello.go
$ 6l hello.6
hello, world
使用gccgo编译
$ gccgo hello.go
hello,world
把$GOROOT/misc/vim/syntax/go.vim拷贝到 ~/.vim/syntax/ 和 ~/.vim/ftdetect/就行了
默认的gedit好像已经有golang的高亮支持,如果你的编辑没有的话,请按以下方法安装
下载go.lang
$ wget http://go-lang.cat-v.org/text-editors/gedit/go.lang
拷贝到/usr/share/gtksourceview-2.0/language-specs
cp ./go.lang
/usr/share/gtksourceview-2.0/language-specs/
1.打开gedit软件-首选项-插件-把-外部工具-打上对号。
2.菜单栏-工具-Manage Eexternal Tools-单击“+”,名称自己随便填写,快捷键自己设置(比如F3),把下面的代码复制到右边代码区。
3.有一点必须注意gedit必须在终端中打开,而且编辑完成后.go文件后需要保存后在运行快捷键(F3)。
~$ gedit ~/projects/go/test1/hello.go
4.用Go自带编译器编译时,代码有3种格式,根据自己的机器(32位、64位、ARM)选择。
32位机器代码:
echo ========================
# 打印 跳转 到当前工作目录
echo $GEDIT_CURRENT_DOCUMENT_DIR
cd $GEDIT_CURRENT_DOCUMENT_DIR
GONAME=$GEDIT_CURRENT_DOCUMENT_NAME
GOOUT=$(echo $GONAME | cut -d. -f1)
echo ========================
echo 编译:$GONAME
echo ========================
GOOUT8=$GOOUT".8"
8g $GONAME
8l $GOOUT8
echo ========================
64位机器代码:
echo ========================
# 打印 跳转 到当前工作目录
echo $GEDIT_CURRENT_DOCUMENT_DIR
cd $GEDIT_CURRENT_DOCUMENT_DIR
GONAME=$GEDIT_CURRENT_DOCUMENT_NAME
GOOUT=$(echo $GONAME | cut -d. -f1)
echo ========================
echo 编译:$GONAME
echo ========================
GOOUT6=$GOOUT".6"
6g $GONAME
6l $GOOUT6
echo ========================
ARM机器代码:
echo ========================
# 打印 跳转 到当前工作目录
echo $GEDIT_CURRENT_DOCUMENT_DIR
cd $GEDIT_CURRENT_DOCUMENT_DIR
GONAME=$GEDIT_CURRENT_DOCUMENT_NAME
GOOUT=$(echo $GONAME | cut -d. -f1)
echo ========================
echo 编译:$GONAME
echo ========================
GOOUT5=$GOOUT".5"
5g $GONAME
5l $GOOUT5
echo ========================
5.用gcc编译时,所有平台代码都一样(推荐使用gcc,因为错误提示比较清楚,自己感觉吧)
echo ======================================
# 打印 跳转 到当前工作目录
echo $GEDIT_CURRENT_DOCUMENT_DIR
cd $GEDIT_CURRENT_DOCUMENT_DIR
GONAME=$GEDIT_CURRENT_DOCUMENT_NAME
echo ======================================
echo 编译:$GONAME
echo ======================================
gccgo $GONAME
echo ======================================
这个方法是由golang-nuts的steve horsley提供的:
Copy the standard filetype_extensions.conf to your local config:
将标准的filetype_extensions.conf 拷贝到你的当前用户的配置里
$ cp /usr/share/geany/filetype_extensions.conf ~/.config/geany
Add the extension recognition to ~/.config/geany/filetype_extensions.conf by adding this line:
把下面内容加入到,便于识别扩展
把C定义的filetypes.c考到 filedefs/filetypes.Go.conf
$sudo cp /usr/share/geany/filetypes.c ~/.config/geany/filedefs/filetypes.Go.conf
编辑Go.conf并且更改设置和关键字,例如:
[settings]
# default extension used when saving files
extension=go
lexer_filetype=C
[keywords]
# all items must be in one line
primary=break case chan const continue default defer else fallthrough for func go goto if import interface map package range return select struct switch type var
secondary=byte int int8 int16 int32 int64 uint uint8 uint16 uint32 uint64 float32 float64 complex64 complex128 uintptr string
请查看此处http://go-lang.cat-v.org/text-editors/
QQ群(Go编译语言):
QQ群(golang交流群):
《Go Programming》作者:John P. Baugh 语言:英语
《Programming in Go: Creating Applications for the 21st Century》此书还没有出版,如果你想知道详情请点
Chrome插件:114网址导航

我要回帖

更多关于 golang 1.4 的文章

 

随机推荐