AucodaAutomic IDEAu · v3.9.1

The language
that writes
the others

Aucoda spent a decade building Au: a declarative language that turns one readable program into expert code across every major language. Around it sat a browser IDE, a debugger, and a full course. This page is its record.

The Automic IDE dashboard: a dark screen with a gold Automic IDE logo, a greeting, and a grid of project cards, each with a cover image and description.
The Automic IDE. A developer's project dashboard. Each app is written in Au and compiled, from here, to a running target.

Au ran in production for years. Graduates learned it in two weeks and shipped real systems with it, for the NHS, PwC, HM Revenue & Customs, the Metropolitan Police and Marks & Spencer. This page is the history of Au: the language, the platform around it, and the developers it made.

01What Au is

Au is a compiler that does not target a chip. A normal compiler targets an instruction set — x86, ARM, byte code. Au targets other languages instead. It uses every other language as its instruction set. The language is not fixed. Au is a broker, and at compile time it brokers for the right instructions.

You write a program once, in a form a beginner can read, and Au writes the expert code underneath it. One code base becomes an iOS app, an Android app and a web app at once.

target interface, swift application weatherApp userinterface main view home section body #full_width, #text_white, #font_large lbl_title { type: label, value: "Weather" } txt_city { type: textbox, helptext: "City name" } btn_search { type: button, value: "Search", onclick: findForecast(txt_city.value) } end: body end: home end: main end: weatherApp

The design keeps three things apart. A Model is Au's own vocabulary for a class of application, such as a console tool, a web service, an interface, or a task. The compiler lowers your program into Model Object Code, an intermediate form. An Implementation turns that intermediate form into expert code for one target. The Swift Implementation writes expert Swift. The Python Implementation writes expert Python.

You choose a build by pairing a Model with a target. When a target cannot honour a Model, the compiler stops the build. It does not emit broken code.

71%less code
to write, on average
40%less time
to deliver a project
175M+lines of code
generated by Au
6 yrsof client projects
in production
Code like you mean it.Aucoda

02How a build moves

A build runs through the compiler in a fixed shape. A front end reads Au. An intermediate form sits in the middle. A set of interchangeable code generators sits at the back.

Modelyour vocabulary
Compilerthree passes
MOCintermediate form
Implementationone per target
Target codeexpert output

This is the shape of a normal industrial compiler. The back end is what differs. It is not one target but many, and each is held to code an expert in that language would accept. The same Au source runs the full stack.

C++RustSwiftJavaKotlinC#GoPythonPHPJavaScriptNodeHTML / CSSSQL ServerMySQLOraclePostgreSQLMongoDBSQLiteCouchDBReactAngularFlutternew targets added over time

Au extends at two clean points. You extend the language by extending the Model. You extend the output by adding an Implementation. Implementations are written in a companion language, Autron — automatic transformation. A team can teach Au a new target in about two weeks, or bend an existing target to its own coding standards.

The compiler shipped in two forms. The local version ran on your machine, inside your source control and build. The Lambda version ran the compiler as an AWS function, so you could compile from anywhere with no infrastructure to manage.

03The platform

Au was a complete product, not only a language. Five parts worked together: the compiler, the browser IDE, Catalyst, the interactive tutorial, and a debugger that runs Au in Au. The sections that follow take each in turn.

The IDE is Automic. It runs entirely in the browser, with nothing to install. Projects live as cards on a dashboard. Creating one is a guided flow that scaffolds the right files for the type of application you pick. Inside, a full editor gives you file navigation, an integrated console, live compiler output, and Git for source control.

The Create New Project screen in the Automic IDE: add a cover image, enter project details for find_that_film, and structure the project by choosing a Model of interface and an Implementation of web.
Guided project creation — choose a Model and an Implementation target, and the IDE scaffolds the files.
The Au code editor with a source file open on a dark background, keywords in gold, a project file tree on the left, and an integrated console.
The code editor — write in Au, with file navigation, live compiler output and an integrated console.

Under the surface the platform is one system in four codebases.

PartWhat it does
Compiler
au-39
Turns Au into expert code for every target.
IDE
Automic / auShell
The browser editor: highlighting, autocomplete, source control, and the debugger.
Runtime
auAppliance
Drives the compiler, runs what it builds, and serves it in the browser as if it were native.
On-demand build
au-39-lambda
The same compiler as a cloud function, so a browser tab is enough to learn on.

04Debug in Au, in the browser

Au debugs Au. It debugs in the language you wrote, in the browser, in Au. You set breakpoints, step through the code, and watch your variables. A live preview of the application runs beside the code. Here a weather app renders on a simulated phone as the Au drives it. The numbered points match the markers on the screenshot.

Debugging an Au application in the browser, with numbered markers: 1 a breakpoint on a red line, 2 the current position highlighted, 3 the Variables panel on the right, 4 the debug toolbar along the foot. A weather app renders on a simulated phone beside the code.
  1. Breakpoint. When a breakpoint is reached, the application stops so you can step through the code. Add or remove one by double-clicking the line number in the gutter.
  2. Current position. The editor highlights exactly where you are in the code while debugging.
  3. Debug variables. Variables fill the side panel as you step through the code, shown in Au.
  4. Debug controls. The toolbar drives execution: Debug, Continue to the next breakpoint, Step Over a line, Step Into a function, and Step Out Of a function.

One idea sits under all of this. Debugging is a build target. Ask for a debug build and the compiler writes the debug lines into your program. Every Au statement then reports itself as it runs. So the debugger steps Au, never the generated code beneath.

The breakpoints travel with the program across the network. Put one on a button handler and another inside the web-server function it calls. Click the button. You pause in the browser, then step straight into the server function and back, as one program. A beginner does not yet hold "client" and "server" as separate worlds. With this, the boundary is not there.

05The tutorial system

You learn Au in the browser, with nothing to install. The course is Introduction to Programming with Au. It is fully interactive: over 100,000 words across 18 modules, with more than 50 quizzes, over 1,000 questions, and more than 100 exercises. No prior programming knowledge is required.

Programming BasicsExpressions & LogicLoopsFunctionsEntity ModellingUser Interfaces 1–3Documentation & MaintenanceDistributed ApplicationsWeb Applications in AuData in AuAdvanced AuExtending & Integrating Au

You read a lesson and run real Au beside it, on the same screen. You do not swap windows or pause a video. You edit the code and debug it there in the tutorial. The lessons carry three kinds of note. A Class Note explains the idea. A Tutor Note guides the teacher. A Developer Note gives the words a professional would use.

A side-by-side Au tutorial: a lesson on Conditions with conditional and logical operators on the left, and the live, runnable Au editor on the right.
Side-by-side learning — the explanation on the left, runnable Au on the right, in the same window.
An Au tutorial lesson with module progress tracking down the side.
A lesson with progress tracking — go at your own pace, module by module.

Most people learn Au in about two weeks. What happens next is a developer journey of its own.

06Catalyst

Catalyst is where a developer learns Au and builds a profile worth showing. It tracks module and quiz progress, and real coding stats — compiles, runs, and debug sessions. It shows the projects the developer has built, each one runnable with its code behind it. A built-in job portal connects developers with the people who need their skills.

"I thought they were kidding when they said you could learn to code in Au in two weeks. They weren't."
A Catalyst developer profile: an About Me panel, a Module Progress list, a Quiz Progress grid, and coding statistics reading 370 compiles, 302 runs, and 76 debug sessions.
A Catalyst developer profile — module and quiz progress, coding stats, and a project showcase. The CV writes itself.

07Training and the developer journeys

Aucoda does not hire experienced developers. It takes on graduates in their first job and undergraduates on a placement year, and teaches them Au. The full course runs in two weeks. After it, a new developer joins a project team beside experienced Au developers and starts to code. Within a few weeks the questions stop, and the work is real.

The pathway does not end at a first job. A developer is given real projects to build, can become an Au Ambassador and mentor others, and keeps a portfolio and a Catalyst profile to show for it. Many placement students go back to university, use Au for their final-year project, and graduate with a First.

Four of those journeys, in their own words:

Ashleigh's developer journey: a Web Development degree from York St John University in 2016, joined Aucoda in 2016 as a junior software engineer, learned Au in two weeks, project highlight building the Automic IDE, seven years of projects, now Senior Software Engineer and Community Lead at Aucoda.
Ashleigh. From a web-development degree to building the Automic IDE. Learned Au in two weeks in 2016. Now Senior Software Engineer and Community Lead at Aucoda.
Jack's developer journey: a Software Engineering degree from Manchester Metropolitan University in 2017, joined Aucoda in 2017 as a junior software engineer, learned Au in two weeks, two years of projects, project highlight for a large UK retailer, now a software developer working across many languages and frameworks.
Jack. Manchester Met graduate, 2017. Two years shipping with Au, including a project for a large UK retailer, then out into industry as a software developer.
Tom's developer journey: studying Software Engineering at Manchester Metropolitan University, joined Aucoda in 2020 on an industry placement, learned Au in two weeks, used Au for his final-year project and an ecommerce platform, two years of projects, now a software engineer at a large UK bank.
Tom. Joined on an industry placement, learned Au in two weeks, and used it for his final-year project. Now a software engineer at a large UK bank.
Narjis's developer journey: studying Information Systems at the University of Bahrain, joined the Introduction to Programming with Au course in 2020, became an Au Ambassador with a Cost Calculator highlight, now a software developer for Aucoda on client projects for a large analytical company.
Narjis. Took the course in Bahrain in 2020, became an Au Ambassador, and now builds client projects for Aucoda.

08What made it unusual

Declarative interface, on every platform

Au described screens declaratively around 2015, before Apple shipped SwiftUI. You write the layout and the style once. The same appearance block becomes CSS on the web and Auto Layout on iOS. One description, each platform's own mechanism underneath.

One keyword erases the client and server split

A webfunction reads like any other function. The interface runs in the browser, the logic runs on the server, and the developer does not wire the two together. The compiler does that work.

One designer, then the people it trained

Raj Curwen designed the language and built the compiler alone. The Automic IDE around it was then built by Ashleigh, a graduate who had learned Au in two weeks. The tool was built by the kind of developer it was made for.

09A short history of Aucoda

Au comes from one person. Dr Raj Curwen — formerly at ICI and ABB, with a PhD from Loughborough under Professor James Alty — invented the language and built the compiler. Aucoda is the company around it, in Manchester. Au grew over a decade, and Au Academy opened in 2015.

From 2016, Aucoda stopped hiring experienced staff. Instead it took on graduates in their first job and undergraduates on a placement year, taught them Au in two weeks, and built its teams from them. Those developers then shipped Au in production.

2015
Au Academy opens. The language and its browser tools take their public shape.
2016–17
The first graduates join and learn Au in two weeks. One of them, Ashleigh, builds the Automic IDE. Commercial projects begin.
2020
Au for Schools begins at Oldham Sixth Form College. With the office closed by lockdown, the training moves into the classroom and the Au Computer Club starts, capped at twenty students.
2021–22
The course becomes a fully interactive digital textbook, with runnable, debuggable code inside the lessons and progress reported through the Au for Schools Hub.
Feb 2023
Manchester Metropolitan University puts the course on its RISE platform, open to all 37,000 students.

The work reached real institutions. Au built and delivered systems for these organisations and more:

NHSHM Revenue & CustomsMetropolitan PolicePwCM&SSSCLAssurantKind ConsumerCharity CommissionPole StarBloomLionfish
85,000 → 500,000+ The largest single Au application, a case-management system for a major UK police force, was 85,000 lines of Au that produced over half a million lines of expert C#, HTML, JavaScript, CSS and SQL — written by a developer in their first job.

10Where the work goes now

Au was never really about the language. It was about thinking differently — about how a team approaches recruitment, development and training. Empower youth. Specialise your outputs. Hire developers with the right skills for the job, at any time.

The idea under Au outlasts the language. A deterministic layer that constrains and checks a creative one is what the current wave of AI needs. The model imagines. Something underneath has to say no. Au was that layer for a person writing code. The same instinct — take a hard computer-science idea and make it work in production — shapes the work that followed Aucoda.

Au was not the first language either. That was Viper, an agent language built in 1994 that anticipated much of today's AI agent stack.