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