Sure, Postgres beats OracleDB, but Postgres doesn't integrate as well with Oracle Fusion and you need to migrate the code yourself. They're like SAP: they're big enough that you can make a career just out of configuring their software packages and make good money while doing so.
It's expensive and certainly not the best, but it's reasonably stable and has a huge company backing it. Oracle won't disappear any time soon and they're not as likely as Google or Microsoft to shut down their services within a few years notice.
In some countries, Oracle is also very good at doing what Google and Microsoft are doing to students. The Brazilian programmers I've spoken to specifically learned OracleDB when they were taught relational databases. They learned to program in Java, and I'm sure Oracle also sponsored other parts of the professional tooling they got to use for free. Microsoft, on the other hand, didn't seem to generous towards their educational facility (no free MS tooling for their schools like they offer over here). If all you know is Photoshop/Windows/Maya/OracleDB/iOS, you're going to look for jobs where you can use Photoshop/Windows/Maya/OracleDB/iOS, and employers looking for cheap juniors will need to offer Photoshop/Windows/Maya/OracleDB/iOS to make the best use of them.
Are we sure? I'm by no means a DBA, but DBA at our company (who is freaking smart btw) said if money wasn't an issue, he would actually go with OracleDB.
Again, I haven't worked with OracleDB at all, and my postgres knowledge is limited, but assuming without having experience with both systems isn't fair to either DBs IMO.
I work with engineers and technical managers with 25+ years of experience, building and maintaining serious business software 'you could run a country with' - people here build react web apps or do scientific research, or work for a SaaS provider - completely different view than building highly complex, regulated, mission critical software that supposed to run for decades and be supported at this level.
A more useful line of conversation might be discussing the vastly different requirements and environments (both physical and bureaucratic) that span our industry. Right now I'm a one man dev team slinging multiple products as fast as I can, trying to find revenue as the runway burns up. It would be silly to think everyone is in my same position with my same tradeoffs and I don't expect that to be particularly controversial.
If you have some good insight about when Oracle products are particularly well suited to the task I think many folks would love to read and discuss it. If you just want to act like you're the only one taking your job seriously then I suggest you just save your keystrokes and everybody's time.
My employer probably spends more money on databases for our learning management system than we do for one of our main customer facing apps with thousands of concurrent users. It’s literally a tally of training courses.
Postgres won't even let your force an execution plan and ignores hints (yes, there is an extension for that) so your optimized query can at some point just 10x in execution time and increase load in production when the plan changes.
In Oracle, I am told you can prioritize certain queries at certain time of day - it's crazy what it can do. Yes, it's slow and expensive. If you have money to throw at the problem, it's fast and it solves your problem, whatever the scale. Their Exadata cluster, for example, is wicked fast storage layer pre-filtering the data it sends to the database.
Of course, I despise their business practices - especially the abuse of customers via audits. As a database, it absolutely has its place regardless of lobbying, corruption, and whatever else they are doing.
Finally, an actual technical argument. I agree that PostgreSQL's absolute insistence on trusting the query optimiser to Do The Right Thing is weird and annoying (despite being sound general strategy). It even seems to contradict its own general spirit of being on the whole extremely customisable -- you can make your own data types, operators, indexing data structures, complete scripting language plugins... but not, ya know, a way to 100% guarantee that this here query will use this here execution plan.
Oracle have a relatively big presence here and there’s a comfortable “mates” system that runs the Australia (soft bribery).
I was taught C# in uni for very similar reasons except the entire uni ran on Windows and the Microsoft platform, which made doing assignments on Linux rather inconvenient. With the status of dotnet core, I'd say Java finally has a good competitor when it comes to teaching OOP languages.
And after a few years you find yourself in a situation when you already paid for Oracle so much, integrated it so deeply, so switching to any alternative is a massive pain and in most cases it’s safer and easier to keep paying Oracle.
COBOL is in the same category. When invented, it was the absolute easiest programming language to learn and use, so of course it gained popularity.
It then turned out to be rather good at what it did, along with running on hardware that "never fails", so most places didn't even think about replacing it until sometime in the 90s.
Also keep in mind that the reason companies are migrating away from COBOL is not due to the language as much as due to young people not taking an interest in COBOL and Mainframes, making it hard to recruit new talent.
Even then, a migration away from a typical mainframe is a huge task. In most cases you're talking 50-60 years of "legacy" (still running, still working, still updated) code, and replacing a system that has evolved for half a century is not an easy undertaking, at least not if you plan on getting it 100% right the first time.
It is more like young people not wanting to:
- throw their careers out of the window by pigeonholing themselves into zombieware tech
- experience high levels of stress trying to debug code older than their parents, writing code that can't be unit tested and pushing said code to production
Isn't that just "move fast" these days?
The only language that comes even remotely close is Java, in terms of job guarantee.
I doubt it's more stressful. Debuggers absolutely do exist, as do modern desktop editors with step by step debugging, but you will have to learn at least a little bit about memory management, SQL, and other "nasty relics".
It appears to be a part of the skillset that is no longer taught. I've worked in the embedded industry for a decade, and we usually had little more than trace lines over a serial cable to debug our code, and yet we somehow made it work.
I've long since realized that being a skilled programmer has very little to do with what language(s) you code in, and more about your understanding of the problem space. Yes, you can be a star in Advent of Code if you know every nook and cranny of your chosen (esoteric) programming language, but often people that understands the business side of things will fare much better.
And yes, I've also been young once, and I've programmed in just about every programming language that has been "modern" or "old" in the past 30-40 years (I've even written software in APL), and I've been good at it. I also absolutely despised the thought of programming in COBOL, but in the end, programming is about telling the computer what to do, and the what is the important part, not the how.
Having only fleeting professional experience with COBOL during a summer my view of it is that it is a mix of dataanalyst job and programming. Where the programming is horrible and the report making is ok though archaic. As long as you modify processes already available it is not so bad, but the developer experience was horrible.
With all that said I actually liked ideas in COBOL but it is an extremely niche language that does not serve you at all in the real world.
But yeah, if you're looking to code up a progressive web app or next blockbuster MMORPG, I wouldn't recommend COBOL.
It's all a matter of age and maturity. Nobody starting an airline, or financial company, or "hardcore data processing" today even bothers considering a mainframe or COBOL.
I wouldn't portray Cobol to be some sort of magic "hardcore" pixie dust for anything.
This seems like an application area in desperate need of applied A.I.: Analyze a codebase and replicate it (for the first few iterations at least) in the new target language.
Isn't there research on this ? Or am I full of balonie ?
And let's be honest, a lot of folks in IT aren't exactly top performers and don't seem to care all that much. It's really the developers you find on forums like this who are genuinely passionate. You're not likely to bump into the people actually buying those big Oracle or IBM systems around here though :)
Theory: A society collectivey buys Oracle when they no longer view armed revolution as acceptable.
Luckily more and more customers switched to Postgres and I no longer have to deal with it.