Natural Language Programming

Page 7 - Seeking answers? Join the AnandTech community: where nearly half-a-million members share solutions and discuss the latest tech.

Natural Language Programming: Good Idea?

  • Yes

  • Maybe

  • No


Results are only viewable after voting.
Status
Not open for further replies.

Markbnj

Elite Member <br>Moderator Emeritus
Moderator
Sep 16, 2005
15,682
13
81
www.markbetz.net
Is the appointment at 10am or is the reminder at 10am?

Right, and if the reminder is at 10 AM, when is the appointment? Should we search your calendar? What if there is more than one in the calendar? If it's the appointment that is at 10 AM, then when do you want to be reminded? Siri thinks you should be more specific.

"Set an appointment at Lakeview Dental for myself at 10:00 AM on December 4th, and add a reminder 60 minutes beforehand."
 

Sequences

Member
Nov 27, 2012
124
0
76
I would assume little kids. C-like syntax would be difficult to understand if you didn't know math. It also helps to know physics and chemistry because those use different applications of math.

C-like syntax is difficult for a lot of people, then again, so is Shakespeare, or Thoreau, or some legal document. Of course, these are extreme examples, but I think it is wrong to assume that established programming languages' syntax is definitely more difficult to grasp than "plain English".

What I'm trying to understand is the purpose of this language - what is it trying to solve that existing languages can't?
 

MagnusTheBrewer

IN MEMORIAM
Jun 19, 2004
24,135
1,594
126
C-like syntax is difficult for a lot of people, then again, so is Shakespeare, or Thoreau, or some legal document. Of course, these are extreme examples, but I think it is wrong to assume that established programming languages' syntax is definitely more difficult to grasp than "plain English".

What I'm trying to understand is the purpose of this language - what is it trying to solve that existing languages can't?

Supposedly ease of use and, to encourage people without a programming background to try their hand. It is my belief that it is neither easier to use or, will encourage anything but frustration. For an example, try using voice controls to edit in a voice recognition program. And that is with standardized syntax and definitions which, the OP's program has neither.
 

Markbnj

Elite Member <br>Moderator Emeritus
Moderator
Sep 16, 2005
15,682
13
81
www.markbetz.net
C-like syntax is difficult for a lot of people, then again, so is Shakespeare, or Thoreau, or some legal document. Of course, these are extreme examples, but I think it is wrong to assume that established programming languages' syntax is definitely more difficult to grasp than "plain English".

Agreed. The assumption is that the complexity is in the syntax and the way ideas are expressed, when in fact it is in the ideas being expressed. Non-lawyers often are frustrated with legal language, but it has evolved to address the specific problem of ambiguity, and once you understand the usage and conventions it is not difficult to comprehend. The same is true for any non-trivial discipline. Try describing the electrical system of a new office building in "plain english." If general purpose language is so desirable in expressing concrete and complex ideas, then why have professions far older than programming - medicine, architecture, biology, mathematics, etc. - all developed their own specific lexicons and formal constructs?
 

Gerry Rzeppa

Member
Dec 13, 2013
195
1
76
www.osmosian.com
spungo said:
Who is your intended audience?

Primarily, the next generation of programmers. But anyone else who is interested, as well. We're developing a way of programming that is simple enough for beginners, yet powerful and convenient and efficient enough for serious work -- using the very same syntax and semantics all the way through. That's why we wrote our compiler, our development environment, and our documentation facility using the very same language that we use when we're teaching little kids.

gerry rzeppa said:
Remind me about my dentist appointment next Tuesday and 10am

spungo said:
Is the appointment at 10am or is the reminder at 10am?

"Set an appointment at Lakeview Dental for myself at 10:00 AM on December 4th, and add a reminder 60 minutes beforehand."

A natural language computer "gets to know" its user; and vice versa. My statement assumed prior "agreement" between the apparently intelligent phone and the user -- specifically that appropriate reminders are to be given (a) when specifically asked for ("What's on the schedule today?") and (b) automatically as the time of the scheduled activity approaches ("Don't forget: dentist appointment in one hour").

Natural language computing, like all natural language communication, is a living thing: what's understood changes and grows as the parties communicate more and more with each other. Every type, variable, and routine defined in Plain English expands the vocabulary and grammar that the compiler understands.

And natural language computing is a relationship-specific thing: there are things I can say that my wife will fully understand but a stranger may not. This isn't a fault in the language, it's a form of scoping. A Plain English programmer with well-developed libraries of types, variables, and routines specific to a particular application area will be able to say things in his code that another Plain English programmer, working in a different application area, won't. But note two things: (1) There will still be a very large base of common understanding, and (2) even the specialized code will still be reasonably intelligible to an outsider since it is written in an English framework (with snippets of specialized syntax where appropriate).

And, yes, natural language computing is an imprecise thing: one of the objectives of our Plain English prototype -- Objective #2 right at the top of this thread -- was to find out if "natural languages can be parsed in a relatively 'sloppy' manner (as humans apparently parse them) and still provide a stable enough environment for productive programming." The answer, we now know, is yes.
 

Gerry Rzeppa

Member
Dec 13, 2013
195
1
76
www.osmosian.com
What I'm trying to understand is the purpose of this language - what is it trying to solve that existing languages can't?

As stated in the initial post, we had three questions in mind when we started down this road:

1. Is it easier to program when you don’t have to translate your natural-language thoughts into an alternate syntax?

2. Can natural languages be parsed in a relatively “sloppy” manner (as humans apparently parse them) and still provide a stable enough environment for productive programming?

3. Can low-level programs (like compilers) be conveniently and efficiently written in high level languages (like English)?

Those three questions have been answered, to our satisfaction, in the affirmative. We now look to further develop the thing so it will be suitable for the next generation of programmers -- beginners and professionals alike. We're thinking along these lines for our next step:

https://www.indiegogo.com/projects/the-hybrid-programming-language/x/8950932
 

Gerry Rzeppa

Member
Dec 13, 2013
195
1
76
www.osmosian.com
...try using voice controls to edit in a voice recognition program.

Voice input to an editor designed with a typist in mind is an obvious mismatch. Voice input (via an intercom or recorder) to a capable editor (like a human secretary) is not at all frustrating, and is widely and successfully used.

And that is with standardized syntax and definitions which, the OP's program has neither.

I can personally assure you that Programming in Plain English is not only convenient and efficient, but fun. And since I've written many tens of thousands of lines of the stuff, I'm in a good position to know.
 

smackababy

Lifer
Oct 30, 2008
27,024
79
86
How does your language handle inheritance and overriding of classes? Those ideas can be expressed in "plain English", but it certainly isn't what I would call concise and easy to understand.

And, in those tens of thousands of lines of the stuff, why can't you provide a truly complex example?

Also, is this stuff still walled behind your own servers or has it been uploaded to a public repository like github?
 

Markbnj

Elite Member <br>Moderator Emeritus
Moderator
Sep 16, 2005
15,682
13
81
www.markbetz.net
Also, is this stuff still walled behind your own servers or has it been uploaded to a public repository like github?

It had a short life on github, but apparently the creators did not like the commentary on the initial commit, and closed it.
 

MagnusTheBrewer

IN MEMORIAM
Jun 19, 2004
24,135
1,594
126
Voice input to an editor designed with a typist in mind is an obvious mismatch. Voice input (via an intercom or recorder) to a capable editor (like a human secretary) is not at all frustrating, and is widely and successfully used.

Exactly, your program is not human and can never make the logical leaps and associations a human can.

I can personally assure you that Programming in Plain English is not only convenient and efficient, but fun. And since I've written many tens of thousands of lines of the stuff, I'm in a good position to know.

All the code you've written neither addresses the issues of portability or, the conditional statements of other programmers.
 
Last edited:

Markbnj

Elite Member <br>Moderator Emeritus
Moderator
Sep 16, 2005
15,682
13
81
www.markbetz.net
I can personally assure you that Programming in Plain English is not only convenient and efficient, but fun. And since I've written many tens of thousands of lines of the stuff, I'm in a good position to know.

Yes, yes you keep saying that. We're programmers, so show us some working code :). Or at least address the test cases I posted above. If you don't like them then choose one of your own of a similar level of complexity (very low, as I've pointed out).

Just to give you an idea of the gap here, my current project, which I co-developed with one other engineer and a business dev guy, is a specialty aggregating search engine that pulls data from more than 100 different websites, indexes it into a full text search database, and serves it using an angularjs front end. It is written in python, java, Go, C, C++, and bash. It runs on twelve Ubuntu server instances in Amazon's cloud.

And, by the way, it is not at all complex in the modern world of software development. It's just a little website.

What portion of such a system can I create using your "Plain English" approach today? You've written tens of thousands of lines of it. Surely some of that must be non-trivial and working so that we can see it?
 

Gerry Rzeppa

Member
Dec 13, 2013
195
1
76
www.osmosian.com
If general purpose language is so desirable in expressing concrete and complex ideas, then why have professions far older than programming - medicine, architecture, biology, mathematics, etc. - all developed their own specific lexicons and formal constructs?

The point you're missing is that most of the code in most programs does not express "complex ideas". Most of most programs is stuff like "move this over there" and "draw this on the screen" and "save that on the disk". That's why we had no trouble conveniently and efficiently writing an entire development environment (including interface, file manager, text editor, hex dumper, native-code-generating compiler, and wysiwyg page-layout facility) in Plain English: most of the thing is easy stuff, like I just described. And for the rest? You already know what we're proposing:

https://www.indiegogo.com/projects/the-hybrid-programming-language/x/8950932

I'll sum it up in bold for you:

A natural language framework with snippets of special syntax and graphics where appropriate.

And here's a practical and operational example I've given, time and again, in this very thread. A single routine that elegantly combines English with machine code:

To add a number to another number:
Intel $8B85080000008B008B9D0C0000000103.


I really don't understand the resistance to such an obvious idea. It's the way people naturally express their ideas everywhere and everywhen. In every decent textbook ever written. In every clear and concise white paper ever written. And in every post on this forum. Look above! I just did it again: a natural language framework with specialized syntax where appropriate.
 

Gerry Rzeppa

Member
Dec 13, 2013
195
1
76
www.osmosian.com
And, in those tens of thousands of lines of the stuff, why can't you provide a truly complex example?

Our integrated development environment itself is a "truly complex example". It is a working, practical, non-trivial program that includes a revolutionary interface, a simplified file manager, an elegant text editor, a hexadecimal dumper, a wysiwyg page-layout facility, and a native-code generating compiler/linker for Plain English -- written entirely in Plain English.

Also, is this stuff still walled behind your own servers or has it been uploaded to a public repository like github?

There's a version a friend uploaded (with my permission, but over my objections) to github here:

https://github.com/Folds/osmosian

My objections to the idea can be found here:

https://github.com/Folds/osmosian/issues/4

Our entire system, including source code, can be downloaded here:

www.osmosian.com/cal-3040.zip

And the instructions can be read in PDF form (the PDF having been generated by our very own Plain English code without the help of any DLLs from Adobe) here:

www.osmosian.com/instructions.pdf

No walls here.
 

Markbnj

Elite Member <br>Moderator Emeritus
Moderator
Sep 16, 2005
15,682
13
81
www.markbetz.net
I'm going to leave your IndieGogo link up there, even though I told you not to post it. Given the goal of $450k and the current funding level I don't think we need to consider this self-promotion.

As for your reply, you continue to respond to specific questions and challenges with philosophy, trivial examples, and what amounts to condescension. You say you've written tens of thousands of lines of plain english code, and the example you can give us is adding numbers together. I think that pretty much sums it up. Hopefully this thread will stand as a searchable warning to anyone who, against all odds, stumbles on your crowd-funding project and thinks about contributing.
 

BoberFett

Lifer
Oct 9, 1999
37,563
9
81
Good lord, I can't believe I missed this thread the first time around.

I had to stop reading about halfway through because 1) I need to get some work done and 2) my eyes started glazing over.

Reading so many of the "examples" sounded like all that's been done is to create a far more complicated programming language. It's not natural language, it's the most complex programming language ever invented.

This isn't artificial intelligence. There's no understanding of English here. You have to tell the compiler what you mean, before you can tell it what to do. And since everyone speaks English differently, code is completely unreadable unless you speak the exact same way as everyone else.

If what you say is true, we should also need separate routines to handle, for example, each of following sentences:

If the mouse's left button is down, beep.
If the escape key is up, beep.

Yet we don't. Both statements are reduced to the form:

IF decider-call , routine-call .

Yes, how very natural language. I'll ask my mother tomorrow at Thanksgiving the status of her decider-call.

The routine header, "To add a number to another number:", serves two purposes: (1) it explains what that obscure hexadecimal string does in terms a human can easily understand; and (2) it provides the compiler with the information it needs to determine when and how such a routine should be called; for example, when the programmer says things like:

Add 1 to a counter.
Add the item's price to the total.
Add 1/2 inch to the box's width.

Best of both worlds! And it compiles, and runs.

The item's price? Which item? I have a whole list of items. Does this language handle arrays or any other type of collection? How do you deal with sets? Or is everything a discrete variable?

You could do something like what you've described using the built-in console facility; here's the whole program:

To run:
Start up.
Read a number.
Read another number.
Write the number plus the other number.
Shut down.

Or you could make it fancier by adding a little helper routine:

To get a number and another number from that babe in accounting:
Write "Enter a number > " without advancing.
Read the number.
Write "Enter another number > " without advancing.
Read the other number.

The original program would then look like this:

To run:
Start up.
Get a number and another number from that babe in accounting.
Write the number plus the other number.
Shut down.

Note that the new sentence, "Get a number and another number from that babe in accounting", looks like the others; just another Plain English sentence. But this is a sentence that you "taught" the compiler how to "read" -- it wasn't part of the original system.

Seriously? How was just typing the words "that babe in accounting" teaching it anything? What if there are two babes in accounting? How do you account for operator overloading? Oh, but the OP doesn't believe in object oriented languages, so I guess operator overloading or polymorphism isn't really a thing. Except that it is, even more so because there's nothing natural about the English language, it's full of nuance, and no two people speak it exactly the same. When you tell the compiler "without advancing" you mean to wait for user input. When I tell the compiler "without advancing" I mean I don't want it it flirting with the hot babe in accounting.

They are logically grouped: they're alphabetical. "Copy" is under "C" and "Print" is under "P" and "Save" is under "S". What could be simpler?

Actually, no. Commands where a user might think of a synonym are listed both ways.

I don't want to Copy. I want to Make a Copy, M. I want to Duplicate, D. What the hell is copy? By using the word Copy you've already given into established norms. Synonyms simply open one up to a near infinite menu length.

Besides, everyone -- even non-programmers -- should learn to clean up after themselves.

Oh dear lord. We can't expect a non-programmer to learn a language in order to become a programmer, but we can expect them to understand the concept of garbage collection and not make any mistakes that might lead to memory leaks. Have you ever met a normal human being?



At best, this seems to a compiler based on a complex "language" with a requirements that you "teach" it first, just as you might call it "teaching" your C compiler when you use a macro. So it's a bunch of macros wrapped around a real programming language, completely lacking in readability for anybody but the original author.
 
Last edited:

Gerry Rzeppa

Member
Dec 13, 2013
195
1
76
www.osmosian.com
Yes, yes you keep saying that. We're programmers, so show us some working code :)... You've written tens of thousands of lines of it... Surely some of that must be non-trivial and working so that we can see it?

The best example of our code, about 25,000 lines of it -- keep in mind that Plain English is an experimental prototype language, soon to be superceded by our Hybrid Programming Language -- is our integrated development environment, compiler, and documentation facility itself; a decidedly non-trivial and working program that is readily available for examination. More than enough to show that the language is convenient, efficient, and practical. You can get the whole thing directly here:

www.osmosian.com/cal-3040.zip

Just download and unzip. No installation necessary. Start with the PDF in the documentation directory and before you go ten pages you'll be recreating the whole shebang, in itself, in less than three seconds on a bottom-of-the-line machine from Walmart.

Or, if you prefer, you can get a copy off Github:

https://github.com/Folds/osmosian
 
Last edited:

Spungo

Diamond Member
Jul 22, 2012
3,217
2
81
Can you demonstrate a working plain English program that iterates the files, copies them to a new folder, and in the process renames each to a combination of the current date and the sequence number of the file (the order of processing)?
I can provide a control code example for this. True story: I learned Perl because I wanted to have automatic date stamps on PDFs of CAD drawings made from a script. It can probably done with a .bat or .vbs file, but you'll find life on mars before you find any documentation explaining how to use either of those. Making it work involved regular expressions and substring replacement in a config file.

Code:
#!perl
use warnings;
use strict;
use File::Copy;
# Functions are defined at the bottom of this script.

# configurable variables go here:
my $new_folder = 'C:\new_folder';
# end of configurable variables

# get the date stamp like "2014-11-26-1315h"
my $date_stamp = get_date_stamp();

# glob only works if this script is in the same folder as the original jpeg images
my @old_files = glob '*.jpg';

# copy the files and include the date stamp in the new file name.
# we're using keys because the key is used to get the file's number.
# we're trying to build names like "2014-11-26-1315h 5.jpg".
# can't remember how to force it use 3 digits for a number so it would be 005. fix later.
foreach my $key (keys @old_files) {
	copy($old_files[$key], "$new_folder\\$date_stamp $key.jpg") 
		or die "could not copy $old_files[$key]";
}



######################################
# Functions:
#
#
###############################################################
# Function "get_date_stamp" returns the date stamp
# function localtime() converts the time() into a 9 segment array:
#   0    1    2     3     4    5     6     7     8
# ($sec,$min,$hour,$day,$mon,$year19,$wday,$yday,$isdst) = $localtime(time);
# $month number starts at 0 instead of 1, so add 1 before using it
# $year19 counts from 1900, so add 1900 before using it
sub get_date_stamp {
	my ($_sec,$_min,$_hour,$_day,$_mon,$_year19,$_wday,$_yday,$_isdst) = localtime(time);			#assign all of the variables
	++$_mon;																					#make the month 1 larger because it starts from 0
	#use 4 digit year, 2 digit month, 2 digit day, 2 digit hour, 2 digit minutes
	my $_date_stamp = sprintf ("%04d-%02d-%02d-%02d%02dh", $_year19+1900, $_mon, $_day, $_hour, $_min);	#displays like "2014-07-14-1315h"
	return $_date_stamp;
} #/sub get_date_stamp
###############################################################

Tons of comments, but I hate trying to figure out what I was doing in the past.
Total lines of actual code, including the shebang line: 17


Date stamps are astoundingly useful. Everyone reading this thread, copy this to notepad and save it. It's for creating date stamps in .bat files. You can see how it's used to create a complete backup of dwg files using 7zip:
Code:
@echo off

::windows date format is "Day mm/dd/yyyy"
::this is broken into tokens %%a %%b/%%c/%%d
::year month day would be %%d-%%b-%%c
for /f "tokens=1-4 delims=^/ " %%a in ("%date%") do (
	set sammy_date=%%d-%%b-%%c
)
::echo date is %sammy_date%

::windows time format is "hh:mm:ss.ss"
::this is broken into tokens %%a:%%b:%%c
for /f "tokens=1-3 delims=: " %%a in ("%time%") do (
	set sammy_time=%%a%%bh
)
::echo unmodified time is %time%
::echo time is %sammy_time%
::echo combined date and time is %sammy_date%-%sammy_time%

::7zip's exe should be found at:
set zip_path=C:\Program Files\7-Zip\7z.exe

::create 7z of all .dwg files with a date stamp
"%zip_path%" a -r "%sammy_date%-%sammy_time% DWG Backup.7z" .\*.dwg

::pause
 
Last edited:

Spungo

Diamond Member
Jul 22, 2012
3,217
2
81
"Set an appointment at Lakeview Dental for myself at 10:00 AM on December 4th, and add a reminder 60 minutes beforehand."
The compiler has an easter egg to detect douchiness. If you use the words "ascertain" or "therefore" too many times, it compiles something that formats your hard drive :D

For an example, try using voice controls to edit in a voice recognition program.
Oh my. So many memories. Remember when everyone was using AIM and MSN? My friend and I both installed Dragon Naturally Speaking and tried to talk the way we normally talk. The thing never assumes you're swearing or using racial slurs, so it fills in things that might sound similar. Part of the fun was not reading the documentation. I would get a message from my friend that starts ok, then it goes off track when something weird is said, then you can read my friend swearing at the computer for typing the wrong things :D
 
Last edited:

BoberFett

Lifer
Oct 9, 1999
37,563
9
81
The point you're missing is that most of the code in most programs does not express "complex ideas". Most of most programs is stuff like "move this over there" and "draw this on the screen" and "save that on the disk". That's why we had no trouble conveniently and efficiently writing an entire development environment (including interface, file manager, text editor, hex dumper, native-code-generating compiler, and wysiwyg page-layout facility) in Plain English: most of the thing is easy stuff, like I just described. And for the rest? You already know what we're proposing:

https://www.indiegogo.com/projects/the-hybrid-programming-language/x/8950932

I'll sum it up in bold for you:

A natural language framework with snippets of special syntax and graphics where appropriate.

And here's a practical and operational example I've given, time and again, in this very thread. A single routine that elegantly combines English with machine code:

To add a number to another number:
Intel $8B85080000008B008B9D0C0000000103.


I really don't understand the resistance to such an obvious idea. It's the way people naturally express their ideas everywhere and everywhen. In every decent textbook ever written. In every clear and concise white paper ever written. And in every post on this forum. Look above! I just did it again: a natural language framework with specialized syntax where appropriate.

I don't want to add a number to another number.

I want to add a number WITH another number.

Or maybe I want to add a number AND another number.

Or maybe I want to add a number to another number and to a third number and to a fourth number.

How is:

Add A and B into the result.
Add the result and C into the second result.
add the second result and D into the third result

easier than:

X = A + B + C + D

There's nothing "natural" about your way of doing things.
 

Gerry Rzeppa

Member
Dec 13, 2013
195
1
76
www.osmosian.com
I don't want to add a number to another number. I want to add a number WITH another number. Or maybe I want to add a number AND another number. Or maybe I want to add a number to another number and to a third number and to a fourth number.

All those variants are supported in Plain English.

How is: Add A and B into the result. Add the result and C into the second result. add the second result and D into the third result easier than: X = A + B + C + D

It's not. And we knew that all along. We just wanted to see how far we could get with natural language alone. Turns out, much farther than we (or most other people, for that matter) thought we could. But -- as I've said numerous times in this thread -- the ideal (as we see it) would be much more of a hybrid, and that's what we're proposing here:

https://www.indiegogo.com/projects/the-hybrid-programming-language/x/8950932

A natural language framework with snippets of special syntax and graphics where appropriate. Something more like this:

Clear the screen.
Let X=A+B+C+D
Display X in the middle of the screen.


There's nothing "natural" about your way of doing things.

On the contrary. Let's say I want to write "Hello, World!" on the screen. Here's how we would do that in Plain English:

Write "Hello, World!" on the screen.

And here's how one might do it in C++:

std::cout << "Hello World!";

Which seems more natural, more familiar, more plain and simple?
 

Merad

Platinum Member
May 31, 2010
2,586
19
81
Our integrated development environment [...] includes a revolutionary interface, [...] an elegant text editor...

Heh, I think I'm still the only person in this thread who has actually tried your IDE, and revolutionary/elegant aren't quite the adjectives I would use to describe it.

Markbnj said:
I'm going to leave your IndieGogo link up there, even though I told you not to post it. Given the goal of $450k and the current funding level I don't think we need to consider this self-promotion.

Ironically (unless he changed it today), this thread is linked on the Indiegogo page.
 

Gerry Rzeppa

Member
Dec 13, 2013
195
1
76
www.osmosian.com
There's a great article written by a well-respected math and science expert on this subject here:

http://blog.wolfram.com/2010/11/16/programming-with-natural-language-is-actually-going-to-work/

I think it might help to round out this discussion. Here are a couple of quotes:

"If you’d asked me a few years ago, I would have said [natural language programming] was hopeless. That perhaps one could make toy examples, but that ultimately natural language just wouldn’t be up to the task of creating useful programs. But... we’ve been able to make free-form linguistics work vastly better than I ever thought possible."

"Something I thought would be a big issue is the vagueness of natural language. That one particular natural language input might equally well refer to many different precise programs... But in reality this seems to be quite rare: there is usually an 'obvious' interpretation that one can put first—with the less obvious interpretations a click away."

"After so many years, the science-fiction concept of being able to tell a computer what to do by using plain human language is gradually going to become reality—in a way that fascinatingly coexists with what’s been achieved in high-level computer languages."
 

Gerry Rzeppa

Member
Dec 13, 2013
195
1
76
www.osmosian.com
Heh, I think I'm still the only person in this thread who has actually tried your IDE,

Now that's a shame. Is no one curious anymore? C'mon, folks! At least take a peek at the documentation:

www.osmosian.com/instructions.pdf

It's a fun read.

and revolutionary/elegant aren't quite the adjectives I would use to describe it.

Revolutionary, adj: "introducing radical change; causing an axial or orbital turn". Consider our alphabetical menu system. Most interfaces arrange menus like a Table of Contents in the front of a book, grouping commands semantically, with each command listed only once; ours is more like the Index at the back of a book, grouping commands syntactically, with many commands appearing in more than one place. Front, back; semantic, syntactic; singular, multiple: what could be more "radical" or "causing an orbital turn"?

Elegant, adj: "Displaying effortless beauty and simplicity in movement or execution". As simple as possible, but no simpler. 'Nuf said.
 

Markbnj

Elite Member <br>Moderator Emeritus
Moderator
Sep 16, 2005
15,682
13
81
www.markbetz.net
Heh, I think I'm still the only person in this thread who has actually tried your IDE, and revolutionary/elegant aren't quite the adjectives I would use to describe it.

Ironically (unless he changed it today), this thread is linked on the Indiegogo page.

I think I tried it as well, back when Gerry first posted about it. Also... lol.
 

Markbnj

Elite Member <br>Moderator Emeritus
Moderator
Sep 16, 2005
15,682
13
81
www.markbetz.net
There's a great article written by a well-respected math and science expert on this subject here:

http://blog.wolfram.com/2010/11/16/programming-with-natural-language-is-actually-going-to-work/

I think it might help to round out this discussion. Here are a couple of quotes:

"If you’d asked me a few years ago, I would have said [natural language programming] was hopeless. That perhaps one could make toy examples, but that ultimately natural language just wouldn’t be up to the task of creating useful programs. But... we’ve been able to make free-form linguistics work vastly better than I ever thought possible."

"Something I thought would be a big issue is the vagueness of natural language. That one particular natural language input might equally well refer to many different precise programs... But in reality this seems to be quite rare: there is usually an 'obvious' interpretation that one can put first—with the less obvious interpretations a click away."

"After so many years, the science-fiction concept of being able to tell a computer what to do by using plain human language is gradually going to become reality—in a way that fascinatingly coexists with what’s been achieved in high-level computer languages."

Wolfram is entitled to his opinion on that, and he has invested hundreds of millions to build a platform to back it up. Even so, the domain in which their research is taking place is still significantly more constrained than a general purpose programming language.
 
Status
Not open for further replies.