httpwizard/README.adoc

1.9 KiB

<html lang="en"> <head> </head>

httpwizard

HttpWizard is a Dropwizard application built with Groovy which represents my current thinking for what an "ideal web application stack" looks like at this point in time (late-2016).

Tools

  • Dropwizard - Itself using "the best" libraries for implementing RESTful APIs on the JVM, e.g. Jersey and Jackson

  • Groovy - Concise and easy to write, support for many dynamic language behaviors (closures, collection enumerations, dynamic dispatch, etc).

  • Gradle - Fast and easy to use build and dependency declaration tool. Easily extended in Groovy, with a myriad of plugins to support various additional use cases (e.g. building containers, invoking Bower, etc)

  • OpenJDK see below

In-progress

  • Hibernate - Mature, sometimes arcane, Java persistence (DB) layer

  • React - Solid JavaScript library for building user interfaces

  • Docker - A deployment packaging mechanism which can deliver the app easily to a container service such as Kubernetes.

Java Virtual Machine

Based on my current thinking, I believe the JVM serves as an ideal base for a modern web application. This is assuming Java Runtime Environment (JRE) 8 or higher. I believe the reasons for the JVM are fairly self-evident but in short:

  • High-performance threading and parallelism implementation

  • Supports numerous languages, with "Java" being the primitive language to implement extensions which require additional speed

  • Library support for practically any protocol, format, etc

  • Easily tuned and monitored using off-the-shelf tools

</html>