We need a programming language for the rest of us
leavesofcode.com
leavesofcode.com
Except programming obviously isn't like painting a fence. To stretch the homebuilding analogy a little, programming (even at its simplest!) is more like plumbing or wiring up electricity. It requires a real understanding of what you're trying to achieve and more than a little bit of creativity.
Most people are happy to pay their plumber, electrician, or car mechanic. I really don't understand why so many people think that computer programming isn't in a similar category of "skills you pay people to have". And, of course, I'm probably smart enough to do my own plumbing, or wire up my own electricity, or fix my own car. But I'd rather pay someone who specialises in doing those things to do them for me - if only for my own peace of mind.
A child was on a journey with his father. One day, they happened upon a vast ocean that stood in their way. "Son," the father said, "we will need to change directions, the great water is blocking our path." "Father," the son said, "it's not a problem. I brought a bucket. I'll just scoop the water up and move it behind us."
You can be forgiven for believing that programmers intentionally obfuscate the craft with the intent of protecting their economic turf. However, nothing could be further from the truth. Yours is the belief of an absolute beginner naively lacking any historical context for the craft he is learning.
In truth, the analysis of language is one of the great problems of science. It is one with which the smartest minds, those that have studied math well beyond calculus 2, have struggled and continue to struggle to solve. The ease with which all humans attain the language ability hides the complexities inherent within. However, attempt to teach language to a person beyond the age of eight or so who has never learned to speak, and you will discover that it is literally impossible.
Your call for a simpler programming language is one that has been made by anyone who has ever called themself a programmer. As a matter of fact, the history of programming languages can almost be described as the history of trying to make programming accessible to the masses. (Fortran was programming for non-programmers. C was a non-assembly-language language. Object-oriented programming, as in Objective-C, is an attempt at simplification. Python and other scripting languages, is another step up.)
In this context, you can take your blog post as your first step into "true" programming. (As much respect as I have for those who work with CSS and HTML to make websites work, they are to programming what pamphlets and road signage are to novels and research papers.) It is a perfectly reasonable request, yet one that has proven to be impossible so far.
Alan Turing, one of the fathers of computer science, described what is known as "the Turing Test," which is essentially: the ability of a program/computer/robot to convince a human being (via concersation) that it is also human. Fully passing this is one of the holy grails of computer science.
Please don't be mad at the rest of us for not solving it yet. Kurzweil has a long bet that humanity will finally achieve this by 2029. At least until then, all humans, including yourself, will have to work to be understood by computers.
I decided that to make things easier, I'd put more padding on the seat, and ask for people in the stands to give me directions.
Having written apps in VB, C, C#, Java, Mirah, PHP, Ruby and others, most of them make things hard that should be simple. Ruby generally doesn't, though. I've heard the same about Python, but not tried it.
To make a button work in C# or Java, there's a ton of boilerplate code that needs to be written. Since it's boilerplate, why haven't they abstracted that away? (Mirah tries to, but it has some limitations that leave most code still just as verbose.)
That said, he does have a point about the "shield of complexity". Although I don't think it applies to C, it does very much apply to many of the things we use. In particular, I feel the same way about CSS layout that he feels about C-- far too much complexity for something that should be straightforward and crystal clear.
I’ll be honest about my education. I studied CS, so the most biology I took was in the last grade at school and I haven't studied any anatomy. but I know to use table knife, scissors and how to wash my hands. How hard can it be to do some minor surgery?