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