Things I read, Week 2

I want to try something new on this blog this year. I tend to read and watch a lot of things during a week, either for work, for education or for fun and entertainment. Sometimes I have thoughts on the content, sometimes I don't. I often rumble around a few thoughts on Twitter, but that often gets lost. I will start collecting the things worthwhile to mention now evey week and publish them here.

Let's start!

Article: Some Were Meant for C (PDF)

An article by Stephen Kell. He argues that C is not popular because of performance concerns, but for reasons of communication and integration. He thinks it could be possible to implement C, the language, in a safe manner, while still allowing for a lot of the low-level things C can do.

C is far from sacred, and I look forward to its replacements—but they must not forget the importance of communicating with aliens.

I can follow his thoughts and arguments, but I don't agree with his conclusions (I can't fully express my disagreement yet). His clear cut between C (unsafe, but low-level) and everything else (high-level, safe, managed) is too weak. There are things in between (I see Rust in this position). E.g. Rust allows unsafe wrappers around C-like things (direct memory access, re-use of in-memory data structures) plus safe interfaces on top of that.

Code: Lock-free grow-only Skiplist

withoutboats wrote an implementation of a lock-free grow-only map and set on top of a skiplist. After I wrote tried to write a lock-free skiplist back in the days of my bachelor thesis, I was happy to see a reasonable, small, understandable implementation of this concept, even if it completely skips the hard part (removing of entries). For that reason (the removal part) his solution would not have worked back then for me, but it's still interesting. The code uses a lot of unsafe and might very well contain bugs, so don't use it right now.

Code: smoltcp

A standalone TCP/IP stack implementation in Rust. Does all the things like ARP, ICMP, IPv4 and IPv6, TCP and UDP. It can do tcpdump-like packet filtering on a raw socket or can be used as a user-land networking library through tap interfaces. It you're into networks it's worth to take a look.

Blog post: Rust 2018 by Nick Cameron

(This is a response to the community call for roadmap blogpost)

Nick argues for a boring year for Rust, which I can agree with when it comes to the roadmap. We should finish off the stuff that is already half way there and get rid of old debt.
This does not mean that we can't experiment or try new things/ideas/areas, but they won't be the main focus of the core team's roadmap. Individuals or groups should definitely pull Rust into new fields.

And as tweeted before, Rust's roadmap is a community effort, weigh in with your opinion to shape #Rust2018!