Linux gamer, retired aviator, profanity enthusiast

  • 1 Post
  • 24 Comments
Joined 2 years ago
cake
Cake day: June 20th, 2023

help-circle








  • Actual answer:

    Rust is a relatively new programming language. Similar to C or C++ it compiles directly into executable binary code so it can be used for bare metal or low level operating system programming. It is thus relevant to Linux kernel development as things like drivers can and are being developed in Rust.

    Compare this to the likes of Java or C# which get compiled to bytecode or a kind of pseudo machine code that gets run in a virtual machine, which has advantages for application development, or something like Python which is interpreted (or just-in-time compiled) at run-time, useful as an end user scripting language.

    Rust is designed from the ground up to tackle some modern problems, a key one being memory safety. It’s a lot more paranoid about memory allocation and access and it’s structured around this. Older languages like C allow the programmer a lot more absolute control over the hardware, which effectively means the C programmer has a lot more footguns in his toolbox. Theoretically, Rust offers fewer opportunities for the developer to shoot himself in the foot.

    Rust also comes with some really cool tooling. Compiler errors usually point straight at the problem and say something like “Shouldn’t there be a colon here?” The build system, called Cargo, is really slick in a lot of ways, handling linking, compiling, even library package management in a very automatic fashion. It’s real slick to work with.

    As with anything, fans of the language can be a bit much; they stereotypically suggest rewriting everything under the sun in Rust whether it makes sense or not, and this includes the Linux kernel, which has caused some friction in the community; Linux contributors are often very accustomed to C and some don’t want to deal with anything else.







  • Let me tell you a little bit about all those various file converter tools, be it ffmpeg, pandoc, imagemagick, whatever.

    The majority of them can be used like this: magick inputfile.bmp outputfile.jpg. If all you need is this file in that format, that’s how you do it. They’re ridicluously capable, you can do editing and compositing and such with them and whatever. If you have a use case where you do that a lot, like you just always put a watermark on images or you always desaturate them or whatever, you can write a script, then just run that script.

    They’re basically all like that. Fairly simple to use for basic format translation, shockingly capable if you want to write a script.