HNHacker News
TopNewBestAskShowJobs

kevlar700

123 karma · joined June 20, 2022

submissionscomments
kevlar700··on Overview of the Ada Computer Language Competition (1979)
True but it was far more open than a committee. The STRAWMAN requirements were circulated widely for comment to industry, military, federal and academic communities and to select experts such as Dijkstra and Hoare. Then WOODENMAN circulated for comment after incorporating changes based on STRAWMANS responses.
kevlar700··on Overview of the Ada Computer Language Competition (1979)
Interestingly Co-Pilot gets it wrong and states Ada was designed by committees instead of being multiple competitive processes. How misunderstood Ada is.

https://copilot.microsoft.com/shares/Jp9AmNHMEJzNmcbiu1VNx

https://copilot.microsoft.com/shares/vUjdaDh4mXvj1fm4cyt15

kevlar700··on Ask HN: What less-popular systems programming language are you using?
Loving Ada without using exceptions or inheritance on embedded and desktop. Some love Ada full OOP tagged types. I love Ada procedural style with privacy and abstract data types. I wish Flutter was written in Ada but atleast Dart is better than JavaScript atleast for procedural code without it's oop boiler plate. You don't actually need OOP for widgets.
kevlar700··on Nvidia Security Team: “What if we just stopped using C?” (2022)
There is a podcast and blackhat? video about Nvidia choosing SPARK over Rust. Not because of formal verification at all but because it is a more developed prospect and offers better security even without any formal verification. This isn't mentioned but Ada is also far better at modelling registers or even network packets.

I might consider AI if it utilised SPARKs gnat prove but I wouldn't usw AI otherwise.

kevlar700··on Nvidia Security Team: “What if we just stopped using C?” (2022)
SPARK is free for all to use and is open source. They chose to pay for Adacores pro support services and verified pro Ada compiler over the FSF GCC/Gnat Ada compiler. Spark is actually part of the Gnat compiler (compatibility) but actually the slower analysis is done by gnatprove thereby keeping compilation and iterative development fast. Nvidia can certainly afford to do so of course.
kevlar700··on The state of Rust trying to catch up with Ada [video]
Predicates are great but most of the good stuff including privacy, proper subtyping and abstract data types came with Ada 83. Rust can't hold a candle even to Ada 83 imo.
kevlar700··on The state of Rust trying to catch up with Ada [video]
Hardware products like sensor and control devices. I also use it for desktop tooling whenever a script wants a for loop. Unfortunately I use Flutter for GUI stuff because I hate js and because it has Android/IOS plugins that I would have to write if using Gnoga.
kevlar700··on The state of Rust trying to catch up with Ada [video]
I think Ada is seen as some esteemed language that only the military and space would have the expertise to use. I had that opinion for maybe a decade but it was very wrong. The other issue was that it is so powerful that compilers had bugs and by the time an affordable open source compiler came along I guess C++ was gaining libraries and the militaries don't release libraries.

The ironic thing is that Ada was designed to be cost effective over a projects lifetime. C costs you a lot further down the line.

kevlar700··on The state of Rust trying to catch up with Ada [video]
Better to hurt your eyes (which is nonsense unless a book hurts your eyes) than your brain. Optimised for the common operation of reading.
kevlar700··on The state of Rust trying to catch up with Ada [video]
Whenever I can use Ada. I wouldn't use anything else.
kevlar700··on Ada Gems (2014)
I use Ada for embedded products and it's the best language for embedded by far. Despite it's reputation I think it's an easy to use language.
kevlar700··on Porting the GNAT Ada compiler to macOS/aarch64
True though from what he has said early on in it being more of a hobby and liking building tools then I am sure he would welcome any help or input.
kevlar700··on Ada's dependent types, and its types as a whole
Spark supports borrowing which is easier to use than Rusts now. It also prevents memory leaks.
kevlar700··on Ada's dependent types, and its types as a whole
Agreed. It would also alleviate the maintenance issue as Ada was designed to reduce software costs. Realistically the obly way this will have any chance is if a few developers were funded full time to work on it. There seemed to be a few full time devs pushing Rust support and some drivers before it was taken seriously. Honestly Ada is the best language that I have seen for drivers and for network stacks or for registers received as bytes. Linux is missing out.
kevlar700··on Ada's dependent types, and its types as a whole
The real benefit of Adas typing is that it is so easy to utilise often preventing logic errors.
kevlar700··on Ada's dependent types, and its types as a whole
Why? The code you compile isn't infected by the runtime license?
kevlar700··on A Random Walk Through Ada (2014)
Ada is so good for embedded. Loving it.
kevlar700··on A Random Walk Through Ada (2014)
Interesting. I love Ada and these historical doomed to repeat ourself facts are interesting like Ada books from the 80s talking about AI. Before I switched from Go to Ada I actually used to use var upfront out of preference.
kevlar700··on Show HN: Getada: rustup-like installer for Ada's toolchain/package manager
Adas specification was developed competitively over a number of years with embedded development as well as the ability to replace all 450 languages in use by the D.O.D. at the time as requirements. Rusts first official specification is still in the works aside from the one created by AdaCore.

Representation clauses are just beautiful for embedded memory-mapped registers and network protocols and driver registers received over spi/i2c etc.. There is even built-in validity checking. No need to shift generally as the compiler does everything for you.

https://learn.adacore.com/courses/Ada_For_The_Embedded_C_Dev...

The D.O.D study that includes Java would need to be dug up but this one is interesting too.

https://forum.ada-lang.io/t/comparing-the-development-costs-...

I only found out recently that the D.O.D. Ada mandate didn't say you had to use Ada. It said you had to demonstrate why your project would be more cost-effective than using Ada. Considering Ada was designed with cost-effectiveness/maintainability as a primary requirement then that was a difficult task.

kevlar700··on Show HN: Getada: rustup-like installer for Ada's toolchain/package manager
I'm not afraid of functional programming. I just dislike it. I avoid recursion in Ada personally (others like it). I think OOP is over rated and the clarity of imperative is under rated. Though I do like how Ada provides object oriented design to imperative programs even without touching Adas OOP features (tagged types).
kevlar700··on Show HN: Getada: rustup-like installer for Ada's toolchain/package manager
Ada goes beyond memory safety.
kevlar700··on Show HN: Getada: rustup-like installer for Ada's toolchain/package manager
Rust tries with a crate and traits but it misses out on e.g. record memory overlays which are so powerful in Ada. Type design is beautifully intuitive for the main part in Ada too. Restricting your parameters with ease means there is less logic to write and mistakes and refactor fallout gets caught early.
kevlar700··on Show HN: Getada: rustup-like installer for Ada's toolchain/package manager
Honestly Ada is far better than Rust for close to metal as it was designed for it. It is also safer and easier to use than Rust. Ada has also been demonstrated to be more cost effective over a programs lifetime than C, C++ and Java. I also dropped Go for Ada and prefer the quality and memory control that Ada offers. The only thing I miss are the stdlib docs and the ease of cross compilation.
kevlar700··on Show HN: Getada: rustup-like installer for Ada's toolchain/package manager
They have improved go modules since but if you didn't use github gos tooling wasn't so great. I actually dropped Go for Ada and prefer Adas packaging.
kevlar700··on Show HN: Getada: rustup-like installer for Ada's toolchain/package manager
literally

alr init --bin new_project

cd new_project

alr edit

kevlar700··on Show HN: Getada: rustup-like installer for Ada's toolchain/package manager
Did you come across? https://learn.adacore.com
kevlar700··on Ada 95: The Craft of Object-Oriented Programming
I chose Ada over Rust for my company a few years ago and couldn't be happier. My entire embedded and tooling code bases are now Spark compatible. I don't believe any language can match Ada for drivers, memory register and network protocol handling.
kevlar700··on Ada 95: The Craft of Object-Oriented Programming
Ada has been shown time and again to be more cost effective than C, C++ or Java. Even in the old days before Ada2022 and Spark 2014s recent improvements.

http://sunnyday.mit.edu/16.355/cada_art.html

kevlar700··on Ada 95: The Craft of Object-Oriented Programming
Ada is very flexible and does let you leave out the runtime check. However the program will be stopped or atleast be exceptive by default if a logic error creates an invalid value that you haven't checked the validity of. Spark can be used for a higher degree of value analysis at compile time because flow analysis is obviously needed in many cases. Volatility can still be an issue but in most cases Ada knows the inputs such as for API usage validity.
kevlar700··on Ada 95: The Craft of Object-Oriented Programming
That's unfortunate. Ada is so much nicer to work with and Spark now has deallocation safety and memory leak prevention.

https://youtu.be/97G1V2U8Drk?si=wNqNs1GiuO9ZdGwP

Page 1 of 2Next →