Yes - best decision we made.<p>Running a new startup now and choose modern Java (JDK 21+) with Spring Boot and it's been fantastic. Have previously built startups using both Haskell and Python/Django in the past. Ignore the folks talking about it not being cool, heavy, boring or whatever - modern Java is just super nice and quick to work with.<p>Some positives we noted,<p>- "good-enough" integrated type system & language features, e.g. immutable records, type inference, generics, sum and product types with exhaustive pattern matching, lambdas, streams (along with the new stream-gatherers). We feel the gain isn't enough to switch to Kotlin anymore.<p>- Fantastic tooling, from IDEs, build systems, cloud integrations, remote debugging, settings configuration etc.<p>- Massive ecosystem - there are libraries for everything, and all major vendors, including cloud providers and most startups, have a Java SDK<p>- Spring Boot is a great framework, especially for API backends coming from Django - setting up things likes OAuth and OIDC was super easy. Spring AI is developing rapidly, for instance it got
MCP support within a week or two of it being released<p>- Verbosity can be tamed with annotations processors, and Lombok if you desire (we do but understand some don't like it). JSpecify helps with null-checking.<p>- Performance is great, you just don't have to think about it at a startup scale, and Loom / Virtual Threads makes it even easier to build performant web services without the mental overhead of building `async` systems<p>I could go on, and like all things there are of course negatives, but we took the plunge and have been really happy with it.