Java

Java Development at Oasis Digital

At Oasis Digital, we often build back-end data systems with Java - either at customer request, or because it is a practical choice for the work at hand.

In the past, we also implemented desktop user interfaces with Java, using its Swing user interface framework. This is no longer a popular choice, but is still available for applications that need it.

Why Java?

Maturity

Launched in 1996, Java implementations have grown to be highly mature and robust. in recent years, most of the time Java implementations "just work" with relatively few snags.

Ecosystem Ubiqiuity

As Oracle's advertisements point out, Java is everywhere. Java has a vast ecosystem, with thousands of libraries and frameworks available for reuse. These span countless problem domains.

Platform

The Java virtual machine platform extends far beyond the language itself. There are countless other languages which can compile to it; so even in cases where the Java language is unsuitable, the platform can generally support any needed interoperability.

For example, we find that Clojure is an excellent choice for higher level, higher productivity software development yielding products which can be deployed broadly on the Java virtual machine and interoperate with its ecosystem.

Productivity

By leveraging the numerous mature Java libraries available (most often as open source), it is often possible to rapidly move past infrastructure work and proceed with application-specific features. For example, consider a RESTful JSON web service that exposes a database to another subsystem, a very common need and projects today. By using several commonly available Java libraries, much of the work to handle the basics can be done with configuration, so that coding work can move directly to application specific requirements.

(But this point also comes with a caution: Java is a relatively verbose language, so projects where extensive new functionality is needed and there are not libraries that use the work, sometimes find that the quantity of Java code needed is excessive.)

Scalability

The work and processes needed to deploy Java code "at scale" is well understood, and sys-admin expertise is available in many of our customers organizations.

Technical Depth in the Java Ecosystem

As Java consultants and Java developers, we use many supporting tools and libraries with Java, including all of those below and more. The specific toolset varies per project, and we are happy to learn additional tools to support a customer.

  • Maven
  • Gradle
  • Spring
  • Spring AOP
  • Spring Security
  • Hibernate
  • iBatis / MyBatis
  • Guava
  • DropWizard
  • JTDS (for SQL Server access)
  • jt400 (for AS/400 access)
  • Apache Shiro (security)
  • Jersey (a JAX-RS REST implementation)
  • JBcrypt
  • JUnit
  • TestNG, Hamcrest
  • Jackson
  • Joda Time
  • Tomcat
  • Jetty
  • Numerous other Java libraries

(All trademarks are property of their respective owners.)