Advantages of each language/framework?

Python usually acts as the "web server" application itself (at least afaik), and as such will require you to shell out for a VPS and have some basic server management chops to set it up.

VPS should be a non-issue. You can find a lot of VPSs for $5-10/mo, which is comparable to a decent shared hosting plan. Setup can be accomplished by reading step-by-step through tutorials and if you're computer literate enough to write code, you're computer literate enough to follow commands.

Then there are other services that do a lot for you, like Digital Ocean Droplets or full featured services like Heroku.

Creating your own webserver with the language is not a bad thing. This is how all the other languages do it, including the Microsoft MVC framework. Play Framework for instance uses Jetty, which is the preferred "modern" horizontally scalable way to do things rather than a server like Tomcat or Glassfish. This means that you can actually package everything into a single Jar File and deploy your app with a base Linux install. No Apache/NGIX or anything else required.

Frameworks like Laravel exist to make coding with structure easier.

This applies to all other languages as well and isn't really a positive for PHP any more than it's a positive for anything else.

I probably don't know Ruby much better than you, but it has a variety of other frameworks available for it outside of Rails. Such as Sinatra, which has inspired other frameworks such as Flask (Python), Express (Node.js), and Spark (Java).

I do not know much of these two in the web dev world either, but I am aware that they are quite popular. I'm told Play Framework is pretty nice.

Java

Positives * Performance driven. Most often used in new projects when performance is more important than adding a little extra time to development. * Easily deployable. Everything can be packaged into a JAR or WAR file and deployed all at once. * You don't have to code in Java and there are many languages that work interoperably with it. Such as Scala/Clojure/Groovy. These languages are entirely different, but compile to Java Bytecode and are able to use Java libraries. (You can also even run Ruby or Python, but strangely not JavaScript...) * Very large codebase. It's an old language and used in a wide variety of applications. * Very large community. It's an old language and used in a wide variety of applications. * Lots of jobs. It's an old language and used in a wide variety of applications. Negatives * It's an old language and used in a wide variety of applications. Much of this code is based in not-so-modern development ideas and can be very verbose and Enterprisey, especially where web development is concerned. Dealing with any old frameworks like Struts 1 is an absolute nightmare. * Resource hog. The same reason why native PC Java applications are slow, is what gives it speed on the server. A lot is loaded into memory and it can horde quite a few CPU cycles. (Usually a non-issue when it's the only major thing running on a server.) * Things like GWT that generate frontend code entirely from backend Java. Depending on who you are this may be a bad thing or a good thing. I personally hate it.

/r/webdev Thread Parent