According to scientists from the University of São Paulo, a web-related software, as well as programming languages used to develop the code for such programs, do not necessarily have to be only like those we use today. They are developing a new coding language called Vivace which introduces a high degree of developer-level interactivity and convenience of use.
The novel programming environment proposed by the Brazilian scientists allows to avoid many unnecessary elements of software configuration while also providing a possibility to share the programming session and the system itself with basically everyone you want to share it with.
Vivace was inspired by various previously proposed live coding languages, such as ixi lang, ABT, FIGGUS and some other software development platforms, the authors say. One of the initial applications of Vivace had an artistic touch: it was used for real time audio processing inside a web browser. Today it still remains dedicated mainly to audio and image processing, although new elements are being added on a constant basis.
It wasn’t a new idea though, as many other teams of developers were working on similar project at that time. Still, Vivace has some notable differences, the authors say. One of the main traits of uniqueness is the element of collaborativity. “Vivace was built to enable writing code with many hands at the same time, as with the now popular ‘e-pads’ or collaborative real-time text editors, a feature which is naturally implementable on Web”, explains the team in a recently published article.
Vivace isn’t a Turing-complete programming language, and it probably will not become one. So-called Turing-complete languages are designed in a way allowing to implement practically any algorithm, and most of modern programming languages are Turing-complete, including SQL, Java, C and many others. But at the same time this is an advantage for Vivace, note the authors, saying that the design of Vivace is more flexible and closer to musical process (which is currently the main area of application) rather than the computing process. Such approach could be considered as an attempt to find a balance “between precision of code and the flexibility of artistic expression”, the team exemplifies.
Other features of Vivace are as you could expect: extreme simplicity of syntax, mnemonic operations, customized audio-oriented functions related to audio mixing, template editing and automation of audio parameters. Certainly, shared code leaves a large-enough-space for inconsistencies, but at the same time the shared workflow may lead to quite unexpected results from the artistic point of view.
The authors note there is much more work to be done before Vivace becomes a completely-developed tool. But even with the current version one can attempt to find new forms of artistic expression or explore potential advantages of live coding. “Further improvements are planned on Vivace: the possibility to explicitly define large musical arcs as nested sequences related to audio units, the use of 3D graphics APIs to render forms, text messages to the audience, and improved UI to make the code editing more flexible and reactive”, the team concludes.
Written by Alius Noreika