Skip to content

Comment on Heroku is no longer the hobbyist's friend

Comments

Google AppEngine is a good alternative for Python, Go, Java, or PHP web apps.

As a longstanding gae user I have to disagree. The performance characteristics are esoteric, they're always a few generations behind wrt language updates and framework compatibility, and the whole platform is stagnating. At least in Java-land, and I think Python too.

There are definitely some holes in GAE for Go too, but its not that bad.

Most of the pain points are in other areas. Like for example, the datastore API you have access to for Go doesn't even support geo-spatial data or queries. I had to hack my own solution. It made me pretty mad at the time, because how can you not support geospatial queries in a database in an age where mobile location-based apps are so ubiquitous.

So I can see why you would say the platform is stagnant. And there is probably some truth in what you are saying in terms of GAE not getting the same love as other parts of the Google Cloud.

But having said that, I STILL think there is some merit to building apps on GAE, if your app is a simple web server, or single purpose REST API. I have found that its pretty reliable, and its relatively cheap for what you get.

If you are a Java user and want to take advantage of Java 8, I really encourage you to check out managed VMs. We have a runtime available for Java 8 & Jetty 9 on github here: https://github.com/GoogleCloudPlatform/appengine-java-vm-run...

(disclaimer: I work for Google on Cloud Platform, but not on anything Java related)

I tried to move beyond archaic Java with managed VMs when they were first announced. Back then it was half-baked and glitchy, it felt like Google was using its actual users to do their testing, I hope it's gotten better since.

Generally, I think what Google is missing (or doesn't care about) is that anyone who is using a PAAS provider is willingly exchanging some flexibility, control, and price-efficiency for the luxury of having devopsy management tasks taken off their hands in a competent and reliable manner. Managed VMs seem to be providing so little of that that you might as well move to IAAS. Or, do as I have, and move to Azure - who do manage to stay pretty current, and blend PAAS and IAAS in a much more elegant manner.

I tried to move beyond archaic Java with managed VMs when they were first announced.

Please keep in mind that Managed VMs is still in beta, however, there are other parts of Google Cloud Platform that are in GA, including Compute Engine (IaaS), and Container Engine (somewhere between PaaS and IaaS). In fact, depending on how much control you want, Container Engine can be a better fit than App Engine.

It used to be pretty terrible for python. You couldn't use third party libraries that had C dependencies (e.g. Pandas). Now with docker images you can at least define your instances.

I disagree - do they still lock you to their db? if they do then you are going to have to do a lot of work if you want to move to a different platform

Absolutely not. You can use Cloud Datastore, or you can connect to any database that can communicate over sockets or http, including Cloud SQL. Of note is that Datastore has a free tier, Cloud SQL does not, and Socket usage can incur (some) cost when communicating with other databases.

I've seen many Python apps that connect to a free MongoDB instance hosted on Mongolab.

(also worth noting that Node.js support for App Engine is currently in beta.)

(disclaimer: I work for Google on Cloud Platform)

also worth noting that Node.js support for App Engine is currently in beta.

Is this public? I have been waiting to hear this for ages! Great News.

I am planning a switch to node simply so I can run the same code on the front and back end. I was not looking forward to learning how to administer a server.

Oh, do you mean as a managed VM?

cool I didn't know that - thanks for the info!

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.