November 20th, 2024

Lush: My favorite small programming language

Scott Locklin reflects on Lush, a historically significant programming language for machine learning, praising its ergonomic design and ease of use, while advocating for its revival amidst the popularity of R and Python.

Read original articleLink Icon
Lush: My favorite small programming language

Scott Locklin reflects on Lush, a small programming language he once favored, which has historical significance in the development of machine learning algorithms. Initially popular among its creators, including Yann LeCun and Leon Bottou, Lush has faded from mainstream use as other languages like R and Python gained traction. Locklin recently revisited Lush, discovering updates and fixes made by Bottou on its older version. He appreciates Lush for its ergonomic design, self-documenting features, and ease of integrating C libraries, which contrasts sharply with the complexities found in other languages like R. Lush's array handling and object system are highlighted as particularly useful for machine learning tasks. Despite its age, dating back to 1987, Locklin argues that Lush remains a cozy and effective tool for developing algorithms, emphasizing its programmer-centric design. He notes some limitations, such as outdated documentation and minor usability issues, but overall, he advocates for a revival of Lush, suggesting that it could have significantly influenced the machine learning landscape had it not been overshadowed by more popular languages.

- Lush is a small programming language with historical importance in machine learning.

- It features self-documenting capabilities and easy integration with C libraries.

- The language is noted for its ergonomic design and user-friendly object system.

- Locklin suggests that Lush could be revived to better serve modern programming needs.

- The language's decline is attributed to the rise of more popular languages like R and Python.

Link Icon 6 comments
By @andai - about 23 hours
Previously:

https://news.ycombinator.com/item?id=34908067

https://news.ycombinator.com/item?id=9602430

https://news.ycombinator.com/item?id=2406325

Also this comment:

> "Lush" stands for "Lisp Universal Shell". It has not just S-expression syntax but recursion, setq, dynamic typing, quoting of S-expressions and thus lists and homoiconicity, cons, car, cdr, let*, cond, progn, runtime code evaluation, serialization (though bread/bwrite rather than read/print), and readmacros. Its object system is based on CLOS.

https://news.ycombinator.com/item?id=28728302

By @alpinesol - about 15 hours
Fun fact: Lush was invented by Yann LeCun, of convnet and FAIR fame.
By @ngriffiths - about 22 hours
Makes me curious what state R was at the time, or whatever else could've been useful for deep learning, and the benefits of a new language vs adapting something that exists. Seems like it was a big investment
By @knighthack - about 24 hours
What does 'small' really mean?

I would think of a language like Go as small (say, in comparison to Rust or Swift) - the language itself at least, if you discount the standard library.

I find the use of the word 'small' quite confusing.

By @cannibalXxx - about 24 hours
do you already program with this language? what is your paradigm?