Why is that? I find Ada much nicer than the C-languages when it comes to arrays: A'Range, A'Length, A'First, and A'Last are super-useful, as is the unconstrained array. You can even use unconstrained arrays to provide…
Both are, IMO, inferior to Ada's TASK construct.
While Ada does have `Unchecked_Deallocation` and `Unchecked_Conversion`, Ada out-of-the-box provides safety roughly on-par with the high-integrity C++ style-guide. For provable safety, the SPARK subset/provers are used.…
An interesting read, though perhaps it would have benefitted from going the route that made things click. After all, each of the features can be independently achieved, so why not show that _before_ winding around to…
I read about a VHDL that used DIANA. DIANA was an IR in some Ada compilers; I would imagine that such a common IR would facilitate exactly those test benches with an ease that borders on 'ludicrous'.
Found the link: https://github.com/ada-game-framework
It's actually really great for anything where you want to be more safe/correct, like banking... and the `TASK` construct makes it really nice for naturally multitasking situations. A couple of the people in the…
Hey, let me encourage you: do it. You might be surprised at the agreement you get, or at discussions.
Yep. And sometimes it's hype over the weirdest things... a good example "dependency injection". Generic Type Index is (<>); -- Any discrete type. Type Element is limited private; -- Any non-discriminated type. Type…
To be fair, the file-handling is probably the 'crustiest' part of the standard library. (To use the posix-flags, you use the Form parameter.) The best way to use Ada, IMO, is type-first: you define your problem-space in…
Pretty much [close enough for government work]; see: https://stackoverflow.com/questions/7764656/who-is-diana-and...
> I suspect, though, that memory safety is one of the most important kinds of safety. I don't. It seems to me like "memory-safety" is a response to the legacy of C and "C-compatibility) WRT poor behavior/respect of…
> The tool would have to be pretty damn good. And also not introduce business risk or at the very least a minimal business risk. That is actually quite possible. Ada is in a really good place as far as that goes:…
Memory management in Ada is such that you need pointers (and the heap) far, far less than in other languages: the language allows the return of values to objects of unconstrained subtypes to provide the constraints;…
Honestly, Ada fits a LOT of that bill. The type-system and forced spec/implementation split both work well to catch errors; you can go further with SPARK [proving] and using Pre- and Post-conditions, type-invariants.
If you want that same GUI/RAD style, Delphi is still around.
The items "A serious take on a contract-based language" & "A language with semantic relations" are covered pretty nicely by Ada's SPARK subset/tools... and the really great thing is that the "aspects" are part of the…
Look at Ada and its error-messages.
>>say arrays that "know their own length" > > There's a fair amount of C code that does just that and does it for a long time. No, there isn't. There can't be because of how arrays in C degenerate into…
> The C language also has a stable ABI, which is basically the ffi for most languages, C is honestly terrible to target/use as FFI, doing so precludes doing things correctly, or more advanced things like... say arrays…
You are right; it's because the "modern" CI/CD is ill-designed, thanks in part to being "generalized" to handle text and "generalized" tools like C compilers and makefiles... instead of, you know, working in the actual…
> Isn't this why we have CI/CD and scheduled pipelines? I mean, kind-of. One of the problems with CI/CD though is that they're poorly designed for the job they do; see this:…
> I imagine COBOL is similarly stable but I have no experience there. I haven't programmed in COBOL, but it is quite stable. One of the really nice things in COBOL is the "Environment Division", which has a…
> Having separate module interface and module body files, as in Ada or Modula-2/3, is a great idea that sadly a lot of people are burnt out on because C and C++ do this in a very unprincipled way. > Having a terse…
IIRC a circular graph would typically be done via pool-specific access types. -- Forward declaration. Type Element(<>); -- Assuming there's a Graph.Pool implementation of the base Storage_Pool object. Type Pointer is…
Why is that? I find Ada much nicer than the C-languages when it comes to arrays: A'Range, A'Length, A'First, and A'Last are super-useful, as is the unconstrained array. You can even use unconstrained arrays to provide…
Both are, IMO, inferior to Ada's TASK construct.
While Ada does have `Unchecked_Deallocation` and `Unchecked_Conversion`, Ada out-of-the-box provides safety roughly on-par with the high-integrity C++ style-guide. For provable safety, the SPARK subset/provers are used.…
An interesting read, though perhaps it would have benefitted from going the route that made things click. After all, each of the features can be independently achieved, so why not show that _before_ winding around to…
I read about a VHDL that used DIANA. DIANA was an IR in some Ada compilers; I would imagine that such a common IR would facilitate exactly those test benches with an ease that borders on 'ludicrous'.
Found the link: https://github.com/ada-game-framework
It's actually really great for anything where you want to be more safe/correct, like banking... and the `TASK` construct makes it really nice for naturally multitasking situations. A couple of the people in the…
Hey, let me encourage you: do it. You might be surprised at the agreement you get, or at discussions.
Yep. And sometimes it's hype over the weirdest things... a good example "dependency injection". Generic Type Index is (<>); -- Any discrete type. Type Element is limited private; -- Any non-discriminated type. Type…
To be fair, the file-handling is probably the 'crustiest' part of the standard library. (To use the posix-flags, you use the Form parameter.) The best way to use Ada, IMO, is type-first: you define your problem-space in…
Pretty much [close enough for government work]; see: https://stackoverflow.com/questions/7764656/who-is-diana-and...
> I suspect, though, that memory safety is one of the most important kinds of safety. I don't. It seems to me like "memory-safety" is a response to the legacy of C and "C-compatibility) WRT poor behavior/respect of…
> The tool would have to be pretty damn good. And also not introduce business risk or at the very least a minimal business risk. That is actually quite possible. Ada is in a really good place as far as that goes:…
Memory management in Ada is such that you need pointers (and the heap) far, far less than in other languages: the language allows the return of values to objects of unconstrained subtypes to provide the constraints;…
Honestly, Ada fits a LOT of that bill. The type-system and forced spec/implementation split both work well to catch errors; you can go further with SPARK [proving] and using Pre- and Post-conditions, type-invariants.
If you want that same GUI/RAD style, Delphi is still around.
The items "A serious take on a contract-based language" & "A language with semantic relations" are covered pretty nicely by Ada's SPARK subset/tools... and the really great thing is that the "aspects" are part of the…
Look at Ada and its error-messages.
>>say arrays that "know their own length" > > There's a fair amount of C code that does just that and does it for a long time. No, there isn't. There can't be because of how arrays in C degenerate into…
> The C language also has a stable ABI, which is basically the ffi for most languages, C is honestly terrible to target/use as FFI, doing so precludes doing things correctly, or more advanced things like... say arrays…
You are right; it's because the "modern" CI/CD is ill-designed, thanks in part to being "generalized" to handle text and "generalized" tools like C compilers and makefiles... instead of, you know, working in the actual…
> Isn't this why we have CI/CD and scheduled pipelines? I mean, kind-of. One of the problems with CI/CD though is that they're poorly designed for the job they do; see this:…
> I imagine COBOL is similarly stable but I have no experience there. I haven't programmed in COBOL, but it is quite stable. One of the really nice things in COBOL is the "Environment Division", which has a…
> Having separate module interface and module body files, as in Ada or Modula-2/3, is a great idea that sadly a lot of people are burnt out on because C and C++ do this in a very unprincipled way. > Having a terse…
IIRC a circular graph would typically be done via pool-specific access types. -- Forward declaration. Type Element(<>); -- Assuming there's a Graph.Pool implementation of the base Storage_Pool object. Type Pointer is…