Is anyone using Java for new projects? I've seen a lot of job postings / new companies being started with Python, Go, TypeScript, and the like.<p>Outside of companies already firmly planted with Java in their ecosystem I don't really see people being excited to start new projects using Java (or even a JVM-based language).<p>What is everyone's thoughts here? Am I perhaps in a vacuum?<p>Note: I really enjoy the developer experience using Java and enjoy exploring other JVM-based languages like Clojure, Kotlin, etc.
Personally I like Java a lot. I like Python for rapid prototyping and particularly code where numpy and scikit-learn can do the hard work. PyPi helps w/ branchy semantic web workloads but for things like that (say something like <a href="https://github.com/srdc/ontmalizer">https://github.com/srdc/ontmalizer</a> that really works which I've had on the agenda for the last year) I'd pick Java.<p>I’ve worked for numerous companies including startups that used Java or JVM languages like Scala.
If you're looking at startups and the typical SV / YC crowd, maybe not. Looking more broadly, 100% yes, Java is being used for new projects. At my $DAYJOB employer new projects get launched using Java all the time. Not interested in saying who that is, but we're a Fortune 100 public company (not a "tech company" though).
Java is still ok. A lot of people use it. It's a good ecosystem and well hung technology, the tooling is very good.<p>However, I think Java is not very popular because of Oracle and the licensing. There is no good reason to avoid it technology-wise but it has kind of a bad smell.<p>Another reason could be that more and more modern languages are trying to prevent using a VM and are designed as or transition into a compiled language offering "best" performance by having native binaries without too many dependencies.<p>The last reason I can think of is productiveness / complexity and elegance. Java just does not feel very elegant or easy to learn with its enterprise background. Too many products / libraries / technologies for beginners. Because of it's strictly object oriented design you have to write much code to achieve the same thing you can do in a few lines or even one line in other languages (even when you are using modern Java features). Kotlin comes in handy here, but still feels a bit clunky from time to time.<p>I would still use it, if it is the right tool for the job... or even if I didn't have skills in another language and wanted to get things done. Still it may be a good idea to check out other languages to learn something new. Python is good for AI stuff, Go was very productive. TypeScript is... well a "better" JavaScript with interesting concepts. Currently I'm learning Dart / Flutter, because C# failed hard while building my first little audio player app :-)
Python and esp Django are great for rapid prototypes but larger projects I find the performance and structure of Java easier for a large team. Maybe things get a lot better in the future as type hints get more widely used with Python?<p>My company does Python for ETL/data but Java for everything else
How do you measure that? Do you include only companies with _no_ experience in a particular language before starting a new project using that language? Companies usually continues the language they have an experience with.<p>Except some areas where you don't have much flexibility. Like for AI you chose Python even if you have no experience. Or for a website, you don't have much choices and have to use TS/JS even if you don't like them.
I launched a startup with Java/Spring Boot on the backend. Tons of developers already know this stack, no headaches, everything works. ChatGPT is also an expert in mainstream Java technologies. Using a bleeding edge framework like the newest next.js has major gaps in ChatGPT
I’m using Java in a new-ish project of mine. It’s not glamorous, but there is a library for everything which is nice. I also have the most experience with it (Clojure coming second), so that lets me focus on building rather than learning a new tool.
These days you gain very little (performance, devX, complexity etc.), but pay too much (overengineering mentality, "best" practices and traditions, tons of legacy etc.) in comparison to other tools.
If you include Android apps in the category of "new projects," then new projects using Java and Kotlin are being launched all the time, including by companies that were not previously using Java.