
Maybe it's just me, but if I were a manager managing a large C++ project, I would seriously consider preferring someone who knew a lot of different kinds of languages but not C++ very well to someone who only knew C++ but did know it well. I'm paying for the learning curve anyway.
Unfortunately, it probably *is* just you, which is a pity. As and when you get into management, you'll have a queue of people longing to work for you, believe me! :-) The majority of software project managers in industry recruit people who, as far as is possible, have spent the last several years doing exactly what the job is going to entail. Some might have vaguely heard of functional programming, most wouldn't know what Haskell was if you dropped it on their collective heads. I tried for years to convince various managers to use functional languages, but only ever succeeded once, briefly, and even then they chickened out and had everything re-coded in C++ anyway. The problem isn't usually anything to do with how good a programmer they think you are, how good the language is, or even how much time and money they might save. There is a terror of ending up with a large amount of code, written in an unusual language, that they then couldn't support. In the case I mentioned, the C++ rewrite ended up so complicated (it's an in-memory SQL database engine, weighing in at nearly 17000 lines of code) that as-yet no one but me has attempted to make any changes to it anyway. Another, non-trivial, problem is that corporate managers only like using tools from well-defined, well-supported companies. Everyone wants Visual C++ for this reason. In one project, I was even forced to rewrite a lot of code because the management didn't trust gcc, and the library I was using wouldn't compile on VC++ because it needed partial template specialisation. In many cases, it is literally impossible to persuade management to use open source software, because it is perceived as lower quality and less well supported than commercial software, even though the reality is frequently the opposite of this. I hate to have to say this for all kinds of reasons, but what the FP world *really* needs is for something called 'Microsoft Visual Haskell' to ship as standard with some new future version of Visual Studio, and be supported by a big, expensive marketing effort targeted specifically at corporate managers. Particular attention would have to be given to interoperability with other languages, so managers could be convinced that they had a way out. Even with this, there's no guarantee of takeup -- one customer of mine started out quite happy to use all kinds of technologies, but got burnt, and as a consequence is now extremely conservative. Oddly enough, it was a Microsoft technology, DCOM, that burnt them, because it just quite simply doesn't work properly over anything other than a simple local network, and completely can't handle any network infrastructure that does any kind of address translation. This is in the process of being replaced with a low-level, Berkeley Sockets TCP/IP implementation, which is (they acknowledge) probably what they should have done in the first place. DCOM only managed to burn them this badly because it seemed to work brilliantly, then fell down only when they started to sell their product to larger clients who had bigger, more complex networks split across multiple sites via VPNs. This same customer wont use .NET, because they are afraid of a similar along-the-line disaster. It's also worth mentioning that they have the most technically enlightened management I've come across in years -- these people are by no means stupid or ignorant, it's just very important to recognise that commercial companies want to protect their investment above all else, so they are not keen on taking technical risks. I'm writing from the perspective of someone who has spent 20 odd years in commercial programming, mostly as a contractor. I've been a manager myself on quite a few projects, so I know the issues on both sides of the divide. -- ---------------------------------------------- / __ + / Sarah Thompson **** / / (_ _ _ _ |_ / * / / __)(_|| (_|| ) / sarah@telergy.com * / / + / http://findatlantis.com/ / ----------------------------------------------