| |
| ▲ | dexterous 11 hours ago | parent | next [-] | | I agree that the "there aren't enough programmers for language X" argument is generally flawed. Acceptable cases would be niches like maintenance of seriously legacy or dying platforms. COBOL anyone? But, not because I think schools and colleges would jump at the opportunity and start training the next batch of students in said language just because some government department or a bunch of large corporations supported and/or mandated it. Mostly because that hasn't actually panned out in reality for as long as I can remember. Trust me, I _wish_ schools and colleges were that proactive or even in touch with with the industry needs, but... (shrug!) Like I said, I still think the original argument is flawed, at least in the general case, because any good organization shouldn't be hiring "language X" programmers, they should be hiring good programmers who show the ability to transfer their problem solving skills across the panopticon of languages out there. Investing in getting a _good_ programmer upskilled on a new language is not as expensive as most organizations make it out to be. Now, if you go and pick some _really obscure_ (read "screwed up") programming language, there's not much out there that can help you either way, so... (shrug!) | |
| ▲ | exDM69 14 hours ago | parent | prev | next [-] | | > If the DoD enforces the requirement for Ada, Universities, job training centers, and companies will follow DoD did enforce a requirement for Ada but universities and others did not follow. The JSF C++ guidelines were created for circumventing the DoD Ada mandate (as discussed in the video). | | |
| ▲ | p_l 10 hours ago | parent [-] | | TL;DR Ada programmers were more expensive | | |
| ▲ | adolph 9 hours ago | parent [-] | | Since when was expense a problem for defense spending? In the video, the narrator also claims that Ada compilers were expensive and thus students were dissuaded from trying it out. However, in researching this comment I founds that the Gnat project has been around since the early 90s. Maybe it wasn't complete enough until much later and maybe potential students of the time weren't using GNU? The GNAT project started in 1992 when the United States Air Force awarded New
York University (NYU) a contract to build a free compiler for Ada to help
with the Ada 9X standardization process. The 3-million-dollar contract
required the use of the GNU GPL for all development, and assigned the
copyright to the Free Software Foundation.
https://en.wikipedia.org/wiki/GNAT | | |
| ▲ | 0xffff2 7 hours ago | parent | next [-] | | Take a look at job adds for major defense contractors in jurisdictions that require salary disclosure. Wherever all that defense money is going, it's not engineering salaries. I'm a non-DoD government contractor and even I scoff at the salary ranges that Boeing/Lockheed/Northrup post, which often feature an upper bound substantially lower than my current salary while the job requires an invasive security clearance (my current job doesn't). And my compensation pales in comparison to what the top tech companies pay. | |
| ▲ | p_l 5 hours ago | parent | prev | next [-] | | Since on paper government cares about cost efficiency and you have to consider that in your lobbying materials. Also it enables getting cheaper programmers who where possible might be isolated from the actual TS materiel to develop on the cheap so that the profit margin is bigger. It gets worse outside of the flight side JSF software - or so it looks like from GAO reports. You don't turn around a culture of shittiness that fast, and I've seen earlier code in the same area (but not for JSF) by L-M... and well, it was among the worst code I've seen. Including failing even basic requirement of running on a specific version of a browser at minimum. | |
| ▲ | jll29 8 hours ago | parent | prev [-] | | The DOD could easily have organized Ada hackathons with a lot of prize money to "make Ada cool" if they had chosen to in order to get the language out of the limelight. They could also have funded developing a free, open source toolchain. | | |
| ▲ | jandrese 6 hours ago | parent | next [-] | | Ada would never have been cool. Ironically I remember one of the complaints was it took a long time for the compilers to stabilize. They were such complex beasts with a small userbase so you had smallish companies trying to develop a tremendously complex compiler for a small crowd of government contractors, a perfect recipe for expensive software. I think maybe they were just a little ahead of their time on getting a good open source compiler. The Rust project shows that it is possible now, but back in the 80s and 90s with only the very early forms of the Internet I don't think the world was ready. | | |
| ▲ | skepti3 6 hours ago | parent [-] | | Out of curiosity: 1: If you had to guess, how high is the level of complexity of rustc? 2: How do you think gccrs will fare? 3: Do you like or dislike the Rust specification that originated from Ferrocene? 4: Is it important for a systems language to have more than one full compiler for it? | | |
| ▲ | jandrese 6 hours ago | parent [-] | | Given how much memory and CPU time is burned compiling Rust projects I'm guessing it is pretty complex. I'm not deep enough into the Rust ecosystem to have solid opinions on the rest of that, but I know from the specification alone that it has a lot of work to do every time you execute rustc. I would hope that the strict implementation would reduce the number of edge cases the compiler has to deal with, but the sheer volume of the specification works against efforts to simplify. |
|
| |
| ▲ | skepti3 6 hours ago | parent | prev | next [-] | | > They could also have funded developing a free, open source toolchain. If the actual purpose of the Ada mandate was cartel-making for companies selling Ada products, that would have been counter-productive to their goals. Not that compiler vendors making money is a bad thing, compiler development needs to be funded somehow. Funding for language development is also a topic. There was a presentation by the maker of Elm about how programming language development is funded [0]. [0]: https://youtube.com/watch?v=XZ3w_jec1v8 | | |
| ▲ | adolph 3 hours ago | parent [-] | | Is the Gnat compiler not sufficiently free and open source? It does not fulfill the comment calling for "toolchain" however. Edit: Thanks for that video. It is an interesting synthesis ad great context. |
| |
| ▲ | p_l 3 hours ago | parent | prev [-] | | GNAT exists because DoD funded a free, open source toolchain. |
|
|
|
| |
| ▲ | lallysingh 15 hours ago | parent | prev | next [-] | | 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 than anything else. | | |
| ▲ | adrianN 12 hours ago | parent | next [-] | | In my experience people criticize C++ for its safety problems. Safety is more important in certain areas than in others. I’m not convinced that you get better quality with C++ than with Ada | |
| ▲ | nmz 8 hours ago | parent | prev | next [-] | | 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 | |
| ▲ | bmitc 9 hours ago | parent | prev [-] | | > more scalably than anything else That's quite debatable. C++ is well known to scale poorly. |
| |
| ▲ | IshKebab 17 hours ago | parent | prev | next [-] | | 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++ programmers. | | |
| ▲ | jll29 8 hours ago | parent | next [-] | | I agree - Ada is very similar to Pascal, and much faster to pick up than, say, C++. | |
| ▲ | blub 16 hours ago | parent | prev | next [-] | | Actually these kinds of projects are chronically over budget and the US military is notorious for wasting money. Using C++ vs wishing an Ada ecosystem into existence may have been one of the few successful cost saving measures. Keep in mind that these are not normal programmers. They need to have a security clearance and fulfill specific requirements. | | |
| ▲ | reactordev 13 hours ago | parent [-] | | They need to have very strict security clearance requirements and maintain them throughout the life of the project or their tenure. People don’t realize this isn’t some little embedded app you throw on an ESP32. You’ll be interviewed, your family, your neighbors, your school teachers, your past bosses, your cousin once removed, your sheriff, your past lovers, and even your old childhood friends. Your life goes under a microscope. | | |
| ▲ | nmfisher 12 hours ago | parent | next [-] | | I went through the TS positive vetting process (for signals intelligence, not writing software for fighter jets, but the process is presumably the same). If I were back on the job market, I’d be demanding a big premium to go through it again. It’s very intrusive, puts significant limitations on where you can go, and adds significant job uncertainty (since your job is now tied to your clearance). | | |
| ▲ | galangalalgol 11 hours ago | parent | next [-] | | Not to mention embedded software is often half the pay of a startup and defense software often isn't work from home. Forget asking what languages they can hire for. They are relying on the work being interesting to compensate for dramatically less pay and substantially less pleasant working conditions. Factor in some portion of the workforce has ethical concerns working in the sector and you can see they will get three sorts of employees. Those who couldn't get a job elsewhere, those who want something cool on their resume, and those who love the domain. And they will lose the middle category right around the time they become productive members of the team because it was always just a stepping stone. | |
| ▲ | reactordev 12 hours ago | parent | prev | next [-] | | 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. | | |
| ▲ | ecshafer 11 hours ago | parent [-] | | 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. | | |
| ▲ | reactordev 11 hours ago | parent | next [-] | | My issue is you end up dealing with dopes who don't want to learn, just want to milk the money and the job security, and actively fight you when you try to make things better. Institutionalized. | |
| ▲ | Xss3 9 hours ago | parent | prev [-] | | They always have openings so investors think theyre hiring and growing. Many ads are for fictional positions. |
|
| |
| ▲ | 0xffff2 7 hours ago | parent | prev [-] | | And yet my experience looking at the deluge of clearance-required dev jobs from defense startups in the past couple of years is that there is absolutely no premium at all for clearance-required positions. |
| |
| ▲ | CWuestefeld 6 hours ago | parent | prev [-] | | I was once interviewed by the FBI due to a buddy applying for security clearance. One thing they asked was, "have you every known XXX to drink excessively", to which I replied "we were fraternity brothers together, so while we did often drink a lot, it needs to be viewed in context", |
|
| |
| ▲ | skepti 17 hours ago | parent | prev [-] | | As I wrote to someone else: Why require that companies use a specific programming language instead of requiring that the end product is good?
> And the F35 and America's combat readiness would be in a better place today with Ada instead of C++. What is the evidence for this? Companies selling Ada products would almost certainly agree, since they have a horse in the race. Ada does not automatically lead to better, more robust, safer or fully correct software. Your line of argument is dangerous and dishonest, as real life regrettably shows.[0] [0]: https://en.wikipedia.org/wiki/Ariane_flight_V88 > The failure has become known as one of the most infamous and expensive software bugs in history.[2] The failure resulted in a loss of more than US$370 million.[3] > The launch failure brought the high risks associated with complex computing systems to the attention of the general public, politicians, and executives, resulting in increased support for research on ensuring the reliability of safety-critical systems. The subsequent automated analysis of the Ariane code (written in Ada) was the first example of large-scale static code analysis by abstract interpretation.[9] | | |
| ▲ | zeroc8 15 hours ago | parent [-] | | Ada and especially Spark makes it a whole lot easier to produce correct software.
That doesn't mean it automatically leads to better software.
The programming language is just a small piece of the puzzle. But an important one. | | |
| ▲ | skepti2 15 hours ago | parent [-] | | > Ada and especially Spark makes it a whole lot easier to produce correct software. Relative to what? There are formal verification tools for other languages. I have heard Ada/SPARK is good, but I do not know the veracity of that. And Ada companies promoting Ada have horses in the race. And Ada didn't prevent the Ada code in Ariane 5 from being a disaster. > The programming language is just a small piece of the puzzle. But an important one. 100% true, but the parent of the original post that he agreed with said: > And the F35 and America's combat readiness would be in a better place today with Ada instead of C++. What is the proof for that, especially considering events like Ariane 5? And Ada arguably has technical and non-technical drawbacks relative to many other languages. When I tried Ada some weeks ago for a tiny example, I found it cumbersome in some ways. Is the syntax worse and more verbose than even C++? Maybe that is just a learning thing, though. Even with a mandate, Ada did not catch on. | | |
| ▲ | serf 14 hours ago | parent | next [-] | | >What is the proof for that, especially considering events like Ariane 5? Ariane 5 is a nice anti-ada catchphrase, but ada is probably the most used language for war machines in the United States. now the argument can be whether or not the US military is superior to X; but the fact that the largest military in the world is filled to the brim with warmachines running ada code is testament itself to the effectiveness of the language/dod/grant structure around the language. would it be better off in c++? I don't know about that one way or the other , but it's silly pretend ada isn't successful. | | |
| ▲ | skepti2 14 hours ago | parent [-] | | But Ada had for a number of years a mandate to require its usage [0]. That should have been an extreme competitive advantage. And even then, C++ is still used these days for some US military projects, like F-35. Though I don't know whether the F-35 is successful or not, if it is not, that could be an argument against C++. Ada is almost non-existent outside its niche. The main companies arguing for Ada appear to be the ones selling Ada services, meaning they have a horse in the race. I barely have any experience at all with Ada. My main impression is that it, like C++, is very old. [0]: https://www.militaryaerospace.com/communications/article/167... > The Defense Department`s chief of computers, Emmett Paige Jr., is recommending a rescission of the DOD`s mandate to use the Ada programming language for real-time, mission-critical weapons and information systems. | | |
| ▲ | galangalalgol 11 hours ago | parent [-] | | Poking around it looks like ada is actually the minority now. Everything current is either transitioning to c++ or started that way. The really old but still used stuff is often written in weird languages like jovial or in assembly. | | |
| ▲ | p_l 10 hours ago | parent [-] | | Essentially the story of DoD mandates goes down to everyone getting waivers all the time and nuking the mandate. |
|
|
| |
| ▲ | yoda222 10 hours ago | parent | prev | next [-] | | > Ada didn't prevent the Ada code in Ariane 5 from being a disaster That's a weak argument to say that Ada could not lead to a better place in term of software.
It's like saying that it's not safer to cross at a crosswalk because you know someone who died while crossing on one. (But I guess that's fair for you to say that, as the argument should probably be made by the people that say that Ada would be better, and because they made a claim without evidences, you can counterclaim without any evidence :-) ) There are no programming language that can prevent a software for working correctly outside of the domain for which the software is written, which was the case for Ariane 501. Any language that would have been used to write the same software for Ariane 4 may have led to the same exact error. Ariane 501 failure is a system engineering problem here, not a software problem (even if in the end, the almost last piece in the chain of event is a software problem) | |
| ▲ | zeroc8 9 hours ago | parent | prev | next [-] | | Well, readability, better typesafety, less undefined behaviour.
In and out parameters, named parameters. Built in concurrency. With C++ it's just too easy to make mistakes. | |
| ▲ | IshKebab 4 hours ago | parent | prev [-] | | > Relative to what? Relative to C++. > There are formal verification tools for other languages. None that are actually used. I have no horse in this race and I have never actually written any Ada, but it seems pretty clear to me that it would produce more correct code on average. Looking at the Ariane 5 error it looks like the specifically disabled the compile-time error: https://www.sarahandrobin.com/ingo/swr/ariane5.html That's nothing to do with Ada. Also asking for evidence is a red herring. Where's the evidence that Rust code is more likely to be correct than Perl? There isn't any. It's too difficult to collect that evidence. Yet it's obviously true. Plenty of things are pretty obviously true but collecting scientific evidence of them is completely infeasible. Are code comments helpful at all? No evidence. Are regexes error-prone and hard to read? No evidence. Are autoformatters helpful? No evidence. |
|
|
|
| |
| ▲ | goalieca 10 hours ago | parent | prev | next [-] | | I’ve learned most languages on the job: c#, php, golang, JavaScript, … I know others who learned ADA on the job. It’s not too terrible. | |
| ▲ | blub 18 hours ago | parent | prev | next [-] | | The exact opposite of what you suggest already happened: Ada was mandated and then the mandate was revoked.
It’s generally a bad idea to be the only customer of a specific product, because it increases costs. > And the F35 and America's combat readiness would be in a better place today with Ada instead of C++ What’s the problem with the F35 and combat readiness? Many EU countries are falling over each-other to buy it. | | |
| ▲ | KolmogorovComp 18 hours ago | parent | next [-] | | > Many EU countries are falling over each-other to buy it They are not buying it for its capabilities though, but to please their US ally/bully which would have retaliated economically otherwise. See the very recent Swiss case were theirs pilots had chosen another aircraft (the french Rafale), only to be disavowed by their politics later on. | | |
| ▲ | varjag 17 hours ago | parent | next [-] | | Much of existing European F-35 fleet predates Trump's first term. In fact now quite the opposite happens: other options being eyed from reliable partners, even if technically inferior. | |
| ▲ | gghffguhvc 17 hours ago | parent | prev | next [-] | | The pilots might have reassessed after Pakistan seemed to have shot three of them down from over 200km range. Intel failure blamed but likely many factors of which some presumably may be attributed to the planes. | | |
| ▲ | psunavy03 8 hours ago | parent [-] | | Pakistan has never downed an F-35. | | |
| ▲ | gghffguhvc an hour ago | parent | next [-] | | I poorly worded it. Rafales allegedly shot down. After that happened, perhaps the pilots wanting them over F35s might have a different opinion. F35s might be harder to get a lock on at that distance and might have better situational awareness capabilities. | |
| ▲ | KolmogorovComp 8 hours ago | parent | prev [-] | | They were talking about the Rafales. But I think the comment is irrelevant anyway as the scandal happened before that iirc. |
|
| |
| ▲ | blub 16 hours ago | parent | prev [-] | | Maybe the EU shouldn’t have transformed themselves into US vassals then. Nobody respects weakness, not even an ally. Ironically showing a spine and decoupling from the US on some topics would have hurt more short term, but would have been healthier in the long term. | | |
| ▲ | jack_tripper 12 hours ago | parent [-] | | >Maybe the EU shouldn’t have transformed themselves into US vassals then. I share the same opinion. If you're (on paper) the biggest economic block in the world, but you can be so easily bullied, then you've already failed >20 years ago. But I don't think it was bullying, but the other way around. EU countries were just buying favoritism for US military protection, because it was still way cheaper than ripping the bandaid and building its own domestic military industry of similar power and scale. Most defense spending uses the same motivation. You're not seeking to buying the best or cheapest hardware, you seek to buy powerful friends. |
|
| |
| ▲ | baud147258 12 hours ago | parent | prev | next [-] | | > What’s the problem with the F35 and combat readiness? For example, the UK would like to use its own air-to-ground missile (the spear missile) with its own F-35 jets, but it's held back by Lockheed Martin's Block 4 software update delays. | | |
| ▲ | p_l 10 hours ago | parent [-] | | Also by the software being black box for everyone outside of USA / Lockheed-Martin. |
| |
| ▲ | pixelesque 17 hours ago | parent | prev | next [-] | | > What’s the problem with the F35 and combat readiness? Block 4 is very delayed for starters. | |
| ▲ | ecshafer 11 hours ago | parent | prev | next [-] | | The F35 was like 10 years and $50B over budget. | |
| ▲ | pandemic_region 17 hours ago | parent | prev [-] | | > Many EU countries are falling over each-other to buy it. It's because we are obliged to want more freedom. |
| |
| ▲ | skepti 17 hours ago | parent | prev [-] | | Why require that companies use a specific programming language instead of requiring that the end product is good? > And the F35 and America's combat readiness would be in a better place today with Ada instead of C++. What is the evidence for this? Companies selling Ada products would almost certainly agree, since they have a horse in the race. Ada does not automatically lead to better, more robust, safer or fully correct software. Your line of argument is dangerous and dishonest, as real life regrettably shows.[0] [0]: https://en.wikipedia.org/wiki/Ariane_flight_V88 > The failure has become known as one of the most infamous and expensive software bugs in history.[2] The failure resulted in a loss of more than US$370 million.[3] > The launch failure brought the high risks associated with complex computing systems to the attention of the general public, politicians, and executives, resulting in increased support for research on ensuring the reliability of safety-critical systems. The subsequent automated analysis of the Ariane code (written in Ada) was the first example of large-scale static code analysis by abstract interpretation.[9] | | |
| ▲ | fauigerzigerk 14 hours ago | parent [-] | | > Why require that companies use a specific programming language instead of requiring that the end product is good? I can think of two reasons. First, achieving the same level of correctness could be cheaper using a better language. And second, you have to assume that your testing is not 100% correct and complete either. I think starting from a better baseline can only be helpful. That said, I have never used formal verification tools for C or C++. Maybe they make up for the deficiencies of the language. | | |
| ▲ | skepti2 14 hours ago | parent [-] | | How do you define a better programming language, how do you judge whether one programming language is better than another, and how do you prevent corruption and cartels from taking over? If Ada was "better" than C++, why did Ada not perform much better than C++, both in regards to safety and correctness (Ariane 5), and commercially regarding its niche and also generally? Lots of companies out there could have gotten a great competitive edge with a "better" programming language. Why did the free market not pick Ada? You could then argue that C++ had free compilers, but that should have been counter-weighed somewhat by the Ada mandate. Why did businesses not pick up Ada? Rust is much more popular than Ada, at least outside Ada's niche. Some of that is organic, for instance arguably due to Rust's nice pattern matching and modules and crates. And some of that is inorganic, like how Rust evangelists through force, threats[0], harassment[1] and organized and paid media spam force Rust. I also tried Ada some time ago, trying to write a tiny example, and it seemed worse than C++ in some regards. Though I only spent a few hours or so on it. [0]: https://github.com/microsoft/typescript-go/discussions/411#d... [1]:
https://lkml.org/lkml/2025/2/6/1292 > Technical patches and discussions matter. Social media brigading - no
than\k you. > Linus https://archive.md/uLiWX https://archive.md/rESxe | | |
| ▲ | fauigerzigerk 7 hours ago | parent [-] | | >How do you define a better programming language A language that makes avoiding certain important classes of defects easier and more productive. >how do you judge whether one programming language is better than another Analytically, i.e. by explaining and proving how these classes of bugs can be avoided. I don't find empirical studies on this subject particularly useful. There are too many moving parts in software projects. The quality of the team and its working environment probably dominates everything else. And these studies rarely take productivity and cost into consideration. |
|
|
|
|