If one had Damian AND Linus working together, my position is that their disparate skills would result in a better development than a team of just clones of one of them. I am certain there is much they both could learn from one another.
Oh, sure. Linus might learn from Damian and Damian might learn from Linus. But if I'm paying them high salaries to write code, than they should write code, and not have to waste expensive time in learning another language. I might be better off sacking Linus and hiring Jarkko or Sarathy.
But almost all companies don't have that luxery. They have to deal with programmers that know one, or a few related, languages well. Given the general attitude of Perl programmers towards Java, and the general attitude of non-Perl programmers towards Perl, programmers that know both languages well, and want to program in both languages, are much harder to find than programmers able and willing to program in one language. From a hiring aspect, focussing on one language is a win for a company.
Let me phrase it this way. If you buy groceries, how many supermarkets do you visit? How much should your savings be for you to consider visiting two supermarkets, getting products from both supermarkets?
Just look at a typical (*nix) developers day - shell, Make, ant, java, perl, grep, CVS, SQL, XML - many specific tools/solutions/applications that result in a powerful synergy.
That's not a sensible comparison. Make, ant, grep, CVS, SQL, XML are all special purpose tools. It will be pretty hard to use grep for tasks that are commonly done by make or ant. XML isn't a viable replacement for CVS. Perl and Java on the other hand are general purpose languages.
I still stand by my assertion this is a weak argument - to me it is patently obvious that Perl is infinitely better at many things than Java, so why one would be so bloody-minded as to force everyone to do those things in a much more difficult way, and justify it by saying having one language is a better use of resource, seems completely bizarre. Why anyone would think that taking 10 hours to write something in Java, that could be done in 3 in Perl, is a good use of resources is beyond me.
Heh, you don't have to convince me that Perl is a better choice than Java, given the right programmers. However, a preference of Perl over Java doesn't imply supporting both is better for the company than focussing on just one. Say, the "thing" that takes 10 hours to write in Java and 3 in Perl is part of the general toolkit. If you have part of your programs in Java, and part of your programs in Perl, you need 13 hours of writing it, because it needs to be written in both Perl and Java (and that's not counting any overhead in making sure both the Java and the Perl solution work identically - and that future versions are kept in sync).
Abigail
| [reply] |
There's also the overhead of supporting/integrating multiple developer/build/test environments to add to the things Abigail has already mentioned.
Depending on the people, project and company the overheads of supporting a heterogeneous environment are sometimes not worth the effort.
One of the larger development mistakes I made was selecting Perl as part of a web-based application when the rest of the development team was using C++. While Perl was definitely the better choice technically for the particular problem I was solving, it was definitely not the right choice in the wider context of the organisation as a whole since it added an extra layer of overhead. It eventually got re-implemented in C++ and this was the right decision to make IMO.
| [reply] |