Live data from Hacker News

Why does programming suck?

medium.com

31–40 of 90 posts

Re: Why does programming suck?

#31
post #18

It's worth mentioning that Chris Granger wrote an excellent blog post[0] that's similar to this one, but far more succinct. While I don't use Light Table, I'm still a huge fan regardless. > What would programming be to you in an ideal world? More visual, especially when observing execution. When you're debugging anything non-synchronous—be it events, messaging, distributed systems—it usually sucks, even in the rare c…

A talk by Chris Granger in Dec 2015 trying to answer "What does programming look like in 10 years?" was interesting.

" rel="nofollow">https://www.youtube.com/watch?v=VZQoAKJPbh8>

A recent iteration " rel="nofollow">https://youtu.be/VZQoAKJPbh8?t=46m56s> looks wiki-like.

Re: Why does programming suck?

#32

Taking the creativity out of an inherently creative process. Imagine you're a painter and then comes some moron (who is probably not a painter) yelling at you: - Why are you holding the brush that way? Also, I don't know that brand. - You should make thinner strokes, and always start coloring the surroundings so you don't go over by mistake. - Do not bother with the first brushes until you have a clear pencil sketch.…

In pure software engineering there is much less creativity needed than most people want to admit. While the UI/UX people gather requirements and work with the client to work out how the app should look and behave, sure, they can use their imagination. But once the requirements are set then in many cases a software engineer can sit down and build the software. There is no creativity needed to decide whether to use a v…

I know. I am so fucking angry no one told me this. I am a creative person I become very depressed without creative control. I had no idea programming was going to be this way and now I am stuck in a life of boring drudgery, wasting my life doing the thinking of some incompetent higher up the food chain. But there is no way out - I have to feed myself and my family. FML

Re: Why does programming suck?

#33
This article more than anything underscores my feeling that there are too many people in programming who should not be doing it in the first place. It's a skilled profession, but it's increasingly dominated by people who despise the craft aspect of it. This results in both, suckage and bloat on the one end, and unrealistic expectations on the other.

> Hiring developers is an extremely difficult task. Learning to program is ridiculously difficult as well.

If programming was a solved thing, that would mean problem solving itself was a solved thing. It has by nature to be difficult. The question is more whether we manage to avoid additional difficulty on top of that. He's talking about the cost of bugs, but I posit the cost of burdensome frameworks and artificial bureaucracies in software development processes is by far bigger and harder to come to terms with, both of which exist in part to manage this inherent difficulty (often achieving the opposite).

> Lots of rework happens because of miscommunications with the user. Other times, the user doesn’t fully understand their problem

This is not unique to software development by any means. Every organization that deals with end users has to negotiate this interface.

> anywhere from 50 to 90% of the cost of building software goes towards maintaining it after the first release

Whether that figure is real depends largely on the type of software you're writing. If this fits what you're doing, the assumption that at some point the program is supposed to be "done" and every bit of time spent evolving it further must be a sign of inefficiency is simply unproductive. That kind of program is more usefully viewed as an evolving organism, and the sooner management recognizes the nature of this the better it will be handled by the organization.

> Our tools don’t make a good separation of essential and accidental complexity[2]––we are forced to crystalize the essential parts of our programs in a programming language and make them coexist with irrelevant, usually platform-specific code (accidental complexity).

This too depends on the nature of your chosen ecosystem. On the whole, interop has steadily improved throughout the history of computing. We have meaningful universal data formats now, and many options for moving code between platforms. Where interop troubles exist, they mostly exist on purpose (like the iOS example you made). You can absolutely solve most of this problem by throwing computing power at it and choosing an interpreted or cross-compiled environment if you want to avoid writing glue code.

Re: Why does programming suck?

#34
post #16

Here's the thing: everything sucks. Every industry, profession, even hobby is full of seemingly arbitrary limitations, poor tooling, quirky hacks you have to work around, little bits of required know-how that seem ancillary to the central goals. Ask your friends in other engineering disciplines, politics and public policy of all kinds, finance, medicine, and energy. Everything sucks because the world is complicated a…

> leads to fool's errands like this: >> It’s time to kill the aimless, bottom-up, ad-hoc incrementalism in programming in favor of purposeful, top-bottom and planned innovation. Agree. Let the author put his money where his mouth is first, then we can discuss where he's right. He wants programming to be "easier." Well everybody wants everything easier. It's easy to have just one thing easy scarifying other dependenci…

Loved the Louis C.K video! Are any of his shows based somewhat around this topic or is it only on this talk show that he talks about this?

Re: Why does programming suck?

#35
post #21

One of the premises of this article - that "competing standards" exist primarily because of political reasons or shallow decision making - demonstrates a fundamental misunderstanding of software engineering. Sure, some engineers (especially junior ones) enjoy reinventing the wheel more than using something that already exists to solve users' problems. We all like to trick ourselves into thinking we're unique snowflak…

You hit the nail right on its head :)

Re: Why does programming suck?

#36
post #28

No one is going to listen to this - but what the hell: The solution is totally obvious. The code we write has a form defined by it's input->output mapping over all possible inputs. Write a function and you immediately define this input output mapping. All you have to do at this point is search through all previously written functions to find the one that most resembles the one you are trying to write. Trying to write…

Good idea but I expect that the hard part is getting the UI right, because instead of just writing the function you need, you need to:

1. specify with enough precision your requirements 2. search through all code for matches 3. vet those matches 4. incorporate it into your code-base

and in the end you don't want a bunch of spaghetti - you want a consistent and digestible architecture.

But I do think this type of coding will become mainstream within a few years. As you say, it's obvious.

Re: Why does programming suck?

#37
I see this kind of article posted regularly, and it has been for at least the past decade (if not longer.)

Worse, it's often accompanied with 'but profession X is so much better and they are all certified and do things properly unlike us awful cowboys!'. In the worst case you get the whole 'in the future everyone will program and programmers will become totally redundant'.

I have a feeling the developers writing these posts don't have a huge amount of experience, and have a natural tendency to want to turn the table up side down and start afresh to get rid of all this cruft. I understand it, but it's frustrating

But what they perceive to be the cruft isn't just cruft. In programming the possibility of starting afresh is there, and has been done several times - haskell, erlang, go, rust, clojure, etc. etc. etc. on the programming side. In the web world the front end is filled with the latest great solution that just pushes aside all this terrible accidental complexity, and this happens in other realms too, yet we still see these articles.

I think there are a number of things at play here:

1. Programming is hard and often in annoying, frustrating, and painful ways. Nothing you do can change that, and blaming it on tooling or legacy or whatever doesn't change the _intrinsic_ complexity at hand. People like to imagine it's hard in challenging and enjoyable ways, and sometimes it is, but more often it's just frustrating.

2. Abstractions won't save you. They help, but always involve trade offs of one kind or another. Something that is declarative enough hides imperative details which eventually leak in horrible ways unless you come to understand how they work, and something too imperative invites duplication, complexity and bugs. Having seen giant T/SQL stored procedures, Microsoft Access queries that take hours to run and excel sheets that are so complicated nobody can vet them, I have seen my fair share of collapsed abstractions which started wonderful.

3. Programmers are needed. A great example is excel - some people point to it as the philosopher's stone of the 'everyone is a programmer' world, but as soon as you start doing things it's not good at, or exceed a certain complexity, it explodes into horrible pieces and fails in all kinds of terrible ways. Then the programmers need to step in. It's not something special or conceited, personally I think only a certain % of the population are capable of thinking in a sufficiently logical way to understand what a computer needs, whether employed as 'programmers' or not, and these are the only people who can help beyond the simplest case. Nothing to do with intelligence, just a kind of thinking. The power of software + the rarity of this way of thinking combined with people actually using it is why programmers are expensive, it's not an anomaly imo.

4. Real world work is largely boring and/or painful. I think particularly here people miss this point, in fact PG wrote a great piece relating to this (http://paulgraham.com/schlep.html), but it's so important - even the most interesting problem involves a great deal of schlep to get things _nicely_. No matter how wonderful programming could possibly be made, there is no avoiding this. It's true not only of programming but any job. I think there's too much of a delusion sold by many that work can be nothing but a joy if only you pick the right one - no. It can _net_ be wonderful, but in that net are wins and losses. If you love programming, the kick of solving problems and seeing an application do something for somebody easily outweighs the pain of schlepping to that point.

5. Other professions aren't magically better. I did a civ eng degree at arguably the top civ eng school in the world, and worked in a practising office for a couple of years and believe me the insight I got from both the theory and practice of engineering made it incredibly clear that the kind of abominations and messes you see in programming are nothing compared to that. You think you lack freedom in programming (you don't btw), ha! At least in programming things can be fixed only conceptually and not risk lives :)

6. Programming is actually wonderful. Despite the schlep and pain, you can build things that are actually useful using only 'thoughtstuff'. Everything that is broken can be fixed, and a great idea and a decent community around it can be enough to change anything that really is broken out there. That is totally counter to most industries out there. Problem solving in such a pure fashion, even in the compromised and often boring ways commercial programming causes you to do it is still an amazing privilege.

7. The possibility for shifting your area of programming are huge. In how many other industries could you change your specialisation by doing hobby work on a project open to anyone? You'd usually either have to 'start again' or simply not have the opportunity to change what you work on.

I feel like I have a blog post in me about this that refines and expands on the points above, but these are my thoughts on this perennial and understandable pattern of articles.

As a final note, a sad aspect is that this kind of article (not necessarily in this case) seems to downplay programming skills as just knowledge of the mess we have, or suggest it is not a nice job to have, or whatever else, which can have real world consequences. I think we have a lot to improve in programming, but to suggest it's some terrible sucky mess is a mistake, and a fatal one if you think that in the cases where in fact there is something wrong, they can't be fixed.

I remember entering a long and painful depression after reading an article by a well known author (who will go unnamed) who talked about how programming utterly sucks but if you do a real job and use programming then it's amazingly useful, just avoid the former. I think that was not a well thought out point to make and reflected more on the author than reality, including the grass is greener imagining of how somebody in another job could use programming and how great that could really be.

These kind of discussions have real world impact, let's not leap to 'X sucks' before we really know that it does.

Re: Why does programming suck?

#38

I would say that everything the author describes as facts that have led us to this "mess" are actual testments to how fucking amazing human ingenuity is. Look at everything we built out of arbitrary conventions of boolean logic that has real impact and is shapping the modern world! >> The computer shifted the complexity of our solutions from the world of atoms to the world of ideas. And that's fucking awesome! Thanks…

How exactly does adding more to the mess fix the fact that it is, um, a mess?

Re: Why does programming suck?

#39
post #7

If you think writing code sucks then contemplate what it would be like to write legal contracts for a living.... [No ability to execute, no debugging, no compilation step, no unit tests....]

Dude that's an awesome idea. Semantic analysis of legal documentation to find and highlight contradictions, etc.

Whoever does this - how about sending a percent or 2 my way when you exit for billions :-D

Re: Why does programming suck?

#40
I think we just push our requirements until they hit boundaries where programming/tooling/whatever sucks.

These days it's trivial to create a CRUD web app that is even save against CSRF when you use a framework like Django.

But of course, nobody wants a simple CRUD web app anymore. It has to do business logic, it must have responsive design, usable on mobile, incrementally load pages, and be an enterprise integration framwork that checks with the credit card processor, the warehouse software etc.

It's just that we don't talk anymore about the things that have become trivial, because we don't spend much time on them.

So of course, in our perception, programming and tooling suck. And they always will. And that's OK, because if everything was breeze, we'd be bored.

Post reply on HN