If you focus mostly on Java frameworks for web development, could those Java skills translate pretty well into software development down the road?

Off the top of my head, I've written web apps in Java, PHP, and Javascript. So they're the only ones I'm going to talk about here.

Java:

Java's way of web development has always been a little confusing to me. So many acronyms and heavyweight tools. Eclipse/Jboss/Hibernate and 50 XML files for registering servlets, persistence, and user realms doesn't make for a fun time. However it's still the go-to for enterprise-grade mission critical projects. There's no denying it's capabilities. the ability to drop in almost any jar and run with it on any platform is great. But is it flexible? is it fun to use? My opinion is it's an atrocious experience for a developer working alone. Not sure if it's any better in a team.

PHP:

PHP is alright. It's been around awhile and as one of the early ones has had the misfortune of having to figure things out the hard way. It's getting there. My biggest problem is lack of control over the lifecycle. Scripts roughly start and stop to handle requests. You don't get to register background components. It's easy to use and almost too forgiving on mistakes.

Javascript/Node:

I may be a little biased towards NodeJS lately. But unlike Java and PHP I feel that writing web apps in Node is actually fun. First up, the caveat: Node is single-threaded, and you need to write async code for anything heavyweight. The good news: Most of it's already done for you. And there is a registry of tried and tested modules for getting started fast. You can have a dead simple web application running in five minutes after installing Node. And that's really the selling point: How fast can we reach our goal, and launch our application? It's also stricter than php, even without js strict mode. But within reason. You should get an error writing to a file that isn't opened, not a warning.

So to answer your question: Does java do web development well?

It depends on your criteria. Enterprise java development still looks great on a resume. But in turn around time from paper to launch? Go with node.

/r/learnprogramming Thread