Forgot your password?
typodupeerror
Editorial Programming The Internet Apple

Why Mac OS X Is Unsuitable For Web Development 831

Posted by Soulskill
from the people-have-opinions dept.
Hugh Pickens writes "Ted Dziuba has an interesting and amusing post on how he made a big mistake when he was offered a choice for his company laptop. His options were a Lenovo Thinkpad or a MacBook Pro, and he picked the Mac, thinking it would be closer to what he was used to. So what's wrong with using the Mac as a development machine for Milo, a Python application backed by PostgreSQL and Redis? 'I've only poked around a little, but so far I've found three separate package managers for OS X: Fink, MacPorts & Homebrew,' writes Dziuba, adding that when you are older, you will understand the value of automated version dependency satisfaction. Next is that your development platform should be as close as possible to your production platform, but 'OS X and Linux have different kernels, which means different I/O & process schedulers, different file systems, and a whole host of other implementation details that you'll write off as having been abstracted away until you have your first serious encounter with "It Works On My Machine.'" Finally, he says, Textmate sucks. 'Sooner or later, you have to face facts. Man up and learn Emacs.'"
This discussion has been archived. No new comments can be posted.

Why Mac OS X Is Unsuitable For Web Development

Comments Filter:
  • I was going to say "I can't test to see if my websites work in IE9." (Note that I no longer care about 6, 7, or 8.)
    • by Altus (1034)

      For that problem you set up a windows install in a virtual machine.

    • Re:Oh (Score:5, Insightful)

      by beelsebob (529313) on Monday March 28, 2011 @06:31PM (#35645622)

      I have no idea why this troll of an article ever hit /.

      With compelling arguments like "textmate sucks, man up and use emacs" (yes that really is the whole argument for what's wrong with text editing on OS X) I'd expect better from an IRC troll, let alone a slashdot troll. And hell, that's completely ignoring the fact that if you really want to, emacs runs just fine on OS X.

      Personally, I consider a Mac to be pretty much the ultimate web dev platform, because it gives you easy access to all browsers on all major platforms, and gives you some of the best tools (yes, better than emacs, and even better than vi) to develop with. There are many imperfections, but it's better than all the other options.

      • Re:Oh (Score:4, Insightful)

        by mysidia (191772) on Monday March 28, 2011 @06:58PM (#35645998)

        Personally, I consider a Mac to be pretty much the ultimate web dev platform, because it gives you easy access to all browsers on all major platforms, and gives you some of the best tools (yes, better than emacs, and even better than vi) to develop with. There are many imperfections, but it's better than all the other options.

        Author is bitching because he thinks the Mac is not an ideal platform to run the application.

        With that I agree. Don't run the server-side of the web application on your development workstation.

        Instead: save the files directly to a remote folder on an actual webserver running the target OS, by remote mounting the filesystem (or automatic synchronization), and run the application on the remote server, for testing during development.

        • Re:Oh (Score:5, Insightful)

          by Cederic (9623) on Monday March 28, 2011 @07:41PM (#35646416) Journal

          No, see Beelsebob's post above.

          "Deploy"

          It's a key step in your engineering process. It should be a repeatable testable process. It should take microseconds through automation. It should be configurable to permit deployment to dev, systest, SIT, UAT, stress, OAT, Prod, DR* environments without needing to change the packaged deployable.

          You're entirely correct with "Don't run the server-side of the web application on your development workstation." but mounting production server storage from your dev machine is frankly almost as bad.

          *adjust to fit your SDLC

      • by danlip (737336)

        emacs runs just fine on OS X

        Better in fact - AquaEmacs is great - no X server needed, and it respects most of the standard OSX keyboard shortcuts and the standard Emacs keyboard shortcuts, since Macs use command as the shortcut prefix it doesn't conflict with the Emacs shortcuts.

  • by Anonymous Coward on Monday March 28, 2011 @06:00PM (#35645180)

    That's like saying man up and go see the new production of Glitter Boys on Broadway and then go get a pedicure.

    I think he must have meant "man up and go learn vi".

  • by Anonymous Coward on Monday March 28, 2011 @06:00PM (#35645188)

    ...unless you expect it to let you do Linux development.

    Of course, you can dual-boot Linux on it or run it in VMWare. But you knew that, right?

    • by jmcbain (1233044) on Monday March 28, 2011 @06:14PM (#35645382)

      That is exactly his problem. He has a deployment environment that's different from this development environment, and he expects them to be the same when they're clearly not. This is quite possibly the stupidest drivel I have ever read, and obviously he's an amateur programmer. If your deployment environment is Linux, then get a Linux box to develop your code. His argument is just as stupid as saying "Windows is unsuitable for developing Linux software". This clown should be catapulted into the sun.

      Furthermore, if this guy is a Web developer, then why is he concerned about underlying architectures? Stick with HTML and CSS and leave the heavy coding for the adults.

    • by Hatta (162192)

      I think the problem isn't development on the Mac, but testing on the Mac. Code can be written anywhere, this is why we have nifty things like cross-compilers. You just have to test it on the target platform.

  • by bitroli (2022550) on Monday March 28, 2011 @06:03PM (#35645232)

    Most projects have the binaries packed nicely, so you don't have to fiddle with fink/macports/flavor of the month.

    Different I/O and process schedulers? Oh noes! If only we had posix and libc to abstract that crap away!

    Last one is the best. I guess I didn't get the memo about textmate being forced on all mac users.

    • by Altus (1034)

      Seriously, get yourself a copy of BBEdit for christs sake.

      Of course you are more than welcome to use Emacs if you want, or vi or even pico if your a little strange.

      • BBEdit will run for 30 days before you need to give it a serial number. And TextWrangler is flat out free, but it doesn't have all of the HTML goodies that BBEdit has ... but for general programming costs, it'll probably do you.

        Yes, it might seem strange to shell out $100 for a text editor, but it's like buying good power tools -- it lets me get the job done with less effort.

        (disclaimer : I've been a beta tester for Bare Bones, and even have the 'it doesn't suck' t-shirt)

  • I don't get why he doesn't just install Linux on his Mac.

    There are a half-dozen suitable virtualization packages that he could use and installing it as a dual-boot OS is trivial.

    He can get the best of both worlds with almost no effort.

    Why don't people do a little research before posting anti-Mac rants?

    • I don't get why he doesn't just install Linux on his Mac.

      But at that point, what has using a Mac really gained you? I guess some people just love the hardware that much?

      • by Jugalator (259273)

        But at that point, what has using a Mac really gained you? I guess some people just love the hardware that much?

        Seems like it. I like my MacBook Pro but if I'd prefer to use emacs and various package managers, I'd use Linux.

        I personally think this guy is a little bit stupid in his head.

    • by dave420 (699308)
      So he has to pay over the odds for hardware, and then buy a separate Windows license, instead of just buying the Lenovo? That doesn't sound too smart to me.
      • Last I heard you don't need a Windows license for Linux. All his "problems" are down to the fact that he's developing for Linux servers and Mac OS isn't Linux. Running WIndows won't help because it's even less like Linux.

      • by skribble (98873)

        You really think Windows would get him closer to his native host platform?

    • by Jugalator (259273)

      I don't get why he doesn't just install Linux on his Mac.

      Agreed... This is like a Linux user asking why he can't do Mac development as seamless as on a Mac.

      Or a Windows developer expecting to see Windows development on Linux as smooth as in Visual Studio.

      Talk about the wrong tool for the job... And totally besides the point of whether which platform is "better" in general for web development. If he's looking for package managers and want emacs on Mac, he's doing it wrong.

  • That's what virtual machines are for. You can use whatever OS you want for your day to day stuff and then have setups for whatever your development and testing requirements are. Plus, for web development, you could then test with Safari on Mac, Safari/Firefox/IE/Opera on Windows and Konqueror/Firefox/Iceweasal on Linux and have all your bases covered. (Hell, you could even test on Lynx if you wanted!)

  • Seriously (Score:3, Funny)

    by justmike2000 (2023602) on Monday March 28, 2011 @06:06PM (#35645280)
    When will emacs or vim be available for Mac??? Python packages are also a huge problem on a Mac. It is not like setuptools exist for Mac OS X.... Also, when I develop for the web I always format all my devices to HFS+. I will never use FTP or SAMBA as they do not work on Mac.
  • And stop whining. The MBP can run Ubuntu natively (very well too).
    • by dave420 (699308)
      Or get the Lenovo, be able to natively test IE, dual-boot Ubuntu, and spend the difference in price on some goodies.
    • by yelvington (8169)

      It can, but...

      * You're still stuck with the lame Mac keyboard.
      * Bootcamp insists on Mac first, and labeling Linux as "Windows." (If you have some way to fix the order and labeling, I'd love to know it.)

      I haven't intentionally booted OS X in a year or so. Haven't missed it. Not one bit. My only regret is having done some documents and presentations in proprietary Apple formats that are hard to liberate. Much worse than Microsoft lock-in.

  • He'll have an aneurysm when he finds out about the case insensitive/preserving filesystem.

    • Obviously that's a joke, but it's also a serious problem in some instances. If you have a case-insensitive filesystem filling your whole disk partition and need to test case-sensitive applications, you can create a case-sensitive disk image using Disk Utility or hdiutil, then test your app on that. I had to do this in Subversion recently while troubleshooting a problem that had all the symptoms of a case-insensitivity problem.

  • Dude, OS X gives you access to great development tools (XCode, Pixelmator, Adobe CS). Plus all the Unix goodies to publish your content (scp, rsync). I develop on OS X, and have a bash script to post the content to a local vm or the production server.
  • by thestudio_bob (894258) on Monday March 28, 2011 @06:09PM (#35645330)

    After looking at his website, I really don't think he should be offering advice on what tools to use for designing websites.

    Just saying.

  • Voodoo (Score:5, Interesting)

    by Dan East (318230) on Monday March 28, 2011 @06:09PM (#35645342) Homepage Journal

    OS X and Linux have different kernels, which means different I/O & process schedulers, different file systems, and a whole host of other implementation details that you'll write off as having been abstracted away until you have your first serious encounter with It Works On My Machine.

    I can't imagine writing code so finicky and unstable that it can only be cajoled into running under such a specific environment. If those details are important, then the software should be developed specifically to handle various cases. They way he describes it, it's a bunch of voodoo that can't fully be understood, and whenever the product doesn't work they simply place blame on some nebulous external factor.

    • Re:Voodoo (Score:5, Insightful)

      by slimjim8094 (941042) <slashdot3@justconnected . n et> on Monday March 28, 2011 @09:11PM (#35647152)

      Particularly when it's written in Python. I mean... jesus. If you've managed to have a problem with your *web application* written in Python, because the scheduler is different? Get out of coding.

      I was writing a C/curses application with pthreads on OSX that compiled with no modifications on Linux. Ran fine, too, after I changed a stupid assumption about select() that worked on *BSD but not Linux. And that was my fault for not following POSIX.

      This guy is an idiot with a rage-on. How did this make Slashdot? Oh right...

      • by snowgirl (978879)

        I was writing a C/curses application with pthreads on OSX that compiled with no modifications on Linux. Ran fine, too, after I changed a stupid assumption about select() that worked on *BSD but not Linux. And that was my fault for not following POSIX.

        Right on. Reading this, I made the same reasoning... if this guy can't code to specifications, then he's apparently just ignorant (nothing wrong with that, I'm ignorant about a lot of stuff) but if he can't realize that his error is in violating specifications rather than "my dev environment is different than my production environment!" then that escalates his ignorance to idiocy.

        I used to work in an environment that depended upon MACHINE NAMES and machine-specific credentials, and we managed to get things

  • by istartedi (132515) on Monday March 28, 2011 @06:11PM (#35645354) Journal

    You just initiated a PC vs. Mac and an Emacs vs. Vi flamewar in one article? Are you MAD??? Don't you understand the potenia#%#$^#$^ NO CARRIER.

  • Each is heinous in its own special way, but the fact that you have three competing package managers, that don't talk to each other has convinced me that Mac users, in the typical hipster fashion, brutally raped the Unix culture, throwing away everything that made it unique because they did not understand it.

    Huge binary repositories that try to include as much compatible open-source software as possible (as found in a distribution like Fedora or Debian) are unique to Linux distributions, and specifically tho

  • Cry me a river... (Score:3, Informative)

    by jwthompson2 (749521) * <(moc.smargorpnialp) (ta) (semaj)> on Monday March 28, 2011 @06:15PM (#35645396) Homepage
    What a whiner. I use a Mac every single day for doing web development. Know how I get over the fact that I'm not deploying to a Mac in production? It's called a continuous integration (CI) and staging setup! You build your app locally and ensure the core of the test suite passes and then you push your changes up to CI where everything gets run against a test server stack that should be nearly identical to your production environment. And if the CI passes then the code get auto-deployed to the staging server for QA evaluation by the client, or other responsible party. And after they've signed off you kick-off a deployment of the code into production. And if I can't, don't want to, run CI and staging environments outside my system, I can fire up Parallels or VirtualBox and create a test environment. Boo hoo! This problem isn't remotely interesting unless you don't know what you're doing.
  • The Lenovo would likely come with Windows. If his target was Linux, and he wanted to be oh so close to the target, then he would had to instal a flavor of Linux on that laptop anyways. WHY cant he install some form of Linux on the Mac? I guess he is man enough to learn Emacs but not man enough to instal Linux.
  • I say as I'm about to have to rewrite some code to not use a JDK 6 method so that the Macs in the office can continue compiling code...

  • ... until you have your first serious encounter with "It Works On My Machine.' ...

    This problem is common to both Windows and Mac. But the difference is, in Mac, people will force you fix your code and make it work. In Windows you had been just shrugging and say, "It works in my windows machine, must be something wrong with your non standard system". All that bad karma has caught up to you and now you are bellyaching about having to actually fix your code.

    Man up and fix your code buddy. In Mac/Linux world we don't coddle lazy coders much.

  • Worked on my w7 machine and crashed when running on XP :)
    Turned out to be something with timeouts in the TCP-IP stack implementation of both versions of windows.

  • I'm not sure why "TextMate versus Emacs" enters into this, especially since MacOS ships with Emacs and does not ship with TextMate. Can anyone explain?

    I'm a developer (sometimes web) with a MacOS desktop. I've never heard of TextMate. I use Emacs quite regularly (and have since 1986, on equipment by Sun, IBM, DEC, NeXT, et cetera).

  • > "...OS X and Linux have different kernels..."

    Damn. I just realized that all my web development has been a sham. I mean, if I were doing REAL web development then this kernel stuff would have blown up in my face, too.

  • Ummm (Score:4, Insightful)

    by techsoldaten (309296) on Monday March 28, 2011 @06:26PM (#35645564) Journal

    Um, ahem...

    This is a very reactionary post and does not belong on the front page of Slashdot. There are a lot of options to address the issues the author brings up and the premise of the article is misleading. Also, the author clearly references Windows development issues, which means he lacks essential open source credibility and should be shunned by the community.

    I mean:

    - How about Eclipse as an IDE? That should be better than emacs and textmate for most things.

    - How about MAMP with SPMPT for Postgres? You could also script start and stop scripts for redis in MAMP similar to the ones that exist for memcached.

    - While fink, macports and homebrew all do suck in their own special way (homebrew is a little suckier), what's to stop you from writing your own ports for them? Isn't this the way rpms caught on, where people knew how to compile them in the first place?

    Maybe the polyphany of OSX package managers leads to issues but the same issues have existed in the Linux world for years and it's taken a lot of effort to resolve them. People took the time to resolve them, and that's what lead to a better system. You can't criticize "Mac culture" for offering the same opportunities available to linux users, sorry you don't feel the need to contribute.

    - As far as file systems go, so help me, most competent developers can deal with this pretty easily. Since the author cites 'grown up' developers in his article, I guess that means grown ups are too lazy to do something about file systems when writing applications. Like make applications for linux and BSD and ignore windows altogether, or use a windows machine for creating windows applications.

  • by Theovon (109752) on Monday March 28, 2011 @06:29PM (#35645588)

    I just spend $3200 (including tax) on a maxed-out 17" MacBook Pro. Call me crazy or dedicated or both.

    But in my opinion, unless you're developing for iOS or MacOS X, the Mac is a poor platform for LOTS of different kinds of things. I'm a chip designer, for instance, and there is ZERO software for the Mac in this area. I have to run Windows in a VM just so I can synthesize for FPGAs.

    The Mac also has a dearth of good code editors. On Linux, I really liked nEdit. It has everything, and it is intuitive (or at least I felt that way when I was using it). For Windows, I've enjoyed using Edit Plus and Ultraedit. But for the Mac, the editors generally just suck. Every single one of them has some kind of amazingly bad UI design flaw. For instance, I think it was TextWrangler where searching with wrap-around and search&replace in selection are mutually exclusive -- if you want to use hotkeys to do these things, you have to open the Find dialog and change settings to go back and forth, and the devs told me this was intentional, like it was a good thing. For a while there, I considered blogging about it, it was that frustrating. :)

    Actually, of all of them, Smultron is my favorite. It's back in development. It's still buggy as hell, but the author seems to be willing to listen when I report bugs. It's lightweight, and the UI is simple, consistent, and intuitive. So, it's getting there. Give it a version or two.

    For a lot of kinds of development, I just use the Mac as a client for some other machine. If I'm doing web development, I actually just mount files on a Linux server using SMB (because netatalk has problems and OSX doesn't support NFS well) and serve the web pages from there.

    What the Mac IS good at is content development. Multimedia, documents, etc. If I want to make a presentation or diagram, I use Pages, Numbers, and Keynote, along with MacTex and OmniGraffle. There are quite a number of other net clients (like NetNewsWire and Adium) and other sorts of apps that are just wonderful.

    You can use Netbeans and Eclipse on the Mac, but Java just doesn't integrate all that cleanly with other Mac apps. You can get used to it, though. But generally, the Mac just isn't so great for software development.

    • Re: (Score:3, Informative)

      by Anonymous Coward

      Okay so you like nEdit on linux..
      ramuh ~ # uname -sr
      Darwin 10.7.0
      ramuh ~ # port -v search nedit
      nedit @5.5 (editors)
              A multi-purpose text editor for the X Window System.

      so install it?

      What doesn't it "do well" with nfs? I use automounted NFS every day on my mac..

    • The Mac also has a dearth of good code editors. On Linux, I really liked nEdit. It has everything, and it is intuitive (or at least I felt that way when I was using it). For Windows, I've enjoyed using Edit Plus and Ultraedit. But for the Mac, the editors generally just suck.

      vim, emacs?? They both ship with OS X. I don't use Emacs that much but vim is really good. I try to use GUI editors but I keep going back to vim. It's just way faster and it's easier to do stuff like replacing text using complex regular expressions or for simple stuff like finding and replacing rogue spaces in python code. The same goes for subversion and a whole lot of other utilities, I keep going back to the command line. Generally, a lot of *nix development and OS administration happens on the command l

    • You are aware that nedit [sourceforge.net] has a precompiled OS X binary up on their sourceforge web-site? Yeah sure, it runs in emulation but it's a text editor, it's not exactly resource heavy (and the fact is, a guy like you who is an OS X neophyte probably won't even be able to tell that it's running in emulation. When you start wondering what those dashes and at symbols are in top, maybe you'll learn how you can tell).

      Maybe you should spend some more time with your computer before you start bashing it for not havin
  • Package management (Score:5, Informative)

    by jbolden (176878) on Monday March 28, 2011 @06:45PM (#35645816) Homepage

    Lets just quote a line from the article:

    I've only poked around a little, but so far I've found three separate package managers for OS X: Fink, MacPorts & Homebrew. Each is heinous in its own special way, but the fact that you have three competing package managers, that don't talk to each other has convinced me that Mac users, in the typical hipster fashion, brutally raped the Unix culture, throwing away everything that made it unique because they did not understand it.

    Lets see:
    Fink is based on Debian's apt system
    Macports is a typical BSD style port system
    Homebrew is not designed as a package management system but to allow installs of individual applications easily.

    And this one:

    I realize that if you're a Mac web developer, your deployments probably consist of ssh and git pull, but when you are older, you will understand the value of automated version dependency satisfaction. Better not tell you now, it would spoil the surprise.

    Of course the point of all 3 of them is dependency resolution.

    One of the unfortunate trends in OS X package management is the idea that the user should be compiling everything. This is being perpetrated mostly by the Homebrew package manager, whose basic building block is the formula, basically a Ruby script that tells it how to download, compile, and install the package. Well congratulations, dipshit, you've reinvented dpkg, poorly. I am simply trying to develop an application, is there a good reason why I am compiling libxml2 and all of its dependencies? What is this shit, Gentoo?

    Gentoo of course originally was trying to bring a BSD style ports system to Linux, as an alternative to the integrated .apt, .rpm culture. So it seems to me this guy might want to understand package system on Linux before he comments further.

  • by sootman (158191) on Monday March 28, 2011 @09:24PM (#35647242) Homepage Journal

    Two things:

    1) My mother and grandfather told me ages ago, "It's a poor craftsman who blames his tools." Related to that,

    2) Use the right tool for the job. If OS X is not the right tool for the job, then DON'T USE IT. But don't go out and be a whiny bitch just because you don't understand what the fuck the requirements are for your job.

    I've been developing web sites for 15 years this summer, starting with Windows 3.1 and Notepad. I've been using OS X since 10.0.3 and I've been using it full-time for web development for about 8 years (since 10.2, aka "the first usable release of OS X.") Saying OS X is unsuitable for web development is flat-out wrong.

    • by alta (1263)

      I've seen web development companies that use macs for development exclusively.
      I've had a client that is a CLEC who's software is all web based. 300+ employees, all mac workstations.
      We all know there's plenty of print/video/audio, media houses that love their macs.

      To make any statement saying a mac just sucks because you couldn't get it to be a direct clone is just stupid. Mac !== Windows !==linux !== BSD !== solaris, etc....

Wernher von Braun settled for a V-2 when he coulda had a V-8.

Working...