Slashdot Mirror


Metafor: Translating Natural Language to Code

vivin writes "Computer programming is second nature to most of the Slashdot crowd. However, this is not true for the vast majority of people. Formal programming languages are not as expressive or flexible as natural languages. This becomes more evident when we try to translate user requirements into actual code. Researchers at MIT have come up with a program that bridges this gap. It's not so much a tool that turns English into code, as it is a program that translates requirements (in English) to code. When Metafor analyzes English, nouns phrases become objects, verbs become functions, and adjectives become object attributes (or properties). In addition to helping programmers visualize their program better, I think it also promotes writing concise (and therefore) requirements and descriptions. Metafor doesn't handle run-on sentences (or bad English) that well." Update For for the dupe. Not going well. Appreciate all the hate mail. Really encourages improvement.

475 comments

  1. Usefulness by suso · · Score: 5, Insightful

    Well, I doubt something like this would be used to write the next version of Gimp, but I can see its use in helping people to convey what they want a computer to do. Few people need to write programs and I don't know whether I'd want people who don't
    understand computers to actually write them. But it would help when someone wants to make something like a 3D scene in Blender. It reminds me a lot of that episode of STTNG (Schizims) where Riker, Troy and Worf are telling the computer to replicate an alien room that they were in.

    1. Re:Usefulness by youngerpants · · Score: 1

      Wow, that episode has just finished on Sky One /geek

    2. Re:Usefulness by rosewood · · Score: 1

      I think this would be helpfull for scripts quite frankly. If not that, just basic programs.

    3. Re:Usefulness by cmorgan47 · · Score: 1

      i was going to give you some crap about using STTNG to explain the point, but then realized i knew exactly which episode you meant.

      kind of like the episode where picard gets stuck on the planet with the alien whose language is composed of nothing but references to his species' myths.

      --
      no i have not shot my gun in the air and gone 'Ahh!'
    4. Re:Usefulness by Chris+Kamel · · Score: 1

      I'm thinking it could be useful to developers who are not very good at reading plain English requirements document, Ironically I think the output maybe used for developers to get a better understanding of the requirements as it seems some of us do understand programming languages better than they do plain English.

      --
      The following statement is true
      The preceding statement is false
    5. Re:Usefulness by tsobo · · Score: 1

      Yeah, try as they might, I doubt MIT will ever be able to write anything that decodes STTNG references nearly as well as /. readers.

    6. Re:Usefulness by Anonymous Coward · · Score: 0

      Darmok and Jalad at Tenagra. Unzani, his fist closed. Shaka, when the walls fell.

    7. Re:Usefulness by John+Zebedee · · Score: 1

      A delightful bit of irony, in the way your .sig reflects the theme of the more reasoned comments here.

      --
      The future is here. It's just not evenly distributed yet. -- William Gibson
    8. Re:Usefulness by Bingo+Foo · · Score: 1

      Do Bears bare? do Bees be? Not that there's anything wrong with that! Fuggedabowdit!

      --
      taken! (by Davidleeroth) Thanks Bingo Foo!
    9. Re:Usefulness by letchhausen · · Score: 1
      Kinda like if an alien came here and tried to communicate with the species who's language is all references to the Simpsons! D'oh!

      Now I'm off to get me a Krusty's partially gelatinated, non-dairy, gum-based beverage......

      --
      Hey, you think your house is cool?
    10. Re:Usefulness by Taladar · · Score: 1

      Programming languages ARE better to understand as everything is defined with exactly one semantic. They are designed that way. You could translate programming language into english but the other direction is impossible because you can not determine which meaning of a word with several meanings was meant in a given sentence.

    11. Re:Usefulness by Badfysh · · Score: 1

      Darmok, his eyes black...

      --

      I was conned by an old man in a cloak. It turns out those *were* the droids I was looking for.

    12. Re:Usefulness by johnnyb · · Score: 1

      It's been available for years for people who know latin.

    13. Re:Usefulness by dreadknought · · Score: 1

      Few people need to write programs and I don't know whether I'd want people who don't understand computers...

      One of the many problems with natural language is that the same term can mean two different things to computers and people. For example, when speaking in English, a person might say, "I don't know whether I should go to the store or the gym." The key here is that the term "or" actually means "xor", but the typical person doen't know this. To the computer (and the person who wrote the interpreter), the term "or" means one, the other, or both as far as logic goes. So say that the interpreter is fixed to recognize this fact. What happens when a programmer sits down to use this interpreter, and thinks that or should mean logical or, not English or? Oh well, just one more bug to deal with, I guess...

      --
      What you reap is what you sow
  2. Dupe by tcopeland · · Score: 3, Informative

    Of this, I think...

    1. Re:Dupe by Anonymous Coward · · Score: 5, Funny

      I'm about to write a program that stops dupes:

      "Don't allow dupes."

      There, now I have to decide whether it will be FOSS.

    2. Re:Dupe by BenjyD · · Score: 0, Flamebait

      Two in one day. What editing skill that must require.

    3. Re:Dupe by rreyelts · · Score: 0, Offtopic

      Lol. I love how stating that the post is a dupe is modded as offtopic. The whole entire article posting should be modded offtopic.

    4. Re:Dupe by FortKnox · · Score: 5, Insightful

      No fears, he's issued an update:

      Update For for the dupe. Not going well. Appreciate all the hate mail. Really encourages improvement.

      Nice. Someone should go to customer service 101 and grow up a little. Yelling at the people who (indirectly) line your wallet. Not a good idea....

      --
      Good quote, too many chars. Seriously, the slashdot 120 char limit sucks!
    5. Re:Dupe by FortKnox · · Score: 4, Insightful

      To actually add content to my content:

      How terribly difficult would it be to add a url checker. I can understand a dupe when its an article written differently by two publications, but a simple URL checker can state "this url was used in store XYZ [with link]," so the editor can determine if its a dupe story or just a url used in two different stories...

      --
      Good quote, too many chars. Seriously, the slashdot 120 char limit sucks!
    6. Re:Dupe by seneces · · Score: 1

      Many of the dupes link articles about something from different sources. I think the editors should just start looking for dupes before they accept a submission.

    7. Re:Dupe by Anonymous Coward · · Score: 0

      Well, you're free to leave at any time. And yet you posted -- not once, but twice -- under this article. So what does that tell you about their marketing strategy?

      The only people who need to grow up are those who whine about the dupes. Speaking of business 101, don't you have work that you should be doing, rather than pissing and moaning about how Slashdot has gone downhill?

    8. Re:Dupe by Anonymous Coward · · Score: 0

      Update For for the dupe. Not going well. Appreciate all the hate mail. Really encourages improvement.

      Wahhh, wahhh, fucking wah.

      Since when has improvement of ANY sort been a goal of yours? You've been duping stories for umpteen years and have never once got off your ass and scripted even a basic URL-checker.

      Slashdot is, from top to bottom, nothing more than a half-arsed hack that sucks donkey balls so deep it chokes on them.

      Proof positive that "first to market" is often more important than quality... 'cause this place sure as hell didn't make it on the basis of code quality, story quality, editorial controls, or end-user intelligence.

    9. Re:Dupe by A+beautiful+mind · · Score: 1

      He must be slightly drunk or something, or just pissed as hell for some obscure reason.

      --
      It takes a man to suffer ignorance and smile
      Be yourself no matter what they say
    10. Re:Dupe by Anonymous Coward · · Score: 0

      AOL?

    11. Re:Dupe by phasm42 · · Score: 4, Funny

      I like how he duped the word "for" in his comment: Update for for the dupe.

      --
      "No one likes working in a hamster wheel, and your shop smells of cedar shavings from here." - TaleSpinner
    12. Re:Dupe by Anonymous Coward · · Score: 0

      And grammar 101.

    13. Re:Dupe by MarkGriz · · Score: 1

      "For for the dupe..."

      Dupe!

      --
      Beauty is in the eye of the beerholder.
    14. Re:Dupe by Anonymous Coward · · Score: 0

      Taco is going through a messy divorce, cut him some slack.

    15. Re:Dupe by poot_rootbeer · · Score: 3, Funny

      Update For for the dupe. Not going well. Appreciate all the hate mail. Really encourages improvement.

      I fed this text into Metafor and it core dumped on me!

    16. Re:Dupe by 1u3hr · · Score: 5, Insightful

      Update For for the dupe. Not going well. Appreciate all the hate mail. Really encourages improvement.

      Is he drunk or something (For for??) At least we know he reads the hate mail, so send more. Ignoring stupid avoidable fuckups certainly doesn't work.
      They can either
      1) implement a simple function that compares the main words in the article with recent ones, particularly URLs (ignoring some obvious generic ones, like the home page of newspapers). (For extra credit, spellcheck the fucking thing, and check that any URLS exist.)

      2)Read the mail that comes in from subscribers telling them they've duped (apparetly that's mostly ignored; when I send it in it often bounces, some editora apparently have invalid forwardnig addresses)

      3)Or use their own brains and just type one relevant word into the Slashdot search box:
      Search 'metafor'
      Metafor: Translating Natural Language to Code
      On March 30th, 2005 with 170 comments
      vivin writes "Computer programming is second nature to most of the Slashdot crowd. However, this is not true for the vast majority of people. Formal...

      English To Code Converter
      On March 26th, 2005 with 52 comments
      prostoalex writes "Metafor from MIT is a code visualization utility, capable of converting high-level descriptions into class and function (or method...

    17. Re:Dupe by Samus · · Score: 1

      Strangely enough the MS Word grammar checker only flags the first phrase as being bad.

      --
      In Republican America phones tap you.
    18. Re:Dupe by Darth_Burrito · · Score: 2, Insightful

      Or a spell checker, or a secondary read-only review queue, or any number of other things....

    19. Re:Dupe by Anonymous Coward · · Score: 0

      Are you people serious? Stop being a bunch of whining babies. Who really gives a rat's ass that they duped a story.

      If it weren't for these handful of people running /., you all would be asleep in your cubes or attempting to play Minesweeper on your Gentoo box.

    20. Re:Dupe by gl4ss · · Score: 1

      they already have one, it's called a search.

      then they have the mysterious future for the subscribers - where there could easily be a "VOTE DUPE" button or some such.

      but you may have noticed that nothing, absolutely nothing, has changed in slashdot in few years - it's like they stopped coding.

      --
      world was created 5 seconds before this post as it is.
    21. Re:Dupe by Anonymous Coward · · Score: 0

      Who's he yelling at? The idiots who sent hate mail over a dupe posting are the ones who really need to grow up.

    22. Re:Dupe by Anonymous Coward · · Score: 0

      "Yelling at the people who (indirectly) line your wallet. Not a good idea...."

      I suspect that the Slashdot eds would be OK with all of the people who sent nastygrams over this dup just leaving and never coming back.

      The comment was not directed at Slashdot as a whole, just the inconsiderate dirtbags who apparently feel Slashdot is worth reading (or how would they spot the dups?) and yet don't hesitate to slam the editors.

      I say good riddance.

    23. Re:Dupe by el-spectre · · Score: 1

      Alternately, readers can grow up a little and not be nasty... but naaahhh, where's the fun in that?

      --
      "Faith: Belief without evidence in what is told by one who speaks without knowledge, of things without parallel." - A.B.
    24. Re:Dupe by UserGoogol · · Score: 1

      Actually I liked it. That bit of angst allowed us to get closer to CmdrTaco, letting us have a more intimate connection with Slashdot.

      Of course, I read Megatokyo, so maybe I have an atypical reaction to angst.

      --
      "Never attribute to malice that which can be adequately explained by stupidity." -- Hanlon's Razor
    25. Re:Dupe by Anonymous Coward · · Score: 0

      Yeah, but look at the number of comments -- 52 in the original story, and 170 (and rising) in the new one. Taco is actually increasing his site's value by duping stuff.

      He's just snared 170 people into posting here who wouldn't have otherwise....

      Of course, most of us are saying he's a duping idiot, but still, it's the number of hits that matter to advertisers.

    26. Re:Dupe by Anonymous Coward · · Score: 0

      I'm offtopic? You're offtopic! This whole damned site is offtopic!

    27. Re:Dupe by snorklewacker · · Score: 5, Insightful

      > How terribly difficult would it be to add a url checker

      These are paid editors who can't be bothered to read their own website. The problem is not technological, and doesn't require a technological fix.

      --
      I am no longer wasting my time with slashdot
    28. Re:Dupe by sgant · · Score: 1

      I see the other guys at Slashdot coming in and yelling at Taco...saying that they told him that he shouldn't be on the computer...pulling his hands away and slapping them. Then sending him off to his room.

      I mean, come on...when a dupe happens 9 times out of 10 it's Taco that posted it. Keep track from now on and see what I mean.

      --

      "Leo Fender was in a 'state of grace' when he designed the Stratocaster." -- Paul Reed Smith
    29. Re:Dupe by DogDude · · Score: 1

      Damn, you put it much more clearly and succinctly than I did! You're 100% right.

      --
      I don't respond to AC's.
    30. Re:Dupe by Anonymous Coward · · Score: 0

      For those of us who dont Donate cash or code to slashdot , You get what you pay for , so either cough up some cash/code or stop bitching and vote with your feet .
      Dont bloody insult them ,your getting free services here !
      If you are a contributant then you have every right to complain . funny i dont see many people with the * moaning here.

      Respect and thank you for the site cmdrtaco it has kept me entertained for many years

    31. Re:Dupe by FidelCatsro · · Score: 1

      Dupes come and go , and I've seen them hapen in print papers .
      Editors make mistakes ! do you realise how many storys are showing up each day , a fair few , does that excuse not making checks ? No it does not however it makes it understandable . I will hapily point out dupes but i dont get mortaly offended by them.
      To counter one of your arguments though , perhaps these people would donate if they did not make as many dupes , anyway.
      I must agree on one point.
      thanking CmdrTaco for countless hours of news and entertainment !

      --
      The only things certain in war are Propaganda and Death. You can never be sure which is which though
    32. Re:Dupe by Anonymous Coward · · Score: 0

      Cuz he duped his wife?

    33. Re:Dupe by Anonymous Coward · · Score: 0

      Dupes come and go but my typos are eternal.

    34. Re:Dupe by daniil · · Score: 1
      They have an "email the on-duty editor" link for the subscribers. They also had an (experimental) text box you could type short messages (like "dupe!")in and send them to the editor, but it only lasted for a couple of days, probably because of abuse (even though i never actually did this, i certainly felt tempted to post random garbage to it).

      Oh, and they have changed a thing or two. The user page has changed a bit and the light mode front page has been crippled a bit (no more direct link to your user page, no more barrels of ultra squirrels).

      --
      Man is a slave because freedom is difficult, whereas slavery is easy.
    35. Re:Dupe by tryone · · Score: 1

      I like how he duped the word "for" in his comment

      One of them's a meta-for.

    36. Re:Dupe by Anonymous Coward · · Score: 0
      "Really encourages improvement."

      Oh for the love of God, how hard is it? I mean, do the editors even read the site? Couldn't this be solved by putting up a sign 'check for dupes' beside 'pants, then shoes'? Are the editors unpaid? Sheesh.

      And how about some other simple improvements? Like CSS? Or a decent search? Autolinking of http://* ? What is it you people do, anyway?

      Posting anon because I fear the wrath of the editors. (and that's another thing, what's with the petty punishing of critics?)

    37. Re:Dupe by jericho4.0 · · Score: 1
      Many have contributed code to stop dupes. Guess what?

      --
      "A language that doesn't affect the way you think about programming, is not worth knowing" - Alan Perlis
    38. Re:Dupe by TheDauthi · · Score: 2, Funny

      I'm sorry, I've already patented that software. My army of lightly-armed attack lawyers will be there shortly.

    39. Re:Dupe by Anonymous Coward · · Score: 0
      Update For for the dupe. Not going well. Appreciate all the hate mail. Really encourages improvement.

      The dupe problem is really getting out of control. In what way are we expected to encourage improvement!?!?! I'm sure that there's not one dupe in the last month didn't get an email to the on-call editor before the story went live. I know I've sent about 5 myself, and I've seen a number of other people say they have as well.

      If there was maybe some actual way we could help you prevent them, it would be great. Clearly you're not up to the task... and you probably shouldn't be. /. is a high volume site, and nobody reads all the articles... not even the editors.

      If there was a "flag this as dupe" button on the article preview for articles in the future, then maybe we could just click that. Maybe it would require at least 20 people to click it. I'm sure you'd get them.. Maybe it'd require you to provide the link or article ID to the other story. Maybe a vote would only count if it had the same article id as another one flagging it as a dupe.

      If an article gets enough dupe flags, then it could automatically be put on hold before it goes live, until an editor goes in and either cancels the article, or forces it to go live.

      I thought the whole reason that slashdot didn't suck was because the readers of the site could give the site feedback, and improve it on the fly. I thought that was supposed to be the whole point of slashcode. When you ignore the foundation of what makes slashdot a good site, it will begin to suck.

      I've got news for you! It's begining to suck, and your readers are trying to let you know, using the only means available to them! If you don't like it, then give us another way!!!

    40. Re:Dupe by Storlek · · Score: 1

      And how about some other simple improvements? Like CSS?

      A List Apart did this a couple years ago, but Slashdot's still the same as it ever was.

      I'd have a look at Slashcode and see if I could get it to output valid HTML/CSS like the ALA article, but I'm not sure it'd be worth it seeing as they don't seem to accept patches.

      --
      Bears don't normally eat things that talk and move backwards.
    41. Re:Dupe by PetiePooo · · Score: 1

      One of them's a meta-for.

      Booo!

      That anything like a hamaphore?

      I actually got someone on that once. We were in a code review, and he was discussing his use of a semaphore in one module. I calmly asked, "Have you considered using a hamaphore instead?"
      "What's a hamaphore?"
      "Pounding nails."
      (long pause)
      (snicker)

    42. Re:Dupe by Anonymous Coward · · Score: 0

      If I could give you +5, Funny, I'd do it in a heartbeat :)

    43. Re:Dupe by aardvarkjoe · · Score: 1
      but you may have noticed that nothing, absolutely nothing, has changed in slashdot in few years - it's like they stopped coding.
      The changes to punish people who post funny posts are the most recent that I remember. At least it demonstrates what they think is most important.
      --

      How can we continue to believe in a just universe and freedom to eat crackers if we have no ale?
    44. Re:Dupe by johnnyb · · Score: 1

      I've patented lawyers. They should be turning around and attacking you back very soon. Or perhaps attacking themselves.

    45. Re:Dupe by mizhi · · Score: 1
      Update For for the dupe. Not going well. Appreciate all the hate mail. Really encourages improvement.


      Anyone else notice the dupe in the acknowledgement of the dupe?
      --
      Humorless sig goes here.
    46. Re:Dupe by vsprintf · · Score: 1

      Whoa, you're right. How did I miss it when the army of uber chickens stopped generating my page? Layoffs at Slashdot?

    47. Re:Dupe by vsprintf · · Score: 1

      The changes to punish people who post funny posts are the most recent that I remember. At least it demonstrates what they think is most important.

      As well it should. We don't any bandwidth-wasting humor to lighten up deadly serious topics like a professor arguing with Clippy about grammar or Hillary gunning for Tommy Vercetti. In this vein, we serious Slashbots expect absolutely no attempts at humor from the editors on Friday as has happened in previous years.

    48. Re:Dupe by Sinner · · Score: 1
      Update For for the dupe. Not going well. Appreciate all the hate mail. Really encourages improvement.
      I'm still waiting for someone to tell me what this sentence means. If I wanted to play "guess the sentence subject" I'd read slashdot.jp.
      --
      fish and pipes
    49. Re:Dupe by mandos · · Score: 1

      Paid? I was under the impression that Rob isn't all that in charge of Slashdot any more (since its sale). I also thought he has been employed working on stuff other then Slashdot in recent years. Just look at how often he posts versus Timothy, Michael or Zonk. Aren't (weren't) most of the editors just friends of his like Hemos, sengan and justin++. He started this as a hobby and something fun, it grew into a great community but now it's turned into some other beast. Small wonder he gets pissed when he gets tons of hatemail everytime something small goes wrong. Hopefully he won't pull a Bill Watterson (Calvin and Hobbes) and disappear after he's done here. I would like to see the next great thing he creates and I doubt hate mail will help.

      --
      Mike Scanlon
    50. Re:Dupe by zero_offset · · Score: 1

      It occurs to me that the editors have always very carefully avoided giving anyone an opening to discuss slashdot problems -- of which duplicates are glaring, commonplace example -- yet remain on-topic. One might argue that by including this whiny mini-rant at the end of the article itself, El Kapitan Taquito has "opened the kimono" so to speak. (My apologies to anyone eating lunch as they read this.)

      --

      Slashdot quality declines as the number of hot grits posts decreases. - Provolt's Law, Apr-09-2005

    51. Re:Dupe by Anonymous Coward · · Score: 0

      Alternately, readers can grow up a little and not be nasty... but naaahhh, where's the fun in that?

      Shut up, you twit.

    52. Re:Dupe by Anonymous Coward · · Score: 0

      thanking CmdrTaco for countless hours of news and entertainment !

      Will someone please pass me the sick bucket....

    53. Re:Dupe by permaculture · · Score: 1

      Or a moderation system for the articles, as well as the posts.

      --
      Environmentalism is the new Victorianism. Everyone ties on a green corset and pretends we're virtuous.
  3. Very Cute by AKAImBatman · · Score: 5, Insightful

    While this is a cute concept, I don't think you'll be seeing computer programmers disappearing any time soon. The natural language bent was the original point of high level languages. Early languages like COBOL, SNOBOL, and BASIC were all designed to abstract programming to a level of natural language. Save for BASIC's success as a beginner's language, none of them accomplished their goal. In fact, the "natural language" design of COBOL only served to complicate the language and cause a variety of errors due to missing periods, improper spacing, and other common typing mistakes.

    It wasn't long before it was reul languages actually broke away from English and relied more heavily on easily-parsable, special characters to define structure. We can see the results of this in today's C/C++, Java, LISP, PERL (bleh), and Python languages. This new interface does nothing but try to perform some of the structural thinking done by the programmer. (Although I have my doubts as to its current real world ability.)

    So the question that then comes to bear is, "Who would use this natural language interface?" Sadly, the answer is most likely "programmers". But why would a programmer use this interface if he has to be trained in computer logic in the first place? It would seem like an unnecessary level of abstraction that would only serve to hinder a programmer's natural abilities.

    Of course, there is the documentation issue. Supposedly this interface will be useful for producing requirements in addition to code. But who produces the requirements? Not the programmer. That's usually the job of the business analyst, someone who may not even have experience with coding logic. And for code documentation, nothing quite beats the JavaDoc style documentation that has become popular in the last few years.

    I think that research like this is interesting, but I doubt it will have many uses until AI and voice recognition improves to a level similar to that seen in Star Trek. Only about 300 more years and counting. ;-)

    1. Re:Very Cute by AKAImBatman · · Score: 1

      Hmm... something seems to have broken in the pasting. Here's a patch to the second paragraph from the original document:

      It wasn't long before it was realized that programming was a structured discipline, similar in form to mathematics, and must be treated as such. Many of the more successful languages actually broke away from English and relied more heavily on easily-parsable, special characters to define structure.

    2. Re:Very Cute by krgallagher · · Score: 3, Insightful
      "But who produces the requirements? Not the programmer. That's usually the job of the business analyst, someone who may not even have experience with coding logic.

      Yeah that is what I was thinking. For this to be usefull, the requirements have to written in a format that mirrors programming logic. If you are not a progrmmer, you probably do not think in that kind of logic. That is why most the the requirements documents I see are incomplete and open to interpretation.

      --

      Insert Generic Sig Here:

    3. Re:Very Cute by Anonymous Coward · · Score: 1, Interesting


      Actually, I could see this being very helpful for guys like me that used to be pretty capable before OOP. I think I can wrap my head around the ideas, but it just seems so damn clunky and frustrating to use. I realize its actually not for people smarter than I, but this could actually make things easier for guys like me.

      Should people like me be writing software then? Well, not commercial grade stuff, but who's to tell me I can't knock together stuff for my own use using something like this?

      I just hope it works as advertised.

    4. Re:Very Cute by Anonymous Coward · · Score: 0

      Perl is "easily parsable?"

      It was Alan Perles at Yale who summed up Cobol's success: It has the lowest thoughts per keystroke ratio, so it doesn't strain the average brain.

    5. Re:Very Cute by Anonymous Coward · · Score: 0
      It wasn't long before it was reul languages actually broke...
      ERROR: "reul" UNKNOWN ATTRIBUTE OF "LANGUAGE" OBJECT
    6. Re:Very Cute by damyata · · Score: 1

      Looking at the screen shot, it looks like the system will ask the user (or is it programmer?) questions about what they are defining if the definition is incomplete. This seems to me to be the most useful aspect of this tool, if it is viewed simply as a tool to help define requirements rather than a complete software development solution.

    7. Re:Very Cute by cmorgan47 · · Score: 1

      But who produces the requirements? Not the programmer. That's usually the job of the business analyst,

      are you hiring?
      every project i've worked on here that had a BRD had one that was written by a programmer...some of them by me. this is the source of much aggrivation among the developer staff.

      --
      no i have not shot my gun in the air and gone 'Ahh!'
    8. Re:Very Cute by AKAImBatman · · Score: 4, Informative
      My guess is that if you're having trouble wrapping your head around OOP, then you're going to have trouble wrapping your head around the ins and outs of a natural language interface.

      For what it's worth, OOP is quite easy. The first thing you need to think is data encapsulation. Data encapsulation is simply the practice of bundling related data together. i.e. Color, make, year, and model are all attributes of a car. So you'd tend to put them together. You know, like structs. For example, a game sprite might have x, y, width, height, and direction variables.
      class Sprite
      {
      int x;
      int y;
      int width;
      int height;
      int direction;
      }
      Of course, we want to know what the direction stands for, so we add static constants:
      class Sprite
      {
      const RIGHT = 0;
      const LEFT = 1;
      const UP = 2;
      const DOWN = 3;

      int x;
      int y;
      int width;
      int height;
      int direction = RIGHT;
      }
      Now for the truly OOP part. We need a way of making the data operate on itself. For an example, I'll choose changing direction.
      class Sprite
      {
      const RIGHT = 0;
      const LEFT = 1;
      const UP = 2;
      const DOWN = 3;

      int x;
      int y;
      int width;
      int height;
      int direction = RIGHT;

      void changeDirection(int dir)
      {
      direction = dir;
      }
      }
      Doesn't seem like much, but what if we want to ignore improper directions?
      class Sprite
      {
      const RIGHT = 0;
      const LEFT = 1;
      const UP = 2;
      const DOWN = 3;

      int x;
      int y;
      int width;
      int height;
      int direction = RIGHT;

      void changeDirection(int dir)
      {
      if(dir < 0 || dir > 3) return;

      direction = dir;
      }
      }
      In a real OOP program, we'd probably throw an exception, but you get the idea I hope. Now that we have our Sprite class, it can be treated as a complete data type of its own:
      Sprite sprite = new Sprite();

      sprite.changeDirection(Sprite.DOWN);
      There you have it. A five minute introduction to OOP. Hopefully this will help unblock whatever mental issue is in your way. (Or badly written books as the case may be.) :-)

      (Stupid lameness filter. Recognize code will you? No, that would be too difficult wouldn't it? Stupid lameness filter. Did I mention how stupid the lameness filter is? Recognize code will you? Stupid lameness filter. Recognize code will you? Stupid lameness filter. Recognize code will you? Stupid lameness filter. Recognize code will you? Stupid lameness filter. Recognize code will you? Stupid lameness filter. Recognize code will you? Stupid lameness filter. Recognize code will you? Stupid lameness filter. Recognize code will you?)
    9. Re:Very Cute by bratboy · · Score: 3, Interesting
      I think that most "real" programmers will have approximately the same reaction to this, which will be somewhere between a shrug and a snicker. To be an effective programmer you need to be able to accept certain formalisms, and for people who "get it" (i.e., are vulnerable to the snow crash virus) high level programming languages are quite readable. (have you ever tried explaining to a neophyte why you would use do-while vs. while{} vs. for(;;)? or variables?)

      In working with designers (especially inexperienced ones) on video game projects, one of the things I noticed is that they have no conception of what is possible and what isn't. They will agonize for a week on how to simplify something that isn't actually difficult, and then assume that you can easily throw in something that's impossible. Part of becoming an experienced designer is learning the difference between the two.

      Junior programmers have a different problem - they don't know how to structure their programs. Building experience is primarily learning patterns you can use to solve problems (a good, experienced programmer will look at "Design Patterns" and be able to tick off a large percentage that s/he uses, but never formalized, and maybe disagree with one or two). Switching to natural language for code specification isn't going to help.

      The one area in which this might be useful is in scripting languages - using the video game example: when you want your designers to be able to put together behaviors for agents without having to learn some arbitrary language that you've thrown together. You're still probably going to have to have a programmer give the scripts the once over to make sure that they're not doing something silly, but it might be a more approachable interface for the designers.

      It would actually be much more useful to have an IDE which allowed you to add graphics or voice as comments (how many times have I wanted to add a small sketch as a comment to some graphics code?).

      daniel

    10. Re:Very Cute by Walrus99 · · Score: 0

      Hey, this looks natural to me: if ($dataarray[0][4] ne "endinfo"){ print "endinfo doesnt match\n"; } if ($dataarray[0][1+$infonum+$comnum] ne "endcoms"){ print "endcoms doesnt match\n"; } if ($dataarray[0][2+$infonum+$comnum+$quanum] ne "enddata"){ print "enddata doesnt match\n"; } # set up infoarray for ($i=0;$i=$recordnum-1;$i++){ for ($j=0;$j=$infonum-1;$j++){ $infoarray[$i][$j]=$dataarray[$i][$j]; } } # set up comarray, includes name and contact info: 0-5, 6 = other? comment for ($i=0;$i=$recordnum-1;$i++){ for ($j=0;$j=$comnum-1;$j++){ $k=$j+$infonum+1; #($infonum-1)+1+1 $comarray[$i][$j]=$dataarray[$i][$k]; } }

    11. Re:Very Cute by John+Courtland · · Score: 1

      How very right you are. Going from coding C/C++ to COBOL is like having your schwantz cut in two and then told to sleep with as many women as possible. I think Grace Hopper even apologised for the atrocity that COBOL is. It makes no damn sense after writing code in most procedural languages. Don't get me started on PIC(9) X or whatever. I don't even know how COBOL does all that internally, but to the programmer, it is presented as BCD, but base 10 instead of base 16. What the hell is that?!?

      --
      Slashdot is proof that Sturgeon's Law applies to mankind.
    12. Re:Very Cute by AKAImBatman · · Score: 1
      It would if you cleaned it up:
      if ($dataarray[0][4] ne "endinfo")
      {
      print "endinfo doesnt match\n";
      }

      if ($dataarray[0][1+$infonum+$comnum] ne "endcoms")
      {
      print "endcoms doesnt match\n";
      }

      if ($dataarray[0][2+$infonum+$comnum+$quanum] ne "enddata")
      {
      print "enddata doesnt match\n";
      }

      # set up infoarray
      for ($i=0;$i=$recordnum-1;$i++)
      {
      for ($j=0;$j=$infonum-1;$j++)
      {
      $infoarray[$i][$j] = $dataarray[$i][$j];
      }
      }

      # set up comarray, includes name and contact info: 0-5, 6 = other? comment
      for ($i=0;$i=$recordnum-1;$i++)
      {
      for ($j=0;$j=$comnum-1;$j++)
      {
      $k=$j+$infonum+1;
      #($infonum-1)+1+1
      $comarray[$i][$j]=$dataarray[$i][$k];
      }
      }
      FWIW, PHP could really do with a "println" function. It would allow programmers to remove those ugly "\n"s from their Strings.
    13. Re:Very Cute by merlin_jim · · Score: 1

      In my practice the chief architect both designs the system and implements it. In many cases the design and requirements are done by the whole project team working together.

      While this is an interesting idea I just don't see it flying. Now if they could unite it with UML... I'd love for my requirements to move me from use cases to logical design automagically...

      --
      I am disrespectful to dirt! Can you see that I am serious?!
    14. Re:Very Cute by ArsonSmith · · Score: 3, Insightful

      I want to do this backwards. Can I feed it source code and have it output natural language?

      --
      Paying taxes to buy civilization is like paying a hooker to buy love.
    15. Re:Very Cute by poot_rootbeer · · Score: 1

      That is why most the the requirements documents I see are incomplete and open to interpretation.

      Only most? All human languages are intrinsically imprecise and open to interpretation. If a requirements doc is so fixed and precise that it's basically written in a strict form of pseudocode to start with, turning that into something a machine can reproduce consistently is fairly trivial; anything more, and you really need a person who speaks both human and machine language (or some higher-level proxy to it) to act as a translater.

    16. Re:Very Cute by Harassed · · Score: 2, Funny

      I'm afraid that your code infringes my patent #3254324 "Method of writing computer code using ASCII characters so that they can be displayed on an internet site"

    17. Re:Very Cute by AKAImBatman · · Score: 1

      Unfortunately, no. Code tends to lack a great deal of meta-data that describes what the interactions between code modules are trying to achieve at a human interface level. The NLI -> code interface appears to actually throw away a lot of coherent info when producing code.

    18. Re:Very Cute by Anonymous Coward · · Score: 0

      you misdefined oop

      what you are talking about is ADS(abstract data types)

      "object oriented" specifically refers to the ability to extend and/or polymorph similar classes.

    19. Re:Very Cute by Chanc_Gorkon · · Score: 1

      Example of Picture Statements:

      000340 01 CAT-TYPE PIC X(15) VALUE 'KALIKO'.
      000350 01 DOG-TYPE PIC X(15) VALUE 'SCHNAUZER'.
      000350 01 Z-COUNT PIC 9
      000351 01 A-COUNT PIC 9(15)

      Yeah....they suck and can be wordy. Just wait til you break down one variable into different levels. It makes it real easy to parse a variable into different parts, but man does it generate a TON of code.

      --

      Gorkman

    20. Re:Very Cute by Anonymous Coward · · Score: 0

      <?php

      // FWIW, you can declare your own procedure in PHP
      function println($text) {
      print "$text\n";
      }

      ?>

    21. Re:Very Cute by I_Want_This_ID · · Score: 1

      Why in articles like this do I never read anything about the underlying data structures. All I hear about it code code code. It's almost as if a data model is the dumping ground and the code is what's important.

      By the way, has anyone ever heard of ORM (Object Role Modeling)? Natural language modeling of information requirements that uses a mathematical formula to generate an Entity Relationship structure.

      http://www.orm.net/
      http://www.objectrolemodeling.com/
      http://www.ormcentral.com/
      http://www.inconcept.com/jcm/

    22. Re:Very Cute by ityllux · · Score: 1

      I hope that no one tries to learn OOP from this. Not only is it a poor explanation and example of what OOP is, but the code wouldn't even compile if you were to try.

      If you want to learn OOP with Java somewhere, try this introduction.

      </offtopic>
    23. Re:Very Cute by AKAImBatman · · Score: 1

      you misdefined oop

      No, I tried to help a poor sap wrap his head around OOP code without confusing the hell out of him. The number one issue with teaching OOP to an existing programmer is that he tends not to understand how it relates to what he's coded. Encapsulation is the key to helping them understand basic objects. Once they understand basic data encapsulation, then mutators start to make sense. ("Oh, you mean I can write changeDirection(int dir) in the class instead of changeDirection(struct *dirStruct, int dir)? Cool!")

      Once that encapsulation is down, then Objects (including objects as Abstract Data Types) make sense. With an understanding of objects in hand (even if it's still rather imprecise), the concept of inheritance begins to flow naturally. Inhereitance leads to an understanding of abstract objects, and abstract objects leads to an understanding of polymorphism.

      Backwards? Hell, yeah! But it works. If you don't believe me, go try explaining what polymorphism is to a COBOL programmer. Or a C programmer for that matter. They'll constantly ask you for concrete examples. If you give them one, they'll say "Oh, that's what polymorphism is!" To which you'll reply, "No, no, no! That's just an example of polymorphism!" Which brings you back to blank stares and more requests for examples. Rinse and repeat.

    24. Re:Very Cute by AKAImBatman · · Score: 1

      the code wouldn't even compile if you were to try.

      That's because it's psuedo code. I don't know what language he uses, so I tried not to assume much. Note the use of "const" for example, instead of "static final int".

      Not only is it a poor explanation

      Ah, but that's the key. It's not an explanation of OOP. It's an explanation of how to code something using OOP structures. Once he starts coding it, the rest should flow naturally. :-)

    25. Re:Very Cute by Anonymous Coward · · Score: 0

      Now you have to use parens, whereas "print" is a statement that doesn't require them. Of course, perl lets you declare functions so you don't need parens, but hey that's just more perl line noise, right?

    26. Re:Very Cute by Anonymous Coward · · Score: 0

      You are fracking lame. If you can do better, why don't you do so, instead of insulting the parent poster.

      To introduce someone to OOP concepts you start by explaining objects. That's what he did. His definition matched the one given in the Sun tutorial you linked to.

      You think throwing in talk about polymorphism, abstraction, specialization, and encapsulation would help his target audience (namely, those who have trouble wrapping their head around OOP concepts) at this stage?!

      The grandparent poster did an adequate job of explaining OOP basics, for his target audience. You, my good sir, are a stupid troll.

    27. Re:Very Cute by Anonymous Coward · · Score: 0

      I think all programming languages are cute concepts. which is why I only use hardware.

    28. Re:Very Cute by Walrus99 · · Score: 0

      Yes, it does look better with returns and tabs, I was just to lazy to add them back in after I cut and pasted the code in. Anyway, my point is computer language is a natural language to those who speak/write it even if it looks like gobbeldygook to the uninitiated.

      As for Perl vs. PHP its just a matter of: Do you want the HTML in the code or the code in the HTML?

    29. Re:Very Cute by Anonymous Coward · · Score: 0

      The requirements themselves should be trivial to implement. If they aren't then you have programmers guessing at requirements, and the client no longer has control of his project.

      This Is Bad.

    30. Re:Very Cute by John+Courtland · · Score: 1

      Oh yeah, I remember that. Thanks for the correction, too. It's been a few years since I wrote any COBOL. I also remember having to be in the right column or the IBM compiler/interpreter (I forget how they implement COBOL on MVS on the new z390's) would yell. Then JCL.... Oh god, two of the worst technologies, side by side.

      --
      Slashdot is proof that Sturgeon's Law applies to mankind.
    31. Re:Very Cute by jericho4.0 · · Score: 2, Informative
      C++, the language many people firt work with in OOP, is not the easiest way to go about it. If you already know C, look at Objective-C. It is C + a very small set of OOP extensions.

      If you don't know C, look at Python.

      The OOP paradigm is much easier to get in the right language.

      --
      "A language that doesn't affect the way you think about programming, is not worth knowing" - Alan Perlis
    32. Re:Very Cute by Anonymous Coward · · Score: 0
      I didn't understand OOP 3 years ago (my colleagues might say I still don't) and that was after several months worth of experimentation with C++ and Java, and at least five textbooks full of examples very similar to yours.

      The AC you were trying to help may well be in the same situation. Maybe even you are. I agree with grandparent that what you are illustrating is ADT's, not OO. I think part of the reason it took me so long to get the hang of OOP is that I made the same mistake, confusing ADT's and OO (the textbooks didn't help there either).

      ADT's are not a step towards understanding OOP. At least not for me. What helped me were functional languages such as Haskell, where you can encapsulate behaviour and data within functions which are themselves passed between other functions (really very similar to polymorphism).

      Maybe its me who still doesn't understand OO. My favourite OO language is PHP4, but several of my OO fan friends have (for different reasons) said its not "properly OO".

    33. Re:Very Cute by AKAImBatman · · Score: 1

      If you already know C, look at Objective-C.

      Are you trying to scar the poor kid for life? ObjC has about as much in common with C as COBOL has with LISP!

      For all the bad press it gets, Java really is the best OOP language for those just getting started. *Especially* if they've programmed C before. C# is also acceptable, albeit mostly a ripoff of Java. :-)

    34. Re:Very Cute by hachete · · Score: 1

      First program: "make it so"

      There, that's half the work done and a thousand phbs can lie back in relief.

      Roger

      --
      Patriotism is a virtue of the vicious
    35. Re:Very Cute by AKAImBatman · · Score: 2, Insightful

      My favourite OO language is PHP4

      *Shudder*

      PHP4 aside, I'm not really sure what is so difficult to understand about OOP, so maybe you can help me understand the mental block some people have. Here's my five minute buildup. Let me know where it is that you had hangups.

      OOP at its core is a way of designing your code so that related data and behaviors are encapsulated together. That is OOP. Period. End of story. Many languages can implement this, including JavaScript, PHP, and even C! (Amazing what one can accomplish with some function pointers. ;-))

      This means that the proper way to design code is now to achieve the end goal by first matching each object to a "real" concept that will exist in the final product. This allows for a "divide and conquer" strategy whereby programmers flesh out each object independent of the rest.

      Unfortuately, OOP leads to several related concepts which tend to be quite confusing. For example, inheritence is a natural extension to OOP philosophy. By piling up contained data and methods, an object can go from being a generic "catch-all" to a specific description of the modelled object.

      Once you have inheritence, though, then you suddenly have a situation involving polymorphism. You can refer to an object by its parent type (e.g. Car) and expect it to work just fine, but you can also investgate some of the special features of the more specific sub-class (e.g. Cavalier).

      Even more interesting, is the concept of an ADT. At its core, ADT really just describes how a given set of entities can be used to define another. A common example is money. You have dollars, and you have cents. It differs from a regular number in that 1/100th is the smallest unit allowed. An ADT encapsulation allows you to enforce these rules. This example, however, tends to be rather... erm... abstract.

      A more solid example is a plane. A plane is an object. But a plane is made up of a fusilage, wings, and engines. Each of those are objects unto themselves, which can be further broken down into concepts like control surfaces, turbines, windows, etc. The only difference with computers, is that we stop when we can finally represent the structure at the lowest level a computer can understand: binary encodings. For practical purposes, binary encodings refers to integers, floating point numbers, and strings of bytes or words.

      Am I forgetting any core concepts here?

      The two things I usually see people trip up on are:

      1. A false sense of encapsulation. Encapsulation implies instantiation. i.e. The code is a description of a data structure. You should be able to reuse that data structure as many times as you like, and you should be able to use it as a single entity. This is not always understood, and results in downright silly "OO" implementations like that seen in Visual Basic and VBA. (VB simply collects a set of functions under a given filename. There's no real opportunity to instantiate the object and pass it around in variables.)

      2. Difficulty in breaking the linear code habit. Many coders never really got beyond the concept of writing pages and pages of procedural code. The only reason why they use functions at all is because they were told to. They tend to misunderstand why a function is discreet, and have been known to heavily abuse global variables. Unfortunately, this problem goes deeper than a misunderstanding of OOP, and must be corrected before OOP can be introduced at all.

    36. Re:Very Cute by Chanc_Gorkon · · Score: 1

      Actually JCL wasn't that bad. I kind of liked it. Not all that different then scripting languages, just a heck of a lot stricter in the formatting. Compilers as of late have lightened up on the formatting a hare plus let you shorten things by using some macros as well. I remember when I was taking COBOL (don't know WHY I was taking it....just that it was interesting), there was alot of standards in the works for COBOL 2000 or whatever the next standard was going to be after 85, which was still commonly used. Last I had heard it still had not been settled, but that may have changed. Have not worked with COBOL in many years.

      --

      Gorkman

    37. Re:Very Cute by Storlek · · Score: 1

      I'm not quite sure about Java being the best. It is a good language, but it has a lot of complexity. Just take a look at what the most basic program takes: public static void main(String[] args), which has to be in a class that must have the same name as the file that it's saved in. When I took a Java programming class, the first day was focused entirely on explaining how to get a program that didn't even do anything to compile and run.

      Python has a much cleaner, syntax, and it's especially good as a first language. It's amazingly easy to understand, and when you're not quite sure how to do something, given a little bit of thought you can (at least I can) usually guess the code and it'll run on the first or second try. Its OO is much easier to get than Java, C++, or any of those languages -- I never really "got" OOP until I learned how to do it with Python. OO in Java might be nice, but it makes my head hurt. There's just too much to remember in order to do something simple.

      By the way, to relate all this rambling to TFA, take a quick look at the screenshot: that's Python code there. ;)
      (No, not the text on the left side.)

      --
      Bears don't normally eat things that talk and move backwards.
    38. Re:Very Cute by AKAImBatman · · Score: 1

      You're missing the part about "best OOP language to start with". A programmers first language, period, should never be an object oriented one. :-)

    39. Re:Very Cute by John+Courtland · · Score: 1

      The formatting wasn't so bad as getting the syntax right to set up VSAM. Also, if you used a TAB character in ASCII and it did not transfer to EBCDIC as spaces, and didn't know any better, it seriously wasted a full day to figure out why MVS was rejecting your job.

      --
      Slashdot is proof that Sturgeon's Law applies to mankind.
    40. Re:Very Cute by Anonymous Coward · · Score: 0

      FTW: MIT's Metafor converts natural language text into a precursor computer language. The software promises to make it easier for software developers to evaluate ideas.

      This doesn't sound to me like it's intended to give non-programmers the ability to program. It's about existing programmers being able to express their program flow, in english, and having it printed out in a manner which will look more like the final structure.

    41. Re:Very Cute by Storlek · · Score: 1

      Why not?

      Python's object orientation is done in such a way that it won't force you to think OO if you're not trying to write OO. It's just as easy to write a procedural program in Python and not create one single object class, and do pretty much everything you can do in an OO style. It can go both ways.

      --
      Bears don't normally eat things that talk and move backwards.
    42. Re:Very Cute by Anonymous Coward · · Score: 0

      *Shudder*

      What I like most about PHP4 is that objects are passed by value but there is no "slicing" to break polymorphism. Syntactically that is. Presumably under the hood, pointers are still passed around. But much of the code I have to write is simpler.

      This means that the proper way to design code is now to achieve the end goal by first matching each object to a "real" concept that will exist in the final product.

      Nowadays I prefer to identify the messages (methods) first, then group them into classes. ISTR a recent, popular book advocates this approach. I can't remember the title.

      For example, inheritence is a natural extension to OOP philosophy. By piling up contained data and methods, an object can go from being a generic "catch-all" to a specific description of the modelled object.

      I used to get carried away splitting classes into deep hierarchies, adding/overriding just one or two functions at each level. These days I mostly stick to 2 levels - one base class or interface and a few direct subclasses. I don't know why so many textbooks like to use complex hierarchies as examples.

      You can refer to an object by its parent type (e.g. Car) and expect it to work just fine, but you can also investgate some of the special features of the more specific sub-class (e.g. Cavalier).

      An example comes to mind. Suppose I am working on a route planning application (which in fact I am). There are different kinds of vehicle which may need to take different routes between the same 2 locations (perhaps there are low bridges. Or different speed limits for different vehicles). I need to be able to work out the fastest route between 2 towns and highlight it on a map.

      I might come up with something like this:

      interface MapWindow
      {
      RoadNetwork getRoadNetwork();
      Comparator getRouteTimeComparator();
      Comparator getRouteDistanceComparator();
      void onMouseClick();
      // ...
      }

      interface RoadNetwork
      {
      TownDB getTownDB();
      VehicleDB getVehicleDB();
      }

      interface TownDB
      {
      GridRef findTown(String townName);
      }

      interface VehicleDB
      {
      Vehicle findModel(String modelName);
      void LoadCustomVehicles(File source);
      }

      interface VehicleSpec
      {
      boolean canUse(Road road);
      float maxSpeed();
      }

      interface VehicleSpecParser
      {
      VehicleSpec readSpecFromStream(PushbackInputStream source);
      }

      interface Vehicle
      {
      Route shortestRoute(GridRef from, GridRef to);
      Route fastestRoute(GridRef from, GridRef to);
      }

      interface Route
      {
      void highlightOnMap();
      DirectionsWindow listDirections();
      }

      This is obviously incomplete but I hope it gives a good idea of how I would implement the system. These interfaces are deliberately application specific. If I were focusing on ADT's I might think "but a vehicle is self contained. It shouldn't need to be inherently associated with a road network. What if its on a racetrack, etc etc". Should the vehicle type and the kind of universe it inhabits (road/racetrack/car factory) be orthogonal? I don't think they can. But that's the kind of thing I used to try to do.

      A more solid example is a plane. A plane is an object. But a plane is made up of a fusilage, wings, and engines. Each of those are objects unto themselves, which can be further broken down into concepts like control surfaces, turbines, windows, etc. The only difference with computers, is that we stop when we can finally represent the structure at the lowest level a computer can understand: binary encodings. For practical purposes, binary encodings refers to integers, floating point numbers, and strings of bytes or words.

      I think you would stop a lot sooner than that (unless of course y

    43. Re:Very Cute by mabinogi · · Score: 1

      The trouble is, that you've nicely explained the easiest part of OOP.

      Encapsulation, abstract data types, polymorphism and all the other OO buz words are really easy to understand.

      The part that's difficult to wrap your head around, are the pratical design issues - shallow vs deep class heirarchies, use of composition and delegation, when to throw an exception, and when to use a return value, whether to use a dependency injection or service locator approach, and so on.
      It all seemed so much simpler in C.

      --
      Advanced users are users too!
    44. Re:Very Cute by ityllux · · Score: 1

      As someone else has already mentioned, he was explaining abstract data types in Java-ish code, not OOP.

      OOP is a much heavier topic and does require a deeper understanding of the material to explain. One does not introduce OOP to someone by giving them code that merely explains the syntax which OOP is implemented upon. So yes, his "target audience" would have trouble, but why was he trying to teach this material to "those who have trouble wrapping the head around OOP concepts" anyway? That's like someone mentioning "nuclear physics" in a post and me replying with some explanation of what the periodic table is as "nuclear physics basics".

      For clarification, I did not insult the poster and I was not trolling, I merely stated a simple opinion that this tutorial is the wrong way to go about teaching OOP. This opinion was stated with the only authority that I have -- as a professor who teaches an OOP class.

    45. Re:Very Cute by Jeremi · · Score: 1
      Can I feed it source code and have it output natural language?


      Absolutely! Here's a link to a program that will do that for you.

      --


      I don't care if it's 90,000 hectares. That lake was not my doing.
  4. ahem... by YouMakeMeSoANGRY · · Score: 0

    *cough* cobol *cough*

  5. cool by Anonymous Coward · · Score: 1, Funny

    can it translate back into English?

  6. Prior Art by Anonymous Coward · · Score: 0

    It was called Cobol - 30 feet of printed code on a line printer to display a single line of text.

  7. I can imagine... by JamesP · · Score: 4, Funny

    Verbs translated to functions?? Nouns to variables??

    int jerk_at_counter, hottie_in_accountancy, dork_at_it;

    kill(boss);
    send(intern,hell);

    Yeah, that will work...

    --
    how long until /. fixes commenting on Chrome?
    1. Re:I can imagine... by gregfortune · · Score: 1

      Hey! That's my code! /me SCO's JamesP

    2. Re:I can imagine... by Infinityis · · Score: 2, Funny

      I'll bet this will cause problems for SCO...The only code they can patent by this method is

      while (true) {
      file(lawsuit);
      }

  8. Great! by Eusebo · · Score: 5, Funny

    Now all we need is a tool that will take a user's brain and turn it into solid requirements.

    --
    It is quite simple
    Haiku should not be funny
    Try a Senryu
    1. Re:Great! by tomhudson · · Score: 1
      Now all we need is a tool that will take a user's brain and turn it into solid requirements.
      Could you settle for liquid requirements?
      Certainly the "[tt]ools" in Washington are interested.
      "We're programming in Metafor".
      "What's a metafor"
      "Nothin', what's a matter for you?"
    2. Re:Great! by Anonymous Coward · · Score: 0

      You are making a dangerous assumption here... ...maybe zombies visited them or they could be the users that I always seem to get stuck with (same thing)

    3. Re:Great! by Infinityis · · Score: 1

      I often find that a lead pipe is a solid enough requirement to make the necessary adjustments.

  9. of little value here! by hugesmile · · Score: 4, Funny
    Metafor doesn't handle run-on sentences (or bad English) that well."

    Forget it being a tool for this crowd then!

    1. Re:of little value here! by AKAImBatman · · Score: 1

      of little value here!

      The natural language interface is of little value here!

      Forget it being a tool for this crowd then!

      You may then forget about the natural language interface being a useful tool for the Slashdot.org crowd!

      There, that should debug it. ;-)

    2. Re:of little value here! by hugesmile · · Score: 1, Funny
      Value(Natural_Language_Interface) = Unvaluable

      For i=1 to count(This_crowd)
      i.remove(tool_from_toolkit)
      next i

      Stop

      We're getting there....

    3. Re:of little value here! by Infinityis · · Score: 1

      What are you talking about you insensitive clod all your base are belong to us!

    4. Re:of little value here! by Anonymous Coward · · Score: 0

      $nl=-use;for $i-@crowd{$i.remove($tool)};

      Have we arrived yet?

    5. Re:of little value here! by budgenator · · Score: 1

      I'd learn english but I'm having a bit of a problem finding a concise formal description of it. Google seems to to be able to find anything like it.

      --
      Apocalypse Cancelled, Sorry, No Ticket Refunds
  10. It is coming to pass... by HaeMaker · · Score: 4, Funny

    "Make it possible for programmers to write programs in English, and you will find that programmers can not write in English."

    http://www.murphys-laws.com/murphy/murphy-comput er .html

    1. Re:It is coming to pass... by shawn(at)fsu · · Score: 0

      It's like you read my post about poor grammar yesterdays story.

      I wrote this just a few hours ago

      yeah concepts/developments in programming like these scare me.

      --
      500 dollar reward for tip(s) leading to the arrest of the person(s) who stole my sig.
    2. Re:It is coming to pass... by spellraiser · · Score: 1
      Ah, you mean something like this:
      // "Hello World" by Stephen McGreal.
      // Note that the views expressed in this source code do not necessarily coincide with those of the author :o)

      Gr34t l33tN3$$?
      M3h...
      iT 41n't s0 7rIckY.

      l33t sP33k is U8er keWl 4nD eA5y wehn u 7hink 1t tHr0uGh.
      1f u w4nn4be UB3R-l33t u d3f1n1t3lY w4nt in 0n a b4d4sS h4xX0r1ng s1tE!!! ;p
      w4r3Z c0ll3cT10n2 r 7eh l3Et3r!

      Qu4k3 cL4nS r 7eh bE5t tH1ng 1n teh 3nTIr3 w0rlD!!!
      g4m3s wh3r3 u g3t to 5h00t ppl r 70tAl1_y w1cK1d!!
      I'M teh fr4GM4stEr aN I'lL t0t41_1Ly wIpE teh phr34k1ng fL00r ***j3d1 5tYlE*** wItH y0uR h1dE!!!! L0L0L0L!
      t3lEphR4gG1nG l4m3rs wit mY m8tes r34lLy k1kK$ A$$

      l33t hAxX0r$ CrE4t3 u8er- k3wL 5tUff lIkE n34t pR0gR4mm1nG lAnguidGe$...
      s0m3tIm3$ teh l4nGu4gES l00k jUst l1k3 rE41_ 0neS 7o mAkE ppl Th1nk th3y'r3 ju$t n0rMal lEE7 5pEEk but th3y're 5ecRetLy
      c0dE!!!!
      n080DY unDer5tAnD$ l33t SpEaK 4p4rT fr0m j3d1!!!!!
      50mE kId 0n A me$$4gEb04rD m1ghT 8E a r0xX0r1nG hAxX0r wH0 w4nT2 t0 bR34k 5tuFf, 0r mAyb3 ju5t sh0w 7eh wAy5 l33t ppl cAn
      8E m0re lIkE y0d4!!! hE i5 teh u8ER!!!!
      1t m1ght 8E 5omE v1rus 0r a Pl4ySt4tI0n ch34t c0dE.
      1t 3v3n MiTe jUs7 s4y "H3LL0 W0RLD!!!" u ju5t cAn'T gu3s5.
      tH3r3's n3v3r anY p0iNt l00KiNg sC3pT1c4l c0s th4t, be1_1Ev3 iT 0r n0t, 1s whAt th1s 1s!!!!!

      5uxX0r5!!!L0L0L0L0L!!!!!!!

      - The L33t programming language

      --
      I hear there's rumors on the Slashdots
    3. Re:It is coming to pass... by Anonymous Coward · · Score: 0

      You mean to tell me that English majors will be able to use their degrees for something constructive?! Sweet! There's hope for me yet!

    4. Re:It is coming to pass... by greg1104 · · Score: 1

      It somehow just feels right that when I try to access most of the pages on the Murphy's Laws site right now, like following your link, they return an error:

      "Murphy's error 404 law: The chance of receiving a 404 error page is in inverse proportion to your need to find the page"

  11. Dejavu by thebra · · Score: 0

    This is still in the developers section. Time to post the highest moded comments and score me some karma points!

  12. Bad English by bmac83 · · Score: 2, Insightful

    How well would Metafor handle English like "nouns phrases become objects"?

    1. Re:Bad English by BarryNorton · · Score: 1

      nounPhrases.become(objects);

    2. Re:Bad English by meburke · · Score: 1

      Or: "It is not necessary to read this sentence."

      "It tears me up!", she said as tears streamed down her cheeks.

      Of course, the second sentence doesn't DO anything, so it's unlikely to be included in an instruction set, but English is porbably one of the worst possible languages for instructing a computer. Chinese might be better. Chinese is simpler and the grammer is exquisitely consistent even in expressing complex ideas.

      --
      "The mind works quicker than you think!"
    3. Re:Bad English by ChairmanMeow · · Score: 1

      "Time flies like an arrow."
      "Fruit flies like a banana."

      --
    4. Re:Bad English by n3k5 · · Score: 1
      "Time flies like an arrow."
      "Fruit flies like a banana."
      The second sentence points out that the first could be interpreted, apart from its common meaning, as telling you about the mysterious species of the time flies, which like an arrow. But wait, there's more! It could also be read as an instruction demanding that you time flies like you would time an arrow. According to my linguistics prof, there's a fourth way to read it, but I haven't found it yet. Maybe a native English speaker could help? Update For for the offtopic rant. Appreciate all the replies.
      --
      but what do i know, i'm just a model.
  13. Because the average joe wants to be a programmer? by Proc6 · · Score: 5, Funny

    Yeah, I know my neighbor with an IQ of 7 would rather be writing code that parses XML work orders and turns them into statistical graphs than watching NASCAR. It's just that complicated Java syntax kicks his ass so he's kicking back with a 6 pack of Black Label waiting for this technology to come out.

    --

    I'm Rick James with mod points biatch!

  14. Not to downplay but... by DarthVeda · · Score: 1

    Typing english into a translator at google does not spew out perfect Chinese. Likewise, a machine english-to-code translator will never be as good as the real thing.

    It's all about interpretation.

    1. Re:Not to downplay but... by Paradise+Pete · · Score: 1
      Typing english into a translator at google does not spew out perfect Chinese. Likewise, a machine english-to-code translator will never be as good as the real thing.>

      I ran that through my Natural Language Summarizer. It said:

      "It doesn't work now, therefore it will never work."

      Then it made a sarcastic comment, but there's no point in repeating that here.

    2. Re:Not to downplay but... by DarthVeda · · Score: 1

      As they stand now, they simply don't have the intuitive skills of an actual human.

      Machines don't say: "well you said X but perhaps you mean Y?"

      They typically say: "You said X you get X"

      It will take a lot more research into simulating human intuition before this becomes a really sharp coder.

    3. Re:Not to downplay but... by Anonymous Coward · · Score: 0

      I don't see what your reply has to do with the parent post. Did you mean to put it elsewhere?

  15. Oh, great... by tomhudson · · Score: 2, Insightful
    Just what the world needs, a way for more non-coders to produce ssss-hhhhh-iiiii-[tt]tt-yyyy software.

    I'm sure we've all experimented with header files that define an english-like syntax for our code. We've dumped it for a reason - it's not as efficient.

    Hiding what's going on "under the hood" is never a good thing. Good code, like good food, depends on good ingredients, and the knowledge of how to combine them.

    Crap food, on the other hand, can be produced by anyone with a stove and delusions of cooking ability.

    1. Re:Oh, great... by Otter · · Score: 2, Insightful

      Yes, that's excellent reasoning. Anyone who isn't a trained chef should be denied access to their stove, and it should be made impossible for anyone untrained (or out of practice) in languages that meet your standard of snobbishness to solve their problems without having to pay you.

    2. Re:Oh, great... by Taladar · · Score: 2, Funny

      Anyone who had never even watched someone cook something for a few hours and just knows the names of the meals that taste best but doesn't even know the names of all ingredients or how they look raw should be denied access to a stove, yes.

    3. Re:Oh, great... by tomhudson · · Score: 2, Insightful
      nd it should be made impossible for anyone untrained (or out of practice) in languages that meet your standard of snobbishness
      Definitely, at least when it comes to business apps.

      Would you trust a surgeon who's 15 years out-of-date to operate on you?

      So, would you trust someone to write code who is even a couple of years out of date? Things change rapidly in this field, dude. Us old far[tt]s remember when it was a kinder, gentler world ... but it's not like that any more.

      Just like you wouldn't give a young kid unfettered access to a stove without supervision, it would be insane to trust your business to someone who hasn't got a clue when it comes to what's going on under the hood.

      Again, to extend YOUR analogy, would you like your chef to be someone who doesn't have the basic concepts of hygeine? Proper food handling? Food storage?

      In other words, can you say "hamburger disease"?

      It's not a question of paying me. Most users DON'T know WHAT the FUCK they WANT. They think programs magically leap into being. Watch requirements change as you work on something. Feature bloat, contradictory requirements, bad data designs, stuff that just doesn't work, or gives 50+20-20=30 (like slashcode) ...

      Anyone who hasn't had a few basic lessons (even if it's only from mom and dad) should NOT be using a stove. Just look at how many french-fry fires there are every year, a lot of them by kids.

      It's not snobbishness, any more than it's snobbish to acknowledge a doctor's expertise, and keep others from operating on people without proper training and adherence to reasonable standards by keeping current. Or do you want to be like that guy in Bosnia who tried to remove a kidney stone trapped in his dick?

    4. Re:Oh, great... by Ithika · · Score: 1

      How do you intend these people learn to cook without access to a stove? Where do all the future chefs come from? Imported from Mars?

    5. Re:Oh, great... by Anonymous Coward · · Score: 0

      Maybe a bad analogy. I am a coder who is several years out of date, and I can still write solid code. I can't necessarily use the latest languages or protocols, but my old languages work just fine. A surgeon who has been using a scalpel for 15 years shouldn't be allowed to use the latest minimal-invasive equipment without training, but he's probably damn good with a scalpel.

      That said, I kind of agree with the basic point, but not too far. What we need is a proper certification technique for programmers, like we have for doctors or engineers, or even sysadmins. (Ah, listen to the cries of thousands of programmers.) That way anyone can do hobby programming in their basement, but professional programming gets done by people who know what they are doing. Most consumers of programs are used to poor quality (or just don't know the difference), and many companies care more about quantity than quality (we'll patch later), so the normal checks and balances kind of fall through.

      I think a big reason for the sorry state of software these days is that a lot of it is being written by people who aren't qualified programmers, but pick up just enough to implement their great idea (which often isn't that great). I think my company's accounting software was written in Visual Basic. It's a fine language for some things, but I think a $20k software package is a little beyond its realm. Smells to me like an accountant learned the easiest language he could find, and wrote some software, instead of learning how to program first. Having better languages might keep these people out of some trouble, but we still have a very long way to go before we can let an unskilled programmer make a solid program.

    6. Re:Oh, great... by tomhudson · · Score: 1
      What we need is a proper certification technique for programmers, like we have for doctors or engineers, or even sysadmins. (Ah, listen to the cries of thousands of programmers.)
      Unfortunately, the other professions you've listed have been around, in some cases, for thousands of years. They've built up a history. There are known standards, metrics to measure against.
      The programming certifications we see today are mostly BS, and are mostly out-of-date by the time the course material is written, never mind taught.

      Coding today is still an art form, in that there is expressiveness, insight, composition, and balance. Even in assembler.

      I think my company's accounting software was written in Visual Basic. It's a fine language for some things, but I think a $20k software package is a little beyond its realm.

      If you think that's bad, I saw a system that one company (the guilty shall remain nameless) put together in-house in VB that they had spent $3 Million on (not counting expenditures by other departments). Of course, it nevr did work properly, but it had Taken On A Life Of Its' Own.

      It couldn't be shit-canned, because too much money had been invested in it already. It couldn't be shifted to another language, because too much money had been invested in it already. It couldn't be fixed, because every attempt to refactor parts of it broke something else. And there was no room in the budget to re-do it from scratch, because all the extra $$$ went to maintaining and supporting it.

      Of course, the real reason was that the guys handling their internal IT didn't know anything except Microsoft.

      So, in the end, internal politics dictated that people use the buggy system until everyone who was responsible for it was either promoted, transferred, or retired. In-fucking-credible? No, that's just how things work in real life. So much for the value of certification in today's world.

    7. Re:Oh, great... by Anonymous Coward · · Score: 0

      > (Ah, listen to the cries of thousands of programmers.)

      Unfortunately, the other professions you've listed have been around, in some cases, for thousands of years. They've built up a history. There are known standards, metrics to measure against.
      The programming certifications we see today are mostly BS, and are mostly out-of-date by the time the course material is written, never mind taught.


      See! Told you so!

      Yes, certainly some aspects of engineering haven't changed in a century or so. Much of modern medicine (drugs, surgeries) isn't much older than computer science, but it's a little more stable. However, the core elements of computer science are relatively stable, as well. If someone can pass a thorough test on Knuth, they are probably qualified to write a program (and The Art of Computer Programming has been around longer than a lot of programmers.)

      Plus, good certifications have a continuing education requirement and/or a retesting requirement. That might encourage some people to learn the new stuff and keep up to date.

    8. Re:Oh, great... by tomhudson · · Score: 1
      Instead of saying "see, told you so", why not point out what part of the statement ...
      the programming certifications we see today are mostly BS, and are mostly out-of-date by the time the course material is written, never mind taught.
      ... is inaccurate?
      Yes, certainly some aspects of engineering haven't changed in a century or so. Much of modern medicine (drugs, surgeries) isn't much older than computer science, but it's a little more stable
      the pyramids (engineering) have been around for millenia, as has medicine (hippocratic oath, anyone?). There's a body of knowledge that's been built up over the centuries. You can't say that for computers.
      However, the core elements of computer science are relatively stable, as well. If someone can pass a thorough test on Knuth, they are probably qualified to write a program (and The Art of Computer Programming has been around longer than a lot of programmers.)
      The "core elements", by contrast, haven't been around even one century. Not much time (n terms of human experience) to lay down hard and fast laws, standards, accreditation bodies, etc.
    9. Re:Oh, great... by Anonymous Coward · · Score: 0

      Instead of saying "see, told you so", why not point out what part of the statement ...

      Relax, it was a joke. I predicted that mentioning standards in programming would cause an outcry, and you cried out.

      Anatomy is ancient, but medicine has changed a lot over the last 150 years. Pasteur brought germ theory into light in the 1860s. I think he also started vacinations. Penicillin was discovered in 1929. Sterilization and quarantine were 20th century concepts. Surgical techniques have evolved elaborately. Radiology has come into existance, and is now critical to patient care. A Doctor from 1900 would not recognize much of what happens in a hospital today. He would never pass the medical boards.

      Now, I agree that computer science is a young, immature field. It is still growing and evolving. That doesn't mean you can't test people. Actually, it might make it easier because there is less to test on. Data structures, alogrithms, modularization. C has been a useful language for 30 years, because the fundamentals of computing have not changed much. Sure, modern programmers should probably use Java or Perl or C#, but what's going on under the surface has not changed. To draw my last example, Knuth is just as appropriate today as it was 20 years ago, and it is a valuable tool to making a better programmer.

      The field changes, sure. The test gets updated every year (like it does for every other field). You have top people from academia and industry on the panel writing and choosing questions. It will never be perfect. Some people will pass a test that don't know what they are doing, and some people won't pass who maybe should. Chances are, the good programmers will breeze through it and the bad ones will not.

      Some level of standards is better than none. Right now programs are being written by drop-outs who can't do algebra, and will never understand why their programs are so slow. There are computer scientists graduates who can't program their way out of a bad input set. I'd rather not have to wait until 6 months after I hire them to figure out whether they are any good. I don't want to buy software from them. Some test of basic skills seems like a good idea, doesn't it?

    10. Re:Oh, great... by tomhudson · · Score: 1
      Some test of basic skills seems like a good idea, doesn't it?
      Sure. so test them. You know what qualities you're looking for, what areas of expertise you need. So test to that. Do it right there, during the interview. Plunk them in front of a box and ask them to code something. Ask them to come up with several different algorithms to solve the same problem. Then ask them to debug a section of someone else's code (that's the REAL test).

      If they balk, they were probably not suited for your purpose anyway. If they breeze through it, it's probably because they know the stuff you need, and enjoy writing code.

      Requirements are so different from project to project that it would be hard to design a test that would cover what any one particular project needs, and still cover all the bases. The sort of testing I describe is "rubber-meets-the-road" to the point. There's no bullshitting your way through it.

    11. Re:Oh, great... by Anonymous Coward · · Score: 0

      Sure, except that I'm not a programmer. I'm an engineer. A manager. A customer. I'm not qualified to really judge his ability.

      The test you've described is exactly how part of the engineer's licensing exam worked until a couple of years ago. Here are 8 problems, solve 5 of them, you have 4 hours. Then economics kicked in, and they didn't want to hand-grade thousands of tests.

    12. Re:Oh, great... by tomhudson · · Score: 1
      First, let me say that it's a pity you're posting AC - your points are valid AND interesting.

      The problem isn't the programming language. It's NEVER (just) the programming language. The language is actually, in many cases, the easiest part, since it has a formal structure, and compilers nowadays are pretty good at telling you what went wrong when a compile bombs. Ditto for interpreters.

      The major part of the problem is understanding the problem at hand, and having an approach for arriving at a solution. For this, there's nothing like experience.

      For example, a natural language to program code translator isn't going to be able to help you in identifying and resolving the "corner cases" of your particular problem (those edge cases where logic errors, one-off errors, etc. are made, that are unique to your problem domain). Sure, they may generate "safe" code, that, when it tries to divide by zero, or exceeds an array limit, doesn't crap out immediately. But YOU still have to be aware that these cases can happen, and code for them. Just spewing out an error message isn't helpful. Worse are silent type-conversions (empty strings to the integer zero, for example) and substitution of "safe default" values that work *most* of the time.

      So now you have to learn the peculiarities and vagarities of the particular nl2prog that you are using, same as a "regular programmer" has to learn all the "gotchas" in his/her tools.

      We all make mistakes. We're human. But which do you think is easier - figuring out what's wrong syntactically or logically with a language with a small number of well-defined key words and constructs, or playing "broken telephone" with a translator/compiler?

      Sure, except that I'm not a programmer. I'm an engineer. A manager. A customer. I'm not qualified to really judge his ability.
      Okay, I see your point - how does someone outside the field judge someone inside it?

      At some point, you will end up having to trust someone's ability to do an evaluation. So you have a choice:

      1. see if someone else has already implemented a solution to your problem that you can use (google, yahoo search)
      2. go the h.r. route (unfortunately, there's a clear conflict of interest - their interest is getting you to hire A candidate, not necessarily the BEST candidate)
      3. borrow someone from another department, a customer or customer referral, another engineer who has someone they trust, and use them to do the evaluations (more is on the line there for the person doing the evaluations - pride, relationship with the people who referred them, etc., so you're likely to get better results);
      4. farm/contract the job itself out, payable by milestone (make sure someone else is in charge of checking each milestone against spec); This forces you to get into the nitty-gritty of speccing what you need, rather than some vacuous "we need a program to do x";
      5. ask slashdot (just joking ... really ... but if you're desperate, desperate times call for desperate measures :-)
      6. ask how others in your department/business unit/customers solved their problems
      Well, there's a few possible ways off the top of my head - I'm sure others can come up with more.
  16. Doomed to failure by rde · · Score: 4, Insightful

    I don't mean to sound pessimistic, but remember who comes up with functional specs; managers. As a consequence, this poor program may well come up with a framework that matches exactly what was requested, but once it's put together, the suits will say "it doesn't do this". When it's pointed out that that wasn't in the spec, the inevitable response will be "but it was implied; it should be obvious that we'd need it to do that." This is just a core dump waiting to happen.

    1. Re:Doomed to failure by LegendOfLink · · Score: 2, Insightful

      Your reasoning makes sense, but I think something like this is absolutely necessary. If it wasn't for the managers who created the guidelines and specs, there'd be no direction for the programmers to take.

      Invariably, this is the situation where those who make the specs need to be at a higher level than those who code the project. The article is right, we don't think in C++, we think in English.

      I can't wait to see what kind of new things this project brings about.

    2. Re:Doomed to failure by indifferent+children · · Score: 1

      Those of us who do think in C++ seem to think more than those who 'think' in English. I agree with GP; there is very little value in translating poorly conceived requirements into poorly written software.

      --
      Censorship is telling a man he can't have a steak just because a baby can't chew it. --Mark Twain
    3. Re:Doomed to failure by Anonymous Coward · · Score: 0

      Easy thing to "try"
      have the spec approved and then apply Genie logic
      to it (aka Contract Law).
      If its not in the spec it was not required FULL STOP
      (side note this issue is a sign of a flawed manager)

    4. Re:Doomed to failure by fromdarkwaters · · Score: 1

      wait... we think in ENGLISH?!?!?!?!

    5. Re:Doomed to failure by Retric · · Score: 1

      Knowing how to write a requirement is a skill unto it's self. Instead of trying to get customers / managers to learn how to think clearly you need to have developers there so you can give people feedback as there working though what they want done. One of the most basic problems most software companies have is they can't define which requirements are important.

      As a basic example users want to have user interfaces that are easy on the eyes. Now you could define how the users can select the exact fount, spacing, and color for everything they interact with or you can have an informal requirement that all text is easily legible and you can change the fount size as needed. Both of these solve the same basic problem but having an increase / decrease font size option under the options menu is a lot easer to implement and use than a system for selecting font and color for each menu.

    6. Re:Doomed to failure by MenTaLguY · · Score: 1

      Sorry, English isn't precise enough, full stop.

      English specs only work at all because humans interpret them and negotiate their meaning over time.

      If you try to replace that human-to-human component with software (as in TFA), you're doomed to failure.

      Put another way, it's at least as hard a problem as Strong AI. Look how hard it is to even write a decent grammar checker for English, let alone extract unambiguous meaning from it!

      --

      DNA just wants to be free...
    7. Re:Doomed to failure by Anonymous Coward · · Score: 0

      Hey dummy, functional specs are used for contracts. If you knew anything about business you would know the importance of how the real world works.

    8. Re:Doomed to failure by Anonymous Coward · · Score: 0

      Agreed. The other problem is that the people making the specs often are unsure of what it is they actually *want*. When what they ask for doesn't match what they actualy want or need, much of the programming gets scrapped, rewritten or patched until it's useless garbage anyway. I can't tell you how many reports we use that are based on the same data, just turned another way, or summarized differently.

    9. Re:Doomed to failure by Anonymous Coward · · Score: 0

      > I don't mean to sound pessimistic, but remember who comes up with functional specs; managers.

      Maybe that's your problem. Where I work, managers tell engineers to come up with their own functional specs, based on the requirements specifications designed by the technical users (e.g. business analysts). What the managers do is tell everyone to write it, schedule everybody to hash it out, get and authorize resources, etc. If it dumps core, that's not a manager's fault.

  17. It's about time by elucido · · Score: 0, Troll

    What they should also do is allow me click a picture and have it translate into code, or let me click an animated picture and have that translate into code. Say I want to create a backround for a video game, if I could just point and click my way through the interface creation then even I could be a game designer. So why not start with open source game design and develop tools to allow hobby programmers like me to make games for the masses, as a result you'd gain games for linux and finally Linux will be able to dominate. Or we can keep re-inventing the wheel and treating programming like a science when its really just an art. The fact that a computer science major has to learn calculus and all this math is the main reason I didnt major in computer science. When you treat something like a science instead of an art, you make it less attractive. In the end this is why we have a shortage of good programmers. The next group of programming geniuses might never become programmers because they can't handle the calculus, and guess what? 99% of programmers never use any of that useless math.

    1. Re:It's about time by mbrewthx · · Score: 0

      I agree, I was just thinking the same think about my Cardiologist. You know there would be alot more good Cardiologists if they didn't have to worry about all that biology and stuff.

      There is no shortcut to being a good programmer.

      --
      __________ Leave me alone I'm compiling a RPG II program on my S/36...Thanks to metamucil I'm a Regular Meta Moderator
    2. Re:It's about time by Anonymous Coward · · Score: 2, Insightful

      Right. But computer science isn't (necessarily) about programming. If you want to program, learn to program. If you want to know how programming languages work, and why they work that way, do computer science.

      Graphics is a big field of computer science, and you cannot understand graphics algorithms without calculus, complex numbers, and algebra. If you can't do the maths, you're stuck writing 2D scrollers. The 1% of programmers who actually use that "useless" maths are the ones writing the game engines.

      Computer science is indeed a science (arguably a branch of mathematics). Programming may or may not be an art, but it is firmly grounded in science.

      Oh, and point-and-click game creation has been done several times. It was shit.

  18. you must be new here by avi33 · · Score: 5, Funny

    Computer programming is second nature to most of the Slashdot crowd.

    Maybe back in 1998, but haughty sniping is second nature to most of the Slashdot crowd now.

    1. Re:you must be new here by BJH · · Score: 1

      Yeah, assuming that most /. readers these days are programmers is like assuming that most basketball fans are 7-foot-tall people with a flair for sinking hoops, whereas all most of them are good for is getting drunk, shouting at the TV and setting fire to parked cars*.

      * Offer valid in Chicago only.

    2. Re:you must be new here by SmokeHalo · · Score: 1

      I'm a sniper, you insensitive clod!

      --
      I'm not good in groups. It's difficult to work in a group when you're omnipotent. - Q
    3. Re:you must be new here by Anonymous Coward · · Score: 0

      OMG u ttly WTFPWNED with easy!

    4. Re:you must be new here by Jivecat · · Score: 1

      Offer valid in Chicago only ...and L.A., Detroit, and the student ghettoes of every state university.

      --
      "For a successful technology, reality must take precedence over public relations, for nature cannot be fooled."--Feynman
    5. Re:you must be new here by AceCaseOR · · Score: 1

      Especially the University of Oregon.

      --
      Zagreus sits inside your head, Zagreus lives among the dead, Zagreus sees you in your bed and eats you in your sleep.
    6. Re:you must be new here by NardofDoom · · Score: 2, Funny

      Am I the only one who read "haughty sniping" as "freakin' campers?"

      --
      You have two hands and one brain, so always code twice as much as you think!
    7. Re:you must be new here by Anonymous Coward · · Score: 0

      Except Nebraska!

  19. Maybe so by thebra · · Score: 1

    I'm sure if something lke this will be able to succeed until we see some big advances in AI and computers that are as tollerant of ambiguity as humans are. Programming languages grew out of a neccesity to have something that was easy to remember (by virtue of its similarities to english), yet still precise enough for the computer to interpret. At a certain point you still need to define a vocabulary with consistent semantics to be applied to programming concepts. Whether or not that vocabulary is very rich and sounds almost like spoken english, it all goes out the window when a phrase is used by the speaker in a different meaning than the system had in mind. There is a good reason that mathematics has its own language. In fact, any specialised are has its own jargon, even its not technical. General purpose English is just too vague to use in some domains. AI problems always seem to be perpetualy 'a decade' in the future.

    1. Re:Maybe so by Taladar · · Score: 1

      Perhaps we should think about applying that concept to laws?

  20. This story is a dupe, but by GreyWolf3000 · · Score: 3, Interesting
    I think the idea has been around a long time. The whole object oriented paradigm (in addition to providing useful functionality like dynamic function binding) is designed to shape code around human thought.

    One of the things that really bothers me about Linux is the pervasiveness of languages like C that make no attempt to model higher thought and instead force the developer to constantly re-learn old unusable APIs and shove ancient hacks that are unreadable just to get drivers working. Objects in code need their a[tt]ributes to mirror real-word equivalents, otherwise reading the code is impossible because no one else can make sense of all the confusing acronyms and variable names.

    I actually think that .NET is the right step for us. Mono is really the first sensible language (Java doesn't count; it's not free) that has any mindshare for Linux, and let's face it the Linux world needs it. Until writing software for Linux can just be a simple translation of designs in our heads to GUI design and implementation, Linux will lag behind the rest of the world because of how long it takes to write software for it.

    --
    Slashdot: Where people pretend to be twice as smart as they really are by behaving like children.
    1. Re:This story is a dupe, but by Taladar · · Score: 1

      Strange. I have lots of software installed written in Lisp, Python, Ruby, Perl, Ocaml and quite a few other languages of a much higher abstraction level than C. At least on Linux I have. In Windows however...

    2. Re:This story is a dupe, but by Anonymous Coward · · Score: 0

      Huh, every one of those languages works on windows as well. I use Perl and Python all the time on windows. The other two I have not used myself but a quick google shows that there are interpreters for them for Windows as well.

      So what was with the ignorant windows slight then?

      If you TRUELY didn't know you cold have said "It may be that these are avialable for windows as well, I don't know..." That way it would have been clear that it's your ignorance that is the issue, not that it's a windows problem "however".

    3. Re:This story is a dupe, but by brpr · · Score: 1

      Mono is really the first sensible language (Java doesn't count; it's not free) that has any mindshare for Linux, and let's face it the Linux world needs it.

      1) Mono is not a language.
      2) What about Python?

      --
      Freedom is not increased by mere diminuation of government. Anarchy is freedom for the strong and slavery for the weak.
  21. UML by Greenisus · · Score: 0

    This has already been around since 1997 I believe, and it's already popular.

    1. Re:UML by Anonymous Coward · · Score: 0, Insightful

      and how exactly does UML translate a users requirements? it is another of these insane lets draw lots of boxes for years instead of developing a thing. whoops we ran out of money, bugger, type things.

    2. Re:UML by Greenisus · · Score: 1

      you're right. i didn't RTFA. ...shouldn't have bought that Jump To Conclusions mat.

      but, to argue, when used properly, UML is more than just drawing pictures and wasting time/money, but that all depends on the scale of the project

  22. COBOL by tverbeek · · Score: 1

    Sounds like a speech-to-COBOL processor.

    --
    http://alternatives.rzero.com/
  23. Why I like Perl.... by i_want_you_to_throw_ · · Score: 1

    It's a lot like simple English for me and that fact that Larry Wall is a linguist helps.

    Plus all the cool and naughty operators and functions like tie, bind, die, etc

  24. With All Due Respect... by schestowitz · · Score: 4, Insightful

    I wish that people spoke mathematically rather than poor and ambiguous languages that can now (supposedly) turn into (ambiguous) code. Can one really rely on translated 'code' like this. That's like sending an E-mail from speech-to-text recognition without proof-reading.

    --
    My Linux - (L)ove (I)s (N)ever (U)tterly eXPensive
    1. Re:With All Due Respect... by Alien+Being · · Score: 3, Funny

      "I wish that people spoke mathematically rather than poor and ambiguous languages"

      You fail it.

    2. Re:With All Due Respect... by Tenebrious1 · · Score: 1

      I wish that people spoke mathematically rather than poor and ambiguous languages that can now (supposedly) turn into (ambiguous) code.

      Precise language might have its uses, but what happens when your gf asks "do I look fat in this dress?" There are times in when you need ambiguity in the language.

      --
      -- If god wanted me to have a sig, he'd have given me a sense of humor.
    3. Re:With All Due Respect... by snorklewacker · · Score: 1

      GF: look-fat-in?(self, dress)
      Me: amb

      --
      I am no longer wasting my time with slashdot
    4. Re:With All Due Respect... by Anonymous Coward · · Score: 0

      No grandpa, grandma's dresses always may you look svelte.

  25. Re:Metafor can be used to compromise a system by 0x461FAB0BD7D2 · · Score: 1

    Sometimes the buffer is re-used without being wiped, causing dupes like this.

  26. May not work for programming, but... by TomorrowPlusX · · Score: 1

    I doubt this will have much of an impact on programmers' work, but, the natural language parsing into a declarative structure is *really* fascinating.

    I'll bet this work will ultimately lead to effective verbal control of computers, as in the sort of Sci-Fi situation where you might say "Computer, play KidA by Radiohead, and get me the NY Times".

    Good, interesting stuff, I hope they keep working on it.

    --

    lorem ipsum, dolor sit amet
    1. Re:May not work for programming, but... by generationxyu · · Score: 1

      while (things) {
      put(*things, rightPlace(*things));
      things = things->next;
      }

      while (fitToPrint(news)) {
      get(news);
      }

      --
      I mod down pyramid schemes in sigs.
  27. Re:dumbest fucking thing i've ever seen by Anonymous Coward · · Score: 0

    That's for sure.

  28. Good example by nacturation · · Score: 1

    I think it also promotes writing concise (and therefore) requirements and descriptions.

    Indeed. "and therefore..." what?

    --
    Want to improve your Karma? Instead of "Post Anonymously", try the "Post Humously" option.
  29. Rules by igny · · Score: 4, Interesting

    How hard is it to change rules of treating the sentences? Can Metaphor learn Chinese, for example?

    --
    In theory there is no difference between theory and practice. In practice there is. - Yogi Berra
    1. Re:Rules by Taladar · · Score: 1

      If they had solved the (IMO unsolvable) problem of natural language programming it would be easy for them to create a perfect automated chinese-english translater, yes.

    2. Re:Rules by Anonymous Coward · · Score: 0

      Very hard. Chinese is the hardest language in the world to learn.

  30. Second nature? by akeyes · · Score: 1

    "Computer programming is second nature to most of the Slashdot crowd."

    Not first nature?

  31. Hello World in COBOL here... by hugesmile · · Score: 1
    Think it was that bad?

    Here is the traditional "Hello World" progam in COBOL (for the youngsters out there who never had to program in it).

    Only 20 lines.

    1. Re:Hello World in COBOL here... by Nutria · · Score: 1

      Here is the traditional "Hello World" progam in COBOL (for the youngsters out there who never had to program in it).

      As a former COBOL-85 programmer, who still really likes the language, I have to say that the obsession with My language can do "Hello World" in only X lines is silly.

      COBOL was designed for "big apps", not scripting. In a 5000 line file, the 8 lines of "comments" stating necessary stuff like program name, who wrote it and when, is only 0.16% of the line count.

      --
      "I don't know, therefore Aliens" Wafflebox1
    2. Re:Hello World in COBOL here... by Anonymous Coward · · Score: 0

      I certainly wasn't trying to imply that line count of Hello World is the way to judge the efficiency of a programming language. I was just sharing an example for people who never had seen it before (or who killed those brain cells).

    3. Re:Hello World in COBOL here... by DoctorPepper · · Score: 2, Insightful
      I still prefer 8086 Assembler:
      ; Hello World program

      ORG 100H

      ; Jump to start:
      JMP START

      ; Data:
      msg DB 13, 10, 'Hello, World', 13, 10

      ; Load address of msg to DX register:
      START: LEA DX, msg

      ; Print using DOS interrupt:
      MOV AH, 9
      INT 21h

      ; Exit to operating system:
      MOV AH, 4Ch
      INT 21h
      --

      No matter where you go... there you are.
  32. Re:Translate this: by tomhudson · · Score: 3, Funny
    No, you've got it all wrong:
    IF: subject of new article is same as previous article
    THEN: Post, baby, post!
    ALSO: Fire person who bothered to check for dupe post, as they do not meet slashdot's editor requirements.
    I know that code is in there somewhere ...
  33. Big sports game companies like EA could use this! by Anonymous Coward · · Score: 0

    "Make another racing game with better physics."

    "Make another wrestling game."

    "Make another racing game with better physics."

    "Make another baseball game with better physics."

    "Make another racing game with better physics."

    "Make another wrestling game." ...

  34. Not super useful by Apreche · · Score: 1

    This is cool, but not super useful. To make it useful you have to write requirements like so
    there are 10 users
    each user has a name and a phone number
    etc.

    Requirements like the following wont get you anywhere:
    The program should search the internet for the page most relevant to the search term and return the url.

    Never have I see someone write requirements so specific and complete as the first example. Anyone who is going to do that might as well write the code anyway since it is easier than taking the random code and turning it into the real deal.

    Very cool, not very useful. Not until we develop a real AI at least.

    --
    The GeekNights podcast is going strong. Listen!
  35. Handling Bad English by Kozz · · Score: 0, Offtopic

    Really, what's it got against Bad English? Okay, so it was Top 40 glurge, but no worse than other "supergroup" bands at the time.

    --
    I only post comments when someone on the internet is wrong.
  36. ambiguity by Anonymous Coward · · Score: 0

    Formal programming languages are not as expressive or flexible as natural languages.

    I think you meant to say the formal programming languages aren't as ambiguous. Good luck translating the "y'know what I mean?" "ya get what Ah'm sayin'?" "ya hear me?" fuzziness.

    Formal programming languages are the natural languages for programming. But for decades non-programmers have said that programming languages are too hard to use, rather than admit that their own thinking is insufficiently logical and precise to do a good job of describing requirements. If the thinking is precise, we don't need programmers -- we are programmers.

    1. Re:Ambiguity by Larry_Dillon · · Score: 1

      I think ambiguity is a strength of natural language, when properly employed. In a programing language, it's a bad thing.

      --
      Competition Good, Monopoly Bad.
  37. The Last One by Anonymous Coward · · Score: 0

    Sounds like The Last One from back in Feb 1981.

  38. Re:Translate this: by Anonymous Coward · · Score: 0

    if (publishedArticles.getSubjects.contains(newArticle .subject))
    {
    publishedArticles.add(newArticle);
    }
    else
    {
    newArticle = submittedArticles.getFirst();
    }

  39. Doomed to fail? by PissingInTheWind · · Score: 4, Interesting

    From Dijkstra's timeless "How do we tell truths that might hurt?":

    Projects promoting programming in "natural language" are intrinsically doomed to fail.

    He said that 30 years ago. People still don't listen.

    --

    A message from the system administrator: 'I've upped my priority. Now up yours.'
    1. Re:Doomed to fail? by subrosas · · Score: 2, Insightful

      A lot of work has been on explicitly and unambiguously coding / capturing the semantics in natural language. True natural language programming might be impossible, but by chasing this Quixiotic goal, other more limited purposes might be enabled on the way.

    2. Re:Doomed to fail? by exp(pi*sqrt(163)) · · Score: 1
      So is that an axiom then? That what Dijkstra said 30 years ago is true. I certainly don't see any arguments building up to your conclusion.

      I seem to remember Dijkstra saying that people educated with gotos were irreperably impaired and couldn't write good code and yet there is a generation of successful coders out there who grew up with BASIC and yet had no problem pushing the boundaries with more sophisticated programming styles as fashions changed.

      --
      Doesn't it make you feel good to know that our freedoms are protected by politicans, lawyers and journalists.
    3. Re:Doomed to fail? by DeVilla · · Score: 1

      Well, maybe it would have stuck better if he'd have provided a translation in code.

    4. Re:Doomed to fail? by MenTaLguY · · Score: 2, Insightful

      So is that an axiom then? That what Dijkstra said 30 years ago is true. I certainly don't see any arguments building up to your conclusion.

      That would have been unnecessary, given a better citation. Which portions of Dijkstra's original argument are no longer applicable?

      I seem to remember Dijkstra saying that people educated with gotos were irreperably impaired and couldn't write good code and yet there is a generation of successful coders out there who grew up with BASIC and yet had no problem pushing the boundaries with more sophisticated programming styles as fashions changed.

      That was a weaker argument. Yet, as part of that generation, I wouldn't say there was "no problem". For many years I had to struggle against habits learned during that time, in order to use more structured approaches effectively. I have also seen similar struggles in my contemporaries.

      --

      DNA just wants to be free...
    5. Re:Doomed to fail? by Anonymous Coward · · Score: 0

      Dijkstra?? wasn't he the idiot who tried to get rid of jumps?

    6. Re:Doomed to fail? by exp(pi*sqrt(163)) · · Score: 1
      This was evidently not understood by the author that wrote --in 1977-- in the preface of a technical report that "even the standard symbols used for logical connectives have been avoided for the sake of clarity". The occurrence of that sentence suggests that the author's misunderstanding is not confined to him alone.
      He he! Dijkstra purports to know better than this author what is clearer to this author! That's typical of the arrogance of some computer scientists. But it's not like I don't sympathize with Dijkstra. If you know how to use formal notation you are so much better off than someone who doesn't because it is so powerful. However, in the industry I work in (graphics) I work with artists who need to perform complex sequences of technical operations on data all the time. Anything that looks like technical notation scares them off. Even something as simple as an expression in a hypothetical scripting language like new_image=blur(translate(image,10,10)), whose meaning is patently obvious to you (I guess) and I, scares artists because it looks...well...technical. They'd rather have something like:
      load image
      translate it 10 pixels in x and 10 pixels in y
      blur it
      save image
      which is closer to English (hmmm...and Applescript come to think of it) even though it's clearly cumbersome if you need to combine multiple images together. (I was already having this discussion this morning before reading the /. story.)
      --
      Doesn't it make you feel good to know that our freedoms are protected by politicans, lawyers and journalists.
    7. Re:Doomed to fail? by MenTaLguY · · Score: 1

      Dijkstra purports to know better than this author what is clearer to this author!

      I'd be more concerned with whether the author was clear to their audience. Dijkstra, as part of that audience, is more qualified than the author to speak on that point.

      load image
      translate it 10 pixels in x and 10 pixels in y
      blur it
      save image
      which is closer to English (hmmm...and Applescript come to think of it)....

      Quite close to AppleScript, in fact. But AppleScript is not English, and similarity to natural English can create more problems for inexperienced users than it solves.

      For example, is "translate it 10 pixels in x and 10 pixels in y" really an obvious wording to an English speaker, or would the user find it necessary to repeatedly look up the required grammar in a reference manual because it conflicts with natural English usage?

      Adobe has not adopted JavaScript (in spite of existing AppleScript support) for their graphic design suite without reason.

      Being a graphic designer by training, I certainly understand the psychological barriers to using a formal-looking notation, but I would submit that the big problem with "new_image=blur(translate(image,10,10))" is not the notation, but that it doesn't fit well with the designer's mental model. They don't see the intermediate states of the image as distinct objects, and for simple things shouldn't have to.

      That's what really makes your English example different, and that has nothing to do with syntax.

      A fairer comparison might be (in JavaScript):

      image = load("image.png");
      image.translate(10, 10);
      image.blur();
      image.save();

      Or, if you wanted a language with less mandatory punctuation (which is admittedly distracting), Ruby:

      image = load "image.png"
      image.translate 10, 10
      image.blur
      image.save

      Your API could even provide global functions that call the corresponding methods on the most recently referenced image (Ruby again):

      load "image.png"
      translate 10, 10
      blur
      save

      Note that, unlike the proposed "EnglishScript", this doesn't preclude using the more explicit forms in cases where you need to work with multiple images.

      A good interface should make the common things easy and the hard things possible; "natural language" approaches invariably accomplish neither.

      --

      DNA just wants to be free...
    8. Re:Doomed to fail? by exp(pi*sqrt(163)) · · Score: 1
      This is funny: a paper. I like the "Dijkstra is holy" bit.

      Did you really struggle against old habits? Many programmers I know, who were brought up on BASIC, turned out to be the strongest zealots for other types of programming and weren't held back by some extra knowledge about gotos at all.

      --
      Doesn't it make you feel good to know that our freedoms are protected by politicans, lawyers and journalists.
    9. Re:Doomed to fail? by MenTaLguY · · Score: 2, Interesting

      Did you really struggle against old habits? Many programmers I know, who were brought up on BASIC, turned out to be the strongest zealots for other types of programming and weren't held back by some extra knowledge about gotos at all.

      Yes, I did. The knowledge wasn't a problem, but the habits that came from using them extensively were obstacles to constructing useful abstractions. Note that I grew up with old-school BASIC. Mandatory line numbers, and GOSUB was the highest level of abstraction you could reach. None of this QBasic stuff.

      It took me a long time before I could stop thinking about loops in terms of gotos, and be able to recognize things like e.g. the potential for parallelism/vectorization.

      A formal CS education would have helped me (I got a degree in graphic design instead), but I think I would have been much better off learning about control constructs at first in their own right, and only later learning about how they could be implemented with goto, once I had learned to reason about them abstractly.

      Coming at gotos from that direction, I might have been frustrated with their limitations, but I don't think I would have found them particularly hard to understand.

      Regarding the paper, I'm not all that impressed. I agree with some things -- Dijkstra gets quoted a lot without real understanding, and everyone could stand exposure to systems programming, because they're going to run up against it at some point in their career whether they like it or not.

      However, in my current programming job, I'm part of a team that ends up cleaning up other's failed projects a lot. Very often the deepest problems are due to inappropriate use of global or shared state (the next deepest tend to be due to poor error handling, and the use of long imperative-style blocks where code was cut-and-pasted instead of being refactored into common functions/objects -- the availability of gotos seem to exacerbate this last problem).

      Frankly, I don't think the current crop of programmers is averse _enough_ to using global variables. The opposite extreme (overly avoiding global state) can be just as bad, but the resulting code is still significantly easier to reason about and clean up with a good refactoring tool.

      Some global state is unavoidable (if nothing else the outside world is a global resource); the Platonic ideal (for non-systems-programming) is to have well-defined areas of code which are in contact with the "outside" world, where your IO, your external event sources, and your singletons go. Everything else need not have any global knowledge (e.g. the singleton you get via dependency injection just implements an interface you use; you needn't know it's a singleton).

      I suppose Haskell's use of monads comes closest to this ideal, though I think they still haven't figured out all of the practical aspects yet.

      --

      DNA just wants to be free...
    10. Re:Doomed to fail? by Anonymous Coward · · Score: 0

      Did you really struggle against old habits?

      Of course not. Programming is about machine configuration, not configuration languages. Code is just an expression of configuration information.

      I learned BASIC, then the far more flexible branching constructs from assembly language. After a short amount of that, the structured constructs of C proved much simpler and much easier to follow, than working through the discipline of allocating memory locations, decrementing, and conditionally branching each time.

      I didn't find the use of goto harmful at all: I still think basic is closer to the way most people think about following instructions than many structured languages.

      The average person that I know would rather read instructions like: "Do step one. Then step two. Then go back to step one ". (S)he would rather not wade through an academic discussion along the lines of:"Okay, 'main()' is a function that is defined in terms of the two parameters that we've chosen to label as argc and argv..." just to get started programming.

      Goto is pretty darned simple: kids reading "which-way" books handle the concept with ease. But perhaps my brain was mangled in childhood. :-)
      --
      AC

    11. Re:Doomed to fail? by Anonymous Coward · · Score: 0

      Choose your own jump point.

      I would agree that goto, divorced from the specifics of BASIC, is not intrinsically harmful, and the concept when used well can simplify code considerably. It is, for instance, quite often useful in C for dealing with error conditions elegantly.

      I would also agree that procedural instructions are much more intuitive for the average person to follow than considering the application of a function to parameters. The more abstract the dictation of process becomes from step-by-step instruction, the smaller the audience that can properly understand it becomes. Instruction manuals, recipes, the directions for a microwave dinner, or Choose Your Own Adventure books are all presented in simple, step-by-step terms for this reason.

      The biggest problem, though, is that reasoning about problems this way can become incredibly difficult when the instructions can change at any time, and can expand to undefined lengths. The people that typically would handle working with this complexity are already versed in at least basic mathematical formalisms and abstract reasoning. It also happens that the abstractions developed, once understood by the person doing the work, make the process easier to reason about. Which is most important for something as dynamic as software, but not so important for putting together a desk.

  40. Bad English?!?!? by mlopes · · Score: 3, Funny

    Shiver Me Timbers and Poke Me Other Eye Out! How would it handle this!?

    1. Re:Bad English?!?!? by noidentity · · Score: 1

      Shiver Me Timbers and Poke Me Other Eye Out! How would it handle this!?

      Let's put it this way: you'll be re-reading that sentence and regretting it with your remaining eye (unless you're a pirate, in which case you'll be eyeless).

  41. What's a 'metafor?' by saddino · · Score: 1

    For OOPing, silly.

  42. Have Kylie stripped washed and brought to my tent by Timesprout · · Score: 4, Funny

    waiting...
    waiting...
    waiting...

    Stupid computer doesn't do anything I tell it

    --
    Do not try to read the dupe, thats impossible. Instead, only try to realize the truth
    What truth?
    There is no dupe
  43. concise requirements by Anonymous Coward · · Score: 0

    The main task of a programmer is not to code, it is to obtain or create consistent requirements.

  44. I don't think so by gowen · · Score: 4, Funny
    Computer programming is second nature to most of the Slashdot crowd
    Spoken like a man who's never looked at SlashCode.
    --
    Athletic Scholarships to universities make as much sense as academic scholarships to sports teams.
  45. Re:Ebonics? by macshune · · Score: 1

    And how about computer programming's version of ebonics, scottish and everything other dialect with a latin character set? Perl moves like a pyroclastic flow.

  46. Congratulations to MIT! by kraksmokr · · Score: 2, Insightful

    nouns become objects, verbs become functions

    Congratulations!!!
    You've invented Smalltalk!
    Welcome to 1980!

    1. Re:Congratulations to MIT! by pillowfactory · · Score: 1

      Amen. Good to see that someone recognizes this.

    2. Re:Congratulations to MIT! by Anonymous Coward · · Score: 0

      smalltalk didnt mechanically translate nouns to objects and verbs to functions. It just was the paradigm of the language as it is for other object oriented languages. The programmer was supposed to know to do this in his design.

  47. the old is new again by dubl-u · · Score: 4, Insightful

    While the logic of the researchers' interpreter tackles only about 20 percent of the problem of full natural language programming, it achieves about 80 percent of the perceived rewards.

    Ah, this old thing again.

    The hard part about programming isn't turning basic English text in to half-assed code. If it were, then Google have built their company on just-out-of-college scripters and Visual Basic.

    [Liu says] "Many subjects immediately identified the simplistic interpretation of the interpreter, and wanted the opportunity to rephrase their original wording to fix the error."

    Yes, regular English is insufficient for programming. If a tool like this becomes popular, you'll need still need a special class of people to figure out what is needed and to figure out how to phrase the desire in the precise way that makes this guy's interpreter actually do what they want.

    In other words, he hasn't invented a way to eliminate programming or programmers. He's figured out a way to make a programming language that is slightly easier to learn at first. But because it's removed from what computers actually do, much harder to use for anything serious. The hard part about programming isn't the month you spend learning Java syntax, it's the many years you spend learning to write code well.

    Their theory appears to be that this will make programming easier to learn. I wish them the best of luck in that goal, but having seen over the years a number of graphical and natural-language programming tools vanish without a trace, I'm not holding my breath.

    1. Re:the old is new again by miu · · Score: 1
      Maybe they will make another incremental improvement in natural language processing, but like you, I am not holding my breath.

      But this is probably more about research than producing an immediately useful tool, even the incredibly optimistic statement about "at least a decade" seems to point in that direction.

      --

      [Set Cain on fire and steal his lute.]
    2. Re:the old is new again by Anonymous Coward · · Score: 0

      programming is about abstraction. Its been that way since the beginning. Computers are fast enough now that natural language can be implemented be rewarded with time to market. I mean if this wasnt the case then why have UML and case tools? Its another tool that designers can have access to. I mean finite state machines are abstractions. So why can't a light english like programming language have some design value? Certainly Wizards and Templates are used quite a bit in programming. As well, we have libraries of functions that get used to help speed design.

    3. Re:the old is new again by Anonymous Coward · · Score: 0

      well what about turning math equations into code? ok so what came first? The math, the code or the natural language. I would say that most people work in the visual and natural language stage before they commit to code.

    4. Re:the old is new again by Zevets · · Score: 1

      Java, the standard language in high schools is tought with the method the program uses to properly use objects etc. Verbs are methods, nouns/adjectives(which fall into a noun category) are data. It is not new in any manner, nor is it that complicated. I mean, all this does is take something every high schooler has been tought.

      The only thing that seems hard to me is figuring out whether a word is being used as a noun or a verb.

      This is not new nor revolutionary.

      --

      Mod Wisely.

  48. Adverbs? by KillerDeathRobot · · Score: 1

    It says nouns are objects, and adjectives are properties, which makes sense. Verbs are functions, so what are adverbs? Also, how are articles expressed? They're technically adjectives, but they don't work that well as a property (semantically anyway).

    --
    Thinkin' Lincoln - a web comic of presidential proportions
  49. Thanks a lot. by CDarklock · · Score: 2, Funny

    Now that I've seen that, I suddenly have to wrestle with the fundamental insanity of having FOND MEMORIES about COBOL.

    Why couldn't you have just left well enough alone, so I could keep happily despising it?

    Next thing you know, I'll be pining away for OS/390 JCL.

    --
    Microsoft cheerleader, blue flag waving, you got a problem with that?
  50. Why English? by joey_knisch · · Score: 1

    Why not pick a language with a million and a half less contradictions.

    I can't think of a worse language to use... except maybe Czechoslovakian.

    1. Re:Why English? by Anonymous Coward · · Score: 0

      Yeah, why not eliminate the middleman and have it go from Hindi to code.

  51. Interesting idea, but... by Exluddite · · Score: 1
    English (or pretty much any spoken language)is hardly the best medium for concise commands. How many people here have posted something in a message board,IRC channel, etc. that was completely misunderstood?

    The beauty of English is in its nuances and shades of meaning. For programming, that's a nightmare.

    --
    What does this button do...
    1. Re:Interesting idea, but... by Anonymous Coward · · Score: 0

      well UML isnt precise either. I mean this is a design tool, NOT a replacement for programming. Its mearly a usefull way to template an idea. Before coding. Its not much different then using case tools.

  52. Maybe Microsoft can help by rdavidson3 · · Score: 2, Insightful

    If Metafor cannot handle bad spelling or grammer, then maybe using MS Word to do it for you will help. This is ment to be a joke, and not insightful.

  53. News? by bender_zero · · Score: 1

    Ahem. How is this news? In fact, we (AI students) had to write a NLP (Natural Language Parser) in Prolog as an assignment in our first year. Granted, it did not make "objects", but what it did do was group NP's, VP's, adjectives etc etc in a tree-like structure. I am very confident that it could be rewritten to do most of the things that are claimed here. It even had (rough) support for so-called garden path sentences, and breadth/depth-first search. A lot of research is conducted here in Utrecht (The Netherlands) to have good NLP's. Ofcourse, syntax isn't the hardest part, trying to get good semantics is a lot more troublesome, although I know of more than enough people who would like to spank me for saying this.

  54. Re:Ebonics? by Gzip+Christ · · Score: 5, Funny
    Hey brudda, how long beefo it be talkin ebonics yo?
    There is already a programming language for programming in Ebonics. Be sure to check out some of the sample programs - they are true masterpieces.
  55. How bout Applescript by varmittang · · Score: 1

    I know its still a programming language, but its pretty close to just out right writing what you want it to do. Here is my favorite Applescript. Does resizing of photos to a specific size, or in later in posts, they have it asking size and place to save the duplicate. LINK

    --
    -----BEGIN PGP SIGNATURE-----
    12345
    -----END PGP SIGNATURE-----
  56. Re:Other uses? by AKAImBatman · · Score: 4, Interesting
    Just a thought, but wouldn't it be easier to produce a specialized programming language for this? The instructions could then be pivoted into either a readable recipe, or commands for a robotic machine. Something like this:
    Ingredients
    {
    2 egg;
    1 tsp vanilla;
    4 cups flour;
    }

    Equipment
    {
    mixing bowl;
    oven;
    12x6 inch pan;
    }

    Directions
    {
    preheat oven 450 degrees farenheit;

    break 2 egg into mixing bowl;
    pour 1 tsp vanilla into mixing bowl;
    pour 4 cups flour into mixing bowl;

    mix mixing bowl;
    pour mixing bowl into 12x6 inch pan;
    place 12x6 inch pan into oven;

    bake 15 minutes;
    }
  57. Try Sanskrit by Anonymous Coward · · Score: 0

    It is the only natural language that can be used as a programming language. Check this article out

  58. Ambiguity by TheTomcat · · Score: 1

    Any "natural language" translator I've ever seen (and most of the one code-language to another converters) is only useful for the simplest of applications.

    Reality is that English (or any other language, with the possible exception of Esperanto) is too ambiguous to possibly make a computer do what you want it to do.

    The other reality is that most programmers (whose articles I edit), have lousy language skills.

    S

  59. Knuth did it better by Anonymous Coward · · Score: 0

    A related, but much more useful, system has already been proposed by Knuth.

  60. Vaporware again by Anonymous Coward · · Score: 0


    notice we dont see any actual working application, just a few screenshots and a PDF that would take all of a couple of hours to make in photoshop

    still iam sure someone will have a nice gold star on their resume for the amount of interest it generated, shame they couldnt actually do more than than theory (which is all academics seem to be good at)

  61. The associated paper is very weak by Animats · · Score: 2, Informative
    There's a paper linked from the article, but it's so short and weak that it's hard to tell if anything useful has been accomplished. In particular, it's not clear it if scales beyond the 25-line program shown. There are vague claims that it uses some database of "common sense" to help build the programs, but the paper shows no evidence of this.

    This has been tried before, not successfully.

  62. reminds me... by monkeyboy87 · · Score: 1

    make it so that programmers can write in english and you will find that programmers can't write english.

  63. Importance of writing Good Requirements by vivin · · Score: 2, Insightful

    What I've noticed a lot of times is that Engineers can't write documentation and requirements worth crap. Ok, so I shouldn't make such a blanket statement. Some engineers can write well, but most can't. I think this will do two things:

    a) Help computer engineers describe their program's requirements better so others can follow them better.
    b) Help beginning computer programmers make the connection between a natural language description of their program and the program itself. For example, this can help them understand concepts of OOP programming (nouns->objects, verbs->functions, adjectives->properties).

    It's not true that programmers don't always write requirements. One of the classes I had to take in college dealt with the Software Engineering/Development Lifecycle. One of the things we had to do was to create a requirements specification for our program. We had to write it in a concise manner so as to map it to actual parts of our code. From the requirements document, we went to a UML software (Rational Rose) and from there, to the (skeleton) code. That's what this software does, except it encourages us to write proper descriptions in the beginning itself, and then maps that to skeleton code.

    --
    Vivin Suresh Paliath
    http://vivin.net

    I like
  64. Natural Language to Logical Code - *gasps* by cbelt3 · · Score: 2, Insightful

    Yes, this is not a new concept. And yes, it's been on every science fiction writer's radarscope since the concept of a calculating machine was considered.
    And it's still science fiction because:
    - Language is situational, societal, and emotional
    - Most people doing this sort of work communicate in English. So they assume English is a good place to start from. Unfortunately, it's one seriously illogical language to start from.
    There have been attempts to create 'natural language' programming languages. And in the main they HAVE been successful. Sure, they are inefficient. But so is human communication.
    Every psuedo-code compiler / interpreter that I've ever seen (since the 1970's) has simply been a programming language. Sure, maybe they're a little nicer to look at, but they will always fail the Turing test.
    Want TRUE natural language programming ?
    Develop a computer that works linguistically, not logically.

  65. the trick by mschoolbus · · Score: 2, Insightful

    The trick is to not have morons write the requirements OR code the actual software..

    Its amazing how much this helps.

  66. What about the other way around by El+Cabri · · Score: 4, Insightful

    Firstly, people for whom programming is too complicated should not code at all. We need less programmers building better code, not more programmers adding to the crap heap that the software legacy is as of today.

    Secondly, I think that what is needed is the other way around : automated analysis of code and production of natural language reports that designers could browse more easily than the code itself looking for bugs or designing extensions and additionnal feature. They would then intervene directly on the code itself.
    Sort of a souped up version of Knuth's literate programming, only with a much more radical transformation of the code for its vizualisation, bringing up the essential and critical aspects.

    Think of how a reasonably complicated mathematical proof, say within the formal set theory, would look like in a math paper or book meant to be read. Compare with how it would be coded in a theorem prover. Different. Yet the former can be automatically generated from the later.

    1. Re:What about the other way around by pjkundert · · Score: 1
      Firstly, people for whom programming is too complicated should not code at all. We need less programmers building better code, not more programmers adding to the crap heap that the software legacy is as of today.

      Absolutely.

      Guess what. A concise, logically consistent requirements document is... A PROGRAM!

      The reason that managers aren't programmers (in fact, the reason that the vast majority of people aren't programmers, including most people that call themselves programmers) is because formal logic is very, very HARD .

      If someone could write an logically correct requirements specification, they could write the program itself -- in English, Swahili, Java or C. It doesn't really matter.

      Now, what a stuffed shirt COULD do, is write acceptance tests in English, that automatically generate code. This is a much simpler task. The evolving application would make public its test-harness interfaces, as an allowable set of "Nouns" and "Verbs" that the Manager-type is allowed to use in his acceptance testing document. Or, the programmer would map the Manager's "Nouns" and "Verbs" to his own objects, as he has implemented the application.

      Guess what -- something like this has already been done; it's called FitNesse

      --
      -- -pjk Perry Kundert perry@kundert.ca http://kundert.2y.net
    2. Re:What about the other way around by Anonymous Coward · · Score: 0

      Firstly, people for whom programming is too complicated should not code at all. We need less programmers building better code, not more programmers adding to the crap heap that the software legacy is as of today.

      Firstly, people for whom parenting is too complicated should not breed at all. We need less parents making better babies, not more parents adding to the crap heap that is Humanity as it is today.

  67. computationalized by Godwin+O'Hitler · · Score: 1

    I wonder how would the natural language converter would deal with words like "computationalized".

    Natural languages like English, on the other hand, are universally accessible, said Liu. "Natural language is so semantically rich and flexible that if it could be computationalized as a programming language, maybe everyone could write programs," he said.

    --
    No, your children are not the special ones. Nor are your pets.
  68. No need for the translator. by ip_free · · Score: 1

    "a program that translates requirements (in English) to code" Why not write requirements in code. Once you write requirements in code there is no need for writing the actual code. Therefore eliminating the translator, problem solved. Also as the added bonus you can eliminate the programmer since the code has been written as requirement have been done.

    1. Re:No need for the translator. by Anonymous Coward · · Score: 0

      why write code?? just arrange a bunch of transistors in a diagram.

  69. Interesting but limited... by Leadhyena · · Score: 1
    First thought that came to my mind was this:
    1. Type the following into Metafor: "Requirements: Create a class that has a function satisfy that takes a String containing an arbitrary boolean expression and returns a Map with keys as boolean variables and values as Booleans. The map must be able to assign values to the arbitrary boolean expression that makes it true, or the function must return a null. Furthermore, the function must run in polynomial time with respect to the number of distinct boolean variables in the given expression."
    2. Either a) Metafor finds it or b) Metafor crashes, citing the impossibility of such code.
    3. Submit proof to peer-review journals.
    4. Profit?!?
    Obviously there will always be limits to this kind of meta-programming, so the only purpose of it is to make programming easier. However I can't see how spewing code from requirements is going to make any coder's life easier, considering it'll probably have bugs or run really slowly, and in the end not save any time at all for the coder who'll eventually have to rewrite it. This is natural-language programming we're talking about here, which invites ambiguity, and the last thing we need in software development is more ambiguity.
  70. This will lead to great stuff... by Anita+Coney · · Score: 1

    Once we get programming software that will work by natural lanugage, we'll just have to type: "Create programming software that'll work by reading my mind."

    Then, as we're working at our computers, any software we need will instantly be created. We'll never have to buy software again!

    --
    If someone says he and his monkey have nothing to hide, they almost certainly do.
  71. Hinderance, not a help by Toby+The+Economist · · Score: 2, Insightful

    The key to high quality software is controlling the complexity in the inter-function domain; the ordering of and the relationships between functions.

    Converting natural language to software does NOT address this problem. Natural languages are not expressive or fluent at rigiourously addressing complexity issues. Rather, formal methods address this problem; even weak formal methods such as state machines produce enourmous benefits to code quality, since they force the author to consider all possible outcomes from all function calls and at the same time, by rigiously, logically and consistently exposing the behaviour of the program, permit far easier code modification by later authors.

    --
    Toby

  72. UPDATE by first.last · · Score: 0

    Update For for the dupe. Not going well. Appreciate all the hate mail. Really encourages improvement

    Nothing else seems to encourage any improvement here. Michael is still here.

    --
    Wishing I was a millionaire since 1969.
    1. Re:UPDATE by Anonymous Coward · · Score: 0

      Michael is still here.

      Huh? They fired (or 'katzed') Michael ages ago. I can't believe you missed the party. IF you check the authors page you can bask in his glorious absence.

    2. Re:UPDATE by first.last · · Score: 0

      Oh, I thought he was just using the "Hemos" handle.

      --
      Wishing I was a millionaire since 1969.
  73. Future Want Ad: Editors For Programming Project by Ugmo · · Score: 1


    First of all dupe.


    Second of all, when I was tutoring students on how to write their program assignments I used to take the assignment and tell them that all the nouns in the specification were meant to be objects and all the verbs were methods. The students did not know what a noun and a verb were and I would end up underlining them for them.


    Finally, people can barely write clear understandable English:


    "In addition to helping programmers visualize their program better, I think it also promotes writing concise (and therefore) requirements and descriptions."

    "...writing concise (and therefore) requirements and descriptions"? I guess the submitter meant "and therefore better" or some other qualifier (which Metafor would try to turn into a property of the object "requirements").


    Both Slashdot and users of Metafor need to have editors go over all input submitted to them.

  74. Similar technology... by stubear · · Score: 1

    While not the same thing exactly, Softwire allows developers to drag and drop objects and connect them through input/output nodes to create applications.

  75. the "old guy's experience" thing again by crmartin · · Score: 1

    Actually, the notion that someone can writge programs using a "programming language like English" has been around for a good long time (in fact, that was the original idea behind COBOL --- self-documenting, written in English).

    The difficulty is that the trick isn't writing down something in English, C, or Algol, it's figuring out what you wanted to write about. What this tool apparently does is the good old "the nouns are objects, and the verbs are methods" object oriented analysis, and then fills in a code template.

    Kinda cool, but it takes MIT's press machine to make it into a big story.

  76. Nothing New by GodLived · · Score: 1
    This Is Nothing New. The Z formal specification language has been around since before 1987.

    Techniques such as these lose luster when it comes time to actually using them - the learning curves are too steep for the average user.

  77. Analysis more complicated than that by ant-1 · · Score: 1

    "nouns phrases become objects, verbs become functions, and adjectives become object attributes (or properties)"

    OK, I didn't looked for classes in specifications that way since... well, never.

    When I was told OO programming, first thing my teachers told me was to get rid of this way of finding my classes. Analysis is a complicated matter, maybe this tool can help but I doubt it will provide serious specifications analysis so as to translate them into good class/sequence/whatever diagrams.

  78. sure by elucido · · Score: 1

    if your goal is to work for NASA then you need calculus, but 99% of programmers arent working for NASA just like 99% of nurses arent doing brain surgery. Unless you are going to be a rocket scientist why do you need training in rocket science?

    1. Re:sure by bradkittenbrink · · Score: 1

      Programming is not a science, but neither is it an art. It is an engineering discipline. There are of course many pieces of science and art that go in to many software products, but the act of programming is engineering. In any engineering field you need to ensure that the practitioners have a minimum level of mathematical competency. Calculus is certainly not too much to ask. The thing that makes a good programmer is the ability to learn new systems and agorithms and adapt them to his/her needs. You don't need to be able to do calculus to be a good programmer, you need to be able to learn calculus to be a good programmer. Calculus is not rocket science, calculus is simple compared to the software systems dealt with in most programming jobs.

      That being said, there are more and more non-programmer roles in software construction every day. The role of programmers is becomming more and more to create tools that artists can use to simply create applications without a need for general programming skills. This field is much newer however and there is no standardized way to train for such positions. Web design is getting close, I guess. The distinction between computer science and software engineering was a slow one to emerge, and it is still lost on many people. The distinction between software creation and programming will probably have similar problems, but I imagine that one day it will be similar to the distinction in architecture, where artists design what the building will look and feel like, and engineers design how the building will stay standing.

  79. I call BS by DarthStrydre · · Score: 2, Interesting

    Writing HTML is not programming. Drawing a stick figure with a smiley face is not art.

    You are trying to imply that an artist should be able to write the next vector raytracing engine for HalfLife 3 with no knowledge of calculus. I claim BS. This is like giving the typical slashdotter with no art experience a contract to make a painting styled after a Rembrandt. "Its real simple! you just dip the paint brush in the paint, and drag across the paper"

    In game development, there is a need for REAL programmers, REAL artists, and REAL musicians. Some people can pull off being two of these well enough, or even all three, but generally this is not the case.

    Computer science is a science, mainly by the definition of "Methodological activity, discipline, or study".

    Games are a work of art as much as a program. If you swap the personnel of the art department with the gaming engine department, the game will look like Duke Nukem Forever, and, uh... never mind.

    Personally, the best programmers I know have graduated with degrees in electrical or computer engineering, not ComSci. ComSci folks seem to be too focused in the software realm. Yeah, this seems stereotypical, but based on observation. YMMV.

    - Strydre

    1. Re:I call BS by Peyna · · Score: 2, Insightful

      Your points have merit, but what about average Joe that just needs some simple program or script and doesn't want to spend a few hours figuring out the syntax for it?

      Everyone here seems to be quick to assume that the goal of a natural language like this is to be able to take the place of complex programs and what not. I see it more as a way for the average user to make on-the-fly programs for certain specific functions. The life and death stuff can come later, but for now, assuming this natural language stuff works out decently, if Joe is sitting in front of his computer and he wants to quickly do some calculations or compare some data, he won't have to search through hundreds of shareware or freeware sites, he can simply tell his computer "Create a program which does x y and x" and it will do it for him. It doesn't need to be 100% perfect; it doesn't need to be foolproof, it just needs to work well enough to get the job done for him.

      Everyone here just seems drawn to the extreme examples where the applicability of such a system seems outrageous, but for everyday applications, it could be a very useful tool.

      --
      What?
    2. Re:I call BS by bradkittenbrink · · Score: 1

      Personally, the best programmers I know have graduated with degrees in electrical or computer engineering, not ComSci.

      As a recent CompSci graduate, I totally agree with you. I feel that the skills I use on actual programming projects have very little to do with my degree. In fact, I've been coming to believe that there should be no computer science undergraduate degrees whatsoever, just computer or software engineering. Most of the kids in my program did not seem to get the science of computer science, the just wanted to learn to program, and the curriculum did not help them. Although I am fascinated by computer science, and will probably go back for grad school, I feel that the vast majority of my actual programming skills I picked up on my own and not due to the curriculum.

  80. You GOTTA Be Shitting Me by Anonymous Coward · · Score: 0

    For for the dupe. Not going well. Appreciate all the hate mail. Really encourages improvement.

    K

    Slashdot editors have been lazy as shit for at LEAST the past 6 years. Yeah, tell me the negative comments are the reason it's not getting better. Have you been receiving hate mail for the last 6 years? If so why didn't you tell us and if not why haven't you improved.

    I'm glad I only visit this shithole once a week anymore.

  81. Very limited use; SQL vocabulary is already used by BrentRJones · · Score: 1

    This program will allow you to program Pac Man in OOP languages (as in the example) but not much else.

    SQL with Select, Insert, Sort, et. al. is already pretty English-like.

    --
    Help end the use of Sigs. Tomorrow
  82. Code Complete by simpl3x · · Score: 2, Funny

    Is this perhaps an extreme example of building code from language, which is perhaps notoriously sloppy? I just gave my son an old copy of Code Complete so that he could learn to go from what he wants to do to code, all while developing documented code. He is in the introductory C++ programming class. He has a professor asking him to draw flow charts.

  83. Taco has a point by stinerman · · Score: 2, Insightful

    Update For for the dupe. Not going well. Appreciate all the hate mail. Really encourages improvement.

    Unless you have an '*' next to your name, you don't pay for slashdot other than the electricity to run your box. Don't give me the "but the ads are there" tripe either. I know most of you either use Adblock or ignore them anyway.

    The source is available. Start your own site.

    1. Re:Taco has a point by hackstraw · · Score: 2, Insightful

      Unless you have an '*' next to your name, you don't pay for slashdot other than the electricity to run your box. Don't give me the "but the ads are there" tripe either. I know most of you either use Adblock or ignore them anyway.

      I don't see your '*', but a registered user and evan an AC adds traffic and credibility to the site. I don't know the numbers of subscribers, but I doubt /. would at all be the same if only subscribers were allowed to the site, or if it would exist at all. Also, I would assume that /. gets paid the same regardless of people using adblockers or whatever (or they should demand the same). Magazine ads pay a rate given the size, placement, and according the the volume of sales of the magazine. The same is for TV, radio, and newspapers. I've never heard of a TV, radio, newspaper, or any advertiser supported medium failing financially because people weren't "looking at the ads". Hopefully advertisers will realize that aside from a low cost quick fix gimic (also the ads for those gimics immediately stop when sales get below some threshold), an ad is best at promoting product awareness and a positive feeling towards a company and its products. I have never heard of someone up and trading in their car at 8pm at night and buying a new one because of an ad on TV. However, if its time to buy a car, the attitude towards a particular brand of car and the reputation of the manufacturer via ads and seeing similar cars on the road and people's feedback can increase sales. I'm beginning to think that the self delusion of sales people and their BS are wearing off on marketers to the point that marketers think they are salesman and are getting some kind of direct commission of a sale from advertising. Sorry, your only a marketer. Sales is a different job.

      The source is available. Start your own site.

      So true. But /. is currently a staple because of its userbase and its longevity on the net. I've been reading since it was "chips and dips" or whatever in Taco's dorm room when he was in school. Slashdot is aggressively indexed by google and is a good site _because of its users_ and its notoriety. The code is good, and it is available, but I know of no other even miner website of interest that uses slashcode. Sometimes I wish there were a more mature version of slashdot or at least a way to filter besides friends and foes for a more informed crowd vs the college kid that knows everything because he is a college kid that knows everything.

    2. Re:Taco has a point by Anonymous Coward · · Score: 0

      And paying for a * is gonna make the constantly duped content go away?

      You mean it WON'T?

    3. Re:Taco has a point by Anonymous Coward · · Score: 0

      Unless you have an '*' next to your name, you don't pay for slashdot other than the electricity to run your box.

      No, but I and thousands of other non-payers add to the value of Slashdot by commenting. I wouldn't bother with Slashdot if it didn't have all the comments attached. A hell of a lot of the time, the comments are correcting outright misinformation in the Slashdot writeup.

    4. Re:Taco has a point by stinerman · · Score: 1

      I don't see your '*'

      And I'm not bitching about dupes, am I?

  84. Well then by carpe_noctem · · Score: 1

    Update For for the dupe. Not going well. Appreciate all the hate mail. Really encourages improvement.

    Welcome to the world of being an internet celebrity. You'll find the tissues next to the crying bloggers and emo kids section.

    --
    "Quoting famous computer scientists out of context is the root of all evil (or at least most of it) in programming." - K
  85. The hate mail by Anonymous Coward · · Score: 0
    "For for the dupe. Not going well. Appreciate all the hate mail. Really encourages improvement."

    It doesn't seem like any other method is actually "encouraging improvement"...

  86. Update by Espectr0 · · Score: 5, Funny

    Update For for the dupe. Not going well. Appreciate all the hate mail. Really encourages improvement.

    Ah, yes! Duping words next to each other, that is the new fad. Because duping articles is so yesterday's news

  87. Poor Taco by p3d0 · · Score: 5, Insightful
    Update For for the dupe. Not going well. Appreciate all the hate mail. Really encourages improvement.
    All together now: "Aaawwwwwwwww".

    I've never been one to complain about dupes. I figure I already get way more than I pay for from this site (which is zero). But if people are frustrated about dupes, maybe it's because it's an exceedingly simple problem to solve, and the Slashdot editors give every appearance of not bothering to lift a finger to solve it.

    --
    Patrick Doyle
    I mod down every jackass who puts his moderation policy in his sig. Oh, wait a sec....
    1. Re:Poor Taco by Anonymous Coward · · Score: 0

      i am actually thankfull about dupes, sometimes i miss the story in the first time they are posted

      cammon taco, dont give a shit about those kids with nothing better to do than search for dupes in /. and making the so glorious FP!

    2. Re:Poor Taco by kjamez · · Score: 2, Insightful

      or rather than complain about the dupes, keep scrolling down to the next headline. I didn't catch the origional article because i do things like go out in public and bathe, so i for one am thankful i got to read it. i miss quite a few articles in fact, and it's really not the end of the world. if i should happen to notice a dupe, i calmly keep scrolling thinking in my head "that sounds familiar, not of interest to me... " really, you all should try it rather than wasting extra keystrokes to complain about some free service.

      --
      you can't have everything, where would you put it?
    3. Re:Poor Taco by Anonymous Coward · · Score: 0

      You are such a loser, you like to bathe in public HAHAHAHAHAHAHA

  88. Cooking for Engineers by Dlugar · · Score: 2, Interesting

    I prefer the format used by Cooking for Engineers.

    --
    Computer Go: Writing Software to Play the Ancient Game of Go
  89. SQL by TimeTraveler1884 · · Score: 2, Insightful

    I would definately be skeptical with such technologies. SQL was an attempt to make database queries close to natural language. In my opinion, SQL is the most difficult language to do complex tasks with. True that it may be, SQL was originally designed for queries not stored procedures and such. The fact is that need was there and SQL had to try and support it.

    The inherit problem with using a natural language, or something similar to a natural language for programming is that computers need exacting commands. While natural languages are more expressive, formal programming laguages are precise.

    Which is the whole reason why there are often bugs. Computers are not smart, they can not guess what a user wants. They can only do exactly what a user specifies, whether it's right or wrong.

    I mean, look at all the misunderstandings that occur between people. (Most) humans have a very sophisticated brain with a portion devoted to language. And still, we get things wrong very often when understanding others.

    My point is I don't think there will be a replacement anytime soon for formal programming laguages. I know that is not what this tool is trying to do, but I think it's value is novel at best. There is a long way to go before someone can speak into a microphone and a computer can make the assumptions necessary to peform a task with a reasonable degree of success.

    1. Re:SQL by WGR · · Score: 1
      I think the usefulness of this tool is to help humans to understand what they are saying when they state requirements. One of the most common problems when specifying systems, whether computer or otherwise, is that my understanding of what I say is different from your understanding of what I say.

      Just by formalizing a statement, it helps people to see the limitations of the original statemwnt and perhaps the ambiguities. When I have worked on projects that turned out well, it was because the people on the project understood the goals well and the scope was well defined. WHen I have worked on projects that failed, it was because the goals changed at somebody's whim and and the scope continually expanded.

      This tool should help people to look at a problem and better understand the goals and scope. It is much higher level than UML, but also produces something that can be formally checked. The very fact it chokes on complex sentences is a benefit not a problem. People often misunderstand complexity without realizing it as well and this will get a that before code is created not after.

    2. Re:SQL by RetroGeek · · Score: 1

      COBOL (COmmon Business Oriented Language) was designed for managers to be able to read and understand code. COBOL uses terminologies such as "sentences" and "paragraphs" for this very reason.

      And that is also why COBOL is so wordy. It uses words where other languages use symbols.

      --

      - - - - - - - - - - -
      I am a programmer. I am paid to produce syntax not grammar. Deal with it.
    3. Re:SQL by Weirdofreak · · Score: 1

      Right now all Metafor is trying to do is place the framework for a program. You get that, and implement the low level stuff yourself. It's really just brainstorming.

      However, maybe I'm just optimistic, but it seems to me that the only problem with translating English, or any other natural language, into a program is vocabulary. Grammar is easy to keep simple. Defining user input would be the hardest, because it requires faily complex grammar, but depending on the application, they could probably use it themselves.

      'Search the internet for the phrase "Slashdot"' would be fairly simple. The only words it would need to know are search, internet and term. Articals such as 'the' and 'a' can usually be removed with no problems, and as long as you keep to the form 'verb object indirect object' the for would be redundant as well. 'Phrase' would make it clear that what follows is a literal string. So it would become 'search internet "Slashdot"'. That wouldn't be hard to understand. Implement search as a function which looks at its first argument to determine what to search ('internet' probably meaning 'Google') and the second argument as what to search for. Better yet, implement 'internet' as a noun, including information on how one searches it, advertises on it, connects to it, etc. If necessary, you could use grammatical aids to help such as hypenating multiple words, eg 'look-up the phrase "narcissism" in an online-dictionary'. It would become 'look-up "narcissism" online-dictionary', which would be simple. No trivial task, but it sounds at least vaguely plausible to me.

    4. Re:SQL by Anonymous Coward · · Score: 1, Insightful

      I would definately be skeptical with such technologies. SQL was an attempt to make database queries close to natural language. In my opinion, SQL is the most difficult language to do complex tasks with.

      Well duh .. it's not a programming language, you don't do any "tasks" in it at all. It's not even Turing complete. But really, how WOULD you trim down sql? While you could reduce the major keywords down to punctuation operators, you've just made it denser, but haven't really changed it. It's basically a functional language, so no one is going to want to have to assign resultsets to intermediate variables just to plug them in to the next step.

      Most suggestions I've seen to trim down SQL try to make it look like C. Talk about a bad direction to go in.

  90. Terrible Idea by samael · · Score: 1

    Formal programming languages are not as expressive or flexible as natural languages.

    Because I want my program to be interpreted in a flexible manner. As a coder, most of my time is spent dealing with the unintended consequences of hard and fast rules. Dealing with the unintended consequences of English as well is something you couldn't pay me to do.

  91. So? by elucido · · Score: 2, Insightful

    Since when did every artist have to draw realistic artwork? Some artists draw anime, some artists draw comics, and some artists do draw stick figures and it is art to a lot of people. Unless you are going to program the space shuttle or the new unmanned probe, you don't need calculus. I've never used calculus in any of my code, not even once. Sure if you need to do realistic modeling of physics for your rocket, you'll need calculus, but unless you are going to be a rocket scientist why should we require all programmers get the training and education of a rocket scientist and then expect to be able to say "Well we need millions of programmers!". You cannot have millions of rocket scientists, you can have millions of good programmers. Do we really need a new game engine for every game? Can we reuse one good engine made by one rocket scientist over and over again? In art you'd reuse, in science you'd keep reinventing the wheel over and over again. Which is more efficient? Open source is art, and in art you don't need to re-invent the wheel, its all about the expression of the code not the calculus, not the science, the expression. If you are working for the government on some top secret mission critical project or if you are working for NASA then I can understand why you'd need calculus and math. If you are going to get a degree in calculus and math just so you can sit in a cube and write simple C programs all day, you wasted your time learning bullshit you'll never use, and the school has filtered out millions of coders who may be able to write great code for portable mp3 players or great applications for windows but who may not have the skill level to write the code for the new smart bomb or unmanned drone technology. Just because I cannot write code for advanced robotics or aerospace does not mean I cannot write basic applications, and thats what most people need. Most of us are using basic applications and most applications which are profitable don't require any calculus or math at all to write. Look at the code to Enlightenment, theres no calculus in it. Look at the code to Gnutella, no calculus, so tell me how a calculus programmer is more valueable to the economy than an artist programmer when most of the good programmers arent made by the calculus programmers? Napster was designed by an artist, not a NASA scientist. When was the last time a NASA scientist designed anything for the masses?

    1. Re:So? by Anonymous Coward · · Score: 0

      Please use paragraphs.

  92. Re: Hate Mail by zuvembi · · Score: 2, Funny

    Well, nothing else seems to improve their editing style, grammar or general editing skills, so I really don't see why they don't expect hate mail.

    It certainly would help if there was some transparency in their processes.

  93. Re:Other uses? by Anonymous Coward · · Score: 0

    well yes , but microsoft will say that OSL(oven secure languish) 1.0 is an inept standard and that they will not include in kitchen robot 7.0 perhaps of OSL 2 meets their standards for kitchen securety and ease of use they might incorporate that.
    until then they will use their own version of OSL
    that uses metric

  94. Time flies like an arrow by Viking+Coder · · Score: 5, Interesting

    When a Harvard natural language parser was given the phrase "Time flies like an arrow," in the 1960s it identified the following five parse trees in reponse.

    1) Time proceeds as quickly as an arrow proceeds.
    2) Measure the speed of flies in the same way that you measure the speed of an arrow.
    3) Measure the speed of flies in the same way that an arrow measures the speed of flies.
    4) Measure the speed of flies that resemble an arrow.
    5) Flies of a particular kind, i.e. time-flies, are fond of an arrow.

    I would guess the source code for those five different interpretations would be, well, different. (The fifth one is my favorite.)

    --
    Education is the silver bullet.
    1. Re:Time flies like an arrow by aderusha · · Score: 1

      the fifth interpretation isn't too far off. take for example the phrase "fruit flies like a banana". just by changing a couple nouns the 5th interpretation becomes the correct one.

      as soon as someone makes a parser that can correctly differentiate between the two i think we'll have seen some real development in natural language parsing.

    2. Re:Time flies like an arrow by Viking+Coder · · Score: 1

      I would guess that Cyc might be able to do it. If only because the time flies problem was decades ago, and Cyc has been in constant development for a long, long time.

      Bummer that Cyc never "woke up." =)

      Then again...

      --
      Education is the silver bullet.
    3. Re:Time flies like an arrow by Anonymous Coward · · Score: 0
      Ahh yes. Elementary school jokes:
      Did you know that fruit flies like bananas...

      [ short pause with poker face ]

      but time flies like the wind?

      [ poker face slowly gives way to a gigantic grin ]
    4. Re:Time flies like an arrow by Tibor+the+Hun · · Score: 1

      You make it sound as the Vodka is good, but the meat is rotten!

      When in reality, the spirit is willing, but the flesh is weak.

      Some more funny NLP trivia:)

      --
      If you don't know what AltaVista is (was), get off my lawn.
  95. Re:Other uses? by Hooptie · · Score: 1
    What is this? A recipe for vanilla flavoured adobe?

    Perhaps you would like some leavening (like baking powder) to make it fluffy and perhaps a tasty liquid to hold it all together?

    Hooptie

    --
    "Heavens, it appears that my weewee has been stricken with rigor mortis!" -- Stewie Griffin
  96. Re:Other uses? by jacen_sunstrider · · Score: 1, Insightful

    The point is, unless you're going to program the robot or house or whatever yourself, it's going to be a problem to set up a standardized system that a program can understand. Sure, you can add in set after set of "dialects" for a machine to interpret, but in the end there'll always be someone who sees english different, and will put in something invalid. Closest I've seen is COBOL, and...well...we all know about COBOL don't we?

  97. Re:Other uses? by Anonymous Coward · · Score: 1, Funny
    ERROR (line 9): Capacity not specified;
    ERROR (line 11): Duplicate resources found, type specifier not present;
    ERROR (line 22): Utensil not specified;
    WARNING: Oven resource never closed;
    WARNING: Oven resource never turned off;
    WARNING: Pan never removed from oven;


    ... etc.

    Plus you forgot to mark your eggs for garbage collection once you were done with them. ;)
  98. About your update, Taco by festers · · Score: 5, Insightful

    Update For for the dupe. Not going well. Appreciate all the hate mail. Really encourages improvement.

    Taco, you asshole, you've been duping stories for years. You've known about them and yet you've done nothing to fix the problem. Don't pull this sentimental BS about not "encouraging" improvement. If the fact that if Slashdot is your creation, and is your job, isn't enough "encouragement" for you to fix the problem of dupes, I don't think anything will be. From all appearances, it looks like you've given up on /. years ago.

    --


    -------
    "Every artist is a cannibal, every poet is a thief."
    1. Re:About your update, Taco by exp(pi*sqrt(163)) · · Score: 5, Insightful

      Maybe he could just tell us what does encourage improvement. Sending fan mail every time a story that isn't a dupe is posted?

      --
      Doesn't it make you feel good to know that our freedoms are protected by politicans, lawyers and journalists.
    2. Re:About your update, Taco by Anonymous Coward · · Score: 0

      Like people don't notice the 364 days out of a year you get it wrong, they only notice the one day you get it right.

    3. Re:About your update, Taco by Anonymous Coward · · Score: 0

      Man! Thats just like my old job!

    4. Re:About your update, Taco by Tim+C · · Score: 5, Interesting

      Seems to me that a slashdot employee has one or more of four duties:

      1) pick stories to post
      2) sell advertising
      3) maintain the servers
      4) design and implement additions, bug fixes, etc

      Now, I'm not a subscriber, but I don't see much in the way of 4), even for features that the readership is crying out for, or that make financial sense for slashdot (such as moving to CSS for layout). I thought that /. got most of its advertising through the OSDN network, so I'd imagine that 2) is more or less minimal (and with /.'s fame, shouldn't be too hard anyway). That leaves 3) and 1). I have no idea about the time requirements of 3), but I can imagine that it might keep a couple of people busy full time.

      That seems to me to leave an awful lot of time left over for 1), picking stories to post. And yet, it seems like every day or two there is a dupe, every week or so there is a downright inaccurate (or even lying) summary or headline posted, and every month or so something that's accurately summarised, but the source is just plain made up or wrong.

      I know that the FAQ states that the editors don't check the stories for factual correctness, but Taco (et al) I ask you this: what do you do all day?

    5. Re:About your update, Taco by Apparently+someone · · Score: 1

      YOU go and write slashcode, Richard.

    6. Re:About your update, Taco by Anonymous Coward · · Score: 0

      that could get tricky, as some dupes comes days or years apart....

    7. Re:About your update, Taco by The+Bungi · · Score: 1
      Writing a crappy CMS and managing the website the thing is supposed to power are two very different things.

      In any case, pudge mostly hacks Slashcode now. I have no idea what Taco does, but if he's not coding then maybe he could try and run the website he still considers his hobby with a little professionalism. After all, it made him rich and provides a paycheck every week. The effin' least he can do is figure out a way to avoid posting dupes. This is not rocket science here, and we must assume that since he has the skills (after all, he wrote Slashcode, no?) something is preventing him from writing some sort of article digest script with the intelligence of an eucaryote that he can run his daily submissions against and get a big warning and suggestion to review possible matches before he clicks the "Fuck it, let's post this" button.

      The other problem of course is that he won't scratch his crotch without someone giving him a patch for it. The typical open source burnout "if you want that so bad write it yourself and send it to me, kthx" attitude.

      So please cut it with the "you try and do that" responses. This is how Taco makes his living. He should do it well. How many people do you know that could do a better job than him? He was just in the right place at the right time by accident.

    8. Re:About your update, Taco by timster · · Score: 1

      Really. I think it's supposed to be the Powerbooks that encourage improvement. If Taco doesn't find them encouraging enough I could sure give them a shot.

      I think we get annoyed with amateurish editing because most of us have jobs that are frankly more difficult and less rewarding than that of Slashdot editor.

      --
      I have seen the future, and it is inconvenient.
    9. Re:About your update, Taco by Apparently+someone · · Score: 0, Offtopic

      Excuse? Sir, you are way off base.

      I'm addressing the fact that some people are arguing the actual need for a dupe-checking methodology greater than what Taco has in place. Not only that, but one of them just got modded to (Score: 5, insightful). That pissed me off, simply because when that happened, it seemed as though it was a affirmative nod to the critic's offensive, off-topic, and Taco-targetted content, when in fact I (personally) don't give a flying leap if the origin article was a dupe or not. I find it a weak basis for a mod that high on an offensive post. If I had meta-mod points left I would have tried to hit that "not insightful" checkbox so hard that the modder would have felt it.

      If the critic needs the functionality so bad, they can go and write it themselves, and quit bitching. It's not an open source burnout stance, it's a point of opinion from an offended reader of highly modded Taco critic. I'll side with Taco, immediately, regardless of how he is going to approach the dupe subject in the future, and on whatever time-scale Slashdot chooses. No-one doing this job actually deserves to be treated that way. And if it involves code to produce a fix for some moron's peeve (read: lack of innate brain-based dupe-filter), then they can go and code the thing themselves.

      So, no... I will not "cut it with the 'you try and do that' responses". Maybe YOU could come up with that dupe filter it seems you so desperately need. I could care less about such a thing, and what that actually proves to me is that it's superfluous to my daily routine of reading some of the best news the net has to offer in one place.

      Your choice to use my post as a springboard to bash the site, or Taco, even further is really nothing more than a grab at attention. I was succinct with my statement, and now that I've explained it to the readers of your post, I have nothing further. Get modded however you like. Thank you very much.

  99. From my experience by elucido · · Score: 1

    Coding is a talent, designing is a skill. You cannot teach the talent but you can teach people to properly design programs. What we need to do is simplify the designing of programs. Visual basic attempted to do this but we can take it further. This does not mean just because you can design a program in english that it will be a better program than a well designed and well coded program.

  100. Computer! by sutekh137 · · Score: 1

    Computer:

    "All...your...base...are...belong...to...us."

    All in a day's work! Who needs lunch!

  101. MOD PARENT OFF-TOPIC by Anonymous Coward · · Score: 0

    What's the insight two moderators have found here?!?

  102. Like webdesign with Frontpage by PC_Detonator · · Score: 1

    This really reminds me of Frontpage. We all know that webdesign with Frontpage leads to unmaintainable and unlogical HTML code. I have a slight feeling that this will not be different with creating code from a natural language. I'm afraid that this will lead to a lot of unmaintainable and (most important) unsecure code.

  103. Tent by Anonymous Coward · · Score: 0

    you mispelled "mom's basement" :-)

  104. Re:Second post. yeah baby yeah. by Anonymous Coward · · Score: 0

    Incorrect - it's the first post, it just happens to be a dupe.

  105. Statistics package by Intron · · Score: 1
    Late 70s we wrote a statistics package at C-MU in FORTRAN which was intended for non-programmers to use the computer. It allowed you to enter English commands and formulas at a terminal like:
    let a = b + 1
    sort a
    plot a vs c
    where a, b and c were datasets. Got sold commercially to a number of institutions under the name CMU-DAP for use in statistics classes. The point is, people don't want to translate English into bad code, they want to translate English into useful work.
    --
    Intron: the portion of DNA which expresses nothing useful.
  106. Re:Other uses? by merreborn · · Score: 1
    Directions
    {
    preheat oven 450 degrees farenheit;

    break 2 egg into mixing bowl;
    pour 1 tsp vanilla into mixing bowl;
    pour 4 cups flour into mixing bowl;

    mix mixing bowl;
    pour mixing bowl into 12x6 inch pan;
    place 12x6 inch pan into oven;

    bake 15 minutes;
    }

    And when you find your bowl upside-down in a 12x6 pan in the oven, filled with crushed eggshells, a teaspoon, 4 cup measures, and an undentifiable sludge, then it's time to open up the debugger and try again, with slightly stricter requirements.

  107. Improvement by kentyman · · Score: 1
    Update: For for the dupe. Not going well. Appreciate all the hate mail. Really encourages improvement.

    No, but it might discourage deterioration.

    --
    You know where you are? You're in the $PATH, baby. You're gonna get executed!
  108. Re:Other uses? by stlhawkeye · · Score: 1

    Sweet, you just invented XML.

    --
    "I have never won a debate with an ignorant person." -Ali ibn Abi Talib
  109. Re:Other uses? by EphemeralPhart · · Score: 0

    Above code is overly redundand.

    Drop the curly bits as the scope information is already present in the (SHOCK HORROR !) spacing. Get rid of the ;'s rather use another glymph to indicate that the default line break behaviour does not hold, something like a \, perhaps.

    Wait, what have we here ? Another piece of beatifull Python code !

  110. Think code generators by CaymanIslandCarpedie · · Score: 1

    This seems pretty far fetched for a number of reasons when thinking about real enterprise level applications, but I used to think the same thing about code generators.

    After years of improvements, code generators are now a VERY important part of my development. Now code generators can never build an application for you (well at least not one that I'd want to put my name on), but there are a number out there now which can dramatically reduce development time. I don't think I've ever just taken and used any generated code, but building templates to generate code can save TONS of repetitive coding and only leaving a little cleanup and adding more advanced business intelligance than the generator can.

    I'd hope eventually, the type of technology described in this article would act like a next generation code generator. Allow developers to build up templates (preferablly in XML) to direct it in how to act. Again, this system wouldn't really be used to build real applications without programmers, but could be a great productivity tool by allowing us to avoid even more tedious work and consintrate on business logic more than typing out 20,000 lines of basic structure.

    --
    "reality has a well-known liberal bias" - Steven Colbert
  111. Re:Other uses? by AKAImBatman · · Score: 1

    Except that you're reading it literally like a human might. Each "command" is really just a function that knows how to properly implment the action. e.g. If you have a function:

    breakEggs(&bowl)

    You would expect it to break the eggs into the bowl and discard the shells. Same thing here. It's just a meta-description.

  112. For for the dupe by Darth_Burrito · · Score: 1

    For for the dupe

    Department of redundancy department?

  113. Re:Other uses? by avandesande · · Score: 1

    nice try but like most examples trying to explain OOP, they pick an easy subject.

    Often time I find that real OOP problems aren't so straightforward.

    --
    love is just extroverted narcissism
  114. Re:Other uses? by AKAImBatman · · Score: 1

    Drop the curly bits as the scope information is already present in the (SHOCK HORROR !) spacing.

    We did that in the days of COBOL. It sucked.

    Get rid of the ;'s rather use another glymph to indicate that the default line break behaviour does not hold, something like a \, perhaps.

    Or perhaps we could leave it as is? Alternatively, don't allow mid-instruction breaks. Modern computers can *scroll* horizontally, so there should be little issue with just requiring everything on one line.

    Wait, what have we here ? Another piece of beatifull Python code !

    Not another one of you people. Go away, will you? You're an annoyance to those of us who are getting things done.

  115. Dupe checking is a not a technical problem. by Inoshiro · · Score: 4, Insightful

    "Update For for the dupe. Not going well. Appreciate all the hate mail. Really encourages improvement."

    At LWE in January, 2001, at a conference on Slashcode, someone asked us at Newsforge how our site had so few dupes compared to Slashdot. There were two reasons:
    1) We had a smaller audience of people to see the dupes we did accidently post.
    2) We searched our archives before posting any story. We searched by story URL, by story keyword. We also generally skimmed the site when we weren't working to be aware of what was being posted.

    Clearly, #1 is something Slashdot doesn't have working in its immediate favour, but #2 is something that shouldn't be too hard. Zonk, Timothy, Cliff, Simonker, etc, don't post dupes nearly as frequently as CmdrTaco. Hemos doesn't post often, but he also seems to be pretty dupey (understandable as he's not really associated with /. anymore, and wouldn't be familiar with what's been posted).

    The worst example is something like the PSP dupe story: Taco didn't even check out the games section, which had that story right at the top! A simple search for "PSP" and "Browser" would've shown it even if he never reads sections.

    CmdrTaco doesn't read his own site. What does this tell you about how he feels about it?

    I don't read Kuro5hin much anymore for the same reason. Complaining about dupes will just drive him further away, even though he still has to work on it by contract.

    --
    --
    Internet Explorer (n): Another bug -- that is, a feature that can't be turned off -- in Windows.
    1. Re:Dupe checking is a not a technical problem. by festers · · Score: 2, Interesting

      CmdrTaco doesn't read his own site. What does this tell you about how he feels about it?

      Yes, that's been pretty obvious for the last couple years.

      I don't read Kuro5hin much anymore for the same reason. Complaining about dupes will just drive him further away, even though he still has to work on it by contract.

      You say that like it would be a bad thing. Maybe it's time he lost the presence, admit that's he's been burned out for years, and handed over the "reigns" to someone who cares enough about Slashdot to make the changes that are sorely needed. No one expects him to work at /. forever. If you can't find any pride in a job well done, maybe it's time to find another job...

      --


      -------
      "Every artist is a cannibal, every poet is a thief."
    2. Re:Dupe checking is a not a technical problem. by festers · · Score: 2, Informative

      Sorry to reply again, I remembered something right after I hit the submit button. In August of 2001 I emailed Rob Malda and asked him if he still cared about Slashdot. There was an article that sparked a lot of criticism, and CmdrTaco's response was "Eh, we'll get over it." Here are some of those links:

      http://slashdot.org/comments.pl?sid=21076&cid=2233 142

      http://slashdot.org/comments.pl?sid=21076&cid=2233 751

      It's kind of depressing to see that these issues keep getting rehashed year after year.

      --


      -------
      "Every artist is a cannibal, every poet is a thief."
  116. Re:Other uses? by AKAImBatman · · Score: 1

    Dude, I was replying to someone who was suggesting using the natural language interface for cooking programs.

  117. Use cases are deceptive by crovira · · Score: 2, Informative

    Its possible to construct perfectly correct use cases for an elevator which strands everybody on the roof.

    Its also possible to construct use cases which don't make any sense (by not requiring the holes in the floors.)

    --
    MSBPodcast.com The opinions expressed here are my own. If you don't like 'em... Think up your own stuff.
    1. Re:Use cases are deceptive by merlin_jim · · Score: 2, Insightful

      Yeah I've had similar complaints about Use Cases. My biggest complaint is the typical round-pegs-in-square-holes of "describing what the user's experience should be does not come close to describing what the system should do"

      In our practice we bridge that gap through requirements and logical design. It's inelegant and I don't like it, but when you're a consulting firm sometimes it's more important to be able to say that you use industry standard practices than it is to have the absolutely ideal solution.

      I mean your homebrew project documentation standard might be really good. It might be the best ever invented. In fact, it might be so great that any programmer that looks at it can intuitively tell that it is superior.

      The problem is that my clients are not programmers. My client's are almost universally unqualified to make any decisions about the fitness of development standards. If they were qualified to do that, they would either be developing internally or hiring contractors, not consultants. So using a standard that a third party has said is a good standard carries a lot of value over and above that of the standard itself sometimes...

      --
      I am disrespectful to dirt! Can you see that I am serious?!
    2. Re:Use cases are deceptive by snorklewacker · · Score: 1

      That's not what use cases are for. Use cases are the "assert" statement of design, i.e. after all that code, does it manage to do this?

      --
      I am no longer wasting my time with slashdot
  118. Executable thoughts by Anonymous Coward · · Score: 0

    See the screen shot in the article and you will know what I mean!
    Python is so close to executable pseudo-brain-code that the 20% analysis leading to 80% benefit (claimed in the article) is almost superfluous. ;-)

  119. Python semicolons by LPetrazickis · · Score: 1

    BTW, using semicolons to terminate lines is perfectly legal in Python. It doesn't care if they are there or not, but using them makes it easier if you are also writing Perl and Java at the same time. In fact, I always semicolon my Python.

    *evil cackle*

    --
    Is this a sigs-optional kind of place? 'Cause I am totally down with that if you know what I mean.
  120. It's actually sorta important! by SPYvSPY · · Score: 5, Insightful

    It really bugs me that /. editors treat dupes as a sort of charming fact of life, as if dupes are among those imperfections that make life worth living. Dupes suck, if for no other reason, because they fork discussion, confuse the archive and make searches less precise.

    It's especially annoying when the dupe article proclaims that the /. crowd is able to code by second nature. How f-ing hard is it to have a dupe checker (even a simple on like what FortKnox is proposing). Why is it that a website that proclaims itself the bastion of all things FOSS has languished in mediocrity while thousands of competent coders are practically begging to write this feature into the site's backend? Of course, nothing will come of this, except more shoulder-shrugging and gee whiz, golly nonsense. I'm not trying to flame, but this sort of unprofessional, "friendly fuckup" attitude is what holds the public image of FOSS back.

    1. Re:It's actually sorta important! by Elwood+P+Dowd · · Score: 3, Insightful

      Why is it that a website that proclaims itself the bastion of all things FOSS has languished in mediocrity while thousands of competent coders are practically begging to write this feature into the site's backend?

      We don't have to beg. We can just submit a patch to slashcode.

      --

      There are no trails. There are no trees out here.
    2. Re:It's actually sorta important! by dmd · · Score: 5, Insightful

      The point is that such patches have been submitted, by dozens of people - people who are very talented, and who have a great deal of experience running and modifying Slash.

      Slashdot is not interested in applying these patches, because dupes mean more angry posts, and angry posts mean more pageloads, and more pageloads mean more ads served.

    3. Re:It's actually sorta important! by the_Bionic_lemming · · Score: 1

      Ads?

      Hey - there's a neat program called "firefox" and a plug in called "adblocker" - I think it might of been mentioned here a while back.

      --
      _ _ _ Go for the eyes Boo! GO FOR THE EYES!
    4. Re:It's actually sorta important! by Elwood+P+Dowd · · Score: 1

      Sorry, didn't realize.

      Mod parent up.

      --

      There are no trails. There are no trees out here.
    5. Re:It's actually sorta important! by ishepherd · · Score: 1

      ...And Slashdot must be running on a veeeeery old (forked?) version of Slashcode.

      --
      fud, notfud, yes, no, maybe
    6. Re:It's actually sorta important! by Anonymous Coward · · Score: 0

      Unfortunately, that is the case. It turns out that Slashdot's trolls and crapflooders are better Perl programmers than the guys who maintain Slash(!), which enables them to easily find and abuse the bugs.

    7. Re:It's actually sorta important! by Anonymous Coward · · Score: 0

      From TFA:

      Computer programming is second nature to most of the Slashdot crowd.

      Most != All. English not your forte? I guess you shouldn't be using Metafor either!

    8. Re:It's actually sorta important! by dmd · · Score: 1

      Yes, but only about a few percent or so of even slashdot readers use adblock. (I do.)

      So that has no effect on their desire to serve ads.

    9. Re:It's actually sorta important! by the_Bionic_lemming · · Score: 1

      Well, you can lead a horse to water...

      Actually, it's par for the course - You'd have to RTFI to know how to add it into the toolkit ;)

      --
      _ _ _ Go for the eyes Boo! GO FOR THE EYES!
    10. Re:It's actually sorta important! by A+beautiful+mind · · Score: 5, Interesting

      Dear CmdrTaco!

      Please state your requirements about a dupe checker, between realistic boundaries.
      Things like - integration into the accepting stories interface seamlessly, spamassassin style dupe detector with a point based system, or even coding bayesian algorithms - are possible.

      I'm willing to (help to) code it. With two conditions. You'll apply it and use it. If this happens i'm predicting a serious decline in dupe stories and posts.

      If you fail to do this or you're not interested in this offer, then STOP being pissed, put up with the hate mail, the accusations about ad revenues, and use the bloody search function.

      Just to make sure this offer reaches you i'm going to mail it to you, and continue to do so - in regular periods - until i get some kind of reply, either a yay or a nay.

      Yours, a beautiful mind

      --
      It takes a man to suffer ignorance and smile
      Be yourself no matter what they say
    11. Re:It's actually sorta important! by Anonymous Coward · · Score: 0
      Skip the coding - just write your requirements and run it throught the code generator in the article.

      ----- "A Deja Vu is a glitch in the Matrix - It means they changed something."

    12. Re:It's actually sorta important! by ZeroExistenZ · · Score: 1

      It's almost like tv, where they air popular TV-shows until you really get tired sick of them and know each episode word after word, in at least 3 languages.

      --
      I think we can keep recursing like this until someone returns 1
    13. Re:It's actually sorta important! by syukton · · Score: 1

      Slashdot is populated by a bunch of immature geek fanboys who are unfamiliar with the concept of the rerun or its noteworthy value. These people read slashdot every day. Not just every day, but every hour. If there's not something new or fresh there to read, they bitch and moan about it. They're spoiled little geek brats. Simple.

      "Dupes suck, if for not other reason, because they fork discussion"

      Forked discussion is bad? Diversity in thought is ... bad? Should we all don our uniforms now and all talk and act the same way? Diversity is good, forked discussions are good. Don't put all your eggs in one basket.

      "confuse the archive"

      Confuse how? The article titles are concise. If somebody reads a pair of duplicated articles on slashdot and they don't possess the mental capacity to identify them as articles about the same thing, then that's their loss. This is slashdot. News for nerds. You know, smart people. Do we really need to cater to the stupid?

      "make searches less precise"

      Precise how? By encouraging a greater diversity of results? It might ruin precision but it sure increases your pool of available results.

      I posit the notion that a dupe is posted because the editor finds the story to be interesting. Just think of it like the 11 o'clock news rehashing the 5 o'clock news for other peoples' benefit because a given story is still interesting. In most cases, with slashdot, it's an unintentional duplication. But the effect is the same, you repeat the valid content to a new audience.

      The editors don't post stories solely for the fanbois who never leave slashdot.org through the course of their waking hours. They post stories to post them, for people to read them. If something is interesting enough to post about twice, can't those of us who feel it's a waste of time just look past it? I mean, yes, it might not be benefiting you particularly, but there's really no reason to bitch about it at all (especially if you aren't even a subscriber)

      I'm curious, where in the slashdot user agreement does it say that there will be no duplicate stories? Where does it say that they won't be redundant? Does it?

      This is a case of not knowing how good you have it until you don't have it any more. Would you rather have no slashdot, or slashdot with the occasional dupe? Think about that one. Some people might benefit from the dupe that your feeble mind cannot possibly scroll past without erupting into an aneurism of dupe-loathing.

      I really don't get what is so bad about reading about the same (generally interesting) thing twice; you all seem like a bunch of narrow-minded inside-the-box fuckwits.

      Just.
      Keep.
      Scrolling.

      --
      Reinvent the wheel only at either a lower cost, greater effectiveness, or your own personal enrichment and satisfaction.
    14. Re:It's actually sorta important! by froschmann · · Score: 1

      If it were not for dupes, I might miss a story. I mean, really, if you see a dupe of something you have already read, just don't look at it.

    15. Re:It's actually sorta important! by dimator · · Score: 1

      I've never looked at slashcode, but my guess is, if it was at all designed correctly and cleanly, or if its maintainers gave a shit, or if slashdot's maintainers gave a shit, a lot more important updates would be done already.

      --
      python -c "x='python -c %sx=%s; print x%%(chr(34),repr(x),chr(34))%s'; print x%(chr(34),repr(x),chr(34))"
    16. Re:It's actually sorta important! by plover · · Score: 1
      I use adblock on many sites, but specifically not on Slashdot.

      I figure if it's this valuable to me, I do owe them a tiny bit (even though I subscribe) -- and if a pair of eyeballs spotting the OSDN banner ad somehow makes them better off, well good for them.

      However, screw any flash ads they <BLINKed> in on...

      --
      John
    17. Re:It's actually sorta important! by analog_line · · Score: 1

      Excuse me, if slashdot is so goddamned useless because of the dupes, why the hell are you still using it?

      You and all those like you who constantly whine and bitch and moan about all the dupes making your life hell are just plain pathetic. I don't believe a word of any of it. Bitching for bitching's sake, and if I cared at all about the moderation system (I don't and have opted out of moderating) I'd save all the mod points I ever recieved on modding down you whiners.

      Good fucking Christ, people get a fucking life. It's people like you, with nothing useful to contribute to a discussion other than the fact that someone already brought this topic up before that make slashdot more and more usless, not duplicate articles.

    18. Re:It's actually sorta important! by AyeRoxor! · · Score: 1

      This is what makes SlashDot better than Fark, both in the immediate, and in the long term. On Fark (which has been broken for days now), this post would be deleted and the poster banned. Here, it actually has a chance to earnestly improve the site.

      For non-techie news, I really like Fark, even though I've had like 10 accounts banned because my humor/opinion differed with a mod. It would just be so much better if it were democratic instead of totalitarian.

      Let's show Fark that panmoderation and metamoderation can solve problems. Fix the dupes.

    19. Re:It's actually sorta important! by SPYvSPY · · Score: 1

      Good god, am I really going to reply to this flamebait? I sure am!

      Forked discussion isn't a reference to diversity of thought. Forked discussion is bad because it means that you can't look in one place to see the whole spectrum of discussion. If I make an insightful comment on the original story, but my comment doesn't get repeated on the dupe, a person searching stories later might only find the dupe and miss an important contribution. So, you see, forking discussion is a great way to prevent diversity from reaching the /. audience.

      The archive is confused and searches are less precise because two identical stories are not always going to turn up in response to searches depending on the keywords associated with the stories.

      Ok, troll, you can pat yourself on the back now. You wasted five minutes of my day!

    20. Re:It's actually sorta important! by syukton · · Score: 1

      "Forked discussion is bad because it means that you can't look in one place to see the whole spectrum of discussion."

      So you should be able to just go to one place and find all information? Is there a magical library of alexandria in your dreams or something? You always need to go to multiple sources to see the bigger picture. Forked discussions are a GOOD thing. Is there only one mathematics textbook? No? Well why not? Why all that forked discussion about math, why not one be-all end-all book about it? Forked discussion is an extremely good thing as it promotes DIVERSITY of thought. It encourages different people with different ideas to contribute to the same topic. There's not only one web forum out there for car enthusiasts or computer enthusiasts or whatever. If only for the reason that some people don't get along with others, diversity of discussion is a good thing.

      You said "a person searching stories later might only find the dupe" -- yes, might. World might also end right now. might. You might get hit by a bus tomorrow. might. You think that all discussion should be had in the same place; that there should be only one forum of discussion, because somebody might miss your comment? To presume that anything modded insightful on slashdot is "an important contribution" is pretty asinine in and of itself. +5 Informative, maybe, but I've seen some pretty shitty +5 Insightfuls. Believing that all discussion should be held in the same place because of the off chance that somebody searching for something isn't interested enough in it to do a thorough search and they may miss your comment is incredibly, almost dumbfoundedly idiotic.

      Diversity is about DIFFERENT thoughts, not about somebody reading your post and going "wow, you're insightful" and then not posting anything because they're awed by your insight. Perhaps not having your insight around will allow another to provide an alternate and different insight and therefore an alternate viewpoint. AHA! that's it! Now you see! An alternate viewpoint! The way you see the world isn't the way the world necessarily is! So getting additional viewpoints is good, and having multiple discussions about a particular topic allows for multiple viewpoints to be explored, free from the insinuations or debates that have built up from the last discussion. Maybe now you'll understand that forking a discussion does absolutely nothing to hurt the diversity of thought.

      --
      Reinvent the wheel only at either a lower cost, greater effectiveness, or your own personal enrichment and satisfaction.
  121. Didn't they already try doing this? not bout dupe. by OmgTEHMATRICKS · · Score: 0

    If I remember correctly, it's the cause of most suicides in Seattle. http://en.wikipedia.org/wiki/COBOL

  122. Re:Other uses? PLEASE, think "REQUIREMENTS" by Systems+Curmudgeon · · Score: 1

    The stated goal of Metafor is to state requirements, not specs or algorithms. In the case of cooking, an requirement might be:

    "The recipe is intended for amateurs; it must be designed so that it will produce good results even if the the oven is 30 degrees too hot or too cool."

    The recipe you give above would meet the requirement by an adjustment of the ratio of solids to liquids, and carefully chosen temperature and cooking time.

    It's not clear that there would be any utility in stating this requirement in an object-oriented form. The requirement cuts right across the details of the recipe design and implementation.

  123. No by wiredog · · Score: 1

    Haughty sniping is first nature to most of the Slashdot crowd.

  124. How about grammar too by ThousandStars · · Score: 1
    For for the dupe. Not going well. Appreciate all the hate mail. Really encourages improvement.

    Would adding spelling/grammar flames to the dupe ones help? Anyone who thinks so should feel free to add them in a reply to this comment.

    1. Re:How about grammar too by Anonymous Coward · · Score: 0
      This is the underlying problem behind Slashdot. Rob Malda still sees it as a little hobby. He thinks that people should just appreciate all he does because they're not paying for it. The problem with this is that long ago, the readers started paying for Slashdot. And this isn't just referring to subscriptions. Slashdot readers view ads [well, some of them anyway] and therefore Rob Malda receives compensation from the readers. It's no longer a little hobby but is instead his job. He might know a little more about this if he had any actual background in journalism. But, sadly, he believes that he is better than all the readers and that they have no right to complain.

      The way I see it, Slashdot become irrelevant a number of years ago. I only continue to come here out of habit. Even if Rob Malda suddenly "gets it", it's too late. I think it's just so pathetic the way he behaves and the way Slashdot is run so secretly.

  125. NO NO NO! by RobertKozak · · Score: 2, Insightful

    In addition to helping programmers visualize their program better, I think it also promotes writing concise (and therefore) requirements and descriptions.

    Nope!.

    We don't need a way to transform natural language to program... we need a way to take a program code and produce natural langauge.

    I don't know any developer that actually likes writing documentation.

    --
    Bet this .sig looks familiar.
  126. Is this really a good idea? by TiggertheMad · · Score: 1

    From a research standpoint, this is very interesting and all, but from a pure pragmatic standpoint this seems like a bad idea: By adding in an extra level of 'abstraction', you include an extra level where errors can crop up.

    How about devoting all that cool research into writing better compiler AI, and improve debugging and code optimazation?

    --

    HA! I just wasted some of your bandwidth with a frivolous sig!
  127. I heard about this... by Anonymous Coward · · Score: 0

    It's called Forth. Created in the 1960s. It's still chugging away.

  128. The problem with this... by Headbonk · · Score: 1

    Most of my clients can't even express their requirements in plain english :P

    We need the algorithm that removes the buzzwords and replaces inapropriate jargon in middle management speak to translate it into plain english. This would be the DWIM (do what I mean) pre-filter for client requirements.

  129. Extending the analogy... by benhocking · · Score: 2, Insightful
    and it should be made impossible for anyone untrained (or out of practice) in languages that meet your standard of snobbishness
    Definitely, at least when it comes to business apps.

    But not all code is written for business apps. What about scientists who understand logic fairly well, but who have difficulty in C or C++? (There are a surprising number of such people.)

    Would you trust a surgeon who's 15 years out-of-date to operate on you?

    Would you prevent a mother with no medical training to put a band-aid on her son's skinned knee? Sure, a trained doctor would know more about exactly how much (if any!) antibiotics to apply to the wound before applying the bandage, but surely you agree that the mother should be forced to pay his fees for this fairly trivial service?

    I agree that this might not be for everyone or every project, and this particular instantiation might not even be for anyone or any project, but surely you must understand the importance of allowing the casual/hobbyist programmer to increase the tools in his toolbox!

    --
    Ben Hocking
    Need a professional organizer?
    1. Re:Extending the analogy... by tomhudson · · Score: 1
      Would you trust a surgeon who's 15 years out-of-date to operate on you?
      Would you prevent a mother with no medical training to put a band-aid on her son's skinned knee? Sure, a trained doctor would know more about exactly how much (if any!) antibiotics to apply to the wound before applying the bandage, but surely you agree that the mother should be forced to pay his fees for this fairly trivial service?
      Last I looked, there was a BIG difference between putting on a band-aid and cutting someone open.
      but surely you must understand the importance of allowing the casual/hobbyist programmer to increase the tools in his toolbox!
      Hey, anyone is free to use it - all I'm saying is that it's going to create more bloated shit than anything else, and then who do you think is going to have to fix it (also explaining why it costs so much more, when it "can't be that hard, 'cause we were able to do stuff using Metafor")

      People are going to use it for stuff it's NOT suitable for - that's human nature. Give someone a hammer, everything becomes a nail. Give someone a spreadsheet program, everything (including memos) becomes a spreadsheet. Give someone a dumbed-down toolkit, and everything becomes "any dummy can do it" - until they try to do it.

  130. Re:Other uses? by orgelspieler · · Score: 1

    reminds me of Chef.

  131. What about speaking a programming language? by brammo · · Score: 1

    There are attempts to program in a spoken language: for instance Lojban. It's an artificial, logical language to be spoken, but in which no ambiguosity can occur. It's easily parsed by a computer. So why not learn it, speak it, program in it?

    (I must admit that I think the language is too artificial to be spoken but I haven't even worked through the tutorial. There are actually people who can speak it fluently!)

    --
    Tha-tha-tha-tha-that's all folks!
    1. Re:What about speaking a programming language? by Anonymous Coward · · Score: 0

      In 1948, a man wrote a book about this - Probably one of the most frightful book of this time ... of course i'm refering to George Orwell's "1984" and it's horrible Novlang : a language narrowminding people using it.

      What is the point to adapt ourselves so computers can understand us ? Again the tail is moving the dog ...

      Building such a language is an interesting exercice, though. But I just hope it will never be used widely.

  132. PARENT IS LAME by Anonymous Coward · · Score: 0

    msg db "Hello, World!",0
    main: push msg
    call puts
    push 0
    call exit

  133. Not quite. by Anonymous Coward · · Score: 0

    What you would have is another piece of useless crap python code that can't be worked on or used by other people without unwarrented problems. Curly braces or some other block container is required for a programming language to not suck. This allows simple scripts and other programs to alter indentation so everyone can code in their own style, and then indent it correctly for the project. man indent, and then stop trying to push the dumbest language ever made on everyone. Ruby and pike have everything python has, without the retarded whitespace bugs.

  134. Use enums instead by Chemisor · · Score: 1, Funny
    If you had used an enum instead of those constants, the compiler could have checked the argument validity at compile time:
    enum EDirection {
    RIGHT,
    LEFT,
    UP,
    DOWN
    };

    void changeDirection (EDirection dir)
    {
    direction = dir;
    }
    That is, unless you are using Java, in which case: oh, you poor shmuck! :)
    1. Re:Use enums instead by MoonFog · · Score: 1

      Java have enums similar to those in the 1.5 (or 5) release.

    2. Re:Use enums instead by Anonymous Coward · · Score: 0

      > That is, unless you are using Java, in which case: oh, you poor shmuck!

      Java has enums. Where have you been?

    3. Re:Use enums instead by Tim+C · · Score: 2, Informative

      Java has enums as of 1.5 (or 5.0 if you're Sun's marketing dept). For previous releases, something like this should work:

      public class Direction
      {
      public static final LEFT = new Direction(1);
      public static final RIGHT = new Direction(2);
      public static final UP = new Direction(3);
      public static final DOWN = new Direction(4);

      private int dir;

      private Direction(int dir)
      {
      this.dir = dir;
      }
      }

      Then the changeDirection method is

      public void changeDirection(Direction dir)
      {
      this.direction = dir;
      }

    4. Re:Use enums instead by Coulson · · Score: 2, Informative
      The pattern for enums in Java prior to 1.5 uses a singleton class to achieve the same effect.
      class EDirection
      {
      public static final RIGHT = new EDirection();
      public static final LEFT = new EDirection();
      public static final UP = new EDirection();
      public static final DOWN = new EDirection();

      private EDirection() {} // private constructor
      }
      The private constructor ensures that only these 4 instances of this class will ever be instantiated.
  135. Dijkstra said it best... by period3 · · Score: 2, Interesting
    ...in his paper on the "Foolishness of Natural Language":

    The virtue of formal texts is that their manipulations, in order to be legitimate, need to satisfy only a few simple rules; they are, when you come to think of it, an amazingly effective tool for ruling out all sorts of nonsense that, when we use our native tongues, are almost impossible to avoid.

    Instead of regarding the obligation to use formal symbols as a burden, we should regard the convenience of using them as a privilege: thanks to them, school children can learn to do what in earlier days only genius could achieve.

    When all is said and told, the "naturalness" with which we use our native tongues boils down to the ease with which we can use them for making statements the nonsense of which is not obvious.


    1. Re:Dijkstra said it best... by Anonymous Coward · · Score: 0

      ah yes, but you can go from the the general to the specific. Using natural language as a template to bridge the conceptual gap that exists between idea and code. After you get started, then you can iterate the details and formalities and refine your design.

  136. I can see alot of value in this by Anonymous Coward · · Score: 0

    Actually it can serve two purposes. One is to bridge the gap in learning a new language. This would be an excellent tool to use for intro to programming.
    2) later stages I can see this tool helping design programs. Its not different from UML.
    In fact maybe a natural language to UML tool would be useful as well.
    3) Tools like this help manage complexity. Of course you lose information when you work at higher levels of abstraction. But, its no different then losing information when working with C++ instead of machine code.
    4) I see design tools like this a benefit to the programming world
    Keep up the good work.

  137. Lazy admins by DogDude · · Score: 3, Insightful

    No, an url checker isn't needed. They need to actually do their fucking jobs. Hell, I just read the site, and I know when a story is a dupe, as do hundreds of other readers. For a few of these guys, their ONLY JOB is to maintain the site. If they can't recognize when a story is a duplicate, they aren't doing their job. It shouldn't require an URL checker. These guys should get off their lazy asses. The problem is that some of us just keep coming back, giving them more pageviews, etc. If people got really sick of it and just came to /. less, maybe management would wake up and can these guys posting the stories. Sure, I know they started it, but that doesn't mean they're inherently more competent than anybody else.

    --
    I don't respond to AC's.
    1. Re:Lazy admins by Anonymous Coward · · Score: 0

      If people got really sick of it and just came to /. less, maybe management would wake up and can these guys posting the stories.

      It's already happening: Less Impact from the "Slashdot Effect".

    2. Re:Lazy admins by DogDude · · Score: 1

      That's an excellent post. Also, the article you posted didn't mention this, but I'd be curious if pageviews per visitor are dropping due to the shitty editing.

      --
      I don't respond to AC's.
  138. Re:Other uses? PLEASE, think "REQUIREMENTS" by AKAImBatman · · Score: 1

    Read who I was replying to. He got modded down to -1 for adding a troll at the end of his otherwise perfectly acceptable post.

  139. Talk about impossible! by Anonymous Coward · · Score: 0
    Let's start building this tool.

    First, the tool must have a microsope built in.

    Next, search algorithm for finding brain.

    Recognition software to distinguish between brain and dust speck. (Hint: Dust speck is much larger)

    Now to turn it into solid requirements...

    Okay, I give up!!

  140. Brave man by 3770 · · Score: 1

    Wow, you are a brave man.

    You are trying to explain object oriented coding to novices in a community that

    1) has 500 000 people who are sure they are the foremost coder in the world.

    2) loves to criticise.

    Anyway, I appreciate that you stuck your neck out and tried to do something productive.

    --
    The Internet is full. Go Away!!!
    1. Re:Brave man by AKAImBatman · · Score: 1

      I do what I can. Thanks for noticing. :-)

  141. English is too ambiguous by Cro+Magnon · · Score: 1

    Try Esperanto or Lojban.

    --
    Slow down, cowboy! It has been 4 hours since you last posted. You must wait another few hours.
  142. Natural languages are not enough by EmbeddedJanitor · · Score: 2, Insightful
    It is easy to get trapped into thinking that we always used natural languages until we got to programming and therefore languages are the hurdle.

    The use of special purpose languages is nothing new. They're used in mathematics, chemistry, music etc. ... pretty much anywhere where it is easier to use a special purpose language to express concepts than with a natural language. Sure there is a learning curve, but that is often the least of the hurdles in doing a reasonable job.

    Take for example music: For the musically illiterate like myself, a music score means nothing. Yet, to someone who can read music it means a lot. I guess you could potentially write music in English: "Make a high pitches sound for a bit, then a lower pitched sound and then a highher pitched sound....". Reading that would be hell and it is imprecise as to what it means. The hard part to being competent at music is not how to read the score.

    Likewise, computer languages are the least barrier to effective programming. What matters more are the concepts and being able to express them effectively. Sure, some languages are easier to use than others (eg. python might be simpler than C and just about everything is simpler then Brainfuck), but programming in a natural language would be damn difficult. We already have some simple programming languages like VBscripting and spread sheets for "soft tasks" like customising spreadsheets and wordporcessors etc.

    --
    Engineering is the art of compromise.
    1. Re:Natural languages are not enough by jallen02 · · Score: 1

      Well, it depends on what you talka bout when you refer to complexity. Machine Language is the most simple programming can get. You only have to know 1 and 0 ;-)

      Assembly attaches english-like names to opcodes (and does a host of other nice things when compared to machine language) and moves you one step away from the machine. Languages that are one step above assembler, such as C, as a step above that. Each language is more complicated than the next. Each level of complexity in the language allows us to express *problems* less complicated.

      Assuming an English language speaker a compiler that could process a non ambigious sentence as one programming statement would be the ideal form of expression for communicating to other english speakers. Unfortunately the complexity of implementing such a language that truly worked well would be quite difficult and would border on requiring artificial intelligence to understand the semantics of what you are saying. The only way to make it work for a computer would be to enforce rules on your english and thus creating a syntax. And, just like a book, the more complicated the ideas you express the more you must organize and the more difficult programming in natural language becomes without adding *more* rules. The whole point is that humans can interpret an ambigious statement, relate it to an incredibly subtle set of contextual hints and infer the proper meaning. Computers can't do that yet. Contextual meaning is some of what makes natural language so powerful.

      In my mind you end up with something that rather closely resembles a programming language that has vestiges of English in there. Maybe you would end up with something like:

      while(someVariableIsTrue) {
      doSomethingUseful();
      }

      Nah.. it seems to far fetched we could ever come up with something like that.

      Jeremy

    2. Re:Natural languages are not enough by ciroknight · · Score: 1

      Of course, natural languages wouldn't be good for something such as Music. The Music Langauge is the description of microvibrations in the air, something that is not very well described in a language. So instead, we give the different pitches of vibrations different names, which, for readability's sense, are letters. This creates a whole complete alphabet, a "word" (chord) and "sentence" (measure) structure, and allows for great variation within the language.

      What natural languages are good at describing are menial tasks. "From a set of all the files on my computer, I would like to select those of the Word file format. From that set, I would like to select those with a name similar to, or containing, "trees". I would like to select from that group the file containing "Trees are good"." And really, it's as simple as that.

      When we humans communicate with computers, we too often build languages in which we describe things in the sense of how they work. For example, programming languages like C/C++ are adapted with the idea of "pointers" or locations of something in memory. Well, sure, this works fine for a computer because not only is it's memory a finite size, it's also fairly trivial to randomly seek within it. Us humans on the other hand, build memories off of association, and therefore when we remember one thing, we tend to remember things that are related to it. So when we go "Oh, to make this presentation I used a spreadsheet containing this data, and this word file with definitions", a computer just sees three files laying in a directory.

      I think in order for us to stay productive while using computers (and not simply end up playing games all day, as we typically do), we need to distance ourself from them, and they need to learn how to communicate with us, on our terms. Sitting in front of a monitor all day leads to deadtimes with nothing more to do than play a video game. And when it does come time for us to do something, we often spend a great deal of time either finding the file, searching within databases for information, or plugging along, clicking checkboxes, pressing buttons, etc.

      Instead, we should simply have to ask our computer for the file, ask the database for the information directly, and not even have to bother with a million different buttons. We should spend time on teaching the computers of today a functional, natural language, in which anyone can use. We should work on Speech-to-Text, making our auditory words become software words. Once the computer knows how to listen, teaching it how to speak is just one more step. And of course, this won't abolish the good old keyboard and monitor, nor the mouse any time soon. But it's something we should definitely look forward to in our lifetime.

      --
      "Victory means exit strategy, and it's important for the President to explain to us what the exit strategy is." G.W.Bush
    3. Re:Natural languages are not enough by locnar42 · · Score: 1
      What natural languages are good at describing are menial tasks. "From a set of all the files on my computer, I would like to select those of the Word file format. From that set, I would like to select those with a name similar to, or containing, "trees". I would like to select from that group the file containing "Trees are good"." And really, it's as simple as that.
      It's called COBOL. I hope to never see it again.
  143. Thump! by Anonymous Coward · · Score: 0

    I plant this flag in commemoration of this day for future generations. I am proud to be posting to this historical thread in which CmdrTaco busts a vessel.

    1. Re:Thump! by vsprintf · · Score: 1

      I am proud to be posting to this historical thread in which CmdrTaco busts a vessel.

      Nothing new. Those Coast Guard fellows do that every day.

  144. It's all a matter of perspective... by benhocking · · Score: 2, Interesting
    Hey, anyone is free to use it - all I'm saying is that it's going to create more bloated shit than anything else, and then who do you think is going to have to fix it (also explaining why it costs so much more, when it "can't be that hard, 'cause we were able to do stuff using Metafor")

    Sounds like someone has a case of the Mondays. ;) Seriously, you appear to be speaking from your experience as someone who has to support idiots (AKA the general population). OTOH, I'm speaking from my experience in the sciences where the amount of time spent writing code is frequently larger than the amount of time spent running the code. In many instances (not all) bloat is less of a problem than time wasted tracking down the reasons behind a segfault. That's one reason why many scientists "code" in Mathematica and/or MATLAB. Again, I'm not saying that this particular solution is any good, just arguing for the value in making programming easier at the expense of making the programs less efficient in space/time.

    People are going to use it for stuff it's NOT suitable for - that's human nature. Give someone a hammer, everything becomes a nail.

    Give a mother a band-aid, and everything's a boo-boo. I still remember that time when I had my legs and arms separated from my body - blood was spurting everywhere! - and my mother was trying to fix it with a band-aid (well, four band-aids). Luckily, I finally convinced her that this was a job for a surgeon.

    --
    Ben Hocking
    Need a professional organizer?
    1. Re:It's all a matter of perspective... by tomhudson · · Score: 1
      Good points. Scientists are, perhaps, an exception. They're more likely to be able to elucidate their requirements, comprehend why "you can't get there from here", and actually read the documentation for any system yu come up with. And the problems are bound to be more interesting :-)

      That's a far cry from most businesses, where people refuse to help themselves ("the computer will do it" syndrome) or learn anything.

  145. This info helps me greatly! by the+saltydog · · Score: 1

    I'm sure to get a story posted on /. in no time - just submit a dupe!

    [guinness]

    BRILLIANT!

    [/guinness]

  146. it's already OSS by noamsml · · Score: 1

    you published the source code.

    1. Re:it's already OSS by Dachannien · · Score: 1

      What if he issues a DMCA takedown order to Slashdot?

    2. Re:it's already OSS by Alsee · · Score: 1
      He may have published the source, but that program is still his Intellectual Property.
      </humor>
      -
      --
      - - You can't take something off the Internet! That's like trying to take pee out of a swimming pool.
  147. Re:Other uses? by Mr.Zong · · Score: 1

    Now thats a good idea.

    Wrap poloymorphic objects around machine hardware calls. For doing stuff. Then abstarct those object calls to a natural language syntax.

    vaccum(minutes, startX, startY, stopX, stopY)

    abstarct further to:

    Vaccum the basement.
    (where basement containes the parameters for the vaccum object).

    Since vaccum will always do the same thing (just in different directions for different times), why not abstarct further? Theres only so many points of data entry of most simple tasks, so I say abstract the hell of out em.

    Mix natrual laguage and code. No reason not too.
    VB.net is an example. It's a natural language interpreter for .net. It sure as hell shouldn't used in system critical applications, but how cool is it that an engineer, or scientist, or whoever can pick up a laguage and make it do things he needs done without having to learn another level of abstration himself (because he alreadys knows one, english). Different tools for different jobs.

  148. Re:Other uses? by Anonymous Coward · · Score: 0
    Except that you're reading it literally like a human might.

    AHAHAHA! Yeah, humans read things literally, while computers have complex semantic rules and use context to understand.

    The more the "functions" are programmed to assume, the more useless they are as general-purpose functions. you've got a breakEggs() function that assumes a bowl, garbage for the shells, etc etc. That's not the "breakEggs" I need on devil's night, so we're back to square one: having people learn to program properly.

  149. Law of program generators by nytes · · Score: 1

    I believe it's called "The Last One's Law of Program Generators":
    "A program generator generates programs that are more buggy than the program generator."

    --
    -- I have monkeys in my pants.
  150. Really, why are dupes so bad? by mcrbids · · Score: 1

    It really bugs me that /. editors treat dupes as a sort of charming fact of life, as if dupes are among those imperfections that make life worth living. Dupes suck, if for no other reason, because they fork discussion, confuse the archive and make searches less precise.

    If you watch television, you'll notice after a while that shows frequently show several times during the week so that people with differing schedules get a chance to watch the show.

    It's a "dupe", and really only gets annoying when you have a Tivo recording every Star Trek episode. Why is it so horrible to dupe every so often, and give everybody a chance to consider the minutae?

    It's not as though media needs to be a normalized database, people...

    --
    I have no problem with your religion until you decide it's reason to deprive others of the truth.
    1. Re:Really, why are dupes so bad? by Anonymous Coward · · Score: 0

      If you watch television, you'll notice after a while that shows frequently show several times during the week so that people with differing schedules get a chance to watch the show.

      Television is a transient, linear medium. Slashdot is not. You can go back and read yesterday's stories, the day before's, and so on back to the 90s. Your analogy doesn't hold.

      The thing that bugs me the most is that nobody likes to see glaring incompetence. People get paid to be Slashdot editors. They don't even read the site? They don't bother spell-checking? The write-up bears no resemblance to the linked article? This is the work of people who stopped giving a shit years ago, and it shows.

  151. Re:Other uses? by AKAImBatman · · Score: 1

    That's not the "breakEggs" I need on devil's night, so we're back to square one: having people learn to program properly.

    What the hell are you talking about? The language is designed to encapsulate recipe semantics. That's it. If you need something other than cracking the shell, dropping the egg into the container, and disposing of the shell, then you need a different function. (But what else would you need for cooking and baking?!?)

  152. Yo no hablo ingles, insensible Clod! by Tei · · Score: 1

    Joder, ahora solo tengo que aprender ingles :D

    --

    -Woof woof woof!

  153. Re:Because the average joe wants to be a programme by Revvy · · Score: 1

    No, the average Joe wants a computer to be able to do what he says, when he says it, not when he can figure out how to make some program do it or go to school for years to do it himself.

    --
    Computer, google natural language voice recognition, please, and open the first five results.

  154. I love the idea. by Gondola · · Score: 1

    For all of you professional and amateur programmers out there who can actually accomplish something using code, kudos for you -- but that's not what natural language processing will be used for.

    I envision natural language processing to be useful for all kinds of consumer and commercial devices that may be somewhat complicated to operate. The natural language interface allows someone without programming experience to execute somewhat complicated queries and functions without the aid of a programmer. It will also allow even professional programmers to do certain things very quickly.

    Those posters that cited Star Trek TNG in relation to this are absolutely spot-on.

    Let's take an example. Say you wanted to move all documents on your hard drive that haven't been modified in 6 months to "C:\docs\old" or for your diehard *nux junkies, "/home/gondola/docs/old".

    Because of your natural habits to be disorganized or forget where things are over time, or because of accidental writes to the wrong directories, you have documents in several locations on your hard drive, under \download, \My Documents, whatever.

    So you type a natural language program that reads, "Move all office documents that have not been modified in six months to \docs\old" (or you speak it).

    The program runs and moves the documents in a matter of milliseconds, and you're back at the prompt, or the GUI emits a tone to indicate the process is complete, perhaps with a textual or graphic representation of the task performed, with the number of files moved, and the changes logged.

    What if you did this manually, or tried to write a script to do it?

    You can't just type "mv *.doc \docs\old" or "rename *.doc \docs\old". The documents can be .txt files, Word .doc files, Excel files, whatever.

    Let's say you wanted to sort all of your mp3s by artist, album, and title, creating directories for each artist, and directories for each album underneath that? Depending on the number of mp3s you have, you could spend hours doing that.

    With a natural language processor, (and a hook that allows your OS to read mp3 file tags, or look up the info online based on the mp3 fingerprint) your computer could do it in a matter of seconds. Without you having to know any programming -- because really, for "simple" things like this that you do once, are you going to sit down and write a program to do it?

    "Move all mp3s to \mp3 and sort them into directories according to artist and album."

    "Name all mp3s as track number dot space title."

    Now, it's possible that there may be mp3s being used by commercial applications. Obviously you would have certain definitions and defaults set up that you could override if necessary. For example, moving all mp3s would imply "all mp3s that are not part of an installed application", and all office documents would imply "all office documents that are not part of an installed application," ie, it would not move documents under \Program Files\MS Word\" which would include all of your templates and etc.

    I can really picture this as being the next big thing in human interface for computers. It would make some things so much easier, one-off tasks that you normally have to do manually, file by file.

    "Agents" (and no, not like Agent Smith) are things that have been written about in SciFi for quite some time, and I believe that our need for organization and assistance in day-to-day activities has come to the point where developing these agents is going to be worth the effort, and it will improve productivity.

    They won't have personality yet, except for whatever audio feedback mey be programmed into your agent.

    I see progression like so;

    -First Agents created. They do simple Operating System tasks, like file management.
    "Move all documents not edited in six months to \docs\old"

    -Agents begin to do redundant tasks like monitoring web sites for specific key words, executing simple

  155. Re:Have Kylie stripped washed and brought to my te by Anonymous Coward · · Score: 0

    As the homeless guy living in a tent behind your house, just let me say... THANK YOU!

  156. good for pseudocode by Master+Ben · · Score: 1

    I think this would be a good tool for building the structure of your code.

    On a side note we don't want to have a computer program being able to convert plain english to code for a couple of reasons. The most important is that I wouldn't have a job anymore. And of course if computers start writing code from plain english it's only a matter of time before they become self-aware and before you know it SkyNet is launching nukes.

  157. Shame on you all... by yossarian+dent · · Score: 1
    ...castigating the editor for posting a duped story when there's perfectly mockable material in the story itself.

    ...I think it also promotes writing concise (and therefore) requirements and descriptions.

    InputExceptionError: line 8: unexpected adverb - "therefore"

    Please tell me the word with which you were planning to follow "therefore" wasn't "clear."

    --
    sig not ready: (A)bort, (R)etry, (F)ail.
  158. Not going well. Appreciate all the hate mail. Real by Anonymous Coward · · Score: 0

    Not going well. Appreciate all the hate mail. Really encourages improvement. /. crowd are fuckheads... what else is new...

  159. Update For for the dupe. Not going well. Appreciat by Anonymous Coward · · Score: 0

    Update For for the dupe. Not going well. Appreciate all the hate mail. Really encourages improvement.

    Awww, to FUCKING bad...you got a job to do and you NOW get paid to do it right? Anyone else would have been fired already..how many fucking times do you see other major sites duping as much as the crew here. Go whine to your momma taco and get off the site if you fucking can't handle it...Really encourages improvement??? Are you serious? If anything, it's gotten worse in the last month alone, where is this improvement we are supposed to be encouraging? Why don't you bite the fucking bullet, pony up and get some REAL code to run this site instead of the cob job script you call slashcode.

  160. It's not the language that's difficult by Linux_ho · · Score: 1

    How many people do you know who can express themselves with precision in English? How many Slashdot posts have no speling errors, typos, or grammatical errors?

    --
    include $sig;
    1;
  161. English gets overloaded by antispam_ben · · Score: 1

    For this to be useful, English words need to be defined more narrowly than they are in regular usage, and "English" written for this "natural language processor" will become a new language that just happens to use English words.

    I just RTFA, this looks interesting and probably useful, but seems hyped way beyond its usefulness.

    Here's a rather realistic quote:

    "At the same time, interpreting natural language is an extremely difficult artificial intelligence problem that is likely to take a decade or more to solve fully."

    One problem is that a program that interprets natural language will surely fail the Turing Test at a point much sooner than a person would. Eliza (the very crude Freudian shrink program) demonstrates much more about the gullibility of people than about language understanding.

    You don't have to read a lot in the area to see that context and a deep understanding of ordinary human knowledge and environment is neccesary for any reasonable success. An old example that can easily trip up computer understanding is:
    Time flies like an arrow. Fruit flies like a banana.

    The real breakthrough, if it happens, will be the (Vinge-style) Singularity when machines actally become intelligent and conscious, and "artificial intelligence" will mean something more than the computer-equivalent of a waltzing bear.

    --
    Tag lost or not installed.
  162. New rallying cry for dupes! by AyeRoxor! · · Score: 1

    FOR FOR THE DUPE!
    FOR FOR THE DUPE!

    I can just see Mel Gibson, face painted, rallying the troops before the siege.

    FOR FOR THE DUPE!

  163. This will never work by Anonymous Coward · · Score: 0

    It's not that people don't know a language like C that keeps them from being able to program. Most people can't think well enough to describe how to do even the most simple of tasks. Making them talk about complex business processes in a systematic way will make their brains explode like in the movie scanners.

    Programmers have the aptitude and training to produce the logic needed to allow complex systems to work well. We will have jobs forever.

  164. Less ads served by slyborg · · Score: 1


    Via AdBlock :-)

    http://adblock.mozdev.org/

  165. Dupes = more readers = more comments = no problem. by melekcrescent · · Score: 1

    Sure a tool would be easy to implement. They should, maybe, but then this article may not have gotten re-posted. And to be frank, I think its good it got duped.

    A little redundancy can be very worthwhile, and its not like someone is forcing your eyelids open until you read the article again if you already saw it.

    The point of course is that if it weren't reposted, I'd have missed this article (And I do read the main page compulsively). Its interesting news, and since I and a lot of others don't read the 'developers' section all too often(at the risk of sounding dumb, I admit that I only really understand a small fraction of the articles that go up in that section), its easy to miss some cool news.

    If the Editor missed it the first time, than lots and lots of other slashdotters surely did; Especially nice to dupe it then if it never appeared on the main page (such as this one).

    I think that this is reflected in the comments; Original post had 50 or so, this one is closer to 375, in a much shorter time period. there are a insightful comments from people who clearly didn't see the original post. Thats more people getting ideas and having responses. Awesome, rock and roll.

    I guess it could be nice just to at least acknowledge initially its a duplicate post, like check right after submitting with a 'Hey these URLs are also Here, would you like to reference this older post?', which would make sure to get all the content; In this case, the first post of this article had several links that this one did not, and getting that content some limelight while we are duping is worth it.

    To those of you who are meticulous readers, and never miss a single post; We have to see the same ads everyday from slashdot, seeing an article twice is no great tragedy. While you're spamming your senses anyway, it might as well be with something interesting. We are all benefitting from the extra comments, anyhow, so really its good for all of us.

    About your pageload theory: I just think thats unfair. They get our pageloads either way, and harbor us no ill will to actually want to incite frustration. I hope. ;)
    Just my two cents.
    -l

  166. I saw the man on the hill with the telescope. by mynzai · · Score: 1

    One problem with translating NL is that it can be very ambiguous. Consider the subject of this post. Who has the telescope? Me? or the man on the hill? Now, it would be quite a mess to realize your requirements, code or whatever artifact you're trying to express can have multiple interpretations. Then you go into damage control and cleanup.....not pretty.

  167. Lojban by Anonymous Coward · · Score: 0

    What do they think about Lojban (http://www.lojban.org) as a formal intermediarz language for translations?

  168. For Bender! by essreenim · · Score: 0
    Begin: Kill every f***** mofo; My enemy's enemy is a tool I use to serve my interests haha; :End

    But seriously. For AI. Surely you would get a speed increase if you could instruct a robot with natural language and rather than the robot translating that language to functions and variables etc. it would just treat it as code!

    Obviously, it makes sense for Speech recognition etc..

    Anyway, I like the sound of it.

  169. Clippy by bar-agent · · Score: 3, Funny

    Have Kylie stripped washed and brought to my tent

    "It looks like you want to strip-wash Kylie. Now readying strip-washer, copper surfacer, and metal shearer. Thank you for using Metafor."

    --
    i'd hit it so hard, if you pulled me out you'd be the king of britain [bash.org]
  170. That's a feature! by mwood · · Score: 1

    "Formal programming languages are not as expressive or flexible as natural languages."

    Notice that this is so, at least in part, because they were designed to be so. People argue, fume, fight, and even kill each other over disagreements as to the meaning of things someone said. A program, on the other hand, has a meaning on which all knowledgable people and all CPUs can agree.

    You can drive nails with a cinder block or a tractor wheel, but most folk use a hammer because it pares away all sorts of unwanted properties presented by other objects. I really don't want to program in a language that winds up with me spending ten years in court arguing with the computer over whether my program means this or that.

    Why are people always trying to take the edge off my tools???

  171. Re:Other uses? by Al+Dimond · · Score: 1

    Often, when used judiciously, mid-instruction breaks make long instructions easier to read and allow the entire line to be displayed at once. Keeping your code's width at less than 80 characters is nice, too. Yeah, it's kind of an arbitrary number enforced by console widths, but (a) some people still use the console. (b) most code has many short lines and a few very long ones (conditionals, loops, insane bit arithmetic and what have you); having lines stretch horizontally for a really long time makes you move your eyes far away from the rest of the code to read it. Most code I've seen that breaks long lines and comments at 70-80 characters looks about right in terms of the tradeoff of having enough space on a line to say your piece and still not having a few lines that disrupt the reading of the code. And that way, if you have a huge monitor, the horizontal space can be used to display multiple source files without having to scroll any of them horizontally.

  172. Re:Other uses? by AKAImBatman · · Score: 1

    Which would be perfectly good logic if we weren't talking about a language for describing recipes. :-) Being a "meta-language" that's targetted at semi-programmers, it would make most sense if the syntax was as simplistic as possible. Part of that is that the instructions should be crafted such that long lines shouldn't happen. Just like BASIC. ;-)

  173. Re:Dupe - use adblock for added pressure by nfarrell · · Score: 1

    Just an idea, if we want slashdot's bottom line to see the effect of dupes: use firefox's adblock to block all the ads until a dupe checker is running (whether via a software module, or just competent editors).

    If adblock isn't enough, perhaps someone could mangle the ads so they show ads for other new sites instead, giving them revenue slashdot would otherwise be getting.

  174. Hemp into Software by Anonymous Coward · · Score: 0

    My brain turns hemp into software.

  175. It's not that simple... by Anonymous Coward · · Score: 0

    Your example is attractively simple, but I fear that's largely because because your specification is incomplete.

    You didn't list your measuring devices as equiptment.

    You didn't specify that the eggshells should be thrown out; does your language assume automatic garbage collection? If so, how does it tell what can be thrown out, and what should be saved for future recipes?

    You didn't specify what kind of flour should be used. Should it be "All purpose" flour, "bread flour", or even "whole grain" flour? Where should the flour come from? I've seen one excellent cook deliberately vary his Danish recipes to account for the variations in gluten content in the local flour here. The flour he had in Denmark wasn't the same kind as he found in North America, because the climate, growing season, and strains of wheat aren't exactly the same, and the flour reflects the nature of the wheat it was made from.

    What size of eggs are required? Two small eggs would probably do a poor job of absorbing 4 cups of flour, but it takes domain knowlege in cooking to make this guess.

    How thoroughly should the contents be mixed? Should it be mixed "lightly", "throughly", or "just enough to absorb all the liquid into the flour", "until the mixture is slightly lumpy", or what?

    How quickly should the contents be poured into the pan? Should it be all dumped in one corner, or should the bowl be moved around during pouring? Do the contents need to be spread into the corners of the pan, or should they be left exactly as they fell? Again, domain knowledge in cooking is required to make an educated guess.

    Last but not least, what is the end product of this recipe supposed to be? With 4 cups of flour, two eggs, and some vanilla, mixed, and shoved in an oven for 15 minutes, I just can't picture what this is supposed to become, other than a hot lump of floury goo. There's no sugar, so it's not a cake, and no yeast, so it's not a bread. There's a lot of flour, and a small amount of liquid, but the directions say the mixture can be "poured" once successfully mixed, which implies that the mixture somehow becomes more fluid than solid. I confess, I don't understand how...or what's being made... or why...

    Other than that, it's a fine specification language for the layman. :-)
    --
    AC

  176. Re:Dope by Anonymous Coward · · Score: 0

    Duplication on occasion is not the end of the world and it certainly doesn't deserve all the energy given to it.

  177. Fucking ingrates by Anonymous Coward · · Score: 0

    Taco's entirely right.

    You people don't like Slashdot? Stop whining about it and leave. You're just clogging up the discussion for the rest of us. You're not wanted here.

  178. Wow, great idea. by Anonymous Coward · · Score: 0
  179. fuck that by Anonymous Coward · · Score: 0

    You'll prolly think I'm an ed... but when you demand that ppl eat shit off the floor for you. It's just that what goes around comes around.
    I'm not sucking somebodies dick because "They're a paying customer..." Fucking whiners.

  180. Beautiful by nuntius · · Score: 1

    I've been thinking similar thoughts for years, but never cared to write my own esoteric programming dialect. Somebody else already has.

    For those who never studied it, Latin is a beautiful language for expressing temporal relationships. It has an unusually crisp flavor that seems to desire order and strict logic. There were good reasons why it was the technical language of choice for several centuries.

    Thanks for the link.

    1. Re:Beautiful by johnnyb · · Score: 1

      And to think we replaced it with _English_. Oh, the humanity!

  181. Bú shr -- Chinese ain't all that hard by zooblethorpe · · Score: 2, Informative
    Chinese is the hardest language in the world to learn.

    By what metric? I've had a number of people tell me the same thing about English. As a native speaker of English, I've found Arabic much more daunting simply for the number of sounds that don't even approach anything in English, let alone the very complex grammar. Chinese by comparison was quite simple, with a grammar much closer to what I'd grown up with, and sounds I could at least approximate enough to be understood.

    The problem with anyone saying "Language X is difficult" is that it has everything to do with where you're coming from. If you speak Samoan, then Mâori and possibly even Tagalog won't be too much of a stretch, as the languages are related. Coming from English and learning Mâori is a completely different ballgame.

    By way of example, let's look at some simple sentences. "I am going to the store" in English works out to wö qù shângdiàn, literally "I go store" in Chinese. But try the same thing in Japanese, and it could come out umpteen different ways depending on who you're talking to. If you're amongst friends, you could say mise ni iku, lit. "store to go", with the subject of "I" only implied (implied subjects can make interpreting Japanese into English a real bitch, especially if you just missed the beginning of the conversation :). If you're talking to your boss, you might say watashi wa o-mise ni ikimasu, lit. "I (topic) (honorific)-store to go."

    I'll be the first to admit this is a lame-ass example, but nonetheless, I hope it at least illuminates my main point -- what's difficult to learn depends on what you already know. :D

    Cheers,

    --
    "What in the name of Fats Waller is that?"
    "A four-foot prune."
  182. Switch to a once a day post? by mattr · · Score: 1

    How about switching the slashdot posting policy to be more like a newspaper. Maybe it is already something like this. (Haven't used slash myself)

    You would have a number of articles queued for a single day's news. That day's newspaper, so to say, would be published at a given time that is the same for each day. If you want to trickle them out gradually, or publish the whole paper at a different time each day, that's fine too.

    The merits of this would be:

    You can see a list of all stories for a certain day. You can print them out and proofread on hardcopy. (Yes a revolutionary concept but it works better than online).

    You can catch dupes within the same day's newspaper really easily

    You can easily remember which day a story was published, and even when you see a dupe think "doh, that was in yesterday's paper!" and can it.

    Reduces the constant, unendinr hysterical chaos that must be a major feature of slasdot operations.

    Makes it easier to hire a real journalist or editor and give them a task like "edit the day's stories and give the final okay before we put this edition to bed".

    Index stories and threads by day

    More things to sell your advertisers, equivalent to one full page ad (say one story) paid by a manufacturer (as long as you say it is a paid ad). For example IBM might pay you to put in a story related to IBM once a week. Plenty of stories possible there, and they pay you to write it even.

    What do you think?

  183. FUCK YOU DOUCHEBAG by Anonymous Coward · · Score: 0

    How is it off-topic to discuss the dupe? There is a reference to the fact that the story is a dupe in the fucking summary - you dumbass.

  184. Less offshoring? by al912912 · · Score: 1

    In addition to helping programmers visualize their program better, I think it also promotes writing concise (and therefore) requirements and descriptions. Metafor doesn't handle run-on sentences (or bad English) that well

    Does this mean there's going to be less software programming offshoring to 3rd world countries?

  185. Forget about natural language, do mathematics by al912912 · · Score: 1

    How the hell am I supposed to express Dijkstra's algorithm, or Lamport's concurrent programming algorithm in natural language? I can express them in mathematics and logic, which is also nearer to how a comptuer works. I think an interpreter that understands and translates mathematical symbols to computer languages, or computer languages that are more similar to them will be more useful than higher level languages.

    Anyway, isn't that what's fun to code? Hell, I prefer understanding graphs and routing algorithms than making the cashier's system anytime.

    I don't doubt it's not useful for some systems, but it doesn't sound like fun, ergo, I'm not interested.