6 ms·
Not sure why Ada is not taking off these days. It is mature and has all the safety and concurrency bells and whistles: http://www.adacore.com/uploads_gems/07_s
by eternalban 10y ago
Not sure why Ada is not taking off these days. It is mature and has all the safety and concurrency bells and whistles:
http://www.adacore.com/uploads_gems/07_safe_secure_ada_2005_safe_memory_management.pdf http://www.adacore.com/uploads_gems/07_safe_secure_ada_2005_...
https://en.wikibooks.org/wiki/Ada_Programming/Tasking https://en.wikibooks.org/wiki/Ada_Programming/Tasking
http://courses.cs.vt.edu/cs5204/sp99/Overheads/6UP/6UPCSPandADA.pdf http://courses.cs.vt.edu/cs5204/sp99/Overheads/6UP/6UPCSPand...
- bitwize 10y ago+1 for Ada. Rust is basically hipster-compatible Ada, which explains why Rust will be adopted and Ada will not.
- the_mitsuhiko 10y agoRepeating this nonsense won't make it any more correct.
- COMPUTERLOSER 10y agoRust is basically hipster-compatible Ada, which explains why Rust will be adopted and Ada will not.
- SomeStupidPoint 10y agoI mean, isn't SPARK basically meant for high assurance things (like Tor should be)?
- nickpsecurity 10y agoCase in point: http://ironsides.martincarlisle.com/ http://ironsides.martincarlisle.com/ http://www.adacore.com/uploads/technical-papers/SPARKSkein_SBMF.pdf http://www.adacore.com/uploads/technical-papers/SPARKSkein_S... http://www.anthonyhall.org/c_by_c_secure_system.pdf http://www.anthonyhall.org/c_by_c_secure_system.pdf
- eternalban 10y ago& considering that Naval Research Laboratory gifted us with Tor it is surprising it wasn't written in Ada to begin with.
- bluejekyll 10y ago1) Two words: "begin" and "end"; 2) Unix, C is so fundamental to building software, that I think any language that doesn't share syntax with it is doomed. Having a common syntax helps in learning new languages, IMO, and can also be a launching point for differing semantics...
- nickpsecurity 10y agoI'll give you it's overly verbose even though quite a bit of it was justifiable. The theory of Ada's designers was that people read software more than write it. So, the syntax should be designed to facilitate catching errors in maintenance mode, during extensions, or during integrations. It's done phenomenal at that per industrial, case studies despite having been invented in the 80's when lots of language decisions were still being debated. EDIT: I keep thinking a different language that acts as a front end w/ a better syntax might be a good idea. It outputs Ada that integrates with the tooling ecosystem. Also, a seemless FFI for C libraries like Julia's.
- bluejekyll 10y ago> I keep thinking a different language that acts as a front end w/ a better syntax might be a good idea... Also, a seemless FFI for C libraries like Julia's. You mean Rust I think ;)
- nickpsecurity 10y agoPeople have had a hard time learning Rust. I also get gripes about its inconsistency in language syntax. The FFI I hear is good. It certainly doesn't output to SPARK or a C subset designed for easy, static analysis. So, Rust ain't the Ada makeover Im thinking about. It's also in a stability-oriented freeze of existing design right now. So, the makeover will need to be a different language.
- eternalban 10y agoThat type system is pretty sophisticated. You could probably slap a FP front-end ala Haskell but that would hardly make it more accessible. Might as well just bite the bullet and learn the language.
- twic 10y agoI looked into Ada last year. Getting a toolchain working sanely on a Mac seemed quite a lot of work; it's not in Homebrew, the MacPorts version has some weird bootstrap process, and the various random versions available for download had a murky mix of license and implementation issues that i don't remember in detail. So i read documentation instead. Ada mostly seems like a pretty sensible language. Its story on memory safety, though, seems to be "don't use dynamically allocated memory", or at least, if you do, you're on your own. It doesn't have anything like Rust's safety guarantees, or those that fall out of having a garbage collector. If it was 2007, and Ada was a bit more easily available, I'd be agitating for it. But i think its shot at the open source big time has passed.
- deleted 10y ago[deleted]
- twic 10y agoSomeone left a comment mentioning that i could download a compiler from AdaCore, but seems to have deleted it. I was going to thank them! AdaCore's website is not very helpful, but googling turned up: http://libre.adacore.com/download/ http://libre.adacore.com/download/ You can download the 'GPL edition' of GNAT [1]. This is a complete toolchain for Ada 2005, with the same actual compiler as the commercial version, i think. The libraries are GPL'd, so if you distribute a binary built with it, it has to be GPL'd. So, no Ada 2012, and no way to distribute binaries willy-nilly, but certainly enough to explore the language. [1] http://libre.adacore.com/tools/gnat-gpl-edition/faq/ http://libre.adacore.com/tools/gnat-gpl-edition/faq/
- fpoling 10y agoAda allows to return from a function a stack-allocated array of runtime-dependent size. This alone removes wast number of cases when one needs to allocate memory dynamicalky in C/C++. I always puzzled why even C++ does not provide any facilities like that out of the box.
- jeffdavis 10y ago(1) Better explanations about how to live without heap allocations or how to use them effectively in Ada. It feels like unchecked_deallocate is wrong, but then I don't really see explanations about what programmers should do instead. (2) Compiler and runtime licenses. I always feel like the version of Ada I get is either somehow not the "best" one or has some lingering license issue with the runtime library. I don't think this is necessarily true, but it's easy to get that impression. (3) Packaging, libraries, and documentation. Many developers expect a tool like cargo to be available and have access to a wide variety of open-source libraries. They also expect lots of tutorial documentation and blogs.