Much as I dislike this as a developer, this is a smart business strategy for Oracle. Let's face it: at the companies that use Oracle, the developers aren't the one making the call as to what database to use. That's the call of much higher-ups.
About the only solution I can suggest is to avoid working for such companies, but I'm be preaching to the choir to say that.
Maybe. Maybe not. I've had nothing but bad experiences with Oracle in several jobs now and will emphatically advise against it at every opportunity. Postgres may not be a drop-in replacement for every Oracle use case but for those that are I'll recommend it first any day of the week. Oracle in a job description is a big red flag for me.
Because a properly installed and maintained Oracle is pretty reliable and straightforward to use. If you even can run your application on Postgres then you wasted your money buying Oracle; you aren't using it for what it's for[1].
[1] I am aware that convincing people that they might need to in future is key to Oracle's business model, but that's beside the point.
Technically. In two different jobs now I've seen a small army of consultants unable to keep an Oracle cluster running as reliably as a single Postgres instance, despite jaw-dropping license fees. It's also pretty painful to use, from simple command-line interactions to dumping & restoring data to interfacing with any code that isn't "enterprise". Blob performance was also astonishingly bad.
I guess you're stuck with it if you need to run Oracle financials or Peoplesoft or something like that but one of my professional goals is to never work for another company big or dumb enough to use either.
That says more about consultants than it does about Oracle ;-)
Oracle (the database) in the hands of anyone basically competent is easily capable of 5-9s reliability. Not that I'm saying Postgres isn't mind. I'm just saying, use the right tool for the job (and hire the right people).
I find DataPump very easy to use, and very fast, it's I/O bound even on serious storage arrays. YMMV. SQL*Plus is definitely showing its age I agree.
Most obviously, if you want to run one of Oracle's layered applications (e.g supply chain management or whatever). Sure you probably could beat it into running on Postgres but why would you?
Oracle (the database) is meant to be the integration point for Oracle (everything else). If you aren't running any of Oracle's other products, then it boils down to a pure technical decision - do you need feature X? Is it cheaper to buy it or build it? For example do you use OpenFiler or buy VVM or use ASM that comes with Oracle since you need a database anyway? Or maybe you have exotic spatial data needs. Or you want virtual private database/label security (http://wiki.postgresql.org/wiki/RLS - Oracle has had this for years, the Postgres guys are still talking about it, the MySQL camp don't even know that there is such a thing).
Now, I am a long-time Oracle user, and even I say, unless you know and can say specifically why you need Oracle, then you should use Postgres or SAP/DB (or in place of Oracle XE, maybe even SQLite). But if you do need it, then it's Oracle or DB/2, choose your poison.
Well, despite some promising open-source efforts in the area (PostGIS being most prominent) Oracle is still tops when it comes to handling geo-spatial data. Unfortunate, but that's the way it is.
Oracle is like the C++ of databases; Postgres is like the C#. Oracle is ugly and complex, but it can be made to do amazing things that no other RDBMS can do. Postgres is really fast out of the box for 90% of most use-cases, but it still can't do the things Oracle can.
I was actually thinking of exactly this analogy earlier. It holds also in that a lot of people use C++ because they think they need it but they could in fact use something simpler.
It's only really smart if you consider the two approaches exclusive to each other. Personally, I don't see a reason why you can't pander to both managers and developers. Yes, you've got some added expenses, but certainly less than most business-centric marketing campaigns or new yachts for Larry.
Having said that, I don't think Oracle was totally neglecting that area. They had a few decent free tools available (SQLDeveloper, JDeveloper, trial DB versions) and while their articles didn't come close to the sheer amount IBM offered, there was enough information out there.
They could've marketed that better, though. But in that regard, they're certainly not much worse than a lot of other enterprise companies. You can't measure everything by the way Microsoft and Apple are doing it.
That's true. The higher-ups can say which database to use and hire a bunch of people to set it up. But if the developers ignore them, they have no way of actually determining this. (Which is what's so great about mandates from Higher Up.)
I worked at a place that had a huge Oracle RAC license. We ran non-mission-critical data collection apps on it, but the app which dispensed drugs in real-time, all over the world, not only ran Postgres, but 90% of the business logic was in DB functions.
Because there are people who consider themselves technical writers. Either they do it or someone from the core postgresql team who has the credibility.
I didn't. It wasn't subversive, like the parent comment. It just worked out that way because of technology acquisitions. Customers wanted to hear their data was "on Oracle."
My take is that the overhead of maintaining and using Oracle means that you have to cut resources somewhere else. I'm pretty sure a competent DBA and developers can ensure atomicity and integrity using Postgres (instead of Oracle), and have a lot of time left over to create more features in the application.
Don't get me wrong - Postgres is awesome and I would happily use it for any project. I'm not sure Postgres is easier to manage than Oracle and places any less maintenance overhead, but YMMV.
Its just that RAC is a special technology with no equivalent on other DBs. It is usually placed where you need load balancing on the DB level. It normally has very high availability that is a good fit for mission critical DBs. I hate seeing good technology wasted, but you are right that if Postgres is already there and works well, there is no point in moving anywhere.
Sometimes, that conspiracy is what keeps the business running. Whithout it, there would be no jobs.
Not that this is the case everywhere and everytime, but if technical decisions were left solely in the hands of people that lack technical skills, the situation would be even worse that it is now, with all the "enterprise software" floating around and causing trouble directly proportional to their cost.
> The central relationship between Oracle and its customers is a business relationship ... The concerns of developers are just not material at the level of that conversation
Sadly, this is why Oracle could buy Sun and not the other way around.
I think Oracle is oriented toward selling to businesses that use technology the way tech startups use office furniture.
We don't want to take apart our office furniture and make it work more efficiently, or modify it and resell it to other businesses as part of a breakthrough interior decorating package. We want to sit on it and put our laptops on it and use it to get the other "real" work done.
So if you're in the road construction business and you need a HR system or a procurement system or whatever, you call some pricey consultants who call Oracle and you tell your accounting people to explain the problem and ask them how much its going to cost and you tell your IT department and accounting to spec it and do it and you fire them if it's not all done in six months and go back to your real work which is managing your highway building project out in Tallahassee.
Having an engineering culture and fostering developer mindshare ... hasn't been a bad business choice for companies like Google or Apple or Microsoft (at least in their early days).
And last time I checked, all 3 companies mentioned are bigger in market cap then Oracle.
What strikes me is ... how the fuck did Jonathan Schwartz allow the selling of Sun to a company who's culture is so different?
To the question of why it was sold to a company with such a vastly different culture.
Because it does not matter to the shareholders what kind of culture Oracle has. The only metric that mattered was how much money Oracle was willing to pay for Sun vs another bidder.
Using any other criteria would just launch a nasty shareholder lawsuit against Sun's soon to be departed management...
^ More hackers need to understand this. When you go pubic with an IPO, the shareholders are in charge. The Board and CEO are elected on behalf of those shareholders. The Board and CEO's function is to maximize shareholder value. If a CEO doesn't consider an extremely generous bid then he is breaking his fiduciary duty to those shareholders, and will be out of a job.
How did Oracle maximize their value by buying Sun? Sun has Solaris, Java, and VirtualBox. All are free. When Oracle took over, everyone that worked for Sun quit.
So Oracle paid a lot of money for a bunch of free stuff. Why?
Recent history suggests for Sun's patents, not their software.
Oracle has claimed they bought Sun for their hardware (e.g. so they could do vertical integration selling like IBM), but that remains to be seen if it is true or not.
Oracle used Sun's hardware to build the Exadata - which they very aggressively sell as a data warehouse solution. Competing with Netezza, Teradata, Greenplum and the likes.
> What strikes me is ... how the fuck did Jonathan Schwartz allow the selling of Sun to a company who's culture is so different?
What makes you think he had a choice. The CEO isn't the only one, who gets to decide where a company is sold to. Infact his/her vote often counts for very little.
That's true, but you have to realize that Google, Apple and Microsoft all have to work much harder than Oracle to make their profits. Selling directly to the public is like that.
Oracle, on the other hands, sells only to other businesses. At this point, their reputation for being "enterprise grade" is so well established, they could probably sit still for a decade and still retain a fair amount of their customers. I don't think Microsoft, Apple, or Google could say the same for their businesses. Well, maybe Microsoft could, but certainly not the other two.
On a tangential note, if you think The Story of O is about an abusive relationship, I'd say you haven't read the book or watched the movie: (i) O willingly enters the relationship (ordeal may be a better word here) and (ii) it's not your usual S&M or Belle de Jour story either, because she also gains power over her lover, e.g. see the last scene in the movie.
So, the analogy may be more apt than the crude master-slave relationship that people have commented here: many companies willingly choose Oracle, knowing full well its tactics and that they will be locked in.
Bluntly, I assume he's implying it's an appropriate parallel to the relationship between Oracle and its customers, as described in the post. (I may be reading into it too much.)
Interesting - I first thought of The Wonderful O [1], a children's novel. A wholly different kind of evil there -- the villain would certainly also hate Open sOurce sOftware!
Maybe I don't understand the concept of "developer mindshare" well enough but it seems to me that Oracle does engage with the user community and not just the business community.
They do this through user conferences such as Collaborate and ODTUG (which is developer specific) - those conferences are much more technical in nature than the marketing oriented OpenWorld.
Oracle also have the OTN and its ACE program for engaging with the technology people, including forums, beta programs, code sharing site, etc.
And of course, Oracle supports the local user groups which are also technology oriented - many of those user groups are highly critical of many Oracle decisions (and you should have heard the noise when Oracle Support site switched to flash) - but Oracle still supports them because they know that an active user community is essential.
Well of course. I don't doubt that Oracle is aware of their developers' existence and gives them some form of support. But how much of Oracle's time and money goes to developer support compared to companies like Microsoft? Much as I dislike Microsoft, I have to give them credit for engaging their developer community.
I'm not sure how to answer that. How do you know how much of Microsoft's time and money goes to developer support? How do you know that Oracle does any less? I don't have any real hard numbers.
Microsoft MSDN for developer support and Oracle has OTN. Both companies have developer oriented conferences in addition to business conferences. Both companies employ evangalists that work with startups to help them adopt their technologies. Where do you see the difference?
Sun was a phenomenally successful business - but not at selling software. Software was their way to sell hardware.
A few years back, I wanted to buy stock in a software company, because I was in the software business, knew something about it, and owning stock would result in me learning more, which would benefit me doubly. Out of Sun and Adobe, and choose Sun (still love java); but after I placed the order, I realized that Sun wasn't a software company. It didn't draw significant revenue from software. I tried to change the order to Adobe, but it was too late.
I sold it years later, for half. I don't regret the loss (it's the stockmarket after all), but I do regret mistaking Sun for a software company.
It has been a while (decade?) since I went to OOW. But as I recall I had no trouble finding technical sessions, if not at a level to engage Tim Bray. Many were about making your database run faster & better; some about using Oracle's favored tools of the moment (BC4J, possibly still some client-server stuff).
How is this a bad thing? It's all about building the best applications for your customers.
In the enterprise space the customer is other businesses. Apple does essentially the same thing in the consumer space. The user is more important than the developer.
This is a good thing.
Imagine if airlines treated their relationship with the flier as the most important. Imagine if politicians treated their relationship with constituents as most important.
If you have experience with your startup partnering (or trying to partner) with Oracle, could you please contact me? Particularly, if Oracle added your product to their price lists (or if you were trying to make this happen).
About the only solution I can suggest is to avoid working for such companies, but I'm be preaching to the choir to say that.