> And what do the interfaces to these programs look like?
You get a bunch of readably named functions that you talk to just as if you'd written a library painfully from scratch.
> Are they off the shelf programs or do you have to write (parts of) them yourself?
The interfaces themselves are generated, the code that uses the interfaces is written just like any other program. Unfortunately I can't generate 100% of the code, the business logic bits still need to be written. But even there we're making progress in identifying bits and pieces that are more generic. As more and more code moves to the generated input the whole thing starts to take on the guise of a very high level DSL.
The real knowledge is vested in the generator and how to keep it flexible and still be able to generate code specific to the problem at hand. This can be quite tricky.
> I'm guessing you still write code.
Absolutely, just far less of it than I would have to write otherwise. It's been slow going getting this set up but now that we have it the speed is phenomenal.
You get a bunch of readably named functions that you talk to just as if you'd written a library painfully from scratch.
> Are they off the shelf programs or do you have to write (parts of) them yourself?
The interfaces themselves are generated, the code that uses the interfaces is written just like any other program. Unfortunately I can't generate 100% of the code, the business logic bits still need to be written. But even there we're making progress in identifying bits and pieces that are more generic. As more and more code moves to the generated input the whole thing starts to take on the guise of a very high level DSL.
The real knowledge is vested in the generator and how to keep it flexible and still be able to generate code specific to the problem at hand. This can be quite tricky.
> I'm guessing you still write code.
Absolutely, just far less of it than I would have to write otherwise. It's been slow going getting this set up but now that we have it the speed is phenomenal.