This forum is in permanent archive mode. Our new active community can be found here.

Mac vs PC for Web developers and programmers

dsfdsf
edited May 2011 in Technology
I'm looking for some info before I make a decision about which laptop to buy. I'm a programmer/ Web developer just starting out as an intern and I'm looking for a system I can load up with all my preferences personally preferred tools and take with me between work and home. I do most of my work in open source php, javascript(and various frameworks), xml, AJAX and so on. I also use ASP, .NET and VB (very rarely), but getting a mac to run visual studio for the rare times I need it really isn't a problem(besides I wouldn't be surprised if visual studio started getting a mac port someday like office).

I am totally uninterested in comments like, "DUDEZ PC AM WAY BETT0RZ", or "Mac's are just better... I can't explain why, they just feel better." + "in my butt" --random PC guy.
Give me some real pros and cons so I can make a decent decision.

Some things I need to learn in the future are Ruby on rails or something like that and some other newer scripting languages.
«1

Comments

  • DUDEZ PC AM WAY BETT0RZ
  • Any platform is fine for development, but for testing purposes I would go with a Mac. A Mac can legally and easily run Windows and Linux, but other computers can not easily/legally run OS X. By having all platforms at your disposal you can test out how your sites work on all web browsers on all platforms and be sure that it will be consistent.
  • Ideally you want to run whatever the servers are running. If you have Windows servers, you want a Windows PC. If you have Linux servers, run Linux. That way your development environment can match the production environment as closely as possible. I have a Mac at work, and it works, but it is an awful choice. Unless you are developing apps for the Mac, iPad, iPhone, etc. I see no good reason to use a Mac for development. So many of my peers do use, and even prefer, OSX, but I have no idea what is wrong with them. Sure, it's UNIX, but it's fucked up non-standard UNIX.

    When it comes to every day normal people apps they "just work" on OSX. When it comes to development, everything "just works" on modern Linux distributions such as Fedora, Centos, Arch, or Ubuntu. On OSX everything is non-standard and fucked up. I had to jump through all sorts of hoops and do other weird stuff with the homebrew package manager to get my code at work to run on OSX. Even then, there are certain things, like the search server, that only run on Linux. With an Ubuntu machine, I can apt-get everything and it works instantly.

    Linux is almost always the OS of choice for a development machine except only in cases where the development environment only runs on one of the other two.
  • My dev OS of choice is currently Windows. My work is finally upgrading the company to Windows 7. I can get rid of my busted ass XP install.
  • edited May 2011
    So many of my peers do use, and even prefer, OSX, but I have no idea what is wrong with them. Sure, it's UNIX, but it's fucked up non-standard UNIX.
    I beg to differ:
    Since the BSD variants are not certified as compliant with the Single UNIX Specification (except for Mac OS X 10.5 Leopard and Mac OS X 10.6 Snow Leopard)...
    The fact that you can't get stuff to work easily on OSX speaks perhaps more to the fact that you poopoo anything that is not exactly the way you like it. I just spent a week at a workshop coding and modifying highly complex scientific software written in various flavors of C, Fortran, Perl, and Python. Out of the group of 8 students, 4 didn't have any problems and 4 had a Mac. There was a 100% overlap of these groups.
    With an Ubuntu machine, I can apt-get everything and it works instantly.
    This is your only valid argument, and I agree completely. That being said, it is not that much harder to install Xcode, which has 95% of what you need for standard dev work. Then there are lots of places you can get optimized (and more up to date) compilers like this site. Newer languages like python and ruby are very well supported for the Mac.

    @Bruce: I'd say it depends a lot on your use scenario. If this machine is for coding only, meaning you boot up and you code and you do nothing else, then get a PC at the best performance/price point your wallet can bear and install Ubuntu. If you plan on doing anything else then get a Mac. You pay extra, but that is money well spent (in my opinion) since you get much reduced frustration due to stuff "just working". If you run into trouble doing dev work (which I doubt) you can always virtualise (if you're doing light work) or dual boot into Linux/Windows.
    Post edited by Dr. Timo on
  • Without inciting a flamewar, I have never had my main rigs not "just work" under Windows. My game rig is a fucking speed demon under all conditions, and I can't recall the last error screen, lockup, or spontaneous shutdown it had.

    All of the Big Three OSes just work, in my opinion.
  • edited May 2011
    The fact that you can't get stuff to work easily on OSX speaks perhaps more to the fact that you poopoo anything that is not exactly the way you like it. I just spent a week at a workshop coding and modifying highly complex scientific software written in various flavors of C, Fortran, Perl, and Python. Out of the group of 8 students, 4 didn't have any problems and 4 had a Mac. There was a 100% overlap of these groups.
    Here's just a simple example of the ways in which OSX is not broken, but different and weird.

    Let's say you need memcached. Well, the easiest way to get it is to use homebrew, an open source ruby/git-based package manager. Without homebrew, you would be fucked trying to use fink or macports which suck gigantic balls. Keep in mind, none of these are provided by Apple. They are all open source things that people had to make because OSX doesn't have shit for shit. Ok, so you brew install memcached. It works because homebrew is so great.

    Now you want to start memcached. /etc/init.d/ no. /etc/rc.d/ no. No such thing! OSX is fucked up and different from everything else ever. Thankfully homebrew gives you instructions.

    You can enable memcached to automatically load on login with:
    mkdir -p ~/Library/LaunchAgents
    cp #{prefix}/com.danga.memcached.plist ~/Library/LaunchAgents/
    launchctl load -w ~/Library/LaunchAgents/com.danga.memcached.plist

    Or start it manually:
    #{HOMEBREW_PREFIX}/bin/memcached

    Add "-d" to start it as a daemon.

    launchctl com.danga what the fuck? You need some sort of plist file and weird shit.

    What if you want to use something that doesn't have a homebrew formula? You're probably fucked. Sure, you can do the old configure; make; make install, and it may have been coded to work on OSX, or it might not have. If it wasn't, give up. If it was, you may get it to build after dependency hell. Then what, going to write your own plist file? Already it's time to kill yourself. You could have installed Ubuntu in less time than it took to do all that bullshit.

    Keep in mind that homebrew, the only saving grace of OSX, is extremely new. As in, it wasn't good and usable until 2010. Before that, OSX was completely fucked as a development platform. I don't know how anyone managed to do anything at all with it. The OSX Terminal.app doesn't even support 256 colors. You have to go get iTerm2 beta for anything even remotely usable, and it still sucks compared to gnome-terminal.

    Also, virtualization doesn't mean anything. You can virtualize any OS on any OS. I've got Snow Leopard in VirtualBox working just fine. However, for some reason VirtualBox on OSX is shit. Running it on Windows or Linux is great. You can get Parallels on OSX which is good, but it isn't free, and that is the other major problem with OSX. Things that are absolutely free for Mac and/or Windows cost money on OSX. OSX has a strong culture of charging for apps, even before iOS existed. Everyone on Windows and Linux uses free text editors be they vim, or emacs, or Visual Studio or Eclipse. Almost ever Mac developer I know uses these Mac-specific things like Coda or Textmate, both of which are not free as in beer. If you want to go the OSX route, you are going to be shelling out hundreds of dollars for software. On Windows or Linux everything you need will be free as in beer unless you need the non-express Visual Studio.

    This is a blog post I read awhile ago. This guy basically wrote everything that I had always been thinking about why OSX is fail.
    http://cloudhead.io/2011/04/18/why-osx-doesnt-cut-it/
    Post edited by Apreche on
  • edited May 2011
    Oh, I forgot my favorite OSX complaint ever.

    How do you show hidden files in the Finder?
    In the Terminal type:
    defaults write com.apple.finder AppleShowAllFiles TRUE
    killall Finder
    This is a global setting. You have to do the same thing again with FALSE to hide the hidden files. There is no way to do this in a directory by directory basis, and no way to change the setting without hitting the terminal window and closing all finder Windows. If you want to be able to see your .ssh and your .vimrc in the Finder, you're going to see every hidden file in the universe in the finder. Even normal people need to see hidden files sometimes. How could they possibly do it considering they have no idea how to do ls -a on the terminal? This is absolutely unacceptable for a development machine.
    Post edited by Apreche on
  • This is all great info!
  • It's also worth noting that there is a rather large bug in osx currently. Any type 1 opentype postscript font will not render correctly most of the time. This is for applications that use the apple's font rendering engine. Apple is in no hurry to fix this issue since it does not use that type of font. Everyone else however does...

    The youtube movie player has all of its fonts corrupted on my mac. Some sites are unusable as well. The biggest issue being i am flash developer and the bug in question affects many adobe products.
  • launchctl com.danga what the fuck? You need some sort of plist file and weird shit.
    Thus my comment about you poopoo:ing anything that is not exactly to your liking. You are an old crotchety man complaining about stuff that you personally find weird ;-).

    Anyway my point was to correct your false statement about OSX being non standard and to point out that one can get pretty much everything to work on OSX just fine, and now you have turned the debate into "but it's weird, and you need some third party software, and it's ugly, and it's hard".

    My father in law has a good saying: "Religious belief should have no bearing on the tools that you use". I can, have, and will continue to use whatever platform to do programming. I might have preferences and opinions but I'm not going to whine about them because the things that I'm doing are always more interesting than how I'm doing them.
  • It's also worth noting that there is a rather large bug in osx currently. Any type 1 opentype postscript font will not render correctly most of the time. This is for applications that use the apple's font rendering engine. Apple is in no hurry to fix this issue since it does not use that type of font. Everyone else however does...

    The youtube movie player has all of its fonts corrupted on my mac. Some sites are unusable as well. The biggest issue being i am flash developer and the bug in question affects many adobe products.
    This reminds me, and may be related to, another problem I have with OSX.

    There is no doubt that OSX font rendering is beautiful, much better than every other OS. Browse the web on a Mac, or edit text using any of the Mac Fonts in any Mac application, and it looks amazing. The same goes for iOS, iBooks has amazing fonts.

    If you are a coder that means you usually want to use a fixed width blocky programming font, not some smooth anti-aliased font. However, the beautiful font rendering of OSX always gets in the way. Try to use a Proggy Font on OSX. It definitely can be done. I use it in MacVim and iTerm2. It's just that it's a pain in the ass. You have to do a lot of fiddling to get it to render properly. You also have to set it exactly to be 16pt, any different size and it will be all garbled. Oddly enough 16 isn't a choice in the font settings GUI on OSX. It goes from 14 to 18. You have to manually type in the number 16 to get the font to work among other things like turning on or off various checkboxes. On Windows or Linux these fonts "just work."

    That's the thing with "just works." There are some things that just work on every modern computer. Want to do a Google search? Just works even in horrible old IE6. Want to play Doom? It just works even on a wristwatch. These kinds of things that people do every day work on almost everything. These people do not do weird or esoteric things on their computers. By their very nature, a weird or esoteric activity is something only a few people do, so there is little incentive to make sure it works smoothly and perfectly.

    When you are a developer, everything you do is weird. All you do all day is make the computer do things it didn't do before. Everything is uncharted territory. That is why OSX, both philosophically and technologically is a bad choice for development if an Apple system is not your target platform. Can OSX get the job done? Absolutely. It is possible to get the job done on any of the modern OSes. Heck, it's possible to get the job done on really old systems. A netbook with a very old Linux or Windows XP will get the job done. Depending on what you are doing, a G4 cube will probably be sufficient. While it is possible, it's not going to be easy.

    If you are a craftsman, you get the best tools for the job. Can a master chef cook a meal using some shitty knives from Target? Those knives may suck, but they can cut in the same way you can code on OSX. A real developer is going to have awesome computers like the chef has awesome knives. That means both hardware and software are going to be high quality, and kept in excellent condition. Fast CPU, GPU, solid state drives, faster unfiltered Internet connection, all the necessary software isntalled on the optimal platform for the project at hand. A professional painter wouldn't use some watercolors from a child's paint by number set, and a serious professional developer shouldn't use a Mac unless they are making iPhone apps or something.
  • so here are some Q's for U's:
    Virtualization: VM ware in OSX running Linux and/or Windows? VM running Linux in Windows?
    Multi boot: MAC running windows and or Linux vs PC's running windows and linux

    obviously I'd rather run a VM scenario since I won't have to reboot to switch between tools.
  • so here are some Q's for U's:
    Virtualization: VM ware in OSX running Linux and/or Windows? VM running Linux in Windows?
    Multi boot: MAC running windows and or Linux vs PC's running windows and linux

    obviously I'd rather run a VM scenario since I won't have to reboot to switch between tools.
    Use VirtualBox, not VMWare. It's free and better in every way for developer virtual environments. VirtualBox running on Windows or Linux works awesomely whether Linux or Windows is host or guest OS. VirtualBox with OSX as the host OS is slow and crappy. If you want to use a Mac, you have to do boot-camp, which is a pain in the ass, or use Parallels, which is not free.

  • A professional painter wouldn't use some watercolors from a child's paint by number set, and a serious professional developer shouldn't use a Mac unless they are making iPhone apps or something.
    Jackson Pollock?
    image
  • Jackson Pollock?
    He used real paint, how he used it is another story.
  • dsfdsf
    edited May 2011
    Jackson Pollock?
    He used real paint, how he used it is another story.
    well, if you mean paint he got from truevalue hardware stores then yeah he also painted with paint sticks.
    Let's end this metaphor before it derails the conversation too far.
    Post edited by dsf on
  • edited May 2011
    I still think the most germain question is whether you will use the machine for anything else than programming. Is yes then get a mac assuming you can afford it, if no get a Linux PC.

    I wont argue esthetics with Scott, but I contend that his points are mostly subjective and based on personal preference, and that if you are a programmer that needs to have all his ducks in a row just so, before being able to code efficiently then you might want to work on that problem ;-).
    Post edited by Dr. Timo on
  • dsfdsf
    edited May 2011
    I still think the most germain question is whether you will use the machine for anything else than programming. Is yes then get a mac assuming you can afford it, if no get a Linux PC.

    I wont argue esthetics with Scott, but I contend that his points are mostly subjective and based on personal preference, and that if you are a programmer that needs to have all his ducks in a row just so before being able to code efficiently then you might want to work on that problem ;-).
    here are some of the things affecting my decision:
    It needs to be a laptop
    I will use itunes, maybe some low impact games like eve online
    it will mostly be for programming

    I've started looking at PCs. I've looked at the latest dells, toshibas, and sonys and none so far seem all that interesting. Nothing really jumps out at me like Joe Biden in space.
    Post edited by dsf on
  • I will use itunes
    If this is a must, it alone justifies getting a Mac. iTunes on Windows is an abomination unto god. Although it's been a few years so things might have improved, but last time I did a comparison our media library opened in 5-10 seconds on OSX and in ~5 minutes on windows.
  • Has to be a laptop? Lenovo X220 is the only laptop worth buying today. End of story.

    http://shop.lenovo.com/us/products/professional-grade/thinkpad/x-series/x220/index.html
  • I will use itunes
    If this is a must, it alone justifies getting a Mac. iTunes on Windows is an abomination unto god. Although it's been a few years so things might have improved, but last time I did a comparison our media library opened in 5-10 seconds on OSX and in ~5 minutes on windows.
    I use it on both. It's exactly the same either way.
  • dsfdsf
    edited May 2011
    I will use itunes
    If this is a must, it alone justifies getting a Mac. iTunes on Windows is an abomination unto god. Although it's been a few years so things might have improved, but last time I did a comparison our media library opened in 5-10 seconds on OSX and in ~5 minutes on windows.
    I use it on both. It's exactly the same either way.
    I use it on PC already, it's fine.
    Post edited by dsf on
  • edited May 2011
    I still think the most germain question is whether you will use the machine for anything else than programming. Is yes then get a mac assuming you can afford it, if no get a Linux PC.
    If you want to play games on it, Windows is superior.
    Post edited by lackofcheese on
  • I still think the most germain question is whether you will use the machine for anything else than programming. Is yes then get a mac assuming you can afford it, if no get a Linux PC.
    If you want to play games on it, Windows is superior.
    you have a firm grasp of the obvious.

    games are irrelevant in this decision process all in all because the system will primarily be for me to do work on.
  • games are irrelevant in this decision process all in all because the system will primarily be for me to do work on.
    You're not going to be able to play serious games on a laptop anyway. The only laptops capable of playing any serious games are gigantic with no battery life. Even the best MacBook Pros have shit video cards.
  • edited May 2011
    I still think the most germain question is whether you will use the machine for anything else than programming. Is yes then get a mac assuming you can afford it, if no get a Linux PC.
    If you want to play games on it, Windows is superior.
    you have a firm grasp of the obvious.

    games are irrelevant in this decision process all in all because the system will primarily be for me to do work on.
    Since you're mostly just programming, I don't see a strong reason to pay the premium for a Mac. A Linux system will do great.
    games are irrelevant in this decision process all in all because the system will primarily be for me to do work on.
    You're not going to be able to play serious games on a laptop anyway. The only laptops capable of playing any serious games are gigantic with no battery life. Even the best MacBook Pros have shit video cards.
    If you mean "serious" in the sense of modern graphics-intensive games, sure. However, there's quite a lot of games that are older or not heavy on the graphics that will run just fine even on modern integrated graphics.
    Post edited by lackofcheese on
  • games are irrelevant in this decision process all in all because the system will primarily be for me to do work on.
    You're not going to be able to play serious games on a laptop anyway. The only laptops capable of playing any serious games are gigantic with no battery life. Even the best MacBook Pros have shit video cards.
    tru dat. I may play some low end strat games or maybe civ4/5. but I won't be playing duke nukem forever on it.
  • tru dat. I may play some low end strat games or maybe civ4/5. but I won't be playing duke nukem forever on it.
    My X201 plays a good Civ, so an X220 will do even better.
  • dsfdsf
    edited May 2011
    If (I can virtualize Linux well){
    Super awesome!;
    }
    elseif(I can dualboot linux){
    Not so great but still useful;
    }
    else
    poopy;
    Post edited by dsf on
Sign In or Register to comment.