I hope everyone is doing great. Today I want to hear from you about your views of the Linux distribution you guys are using for software development and why you prefer that distribution.
I have a nice experience with Ubuntu and currently, I have Windows 7 32-bit on my Dell Vostro 1015 dual-core with 6GB RAM laptop. Now I want to install 64-bit OS and explore a new Linux distribution for software development. I am thinking about CentOS because of its SELinux security and it’s based on RedHat. But Arch Linux also seems interesting because I can customize it accordingly and I think it will increase the performance. I’m not able to choose one. And there are other good Linux distros too. Would you help with this?
I also like to hear the facts of Linux distros you are loving to work with and why?
I appreciate your time and help.
Personally I think that the kind of distribution is strongly important in Cybersecurity.
In software development is somewhat important, but is not the first determinant of the quality of your work.
I have experience with Ubuntu, is a very good OS. But of course you already need to be aware of what you specifically want to do.
In addition, a week ago, there was a related question in the forum, on how to do your own linux distro.
Basically, you can create your own one using Yocto project to avoid a lot of work. You may require a central repository.
You can find more about the steps in the following links: https://www.yoctoproject.org/ https://www.linuxfromscratch.org/
This is all that I can say
Hope this helps.
Ubuntu is just the most common and arguably most polished distro, generally easy to install, not really any set up necessary, definitely the most used as a desktop OS. There isn’t really anything special about it, it just happens to be the one that reached that position. Someone who has used Windows/Macs and moves to Linux, the most common thing to do is install Ubuntu, it has almost of the stuff that person would recognise.
Thanks so much. it’s very useful.
In terms of just a development environment, any OS is fine. My personal preference is Mint (which is a relative of Ubuntu), but that’s just based on what I like in a desktop environment. Most of the development servers I’ve worked with have been CentOS, because that works well for an embedded server on the specialty hardware we used. I don’t think that I’ve ever used a CentOS based desktop environment, but Fedora is fairly popular.
Most of my work-issued computers have been Windows, which has been fine. Currently my work-issued computer is a Mac, which I don’t like but it works just fine for development.
tl;dr: use whatever operating system you like best.
I think ‘high quality apps’ for MacOS is highly subjective. Overall I’ve been relatively underwhelmed by Apple’s UX, given their tendency to eschew best practices for aesthetic and I’m not a big fan of the additional cost you have to pay in order to play in the Apple walled garden. YMMV.
Linux works fine if you like free, open source software and ultimately the specific distro is not a big deal.
In the end though, the key to good software is the skill of the developer. The OS you are using does not make a big difference one way or another.
I think Fedora will become a great choice as it will combine the SELinux security of RedHat with user friendly environment but I don’t understand. But I don’t get the above portion (stability and experimentation). I mean how things will work perfectly on Fedora if it is not stable. isn’t create issues?
And one more thing?
Would you mind sharing more about your job? It seems interesting.
There really isn’t a big difference in what you can do on the RedHat family of distros vs the Debian family of distros. You will find more ‘Google-able’ support for the Debian family, but ultimately it does not really matter what distro you use.
Thanks so much. It makes me so much confident and comfortable. For now I am a fan of open-source and Linux because I read mostly that developers should have a good command on linux and Linux is best OS for development.
But I’d love to try Mac in future if I will able to buy one.
Its easy to group the three following distributions together:
Namely where RedHat (the company) manages Fedora as an open source/free project, that gets paid support in RedHat Enterprise Linux (RHEL). From there CentOS takes RedHat, strips out some stuff so its again the community version of RedHat.
This all might sound awesome and super relevant, except it isn’t very relevant in the grand scheme of things. Primarily because RedHat’s aim and business model is aimed toward commercial support for RHEL, and everything stems from that fact. Only some companies and use-cases require such support. This means knowing the exact specifics of any of the three of these distributions ends up being relevant with only those companies that use this distro. This might be what your going for, if so then go right ahead! Just understand not every company runs their own servers directly anymore, and those that do have strict requirements.
(I think I saw centOS being used at JPL one time, as an example)
Here’s a blog post I found with a simple diagram to explain the relation:
If your computer architecture can only support 32 bit, you can only use 32-bit software.
This is true, except you also have to deal with every single little intricacy in setting it up to make it usable. I’d only take this route if you want the experience of doing it, and don’t mind spending a lot of time tweaking things. If your focused on performance, get a lightweight distro with lightweight applications that is ready to go out of the box. No need to go with Arch and literally “build the box” to find decent performance on older machines.
I personally have been using Manjaro Linux. Manjaro is built on Archlinux, so it gets to use pacman and AUR. I used to use Ubuntu, but have found getting and managing packages in a rolling release Arch-based distro being much easier over time. No major release headaches, and things “keep getting updated”. Unlike a stock Arch build, Manjaro comes ready to use out of the box in a few different forms, so you can get going without having to set everything up yourself.
So there is less headache setting up, more stability over time, ease of use with the large package repos, great support from Arch-wiki/users and a rolling release.
Honestly, I think that the main reason why using a Linux OS is handy for developers is just that it forces them to get comfortable with using a terminal. For most languages, I wouldn’t say that it’s in any way inherently better for development. The only time that has felt true for me is when working with C or C++, just because trying to get the compilers set up on Windows can be frustrating (but I just copped out and used WSL for that).
Linux familiarity is seen as a benefit on your resume because people will assume that it means that you’re comfortable maintaining your environment and running scripts from the command line. I really wouldn’t stress to much about what operating system you’re using on your personal computer. Just use the one you like best and be willing to be flexible when you take a job.
I should use Mac for web development as graphic design is often used in front end. Using the new M1 processor the speed have few competitors. I cannot speak of Ubuntu for web development. Just hearsay that it is more suitable for desktop. As I like Debian for server side I assume that a close relative is as good as Debian. I did chose Debian because of the long period of support and stability. At least three years support.
AFAIK there is at least 2 families of Linux. CentOS and Debian I think is the ancestors. I think one thing that differs is the installation packages. I started with CentOS, but never got it to work as it should and moving to Debian I felt at home. List of Linux distributions - Wikipedia
Selecting a distribution is about personal preferences. It does however matter how well the distro is suited for desktop. Debian is best suited for servers.