Discussion Will computers wirte their own programs in future ?

  • Tuesday, March 27, 2012 9:49 PM
     
     

    Hello Experts,

    Just a bit curious about future technology.

    As in today's world we have got familiar with Artificial Intillegence concept, and many program IDE's features like intelli-sense, auto code completion, code-grammar checking. So on basis of this. .would it be possible for computers, to write their own program code.

    From punching cards to assembly language, from assembly language to current dominant programming languages, it is clear that code writing is becoming easier (or comfortable) day by day.

    So is that day far away, when we will just order computer/robots in conversational english(or in other languages) and they would write code for themselves and behave in similar way.

    With Regards : Ajay Check

    • Changed Type Ajay Check Wednesday, March 28, 2012 8:00 PM
    •  

All Replies

  • Tuesday, March 27, 2012 11:27 PM
     
     

    (Warning: I'm a pessimist in the US, the following will be offensive to optimists);

    I see the opposite.

    Things have not gotten easier, they have gotten magnitudes much more difficult. I used to use dBase III and write decent sinlge cash register point of sale code in a day. Now I have to use web servers, web browsers, asynchronous disconnected databases via web services described by an unsuited XML language, HTML, PHP, python, and who knows what other hacked together technology to do the same thing. It takes months/years, I have no decent debugging path, and it has to run on 2 or more different platforms, all of whom try as hard as they legally can to make sure code they run can not run or work with anything else.

    Then I see advances in AI, accomplish little more than what was already done 4 years before. http://www.spiked3.com/?p=120  

    Follow that up with a good dose of vendor lack of enthusiasm (we won't mention any name here) and all that is left is undisciplined, unprofessional open source. http://spiked3.blogspot.com/2011/12/state-of-robotics-explosion-about-to.html

    I recently watched a TV special on 'Seattle creates the future' - where the worlds fair in Seattle was described as the beginning of a new dawn. And I counted how many of the predicted future technologies were accomplished. Final talley; 1.  That was 1962 - it is 2012 -  50 years and nothing. The only technology paradigm change in my lifetime has been personal computers. 'Personal' as in people could use them to do things they wanted. And now even that is being aggressively stomped out by people who would prefer to sell you something, as oppose to allow you to do it yourself. (when was the last time you wrote a program on the PC to use for day to day tasks?) They are no longer personal computers, they are at best smart phones.

    And finally from history; it took 10 years to get to the moon and that was with an enthusiastic country (the US). Now that enthusiasm, while maybe still alive in a few, definitely does not exist for the country. Politics are all that matters these days, with a country split exactly 50/50 and doing exactly what the founding fathers intended in those circumstances, nothing.

    Simple math, if we can accomplish 1 thing in 50 years with an enthusiastic country, and assuming one country is enthusiastic (I'm sure it won't be mine again any time soon), and we need (guessing) 3 new things (10 times miniaturization, 10 times speed improvements, actual real understanding of thought processing),  to have a paradigm shift in robotics, we are looking at about 150 years.

    In the meantime, I'm sticking to line following robots. I'm sure that's the best a consumer will see in my life time.


    • Edited by Spiked3 Tuesday, March 27, 2012 11:28 PM
    •  
  • Wednesday, March 28, 2012 6:37 PM
    Moderator
     
     

    Its not there yet but computers are already making programming easier if not doing the programming themself however they are at least generating code for us.

    We already have Microsoft Robotics where using VPL or Visual Programming Language you can create a robotic application without writing a single line of C# code for example. of course the computer is not building your diagram but can be said to enabling you to create a solution quicker. Imagine...instead of writing lines of C# you instead drag a few blocks onto a design surface and a few short steps later you have a robot moving around and using its sensors. In fact behind the scenes the system is generating the C# code for you.

    We also see databases and other systems that self optimize without having admin intervention.

    As a stretch and if you remember the old days of the text adventure game there is already a tool called http://inform7.com/ which lets you create text adventure games in a very english like development system.

    Today you will have seen many stories where an 8 year old picks up a game development tool, creates a new game and sees millions of downloads. Again in this case the computer system is shielding this young developer from the deep complexities of the underlying system. In at least one case the game development system has you create the game in a very high level BASIC like language then it generates a full C# project for Visual Studio.

    For many years there have been systems described as the last program you will need as the idea was you could use an english like system to describe your applicaiton and it would generate it. These typically ended up being pretty shallow systems and you hit the limitations pretty quickly.

    It could be years before you can really walk up to a computer and say create a program to do x but at the very least the entry to being able to create something useful on a computer has reduced significantly.

    Actually it would be nice on EDDIE the robot to have a voice interface and say EDDIE, monitor NASDAQ stock X and tell me when it goes over value Y.

    Internally of course an agent system would understand this and alert you at the right time.

    I am positive that this will happen but not any time soon. We do seem to be on a path to get there but a long path.

    Lastly and my biggest concern, in the future maybe the computers will generate millions of line of code but unless you can prove the functionality you will also have future programmers spending their time validating machine generated code rather than creating themselves.

    Interesting times for sure :-)


  • Wednesday, March 28, 2012 9:33 PM
     
     

    Lastly and my biggest concern, in the future maybe the computers will generate millions of line of code but unless you can prove the functionality you will also have future programmers spending their time validating machine generated code rather than creating themselves.

    Interesting times for sure :-)


    Really interesting : so current best programmers would be future debugging experts.  ;D

    Thanks for unbiased information and thoughts.

  • Thursday, March 29, 2012 9:37 PM
    Moderator
     
     

    Thanks, you post was interesting as it gets you thinking about multiple levels of developers and again leads me to VPL in Microsoft Robotics.

    Today in effect each block that you can drag onto a VPL diagram is a service written in C# but at a high level you do not care. You simply want to communicate and build a robot app such as a robot that simply moves backward and forward in a straight line unless an object appears on either side in which case the movement will be interrupted.

    Now as you build out your diagram it may get more complex and your diagram may get larger so you can group your diagram together into a new block of funtionality to simplify the diagram. You can imagine that you could put together many levels of sub systems all without writing a single line of code.

    VPL could be seen as a great tool for the robotic beginner however...as you get more advanced you could then learn to write a full service for Microsoft robotics that can be consumed by VPL

    In this way you sort of have become level 2...now you can write a simple service in C# that you can then use in your VPL diagram. Of course a Level 3 robotics coder might be the guy that can write the entire solution in straight code.

    Either way whether you like to play with diagrams and use VPL to make your robot move or write directly in C# we have the tool for you. With VPL of course the machine is actually generating C# code so we are a small part of the way there. Now all we need is to get the computer to understand your voice and build the VPL diagram directly :-) and maybe in the future while the computer will not write the code, you as a VPL tool user will be able to go to a app store where you can download robotic software solutions and add them to your EDDIE robot or import them to your VPLdevelopment tool for use in your own app.

  • Thursday, March 29, 2012 11:09 PM
     
     

    jodonnell,

    There was a followup Microsoft research project*, that I was told was taking lessons learned from VPL and other ventures like it. I really like the drag and drop idea, and it is great when high level task blocks are available for things you want/need, but as anyone who has used them for more than a demo, it falls flat quickly when there is not something available. A simple 2 + 2 routine takes at least 3 blocks (read variable, add, save variable), high level math is a nightmare unless you write your own block, and then that sort of defeats the purpose. 

    I know you couldn't discuss it if you knew, but I am wondering if we might expect something like VPL, but different anytime soon? I'm all for bringing back the simplicity of VB3 and dBase. With those you could get stuff done, and it would seem to me the easier it is for more people to get into the field, the better the results will be. Just like personal computers originally, its quantity, not quality that starts a revolution.

    *Kodu is the only thing I see there now, and it says "games for kids" - that might be what became of the research :(  Oh well, I understand the XBox push. http://research.microsoft.com/en-us/projects/kodu/


    • Edited by Spiked3 Thursday, March 29, 2012 11:14 PM
    •  
  • Tuesday, April 17, 2012 1:59 PM
     
     
    Hello, I now use irobot create robots development.I know that the MRDS platformprograms are written in C #.I want to know whether the future of the platform also supports C + +.thanks 
  • Tuesday, April 17, 2012 11:06 PM
    Moderator
     
     
    Yes, you can write C++ with MRDS today as C++ can be combined with MRDS in three ways: write Managed C++, use COM Interop with .NET, or call DSS Services over TCP/HTTP from C++.  Each of these have their strengths & weaknesses, on the Robotics team we've chosen to use the Managed C++ approach.