Paving The Way Towards Low-Code Programming: Meet Wolfram Language and Racket
Time to time, I take a random walk through the landscape of programming languages, the raw material of the computing industry without which no software would even exist. New languages continue to spark as if programming was novel. Each has aficionados and detractors, and estimating their popularity is far from easy. Every time, I start with a simple question in mind: what’s really new this year? And every time, I finish on the same ascertainment: no new innovation — since the first functional programming language Lisp in the 1950s and object-oriented programming language Smalltalk in the 1970s, nothing has fundamentally changed. This time I started my walk with a new question: which language would I choose for modern purposes regardless of the popularity indexes? Two languages hit my attention: Wolfram Language and Racket. What I found in them is what I believe should the next battle for programming, beyond syntax beauty, performance measurement, and popularity rank — the road to low-code programming.
For those who never heard about this language, Wolfram Language is the foundation of Mathematica and Wolfram|Alpha. Mathematica is a computer algebra software published by Wolfram Research in 1988 and used in scientific circles to perform algebraic calculations and create mathematical programs. Wolfram|Alpha is an internet service released by Wolfram Research in 2009 that responds directly to factual questions in English by calculating the response from a curated database.
Unlike other languages, Wolfram Language brings more than traditional types such as numbers, lists, and tables. Indeed, it understands real-world things such as colors, sizes, styles, and much more concepts, all based on a vast knowledge base maintained over three decades since the launch of Mathematica and Wolfram|Alpha. For instance, it understands Paris when you are referring to the city in which case, it automatically infers its geographical position, its population, and that Paris is the capital of France. Wolfram language is more akin to a an all-libraries-included language for visualization and graphics, data manipulation and analysis, machine learning and neural networks, mathematical computation, pattern matching and rules, and much more.
If you have never heard of Wolfram Language but you are curious and familiar with the sites that rank the popularity of programming languages, you will probably jump to Github’s PYPL, TIOBE, and RedMonk to see how Wolfram Language performs against the other languages. But you will not find it. Despite what it brings to the world of programming, it is not popular. The main reason is that Wolfram Language is proprietary and not open source like the majority of programming languages. This prevents it from wide adoption and will continue so unless it becomes open source.
At first glance, Racket looks like yet another functional programming language in line with Lisp. But if you give it a chance, you will discover that Racket is a programmable programming language — a programming language for making new domain-, problem-, or task-specific languages. With this built-in functionality, developers are able to code in a language that not only coders understand, but also experts in the domain, problem, or task at hand. The power of Racket to create new languages comes from a new way programmers can use macros to change, extend, restrict, or even hide Racket’s syntax to the domain/problem/task at hand, making Racket an engine for the language users design. For example, using Racket, Matthew Butterick* created Pollen, an open-source publishing language to design, test, and run beautiful books and websites as if they were programs.
Racket is not popular neither but for a different reason. Racket is a descendant of Lisp and Lisp continues to suffer from the flaws it had since its inception by John McCarthy** in 1958: the syntax was totally different from what programmers were used to, the functional programming in which functions were treated as data or as arguments to other functions was not (and is still not) easy for everyone, the performance was low compared to C and its descendants C++ and Java, and the libraries were very limited compared to Python.
C won the battle to become the lingua franca of programming because it was much simpler to learn, was linked to the then modern operating system Unix, and was not associated with the field of artificial intelligence that experienced at that time its first winter. Lisp and its descendants are still live but account for a small fraction of the programming languages. This explains why you will not see Racket among the mainstream languages.
Wolfram Language and Racket are forerunners to a coming movement named low-code programming where end-users will not code but rely on platforms, often visual, to design, build, test, and deploy domain/problem/task-specific applications. They are the tipping point of what the majors in the software industry dream about: making coding as easy as typing text on a computer. If demands for knowledge-based programming (like in Wolfram Language) or language-oriented programming (like in Racket) take root in industry, we will certainly see these high-level concepts integrated in the more popular languages or in the libraries that come with these languages.
About the author
Consultant in digital strategy implementation, project management, and market development.
* A writer, typographer, and lawyer.
** John McCarthy is one of the co-founders of AI during the Dartmouth Summer AI Workshop in 1955.