Live data from Hacker News

The problem with programming and how to fix it

alarmingdevelopment.org

41–50 of 99 posts

Re: The problem with programming and how to fix it

#41
This is like trying to suggest we need more women in the NFL. Programming is an extreme sport where geeks excel - men and women, but mostly men - who else has the patience to deal with the minutia?

Maybe I'm just biased towards rhetoric that suggest we should remove extreme variations between populations of humans, as segmented by occupation (or whatever). Let's embrace our differences. If programming was easy to do at high levels of excellence by anyone, you wouldn't have programmers anymore - just an army of product people who can also code. Specialization is a good thing.

Re: The problem with programming and how to fix it

#42
post #11

Programming for beginners is just as accessible as it has ever been, there are good languages (some specifically for beginners: Logo, and game making languages and so on) and good courses. Where do I think programming has stalled is in the business environment. There, as the article correctly points out, it's much harder to automate your job unless you work in an IT department. Most business end-users do their work i…

>Where do I think programming has stalled is in the business environment. There, as the article correctly points out, it's much harder to automate your job unless you work in an IT department.

Depends on your business. Ecommerce can be automated without needing to code. Many use a central product repository (e.g. Amazon), and build their web frontend (CMSs, shop engines, landing page & app builders) around that, interfacing with it through easy installable plugins and other automation tools. They're already "coding", without code, but "business components".

To have successful funnels, they also need to know UX basics that they can reproduce with those tools, or pick tools with those basics already baked in. They're basically full stack developers who don't code.

The downside to that approach is that you're totally dependent on all those other businesses. But many who start out this way, employ devs as they grow, or start with programming themselves, and transition to their own infrastructure.

Re: The problem with programming and how to fix it

#43
post #8

> Programming today is exactly what you’d expect to get by paying an isolated subculture of nerdy young men to entertain themselves for fifty years. You get a cross between Dungeons & Dragons and Rubik’s Cube, elaborated a thousand-fold. This is vague and insulting. Many of us programmers spend a lot of energy to keep systems simple, to a point that one could mistakenly conclude that they were easy to write. We don't…

I've streamlined all my processes to the point that I can build a reasonably scalable system (including user management, app, ACLs, file management, custom queries, REST API points, websocket integration) in a couple of hours.

It's boring for a developer. I don't understand many of the problems described here (e.g. people complain about the complexity of server management, complexity of web frameworks and web in general). Actually it has become more simple than ever to create an app, a backend and scale the system.

With more servers (I use systems that can be scaled horizontally) thrown at it, good caching and some load balancing, it will work for 99% of businesses. Here [1] is a good description of a service that uses this thinking.

I believe there are many who celebrate complexity. Otherwise I can't understand most codebases - I've seen terrible codebases with big LoC's where I was able to reimplement the whole feature set in a couple of days. I believe many programmers don't want to see that their jobs become increasingly easy to do and the boilerplate can be reduced by 90%.

> We don't dream of having to maintain complex machineries reminding us of Rubik's cubes.

Many people do because their jobs depend on it. If businesses would adopt those fast, clean and scalable engineering techniques, 70% of the work force is no longer needed. It's basically the principal-agent problem [2] in action.

[1]: https://medium.com/unboxd/how-i-built-an-app-with-500-000-us...

[2]: https://en.wikipedia.org/wiki/Principal%E2%80%93agent_proble...

edit: in terms of "No Silver Bullet" - I think if we decrease accidental complexity (using good techniques and automated and tested systems) to a record low, we won't need as many people to manage the essential complexity.

In my experience the problem of complexity is another one: big enterprise makes a lot of money using their terrible code. They will keep throwing money at it to avoid major rewrites. Programmers will complain about unnecessary complexity, but complexity is not what's important for the bottom line most of time. The system just works and prints money, so there's no need to correct (until it explodes in complexity, but a major rewrite is also a risky decision for managers and can result in huge investment losses).

Re: The problem with programming and how to fix it

#44

I disagree. The world we have today couldn't be built on simple tools like Spreadsheets and Visual Basic. The amount of complexity in programming is necessary, and the outcome has been tremendous and miraculous if you think about it. And we don't want to build a future where the masses should be programming! You want my mother to be programming? My sister? Why? I work as a software engineer and most of the time progr…

> And we don't want to build a future where the masses should be programming! You want my mother to be programming? My sister? Why? I work as a software engineer and most of the time programming is the last thing I want to do when I get home!

I think you may be part of the problem. Why gatekeep your loved ones if it's something they want to do? That implies crass arrogance at best, cruelty at worst.

Re: The problem with programming and how to fix it

#45
post #20

Simplifying software is a fantastic goal, but blaming the situation on an "isolated subculture of nerdy young men" is the opposite of helpful. Also, I would seriously consider the fact that some things are simply complicated and there's no conspiracy behind it. A lot of very smart people work very hard to find ways of taming this beast. It's just hard.

I’m interested as to whether there really is complexity that can’t be simplified in general. Here’s an obvious example where it could be: web apps are mostly conceptually simple: a thin client which is basically a UI framework talks to a process on a remote server. So you need something to develop the UI and something for the server. But instead of the “web UI toolkit” (which could mostly be a graphical tool) we have…

Web apps are mostly conceptually simple: a thin client which is basically a UI framework talks to a process on a remote server. So you need something to develop the UI and something for the server. But instead of the “web UI toolkit” (which could mostly be a graphical tool) we have JavaScript, CSS, HTML, jquery, a gazillion hacked front end frameworks trying to (imperfectly) fix the mistakes of everything below it, a whole system for preprocessing, packaging, running tasks, deploying - just for a UI.

Exactly. So what do we have coming next? WebAssembly.

Re: The problem with programming and how to fix it

#46

I disagree. The world we have today couldn't be built on simple tools like Spreadsheets and Visual Basic. The amount of complexity in programming is necessary, and the outcome has been tremendous and miraculous if you think about it. And we don't want to build a future where the masses should be programming! You want my mother to be programming? My sister? Why? I work as a software engineer and most of the time progr…

In my utopian world, I would like to edit the source code of my microwave so that it stops its annoying bips as soon as I open its door. I would love to remove the stupid nag screen that appears each time I start my nissan leaf.

I am not an electrician, but I can fix basic electric issues. Sometimes, I can fix broken furniture. I am a programmer and I can fix almost nothing.

When we can program, we are in control. I want to be in control of the objects I own, or at least to know that it is possible if I really want it. When I see all what already possible in the 90s with so simple computers, I do not think that the complexity is necessary.

Re: The problem with programming and how to fix it

#47

I believe that software is not a professional practise but a new form of literacy (in fact the book I am writing is all about this (Real Soon Now, thanks for asking)) And when you see software as literacy a lot of the stuff he moans about simply goes away. Yes it is seen as exclusive and a priesthood - imagine what illiterate serfs thought of those who could write. It took years of practise. No it's not a good idea t…

Following your metaphor, we're at a point equivalent to people needing to call a scribe to write their tweets and Facebook posts for them.

In programming, there's no tool that allow non-priests to automate repetitive tasks over data sets (though there are some simple trigger-based programmable actions, like Automator or ITTT).

The closest thing allowing end-users to handle repetitive data manipulation is the Spreadsheet, but it requires manual input-output of data, and it isn't easily integrated with actions in the operating system or other applications.

Re: The problem with programming and how to fix it

#48
post #8

> Programming today is exactly what you’d expect to get by paying an isolated subculture of nerdy young men to entertain themselves for fifty years. You get a cross between Dungeons & Dragons and Rubik’s Cube, elaborated a thousand-fold. This is vague and insulting. Many of us programmers spend a lot of energy to keep systems simple, to a point that one could mistakenly conclude that they were easy to write. We don't…

This is vague and insulting. Good. It should be. Get mad about that. Get so mad that you devote time and effort to fixing it. Programming compared to other disciplines is what might arise from a Lord of the Flies situation. Like the end of that novel, we should stop, fall at the feet of a comparison of programming to other disciplinnes, and weep tears of shame.

The easiest fix is to debunk the article. Which reflects the author not spending enough time writing kidding critical software and too much with cool startup kids.

There is no technical solution to a social problem caused by hiring cheap young and naive programmers.

Re: The problem with programming and how to fix it

#49
post #8

> Programming today is exactly what you’d expect to get by paying an isolated subculture of nerdy young men to entertain themselves for fifty years. You get a cross between Dungeons & Dragons and Rubik’s Cube, elaborated a thousand-fold. This is vague and insulting. Many of us programmers spend a lot of energy to keep systems simple, to a point that one could mistakenly conclude that they were easy to write. We don't…

I too, don't understand why people think anyone could be a programmer if it wasn't for the existing programmers. What is considered a good grade in school? I think most parents would be happy with their children coming home with 90% grades. That's 1 error in 10 attempts. That is a pretty abysmal fault rate in an actual computer program. Even most experienced programmers fail to consider everything that can go wrong w…

You do this by involving mathematical proofs at every stage. That is expensive, but sometimes done.

Strict functional languages are a step in the right direction. As are verifiers as done in Rust.

Re: The problem with programming and how to fix it

#50
post #8

> Programming today is exactly what you’d expect to get by paying an isolated subculture of nerdy young men to entertain themselves for fifty years. You get a cross between Dungeons & Dragons and Rubik’s Cube, elaborated a thousand-fold. This is vague and insulting. Many of us programmers spend a lot of energy to keep systems simple, to a point that one could mistakenly conclude that they were easy to write. We don't…

This is vague and insulting. Good. It should be. Get mad about that. Get so mad that you devote time and effort to fixing it. Programming compared to other disciplines is what might arise from a Lord of the Flies situation. Like the end of that novel, we should stop, fall at the feet of a comparison of programming to other disciplinnes, and weep tears of shame.

> Get so mad that you devote time and effort to fixing it.

Interestingly, I feel that insulting people is one of the worst possible ways to get them to change their behaviour.

Post reply on HN