Why Developers Are Switching To Macs
snydeq writes "Programmers are finding themselves increasingly drawn to the Mac as a development platform, in large part due to Apple's decision to move to Intel chips and to embrace virtualization of other OSes, which has turned Mac OS X into a flexible tool for development, InfoWorld reports. The explosion of interest in smartphone development is helping the trend, with iPhone development lock-in to the Mac environment the chief motivating factor for Apple as a platform of choice for mobile development. Yet for many, the Mac remains sluggish and poorly tuned for development, with developers citing its virtual memory system's poor performance in paging data in and out of memory and likening use of the default-network file system, AFS, to engaging oneself with 'some kind of passive-aggressive torture.' What remains unclear is whether Apple will lend an ear to this new wave of Mac-based development or continue to develop products that lock out uses programmers expect."
It's Infoworld. What do you expect? They are a Windows-centric publication.
AFS is something else altogether.
recently got into Cocoa programming and for the most part absolutely love it, Apple has obviously put a lot of effort into their system and it shows. However, Apple seemingly skimped on one of the most important, but usually easiest to implement parts of their system: good, up to date documentation!
For instance, in the QTKit documentation is just beyond abysmal. There is little documentation on how to do very common things, such as set your export settings. I had to do a lot of hackery just to figure that one out(and its still far from straightforward), they have typos that have been there for eons, even though I used their feedback form to tell them about it, and perhaps worst of all, they don't even mention many methods that are in the API.
On multiple occasions I have had to go into the header files just to find out what I could do with various classes. I shouldn't have to do this! Compare this experience with say, Javadocs and its night and day. While Javadocs are far from perfect, they are infinitely better than what Apple puts out.
Why would Apple do something like this? It costs them almost nothing to create a lot of these docs, and actually updating them once in a while could save developers tons of frustration. I guess maybe the paid ADC accounts are bit better? Thats really a low blow if they are though....
Furthermore, Apple tends to deprecate APIs without really replacing them with an API with the same functionality. Case in point is QTKit. Its a nice API for what its worth, but there are tons of occasions you either:
a) have to go down to the old Quicktime C APIs(which means your code won't be able to compile in 64 bit and may not work at all on Snow Leopard) or
b) Have to come up with some creative hacks to get the functionality you want.
For instance, in order to get an MPEG-4 formatted to anything but the default size you either have to use an atom container which is 32 bit only, or manually set up a Quicktime export with the settings you want, write some applescript to save that to a file, THEN read that file in as NSData THEN set that to be your export settings(which on Apple's website has the oh so helpful documentation:"Information to come."(That was over a year ago).
Monstar L
I've been using a Mac as a development platform for years. Never had an issue. Just because it's an Apple system doesn't mean one has to use AFS or write Cocoa apps.
I keep hoping that someone will come up with a better replacement, but CIFS/SMB will continue to work until that day comes.
It's called NFS v4. Kerberos for authentication, encrypted traffic, lower overhead, no passwords or password hashes sent -- ever.
My blog
I really like developing on my Apple machine for the most part, but it has a few issues that make it less appealing to me than Linux.
Currently, most of the development I'm doing is using Django and PostgreSQL. Installing PostgreSQL and the required Python libraries on OS X is tremendously painful. It was painful on Tiger and Leopard has made it more so. Macports tries to make it easier, but it could use a lot of work/testing/more work.
Installing the same tools on Linux is so easy, a Windows user could do it.
The author is a moron. He meant AFP, Apple File Protocol. Macs do not support AFS out of the box.
Kerberos for authentication, encrypted traffic, lower overhead, no passwords or password hashes sent -- ever.
Kerberos authentication, encrypted traffic, and "no passwords sent" apply also to NFSv2 and NFSv3; that's all done at the ONC RPC layer.
And all of those are supported by Leopard's NFSv2 and NFSv3 (krb5 = Kerberos 5 for authentication; krb5i = Kerberos 5 with a signature for integrity checking; krb5p = Kerberos 5 with encryption for privacy).
When developing a game for the most popular online phone game store will net you $250,000 in two months, as an independent developer:
http://toucharcade.com/2008/09/19/trism-developer-makes-250000-in-2-months/
Java 1.6 for OS X, has been available for months now. And JDK 1.7 will not be out in a few months either.
As the island of our knowledge grows, so does the shore of our ignorance.
X11 compiles just fine.
http://www.xfree86.org/current/Darwin.html
http://developer.apple.com/opensource/tools/X11.html
http://ftp.x.org/pub/X11R6.9.0/doc/html/Darwin.html
My primary complaint is that most OSS developers expect all Unix systems to be Linux systems. Which means that I have to let Linux software get its hooks into my OS X system in order to get anything compiled. Since OS X is NOT Linux, this is quite an unpleasant process.
OS X runs Unix software. Period. I usually get a host of tools installed first thing on my Mac. Thankfully, this has become less and less necessary over time as Apple has started including many of the most useful utilities up front.
Javascript + Nintendo DSi = DSiCade
Unfortunately, NFS is not safe since it trusts clients. If users need to have root or sudo on their individual machines, they can go out and read any file on the server (well, technically partition, but who has one partition per user on their server?). NFS comes from a time of big iron servers where no end user EVER had root access. The world has changed.
CIFS/SMB may be slow, but at least it got the per-user authentication right. If you want an alternative, something like the Andrew File System (the other AFS), or OpenAFS would be better. OpenAFS exists for Macs.
64 bit intel machines only. If you happen to be a poor shmoe like myself with an older ppc based mac, you're stuck with Java 1.5
Ummm... you realize you can format HFS+ case sensitive, right?
ZFS: because love is never having to say fsck
You can format it to be case-sensitive, just don't try and install Adobe Creative Suite 3, or you will sadly get this message.
From what I understand reading the background of that functionality, the NVidia drivers for mac are a big part of the problem, so they are doing it now as logout feature, after NVidia gets the mac drivers sorted out it will be able to support switching right away.
DEMETRIUS: Villain, what hast thou done?
AARON: Villain, I have done thy mother.
Shakespeare invents 'your mom'
True, but this always works:
> su # to become root
> su otheruser # to become otheruser (no password required, since you are root)
> cd ~otheruser # access otheruser's files
You're also stuck with 1.5 if you want to use SWT, the graphics toolkit behind Eclipse and some Java-based GUI applications. SWT uses native graphics libraries, and the current version uses Carbon. And since Carbon is 32-bit only, SWT has to be ported to use 64-bit Cocoa.
On the other hand, it's not like Apple has to provide the latest JVM/JDK and I'm not aware of any reason why someone else (even Sun) couldn't release one.
Begin Rant
Buddy, you hit the nail on the head. I manage a network of 20+ macs with 2 mac servers. I'm typing this on a mac. I say this to hopefully demonstrate that I'm not a troll or a windows fanboy.
Try maximizing a window on a mac. Minimize a window, then alt-tab back to that app. You get the app, with no window! You then get the 'pleasure' of moving the mouse to the menu bar, selecting the window menu, and hopefully finding the window you wanted.
On some Apple made apps closing the main windows does not close the app, on others (still made by apple) it does. System Preferences I'm looking at you here.
I Spend more time in my day fighting the mac interface than I do getting productive work done. Yes this is an exaggeration, but that is how it feels.
OSX server (both tiger and leopard) fail in such spectacular manners that it would make your head spin. The admin tools crash all the time. Open Directory loves to trash it's LDAP database. God help you if you need to restart your server after an update to iTunes! Make sure all your OD data is backed up somewhere right before the reboot. Oh, and be ready to do a repair on all the filemaker data while you are at it.
If you install FileMaker server on OSX Server it will overwrite your php.ini file with it's own idea of the settings you need. Among those, it reduces the php mem amount back to the default 16 megs. The bundled (by apple) web apps on the server can't run in that little memory. For those that don't know, FileMaker is owned by apple.
End Rant
Seriously though, apple does make nice equipment. It just seems like they don't give a crap on certain issues.
I don't use a Mac anymore, but a colleague tried to use a case-sensitive filesystem and at least one application broke. I don't remember exactly which one it was, but it was part of Adobe's creative suite.
how to invest, a novice's guide
Look, if you don't want to listen to the advisement of what may and may not be interesting to you, then why use slashdot at all? Slashdot hate aside, the whole point is to bring up stuff that matters to nerds. He's saying this stuff doesn't matter. Of course you can make the final decision, but I'm not sure why you trust the slashdot web site to bring up articles that you'd find interesting over people that read them.
In other news, the article is annoyingly devoid of any statistics. I've been reading for years why Mac is a great platform to develop in (and many of the points good), but they don't really pan out as an end result of taking a big piece of the market share.
So unless you show me statistics of a gaining market share, I'm going to shelve this right along with all of the other articles talking about the good points of Macs throughout the years. This article should be named "Why Developers SHOULD Switch to Macs," not the assumption that they're already doing it.
And maybe they are? I can buy that - just show it.
As others have mentioned, it's AFP, not AFS, but the point remains the same. It's slow because it sacrifices speed for goodies like hi-res icons, and remembering icon positions.
NFS is slower yet on OS X, both as a server and a client,
The funny thing is, though, that Mac OS X Server can serve out the same sharepoint over AFP, SMB/CIFS, and NFS. All at the same time. There's no conversion necessary. Just click the checkbox for the protocols you want to turn on. (This includes FTP also.) So why they complain about AFP, when there are other options available with a click of a mouse, is a little puzzling.
:q!
First, if you're really using a mac, you wouldn't say "alt-tab." It's Cmd-Tab.
Second, this has nothing to do with maximizing at all (you rarely ever need to maximize on a mac anyway... it's pretty multi-window friendly). If you minimize a window on OS X, it goes down to the Dock, period. If you want it back, just click on the window in the Dock.
If you didn't want to really minimize it, you could have hidden the application (Cmd-H), and then Cmd-Tabbing to that application or clicking on its icon in the Dock would bring everything back exactly as it was. Or you could put stuff in different spaces. Or you could use Expose to switch between windows.
Same with whether or not closing a window closes the application as well. It's pretty simple... if the application only ever uses 1 window and there's nothing to do when the window is closed, closing the window quits the application. Otherwise it stays open. If you don't like it, you can always Cmd-Q quit everything, which would be the same regardless. And seriously... what are you possibly "fighting" with here? It sounds like you're just compiling a list of old rants, rather than saying anything relevant.
And btw, who seriously installs the update for iTunes on their server? You could just ignore the update (or better yet, delete iTunes from your server... what's it even doing there?)
If you don't like FileMaker, complain to them, or use something else... they're not Apple (yes, I know it's a subsidiary, but it's independently operated).
You're simply used to a Windows paradigm, nothing more. Just because you're used to something one way doesn't make a different paradigm wrong.
Rule of Thumb: 9 times out of 10, if somebody spends their first sentence trying to convince you they're using a specific system they want to criticize, they're probably not using it.
Have you noticed the file system is not case sensitive?
You choose to not have a case sensitive file system and complain about it. I'll leave understanding what I mean as an exercise for the reader. Hint: disk utility.
I develop for windows, linux, freebsd, and os x on a coreduo mac mini using Parallels. I have done a *lot* of science using purely unix tools on a mac box. I build my own gnu replacements for the some of the bsd tools that come standard with mac, like sort, ls, and yacc. I've built almost everything you can think of and compiled .so libraries I wrote on a fedora 6 box as .dylib libraries right on my mac. If you don't think Mac is Unix, you don't know what Unix is or how to use it. I've done hard-core science computation on IRIX, Tru64, Linux, Sun OS, and OS X, going back to '93. I've built on all of these--if it can be built, I can probably build it. So trust me when I tell you that OS X is Unix and that you just have some learning to do. Also, although I don't love everything mac, I do love the Unix side of it.
Just callin' it like I see it.
Well I didn't make them up, I experienced them first hand. I had completely different problems on a Lenovo Think Pad. I Never had a good clean Ubuntu experience. Yet I report such problems except for saying oh this is a problem it may be unique, they just mod me as troll and ignore the problem. That is why Linux is limited to 2% market share.
If something is so important that you feel the need to post it on the internet... It probably isn't that important.