DailyDirt: Made In The USA Rockets

from the urls-we-dig-up dept

We've covered a bunch of plans for manned missions to space from amateurs and private companies and various governments. There are three countries that have built space vehicles for people: Russia, China and the US. However, the US hasn't had a launch system for its astronauts made domestically since the retirement of the space shuttle program. NASA is getting closer to having more new launch systems made in the USA, and here are just a few links on the topic. If you'd like to read more awesome and interesting stuff, check out this unrelated (but not entirely random!) Techdirt post via StumbleUpon.

Filed Under: astronauts, launch systems, manned missions, mars, rockets, space, space exploration, spacecraft
Companies: nasa, spacex, ula


Reader Comments

Subscribe: RSS

View by: Time | Thread


  • icon
    Mason Wheeler (profile), 8 Dec 2014 @ 5:15pm

    C and C++ for rockets? You've gotta be kidding me!

    They are both horrible languages--among the very worst in existence, without exaggerating in the slightest--in one of the most crucial areas for a project like space travel: resilience.

    This isn't just hyperbole or theory; it's a historical fact. Most well-designed programming languages have features available to catch and deal with certain types of errors gracefully, or even to ensure that they're not possible in the first place. Depending on the language, these features may be turned off at times, and having one of these important safety features disabled was directly responsible for the Cluster explosion.

    But here's the thing: C and C++ don't have these safety features at all. Writing anything mission-critical in either language, therefore, really should constitute an act of criminal negligence. It's extremely disappointing to see the folks at SpaceX making such flat-out stupid design decision!

    reply to this | link to this | view in chronology ]

    • icon
      OldMugwump (profile), 8 Dec 2014 @ 10:05pm

      Re: among the very worst in existence

      They didn't say to use C and C++ for mission-critical systems, they said to learn them.

      Learning low-level, primitive languages (including assembly) teaches valuable skills that are applicable in many other areas. Every well-seasoned programmer should know some of these low-level languages - well.

      That said, despite the fact that you're correct that these languages have little or nothing in the way of "safety features", they nonetheless have a critical role to play in the software ecosystem. Almost all "high level" and "safe" languages today are implemented in C or C++, and for very good reasons (having to do with memory efficiency and fast execution).

      As such, they are not "among the very worst in existence" - they merely have strengths and weaknesses, and places where they're appropriate, and not appropriate.

      Just like all the other languages.

      [FWIW, I have written a great deal of real-time code that runs close to the metal. Some of it even has flown in rockets.]

      reply to this | link to this | view in chronology ]

    • identicon
      Lawrence D’Oliveiro, 8 Dec 2014 @ 11:55pm

      Re: C and C++ for rockets?

      JPL DOCID D-60411 specifies a standard for the use of C for programming safety-critical systems from NASA’s Jet Propulsion Laboratory. C is considered manageable for this sort of thing, C++ is not.

      reply to this | link to this | view in chronology ]

    • icon
      John Fenderson (profile), 9 Dec 2014 @ 10:00am

      Re:

      "They are both horrible languages--among the very worst in existence, without exaggerating in the slightest--in one of the most crucial areas for a project like space travel: resilience."

      Sorry, that is totally an exaggeration. There are many languages that are less protective than those.

      "But here's the thing: C and C++ don't have these safety features at all. Writing anything mission-critical in either language, therefore, really should constitute an act of criminal negligence."

      I couldn't disagree more. The lack of safety features isn't necessarily an act of criminal negligence because the software development process can (and should) mitigate the need for built-in safety features. Reliance on the language itself to enforce software quality is one of the hallmarks of substandard software development.

      What those "safer" languages do is to allow development time (and therefore manpower costs) to be reduced by allowing less rigorous development methodologies to be used without causing a total disaster. However, using those languages presents a lot of technical trade-offs in terms of memory and CPU cycle use, determinism, and other such things. Depending on the project, those tradeoffs may be unacceptable.

      reply to this | link to this | view in chronology ]

      • icon
        Mason Wheeler (profile), 9 Dec 2014 @ 10:14am

        Re: Re:

        Sorry, that is totally an exaggeration. There are many languages that are less protective than those.

        Such as? In order to ensure a fair, apples-to-apples comparison, please restrict yourself to serious languages with a non-trivial market share. Anyone can create a crap language, but actually getting it accepted by the community takes some real doing. (Such as corporate sponsorship by AT&T!)

        Reliance on the language itself to enforce software quality is one of the hallmarks of substandard software development.

        Not at all. It's a manifestation of the whole point of building computers in the first place: to automate tasks that are repetitive and boring, easily automated, and make sure they're done right every time.

        It's a sign of humility, which, Larry Wall notwithstanding, is one of the highest virtues a programmer can manifest: demonstrating that they know when something is beyond their abilities and not trying to reinvent the wheel when an existing well-proven system can do it for them?

        However, using those languages presents a lot of technical trade-offs in terms of memory and CPU cycle use, determinism, and other such things. Depending on the project, those tradeoffs may be unacceptable.

        That argument made sense back in the 80s. In the age of Raspberry Pis and Arduinos, it's a much less valid excuse.

        reply to this | link to this | view in chronology ]

        • icon
          John Fenderson (profile), 9 Dec 2014 @ 10:32am

          Re: Re: Re:

          "Such as?"

          Well, assembly comes to mind first.

          "demonstrating that they know when something is beyond their abilities and not trying to reinvent the wheel when an existing well-proven system can do it for them?"

          I'm not sure why you're bringing this up, since it isn't really related to anything I said. However, I agree: if an existing, well-proven system can meet the needs, then it should be used.

          "That argument made sense back in the 80s. In the age of Raspberry Pis and Arduinos, it's a much less valid excuse."

          Not at all. In my daily job at a major software company, we are constantly having to deal with memory & CPU cycle limitations. On modern desktop machines. In embedded systems such as on rockets, the limitations are a lot tighter and these considerations become even more important.

          In the end, my point is that different languages excel at different things. You should use the right language for the job, and to write off one of the most popular languages on the planet (considering C and C++ as if they were a single language) as always the wrong choice is just as wrong as saying it's always the right choice.

          C/C++ was designed for low and mid-level programming tasks (technically, to write operating systems in) and excels at that. It's presence in embedded systems is not automatically a bad decision. It all depends.

          reply to this | link to this | view in chronology ]

          • icon
            John Fenderson (profile), 9 Dec 2014 @ 10:37am

            Re: Re: Re: Re:

            I would be remiss if I failed to link to this excellent comparison of many different languages and their strengths and weaknesses: http://web.mit.edu/~axch/www/footshoot.html

            reply to this | link to this | view in chronology ]

          • icon
            Mason Wheeler (profile), 9 Dec 2014 @ 10:59am

            Re: Re: Re: Re:

            Well, assembly comes to mind first.

            "Assembly" isn't a language as such; it's a one-to-one mnemonic mapping of the machine code for a given processor architecture. There's no such thing as "the ASM programming language;" rather, there's x86 assembler, x64 assembler, ARM assembler, and so on.

            And even if we granted that it's a real programming language, it still doesn't fit my criteria. When's the last time you heard of a program being written in assembly?

            In my daily job at a major software company, we are constantly having to deal with memory & CPU cycle limitations. On modern desktop machines.

            And I'd bet that most of your dealing with it consists of fixing architectural problems, (such as refactoring bad algorithms to better ones with lower big-O complexity, and replacing inefficient data structures with better ones), and not micro-optimization. As a developer with extensive experience in both low-level and high-level work, I've observed that around 90% of the time that's where the big gains are found.

            You should use the right language for the job, and to write off one of the most popular languages on the planet (considering C and C++ as if they were a single language) as always the wrong choice is just as wrong as saying it's always the right choice.

            I'm sure a job might hypothetically exist somewhere, for which C is the right choice. I have yet to actually see it.

            For C++, on the other hand, I don't believe any such job exists or ever could exist. It may not be the worst programming language ever created, but it is without a doubt the worst ever to be taken seriously.

            But you don't have to take my word for it; check out what one of the most accomplished computer scientists of all time had to say on the subject, when he was honored with the Turing Award. The excuse about language-level safety being a necessary trade-off to be given away due to constrained resources was well-known to be bogus way back in the 60s, many years (and Moore cycles) before C, and I would suspect, though I don't have any documents to show as evidence, that it was invented by the folks at Bell Labs to hand-wave away the horrendous flaws in the language they inflicted upon the world.

            C/C++ was designed for low and mid-level programming tasks (technically, to write operating systems in) and excels at that.

            If by "excels" you mean "does a terrible job," then sure. As a former coworker of mine used to say, "Dennis Ritchie's true legacy is the buffer overflow." I have yet to see an OS written in C/C++ that did not require regular patching to deal with an unending stream of security vulnerabilities, the vast majority of which were directly the result of language flaws.

            reply to this | link to this | view in chronology ]

            • icon
              OldMugwump (profile), 9 Feb 2015 @ 7:12pm

              Re: Re: Re: Re: Re:

              For a long time, and maybe still today, more space systems ran Forth onboard than any other language.

              Yes, Forth. Which doesn't even have typed variables.

              reply to this | link to this | view in chronology ]

  • identicon
    Lawrence D’Oliveiro, 8 Dec 2014 @ 11:57pm

    “This move could accelerate plans to build new rocket designs made in America.”

    I thought the idea of protectionism to build up local industries went out with GATT. Barriers to competition only lead to the creation of uncompetitive products.

    reply to this | link to this | view in chronology ]

  • identicon
    Anonymous Coward, 9 Dec 2014 @ 5:23am

    "A bill in Congress might ban the use of Russian rockets to launch military payloads into space. This move could accelerate plans to build new rocket designs made in America."


    Mr. Ho, you seem to have forgotten that Russia already banned the sale of its rocket engines to the US military, making this proposed import ban pointless. (unless, of course, it was just a big bluff)

    http://www.spacepolitics.com/2014/05/13/russian-official-announces-ban-on-military-use-of-rd-1 80-engines/

    reply to this | link to this | view in chronology ]

    • identicon
      Anonymous Coward, 9 Dec 2014 @ 8:26am

      Re: (Russian rockets)

      In addition to what the AC said:

      When did the US Military use a Russian rocket to put any payload into orbit?

      As far as I know only civilian payloads would be allowed, and I can't think of any.

      reply to this | link to this | view in chronology ]

    • icon
      Michael Ho (profile), 9 Dec 2014 @ 1:29pm

      Re:

      The recent Antares rocket explosion may have been caused by a Russian engine failure.
      http://www.reuters.com/article/2014/10/31/us-space-orbital-sciences-idUSKBN0IK1YW20141031

      Als o in that link:
      The Atlas 5, one of two rockets used primarily for U.S. military missions, is powered by another Energomash engine, the RD-180.

      Moscow threatened to cut off exports of the RD-180 for U.S. military missions in response to U.S. trade sanctions spurred by Russia’s annexation of Ukraine’s Crimea peninsula. So far, however, business has continued uninterrupted, says United Launch Alliance, a Boeing and Lockheed Martin partnership that manufactures and flies the Atlas rocket.

      reply to this | link to this | view in chronology ]

  • identicon
    jim, 9 Dec 2014 @ 6:52am

    old code?

    But look at the old code? Could it have been improved. Yes, but then assembly was the main code when all this was started. C and C+ all translate to metal languages very fast and efficiently. No odd numbers, very few overflows and work tireslly till the program quits or the unit dies. Modern languages don't work that way, if the sensor dies, the programs endlessly loop.
    So we are wanting to dump on the Russians and jump to the Chinese bandwagon? You know, that would shut down the space station, limit us to forever low hill, better targets for the incoming .. And I thought congress was here to protect the nation not to sell it off to the Chinese. Damn...

    reply to this | link to this | view in chronology ]


Add Your Comment

Have a Techdirt Account? Sign in now. Want one? Register here



Subscribe to the Techdirt Daily newsletter




Comment Options:

  • Use markdown for basic formatting. (HTML is not supported.)
  • Remember name/email/url (set a cookie)

Close

Add A Reply

Have a Techdirt Account? Sign in now. Want one? Register here



Subscribe to the Techdirt Daily newsletter




Comment Options:

  • Use markdown for basic formatting. (HTML is not supported.)
  • Remember name/email/url (set a cookie)

Follow Techdirt
Techdirt Gear
Shop Now: Copying Is Not Theft
Advertisement
Report this ad  |  Hide Techdirt ads
Essential Reading
Techdirt Deals
Report this ad  |  Hide Techdirt ads
Techdirt Insider Chat
Advertisement
Report this ad  |  Hide Techdirt ads
Recent Stories
Advertisement
Report this ad  |  Hide Techdirt ads

Close

Email This

This feature is only available to registered users. Register or sign in to use it.