[HN Gopher] My favorite Erlang Program (2013)
       ___________________________________________________________________
        
       My favorite Erlang Program (2013)
        
       Author : notamy
       Score  : 112 points
       Date   : 2022-06-06 12:01 UTC (1 days ago)
        
 (HTM) web link (joearms.github.io)
 (TXT) w3m dump (joearms.github.io)
        
       | jimbokun wrote:
       | When the 10x developer topic comes up, I think about people like
       | Joe Armstrong or Peter Norvig.
       | 
       | They come up to solutions to problems that very few others would
       | even think of. How many times more productive does a solution
       | like this make Armstrong, compared to the median developer?
        
         | eismcc wrote:
         | There seems to be a tipping point where above the line a
         | developer starts removing work and below the line work is
         | created
        
       | sph wrote:
       | It speaks volumes of any kind of technology when you can express
       | novel ideas on top of very simple concepts. Sure, you could do
       | that in any other language, but the fact that it's 5 lines of
       | code eloquently shows what Erlang is optimised _for_. It's the
       | perfect level of abstraction for client/server logic.
       | 
       | Not sure where I'm going with this, I just think there is some
       | kind of mathematical beauty when you can express complex ideas
       | with as few symbols as possible. Writing a Universal Server in
       | Java would be like writing a differential equation using only the
       | four basic mathematical operation. Is that really ideal?
        
         | account-5 wrote:
         | APL should suit you down to the ground.
        
           | sph wrote:
           | Learning array programming is something I'd like to do one
           | day. Is there anything more approachable than APL and k?
        
             | shaunxcode wrote:
             | My favorite APL book is "APL with a mathematical accent".
        
         | atulatul wrote:
         | Following couple of short videos should interest you. How
         | simple primitives can be used to build mechanisms. These are
         | part of Erlang MOOC.
         | 
         | 1. Joe talks about 'Turning Sequential Code Into Concurrent
         | Code'
         | https://www.youtube.com/watch?v=brklJ6yTH50&list=PLlML6SMLMR...
         | 
         | 2. Next, 'Abstracting Patterns of Concurrency':
         | https://www.youtube.com/watch?v=cvtrxeh8ZA8&list=PLlML6SMLMR...
        
           | sph wrote:
           | I hadn't seen those videos before, thanks.
           | 
           | Let me add one to the list: "The Soul of Erlang and Elixir *
           | Sasa Juric" -- https://www.youtube.com/watch?v=JvBT4XBdoUE
           | 
           | I'm positive this video can turn any software engineer into a
           | BEAM/OTP convert. It's one of my favourite demos.
        
             | el_oni wrote:
             | I love this demo, it what got me to pick up Sasa's book.
             | 
             | I was attending a show and tell following seeing this where
             | an engineer was trying to isolate failure of certain
             | functions from the rest of the system and i sent this to
             | them.
             | 
             | No idea if they watched it but i became an OTP evangelist
             | in that moment
        
       | ubq323 wrote:
       | why does this page need javascript to render anything? it's a
       | static page...
        
         | clone1018 wrote:
         | Looks like the website is actually a thin layer of JavaScript
         | that converts the blog post from markdown, injects it as HTML,
         | and then renders the comments below it. Without JS the site is
         | just a hidden textarea.
        
           | capableweb wrote:
           | I'm not sure it's markdown specifically, seems to be a
           | homegrown markup language, made by Joe himself. Here is the
           | "renderer" part of the website:
           | https://joearms.github.io/src/expander.js
           | 
           | > expander.js - a markup parser
           | 
           | > Hopefully the last JS I every write
           | 
           | > Very few regular expressions were used in the construction
           | of this program
           | 
           | > No libraries were were used in the construction of this
           | program
           | 
           | > All faults are mine and mine alone
           | 
           | > Appears to work :-)
           | 
           | Points to https://github.com/joearms/bookmaker which doesn't
           | seem to exist anymore.
        
         | Zababa wrote:
         | https://joearms.github.io/index.html#Index
        
         | ts0000 wrote:
         | Comment section.
        
       | napsterbr wrote:
       | We miss you, Joe!
        
       | Zhyl wrote:
       | >"What example program would best exemplify Erlang"
       | 
       | This should be more of a thing. When I see example code, I often
       | see "Hello World", or tutorials which go through the primitives
       | and other syntax.
       | 
       | What I want is a short program that shows the language doing
       | something that it does well. Kotlin doing the job of lots of
       | Java, JQ transforming JSON easier than trying to regex it, k
       | doing insane things in 20 characters.
        
         | lloeki wrote:
         | Tangentially related, since I had the (mis)fortune of having to
         | write production code in 20+ languages over the years - not
         | necessarily deep but not one-line-change-hackjob surface level
         | either, more of the kind that requires to get to grips with
         | fundamentals of the language at good enough level for code to
         | be known reliable - I contemplated writing a series of articles
         | about what made a given language feel like what it is at its
         | core, how some syntax features, first-class items, data
         | structures or object model, hierarchy design, conspire to make
         | Ruby Rubyesque, Python pythonic, LISP lispy... reaching not to
         | style, not to function, but to essence.
         | 
         | The end goal was not just theoretical but pragmatic, as giving
         | in to the language and adapting my thought process seemed in my
         | experience to increase productivity, reliability, and
         | maintainability by several orders of magnitude, in connection
         | with non-programming languages and linguistic relativity.
        
           | Zhyl wrote:
           | I would be interested in reading those if you wrote them!
        
       ___________________________________________________________________
       (page generated 2022-06-07 23:02 UTC)