One of the first things I tried to find out about Ada is how it manages dynamic resources. What I found out is:
- Optional GC, on which no one can depend reliably due to its optionality
- Manual new/Unchecked_Deallocation
- RAII pointers either don't exist or are buried deep in manuals
- Finally, pointers ("access types") are nullable by default.
How can Ada be called safe language then??? Even dreaded C++ does the job better. Not to mention Haskell and friends which make as many invalid states as possible simply inexpressible.