Introducing domain-driven AI programming

Uniscale
Better software

With Uniscale, it's no longer about how to build—it's about what to build. Learn how Uniscale makes AI code generation intelligent with relevant domain context.

Uniscale makes AI code generation intelligent by providing your chosen AI code generator with relevant domain information that produces code you can actually use and maintain. With Uniscale, it's no longer about how to build—it's about what to build.

With our domain-driven approach, Uniscale provides a standardized framework for you to describe what you want to build using natural language.

The power of instructions

When milling machines were invented in the late 18th century, it depended on manual instructions to produce its intended output.

With the invention of CNC technology in the 1940s, people lost their jobs because now those instructions, or prompts if you will, could be provided directly to the machines using perforated paper tapes, and later from computer programs, allowing automated production of the desired product. The better the instruction, the better the product.

The machines couldn't do much on their own but depended on clear and precise instructions from humans. This concept is precisely what applies to a generative AI algorithm as well.

Typical limitations of AI-generated code

If you've ever tried using AI code generators to create code for you, you've more than likely run into a few of these issues:

  • The AI's training data doesn't include the latest security practices or information on how to mitigate recent vulnerabilities or exploits
  • The AI's training data doesn't include up-to-date knowledge about deprecated APIs or new programming language features
  • The AI is prone to match the energy of the user and to take the path of least resistance
  • The AI is prone to hallucinate, i.e. invent things that don't exist, when it encounters something impractical or impossible
  • The AI is not a mind reader and will make incorrect assumptions

While AI code generators have limitations, they are perfectly capable of writing error-free code in most programming languages given the right set of instructions.

“Current research shows that AI code generators are producing code of lesser quality than code produced by humans pre-AI.”

The real problem with AI-generated code

Just like CNC machines, generative AI is not yet intelligent and cannot do things on its own. This will likely change in the next 10–20 years, but for now, generative AI will only provide the output that it believes, given the knowledge that it has, is statistically most likely to provide a correct answer to the prompt it receives.

CNC technology uses a binary language for instructions, leaving no room for interpretation. Because of this, the machine knows exactly what to do, and will produce 100% the same result every time.

In software development, however, it's often the domain experts along with customers who have the functional descriptions of what they want their program to do. Because they are not software developers, they have them described in a natural language, leaving room for interpretation and ambiguity.

Natural language makes it possible for anyone, regardless of technical competence, to describe a software application. This allows non-technical stakeholders to participate deeper in the software development, potentially reducing misunderstandings and leading to better alignment with customer needs and company objectives.

The biggest problem in software development today is accurately translating these interpretation-based natural language instructions into binary instructions that’s possible to code into usable software. With the introduction of AI, we are compounding this problem with the prompt. Current research shows that AI code generators like GitHub Copilot are producing code of lesser quality than code produced by humans pre-AI.

“[Participants] who trusted the [AI code generator] less and engaged more with the language and format of their prompts, provided code with fewer security vulnerabilities.”

The reviews are in, and they're: not great…

The late 2022 study by researchers at Stanford University found that “[Participants using an AI code generator] wrote significantly less secure code than those without access. Additionally, participants with access to an [AI code generator] were more likely to believe they wrote secure code than those without access. Furthermore, we find that participants who trusted the [AI code generator] less and engaged more with the language and format of their prompts provided code with fewer security vulnerabilities.”

Moreover, a more recent 2024 white paper by GitClear, a company known for their code analysis tools, analyzed more than 150 million lines of code (believed to be “the largest known database of highly structured code change data that has been used to evaluate code quality differences”) in order to investigate the impact of AI code generation on code quality. The white paper projects that code churn will double in 2024 compared to 2021, pre-AI code generators. GitClear's research suggests that there is a significant correlation between using an AI code generator and the production of low-quality code.

In a 2023 report on Copilot, GitHub stated that the acceptance rate of Copilot recommendations was less than 35% after 6 months of use for the average developer, and dropping below 30% for more experienced developers.

The consequence of this seems to be that we are actually producing more legacy code that will need to be corrected or reverted, and that many developers are actually creating more work for themselves as a result. What you're left with is a support tool for developers, similar to a semi-manual CNC milling process.

“The biggest problem in software development today: translating interpretation-based instructions into binary instructions—or prompts.”

Explaining the Uniscale product

Let's compare an instruction to a CNC machine with an instruction to a generative AI algorithm.

The way you describe what you want in a CNC machine is a binary vector instruction, artificial languages. There's no room for interpretation, and the machine knows exactly what to do, which is relatively easy to describe since you often have a physical prototype to base it on.

This isn't the case in software development. In software development, it's often the domain experts along with customers who have functional descriptions of what they want their program to do, described in natural language, leaving room for interpretation.

This is, without comparison, the biggest problem in software development today: translating these interpretation-based instructions into binary instructions—or prompts.

At Uniscale, the focus of our first products was to enable anyone to describe software using natural language. We then focused on how we could use the output from these products as a prompt for generative AI algorithms and get them to produce high-quality source code.

How we did it

The first thing we solved was getting the algorithm to generate source code correctly from our prompt, without a domain context, which was relatively easy. The challenge all along has been the AI technology's limitation on the amount of data we could prompt them with at once.

At Uniscale, we have solved this by ensuring Uniscale manages the amount and order of data. In a way, we actually produce multiple prompts, feeding them to the algorithm one at a time in quick succession, and in the right order. This is what we have succeeded in, and this is what enables us to build entire applications using AI.

Our solution is vendor-agnostic, and can be integrated with your preferred AI code generator. You also don't need to adopt the full suite of Uniscale's products to leverage AI code generation, or even to utilize AI code generation at all. With our structured specifications and no-code SDK, you can implement your solutions your way. The choice is yours.

Start using Uniscale today.
Avoid rework and align your product with customer expectations