7

Language Choices of Large Corporations

Having spent almost 12 years working in the financial sector, at both large and small companies, my overriding impression, with the exception of Goldman Sachs, is that fragmentation (or, putting a more positive spin on things, diversity) is the name of the game.

Within a single company, we might see C, C++, Smalltalk, Java, J++, Perl, C# and more. Even now, I hear about large swings towards using languages which have been around for 30 years but which are not widespread within the company (i.e. avoidable fragmentation; if the language wasn't appropriate 5 years ago, why now?)

I guess I'm interested by

  • Are large, technology-focused companies outside the financial sector as fragmented as those within it?
  • Why has this fragmentation happened?
  • Are software companies as fragmented?

The position of Java

My impression is that Java largely “won” the first decade of this century in the financial sector, which (probably) saw the biggest historical expansion of systems. By "won", I simply mean that it was the most popular choice for new systems during this decade.

I'd be grateful to be pointed towards any evidence as to these points, and especially sector-comparisons.

PS. My reasons for asking this question are that I will be giving a talk to students in London about building financial IT systems. I would like to be able to place my experiences of financial IT in a wider context, and I do not want to make sweeping generalizations.

oxbow_lakes
  • 1,227
  • 8
  • 15
  • Interesting note about "avoidable fragmentation" - the language may not have been appropriate in the past due to the problem you had to solve, vs. the one you have now. And/or the language itself may have matured/changed in the intervening time. – sdg Jan 23 '12 at 15:19
  • Hi oxbow_lakes, your question, while interesting, is just straddling the [line of constructiveness for the Stack Exchange style of Q&A](http://programmers.stackexchange.com/faq#dontask): we're not a discussion forum, so open-ended discussion topics and opining aren't on-topic here. I've revised your question somewhat to focus on the part that calls for specific experiences. –  Jan 23 '12 at 21:18
  • 2
    Since when was I asking for a "discussion"? I asked two specific questions: 1. whether financial IT was more fragmented in people's experience. 2. Whether Java was as prevalent in the sector as I thought it was. I also asked for **specific evidence** as to whether this was the case. – oxbow_lakes Jan 24 '12 at 07:51
  • 1
    @Mark - I've rolled back your edit somewhat and re-phrased the second part. I've also given my reasons for asking the question, which are genuine. – oxbow_lakes Jan 24 '12 at 07:59
  • 1
    Hi oxbow_lakes, I'm sorry, but I have no choice but to close this then: this is not a discussion forum for discussing your opinions about Java. –  Jan 24 '12 at 08:17
  • 1
    @Mark - could you please point out exactly where I request a "discussion" for my "opinions" about Java? I asked for evidence one way or the other - frankly, I think this is an abuse of your position as a moderator. The question (either the original or the latest version) do not contravene any of the guidelines which you linked to – oxbow_lakes Jan 24 '12 at 10:09
  • 1
    I've just noticed that six out of the top ten voted questions on this site have been closed. Well done moderators! – oxbow_lakes Jan 24 '12 at 10:11
  • 1
    @oxbow_lakes From [the FAQ](http://programmers.stackexchange.com/faq#dontask): "To prevent your question from being flagged and possibly removed, avoid asking subjective questions where … there is no actual problem to be solved: 'I’m curious if other people feel like I do.'" The revisions done to your question were to remove your feelings about Java and calls for people to confirm or deny them so that the constructive parts of your question could be answered: as you insist that your impressions remain, this question does not meet our quality guidelines and does not belong here. –  Jan 24 '12 at 10:26
  • The problem to be solved is that of pointing me to evidence which would tell me whether Java was a "dominant" language during the decade in question, possibly with a sector breakdown. Exactly where do I talk about my "feelings"? You make it sound as if the question was posed by Jane Austen – oxbow_lakes Jan 24 '12 at 10:39
  • 2
    Your question is very broad and actually contains several sub questions. It would help if you could focus the question a bit more. In general Stack Exchange doesn't work well with this type of question and while some might get good answers, most don't. – ChrisF Jan 24 '12 at 11:08
  • 1
    To answer your charge of abusing his moderator position - Mark was reacting to flags raised on your question by other members of the community. – ChrisF Jan 24 '12 at 11:10
  • 1
    @ChrisF - I've been on SO for over 3 years now; it seems like a perfectly legitimate question to me. And to the 7 or more others who upvoted it as well. What I'm finding annoying is the fact that the accusations leveled against the question bear no merit referring, as they do, to statements I have not made. – oxbow_lakes Jan 24 '12 at 15:13

6 Answers6

15

The financial sector is incredibly fragmented software-wise simply because of the cannibalistic nature of those businesses. These businesses often buy and sell full companies, divisions, product lines, et al, on a business level to maximize their profit. In the process, they end up having to provide the tools that manage that product on their systems, and so a company with no Java might inherit a new Java system and have to incorporate it. Extrapolate that paradigm out 20 years, and you have a group of companies who have systems in just about every form factor without the resources to convert them all over to a common system.

Software companies do have some fragmentation but it's less severe because the business decisions there are driven more by the business of technology. So when software company X purchases software company Y, it's usually within the same platform. They might use different languages, but often that entity can remain intact rather than having to integrate into the other product areas or the company will attempt to take the the time/resources to convert the newly acquired pieces into their existing infrastructure. I've seen deals fall through simply because the people leading the business understood that they couldn't support the framework necessary or afford to convert.

I wouldn't say Java won even by a little. There are still too many languages out there that have legacy dominance. Even in the financial sector areas that I've worked personally I didn't see any one dominant technology base. I did, however, see a lot of arguments.

Domenic
  • 674
  • 7
  • 15
Joel Etherton
  • 11,674
  • 6
  • 45
  • 55
  • 1
    +1 - as industries mature (the financial industry is very old but there are companies doing new things) they get consolidated. There's a whole line of 3rd party apps in .NET for the US lending industry. – JeffO Jan 23 '12 at 13:42
  • 2
    +1 Great answer! Most of the major banks, especially the consumer oriented ones are like Frankenstein's Monster as they buy, merge and absorb their way to the pinnacle. The biggest IT challenge for these organizations is integrating these disparate systems. – maple_shaft Jan 23 '12 at 13:44
3

Every sector is fragmented. The choice of language has very little to do with the industry. It can depend on the platform to be used, the libraries available, and when it was started.

Back in the 1980's , or even back in the 70's the DOD wanted everybody to use ADA. Despite being on DOD contracts for more than 20 years I never saw ADA. We used to use FORTRAN or C, then we moved to C++; now we use C# and ASP. For one customer everything was delivered in VBA because the approval process was faster for spreadsheets compared to a DLL.

In the past year I have used python, php, C++, plus specialized scripting languages for shrink wrapped software. In 25 years of programming I have used almost as many languages as years on the job.

mhoran_psprep
  • 2,328
  • 2
  • 16
  • 14
3

I see the same thing on the telecom business, and it doesn't surprise me at all. Some reasons for that:

  • Merges and acquisitions potentially increase the number of languages.
  • IT systems developed outside IT (and then turned to IT when maintenance becomes a burden) are developed in whatever language strikes the fancy of the people writing them.
  • IT trends push the adoption of new languages, and then die or gets replaced with a new trend before migration from old languages is complete.
  • Critical projects with tight time constraints often have freedom to choose the "most adequate language" -- whatever is striking the fancy of the top notch programmers assigned to them.
  • IT evolution of programming happens more often with the creation of new languages than with changes to old ones -- and for good reason. Backward compatibility is strong requirement, which seriously constrains what changes are possible.
Daniel C. Sobral
  • 3,541
  • 1
  • 24
  • 21
2

In short from what I've seen (I've worked in a fairly wide range of sectors).

  1. Yes, it's just as fragmented
  2. A whole variety of reasons. Languages are Fads/Fashions like anything else. Vendors push a particular type of technology. Sometimes gasp a technology is genuinely chosen because its the correct one for a particular problem domain. Sometimes its because there are developer resources available for a particular language... The list goes on :-)
  3. I've seen them try to standardise, for example Google was heavily a Python and Java shop (+ web front end stack inc GWT) but now they also have Go, Dart, Android.... Oracle I think is primarily a C/C++ and increasingly Java shop (no surprise there), I think their aim is to try an Javaise as much as possible (although since Java's integration with the O/S isn't tight, I think their DB stuff will stay off it for the foreseeable future).
Martijn Verburg
  • 22,006
  • 1
  • 49
  • 81
2

Are large, technology-focused companies outside the financial sector as fragmented as those within it?

Yes, most of them are. I'd say, some even more.

Why has this fragmentation happened?

First of all, big companies have many teams, not all opt for the same solutions, as they remain to some degree independent, some originally were other company which was taken over etc. Then 3rd party tools come in. They also use variety of languages/frameworks, often completely different than the ones used internally in the company.

Are software companies as fragmented?

Company creating software are less dependent on having variety of 3rd party software, which would use variety of languages. However, if the company creates software for various platforms, for example mobile platforms, you'll use Java for Android, Objective-C for iOS, C# for WP, something else for your backend etc. Big enough company will have mobile clients, web clients, Win and Mac clients and back-end technologies using 3-5 different languages.

vartec
  • 20,760
  • 1
  • 52
  • 98
1

The name of the game in any programming situation is creating a robust application so solve a particular problem. Different languages provide different features, frameworks, and thus different ideal uses.

Where I work, our main language is in fact Java, which as you say is the top language for programming these days. Despite our being a "Java Shop", on a given day you may work with two or three different languages.

To list, I'm my 8 months at my current place of work, I have worked in Java, JSP, PHP, Python, Javascript, bash scripting, and even worked on very large ANT scripts. In addition, I know of or have seen Perl, C, and Groovy. Each of these languages generally provides a feature-set that another lacks, which would ideally be why the language is chosen for use.