4 ms·
> The commonly held belief that programming is inherently hard lacks sufficient evidence When was "The Mythical Man Month" published, again? Programming is ha
by himinlomax 5y ago
> The commonly held belief that programming is inherently hard lacks sufficient evidence
When was "The Mythical Man Month" published, again?
Programming is harder than most people, including programmers, realize. Unless, of course, you're talking trivial programs and don't care about defects.
Or put another way, programming is just as easy as bridge building. Just throw a plank over a stream. Don't mention Tacoma Narrows or other disasters.
But joke aside, trivial programming is harder than trivial bridge building. Anyone can move a plank. Many people have trouble understanding basic concepts such as mutability. I remember reading a paper by someone who tried to teach programming to unemployed adults, surprisingly many were stumped by something as simple as:
a = 1
a = 2
print(a)
And that was after a few weeks of training. (Sorry, couldn't find the paper)
- Jtsummers 5y agoThere's programming and programming at scale. The latter is hard. The former doesn't need to be. Plenty of 8 year olds like me learned it on our own from magazines and math textbooks and manuals in the 80s and 90s with computers that got out of the way and let us use their BASIC interpreters or whatever was available. A major reason programming at scale, a lot of what Mythical Man Month is about, is hard is the complexity of the system being created (it's too much for one person to keep in their head) and the inherent collaboration problem that follows from that.
- himinlomax 5y agoProgram complexity does not grow linearly. In fact, it theoretically grows faster than exponential; just consider the halting problem. Of course we use tricks and abstractions to reduce complexity and get stuff done.
- Jtsummers 5y agoDid I say it grows linearly? What’s your point here?
- lmilcin 5y agoLet's look at who the author is: X is an assistant professor in the School of Computer Science, University College Dublin, Dublin, Ireland. Oh, that explains it. Programming may not be hard until you have to: - work on a sufficiently large project, - with actual clients, - with actual deadlines, - with a lot of people that have low level of knowledge and/or little incentive to do their job well (basically, they just want a check), - with management that tries to optimize you as much as possible (ie get the project done with as little cost as possible), - with management that does not care if your programming is correct, but cares only to hit their financial KPIs. So if you want to compare it to construction, imagine that construction companies are not penalized for buildings toppling and people dying but only for the lost revenue from (now) missing tenants. Then the construction company management tells you to build as fast and cheap as possible to crank as many buildings and be faster than competition, because that's what is going to bring in new clients to replace the ones that have died in toppling buildings.
- himinlomax 5y agoYou need to learn more about construction. Bridges are built for decades, hopefully centuries. What happens to rebars encased in concrete over that timespan is not obvious to anyone, otherwise inspectors would not have to purchase expensive equipment and condos in Florida would not be collapsing.
- lmilcin 5y agoThere are hundreds of thousands buildings like that. The threat of potential consequences causes construction companies to mostly do a good job, so that out of those hundreds of thousands of buildings we rarely see any toppling with people in it. On the other hands developers are disincentivized to ship perfect working code. It happens every time they are told "Just fucking ship it!" and when they colleagues are rewarded for delivering imperfect code on time.
- wilsonfiifi 5y agoI myself think programming is more like tailoring. Art, science and skill all in one. And allowance for adjustments to get the perfect product.
- deleted 5y ago[deleted]
- kiba 5y agoI think the concept of mutability conflicts with what was taught in mathematics. In particular, the equal sign in programming is not the equal sign in math. We used == for that.