Live data from Hacker News

Google App Engine for Go

code.google.com

11–20 of 73 posts

Re: Google App Engine for Go

#12
post #6

Any advantage (performance? memory use?) for using Go vs. Python? Or is just programming language preference?

Faster than Python, better memory use for many types of programs. Compared to Java, less memory use and (I assume) much less start-up time, since no VM is needed. Also, since you can use goroutines, it would seem like you'd be able to do concurrent requests without having to have a special async API like Java/Python have. Go seems like it'll be a pretty great fit for App Engine.

goroutines run in a single OS thread. Same reason for blocking threading on Java. Said this restriction maybe lifted in the future but I wouldn't hold my breath on that.

EDIT: Clarification, on goroutines run in a single OS thread on AppEngine.

Re: Google App Engine for Go

#13

Earlier quoted context omitted.

Faster than Python, better memory use for many types of programs. Compared to Java, less memory use and (I assume) much less start-up time, since no VM is needed. Also, since you can use goroutines, it would seem like you'd be able to do concurrent requests without having to have a special async API like Java/Python have. Go seems like it'll be a pretty great fit for App Engine.

goroutines run in a single OS thread. Same reason for blocking threading on Java. Said this restriction maybe lifted in the future but I wouldn't hold my breath on that. EDIT: Clarification, on goroutines run in a single OS thread on AppEngine .

Goroutines still provide concurrency with a single thread. It's not that useful for CPU-bound stuff, but I'd imagine it should allow multiple concurrent GAE API calls (as they are just IO, and certainly async under the hood), or you could do CPU-bound stuff while waiting for IO.

Re: Google App Engine for Go

#14
Can anyone confirm if this allows linking native libraries? From the looks of the "compiler", it seems it might be hacked to produce a binary statically linked against, say, SpiderMonkey.

Beyond coolness, it seems a waste of effort to tailor this release to Go, when similar effort might have been expended, e.g. to define a simple protocol talked over a UNIX fd that any static x86 binary could implement to integrate with App Engine.

Re: Google App Engine for Go

#15

Can anyone confirm if this allows linking native libraries? From the looks of the "compiler", it seems it might be hacked to produce a binary statically linked against, say, SpiderMonkey. Beyond coolness, it seems a waste of effort to tailor this release to Go, when similar effort might have been expended, e.g. to define a simple protocol talked over a UNIX fd that any static x86 binary could implement to integrate w…

There's a lot more than sandboxing to rolling a good App Engine SDK. A large amount of effort went into designing nice, idiomatic Go APIs for accessing the App Engine services.

Re: Google App Engine for Go

#17
post #16

What's the best way to get started with Google Go?

Start from the left column (Learning Go): http://golang.org/doc/docs.html and continue to the bottom.

Watch "Practical Go Programming": http://osdc.blip.tv/file/4432146/

Watch "Writing Go Packages": http://www.youtube.com/gocoding#p/u/0/jDWBJOXs_iI

Read language specification.

Edit: If you prefer books, here's a CC-licensed, still in development, book by Miek Gieben "Learning Go": http://www.miek.nl/files/go/ (grab the latest PDF; alternatively, here's Git repo: http://miek.nl/cgi-bin/gitweb.cgi?p=gobook.git;a=summary)

Re: Google App Engine for Go

#18
post #6

Any advantage (performance? memory use?) for using Go vs. Python? Or is just programming language preference?

Faster than Python, better memory use for many types of programs. Compared to Java, less memory use and (I assume) much less start-up time, since no VM is needed. Also, since you can use goroutines, it would seem like you'd be able to do concurrent requests without having to have a special async API like Java/Python have. Go seems like it'll be a pretty great fit for App Engine.

Faster than CPython maybe, last time someone did a benchmark of Go vs. Python webservers PyPy came out on top.

Re: Google App Engine for Go

#19
It looks like this is still going to be limited to HTTP (port 80) web applications.

So you won't be able to run a process like Doozer that communicates with other ports/protocols.

EDIT: More details from the docs at http://code.google.com/appengine/docs/go/runtime.html

An App Engine application cannot:

-write to the filesystem. Applications must use the App Engine datastore for storing persistent data. Reading from the filesystem is allowed, and all application files uploaded with the application are available.

-open a socket or access another host directly. An application can use the App Engine URL fetch service to make HTTP and HTTPS requests to other hosts on ports 80 and 443, respectively.

Re: Google App Engine for Go

#20
post #19

It looks like this is still going to be limited to HTTP (port 80) web applications. So you won't be able to run a process like Doozer that communicates with other ports/protocols. EDIT: More details from the docs at http://code.google.com/appengine/docs/go/runtime.html An App Engine application cannot: -write to the filesystem. Applications must use the App Engine datastore for storing persistent data. Reading from t…

Why the downvote? This is a legitimate limitation of the App Engine platform, and for Go specifically it eliminates many of the common usecases.
Post reply on HN