What's everyone working on this week (32/2019)?

New week, new Rust! What are you folks up to?

I've added quick search URLs to lib.rs. If you open lib.rs?keyword it'll search for it, e.g.

lib.rs?vec

1 Like

Learning Rust! So far I've enjoyed learning it but it's quite different from the scripting languages I'm used to.

" What’s everyone working on this week ?"

That is a very topical question for me here because as it happens I took it into my head to look into Rust a week ago. It has consumed nearly every waking hour since!

You see, having worked in what seems like a 100 languages over the decades I had decided a year or two ago that enough was enough. No more wasting time learning how to do the same things over again in YAFL (Yet Another Fine Language) but in a different syntax and semantic. Most of those languages did not bring anything conceptually new to the table.

Since then however I had to get into Verilog and Scala to get what I wanted done in FPGA. Then I start to hear about this new language kid on the block that emphasizes correctness and safety whilst being a "systems" programming language like C/C++. Hmm... now you got my interest.

So far I'm impressed with Rust. With it's type safety and aliasing/borrowing rules it does bring something conceptually new to the table. At least for me any way. It's kind of what I always dreamed of, C with all the undefined behaviors and other broken parts fixed. The capabilities of C++ without all the mind bending complexity of that language.

The icing on the cake for me is the possibility to use Rust on up and coming RISC V projects with limited memory space and performance, where I would otherwise turn to C/++.

Anyway, the result of my first week rusting is a little program that finds all the anagrams in the 650,000 words of Debian's "british-english-insane" dictionary. In it's various incarnations over the week it has matched the performance my C++ version when written in a C++ style and now matches C performance when getting dirty with array slices instead of word strings. Currently it takes about 0.9 seconds. I'm sold!

I look forward to using Rust in the future. It would be great to see support for Rust from GCC and perhaps MS. It would be great for Rust to have an ECMA or ISO standard, but I'm sure it is early days for that.

I do hope Rust never succumbs to "language bloat" like C++ and others have done.

Thanks all.

3 Likes

At the moment the language is evolving too rapidly for standardization. So is the underlying compiler technology (e.g., scoped borrows to NLL to Polonius), which determines what code is acceptable.

I can totally appreciate that. It's still early days for Rust.

It's far better to base such standards on working tools best working practice, when there is enough of it and perhaps multiple vendors involved, than to create a standard prematurely in a vacuum and hope the world follows. In short, get it working and right first.

If there is the massive take up of Rust that I expect there will be, in the web world, in the embedded/IoT world (Odd how those very different environments have the same requirements for performance, small size, correctness and safety), then it will have to solidify anyway. Then standards might follow.

I just announced my new crate: Mockall. It's a new mock object library for Rust. I know it's a crowded space, but Mockall is more powerful than any of the existing crates.

1 Like

At the beginning stages of writing a trie data structure for fun and to mess around with parallelizing some aspects like large inserts and searches. trie-search

Implementing charging / powering up moves for my game. There are so many different ways a "charging up" move may be used, so am still working out the data model and systems to support them:

Charging styles:

  • Continuous
  • Blocky (delay before next bar is charged)

Storage:

  • Single bar / block
  • Multiple bars / blocks (can be rendered as layered bars, or multiple chunks on a single bar, etc.)

Activation:

  • On button press
  • On button release
  • Delay / time based
  • Interaction from another object

Charge usage:

  • Everything
  • Up to previous partial block stop
  • Up to previous complete block stop
2 Likes

Just created a small library for the P9813 RGB controller for controlling an RGB strip with a Raspberry Pi: https://crates.io/crates/p9813

It's no_std and using the embedded-hal traits so it's not limited to just Raspberry Pis.

I am looking into how to travel to RustFest.eu and back home by :bullettrain_side: train.
Looking for people running meetups before and after the event.