Java Developers, What Lies Ahead in the AI era?
Before we dive to AI, let’s sit back to look at what we have achieved and what we are currently struggling with.
Things we have achieved recently
As a Java developer, we have something unique when compared to other programming languages such as C, C++, etc. The unique piece is Java Virtual Machine (JVM), which is the runtime environment to execute Java code and enables “Written Once, Run Everywhere”. However, JVM causes Java applications starting slower when compared to other languages as it needs to translate bytecode to machine code prior to the execution.
With the recent innovation of GraalVM, CRaC, Liberty InstantOn, Java applications can start in milliseconds instead of seconds or minutes (demonstrated below), which enables them to run as serverless funcations.
However, we have not solved all problems. What others things are bothering us?
Things we are still struggling with
As a Java developer, we have many hats: we need to write code, package it, deploy it and maintain it. Basically, we Build It, Run It and Maintain it. We have many tasks: Development, Ops, etc. In order to do our jobs well, we need to understand many tools in different phases:
IDEs (Intellij, VSCode, Eclipse, NetBeans, etc), Build (Jenkins, Podman, Docker), Deploy (CI/CD), Maintain (Source Bill of Materials — SBOM, Vulnerability)…
With new technologies emerging rapidly, developers need to learn more and more ever-increasing amount of complex tools and workflows. This burden potentially leads to developers’ burnout.
Luckily, Platform Engineering comes to rescue. Platform Engineering was also mentioned in Gartner’s top trend in 2024, detailed in the article of Gartner’s Top 10 Tech Trends 2024: Embracing Platform Engineering. According to the article, “Gartner predicts that by 2026, approximately 80% of software engineering organizations will establish platform teams as internal providers of reusable services, components and tools for application delivery. Well-designed platforms have the potential to offer customers and business partners a frictionless self-service experience, allowing users to do valuable work with as little overhead as possible.”
What is Platform Engineering?
Platform Engineering org states Platform engineering is the discipline of designing and building toolchains and workflows that enable self-service capabilities for software engineering organizations in the cloud-native era.
Platform engineers provide an integrated product most often referred to as an “Internal Developer Platform” covering the operational necessities of the entire lifecycle of an application.
The following diagram nicely illustrates the component of Platform Engineering. As a Java Developer, we can rely on the Developer Portals such as Backstage to help us.
You might be wondering why I put AI in the title. It’s time to talk about AI in the context of improving developer experience.
What else can Improve Developer Experience
Obviously, in order to improve developer experience, we need to delegate out the tedious and repetitive tasks. Who will perform these tasks then? Let’s give them to our assistants, Artificial Intelligence (AI). First, we take a look at the history of AI.
AI History
Even though AI has been around for many decades, AI was far from us and it remained in the labs and research fields until the emergence of Generative AI (GenAI). GenAI refers to deep-learning models that can generate high-quality text, images, and other content based on the data they were trained on (https://research.ibm.com/blog/what-is-generative-AI).
GenAI
GenAI was a breakthrough, as it enables non-AI experts to consume AI. What are the building blocks of GenAI? The following diagram illustrates the relationships between GenAI, Foundation Model and Large Language Model (LLM).
You might have heard LLM being talked about every day. What is it exactly?
- A large language model (LLM) is a type of foundation model, trained on large quantities of unlabeled text using self-supervised learning. The architecture of a LLM consists of layers of neural networks that learn to generate text, similar to how humans use language.
- Foundation models (FMs), are built using a specific kind of neural network architecture, called a transformer, which performs translation from input to output.
- Generative AI refers to a set of AI algorithms that can generate new outputs — such as text, images, code, or audio — based on the training data, unlike traditional AI systems that are designed to recognize patterns and make predictions. IBM has been investing in FMs and generative AI is one way to bring these models to life.
The following table further demonstrates the common AI systems and their underline FMs (source: –https://www.datacamp.com/blog/what-are-foundation-models).
As a Java developer, we need to understand some AI tools that would improve our productivity and master them.
Chatbot
–Anthropic’s Claude 2, –Google’s Bard, Meta AI’s Hugging Face Llama 2 Chat, Microsoft’s Bing Chat, OpenAI’s ChatGPT
AI code assistant
Github Copilot, Amazon CodeWisperer, Divi AI, Tabnine, Replit, Sourcegraphy Cody
You should pick some of the tools and learn about them.
What Tasks AI can do for a Java Developer?
We can use AI code assistant to generate code snippets, create tests, debugging, code reviews, refactoring, code improvement, etc. With the help of AI, we can bring Test Driver Development to a new level and adopt some best practices much easier. We can apply some sophisticated architecture design such as Domain Driven Design and then validate whether we have used some technologies in the correct way.
We will be able to move to a newer Java version even quicker and painless. We can also use AI to teach new concepts.
Similar to most things, there are disadvantages or risks brought by AI as well.
Issues with AI and IBM’s solution
What license should we use for the code created by AI. AI could potentially generate harmful code containing security risks. Innovation is another concern with AI. As a matter of fact, innovation is a differentiator between human and AI. There are other concerns associated with AI, such as Explainability, Ethics, Bias and Trust. Many business leaders see at least some of the these ethical issues as a major concerns. As shown earlier in the AI history, IBM has pioneered in the AI field in many decades, demonstrated further by IBM Deep Blue and IBM Watson. In 2023, IBM launched Watsonx to put AI to work with the concerns mitigated with the following AI platform (watson.ai, watson.data and watson.governance) detailed below. IBM Watsonx has the vision of: Open, Trusted, Targeted and Empowering.
With the widespread of AI and fast advancing technologies brought by AI, many people have the concerns on whether AI will replace Java Developers and we will be jobless. Let’s first look at the impacts that AI has in the Job Market.
AI impacts in the Job Market
According to this blog, the following jobs might be potentially replaced by AI:
- Data Entry Clerk
- Telemarketer
- Factory Worker
- Cashier
- Driver
- Travel Agent
I would also add Translator to the list of jobs that might be replaced by AI. Personally, I am looking forward to use AI to plan my annual holiday trip, booking my flights, accommodations, sorting out my visas etc. Better still, AI should be able to watch holiday deals and book my holiday in a good time to save money. Basically we will have personal assistant to manage our activities.
The good news is that Java Developer is not in the list of jobs that AI might potentially replace. However, in order to stay competitive and not lag behind, we should focus on the areas that AI is not good at such as Architecture, Innovation, etc.
Java Developers should embrace AI to improve productivity such as using code assistant writing tests or debugging, etc. Without this aid, your performance might be lower compared to the ones who use AI.
AI does indeed impact the Job market by taking over some tedious and repetitive tasks, but it also creates new jobs. In order to communicate with AI well, we will need a great Prompt Engineer. I think at least the following new jobs will be in demand:
- Prompt engineer
- LLM Model Trainer
- …