272 karma · joined April 6, 2012
Great article nevertheless!
No way this would happen. :))
I get some of the reasons that you would initially start out with a header-only implementation, but when your library grows, you probably want to split it at some point. For me personally, that point would be some time before the header reached 25k (!!) lines.
If you want performance, you have to design for performance, not just build the first thing that comes to mind and try to optimize it later.
An actual example of this I saw recently, was when I got into an argument with someone over the use of standalone functions in C++. Apparently, these are evil, and functions should always be part of a class.
Of course, a class with only static functions is basically a namespace. No problem, apparently statics are also evil. So let's not make these functions static, even though they're not accessing any member data.
But now, when we want to use these functions, we need to instantiate an object, which is a bit silly. No problem, we'll just make it a singleton.
I shit you not, this actually happened.
At a company I worked for previously, some people thought it would be nice to invite him for giving a talk. Even though there was a reasonable budget available, it still didn't go through because the guy is apparently pretty expensive.
And it wasn't just crappy web apps or throwaway MVP stuff. The first one was in medical systems, where the suits figured we had a 6 month lead on our closest competitor, the other was in consumer electronics (navigation devices), in the time that competition was still stiff in that sector.
In both cases it was decided that releasing something was more important, knowing full well that we had to pay the cost later. Of course not everyone agreed with it, since no one likes having to work with legacy crap, and everyone and their mother always wants to refactor all the things, but guess what: code quality is not the goal of your company, making money is.
Some time ago I was put on an assignment at another company, and suddenly people from that company started showing up in my 'people you may know' list. And vice versa probably, since I also checked out some of their profiles. This is just what people do these days when they get a job somewhere.