I have this discussion with various .Net non-believers, and maybe its just me, but I canât imagine why they just donât understand what Iâm telling them. The arguments against moving to a managed framework mostly come from the hardcore C and C++ developers I talk to.
Writing software is about delivering business value. Period. The person who signs your paycheck doesnât care near as much about what language or framework you are using as much as they care about the fact that you are hitting deliverable deadlines within budjet on a constant basis. Being a good software developer lies in part in being a value to the business.
The main argument I hear is âI like to be in total control over everthing thatâs going onâ. "I donât trust the managed framework". "I donât like how it works". In reality, they donât understand it. They donât want to understand it. They think the managed framework canât do a better job than they can when it comes to memory management and resource management. This is total BS in my opinion.
The managed framework does a damned fine job of handling memory and resources, and the only way you can out-do it, is to spend 3 times the amount of hours and money to accomplish the same task that a managed framework developer is going to do. Even then, youâll just *barely*, if at all, outperform the managed framework in the majority of these special cases. Even so, in rare cases where you do need to do some resource management or some memory management on your own, the managed framework allows for this to a certain degree, which in most cases is all the control you need.
So if you are continuously costing your company 3 times as much (probably more, as C++ developers demand more money) to produce the same value as a managed framework developer, with negligale or no noticable performance difference, how does that reflect back to the customer? Badly is the answer.
After explaining that your customer doesnât care how you do it, your customer cares about value, I had one guy give me this argument: âWell, I want to do my own consulting and write my own software someday, so I want to know how all of that stuff works and do it myself.â OMG. Now heâs given me an even better example for him to move to a managed framework. Now this person wants to manage their own business, which is going to suck up a lot of time that could be spent writing software. Moving over to a managed framework has become even more imperative to him at this point so that he can focus on the logic and design of the application without spending the tedious time on finding memory leaks and manually managing resources.
Am I saying that all C++ programmers should switch completely to a managed framework? Certainly not! We must have these machine level programmers. They have been and will continue to be a vital and necessary skill set in the world of software development. Should you be writing your customers inventory management system in C++? Probably not. You are too easily replaced with a managed code programmer, who can deliver the product faster, with less cost, and most likely with less bugs.
Take a look at your development and business environment. You can tell whether you should be using a managed framework or not. It the vast majority of cases, a managed framework is your solution to saving time and money for your customer, which is the goal of any good developer.