

We need a programming language for the rest of us  - tsunamifury
http://www.leavesofcode.com/2011/06/we-need-programming-language-for-rest.html

======
arctangent
It never ceases to amaze me just how often I see sentiments like this
expressed. It seems like most people think that programming is a fairly easy
activity that could be learned by rote if only we current programmers didn't
make it so difficult with all our jargon and complicated tools. Programming
should be like painting a fence, right?

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.

~~~
alanthonyc
My response on his blog:

 _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.

------
saulrh
The Anon on the blog said it best: "Erm. This is what scripting languages like
Python are for. Until we have reasonable natural language parsers, things
aren't going to get much simpler."

~~~
tsunamifury
... or maybe use commands that are a bit closer to natural syntax.

~~~
gloob
Like in BASIC and SQL.

------
mechnik
I am in a similar situation to the author of this article: learning to program
after having having tried and given up ages ago. I believe the problem lies in
trying to learn a complex language from the bottom up. In the OP's words:
"Recently I took on the enormous task of learning Objective-C from the bottom
up and I was struck by something I couldn’t shake: this is too hard." I
believe one must consider the top-down approach: figure out what you want to
do accomplish first, paint the solution in broad strokes, then fill in the
details. Hal Abelson touched on this in a recent interview: "there also really
are people who like to understand stuff bottom-up. It’s not to my taste. To my
taste the most important thing is the idea that you build on abstraction."
<http://www.codequarterly.com/2011/hal-abelson/>. Get over your discomfort not
knowing every detail before the fact, consider what the solution to your task
might be and try it. For a non computer example: you meet a French girl who
you want to get to know her better. You could drown yourself in learning the
intricacies of French grammar, pronunciation, spelling, etc.. or you could
muster your courage and engage in simple dialogue of the 'me- Tarzan you-
Jane' type. Might work and you could fill in the details later.

------
SamReidHughes
Since when is the _syntax_ the "hard" part of C programming? This guy doesn't
have a clue.

------
toddh
There's a law against that: Leaky Abstractions. As soon as you need to do
anything interesting or novel all that complexity smacks you somewhere.
Languages just make different tradeoffs as to where they smack you.

------
zdw
I wanted to learn how to drive a car, so I bought this F-1 race car and had
trouble learning how to drive.

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.

------
wccrawford
I'm actually going to agree with him when he says 'This is too hard.' I think
he has a point.

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.)

------
angdis
The guy needs to take a step back and look at the bigger picture and pick-up
some fundamental skills before diving into the objective-C "toolbox."

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.

------
Vitaly
Right. I also think we need surgery for the rest of us.

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?

~~~
mechnik
Minor surgery - any surgical procedure that does not involve anesthesia or
respiratory assistance during the surgical procedure, - a medical procedure
involving an incision with instruments; performed to repair damage or arrest
disease in a living body( Ex. Hemorhoids, Tissue neurosis in absces There are
many conditions that can be treated quickly and easily by: \- vaporisation
with electrical diathermy (Example: Warts destrucition) \- simple excision
(Example: Mole biopsy) from <http://doctorscareclinic.com/html/minor-
surgery.html> Seems you have most of the requisite skills to perform minor
surgery: lancing a boil with a cauterized needle or tying off a hemorrhoid
with a bit of string. Perhaps you could practice a bit with a needle to get
the hang of stitching.

