[Tutor] Const on Python

Alan Gauld alan.gauld at btinternet.com
Fri Mar 7 10:36:43 CET 2008


"Andreas Kostyrka" <andreas at kostyrka.org> wrote
> Yes, the problem is, that these guys are anyway forced to have
> Python/Erlang developers on board, because of external opensource
> components they need to maintain.

And that one fact completely changes the economics and
thereby renders the lead position non viable.

> The problem here is that C++ is a strong mismatch for
> the job at hand.
>
> With strong mismatch I mean hear at least a magnitude
> more costs. During initial development and during maintenance.

I would be amazed at anuy project where a language made
an order of magnitude difference. The difference in moving
from assembler to VB is only about double (Thats the only
case wehere I have hard experrience). The problem is as
Fred Brooks stated in his essay "No Silver Bullet" that the
real costs in development are the intengibles - the time
spent thinking about theproblem/solution and dealing with people.
They far outweigh the time actually writing code. The average
project delivers around 20-100 lines of working code per
day. But you can type that in mechanically in half an hour
or less. The rest of the day is doing the stuff that really costs.

> Combined with the fact that the group cannot avoid
> learning Python andErlang, because external
> OSS projects used by them that they need to
> maintain and customize are written in Python & Erlang.

But this is the critical bt that was missing from the original
problem statement. If they use these languages anyway
then it makes sense to expand their code base. If these
were niche languages on a dying legacy then it makes
no sense to increase their use.

> But basically, your argument misses one important aspect:
>
> While most languages are equivalent in a theoretical sense ...
> Some languages can and do provide at least a magnitude
> of improvement compared to other languages.

I do dispute that and would be interested in any objective
figures that you have. All of the figures I've seen suggest the
total project cost impact of lanmguage choice is rarely
more than 10-20% of TCO

> Now add to the fact that software developement does
> not scale linearly, and the developer efficiency point
> becomes even more important.

But as projects get bigger language choice becomes
vanishingly small in the equation. Total developer cost in
any large projerct rarely exceeds 10% and of that the language
might make up 20% at most, so total impact of language
reduces to around 1-2% of TCO.

> If, by using some higher language a problem becomes
> so "easy" to solve that a single developer can deal with
> it, instead of say a 4 man team,than this is a critical aspect.

In that case I agree and at that small scale of project
then language choice is still a valid argument. And for
the kind of maintenance type feature fix we were discussing
the project is quite small. (Different if the language choice
requires a rewrite of the existing app of course!)

> It's kind like having a policy that all invoices must be in
> USD and are payed only in USD. Now two companies bid.

I'm sorry, I think I missed the connection in the analogy.

> (Philosophically, that's not even that bad a comparison, as learning
> Python is a rather minor thing for a reasonable good developer.

I totally agree, but unfortunately in the corporate world where
I work there are relatively few "good developers" - typically one
or two per team(around 6-10 people). Indeed only about half of
our developers are formally trained to University Engineering/Computer
Science type level. Many have craft certificvates from a trade school
and (even if just psychologicalluy) learning a new language is a
huge hurdle for them. They will insist on going ona weeks
training course etc. So yes, most "good" developers can pick up
Python in a couple of days from the web site, many corporate
programmers balk at such an idea. (This is one area where a
hobbyist turned pro is better than a journeyman programmer,
the hobbyist is much more likely to learn new skills out of
interests sake!)

> So no, I do not concur with you. I understand why it has
> some value, but you wouldn't argue that your company
> should use passenger cars to transport 100 tons of goods,
> just because all employee have a license to drive such,
> while truck drivers are slightly harder to come by, would
> you?

No, but I might suggest hiring some trailers or using an
external haulage company. It all depends on wheher its a
one-off job or a new line of work that we need to build skills.
So in this analogy we may need to buy a truck and start
training a number of staff to drive it, but thats expensive
so before doing so I'd look to see if it was one-off and at
the other options.

If in your example they need Python/Erlang anyway
that completely changes the economics.

Alan G. 




More information about the Tutor mailing list