[HN Gopher] Lush: My favorite small programming language
___________________________________________________________________
Lush: My favorite small programming language
Author : todsacerdoti
Score : 107 points
Date : 2024-11-20 06:47 UTC (16 hours ago)
(HTM) web link (scottlocklin.wordpress.com)
(TXT) w3m dump (scottlocklin.wordpress.com)
| knighthack wrote:
| 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.
| jerf wrote:
| The author appears to be defining it in terms of the effort put
| in to the language, basically, person-hours.
|
| Go may be a small language by some definitions (and as my
| phrasing implies, perhaps not by others), but it is certainly
| one that has had a lot of person-hours put into it.
| emmanueloga_ wrote:
| The problem is that there's no universal definition of "small"
| when it comes to languages.
|
| An article on the Brown PLT blog [1] suggests analyzing
| languages by defining a core language and a desugaring
| function. A small core simplifies reasoning and analysis but
| can lead to verbose desugaring if features expand into many
| constructs. The boundary between the core and sugared language
| is flexible, chosen by designers, and reflects a balance
| between expressiveness and surface simplicity.
|
| Feature complexity can be evaluated by desugaring: concise
| mappings to the core suggest simplicity, while verbose or
| intricate desugarings indicate complexity.
|
| So, a possible definition of a "small" language could be one
| with both a small core and a minimal desugaring function.
|
| --
|
| 1: https://blog.brownplt.org/2016/01/08/slimming-languages.html
| cannibalXxx wrote:
| do you already program with this language? what is your paradigm?
| kgwgk wrote:
| "Already"?
|
| This is about a language abandoned 15 years ago!
| andai wrote:
| It's buried in the article, but Lush is from 1987!
| kgwgk wrote:
| SN(1987) neural network simulator for AmigaOS (Leon Bottou,
| Yann LeCun) | SN1(1988) ported to SunOS. added
| shared-weight neural nets and graphics (LeCun) | \
| | SN1.3(1989) commercial version for Unix (Neuristique)
| | / SN2(1990) new lisp interpreter and graphic
| functions (Bottou) | \ | SN2.2(1991)
| commercial version (Neuristique) | | |
| SN2.5(1991) ogre GUI toolkit (Neuristique) | / \
| \ / SN2.8(1993+) enhanced version (Neuristique)
| | \ | TL3(1993+) lisp interpreter for
| Unix and Win32 (Neuristique) | [GPL]
| | \_______________________________________________
| | |
| SN27ATT(1991) custom AT&T version
| | | (LeCun, Bottou, Simard, AT&T Labs)
| | |
| | SN3(1992) IDX matrix engine, Lisp->C
| compiler/loader and | | gradient-based
| learning library | |
| (Bottou, LeCun, AT&T) |
| | |
| SN3.1(1995) redesigned compiler, added OpenGL and SGI VL
| | | support (Bottou, LeCun, Simard, AT&T
| Labs) | |
| | SN3.2(2000) hardened/cleanup SN3.x code,
| | | added SDL support (LeCun)
| | |
| _______________________________________________________|
| |/ | ATTLUSH(2001) merging of TL3
| interpreter + SN3.2 compiler [GPL] and
| libraries (Bottou, LeCun, AT&T Labs). |
| LUSH(2002) rewrote the compiler/loader (Bottou, NEC
| Research Institute) [GPL] |
| LUSH(2002) rewrote library, documentation, and interfaced
| packages [GPL] (LeCun, Huang-Fu, NEC)
|
| https://lush.sourceforge.net/credits.html
| fraserphysics wrote:
| Where does Ralf Juengling's work on lush fit in to this
| picture?
| kgwgk wrote:
| Note that the diagram ends in 2002.
|
| https://sourceforge.net/p/lush/mailman/message/20287123/
| peagreen wrote:
| I love this diagram. Is there a tool that generates such
| things? Or is there a name for this style of diagram that
| I could search for?
|
| My prime use would be generating diagrams of function
| call chains in large Python code bases.
| andai wrote:
| 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
| ngriffiths wrote:
| 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
| antononcube wrote:
| R and its ecosystem have some unbeatable features, but,
| generally speaking, the "old", base R is too arcane to be
| widely useful. Also, being "made by statisticians for
| statisticians" should be a big warning sign.
| _Wintermute wrote:
| In my opinion R should thought of as an unbeatable graphical
| calculator, but an awful programming language.
| williamcotton wrote:
| The tinyverse collection of packages makes things a lot more
| sane, IMO: penguins <-
| read_csv("penguins.csv") |> na.omit() |>
| select(species, island, bill_length_mm, body_mass_g) |>
| group_by(species, island) |> summarize(
| mean_bill_length = mean(bill_length_mm), mean_mass
| = mean(body_mass_g), n = n() ) |>
| arrange(species, desc(mean_bill_length))
| penguins |> ggplot(aes(x = species, y =
| mean_bill_length, fill = island)) + geom_col(position
| = "dodge") + labs( title = "Mean Bill
| Length by Species and Island", y = "Mean Bill
| Length (mm)" ) + theme_minimal()
| currymj wrote:
| i would compare base R to basically a shell. meant to be used
| interactively. okay for small scripts. you can write big
| programs but it will get weird.
| alpinesol wrote:
| Fun fact: Lush was invented by Yann LeCun, of convnet and FAIR
| fame.
___________________________________________________________________
(page generated 2024-11-20 23:01 UTC)