Linux

Jul 22, 2020

My linux Laptop (Dell XPS 13) arrives today. I tried to order it from Dell, but ended up canceling the order twice. Every time I order something from a on-line store not named Amazon I'm repeatably shocked at how bad it is. I eventually canceled both incorrect orders and just bought the same laptop from Amazon for the same price and it took 2 days to arrive, not the 9-15 days directly from Del. There is a reason Amazon is eating everyones lunch.

Enough ranting about Dell. On a lot of levels, Amazon is also a crappy company in that they don't pay taxes, screw over Seattle, refuse employee attempts to unionize, etc, etc, etc. But they do know how to ship stuff and run a website. If I had 140 billion dollars I'd sure as hell be super nice to my employees.

I digress again...

Anyway, my Linux laptop arrives today... wait it's not actually a Linux laptop, it's a Windows laptop because Dell doesn't make a Linux laptop with a 512GB SSD, so I had to buy a Windows one and will install Linux as soon as it arrives.

My goal is to see how far I can get developing my new game on directly on Linux and not the Mac (I haven't developed on Windows in years). Can I ditch the Mac and go 100% Linux?

For working on the "game", this shouldn't be a problem once the engine runs on Linux. The few custom tools I use (Wimpy, for example) and all built from the same code the engine is, so once it's working under Linux, they should compile as well.

The real issue is going to be developing the "engine", which I spend most of my day doing. Writing C/C++ code in a nice text editor and compiling it isn't really the issue. It's mostly that I've gotten very used to the visual debugging found in Xcode and Visual Studio.

It seems that Linux IDEs are really behind in this. Once I get started I'll explore it deeper and I hope I'm wrong.

I've been a full-time Mac user for 20 years but Apple seems to get more and more paranoid and authoritarian as time goes buy. I would love to move to Linux, but I don't know if I can without making a lot of productivity sacrifices.

I'm going to install Ubuntu Budgie going solely on the fact that I like the looks. I've resigned myself to installing Linux several times before I find something I like.

We'll see... I have my finger crossed.


Bernard Jul 22, 2020
I'm probably a weirdo in this regard (and many others) but I find I prefer debugging with command line tools like gdb - I don't miss visual debuggers at all and on the rare occasion I'm forced back to them I always find them a bit clunky. There's definitely a steep learning curve, and they're not everyone's cup of tea, but I don't feel like my productivity suffers from using them at all.

Little Cat Jul 22, 2020
I've been using Linux after switching from Windows 10 as my main OS for pretty much 5 years now and I've never been happier.  I wish the same to you.  Also, what Bernard said.  I also use command line tools more than visual applications for my development work.  It took a while getting used to, but now I love it.  You don't have to deal with bloaty and resource heavy visuals and interfaces and get right what their designed to do.  But if you do love visual tools though, that's alright.  CLIs are not for everybody.

Albert Jul 22, 2020
JetBrains makes pretty good IDEs and they are cross platform. Other than that, I think Visual Studio Code (also cross platform) to have a very good UI on top of GDB. Let us know your thoughts after you spend some time working on Linux!

Ron Gilbert Jul 22, 2020
Unless I'm mistaken, all the JetBrains stuff is subscription and I refused to buy subscription software.  The only exception I make is when a major infrastructure is  online, like Wow.

Berto Jul 22, 2020
I've been using Visual Studio Code for a while now. It has an integrated debugger that works just fine with C/C++ (with the official extension). I like the "no unnecessary bells and whistles" kinda feel of it.

Thomas Jul 22, 2020
UltraEdit Studio is a really nice coding environment for Linux (and Mac and Windows). It's not free, but if you're writing code professionally it's great. It also has a free 30 day trial. I would highly encourage you to at least check it out. I have no affiliation, I just like it. https://www.ultraedit.com/products/uestudio/

Thomas Jul 22, 2020
Note that they will push their subscription plans at you hard, but it's possible to buy it without a subscription if you look. I agree that subscriptions are evil and they suck

Eli Jul 22, 2020
JetBrains (specifically CLion) is the only thing I've found with a halfway decent debugging experience on Linux - though it still leaves some to be desired (eg. disassembly). It's not a hard, cutoff style subscription - when your subscription's active you get access to new updates as they are released, when your subscription's inactive you still get access to the major versions that were released during your subscription period in perpetuity. It comes out to being roughly the same as buying a boxed update every year or two, and their updates are substantial, not a lot of fluff to try to justify the pricing.

Visual Studio Code can be good too, but you'll have to spend some time assembling a hodgepodge of plugins, and all the debugging plugins I've tried have been extremely rudimentary (like, "I might as well use gdb directly for all this gets me"). If you go that route, might want to check out the clangd plugin since the default C/C++ plugins are fairly bad.

Pierre Jul 22, 2020
I'm no C/C++ developer, but I heard good things about GNOME Builder[1]. Even though it's marketed as an IDE to build GNOME apps, in practice you can write anything you want, and it has a nice debugger and profiler.

Hope this helps! And welcome to Linux :)

[1] https://wiki.gnome.org/Apps/Builder

J. Jul 22, 2020
I'm a weirdo who uses VIM and plain terminal gdb for development (or gdbgui when in a pinch, https://www.gdbgui.com/). Most of my colleagues runs VS Code with good results though.

Thomas Jul 23, 2020
I am very happy user of KDevelop. Recent versions have a pretty good language support, and it is overall fast and snappy. In fact I am running it now, on a Kubuntu machine.

matteobin Jul 23, 2020
I'm a huge Free Software enthusiast and I don't like Apple especially for its strictly proprietary philosophy, but that's me.
Could you please expand a tad on what are the reasons that made you consider leaving such company after so many years?

Mancomb Stallone Jul 23, 2020
I can only assume that this "game" you're working on is the highly anticipated third installment of the Secret of [Random Undisclosed Island] starring Guy[*%$^&] Threep[Redacted].

Phil Jul 23, 2020
I work with KDevelop and found developing a simple Might and Magic Clone with SDL and OpenGL very easy. Some adjustment needed, of course (but that is to be expected when switching IDEs)

jsbalsera Jul 23, 2020
JetBrains is suscription but it offers (or it did when I bought my PHPStorm License) perpetual fallback to the last version released during your subscription. https://sales.jetbrains.com/hc/en-gb/articles/207240845-What-is-perpetual-fallback-license-

Pedro Maciel Jul 23, 2020
Qt Creator is actually quite versatile and powerful (they have an Open Source license version), integrates well with a debugger and it works on Linux (of course), macOS and Windows -- quite a surprising feature set:
https://www.qt.io/offline-installers

Moschops Jul 23, 2020
Dell. My employer has a deal of some kind with Dell. I don't know the whole deal, but they're our principal supplier of PCs. We have an account manager, a local rep, that sort of thing.

I wanted a new PC for someone on my team. Looked at the list of current Dell models, picked one. After a few days, the local rep comes back and says it'll be three weeks. Are you kidding me? I don't want to wait three weeks. "Well, right now I have this laptop, and one of these desktops. Would either of those do?" No, I picked THAT desktop. Why does it take three weeks? "Has to be built and shipped over. From China." WTF? I could drive down to PC World now and just buy one of similar spec that's sitting on their shelf. Why do we have a business relationship with you for off-the-shelf, commodity hardware that I can buy in a shop in thirty minutes, if the lead time is three weeks?

Maybe they're optimised for companies that order 500 at once, for delivery in six months, and the very idea of them doing anything at the small scale, quickly, is just totally unworkable.

Federico Jul 23, 2020
I program C/C++ too and hate visual studio with a passion. I end up using QtCreator most of the time. Far better code navegability at least for me. Other option that I'll consider is using CLion from Jetbrains, you have to pay, but you'll get a more polished experience.

Oliver Jul 23, 2020
Hi Ron,
I'm a professional C++ software developer for about 15 years now. At work I exclusively work with Windows and Visual Studio but personally I use Linux exclusively. About half a year ago, together with some colleagues,  I started developing my own adventure engine, similar to yours for Thimbleweed Park (Many thanks for the dev blog, which helped a lot).
Anyway, since I do this on Linux, I had the same problem as you and started looking around for a usable IDE. While I also use the commandline a lot, there is no way I will debug via raw gdb on commandline, I think debugging really is the bane of developing under Linux.
Anyhow, I decided to go with qtcreator (though I'm not using Qt), and so far it almost matches my experience with Visual Studio. As build system I use CMake, so that I can easily compile it under Windows as well as Mac if needed. CMake nicely integrates with qtcreator, and since it is cross platform and IDE independant I think a solid choice.
The debugger still has some quirks and all, but it seems sufficient for now.  I needed to fix some "visualizers", so that std::strings are properly displayed in the debugger, but that was it.
A very nice introduction to debugginq with qtcreator that I can recommend was this one, which actually gave me the push to try qtcreator in the first place: https://www.youtube.com/watch?v=xTmAknUbpB0

Francisco Guimaraes Jul 23, 2020
One more vote for JetBrains here. I've been switching back and forth between Linux and macOS for some years now and JetBrains tools are efficient, and have all the information I needed, also the best Git client I've ever used in Linux. I remember Eclipse would also work well on Linux, but I don't know how it is today

Marco B Jul 23, 2020
Eclipse CDT has a visual debugger (without edit and continue tho), GIT integration, a decent editor with an IntelliSense-like code completion feature, call and types hierarchy, code outline, external tools management, refactoring... Has lots of options and plugins and is super customizable. Downside is it's a bit heavy.

Brainbiter Jul 23, 2020
I use VS Code on Linux and love it. I've been a Linux user for over 20 years, I've used them all, but VS Code is excellent. It's also the same on every platform so if you find yourself using Mac or Windows from time to time, you can stay with the same interface. It also has excellent Git integration, and there are extensions for most of the Git web platforms out there..

Stefan Jul 23, 2020
I am using Linux since more than 15 years, mostly on the server side. Yes, I am part of the gang using command line interfaces and I am very happy about that ;-)
When it comes to desktops I made all the long way from DOS (first Digital Research, then Microsoft) to Windows. Until I switched desktop and laptop to Linux as well, three years before. Since then I am "Linux-only" - and it was one of my best decisions ever.
My personal favourite for the Desktop is Linux Mint, which I would recommend. Under the hood is still a bit of Debian visible (which I know very well from the servers), but of course more of Ubuntu (which is easy for beginners to find support online) but much more it is simply the polished Mint-Style, bringing Debian and Ubuntu together to a nice Desktop OS. This is my personal opinion, of course.
I am running the XFCE-version as I like the "classic" way of Desktops, not so much into Mate, Cinnamon and all the other stuff. But I guess XFCE would be a bit too classic for people who are used to an OS made by Apple.
Anyway: Nice that you give Linux a try and I guess you will be happy with it!

Morten Jul 23, 2020
If you repeatedly buy your products from Amazon, you don't earn the right to also complain about them. You simply don't. YOU are the reason why their employees are treated as bad as they are (because of low margins and short shipping time).

move.l Jul 23, 2020
I'll try to stay on Mac as long as I can. It takes some time to get a Linux distribution, you're kind of happy with. It bad moments it can feel like being thrown back a few decades but it's nice to get rid of all the Apple annoyances (kind of scary when you filter network connections for the first time). On the other side a lot of (indie) dev stuff runs really well on a Mac and most of the OS feels smooth. On Linux you can utalise some serious GPU power and, ohh, even RAM is less expensive. I like to use a Linux machine as a slave (compile&run).

dos Jul 23, 2020
If you use CMake in your project, make sure to try Qt Creator, it's a really good IDE and it integrates well with clang tooling.

If you don't, Qt Creator may still be fine, but there will be some hurdles to overcome, so something like VS Code may be a better idea.

Big Red Button Jul 23, 2020
I think you never know how much you like a Linux distribution until you actually try it out.
I have been using Linux as my default OS in parallel to Windows 10 (for some special cases) for several years now and for example I prefer Dolphin as the default file manager for ergonomic reasons such as the split mode, which is not supported by some other common file managers.
Also, since I've been used to the Windows UI (and am quite conservative), I prefer the KDE environment, as it is pretty similar to the Windows UI and even better. KDE was the reason why I recently switched from Linux Mint to Kubuntu, since Mint is no longer available with KDE. There may be other UIs that look better or are currently more popular, but I think you need to try them out in order to find out what you prefer.

Reznorix Jul 23, 2020
Ubuntu Budgie, nice choice!!

Gabriel Jul 24, 2020
Another VS Code vote here, as an editor/grep/navigate code base tool,  it's hard to beat...glueing it to your build system and doing debugging can take more work depending on your setup but once that's done it works perfectly. I use it for high level AOSP work in Java and C/C++ and for embedded work through PlatformIO, haven't found anything better and not for lack of trying.

Zach Jul 24, 2020
They do actually make a Linux laptop with a 512gb SSD.  But you have to custom order it... I just recently got my XPS 13 that way

blombo Jul 24, 2020
@Morten
Nice attempt at a strawman, too bad it's obviously a fallacious argument based on the false premise that a successful business like Amazon can only be ran by exploiting low-level employees, while the fact that the top levels are fantastically rich makes it abundantly clear that better work conditions are undoubtedly possible. The fault is not of the customer, but of those who conduct the business.

Jason Simonds Jul 24, 2020
Have you considered WSL2 at all and not blowing away Windows 10?

Ron Gilbert Jul 24, 2020
Why would I want to keep Windows?  I never use Windows. My goal is to see if I can move off the Mac (my current OS of choice) and move 100% to Linux.

All builds of my game are done using a cloud-based CI machine, so I can produce clean Windows, Mac and Linux builds without needing to have those machines.

It gets a little trickier when doing Switch or Playstation builds, but I'll cross that bridge later.

Iron Curtain Jul 24, 2020
@Ron Gilbert: Just so we're clear, "CI" stands for "Continuous Integration", right?

https://en.wikipedia.org/wiki/Continuous_integration

Thomas Jul 25, 2020
I've been moving around Linux distros this year, and I think you've made a solid choice in terms of distro. I tried out Pop!_OS because I heard they had a decent grasp of hardware acceleration, but for some reason it tended to break a lot for me. If for some reason you don't get along with Ubuntu, check out Linux Mint. They are a bit silly IMHO when it comes to their attitude towards Snap packages, but when I found out how easy it was to enable snap support, I went ahead and installed it. I really appreciate two things about it: You can do snapshots of the system (Timeshift) both manually and automatically, and so far the weird Nvidia drivers seem to work fine. The snapshots are a great way of messing around and experimenting without worrying about breaking things. As much as Linux has improved in that manner, I find it is still fairly easy to make things break when trying to gain some convenience and involve closed source drivers.

Alessander Botti Benevides Jul 25, 2020
Good luck with Ubuntu Budgie! You seem to be motivated in making this transition to Linux, this is a good starting point. I guess I'm exclusively using Linux since 2007. There was quite an improvement in usability since then. For instance, Wi-Fi/Bluetooth drivers and Flash were boring issues to deal in 2006...

Eri0o Jul 27, 2020
Just a note, CLion is Jetbrains, but if you stop payment of the subscription you still own the version you had, it just doesn't updates anymore - except some occasionally backported stuff.

I use it on Ubuntu 20.04 (with Cinnamon DE) and I really liked the CLion experience for C++.

Eri0o Jul 27, 2020
If you do end up using VSCode, try this -> https://vector-of-bool.github.io/docs/vscode-cmake-tools/

Hervé Jul 27, 2020
I understand you  may try to step aside the 'monopoly managers' that now handle windows, android and apple application markets.
If this is true, and while Linux is the right choice, I'd advocate tojump over Ubuntu and go straight to Debian.

Debian basically is Ubuntu without the millionaire driving Ubuntu. It is based on Debian, with some additions.
For instance, Ubuntu recently decided to move away from the Debian way of installing apps (frely) and nw implents its own wy of doing it. For simplification, they say. The result is anyhow a centralized app store, where Ubuntu will soon decide if you are entitled to put your software (and then how much to may for that hosting).
Believe me, if you are used to Ubuntu, you'll hardly find a difference with Debian -save the independence...
Hervé

DanMan Jul 27, 2020
For debugging there's the excellent Valgrind. It's so good, it makes users on other OS jealous.

kontroll Jul 27, 2020
I also switched to Linux not too long ago. Apart from two specific applications I've used for 20 years I had no problems finding suitable alternatives or adapting to new workflows.

The key realization was that different workflows aren't necessarily better or worse (at least not significantly so), but you will have to put up with uncomfortable changes for a time. It is what it is. I made the switch 3 years ago and by now I'm used to doing things "the Linux way". Or more accurately, one of the many many Linux ways. ;)

There's no doubt in my mind that the change can be done. The question is simply whether or not you're able to put up with initial discomfort, especially if that "initial" ends up lasting months!

Prokhor Jul 27, 2020
Budgie isn't a good choice. This "DE" is pretty unfinished and unstable, although it looks good at first glance.
Stable Desktop Environments are KDE Plasma, Xfce, Cinnamon, MATE and even GNOME 3. Although, GNOME 3 isn't quite desktop-friendly. IMHO.
In my experience Kubuntu (Linux Mint KDE Edition), Linux Mint Cinnamon, Xubuntu (Linux Mint Xfce Edition), Ubuntu MATE, Manjaro are good and convenient for day to day use and software development.

Prokhor Jul 27, 2020
Obviously, almost all Linux distributions can be tested for hours by running them from a live image (USB stick).

Anthony Salter Jul 27, 2020
Am I the only person who still uses NetBeans?  I know it's old but it still works fine for what I do.

yaymuffins Jul 27, 2020
No matter what distribution you end up using, the most important thing to do, is to edit /etc/sudoers and add a line in the "Defaults specification" section that say:

Defaults                insults

(Or not, all it does is insult you if you type your password improperly at a sudo prompt, but computers today don't insult their users enough - And it doesn't work on MacOS X because Apple is Apple.)

Yui Jul 28, 2020
Emacs is a mature and future rich IDE and runs well under linux.

Sriram Ramkrishna Jul 28, 2020
Hello folks - GNOME person here - happy to provide any guidance in this regard at least in terms of tooling - if you're using C, you could try using GNOME Builder - but you should be able to use visual studio code from wherever. I would have suggested using it from flathub.org - but running that IDE under a container is not great.

I would highly encourage you to use fedora silverblue - as containerized workflows are awesome. :)

Maanu Aug 01, 2020
I agreed with going with WSL2 on Windows, you can run Linux perfetcly and get the most of your IDEs. Cheers!

Augusto Ruiz Aug 02, 2020
The nice thing about Linux is you can customize your tooling. I've tried VS Code, but I don't like the bloat electron apps bring. Although it integrates GNU tools nicely, and provides a nice frontend for gdb. I've also used vim, with autocomplete (using youcompleteme, https://github.com/ycm-core/YouCompleteMe) and it's a breeze. Also the mighty emacs might be nice. Anyway, those two have a steep learning curve. If youine something simpler, you can always use Sublime text, there is a very good Linux version available.

Adam Jaskowiec Aug 02, 2020
Hello from Germany,
funny to see that you are making the same change i did early this year. I got a new notebook from Lenovo (sorry for that but i love the good old Thinkpad series, and they have native Linux support now too) and I use it for development under Linux .
I don't know why, but nobody is using Eclipse as IDE. I have tried it, because in the past I used Zend Studio for PHP development that is based on Eclipse, and I liked it.
So I use now Eclipse for C/C++ for cross compiling on a Ubuntu distribution and I like it since a half Year.
Once worked through the initial setup for my Projects, everything is working great. You can make debugging with GDB, GIT, and  every additional thing you want is installable with additional modules from online repositories.
I don't know if you can completely switch to Linux, i did not, I have still a Macbook Pro for development and use still Windows for C# development.
But i see it as my Linux gets the same status as the two commercial operating systems, and worldwide, in my opinion, it is rising to rule the world in the future.

I am rubber, you are glue. Aug 03, 2020
Ron Jetbrains (I'm finally using Idea after a long PHPstorm period) is not subscription based, it seems like that, but it isn't.

The only "problem", if you do not pay again, is that you will receive updates for 2 years(?), but it will work perfectly. It's a really good tool.


David Aug 19, 2020
In the GNU/Linux world editors rules over IDE, try GNU Emacs  if you choose otherwise I suggest you NetBeans for C++

TT Aug 23, 2020
Atom and VSC are the most used IDEs, but they aren't as snappy as e.g. Gedit and Vim, and the IDEs have less lines of code visible than text editors. Gnome 3 with Dash to Panel extension is also worth checking out.

Add your comment:


Here are the rules for commenting.