Slashdot Mirror


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."


39 of 581 comments (clear)

  1. Short sight by CRC'99 · · Score: 5, Insightful

    The entire world has gone to Java or .Net

    *cough* What a crock of shit.

    --
    Sendmail is like emacs: A nice operating system, but missing an editor and a MTA.
    1. Re: Short sight by Oscaro · · Score: 5, Insightful

      Yep, fir example I work on medical diagnostic software and the amount of data you need to manage and render on screen smoothly is so huge that C++ is the most reasonable and common choice (even if not the only possible one). There are lots of fields where C++ is still king. And that's a shame, because it's a crock of a language.

    2. Re:Short sight by Dutch+Gun · · Score: 5, Insightful

      C++ employers will be employable in the videogame industry for the foreseeable future, at least. I presume that they'll also be employable for working on any large-scale applications that requires support or compatibility beyond what some of the newer, safer, high-performance compiled languages can provide.

      People always talk about how terrible C++ is (and it's hard to argue with many of their points), but it continually shows up in the language rankings as a steady #3 to #7 or so, depending on how language "popularity" is figured. It benefits less from being "pure" and more from being incredibly pragmatic as a language, similar to C. R and Go are still lagging far behind, with D almost out of sight. Swift is moving up thanks to iOS, and maybe Kotlin will do the same thanks to Android (but we'll see - I'd literally never heard of it until recently), but those are almost pre-destined to be one-trick ponies due their strong platform ties.

      Ultimately, the big problem is that I don't see a real universal contender for high-performance native code taking over from C/C++. There are a lot of promising languages, but at the moment, nothing is really taking off. Simple inertia is pretty hard to overcome, as it turns out.

      Final point:

      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."

      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!

      --
      Irony: Agile development has too much intertia to be abandoned now.
    3. Re: Short sight by serviscope_minor · · Score: 4, Insightful

      There are lots of fields where C++ is still king.

      Anything requiring speed and expressivity.

      And that's a shame, because it's a crock of a language.

      I find modern C++ very pleasant on the whole.

      --
      SJW n. One who posts facts.
    4. Re:Short sight by Kremmy · · Score: 5, Insightful

      Ultimately, the big problem is that I don't see a real universal contender for high-performance native code taking over from C/C++. There are a lot of promising languages, but at the moment, nothing is really taking off. Simple inertia is pretty hard to overcome, as it turns out.

      The whole reason that people claim C/C++ are dying or going out of style is that they are entirely disconnected from this point. They explicitly overlook the fact that the languages they are always citing are written in C/C++ and rely to an extreme degree on libraries written in C/C++ even when they manage to self-host the languages. It's an ignorance of what the tools they are using actually are.

    5. Re: Short sight by Anonymous+Brave+Guy · · Score: 4, Interesting

      Anything requiring speed and expressivity.

      I wouldn't even say those are the big advantages of C and C++ any more.

      It's a relatively rare application these days that needs the kind of raw speed you can't achieve with other mainstream languages yet which relies on C or C++ for its performance-critical logic rather than either dropping to assembly (or linking to someone else's library that probably does) or resorting to some form of parallelism. I'm certainly not saying that set is empty, but it's probably getting smaller by the year.

      As for expressivity, if you mean how easy it is to express any particular idea in code, C and C++ are relatively weak compared to many other mainstream languages today. They lack many convenient language features widely available elsewhere, and their standard libraries aren't exactly broad and full-featured so you have to bring in additional dependencies to do almost anything useful.

      The area where C and C++ still shine compared to almost anything else (and I realise this might have been what you meant by "expressivity" instead) is the low-level control. You can deal with memory and ports and interrupts and so on very transparently in these languages, and they have a very lightweight runtime with minimal dependencies that makes them suitable for use in things like systems programming and writing software for embedded devices with limited resources.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    6. Re:Short sight by TheRaven64 · · Score: 5, Insightful
      Let's look at some examples of things running on a typical computer:
      • Operating system: If it's *NIX, mostly C with some C++. If it's Windows, then mostly C++ with some C.
      • Web browser: Chrome, Firefox and Edge are all written in a mixture of languages, with C++ being the dominant one.
      • Office suite: Microsoft Office, Open/LibreOffice, and KOffice are all mostly C++.
      • Video and music player: The UI is often C# or Objective-C, but the code that handles the file metadata parsing, decoding, and playback is all C or C++, depending on the platform.

      Yup, sounds like the entire world has gone to Java or .NET to me...

      --
      I am TheRaven on Soylent News
    7. Re: Short sight by Anonymous Coward · · Score: 5, Insightful

      Speed is becoming less and less of an issue. As computers are getting faster all the time.

      People have always been saying that, and it was never true, and still isn't.
      Why? Because software, software stacks, entire operating systems are becoming slower all the time, eating up all those resources that your newer computers are capable of.
      It has always been this way, and people like you have always been wrong.

    8. Re: Short sight by angel'o'sphere · · Score: 4, Insightful

      C++ meanwhile supports basically everything other modern languages provide.

      You seem to be stuck in 1998 or something ...

      C and C++ are not the same thing, so making a very long statement about both of them is most certainly always wrong for one of the two languages.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    9. Re:Short sight by angel'o'sphere · · Score: 5, Insightful

      Those "how popular a language" is topics are not really relevant.

      Most languages more or less work the same, the details and flaws are mostly in the libraries (see PHP) or in some niche corners of automatic type conversions (see JavaScript and also C).

      Bottom line it does not really matter if you write Java or C++. A competent programmer should learn the other language in a day or two and get good in it in a few weeks or months.

      Of course there are edge cases. I don't expect everyone to become super fluent (quickly) in SQL, Smalltalk, Groovy or Lisp or Prolog or Haskell, OCaml or COBOL or Fortran.

      However: even if you are not fluent in any of those languages, with a little bit of intelligence you should be able to fix simple bugs. Writing a new program from scratch is obviously more difficult. Look at COBOL e.g. with its "strange" PIC data layouts and so many "divisions". I mean I fixed a bout 1M lines of code in COBOL for Y2K faults, however I could not really "write COBOL".

      Kotlin is around about 5 or 6 years, not sure. I don't see a big advantage over Scala or Java 8, probably easier than Scala as it is closer to Java. However the company, JetBrains, offers Kotlin to JavaScript and native code compilation. Kotlin to native could be interesting on Android, on other platforms I fear they don't have the cross platform libraries (GUI, Networking etc.)

      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."

      This is actually true. I wrote a "spec" (as in heavy formalized use case descriptions) to Java/Groovy source code "converter" about 10 years ago. It was super easy to make proof of concept prototypes.

      Look e.g. at https://cucumber.io/

      However you are right, too. Programming/programmers wont go away for the foreseeable future and most likely never.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    10. Re:Short sight by OneAhead · · Score: 5, Interesting

      Let's see: C and C++ still rule when it comes to

      • High-performance computing
      • Game engines (actually just a special case of HPC - but a commercially important one)
      • Embedded computing (think IOT)
      • Things that necessarily have to work low level, like operating systems and compilers
      • The kinds of big software projects you're citing, of which browsers will keep or increase their importance regardless of how much the IT world "cloudifies"

      And they don't even have to take our word for it - just look at recent data figures published by the likes of GitHub and StackOverflow, which show that, while C and C++ are not dominant, they're pretty stable, and very miuch alive and kicking.

      So that leads to the hypothesis that the statement comes from someone who doesn't have a clue what they're talking about. And yes indeed: "the president of one job leadership consultancy" is basically a motivational speaker with a one-person company featuring a poorly chosen name and a not-all-too-professional-looking website. Seems to me that "one InfoWorld journalist" decided to give a friend of a family member a big, free publicity boost by interviewing her on something she doesn't know the first thing about.

    11. Re:Short sight by 0xdeadbeef · · Score: 4, Insightful

      Well, it was said by

      Elizabeth Lions, an executive coach, author, and president of Lionsology, a job leadership consultancy.

      A snake oil selling imbecile who hasn't the slightest clue about the things she talks about. Of course, we knew that when she called programmers "coders".

  2. Ninety percent of coding is... by tal_mud · · Score: 3, Funny

    "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.

    1. Re:Ninety percent of coding is... by Cederic · · Score: 4, Insightful

      Nicely put.

      Low-end AI? Translating user requirements into working software that actually meets their needs is in the same part of the AI difficulty list as cold fusion and solving world hunger.

      If you can actually interpret the business specs without a human putting them into a formal language, you don't need to translate them into computer logic at all. By then the AI can just execute them anyway.

      The moment you need that intermediary step involving a human and a formalised representation.. we call that programming.

  3. Languages are tools, not jobs. by Oscaro · · Score: 5, Insightful

    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.

    1. Re:Languages are tools, not jobs. by phantomfive · · Score: 3, Insightful

      Because the person who can use the language today is more valuable than the person who can use the language in three months.

      --
      "First they came for the slanderers and i said nothing."
    2. Re:Languages are tools, not jobs. by serviscope_minor · · Score: 5, Insightful

      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.

      Yesbut. There's also a difference between proficient and expert. Becoming an expert in either takes much, much longer. For example a friend of mine is an expert in Java. I can hack code in the language and do plenty of things. He seems to have committed half the standard library to memory and knows the JVM in depth too. There's all sorts of weird and wonderful stuff you can do if you know those manipluations.

      It would take me many years to reach his level.

      It doesn't matter if your hammer has a red handle or a green one, as long as you know how to hammer.

      Unless the hammer has a wooden head and is used for knocking chisels. It takes a long time to learn how to do that effectively no matter how well you can smash rocks with a sledge.

      --
      SJW n. One who posts facts.
    3. Re:Languages are tools, not jobs. by Anonymous+Brave+Guy · · Score: 4, Insightful

      This is a popular conceit, but it's still a conceit. The skills and concepts and idioms you need to work with dynamically typed "scripty" languages to write a web app are quite different to the ones you need to to work with high performance systems programming code to write device drivers, and those are different again to the ones you need to implement a compiler in a functional programming language. Programming is a vast field, and experience in one part of it doesn't necessarily make someone any good at working in another part of it just because there's a reference manual.

      --
      If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
    4. Re:Languages are tools, not jobs. by jon3k · · Score: 3, Interesting

      A good programmer should be able to learn a language in a month and become proficient in three months at most.

      This isn't, and shouldn't be, the case. There is a huge demand for work in higher level languages that can be done by less skilled programmers. Most of them wouldn't be capable of programming in C, and that's ok. If ALL programming needed to be done by a programmer who could become proficient in any language in three months we'd be 50 years behind in our use of software as a species. We could be pedantic and call that "scripting" and not "programming" but that's obviously a specious distinction.

  4. Opportunity by Areyoukiddingme · · Score: 4, Insightful

    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.

  5. What a load of rubbish by serviscope_minor · · Score: 4, Insightful

    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.
  6. C and C++ aren't going away by Ambassador+Kosh · · Score: 5, Interesting

    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! :)
    1. Re:C and C++ aren't going away by Ambassador+Kosh · · Score: 3, Informative

      I am not talking about regular programs. I am talking about the types of high performance computing software that is usually run on large clusters or supercomputers.

      For the simplest possible case lets say you have to add up an array of tens of millions of doubles. On an x64 arch cache lines are normally 64 bytes which allows you to store 8 doubles at 8 bytes each. You can also use vectorization in a modern CPU and haswell and above can do do vector operations per cycle. If you break up the work to something small like 128 threads you need to break the whole thing up into very large chunks memory such that each chip gets a large contiguous memory region and such that each core in that chip also has a large contiguous memory region. You also need to allocate the memory to hold each cores temporary result such that none of them are on the same cache line or you will cause invalidations on every summation operation and have a large impact on performance.

      If you do all of this completely correctly then you are doing linear memory with unit 1 stride and that will allow the memory controller to optimally load in data while you are processing. You also use every entry in the cache line and a cache line never has to be fetched again. At the very last step you would need to read from 128 memory locations on different cache lines to do a final add but you did eliminate all false sharing.

      This is of course a trivial example meant to illustrate a point. Even just adding up lots of numbers can be quite complicated to make high performance. Sure a java program can do this but it won't be anywhere in the same ballpark speed wise. In a more realistic example you have to do this kind of optimization work but the problem is not so simple. Just designing a data structure that correctly works across all the different usage and ordering cases can take weeks of work and profiling.

      More commonly you have parallel processing that happens in phases where you have large parallel areas followed by sequential areas and then followed by parallel areas again that operate on the same pieces of data. If you are VERY careful you can keep the information you last used in the cache still and so long as you assign all the work to the same cores as they where assigned the first time all the memory access will be local. If you screw it up performance is often 10x to 100x worse on a ccNUMA system with 128 cores.

      This type of programming is programming is HARD but it is an area where C/C++ and Fortran completely dominate with no competitors around. Everything from molecular dynamics simulations, quantum simulations to chemical simulations and machine learning. This is an area where Java does not play in and Oracle is not even trying to push it in this area. When Oracle does high performance they do it with C/C++ usually and OpenMP. They have given some very interesting talks on OpenMP optimization.

      --
      Computer modeling for biotech drug manufacturing is HARD! :)
  7. Re:Not dead just clueless writer by Z00L00K · · Score: 3, Insightful

    I agree - a lot of embedded devices are C and even assembly. Especially when you come down to small devices running an 8051 kernel and similar where every byte counts.

    C is also one of the better languages to use if you want a deterministic behavior of your code as long as the coding is done right. Environments like Java and .Net aren't good enough in that area since you have background threads for housekeeping that causes interference.

    --
    If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
  8. Re:Does IoT rings a bell ? by PolygamousRanchKid+ · · Score: 4, Funny

    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!
  9. What a load of BS by jonwil · · Score: 4, Informative

    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.

  10. Been hearing exactly this for 25 years by mccalli · · Score: 4, Insightful

    Still employed.

  11. Re:COBOL by scsirob · · Score: 4, Informative

    "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
  12. Re:Teach everyone to code! by TheRaven64 · · Score: 3, Interesting

    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
  13. Currently ? Not working. by DrYak · · Score: 5, Interesting

    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 ]
  14. They also never look at embedded software by Sycraft-fu · · Score: 5, Informative

    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.

  15. And they are all people without perspective by Sycraft-fu · · Score: 3, Insightful

    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.

  16. The problem with C++ is ... by golodh · · Score: 5, Interesting
    Libraries.

    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.

    1. Re:The problem with C++ is ... by dbIII · · Score: 4, Insightful

      Interpreted languages are fine so long as there isn't a lot of code sticking together the stuff in those libraries that are nicely compiled for you.
      If there is a lot of code to interpret they suck just as much as they always have - hence some really sloooooow stuff out there.
      There's some appallingly slow stuff running on fast hardware - things like GUIs that take a couple of seconds to respond to a mouse click and bring down a menu despite being on a 4GHz machine that's not doing a lot other than waiting for input. That's the sort of thing that shows off a failure of lazy programming and using the wrong tool for the job (eg. a massive lump of custom java instead of handing over to a library).

  17. Re:My gripe isn't even with that: by arth1 · · Score: 4, Insightful

    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.

    I agree, for C++. Whenever I have breakages after upgrades, it's almost always C++. Programs have to be recompiled, because they've imported and extended templates that they themselves weren't in charge of. Even if the APIs remain the same, there are still breakages.
    For C, there are far fewer problems. Yes, someone might change an API, but the general consensus is to not do that, but provide new functions. New standards happen, but only affect the source, and not whether binaries continue to work, like can be the case for C++.

    C++ works well where you can control or dictate the runtime system, so it matches the developer toolchain. That's great for embedded-like systems where you can change the entire OS with upgrades, or long term stable systems like RHEL, where versions stay put for 10 years with only bugfix backports. But when binaries break after an OS update, they're almost always C++ ones. From big companies too.

  18. Perl Developer by Herkum01 · · Score: 3, Interesting

    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.

    1. Re:Perl Developer by __aaclcg7560 · · Score: 3, Interesting

      I get a lot crap for stating this on Slashdot... but I thought Perl disappeared years ago. References to the LAMP stack was always to PHP or Python. Perl isn't being used to administrator the Windows systems at my current government IT job. I haven't ran into Perl in any of my private sector jobs in the last 20+ years.

  19. Local networks are not going away by zerofoo · · Score: 4, Insightful

    "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.

  20. Oh, really? by Shoten · · Score: 3, Insightful

    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."

    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.