Live data from Hacker News

The C++ standard for the F-35 Fighter Jet [video]

youtube.com

441–450 of 451 posts

Re: The C++ standard for the F-35 Fighter Jet [video]

#441

Earlier quoted context omitted.

I've heard that MSVC does (did?) that, but if so that's an MSVC problem. gcc and clang don't do that. https://godbolt.org/z/nasoWeq5M

WDYM? Vector is an abstraction over dynamically sized arrays so sure it does use heap to store its elements.

[deleted]

Re: The C++ standard for the F-35 Fighter Jet [video]

#442

Earlier quoted context omitted.

In many regards, the F-35 was the first aircraft explicitly engineered for the requirements of drone-centric warfare. Its limitations are that this capability was grafted onto an older (by US standards) 5th generation tech stack that wasn't designed for this role from first principles. I think this is what ultimately limited production of the F-22, which is not upgradeable even to the standard of the F-35 for drone-c…

This is simply not what happened historically. Drones were not discussed much when the requirements for the F-35 were formed. The F-22 was considered very open and upgradable for it's era. It's just that freakin' old where FireWire was the unproven new hotness. Current AF efforts do focus on drone and loyal wingman concepts, but these don't have much material impact on avionics. There everything the AF is talking abo…

The F-35 is old enough that this is probably true originally but it had plenty of native capability built-in that could be applied to that domain.

Operating in a drone threat environment, which is what I was talking about primarily, is mostly unrelated to loyal wingman and related technologies.

Re: The C++ standard for the F-35 Fighter Jet [video]

#443
post #378

She said it could be estimated how many cycles it takes to complete a calculation, but there are a lot of different paths which take different cycles. How does the code work with timing? It counts cycles?

Major commercial airliners have system controllers where the measuring is done as follows: Write into the code some instruction which flips some output bit, hook the system up to a test rig and then get an oscilloscope. With the oscilloscope measure how long it takes between bit flips. The instructions for the measurements get commented out for the final release. Yes, I have done this. By the way, these measurements…

And it is tested with inputs that would go trough all the code branches right?

Does it have an upper limit for the longest run, or all branches have to have the same duration? I'm asking because I am curious if the function execution time being a constant is part of the program working correctly (scheduling). Somewhat related to how early programs worked correctly for 4.77 MHz and faster clock on CPU would break the program https://en.wikipedia.org/wiki/Turbo_button

I am working in free time on code for a controller that has to do time sensitive operations (actuate a solenoid/injector for a couple milliseconds) and I am thinking on how to correctly trigger the code so that the timing is accurate.

Re: The C++ standard for the F-35 Fighter Jet [video]

#444
post #372

Earlier quoted context omitted.

No they won't. DoD is small compared to the rest of the software market. You get better quality and lower cost with COTS than with custom solutions, unless you spend a crap ton . The labor market for software's no different. Everyone likes to crap on C++ because it's (a) popular and (b) tries to make everyone happy with a ton of different paradigms built-in. But you can program nearly any system with it more scalably…

> more scalably than anything else That's quite debatable. C++ is well known to scale poorly.

Yet the largest codebases I know of are either C, Fortran, or C++. Who's doing anything really big (in terms of LOC) in another language?

Re: The C++ standard for the F-35 Fighter Jet [video]

#445
post #372

Earlier quoted context omitted.

> more scalably than anything else That's quite debatable. C++ is well known to scale poorly.

Yet the largest codebases I know of are either C, Fortran, or C++. Who's doing anything really big (in terms of LOC) in another language?

C/C++ basically demand that codebases be large. And we hear all the time about software troubles written in these languages. Finding reports of this are almost endless.

I think people who write complex applications in more sane languages end up not having to write millions of lines of code that no one actually understands. The sane languages are more concise and don't require massive hurdles to try and bake in saftey into the codebase. Safety is baked into the language itself.

Re: The C++ standard for the F-35 Fighter Jet [video]

#446
post #382

Earlier quoted context omitted.

I agree. First of all I don't think Ada is a difficult language to learn. Hire C++ programmers and let them learn Ada. Secondly, when companies say "we can't hire enough X" what they really mean is "X are too expensive". They probably have some strict salary bands and nobody had the power to change them. In other words there are plenty of expensive good Ada and C++ programmers, but there are only cheap crap C++ progr…

I agree - Ada is very similar to Pascal, and much faster to pick up than, say, C++.

C++ is not that hard to pick up. But writing error free C++ code is hard as hell.

Re: The C++ standard for the F-35 Fighter Jet [video]

#447

Earlier quoted context omitted.

Yes but like a certification, that clearance is yours, not the companies. You take it with you. It lasts a good while. There are plenty of government companies that would love you if you had one. Northrop, Lockheed, Boeing, etc.

An Engineering degree and a TS is basically a guaranteed job. They might not be the flashiest FAANG jobs, but it is job security. In this downturn where people talk about being unable to find jobs for years in big cities, I look around my local area and Lockheed, BAE, Booze Allen, etc they have openings.

While getting lunch at an Amazon tech day a couple of years ago, I overheard somebody talking about how easy it was to place somebody with a clearance and AWS certifications. Now, this was Washington, DC, but I doubt it's the only area where that's true.

Re: The C++ standard for the F-35 Fighter Jet [video]

#448
post #385

Earlier quoted context omitted.

Go was built because C++ does not scale. Anybody that's ever used a source based distro knows that if you're installing/building a large C++ codebase, better forget your PC for the day because you will not be using it. Rust also applies here, but at least multiplatform support is easier, so I don't fault it for slow build times

Go was made because Rob Pike didn't want to do Java.

There were 3 people making the language, it wasn't a one man thing.

Re: The C++ standard for the F-35 Fighter Jet [video]

#449
post #431
post #385

Earlier quoted context omitted.

Go was built because C++ does not scale. Anybody that's ever used a source based distro knows that if you're installing/building a large C++ codebase, better forget your PC for the day because you will not be using it. Rust also applies here, but at least multiplatform support is easier, so I don't fault it for slow build times

Go was created because Rob Pike hates C++, notice Plan 9 and Inferno don't have C++ compilers, even though C++ was born on UNIX at Bell Labs. As for compilation times, yes that is an issue, they could have switched to Java as other Google departments were doing, with some JNI if needed. As sidenote, Kubernetes was started in Java and only switching to Go after some Go folks joined the team and advocated for the rewri…

A lot of people hate C++, that doesn't grant you the ability to make a language, however very few have the opportunity to create a new language out of free time provided by said language taking too long to compile.

I do not know why they did not go with java, I imagine building a java competitor (limbo) and then being forced to use it is kind of demeaning. but again, this would all be conjecture.

Re: The C++ standard for the F-35 Fighter Jet [video]

#450

Earlier quoted context omitted.

I worked on a pure C system early in my career. They implemented multiple inheritance (a bit like Perl/Python MRO style) in pure C. It was nuts, but they didn't abuse it, so it worked OK. Also, serious question: Are they any GUI toolkits that do not use multiple inheritance? Even Java Swing uses multiple inheritance through interfaces. (I guess DotNet does something similar.) Qt has it all over the place.

One could say toolkits done in C++ use multiple inheritance because C++ doesn't have interfaces though.

This is a good point. It would be better for me to say pure abstract base classes... that simulate interfaces in C++. That said, I can say from experience that Qt does more than multi-inheritance with pure abstract base classes. I think the QPainter class is mixed into a few places, and that class is fuckin' major -- it is responsible to paint every (cross platform) pixel in the whole framework.
Post reply on HN