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)
The short answer is that core Java is the language itself, while Java EE is a framework that extends upon the core language. The reason to have a framework, such as Java EE, is that it has a lot of functionality that is commonly needed for software applications.
Java on Google App Engine. App Engine offers you a choice between two environments for Java applications: standard environment and flexible environment. Both environments have the same code-centric developer workflow, scale quickly and efficiently to handle increasing demand, and enable you to use Google’s proven serving technology to build your...
The Java EE platform is built on top of SE platform, used especially for large-scale applications. SE defines everything from the basic types and objects of the Java programming language, hence provides all core functionalities. The Java EE platform provides an API and runtime environment for developing and running large-scale applications.
The Enterprise version of Java has a much larger usage of Java, like development of web services, networking, server side scripting and other various web based applications. J2EE is a community driven edition, i.e. there is a lot of continuous contributions from industry experts, Java developers and other open source organizations.
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 :)
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With