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.

Reading about various techie sites, there is often a feeling that Microsoft Languages / Oracle etc. are considered "enterprise ready", while there seems to be more doubt about languages such as Python or Ruby.

Why is this?

Do Microsoft languages actually have less security holes or not?

share|improve this question

closed as not constructive by gnat, GrandmasterB, GlenH7, Glenn Nelson, Thomas Owens Feb 7 '13 at 18:21

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.

7  
I think it's just the modern equivalent of "no one ever got fired for choosing IBM." –  Steven Burnap Feb 7 '13 at 17:11
1  
I didn't think anyone considered VB enterprisey :P –  Rig Feb 7 '13 at 17:35
    
Who are these people supposedly considering this to be the case? Visit some linux sites if you want the opposing view. –  GrandmasterB Feb 7 '13 at 17:40
    
You got "a feeling" from "various techie sites"? I believe the correct answer is "This is not specific enough to address." Voting to close. –  user16764 Feb 7 '13 at 17:43
    
"Enterprise ready" is more about availability of staff, support, training, etc., than technical features. "Security holes" are more likely to be a consideration in products and frameworks than languages, since of course you can create your own security holes in any language. –  Carson63000 Feb 7 '13 at 21:35
add comment

3 Answers

up vote 5 down vote accepted

Some languages are designed to limit the programmer's ability to shoot himself in the foot. Traditional language concepts perceived (in my experience) to reduce risk are:

  • Strong, static type systems
  • Object-Orientation
  • Compilation

There's also the fact that Microsoft/Oracle/etc often provide services other than the programming language. For example, if the company uses an Oracle database, then Java might appear as a less risky solution.

Last but not least, these companies offer corporate support not necessarily available for other technology. Buying into the whole Azure thing as a company guarantees you support and you'll probably be using a .NET language to build on top of the platform.

Then again, it might just be because managers and other non-techies perceive other companies as more "serious", just like companies prefer to pay for products that have free, superior alternatives (think Perforce vs Git).

share|improve this answer
2  
+1, And don't forget vendor support contracts! Who provides support contracts for Python (not being sarcastic - I really do wonder if anyone provides vendor support for enterprise Python web application platforms)? –  FrustratedWithFormsDesigner Feb 7 '13 at 16:52
    
@FrustratedWithFormsDesigner - I'm sure lots of companies provide enterprise python support. I don't know who provides VB support now that MSFT have discontinued it –  Martin Beckett Feb 7 '13 at 17:00
    
@MartinBeckett: I thought the OP meant "Visual Basic" as in VB .NET, not VB 6 (or older). –  FrustratedWithFormsDesigner Feb 7 '13 at 17:01
    
@FrustratedWithFormsDesigner, yes wasn't trying to start a FOSS holy war! We had an enterprise system started in the mid-90s that used VMS rather than UNIX because we need long term (20year) support ! –  Martin Beckett Feb 7 '13 at 17:10
add comment

Well, I worked in an enterprise that used Python for a lot of thing, and one of my friend wrote Ruby in a gool-ol Insurance companies, so I don't know how much you can really say that they are not enterprise ready, but it's true that Java/C# are more used for the "big stuff".

What it mostly come down to is support. When you choose Microsoft and Oracle, you can call them at midnight on Christmas Eve and yell at them because its doesn't work, and they will fix your problem. For those mission critical applications, its very, very important to be able to do that.

They also sell more integrated solutions that are pretty much guaranteed to work together. If you take C# with SQL Server and Windows Server, they integrate pretty tightly. Same thing with Java/Oracle or IBM on Power with DB2. Those solution have complete tool to manage them that fit with what is existing (user are managed trough Active Directory, it can work accross continents, completely localised in swhahili, etc). If the organization grow and need to integrate a new component, its usually pretty easy to do so with those big enterprise solutions.

In the end, its not really the language itself, it's wether their is a big company behing that can sell tool, solution and support.

share|improve this answer
add comment

Mostly it's because they cost money. When you build a product to make money, you have a tendency to respond to the needs of the people with the money. Enterprises like being able to throw money at a problem to get it solved.

Conversely, if you are a large business and wanted to get a feature put into free software, you can't just pay a company like Microsoft to put it in. You generally must hire in-house expertise to implement it, or convince the community on the merits. That provides more flexibility at the expense of requiring more of a partner relationship than a client relationship with your software provider.

In other words, the business factors are larger than the technical factors, but that doesn't mean the technical factors aren't influenced. Enterprise software tends to be delivered as integrated turnkey solutions from tools through deployment. Free software tends to follow a some assembly required approach.

share|improve this answer
add comment

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