In job advertisements for Java developers, the following acronyms and technologies are mentioned often.
For a C# developer, all of these are unknown at first. So what do they stand for?
I am providing short explanations, often copied from Wikipedia or Stackoverflow. Copied explanations are marked as quotations. The number of mentionings of a technology in job openings is in parentheses added to the end of the acronym, if it is bigger than one. Of course, I did no representative research. I just counted the words I noticed in some of the Java job ads I scanned.
Apache ActiveMQ is an open source message broker written in Java together with a full Java Message Service (JMS) client. It provides “Enterprise Features” which in this case means fostering the communication from more than one client or server. Supported clients include Java via JMS 1.1 as well as several other “cross language” clients.
It is a group of interrelated Web development techniques used on the client-side to create asynchronous Web applications. With Ajax, Web applications can send data to, and retrieve data from, a server asynchronously without interfering with the display and behavior of the existing page.
Apache Ant is a software tool for automating software build processes. It is similar to Make but is implemented using the Java language, requires the Java platform, and is best suited to building Java projects.
Eclipse is an open source multi-platform IDE written in Java. Its size and ambition are similar to Microsoft’s VisualStudio. Where VisualStudio is the standard to develop for .NET, Eclipse is the standard IDE to develop in Java.
Enterprise JavaBeans (EJB) is a managed, server-side component architecture for modular construction of enterprise applications.
The EJB specification is one of several Java APIs in the Java EE specification. EJB is a server-side model that encapsulates the business logic of an application. …
The EJB specification intends to provide a standard way to implement the back-end ‘business’ code typically found in enterprise applications (as opposed to ‘front-end’ interface code). Such code addresses the same types of problems, and solutions to these problems are often repeatedly re-implemented by programmers. Enterprise JavaBeans are intended to handle such common concerns as persistence, transactional integrity, and security in a standard way, leaving programmers free to concentrate on the particular problem at hand.
Not to be confused with JavaBeans.
Ext JS includes a set of GUI-based form controls (or “widgets”) for use within web applications:
- text field and textarea input controls
- date fields with a pop-up date-picker
- numeric fields
- list box and combo boxes
- radio and checkbox controls
- html editor control
- grid control (with both read-only and edit modes, sortable data, lockable and draggable columns, and a variety of other features)
- tree control
- tab panels
- desktop application-style menus
- region panels to allow a form to be divided into multiple sub-sections
- vector graphics charts
Many of these controls can communicate with a web server using Ajax.
is a Java-OR-Mapper. Ref: http://en.wikipedia.org/wiki/Hibernate_%28Java%29 NHibernate is a .NET port of Hibernate.
Here you can see a comparison of NHibernate and Entity Framework. http://weblogs.asp.net/ricardoperes/archive/2012/06/07/differences-between-nhibernate-and-entity-framework.aspx
Connected to Hibernate is HQL, the Hibernate Query Language.
GWT emphasizes reusable approaches to common web development tasks, namely asynchronous remote procedure calls, history management, bookmarking, UI abstraction, internationalization, and cross-browser portability.
JasperReports is an open source Java reporting tool that can write to a variety of targets, such as: screen, a printer, into PDF, HTML, Microsoft Excel, RTF, ODT, Comma-separated values or XML files.
It can be used in Java-enabled applications, including Java EE or web applications, to generate dynamic content.
JavaBeans are reusable software components for Java. They are classes that encapsulate many objects into a single object (the bean). They are serializable, have a 0-argument constructor, and allow access to properties using getter and setter methods.
Not to be confused with Enterprise JavaBeans.
Java EE, J2EE (5)
Java EE stands for Java Enterprise Edition. Beofre Java 5, it was called Java 2 Platform, Enterprise Edition, with the abbreviation J2EE.
J2EE is actually a collection of technologies and APIs for the Java platform designed to support “Enterprise” Applications which can generally be classed as large-scale, distributed, transactional and highly-available applications designed to support mission-critical business requirements.
In terms of what an employee is looking for in specific techs, it is quite hard to say, because the playing field has kept changing over he last 5 years. It really is about the class of problems that are being solved more than anything else. Transactions and distribution are key.
It is important to understand that Java EE is a set of specifications and there do exist several implementations.
The specifications (defined by Sun) describe services, application programming interfaces (APIs), and protocols. In general, enterprise applications refer to software hosted on servers that provide the applications that support the enterprise.
The 13 core technologies that make up J2EE are:
- Java servlets
- Java IDL
WildFly, formerly known as JBoss AS, or simply JBoss, is an application server authored by JBoss, now developed by Red Hat. WildFly is written in Java, and implements the Java Platform, Enterprise Edition (Java EE) specification. It runs on multiple platforms.
And about Java application servers:
In the case of Java application servers, the server behaves like an extended virtual machine for running applications, transparently handling connections to the database on one side, and, often, connections to the Web client on the other.
JDBC means Java DataBase Connectivity.
JDBC is a Java-based data access technology (Java SE platform). This technology is an API for the Java programming language that defines how a client may access a database. It provides methods for querying and updating data in a database. JDBC is oriented towards relational databases.
Some examples using JDBC and a MySql database are given in chapter…
Jenkins is an open source continuous integration tool written in Java. The project was forked from Hudson after a dispute with Oracle.
JHat, JMap, JStack
JHat: Java Heap Analysis Tool; The jhat command parses a java heap dump file and launches a webserver. jhat enables you to browse heap dumps using your favorite webbrowser.
JMap: Java Memory Map; jmap prints shared object memory maps or heap memory details.
Jstack: Jstack prints Java stack traces of Java threads for a given Java process or core file or a remote debug server.
The Java Persistence API, sometimes referred to as JPA, is a Java programming language application programming interface specification which describes the management of relational data in applications using Java Platform, Standard Edition and Java Platform, Enterprise Edition.
Hibernate is an implementation of the Java Persistence API. JPA only supports RDBMS as underlying system.
JPQL: Java Persistence Query Language
JSF, JSFUnit (2)
JavaServer Faces (JSF) is a Java specification for building component-based user interfaces for web applications. It … is part of the Java Platform, Enterprise Edition.
JSFUnit is a test framework for JSF applications. It is designed to allow complete integration testing and unit testing of JSF applications using a simplified API.
JavaServer Pages (JSP) is a technology that helps software developers create dynamically generated web pages based on HTML, XML, or other document types. Released in 1999 by Sun Microsystems, JSP is similar to PHP, but it uses the Java programming language.
JUnit is a unit testing framework for the Java programming language. JUnit has been important in the development of test-driven development, and is one of a family of unit testing frameworks which is collectively known as xUnit
Maven is a build automation tool used primarily for Java projects. Maven addresses two aspects of building software: First, it describes how software is built, and second, it describes its dependencies. Contrary to preceding tools like Apache Ant it uses conventions for the build procedure, and only exceptions need to be written down.
Play is an open source web application framework, written in Scala and Java, which follows the model–view–controller (MVC) architectural pattern. It aims to optimize developer productivity by using convention over configuration, hot code reloading and display of errors in the browser.
RESTEasy is a JBoss project that provides various frameworks to help you build RESTful Web Services and RESTful Java applications.
The Spring Framework is an open source application framework and inversion of control container for the Java platform. The framework’s core features can be used by any Java application, but there are extensions for building web applications on top of the Java EE platform. Although the framework does not impose any specific programming model, it has become popular in the Java community as an alternative to, replacement for, or even addition to the Enterprise JavaBean (EJB) model.
The Spring Framework includes these modules:
- Inversion of control container: configuration of application components and lifecycle management of Java objects, done mainly via dependency injection
- Aspect-oriented programming: enables implementing cross-cutting concerns.
- Data access: working with relational database management systems on the Java platform using JDBC and object-relational mapping tools and with NoSQL databases
- Transaction management: unifies several transaction management APIs and coordinates transactions for Java objects
- Model–view–controller: an HTTP- and servlet-based framework providing hooks for extension and customization for web applications and RESTful web services.
- Remote access framework: configurative RPC-style marshalling of Java objects over networks supporting RMI, CORBA and HTTP-based protocols including web services (SOAP)
- Convention over configuration: a rapid application development solution for Spring-based enterprise applications is offered in the Spring Roo module
- Authentication and authorization: configurable security processes that support a range of standards, protocols, tools and practices via the Spring Security sub-project (formerly Acegi Security System for Spring).
Remote management: configurative exposure and management of Java objects for local or remote configuration via JMX
- Messaging: configurative registration of message listener objects for transparent message-consumption from message queues via JMS, improvement of message sending over standard JMS APIs
- Testing: support classes for writing unit tests and integration tests
Apache Struts was an open-source web application framework for developing Java EE web applications. It uses and extends the Java Servlet API to encourage developers to adopt a model–view–controller (MVC) architecture.
Swing is the primary Java GUI widget toolkit. It is part of Oracle’s Java Foundation Classes (JFC) — an API for providing a graphical user interface (GUI) for Java programs.
Swing was developed to provide a more sophisticated set of GUI components than the earlier Abstract Window Toolkit (AWT). Swing provides a native look and feel that emulates the look and feel of several platforms, and also supports a pluggable look and feel that allows applications to have a look and feel unrelated to the underlying platform. It has more powerful and flexible components than AWT. In addition to familiar components such as buttons, check boxes and labels, Swing provides several advanced components such as tabbed panel, scroll panes, trees, tables, and lists.
Swing is written in Java and built on top of AWT and Java 2D.
SWT is short for Standard Widget Toolkit. It is a graphics toolkit competing with Swing and AWT. Like AWT and unlike Swing, SWT uses elements and widgets which are native on the underlying OS.
Apache Tomcat (or simply Tomcat, formerly also Jakarta Tomcat) is an open source web server and servlet container developed by the Apache Software Foundation (ASF). Tomcat implements the Java Servlet and the JavaServer Pages (JSP) specifications from Sun Microsystems, and provides a “pure Java” HTTP web server environment for Java code to run in.
Apache Wicket, commonly referred to as Wicket, is a lightweight component-based web application framework for the Java programming language conceptually similar to JavaServer Faces and Tapestry.