== NUANCED PRIDE ==
Hm. Let me add some nuances here, about “mature businesses” etc. I’m with you on the need for stable tools. Absolutely. So let me share a story about one of my experiences with problems like this.
People being old enough remember world famous company and person names like Borland (Turbo Pascal, Delphi, by Anders Hejlsberg which also is behind C#), CodeGear, later acquired by Embaracadero aso. Most people would regard them as being mature companies.
My personal experience related to this topic was that I once designed a “huge” software system (business system) in which I was the chief architect (as an external consultant) supported by a team of 5 other developers (client’s employees). It matters to mention that the whole project, from a blank paper to deploying the sharp full fledged system took about 6 years. We used a Model Driven ORM system called Bold Architecture (for Delphi). And the relevance of Bold is similar to what Rhino is for you - namely one of the main tools for doing daily work.
Problem was, no one had ever tried to make such complex data structures, with such tough requirements on performance as that which I was modeling (real-time instant calculations for user feedback of this and that). And the Bold (“Rhino”) framework broke down time after time. For years, Some numbers:
ELEVEN MONTHs WASTED(?)
Out of those six years I spent circa 11 months, full time, debugging the Bold Architecture (my main “Rhino” tool at the time) in order to be able to do all the modeling tricks (to the limits of OOP) which no one had ever tried to do before that crazy Swede tried to do it (fully legit OOP concepts though, but the platform just couldn’t handle it.
This also mean that the bugs or glitches in the platform again and again delayed vital “domains” of the system to be fully designed, which in turn meant that we had the system as a whole in a kind of “limbo” in which we could not test if the “whole” would actually work. This went on for years (including not being able to test the overall system).
11 month. Full time. For free.
The result? After the system I designed was finished, also the tool, the Bold platform was, and is, the most competent and reliable application platform for Model Driven design of Win32 applications that exist. Also the last minor version of Delphi which supported this framework (called Delphi Architect) was bug fixed, and solved, by me and my team. For free. Borland/CodeGear (acquired by Embarcadero) got it all for free. Anyway,
the final result of this “giving away for nothing” activity was that we eventually had in our hands the best tool we could have ever dreamed of. It reached the level of "industrial strength"
And “industrial strength” is what I think you Gusto expect from a professional tool. I love the term “Industrial strength” because it sounds rock solid, and that exactly what I also mean. The system we built cost XX+ million dollar to develop, and it has never crashed (in a decade, from when it first started). Ever.
And now the entire framework is open-sourced since a few weeks, by Embarcadero. But everyone who knows about this framework from before are waiting for an even better version to be uploaded, which is the version currently driving the business system I designed (it has all the fixes and optimizations which Embarcadero didn’t bother to fix).
Win32 / .NET
Now, don’t overlook that “BoldForDelphi” is a Win32 original version of the framework, but there’s a more modernized .NET version (not open source though) which by Borland/CodeGear was first dubbed “Eco” (developed by the original Swedish team behind the win32 Bold version) and now licensed to a Swedish company under the product name MDriven(.net). Based on the rock solid industrial strength Bold version.
ROCK SOLID PRIDE
As said, rock solid stuff, and why I bore you with repeating this is because, yes, I do feel proud of my contributions to increase the capability AND the quality of this framework to the level of “industrial strength”. For free.
Don’t get me wrong. Smarter guys than me did the development of Bold. I only was the nastiest (technically) “test bench” they had ever encountered. And this is relevant to testing in general - I was an outlier in terms of how I used the system (among many other designers). This relates to “You are testing only that which you are testing”. there’s no way that the framework developer would even know how to rig such nasty use cases as those I used in my design. This is an aspect must not be overlooked. (regressions of essentials is another matter…)
But I’m trying to comfort you @Gustojunk” to not feel so "used and abused”, or not to think you’re in such a unique position of being a “victim of the development process” of Rhino. Instead I really hope you continue “encourage” the McNeel team to improve both Rhino and the development process of Rhino. But again, no, you are not alone in your situation, and you are not in a much “worse” position than many other users of products developed by very (very) “mature companies” in the field of IT.
Just so you don’t miss my main point; I want to openly thank you for your contributions to Rhino and it’s gradual improvement. I wish you would feel more proud than sorry for your efforts. And I think McNeel is appreciating your contributions as well, and also taking your advice seriously in trying harder to avoid regressions etc.
Sorry for the long post.
I wish you all a Merry Christmas and a Happy New Year,
Plug 1: Opensource win32 “battle tested” industrial strength MDA platform BoldForDelphi. This link is to Embarcadero’s sources, but for anyone interested I’d suggest waiting a month or two for the contributions to the sources from a dozen developers/companies who spent a decade+ to add enhancements and optimizations:
Plug 2: A modernized .NET version of the Boldish code base above (the term “bold” still shows up here and there in this architecture disclosing its origin). “MDriven Framework” is the .NET equivalent to Bold Architecture above:
A word about “slow heavy frameworks”: No. Not so. Or, it’s often very true, but not in this case. And it has its reasons, but the thing with this framework is that it enables a special kind of optimizations which you would never, ever, even think of trying to achieve by handcrafting your own framework. For anyone interested I can tell more about that part, but not now.
Disclaimer: And no, I have no affiliation with any of the companies behind the links above, but I do know what this stuff is capable of.