Readit News logoReadit News
danbruc · a month ago
For those only having a quick look, the charts do not have the y axis start at zero, the differences are much smaller than it looks.
Sesse__ · a month ago
Also, they seemingly already had a BWT lying around (which is seemingly not counted in “from scratch in a couple of days”), and there is no mention of speed.
sltkr · a month ago
It seems like author means his implementation is competitive in terms of _compression ratio_ only, and this is achieved in the final Huffman encoding step.

From that perspective the BWT implementation isn't very interesting because the BWT is deterministic, so the effect on compression ratio doesn't depend on which implementation was used.

vintermann · a month ago
He didn't specify that the demo of BWT was in Ada, or his own.
etrez · a month ago
The data in question cannot be compressed to zero, or close to zero, by far.
tombert · a month ago
I know the history of why Ada failed, but it always seemed like such a neat language that shouldn't have failed.

It seemed like it should have been the standard for a lot of desktop applications for the 90's and 2000's.

imglorp · a month ago
Failed what? In its domain, it succeeded in its goals: a high reliability platform for aerospace, defense, and other mission critical domains. It was mandated by the US DoD for all software in the nineties and used in Airbus avionics and aboard the ISS, etc.

Its syntax and concepts were considered solid and so was selected as the basis of the VHDL hardware description language, also successful in its domain.

veqq · a month ago
> was mandated by the US DoD

Vanishingly little was written in Ada as waivers were too easy to get.

tombert · a month ago
Failed in the sense that it doesn't appear to be used anymore.

C and C++ are still used pretty frequently. I wouldn't say that they failed, but if someone wrote an application in Ada in 2025, I would find that a bit anachronistic.

spauldo · a month ago
I would say that it failed in its primary goal - to be a single language used for government software.

That doesn't say anything about the quality of the language, just that the goal for it was unrealistic. If the DoD had pressured Microsoft to support Ada in the same way they supported C++, Visual Basic, and vbscript, they might have been able to pull it off. But with the COTS directive and the utter lack of Ada support from commercial vendors, it was just never going to happen.

jksmith · a month ago
The popularity contest.
IshKebab · a month ago
It was held back by all of the compilers being commercial for a long time.

Also the main advantage it has over C is safety, and nobody really took that seriously until recently (and it doesn't really have an answer for use-after-free which is a huge class of bugs).

shrubble · a month ago
The GNU Ada compiler has been out for decades and was integrated into GCC by 2002.
augustk · a month ago
The same thing happened to Bertrand Meyer's language Eiffel.
steveklabnik · a month ago
I am curious, knowing that history, why do you think that it shouldn't have?

I have my own thoughts that I'd be happy to share, but I don't want to spoil your opinion with them.

(This goes for basically anyone who's interested in talking about it, I think it's a fascinating bit of history.)

tombert · a month ago
I just feel like it emphasized safety in a way that C doesn't, while still being fairly high performance. It always seemed like a neat language.
MisterTea · a month ago
> I know the history of why Ada failed,

Do you have sources you could point to? I once read that it's a great language mired by a designed by committee ecosystem. I really liked the language when I tinkered with it a bunch around 2010 but moved on after work pushed me to other languages like C# for GUI stuff. First language I used with simple built in concurrency.

eggy · a month ago
For my safety-critical automation software for a machine that will operate around people and overhead, I’m choosing Ada/SPARK2014. Its decades-long track record in high-integrity domains like aerospace, defense, and medical systems ensures reliability for applications where human safety is paramount. SPARK2014’s formal verification tools mathematically prove the absence of runtime errors, aligning with standards like DO-178C and ISO 26262, critical for my Q3 2026 market deadline. While Rust is gaining traction for memory safety, its formal verification tools, like LEAN/Aeneas, are still maturing and lack the production-ready ecosystem of Ada/SPARK2014. Ada’s clear, structured syntax simplifies code reviews, and its tooling generates certification reports familiar to regulators, streamlining approval processes. For my project’s safety and business needs, Ada/SPARK2014 is the proven choice - for now. I am not a fan of Rust syntax or complexity, but that is somewhat subjective. I last dove in about 2 years ago.
deaddodo · a month ago
> mired by a designed by committee ecosystem

Can you point to a production language today that doesn't have a committee leading it's development?

C, C++, Rust, Javascript, Python, etc. All have committees leading their development. The only difference with Ada was that, for a long time, that committee was in the DoD (which has plenty of fine engineers, given it's practical achievements) instead of ISO/ANSI. And instead of being focused on general purpose, they had a clear domain they prioritized. That's different now, but it's hard to erase a few decades of heritage.

Jtsummers · a month ago
http://www.adapower.com/index.php?Command=Class&ClassID=Advo...

Specifically, I think these three paragraphs near the end are critical:

> I'm reading a great book now called Why People Believe Weird Things, by Micheal Shermer, in which the author explains what rational thinking is, and how skepticism is a process. Basically, people believe something because that want to, not because of any scientific arguments you make.

> There are guys out there who dislike Ada, but they do so because they want to, not because of any rational analysis of its merits or flaws. Sometimes even their arguments are factually incorrect, like saying that "Ada was designed by committee," ignoring the fact that Jean vetoed language design arguments that were 12-to-1 against him. It's not unlike creationists who explain the "fact" that evolution violates the 2nd law of thermodynamics. (No, it does not, as any book on freshman physics will tell you.)

> I've explained the reasons Ada why I think is not as popular as C++, and I'd like to hope that it will convince Ada's detractors that Ada isn't so bad after all. But as Robert Dewar pointed out, a person who has made an irrational decision probably isn't going to be swayed by rational arguments!

That is, people aren't really rational. A choice was made to dislike it, it entered into the culture and to this day people dislike it because they think they should dislike it. They don't even spend 5 minutes studying it to see that half of what they've heard (if not more) is flat out wrong. In several Ada discussions on HN people claim its syntax is like COBOL's, for instance. Not just similar in being keyword heavy, but practically the same. Sometimes they even provide Ada "examples" that won't even compile. That's the kind of nonsense that happens when people turn off their brains or refuse to turn on their brains. You see it in many Lisp discussions as well.

steveklabnik · a month ago
> Do you have sources you could point to?

This report is of interest to you:

https://nap.nationalacademies.org/read/5463/chapter/1#vii

> It is in this context that Assistant Secretary of Defense (Command, Control, Communications, and Intelligence) Emmett Paige, Jr., requested that the National Research Council's Computer Science and Telecommunications Board (CSTB) review DOD's current programming language policy. Convened by CSTB, the Committee on the Past and Present Contexts for the Use of Ada in the Department of Defense was asked to:

> * Review DOD's original (mid-1970s) goals and strategy for the Ada program;

> * Compare and contrast the past and present environments for DOD software development; and

> *Consider alternatives and propose a refined set of goals, objectives, and approaches better suited to meeting DOD's software needs in the face of ongoing technological change.

https://www.militaryaerospace.com/communications/article/167... is an article from 1997 about this, and here's what it has to say:

> Paige says he believes industry engineers will be more likely to accept the benefits of using Ada if DOD leaders recommend, not require, the language. Software engineers, who would rather choose a language based on its merits rather than because of a governmental mandate, historically have resisted the Ada mandate on principle.

and

> Chief complaints about Ada since it first became a military-wide standard in 1983 centered on the perception among industry software engineers that DOD officials were "shoving Ada down our throats."

This is basically the story: The DoD tried to mandate it, people resisted, and made liberal use of the ability to be granted an exception, and so they eventually gave up.

The first link contains much more nuance, some excerpts:

> In decisions affecting adoption of programming languages, non-technical factors often dominate specific technical features. These factors include the broad availability of inexpensive compilers and related tools for a wide variety of computing environments, as well as the availability of texts and related training materials. In addition, grass-roots advocacy by an enthusiastic group of early users, especially in educational and research institutions, often has broad influence on adoption of programming languages. These advantages were largely absent when Ada was introduced in 1980. In contrast, C++ and Java both have achieved widespread acceptance and use. The strong military orientation of the publicity generated for Ada also may have served to alienate significant portions of the academic and research communities.

> Ada has not been widely taught in colleges and universities, particularly compared with Pascal, C, and C++; until recently, even the military academies taught programming in languages other than Ada

> Historically, compilers and other language-specific tools for Ada have been significantly more costly and slower in coming to market than those for C and C++.

> Software engineers are likely to be interested in enhancing skills that they expect to be most valuable in the software engineering marketplace, which is now dominated by commercial opportunities. Thus, programmers have moved quickly to learn Java and Hypertext Markup Language (HTML; used to develop pages for the World Wide Web) because they see these as the next wave, which can carry them to new career opportunities. Similarly, software engineers might avoid using Ada if they see it as limiting their careers.

myth_drannon · a month ago
Ada was getting a lot of traction in USSR (so commercial license prices were not a concern) and was pushed in many domains. My father studied it in university in the 80's. But with the Soviet Union collapse all those efforts fizzled.
jksmith · a month ago
It failed because the C family is far superior - in mindshare and commodity dev experience. Ada may end up with a win to some degree if it plays to a narrative that all software needs to be mission-critical, no matter what the domain. Maybe in degrees, but that's actually true these days.

I did some consulting at a major US car manufacturer, and helped with a coding seminar, mostly in java. A fair chunk of those developers struggled with a fizzbuzz exercise. All I can say is this: don't leave your baby in the back seat of an autonomous car just to get out and recharge unless you have consequential trust reciprocation with the manufacturer tantamount to shutting them down if anything tragic happened. Of course, even that price is too low.

burnt-resistor · a month ago
As used in zillions of aircraft, defense, and aerospace systems, it succeeded wildly. It's not Javascript because not every language needs to serve all stakeholders. Tools in the toolbox, not all-or-nothing religious factions that only "matter" if they ride a hype popularity train. There are many critical technologies all around that are little known.
rustcleaner · a month ago
Why did Mozilla reinvent the wheel with Rust when we had Ada/SPARK?
steveklabnik · a month ago
Glibly, because they’re not the same language.

I don’t think I’ve ever heard Graydon comment on Ada specifically, but early Rust was very different than today’s Rust. Funny enough, I’d argue that early Rust was much closer to Ada than the Rust we ended up with.

One thing that makes Ada and current Rust different is that Ada does a lot more checks at runtime than rust does, and is more okay with features that have more of a runtime than Rust is.

Another is that Ada doesn’t guarantee memory safety at compile time, or at least, it did not at that time. I believe that with the new Spark features that are inspired by Rust that recently landed may bring parity here, but I haven’t had time to investigate those yet.

But really, they're just very different languages from each other. There's no reason they can't coexist.

Jtsummers · a month ago
SPARK 2012 was what made SPARK viable for a broader audience. Earlier versions of SPARK were not really properly integrated into Ada (SPARK annotations were in comments). SPARK also restricts what is expressible to what is provable within SPARK (which expands over time), this has some important consequences for concurrency and parallelism (using the "concurrency is not parallelism" distinction). So it would have been hard for Graydon Hoare to use SPARK 2012 in 2006 when he started on Rust, and the limitations around concurrency in SPARK 2012 would have been a non-starter for the objectives of Rust as adopted by Mozilla.
whartung · a month ago
Well that was disappointing. I was hoping to see a discussion about writing a zip encoder in Ada. How the language was used, values of the language for this kind of work. How it’s easier or harder to do. Maybe a bunch of Ada source code.

Simply as one who does not use Ada I had hoped to be a bit more informed about it.

andsoitis · a month ago
Bottom of page links to the sources: https://github.com/zertovitch/zip-ada
etrez · a month ago
Thanks for the feedback. Multiple posts are planned on that topic. For parts 1 and 2 (so far the only ones existing) I preferred explaining the context and the remarkable simplicity of the BZip2 format. In part #4, I will try to show why the customisable types in Ada fit so well compression software. Be patient: writing articles about writing software takes much more time than writing the software itself! In the meantime, there is a short preview of that in recent presentations - notably FOSDEM 2025: https://fosdem.org/2025/schedule/event/fosdem-2025-5148-adve... , last slide.
cashsterling · a month ago
I think Ada is a great language and it is completely possible that Ada will experience a resurgence in coming years.. especially as LLM's are used more and more to generate software. ADA/Spark can provide very robust guide rails for correctness (so can Rust) of 'AI' generated code.

Dead Comment