[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)