Blow: Current Linux is a 20% productivity drain

Braid developer on the drawbacks of open source OS

Outspoken game designer Jonathan Blow has revealed mixed feelings about developing for the Linux operating system.

"I would be very happy to switch to an open-source operating system," he said in a post on Ycombinator.

"The main reason is that debugging is terrible on Linux"

"I really dislike what Microsoft does, especially what they are doing now with Windows 8. But today, the cost of switching to Linux is too high. I have a lot of things to do with the number of years of life I have remaining, and I can't afford to cut 20 per cent off the number of years in my life."

Blow is best known for his critical indie hit Braid, which was released on Linux in 2010 as part of the second Humble Indie Bundle.

"The main reason is that debugging is terrible on Linux," he explained.

"Productivity is crucial. If the lack of a reasonable debugging environment costs me even 5 per cent of my productivity, that is too much, because games take so much work to make. At the end of a project, I just don't have 5% effort left any more. It requires everything. (But the current Linux situation is way more than a 5 per cent productivity drain. I don't know exactly what it is, but if I were to guess, I would say it is something like 20 per cent.)"

Blow is currently working on a new game, The Witness, which is due for release on Microsoft Windows and iOS this year.

Related stories

Google Play announces Change the Game Design Challenge

$10,000 college scholarship up for grabs in design contest

By Haydn Taylor

Ubisoft opens new studios in India and Ukraine

New development units in Mumbai and Odesa

By Christopher Dring

Latest comments (12)

Sam Brown Programmer, Cool Games Ltd.5 years ago
Hmmm. I've obviously got no idea how Braid was developed, or what in, but I've never found debugging on Linux to be particularly onerous. It's not as nice as Visual Studio, certainly, but there's a good few front ends to gdb that are more than usable.

Mind you, I am one of those masochists who still uses Valgrind. :)
0Sign inorRegisterto rate and reply
gi biz ;, 5 years ago
I use Linux exclusively and spend 8-10 hours a day coding in c++ at least 5 days a week. There are indeed nice frontends for gdb, but if you learn the few commands it's not that bad, especially if you switch to graphic mode. The learning curve is steep for many tools (vim, valgrind, gdb, cmake, ctags...) but once you get familiar with them there's no way you can be faster with a graphic interface where you constantly need to switch to mouse. Kate probably makes for a good GUI alternative. My suggestion to Jonathan Blow is to invest heavily in learning these tools, even at the price of stopping everything else, as the payback is going to be high. Personally I took things even further and learned touch typing with programmer dvorak layout and it's quite clear that you just can't be as fast with a qwerty/azerty layout when typing English or code.

I'm not sure how is the landscape from a designer's point of view, but as many tools are developed in-house it probably also depend on the rest of the team.

Edit: by that I don't mean that a higher variety of tools wouldn't be welcome, but seen how things improved in the past few years I'm positive there will be very nice tools for all tastes in the near future. It would be nice to see PhotoShop ported as well as some 3D graphic tools.

Edited 2 times. Last edit by gi biz on 5th February 2013 1:21pm

0Sign inorRegisterto rate and reply
Sam Brown Programmer, Cool Games Ltd.5 years ago
Agreed. I started out using a gdb GUI, but in the end I moved completely over to using the command line. I know command line coding is something of a lost art these days, but you really don't go back once you've started doing it (again). :)

Edit: Having read the original post, Blow sounds exactly like I did when I first moved from Windows to Linux. All I can say (without sounding like one of the "reactionary Linux people" he encountered :) ) is that you get through it, and eventually Windows will start to annoy you more than Linux. But like anything new you need to invest time in learning it.

Edited 4 times. Last edit by Sam Brown on 5th February 2013 1:45pm

1Sign inorRegisterto rate and reply
Show all comments (12)
Tom Keresztes Programmer 5 years ago
The learning curve is steep for many tools (vim, valgrind, gdb, cmake, ctags...) but once you get familiar with them there's no way you can be faster with a graphic interface where you constantly need to switch to mouse.
I think the learning curve is the problem here. Most people outside of the unix world does not easily adapt to the mentality, and find the tools cumbersome and very different. I am a full-time linux programmer with more than a decade of experience with Windows, OSX and the rest (back to Amiga), and i am still not as comfortable with Linux as with Visual Studio or Xcode. It just a different mentality wich does not match the way i want (and used to) work.
0Sign inorRegisterto rate and reply
Tudor Nita Lead Programmer, Gameloft Romania5 years ago
The learning curve is ok for any particular application. One could grok gdb in a couple of weeks if he really wants to. The issue is it compounds into an o(log n) learning curve when you're in a small team and have to wear many hats. I often find myself rebaking a normal-map, tweaking some UV coords, adding a layer to the high-res sculpt or simply processing a bunch of textures with a PS macro.

Whenever I'm forced to jump to Nix development, it always adds up to be too much to take. While devoting 6months to 1 year to actually getting a decent workflow going, one that I can be somewhat comfortable with, might be a good idea, I can't really justify that time.

The second issue is ( for me ) that Unix feels different not by design but by accident. What were once bugs, dev. shortcuts and general ad-hoc development issues have been assimilated into the cannon of Nix. The obvious comparison is Mac, where even given the backwards shortcut paradigm and window management, you just get into the flow quite easily. It's quite different, yes, but it's different by design.

Edited 1 times. Last edit by Tudor Nita on 5th February 2013 6:11pm

0Sign inorRegisterto rate and reply
Andrew Jakobs Lead Programmer 5 years ago
Biggest problem on linux is what distribution/desktop are you gonna target... It's the biggest drawback of linux IMHO, there are way too many distro's/versions to choose from and all are different and have their own quirks..

@Michele Santullo: I'm sorry, but saying that you can be more productive with those awfull commandline tools than with a visual expansive IDE like visual studio doesn't make me wanna take you serious, you clearly haven't worked with a good IDE then.. and having to invest a lot of time in some tools/dvorak layout is not something you can do, especially if you are working with multiple languages and technologies and customer whishes.. Yes, it might work for you, but for 90% of the day to day developers it wouldn't, especially since you need a special keyboard for dvorak layout and you're not always carrying that around, and not forgetting that if you have used a qwerty keyboard for many years, it won't be easy to learn the dvorak layout..

Edited 1 times. Last edit by Andrew Jakobs on 5th February 2013 6:46pm

0Sign inorRegisterto rate and reply
Pier Castonguay Programmer 5 years ago
Linux can get everything done and there's tons of tools available, but yeah you need to learn to use them. You have to give it to Microsoft that Visual Studio and DirectX are extremely easy to learn and very productive compared to everything else out there.
0Sign inorRegisterto rate and reply
Paul Johnson Managing Director / Lead code monkey, Rubicon Development5 years ago
MS Dev Studio spoilt the world I think. If you get used to using that, ALL other debuggers just feel, well, shite.
2Sign inorRegisterto rate and reply
William Leu Software Developer, Tietronix Software Inc5 years ago
My experiences with GDB and DDD compared to Visual Studio is very one-sided. I agree it's a nightmare to debug in Linux. The experience is always pretty much: navigating a clunky, unresponsive, unattractive interface, only to have it disconnect or crash on me every now and then. Clunkyness and awkward aesthetics are things I can get past, the frequency at which it randomly crashes when I'm knee deep looking at the program's state is a hair-puller.
1Sign inorRegisterto rate and reply
Robin Clarke Producer, AppyNation Ltd5 years ago
Did the Windows version of Braid ever get basic features like support for different resolutions, standard joysticks or control remapping?

Not entirely surprised he can't be bothered to put the effort in to port to Linux.
1Sign inorRegisterto rate and reply
James Boulton Owner, Retro HQ Ltd5 years ago
I know Blow cites linux in this case, but this is also my feeling for Android. At least I think with linux the gdb stub is likely to be quite solid, the main problem with Android is that the stub itself is poor on many (perhaps most or even all?!) devices.

You can quite happily use Visual Studio with a plugin to work with GDB remotely on a linux box, which helps a lot with productivity.

Personally though, I don't think there's any excuse for not having a decent debugger. If I ever get the free time I really want to finish off my Visual Studio integration of the iOS debug stub -- developing for iOS through Visual Studio is just so much more pleasant than XCode. :)
0Sign inorRegisterto rate and reply
gi biz ;, 5 years ago
@Tom Keresztes: I think the real problem is to accept that things could be different. There are a lot of tools available (kakoune or nano for example), and many have a nice GUI for those who like it. Kate, to name one, is way better than Notepad++ once you get past the "omg I miss NP++ syndrome". CodeBlocks was quite good 2 years ago from what I recall, and KDevelop was being developed as well. Linux is all about freedom, so you're not bound to command line tools. You don't even have to use command line at all if you don't want to.

@Andrew Jakobs: sorry but that's a legend. The binaries I download from Humble Bundle and those I build run on Sabayon as well as on Debian, Ubuntu and whatever other distro I might have tried. You must obviously make sure you don't add any silly dependency on Gnome/KDE and that the user has all the libraries he needs. Desura is doing a great job, and even the beta of Steam is working great although I don't have Ubuntu.
It is also not true that you need special hardware to change the layout of your keyboard. You can probably benefit from stickers during the first month of learning but that's it. It's a choice as those who decide to learn azerty, qwertz, colemak or other exotic layouts.
I also have to disagree on the point that price makes quality. That's what MS taught you, but most of their software is average/low quality. That includes the (very) expensive sqlserver, vista, win8, the c++ compiler, j++, explorer, outlook and others. I learned to code in VS and used it for quite a lot of time, but even before moving to Linux I had it wrapped in a ruby script and used notepad++ to code. Many like VS and that's fine, everybody should get to use their favourite editor, but going as far as telling it's the best ever is a bit too much IMO.

@Paul Johnson: while I agree the debugger is good, you will certainly admit the compiler is crappy and the text editor is so-and-so. It also gets very unstable more often than what's reasonable.

@William Leu: I never had a crash outside of my own code. You must be using some crappy tool or have some other problem.

Edited 1 times. Last edit by gi biz on 6th February 2013 1:49pm

0Sign inorRegisterto rate and reply

Sign in to contribute

Need an account? Register now.