1. 10
  1. 23

    This is basically a blog post on how the author set up an Arch Linux machine to code Rust on. There’s almost no Rust-specific content.

    1. 1

      That’s right. I just wanted to give some inspiration and why changing your hardware/software setup can also lead to a better understanding of the how’s and why’s of a programming langauge, in this case Rust.

      1. 6

        changing your hardware/software setup can also lead to a better understanding of the how’s and why’s of a programming langauge, in this case Rust.

        This point wooshed past me. I wrote quite a bit of low-level stuff in Rust on macOS, including hand-rolled linear algebra code with SIMD intrinsics. I could have done the same on Windows with WSL if I had wanted to (or plain Windows, but that’s an alien environment to me). Just inspect the generated machine code (e.g. with cargo-asm). The argumentation here seems to be more about the reduction of distractions and aesthetics. You can work with a full-screen iTerm with tmux on the Mac as well and put it in permanent do not disturb mode to avoid notifications, so I am not sure how valid this point is.

        There is an interesting story to tell about system programming on Linux vs. Mac, but it would be about perf vs. DTrace/Instruments, valgrind for finding memory leaks vs. leaks, etc.

        I have mostly switched back to Linux, but my primary motivation is that if I find a bug or possible improvement in the software or distro (NixOS) that I use, I can fix it myself and submit a patch upstream. Among other things, I am really fed up with macOS bugs, some of which have stuck around for years (e.g. Preview crashing frequently on re-LaTeXing PDF files) that I cannot attempt to fix because the source code is proprietary.

        1. 4

          It seemed more about eliminating distractions than languages or systems programming. It didn’t seem language-specific at all — that same setup would let you focus on Clojure, C++, Haskell, or writing a novel.

          I didn’t get the point about not being able to do systems programming on MacOS. I mean, all those distractions in a Mac are enabled by mind-bogglingly clever systems programming that was done on MacOS!

          Is the idea that by setting up the right “feng shui” on your computer, you create a mental space conducive to the kind of work you want to do? In other words, it’s not all about lack of distraction, but about the right aesthetics? So if you want to do a certain kind of programming, namely headless network servers and the like, you want to work on a bare Linux system? I can understand that — I just recently installed the Go font to do Go in, which in some weird way is now associated with thinking like Russ Cox. :)

      2. 7

        But, as I digged deeper and deeper into the language, and watched tutorials, I figured: I can’t do Systems Programming on a MacBook Pro running macOS. Don’t get me wrong: Once you mastered a skill, it doesn’t matter where you operate it on. Also a different machine doesn’t make a huge difference. Although, I might disagree a bit with that. Take loosing weight for example.

        I - disagree with this logic, at least as stated in the article.

        I think what you were going for was “I wanted to switch to a working environment where I could strive to understand (and possibly modify!) every aspect of it all the way down to the bare metal, and in so doing increase my comfort level with and skill in systems programming”.

        I don’t mean to rewrite your article for you, and I’m hardly a writer, but I think you’re actually driving at something worth saying here.

        1. 3

          Thanks, that’s exactly what I meant. English is my second language, so sometimes it shows :)

        2. 2

          The best part of this tutorial was that it has a cogent, concise set of steps to follow to make fonts in Arch look not like ass. God I miss infinality.

          1. 1

            Running Arch Linux on a Thinkpad and using NeoVIM + useful plugins as my text editor (for, among other things, Rust) has been my own workflow for close to a decade now. Longer than I’ve personally known about Rust, in fact! This is the setup for my personal laptop, that I use for all sorts of things besides coding, and I’m certainly as prone to wasting time on the internet on it as anyone else it. So I’m a little skeptical of the claim that using arch linux will put you in a more distraction-free headspace for serious programming work than a mac would. But if it works for the OP, then great.

            1. 1

              In addition to my Thinkpad, I operate a remote server (for around 10 Euros/month) for backups (via rsync) and other fun activities.

              Where do you have this remote server from? I’ve been meaning to set up an FTP box on Hetzner to make offsite backups, but curious what other services people use in Germany.

              1. 1

                I am using Kimsufi: https://www.kimsufi.com/de/

                Why? Because I want my server location to be in France! Maybe other providers are offering the same, but I used it a while ago and just stick with it now!