4 ms·
While Java certainly has a value for a maintenance, because of the troves of legacy projects, I am not sure why anyone would want to start a new project with it
by xvilka 8y ago
While Java certainly has a value for a maintenance, because of the troves of legacy projects, I am not sure why anyone would want to start a new project with it. From Scala Native, Kotlin Native (closer to Java world) to Elixir (Beam VM), from Rust to OCaml, from Go to F#, etc. I wish all these money and efforts were directed to development of newer, better languages, rather than reinforcing Java.
I was pleasantly surprised to see that recently linked Mercury startup uses Haskell.
- awild 8y agoJava has been a pretty usable language since java8 and become steadily better. There is a lot of bikeshedding going on, but you can create pretty neat stuff with very little code. Even maven which is imho terrible to set up is a nice tool and the amount of libraries and tooling coming with it are amazing.
- dikei 8y agoWhy not Java ? The JVM is now better than ever, the language is modernized, the library ecosystem is excellent. If you don't like the systax, alternative languages are well-developed and intergrated.
- nikanj 8y agoNewer doesn't automatically make a language better.
- z3t4 8y agoStarting over with a new language has a huge marginal cost. You have to calculate spending the budget on improving the current vs building the new. And its likely that after several years when your new language is production ready - the existing has improved enough. But it might also have become worse.
- EdwardDiego 8y agoI learned to code in Python, I loved Erlang, I dabble in Elixir when I can, and I loved F#, and I code in Scala, Kotlin,Java, JS and Python in my day to day work, depending on where in the codebase I am. The things that are hard to beat about the Java world is the ecosystem, the tooling and the package management. Stuff more or less works without too much hassle, there's often a good library for what you want to do, and you're building on decades of previous industry work. In terms of package management, the most unreliable parts of our project are Node and Python.
- y4mi 8y agoin what way are they unreliable? both can be proxy-cached on your local network to remove external dependencies. both have ... uuuh... okay package managers (poetry/pipenv for python, npm/yarn for node) with *.lock files to properly define their dependencies. How does this differ from maven/gradle? honestly, i prefer the node/python package management. Maven/Gradle is just so incredibly extensible making it insanely powerful.. But it comes at the cost of complexity and developers being unable to actually understand whats happening.
- salex89 8y agoBecause some guy in some library used by a library in an SDK I use didn't set a fixed version for his dependency which has been updated and has a serious bug in it... My app isn't working. Now I have to go through my requirements and set the exact versions that worked last time we released, have an enormous requirements file, and I'll probably never touch it again and have stale dependencies. Yeah... I don't like pip
- EdwardDiego 8y agoCan't generate a lockfile if conflicting dependency requirements exist. I type pipenv install --skip-lock far too often.
- empath75 8y agoThe latest versions of java are actually quite nice and implement a lot of modern features from those languages. It wouldn’t be my first choice but it’s by no means a bad or dated language.
- vips7L 8y agoModern Java is quite a fantastic language. They are steadily releasing new features (8 - lambdas, 9 - modules, 10 - type inference, 11 - jvm improvements, 12 - switch expressions, future - coroutines) and imo better than most of the languages you mentioned because it is quite simpler and with a larger ecosystem.
- rplst8 8y agoLibraries and tooling. And a pretty good track record.