Reputation: 66985
What is core difference between Java for Google App Engine and Java EE? (I am not familiar with Java at all so can you please explain me what is diference in general and in what to learn is better for resume)
Upvotes: 17
Views: 2572
Reputation: 2150
The first anwser saying that Appengine is a Subset of Java EE is true, but it misses some information.
Google Appengine indeed supports a Subset of Java EE, but Java EE also supports a subset of Appengine technology.
Appengine comes with a High Replication Data Store, and elastic scaling. So you dont pay for servers that are idle. Appengine supports Web Hooks, this is a new technology, which can be used to do similar things as JMS. JNDI is not supported for a reason, because getting services in Google Appengine is done via a simple Java API. Thus simplifying the model. RMI is used a lot in the internals of appengine, and you can use it yourself if needed. However using RMI in appengine does not make a lot of sense, since the inter machine communication can be done via XMPP, or via the High Replication.
So with Appengine you can develop similar applications as with Java EE, however you are bound to Googles Infrastructure. A lot of the heavy lifting, such as machine config, network config, scaling, is done automatically. Thus there is no need for a big system engineering team.
All in all, Java EE, is the old way, used by big corporate companies. Appengine is used by startups that expect to grow very quickly and need to scale, but also not minor startup costs.
Upvotes: 4
Reputation: 570595
Google App Engine for Java is built upon a webapp container (Jetty) so it obviously offers only a subset of Java EE with some restrictions (but also additions to leverage their infrastructure using standardized APIs):
Java EE APIs and technologies not supported include:
More details in Will it play in App Engine.
By the way, we don't say J2EE anymore, it's Java EE since 2005 :)
Upvotes: 17
Reputation: 13256
There's no difference in the language: they're both Java. The difference is what class libraries are available to you.
Upvotes: 1
Reputation: 9481
Google App engine provides a limited subset of what you can do with the underlying machine. Biggest thing is that you can't access local storage and your request processing has to finish with a specified limit of time, otherwise your task will be terminated.
Upvotes: 3