I seriously doubt Amazon would risk mail fraud (and a bevy of other federal charges) over this. If they get caught in a criminal case (not civil), they could be completely shut down.
I once saw some article about them writing their own rich chat client for their internal tooling because their existing solution wouldn't "uber scale" - whatever that meant.
Soon Java will become the new PERL with 20 ways to do the same thing & developers will have to spend hours on Google trying to figure out what that wierd bit of syntax actually does.
I'll tell you why - try to update one column in 100GB worth of row data.
Postgress makes a copy of _every_ row and you need 100GB of extra space on the hard-drive until you commit the transaction. Now extrapolate to a 1TB table that needs updating.
Oracle has a way of doing this w/o copying the entire row.
I use DuckDuckGo for search & Twitter for social media. I find discovering new things/People on Twitter more interesting than the sclerotic family/friends stuff on Facebook.
I switched to DuckDuckGo - it isn’t as good as google, but it is 90% of what I need. For the rest I have to slightly tweak my search criteria - but that is not a bad thing because it forces me to use my little gray cells.
YouTube and Gmail substitutes and then I am Google free.
I got tired of being a cog in the Amazon machine and bought some merchandise from Jet.com last week. It was a sub-optimal experience.
This is what I bought:
-> $4.22 Q-tips Cotton Swabs 500 ct
-> $16.32 iPhone 5/5s, iPhone SE, iPod Touch 5th/6th Gen Adidas Nylon Armband Case - Sports armband for adidas miCoach training system
-> $6.95 iBungee Stretch Laces (26-Inch, Black Laces with Black Race Lock)
-> $4.79 4 Philips AA Zinc Chloride Double A Batteries R6 1.5V Super Heavy Duty Battery
-> $8.10 Monoprice Apple MFi Certified Lightning to USB Charge & Sync Cable, 3ft White
-> $89.96 ASICS Men's GEL-Kayano 23 Running Shoes T646N
The order for the phone arm-band was cancelled and everything else shipped _separately_ - I Literally got 5 different packages in the mail - over a week with different items.
Had I gone with Amazon, I would have received - one, maybe two packages with everything. Infact, Jet probably lost money on most of the items they shipped to me.
Us techies sometimes tend to forget the real world (in this case customer experience) while playing with cool technology.
To me, an old fashioned optimizer running on a 15 year old AMD Opteron that delivers the appropriate real-world result is worth more than that F# and CUDA thing that seems to have over-optimized the problem to create a bad customer experience (getting 5 packages in a haphazard way).
Once you get out of toy frameworks that won't scale, refactor or "age well" - you end up with a JEE style framework.
It's like that famous cliche about unix - "Those who do not understand Unix are condemned to reinvent it, poorly."
You are right about older versions of JEE being a pain in the ass to use - but that critique hasn't been valid since 2004 when EJB 3.0 was released - 13 years ago. JSF is really slick for front end development.
But even prior to the release of EJB 3, can you name any EJB equivalent (from the pain in the ass xml era) that is still used, supported and actively developed?
We literally still have 15 year old EJB's - that "just work". People just inject them into the new EJB's they write and they work!
You might think rewriting services to keep up with the latest and greatest fad is a productive use of your developers time - but I prefer to have my developers focus on solving new - revenue generating problems, with building blocks that have already been written instead of constantly reinventing the wheel.
We have a mix of American developers (junior, mid-level and senior), offshore developers in 6 countries, and H1-B developers - all of whom are paid at or above market rate for their work (150K+ for the State side workers). I don't think any one of them considers themselves "disadvantaged" in any way because of the technology stack.
They understand that they have problems to solve and JEE are a tool to solve their problems and I am sure they grateful we aren't making them re-write 15 year old code to keep up with the latest fad.
To me the beauty of JEE on the backend is:
1. Scalability - the application server creates as many instances as needed - until it hits either the JVM limit or the machine limit.
2. Declarative transaction management so I can write reusable code that interacts with the database without having to worry about transaction boundaries.
3. Excellent and portable Object Relationship Mapping (Java Persistence Architecture).
On the front end, with JSF webpages can be developed very quickly.
There are a lot of other things you get with JEE like Asynchronous Messaging (JMS) - built in.
There is a reason mature organizations worth billions of dollars and with highly skilled architecture teams have settled on JEE as the defacto standard for their information systems.
There is definitely a learning curve with JEE, and someone fresh out of school will need a year or two to really understand how it fits together - but when you write something in this framework, it is easy to read, maintain and rarely needs to be re-written.
Most importantly, the framework will continue to be developed for the foreseeable future - I mean multiple decades.
On the other hand, some of the newer javascript stuff - is horrible broken spaghetti code that is glued together by spit and prayer. 99% of these frameworks will fall out of fashion with the associated problems that come with falling out of fashion - the canonical example being Ruby On Rails.