Live data from Hacker News

Why Programming is Difficult (2014)

joearms.github.io

11–20 of 117 posts

Re: Why Programming is Difficult (2014)

#11
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.

I think Backend-as-a-Service providers are a good step towards a place we want to be, although I still think we're not super close to using such services to deploy complex business logic on.

Services like parse cloud code and AWS lambda are another step closer.

Context: We (me + couple of collaborators) are writing a similar platform for ourselves, although the purpose is dogfood more than $.

Re: Why Programming is Difficult (2014)

#12
>code that produced it should be cleaned up and documented before the next project was started.

A major why waiting to the end to test document and clean up code is a failure.

Write beautiful, tested code from the start. Even throwaway code, because half time prototypes, etc end up production.

Re: Why Programming is Difficult (2014)

#13

>code that produced it should be cleaned up and documented before the next project was started. A major why waiting to the end to test document and clean up code is a failure. Write beautiful, tested code from the start. Even throwaway code, because half time prototypes, etc end up production.

See the middle part "there is not enough time to do it right first time"

Re: Why Programming is Difficult (2014)

#14

>code that produced it should be cleaned up and documented before the next project was started. A major why waiting to the end to test document and clean up code is a failure. Write beautiful, tested code from the start. Even throwaway code, because half time prototypes, etc end up production.

You're assuming programmers get the time they need to set up the test environment. Try out a few different libraries to make things easier for testing. Manage quirks and bugs within the tests themselves or test runners and etc. From my PoV that's rarely something we get to allocate time for. The sales people sell "continuous integration" and "tests". But it doesn't mean that we're allowed to allocate time for that.

Re: Why Programming is Difficult (2014)

#15
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.

We have not seen any theoretical breakthroughs in over 20 years anyway. Unlikely programming is going to change fundamentally.

But there is a lot of game changing practical advances which totally overturned the way we design systems.

Microcontrollers are powerful and dirt cheap now. Low end FPGAs are more accessible than ever. GPGPU is a dramatic game changer, and it is dead easy to use it these days. RAM is nearly infinite. SSDs are cheap and fast. 1gbps networks are everywhere. CPUs have dozens of cores. So, yes, on a practical side everything changed.

Re: Why Programming is Difficult (2014)

#16

>code that produced it should be cleaned up and documented before the next project was started. A major why waiting to the end to test document and clean up code is a failure. Write beautiful, tested code from the start. Even throwaway code, because half time prototypes, etc end up production.

See the middle part "there is not enough time to do it right first time"

And even if there happens to be, check back in six months and see what's happened. Did your beautiful design smoothly accommodate the fix for the tricky issue #5388? Was there enough time then to update your clear documentation, or does the documentation now clearly explain something false? Did the new coworker who implemented that new feature understand the point of your design such that she was able to extend it properly while you were busy for three weeks chasing a deadlock? And so on. Beauty always fades!

Re: Why Programming is Difficult (2014)

#17
post #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 i…

Do you think that sort of a problem (incremental changes eroding an initially sound structure) could be fixed with better refactoring tools? It seems like the issue you're describing is that logic is leaking from some parts of the codebase to others, which might be fixable with sufficiently powerful refactorings.

Re: Why Programming is Difficult (2014)

#19
I don't think programming - in the sense of what 99% of programmers do - is as difficult as programmers love to blog about. Most professional programmers write stuff that is not all that hard, and most of it has been done by others countless number of times. All the "hard" cutting edge stuff is done by a tiny tiny fraction of programmers. Heck even the things people think are cutting edge now, just taking a random example - VR, have been explored decades ago. Seriously, go read some SigGraph papers.

However, programmers more than other professionals love blogging about their work, which is great - because it helps spread ideas (more so than any other field I've seen), but also creates this illusion that programming is this super hard thing. I mean people complain about going to interviews and being asked about algorithms and stuff that you could "just google" when, if you were to ask an average scientist, the amount of active working knowledge they have at any given time is simply astounding.

Re: Why Programming is Difficult (2014)

#20
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

Too many guys like this are what makes software dev hard. Too many yahoos who think its just about code. Code is only an implementation detail of how most dev is done today. Even today, code isn't about the code. It's about explaining your program, your process, wtf you where thing when designed this thing to the next guy/gal.

Sadly, what too much code tells us is "Design? That's what gui people do, right? I just kept typing stuff until it worked enough for non-technical person to think it was OK or we ran out of money/time."

Post reply on HN