I've spent a few years in the trenches so here are a few
additional
points that come to mind.. (+1 for John and Rikki's points BTW).
-------------------------------------------------------------------
- what are the things to emphasise in building the case for
trying D? the most effective factors that persuade people are
not identical with the technically strongest reasons, because
often one needs to see it before one gets it.
Extremely fast compiler makes for a very 'fluid' work-flow.
The RDMD compiler wrapper turns D into very effective scripting
tool
Phobos standard library (subjectively) more useful for finance
than Boost +
C++
Painless C interop offers many integration possibilities
Syntax is familiar curly brackets so will be familiar to
C++/Java/.Net devs.
Built-in slice syntax for arrays increasingly important, given
that
the array of contiguous memory is the new 'go-to' structure for
cache-friendly algorithms.
Paraphrasing Walter + Andrei's collective bios into 28 words or
less
can impress on management the credibility/gravitas of the
language.
- what are the likely pitfalls in the early days?
Productivity will initially dip while everyone learns D, adapts
to
new tools etc., but will soon rebound to a higher level - so have
expectations + timescales firmly in place + account for the
initial
'dip' when making promises.
Providing adequate tooling for a D-based group in an IB
environment
may be challenging - Linux distros can be antiquated/bad, unlikely
you'll run as privileged user so a lot hinges on finding helpful
sysadmin(s), desktop OS may be locked down.
Entrenched IB C++ developers can be difficult to work with. They
tend to cover a spectrum of personality types and abilities. Many
are
reluctant to change + are not particularly incentivized to embark
on
'risky' projects. Many are simply intellectually incapable of
learning
a new language quickly. Best to find out quickly which variety
you're
dealing with + if they really buy into the idea. They can become
the
bane of your life if they don't.
- what are potential factors that might make D a bad choice in
this scenario? I would like to use D certainly - but it is of
course much more important that the client gets the best
result, however it is done.
Any issues that occur will (fairly or not) tend to be blamed on
having chosen a 'nonstandard' language, so there's an extra risk
associated. But if things go well you can look like a innovator
:-)
Integrating with the IB's existing systems may be tricky. If
you go
'off-piste' (so to speak), the onus will generally be on yourself
to
get things working; internal service/library providers may push
back against supporting an unconventional language. When
debugging a
problem you may find yourself obliged to produce a minimal
example in
a 'supported' language in order to be taken seriously :-(
Other than that I can't think of any pure technical reason why D
wouldn't be suitable :-)
-------------------------------------------------------------------
These are first few initial thoughts based on what you've said,
think there's not much detail can be supplied without knowing a
bit
more about the specifics of what you'll be looking to do. HTH +
Good
luck!
Cheers,
A.