Not trivial to master, but that's what it takes to be highly relevant today. If that's too much, it's possible to specialize in a more narrow area such as big data implementation and make good money without writing lots of code. But most new development is mobile + web.
Stupid and lazy people are kept from voting by having to read instructions and enter numbers into a token. The ones who manage to cast a valid ballot are likely also intelligent enough to understand basic scientific facts and elect politicians capable of cooperating with other humans! Instant fix for American government!
Latency and unpredictability of garbage collection is a severe problem for any UI, and even web/database backends. Your Cassandra node can run fine for a week and then fragment its heap and go into 20 second stop the world GC, causing user requests to time out. Silly things like allocating large byte arrays and dolling out offsets and length for individual uses are done to avoid big GC pauses. It still doesn't always work, because there are a lot of VM versions and user access patterns shift over time.
For all that, memory leaks are no less common than in C++ and non-memory resource leaks are horrendous. In C++, your object's destructor is cleanly called when the object is deleted or goes out of scope. That will take care of also calling destructors on anything encapsulated, which can then close files and unregister listeners. In Java, the while 100MB object hierarchy will be still consuming heap because some leaf node's close method was not called and it's a button click listener with an indirect link back to root.
A grown up language can support stack based and encapsulated object instances that don't have to be GCed and have predictable destruction time. Large and provably acyclical objects like bitmaps can also be reference counting. In practice, GC pauses are no better than crashes, so in real life even unsafe explicit delete makes sense in many cases.
Main point of a car is to get you from point A to point B in a comfortable/fun/safe/affordable manner. Even with self driving cars, hardware is at least as important as software and people make strong emotional connection with its design and aesthetics. People will not trade their Mercedes for a Dell just because same software is available. Apple has a chance if they come up with industrial design on par with Macbook or iPad.
We do not have to make life in prison torture, it's just part of the same bloodthirstiness that drives executions. Europeans have invested in making their prisons humane while still effective at keeping dangerous people away from society.
How about we keep death penalty, but only for cases of mass murder with extensive eyewitnesses, self-incriminating statements and/or video evidence? No ballistic/arson evidence where investigator can be mistaken or science could evolve over time. No single eyewitness that leaves the possibility of mistaken identity. And if you targeted a specific person, whether because of greed or rage, it's at least a recognizable human failing from which one can be conceivably rehabilitated in due time.
I personally don't feel any less just or safe with Ted Kaczynski securely locked up for life than if he was executed. But some people believe that there is some level of brutality that deserves death. Well, maybe Dzhokhar Tsarnaev or James Eagan Holmes is it. Still a waste of money, but we will not waste too much on a couple of executions in a decade. And I would certainly would not worry much about an innocent/rehabilitated man or a victim of bad circumstances being put to death.
Actually there have been tons of progress, it's just in the areas where there is a practical need rather than what looks cool in a Sci-fi movie. There is no need to clone a human as a robot, we already have lots of humans. On the other hand, lots of work is being done on taking an image and automatically generating a short description of what it shows so people can find it among a billion others.
BSD is dying for how long again? It's still around and having monthly releases. For open source projects, popularity contests are much less important. With massive existing user base, Hadoop will be actively maintained for long time. So if you already familiar with it and it serves the needs of your project, go right ahead.
Personally, I think being oncall 24/7 without comp time off is more invasive than the GPS tracking. Left my previous job after they introduced oncall rotation without any new benefit to show from it. If I get paged at 4am I am going to have a headache the next day, so don't expect me to come to office and write code. And if I can not go to swimming pool or drink beer for the whole week, a 3 day weekend next week, when I am NOT on call, would be the minimum that would compensate for that. Other than that, when I am on call I am already not free to go on with my life, so my locations are going to be pretty boring anyway.
Since a company with large number of billions in the bank thought they can get away with uncompensated oncall in my case, I would guess chances for legal success against that are slim.
Like it or not, a lot of nasty employment conditions are technically legal or hard to prove. Really the best thing is to publicize what is happening on glassdoor and similar sites. It's not going to immediately stop entry level employees, who have few better choices, from applying. But confirmed bad practices will deny the perpetrator ability to recruit top talent for positions that have the most impact on the company's future.
As of now, Intermex is described as nice working environment on Glassdoor. If I was considering an offer and read about 24/7 GPS tracking in page after page of reviews, I certainly would not join.
Do you want your corporate culture to be like that? Then by all means only hire kids. Any healthy human society needs an age/gender/personality diversity of contributors to thrive. There are certainly brilliant 20 year old programmers, but they don't have practical experience keeping a project or a team alive and working well for a decade. And once they acquire such experience, they will leave your company because it'a not friendly to their needs.
Android phones are essentially running manufacturer/carrier Linux distros. If someone doesn't want to update theirs, you can't force them. You can, however, switch to one more to your liking. There are always Nexus devices, but also a good business opportunity for smaller players who can't afford to develop heavy customizations like TouchWiz anyway.
You could install a fully functional system from a box of floppies and it ran great on clunky 386sx. Multitasking and networking capabilities blew other choices of the time - Windows 3.1, DOS and MacOS classic - out of the water. BSD distributions were not nearly as complete software wise or easy to install. Lack of shared library support made X apps impractical.
Without Slackware the would have been no Linux of today.
How many people are really willing and able to sit at the desk for hours on end, without any human interaction, all to figure out an abstract problem? How many will enjoy such a career for a decade it takes to get really good at it?
The patience, intelligence and introverted personality required may all be on the bell curve, but one has to be on the vanishing end of it to be a key contributor to the project. Others can certainly learn how to complete a 3 page class assignment, but will be miserable if they have to code most of their wakings lives.
I would argue that quantities required are so unusual that a great programmer is always going to have difficulties in social relationships with people in the middle of bell curve, even if not to the degree that can be considered autism spectrum diagnoses or any other disability.
Having 30 solid offers per month for even entry level programming jobs would be reassuring if nothing else. These are just generic position postings though, with no special inside track to get an actual job.
Having said that, I got a new job by replying to one of LinkedIn recruiting e-mails a couple of years back, and got a nice salary hike as well as more interesting project and less stress than my previous gig. After that, I usually reply by declining politely and thanking the recruiter for asking. If someday myself or a friend needed a new job, I would probably have a slightly better chance with recruiters who had a positive experience with me before.