OS X Quotes. These are all just raw quotes, copied from email.

***Eric Soroos, http://www.wiredfool.com/, developer at Social Ecology, http://www.socialecology.com/

The tools are there. I have less success compiling things from the net than I do under linux, but then I'm not sure how much trouble I'd have on a comparable Free/Net/OpenBSD system. ./configure typically needs hints that it's a ppc/darwin system. I've had cases where I've had to hack makefiles to reflect paths to the java libraries. The .dylib extension also confuses makefiles. I've had more success with applications than with libraries.

Osx is certainly a new target for porting all of the accumulated unix software out there. The situation has also gotten a lot better with each release.

If I was doing scripting type pogramming, php/perl/shell, or java, I'd certainly be on OSX. If I was doing C/C++, then I'd at least be targeting OSX as well as Linux. But most importantly, if I had a laptop it would be a tiBook with OSX.

***Nicholas Riley ([email protected])

Coming from being a Mac user (since 1986) and a Unix user (since 1993 as user, and 1995 as administrator)...

Programming on OS X is a lot of fun. Cocoa is very enjoyable to use, even if the documentation is lousy. I'd never programmed classic Mac OS much outside of programming environments that provided some degree of crash protection (THINK Pascal, Microsoft (Quick)Basic, HyperCard/SuperCard, VisualWorks, Java, AppleScript, Frontier). The changes to Carbon are good as well, while additions such as CoreFoundation.

OS X is a better Unix than it is a Mac, mainly because the OS foundation has had a lot more maturing as Unix and Next/OpenStep than it has as a Mac. The parts that are new are mostly immature, buggy, and often hard to use.

The thing that's surprised me about OS X has been how much I've been able to move to it as a Unix: the XFree86 port is solid and reliable, something I use every day, and I haven't touched my "real" Unix box in months. Fink takes my favorite Unix packaging system, Debian's dpkg and APT, and moves it to OS X while simultaneously improving upon it. Programs like TeXshop, which combine benefits of Unix (robust, free, TeX support) with OS X's benefits (native PDF rendering) are great to see. Archetypal Mac applications like BBEdit have moved to embrace the Unix side of things, with great results such as Perl and shell integration.

The main issues with OS X as compared with Unix or Linux have to do with OS X's use in heterogenous networks and as a server. As a standalone workstation, it's pretty usable. Sun, IBM or Microsoft can look at OS X and laugh, justifiably so. There's no large-scale multiprocessor support, no journaling file system, no logical volume management, no IPSEC or IPv6 support, and no backup software (!). You can't split an OS X installation among partitions easily. The NetInfo, NIS, NFS, SMB and Kerberos implementations need lots of work, not to mention a user interface.

So, why don't I like it as much as a Mac? The interface doesn't show the same degree of attention to details, to testing, to _caring_, that I've come to expect from Apple. Here's just a few that come to mind:

- When you eject a disk that has files in use, it doesn't tell you what application and file is using it any more.

- File extensions suck, there are many better solutions (some of which were implemented in classic Mac OS and dropped, e.g. the Translation Manager).

- Zooming windows in the Finder is still broken.

- Help is slow to respond, horrendously underfeatured (no index?), and inconsistent. This abomination from the people who brought you Apple Guide?

- Printing has taken a gigantic step backward compared with LaserWriter 8 and desktop printing, and especially compared with QuickDraw GX printing.

- Despite improvements, the interface is less usable from the keyboard than was true of 9.x (and just look at the "Full Keyboard Access" tab in System Preferences for an example of horrendous, slapped together, UI).

- Many behaviors have been changed for the worse, with no seeming justification other than "it looks cool". The dock is not a replacement for windowshade, application launching, application switching, the control strip, and everything else under the sun. Or consider the use of a lighter version of the highlight color to indicate that a selection is in the background. I can't tell the difference between dark yellow and light yellow, I don't know about you. The previous use of the outlined selection was much better. Or consider the use of no background color when dragging text in Cocoa, or icons in the Finder - same issue.

- Everything is still way too slow.

I still can't imagine my parents using 10.1.

***Gabriel Ricard

I used to work a lot with Linux. I started out with a Mac Quadra 700 running NetBSD, then a PowerComputing PowerCenter 132 running one of the earlier incarnations of LinuxPPC. I spent a lot of time running Linux on my PowerBook G3 also.

Now, about Linux and OSX... I had been using Linux on Macs (on my machines) and PC's for quite some time. LinuxPPC and YellowDog were pretty good distributions. I tried out Debian for a while too, and it was great. The thing is, they're all pretty much the same. It's Linux. You install it, spend a few hours configuring the system to your liking and then you can actually use the system, unless you hit a snag... I hit a snag with debian on an iBook 366. I never could get X running. At that point I had already been using MacOS X since the public beta. I switched over to using OSX all the time after installing the beta.

Development with Linux is quite simply, much more of a chore than in OSX. But that's circumstantial. In Linux I was using Makefiles, trying to find my way through the autoconf/automake system, etc. One of the best development tools for writing graphical apps that I used was glade. Glade (in case you're not aware of it) is in some respects like Interface Builder for OSX, although much less powerful. Glade lets you develop an entire user interface for an application using the GTK+ widget library. It probably supports Gnome now too, but I'm out of touch with it so I wouldn't know. My experience with developing graphical apps on Linux was not very deep. I played with GTK+, and that's about it. I never touched Motif, Qt, or any of the other graphical widget libraries layered on top of X11.

The one thing I like the most about development on OSX is the sense of stability. Not in the OS itself though. In the development environment, the APIs, etc. Sure there are changes now and then, and that's ok. But what is absolutely wonderful is that I don't have to install a new Cocoa package every few weeks or so. The Cocoa frameworks in OSX are very well designed and developed. I guess that's a big thanks to NeXT. Although the documentation is not really up to par yet for Cocoa in OSX. On Linux, you've got a million and one choices of how to develop your application. On OSX there are two currectly. Carbon or Cocoa. It's nice to not have to make so many choices. I suppose some may label that as a limitation, but for an end-user it makes it much easier to use.

I love Project Builder and Interface Builder. I love using Objective-C. It's so easy to use and clean (compared to C++, which is a beast). Java is great too, but I hardly use it due to the bloat/complete-lack-of-performance factor. I know Linux has CodeWarrior, and so does OSX, but it's also not free. For being a free, built-in IDE, PB and IB are incredible. I believe Qt has a good IDE that can be used with KDE ( I think ? ). I never really cared for Qt that much. What I love the most about PB and IB is that I don't have to write a single line of code to create the interface. I just use IB to create the interface, write the classes and their selectors that the interface is attached to in IB, and build the app.

I suppose if someone actually spent the time, and put together a decent Linux distribution with all of the defaults set for you, and damn good hardware detection (especially in regards to the display for X), it could be as good as Mac OS X. I'd place my bets on Mandrake being the one to pull off a feat like that. All of the distributions seem most oriented towards providing a platform for running servers and workstations. If some group of people sat down and took the time to look at how MacOS X works, they could easily create a Linux distribution that could mimic it's functionality. And if MacOnLinux actually supported booting MacOS X someday, well, I'd be pretty set with that.

One other thing that I like about Mac OS X is that it's not an open book. I don't know how everything works like I do with Linux, and I can't really ever find out, but that adds intrigue for me. I like picking it apart, learning about NetInfo, the system preferences, etc. It's interesting to look at what Apple did to graft MacOS onto NeXTSTEP/OpenStep.

Just Gabriel Ricard is fine. I just do development in OSX in my spare time. Full time I do web development with PHP. I'm just your average hacker/coder I guess.

***

***Dan Wood, http://www.karelia.com/dan.html

I used Linux at work for quite a while. I like Mac OS X because it's a good UI. I never got into the various X-window managers on Linux. But now I can do unix-y stuff from the command line like I could in Linux, but I also have a lot of good GUI tools (text editor, development environment, etc. -- I hardly have to use vi and makefiles any more....

***Paul Guthrie

I run both and so have some experience (ran NeXTStep as well before Mac OS X and Linux since '94). The real issue is what sort of apps you are writing.

If you are writing a straight command line app in C or C++, they are equivilent: Mac OS X = BSD, and BSD is pretty much as good as Linux for this stuff. There are some exceptions, mainly when you need to get into multi-threaded apps, apps that access kernel data structures, etc when you actually need to use Mach calls instead of directly BSD on MacOSX.

If you are writing web apps, again, they are equivilent: PHP, Java, Perl work on both. No problems, except there is a dearth of database connectivity currently for OSX. I'd give Linux the edge merely because of more open-source tools work out of the box.

If you are comparing writing GUI apps, then this is a different thing altogether. My belief is that the OSX environment is miles ahead of developing for the X-windows environment. Of course, you can run X on OSX (XDarwin), but the native Quartz display model, plus Interface Builder as the CASE tool allow for amazing apps to be developed in a much shorter time-frame IMHO. Sadly, I haven't been able to develop a single app which is GUI intensive for both environments to have any sort of real numbers, but I have developed on both X and OSX, and I prefer the latter plus believe I can do things quicker in the latter. Now, I have to admit, I haven't used some of the new Java integrated development environments, so I can't talk about how much better they would make things.

***Brad Cox, http://virtualschool.edu/cox/

I've used unix for decades and linux for about half that for teaching and then developing the software at http://virtualschool.edu/mybank. I've used Macintosh for about the same time, mainly for word processing and email. Software development was never an option because of the primitive support for Java. Then came OSX.

When I first installed 10.0.4 this summer, it was too slow and buggy to take seriously. But with the upgrade to 10.1 this fall, I'm doing more ond more of my work on OSX and using Linux less and less. The main inhibitors is getting familiar with fink/apt-get and the package system as an alternative to rpms, and OSX still doesn't hold a candle to linux for speed.

The big draw is user interface consistency. CMD/C is copy and CMD/V is paste everywhere, unlike that cheesy select for copy/middle click for paste of linux/X which often does nothing at all. And BBEdit 6.5 is wonderful, steadily drawing me away from vim. Desktop apps work flawlessly, unlike flakey wannabes like Abiword and Staroffice.

***Graeme Hiebert

I very much prefer development on Mac OS X over Linux, for the following reasons:

1) Having a single point of control, there isn't the same problem with library conflicts. On Linux, I always have to be concerned about what versions of system libraries the end users will have, whereas on Mac OS X I know that it will be upwardly compatible.

2) Objective C is a very cool language, especially in conjunction with the Cocoa framework. A complete GNUstep would be a great development environment, too, if it were a part of all Linux distributions, and didn't require downloading of several libraries just to get it installed.

3) Bundle/library loading in Mac OS X is much more solid than in Linux. The simple two-level namespace takes care of a lot of problems that I have with other Unices and namespace pollution when loading dynamic code.

4) Project Builder is a very nice IDE, and Interface Builder is an amazing piece of work. Prior to Mac OS X, I've been pretty much a makefile guy, but I rarely use them any more. (Even outside of Mac OS X, I've switched to "jam", because makefiles are such a bother to maintain for large software projects.)

5) Java is integrated with the operating system, and is always there. I can just assume that the end user will have it, and where the libraries are.

6) The whole idea of a framework bundle is SOOOO much more convenient than setting include paths, listing link libraries, and arranging to have the LD_LIBRARY_PATH set up correctly at runtime.

7) The user interface is miles ahead of where X11 can ever dream of being. Movements are fluid, everything looks good, and it all (pretty much) runs consistently.

I find that it does take a little longer to construct a piece of software on Mac OS X than on Linux, but in the end it's worth it, because it is a far cleaner (i.e. less hackerish feeling) result.

***Steve Dekorte

I prefer OSXS for both web scripting and app development. The app dev tools(InterfaceBuilder and ProjectBuilder), the web server administration tools(ServerAdmin) and the user interface are light years ahead of anything I've seen on Linux. Though Linux may still be a better server OS depending on the application.

***Jared ''Danger'' Earle, Sysadmin/Designer, Nightfall Games

I recently removed SuSE Linux from my PC and turned it into a pure Wintendo games machine. Why? Because OSX does everything I, as a sysadmin, need. Oh, and its prettier too.

Linux is great as a concept, but with OpenSource, you get the cool stuff (DVD Players, MP3-this-that-other) but no-one wants to fix the less glamorous aspects. OSX has a commercial company driving it and some of the best BSD people out there making sure it all works.

And, because it's a Mac, it ... just ... works.

***Avi Cherry, independent freelance developer

Well, I'm a MacOS developer and do most of my server-side work on Linux. I think MacOSX is an excellent platform for doing unix development on. I've found that as a unix, OSX is very 'plain vanilla'. There are very few problems with porting between Linux, BSD and MacOSX, particularly in comparison to NeXTStep and OpenStep, which were a pain in the ass to port to due to incompatible compilers and tools. The IDE that's included with it (ProjectBuilder) is fairly nice, though it uses jam for doing its build rather than makefiles (this is a recent change). There is a working X implementation based on XFree86 that runs in either rooted or rootless mode. All the development tools are included in OSX on a separate CD.

Apple basically completely replaced the UNIX layer of NeXT with the userland of FreeBSD. I believe they also did some major work on integrating their changes of gcc back into the main port, also allowing them to have a fairly modern version of gcc. Apple also has made a commitment to keeping their BSD layer up to date with FreeBSD. They also now have a certain amount of control over the direction of FreeBSD since they just hired the lead developer. :-)

I work mostly on desktop applications on MacOS X using a combination of C, C++, Objective-C and Java. For linux, I do a lot of web development work using Java, Servlets, JSP, PHP and (using OSX as a development platform and Linux to deploy) WebObjects. I use a combination of GUI IDEs and plain old command-line tools. This includes CodeWarrior, ProjectBuilder (Apple's included OSX IDE) vim and others. Since I'm rarely directly in front of the linux machines I use, I tend to not bother with XWindow, since the linux 'desktop' really pales in comparison to MacOSX and the context-switch between it and OSX is not really worth it for me, so I stick to the command-line.

So, all in all, I think OSX and Linux make a great combination. Linux makes a great stable, compatible server platform that runs on commodity hardware. OSX makes a pleasant development platform, since I have access to excellent IDEs, text editors and other tools, while at the same time being able to recompile and deploy on Linux.

***Joe Block

I've been using linux since kernel 0.99, and Macs since the beginning. Mac OS X has been a godsend for me - easier to install & configure than Linux, same UNIX meat underneath. It's nice to be able to stick a CD into a machine and have a working unix in 15 minutes that has sound and GUI working 100%.

Plus I can run commercial applications. It's very nice to be able to be working in Photoshop in one set of windows and have a compile session going on in a terminal window in the background.

I mainly do python work for database CGIs lately, but I'm looking forward to learning Cocoa so I can crank out some tools.

***Gary Lang

My experience is pretty simple. I chose OS X because it was a FreeBSD box that ran Office and had a professionally designed user interface system with compatibility with lots of commercial software that has been tested, compatible with the other apps on the platform and so on.

That is to say:

a) it compiles and runs everything I used on LINUX, including to my surprise XWindows programs such as GIMP b) it runs all my scripts c) it lets me do the same development I do on LINUX, in the same style with the same tools.

But:

d) it runs Office - I have zero file-sharing/mailing problems with the many many Windows people I work with (including myself)... the first Office for UNIX now. e) the clipboard actually works with no trouble f) the printer drivers are actually there and work g) the user experience is a joy instead of a joyless clone of Windows.

Part of the reason I chose this environment is that I am simply tired of looking at Windows which is actually a good OS, in my mind. I am just tired of it.

So if I am tired of looking at Windows, why wouldn't I be tired of looking at a set of public domain user experiences that only strive to look like Windows with minor changes, with a clipboard that only partially works, from which I can't print without a hassle, let alone handle videos and photos with manufacturer-supplied drivers.

The way I see it is that there is no downside, only upside. I make videos of my family and it was no work at all to convert them to QuickTime and upload them to iTools. Yes I am capable of installing drivers (and writing them for that matter) but I've got more interesting software to write than that which has been written already - just not on LINUX.

Oh yes, the machine itself is beautiful, which I cannot say of a garden variety Dell or other PC clone.

They were the first cmmercial os to fully embrace SOAPO and XMLRPC. You can integrate apps tunning on OS x ith ones running on any other platform, including Windows, Solaris, Palm, Linux all the popular open source scriping envriomnents incoludin tcl, php, python, perl, java. the first OS that has it baked in.

Also the first Unix with an end user UI.