Why Mac OS X Is Unsuitable For Web Development
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.'"
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".
...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?
doesnt matter.
'xammp in some flavor' running in your desktop os, still means 'different from the production environment' you are going to run the thing on. xammp on mac will need to behave as xammp on a mac.
Read radical news here
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.
Damn skippy.
You should be using vi (1), with cscope (1).
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.
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.
The real Sig captains the Northwestern. This one captains
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.
Better known as 318230.
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.
For all intensive purposes, "whom" is no longer a word. That begs the question, "who cares"?
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.
Apple gives you loads of options.
Absolutely. They're famous for it. Apple's all about choice.
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.
Written an article explaining that you shouldn't choose OSX when you need to develop for Linux, apparently...
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.
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..
Lets just quote a line from the article:
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:
Of course the point of all 3 of them is dependency resolution.
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.
Okay, if you want counter arguments to the "points" in the troll, here you go:
So you totally ignore the pathetic developer package management in OS X
The article complains that there are 3 different package managers for OS X and that choosing between 3 tools confuses him... Well here's news for him, there's *way* more than 3 package managers for linux. He then goes on to explain that he uses dpkg on linux and is very happy with it. If this is the case, I suggest he uses fink on OS X, as it's a direct port of debian's package manager. He also complains that he ends up compiling things all the time. Clearly, he fails at reading the manual pages, because fink is entirely capable of installing binary packages.
the fact no one uses OS X for serious web hosting
Entirely correct – this is why you use things like (insert favourite scm tool here) to deploy to a test environment and check that your code works in something extremely similar to your deployment environment. This is basic computing 101 – test your binaries where they'll be running. Sorry, but "I'm going to deploy to linux, therefore OS X sucks" is not a good argument.
then blather on about a cruddy text editor?
no, actually, I "blathered on about" a cruddy argument. If he had valid complaints about TextMate I wouldn't call him a troll, but instead he simply states "man up and use emacs" – this isn't an argument, it's just plain bare faced trolling.
You obviously don't develop.
Wrong, but this is only an appeal to ridicule, a well documented logical fallacy, so I'll chose to ignore it.
Guess you're another overzealous Apple fanboy.
Another appeal to ridicule, so I won't grace it by saying "Guess you're another overzealous anti-apple fanboy." Damn, I just did, guess I couldn't help myself.
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.
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
So you suggest that people buy Apple computers even when they fail, because you can run a better operating system in a VM? Let me quote:
What a total retard.
c++;
Emacs works fine for python-based web development. I don't use it myself, but there's no particular reason it wouldn't work, and AquaMacs is actually a very pleasant version of Emacs, both true to Emacs's spirit and nicely integrated with OSX. I agree that in general Emacs isn't the best tool for every job, but there is historical precedent for using it to develop a language with strong dynamic types. It's clearly not the best choice for Java-based web development (I can say that with a certain amount of experience), but that doesn't mean it's the worst choice for all web development either.
...sure. Pick an OS because it is the one that is the most hostile to being virtualized and has the most expensive hardware so when you do decide to run something in a VM you will pay dearly for the priveledge or simply be out of luck.
The real question is why bother with MacOS in the first place?
A Pirate and a Puritan look the same on a balance sheet.
Angry much? ;)
Besides, my point was clear: you can run Windows on any damn hardware you feel like as long as it meets its technological requirements, and the same goes for Linux, FreeBSD, FreeDOS, Minix, and pretty much every OS I can think of, even freakin' Android. Only exception? Apple's "thou shalt only use thy copy on thy Apple-branded computer" OSX.
Now go back whence you came, angry troll, and trouble our threads no more.
No problem is insoluble in all conceivable circumstances.
You need a truck for that.
But evidently not a Mack truck.