497 karma · joined November 22, 2009
[ my public key: https://keybase.io/axman6; my proof: https://keybase.io/axman6/sigs/iW_swLHLPyPBft7t-R5kHZD3ZCHhIX-7pBUTbVj6yBQ ]
If I made statements saying that not only did I discover, but also made love to and raised the children of a dragon to international media, do you think it would be bullying for people to tell me it’s nonsense? If so, you’d have a pretty spectacular definition of bullying if you ask me. We should not allow liars to go unchecked.
It's a shame there wasn't more information on the tools Ada provides for concurrency - I haven't seen another language which gives you as much flexibility and power to write safe concurrent code. It's much more heavy weight than some other languages in some ways, but gives you very strong guarantees you don't get elsewhere.
It also would've been nice to talk a bit about some of the features which make it particularly well suited for embedded systems:
* things like the ravenscare profile which give you a safe subset of the language using statically allocated never terminating threads
* the ability to select the scheduling algorithm (including ones with task priorities which are used to avoid the possibility of deadlocks completely - see the priority ceiling protocol for more details)
* the ability to address specific memory locations being built into the language, not just casting ints to pointers like you would in C
* full control over how elements on records are laid out, including endianness, this is essential with the previous feature when you're dealing with memory mapped IO registers for controlling hardware
* the ability to define that certain data types can only be used at certain specific memory locations (see https://cs.anu.edu.au/courses/comp4330/Lectures/RTES-03%20In... "pages" 314 - 332)
For anyone who's had to write code to interface with hardware on micro controllers, they're probably wetting themselves with excitement by now, doing this in C relies on the compiler doing what you think it will, which there's no guarantee of because the ability to use many of the features is implementation defined, if defined at all.
ANU's COMP4330, which these slides come from, is an excellent resource for learning more about both Ada and real time systems in general: https://cs.anu.edu.au/courses/comp4330/1-Lectures-Contents.h...
Also my brief experiments using HTTP/2 in Haskell involved zero changes to my web service handler code, and maybe one or two extra lines to give paths to the TLS cert files. Web services will benefit massively from HTTP/2 in some domains, I do a lot of web geospatial work and using it for servers which return hundreds of image tiles will be a massive win
I'm not a big fan of this whole community splitting action, but to think that it's been undertaken as a coup d'état to take control of the community by a commercial entity is verging on tinfoil hat territory.
And you know what? Stack is a fantastic tool for newcomers, we use it exclusively for our commercial Haskell projects and it's changed our development practices for the better by a long way. Something that built today I can be sure will build in a year without changes - cabal has never been able to guarantee that. I'm really glad someone has put in the huge amount of effort to make a better Haskell build tool, it's been far too long coming.