OP HERE.
>Also, good thread OP.
Thanks; sorry about going MIA so suddenly. Internet outage + that pesky need for sleep.
>What language features provide reliability?
A lot of the language was designed to be correct, make common programming errors impossible or hard to do.
For example OR and AND can't be together without being parenthesized - this avoids the precedence errors, especially if you're working in multiple languages.
Things like the optional name on loops/blocks can be used to eliminate cut-and-paste errors during a refactor/move because the syntax will catch if you missed an 'end loop NAME' or 'end NAME', or conversely if you grabbed one too many.
There's a lot more, like the strong typing and subtyping (Subtype Positive is Natural Natural'Succ(Natural'First)..Natural'Last), but sometimes it's little things like this that add up.
>As a junior web dev, looking to get into Go and C++, why would I ever use this or SPARK?
You might not _need_ to go full SPARK, out of the box Ada gives you about the same level of safety as High Integrity C++ -- sworthodoxy.blogspot.com/2017/03/comparing-ada-and-high-integrity-c.html
That said, if you're doing something that needs to be secure using SPARK to prove those properties is a good choice.
> is there any reason/way I could use this in say the server side?
Sure, if you have a need for uptime the go with a provable system on your backend. That removes a *lot* of one big cause of faults, and you can concentrate on the other properties of the system.
>Also on the official website, for ada, they offer pricing quotes
The official websites for Ada aren't AdaCore, the closest you'd get to official websites would be:
(1) ada-auth.org/
(2) adaic.org/
One of the community is doing a bit of a drive to get people into the language and set up
(1) getadanow.com
(2) learnadanow.com
-- while these aren't official, they're nice efforts.