

What makes programming so difficult - and can we make it easier?  - edw519
http://kawagner.blogspot.com/2008/05/whats-makes-programming-so-difficult.html

======
pmb
Because the tasks that we ask the computer to do increase as our ability to
handle more complex problems increases. I can ROCK almost any programming
assignment and task of 20+ years ago given today's languages and hardware. But
the problems are now bigger and more complex.

"Difficult" and "Easy" are moving targets.

------
bdr
Programming will always be hard, but only because we're moving faster and
faster. Your powerful, time-saving layer of abstraction becomes a library,
tool, or platform, and you feel good for a while, but eventually productivity
is measured against the new, higher baseline.

------
carterschonwald
Programming is just as hard in general as theorem proving. To understand why
thats hard, read up on undecidability, to learn why they're the same
intellectual act, read up on the curry howard isomorphism and the like
<http://en.wikipedia.org/wiki/Curry-Howard_correspondence>

~~~
bsaunder
I think programming may be a bit harder because (at the end of the day) it
becomes an engineering problem (one of efficient resource utilization). A
program certainly has to be correct, but it also must run effectively on
reasonably sized machines (less an issue these days for most problems), and
implemented in a reasonable amount of time. The latter one is the killer that
seems to never be accounted for in CS courses.

~~~
carterschonwald
this is certainly true when you're considering the finest of algorithmic fu,
(yay, that rhymes!) on the other hand, it worth mentioning that when you break
out a computerize theorem prover to verify properties of say, a 15 line
assembly bootloader, that winds up taking ~ 15k lines of code in the COQ
theorem prover <http://coq.inria.fr/> (granted a lot of it was in libraries
that were reusable)

as far as I can tell, proof engineering is the most technically challenging
form of software engineering

------
danielrhodes
Programming would be easier if the language were uniquely suited to solving
the problem (e.g. more built in solutions). In general, it is harder than it
seems it should be because to create a language that is actually useful to a
wide variety of applications, it needs to operate at a sufficiently low level
so that you have the greatest equilibrium between ease of writing and
function.

Can it be made easier? As a pmb said, not if the problems we are trying to
solve are becoming more and more complex. But that's ok since only a limited
number of people are actually interested enough (and dare I say capable) of
programming. That might be a good thing though since the result is higher
quality code/solutions.

------
damon
1\. State. 2\. Functional languages.

