whats the best FOSS IDE (and why?)

jackpot@lemmy.mlbanned from sitebanned from site to Asklemmy@lemmy.ml – 77 points –
98

VS Codium.

It's VS Code, minus the Microsoft bullshit.

Source code is MIT licensed.

I really wish the WSL extension wasn't locked behind VS Code. My workflow is heavily reliant on it which locks me into the proprietary IDE.

You should be able to setup WSLg then run the Linux Codium in WSL. Regular VS Code will work that way, it just gives a little "hey, you know you could use remote WSL right?" message then keeps chugging.

Is WSLg on Win10 yet?

The benefit of the WSL (and SSH and Docker) integration is that you still run the native version of VS Code for your OS, and just the server portion of VS Code runs on the 'remote' server. Running the whole of VS Code (or Codium or whatever) in WSL probably works but there'll be little annoying things with it since it's not running natively, for example you can't drag files from Explorer into it, can't have a PowerShell terminal open alongside a WSL one, etc.

I don't think the SSH integration is locked down, so I wonder if you could install OpenSSHd in WSL and connect vis SSH.

can't have a PowerShell terminal open alongside a WSL one, etc.

How are you getting this to work? According to only the default profile can be opened with the local integrated terminal. The default profile seems to be bash, so that fails. But I wouldn't want set my default profile to PowerShell when I'm in WSL.

For sure the remote extension option is better, just wanted to let TwinHaelix know the native Linux version is an option if the extension can't be loaded.

when I install codium (with yay, because I use Arch... btw) there is a package that just makes the plugin store the same as Microsoft's. I found one that wasn't working and that was MS pylance, I use pyright now.

What's the package called? Am on nix but might look into it later

Please stop treating code editors as if they were IDEs.

VS Codium/Code is not an IDE, and it never claimed to be. It's a code editor, like Kate, Vim, Neovim, etc. It only integrates a language server for code editing and some static analysis. It does not integrate a debugger, build system, test system, execution, etc.

IDEs are old school large systems that integrate a code editor, build system, test automation, etc., such as M$ Visual Studio (not Cod(e|ium)), CodeBlocks, Eclipse, JetBrains software suite, etc. They are complete opposition of the UNIX philosophy that the program must do only one thing and do it well.

Besides, when dealing with IDEs, I used to like Eclipse C/C++ and Corrosion IDE because one could easily add link-time dependencies to a project and it generated sophisticated makefiles for you. Besides, if you have a more custom workflow, like auto-generation of source code from a domain-specific language, there's no IDE that can help you. This is the downside of IDEs. Also, nowadays, I found that NeoVim+Coc with Meson build system makes the same thing and even better.

Can you elaborate? I can do debugging, run code and tests in VS Code.

VSC has JSON configurations for executing tasks but it's non-trivial to configure. A proper IDE would provide a graphical, fool-proof configuration for that because it's easy for non-professional to accidentally destroy your JSON file.

Also, if you have to use terminal in an IDE for trivial tasks, then it's also not an IDE.

Not that I liked GUIs, but with IDEs, like Eclipse or Visual Studio, one wouldn't have to configure something with JSONs.

VSCodium's debuggers do have point-and-click configuration.

I think your point stands, though - the easy-button debugger setup has plenty of room to improve, and the majority of the user community focuses on the JSON debugger config - so most developers using VSCodium are going to be hand-crafting JSON configs to set up their debugger.

It does not integrate a debugger, build system, test system, execution, etc.

All of those things have been available in VSCode and VSCodium as production-ready plugins, supported by major vendors (mostly Microsoft) from almost day one.

Weirdly, as an extreme example, VSCodium with the MSSQL plugin is a better SQL IDE than most dedicated SQL IDEs.

As far as I'm concerned, as long as the editor alone can handle every step of the process from development to testing to version control to deployment to debugging, it's an IDE.

I don't care if it doesn't natively ship with all these things and you have to append them with plugins. (I thought we championed software that doesn't force bloat features we'll never use down our throats?) The only applicable factors are that it exposes the extensibility to add them, and that someone has added them.

Does that make EMACS and Vim IDEs, too? If you've sufficiently tricked them out with plugins, extensions, and helper scripts to do every part of your pipeline without leaving the editor, then I guess so! It is an Environment that has Integrated everything you need for Development. If it quacks like a duck...

VS Code is an IDE, and I'm tired of pretending it's not.

I just wish finding all references didn’t take an entire minute to show me a single reference though. By the time it loads I don’t even remember why I care what’s referencing the function anymore.

It's probably Emacs, but I'm a Neovim user, so I'm going to go with that.

Same here. Emacs is a solid choice, if you wanna get lispy. I just tend to prefer the vim way of things and don't have the time and energy to try learning Emacs again at the moment.

lispy?

Emacs is basically a Lisp interpreter with other utilities, like a text editor, wrapped around it, allowing it to be self-extending. So, if Lisp is language that you like or are interested in, Emacs is a good place to be.

Depends on the language doesn't it?

Unless it's something like an HDL for a proprietary FPGA suite, in my experience, not really, no. Just need a good LSP, Treesitter grammar, and the rest is just QOL. Not having to switch tools is a perk.

Emacs, because it's so configurable that if it isn't the best FOSS IDE it's your own fault for not configuring it right.

In Emacs, you are the IDE

My favorite is Kate because it's less of an IDE and more of a text editor with side panes for the project tree and a terminal to run the program. Easy enough to set up a hot key to save-build-run. I think that's all I need?

Right there with you, I'm on the admin side of things, so the time it takes the app to start is a bigger deal to me than the full featured-ness of VS Codium, but provides contextual highlighting and some quality-of-life coding features that you won't find it text editors.

Lots of replies mentioning Emacs but Emacs out of the box is gonna be essentially a text editor (insert obligatory: Emacs isn't a text editor; it's a LISP interpreter).

However, install Doom Emacs, and you have a full IDE experience for essentially any language you could ask for. I highly recommend it.

is there a flatpak of this?

I'm not too familiar with how Flatpak works but Emacs benefits from compiling it on your machine natively. Tell me what distro you're on and I can see if I can find out how you'd do that.

linux mint - can i use doom emacs btw. also thx

Following up from my previous comment, there is a Flatpak of Emacs available on Flathub. Here are the instructions for how to install, whilst enabling native compilation, which will offer a performance increase and allow you to use features such as vterm (the best terminal emulator for Emacs).

A Flatpak of Doom Emacs? No. But you can just install the normal Emacs flatpak and then install Doom Emacs with 2 simple commands:

git clone --depth 1 https://github.com/doomemacs/doomemacs ~/.config/emacs

~/.config/emacs/bin/doom install

Emacs will read these config files from the .config/emacs directory. Doom Emacs is not a different version of the program, it's essentially just a set of configuration files.

it's not working for me? sorry to ask but could you try it? linux mint lts btw

I don't have a Linux Mint installation right now, but when I used Mint a few months ago this worked for me. The two commands are from the official Doom Emacs install guide. Could you tell me exactly what doesn't work?

when i use those commands it assume emacs is installed as a system package and installs to a different location not accessible to the flatpak

Try PATH="/var/lib/flatpak/exports/bin/:$PATH" ~/.config/emacs/bin/doom install

is that one command? also is there any disadvantgaes to emacs as a flatpak

Yes, it's one single command. No, I haven't noticed any major downsides of Emacs as a Flatpak.

what does the command do and do i have to use it whenever i run emacs or? i'll try it when i get home but if it doesnt work is there any chance you have discord or revolt or matrix, etc.

1 more...
1 more...
1 more...
1 more...
1 more...
1 more...
1 more...
1 more...
1 more...
1 more...

How about VSCodium? I don't think I should explain why VS Code is best editor.

You might need to explain to me. I've been having so many issues just using vscodium, took me forever to figure out I need to build and compile the code myself and not run it using the play button like Visual Studio in school (I'm a second year comp sci student).

In vs code there's a run button just like in visual studio. You can also press F5. You will most probably need to install an extension specific to your language so vscode knows what to do when you press F5. For some languages, you'll also have to create a launch.json file manually. launch.json is what describes what the "run" button does.

Check into the available plugins for your language. VsCodium's architecture pushes everything that not everyone needs into plugins, so unless you're just taking notes, you'll need a plugin for your chosen programming language, and eventually another for your chosen deployment environment (AWS, Azure, etc).

VSCodium, emacs, vim/neovim, helix.

Helix is pretty slick, but it’s not very extensible. Very easy to use and if the out of the box features are good enough for you then it’s a fine IDE.

Neovim is my preference unless I’m working with Jupyter notebooks, in which case I switch to vscodium. It’s a pain in the ass to set up. I took the easy way out with LazyVim. It’s fast to work with and I can use it for almost everything.

I dabbled with emacs many years ago. It’s like vim but completely different. You can make it do anything. Personally, I don’t care for the keyboard shortcuts. It’s probably easier to pick up than vim, but all the key chords and sequences are too much for me. In any case, anyone willing to look at vim should also take a look at emacs.

VSCodium is accessible and extensible. You can’t go wrong with this one. It can’t refactor like the Jetbrains stuff, but if there’s anything else it can’t do then I don’t know what it is. It’s a great IDE.

Really, any of these can do just about any job and do it very well. There’s no choice that clearly stands above the others. It really comes down to personal preference.

Helix is pretty slick, but it’s not very extensible.

Bruh, thanks for the compliment, but I can be very flexible.

Neovim all the way, super fast and lends you heavy control.

how does not having a gui work? it's just the terminal right?

There are multiple gui front ends, but its still very popular to use it in the terminal. Its a TUI, so it practically works like a GUI.

difference between cli and tui? also what frontends are good

In a cli you only type commands and send them with Enter, in a TUI you can click/move around with the arrows just like in a gui.

Edit: dont know about good front ends.

Helix. This is the one that could potentially be the successor to vim.

I could never be a successor to vim. However micro is a pretty good editor.

I love helix, I just wish the development was a bit faster. The main developers are all quite busy and I would love nothing more for them to be able to use some of the open collective money to pay themselves to work on it full time for a bit. I think in a year or two it will be amazing.

I love helix

Woah woah, not so fast.

Love you too

how do you have that robot symbol beside you

Bleep bloop, I'm a bot. To also have a 🤖 beside your name, enable the 'this is a bot account' flag in your Lemmy instance's settings.

Emacs because it lets you configure everything exactly the way you want it. You can also go with Neovim, but it only runs in the terminal.

One of the goals of neovim was to introduce tools to build a GUI around vim. Imo the terminal is by far the best option, but there are some fun options. Neovide is an interesting one. Mostly because it doesn't do too much -- just eye candy.

You can also go with Neovim, but it only runs in the terminal.

To me, that's a feature, not a detractor.

ETA: Not intending to imply that Emacs isn't also a fine choice. I just like the terminal.

I really like Neovim and I've been using it for over 2 years as my main IDE, but recently I started getting into Emacs. I like the Terminal as much as you do, but I just wanted to try out something new, so I went with Emacs. I've been using it for some time now, and I'm probably not going back, I'm very happy with it.

That's awesome! I'm probably going to give it another go over the holidays. It's a super powerful tool and I recall liking it before but it just didn't mesh with my needs (or I didn't know enough at the time to make it mesh with my needs).

micro + makefiles. It's very very fast.

VSCodium is OK aswell, has lots of extensions, but a bit slow. I can work with it way better than with IntelliJ products though.

I used to like MonoDevelop maybe 10 years ago, but it's not around any more. If I remember correctly, it was the only open-source IDE that supported C# and ran on Linux. That was before C# and .NET were open-source and Mono was the only way to run C# apps on Linux. Things are way different now.

The best today is obviously nano. It has syntax highlighting, auto-indentation, and at some point they made it so Ctrl+S saves the file. What more do you need? (cut and paste still use weird shortcuts though)

micro > nano

vim > micro > nano

In file size certainly, yes.

Vim's size can vary considerably based on how it's compiled. A minimal build might be a few hundred kilobytes, while a full-featured build with a GUI might be several megabytes. The CLI version is a bit smaller than micro though.

Micro is a relatively newer editor compared to Vim and Nano. Its binary, which includes all its dependencies, is larger than Nano but smaller than a fully-featured Vim. It's typically around 15-20 MB.

Nano is lightweight and typically comes pre-installed on many Linux distributions. The binary size is usually less than 1 MB.