The Working Dead: Which IT Jobs Are Bound For Extinction? (infoworld.com)
Slashdot reader snydeq shares an InfoWorld article identifying "The Working Dead: IT Jobs Bound For Extinction." Here's some of its predictions.
- The president of one job leadership consultancy argues C and C++ coders will soon be as obsolete as Cobol programmers. "The entire world has gone to Java or .Net. You still find C++ coders in financial companies because their systems are built on that, but they're disappearing."
- A data scientist at Stack Overflow "says demand for PHP, WordPress, and LAMP skills are seeing a steady decline, while newer frameworks and languages like React, Angular, and Scala are on the rise."
- The CEO and co-founder of an anonymous virtual private network service says "The rise of Azure and the Linux takeover has put most Windows admins out of work. Many of my old colleagues have had to retrain for Linux or go into something else entirely."
- In addition, "Thanks to the massive migration to the cloud, listings for jobs that involve maintaining IT infrastructure, like network engineer or system administrator, are trending downward, notes Terence Chiu, vice president of careers site Indeed Prime."
- The CTO of the job site Ladders adds that Smalltalk, Flex, and Pascal "quickly went from being popular to being only useful for maintaining older systems. Engineers and programmers need to continually learn new languages, or they'll find themselves maintaining systems instead of creating new products."
- The president of Dice.com says "Right now, Java and Python are really hot. In five years they may not be... jobs are changing all the time, and that's a real pain point for tech professionals."
But the regional dean of Northeastern University-Silicon Valley has the glummest prediction of all. "If I were to look at a crystal ball, I don't think the world's going to need as many coders after 2020. Ninety percent of coding is taking some business specs and translating them into computer logic. That's really ripe for machine learning and low-end AI."
*cough* What a crock of shit.
Sendmail is like emacs: A nice operating system, but missing an editor and a MTA.
"Ninety percent of coding is taking some business specs and translating them into computer logic".
Business spec: Write a program that determines if any given program halts after a finite amount of time.
The entire world has gone to Java or .Net
Wake me when either language runs on small tiny embedded applications.
I hate this fact that "java programmer" is considered by some people a different job than "C++ programmer". A good programmer should be able to learn a language in a month and become proficient in three months at most. Functional languages apart, all languages are more or less the same. It doesn't matter if your hammer has a red handle or a green one, as long as you know how to hammer.
C and C++ coders will soon be as obsolete as Cobol programmers. "The entire world has gone to Java or .Net.
My God, no! I'd rather program in brainfuck
"First they came for the slanderers and i said nothing."
But the regional dean of Northeastern University-Silicon Valley has the glummest prediction of all. "If I were to look at a crystal ball, I don't think the world's going to need as many coders after 2020. Ninety percent of coding is taking some business specs and translating them into computer logic. That's really ripe for machine learning and low-end AI."
Sounds like a fantastic opportunity to get rich—fleecing poor bastards who actually believe this dreck. Ninety percent of coding is indeed figuring out how to wedge some business wonk's hairbrained idea into the machine, but does this clown have any idea how broad a phrase "business specs" is? That's everything. I mean e-v-e-r-y-t-h-i-n-g.
"Make my MRI machine work." Business spec. "Make my combine harvester work." Business spec. "Make my search engine work." Business spec. "Make my toy robot work." Business spec. "Present as many goddamned ad impressions as physically possible." Business spec. He's trying to claim that do-what-I-mean-not-what-I-say computers are just around the corner, readily (and cheaply) available. HA. No. You might, MIGHT be able to train a neural net to do a piece of one of those tasks. All of them? And all parts? Not even close. Not in three years.
I'm sure nVidia's new Titan Xp is a marvelous thing, with its dedicated tensor accelerator hardware, but it's not do-what-I-mean hardware. It was just released last month, which means nVidia's next card is a year away. Does anybody think it's going to be do-what-I-mean hardware? No. How about the generation after that? Maybe another node shrink? Still no. How about three generations from now? If historical Titan benchmarks are anything to go by, it'll be twice as fast as a Titan Xp. It takes nVidia about 36 months to double performance. Is it going to be able to do-what-you-mean? Mmm, no.
The world is going to need just as many coders in three years as it does now. It will probably need more. The coming wave of automation is not going to be self-programming, but it is coming. Somebody is going to have to write all that code. And baby all of those neural nets.
The president of one job leadership consultancy argues C and C++ coders will soon be as obsolete as Cobol programmers. "The entire world has gone to Java or .Net. You still find C++ coders in financial companies because their systems are built on that, but they're disappearing."
The entire world has done what now? I work in the computer vision/data processing world. It's all written in C++ on the back end, often with python driving code on the front. Currently C++ is the only language with the expressivity, speed and resource frugalness required for the job.
I've also worked on deep embedded stuff. Hell, some of the compilers don't even do C++ (looking at YOU IAR C/C++), so I wrote it in C. Otherwise I'd use C++, because there aren't any other languages with the resource control which will do the job.
Lots of other stuff seems to run on the browser. All major browsers are implemented in C++ because... well you get the idea. About the only thing which could potentially displace C and C++ is Rust since it's basically the C and C++ model but with a syntax that excludes many common bugs. But it's a way from being there yet.
A data scientist at Stack Overflow "says demand for PHP, WordPress, and LAMP skills are seeing a steady decline, while newer frameworks and languages like React, Angular, and Scala are on the rise."
There's a difference between decline and fall. The displacement is certainly happening, but you can't replace WordPress with Angular and Scala because one is an entire CMS, the other are a library and language. That's not the same thing.
SJW n. One who posts facts.
It is the lack of compiler/preprocessor support for legacy standards of the language.
Between changes in the standard headers, changes in keywords (without provisions to disable them for files written to older standards) Changes in API and ABI, there is a huge clusterfuck of underdocumented shortcomings in C/C++ that are mostly there because of standard ego-stroking. Many of which have no excuse for having shown up in the past decade given that most of them manifest in open source software that could have been tested against in an automated fashion to ensure that new changes to the standard didn't break older code.
Anyway, just like traditional c, then c89, then att C++, we are now seeing c99 and c++98 going the way of the dodo, with a mishmash of code written that straddles the standards but may not always compile into what you were expecting. And depending on the corner-case of interpretation, might not be discovered until MUCH MUCH later, unless you regression tested for every possible contingency or have dozens of special case handling macros for all the things that work on one version but not another (which is steadily increasing with each year, and some of which are only possible using machine automated translation due to the sheer level of keyword, include, namespace and other changes that may be necessary to work against 'common best practices' of a different iteratio of the standard.
Science and engineering continue to move towards doing more simulations. Everything from chemical simulations to flow simulations. The more accurate these simulations are the more computationally intensive they get but also the more money you can make since you have to do fewer real world experiments to isolate the true running conditions and the simulations can also be used as control systems allowing you to operate closer to the true danger area.
In most chemical plants reactions are run FAR from the actual danger points in terms of product yield, purity, reaction speed etc because things like PID controllers just can't adapt to how chemical systems really work.
The problem is that for this kind of work java and .net are SLOW. They can easily but 100x to 1000x slower than a program written in C, C++ or Fortran. The tooling to support High Performance Computing type applications really doesn't exist outside of C, C++ and Fortran. They have the most advanced optimizing compilers, profilers, debuggers, libraries etc. What I often see is something like MATLAB for visualization, Python for command and control and C/C++/Fortran for the actual simulation running on clusters.
These newer microchips that have more cores per chip are only going to continue to push things in that direction. It is easy to gain a little scaling with threads but if you want to really get a program to run fast you need to either have direct memory control or you would need a far more efficient runtime than has ever been created so far.
This may come as a surprise but almost no normal software uses more than about 1% of a cpu's capabilities. Even most games are 5%. You can see this when you run them under a good profiler like VTune. Sure the CPU is technically busy running the software but it is mostly just waiting for data and working with unoptimized data structures. To get over this barrier you need to do thousands of small changes to your program.
If you need a program to run FAST you need to eliminate false sharing. If you have two threads write to different indexes in an array but the items are too close to each other in memory they could be sitting on the same cache line and this will cause the cores to have to resync and retry calculations based on which one committed first. The more cores you add the worse this problem gets. I have worked on a program that went from 30 seconds on 128 cores to 0.03 seconds on 128 cores by removing all the false sharing.
You also need fine grained control over parallelization. You need to be able to decide that a function should only be parallelized and to what degree it should be parallelized based on the amount of data being handed into that function. That is why things like TBB and OpenMP allow those to be controlled at runtime. If you make a parallel version of quicksort and run each division in parallel recursively you reach a point where you are creating parallel tasks that are far too small and have too much overhead. This means you need to understand how many cpu cycles an operation normally takes and can parallelize based on this information.
At this point I don't see any other languages really moving in to really compete with C and C++. Sure there are languages that do a lot of the high level stuff that used to be done with C and C++ but the world has also moved to harder problems and C and C++ have moved onto those harder problems also. This is a problem you can't just buy more hardware to fix. Many of these simulations take days to run in highly optimized C and C++ code and the java/.net versions would take a year to run. The time alone would kill the programs usefulness but forget ever optimizing your system using the simulation.
Computer modeling for biotech drug manufacturing is HARD!
By the way, I'm looking forward to the days when C/C++ programmers will be rare ... And expensive !
The year 2038 will be our year!
"If you don't hire me to inspect your C code for time_t usage, your IoT toaster oven will go berserk, and kill and eat your grandmother!"
"Oh, look! A time_t field in a structure that gets passed over only God knows where, and gets cast haphazardly as a pointer throughout the code! How cute!"
Schroedinger's Brexit: The UK is both in and out of the EU at the same time!
I actually program in the field and while I admit .NET is pretty awesome if you program specifically in Windows and if you aren't looking for performance! It isn't meant for the high performance edge applications that C and C++ are able to handle. Besides, all four languages .NET, C, C++ and Java all have some similarities with each other. It's about as stupid as saying because I drive a SUV that I can't drive a truck. Sure there's differences but anyone who calls themselves a programmer should be able to switch fairly easily. Java itself is a horrible use of resources, the few games I've seen written in them run like molasses and that problem in itself hasn't really changed over the years.
As far as AI taking programming jobs, don't make me laugh. AI is nowhere near that level yet. An AI that can program is an example of self-aware AI that can program itself. Even if it could, I'm not sure if anyone would really want to risk it. Think about it, let's fire all the programmers and get the computer to program itself to help us. Eh, what if something goes wrong? What if it decides to go the way of skynet?
While the cloud may have it's benefits, not everything will go there. Communication isn't that fast and some information is best kept off the web.
Written by a business type who has no idea how programming works except for the next big thing. Not even realizing how much stuff is based on legacy architecture.
Judging from your writing skills I would guess that you too may be from India or somehwere else where Enlgish is not the local native language.
C and C++ aren't going anywhere. Everything from operating system kernels to operating theater robots are programmed in C and/or C++.
I count at least a dozen devices in my apartment that contain some sort of microprocessor and I would bet money that all of them are using C and/or C++ in some form as part of their software.
Anyone who thinks C or C++ is going away anytime soon is either a clueless idiot or has some vested interest in pushing Java and .NET.
I doubt there are many large companies who don't use Linux. Ford's been using it for at least the past 15 years. Ford is hardly a trailblazer when it comes to new technology and platforms.
Still employed.
"You still find COBOL coders in financial companies because their systems are built on that"
Fixed that for you. And those guys make a pretty bunch, for being obsolete.
To Terminate, or not to Terminate, that's the question - SCSIROB
Why are we teaching kids to write when there won't be as many jobs for scribes in 3 years? Because there are very few jobs that don't benefit from some level of automation and it's increasingly essential that you are able to formulate solutions to problems as programs.
I am TheRaven on Soylent News
Suppose you assigned an AI to observe which user stories go in, and what code comes out as a result. How many programs would you have to complete before the AI is able to take over a majority of the work involved in building an application? {...} I'd honestly be surprised if they aren't already doing something like this.
Yes it's done. Not by google, but by others.
The short answer is that the deep neural nets produce texts that looks like code on the first glance, but doesn't even compile.
e.g.: The variables aren't even properly declared. it can write a formula (like "a = b + c")
but isn't even able to realise the link with the declaration of the variable (that the "int a;" 10 lines above is linked to the "a").
The problem is the size and complexity of modern AI.
The size of the context they can consider,
the amount of abstract models hidden behind the code, etc.
Currently what AI has managed to recreate with deep neural nets, is on the level of WW2's Pigeon guided bombs.
i.e.: leverage some image recognition net and similar basic tasks, and string a few together.
The complexity required to write actual code is several orders of magnitude bigger.
Even some humans can't do it reliably, and you hope to do it with what currently is the equivalent of the visual cortex sub-part of bird's brain.
Good luck with that.
Before achieving that we need :
- more raw processing power (you'll need way much more neurons that currently used in today's deep neural nets)
- advances in science to better understand how to combine together tons of such "function specific nets" to build a higher level of AI.
(the same way a brain is a sum of lot of small specific region, each linked to a higher level/more abstract associative layer).
"Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]
These days, everything is a computer. Your stove, your car, your cable modem, your TV, all are computers. They all have microcontrollers or microprocessors in them to handle various functions. It is cheaper and easier than doing discrete dedicated logic, even for simple things. Well, those need software of course and it turns out C/C++ are the thing that gets used a lot because you have little memory and power to work with. Pennies count in mass production and the smaller a CU, RAM, flash, etc you can get away with the better, but that means the code needs to be small. You aren't loading up Windows and running .NET on a microwave, you are getting a little PIC24 or something and putting on some highly efficient, directed code.
Because of all these embedded devices, there's a lot of market for this kind of thing, it just isn't the trendy shit you see on hip "Web 3.0" sites. It gets done by people with engineering backgrounds at big companies.
Also, speaking of small embedded computers, regular computers themselves have tons of computers in them. Crack open a desktop and you find a lot of chips in there, many of them computers in their own right. Your NIC is a computer. A simple one to be sure, but it is a processor that runs code, it is not all hard wired. Your SSD is a computer, it has a little chip (ARM usually) that runs the code it needs to do its job. Again, someone is writing the code for all that and that code is not being written in Java.
Even when you have a platform that at a high level runs Java/.NET/whatever it had a bunch of lower level code on it.
They are looking at their narrow market, their company and thinking it is everyone. The best example is the VPN retard saying that Windows has gone away. Ummmm..... no. The massive Wannacrypt outbreak at companies is prima facie evidence that is wrong. There is lots of Windows all over the place at companies from tiny mom n' pop shops up to the biggest in the world. It is on desktops, servers, controlling equipment, etc, etc and people are still needed to run it.
I'm sure in his little world, there are no Windows admins. A VPN service likely uses Linux for its server OS, and he just rents VPS's from places like Azure. So in their little company they are all Linux all the time. That's nice, but not at all representative of what is going on in the larger world and if he had any amount of perspective he'd know that.
Anyone who thinks a trend seen at a single company, even a big one, can be generalized to the whole world is silly.
Seriously, whilst C++ (and Fortran) are great to do the heavy computational lifting, most of that heavy lifting that goes on in computational engines can be isolated in, and accessed from, a specialised library.
After that you really don't need C++ anymore.
In fact you'll realise big productivity (and reliability) gains by *not* coding e.g. business logic or HMI's in C++. Use a script language instead and call those C++ libraries when you know exactly what you want done. I daresay that this is why languages like Python are so popular.
In most applications that business logic and HMI fiddling is 95% of the code once you put the heavy computations inside a library call.
The problem for C++ "coders" is that you don't want a load of mediocre C++ coders to build a library.
Instead you want computational scientists and domain specialists to specify the algorithms, supported by a software engineer for systems design plus one or two really good C++ programmers who can both understand the algorithms and what they do, and who just so happen to be able to implement the design plus algorithms in high-quality, robust, efficient, and elegant code.
...clearly these are people who know absolute f*** all about creating software.
C supposedly died long ago, and yet I find myself using it in critical situations to use libraries such as xmlsec in order to build the underpinnings of an IDP mechanisms - now, those underpinnings are used by golang, but that's been the way of software since the early 90's.
I don't dream of writing C, and I think golang, .NET, Rust, et cetera, are great and useful languages; but, just because I've got some sexy new impact wrench, I still find myself reaching for my 30 year old adjustable wrench on occasion...
Loading...
I think everyone has encountered code-written-to-spec at one point or another. And had to rewrite code such that it violates the spec in order to match reality.
That aside, a more interesting question is "which programming language will those AI-compatible business specs be written in?"
Log in or piss off.
Why are we teaching kids to write when there won't be as many jobs for scribes in 3 years?
In at least one state, we don't teach kids to write anymore, at least not with a pen or pencil.. Handwriting has become an optional part of the curriculum.
I thought it was bad when students no longer were taught how to read old cursive or blackletter, so they no longer understood a letter from grandma nor could read old books. But now they don't have to be able to read anything except sans serif, nor write anything that isn't typed on a computer. It does not bode well for when emergencies occur. I also wonder how someone who isn't taught how to use a pen will write a signature. Back to X again? Or hanko stamps?
I live in the larger Düsseldorf metropolitan area in Germany and work as a PHP coder. There are a lot of web agencies and start ups here. And the dominant programming language is without a doubt PHP. In Berlin, Germany's start up capital, however, a lot of start ups use Ruby.
I don't know why that is but apparently which programming language is hot or not seems to depend on the geographical area you live in and, of course, on the industry. I seriously doubt that SpaceX rockets run on Java code...
The views stated in the abstract are very US centric.
Sigs suck!
I have been doing Perl development for a long time, and in the last two years, it has straight out disappeared. You can still find Perl as a job requirement, usually as part of DevOps positions, but actually writing apps in it, they are gone.
I have noticed that the new fad for LAMP is Python, it has shown up everywhere and years before it PHP, but Perl has been relegated to being a systems administration tool.
* The CEO and co-founder of an anonymous virtual private network service says "The rise of Azure and the Linux takeover has put most Windows admins out of work. Many of my old colleagues have had to retrain for Linux or go into something else entirely."
* In addition, "Thanks to the massive migration to the cloud, listings for jobs that involve maintaining IT infrastructure, like network engineer or system administrator, are trending downward, notes Terence Chiu, vice president of careers site Indeed Prime."
Everyone (and half the ones quoted in the OP) talk about programming, not IT like in the question.
The IT dept. worries about desktop, data management (NAS/backups), security, connectivity from the desktop to the rest of the company/world, remote access, email and other business apps (including database). I think that kind of IT will be around for awhile. The apps/email might move to outsourced. The desktop will probably be Windows in most cases for a long time unless MS really makes it unusable for most users.
We're already seeing some examples of traditional IT moving away from Windows. I look at my kid's school. All chromebooks & cloud. The school IT needs to do networking/WiFi and account management. I expect that the data management and software upgrades is minimized. There would be security in network configuration and policies for teachers/parents/students. Probably some internal applications (building management and phones?) that can't be outsourced to a web app. Everything else is outsourced to Google. They save lots on IT compared to Windows/iPads that I've seen at other schools.
"Thanks to the massive migration to the cloud, listings for jobs that involve maintaining IT infrastructure, like network engineer or system administrator, are trending downward"
There are many businesses that will never be in the cloud. Many companies are not comfortable putting their data on someone else's computer. Also some companies are legally required to keep their data local.
Finally, even businesses that have embraced the cloud (my organization is one of those) still have local infrastructure that needs support - switches, firewalls, telephones, security systems, building access systems - etc. Those simply can not be put in the cloud - the devices need to be local - and those devices still need to be managed.
So I no longer need to struggle with C/C++ because I need consistently reliable sub-2ms response times and any auto-vectorization I can get. That's awesome! But... what exactly is the alternative supposed to be?
Also, all these people are talking about languages, not jobs. They appear not to understand that programmers can switch to other languages relatively easy and probably already use many languages.
0x or or snor perron?!
I have worked in requirements capture: my money is on the pigs.
Sent from my ASR33 using ASCII
The list was all meh. Maybe. Um...
Until I got to sysadmin. This is so mindbogglingly stupid that I'm amazed this guy can tie his own shoes in the morning. I didn't even bother looking at the rest of the list.
If you think your company doesn't need sysadmins anymore just because your infrastructure is 'in the cloud', I REALLY REALLY want to see you do that. Just so I can laugh as your entire company collapses.
I think back to situations like steel workers or coal miners whose jobs disappear...and to the combination of where these people live, the lack of variety of the local economy, and the difficulty translating their skills to other industries. These things combine to make it nearly impossible for them to maintain their livelihoods. Conversely, in the tech field, that constant rate of change makes it not only relatively easy to change specialties, it eliminates any stigma that comes from having done so.
Yes, this means that fields and skills sometimes go out of favor...but at least you're not stranded when they do. You have options. Whether or not you exercise those options...that's another thing. I'd rather have options, and have it left up to me whether I fail or succeed.
For your security, this post has been encrypted with ROT-13, twice.
Remember - there's always rule 34...
the best performance (C) or with a reasonable compromise between abstraction and performance (C++).
No. C++ is used where you need performance and expressiveness and compile-time safety. C is used where you either don't have a decent compiler for your system, or you can't handle the compile times, or you're no good at writing C++.
Not so, computers still are stupid, stubborn machines that need to be forced to behave. And for this, low level languages still reign supreme.
Very well put.
For the record, I don't like you. However, I am pretty sure that Perl is dying and that its niche as a scripting language has mostly evaporated or been filled with other things. Also, that particular AC is a fuckwit, and you responded well.
Whether or not technologies are still in wide use isn't necessarily the best measure of health for the technology. WordPress is widely used, but technologically it's horrifically obsolete. It's written in a declarative style, and can't be converted to an object-oriented codebase without destroying the software ecosystem that makes it useful. For its part, Perl still exists, but the kind of system automation that it has historically been most useful for has taken a bit of a back seat to other technologies which deal with operating systems as containers. It's an indelible part of the Unix toolchain, but other things tend to work just as well and have nicer syntax.
Those who advocate genocide deserve every protection afforded by law, and none afforded by common human decency.