-
just something i read at www.newscientist.com
WRITING software is a painstaking business in which you can't afford to slip up: get a single character wrong and the instructions either do nothing or go horribly wrong. In one infamous software error, a misplaced minus sign resulted in a fighter jet's control system flipping the aircraft on its back whenever it crossed the equator.
Now a new system that takes the drudgery--and some of the potential for slip-ups--out of programming is about to be launched. Its inventor hopes it will one day turn us all into programmers.
Bob Brennan, a software engineer at Cambridge-based start-up Synapse Solutions, has developed a piece of software that allows you to write a program by keying in what you want it to do in everyday language.
Dubbed MI-Tech--short for machine intelligence technology--the software translates a typed wish list into machine code, the basic mathematical language understood by the microprocessors inside computers. But this is no easy task, because everyday language is riddled with ambiguities and double meanings. "MI-Tech can resolve these ambiguities," claims Brennan, because it has been taught about the significance of context in the English language.
At the heart of MI-Tech is a store of logical rules. These allow it to extract instructions from statements in ordinary language, which it then translates into machine code. In its present form, MI-Tech has a limited lexicon of only a few hundred words, but Brennan claims this is sufficient for most of the tasks you might ask it to carry out.
Brennan says his program can write code in a fraction of the time that it takes trained programmers. He spent months writing a program manually, producing hundreds of pages of code. But given "just three pages of monologue", MI-Tech generated a program that performed exactly the same tasks.
Vikram Adve, a programming-language researcher at the University of Illinois at Urbana-Champaign remains sceptical. "Every programming language that I have heard of has a well-defined syntax and well- defined semantics," he says. And for a very good reason: all programming languages operate on instruction compilers and hardware that are essentially dumb. "Neither can really interpret the intention of the programmer," says Adve. So programming languages are deliberately designed to be unambiguous to avoid confusion.
Brennan agrees that previously this required strict syntax. "The problem before was that computers couldn't cope with ambiguities, but now they can," he says. MI-Tech's small lexicon means there is less room for confusion. And if it's unsure of your meaning, MI-Tech will just say it doesn't understand.
Brennan is not going into any detail about how the system works until his patents are granted. But he hopes to be licensing his program to software companies within 18 months so that they can build it into their own packages. If that happens, you might well be able to add programs of your own design to your PC--without knowing how to code.
-
crap...then I can forget the software engineering course at uni :mad:
-
One step closer to our doom
-
oh great i was just getting settled into my carreer as well :( someone needs to shoot that bastard:mad: . Hasn't he thought of the implications of a program like that..... it probably won't work and will be full of bugs anyway.
-
bugs and bugs, i bet the "programmers" won't express themselves too explicitely, so how do you know something is a bug? I think the area might be so dark you won't find them and one day they will conquer you
-
also, with some of the more complicated programs writing the specs for this would be incredibly long. again one mistake and you're *****ed. it is still the same problem as with programmers forgetting a bit of code. The spec would be so long that you may as well write the damn thing in code your self, and it probably wouldn't look how you wanted it to, and you would have to define any connection to databases that it might want, and then which fields in which text boxes.
I don't think it'll work.
-
Whatsa matter with you guys......Haven't you ever programmed a Holodeck on a federation starship before? :) Seriously, I don't think this will work too well.
-
On the other hand they said similiar stuff about * 50 years ago, and with * i mean stuff about todays computers
-
I can see that it could work. All I can see that it would do, though, is allow you to use some more flexible syntax and use the very complex structure of natural language to give more information in less text. However, I don't think this is going to be the downfall of career programmers any time soon, because you still have to be able to form the ideas of what you want into a textual format that will define exactly what you want without any ambiguity once context is taken into account. Programming is as much to do with structured thinking as it is about knowing syntax for a particular language.
I would guess it's not really suitable for performance programming also, since in that area you need to strictly define everything that goes on.
Well that's my thoughts on it anyway.
-
I think a more problematic issue would be that we all sort of speak a different language, use words for different concepts and express ourself in different ways, and to map all that might be a astronomical project
-
time will tell
On the other hand, how can you be more ignorant when you talk about future :p
-
Yes, that is another problem. Everyone has their own mental model of the world which may (well it will) differ from the model that this natural language compiler, or whatever you want to call it, uses. This is an area where concepts such as neuro-linguistic programming and clean language can help to ensure the message is compatible with the recipient's model, but again this rewuires strict structure in the language, losing the central benefit of using natural language as opposed to a more well-defined language.
-
I remembver seeing a similar claim about 15-20 years ago. I think it was called "only-1" or something like that. It was going to take a set of definitions and write a program. Turned out to be just a database, you could define field lengths and field names etc. whoopedy doo.
I'm not going to lose any sleep over it. I mean to say, how do you walk up to a machine and say I want to graphically display the core temperaturtes of that nuclear reactor over there, the output comes out onto this printer here, but we're going to split it and feed it into you, and it's gotta be real time and I want to log the data.
There are programs that will do specific monitoring jobs like that, and I've used them, and even in such a tightly defined task (monitoring temperatures) there are so many complexities and idiosyncrasis that configuring it is a massive task. I don't see anyone coming up with software that will write all applications.
It's marketing hype i'm sure! Maybe sometime in the ffuture, but not right now.
As a thought: It might make programming simpler at a certain level, in the way VB made programming windows much easier than C. Drawing controls directly onto a form was a god-send, but peope just find more complex tasks for the computer to perform.
SD
-
ever wonder how you can speak such a complex language as English and have hard to do anything in such a simple language as C++?
it's Genetical
-
Leave my genitals out of this!!
Oh, sorry, Genetical!, my mistake.
SD
-
Language
Although English is complex, people learn it by associating words and phrases to physical world phenomina. With a computing language, whilst consise and fundamentally simpler, it deals with abstract ideas and complex logic that have little or no relation to the physical world.
The proposed language 'MI-Tech' might succeed in helping normal office workers to string together very simplistic DB apps it will innevitably fail at more complex tasks.
Just look at the evolution of MS help. The more they have adapted it for 'natural english' queries, the more difficult it is to actually find what you want. It is only of value to people who literally 'know nothing'.
-
Nothing complex at all with C++, it's as simple as a babytoy if you compare to English. And don't for god sake tell me C++ is more abstract than English.
What makes you feel more comfortable with english is that you've been using it all your life, every single day, and also, your brain has a specific section, just for language. A programming language might be hard to learn, but a lot easier than any foreign language, most of you need to be very exact and explicit when you program, which might be the barrier.