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.- 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. [url]
- SpaceX software engineers answered some AMA questions a while back, saying that a mission to Mars might take 5-10 years. They also advised people to learn C and C++ and to work on programming side projects to develop skills. [url]
- NASA has completed a successful test of its Orion spacecraft on a United Launch Alliance Delta IV Heavy rocket which took the capsule to an altitude of 3,604 miles on its second orbit around the earth. No one was aboard on this test mission, but this is NASA's next generation vehicle for getting astronauts into (deep) space -- a space craft that could potentially do much more than previous Apollo missions. [url]
Thank you for reading this Techdirt post. With so many things competing for everyone’s attention these days, we really appreciate you giving us your time. We work hard every day to put quality content out there for our community.
Techdirt is one of the few remaining truly independent media outlets. We do not have a giant corporation behind us, and we rely heavily on our community to support us, in an age when advertisers are increasingly uninterested in sponsoring small, independent sites — especially a site like ours that is unwilling to pull punches in its reporting and analysis.
While other websites have resorted to paywalls, registration requirements, and increasingly annoying/intrusive advertising, we have always kept Techdirt open and available to anyone. But in order to continue doing so, we need your support. We offer a variety of ways for our readers to support us, from direct donations to special subscriptions and cool merchandise — and every little bit helps. Thank you.
–The Techdirt Team
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
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!
[ link to this | view in chronology ]
Re: among the very worst in existence
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.]
[ link to this | view in chronology ]
Re: C and C++ for rockets?
[ link to this | view in chronology ]
Re:
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.
[ link to this | view in chronology ]
Re: Re:
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!)
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?
That argument made sense back in the 80s. In the age of Raspberry Pis and Arduinos, it's a much less valid excuse.
[ link to this | view in chronology ]
Re: Re: Re:
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.
[ link to this | view in chronology ]
Re: Re: Re: Re:
[ link to this | view in chronology ]
Re: Re: Re: Re: Re:
[ link to this | view in chronology ]
Re: Re: Re: Re:
"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?
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.
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.
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.
[ link to this | view in chronology ]
Re: Re: Re: Re: Re:
Yes, Forth. Which doesn't even have typed variables.
[ link to this | view in chronology ]
“This move could accelerate plans to build new rocket designs made in America.”
[ link to this | view in chronology ]
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/
[ link to this | view in chronology ]
Re: (Russian rockets)
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.
[ link to this | view in chronology ]
Re:
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.
[ link to this | view in chronology ]
old code?
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...
[ link to this | view in chronology ]