I was thinking of re-visiting some thoughts on this subject that I collected a couple of months ago (intended for a published article that never appeared). Now a LinkedIn question on this subject has encouraged me to get it done.
(With many thanks to my ex-colleagues Brett Delle Grazie and Darren Smith for their input.)
Low or zero cost;
Typically open standards based, so interoperable;
Typically works on a wide range of hardware and chip architectures.
The standard open source support model is community-based, although more formal support can frequently be purchased. Because of its different mindset, the open source community can never provide a single 'butt to kick' - as Darren would say, 'communities are ethereal, companies are real'.
Some other things to consider:
This depends entirely on the open source product under consideration. For example, I was told several years ago that the Apache HTTP server was used by 65% of all public websites. Skills are widely available for the entire LAMP software stack (Linux, Apache, MySQL, PHP).
To quote Brett: 'Open source software, with its source being available and scrutinised by many, is quite often held in the highest regard. At the recent DEFCON hacking conference, obviously one of the world's more hostile networking environments, the Internet connection router and firewall systems were running the open source operating system OpenBSD.'
Customer attitude example:
Open source software typically supports multiple chip architectures, and we're beginning to see organisations taking real advantage of this. Oracle customers have historically run it on Windows or, more frequently, on a proprietary UNIX, but more and more of them are looking to Linux for the flexibility they need to optimise their Oracle availability, performance, and licensing. As an example, moving Oracle onto System z Linux can involve very considerable cost reduction.
It's noticeable and interesting how big software vendors now happily include Linux components in their enterprise offerings - that shows a real mind shift in my view.
Another angle, however, based on my personal experience on the Power platform, is that smaller vendors can be unable or unwilling to support their code running on non-Intel Linux.
Open source and open standards:
Tomcat is the reference implementation for the J2EE standard, but it may or may not be a good place to actually run your J2EE code; the needs of a business ('build, run, manage') don't necessarily map onto the thought processes either of a standards body or of an open source development community.