Linux on a laptop

Awesome :smiley: honestly I’d say that probably makes it much easier to pick up the other stuff—it’s not that hard to learn tools like Git or Make or whatnot compared to how hard it is to learn to program in a general sense. I’m maybe a rare example of someone who started out doing more beige software development and got into game-making years later which is the main reason why I’m familiar with things like that.

The impression I’ve gotten in the game dev world is that many (most?) game programmers learned programming expressly to make games and haven’t pursued it much outside of that context, which I think has resulted in a kind of strange circumstance where there’s almost like “parallel cultures” with their own traditions and ways of doing things etc. even though it’s kind of the same activity both ways. On that basis some of the commonplace practices in the more “utilitarian” development world are really helpful even for game development, and I think sometimes the separate sphere situation results in people reinventing the wheel needlessly and so on which is obviously kind of nice if you can avoid. Maybe if I’m going to write an article on anything along these lines I should start with like, “The tools of the other ones.” :stuck_out_tongue:

Awww yeah!! :grin: I don’t know if you mean the magatama-esque G or Larry the Cow but I like them both for sure.

Um, it’s…kinda scary in a way I guess…it requires more getting-used-to and regular maintenance than some other distros. I kind of think of it as like, if you enjoy spending some of your free time playing around with your computer and tinkering with things and such anyway, and especially if you have really specific desires for how you want your computer to work, Gentoo will cooperate with you, try to make things as easy as it can on you without boxing you in, and give you a lot for your efforts. Someone who says, “I don’t want to tinker with my computer, I just want it to work so I can do things,” might find Gentoo to be a hassle, though, because you can’t really just use it on autopilot. I don’t feel like I actually have to spend that much time each month on system maintenance, but that’s partially because I have a set of scripts I’ve gradually honed over the years to automate a lot of the regular work in the way I like, which maybe suggests something about what it’s like—because of its emphasis on flexibility and user choice it ends up being kinda DIY in a lot of ways.

Also, it helps if you know both C and C++ (in an idiomatic sense) and are familiar with the various ways software in those languages is commonly structured and built on UNIX platforms. Normally, installing a package is no more difficult than it is on a binary distro—you can do like, emerge PACKAGE_NAME and it will download the source for the package and build and install it without you having to do anything else. If the package fails to build, though, which occasionally happens, you’ll probably be mucking around in its build directory and looking at the compiler output and things, and if you don’t have any idea how to approach things like that you’ll have a hard time figuring out the problem. The majority of the commonplace packages in any Linux environment are written in C or C++ (partially because those languages have a deep historical connection to the UNIX platform—C is an integral part of what makes UNIX what it is, in fact) so that’s usually what you need to be familiar with to troubleshoot problematized packages. That said, if you don’t know C or C++ but you want to learn both, Gentoo is an excellent way to train yourself up quickly—it can be a bit sink or swim in fact :stuck_out_tongue:, but also you get to see what a lot of mature, widely-used packages in those languages look like on the inside, which is very educational.

I don’t think you really have to worry too much about safety—like, the worst thing that can realistically happen in a Gentoo desktop environment that I can think of is if the package manager just can’t figure out the chain of dependencies during a system update and won’t proceed, which can happen if you go a really long time without updating (like half a year or something). In that case, though, you can just rebuild all the packages on the system from the top, which you probably have to do anyway more-or-less if you wait that long to update. That can take a while to finish but it’s not any more trouble than a normal update is.

Using Ubuntu does have the advantage that a lot of like, “relatively clueless about Linux” software that still provides Linux builds will work on it without issue, whereas on other distros it may assume too much about the environment to work properly. (Developers accustomed to Windows have a tendency to underestimate how much different Linux environments can vary from each other…although if you use SDL and avoid platform-specific code, your program will actually work well on both Windows and basically any Linux desktop system, just sayin’. :stuck_out_tongue:) I don’t feel like I have too much trouble with that since I generally use more “Linux-oriented” software anyway, but your case may vary. One thing I will say is that if you want to use the Unity editor, they insist that you run it on Ubuntu 20.04, Ubuntu 22.04, or CentOS 7, and in my experience it’s unlikely to function well on other distros unless they’re very similar to those (and they won’t give you support on other distros either). I don’t like Unity very much anyway for various reasons, but if you’re a big fan of it, that almost makes Ubuntu the only option for you if you want to use Linux, since CentOS has been discontinued. Of course, if you want to move away from proprietary software, that rules out Unity (the fact that it’s proprietary is probably the most significant thing I don’t like about it, considering all that that implies).

I’ve also found Ubuntu’s installer to be kind of shockingly buggy (I once saw it glitch out with a nonspecific error message and corrupt an entire hard disk during a routine install—usually it’s not like that, but I definitely recommend backing up your drive before installing it to a partition just to be safe). Once you get it running, though, it’s generally quite stable and usable as long as you don’t try to sway too far away from the default setup (like, if you stick with the default window manager, install things from the official repos as much as possible, don’t muck about too much with the system settings, etc. etc.). In a way it’s almost like the opposite of Gentoo in that regard—if you try to move your system away from the most typical use case, you’ll feel like you’re fighting the OS more and more, but if you just stick with the defaults and install some popular software and get going or w/e, you’ll probably find it very easy to use, as long as you like all of its conventions and things.

As long as you’re test-driving distros, two others you might consider experimenting with are Arch and Slackware. Arch is kind of like Gentoo in that it’s very flexible and doesn’t assume much about how you want to set up the environment, but it’s a binary distro instead of a source-based one, which makes it a bit simpler to use day-to-day and also means it’s faster to install packages. Slackware is one of the most BSD-like of Linux distros, both in that it tries to present a “complete system” of packages instead of having the user install them piecemeal, and in that it tries to stay very true to traditional UNIX principles. It generally provides software without any special distro-specific patches. You can also check out DistroWatch for other things to try—I’d take the “popularity rankings” there with a grain of salt but it can be a neat way to find out about newer distros you might not have heard of. There seem to be lot of distros out there these days that are built on top of Arch and provide a more streamlined user experience for instance, kind of like what Ubuntu or Mint do for Debian, and although I don’t really have experience with them I think some other users on this forum use distros like that.

6 Likes