It feels like we are watching the beginnings of a new field. Just like computer science was 50-70 years ago. Future 3D printing will be as complex as computer science. Programming an app won't be different than programming the printing process of a smart object.
Imagine having a very complex printer that builds fully functional objects at once (optics / electronics / plastics). What language will it use? How would you define the specs and functionalities of each part of it? It is quite hard to imagine that the rudimentary CAD tools we have today are going to handle the complexities of a full-featured desktop printing process.
I wouldn't be surprised if programming languages become required for that. Instead of downloading and printing a simple CAD model (the today's approach), the printer owner downloads a script that drives the machine step by step. The script is carefully programmed by the designer to achieve maximum quality. This would allow not only a freedom of form, but also higher quality products that will be based on the designer's programming skills and materials knowledge, instead of automated software.
A printing language would also allow for procedural creations. Imagine creating an infinite L-system or fractals. Or creating optical components that must dry before the printer continues. Or designing unit tests that validates each component while printing. Painting objects with different styles and color blending. Imagine coding a bug fix for a real object.
So if a language is required, who will be the Allan Turing of the field? Who will define what can and cannot be done? Will it have similarities to a software language? Is there a set of NP problems that a " programmer " wouldn't solve? What is the minimum set of low-level instructions that define the printing process? How higher-level languages would be optimized to run on top of these simple instructions? These are a few of the many questions the bright minds of the future must solve.
A new " printer " human interaction (PHI) field can be established to define ways that humans (meaning the printer's owner) can interact with the designed printing procedure. The definition of interfaces and design guidelines would enhance the field significantly. Scientists and artist will frequently meet and discuss the best alternatives for the user. What will be the similar to the primaries Selection / Manipulation / Navigation tasks?
If you think printing is not complex enough, think again with these keywords in mind: cooking, organs, DNA, drugs and silicon chips. Things get more interesting with printing reflection functions. One could specify which color reflects where and how. It's a BSDF rendering for real objects.
Can we define an artificial intelligence for printing? Can we train a printer to build our object without having to write the code for it? How can we adapt genetic programming to accept physical objects as input? Can a printing artificial intelligence solve problems better and faster than humans?
If all printed products are essentially different scripts, how can we normalize the database of Amazon's future products? Would data centers be able to compact and structure the new " big data " automatically? What is the new database after all?
Are desktop manufacturing scripts patentable?
It seems that the equivalent to the Linus idea of an open-source OS has already started and reached a level that Linus would have never thought of. The open-source 3D printing being developed these days is pretty much crowd-based. There is no clear leader, but thousands of people making and enhancing their own printer. Will they converge to a common platform? Will a foundation define it? Will is grow into a set of spec that the industry and the market can use to communicate? The same way, we have a few Jobs and Gates around, and IBM-like companies that will take time to absorb the new wave.
Maybe with new Code Printing practices in a programming language we can reach a stage of resource efficiency that saves this planet and the human race from extinction.
The new field even has also its own duel. In one side, the standard 3D printers in which a machine deposits material to build an object. On the other, independent pre-built objects automatically join together to form the desired object.
An of course, if 3D printing becomes so powerfull, how can we re-define copy and paste for 3D objects? How to copy a chip? How to copy a molecule?
Will we have high-processing code running in a cloud to help portable devices?
Well if the product of the future is printing script, we need a new App Store. Nobody knows what will happen to the cheap labor market and the distribution chains that are in place today. Hopefully we get rid of them all.