Live data from Hacker News

Why Programming is Difficult (2014)

joearms.github.io

1–10 of 117 posts

Re: Why Programming is Difficult (2014)

#2
In my experience, the overwhelmingly most difficult thing about programming is writing code that makes sense, even after it has gone through a couple rounds of requirements changes and bug fixes.

Any concrete coding task can be dealt with straightforwardly enough, but projects as a whole tend to deteriorate by arbitrary fixes, maintenance patches, and failure to uphold a conceptual schema.

The idea of composability is a good approximation to what it means for a program to make sense. If any part of the program can be understood as a sensible composition of parts, then the program probably makes sense.

But so many parts of real world code bases seem to end up incoherent. You look at a function and instead of seeing code that obviously, say, maps the render function over the list of widgets, you see three obscure conditionals, an apologetic comment, a bug tracker issue number, two boolean parameters named "force" and "dontRenderLast" (for some reason), and so on.

This is why I think the ideas from "domain-driven design" are so important, including the notion of a ubiquitous domain vocabulary. Also the FP idea of denotational semantics. And that well-known benefit of unit test driven design.

There's not enough recognition and clear understanding of this problem, in my opinion. We all know the problem, but somehow we don't talk about it enough, and don't acknowledge it as an enormous problem for development speed, programmer happiness, agility, and so on.

Re: Why Programming is Difficult (2014)

#3
I think the author nailed it on the head with the Workplace parts about why programming is difficult. The physical/socio-political environment that someone is in compounds the normal issues in the programming process and I've seen it drive quite a few programmers to straight up quit when the mountain of issues became insurmountable. Without the freedom to tinker and explore a bit, as the author bemoans, I think that it's when programming becomes a chore and

At my last job, I think the only time that I had ever seen our programming team actually happy to work on a project was when by chance and via a minor mutiny, we were able to break them away from the minutia of constant maintenance and repair and let them actually just work on a project with no expected outcome. It was an alternative path for our identity management solution and the entire project was a challenge to the managers for the Enterprise team. Our programmers were down-right chipper at the prospect of just being able to flex their creativity and try something just to see if they could do it.

Re: Why Programming is Difficult (2014)

#5
The bigger question is, why are we still programming the way we did 20yrs ago? Higher level languages were a great improvement over machine language. But what comes next? Why don't we have it yet? A decade ago I was setting up database, writing queries, designing forms, writing the code to wire it all up. I still have to do all these steps with more amount of effort today.

Re: Why Programming is Difficult (2014)

#6
post #4

It is not difficult, trust me. I know C, C++ , Java and Phyton. It is all about logics and the only thing that differs is the syntax. Get in touch I might help you

Really? Just a syntax? No inherent complexities of the real world problems, no need to invent, evolve or imagine heuristics to cover the otherwise NP-complete problems? No painful semantic mismatch between the real world and available models? No issues with arbitrarily complex performance, latency and throughput constraints?

Re: Why Programming is Difficult (2014)

#7
post #4

It is not difficult, trust me. I know C, C++ , Java and Phyton. It is all about logics and the only thing that differs is the syntax. Get in touch I might help you

Ah, I see that you stopped reading the article after the first paragraph, before getting to the section on "additional constraints".

Re: Why Programming is Difficult (2014)

#8
The most important line from the author is "it takes time to be a good programmer". Those nights of debugging and reimplementing will decrease as you better understand how to develop code.

Also I find open concept offices terrible to work in. I'm not the type of person who can put on a pair of headphones, blast music and pump out code. I like solitude as I think though the problem and code. Unfortunately for me, the open concept is here to stay it seems.

Re: Why Programming is Difficult (2014)

#9
post #5

The bigger question is, why are we still programming the way we did 20yrs ago? Higher level languages were a great improvement over machine language. But what comes next? Why don't we have it yet? A decade ago I was setting up database, writing queries, designing forms, writing the code to wire it all up. I still have to do all these steps with more amount of effort today.

But, but, but... The cloud! Social! Containers! Synergy! ScrummBanFall! Seventeen JS dependency managers, and a new one every week! We have all that stuff now! /s

Re: Why Programming is Difficult (2014)

#10

The most important line from the author is "it takes time to be a good programmer". Those nights of debugging and reimplementing will decrease as you better understand how to develop code. Also I find open concept offices terrible to work in. I'm not the type of person who can put on a pair of headphones, blast music and pump out code. I like solitude as I think though the problem and code. Unfortunately for me, the…

I love that line as well. I just told a friend of mine that if I spend the next 10years writing 3 languages exclusively (one per domain of systems, web/mobile application and high concurrency distributed systems) I would hopefully probably be a "good programmer" as I envision it. That might be a tall statement, but that's just my interpretation of how it takes time to become a good programmer, YMMV.
Post reply on HN