The world of programming is changing dramatically. Programming frameworks and plugins are big in the web world and many programmers don't program anymore in the traditional sense. They script or build things using pieces or plugins.
"Once upon a time, game development meant hiring plenty of developers who wrote everything in C from scratch. Sure it cost a bazillion dollars, but it looked great. Now, no one can afford the luxury of custom code. Most games developers gave up their pride years ago and use libraries like Unity, Corona, or LibGDX to build their systems. They don't write C code as much as instructions for the libraries. Is it a shame that our games aren't handcrafted with pride but stamped out using the same engine? Most of the developers are relieved -- because they don't have to deal with the details, they can concentrate on the game play, narrative arc, characters, and art."
http://www.infoworld.com/article/2609017/application-development/application-development-15-hot-programming-trends-and-15-going-cold.html
Also, few can justify writing individual custom Excel apps anymore where the calculations are tied directly to that one Excel interface. They are almost impossible for others to understand and customize, and the calculations are tied to a programming model that requires user interaction. The calculations, however useful, can't be combined and used for other purposes.
Another modern trend is the use of cross-platform tools that enlarge one's market. It used to be that programmers had to rewrite applications using native tools (Windows and Apple, mostly, but also Unix) or else risk being trashed. Now, many cloud tools are hiding all of those native differences. Apple? PC? Android device? Who cares. Nicely for Project 114, Excel is moving towards a cloud-based, cross-platform option. It's not that one cannot create custom front ends that use standard "calc engines", but there will be few cases for that, especially when the cost of writing custom programming is added in. With standard and open Excel framework front ends for many different types of calculations, most user-defined (not independent software developer defined) solutions will be possible. The goal is to change the engineer from a "user" to a "solver."
However, these web-based programming trends have not filtered into the engineering, science, and CAD programming worlds. Most things are still based on the idea of individual apps each including a custom designed user-directed interface where the calculations can't be used for other tasks. It might be nice to hit a button in a CAD program to determine the resistance of the hull, but what you really want to do is to search over millions of hull shapes to find an optimum one based on a user-defined merit function. CAD companies want us independent software develpers to custom write our calculations inside of their programs. DLLs are not a solution because CAD programs like Rhino and ProE do not provide proper framework programming tools. I cannot afford to write my calculations for more than one CAD program and I don't want to tell potential customers that they have to buy and learn that CAD program.
One of the major problems of CAD programs (and most programs, actually), is that the data definitions, structures, and file formats are not open and easy to understand. If you have to transfer geometry between CAD programs, you are stuck with IGES, and I run into those translation problems continually. It happened just the other day for a simple curve definition. I have no idea what the problem is. In the marine field, there are no standards for hull and compartment definitions using stations. If you want to write your own calc engine tool based on that type of geometry, you have to do it yourself or else figure out (reverse engineer) a current definition and write your own I/O code. I did that for the full GHS definition and it wasn't easy. Therefore, one of my long-term goals of Project 114 is to define many of these data structures using open and formal XML schemas. More importantly, I want to provide open source code that everyone can use to read and write those files. In that way, calc engine writers can focus on their calculations and everyone will have a common data definition to work from. It helps everyone, expands our market, and reduces our costs if we are all on the same page.
I see three main components of Project 114: open definition data file objects with open source I/O code, independent and reusable calc engine "batch" code, and open framework (mostly using Excel) models that handle many different calculation tasks, such as single calc engine analysis, calc engine sequencing tools, optimization tools, time analysis tools, free body diagram tools, and more. The goal is to create an environment where users can pick a calcultion framework and select calc engines from many different sources to do a complex analysis without writing a line of code.
------------------------------
Stephen Hollister
Chief Executive Officer
New Wave Systems Inc
United States
------------------------------