I certainly hope that ECCM isn't our future !!
There are some quite well established automatic code generation design flows in use in Automotive and Aerospace applications (eg MATLAB/SIMULINK -> RTC -> C) - these do work and can produce useable production code. The tools are expensive.
The issue with all of these approaches is that they do not remove the need for programming but provide a new programming langauge (possibly graphical, higher level whatever).
If they provide very high level code blocks (or library functions in C) then you are stuck with using what you are given - which may be quick but may not be very well optimised - if you need to get to low level coding (and you always will if you want optimal performance) your are better off (much) using a well known and standard langauge.
We're going to see a lot of these new "no code required" approaches over the next few years and I'm sure that they will promise a great deal and deliver very little - try parsing a string, calculating a CRC and adding two 64 bit integers in the "ncr" on offer. (I chose these as tasks easily accomplished in assembler or C but frequently challenging for graphical systems - using a ready made block doesn't count !!).
You are right about the current state of code generation. Primarily because the code generation continues to be based on a spatial logic approach. That's the standard "if-then-else" logic that is so difficult to understand and maintain that dominates the industry. I've developed a temporal approach that improves the logic because it eliminates the need to test for its place in the logic. I wrote a book to explain this: Breaking the Time Barrier - The Temporal Engineering of Software. My website at www.vsmerlot.com has some information showing how one can make the transition.
I started using CASE tools back in the 1988 and was disapointed in their complexity. That's when I began the process of trying to understand what the problem was and then fix that problem. As you've pointed out the code generation leaves a lot to be desired. I tried working the problem backwards but the code was so bad that the model was just as bad. That's how I discovered a better code structure using temporal engineering and applied for a patent. The patent issued in Feb 2004 as US Patent No. 6,345,387. I decided in 2009 not to enforce the patent and allow the public to use the technology.
My background: I'm the inventor of "Time Domain Architecture" (TDA) US Patent 4,847,755. This time domain technology is better known as Multi-Core & Hyper-Threading Technology. Understanding time was important in creating parallel code and real-time tasks which led to the hardware architecture and today to the temporal software architecture.
As of this writing DARPA is looking into the Temporal Engineering of Software. In addition I’ve been selected as a presenter at the DOD sponsored 2010 Systems & Software Technology Conference in Salt Lake City. I’m excited about being selected and looking forward to presenting.
You are right about the current state of code generation. Primarily because the code generation continues to be based on a spatial logic approach. That's the standard "if-then-else" logic that is so difficult to understand and maintain that dominates the industry. I've developed a temporal approach that improves the logic because it eliminates the need to test for its place in the logic. I wrote a book to explain this: Breaking the Time Barrier - The Temporal Engineering of Software. My website at www.vsmerlot.com has some information showing how one can make the transition.
I started using CASE tools back in the 1988 and was disapointed in their complexity. That's when I began the process of trying to understand what the problem was and then fix that problem. As you've pointed out the code generation leaves a lot to be desired. I tried working the problem backwards but the code was so bad that the model was just as bad. That's how I discovered a better code structure using temporal engineering and applied for a patent. The patent issued in Feb 2004 as US Patent No. 6,345,387. I decided in 2009 not to enforce the patent and allow the public to use the technology.
My background: I'm the inventor of "Time Domain Architecture" (TDA) US Patent 4,847,755. This time domain technology is better known as Multi-Core & Hyper-Threading Technology. Understanding time was important in creating parallel code and real-time tasks which led to the hardware architecture and today to the temporal software architecture.
As of this writing DARPA is looking into the Temporal Engineering of Software. In addition I’ve been selected as a presenter at the DOD sponsored 2010 Systems & Software Technology Conference in Salt Lake City. I’m excited about being selected and looking forward to presenting.