Zoea is an Artificial Intelligence that automatically generates code from a set of test cases. This lets anyone produce software without having to learn a complicated programming language.
A zoea is the middle larval stage of some crustaceans. The developmental stages of zoea are complex and little understood.
Zoea is developed by the UK company Zoea Ltd. Zoea is the brainchild of Edward McDaid FBCS.
Zoea Specification Language is a simple text based language that allows Zoea users to describe test cases. ZSL is often referred to as simply Zoea.
Zoea Visual is a visual programming language built on top of Zoea. It allows users to create software through test case data flow diagrams.
Zoea was the result of an attempt to define the simplest possible programming language that could also be learned and used with ease.
Less than one in 200 people in the world currently develop software. It is a widely held view that more people should be able to code but traditional programming languages are too complex. Zoea can be learned quickly by almost anybody.
Someone with no previous experience should be able to learn the language and associated concepts in a couple of hours. A developer or someone familiar with programming concepts could learn the complete language in fifteen minutes.
Initially at least we anticipate that Zoea will be accessed remotely through a web browser or web app. This will include writing, compiling and running programs.
While Zoea is already functional, there is more work to do on infrastructure and tools before we can make Zoea more widely available. We are looking to partner with one or more technology companies to accelerate this process although we do not yet have a timescale for general availability.
In theory there is no limit to the size of Zoea programs that can be created. In practise it depends on how decomposable the problem is. If the problem can be broken down into sub-problems, as is the case with most software that people develop, then there is no limit.
Zoea represents a completely new software development paradigm called Composable Inductive Programming. In terms of existing paradigms Zoea is also clearly a declarative language.
In Zoea compilation involves writing the code as well as compiling it. Compilation speed depends both on the nature of the problem and on the available resources.
Zoea currently targets its own internal virtual machine. The internal language is called Zoea Internal Language (ZIL). ZIL is designed to modify itself over time and as a result is not published.
Performance of compiled Zoea code is comparable with any interpreted language.
ZSL provides command line tools to compile and execute programs. Zoea Visual provides input and output forms on the Run screen.
Zoea comprises a single controller process and any number of single threaded worker processes. All processes require an associated physical core for optimal performance. Ideally all cores should be on the same network node but cores can be distributed across nodes if network latency is low. Memory requirements are modest by current standards.
Yes. This can be demonstrated by a number of means. For example, test cases can easily be used to define a rewriting system. Alternatively, Zoea could be used to build a universal Turing machine.
Yes, but it is not currently exposed. It has been tested to call software written in C.
There is no need for any. The document Zoea Language Specification describes the complete Zoea language.
Not currently but this is on the roadmap for ZSL.
Not really. Many gaps in how a particular problem can be expressed in Zoea have more to do with representation rather than mechanism. Even so, a number of language enhancements are in the backlog. That said, there will always be a tiny proportion of software that might be better written in a traditional language.
Self hosting is certainly a possibility but rather Zoea aims to be the first language that completely rewrites itself.