Prudence/Sincerity/Diligence
Tal Liron
tal.liron at threecrickets.com
Fri Jan 3 02:55:30 PST 2014
Dear Nashorn users and developers,
Happy 2014! I am proud to introduce you to a stack of three free
software (LGPL) products and related libraries that work on JVM
8/Nashorn *right now*. I guess you can call this email a self-promotion,
but I hope you will agree that this is a significant promotion for
Nashorn, too. I also imagine these products to be very useful in testing
Nashorn in the real world, especially because they allow you to compare
with Rhino.
PRUDENCE 2.0
http://threecrickets.com/prudence/
Prudence is a state-of-the-art platform for developing web applications
and web APIs, with a focus on usability and ease-of-development on the
one hand, and the ability to handle the large scale on the other, with
support for tiered caching, horizontal cloud clusters, and task farming.
It adheres very strongly to REST principles and provides you with total
control over and optimization for every aspect of HTTP. Documentation is
astonishingly comprehensive, and you may refer to it online or print out
the beautiful 160-page (!) PDF. Prudence has been under development for
5 years now, and I would consider the core implementation to be mature.
Prudence runs on JVM 8/Nashorn right now! On JVM 7, it will
automatically use Rhino (included) instead. JVM 6 can also be supported
by downgrading Jetty (this is explained in the download page).
Though JavaScript is the main language used in the tutorials, you can
develop using Python, Ruby, PHP, Lua, Groovy and Clojure, too.
A very FAQ is how Prudence compares to Node.js, because both allow for
server-side JavaScript. Here's the detailed response:
http://threecrickets.com/prudence/manual/faq/#technology
SINCERITY
http://threecrickets.com/sincerity/
Sincerity is a packaging/bootstrapping tool for the JVM, which relies
heavily on JavaScript. It supports several powerful plugins and addons
for bootstrapping, such as centralized logging and installation as
system service/daemon, so you don't have to keep reinventing the wheel.
Sincerity also comes with a very useful "standard library" for
JavaScript, handling such staples as OOP and string interpolation, and
also various JavaScript-friendly wrappers for JVM-specific services.
As with Prudence, it will automatically use Nashorn on JVM 8, and
fallback to Rhino if necessary.
It's never been as easy to quickly install and bootstrap software
products! The "configuration-by-script" principle is used throughout:
real JavaScript that can do anything instead of clunky XML or
proprietary config formats. Your product can thus automatically adjust
to its deployment environment. Sincerity already can be used to install
entire software stacks, for example: Solr, Hadoop, Django, Ruby on
Rails. (And, of course, Prudence.)
I believe that once you start using Sincerity, you won't be able to
imagine life without it.
DILIGENCE
http://threecrickets.com/diligence/
Still under heavy development (but perfectly usable), Diligence is a
comprehensive web development framework based on Prudence/JavaScript and
MongoDB. Easily handle user logins and registration or integrate with
Facebook and Paypal, handle wikis and SEO sitemaps, email subscription
and digests, etc. Diligence features very powerful integration with the
client-side Ext JS library, allowing you to quickly link MongoDB
collections directly to editable client-side grid and tree widgets.
Of course, it works great on Nashorn.
RELATED LIBRARIES
Scripturian is a scalable alternative to JSR-223, which is the special
sauce enabling the entire stack above. It supports Nashorn:
http://threecrickets.com/scripturian/
The MongoDB JVM project is designed to better integrate various JVM
languages with MongoDB. It includes a robust JavaScript/JVM MongoDB
driver. It supports Nashorn:
http://code.google.com/p/mongodb-jvm/
MongoVision is a web-based frontend for MongoDB based on Prudence and
Ext JS. Of course, it runs on Nashorn:
http://code.google.com/p/mongo-vision/
-Tal
More information about the nashorn-dev
mailing list