10 ms·
> The F-35 requires more than 8 million lines of code, compared with about 2 million for the F-16 and less than 1 million for other fourth-generation fighter ai
by LowKarmaAccount 13y ago
> The F-35 requires more than 8 million lines of code, compared with about 2 million for the F-16 and less than 1 million for other fourth-generation fighter aircraft
The F-35 is programmed in C++, while the other aircraft are programmed in Ada, which is one of the reasons that there is so much more code. When you have to code, test, and maintain 8 million lines of C++ in an environment where a single bug can be deadly, you should expect delays.
The choice of using C++ to write a system that is designed to never crash and the obvious ignorance of the "mythical man month" does not give a good impression of Lockheed's management.
- hosay123 13y ago> a system that is designed to never crash I'm pretty sure no self-respecting engineer would ever attempt to design such a thing (although many might be deluded into thinking that e.g. advanced type systems might help achieve that goal). > choice of using C++ Almost certainly not a good indicator.. much of those LOC are likely integrations from other projects. Who is to say the alternative didn't involve rewriting some more sensitive, costly-to-produce code in Ada?
- deleted 13y ago[deleted]
- olympus 13y ago> system that is designed to never crash Oh, they crash. Software on currently fielded jets crash all the time, pilots call them "software anomalies." Systems are designed to fail softly and reboot quickly (~1 minute) and sometimes do so automatically without physically crashing the jet. Sometimes the pilot won't even notice.
- iyulaev 13y agosometimes do so automatically without physically crashing the jet I hope by "sometimes" you mean "almost every time!"
- olympus 13y agoSorry, bad grammar. I meant that sometimes they reboot automatically. The systems are designed to always reboot without physically crashing the jet, but sometimes the pilot has to command the reboot themselves.
- deleted 13y ago[deleted]
- outworlder 13y ago> Systems are designed to fail softly and reboot quickly (~1 minute) and sometimes do so automatically without physically crashing the jet. Sometimes the pilot won't even notice. If that's the case, why not use something like Erlang?
- skittles 13y agoBecause you don't want to be in a high performance jet when the VM decides to do garbage collection during a critical maneuver.
- jfb 13y agoI think the difference in LOC count is likely due to the much more complicated avionics in the F-35 than the technology stack, as compared with older aircraft.
- cobrausn 13y agoThe F-35 has multiple variants, one of which is a STOVL (Short Takeoff and Vertical Landing) aircraft with a vertical flight system. The amount of code necessary to deal with that is likely a large part of the difference in LOC, not to mention the more complicated systems for weapons, radar, communications, etc... In other words, the fact that it is written in C++ tells you little more than the fact that it is written in C++ and not Ada, but that alone will tell you that they probably expanded their pool of potential programmers by a large margin.
- MichaelGG 13y ago>expanded their pool of potential programmers Is that true? I'd think that the main requirements would be experience, intelligence, security clearance, probably familiarity with avionics. Any good programmer worth working on such a project should be able to switch languages. I'd hope it's not like some corporate web site that just needs the programming equivalent of warm bodies.
- cobrausn 13y agoConsidering the number of job postings I've seen where they want N+ years of experience, I'd say it's easier to find that in C++ than Ada if they do that.
- HeyLaughingBoy 13y ago"Should" does not imply "wants to." I could switch to COBOL in probably a couple weeks, but you'd have to pay me multiples of my current salary to do so for any length of time.
- johnchristopher 13y agoWhy did they switch from ADA to c++ ?
- smackfu 13y agoMaybe all the ADA programmers retired.
- jarrett 13y agoFor anyone who's unfamiliar with the term "Mythical Man Month," it's the title of a book which argues, amongst other things, that assigning more engineers to a late software project will make it even later. The book can argue more convincingly and thoroughly than I can, but briefly: When new engineers join a project, they have to spend a lot of time familiarizing themselves with it, so they're not productive for a while. They take time away from the project's original engineers by asking a lot of questions, which actually means progress slows down. Further, more people means more complexity to manage. There will be more miscommunication, more instances of engineers' work conflicting with other engineers' work, more differences in coding style, etc.. With more than 200 people on a project, I can only imagine the nightmares. I'm not familiar with the F-35 codebase. But I have a hard time imagining it could benefit from 200+ people working on it simultaneously. I'm also skeptical about this idea of 24/7 shiftwork. Will each person will have their own little piece of the codebase that nobody else touches? If so, then why have a nightshift? Why not just have everyone work in the day, since it's all in parallel anyway? If not, how in the world can you have engineer A coding a given module on the dayshift, who then hands it off to engineer B on the nightshift? Software is not like laying bricks. You can't just come on the next shift and pick up where the last person left off. You lose all the context they had in their heads while coding, which is absolutely essential.
- outworlder 13y ago> I'm also skeptical about this idea of 24/7 shiftwork. Will each person will have their own little piece of the codebase that nobody else touches? If so, then why have a nightshift? Why not just have everyone work in the day, since it's all in parallel anyway? Because that way you can fit more people in the same facility? Otherwise, it will be unused for 8 hours each day (being optimistic).
- jarrett 13y agoSo they're running low on office space? That's a bottleneck for the F-35?
- 13y ago
- DanBC 13y agoThis website has some information about serious bugs. There are a variety of languages being used, by different industries, with either expensive war machines or expensive civil aeroplanes full of passengers or impossible to service space-craft. (http://www5.in.tum.de/~huckle/bugse.html http://www5.in.tum.de/~huckle/bugse.html)