Nearly two years ago, the Ratpack core team had a meeting and agreed that we were going to start releasing every month until we were comfortable enough with the framework to cut the first API-stable version. Without fail, led by the heroic efforts of Luke Daley, you have had a new version to play with on the first of every month. Earlier this month, we cut the first release candidate in the 1.0.0 version line, and have subsequently released three more. Today, I am proud to announce, on behalf of the team, that the 1.0.0 FINAL version is available today!
As many reading this post already know, a little under a year ago I committed to writing the first ever book on Ratpack. The open source project has had an interesting history, starting as a Groovy DSL reference implementation, growing into a Groovy clone of Ruby’s Sinatra framework, and evolving into a highly performant web framework, which is built on reactive programming and non-blocking networking. I felt it as important then as I do now to bring knowledge about the framework to mainstream developers. It is truly a revolutionary piece of technology that I hope helps to shape the way we build web applications and microservices on the JVM.
The stream of changes that have taken place over the last year have placed Ratpack into a category of its own in the pool of available JVM web technologies. Many of these changes have brought forth improvements that better allow developers to focus on developing their applications, without having to fight their framework. With Ratpack, we have aimed to build an unopinionated platform that marries rapid productivity with performance and efficiency, and in that, I am confiendent we have succeeded.
The changes that have overall embettered Ratpack as a framework have also made it something of a moving target. Anybody who has built a Ratpack application within the past year knows the pains that the monthly breaking changes have brought about. As such, it has also made it very difficult to write a book about the subject, but, alas, progress continues forward, and the content gets richer and richer with each evolution. And, wow! What a fun ride it has been!
To be honest, I wouldn’t change a thing. To me, it has been an irreplaceable experience to get the opportunity to work first hand with both the core team on Ratpack, as well as the community that has steadily grown over the last couple of years. I have learned more about software development and architecture from the Ratpack team over the past few years than I have in all my professional years combined. Open source is truly a wonderful thing! Beyond having had privilege to collaborate with David Carr on Ratpack’s configuration model, seeing technology emerge like catacumba, a high-level non-blocking MVC web framework for Clojure, has been absolutely priceless.
In many ways, I feel that through writing the book, I have asked more questions than I’ve had answers, and I think that has been my greatest contribution to Ratpack. I’m honored to be a part of this project and community.
Today, I’m pleased to announce that O’Reilly will be making available for purchase the first four chapters of Learning Ratpack under their early access program. You can find the book on their website. Although many more chapters are written — including a deep-dive into Ratpack’s execution model — expect the book to continue to be drafted and updated with regular frequency.
But, you won’t need to buy the book to get started with Ratpack today. Ratpack’s own documentation — though lacking some ceremony and composition — is quite thorough, and can be found on both the Ratpack manual and in the form of Java Docs on its public API classes. One thing that Luke set out to accomplish from the beginning is providing detailed, tested, and continuously up-to-date documentation on every public API. If you explore the Ratpack sources, you will find detailed descriptions and test cases that outline what a class is doing and how to use its methods. It has helped me tremendously in composing the text for the book.
So, what does a 1.0.0 release mean to you?
In short, it means that we will no longer be breaking the public APIs with each release. In practice, it means that Ratpack is now production ready, and that we are sure that what we’ve built is satisfying a real need in this space. It is safe to build your new projects with Ratpack, or even to introduce it into legacy projects through its advanced test fixtures. (See the EmbeddedApp fixture, for example.)
It also means that the community and ecosystem are thriving. You will readily find support on both the Ratpack Forum and the Ratpack Community Slack. We are thrilled to have reached this point, and are ready and willing to help when and where we can.
Today is a big day for Ratpack, and I hope that you’ll take time to check out the project, get involved, ask questions, and start building high performance, reactive web applications. Feel free to send me an email, shoot me a tweet, or talk to me at conferences. This week, I’ll be at SpringOne2GX in Washington, DC. If you are there and want to chat about the release, or Ratpack in general, feel free to come say hi! Most importantly: Happy Ratpack’ing!