5 ms·
I know you jest, but: http://libre.adacore.com/tools/aws/ http://libre.adacore.com/tools/aws/ (Personally, I think that web programming in Ada would be pretty
by david-given 10y ago
I know you jest, but:
http://libre.adacore.com/tools/aws/ http://libre.adacore.com/tools/aws/
(Personally, I think that web programming in Ada would be pretty hard work --- string handling is quite painful. Although not as painful as C.)
- nickpsecurity 10y agoYeah, I saw it a while back. Messed with them about using OpenSSL. Predicted problems. ;) Yeah, low-level stuff can be painful in Ada for we apps. My main idea was to make a scripting language with type inference and annotations that would autogenerate Ada code. Its own constructs handle web safe by default. See Opa language for example. Another idea was porting Python and stdlibs to Ada or Rust. So, you get Python or its web frameworks at user level. Underneath, you get safe, systems constructs to make abstract machine and performance-critical stuff run safer. What you think of these?
- david-given 10y agoUsing Ada as an intermediate language is an interesting idea --- it's a richer language than C, and is more well-defined than C (although it still has undefined behaviour; plus an exciting thing where certain undefined values can be illegal to even look it). And it generates excellent machine code. But getting hold of an Ada compiler is much harder than a C compiler. And in real life there's only one Ada compiler, which is gcc, and it's developed by Adacore. If they went under then I'm not sure there'd be enough people to maintain it. So you very much get toolchain lockin. (Plus of course there's Adacore's lawyerbomb in their Gnat distribution, but that's easily avoided by getting the one at getadanow.com.) So... dunno. Try it! It'd be really interesting to know how well it works.
- nickpsecurity 10y ago"(although it still has undefined behaviour; plus an exciting thing where certain undefined values can be illegal to even look it" You have a link that describes that stuff? "If they went under then I'm not sure there'd be enough people to maintain it." There's at least 3 or 4 that I know of. Theirs is best bet for combo of investment into it and FOSS friendly. And, yet, we still have liability you describe. One of reasons I pushed Free Pascal and Modula-3 for future-proofing is that even amateurs could figure out how to port toolchains. Ada? I have serious doubts that even pro's could figure it out without AdaCore et al's help haha. "(Plus of course there's Adacore's lawyerbomb in their Gnat distribution" What is it? News to me. "but that's easily avoided by getting the one at getadanow.com" Thanks for link and review in general. :)
- david-given 10y agoRe undefined behaviour: I could be wrong there, actually. The rules are complex: http://www.adaic.org/resources/add_content/standards/95lrm/ARM_HTML/RM-1-1-5.html http://www.adaic.org/resources/add_content/standards/95lrm/A... But if you have an undefined variable with a limited range, e.g. an enumeration, then it's possible the contents of the memory location might correspond to an invalid value for that type. So, accessing that variable in any way other than assigning to it is erroneous behaviour (of some variety). But I forget whether the compiler is required to check and error out or whether it merely can check and error out if it likes. Adacore's Gnat distribution (at least the last time I looked at it) had the standard library GPL licensed, not LGPL licensed... thus making any binaries built with their toolchain undistributable unless they're GPL'd.