Google Go SDK or Golang app?

2019-07-08 06:50发布

I'm a bit confused. I've followed both the Google App Engine and GoLang tutorials. I really like how GoLang uses workspaces. Neither mention each other or how they relate though.

My questions is, what is the difference between Google's Go SDK and Golang's Go app. Does Google's Go SDK include everything in GoLang and then some?

Sorry if it's been asked before, but couldn't figure out how to effectively search for similar questions.

References:

3条回答
来,给爷笑一个
2楼-- · 2019-07-08 07:34

There is Golang the programming language (the "Golang App" in your question). This is the standard way to create Golang based application.

There is Google SDK (available for Golang, Java ...) the framework to create Golang (or Java ...) based application that uses Google services (The google cloud platform, and all the Gmail, Calendar, Map ... API for anything you may need).

查看更多
霸刀☆藐视天下
3楼-- · 2019-07-08 07:35

Go

Go (or Golang) is a programming language. Using Go you can build "any" applications that compile into native executable binaries. You can run the compiled apps on your own computer. You can develop all kinds of apps using Go, even web applications. The Go standard library contains a built-in web server, so if you want to develop a web application in Go, you don't need any other web server that you would deploy your web app into, the Go app is capable to serve web requests on its own.

To develop applications in the Go programming langauge, you need the Go SDK. The Go SDK contains tools to compile your Go source code into an executable binary. The Go SDK also contains many pre-written libraries, the standard library which you can use when you develop your application.

Google App Engine

Google App Engine (GAE) is a Patform as a service (PaaS). Which means they provide you a platform and services where you can run a (web) application which you develop. You don't have to worry about how servers are set up, you don't have to worry about their maintenance. You just write your app which may use special services that the platform provides out of the box, you upload or deploy it, and the rest is taken care of by the platform.

Google App Engine allows you to write your (web) app in several languages, including Python, Java, PHP, Go, Node, Ruby etc.

You may write the app you want to run on GAE platform in the Go programming language. Usually apps running on such a platform (like GAE) are sandboxed for security and maintainability reasons. So there are some limitations of what or how you can use from the programming language and its standard library you choose for your app.

To make it possible and ease the development of your GAE app, you need the Google App Engine SDK (there is one for each language). To make it possible and ease the development of your GAE app in Go, you need specifically the Google App Engine SDK for Go.

However, note that the GAE SDK for Go is built on the Go SDK, you don't need to have Go SDK installed to develop GAE Go app, because the GAE SDK for Go contains a slightly modified Go SDK. It is modified to implement the sandbox limitations, and also to contain libraries which are the API to use different services available in the GAE platform, such as the Datastore, Mail API for sending emails etc.

The GAE SDK contains tools to compile and test your GAE app locally. It mimics the environment of the live GAE platform, so you can try out most of the services that are available in production.

The GAE SDK also contains tools to directly deploy your app to GAE platform once you think it's ready, or you want to try it in the live environment.

查看更多
我想做一个坏孩纸
4楼-- · 2019-07-08 07:36

The GoLang app seems to cover arbitrary Go apps (including non-GAE apps).

Google's Go GAE SDK is needed for local development of GAE Go apps.

查看更多
登录 后发表回答