Stories
Slash Boxes
Comments

SoylentNews is people

posted by martyb on Thursday November 05 2015, @07:55PM   Printer-friendly
from the the-sky-is-NOT-the-limit dept.

If you thought Fortran and assembly language programming is pointless and purely for old-timers, guess again.

In an interview with Popular Mechanics this month, the manager of NASA's Voyager program Suzanne Dodd said the retirement of the project's last original engineer left the space agency with a shortage of people capable of communicating with the 40-year-old craft.

[...] "Although, some people can program in an assembly language and understand the intricacy of the spacecraft, most younger people can't or really don't want to," Dodd was quoted as saying.

With high-level languages now the standard for developers, knowing how to fluently code in assembly has become a specialized skill, as has fluency in languages such as Fortran. While obscure, the skill set is potentially lucrative. Along with NASA's aging fleet of spacecraft, many businesses still rely on languages such as Fortran or COBOL for specialized tasks and critical infrastructure.

[...] According to CNN, 80-year-old Larry Zottarelli is retiring from NASA next year, and he is the last original Voyager probe engineer. He will be replaced by a younger engineer, who has spent a year learning the ropes, we're told, proving that knowing a little bit about yesterday's technology can go a long way into the future.


Original Submission

This discussion has been archived. No new comments can be posted.
Display Options Threshold/Breakthrough Mark All as Read Mark All as Unread
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
  • (Score: 2) by ikanreed on Thursday November 05 2015, @08:10PM

    by ikanreed (3164) on Thursday November 05 2015, @08:10PM (#259055) Journal

    Legacy languages will be valuable for a long time.

    Once someone finally unseats Oracle and Microsoft, we'll see people talking about how much money you can make by being a Java or C# developer, and these kids just don't appreciate the money, as everyone sane moves onto something that works a little bit better, and develops new and fun applications instead of being stuck in a bog of perpetual maintenance.

    • (Score: 2, Insightful) by nitehawk214 on Thursday November 05 2015, @08:15PM

      by nitehawk214 (1304) on Thursday November 05 2015, @08:15PM (#259059)

      People have been saying Java will be the new COBOL since the early 2000's. I did not want to believe it. However I am surprised I am still doing Java since the 90's. I expect to still be doing it in another 10 years. Its evolution has been slowing since. I am concerned that Java 8 is the last version. Not because the language becomes extinct, but because there is no danger of it becoming such.

      --
      "Don't you ever miss the days when you used to be nostalgic?" -Loiosh
    • (Score: 5, Interesting) by Aichon on Thursday November 05 2015, @09:31PM

      by Aichon (5059) on Thursday November 05 2015, @09:31PM (#259104)

      My first professional software development work was an internship in 2002 with a NASA contractor (Lockheed Martin) doing FORTRAN development for some meteorological software that had been in continuous use since the early '80s. I got to work with data streaming in from NORAD stations, was pulling down satellite imagery, and had a real sense that the work I was doing was of actual value. At one of my later internships (with a branch of Jacobs Engineering), we were tasked with updating the database used to store all of the information relating to the lunar samples. The then-current (in 2005) database was running on DEC machines from the late '70s in a program called Datatrieve, if memory serves. I was able to learn a whole lot of really interesting stuff, both about some of those old database formats as well as about how the lunar samples are cataloged and stored (I even got to suit up in a "bunny" suit and go into the clean room/vault at JSC where they keep all of the samples). Between the two jobs, I got to work with and see some ridiculously fascinating stuff as a college intern, and there was obviously a very high demand for people like me who were willing to learn those old technologies and keep them working in the new millennium.

      And yet, despite that, I didn't pursue a job with either of those companies, nor did I even consider dropping a resume off with a space industry company at all. It had nothing to do with the technologies and everything to do with the cultures of large companies and government contractors. Too much red tape, too slow moving, too much maintenance-as-a-career, and too many office (and actual) politics for my taste. That work isn't for me, because I discovered that my preferences lie elsewhere.

      But for those who thrive in those cultures (or who have no problems with them), I'd definitely encourage them to take a look, since it's a great business to be in. With that first internship, the two main guys on the project had found a job that they loved and had followed it through five or six different NASA contractors as the project got moved between the various players in the space industry over the course of two and a half decades. They had been there at its inception and were happy to extend and maintain it for as long as it existed or until they retired. Likewise, with the second internship, the folks I was working with seemed to either love the culture or lack the ambition to try something else out. Either way, they were content with the work and had years to go with it since shifts in those big government jobs take years to happen.

      All of which is to say, I heartily agree with what you said. There will always be a massive demand for people willing to learn legacy languages, so long as we keep replacing the big ones every couple of decades. And those jobs tend to be very stable ones that can be turned into careers unto themselves. If that's the sort of thing you're keen on, then it's a great direction to go in. It's not for me, but that's okay since I found something else I love to work on instead. To each their own.

  • (Score: 2, Insightful) by Anonymous Coward on Thursday November 05 2015, @08:37PM

    by Anonymous Coward on Thursday November 05 2015, @08:37PM (#259074)

    Yeah a highly sought after skill... at most they need like 2 or 3 guys. One of them is already doing it. I know let's make an article and convince 20K gullible morons with a stupid article that they can learn assembly and go work for NASA.

    I know that NY Life has something like 60 Assembly programmers to run all their legacy apps... They needed more so they would train you and you can spend years working on Assembly programs building a skill that is entirely unmarketable elsewhere... up until last year when they outsourced the whole thing to India.

    • (Score: 4, Insightful) by moondoctor on Thursday November 05 2015, @09:03PM

      by moondoctor (2963) on Thursday November 05 2015, @09:03PM (#259090)

      While I agree that they're exaggerating the jobs available to those that know or learn assembly, dismissing it is a mistake. Programming in assembly in less than a meg is very good at teaching you about how to approach things logically and efficiently. Honestly, in my book if you can't write at least a bit of machine code you can't truly understand computers...

      • (Score: 0) by Anonymous Coward on Thursday November 05 2015, @09:31PM

        by Anonymous Coward on Thursday November 05 2015, @09:31PM (#259105)

        As someone who first programmed in BASIC and very soon after in hand-translated machine language (couldn't afford or get access to an assembler until much later), I must say that knowing assembly language gets to be less and less useful as the years go by, even for educational purposes, to 99% of programmers. I would say that knowing how to program in C fulfills this basic requirement of "knowing how a computer works" at this point: if you can master pointers and the difference between heap-allocated and stack allocated and an array of references to objects versus an array of objects, I'd say you have all you need. Oh, and learn that you want to keep things (code/data) small and access to them as linear in memory as possible in order for them to fit in the CPU cache.

        • (Score: 2) by moondoctor on Thursday November 05 2015, @10:10PM

          by moondoctor (2963) on Thursday November 05 2015, @10:10PM (#259119)

          Yeah, overall you're right. You can get by fine without knowing what a processor is actually doing. I would still argue that having to give a processor it's native command directly will change a person's understanding of how computers really work, and make them a better programmer.

        • (Score: 0) by Anonymous Coward on Friday November 06 2015, @04:48AM

          by Anonymous Coward on Friday November 06 2015, @04:48AM (#259284)

          I must say that knowing assembly language gets to be less and less useful as the years go by, even for educational purposes, to 99% of programmers.

          Is it just a coincidence that 99% of programmers are garbage? Maybe they need to understand what they're doing rather than just relying on their toy languages all the time.

      • (Score: 2) by Nerdfest on Thursday November 05 2015, @09:49PM

        by Nerdfest (80) on Thursday November 05 2015, @09:49PM (#259115)

        True, but there the same does not really apply for Fortran. There are better languages, and Fortran does not really lend itself to writing easily maintained code. It's still miles better than COBOL though.

        • (Score: 0) by Anonymous Coward on Friday November 06 2015, @05:26PM

          by Anonymous Coward on Friday November 06 2015, @05:26PM (#259549)

          and Fortran does not really lend itself to writing easily maintained code.

          Every person who I've heard say something like that turned out to be someone who never programmed in FORTRAN. Where does that incorrect line of thinking originate? What is it about FORTRAN that makes it un-maintainable? Is it the GOTO thing? You know, where Dijkstra's paper was blown out of proportion and suddenly GOTO equals bad programming (Knuth, among others doesn't agree with this, by the way). For what it's worth, I've written millions of lines of FORTRAN and I don't know if I ever used a GOTO, but I have a young colleague who had to interface FORTRAN code and he was of the understanding that GOTO's are an essential part of the language! Is that where you're coming from too? Because it isn't correct if that is the case.

      • (Score: 2) by stormwyrm on Friday November 06 2015, @01:11AM

        by stormwyrm (717) on Friday November 06 2015, @01:11AM (#259200) Journal

        Some choice quotes from Donald Knuth about this very thing:

        "By understanding a machine-oriented language, the programmer will tend to use a much more efficient method; it is much closer to reality." -- TAOCP 1st Ed, Volume 1, Preface.

        "People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird." -- TAOCP Volume 1, Fasc. 1

        --
        Numquam ponenda est pluralitas sine necessitate.
    • (Score: 3, Insightful) by JoeMerchant on Thursday November 05 2015, @09:29PM

      by JoeMerchant (3937) on Thursday November 05 2015, @09:29PM (#259103)

      You think their readership reaches 20K people who might be influenced? Not bloody likely.

      Learning the older / esoteric languages seems like a skill to develop on-the-job at a company you already have some security with. Stepping out and learning Hitachi COBOL 2002 on spec and then looking for a job sounds like a formula to get yourself locked into a job in west BFE with no prospects of advancement or transfer. Now, if you already live in west BFE and like it there and know they need a Hitachi COBOL 2002 guy and you're the most likely candidate if you get yourself some dusted skillz, that's a reasonable thing to think about.

      --
      Україна досі не є частиною Росії Слава Україні🌻 https://news.stanford.edu/2023/02/17/will-russia-ukraine-war-end
      • (Score: 3, Insightful) by Common Joe on Friday November 06 2015, @05:46AM

        by Common Joe (33) <common.joe.0101NO@SPAMgmail.com> on Friday November 06 2015, @05:46AM (#259306) Journal

        I was going to say something like what you said. The problem is that there is no loyalty anywhere, so when you sign up for a dead-end language like FORTRAN, there are only very limited places to use it and they may downsize you at any time. The businesses of today have beaten it into our heads: stay fresh or be out of a job. Those who use these languages well should be commanding a high price because they should be hard to find. If you are out of a job after using FORTRAN or working on remote satellites, you'll probably have a very hard time in the job market proving your worth in today's world $LatestFad.

        • (Score: 2) by JoeMerchant on Friday November 06 2015, @07:16PM

          by JoeMerchant (3937) on Friday November 06 2015, @07:16PM (#259602)

          Maybe it's because BASIC was my first programming language, but I feel like if you can't learn Fortran in your sleep and be reasonably competent inside a week, maybe you should consider a career in something less programmy?

          I had a "sleeper" of a Fortran class in 1984, then didn't do anything at all with it until 2007 - it wasn't hard at all to understand after all that time. My job in 2007-8 was to port the Fortran to C++ and parallelize the execution while getting identical results, maybe this is different from "programming in" Fortran, but, again, it doesn't seem like as hard a language to learn as all the new object thingies.

          I suppose if somebody still has a huge legacy system coded in Fortran, that could be a challenge, but I would think the challenge is more in the huge system than in the Fortran syntax. If you've "trained to" the huge system for a couple of years, whoever is dependent on that system would be wise to keep you around - they might find another Fortran speaking fossil easily enough, but never one that knows their proprietary pile of spaghetti like someone who has worked it for years.

          --
          Україна досі не є частиною Росії Слава Україні🌻 https://news.stanford.edu/2023/02/17/will-russia-ukraine-war-end
    • (Score: 0) by Anonymous Coward on Friday November 06 2015, @04:44AM

      by Anonymous Coward on Friday November 06 2015, @04:44AM (#259282)

      Not everything is about jobs; education is important in and of itself. Learning assembly can help you understand what is happening in the background. It would help if a lot of these Java-type losers understood what the hell they are doing.

  • (Score: 4, Interesting) by mendax on Thursday November 05 2015, @08:58PM

    by mendax (2840) on Thursday November 05 2015, @08:58PM (#259084)

    I have always enjoyed writing assembly language programs. The fact that I haven't done so in over 25 years doesn't mean anything. I found the 80x86 instruction set to be completely boring and stuck with high-level languages. Of course, the C compilers available today are so good at optimizing that one really doesn't need assembly for much anymore, unless you're writing something that needs to be very tight and use very little memory.

    FORTRAN is hardly boring. One look at the FORTRAN source code for the MIT Adventure game lets you know that you are in for an interesting challenge if you want to change it.

    On the subject of optimizing compilers and FORTRAN, the first FORTRAN compiler from IBM actually was an optimizing compiler, and a rather good one at that. Its designers, John Backus and company, knew that if it was going to be successful it had to produce code nearly as good as what humans could produce. Slow, bloated programs were not popular in those days. Consider that the IBM 704, the computer the first compiler was created for, only ran at around 12,000 instructions per second and had something like 4k words of memory. What you're using now to read this posting executes billions per second. Something to think about.

    --
    It's really quite a simple choice: Life, Death, or Los Angeles.
    • (Score: 2) by moondoctor on Thursday November 05 2015, @09:14PM

      by moondoctor (2963) on Thursday November 05 2015, @09:14PM (#259095)

      "Slow, bloated programs were not popular in those days."

      I'd go so far as to say that they weren't tolerated. They sure are now! That ever increasing overhead has bred laziness. Machines execute staggering amounts of code these days, but don't get that much faster (or stable!) in real life use.

      • (Score: 2) by SanityCheck on Thursday November 05 2015, @10:22PM

        by SanityCheck (5190) on Thursday November 05 2015, @10:22PM (#259129)

        Bloated programs are preferred by cloud providers as they pad their pockets.

        Regardless I try to optimize even the most innocuous things, but then I have to spin up more than required resources anyway to leave some breathing room less I be awaken in middle of the night by the China branch.

    • (Score: 3, Interesting) by stormwyrm on Thursday November 05 2015, @10:36PM

      by stormwyrm (717) on Thursday November 05 2015, @10:36PM (#259138) Journal
      I'd hardly call the 80x86 instruction set boring. It is so irregular and unorthogonal that writing highly optimised code for it is an interesting challenge. Michael Abrash wrote a book back in the day called the Zen of Assembly Language about the art of doing so. But these days the performance gains from highly optimised assembly language on modern desktop computers are essentially pointless for all but the most specialised applications, so it's not worth the effort otherwise. Compilers produce code that runs fast enough for almost all applications and even if you could in theory tighten things up with assembly, perhaps even achieve substantial performance gains that way, the compiled code is usually more than good enough to make the effort not worth the bother. It would have made sense up until the late nineties or so I think, but definitely not today. These days we have the silicon that can tolerate us being such slackers.
      --
      Numquam ponenda est pluralitas sine necessitate.
      • (Score: 0) by Anonymous Coward on Friday November 06 2015, @03:39AM

        by Anonymous Coward on Friday November 06 2015, @03:39AM (#259265)

        X86 is the hardest instruction set I had to learn because it was so damn filled with restrictions, special cases, and few registers. I never felt that it should be programmed by hand--only used as the target code of a compiled language. It was also about the worst ISA to teach someone assembly language programming for that reason. More straightforward ISAs included Motorolla 68000 or the 6502. Nowadays, ARM is a good ISA. X86 is just a pointless trainwreck.

        • (Score: 2) by stormwyrm on Friday November 06 2015, @04:06AM

          by stormwyrm (717) on Friday November 06 2015, @04:06AM (#259269) Journal

          X86 is the hardest instruction set I had to learn because it was so damn filled with restrictions, special cases, and few registers.

          That is precisely what makes programming x86 so interesting, as you have to hack your way around these restrictions to get anything done. To be able to get stuff done quickly is a whole other ability that verges on black magic. I have never seen any compiler that can compete in performance with well-optimised x86 assembly done by hand. I agree 68000 was a much more straightforward ISA, but the 6502? I remember programming machine language for that as well (as the 6510 in my old C-64) and I remember that it was even less straightforward than x86, with even more restrictions and special cases and even fewer registers. It was used by Apple, Commodore, and Atari back in the day because it was so cheap, and the programmers of the day had the ability to race the beam and work around the limitations of their platforms to do their wizardry. On the other hand, these regular architectures like m68k and ARM are fairly boring to program in assembly for by comparison, so much so that a machine could do it, and should do it in most cases.

          --
          Numquam ponenda est pluralitas sine necessitate.
          • (Score: 2) by sjames on Friday November 06 2015, @06:15AM

            by sjames (2882) on Friday November 06 2015, @06:15AM (#259319) Journal

            Back in the day, optimizing compilers weren't so optimal and the machines were slow (by today's standards) such that going to assembly crossed significant thresholds. It allowed us to do things that just weren't possible in C (and especially in BASIC). These days not so much. The C compiler will produce asm that is as fast or faster than what a skilled programmer might produce.

            C is the new assembly language. If your Java or Python program isn't quite fast enough at some critical point, write that part in C and call it. Even in the rare case that you need some special feature of the processor not supported in C, it makes more sense to wrap a bit of inline assembly in a C function.

  • (Score: 3, Insightful) by meisterister on Thursday November 05 2015, @09:05PM

    by meisterister (949) on Thursday November 05 2015, @09:05PM (#259092) Journal

    and I will, thank you.

    --
    (May or may not have been) Posted from my K6-2, Athlon XP, or Pentium I/II/III.
  • (Score: 0) by Anonymous Coward on Friday November 06 2015, @01:46AM

    by Anonymous Coward on Friday November 06 2015, @01:46AM (#259222)

    Good languages, but the minimum feature set demanded by the platforms used by the target audiences keeps expanding and they stopped trying to keep up long ago.

    • (Score: 0) by Anonymous Coward on Friday November 06 2015, @05:29PM

      by Anonymous Coward on Friday November 06 2015, @05:29PM (#259551)

      but the minimum feature set demanded by the platforms used by the target audiences keeps expanding and they stopped trying to keep up long ago.

      You really don't know what you're talking about [wikipedia.org], do you?

  • (Score: 0) by Anonymous Coward on Friday November 06 2015, @05:50AM

    by Anonymous Coward on Friday November 06 2015, @05:50AM (#259308)

    learn FORTRAN.