4 ms·
I like Ada. I can’t believe this whole discussion about how types are handled missed the entire ML family of languages. ML, Standard ML, Concurrent ML, Caml, OC
by cestith 6mo ago
I like Ada. I can’t believe this whole discussion about how types are handled missed the entire ML family of languages. ML, Standard ML, Concurrent ML, Caml, OCaml, and more have structural types, supported and enforced by the compiler.
Ada has one of the same primary issues as PL/I, PHP, and Perl. As much as one might like it, it’s a huge language with loads of syntax and semantics baked into the core language. The article keeps saying that’s a selling point. To some extent and to some people that’s true. However, it also touts the annexes as something wonderful. That’s also true, and more true in my opinion. If only more of the language had been in standardized annexes with a smaller core it may have seen far more adoption.
- init1 6mo agoAs far as I can tell you cannot create your own bounded Integer/Floating point types in any of the ML languages. That's one example of one of the core Ada type features. Most people have never experienced a type system like Ada and you will be surprised by how it helps you write higher quality software that is also more reliable.
- jordanb 6mo agoAda isn't a huge language by modern standards. I would say that it's smaller than modern Python and considerably smaller than modern C++. It's also relatively syntax-free preferring keywords and standard library. Ada came "fully specified" in an era when languages were either not formally specified or were much smaller. C wasn't formally specified, for instance, until 1989 (six years after Ada) and the spec was sparse compared to Ada. For instance, Ada put binary compatibility rules into the language while C's standard didn't worry about ABIs at all. Using two different C compilers could create different ABIs because they aren't part of the language spec.
- cestith 6mo agoTrue enough, but nobody ports Python as a first systems language to a new platform. C is ubiquitous because it tends to be the first or second language on a newly designed system after the assembler. Every once in a while Forth comes before C, but that’s pretty rare. C won by being powerful but tiny, and making it easier to make a compliant compiler.