I know there choice of distro is really meaningless as you can install almost any program on almost any distro. But I have been playing with kali which is for security people and pen testers. Is there a similar distro for programmers? Like a few ides installed some profiling tools some virtual environment tools etc?

  • IsusRamzy@lemmy.ml
    link
    fedilink
    English
    arrow-up
    1
    ·
    4 days ago

    Well, not exactly. Any distro COULD be used for development and excel at it, but there are a few intresting options out there. I personally use Fedora with KDE, but if you want to take it to a more advanced level, use arch or nixos. If you want to make your OS, use gentoo or linux from scratch, but very niche and not recommended.

  • houseofleft@slrpnk.net
    link
    fedilink
    English
    arrow-up
    8
    ·
    14 days ago

    Short answer is no, I think because what tools you need for programming change so much based on the development you’re doing. C++ developers need compiler toolchain stuff that Javascript developers would never need to look at and vice versa.

    Curveball answer is that modern extensible IDEs with the power of language servers and plugins have kind of become this. I’d massively recommend properly getting into one of the following and learning how to configure new languages and plugins:

    • VScode
    • Neovim
    • Emacs
    • Helix

    (Sure I’ve probably missed some great options, feel free to flame me on why notepad++ should be OPs first choice)

  • balsoft@lemmy.ml
    link
    fedilink
    English
    arrow-up
    7
    ·
    14 days ago

    UNIX was kinda designed to be an IDE (of its time) by itself. Desktop/Server Linux (whether GNU or non-GNU) mostly continues this tradition; you are provided with some powerful tools for text manipulation, development, debugging and deployment out of the box in most distros. As such, any modern Linux distro is pretty good for development even out of the box. However, you must learn to use this power, and I’m not claiming it’s easy (I still regularly look up various manpages despite doing development on Linux for 10+ years in various forms).

    With that said, I myself prefer NixOS. It really feels more developer-oriented that other distros, as you get the power of Nix out of the box, and integrated into the system. With Nix you get easy access to the biggest software repository in the world. You get per-project development shells, so that you never have to worry about different toolchain versions for different projects, or your system being contaminated with bloat you no longer need. You get the power of reproducible packaging, to eliminate a lot of (but unfortunately not all of) “Works on my machine”-type of problems. It’s also got a hell of a learning curve, but I think it’s worth it.

  • ikidd@lemmy.world
    link
    fedilink
    English
    arrow-up
    6
    ·
    edit-2
    13 days ago

    NixOS. It’s really good for building multiple discrete environments specific to a development project, and it’s done via a functional declarative language that’s right up a programmer’s alley. You can specify everything precisely to what you want for that environment including all dependencies and not have them pollute each other when you switch builds.

    But it’s a steep learning curve and the documentation could be better, but it’s probably fine if you’re used to learning new languages.

    https://dev.to/dinex-dev/getting-started-with-nixos-flakes-a-modern-approach-to-configuration-management-39p7

  • Varyag@lemmy.dbzer0.com
    link
    fedilink
    English
    arrow-up
    6
    ·
    14 days ago

    All of them? I’ve always liked (and preferred) Linux for dev work, as I’m just so comfortable around working with the commandline and installing packages that I might need. For that end, any of them would work, you’d just need to set them up with what you want. If you wanna be “cool” and “hacker” you could install Arch and install every last package manually handpicked, or you could go with the most bog standard Ubuntu or Fedora or OpenSUSE. All of them work, it’s only down to your tools. If you like Kali, stick with it.

  • matcha_addict@lemy.lol
    link
    fedilink
    English
    arrow-up
    5
    ·
    14 days ago

    What does a programmer need?

    • a text editor or IDE
    • language specific tool chains for building, running and testing your code

    This doesn’t seem to be something a distro can solve beyond making it possible to install this stuff.

    Maybe the closest is nixos, because it allows a lot of flexibility in setting up different development environments that are fully reproducible. Gentoo is also close, as it allows the same but in a different way (without the extent of reproducible guarantees).

  • Fliegenpilzgünni@slrpnk.net
    link
    fedilink
    English
    arrow-up
    4
    ·
    edit-2
    14 days ago

    Probably Bluefin-DX.

    The “DX” stands for developer experience. It’s a variant of uBlue/ Fedora Atomic (Silverblue) with a lot of added programming tools like Brew, Nix, IDEs, local LLMs, and more.

    You can read more about it on the website.

    There’s also Aurora, which is the same, but with KDE instead of Gnome.

    The dx-images are meant to be a plug-and-play solution for developers. You just install it, share your container config to your project colleagues, and go. Don’t worry about not being able to work because of a bad update or some misalignments in your package manager broke your OS. Most stuff is containerised, and if your host breaks, you can just roll back, because the system is basically powered by git.

    I’m no developer, but I use the regular variant for casual purposes (no specific tasks, mostly browser) on my laptop, and Bazzite (also very similar, but gaming focused) on my desktop, and both are wonderful! They’re the most boring distro/ OS I’ve used yet, and that’s great. They’re immutable/ image based and always work reliably.

    I can really recommend them for a lot of people, from ranging from IT professionals to my mum.

  • xycu@programming.dev
    link
    fedilink
    English
    arrow-up
    3
    ·
    12 days ago

    Gentoo. Literally the entire system is a build environment. Imagine a single environment that’s capable of compiling thousands of different packages and managing dependencies etc.

  • Unmapped@lemmy.ml
    link
    fedilink
    arrow-up
    3
    ·
    edit-2
    15 days ago

    Not that I know of, but I kind of feel like Nixos could be. The way you can use nix flakes or shells so each project has its on version of nodejs, go, rust, or w/e you use. Instead of having them installed system wide. And you can put the flake.nix and flake.lock in your git repo so any other Dev with nix can use it to DL the exact same packages.

    • platoose@feddit.uk
      link
      fedilink
      English
      arrow-up
      1
      ·
      14 days ago

      yep came here to say NixOS - once I was used to it, the advantages for programming are immense. I commit my shell.nix to Git and use Lorri to automagically install the right environment tools and it feels magical being able to work on multiple machines and never encounter dependency oddness

  • msleaveamix@jlai.lu
    link
    fedilink
    arrow-up
    1
    ·
    14 days ago

    I’d say ArchLinux/ArtixLinux, because of the ease to publish/install packages to/from AUR (Arch’s User Repository).

  • interurbain1er@sh.itjust.works
    link
    fedilink
    arrow-up
    1
    ·
    edit-2
    14 days ago

    What I’ve learned is that using distro packages for dev always bites me in the ass at some point. Absolutely need v4.0.1 of something but your distro only has v4.0.0 ? Congrats you’ve entered upgrade dependency hell.

    The best dev distro should be just be a kernel and sh. ;)

  • LeFantome@programming.dev
    link
    fedilink
    arrow-up
    1
    ·
    14 days ago

    In my view, you need a distro that has up-to-date packages. It also helps to have repos that have all the obscure tools you are going to want to ensure compatibility with everything.

    Those two criteria eliminate a lot of distros. Arch or an Arch derivative like EndeavourOS are my picks for these reasons.