Free Republic
Browse · Search
News/Activism
Topics · Post Article

To: U-238

Ever worked on a software project in the millions of lines of code (mega-LOC)?

I have. cisco’s IOS. Watched it grow from hundreds of thousands to millions of LOC. Last I knew it was over 8 MLOC.

Once you get above the, oh, 500K to 1 MLOC range... most developers simply cannot hold the complexity of the whole system in their heads any more. Out of the entire company’s engineering department, there were only about 12 of us who could hold millions (plural) of LOC complexity in our heads for any length of time. That’s not “memorizing” the code, but simply knowing that “something happens like this over there” in the system map, so that when you make a change “here,” you know you must do something accordingly “over there.”

Most developers tend to lose this ability, and the result is bugs. Some easy to find, some horribly subtle and seemingly random.

Once you get to 10’s of MLOC, you’d better not be using something like C++ or C, because you’ll NEVER, EVER close all the bugs. NEVER. Every C++ system I know of at that size ships with known bugs that they haven’t found yet. Dozens to hundreds of known bugs will be shipped.

The way Boeing got a handle on the situation in the FMS system of the 777 project was to start two competing projects - one in C++ and one in Ada. After awhile, they evaluated which system was closing bugs faster, not writing as many new ones, making deadlines with more certainty. It was the Ada effort. So they closed down the C++ effort and put everything into Ada.

Now, this doesn’t surprise me in the slightest. Ada was created back in the 80’s to enable large s/w systems like these... but the problem is that most of the kids coming out of CS/EE schools today aren’t taught Ada, nor are they taught real-world, “Big System” s/w engineering. They don’t know jack, really. They come out knowing C/C++ and Java... and how to code their silly social media websites... and this corrupts their minds. How you think about large system design is, in part, predicated upon your implementation language.

Anyway, due to lack of newbie engineers trained in something other than C/C++, the F-35 systems are written in C/C++, last I looked. This is one of the reasons why I think we should just kill it now.

C++ in large systems leads to bugs that are hard to replicated, hard to find and a need for lots of static code analysis to try to find the bugs in the source. Seen it many times in industry. C++ is a horrible implementation language unless you literally disable many so-called “features” in the language to preclude them ever being used.


25 posted on 04/02/2012 6:39:11 AM PDT by NVDave
[ Post Reply | Private Reply | To 3 | View Replies ]


To: NVDave

While I agree with much of what you say about C++, Java is much better at large systems. The biggest problem is lack of good programmers and changing requirements. Changing requirements is the nature of the beast nothing to be done about that, but most programmers suck, only a few really good ones out there. Sadly the butt kissers and bean counters are the ones in charge so the good programmers rarely get the chance to make a difference.


28 posted on 04/02/2012 8:02:14 AM PDT by jpsb
[ Post Reply | Private Reply | To 25 | View Replies ]

To: NVDave
Last I knew it was over 8 MLOC.
That is alot.
41 posted on 04/02/2012 6:34:53 PM PDT by U-238
[ Post Reply | Private Reply | To 25 | View Replies ]

To: NVDave

Very Interesting perspective

:)


42 posted on 04/02/2012 6:36:28 PM PDT by U-238
[ Post Reply | Private Reply | To 25 | View Replies ]

Free Republic
Browse · Search
News/Activism
Topics · Post Article


FreeRepublic, LLC, PO BOX 9771, FRESNO, CA 93794
FreeRepublic.com is powered by software copyright 2000-2008 John Robinson