I am just starting out

Sarah Thompson sarah@telergy.com
Mon, 26 May 2003 08:39:11 +0100

>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.
> =20
Unfortunately, it probably *is* just you, which is a pity. As and when yo=
u 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 w=
hat the job is going to entail. Some might have vaguely heard of function=
al 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 eve=
n 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 co=
de, written in an unusual language, that they then couldn't support. In t=
he 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) th=
at 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 o=
f code because the management didn't trust gcc, and the library I was usi=
ng wouldn't compile on VC++ because it needed partial template specialisa=
tion. In many cases, it is literally impossible to persuade management to=
 use open source software, because it is perceived as lower quality and l=
ess well supported than commercial software, even though the reality is f=
requently the opposite of this.

I hate to have to say this for all kinds of reasons, but what the FP worl=
d *really* needs is for something called 'Microsoft Visual Haskell' to sh=
ip as standard with some new future version of Visual Studio, and be supp=
orted by a big, expensive marketing effort targeted specifically at corpo=
rate managers. Particular attention would have to be given to interoperab=
ility 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 st=
arted out quite happy to use all kinds of technologies, but got burnt, an=
d 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, a=
nd completely can't handle any network infrastructure that does any kind =
of address translation. This is in the process of being replaced with a l=
ow-level, Berkeley Sockets TCP/IP implementation, which is (they acknowle=
dge) probably what they should have done in the first place. DCOM only ma=
naged 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 VP=
Ns. This same customer wont use .NET, because they are afraid of a simila=
r along-the-line disaster. It's also worth mentioning that they have the =
most technically enlightened management I've come across in years -- thes=
e people are by no means stupid or ignorant, it's just very important to =
recognise that commercial companies want to protect their investment abov=
e 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 myse=
lf on quite a few projects, so I know the issues on both sides of the div=

     / __            + / Sarah Thompson      **** /
    / (_  _  _ _ |_   /                        * /
   /  __)(_|| (_|| ) / sarah@telergy.com      * /
  / +               / http://findatlantis.com/ /