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.

140 comments

  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 Anonymous Coward · · Score: 0

      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.

      Naah, it's a plot to teach everyone in the US how to "code" using approved NSF tech, and then increase H1-Bs because there's no one that can actually code coming out of our schools. Sounds like LISP 2.0.

    2. 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.
    3. 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.

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

      It sounds like this is what the fourth and fifth generation programming languages were supposed to be all about - describing the problem rather than writing specific code to solve it, I think. Or something like that.

      And still, people keep writing code in boring old third gen languages that actually solve the problems through hand-crafted algorithms. As it turns out, 4GL and 5GL work pretty well within the problem sets imagined by the designers of those languages, but the real world has to deal with issues that may fall outside those boundaries, or perhaps with performance constrains (memory, speed, etc). Or perhaps you can't hire programmers for more esoteric languages... whatever.

      I think perhaps the new 4GL and 5GL are actually reuseable frameworks, rather than new languages.

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

      But wait, there's more:

      - the department that hates and is threatened by your software wants a non-negotiable change the night before implementation.
      - marketing/sales/management says 'the user wants an icon where you click on it and a door will open and a mouse will come out and play Vivaldi's mandolin concierto.
      - the organization in the Netherlands you never heard from in your 18-month development cycle tells you in the final weeks that your application is slow on their machine.
      - the $200,000/hour Swiss consultant says you need to rewrite everything in Unix.
      - after deploying on Windows PCs in 180 countries the e-mails come in saying 'my stock ticker no longer works'.
      - the client that wants to implement a data warehouse on PCs with SQL Server 2005.
      - Clunky rewrite of a successful tool by the Oracle development B-Team after acquisition.
      - Management says the legacy COBOL applications have cooties and rewrite everything in C. Or Cold Fusion.

      Personal experience.

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

      So that they can get rid of you?

    7. Re:Dumb by Intron · · Score: 1

      Functional programming languages like Lisp predate procedural languages and are arguably more efficient, more productive and produce software that is easier to maintain. The reason we use procedural languages is only that they are easier to learn to program. 5GL constraint-based programming seems so special-purpose as to be useless in a general-purpose programming environment. It is in the same class as ExCape - solving the tiny part of problem that doesn't need to be solved, instead of the 90% that is not amenable to its methods. How does it deal with graphics, hardware interface, error recovery, zero-downtime update, remote backup? yeah. Good luck. (Note - all easy in CL). Prolog is the most mature and complete but still not gaining much traction.

      --
      Intron: the portion of DNA which expresses nothing useful.
    8. Re:Dumb by Anonymous Coward · · Score: 0

      ... describing the problem rather than writing specific code to solve it ....

      In my experience developing software, getting to a clear description of the problem is actually the hard part. There are a whole slew of attempts to work with this, with Agile being one of the better accepted ones, but far from the only one. Cutting the code is pretty easy once someone decides what they really really want. Until they change their mind ....

    9. Re:Dumb by Anonymous Coward · · Score: 0

      Lisp pre-dates assembly language? I don't think so.

    10. Re:Dumb by Dunbal · · Score: 1

      come out and play Vivaldi's mandolin concierto.

      I would pay money to watch this. I think the current world record stands at 15 minutes before bleeding to death. Oh wait, I was thinking of a different kind of mandolin...

      --
      Seven puppies were harmed during the making of this post.
    11. Re:Dumb by Nunya666 · · Score: 1

      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!

      Agreed, which is the same reason my coworkers and I resisted replacing our existing system with a CASE tool about 18-20 years ago.

    12. Re:Dumb by Anonymous Coward · · Score: 0

      Lisp pre-dates assembly language? I don't think so.

      lisp is pretty much lambda calculus so yeah. oh and list was the assembly language of Lisp machines.

    13. 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".

    14. Re:Dumb by Anonymous Coward · · Score: 1

      > Functional programming languages like Lisp predate procedural languages and are arguably more efficient, more productive and produce software that is easier to maintain.

      I'm afraid to say you've probably never had to maintain LISP for anything other than a freshman computer course. Its flexibility is its drawback. Tossing software over the wall to someone else, "and then a miracle occurs", is the underlying problem with most object oriented programming, and LISP was used on a lot of programmers to teach terrible, terrible recursive and self referential practices.

    15. 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.
    16. Re:Dumb by jandersen · · Score: 1

      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

      Well, that is true - I have seen so many people trying to explain in great detail to Google what it is they are looking for, not understanding what a database search actually does. But given that the NSF probably contain quite a lot of well educated, highly intelligent and competent people, I would expect a project like this to have an aim that is somewhat intelligent; could it not be that somewhere on the journey from research to summary on /. the essence of the thing got somewhat muddled? Stranger things happen at sea, or so I'm told.

    17. Re:Dumb by Anonymous Coward · · Score: 0

      > ... essence of the thing got somewhat muddled

      Utterly impossible. There is no known means by which such a thing could happen, and you are a surely a fool for wasting time on such pointless speculations.

    18. 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
    19. Re:Dumb by erapert · · Score: 1

      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.

      I agree with you; also Dijkstra was right about this.

      At risk of being modded off-topic I'll also note that this stuff bears implications for whether or not strong AI is possible...

    20. Re:Dumb by BCooley · · Score: 1

      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!

      I think you're missing the point.

      The point is not that computer assisted programming environment will be easier for you to learn. The point is that it can make you dramatically more productive, allowing you to potentially write the same code that it might take a small team of programmers to write otherwise.

      For example, having the system complete partial specifications or partial algorithms and intelligently (at least for a computer) fill in the blanks as you work means that you can work at a greater level of abstraction and be more productive. You will still need to dive into the details and directly code or specify the parts that the computer either doesn't complete correctly or doesn't yet understand (possibly because it was not part of it's training set or because it's entirely novel).

      This is really not the sort of automation that makes it less complicated to write software, it's just deploying the advances in machine learning to automate boilerplate work and connect dots.

      Efficiency and power are a good thing, and why shouldn't we use the power of the computer to automate this sort of stuff?

    21. Re:Dumb by dataspel · · Score: 1

      Nicely said, thanks.

    22. Re:Dumb by plopez · · Score: 1

      And those are actually optimistic episode. How about "We want everyone to use the system without logging in but we have to track their identity".

      --
      putting the 'B' in LGBTQ+
    23. Re:Dumb by Altrag · · Score: 1

      Because that 10% of the time is something the vast majority of the population will never be able to accomplish.

      Assuming one of these projects eventually results in a system that doesn't require a degree itself to operate, all of your points could then be done by any old dumbass manager (maybe not as well, but good enough is good enough in the business world. Managers and salesfolk stop giving a crap the second the check is signed.) Except the 4th point, which would presumably be irrelevant since you could just tell the magic program to do whatever that library was supposed to accomplish.

      I wouldn't worry about re-training just yet though. All of these type of magic systems tend to break down into two broad categories: 1) Those that are so simple that you spend more time trying to break out of their restrictions than you do writing code and 2) those that are so complex that they're basically an inner platform.

      I'm sure there's particular tasks that can be automated, but it will be more in the sense that Visual Studio "automates" form building: providing a simplified GUI to do something that's common, consistent, mundane and time-consuming. And even then you have to work around it quite often (VS can only build static controls for example. If you need to do something dynamic then you're back to manually creating and positioning controls.)

    24. Re:Dumb by Altrag · · Score: 1

      this stuff bears implications for whether or not strong AI is possible...

      Not in the slightest. It only bears implications for whether or not strong AI is possible using a standard sequential computer.

      It says absolutely nothing about whether strong AI is possible in general, such as by using a paradigm shift. In particular, real brains operate using massive parallel networks of very simple (to first approximation) "computers" ie: neurons. We've built smaller "brains" following that paradigm with several thousand neurons -- enough to study the concept in relation to very simple brains like that of a fruit fly, but have come nowhere close to the billions upon billions of neurons that make up a human brain.

      Not to mention the question of whether first approximation is sufficient to generate intelligence. There's a lot of things happening in our brains beyond simple synapse firing and we don't even understand all of it yet, never mind know what effects any particular chemical or structure or such has on the overall phenomenon of consciousness.

      So basically: We're still a long long way from having strong AI, but we have no reason to believe it can't be done if we're willing to consider possibilities beyond a single massive central processor.

    25. Re:Dumb by Anonymous Coward · · Score: 0

      Are you proud of being loud and stupid?

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

      Well said. good luck with that. the result would be a horrific bode slow and dumb impossible to maintain. Of course there will be programs to paste block routines altogethe. bonded by if sentences that luckily medium work just for simple tasks. Just don't imagine an auto code robot working with the tcp stack or windows apis doing what was impossible to think of at the beginning of a project and so on. Maybe the problem is not the coders but the users who ask stupid things all the time

    27. Re:Dumb by david_thornley · · Score: 1

      There's no difference between what you can compute with one single processor and many parallel ones, although it's likely to affect the performance. A computer can simulate any physical (and hence any biological) process arbitrarily closely, although the performance difference can be extreme. If strong AI (behavior that apparently involves human-level intelligence) is possible for a biological machine, like a brain, it's possible for a computer.

      The arguments against AI entities generally assume that the behavior may be possible and explain why it isn't real intelligence or whatever.

      There's also the fact that it took Nature hundreds of millions of years to kludge up human intelligence, and it's not going to be easy to replicate.

      --
      "When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
    28. Re:Dumb by erapert · · Score: 1

      A computer can simulate any physical (and hence any biological) process arbitrarily closely, although the performance difference can be extreme.

      A square is an approximation of a circle, but still totally unsuitable for use as a wheel.

      Likewise, our advanced adding machines are, I would argue, unsuitable for implementing artificial intelligence.

  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.

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

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

      Unfortunately there are two types of programmers: those who can self-manage, and those who need someone to constantly push then to get to work.

      It's unfortunate because most programmers are of the latter type, and those are the ones who are helped by having a PHB. The rest of us are just collateral damage.

      --
      "First they came for the slanderers and i said nothing."
    3. Re:Not yet by Tablizer · · Score: 1

      Good managers use the appropriate technique per employee. Unfortunately, good managers are hard to come by.

  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.

    2. Re:Oh no. by Anonymous Coward · · Score: 1

      You owe me an apology. As one of the first of the public to be diagnosed with the "disorder" in question, I resent being compared to Millenials, which are not even remotely ADHD, they just never got TAUGHT how to pay attention. There *IS* a deep and fundamental difference.

    3. Re:Oh no. by Anonymous Coward · · Score: 0

      [Millenials] seems to have a "I want it now" mentality.

      Every generation says this about the one that follows it. Boomers' parents said it about them, they said it about us, now we're saying it about the millenials. And every generation is full of shit when they say it. The millenials will be saying it about the next generation in twenty years, and they'll be just as full of shit. There's nothing wrong with "kids these days", or at least nothing that wasn't also wrong with yesterday's kids.

    4. Re:Oh no. by 0100010001010011 · · Score: 1

      Simulink does that already and the sky hasn't fallen. There are plenty of jobs to be found.

      I've, for the most part, forgotten a lot of my C because it's not needed. Turns out you don't have to know strict C to be able to think through logic problems.

    5. Re:Oh no. by JustAnotherOldGuy · · Score: 1

      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.

      I agree. They fondle their phones like lovers* and feel like they're marooned on a desert island if they don't have one within reach every second of every day. Many of them have ridiculously short attentions spans and are completely unable to escape from their self-imposed immediacy. They're like psuedo-zen creatures with cellphones, living solely in the moment.

      -

      *Except most millennials have never actually touched another human sexually because they're so socially awkward / retarded. It's like they have all the downsides of autism with none of the benefits.

      --
      Just cruising through this digital world at 33 1/3 rpm...
    6. Re:Oh no. by JustAnotherOldGuy · · Score: 1

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

      Yep. We all know people who are completely unsuited mentally for the job of coding or programming because they can't think their way through a problem. They may be good at doing other things but not problem-solving or coding.

      --
      Just cruising through this digital world at 33 1/3 rpm...
    7. Re:Oh no. by Anonymous Coward · · Score: 0

      The "everybody can code" movement is the dumbest thing imaginable. No. Everybody cannot code, because not everybody can think.

    8. Re:Oh no. by HiThere · · Score: 1

      More to the point, nobody should be taught coding before they have learned algebra...or at least pre-algebra. Once you've mastered basic algebra then you can probably handle Scratch or similar programming languages. You can't do much in them, but you can use them to do what you can do.

      This sounds like a system to take some quite detailed specs and turn them into a bunch of library calls. I'm not clear why it's superior to Python or Ruby, though, which do the same thing. In fact many C programs don't do much more than that. And it's going to take them a long time to wrap an many libraries has Python has.

      That said, there are lots of domain specific languages that are far superior (in many ways) to general purpose languages within their particular domains. This particular example reminds me of a product for the Apple ][+ called "The Last One", which claimed to be the last programming language you would ever need to buy. What it was was a domain specific language for managing a decision table (NOT tree). For a certain limited range of problems it was quite good. I think the company went out of business.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    9. Re:Oh no. by Jeremi · · Score: 1

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

      Quite right! So the sooner we engineer the people out of the process, the better. ;)

      --


      I don't care if it's 90,000 hectares. That lake was not my doing.
    10. Re:Oh no. by Shortguy881 · · Score: 1

      That is why I am 100% ok with this. As a competent software developer, this will mean sooooooo much more work for me because these "new" programmers will be awful. This will be a boon for good software developers everywhere.

      --
      Brilliance without wisdom, power without conscience. Ours is a world of nuclear giants and ethical infants.
    11. Re:Oh no. by Altrag · · Score: 1

      The issue is far deeper than that though:

      - We want to open up software development to a wider audience. We developers want to liken ourselves to the architect of an amazing bridge, but management would prefer we were the manual laborers, mostly because there's so many of us involved when building even moderately sized applications. So there's a huge push to reduce software development out of the realm of "people who can think digitally" to "people who can think slightly better than a chimpanzee."

      Sure you still need an architect to guide everything, and a few foremen to oversee the dumbasses and keep them from breaking things too badly, but overall you would like to replace as many $100k professional programmers with $35k dumbasses as possible. But right now, even the most low level junior programmer still needs to have some inkling of "digital thinking" in order to be more than entirely useless, so the pool of available dumbasses willing to work for $35k is relatively small.

      - But even at the higher levels, there's always a pressure to "do something," and unfortunately deep thought typically looks to an outsider a lot like sleeping or playing video games or something else that isn't work.

      I'm not saying its the best way to develop software or even the most cost-effective, but in many ways Agile's "trial and error" approach solves (or at least works around) a lot of non-programming aspects of the development process -- and often those non-programming aspects are considered more important to the PHBs and CxOs of the world that don't really care how something gets done as long as it looks like you're doing it.

      Seeing you bang away at a keyboard for 2hr makes them feel fuzzier than seeing you "sleep" for an hour and then solve the same problem in 30min. They see it as you wasting an hour rather than saving half an hour. Sure its stupid, but it is what it is.

  4. You're TOO "general" man...apk by Anonymous Coward · · Score: 0

    See subject: Not everyone here's as bad of a "dork" as you think man - I'm a former 1st string NCAA attackman/midfielder for LeMoyne Lacrosse (a year in & year out national champion in that sport) - yet I also am a "dork/geek/nerd" (whatever, good student & later a fairly accomplished computer science freak too) & even when I was a "jock" I was too... I got along with "ALL TYPES" pretty much (even partiers).

    * At this point though the "drink wine" etc. women stuff? That's NOT for me man, not anymore @ least... that's a "young, dumb & full of cum" outlook - lol, it can cause all kinds of headaches if you're not careful!

    APK

    P.S.=> 6' 2" 205 lbs. even @ 50++ here (NOT fat, astoundingly)... apk

    1. Re:You're TOO "general" man...apk by Anonymous Coward · · Score: 0

      You know most of the time APK you annoy me with your spam, but this time, I wish I had mod points to mod you up....

    2. Re: You're TOO "general" man...apk by Anonymous Coward · · Score: 0

      Your reminiscences are depressing and sad. How much you weigh matters only to you. Tool.

  5. Has Bell Laboratories Automated Coding with C? by Anonymous Coward · · Score: 0

    I could waste time rewriting the article as snark, but the title should say it all.

  6. Re:You dorks are pathetic by Anonymous Coward · · Score: 0, Funny

    Now, I'm going to go out, drink expensive wine, party with beautiful women, and get laid.

    That VR headset is working out for you nicely, I see.

  7. Learning language by hackwrench · · Score: 1

    There is nothing fundamentally different from spoken languages in programming languages. Difficulties with learning programming languages or any second language has more to do with how we teach people to learn more than anything else. We spend so much time trying to have students focus on the boring aspects of literacy when there is no evidence that they are prerequisites for everything else. Knowing the multiplication table doesn't prepare you for other mathematics.

    1. 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...
    2. Re:Learning language by Zontar+The+Mindless · · Score: 1

      Learning how to conjugate ser and estar doesn't help you speak Spanish, either.

      Oh, wait...

      --
      Il n'y a pas de Planet B.
    3. Re:Learning language by NickFortune · · Score: 1

      There is nothing fundamentally different from spoken languages in programming languages

      Well, there is the matter of ambiguity. Most human languages have scope for ambiguity in the syntax. A piece of computer code means one thing and one thing only. If it doesn't, it's a bug.

      Also computer languages evolve differently from spoken ones. Spoken languages may have a precise syntax, but the speakers are free of ignore or adapt it and the meaning can still be carried across. If you try and get creative with the syntax of a computer language, the computer either doesn't understand (if you'll pardon the anthropomorphism) or worse, it misunderstands and does something other than what you wanted. If you want to evolve a computer language, it needs a change to the language spec and to conforming compilers.

      I'm sure there are other differences as well.

      --
      Don't let THEM immanentize the Eschaton!
    4. Re:Learning language by Anubis+IV · · Score: 1

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

      ...is a thing exclusively said by people who have clearly never studied the topic of formal languages and what sets them apart from informal languages.

    5. Re: Learning language by hackwrench · · Score: 1

      Oh? Care to elaborate, or are you satisfied with mere posturing?

    6. Re: Learning language by hackwrench · · Score: 1

      You saw a pattern and decided to attempt to apply it in a situation where it doesn't apply. In doing so, you created a stawman to attack. I am not entirely sure, but conjugation might be an area where talking more about the concept may aid in handling all the cases. And one more thing about language education: It might be more advantageous to teach by concept instead of by language. If the similarities between laguages and their roots are taught first, you are better off. Vater in German and father in English are similar for a reason that isn't adressed in language teaching. Papa is also a variation on the same theme but sound migration isn't really addessed in much detail either.

    7. Re:Learning language by hackwrench · · Score: 1

      In human language the apparent ambiguity is usually resolved with context and programming languages can also have statements that need context to be resolved. See also logos naki world https://youtube.com/results?q=... The song has meaningless sounds designed to trick the hearer into resolving them into words.
      I am also working on constructing a programming language thst incorporates as many features as can be implemented together of all existing programming languages. You can use DO as an instruction to begin a loop in one subroutine and as a variable in another as long as certain scoping rules are followed and most ambiguity in human language is resolved in a similar fashion.

    8. Re:Learning language by hackwrench · · Score: 1

      Easy to say, but more difficult to show evidence. I see you didn't present any. Care to have a go. I don't require absolute proof just the preponderance of evidence. All swans are white until they found a black swan. https://www.bing.com/search?q=...

    9. Re: Learning language by thoromyr · · Score: 1

      trolling or ignorant?

      When you say there is anything more than the most superficial similarity between programming languages and natural languages then you come across as someone who knows nothing of at least one of the two. Everything I've thought to say would most likely be considered insulting to your intelligence. Perhaps you could offer some actual evidence to support your extraordinary thesis?

    10. Re: Learning language by thoromyr · · Score: 1

      what are you smoking? You provide no evidence to support your moronic thesis and dismiss as a strawman counterexamples.

      Ah, wait. You aren't smoking anything: you are trolling.

      For the edification of anyone who might come across this tripe unawares: a native English speaker has an easier time learning German than Japanese because of the many similarities. The same for a native English speaker learning a romance language. A native speaker of German can learn Dutch or Swedish even more easily -- and once you learn one romance language (as a native or otherwise) the remainder are fairly trivial to learn. Of course, this is well known and understood by one even remotely connected with linguistics or learning foreign languages. The implication that this is not known or utilized is not just laughable, it is really sad.

      The "by concept" mentioned above is of course of more than passing interest to actual linguists. In fact, experts on the matter have so thoroughly analyzed languages, their inter relations and how they have changed over time that they have been able to (largely) group languages into "families". It even turns out that languages having similar sounds for similar basic concepts (like "papa") can be collectively grouped as Indo-European. Interestingly, this group is largely restricted to languages rooted in India or Europe and for some bizarre reason languages rooted in other regions, such as Africa or Asia, do not share most of these basic sound/meaning pairs. That is, Japanese for father ("otosan") does not share sounds with "father" or "papa". It is almost like it comes from a completely different language group.

      Naturally, structured teaching does help a serious student of a foreign language. Trying to learn Latin without studying conjugation and declension is possible, but much slower. Taking advantage of Arabic's word-root greatly accelerates vocabulary building. Vowel shifts in what is now termed German, the effect of isolation on English as used in the Appalachians, the change in language over the last 1000 years in Norway versus Iceland, the details of Sumerian, the resistance of some languages to firm placement on a language tree -- all make for interesting study. And no linguist would ever mistake a programming language for a natural language.

    11. Re: Learning language by JustAnotherOldGuy · · Score: 1

      You wrote, "There is nothing fundamentally different from spoken languages in programming languages."

      This is completely untrue, even with no more than a moment's reflection.

      You can't use a given keyword or function in any way other than the way it's programmed to act. But language is flexible, open to interpretation on multiple levels, and the meanings of words change based on their context, time period, and even location.

      For example, trim() will always mean what it has been assigned to mean, and will always do the same thing, always. It's never going to find a cube root and it's never going to read in a file or make an if/then decision.

      But the word "bad" (for example) has multiple meanings and can indicate completely different things based on where and when it's used.

      Another example is the word "nice". It used to be an insult; it meant someone who was stupid or dull or ignorant. It's meaning has changed completely to the point where it's a good thing to say about someone. That's not true of the terms used in a programming language.

      Also, programming languages follow very, very strict rules. That can hardly be said of language in the real world. Yes, there are rules to grammar, but they flex and change frequently.

      --
      Just cruising through this digital world at 33 1/3 rpm...
    12. Re: Learning language by hackwrench · · Score: 1

      Lets start with something simple then. To my understanding there is nothing that can be done that cannot be reduced to computations on a Turing machine. Also, operations can be reduced to machines that have connections between logic gates that process an AND, OR, NOT, 1 or 0 or a generator that randomly emits one of the above. I may have missed an operator; I'm not certain. Where would you like to go from there?

    13. Re:Learning language by Anubis+IV · · Score: 1

      You were basically claiming that we could use swans to teach students the mechanics of jet flight. I generally don't provide evidence in response to posts such as those, since the distinction should be obvious to anyone who gives the topic even half a glance.

      But backing up for a sec and giving you the benefit of the doubt (since you responded more politely than my comment warranted), whether you realize it or not, your original assertion effectively says that there isn't a distinction between natural languages (of which spoken languages* are a subset) and formal languages (of which programming languages are a subset), which is wholly incorrect. While a number of concepts carry over between the two (e.g. alphabets, grammars, etc.), there are a number of other features that remain unique to each, meaning that you'll quickly get into the weeds if you try to use the one to explain the other, just the same as if you were trying to use a swan to explain jet flight.

      Just consider what makes a formal language "formal": that it's mathematically defined. They consist solely of denotation. Everything is literal and can be taken at face value. In contrast, natural languages frequently make use of both denotation and connotation, the latter of which cannot, by definition, exist in a formal language.

      Likewise, you can't explain the closure properties resulting from the various mathematical operations on formal languages without first delving into an explanation of the mathematics that make formal languages what they are. Natural languages have no analogous concept. Even if we restrict ourselves to the practical matters of programming languages, there are a number of everyday concepts (e.g. recursion) that don't exist in everyday natural language (cue people linking WINE and GNU).

      Perhaps more central to your original comment, I disagree with the apparent implication that they can be taught similarly. After all, even if we set aside the technical distinctions, the types of thinking required by the types of languages necessitate that they be taught differently. Natural languages are very fault tolerant and provide us with a number of "recovery" mechanisms to infer meaning in cases where there's the potential for ambiguity, thus splitting the burden of successful communication between the speaker and the listener. In contrast, formal languages put the onus solely on the speaker to successfully communicate. And they either do it, or they don't. 1 or 0. That level of rigor forces a different sort of thinking than anything you'd see in a natural language, and thus it needs to be taught very differently.

      All of which is to say, I don't disagree with the notion that programming suffers from a problem in the way that it's being taught, but I do take issue with your over-generalized assertions regarding the lack of differences between spoken and programming languages.

      * Pedantic caveat: The Venn diagram circles for "spoken languages" and "formal languages" can technically intersect if you do something silly like read C++ aloud. For the purposes of this discussion, I'm going to assume that "spoken languages" is a way of referring to everyday, spoken, natural languages, such as English or Chinese, and not a silly case like what I just mentioned.

    14. Re:Learning language by Anonymous Coward · · Score: 0

      It's ...
      ... exponentially wrong!
      ... almost infinitely wrong!
      ... very unique in its wrongness!

    15. Re: Learning language by hackwrench · · Score: 1

      Oh, it was meant as a counterexample and not an attempt to extend my logic in my initial example into an area that you thought it applied and I did not. Sorry, I misunderstood you. I still do not understand how it serves as a counterexample though.
      The implication isn't that it is completely unknown or unutilized, but to elaborate on the other part of my thesis, (my experience with learning a second language in formal education is three years of high school German, and I have been working on learning Japanese informally) languages were strictly regimented. They taught you how to improve your native English, and then once they deemed you were of an ahe where you were "ready" for other human languages you could pick between German, French and Spanish. And in German, they focused more on vocabulary than on how German worked a little differently to string a sentence together. In fact, they didn't really do much diagramming a sentence in English. This is why you cannot let the states decide tjr curriculum, but I digress. The point is that they keep holding off on concepts you could handle and even help you lesrn better the skills that they insist are must haves in order for you to progress.
      In fact, Ican steal your so called counterexample and use it to further my own point. If you didn't have the notion that human languages are so far removed from programming languages, you could use the concept of conjugating verbs in your programming, maybe use verbs with different endings as functions or variables. I am beginning to see why you thought it was a counterexample. You thought that conjugation is useful in human languages but not in programming, so you constructed an example where something you thought would be useless in programming, by the logic you thought I was using would be useless in human languages, when actually my logic is that conjugating verbs is useful in both domains.

    16. Re: Learning language by hackwrench · · Score: 1

      Not entirely true you can reassign a keyword to mean whatever you want it to mean according to certain rules. Ever hear of the #undef operator? Even if it does not work in as a complete a fashion as i think it might, surely you can see how it might work if extended to the fullest. And simply checking a global variable can change the meaning of the function. Here's one way that your bad example can be represented in psudo-code: IF WithOldMan then BadMeansBad = True ELSE IF WithFriends THEN EnergeticBadMeansGreat = True
      That's not too far different from what people do in their heads to decide what a word means.
      > trim() is never going to find a cube root
      Challenge accepted! Mind if I use QB64?
      DIM SHARED TrimIn!, TrimOut!
      SUB trim()
      TrimOut! = Trimin!^(1/3)
      END SUB
      If I remember my math correctly, I think you will now find that trim calculates cube roots quite nicely now.

    17. Re:Learning language by hackwrench · · Score: 1

      No, I was claiming that you could use the concepts of the mechanics of jet flight to understand how swans fly. Or at least that's closer to what's going on.
      You weren't paying attention to your link very closely because Wikipedia just did.
      You bring up recursion and then proceed to contradict your point.
      My point is that level of rigor is useful in natural language too. If we taught people that they can apply that level of rigor to natural language but that natural languages are a special case where you don't necessarily have to, we'd be further ahead in the game.

    18. Re:Learning language by Anubis+IV · · Score: 1

      You weren't paying attention to your link very closely because Wikipedia just did.

      I linked to Wikipedia's page for general closure properties, but I specifically was talking about them with regards to formal languages. I stand by what I said: you can't explain them without first explaining formal languages. Of course, to make another pedantic caveat (I'm not saying that you said this, but just in case), I suppose we could point out that Wikipedia uses natural language to explain biology, astronomy, and nuclear physics too, but we wouldn't assert that any of them lack are in any way similar to spoken languages. Likewise, the fact that Wikipedia used a natural language to describe formal languages has no bearing on the similarities between them. Yes, they're both languages, but the similarities end there.

      You bring up recursion and then proceed to contradict your point.

      I brought up the exceptions that prove the rule that recursion is not a part of natural language. If you think I'm contradicting my point by bringing those up, then I clearly didn't do a good job at communicating.

      My point is that level of rigor is useful in natural language too.

      I very much so agree that teaching people to be more rigorous in their thinking would be of incredible use, but I disagree strenuously that this level of rigor should be applied to natural languages. Additional rigor, sure, such as bringing back logic and critical thinking courses, but not to this level, at least with regards to natural language. Natural languages are useful because they can eloquently and understandably (for the most part) convey complex subjects concisely. And while learning how to think more critically and logically can certainly benefit one's writing, I speak from experience (first as a student and later as an educator in both writing intensive courses and computer science courses, all at the college level) in saying that the two are better taught separately. Mixing them too much in a single course leads to sacrificing the benefits of each that makes them good at the tasks for which they are intended.

      As for the notion that all things are mathematically defined, I disagree. Moreover, math has already told us that there are things that aren't even mathematically definable . I suppose you could make the argument that the whole universe is just a giant quantum computer (which, coincidentally, was something I first heard about in my Formal Languages class), but that's both well beyond the scope of this conversation and well beyond the point of mattering, since at that point we'd either be getting into deeper parts of this subject than I'd care to go in this discussion, or else we'd be walking into theology, given that God would be the only one capable of providing that mathematic definition.

    19. Re: Learning language by JustAnotherOldGuy · · Score: 1

      Challenge accepted! Mind if I use QB64?

      Oh please, could you be any more ridiculous if you tried? Your example doesn't work, even as a half-hearted attempt to prove that a function can be made to do something it's not intended to do. I'm sure there are legions of programmers out there using trim() to find cube roots....oh wait, no, there aren't.

      If you really think that "there is nothing fundamentally different from spoken languages in programming languages" then you probably don't understand either of them.

      But your example was amusing. Now use imagecreatetruecolor() to connect to a mySQL database, and use strtolower() to write a text file.

      --
      Just cruising through this digital world at 33 1/3 rpm...
    20. Re: Learning language by hackwrench · · Score: 1

      What do you mean it doesn't work? Is there a syntax error somewhere? Did i get my math wrong that something raised to the power of 1/3 is the cube root? What does the number of programmers using this version over the one in a standard library have to do with anything? Your statement as I interpreted it was thst the computer could not be told that trim() has a different meaning from the commonly used one, so I attempted to show you how it wasn't the case. What did you really mean, then? Resigning yourself to the possibility that I possibly do not understand either is not the way to go in attempting to enhance your intellect.

    21. Re:Learning language by hackwrench · · Score: 1

      You missed my change in word usage, from defined to describes, The mathematical proof in showing that the truth of the system taken as a whole cannot be defined describes the very nature of truth and how it is illusive. The truth of the system can break down sn any second is all that really means. There's no net that competely prevents you from setting something down and it suddenly ceasing to exist, for example, and one more concrete example is that of electronics failing. One thing goes wrong and suddenly a phone becomes a nonphone. You may think that things that are not mathematically definable exist, but in fact they do not. Another way of looking at things is tha.t.a.function.that never returns can never return true. God himself is merely machine, whatever else you believe about him. The supernatural is merely more nature. Mixing.things in a single course has never even been tried, because your conclusion has always been presumed and never tested. That goes to the second element in my thesis, that of how they are holding back on students, one reason being that they are too afraid of the consequences were their theory to be proven right.
      I find there tend to be several miscommunications when talking about the reality of concepts. There would be no flaw in how the language was used, just that our concepts about the way things are were far apart from each other. I have learned much once the miscommunications were cleared u and hope the reverse was the case as well..

    22. Re: Learning language by JustAnotherOldGuy · · Score: 1

      I'm still waiting for your example of how to use imagecreatetruecolor() to connect to a mySQL database, and use strtolower() to write a text file.

      Or is it that those functions can't be used for those things?

      --
      Just cruising through this digital world at 33 1/3 rpm...
    23. Re:Learning language by Anubis+IV · · Score: 1

      You may think that things that are not mathematically definable exist, but in fact they do not.

      No, I don't think that. I know that and backed it up with a link to the math to prove it. You asked for evidence earlier, and I've been providing it. You can't just dismiss it with "in fact they do not".

      I may be willing to accept your premise that all things are describable, even if they aren't definable, but changing the discussion to being about describing instead of defining is an example of moving the goalposts. After all, whether or not something can be described is a tangential topic of no relevance to the conversation at hand, given that we were talking about languages and the intrinsic differences (or lack thereof) between ones that are formally defined vs. those that aren't formally defined. If we're broadening it to other topics, I'll bow out, since I have no interest in discussing them.

      Mixing.things in a single course has never even been tried

      Despite the fact that I literally just said that I had experience doing it, I clearly must not know what I'm talking about, since your statement makes it clear that you have a global knowledge of the happenings in every classroom across the entirety of time. How can I argue with someone whose knowledge of my own life surpasses my own?

    24. Re: Learning language by hackwrench · · Score: 1

      It's merely that I don't know how to get any function to do those things. No matter what you called one, once you know how to do it with a routine named one thing, you generally know how to do it with whatever you want to name the routine. Taking a step back, I do know how to write a routine called strtolower() to write a text file, but I think I've demonstrated that is beside the point and that the real issue is that if I were to use the words you used it would mean something completely different and as a result, I have no idea what you are talking about so the only way for this conversation to go forward is for you to use words in a way that I don't have a completely different understanding for. The worst part of it is that neither of us is wrong in their understanding of the choice of words meaning as they apply to their own domain, only when comparing to the other person's domain, and I really do want to understand more about your domain!

    25. Re: Learning language by hackwrench · · Score: 1

      I keep interpreting.things different from the way you mean. You say something is ineffective and instead of providing evidence, you speak from your own anecdotal experience, and then instead of describing that experience, you decide that the fact you have had an experience similar to the criteria it should suffice, without any detail to explain why yor experience meets the criteria.
      You say both "I disagree with the apparent implication that they can be taught similarly." and I have had experience doing it." Those two sentences appear to contradict each other.
      Then we are so far apart from an agreement on what not just that equation but how math relates to the world in general.
      You say that formal language cannot have connotation, but code can have side effects, so how is this different from having connotation? A routine can be arranged to have as many different meanings as the parameters passed to it allows.
      Also, fundamental means something different to me apparently, than it does to you. I find I now have some ability to elaborate. There is no underlying reason why concepts utilized in one domain cannot be used in the other. When you gave the recursion example, you thought it was the example that proved the rule, while I thought that it showed that recursion could be applied in both domains.
      No, everything in a formal language cannot be taken at face value. I can shove anything I want into myverycleverfunction.
      Now that some things have been gone over that step beyond the boundaries a little bit, I say that the reason that the truth of the system cannot be defined is that it does not exist. The system has no truth or falsity to it. I believe a similar concept was attempted to be made when Jesus originally said that there is none good but God, that Man is neither intrinsically good or evil but that the determination comes from without.

    26. Re: Learning language by JustAnotherOldGuy · · Score: 1

      It's merely that I don't know how to get any function to do those things.

      No, it's that those functions don't do those things and never will.

      -

      I do know how to write a routine called strtolower() to write a text file

      Yes, you can create a function to do anything you want and name it anything you want, but that's not what we're talking about. This is about using a pre-existing function to do something that doesn't do, like using the strtolower() function to write a text file.

      That's how programming languages are different than spoken languages- the former has a very strictly defined meanings that don't change, while the latter has meanings that can and do change.

      --
      Just cruising through this digital world at 33 1/3 rpm...
    27. Re: Learning language by hackwrench · · Score: 1

      No, in natural languages when the meaning changes it is the exact same thing you have just taken a label with a preexisting meaning (function) and just created a new word that's a homonym. It only actually changes in the exact same sense that the function appeared to change because I wrote a new function using the same label.

    28. Re: Learning language by hackwrench · · Score: 1

      When you create new code for a function, you tell the computer to rerun the compiler and linker and with natural language you do effectively the same thing.

    29. Re: Learning language by JustAnotherOldGuy · · Score: 1

      No, in natural languages when the meaning changes it is the exact same thing

      Right, but that's not true of programming languages. You can't take a function meant to do one thing and use it to do something completely different. If you disagree, please show me how you can use the two PHP functions below to do what I'm asking:

      1) Use imagecreatetruecolor() to connect to a mySQL database.

      2) Use strtolower() to write to a text file.

      In a human language you can change the meaning or usage of the word, but you cannot do that with a programming language. You'll never be able to use the imagecreatetruecolor() function to connect to a mySQL database, because that's not what it does.

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

      When you create new code for a function, you tell the computer to rerun the compiler and linker and with natural language you do effectively the same thing.

      Sure, and now every bit of code previously written to use that function fails. Not so with a human language because human language is contextual. Computer code is not.

      Again, show me how to use imagecreatetruecolor() to connect to a database, or how to use it to strip periods from a string. You can't, because that's not what it does. You can do that with a human language but not with a programming language.

      But I can use the word "bad" (for example) in lots of different ways and the different meanings will almost always be recognized.

      --
      Just cruising through this digital world at 33 1/3 rpm...
    31. Re: Learning language by hackwrench · · Score: 1

      No, every function theat used that function does not fail because you had enough sense to put the oruginal version in a separate library file. Human language is the same way. Both are contextual, just in computer languages you are more aware of managing the context, which ironocally led you to the conclusion that there is no context. C++ actually deals with managing the context by mangling names. Here's some pseudo code:
      main
      {{
      using namespacewherecoloreoutinemeanswhatituusuallydoes
      colorroutine
      }
      {
      using namespacewherecoloreoutinemeansdosql
      colorroutine
      }}
      Natural language is no different only the decision to use different namespaces are made some distance from the time the token/word actually gets used
      {
      if witholdman then
      {
      using namespacebadmeansbad
      saybad
      }
      elseif withfriends then
      {
      using namespacebadmeansgood
      saybad
      }
      That is how natural language is processed in the brain. Explain how you think it really works if you have an alternate explanation.

    32. Re: Learning language by JustAnotherOldGuy · · Score: 1

      Both are contextual, just in computer languages you are more aware of managing the context,

      No, computer languages are not contextual. In any given computer language a function does only what it's been designed to do, which is why you cannot use imagecreatetruecolor() to connect to a database, or use it to strip periods from a string.

      Computer languages wouldn't work if they were contextual, that is, if the meaning or output of a function provided irregular or arbitrary output. Human language, however, works just fine in a contextual mode.

      Again, if you're correct, prove it by using imagecreatetruecolor() to strip periods from a string.

      --
      Just cruising through this digital world at 33 1/3 rpm...
    33. Re: Learning language by hackwrench · · Score: 1

      I've already shown you pseudocode on how natural language is actually processed in the same way as computer language, thus any apparently context that natural language has that programming languages doesn't is an illusion and asked you to explain what the correct processing for natural language in the human brain is if I am wrong, and if you can't do that, then I guess we are done here. Every time you create a new folder, file, or namespace, you create a new context. I'm sorry if you can neither see that or explain to me where I am wrong, but that is where we stand.

    34. Re: Learning language by JustAnotherOldGuy · · Score: 1

      You originally wrote, "There is nothing fundamentally different from spoken languages in programming languages."

      That statement is simply incorrect. Ask linguistics professors if there is anything fundamentally different from spoken languages and programming languages, and they'll say "yes". So will nearly every Comp Sci student and teacher.

      It may sound cool to claim that there is nothing fundamentally different between them, but it's simply not so.

      Anyway, cheers, and thanks for keeping things civil. It's nice to be able to disagree with someone without either party dropping down into insult mode, lol. :)

      --
      Just cruising through this digital world at 33 1/3 rpm...
    35. Re: Learning language by hackwrench · · Score: 1

      It doesn't matter if they say "yes" or not, they still have to back it up. Maybe I should try to get one of them to give me more than the time of day but I expect they'll want me to take formal classes and shell out tons of money instead. I think I can counter any claim made with facts, however.

  8. 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)
    1. Re:Been hearing this for, oh, 40 years or so by Anonymous Coward · · Score: 0

      For wont of mod points.

      THIS, folks... THIS !!!

    2. Re:Been hearing this for, oh, 40 years or so by Anonymous Coward · · Score: 0

      This is why developers feel a sense of betrayal and anger with compiler bugs more than any other kind of tool bug.

      Can we have an amen? ;)

    3. Re:Been hearing this for, oh, 40 years or so by Tablizer · · Score: 1

      Most of the cost of a working software product is maintenance, not original code creation. Something that automatically generates code better produce grokkable code, or else maintenance will be even more expensive.

    4. Re:Been hearing this for, oh, 40 years or so by Anonymous Coward · · Score: 0

      Though to be fair, that's longer than a lot of these kids have been programming and they usually know pretty much 0 history of the industry outside the lineage of their favorite games.

  9. 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.

  10. Patented? by Anonymous Coward · · Score: 0

    I wasn't aware the NSF could patent something. Aren't they a governmental entity with their product in the public domain?

  11. 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...
  12. Inevitable by ohnocitizen · · Score: 1

    Programmers like myself like to believe we are exempt from being made as replaceable as possible. We're not. Whether it's Outsourcing, H2B, or crappy projects like this... Greed finds a way. The programmers of today will be the mill workers of tomorrow. I hope society figures out a better economic model by then, because *everything* we've tried up until now seems to fail significant amounts of people.

    1. 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.
    2. Re: Inevitable by master_p · · Score: 1

      Thank god people haven't understood yet this. As soon as they realize that what a computer lacks is a model of the world, i.e. information, we are almost done as programmers.

      The real reason I cannot give a command to my computer to "create me a site like slashdot" for example, is that the computer doesn't know what I am saying.

      As soon as deep knowledge AI systems are fully developed, and loaded with the appropriate knowledge, our days as programmers will be over.

    3. Re: Inevitable by Altrag · · Score: 1

      You're assuming that human-like intelligence doesn't inherently come with human-like failings. I mean it might be possible to have the best of both worlds, but that's far from clear at this point and at least some research suggests that certain failings (particularly forgetting things) might be an intrinsic part of the way our brains store knowledge, above and beyond simple capacity re-use and recall speed.

      So we'll have to wait and see (probably quite a long time still..) but there's certainly no guarantees what form strong AI will take and what failings it will have if/when we ever manage to make it work.

  13. 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
    1. Re:open mouth, insert gun... by Anonymous Coward · · Score: 0

      That's some funny shit right there. You bemoan the state of security while arguing against measures to make that type of tedious, difficult and complicated coding standardized and generated by a guaranteed trustworthy source.

      Imagine how many awful VB projects this could remove from the world!

    2. Re:open mouth, insert gun... by Tom · · Score: 1

      As much as I cringe on the mentioning of VB, bad software is made by bad programmers, not by bad languages. I have seen many, many, MANY pieces of really crappy software in C, C++, Java as well as in PHP, Perl, Prolog and a dozen other languages. Some languages are better than others, no doubt about that. But idiots will manage to write shit in any language, and with any tool. The solution is not to give the idiots better tools, but to not allow the idiots to write software.

      --
      Assorted stuff I do sometimes: Lemuria.org
  14. Automated coding by manu0601 · · Score: 1

    The choice of 'automated" word is unfortunate. This helps coding, but an human operator still has to tell the machine what to do, which is programming.

    True automated coding could only be claimed the day human operator will be removed from the process.

    1. Re:Automated coding by r0kk3rz · · Score: 1

      The choice of 'automated" word is unfortunate. This helps coding, but an human operator still has to tell the machine what to do, which is programming.

      True automated coding could only be claimed the day human operator will be removed from the process.

      As someone who works in industrial automation, I have to disagree. This is what automation looks like, you take something that is labour intensive and make it less so with machinery. Until we create hard ai someone will always have to tell computers what to do, and the manner in which to do it, what this is doing is evolving the language we use to get computers to do what we want.

    2. Re:Automated coding by Anonymous Coward · · Score: 0

      This was already done in the late 1980's and failed... https://books.google.com/books?id=fSMW_RgWwIgC&pg=PT27&lpg=PT27&dq=caseworks+case:pm&source=bl&ots=xSGXuPLTtM&sig=vwOCTvxVrIPelu0huTPq9IgDxqU&hl=en&sa=X&ved=0ahUKEwjalZ3FwcPOAhWBSSYKHb3DAfgQ6AEIHDAA#v=onepage&q=caseworks%20case%3Apm&f=false

      I worked for the company. I knew back then it would never work. It won't work today.

      Nathan

  15. 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.

  16. FBI perspective? by Anonymous Coward · · Score: 0

    Story after story references a .gov site in the summary lately.

    1. Re: FBI perspective? by Anonymous Coward · · Score: 0

      Shut up.

    2. Re: FBI perspective? by Anonymous Coward · · Score: 0

      Shut up, APK.

      TFTFY.

    3. Re: FBI perspective? by Anonymous Coward · · Score: 0

      Shut up, APK.

      TFTFY.

      Story after story references a .gov site in the summary lately. Story after story references a .gov site in the summary lately. Story after story references a .gov site in the summary lately. Story after story references a .gov site in the summary lately.

  17. Slashclickbaitdot headlines by Anonymous Coward · · Score: 0

    Are Slashdot's headline-in-the-form-of-a-question posts annoying?

    Do they annoy some of us into not wanting to read the attached article?

    Should the editors just post regular headlines instead of making /. sound as dumbed-down as every other "news" site?

    ANSWERS: Yes, Yes, and Yes (would have also accepted CowboyNeal)

    Raise the bar, editors! Please. These headlines make me want to grind my teeth.

    1. Re:Slashclickbaitdot headlines by Zontar+The+Mindless · · Score: 1

      The answer is always NO.

      --
      Il n'y a pas de Planet B.
  18. Its easy to automate the writing of BAD code. by Narcocide · · Score: 1

    (Instead of spending billions on this mad A.I. boondoggle though, they probably should have hired me to write whatever it was instead.)

  19. It the specification! Stupid! by tomwrake · · Score: 1

    The poltical types are unaware how much money has been wasted in the effort for decades. Most people believe computers work like "Open the pod bay doors, Hal" rather than complex mechanisms that must be carefully prescribed tasks.

    This effort has had a budget of 10 million spent over 5 years so these guys need to show some results in this election year. I would like to see the budget for the 4th generation computer effort and all the other work to make programmers obsolete. When the real bottleneck is alway the specification and feature creep (my mind drifts back to the old Saturday night horror movie presentation called Creature Feature....).

  20. it's a research grant by ooloorie · · Score: 1

    ExCAPE is a research program and grant, not a single finished piece of software. The output from such programs is mainly publications and ideas:

    https://excape.cis.upenn.edu/p...

    Automated programming, program synthesis, and similar projects have a long, long history:

    https://en.wikipedia.org/wiki/...

  21. 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...

  22. We already use automated coding every day by Tony+Isaac · · Score: 1

    IDEs like Visual Studio generate code using a GUI. Report builders like SSRS generate code using a GUI. There are lots of examples, and they all have one thing in common: they work within very limited boundaries. Visual Studio generates code to produce data entry forms; SSRS generates code to produce reports. This project might generate some specific class of applications. That's nothing new, but it will certainly never replace general purpose languages.

  23. ExCAPE by Anonymous Coward · · Score: 0

    I can hardly wait ... "I'm sorry Dave, I am afraid I can't let you code that" ... and with a project name like ExCAPE, it sounds like it is ready to build a back door into any code.

  24. Re:They will that's the problem. Then they'll hire by Anonymous Coward · · Score: 0

    > the manure with strike the ventilation

    Thanks, that's my new phrase of the week! I can't work out if it's more like "All your base are belong to us" or "People called Romanes they go the house"!

  25. 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.

    1. Re:NSF is NOT developing anything by Anonymous Coward · · Score: 0

      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.

      Mod parent up!! The National Science Foundation issues grants (not contracts!) to researchers to perform research. The award in question is publicly disclosed here:

      http://www.nsf.gov/awardsearch/showAward?AWD_ID=1139061&HistoricalAwards=false

      The Principal Investigator (PI) is identified in that link, and in your (honestly, half-assed) summary. The National Science Foundation does not conduct research like this; rather, the awardees do.

      A site obsessed with details of who authors software should also care about who authors research work, but you've shown none of that in this article :(

  26. Rhapsody, Rational Rose... by Anonymous Coward · · Score: 0

    Rhapsody, Rational Rose, and many others came and went. The problem size remains the same. If you squeeze it one way, it bulges out another way...

  27. No, NSF has not done anything by Mondragon · · Score: 1

    NSF does not actually do things - they *fund* other people who do things. NSF also cannot patent anything (nor can any part of the government), and the submitted patent for NetEgg has nothing to do with NSF.

  28. Nothing new here by Big+Hairy+Ian · · Score: 1

    Shit like this has been around for decades from Clarion http://www.softvelocity.com/ to Windev http://www.windev.com/index.ht... . And no don't balk these products never took the skill out of programming they just automated the tedious bits about browses, forms and reports you still had to be a good programmer to make the shit work.

    --

    Build a Man a Fire, and He'll Be Warm for a Day. Set a Man on Fire, and He'll Be Warm for the Rest of His Life.

  29. Oblig Betteridge's Law... by Anonymous Coward · · Score: 0

    Seems the usual guy who chimes in on Betteridge's Law is on vacation, so making a token mention of it...

  30. STOPPPPPPP! by Impy+the+Impiuos+Imp · · Score: 1

    The joke's on you! This is just another of the latest and greatest, for ever and ever frameworks to re-implement everything in. Another latest and greatest, for ever and ever framework, no need for anything more, ever, we really mean it this time, will come along again shortly.

    I've been through about 10 of them during my quarter century career.

    --
    (-1: Post disagrees with my already-settled worldview) is not a valid mod option.
  31. Evolution by Anonymous Coward · · Score: 0

    All the "Oh Noes!!!" are pretty funny.

    Imagine if after assembly was getting prohibitively tedious nobody ever thought to write high level languages and compilers.

    There is need for a new order of programming, whether that arrives in the form of "languages" is anyone's guess.

    To write logical chunks unencumbered by things better left to AI (multi-threading, etc.) will allow for much more creative *and* efficient code. Bring it on.

    Also, if there become true and powerful quantum computers, I'd guess that programming them in C might not be the best approach...

  32. Good job by hackwrench · · Score: 1

    I think you fleshed out what I was trying to say about the connection between natural languages rather well, so good job.

  33. Re:Mathematically defined by hackwrench · · Score: 1

    One thing you said that I missed in my initial response to this post is your notion of mathematically defined. I believe that no corner of reality can escape being able to be described mathematically.

  34. Ebonics by Anonymous Coward · · Score: 0

    I'm sorry, but I can't read the word "ExCAPE" and think of anything but Ebonics. NSF, the word is "escape". "Ess-cape"! Not "ex-cape"!

  35. Sad you can't say the same worm by Anonymous Coward · · Score: 0

    See subject: It's not MY fault you haven't done the things I have weasel amicusNYCL by ac - you aren't GOOD enough, & that's that (obviously).

    * Posting days later thinking I wouldn't see your bs worm? Too bad - I did, & put YOU in your place (among the human waste not living up to its fullest potentials).

    Lastly - Yes amicusNYCL, I know it's you... you're pissed off I figured out you're a FAT bloated lardass waste who hasn't done a FRACTION of what I have in the art & science of computing alone (forget athletics @ levels I was capable of & you're CLEARLY not)-> https://slashdot.org/comments....

    APK

    P.S.=> You wish you were me - I'd be depressed & sad IF I were a limited in scope "ne'er-do-well" like YOU, lol... apk