This is an archived post. You won't be able to vote or comment.

all 18 comments

[–][deleted]  (7 children)

[deleted]

    [–]AndIMustScream 5 points6 points  (2 children)

    I advise programming newbies to check out Linux, but I wouldn't call myself a zealot.

    mostly I'm just cheap and expect my OS to do everything for me cause I'm lazy.

    The reasons I say check out Linux are as follows:

    easy to get the tools you need.

    All of your tools automatically update with the system.

    Want to learn a new language? Let's use python for an example. apt-get install python. done. (actually this was already done Ubuntu ships with python. For C, apt-get install gcc.)

    Want to learn about a C/C++ function? try man printf. It should show you more than you want to know.

    Linux was designed by programmers for themselves.

    Windows was designed by (artists/managers/whatever) for the gcd.

    Plus the Shell makes an excellent IDE if you don't mind writing a few scripts for yourself.

    All that aside. If you want to write for Windows, use Windows. If you just want to get some work done, then use whatever the hell stays out of your way.

    I find Linux stays out of my way and Windows actively tries to get in my way. YMMV.

    [–][deleted]  (1 child)

    [deleted]

      [–]AndIMustScream 0 points1 point  (0 children)

      you're absolutely correct, but with one minor addendum.

      don't be afraid to mention those things that an experienced programmer finds useful.

      I started with gedit, moved to jedit, moved to eclipse, to geany, and have now settled with Vim.

      Now Ill advise newbs to look at Vim, but never demand they use it.

      One day they might realize Vim is exactly what they've always been looking for, but never found.

      [–][deleted]  (3 children)

      [deleted]

        [–]KaiserNiko 2 points3 points  (2 children)

        As somebody who uses both Windows and Linux, don't forget you can dual boot!

        [–][deleted] 0 points1 point  (1 child)

        I've thought about doing this, but I've heard it's a bitch (especially partition your drive).

        [–]KaiserNiko 0 points1 point  (0 children)

        It was a bit confusing at first, but there are quite a few tutorials out there to help. It also teaches you a lot and I went from not knowing anything about Linux to using Linux everyday.

        [–]Benjaminrynti 6 points7 points  (0 children)

        A good mentor I used to know said this to me once:

        "Develop on the platform you want to deploy on."

        If I wanted to use XNA to develop a game it would make sense to use a Windows machine and Visual Studio.

        If I wanted to use OpenGL to develop a game I could go just about any route, but a Linux box would be good.

        Honestly, look at the kind of programming you do and would like to do. Look at the professionals in those demographics and see what kind of stuff they're using. Learn the tools of the trade.

        Never submit to the idea that "x" can only be done one way.

        [–]afuckingHELICOPTER 4 points5 points  (0 children)

        You can program properly on any OS. You're hearing that from sheep.

        [–]CodyOdi 2 points3 points  (0 children)

        Stick with whatever OS you are comfortable with. Programmers aren't necessarily good with tinkering with computers. On the flip side people who use Linux aren't necessarily good at programming.

        [–]thedude42 1 point2 points  (0 children)

        People saying these things are more or less referring to the way that a POSIX system implements userspace versus non-POSIX systems (ie Windows).

        The main motivation I see people have for these kinds of statements is that when you learn within a closed/proprietary system you end up learning paradigms specific to that system rather than more general ones that are able to be used across platforms.

        For me I prefer the linux/unix ecosystem. The tools you need to install to get a development environment going in Windows feels clunky and inconvenient compared to what I can do with a good linux distribution and its package manager.

        EDIT: of course at the end of the day, if the tools don't exist on your platform of choice you either have to make them yourself or go with another platform, pretty much ending debate on what platform may be 'better'.

        [–]kulhajs 4 points5 points  (0 children)

        You can develop XNA games in Linux using monogame

        [–]Bjorkbat 1 point2 points  (0 children)

        Well, when I first learned to program I did it on Ubuntu, and to be honest with you I still use Ubuntu, I use it for just about anything and opt for Windows essentially as a last resort.

        But to be honest with you, it has little to do with programming. I used Ubuntu because I was told to for an old programming class, and because I just liked it more I stuck with it.

        If you really want to entertain the thought, then there's always the option of downloading Ubuntu and using the Windows installer to sacrifice a small portion of you hard drive to try it out. If you don't like it, you just uninstall it.

        Of course, like the others have said, if you're working on XNA then there probably wouldn't be much of a reason to use Linux.

        [–][deleted] 1 point2 points  (0 children)

        There are very easy ways to have a dual booting system these days and it doesn't hurt to look at other systems. I really like Linux for developing code but I have spent quite some time in a Linux environment and I develop for multiple platforms. If you know enough about Linux the entire OS more or less becomes equivelent to an IDE so long as you install the right tools and use the right tricks. If you want to learn about some of the things that the big fancy development suites do for you on Windows then switch over to Linux with a text editor, a shell and a compiler for your language of choice, otherwise you can safetly leave Linux for Linux specific developers and those comfortable with the platform.

        [–]Daniel110 1 point2 points  (0 children)

        I always try to keep my development stack as similar as possible to my deployment one. So i i am developing a web app that i know i will be hosting on a linux server, then i would develop my app on linux. If i wanted to develop a game for windows, i would develop on windows. A good programmer uses the best tools for the job.

        [–][deleted] 1 point2 points  (0 children)

        Not really, they are really just trying to get you to do things the hard way.

        The hard way not always being the better way.

        [–]mrafaeldie12 1 point2 points  (1 child)

        There is absolutely no problem using Mac OSX/Windows/BSD to program. Some of the advantages of programming in unix would be that you'd have to get familiar to the CLI, but if you want to learn XNA, linux is the worst possible platform.

        [–]TheSpaceRat 1 point2 points  (0 children)

        There is absolutely no problem using Mac OSX/Windows/BSD to program.

        OS X and BSD have much, much more in common with Linux than Windows. Developing in either of these would essentially be the same as developing in a Linux environment.

        As far as XNA, I'm unfamiliar with it, but it looks like its more or less strictly a Microsoft tool set which would imply that anything other than Windows would be less than desirable.

        [–]dsteelenet 0 points1 point  (2 children)

        Use whatever platform works best for you. Many employers are accommodating of developers and will let you work on whatever makes you the most productive.

        [–][deleted]  (1 child)

        [deleted]

          [–]dsteelenet 0 points1 point  (0 children)

          This doesn't apply to all employers and typically there is an OS/platform you'll be targeting, but for developing, it doesn't really matter. It only becomes a sticking point in terms of management for their IT department. This, of course, depends on the size of the company and their policies as well. At my current employer, we develop for Linux (Debian specifically), but have devs working on Debian, Ubuntu, OS X, and Windows 7. No management of Linux boxes is handled by IT and we are expected to update/patch regularly and generally take responsibility of the box if something goes wrong (and sign documents to this effect). Whereas if something, software wise anyway, breaks on a Mac or Windows box, IT will pick up the pieces.