/* attempt to deal with prototype, bootstrap, jquery conflicts */ /* for dropdown menus */

### GameDev Marketplace

#### Men's i.make.games T-shirt

$20$15

### Image of the Day Submit

IOTD | Top Screenshots

## Programming: Linux vs. Windows?

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

41 replies to this topic

### #1Aluthreney  Members

Posted 09 September 2011 - 10:38 AM

I was talking to a programmer a few weeks ago about how I was planning to buy a new computer for playing games and schoolwork (mainly programming). In the midst of our conversdation he told me that, for programming, I should get linux because it was better, unfortunatly we didn't talk more about it afterwards and I never got a chance to ask him what the advantages of Linux are when it comes to programming. Can anuone tell me what makes Linux better than Windows when it come to programming?

Aluthreney -- the King of sheep.

### #2jnmacd  Members

Posted 09 September 2011 - 10:42 AM

He's just bias towards linux.Linux does make some libraries very easy to get with apt-get, but definitely have Windows as the host operating system. Maybe you would want to have linux run in a virtual machine.

### #3kunos  Members

Posted 09 September 2011 - 10:43 AM

one is pretty obvious.. if you do that, one day you'll have a friend telling you he want to do programming and you would be able to tell him he should use linux, and feel very cool in the process.

other than that.. nothing I can think about.

### #4japro  Members

Posted 09 September 2011 - 10:50 AM

Linux is a more "programmerish" environment... On windows you usually just have an IDE that does everything for you and that's it. On Linux you are more exposed to the "low level" stuff. You end up doing lots of stuff on the command line and are kinda required to actually understand what you are doing. On the other hand, nowadays it seems to be en vogue to consider all these "hard parts" (like manually using tools and actually knowing what the computer/OS does) an anachronism.

### #5kunos  Members

Posted 09 September 2011 - 10:57 AM

On windows you usually just have an IDE that does everything for you and that's it.

So all these years it wasnt actually me writing my code.. it was my IDE.. you can really learn a lot on forums.

### #6Hodgman  Moderators

Posted 09 September 2011 - 11:02 AM

Pro windows:
* Windows is my target platform (linux is supported, but it's a minority of users) so I should focus primarily on the target platform during development.
* My personally preferred tools (i.e. Visual Studio) are Windows applications.
* If I want to use leet nix tools like bash/vim/git/etc, there's native Windows versions.

Pro linux:
* My beard will grow thicker.

Pro both:
* You can run either OS inside the other, via Wine/AndLinux/etc...
* You can choose from a variety of tools, including "just an IDE" or "low level tools"

There's really no reason to use either, other than that it's your favorite for every-day use.

### #7japro  Members

Posted 09 September 2011 - 11:06 AM

On windows you usually just have an IDE that does everything for you and that's it.

So all these years it wasnt actually me writing my code.. it was my IDE.. you can really learn a lot on forums.

I guess again I have to be ultra specific in forums because there is always someone who finds the worst possible interpretation of whatever you write (must be some sort of corollary to Murphys law). What I mean is that on Windows there is more of a WYSIWYG/all-in-one mentality that also shows in the software. This is even visible in simple things like beginners on windows often only having vague concepts about what a compiler is ("I use the Dev-C++ compiler..."). On linux you are more likely to deal with compilers, editors, build systems etc. separately. If that is an advantage or not is up to the individual. You obviously still have to program yourself, regardless whether you use a super advanced IDE or cat and gcc.

### #8Telastyn  Members

Posted 09 September 2011 - 11:08 AM

Pssh. You can run things in Wine on linux if you want windows only apps.

Not that I'm saying you should run linux, but saying that most linux apps can run in windows but failing to mention that the opposite is also true is disingenuous.

For the OP: Linux has an easier/nicer interface for hacking on OS internals, and worse support for .NET based languages. As far as programming goes, that's about it.

For schoolwork, you might run into issues with linux when you go to print out papers. For personal use, linux has poorer game support.

### #9SimonForsman  Members

Posted 09 September 2011 - 11:13 AM

On windows you usually just have an IDE that does everything for you and that's it.

So all these years it wasnt actually me writing my code.. it was my IDE.. you can really learn a lot on forums.

I guess again I have to be ultra specific in forums because there is always someone who finds the worst possible interpretation of whatever you write (must be some sort of corollary to Murphys law). What I mean is that on Windows there is more of a WYSIWYG/all-in-one mentality that also shows in the software. This is even visible in simple things like beginners on windows often only having only vague concepts about what a compiler is ("I use the Dev-C++ compiler...") etc.. On linux you are more likely to deal with compilers, editors, build systems etc. separately. If that is an advantage or not is up to the individual. You obviously still have to program yourself, regardless whether you use a super advanced IDE or use cat and gcc.

I'd use an IDE on Linux aswell tbh, as for the OP:

Run whichever OS you're targeting. This pretty much always means that you should run Windows (Since it has the biggest marketshare), If you target more than one OS you should get a virtual machine (I use VirtualBox myself) and a dualboot installation, (3D performance tends to be a bit weak in virtual machines still so you can't rely on them exclusivly but its good enough for quick testing).
I don't suffer from insanity, I'm enjoying every minute of it.
The voices in my head may not be real, but they have some good ideas!

### #10Matias Goldberg  Members

Posted 09 September 2011 - 11:26 AM

On windows you usually just have an IDE that does everything for you and that's it.

So all these years it wasnt actually me writing my code.. it was my IDE.. you can really learn a lot on forums.

I guess again I have to be ultra specific in forums because there is always someone who finds the worst possible interpretation of whatever you write (must be some sort of corollary to Murphys law). What I mean is that on Windows there is more of a WYSIWYG/all-in-one mentality that also shows in the software.

I have a really hard time understanding how is it that pressing "F7" is worse than typing "cd pathto/folder" then "make all" or hitting "F5" is worse than typing "gdb myapp run"

Some stuff is better being automated and Linux has a script-friendly environment, granted; but Window's capabilities aren't far behind either. Just install CMake, Python, Lua, or Cygwin and you get powerful scripting tools at your disposal.

### #11japro  Members

Posted 09 September 2011 - 11:42 AM

I have a really hard time understanding how is it that pressing "F7" is worse than typing "cd pathto/folder" then "make all" or hitting "F5" is worse than typing "gdb myapp run"

Some stuff is better being automated and Linux has a script-friendly environment, granted; but Window's capabilities aren't far behind either. Just install CMake, Python, Lua, or Cygwin and you get powerful scripting tools at your disposal.

I didn't say anything about what is "better" or "worse", did I? I was just writing how I experienced both "worlds". When I am targeting windows I will also code on windows usually using an IDE an doing everything from there. Setting up the more unixish tools on windows is of course possible, but is kind of a hassle. On linux/unix on the other hand these tools are simply there. gcc, make etc. are almost a part of the system if you will. So naturally you are more likely to use them directly...

I guess what Hodgman said about target platforms is the most important argument pro or contra any of the systems, and that is a decision that everyone has to make for himself.

### #12Lauris Kaplinski  Members

Posted 09 September 2011 - 11:42 AM

There is certain truth in his opinion...

Most Linux programs are again and again built from source not only by the original developers but by vast number of other people. Thus the development packages are the most stress-tested parts of any Linux distribution. It has some nice consequences:

• Almost every programming language under the Sun is freely available in distribution core and works out of the box
• Development libraries are installed system-wide and very easy to include - plus they have system-wide updates
• Most fancy library/language/toolkit bindings (like PyGtk, Tao...) are usually developed under Linux and thus better tested and debugged there
• The main application environment (shell) is itself scriptable and interactive
Under Windows you will normally use development environment provided by IDE (like visual Studio). Adding non-standard extensions, like modules written in other programming languages, large 3-rd party libraries etc. can sometimes be quite complex.

In am myself using Windows and VS mostly because of VS debugger. On the other hand Linux has Valgrind, so IMHO it is a tie

Lauris Kaplinski

First technology demo of my game Shinya is out: http://lauris.kaplinski.com/shinya
Khayyam 3D - a freeware poser and scene builder application: http://khayyam.kaplinski.com/

Posted 09 September 2011 - 11:48 AM

he told me that, for programming, I should get linux because it was better

It doesn't important which one has a better interface (subjective).
End-users doesn't care about that. It's a market dependent question.
You will be more valuable as a programmer if you know them both...

### #14Hodgman  Moderators

Posted 09 September 2011 - 11:57 AM

Development libraries are installed system-wide and very easy to include - plus they have system-wide updates

This is nice for the user of a linux system (aside from the fact that users are compiling code...), however, this is an absolutely horrible "feature" for a programmer.

If I get a bug report that says it's reproducible on a binary built from source commit 434efa192b418c6dc3246d2042771824a950505a, then it better be reproducible on all binaries built from that version-tag!
If the resulting binary depends on the global environment of the builder's PC, then there's a huge break in the versioning chain there which makes professional development unpossible.

N.B. the same situation occurs in amateurly run Windows environments too.

### #15Álvaro  Members

Posted 09 September 2011 - 11:59 AM

I do find Linux a friendlier environment for programming, but I wish we had an editor as nice as the one in Visual C++.

In any case, my vote is for learning to program both in Windows and in Linux. You can use something like VirtualBox to run one of them inside the other. I became a much better programmer when I moved from Windows to Linux, primarily because I was forced to learn how to write portable code, but the key is that I was exposed to both.

### #16Antheus  Members

Posted 09 September 2011 - 12:14 PM

I became a much better programmer when I moved from Windows to Linux, primarily because I was forced to learn how to write portable code, but the key is that I was exposed to both.

And here's the proof that knowing Java alone will make you superior programmer.

### #17jlouts  Members

Posted 09 September 2011 - 12:24 PM

Some people are mentioning doing the command lines for compiling and linking, etc is helpful for learning the "low level" stuff. I don't see that as the case at all. It's just annoying things you have to do to get to a compiled product. If you want to learn real low level stuff play arround with some programs in a dissambler and learn some assembly language and then you can see the kind of things going on low level. You could also try and write an emulator for some old game system (I did one for gameboy, it's a pretty simple system) to learn more about what's going on in the "low level" of programs.

### #18mrchrismnh  Members

Posted 09 September 2011 - 12:25 PM

"Pro linux:
* My beard will grow thicker."

Naw bro I've been using it since 2000 and can't grow anything that doesn't look like armpit hair.
"It's like naming him Asskicker Monstertrucktits O'Ninja" -Khaiy

### #19TangoKilo3  Members

Posted 09 September 2011 - 12:25 PM

I'll throw in my two cents, I use Windows with Visual Studio 2008 at work and Linux with command line g++ at home. They are both nice to write code with.

The programming I do at work is very Windows specific (MFC library anyone?) and I would certainly not try and deal with doing WinAPI calls and setup without the wizards and code completion that VS provides.

However at home, where I program my games, I prefer a very *clean* programming environment (nothing but .cpp .hpp and a make file). I don't like the clutter of IDE specific project files, settings files, etc. And while I could have the same environment in Windows, I happen to like the command line of Linux without having to install CygWin.

But this is all personal preference, and in the end, that's what it will be to you. It is entirely possible to cross compile from either OS, you can have IDE's with all the nifty features on both, you can download portable libraries on both, you can Google compiler errors on both, etc. I would suggest trying both and see which you prefer.

Posted 09 September 2011 - 12:32 PM

Well Linux is free, Windows isn't.

Other than that, I find it's a matter of taste and what you want to do. If you want to be productive and Windows is your target platform - Windows is your best bet. But if your target platform is Linux itself you might be more productive in the Linux. If you want to learn more about operating systems and try something different, Linux can be fun.

But you always have to filter what people tell you, just like you should when reading this post. I have friends who think you're not a good programmer if you don't program in (Linux) Vim or whatever it's called (it's basically a Notepad-ish style code editor). Those friends also happen to not have finished any useful projects and I think many of the zealots fall into this category.

IMHO anyone claiming that you're more productive in Linux if you're doing crossplatform development is lying, but I'll get flamed for that.

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.