The average Joe probably also prefers sugar. Say you give someone new to programming 2 options to make a very basic server, Sinatra or Jetty. Sinatra might seem more complex if they know a little about programming and they might not understand it, but if they are truly new, they will probably not choose Jetty. The server written in Sinatra has the least information noise if you know absolutely nothing. I don't think I'm alone in thinking that there are important positives to sugar. I also think not having sugar can have positives, but not when it comes to the development time of experienced programmers. C owes to Assembly its simplicity so it can compile to it. Doesn't mean newcomers learn Assembly before C
Because of changes in deployment strategy (the cloud...) my team was tasked to convert an existing application to Spring Boot (or similar). This application has Spring already (though it was using an other version with XML-driven context) but it also has bare HttpServlets. Due to time constraints, we ended up wrapping it in embedded Jetty instead and it has worked out pretty well--no changes were needed for the application.
For a second app, which didn't have as strong time constraints, we did the full Boot. It also used XML-driven context but didn't have servlets. You can import the XML config (use @ImportResource on the class that has your main) and it works but it does seem that you do lose some of the niceties of Spring Boot, such as the properties file hierarchy. So, we are in the process of moving things out of the XML and into annotations.
Can someone explain to a n00b the difference between a web server and an application server like passenger? I know a lot of small companies use jetty - is that similar to passenger?
first off i like java and most of my company's code is written in java. our codebase is probably 80-85% java.
from what I've experienced most of the hate for java stems from the "stuff" around java more than the language itself. java development can be a giant complicated mess - especially if you're looking towards doing web development.
if you're a young or noob programmer setting up a hello world django, php or rails app is a joke. these languages/frameworks are easy to use and simple. if its your first time setting up a web app in java then i wish you luck. Play is rather new and user friendly but everything else can be headache inducing.
also take a look at some of the projects' websites: http://www.eclipse.org/jetty/ http://www.hibernate.org/ http://struts.apache.org/ . they're a pain in the ass to navigate and are flat out uninviting. say what you will about hipsters and django or rails - but at least they care a bit about marketing their projects.
j2ee is a nightmare too. WTF is the relationship between versions of EL, Servlet and JSP? why do different containers support different versions of each? which one supports EL 2.2? on tomcat version X you... replace el-api.jar with this and that. WTF is glassfish etc?
people face a serious amount of bullshit when they want to hop on in and get their feet wet.
Also - Eclipse used to be really bad (plugin version conflicts etc) and IntelliJ used to cost $500. doing java w/o an IDEA is an exercise in masochism.
sure, id love it if it would get in modern features - but i'll take the nice concurrency api's over syntactic sugar... especially since IDEA writes the boilerplate code for me.
Honestly - i feel that java's pretty great but i see no actual effort at make it it accessible to new folks... specially as a web development environment.