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.
So Windows admins are going extinct? Of course, because Linux is so highly respected in business environments - not.
I don't think the world's going to need as many coders after 2020.
Then why are we teaching kids to code when there won't be any coding jobs in 3 years?
I guess the idiots with management degrees and silicon valley bullshit bandwagoners think all the missiles, ships, aircrafts, vehicles, control systems, operating systems, cad/cam software, medical systems and pretty much everything that is useful and not related to piece of shit social media is made with:
of course :
- Go
- Angular (I have no idea what this is)
- Java (!)
- Css (?)
Get a hike. There's a real demand for people who are building real things, not the next useless eye-candy fad for venture capitalists to make more money. Go or its ilk servo might become something important one day, but that'll be at least 20 years from now on.
"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.
Just an example of how this is wrong, taken in one of the most hype domain now days : IoT.
Show me a JVM running on something like an STM32F0, or their low power counterparts.
By the way, I'm looking forward to the days when C/C++ programmers will be rare ... And expensive ! ...
Like Cobol programmers that maintain very old systems, because attempts to replace these systems with Java based solutions are failing
Totof
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."
Well, I started off on a System/3 with a card reader, so I've had to keep my competencies up to date.
In our industry more than most this is vital - I sometimes meet people bragging about having "20 years experience in x"; too often it's more like 2 years worth of experience x 10.
That said, I have some buddies still making decent coin on COBOL gigs...
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.
...or that languages matter.
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!
It's great! It's kinda like C, except a single company is in charge of it, and in its brief life it has had specs launched that broke backwards compatibility with "older" Swift code. Switch to Swift today!
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.
For some reason this made me think of a homeless person on a sidewalk with a cardboard sign that reads "A.I. took my job". Also relevant: "I'm a people-person dammit! I'm good at working with people!"
Corruption is convincing someone that the selfless ideal is the same as their selfish ideal.
C++ be gone? And what will Java and .Net run on? Themselves? :P
Languages like 'Angular'? Really, has Slashdot lost its mind?
Sometimes I think we need a "take your kids to work" day for all the rockstar programmers/vc's in silicon valley to show them how real world actually works. That no, all the Windows Admins have not vanished because there is still critical corporate infrastructure that runs on Windows NT and good luck moving it into the cloud anytime soon. And no, in the real world companies don't replace stacks because they're no longer cool, they replace them because the cost to maintain them has become more than the cost to shitcan it and start from scratch. And if you don't have network engineers, whose configuring all the VPN connections, routing tables, etc to your enclaves in the cloud because surely you don't just have everything up there with a route-able IP do you? (actually, given the number of alerts I get from have I been pwned, yes, they probably do).
Beyond all that. It amazes me how it seems many Node/JS advocates will generally declare C/C++ dead when that entire house of horrors only works because of libuv which is written in... C. You take that away and all you have is a crappy DOM manipulation language.
Seriously guys... we're glad you're innovating. But take time out for a reality check from time to time.
... let us think for 3 seconds. Which programming language is underlying languge for all this wanna be real programming languages?
Linux is taking over. Lol.
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.
The president of one job leadership consultancy...
A data scientist at Stack Overflow
CEO and co-founder of an anonymous virtual private network service
vice president of careers site Indeed Prime.
The CTO of the job site Ladders
But the regional dean of Northeastern University-Silicon Valley
Yes, great insight from MBA's predicting the future.... Thanks for that.
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.
Because human beings are bound For extinction
Still employed.
and there is nothing much to see here. Java is a bubble - the worst thing that happen to CS since MS DOS or The Packer's Paradise (the first chapter of The Programmer's Stone). Oldfags like me still remember the J2EE nightmare and how we fought to avoid this crap and stay sane (I hope the J2EE advocates are still enjoying the compatibility and performance issues or are in some deeper layers of Hell they've deserved). Since then Java is steadily growing. PHP and Wordpress/Joomla/whatever-it-is-today is not even yesterday - it belongs to the past age, so is Windows (which is not completely obvious due to its monopoly in the corporate world). "Moving to the cloud" is also very real, and companies who paid a few hundreds of thousands to Amazon for some standard crappy Oracle setup are very common (which is confirmed by AWS revenues). In short, yes, the time of garage technicians (or small construction companies) is over. Welcome to the world of mega-corp automakers (or property managers). Even Upwork is on decline despite being a cheap sweatshop for all the things mentioned above - LAMP and the other PHP-level crap. But wait! the coming Javascript crap will eclipse (hahaha) even J2EE and Cobol crap combined. These people (the packers) never learn.
"Engineers and programmers need to continually learn new languages, or they'll find themselves maintaining systems instead of creating new products."
Eat shit.
Learning something new keeps skills relevant and demonstrates a passion for the job, the capacity to learn and the flexibility to adapt. These are all things employers like.
It's very easy to do too even if the day job is something else. Find a technology that looks interesting, think of a non-trivial project that would be a good fit for that technology and write it. Make it open source, stick it on githhub or somewhere public and then link to that from the resume. It gets easier over time too since there is very little new under the sun.
I have a hard time believing an AI actually translate the typical badly defined, contradictory and vague business requirements full of hidden assumptions and turn them into code. It would have to work interactively with the customer, formulate questions and form a contextual idea of what the customer is actually pursuing. In essence, it would have to an advanced general intelligence. I don't see that happening in 3 years.
If you define business requirements as pure well-defined technical spec, that's just code generation. Who creates that spec? Not an AI. And who maintains that code?
"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
When you see Intel make announcements that they are putting off new desktop CPUs in favor of Phone CPUs you begin to understand that across the world and in developing countries the sales of phones as a primary computing device is hurting actual computer use. Homes don't have landlines and they don't have computers as much anymore.. They have phones and game consoles and we have gone backwards. Its sad but there is going to be a big separation in society. Those that have desktops and those that use phones and phones mean Java and Python .. but the backend to these things are still going to be C and PHP. if PHP went away so would 90% of the internet.. if C went away so would 90% of backends and also many software applications that are used to make the stuff people view from their phones. But in the overall are phones bad? no Probably not because they give people with lower incomes and no real computing skills access to the Internet which in turn means society as a whole moves up a notch. People that couldn't manage a windows or linux desktop can still access facebook and news sites and buy stuff on amazon..
It really comes down to... who is making the world .. and who is using what they make.. If you are a maker you still need skills.. if you are ranting on facebook or twitter you just need a phone.
> right now Java and Python
Oh, come on. Java as been the leading language for over 15 years now.
> not that many coders after 2020
I heard the exact same thing in the 90s with Aspect Oriented Programming. Oh, we won't need programmers, you'd just pick your big building blocks and just put them together and voila!
Can't help but notice that all interviewed have a lot to gain from hiring cheaper labor...
Those jobs are not extinct, you're just won't be accepted as an applicant because "you're just not a fit for the company culture" whilst they're thinking how much cheaper it is to hire prajeet...
Australia is old hat at this shit too. Don't worry about labour laws, just lie through your teeth about everything including why you're doing what you're doing and get someone to fly over on a 457 visa to run your pizza shop... don't pay them properly, imply that you'll refer them to immigration if they kick up a fuss.
And if the public figures out you're playing silly buggers, just give the ruling party more donations and they'll make it go away with some kind of dead cat, or at worst, a rebranding of the legislation without actually changing it in any significant way at all will suffice.
I thought atlassian was a good guy until I saw they turn down locals for foreigners... there's plenty of comp sci graduates in australia, the lazy, tight shits just don't want to do any training to bridge the gap between education and industry in practice, so prajeet gets the job.
I'm very happy that these morons in the article keep the kiddos away from our field of C++ programming. Keeps supply of available programmers low and demand high. This equals high daily rates for us.
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.
I guess humans aren't self aware because we can't program AI
If "job leadership consultancy" is an actual thing we're all fucked. I don't just mean IT folks, I mean the whole species. Frankly, we deserve it.
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
Though to be fair it is partially cause by a common problem with bad programmers. There are a lot of programmers that can only do a couple of languages, or will only do a couple of languages and see them as the tool for every job. They know Java so Java is the One True Way(tm) and they try to solve every problem using it.
I have a friend who is a programming consultant, and quite a good one, and a common problem he has is that companies will disbelieve the breadth of his language experience. He has to convince/demonstrate to them that indeed he has a bunch of tools in his box and he uses the right one for the job. They are used to consultants that do one or two things only.
If anything, that demonstrates to me that we are NOT done with needing coders. We have such a need for them that people who aren't very good can still get work. If you have a profession where you can get more people than you need, you get to pick and choose and get only those that are really good. When you have to take poor performers, it means you need more than you can get.
When the only programmers getting work are the kind that are very good at solving problems, that view languages just as different tools to be used as optimal solutions, who can generate simple and elegant solutions to complex problems, then I'll say we have enough programmers and programming jobs are going away. So long as we have tons of code hacks that can only program in one language and generate code that barely compiles, let alone can be maintained, yet can still find work, well that means we still need more people.
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.
... than surely you should seriously worry. Of course the people quoted are idiots following short term trends.
Programming languages have their area of usefulness. Few, if any, programming languages are more or less general. However a mistake that's often made is to start with the programming language and then look for uses for it. Instead you should first look at your problem, and then find the best programming language for it.
This is why, for example, UNIX was always based on multiple languages for certain problems. You have a layer of tools written in C and (originally) Assembler, then you have a shell which can be scripted, plus you have special languages like the one used in "dc". Most languages are simply not made to power a complete operating system in. If you try that, you'll end up in messes like Windows (C++) or Android (Java).
So in short, if you only know one programming language, or just a small amount of basically identical languages, you should seriously considering another career.
However if you want a steady job in IT where you never have to use your brain and never have to learn more than a few buzzwords, try getting some management position. There you will earn money by sitting in meetings.
The large majority of coders are just terrible so they use toy languages to write their toy applications. It just so happens that the majority of software people need is trivial, so that's alright.
Meanwhile, there is a small minority of coders that work on major core and infrastructure projects, hard science, or in highly competitive areas. These use languages that give them real power and control.
I think what the prediction really means is that as the market grows, this minority will stay constant as the majority increases.
I work in IT security and yet my company, and all the others that I read about constantly in the news, don't give a damn about it. Time to kill all the IT security jobs and let the corrupt and idiotic companies suffer.
But the regional dean of Northeastern University-Silicon Valley...low level ai....will take over buisness programming...
Because he does not know either job. I do both. It is not going to happen.
We are in a great ai hype cycle because chips and especially gpus have become faster and cheaper . This permits iterative, brute force algos like nn and ga to succeed (yes, that's what they are) in controlling the motion and processing of visual information of robots. Which gets them doing some stuff in meatspace thay humans did before.
But we don't have a fundamental breakthrough in AI, not in decades. For self driving cars to succeed, we have to change our liability laws sice, actually, their behavior is fundamentally unpredictable. This is so an incidrent like the one in NYC yesterday committed by a human will not bankrupt Tesla or GM when their car does something comparable.
So in other words we have to lower the bar of culpabilty and expectations to accomodate self driving cars. They succeed as much via legislative engineering, as AI.
Palm had to redefine what it meant to write the letter A , so their palm pilot handwriting recognition software could recognize it fast enough to useful.
The deep understanding needed to write a business function, even a simple one, is hidden. There are tradeoffs which need to be communicated and negotiated between stakeholders all of whom have their own set of priorities, contingencies and goals which that simple business function will impact existing processes and people. You might as well be making the claim that robots will be running businesses , simply taking over existing human processes and decision making as they are done now, today.
The Northwestern dean is truly a dean. I have a counter prediction for him. His mid six figure salary and those of his fellow travelers is bamkrupting the nation and has caused a multi trillion dollar bubble which when it blows will take the world's economy with it. Thst's the world you get with utopian chasing deans maki ng the decisions. University degrees will be replaced by the acceptance of proofs of competencies and professors will be replaced by videos.
Whole swaths of idelogically driven majors which conduct themselves like this:
http://www.skeptic.com/reading_room/conceptual-penis-social-contruct-sokal-style-hoax-on-gender-studies/
will be wiped out at once as a citizen, student debt-slaves, and taxpayer rebellion puts a swift end to the Ponzi scheme cum swamp that is today's university.
Enterprises and people who remain disconnected from the messiness of implementation or financial details because such details are, well, confusing and overwhelming, and who choose instead to invest in disconnected ideological talk and prediction on other people's money suffer total, catastrophic collapses of their lives, endeabors and belief systems.
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.
Java is an odd idea. Why build a Virtual Machine, and not just an interpretor, the VM has to work as an interpretor anyhow.
And C compile times are super quick nowadays.
C++ well, in C you can make classes there is just often no real need.
C is enough, it could be improved but it is a lot better than anything else. C is not hard, just have to get some patterns in it.
C could have won even more, if Apache had dynamic loading modules and the hooking system was fully explained.
C could be improved at the text level:
"\ ...\n\
Line One\n\
Line Two\n\
Line Three\n\
"
That \n\ at the end of the line, begs the question why make it work that way? Much simpler to just accept a newline, a python doc string is useful. They probably need to add that idea.
> 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."
He says that like COBOL programmers have a hard time finding jobs.
All these predictions are what the author wants to happen, not what is actually going to happen.
...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...
Code writing AIs are the flying cars of the IT industry. They're always just around the corner and they never show up...
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.
"The rise of Azure and the Linux takeover has put most Windows admins out of work". Because moving your servers off-site and up into Azure totally eliminates the need for all administration, right? And Azure is magic, so it can just take your existing servers and move them up without you having to do anything at all. You don't need any AD sync running, configuring a new colo server, nothing. Azure just does it all for you.
Right now, Azure isn't much more than an active-directory enabled colo service. Even if almost all your servers are up in the cloud, that is just one part of the infrastructure...ESPECIALLY from a network engineering standpoint. You still have all those physical endpoints, even if everyone is using a dumb terminal you will still have a switch closet, firewalls, etc. It's a slighly different skillset, but really nothing that a decent netop person can't learn. The VPN into Azure isn't going to configure itself, and your routing tables for the server vlan isn't going to re-write itself. At least not yet, but AI is too busy being a 4chan chatbot to learn how to config that stuff.
In order to understand the result, you might consider the collection of people surveyed. What makes you think that the top executives of companies have a clue regarding long term trends in computer language usage? It's really not their business to know, let alone care, about such things.
Yeah, I've been hearing that since 1985. The base case of any data system is probably easy: It's when one has to deal with legacy cases or edge cases, that programming requires skill. Look at how much embedded devices have changed: From a 4 KiB game that runs on an 8-bit CPU, to a car entertainment system that runs on a 32-bit CPU. If an AI has smarts to know what data-type and memory-size is needed to store data, it has the smarts to know what one wants from the "business specs".
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!
Who may or may not know anything....
"The entire world has gone to Java or .Net"
Okay, that's all I need to hear. I've been a C++ programmer for the last 15 years and I have only felt an increase in available jobs.
Also, when it comes to desktop applications, java sucks big time and .net is (at least in practice) Windows only. Now, I know that to those zombie forecasters the desktop is dead. But fortunately that's not the case. UI on web is still fairly simplistic or incredibly complex and buggy, and there haven't really been a big shift in this area in many years. Mobile has been on the rise of course, and relatively still grows compared to desktop. But the decline of desktop sales stopped about two years ago. The reason is that there are two many things that are not suited for mobile or web - try to imagine a HTML5 canvas based CAD application :)
To me it feels like yet another case where a java consultant claims the entire world will run java.
I'm not worried for my job, and I still take applications from other good C++ coders.
tech support will be replaced by Cobol.MONO speach synthesized bot with a Arkansas accent to conceal the artificial fact that you will never feel satisfied with your assistance anways so let us just cut costs of those unhelpful H1B Hindi bots.
PS: RIP Xevil (in subject) the only app u could play other than NetHack and feel u didnt lose time when u lost the game.
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."
Bwahahahahahaha! Oh damn, we can't even get our chat bots working reliably (we use them to auto-generate bugs and tasks). And in three years they're going to be replacing programmers? Fucking priceless!
AI is going to divine the real requirements from the specs generated by PHBs??? When pigs fly!
From the outside (I'm a mathematician) it's clear that almost all programming requires taking some PHB's brain fart and transforming it into meaningful useful tool.
Not colleges and universities but grade school - everybody is doing Scratch (https://scratch.mit.edu/)! Seriously, 22.7 million apps so far so clearly it's the fastest growing language/development tool and the students aren't learning anything else.
Oh, my. This means that C/C++/C#/Objective C, Java, Javascript, Python, Perl, Wordpress and anything else being used today is going to be obsolete when the next generation of programmers hits the world.
The simple analysis above has just about as much validity as the one done by the Infoworld "experts". As many people above have pointed out, there are applications for a variety of new and up and coming platforms that don't fit into their limited perspective on the world.
I think the authors of the study spent too much time talking to themselves in conferences and not enough time looking at what programming is going on today along with the applications they are being used to program.
Mimetics Inc. Twitter
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."
Has the "regional dean of Northeastern University-Silicon Valley" ever actually used AI or programmed, or is this just one more PHB blowing smoke over something he knows absolutely nothing about?
Drawing similarities with Integrated Circuits and electronics 2 to 3 decades ago, everyone was into them, it paid very well. Eventually, we use electronics in everyday things from Kids toys to high-end aircrafts. But really, how many people do you know that work directly in developing them ? Hardly anybody. Software/IT is going there. A few engineers will design such good AI, that will build software by itself, manage and maintain everything by itself and improve it's own self. Better start looking at growing food.
Sure the diversity of languages has been keeping the IT market going -- recode the same logic in 5 different languages; Change everything from ObjectiveC to Swfit and next Java (thanks to Oracle -- "no coffee for you") to Dart/Go.
Also, keep in mind if it is not hard or you are just calling libraries you are going to be out of a job in a few years because someone elsewhere will do it cheaper.
Sure, software development, testing, maintenance, etc. is important. However, at the end of the day when that piece of software is deployed to millions of devices energy efficiency is going to be the more dominant issue in the near future. Maybe we need something like EnergyStar for software. Any language that is ultimately not going to be energy efficient should and hopefully will die out -- assuming environmental issues start dominating business greed and software engineers stop being stupid and make things easy. Maybe companies using sloppy/energy-inefficient languages should start paying higher taxes to offset their ongoing environmental molestation.
> 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."
NO. This idiot apparently thinks that these alternatives must be woven out of thin air. EVERY SINGLE GOD DAMN THING IS PROGRAMMED IN C AT SOME POINT.
> 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."
All garbage. Do you really think you can start up web server and configure nothing?
> 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."
This is only half true. Again, depends if you're talking about client-facing servers, or enterprise servers. "Cloud" services is another name for "paying through the nose for 30% less efficient hardware due to the high overhead costs, and high latency of cloud services. Cloud services are easily run on Linux because your virtual machines are identical. But that comes with the cost of having ZERO control over the hardware, so things like bufferbloat, hardware acceleration and error correction are not available at any level. You can have the most efficient VM setup, but your cloud host may have done nothing to tune it to the type of application. You see this a lot with online game servers where some game is run in a VM, and one cloud host will have high latency, while another will have zero latency, because a "file server" VM is not the same as a "VoIP" type VM. A file server needs a lot of buffering to be efficient where as a VoIP or MMORPG needs zero buffering because it needs zero latency.
> 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."
Bollocks, The cloud is just the current trend before enterprises start buying their equipment again to save money.
>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."
And there is nothing wrong with that. The reason these languages kinda "died off" is that they were inherently inflexible, just like C++, Java and .NET, and all it takes is one backwards-incompatible feature breaking the C runtime on the OS with one security update to break a everything. Look at Microsoft's push for SecureCRT in Visual Studio 2003, and not actually pushed as a feature until C11 as Annex K.
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."
Java is already dead as a desktop language. The ONE thing on the desktop that uses Java is Minecraft. That is it. Python is currently enjoying a brief usage uptick because it's easy to integrate into some open source development pipelines. That said, Python is a miserable language to use beyond scripting in something that is already built in C. Which is true of everything from Javascript to Lua.
Everything out there is built on C, thus discouraging people from learning C, either by piss-poor compiler support (Microsoft) to encouraging using the C++ compiler on C code (also Microsoft) instead of just building a C11 compliant compiler means that people will simply not use your product as long as other
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.
See subject: I'd also like to include the fact that Java & C#/.NET dialects are VERY close imo @ least (picking up java from a C++ background's pretty much cake (except EVERYTHING is an object in Java, not the case in C++)).
* Personally? I try stay away from interpreted runtime driven code (Java, Python, C++ to an extent in MSVC++ @ least in GUI interface code being LIB.DLL run, .NET, VB etc.) but I had to use it @ times while working... they all work but aren't my preference (I like doing single .exe code, no 3rd party lib/dll OR runtime driven stuff IF/WHEN possible) - you never know when errors pop up in them is why ala https://it.slashdot.org/comments.pl?sid=10606043&cid=54411855/ where SQLite was found to have bugs.
They are correct in my experience that MUCH of what's done out there is "business logic/processes" translating to DB calls etc. (online webby stuff is mostly this, but so is a lot of client-server).
APK
P.S.=> TIOBE INDEX current - For everyone's reference https://www.tiobe.com/tiobe-index/ Delphi/Object Pascal's STILL in the top 20 (was #11 1-2 months back too) & always is - C++/C are STILL, as always, in the top 10 too... apk
CEOs, CTOs and presidents cited here. Do you really expect any of them to have a clue?
"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
This article brought to you by...
Tech companies and their endless pursuit to drive down software engineer/developer wages.
Article is completely false and anyone working in the industry sees right through the bullshit.
"And those guys make a pretty bunch"
Have you even seen the profile photos of these neckbeards? Sheesh! But I suppose attractiveness is a subjective thing...
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.
One of the most reductionist pieces I have seen in ages. Programming languages are not like ANSI standard power outlets. They are not one-size-fits-all. You don't just decide "screw c++ for this aircraft embedded system, we're going with interpreted Perl instead". There are legitimate engineering choices made every day, and the implementation language is one of those choices.
It's a poor engineer that looks at their task and believes they can use the same tool for every single job.
There's nothing preventing you from writing parallel computations in C++, especially now that the C++ committee has for many years had an eye on exactly that aspect of computing.
Basically, any computational efficiency your pet language can do, C++ can do better.
Since it represents an existential threat with no real replacement, slow AI down to a human-manageable pace.
Twitter supports and protects racists - by smearing their critics with the "Hate Speech" label.
CXO - Chief Experience Officer
CPO - Chief Privacy Officer
CVO - Chief Visionary Officer
CIO - Chief Innovation Officer
CSO - Chief SEO Officer (Search Engine Optimization)
The fact this incompetent blabber mouth (or paid shill) can't code his way out of a paper sack, doesn't mean the world stopped needing people that actually know their way with actual computers and the way they really work.
C and C++ still are the method of choice for those looking for making things work with the best performance (C) or with a reasonable compromise between abstraction and performance (C++).
C and C++ are so enduring precisely because they don't provide the many syntactic and semantics candies other languages do, making these other languages unfit to work with the hardware as it is.
Computer science and engineering have gone a low way since their beginning, making many people live all the time at a high level of abstraction, and also believe that all there is in computers can also be made in the high level abstractions they are used to, the ones that clean themselves up after being used, and that find missing dependencies automagically.
Not so, computers still are stupid, stubborn machines that need to be forced to behave. And for this, low level languages still reign supreme.
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.
Hey, so when can we expect the Linux kernel to be re-written from the ground up in Java or Python? I think that would be really awesome and socially just since they are such popular languages among our younglings. Better yet, how about Go? Go seems well-suited for writing an O/S kernel isn't it? Or is Go also going obsolete now since it has been around for a year or two?
Seriously, anyone can invent a language or framework these days. We all need to stop jumping on every bandwagon that comes along.
All of them, with a long enough timeframe.
Clicking on my /.ID will lead to a tiresome repetition of posts like the following going back years, and experience only keeps telling me I'm right: your great career is mixing IT with another profession.
I just retired as a municipal engineer; I had the Eng degree but also CompSci and was the Waterworks IT guy for several years before they remembered by Eng degree and put me back into construction and maintenance work. I only oversaw the development of our Major Systems like the map-drafting and work-order-tracking that were millions each. But I *programmed* last Friday, and nearly every day of my career, and past (last Friday was near the end of a 6-month post-retirement please-come-back contract). No, it was not major, or even minor, applications. It was smart, VBA-enabled spreadsheets with custom SQL queries embedded that did things Business Objects just could not do. It was little Perl programs on the web server, cgi-bin stuff from the 90's, that provided a hundred people with a custom web-page for their project-of-the-month, and a data-entry form for their updates on it.
I got all these jobs because IT wouldn't touch them. They were too risk-averse to write up a program in hours and deploy it the next day...even if they could have written it without weeks of explanations of our business, processes, and needs. We used to have IT people who worked next to us and needed no briefings, and could be talked into such mini-solutions, but IT hauled them all back downtown in 1995 and after that, you got a new, clueless, programmer every time you called them, and whose boss needed 3 preliminary meetings before authorizing a project with all possible tracking and staging, and checks and, oh, just endless "process". So filling that gap was key to how valuable an engineer I was.
Every time career stuff comes up on /., I write this note again, urging people to not be a "programmer". Be an engineer/programmer or a doctor/programmer or an accountant/programmer. The poster above who noted that a metric shitload of modern programming is embedded in some ways, most of it written by the engineers of the car or appliance or other product of embedding, was one special class of this, but some kind of (other-profession)/programmer is, overall, the better career choice by far.
And for that, the language of choice is whatever language works in that very specific situation. The notion that such stuff can be done by "low level AI" is comical. If my colleagues couldn't explain their mini-app needs to a human being in less than a week, how could they explain it to a pattern on a stone?
The only one of these if even partially agree with is that creation of internal IT infrastructures from scratch is a dying art. CI and HCI are making this activity, for most small-to-large companies one of diminishing business value. 10 years ago, you had no choice but to build from scratch - now you can buy ready-built rack-scale or appliance infrastructures and even get turnkey hybrid cloud footprints, not to mention these are vendor supported from the hardware up to the hypervisor.
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.
Bullshit, just complete and utter bullshit. I suppose if you send that competent programmer to classes for those three months--week in class, week to practice,
week in class--etc... for those three months it could work.
But I've seen those claims made in real life and the people making them are the personification of the dunning-kruger effect.
Each of these guys has his own little corner of the world and is totally ignorant of what's going on elsewhere.
Yes, in my industry we've replaced C++ (and good riddance) with C# on the PC side, but C is still going extremely strong on the lower end because when you've got a (by modern standards) little SoC with 48K of 'ROM' and 34K of RAM you can get a lot more out of C than you can Mono or Java. We even still occasionally bust out the asm, but for the most part modern C (with things like named structure initializers) is the sweet spot.
And people have been predicting the replacement of coders by AI for 30 years - it's like fusion power. I imagine at some point the mere code pigs (coders who just search stackexchange and copypasta code) might be replaced, but good luck replacing hands on problem solvers for a while.
But then, who am I to argue with a 'job leadership consultancy' *snicker*.
Knowing a language does not only mean that you are able to write a syntactically correct program which compiles and does what it is supposed to do. It means that you have intimate knowledge of all the libraries and toolsets
I came to post just this. Yes you can technically learn a language in a month. But to learn the extent and nuances of the entire set of frameworks around a language takes longer, for ANY language - all languages now are really a lot more about framework support than core language features.
C++ in particular though is so expansive, I would question if someone who had just spent a month learning it (even if they were an expert programmer fluent in other languages) would really be able to produce good code.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
My first real computer-related job was "computer operator." I ran decks of punch cards through readers, ran jobs on the mainframe, loaded tapes and hard drives, and so on. Specific computer-related jobs will continue to come and go, but the need for technical people in the software and hardware industry isn't going anywhere.
Remember - there's always rule 34...
...those other languages are written in?
And their operating system, and all the games they love to play? And the code in the ECMs in their car? And anything else that requires deterministic performance? What do you think Chrome is written in? And the V8 javascript engine inside it? Video codes? Media players?
Java is a pig, .NET is nice, but nowhere near fast enough if you really need true performance. Computers aren't really getting any faster anymore, so the only answer to increased performance and workload is learning real computer science principals, and using a language that actually gives you some control over what your computer is doing.
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.
Most programmers by far are not "great" or even "good".
I'm reminded of the story of a guy went for CS in a college with about 100 people in class. Couple years later went back to help teach. Class was about 1000, so that's a tenfold increase in students. However, the absolute number of people with real talent had stayed about the same.
This spells doom for the slew of "learn to code" initiatives. But it's in fact a good thing should they manage to automate the lower level grinding jobs away: It increases the percentage of actually good people in the pool. So anything that still ends up getting hand-crafted is more likely to end up decent to good. The automatically-written code is probably horribly bad, but we already have that from the "outsourcing easy jobs, like programming" thing that rarely if ever proves TCO-effective.
On the other hand, one might question why the really good people haven't gotten around to automating this task of automating itself. What changed that "machine learning" suddenly would help, here?
I think this article did sum things up pretty well, at least in a "big picture" sense. The key is realizing that if you did "network admin" or "sysadmin" work in the past, the trend is looking for people who are well versed in both cloud-based and on-site options for data storage and manipulation You need to be able to deploy the most efficient mix of them for the environment you're working in, and you can't be afraid to use different platforms.
I run into a lot of people who have Windows certifications and experience, who are probably very good at managing a Windows server environment. They may even stay on top of Microsoft-centric cloud solutions like Azure and Federated Active Directory services. But if they're afraid to deploy a mix of Linux servers or server appliances, they may be costing the company needless extra money in licensing and reducing reliability. EG. Where I work now, we chose ESET as our anti-virus solution. But I went with the Linux appliance version of the remote administration console for ESET, even though they have a Windows version that seems to be better documented and supported. It wasn't the easiest way to get the thing deployed. It had some major bugs that took researching and patching until the company finally released newer versions of it that ran better. But by going with a Linux VM, I don't have to worry about paying for an $800 or so Windows Server 2012R2 license just to run the thing legally, and the Linux VM has less CPU overhead too. I'm sure many people just deploy it on an existing server so they don't have to pay for more server licensing .... but that brings with it potential security risks, since you want to expose the remote administration server to the Internet. Otherwise, it wouldn't be able to stay in communications with your anti-virus clients being used outside your local office network. Seems wiser to isolate one of these on its own server instance. I found a similar thing with using CrashPlan Pro-e for our workstation backups. There was some economic incentive to running the servers on Linux in our various offices.
You've also got all of these decisions with "hybrid" solutions out there now. The product may be based on something you run in-house, but it offers cloud-based extended capabilities that you may or may not wish to activate by subscription. A good sysadmin or network admin, today, has to be good at calculating the pros and cons and putting together the contracts / subscriptions for only the cloud-based portions that are smartest to leverage.
Blatant flamebait.
""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"
So who admins the cloud servers and networks?
We don't talk about JS in polite company, other then to note that there's no such thing as good JS.
If you're talking more about the ecosystem than the language, I would find it hard to argue. The language itself isn't that bad though. That is to say, if you pretend that classes don't exist (because they fundamentally do not), never use the new keyword, and learn its quirky scope rules it's not bad. It's kinda fun to be able to just glom together objects and methods into whatever shape you like.
Those who advocate genocide deserve every protection afforded by law, and none afforded by common human decency.
Yes, this means that fields and skills sometimes go out of favor...but at least you're not stranded when they do.
I disagree.
I used to program C++ middleware back in the 90s. Then Java came; which meant all the new projects went to that.
Took a Java class and even did a little programming BUT employers wanted 5 years of experience. I tried moving to C# .NET - same thing.
I tried getting other C++ jobs but they wanted industry experience on top of that. And I wasn't the only one who experienced that.
Changing is not easy. Once you are pigeon holed, you're screwed.
Employers want experts - they don't want folks moving over. They don't want folks sitting around trying to figure out how to implement something - they want the guy who knows right off the top of his how to implement something in a particular language. Hence, we have those laundry list job requirements.
You must keep up with the new stuff on the job because classes or FOSS projects or whatever do not count - I know because I tried those.
It seems the only way to have longevity as a techy is be in some tech backwater (like 50 miles outside of De Moines or something) where all the young people leave to be where the action and money is.
I see C being replaced with Go or Rust over the next few decades. I'm not sure what you might mean by 'custom security filter component' but it doesn't immediately sound like an appropriate domain for C.
(which makes all these "learn to code" initiatives so braindead)
The learn-to-code initiatives are trying to bring more people into the pipeline, since the industry isn't good about training people. Yes, it takes years to become competent as a programmer, but the point of these bootcamps is not to teach people how to be competent programmers but to teach people how to learn how to program.
The way the industry is structured currently is just plain bizarre. We have university CS programs where you will learn algorithmic analysis but the daily practice of programming is only included by accident, and we have coding bootcamps which will churn out semi-literate web monkeys who have never heard of Turing or Knuth. Neither is a particularly good path to becoming a good programmer, but what else is there?
And as an aside, I think you disrespect junior/novice programmers unduly. There's nothing wrong with being green, or even just being a hobbyist programmer. Where else are our greybeards going to come from? And don't we want other people to become involved in this activity that we enjoy? (We do enjoy programming, right? That's why we do this, right? I'm sure I'm debugging this misbegotten legacy junk because I enjoy it...) Anyway, I think it's worthwhile just for more people to learn to think programmatically.
Those who advocate genocide deserve every protection afforded by law, and none afforded by common human decency.
>"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."
This must come from someone who has never worked on a serious, complex business problem that utilized a software solution. Automation of coding has been talked about for many years, and we are not even close. Anyone who has been involved in translating marketing/regulatory/operations/etc. requirements into software knows how easy it is for things to get lost in translation. When AI is capable of intimately knowing the background of the business specs and infer the details that the spec writer sloppily omitted, then maybe. But at that point, the AI will be far smarter than we are and we won't be thinking about lost coder jobs.
I cannot believe this. ... I count Delphi also as one of the "working dead" then.
The real gurus among us know that the quatrillion of inefficient C# and Java code lines committed in the last years will be migrated to Delphi starting when burning money on inefficient IT projects get controlled again.
Delphi: Since years dead and still worrking
You realize the P in LAMP includes Python right? Your post makes conflicting statements.
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.
...those languages have so much similarity that cross-training from one to another is relatively easy. It's not like going from Tcl to C#, COBOL to python or Lisp to Ruby.
Without C/C++ I think the environment would be toast very quickly, we would have to build power plants like crazy to support the increase in power consumption. https://www.youtube.com/watch?... CppCon 2014: Chandler Carruth "Efficiency with Algorithms, Performance with Data Structures" https://www.youtube.com/watch?... CppCon 2015: Timur Doumler “C++ in the Audio Industry” https://www.youtube.com/watch?... Mark Maimone "C++ on Mars: Incorporating C++ into Mars Rover Flight Software" https://www.youtube.com/watch?... CppCon 2014: Mike Acton "Data-Oriented Design and C++"
Most of their examples are just consequences of industry growth. As the industry grows, there are new areas which have performance or low-level needs requiring something like C++ expertise, but far more new jobs which simply don't need to be particularly efficient or scalable to solve problems. For those jobs the productivity gains of a scripting language are helpful.
But the absolute number of C++ programmers will only drop insofar as we increase productivity to replace it. Someone has to write those scripting languages, someone has to write those cloud operating systems, etc.
Basically, we probably won't really need more C++ programmers over time, but we almost certainly will need stronger C++ programmers to tackle harder problems, so that everyone else can use that point of leverage.
You know a statement is true when the dean of a college believes it. What with all their real world experience sitting behind an ivory tower...
Really?
The problem we have in this area is that all the COBOL Programmers are retiring and then coming back as contractors for twice the price.
I see ads trying to recruit COBOL programmers but they all say "Junior Programmer" or "Entry Level Programmers" insisting that more than 3 years of experience is "Overqualified"
Damned fools don't seem to realize that COBOL hasn't been taught since 1990. They're not going to find a 25YO COBOLer.
And all of those millions of KLOCs are just sitting there, waiting for someone to care for them.
Which IT jobs will last forever?
None. Things change. Hell, most of 'em will be gone by the time the sun finishes boiling off the oceans.
(And, yes, the article is a pile of rubbish, but since the premise is idiotic, that hardly matters.)
I heard this part before... in the early nineties (just with earlier timepoint):
> 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.
so who writes "some business specs"?
You might end up with flawless software. The flaws will be in the spec. Or the spec will be insufficient.
Creating software is mostly creating a good spec anyway (and establishing what the customer actually wants).
does this guy know that 100% of the linux kernel is written in C? Trying to make work a zillions of devices on an Android platform (USB stuff, camera, etc) and you have to put your hand in pure C. Last time I checked more and more items are running Android, with an old kernel you have to patch.
"Science will win because it works." - Stephen Hawking
I may not have expressed my point well. I agree that to those familiar with functional programming concepts, map and reduce are at least as legible as explicit loops. However, I do think that due to their nature as higher-level abstractions that fluency in these concepts requires a greater effort. Of course, it could be simply the case that most people are introduced to programming in imperative programming languages. To what degree does the relative unpopularity of functional programming languages represent a less natural model of human cognition? Or is that also a product of e.g. teaching kids arithmetic instead of arithmetic series?
Do you know, I feel like that last example is a pretty valid comparison. In order to understand arithmetic you need nothing more than bottlecaps or a number line. Arithmetic series take an understanding of functions, variables, and infinity, as well as the fundamentals of arithmetic. Similarly, while you can write a for loop in every language (even Malbolge, theoretically), I want to see the person who can write map/reduce in Brainfuck without transpiling. I think in practice we can say that some sort of named or anonymous function is required in addition to looping and arithmetical operators, and further that if the language in question doesn't support functions as first-class objects then you're going to have a harder time of things. And while one doesn't technically have to have a solid understanding of higher-order functions, it certainly helps.
On the other other hand, the notion of functional programming being just as easily taught as imperative programming is an attractive one, and I'd love to see the subject more widely taught. I'm of two minds. What do you think?
Those who advocate genocide deserve every protection afforded by law, and none afforded by common human decency.
Camera film developers will make a comeback, right? RIGHT? (uh... no? shucks)