• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.
Sign in to follow this  
Followers 0
Aluthreney

Programming: Linux vs. Windows?

41 posts in this topic

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?
0

Share this post


Link to post
Share on other sites
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.
0

Share this post


Link to post
Share on other sites
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.
2

Share this post


Link to post
Share on other sites
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.
0

Share this post


Link to post
Share on other sites
[quote name='japro' timestamp='1315587022' post='4859617']
On windows you usually just have an IDE that does everything for you and that's it.
[/quote]

[img]http://images.intomobile.com/wp-content/uploads/2009/08/o-rly-putin1.jpg[/img]



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

Share this post


Link to post
Share on other sites
[quote name='kunos' timestamp='1315587420' post='4859621']
[quote name='japro' timestamp='1315587022' post='4859617']
On windows you usually just have an IDE that does everything for you and that's it.
[/quote]
So all these years it wasnt actually me writing my code.. it was my IDE.. you can really learn a lot on forums.
[/quote]
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.
0

Share this post


Link to post
Share on other sites
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.
0

Share this post


Link to post
Share on other sites
[quote name='japro' timestamp='1315587989' post='4859628']
[quote name='kunos' timestamp='1315587420' post='4859621']
[quote name='japro' timestamp='1315587022' post='4859617']
On windows you usually just have an IDE that does everything for you and that's it.
[/quote]
So all these years it wasnt actually me writing my code.. it was my IDE.. you can really learn a lot on forums.
[/quote]
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.
[/quote]

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).
0

Share this post


Link to post
Share on other sites
[quote name='japro' timestamp='1315587989' post='4859628']
[quote name='kunos' timestamp='1315587420' post='4859621']
[quote name='japro' timestamp='1315587022' post='4859617']
On windows you usually just have an IDE that does everything for you and that's it.
[/quote]
So all these years it wasnt actually me writing my code.. it was my IDE.. you can really learn a lot on forums.
[/quote]
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.[/quote]
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.
1

Share this post


Link to post
Share on other sites
[quote name='Matias Goldberg' timestamp='1315589186' post='4859644']
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.
[/quote]

I already regret posting here.

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.
1

Share this post


Link to post
Share on other sites
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:

[list][*]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[/list]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 :D




0

Share this post


Link to post
Share on other sites
[quote name='Aluthreney' timestamp='1315586292' post='4859605']
he told me that, for programming, I should get linux because it was better
[/quote]


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...
0

Share this post


Link to post
Share on other sites
[quote name='Lauris Kaplinski' timestamp='1315590176' post='4859654']Development libraries are installed system-wide and very easy to include - plus they have system-wide updates[/quote]This is nice for the user of a linux system ([i]aside from the fact that users are compiling code...[/i]), however, this is an absolutely horrible "feature" for a programmer.

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

[i]N.B. the same situation occurs in amateurly run Windows environments too.[/i]
0

Share this post


Link to post
Share on other sites
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.
0

Share this post


Link to post
Share on other sites
[quote name='alvaro' timestamp='1315591152' post='4859665']
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.[/quote]

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

Share this post


Link to post
Share on other sites
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.
2

Share this post


Link to post
Share on other sites
"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.
0

Share this post


Link to post
Share on other sites
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.
1

Share this post


Link to post
Share on other sites
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.
1

Share this post


Link to post
Share on other sites
[quote name='Antheus' timestamp='1315592053' post='4859673']
[quote name='alvaro' timestamp='1315591152' post='4859665']
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.[/quote]

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

That made no sense.
1

Share this post


Link to post
Share on other sites
*Not directed at anybody specifically* - but I do find many "linux people" consider themselves superior because they use a much more manual, less-visual, and low level process to build things. While it is true in some cases, it is a generalization to assume that "linux person" understands internals and OS processes any more than I understand my Windows environment. I'm certainly not knocking linux - I have my linux VM and I believe it is a terrific OS. I just prefer developing in Windows, for Windows - mainly because as a professional, my market potential is so much larger but also because I really enjoy the OS.

I use a ton of visual tools and they make my job easier and more productive. Having a nice tool belt is a good thing.

One important thing is if you plan on building enterprise software in a corporate environment, Linux is almost completely useless on the front-end. It's the same anywhere you have standard computer users doing their job with Windows. That's just the way it is. Sure, linux comes in handy for scripting on the back-end but that's the extent. Obviously you can build on linux and compile/run on windows but it isn't very practical and the users will not have many of the tools they are used to unless you really go out of your way - not to mention you need your user's environment to test. Java, .NET, VB, Excel - all tools that tend to dominate offices.

I would never argue that "my tools are better than your tools" or "I'm better than you because of my tools" and I avoid people who employ that attitude. :)
1

Share this post


Link to post
Share on other sites
[quote name='Bregma' timestamp='1315595545' post='4859703']
Buy a copy of MS Windows and obtain one or more Linux distros and install them all on your Macintosh. Shiny.
[/quote]


Good call.

I run a Mac Pro at the office with 8 cores and 16gb and have all my windows stuff in VMs. DB Server, App Server, Win7 dev box - and maybe a distro of linux just for fun. :)
0

Share this post


Link to post
Share on other sites
[quote name='elondon' timestamp='1315594395' post='4859695']
One important thing is if you plan on building enterprise software in a corporate environment, Linux is almost completely useless on the front-end.[/quote]

On the other hand, if you plan on writing software to run on servers, most industries don't use Windows.

It's also worth noting that virtually every OS out there but Windows follows the POSIX standards, so a lot of what you learn on Linux also works on Mac OS X, OpenBSD, Android, iOS...
0

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  
Followers 0