7 ms·
Why don’t more people use SPARK?
by silverlake 9y ago
Why don’t more people use SPARK?
- MisterTea 9y agoWhy don't more people use Ada?
- nickpsecurity 9y agoAnyone curious of its benefits can find them here: https://www.adacore.com/books/safe-and-secure-software https://www.adacore.com/books/safe-and-secure-software Throw in a good article on top: http://www.electronicdesign.com/embedded-revolution/assessing-ada-language-audio-applications http://www.electronicdesign.com/embedded-revolution/assessin...
- yeukhon 9y agoAda is quite common in aircraft system programming. P.S. I thought I read SPARC.
- Lucretia9000 9y agoYes but embedded / safety programming isn't the only programming. Ada could very well be used in all areas.
- pjmlp 9y agoAda only caters to developers and industries that care about quality before price, and where sloppy programming and cutting corners might kill people. Given that the computer industry still enjoys EULAs with disclaimers, product refunds and lawsuits due to sloppy programming or CVE exploits are still pretty rare, it is almost impossible to convince people otherwise. One of the great outcomes of the increase in malware attacks is finally getting more buy-in for safer native languages.
- th0br0 9y agoBecause of licensing?
- Lucretia9000 9y agoConfusion of licencing. Use FSF GNAT over GNAT GPL.
- renox 9y ago? I think that GNAT is free.
- pjmlp 9y agoI guess, because GNAT is the only free Ada compiler, all the remaining ones being commercial. So Ada and SPARK ended up just catering to the industry that created them, high integrity systems, the kind where people die when an out-of-bounds occurs.
- digikata 9y agoI've always wondered if it was in part because porting an ADA compiler ideally also involves porting some support for constructs like TASK - which ends up more like getting maintenance in place for both a language compiler as well as OS elements. In comparison porting a C compiler is mostly about the instruction set, and you can separately decide to port/support thread libs or selected RTOSes. It's been a long time since I programmed in ADA, but the TASK support on the toolchain/system I was a long time ago sucked, and you couldn't climb into it and fix it like you might a standalone C RTOS because it was part of the tooling supplied by a vendor. Vs with Rust, the borrow checker is fairly portable memory lifetime tracking and reasonably independent of hw architectures.
- noselasd 9y agoAt least with GNAT, it isn't that bad - you don't have to port support for tasking when targeting an architecture or OS - e.g. there's it supports bare-metal on many ARM boards, the runtime+glue needed is not much more than for a C compiler
- pjmlp 9y agoI don't think so, there were already other languages, like e.g. Modula-2 with similar features built-in (processes, semaphores and co-routines). For me there were two main reasons: 1 - the cost of getting a commercial Ada compiler, much more expensive than most alternatives 2 - initially many though that Ada compilers would be extremely costly to implement. Ironically, C++ compilers are way more complex to implement than Ada ones.
- Raphael_Amiard 9y ago> way more complex As somebody who works on an Ada compiler, I'm not sure about that. On some levels, Ada has a better design which simplifies compiler implementation. On some others, the RM spec is extremely complicated - in my opinion because it was specified before it was implemented, and because of the need for safety - and very hard to implement. See for example, dynamic access check, pool specific controlled types, anything related to elaboration, build in place for limited types, etc ..