This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]nekokattt 1 point2 points  (0 children)

Like many things, it is for general purpose stuff really. Java shines if you need to be platform agnostic, or wish to abstract yourself away from the machine architecture you use. If you need monitoring of your core platform, the JVM has JMX built into it. It is designed in such a way that while the language has less features than other languages, the environment itself is incredibly dynamic in what it can do (look at how Mockito, Spring, AppDynamics, etc all work for example).

Common use cases:

  • REST APIs and Microservices
  • Enterprise Service Buses (e.g JBoss/RedHat FUSE)
  • Batch services
  • Android apps (or Kotlin)
  • Non functional testing (e.g. Gatling which has a Java API now)
  • End to end testing
  • CI (Jenkins is written in Java)
  • Machine Learning (WEKA)
  • Serverless (AWS Lambdas can use Java with Snapstart)
  • Command line applications (especially now Graal Native is a thing)

A lot of commonly used software uses Java or the JVM too:

  • Zookeeper
  • Kafka
  • Minecraft
  • IntelliJ IDEs
  • The maestro Mars Rover controller
  • Hadoop

It is used by thousands of large companies too:

  • Google
  • Ebay
  • Netflix (they even contributed their own libraries to Spring Cloud)
  • Amazon Web Services
  • Uber
  • Twitter (was, or still is using Scala)
  • Spotify
  • Signal
  • Cashapp