Catalog of Programming Languages for the Enthusiast: Starting a curation on some of the cool indie / lesser known programming language projects I have been stumbling on.
Starting off with Pikelet by @brendanzab. It is a continuous source of inspiration to see Brendan starting from game dev and getting into deep type theory stuff! Check out his language Pikelet: github.com/pikelet-lang/p… and his twitter stream for updates on his work.
I encountered Koka when researching about algebraic effects. Papers from Daan Leijen on its semantics and technical details are available here: microsoft.com/en-us/research…
@brendanzab Factor is a concatenative stack based programming language that supports interactive programming on multiples platforms. It comes with a feature rich library and extensive documentation. Check it out here: factorcode.org
Enso (@enso_org) takes a hybrid visual/textual approach towards programming. It is interesting to see them iterate from Luna to the current minimal aesthetic. Check out their dev diary here: medium.com/@enso_org/enso…
@arntzenius Catala by @DMerigoux and team is a DSL for deriving faithful-by-construction algorithms from legislative texts. It is a pretty intriguing one in that it allows for describing the logical structure of laws and compiles down to a lawyer-readable PDF format in literate style!
Imp by Jamie Brandon is envisioned to be a programming environment for working with structured data across multiple platforms. It is still in an experimental phase, but already home to a few cool ideas.
Jon Purdy, author of Kitten language has given a talk on “Concatenative Programming: From Ivory to Metal” that describes the history, theory, and implementation of concatenative paradigm:
Dark by @paulbiggar and team is an environment for building backends instantly with structured feedback.
It has some interesting design decisions which are detailed in the dev blog here: blog.darklang.com
@paulbiggar Jeffrey Guenther (@jeffreyguenther) has done a Ph.D. thesis on subjunctive interfaces instrumenting Shiro — a programming language that allows you to explore parallel instantiations of designs simultaneously.
This is more towards esoteric programming realm, but IRCIS by @batman_nair_ inspired by Befunge is an awesome take on programming using a 2D grid and multiple cursors which map to control flow.
Curiously enough there’s a programming language that allows you to write programs in Frege’s Begriffsschrift (Concept script) notation. Meet Gottlob by @gfish: attoparsec.com/artifacts/gott…
Arend is a theorem prover based on homotopy type theory. It natively supports higher inductive types and a version of cubical syntax.
Caramel by @leostera is a type-safe functional language that leverages OCaml compiler for the ErlangVM! Check it out here: caramel.run
It’s just a great feeling when you find out someone has built their own programming language and is using it to bootstrap their own cool stuff like a raytracer, twitter client, chatbot, and more! Check out the awesome Ink language written by @thesephist: dotink.co
@thesephist Among the cool projects done with Ink, my favourites are:
Design ∩ Code Systems: Curating a thread on a topic I’m really interested in. Tools that blur the line between designing and engineering. Hope you find something inspiring here: patternatlas.com/v0/models-of-i…
Starting this series with Baku’s GLisp editor — A Lisp-based design tool that bridges graphic design and computational arts. It is a polished product that shows the power of having linguistic abstractions juxtaposed with an interactive design space: glisp.app
It is bloody awesome to see him use this tool to build programming visualization environments. This is the 🔥 energy:
Starting a thread on my process for creating a timeline visualizer. I am building this for visualizing and sharing my understanding of the history of Lambda Calculus.
Here’s some prior work I have done that gives an idea of what I am trying to achieve. It shows a subset of ideas, events, and collaborations among pioneers that influenced the course of logic. History is replete with such multi-actor conversations:
I am doing this to complement my Lambda Calculus project and the results of these explorations will be available here shortly: prabros.com/lambda-calculu…
Here’s a metathread that catalogues the topics I have been exploring for the past few years.
Volume 1:
1/ What is Life? 2/ Lambda Calculus 3/ Linguistics 4/ Computational Trinitarianism 5/ Chaos and Fractals 6/ Differentiable Computing 7/ Higher Dimensions
1/ What is Life?
Inspired by the dichotomy of “gear like” vs. “life like” in engineering proposed by Alan Kay, I started looking into biology to understand it deeply. In this thread I visualize “What is Life?” by Erwin Schrödinger as I read through it:
In my pursuit for developing a graphic design tool, I realized the need for a Turing complete set of primitives for building designs bottom up. This lead me to Lambda Calculus, a formal system to explore the Turing Universe:
This is one of the most important talks I have come across recently. It critiques the discrete alphabet oriented encoding which Longo locates as the LaPlacian computational paradigm for its determinism as being the reason behind many artificial bounds imposed on human inquiry.
Yet to arrive at a tractable way of expression for this in my programming work. But computation can be expressed as a traversal on a topological space. Here’s Longo’s paper that talks about topologies for computation: di.ens.fr/users/longo/fi…
Finally a step closer towards this direction. The paper “Topological Interpretation of Interactive Computation” by Emanuela Merelli and Anita Wasilewska shows how a loop we describe with symbols when programming becomes an actual loop in space! arxiv.org/abs/1908.04264
A few weeks back, I stumbled on this memoir by Alfred Kempe on the theory of mathematical form published in 1886. Here’s a tweetstorm as I read the paper.
Alfred Kempe was the student of Arthur Cayley. In this philosophical work, he tries to unify geometrical form with logic. It would later influence Royce, Peirce, and a slew of mathematicians in their work on logic. It is available here: royalsocietypublishing.org/doi/10.1098/rs…
The scope of this memoir is to distinguish the necessary matter of exact thought from its accidental garbs. Kempe believes that algebraical, geometrical, logical, and other kinds of thinking share a unified connected form.
Seeing this tweet sparked a thought that iteration could be cast as a sort of dual of recursion. The idea in @CentrlPotential’s tweet is called factoring out the characteristic equation of a recurrence relation.
The characteristic equation extracted out can be used to arrive at Binet’s formula via Umbral Calculus. This formula is used to calculate the nth Fibonacci number.
Conversely, golden ratio is approximated through iteration of ratios of successive Fibonacci numbers.
Making this post, transported me 8 years back to 2012, when I posted this question on Quora: quora.com/Can-all-iterat…