Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

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.

share|improve this question
1  
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 7: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 7: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. –  user8 Jan 24 '12 at 8:17
1  
@oxbow_lakes From the FAQ: "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. –  user8 Jan 24 '12 at 10:26
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
show 7 more comments

closed as not constructive by Mark Trapp Jan 24 '12 at 8:15

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

6 Answers

up vote 3 down vote accepted

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.
share|improve this answer
add comment

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.

share|improve this answer
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
add comment

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).
share|improve this answer
    
By software companies, I meant companies where the primary product is software. I guess that you could argue it's a meaningless distinction - you could say that "Google sells search" or "Oracle sells storage"; they just happen to deliver this via a piece of software. –  oxbow_lakes Jan 23 '12 at 13:03
    
Changing my answer for the 3rd point –  Martijn Verburg Jan 23 '12 at 15:32
1  
Err.. Except oracle does sell software. –  user606723 Jan 23 '12 at 15:34
add comment

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.

share|improve this answer
add comment

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.

share|improve this answer
add comment

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.

share|improve this answer
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.