Examples of "natural language thoughts" that I find in my head when I'm programming are things like "bump the counter" and "refresh the screen" and "track the mouse" and "show the menu bar". I can use such expressions as code with our compiler; with any other language, further translation is required.
For my own part, I think of moving the mouse, or refreshing the screen. I imagine the complete action. Imagining seeing, hearing, doing, etc., does not require language. It is a direct matter.
Now, even here, you've come to a problem of language: how do you programmatically even describe bumping the counter? The first thing you'd need to do is define what the counter is. Then, define what action bumping is. Then, define what state begins a bump of it, and what state ends the bump of it. Then, what of the thing that is bumping it? There is still a great deal of context to be made before you can get there.
Meanwhile, if you have i = i + 1, i += 1, ++i, incr i, next i, etc., you don't have that kind of ambiguity. For one thing, a reader would know right off the bat that by counter, you meant the state of a loop, not something you might have in your garage or kitchen
. Thinking of a counter being incremented does not itself need to involve any known language, until it must be communicated.
I'm not quite sure what you're saying there -- you say you "have much more practice at the former [presumably 'converting your thoughts into English'] and that its [English's] vagueness allows for greater brevity", and yet you claim that it is more difficult to convert your thoughts into English than a "decent programming syntax." I submit that you convert your thoughts into English, most of the time, with very little conscious effort at all. That you may have become multi-lingual enough so that you can also "think" in alternative syntaxes, is not surprising; any person who is fluent in more than one natural language can do the same. But they typically prefer one language over another. If you're content thinking in C++ or Ruby or Python or whatever, good for you. Those languages don't appeal to us.
I am not fluent in other natural languages. With sufficient practice, it is easier to type out a task in a programming language than to describe it in English prose. It is not uncommon to spend many minutes, or an hour or more, of wall time (not staring at it the whole time doing nothing else), composing a forum post or email, due to the difficulty of saying what I am intending to, as I am intending to state it. Programming is very algebraic. It is based on repeating patterns, relations, and dimensional relationships. Not having multiple ways to interpret a thing, nor potentially-difficult-to-pin-down context, makes it easier to think about.
I don't personally find it harder to read, but then I'm a good reader in general. I imagine there are people who are both mathematically inclined and not necessarily good readers who would naturally prefer a more mathematical syntax.
I can read English just fine. Being a good reader, however, does not make it any easier to convert prose into math. The sample program on the website, for instance, is not remotely like any prose I have ever read (Inform at least can pull that off). A programming language must be precise at what it describes. If you do that in English, it will not be plain English, but a restricted subset of English, with a limited subset of English grammar, which ends up just like COBOL, or SQL, or Visual BASIC. They have the advantage of not scaring off people that were made afraid of maths in school, to begin learning, but are otherwise annoying and tedious.
As I've mentioned elsewhere in this thread, we believe the ideal compiler will allow programmers to write programs like mathematicians write math books: snippets of specialized syntax (and even diagrams) imbeded in a natural language narrative. See, for example, Einstein's original (translated) paper on relativity:
As long as there is a definition for calling code written in another language, that is done. In fact, it would be easy to argue that the ability to do just that is a strength of web apps: each part can be allowed to do what it does best, and programmer(s) involved are able to divide the work as best suits their needs.
Yes it does read like COBOL, because COBOL was the first successful attempt in this direction. Which is why COBOL is one of the world's most stable and widely used languages to this day.
Any evidence of that? Hard to believe that it's used more than C, C++, Java, C#, or Javascript. It was also so successful that hardly any programmers want to use it. COBOL, however, is not natural, merely verbose.
Inform is what came to mind when I saw the OP. For query-based systems, I think it may hold some promise. It is also far closer to prose than the Osmosian's website example file's contents, which are far from being prose-like. However, Mr. Wolfram still has yet to show any actual natural language (plenty of ego, though). All his examples are using standard declarative idioms. Separating terms by spaces doesn't make it natural language any more than LISP.