[HN Gopher] Programming is boring art
       ___________________________________________________________________
        
       Programming is boring art
        
       Author : tomkwong
       Score  : 59 points
       Date   : 2020-05-30 17:32 UTC (5 hours ago)
        
 (HTM) web link (ahsmart.com)
 (TXT) w3m dump (ahsmart.com)
        
       | zabzonk wrote:
       | IMHO, alert() should be called at a higher level by something
       | that calls check().
        
       | trmsw wrote:
       | Upvoting this just for the title ... and was disappointed by the
       | article. Rats.
        
         | tomkwong wrote:
         | Appreciate the upvote anyways LOL
        
           | trmsw wrote:
           | You're welcome. It's an attention economy these days
        
       | Tade0 wrote:
       | This brought me back to the time my SO tried to explain an 84
       | year old lady she was assisting what is it that I do for a
       | living.
       | 
       | The consensus was that I'm a writer.
       | 
       | Also there's one thing I ask everyone seeking to get into
       | programming: "are you resistant to boredom?"
       | 
       | This appears to be a good predictor of future success.
        
         | ironmagma wrote:
         | Hmm, interesting. I can't tell, though, if that question means,
         | "do you not bore easily?" or "do you avoid boredom at all
         | costs?"
        
         | WalterBright wrote:
         | I find football/baseball games to be incredibly boring. I posit
         | that successful ball players must be highly resistant to
         | boredom.
        
       | gorpovitch wrote:
       | When I hear people talking about programming as an art, I usually
       | assume that the decisions they make about their code tend to be
       | about how elegant and beautiful it is, not efficient and
       | valuable. It's fun and satisfying to write elegant code, but your
       | company hired you to produce value, not art.
        
         | saagarjha wrote:
         | Elegant and beautiful things are often also efficient and
         | valuable.
        
           | tomkwong wrote:
           | Right, there is also difference between short-term value and
           | long-term value.
        
       | golemiprague wrote:
       | I wouldn't say it is an art, more like a craft in the good cases
       | and plain technical at worst
        
       | phkahler wrote:
       | One of the most beautiful pieces of code I've ever read is this:
       | 
       | https://github.com/solvespace/solvespace/blob/master/src/srf...
       | 
       | If you have a basic understanding of spline and NURBS surfaces
       | but never knew how you might actually implement that, well there
       | it is. Incredibly readable IMHO.
        
         | kgraves wrote:
         | sorry, but I see no beauty in this.
        
           | phkahler wrote:
           | You have to read it to see the straight forward simplicity in
           | it. Like I said, it also helps to have a high level
           | understanding of the subject matter. The culmination at the
           | end - finding the intersection point of 3 parametric surfaces
           | - is artful IMHO.
        
             | mathgladiator wrote:
             | I'm right there with you.
        
         | paulcole wrote:
         | I see a lot of beauty in this.
        
       | alexashka wrote:
       | Life itself is boring art. Everything else is just an extension
       | of that.
        
         | 7373737373 wrote:
         | Depends on your Serotonin level
        
         | loltyler1 wrote:
         | Have an upvote fellow depressed
        
       | spicyramen wrote:
       | In college a teacher asked us if programming was an art. There is
       | the element of creation, copying and some may say beauty. The
       | artist or programmer in this case use their knowledge, creativity
       | and experience to create something new intangible and subjective
       | appreciation but results can be life changing or solve a really
       | complex problem. In terms of boredom this is subjective sometimes
       | I find it really fun try to solve a problem or fix a bug
        
       | MaxBarraclough wrote:
       | > There is nothing wrong with this function. Really. It does
       | exactly what it should do with the least amount of code. In fact,
       | this is probably what I want to deploy in production as well.
       | But, it is inflexible.
       | 
       | No, it's not, it does one well-defined thing, and does it well!
       | 
       | > A skillful programmer looks at the problem and says, hey, why
       | don't we build an abstraction layer to make it more flexible?
       | 
       | In this example, the additional complexity just doesn't seem
       | justified. You ain't gonna need it. [0] Unnecessary abstractions
       | cause bugs, bloat, and baggage. The article then goes on to
       | acknowledge this, but I really question the chosen example.
       | 
       | > Just having these few abstractions opens up a lot of
       | possibilities. Why? Let's suppose that you have 3 different kinds
       | of fetchers and 3 kinds of notifiers. Now, you can easily compose
       | 3 x 3 = 9 different kinds of health checks.
       | 
       | You've just introduced an exponential explosion into your testing
       | burden. The pay-off: additional functionality that _might_ be
       | useful later.
       | 
       | > Enjoy your programming life. It's a fun art!
       | 
       | The article doesn't go into detail on what it means here, but the
       | more serious the software work, the less the artistic mindset
       | applies. [1]
       | 
       | I think the most sensible approach to software engineering is to
       | draw satisfaction from solving a challenging problem well. Things
       | like 'programmer freedom' strike me as false idols.
       | 
       | That said, I'm a sucker for elegance (a famously subjective
       | commodity), so maybe I'm a hypocrite.
       | 
       | [0] https://en.wikipedia.org/wiki/You_aren%27t_gonna_need_it
       | 
       | [1] https://www.fastcompany.com/28121/they-write-right-stuff
        
       | cutler wrote:
       | Good Clojure and Ruby code, in that order, is the closest to art.
       | Structure and Interpretation of Computer Programs (SICP) also
       | deals with abstraction so elegantly you could consider it art.
        
       | gherkinnn wrote:
       | > _How boring is it to produce something of the same shape over
       | and over again._
       | 
       | Same applies to any text written. Yet, few people would argue
       | there aren't any artists among novelists, screenwriters, and
       | poets.
        
         | crawfordcomeaux wrote:
         | It's as boring as one's ability to be mindful, non-
         | judgmental/accepting of the moment, and ability to be grateful
         | for whatever's happening right now.
         | 
         | These are all skills I'm pretty sure not mentioned in most
         | programming books/blogs, much less schools.
         | 
         | Boredom comes from within. Pointing at a thing and saying
         | "that's boring" is a conflation of what's really going on: "I
         | haven't learned to enjoy myself in this context yet and am
         | blaming the context for it."
        
         | narrationbox wrote:
         | Does copywriting count as art? Or is it merely the equivalent
         | of CRUD-style boilerplate?
        
           | gherkinnn wrote:
           | Depends on your definition of art. Good copywriting must be a
           | very skilful trade. Not sure about the whole "must serve no
           | purpose other than itself" aspect.
        
         | tomkwong wrote:
         | OP here. What you said is very true. Visual impression isn't
         | the only dimension. Nowadays, it seems that most people
         | (especially the younger generation) just want to watch a video
         | than reading a book. There is bounded to be something missing
         | with a different medium.
        
       | 7373737373 wrote:
       | https://en.wikipedia.org/wiki/Asemic_writing
       | 
       | https://en.wikipedia.org/wiki/Artist%27s_book
        
         | tomkwong wrote:
         | Interesting. Thanks for the share.
         | 
         | I wonder if programming fonts could achieve that - like the
         | original author could specify a font for a portion of the code
         | eg. a "destroy_context" or "drop_connection" function could
         | have a scary look.
        
           | 7373737373 wrote:
           | Yeah! Or syntax highlighting that confers some emotional
           | valence to runtime behavior (allocating resources - say,
           | calling a constructor for instantiating objects - having a
           | different color)
        
         | tomkwong wrote:
         | Another way to express semantics is the use of Unicode in
         | source code. For example, I have this Julia package that
         | performs Box-Cox transformation, and I was able to use bold
         | face for vector data and greek letters for the parameters as
         | found in research paper and literatures.
         | 
         | https://github.com/tk3369/BoxCoxTrans.jl/blob/master/src/Box...
        
           | klysm wrote:
           | I've been conflicted about using verbose names or symbols for
           | mathematical expressions in code, and I don't think there's
           | an easy answer for when to use them. For simple arithmetic
           | expressions, it seems like verbose names are superior because
           | it's easier to derive their meaning and we already understand
           | the operators at play. When translating complex expressions,
           | however, we usually a priori understand the meaning of the
           | expression with our algebraic mental model and it makes sense
           | to use that nomenclature. At the same time though, someone
           | who is unfamiliar with the particular source of the algebra
           | used would find such code quite opaque. For something like
           | the Box-Cox transform I think it makes sense to use the
           | symbols widely employed by the mathematical nomenclature.
           | 
           | This certainly also depends on the language you are using and
           | the ability to define arbitrary in/postfix operations.
           | 
           | It's also rather annoying to type them, but that's also
           | probably because I just haven't developed a workflow for it.
        
       ___________________________________________________________________
       (page generated 2020-05-30 23:00 UTC)