What kind of software would you design, if you could have any function added in without having to have the technology of how it was brought about be known? Would you have something which could identify distant planets which actually have sentient life living on them? Would you have a piece of software which would be able to pair any group of chemicals together until the perfect cures and chemicals could be produced digitally, and then mixed up immediately? While these kinds of things are naturally going to be a little bit fantastic when you read them here, how long do you really think it is going to be before we actually have programs of both of those types?
The great thing about the human mind resides in its ability to think beyond what it can immediately perceive. Whereas most species of animals can only take what is right there and use it, human beings can take what is there, add in what we may be carrying with us, and then devise something which has never been seen before, in order to achieve the solution to a problem or another type of desired result. When it comes to software, a lot of people perceive it as an end within itself, as if the software was all there was.
But in the end, software is really nothing more than a tool just like survey software tools that is used in context of online surveys. If you have a tool that works in a certain way and you use it in a certain context, it can accomplish a particular job with a minimum of fuss and muss. Whenever you start to consider what your ideal type of software would be, you are naturally thinking about a problem that you perceive as being a necessity to fix, and your ideal software becomes the solution to that problem. If you think about it long enough, you will come up lots of ideas.