DZone Research: The Myriad Uses of Java
DZone Research: The Myriad Uses of Java
Java's flexibility, as well as the availability of Java developers, solves a lot of problems for large organizations, even as development and IT continuously evolve.
Join the DZone community and get the full member experience.Join For Free
How do you break a Monolith into Microservices at Scale? This ebook shows strategies and techniques for building scalable and resilient microservices.
To gather insights on the current and future state of the Java ecosystem, we talked to executives from 14 companies. We began by asking, "What are real-world problems being solved by Java today by your organization?" Here's what the respondents told us:
- Content management, delivery, digital experience. Our platform geared toward a good ROI for web presence and extensibility. Java provides a good foundation to build from. There are a large number of APIs for extensibility.
- Source code to deploy applications from Git to build, test, deploy a binary package to a Docker image to enable CI/CD.
- The availability of developers. There are millions of Java developers. The libraries are important. Since the Equifax breach, companies are doing software composition analysis to look for known vulnerabilities. When there’s a known vulnerability, we see widespread attacks within a day. Tooling, manageability, libraries, and frameworks are all strengths of Java.
- Writing automation tests that test not only how an application functions, but also what an application looks like. This means not just taking the screenshots of the application in various stages of the flow, but also not generating false positives when verifying that it looks the same as it did the last time the test was run successfully.
- Serverless architecture (FaaS) RIFF from Pivotal. Running serverless on the edge since all of the data is event-driven.
- Twitter, financial payment systems, automobiles, and artificial intelligence.
- 1) As a developer of MMOs, Java’s ability to support high-speed concurrent processing is definitely something we take advantage of the most. Today, we can run around 2,000 simultaneous players on a single server which is possible, at least in part, because of Java. For comparison, other languages might only support perhaps 100 people on a server at once. 2) There’s another school of thought that doesn’t leverage concurrent programming and instead uses the database to resolve all concurrent issues. That approach is an order of magnitude slower which in turn makes it an order of magnitude more expensive because databases are really expensive systems. If you look at our datacenter, we spend ten times as much on our database servers than we do on everything else in our datacenter. By taking full advantage of concurrent processing we can reduce our database usage and reduce our overall cost compared to competing, single-threaded solutions.
- Millions of users. Spring Boot and Spring Cloud integrate with our APIs.
- One of the things that I am most excited about is using Java with a Function-as-a-Service engine, specifically Apache OpenWhisk. FaaS will have a notable impact on the way developers build applications moving forward. FaaS (aka Serverless) should have a bigger impact than the movement to microservices. In addition, some of our most interesting middleware technologies like Apache ActiveMQ Artemis is Java based. This means Java developers who are leveraging this AMQP (or JMS) focused messaging broker can even run their Java debugger through the broker itself. I consider that to be a substantial value-add to the average Java developer building their next generation of applications.
- We enable our customers to keep a full record of what happens. Event sourcing keeps all state changes. Legal proceedings for online gambling, banking, analytics, electronic medical records for research, for compliance framework demands. Automatic tracking. Scalability which is important when you have a large number of transactions. Starting with microservices can be difficult to know where to start. Writing a monolith is hard to scale. Our structured framework goes from monolith to microservices that scale.
- I'll write a few different use cases since I'm a contractor: 1) automating invoice handling and bookkeeping; 2) building cloud services for connectivity; 3) end-user systems that handle a lot of pressure (load wise)
- Our product filters profanity from forms and databases for brand and reputation management of retailers, media companies, and data resellers. We also provide ID management for customer identification and access management. Developers are learning not to write this in-house. Passport is a regular security audit solution which scales to millions of customers. Java is particularly good at scaling.
- Financial services’ feedback and infrastructure is enterprise Java. The preferred frontend UI is .NET and Eclipse. We serve as a very efficient bridge between the front end and the backend. Companies with big Java message services infrastructure want to connect with .NET business logic.
Here’s who we spoke to:
Opinions expressed by DZone contributors are their own.