Settings

Theme

Ask HN: Java for New Projects?

18 points by devgoth 2 years ago · 24 comments · 1 min read

Reader

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.

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).

What is everyone's thoughts here? Am I perhaps in a vacuum?

Note: I really enjoy the developer experience using Java and enjoy exploring other JVM-based languages like Clojure, Kotlin, etc.

PaulHoule 2 years ago

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 https://github.com/srdc/ontmalizer that really works which I've had on the agenda for the last year) I'd pick Java.

I’ve worked for numerous companies including startups that used Java or JVM languages like Scala.

  • 8589934591 2 years ago

    What do you recommend to switch from Python to Java or JVM based languages like Scala? I have developer experience with personal projects, but I can't seem to get shortlisted to any of the bigger companies which use them.

mindcrime 2 years ago

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).

billfruit 2 years ago

Decades of work by lot of smart people has gone into the JVM, so there is still benefits to be had in using it.

sandreas 2 years ago

Java is still ok. A lot of people use it. It's a good ecosystem and well hung technology, the tooling is very good.

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.

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.

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.

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 :-)

  • fuzztester 2 years ago

    why did C# fail for your app?

    • sandreas 2 years ago

      C# still has a lot of problems regarding cross platform development.

      The Microsoft Framework (MAUI) is... let's say it has some obvious problems that probably will never get fixed. Community Frameworks like Avalonia UI are better, but not there yet.

      To sum it up:

        - App sizes are huge (>70MB)
        - App Performance is meh
        - Important libraries are either missing, not cross platform or outdated
        - Hardware access is not good enough (camera, gyroscope, audio, bluetooth)
        - Cross Platform Deployment is too complicated
        - There is even more I can't remember right now
      
      
      All of that is not the case for flutter... it worked out pretty well until today.
rlawson 2 years ago

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?

My company does Python for ETL/data but Java for everything else

splix 2 years ago

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.

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.

ldjkfkdsjnv 2 years ago

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

takkatakka 2 years ago

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.

cdaringe 2 years ago

Here’s my pitch: https://cdaringe.github.io/programming-language-selector/

  • Capricorn2481 2 years ago

    Not to be that guy, but why does it seem like Rust is so high for everything and Python is crazy low?

    I don't have a stake for either languages, but when I select a web server with only Developer UX, Hiring, and Ecosystem selected (as in no performance or correctness) Rust is at 0.87 and Python is at 0.12?

    I think if you told someone "I need a webserver in a language with a great ecosystem, easy to hire for, and performance doesn't matter" most people would think of Python. At the very least, nobody would think of Rust.

  • 8589934591 2 years ago

    No matter what I try, I can't get python to reach the top. :D

    I like the website. It shows rust for a lot of options go as close to next best.

aristofun 2 years ago

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.

giaour 2 years ago

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.

  • muzani 2 years ago

    OP did ask for Kotlin, so I guess it counts. Because I don't think people really start any new code using Java itself. Kotlin is the officially supported language. And there's just significant tangible benefits of using Kotlin over Java (e.g. Compose).

jryan49 2 years ago

Yup, it's boring and works :)

shoo 2 years ago

lots of java being used at mature banks & successful fintechs

pg_1234 2 years ago

It's still way better than Go.

lulznews 2 years ago

Code is code bro. Just use what you like.

exabrial 2 years ago

yes, absolutely

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection