Slashdot Mirror


Has The NSF Automated Coding with ExCAPE? (adtmag.com)

The National Science Foundation is developing a way to create working code using "automated program synthesis," a new technology called ExCAPE "that provides human operators with automated assistance.... By removing the need for would-be programmers to learn esoteric programming languages, the method has the potential to significantly expand the number of people engaged in programming in a variety of disciplines, from personalized education to robotics." Rajeev Alur, who leads a team of researchers from America's nine top computer science programs, says that currently software development "remains a tedious and error-prone activity." Slashdot reader the_insult_dog writes: While its lofty goals of broadly remaking the art of programming might not be realized, the research has already made some advances and resulted in several tools already in use in areas such as commercial software production and education...
For example, the NSF created a new tool (which they've recently patented) called NetEgg, which generates code for controlling software-defined networks, as well as Automata Tutor and AutoProf, which provide automated feedback to computer science students.

19 of 140 comments (clear)

  1. Dumb by RightwingNutjob · · Score: 5, Insightful

    If you don't have to learn the intricacies of some esoteric computer programming language, you'll have to learn the intricacies of this esoteric NSF project. Next!

    1. Re:Dumb by Intron · · Score: 5, Insightful

      Why do people keep trying to automate coding, which I spend less than 10% of my time on? What about:

      • - Converting nebulous requests into requirements docs
      • - Convincing the "architect" who hasn't coded anything in years that your functional spec is the 21st century way to meet the requirements.
      • - Going through countless design reviews on the proper background color of the alert dialog
      • - Finding the bug in the vendor-supplied library which is 6 versions behind the current version.
      • - Updating the night before release based on the new customer requirement that your manager forgot to tell you about.
      --
      Intron: the portion of DNA which expresses nothing useful.
    2. Re:Dumb by RightwingNutjob · · Score: 5, Insightful

      I'll tell you exactly why: only a small segment of the population (maybe 1%) has figured out that the point of using computers, as opposed to doing things with pencil and paper, is precisely that computers do exactly the things they are told in exactly the order they are told, every time vs humans who don't. That 1% has always understood that the hard part isn't crunching the numbers, and never has been; the hard part is figuring out what operations to do in what order to get the right answer.

      The rest are (and always have been) operating under the misapprehension that computers are electronic brains or oracles that you can converse with as you would another human being.

      The fact that people like Vanevar Bush and Norbert Weiner encouraged this attitude in their attempt to explain computers to 'the common man' did more damage to the public perception of computing than anything else because it was done early and set the tone for public perceptions and those public perceptions are the first thing that almost everyone encounters first in their lives, whether they go on to be an MBA in the corner office or whether they go on to be a kernel hacker who makes more money than the MBA for shaving a few microseconds off of a trade an HFT software stack.

    3. Re:Dumb by Antique+Geekmeister · · Score: 2

      > - Convincing the "architect" who hasn't coded anything in years that your functional spec is the 21st century way to meet the requirements.

      I'm afraid you left out "finding out that the way it was done originally had a very good though undocumented reason, and explaining why the new software actually provides no gain whatsoever".

    4. Re:Dumb by Dutch+Gun · · Score: 2

      Cutting the code is pretty easy once someone decides what they really really want. Until they change their mind ....

      I think that greatly depends on what sort of work you do.

      I work in game development, which is both technically challenging as well as chasing after that elusive "fun factor", changing specs at a designer's or artist's whim. It's actually quite challenging work - squeezing real-time virtual world performance out of commodity hardware. For me, a large part of the challenge is figuring out how robustly to design a system to allow inevitable designer-required changes to occur versus potentially over-engineering that system, costing both time and run-time efficiency - something we have to be very aware of, unlike many programmers.

      All too often, when talking with designers, they'll ask for the impossible. I try not to immediately say "we can't do that", or "that's impossible". Instead, I'll tell them "I can't think of a way to do that.", and will think on the problem. Sometimes I succeed, sometimes I fail, but... damn... pure joy when I do actually pull off the "impossible". There's a special delight when the rare opportunity comes to implement something no one's ever tried before, or at least something *you've* never done, and for which there's no how-to anywhere to be found, and you have to puzzle it out yourself and with your teammates. That sort of thing is what I live for as a programmer.

      --
      Irony: Agile development has too much intertia to be abandoned now.
    5. Re:Dumb by TechNeilogy · · Score: 2

      Exactly. Whenever people say to me: "being a programmer, you must be really smart"! I reply with "no, I've spent lots of time learning to be dumb -- but dumb in the same specific way as a computer. Only by being dumb in the same way as a computer can I know how to tell it what to do."

      --
      "The wisdom of the Patriarchs was that they *knew* they were fools." --Master Foo
  2. Not yet by Todd+Knarr · · Score: 2

    They won't automate software development until they come up with a system that can handle creating correct software from incomplete and partially erroneous specifications which don't remain constant between the start of development and delivery. At best they'll be able to automate some of the tedious boilerplate coding.

    1. Re:Not yet by Tablizer · · Score: 2

      Yip, they really need to automate the slapping of PHB's if they want smoother software development.

      Granted, PHB's are job security. CRUD and GUI idioms have been around long enough that they could largely be encoded into data dictionaries which could control about 90% or more of the rendering of typical applications.

      But UI fads, stupid "standards", Microsoft's forced obsolescence, ego-based customization, customers/managers who don't want to bother to think things through, and other shit muck it up, causing us to reinvent the wheel gazillion different ways. You eventually realize how illogical humans are, but also realize their lack of logic is what gets you your paycheck.

      Stay stupid, humans, I need the money.

  3. Oh no. by mhkohne · · Score: 3, Insightful

    Yet another thing that will draw a bunch of people who can't think into programming.

    Guys, the languages are NOT the root of the problems we have (they don't necessarily HELP, but they aren't the problem). The problem is people who can't wrap their heads around what they are doing, or the problem they are trying to solve, or the fact that they actually have to check their own work.

    The problem isn't the languages, it's the people.

    --
    A thousand pounds of wood moving at 300 feet per minute. Don't get in the way.
    1. Re:Oh no. by gtall · · Score: 2

      Well, it is the people, but it is also the problems themselves. Many problems are intricate, many-layered affairs. The best strategy for getting started is to stop with Agile madness and think hard about the problem itself. Talk it over with others, explore the facets, figure out where are the unknowns, etc. Business isn't in business to do these things...well, certainly not the ones run by the MBAs. No automated tooling will help with this.

      A similar thing happens in research but from a slightly different perspective. Yes, it is all well and good to have private industry do research as Gingrich lately bloviated upon in the WSJ. However, business is interested in immediate returns, they aren't interested in basic science that will only yield real world uses far down the road and on roads not yet thought about. There is also a web of science, cherry picking the low hanging fruit doesn't answer what to do when it is all gone.

      Both issues have another opposing force, millenials. They seems to have a "I want it now" mentality. The fixation on handheld gizmos only enforces their ADHD and leaves them with the attention span of gnat. Agile only feeds the disease as do these gadgets. The only cure I know is practice working on hard thought problems...doesn't particularly matter which area...philosophy, mathematics, physics, social issues, etc. None of the real problems in these areas can be automated away, and eschewing hard thought about them leaves one with the intellectual depth of a politician or an MBA.

  4. Been hearing this for, oh, 40 years or so by bfwebster · · Score: 4, Insightful

    Not to be an old programming fart (but, hey!), but this comes up about every 5-10 years. Someone has created a system for automatic program generation that is going to replace programmers (4th generation languages, anyone? How about "The Last One"?), and it turns out to have only limited usefulness.

    Of course, code generation programs exist. They've existed almost as long we've been programming computers. The most common are assemblers and compilers, which take in text specifications and generate running code (or sometimes bytecode to be interpreted). And if you stop and think about the difficulties that most of us who code have with making source code that we write produce running code that meets our needs, you can immediately see the issues with replacing or bolting on top of that system a 'source code generation' system. It can work very well as long as you don't exceed what it can actually do and only if the code generation system itself is well-written and reliable. (This is why developers feel a sense of betrayal and anger with compiler bugs more than any other kind of tool bug.)

    So, yeah, like strong AI, self-coding systems are always 5 to 10 years out and have been for half a century. ..bruce..

    --
    Bruce F. Webster (brucefwebster.com)
  5. No... by theMAGE · · Score: 2

    ... they did not.

    The software engineers are required to extract the problem out of customers, who often don't know what they want.

  6. Lol, the answer is "NO" by JustAnotherOldGuy · · Score: 2

    "Has The NSF Automated Coding with ExCAPE?"

    NO, they have not "automated coding". All they've done is provide a layer of abstraction to some predefined procedure functions.

    And who wrote that layer of abstraction? Real programmers working with actual code, that's who.

    Can you program through a Joe Sixpack GUI? Maybe, but that GUI and all the shit behind it didn't fall out of a fucking tree. It had to be written...in code...by actual developers.

    When Joe Sixpack uses this thing to write a medical billing program with a data warehouse and credit card gateways, let me know.

    --
    Just cruising through this digital world at 33 1/3 rpm...
  7. Re:Learning language by JustAnotherOldGuy · · Score: 4, Insightful

    There is nothing fundamentally different from spoken languages in programming languages.

    This is so wrong it's clear off the x1000 scale of Wrongness.

    --
    Just cruising through this digital world at 33 1/3 rpm...
  8. open mouth, insert gun... by Tom · · Score: 2

    By removing the need for would-be programmers to learn esoteric programming languages, the method has the potential to significantly expand the number of people engaged in programming

    Because we really need more amateur programmers fucking things up and creating software with exploitable bugs. Who needs information security anyway...

    --
    Assorted stuff I do sometimes: Lemuria.org
  9. They will that's the problem. Then they'll hire me by raymorris · · Score: 4, Insightful

    > When Joe Sixpack uses this [gui] to write a medical billing program with a data warehouse and credit card gateways, let me know.

    Oh they WILL point and click their way to a Sharepoint site that stores personal medical information, accepts credit cards, and emails it all as an Excel spreadsheet. And it'll look like it pretty much works, most of the time. (It doesn't bother anyone with alerts when it fails on numbers with more than four digits, so nobody sees any problem.) They just saved $6,000 over having a developer with a clue involved!

    Then some script kiddie will find it, the manure with strike the ventilation, and the company will spend $250,000 cleaning up the mess, much of that going to the security company I work for.

  10. Re:Inevitable by HiThere · · Score: 2

    I do believe that automated coding is possible. I also believe that it would require a program that could handle English (or some other full language). This doesn't sound like it.

    Actually, it would need to do more than handle English, it would also need to have a rather complete model of the world. This just sounds like another domain specific language.

    --

    I think we've pushed this "anyone can grow up to be president" thing too far.
  11. Awful summary - NSF is funding research projects by JohnM4 · · Score: 2

    The NSF isn't developing anything. The NSF has created a program that funds large scale research grants to universities. In this case, the grant is to a collaboration of several large universities to explore ways to meet this goal. If you click through the article and then to the page about the project, including the universities involved in the collaboration (MIT, Cornell, Michigan, UPenn, etc...), you can see actual useful information: https://excape.cis.upenn.edu/i...

  12. NSF is NOT developing anything by the+agent+man · · Score: 2

    NSF is a US government foundation supporting science through grants. They are NOT developing anything nor are they patenting anything. NSF is funding organizations, mostly universities, but has a clear disclaimer statement: "Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation."

    The original article does not make any such claims and indeed states "a research project funded by the National Science Foundation" - the poster, EditorDavid, should have been a bit more careful.