| New year for new ideas! We're all building side projects, startups, toy apps, or maybe day job apps. Setting aside the understanding that people can be productive in any language/framework and that it's usually a great idea to choose the most correct tool for a problem or choose the most familiar tool, I want to ask a question: In 2019, all things being equal, what are your choices for productive web stacks? Which languages and frameworks do we like for building web applications back-ends in the new year? I'll farther define productive, I'm sure I've missed something, but points for: - Reasonable defaults
- Doing simple things well and fast
- Known solutions for common problems
- Large/active community
- High quality standard library
- High quality libraries/packages
- Good tooling (testing/debugging/package manager)
- Good deployment and hosting options Is Ruby/Rails still the most productive stack for generic web programmer building generic web app? Is it Python/Django? Maybe Elixir/Phoenix? Scala/Play? PHP/Laravel? Node/Express? Java/Spring? What tool do you reach for and why? |
Why? Using it for many years already, that's probably why I am most productive in it. However I try to look at other frameworks every now and then (Spring, Django) but I always come back to Play, because it just feels right to me (E.g. I prefer Play's config style, Spring's however is much more verbose I think. I also don't like the excessive use of annotations in Spring e.g. to set up routes).
BTW: You can use Play without Scala, but Java only. No problem. There seems to be this wrong prejudice that Play is a Scala only framework - which is wrong. Yes, Play is written mainly is Scala (69% according to GitHub stats) however as a framework user you can choose between Java or Scala. Or even mix both languages. Back in the early Play 2.x days some features/components of the framework where usable only via Scala, meaning you had to write Scala code to make use of them, however these days are long gone. We run major projects in production written entirely in Play Java.
Play 2.7 will be released soon, containing many nice enhancements and fixing many hickups (for Java users at least) I faced the last years (I contributed some fixes myself ;). For me Play 2.7 (Java) is the framework I always wished existed and it's finally there (soon)!