Go is fast replacing both Java and Python in many environments. It has the advantage of producing very deployable executables that make it easy to containerize and integrate. Go features garbage collection and easy multi-threading (via lightweight goroutines), but unlike Python, Ruby, and Perl it is a strictly typed language, which encourages good programming practices and reduces the chance for bugs.
Prudence was first conceptualized in 2009. Those were different times. It was originally intended as a framework for using various interpreted languages, including templating languages, to build RESTful pages and APIs. The emphasis was on doing REST right, allowing tight integration with server-side and client-side caching. The threading model was highly concurrent, which was against the trend of Node.js-style single-threadedness. Prudence 1 was written in Java, fueled by Restlet and Hazelcast. It was LGPL-licensed and used Subversion as its VCS (eventually migrating to git). Do you remember Google Code? It was pretty cool.
The sprawl was unmanageable and development came to a grinding halt. And so in 2021 the project was rebooted. Code was rewritten from scratch in Go, Apache-licensed, and with a tighter vision with essentially the same initial concept. Though considerably more lightweight and easier to manage, the new Prudence is in some ways more powerful and more flexible than it was before. Writing code from scratch is a great idea if you can afford the time and effort! In conclusion, I hope we’ve all learned lessons from our Java foibles. Again: those we different times.
The original code for Prudence in Java is archived here.