Friday, January 11, 2019

A Framework For Programming Despite Errors

The biggest reason why people don't programming because that dealing with all of the various compiling and runtime errors makes them feel stupid and frustrated.

The truth is that many things that should work in programming, don't. It's not even for a good reason. It's just some obscure rule; developmental inertia. Arcane society rules that don't help, and only hurt.

Programming is a creative pursuit, but so little actual creativity is allowed. For the most part, everything only works one way, and that means that you're going to have to get through about ten errors before you can see your first real program come to life. And it might take you up to five hours per error to get through.

A program that only should've taken a week now takes half a year, or you simply give up without ever finding out your true potential as a programmer.

What are the solutions?

1. Don't make errors in the first place.
2. Make programming error-tolerant.

The problem with the first problem is obvious. Humans are not computers. We reason using a living mind that is not exact. Because being too exact is the ultimate death. With perfect exactitude, all life ceases.

The problem with the second one is more complex. If we were to make programming languages more "robust," it might be more tolerant of, for example, a single errant letter in a variable name. But the excuse that the industry uses is that if we were to make a complex API that was searching for every unit of time, we would lose countless nanometers of time searching through every permutation.

And then there's the problem of programs being ambiguous as a result. The API might make your program sing pig songs instead of play ping pong, for example.

But the opposite is true. At some point, the  amount of time we lose - or spend -  as a result of having more thoughtful(?) programming languages will be outweighed by the advantages of not having our programs crash once a month or get wiped out.

Really, both solutions should be used in conjunction. With the advance of AI, we should see a great amount of progress in this area, even if it's just a new program validator.

No comments:

Post a Comment