8 ms·
> Make something idiot-proof and the world invents a better idiot. :D My argument is that if I need that insane speed and safety features have to be off I sho
by StreamBright 5y ago
> Make something idiot-proof and the world invents a better idiot.
:D
My argument is that if I need that insane speed and safety features have to be off I should actively work for that not the other way around that I should actively work for safety.
Why? Because we forget to do things.
> Another language that does safety like this incredibly well is Ada (Ada/SPARK)
I wanted to learn Ada for a long time. Do you have a guide or tutorial how to get into it?
- johnisgood 5y agoI once collected all of my posts about Ada which do contain lots of links that can get you started. I will not re-post them here, instead you may go to https://news.ycombinator.com/item?id=23808305 https://news.ycombinator.com/item?id=23808305. Check out the links under [2]. Especially these ones: https://news.ycombinator.com/item?id=21435869 https://news.ycombinator.com/item?id=21435869 and https://news.ycombinator.com/item?id=21437498 https://news.ycombinator.com/item?id=21437498
- StreamBright 5y agoThanks!
- johnisgood 5y agoNo problem! You might find this website useful, too, as it is filled with resources: https://www.adaic.org/learn/materials/ https://www.adaic.org/learn/materials/
- mousepilot 5y agoI loved reading about ada back in the day, how is it nowadays wrt network programming. I'm checking out gnat.sockets, does it have a snappy select() type thing like linux's epoll? Sorry if a lazy question, last time I looked at ada was decades ago and I'm surprised to find enthusiasts for it on HN. edit: an advantage for c is that you can get loads of examples just googling, sucks for less used languages I guess.
- johnisgood 5y agoIt has been a while, but you may want to look at: - https://en.wikibooks.org/wiki/Ada_Programming/Libraries/GNAT.Sockets https://en.wikibooks.org/wiki/Ada_Programming/Libraries/GNAT... (search for "C select()") - https://www.codelabs.ch/anet/ https://www.codelabs.ch/anet/ - https://github.com/samueltardieu/adasockets https://github.com/samueltardieu/adasockets - https://github.com/rtyler/ada-playground/blob/master/epollecho/src/main.adb https://github.com/rtyler/ada-playground/blob/master/epollec... Some old reading: https://brokenco.de/2013/04/07/async-with-ada.html https://brokenco.de/2013/04/07/async-with-ada.html You may want to check how GNAT.Sockets and Anet are implemented, too. I know that GNAT code is heavily documented.
- mousepilot 5y agothanks man, your post is a great timesaver, that wikibooks link itself is packed with info!
- johnisgood 5y agoOf course, you are welcome!