Update 2: After some disagreements (see comments) I've finally found a good site to read up on COM: The Component Object Model - Win32 apps | Microsoft Docs[^].
While this doesn't directly disagree with anything I've said, it seems that, under the hood, COM is still very much alive in Windows. You should be aware however, that most applications use COM only indirectly, through DLLs and frameworks like OLE (2).
To find alternatives, an internet search for browser plugin technology should turn up some results. I think plugins are the most common application of COM-like functionality nowadays.
Quote:
Is this old technology?
No, it's ancient. The oldest tech of that type I've used myself was OLE 2, back in the 90s. Even then COM was outdated!
Quote:
Is this a good place to work in and learn?
Sure, if you're interested in archeology ...
On a more serious note, no, definitely not. If you happen to have grown up with these techs, it's ok to stay. But learning them just to be able to do that job? Never!
Quote:
They probably will not change in a while.
If they don't change, they'll soon die of old age with the last programmers that even know about COM.
Quote:
If they wanted to make a change what could they do?
1. Spend some effort and find good programmers who are fluent in current software technologies for C++ and related languages, and are willing to work on refactoring dinosaurs into cheetahs.
2. Don't aim for C++11, aim for C++17 and constantly moving up to the newest standard. Aiming for an already outdated standard is what your company did 30 years ago - don't repeat that mistake!
3. It might help to first spend some time to investigate which modern frameworks exist that could help replace the old functionality. I'm no expert in that area, but I have a feeling that web technology might provide anything that you need. Turning your programs into apps that run on web servers and are used via thin clients could transform your whole business. Of course that means you'd need web developers, probably more than one. Well, nobody said this would come cheap ;-)
4. Once you've decided where to go, you need to decide how to get there.
If it's important to keep current users happy, you may need to go slow, and you may need to support both the new and old technologies concurrently. Since you say you have many programs, it's probably best to refactor them one or two at a time.
The alternative would be to create a GUI and communication framework for all of your programs, pack the old core functionality into a DLL, and call these functions from newly developed programs based on this framework. That development would have to take place while maintainig the existing set of programs. If you don't have the capacity for that, you need to hire more people. Of course you could also try using consultants, but IMHO that wouldn't be a good idea: you need the new knowledge to stay in the company.
Quote:
Do a lot of companies use COM and ActiveX
I'm surprised to hear that there are still companies using COM - I would have expected them to move on or die at least 10 years ago. As for MFC, it still sticks around, mainly because it was still omnipresent in all Windows versions up to and including Windows 8.1. ActiveX is in-between. While newer than MFC, it was considered a security risk a long time ago, and shunned by most companies since at least 10-15 years. Besides, it was mostly used in gaming, and the gaming industry is fast to move on to new technologies.