Five exciting Java Projects you should know about
Every technologist in Java/JVM space may benefit from those useful projects. Some of them nominated for best technology product award at Jax Conference in San Jose, 2011.
I choose them because they can be used in a wide array of projects and solve real problems we, as developers, have to deal every day.
- Neo4j: The Graph Database
- JRebel -stop redeploying
- Gradle – the better way to build.
- Akka-Simpler Scalability, Fault-Tolerance, Concurrency & Remoting through Actors
- Play Framework – focuses on developer productivity and targets RESTful architectures.
Neo4j is a high-performance graph engine with all the features of a mature and robust database. The programmer works with an object-oriented, flexible network structure rather than with strict and static tables — yet enjoys all the benefits of a fully transactional, enterprise-strength database. For many applications, Neo4j offers performance improvements on the order of 1000x or more compared to relational DBs. Plugins available for Spring and other frameworks.
JRebel is a small JVM-plugin that makes it possible for Java developers to instantly see any code change made to an app without redeploying. JRebel let’s you see code changes instantly, versioning classes and resources individually and updating one at a time instead of as a lump application redeploy. When developers make a change to any class or resource in their IDE, the change is immediately reflected in the deployed application, skipping the build and redeploy phases and preventing an average of 5.25 work weeks per year in redeploys!
This product takes the best from Maven and Ant build systems. From Gradle web site: “Project automation is essential to the success of software projects. It should be straight-forward, easy and fun to implement. There is no one-size-fits-all process for builds. Therefore Gradle does not impose a rigid process over people. Yet we think finding and describing YOUR process is very important. And so, Gradle has the very best support for describing it. We don’t believe in tools that save people from themselves. Gradle gives you all the freedom you need. Using Gradle you can create declarative, maintainable, concise and high-performance builds.”
We believe that writing correct concurrent, fault-tolerant and scalable applications is too hard. Most of the time it’s because we are using the wrong tools and the wrong level of abstraction. Akka is here to change that. Using the Actor Model together with Software Transactional Memory we raise the abstraction level and provide a better platform to build correct concurrent and scalable applications. For fault-tolerance we adopt the Let it crash/Embrace failure model which have been used with great success in the telecom industry to build applications that self-heals, systems that never stop. Actors also provides the abstraction for transparent distribution and the basis for truly scalable and fault-tolerant applications.
Ruby has Rails, Groovy has Grails and now Java has Play! Play is a pure Java framework and allows you to keep your preferred development tools and libraries. If you already use Java as a development platform you don’t need to switch to another language, another IDE and other libraries. Just switch to a more productive Java environment!
- Try Neo4j with This Pre-Configured Amazon Web Services Machine (readwriteweb.com)
- Graph Databases and the Value They Provide: dbta.com (dbta.com)
- JRebel 4.0 Released — Redeploys Beware (prweb.com)
- Combining Gradle with Antlr3 (nofluffjuststuff.com)
- Playing with Play Framework for Java (codemonkeyism.com)