Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Core Mac OS X and Unix Programming

timothy posted more than 11 years ago | from the not-rotten dept.

Programming 212

Michael McCracken writes "Finally, a new OS X programming book that isn't just another introduction to Cocoa. This book adds a lot to the available references by covering the system as a flavor of Unix, presenting information on important topics like sockets, multithreading and pipes, which other OS X books leave out. It also includes coverage and sample code for some of the unfamiliar new technologies that have been introduced recently, such as the Keychain, Rendezvous (aka Zeroconf), and using the Security framework to authorize users." Read on for the rest of his review.

If you've been learning Mac OS X Cocoa programming, you might already know Aaron Hillegass through his excellent book Cocoa Programming for Mac OS X, which was one of the first good introductory books on the topic, and is still one of the best available. Information about this earlier book can be found at Both Aaron and Mark are instructors at the Big Nerd Ranch, which offers courses in Mac OS X programming. More information about them and the courses can be found at This book is based on the course with the same name at the Big Nerd Ranch. The book's website and a link to order it online can be found at . Discussion and further information for both books can be found at

Audience and Writing Style

This book is not an introduction to programming on OS X. It doesn't explicitly cover how to use Apple's Project Builder or Interface Builder, or much of the Cocoa or Carbon APIs, except during discussion of code examples. So if you're entirely new to programming or to using Mac OS X, start with a different book such as Hillegass' earlier Cocoa Programming for Mac OS X to get up to speed with using the development environment. This book will leave you behind at times if you are unfamiliar with using the command line, however, the examples are complete enough to follow along by just typing in what's in the book.

Core Mac OS X and Unix Programming does have some very basic material in its first few chapters. They focus on the details of C programming, using the compiler, memory management, and debugging. These chapters will be mostly review for anyone who's developed in C on Unix before, but will be invaluable for programmers who learned to program using Java, for instance. They should also be required reading for programmers who started programming with Objective-C and Cocoa and are still unsure about using "plain" C. If you've ever complained about having to use a C API from CoreFoundation in your nice pure Cocoa application, don't avoid this book -- you need to read it even more.

The book is clearly written and easily understood. The writing is occasionally conversational, in keeping with its history as a course textbook. In the grand history of well-written technical books, it is also occasionally funny. The authors don't try to sell the technologies they discuss, instead giving practical advice that's useful to a programmer who is trying to actually build something. For example, the authors discuss bugs and inconsistencies in the system, clumsy API design and other problems that aren't great ad copy but you will need to know to develop robust applications.

I found this aspect of the book one of the most appealing, that it felt as though I was actually getting down to business. Gems of practical advice that can cut short frustrating problems appear throughout the book, so be sure to read carefully, don't just skim.


Here I'll discuss a few examples of where I think this book really shines. First, the level of detail of the standard Unix APIs and the development tools is excellent -- I learned many immediately useful things in the first 13 chapters. For example, chapter 8, "Debugging With GDB," was not simply a repeat of the online help, but also contained useful tips about how to use GDB more effectively, from using Objective-C specific features to tracking subtle memory errors. Programmers who had only used Project Builder's interface to GDB will benefit greatly from this chapter.

Next, there is pervasive sample code. Each chapter had a complete sample program demonstrating the topic at hand. Much of this code is also available online: see "Online Supplements" below.

Finally, as I mentioned before, the text contains tips and reminders throughout about potential mistakes, tricky problems, and differences between Mac OS X, OS 9, and other Unix flavors. A particularly useful example of this is in chapter 24, "CVS." There is a small but important paragraph that discusses using CVS 1.11 (as used in Sourceforge) with Interface Builder .nib files that can really save some grief. In other chapters, they even include workarounds for system bugs in some of the sample code. This pragmatic approach is really appealing.


In this section I'll mention a couple potential disappointments. You will have to be willing to learn by just reading code at times. Most of the code examples are not explained line-by-line as is the custom in tutorial books. Comments explain tricky code, and the text covers the areas most relevant to the chapter topic, but for other sections, understanding is up to you. I mentioned this because although I feel the code is clear and a fair trade-off was made to fit in a lot of information, the amount of explanation you like is a matter of personal preference, and so you should know what to expect.

Pointers to further reading is another problem. Aside from referring to man pages, there is little attempt to point to good external documentation on any of the more complicated topics. One chapter is not enough to completely cover BSD Sockets, for example, and so a reference to a Unix network programming book would be useful. In fact, every chapter could be improved by a references section, even if it only collected links to Apple online documentation or Unix community websites. With all the practical knowledge in this book, the lack of clues on where to look to answer your own questions was disappointing.

Finally, the cost of the book, at $97.95, is higher than you might expect. I admit that as a student, I would have to think twice about paying this price, although I am sure it would be easily justifiable for professional programmers. I believe that it is worth the price, however, because you would have to buy several other books to cover the same range of topics, and you still wouldn't get the Mac OS X specific information.

Online Supplements

The authors have set up a promising resource for the book at . The site includes the sample code, errata, reader comments indexed by the chapter and topic they refer to, and a general discussion board. There are already some errors listed, and a few pointers to useful documentation and interesting external discussions on mailing lists. The sample code is not complete at the time of this review, but more is being added. This site looks like it will be a useful addition to the book, especially if many good chapter-indexed comments are added. The site could be kept open as a reading companion while going over a chapter in the book. This site's organization is, in my opinion, much more useful and usable than other books' companion websites, including the site for "Cocoa Progamming," which hid its information from you unless you knew which page number was relevant to your topic.


Core Mac OS X and Unix Programming is a very useful book, and even if you've been developing on Unix systems for years, you can probably learn a few immediately useful things by reading it. I recommend it for any serious Mac OS X programmer who wants to know what to read next after all the tutorials that have come out in the last year or so. I suspect it'll become a canonical reference, and may even be in need of a clever nickname. Congratulations to Mark and Aaron on a job well done.

Michael McCracken is a grad student and Mac OS X developer; he says "I have not attended any Big Nerd Ranch courses, nor have I met either author, although I did see Aaron Hillegass in a crowd once." Update: 07/02 17:36 GMT by T : According to publisher AtlasBooks, won't actually be carrying this book, but you can get it right now from Atlas. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.

Sorry! There are no comments related to the filter you selected.

Whoa (5, Funny)

Anonymous Coward | more than 11 years ago | (#6350343)

Be careful, you might actually teach them some good programming techniques.

No articles from michael == good day (-1)

Anonymous Coward | more than 11 years ago | (#6350796)

Please please please let him finally be fired...

Truly Impeachable: +100,000 Hyper-Patriotic (0)

Anonymous Coward | more than 11 years ago | (#6350815)

Read about 43's daring statement here []


0bl1g4t0ry thr0d ps0t att3mpt (-1, Offtopic)

Anonymous Coward | more than 11 years ago | (#6350348)


Paragraph Intros (-1, Flamebait)

Richardsonke1 (612224) | more than 11 years ago | (#6350352)

"Here I'll discuss a few examples of where I think this book really shines...In this section I'll mention a couple potential disappointments."
With all due respect, and I'm not trying to nitpick here, but those really are some of the worst paragraph/section introductions you could possibly use. I know everyone will mod me down for being nitpicky, but I'm just telling you so that you know in the future. It really doesn't say much about your writing quality.

Re:Paragraph Intros (0)

Anonymous Coward | more than 11 years ago | (#6350391)

I suppose you are correct, but who really cares? It really doesn't say much about your reading skills that you can't skim through bad writing, get the gist of things, and leave it at that.

Re:Paragraph Intros (4, Insightful)

sporty (27564) | more than 11 years ago | (#6350399)

No, we won't mod you down. We'll tell you. You are nit picking. All it says about his writing qualitiy is, that he was nice enough to review the book. This is slashdot. It's relaxed and depends on contributions from people.. a lot.

Unless you have something nice to say, say nothign at all. And unless he made a flagrant error, I suggest just commenting on the book. /trogdor

Re:Paragraph Intros (3, Funny)

Creepy Crawler (680178) | more than 11 years ago | (#6350512)

If you can "read" a EULA, I'm sure this is cake.

I understood is point, I didn't say "huh", nor did I otherwise get confused. Sheesh. Even the "Hacker Exploit Papers" have jokes and innuendos spiced about. And they're considered 'professional'.

Re:Paragraph Intros (0)

Anonymous Coward | more than 11 years ago | (#6350615)

Wow... you're my hero. You can nitpick without any effort at all. Do you think you could teach me how to do that? I'd also love it if you could teach me how to be an arrogant and pompous asshole since you seem so good at it.

This is Slashdot, not English class.

Re:Paragraph Intros (1, Troll)

fobbman (131816) | more than 11 years ago | (#6350699)

I don't understand. Are you expecting that the book reviewers be held to a higher standard than the editors of /.?

weird (-1, Funny)

Boromir son of Faram (645464) | more than 11 years ago | (#6350363)

So basically it's the man pages for gcc, glibc, et al, bound up with a pretty cover and sold for $60. There's no way people are going to pay so much for so little content. Oh wait, they bought Macs.

Re:weird (2, Funny)

dema (103780) | more than 11 years ago | (#6350572)

This got a funny mod? Um, flamebit?

When you buy an Apple you get what you pay for, so that's a bad example anyway.

Who mods this stuff?

Re:weird (-1, Offtopic)

Anonymous Coward | more than 11 years ago | (#6350610)

probably the same moderators who modded yesterdays boromir son of faram post up [] . This guy is obviously a troll just look at his past posts.

Re:weird (-1)

Anonymous Coward | more than 11 years ago | (#6350741)

Wasn't Boromir Faramir's brother anyway?

Re:weird (2, Funny)

carpe_noctem (457178) | more than 11 years ago | (#6350597)

For example, chapter 8, "Debugging With GDB," was not simply a repeat of the online help...

Wow, so we didn't even RTFS (summary), did we? ;)

Re:weird (-1)

Anonymous Coward | more than 11 years ago | (#6350616)

glibc doesn't have a manpage you fucknut.

man Pages (2, Insightful)

The Jonas (623192) | more than 11 years ago | (#6350625)

On a side note, I have wanting to see a program developed for the *nix desktop that allows a user to select from all available "man" pages and display them in the active window. This would minimize some time I spend on the command line - not that I mind the command line, but for document viewing, editing, and note-making I would rather have a graphical interface. Let's call it "RTFM" ;) . This may be able to be done through another program and I may just be unfamiliar with its operation. Anyone???

Re:man Pages (1)

carpe_noctem (457178) | more than 11 years ago | (#6350674)

apropos *

Re:man Pages (3, Informative)

krray (605395) | more than 11 years ago | (#6350745)

You mean something like: ManOpen []

Re:man Pages (1)

The Jonas (623192) | more than 11 years ago | (#6350846)

Yes, thank you, just like that. Your linked page states that I must be running OS X. I'm running Mandrake 9.1 - is there a port or something similar - IIRC OS X is BSD based - will it install on my machine with its ".dmg" extension?

Re:man Pages (1)

BenjyD (316700) | more than 11 years ago | (#6350857)

I think xman would do what you want. It's a pretty damn ugly x app though

Re:man Pages (1)

The Jonas (623192) | more than 11 years ago | (#6350897)

thanks - going to check it out now.

Re:man Pages (1)

fuckeverything (525664) | more than 11 years ago | (#6350866)

xman should be pretty much what youre looking for.
comes with pretty much any distro i know.

Re:weird (4, Informative)

Surak (18578) | more than 11 years ago | (#6350762)

Uh, did you even read the summary?

First off, glibc doesn't have a man page. The book isn't $60, it's like $98 and even discounted it's going to be around $75-$80. Secondly, the guy specifically states that the GDB stuff isn't a regurgitation of the man page, which I assume would hold true for other pieces of the book as well.

Secondly, although I have publically stated my fundamental disagreements with Apple about their policies on patents and their general disregard for some of the fundamental concepts behind open source software, Apple makes *great* hardware -- it's *much* better stuff than you can find in value-priced x86 machines. A little overpriced, yes, but you expect that from a strong brand like Apple.

You know it's a great post when it's at -1, Funny (-1, Offtopic)

Anonymous Coward | more than 11 years ago | (#6350879)

Well done, sir. Piss off the groupthinkers but make some of them laugh anyway.

Microsoft port (2, Interesting)

SolidGold (86023) | more than 11 years ago | (#6350367)

It is interesting to note that Microsoft in a previous article said that they had no intention of porting Office to Linux right now, but being that they have ported it to OS X most of the work has already been done.

Re:Microsoft port (0)

Anonymous Coward | more than 11 years ago | (#6350412)

Correct. They had an interest to go to Mac, but they don't have one for Linux.

Even if the work is done, they know it would be corporate suicide. Office is really the only thing that's holding them afloat. Once a truly viable alternative becomes available, then MS becomes irrelavant.

"But, but, but... What about [insert any of the OSS Office apps]?!" They're not "good enough." People want familiarity and the ability to interact with others w/o worrying about compatibility. Nothing else does that. Period.

Re:Microsoft port (2, Insightful)

christurkel (520220) | more than 11 years ago | (#6350419)

It would think its closer to a FreeBSD port with you port to Mac OS X. I could be wrong, however.

Re:Microsoft port (5, Informative)

Halo1 (136547) | more than 11 years ago | (#6350477)

MS Office is a Carbon app. There's no carbonlib for any *nix except Mac OS X out there. Porting it to Linux would mean either porting carbonlib (i.e. a cleaned up version of the legacy Mac OS api + extensions) to Linux, or rewriting it from the ground up (just like the Mac OS X version is almost a complete rewrite compared to the Windows version).

Re:Microsoft port (0)

Anonymous Coward | more than 11 years ago | (#6350484)

Yeah exactly, because we all know that Linux has the same Carbon or Cocoa APIs available that Mac Office is undoubtedly built on... err... hmmm.... wait a minute. Well, so they'd have to redo the UI, but that's not a majority of the work they did in making an OS X version in the first place... er... hmmm... wait a minute.

Re:Microsoft port (2, Insightful)

PhysicsExpert (665793) | more than 11 years ago | (#6350489)

Yes but have you ever used MS office on OSX, it is slow and incredibly buggy (jokes about microsoft aside office on XP is rock solid) and that's with standard hardware and a fast RISC processor to work on, imagine what it would be like under Linux with all sorts of random hardware thrown in there. The real reason they won't port office to Linux however, isn't about speed or reliability but simply because Office on Linux just wouldn't sell. Most Linux users realise that there are good free alternatives like star office and open office which are just as good as Microsoft without needing you pay extortionate prices. Office on Linux would be a commercial nightmare.

Re:Microsoft port (2, Insightful)

Coward the Anonymous (584745) | more than 11 years ago | (#6350628)

"The real reason they won't port office to Linux however, isn't about speed or reliability but simply because Office on Linux just wouldn't sell."

It would sell more than you think. For companies that want to move the corporate desktop over to GNU/Linux but feel that OpenOffice and the other alternatives aren't fit, it would sell like hotcakes.

Re:Microsoft port (3, Insightful)

Anonymous Coward | more than 11 years ago | (#6350731)

I would think that porting Office to Linux would validate the platform, it would be a message from Microsoft that they believe enough in Linux to support it. Porting Office would allow even more people to switch FROM Windows; and that would be the start of Micrsoft loosing control.

Re:Microsoft port (1)

ipjohnson (580042) | more than 11 years ago | (#6350734)

actually I have office for OS X and it actually seems to run fine ... very well if you consider I have 466 G3 ibook.

Re:Microsoft port (2, Informative)

jeremyp (130771) | more than 11 years ago | (#6350748)

I use it every day. With the current patch level (10.1.3) it's not slow (any more so than any other OS X app) and it's not buggy - well I've not seen any.

Re:Microsoft port (0)

Anonymous Coward | more than 11 years ago | (#6350507)

I you'd know what you are talking about... Most of Office is Carbon, so technically, no work has been done to port Office to Unix. None.

Re:Microsoft port (1)

Dashmon (669814) | more than 11 years ago | (#6350513)

Ehm. Native OS X (Cocoa) apps really aren't very close to Linux apps. First of all, they're written in Objective-C, and that'd make it *harder* to properly integrate stuff in GNOME or KDE, I think. But most importantly, the Office ports for OS X use the whole NS (NextStep) framework Apple developers use. There is no way you'll get that ported to GNU/Linux (closed source), which means you either have to use a replacement that hardly works correctly, like GNUStep, or you'll have to build your own libraries. In other words:

It's faster to start with the Windows code than to start with the OS X code.

Same applies to porting MS Office to BSD, or whatever.

Fortunatly... we don't even WANT Office. Do we? :P

Re:Microsoft port (1)

Dashmon (669814) | more than 11 years ago | (#6350531)

Just read Office for X is a Carbon app, not a Cocoa one. Sorry, but I've never used Office for Mac (thank God). Same still goes, only for Carbon, though.

Re:Microsoft port (1)

Gherald (682277) | more than 11 years ago | (#6350522)

M$ doesn't have a whole lot to fear from Mac OS X because it *only* runs on PPC.

But if they developed Office for x86 Linux, Linux popularity on the destkop would rise enough to hurt Windows sales.

ah, no (1)

SweetAndSourJesus (555410) | more than 11 years ago | (#6350526)

It's not a port. It's a completely different product. They tried a direct port with Word 6, and it failed miserably. Mac users don't want Windows ports.

Most of the work is most certainly not done. It's not like we run /usr/bin/word. It's a Cocoa app, not a UNIX app.

Re:ah, no (1)

tbien (28401) | more than 11 years ago | (#6350747)

Actually all Microsoft Office apps on the Mac are Carbon apps (C++) not Cocoa (Objective-C)

ah, yes (1)

SweetAndSourJesus (555410) | more than 11 years ago | (#6350774)

You're right. Don't know what I was thinking.

That makes them even less portable.

Mod Parent down (0)

Anonymous Coward | more than 11 years ago | (#6350546)

What on earth does that have to do with this book review? Nothing about Microsoft, Office, or Linux.


Re:Microsoft port (4, Interesting)

Graff (532189) | more than 11 years ago | (#6350609)

Microsoft in a previous article said that they had no intention of porting Office to Linux right now, but being that they have ported it to OS X most of the work has already been done.

Actually that's not quite true. Microsoft programmed Office for the Mac using the Carbon API and libraries which are part of MacOS. This is a set of APIs which are completely proprietary to MacOS and which bring a program no closer to Linux than a program which uses the Windows API program does.

The only way in which doing a MacOS port of a program brings it closer to doing a Linux port is most programmers doing a port tend to separate out the parts of the program which rely on a particular operating system from the parts that are platform-agnostic. Thus you will most likely end up with a large chunk of the code which can be re-used to add a front end for any particular system type. This is not a requirement for a port however, it is just smart programming. In fact, it is even smarter programming to do this in the first place. Microsoft may or may not have done this, but I'm doubting that they did. From what I understand they basically program the Mac versions of their programs from nearly the ground up.

In programming the Myth series of games, it was often said by the developers at Bungie that the platform-agnostic parts of the games took up about 90% of the code, while each port took up 10% more. So for a 10% investment in additional coding you could sell the game to a another platform. This requires a bit of planning but it is a much better way to program than to do one version for one platform and then have to completely redo you work to get it to run on another. Finally, there is another great advantage to doing multi-platform programming. Often a bug which doesn't show on one platform will show up on another, allowing you to clean up any possible problems before they get you into trouble later on.

Re:Microsoft port (1)

cant_get_a_good_nick (172131) | more than 11 years ago | (#6350713)

PCODE on Linux, YAYYY!!!

Jokes aside, how much PCODE is still left in Mickeysoft products?

early post (-1, Troll)

Anonymous Coward | more than 11 years ago | (#6350384)

early post for hangytits

keychain (3, Informative)

el stevo (580437) | more than 11 years ago | (#6350385)

keychain has been a part of the mac os since OS 8, albeit not it it's current unix-ized form

Re:keychain (3, Insightful)

scrod (136965) | more than 11 years ago | (#6350453)

albeit not it it's current unix-ized form

So how did the keychain suddenly become "unixized"? It's still a part of the Carbon API.

OSStatus KCFindAppleSharePassword (
AFPServerSignature * serverSignature,
StringPtr serverAddress,
StringPtr serverName,
StringPtr volumeName,
StringPtr accountName,
UInt32 maxLength,
void * passwordData,
UInt32 * actualLength,
KCItemRef * item
look unixized to you?

Re:keychain (1)

Creepy Crawler (680178) | more than 11 years ago | (#6350580)

You forgot:


Re:keychain (2, Funny)

Creepy Crawler (680178) | more than 11 years ago | (#6350601)


#include <make_it_look_like_unix.h>

Re:keychain (0)

el stevo (580437) | more than 11 years ago | (#6350799)

a little bit, yeah ;-)

Re:keychain (1)

pudge (3605) | more than 11 years ago | (#6350471)

Actually, it was 7.5. Keychain was a part of PowerTalk, and died with it, to be resurrected later on its own.

Re:keychain (2, Interesting)

markd (36343) | more than 11 years ago | (#6350683)

The Keychain API shown in the book is the Security Framework version (SecKeychain*)

Imagine.... (-1, Offtopic) (686197) | more than 11 years ago | (#6350395)

  • Imagine earning an income that didn't depend exclusively on your own efforts...
  • that continues even if you're not working every day.
  • Imagine being able to wake up in the morning and spontaneously decide to take the day off and play golf, or go the beach with your family, attend your children's activities, etc., and not lose any income because of it.
  • Imagine being able to have and do all the things you want to do.
  • Imagine getting paid for helping others achieve the same.
Take a couple of minutes, right now, to visit my website at and learn how our System can help you achieve your dreams.

LOL (-1, Troll)

Anonymous Coward | more than 11 years ago | (#6350722)

these people are slackers who live in their parents basement. You think they have interest in "work"? Work from home doesn't help... They dont even HAVE a home (duh!!)

C'mon! (4, Funny)

Anonymous Coward | more than 11 years ago | (#6350405)

You can't be "unfamiliar with the command line" and a programmer. Pick one.

Re:C'mon! (2, Insightful)

Anonymous Coward | more than 11 years ago | (#6350436)

Sure you can. Mac people haven't needed a "command line." Converts from Windows don't need one either. I'm a professional Windows programmer, and I don't use the command line.

Re:C'mon! (0)

Anonymous Coward | more than 11 years ago | (#6350506)

Ah.. a Professional Windows "programmer".

Re:C'mon! (0)

Anonymous Coward | more than 11 years ago | (#6350524)

Yes, a "programmer." This is my first Windows job. Previously, I've written apps for HP-UX, Solaris, Linux, FreeBSD, BSDi, NT, and SGI.

After being laid off twice in a year, this was the only gig available.

Re:C'mon! (0)

Anonymous Coward | more than 11 years ago | (#6350600)

So you do know how to use a command line then?

I think you just drove my point home.

Re:C'mon! (0)

Anonymous Coward | more than 11 years ago | (#6350626)

I drove the point home in the fact that if you are using Windows or a Mac, then you don't have to use the command line.

Yes, I know how to use it. I've used Linux since Slackware 0.99.13 (very early 90's). Took 40 3.5" disks to download.

Re:C'mon! (1)

bladernr (683269) | more than 11 years ago | (#6350712)

Well, I've been using Linux since 0.96c+ (hey, if you want to start that war...)

Anyway, you're the AC doing the Delphi to AS/400, right? That's great stuff. AS/400 is one of my favorite systems, and I'm real handy with RPG, systems programming, etc. Alas, these days, 99% of what I work on is UNIX.

Getting back on topic, that is what I always perceived as Mac's weakness: integrating with other systems. Granted, that is an outsiders point of view since, as I said, I've never worked on Mac as a programmer.

That is why I liked their move to UNIX for OS X. I think that could really open up their platform and put them on a better competative foot in the corporate environment. In their traditional market (academia, publishing), back-end integration wasn't so important, but in the enterprise market, it is vital.

I wish I had a crystal ball. I eye a new G4 or G5 all the time, I just haven't quite committed yet. I understand that it can work with my Nec MultiSync 90 monitor now, is that right? I mean, as opposed to the "old days", when I had to have a special Apple monitor (taking up more real-estate on my crowded desk).

Re:C'mon! (0)

Anonymous Coward | more than 11 years ago | (#6350728)

But that wasn't my objection; my objection was that you cannot be a programmer and not know how to use a commandline.

Re:C'mon! (0)

Anonymous Coward | more than 11 years ago | (#6350686)

If you've worked with NT before, you've worked with Windows - unless you meant to say you're working on Windows 95-ME (and they share a lot of common APIs with NT). XP and win2k are based on what used to be known as NT. Even when programming for windows, I've occasionally needed to use the command line.

Re:C'mon! (3, Interesting)

bladernr (683269) | more than 11 years ago | (#6350545)

I have found the command-line essential, even when programming Windows. Even though the Mac (a system I have never been a developer on, but may learn) has a terrific UI, leaving out the command-line would be a mistake, and the author was right to include that content.

When programmers are beginning, it is easy to avoid the command-line altogether, since their projects are probably simpler. I imagine that the author's previous books on introductory topics focused on the GUI.

I am a software professional as well, and specialize in large distributed systems and massive-parallel (I can never spell that word) processing. No matter how good the tools, you can never escape from the command-line for complex systems.

Its been a long time since I've developed single-tier, single-user apps, so perhaps my knowledge of tools in those areas is dated, and you can develop those without command-line usage. Someone else will have to educate me on that.

Re:C'mon! (0)

Anonymous Coward | more than 11 years ago | (#6350577)

Actually, I'm writing Delphi apps. Very fun stuff. Interfacing to an AS/400 DB2 core w/ Interbase and SQL Server. Writing business web apps.

Most fun I've (legally) had at a job.

Re:C'mon! (1)

Just Some Guy (3352) | more than 11 years ago | (#6350942)

AS/400... Interbase... SQL Server... Most fun I've had...

Dear God, I hope you were being sarcastic.

Re:C'mon! (0)

Anonymous Coward | more than 11 years ago | (#6350661)

You're so full of shit.

1. Knowing how to use the command line is a simple matter of memorizing commands. It doesn't mean you're any smarter than someone who doesn't use the command line on a regular basis.

2. Give me one example of when you would be required to use the command line because the GUI didn't have same capability. Chances are if you can think of a reason, then you're using a shitty development environment.

If anything, people who don't use a command line are smarter than you because they're cutting down on keystrokes, thus improving their productivity.

Re:C'mon! (1)

bladernr (683269) | more than 11 years ago | (#6350892)

I am sorry you feel that way. I never said that I was any smarter than anyone else. Making that claim would be presumptiuous of me. I was only saying that in my work in large, distributed systems, I often required the command-line, and anyone who works on those systems would have a similiar experience.

There are many examples. For instance, I once had a program bug that actually rolled the last access times of many, many files in many, many directories forward, causing a serious amount of grief for the OS. I know of no developer GUI tool to fix that, but a quickie little command-line script fixed hundreds of times in a couple (2) minutes of work.

In database programming, people spend a lot of time at the database command-line (isql, sqlplus). Even the GUI for those is just a command-line with an output window. There is no substitute often for hand-crafted database commands.

In the distributed environment, I am often working over slow network-links, and GUIs are just unusable over slow links (try XWindows over a modem sometime). So I write my code in VI (if the link is even fast enough for that... sometimes, I write it locally and FTP it), then I compile and debug using all command-line tools on a remote system.

Then there is my work on the AS/400. There simply isn't good GUI tools there as far as I'm concerned. However, I am just as productive with what is provided. IBM did a good job of development environment on that platform.

As I said in my posting, I work in highly-distributed environments, where, sometimes, even if a tool existed, a GUI is not available.

As a matter of productivity, I've never seen anyone who could work as fast in their GUI editor as I do in VI. For instance, I make use of many of the copy/paste buffers so I can copy several seperate things from one file, switch files, then paste in at different places, with only one "file switch". I routinly set markers around the file so I can jump between them with just 2 buttons. That is more personal accomplishment, I guess, since few people ever learn enough about VI to be quite that productive, but VI and EMACS can be amazingly productive if you learn them.

The same is true with any tool, including GUI tools. After all, tools are only as good as the people using them.

Re:C'mon! (4, Funny)

Just Some Guy (3352) | more than 11 years ago | (#6350923)

If anything, people who don't use a command line are smarter than you because they're cutting down on keystrokes, thus improving their productivity.

Oh, they're so cute when they're first learning!

Seriously, if your idea of "productive" is "uses fewer keystrokes", then your teacher needs to boot you in the butt. Grow, learn, expand your mind.

Re:C'mon! (0, Funny)

GoofyBoy (44399) | more than 11 years ago | (#6350500)

Its about Macs and their own universe.

These people are both "GUI users" and are "unfamiliar with a second mouse button".

How wacky is that?

Re:C'mon! (0)

Anonymous Coward | more than 11 years ago | (#6350553)

Why the hell do people keep saying that about most Mac users? The simple fact is, most Mac users will replace their mouse with something more suited for their function - be it 2 button, 2+wheel, track, etc.

Re:C'mon! (1)

GoofyBoy (44399) | more than 11 years ago | (#6350709)

The simple fact is, most Mac users will replace their mouse

If most of them do change, how brilliant/functional is the one-button mouse?

Re:C'mon! (0)

Anonymous Coward | more than 11 years ago | (#6350736)

YHBT. The key is - you CAN use a Mac with a 1-button mouse, and with a 2-button mouse, and with a 3-button mouse, and with a scroll mouse. You can use either Windows or most Linuxes with a 2-button, 3-button, or scroll mouse. But could you use Windows with a 1 button mouse?

Re:C'mon! (0)

Anonymous Coward | more than 11 years ago | (#6350746)

Sure you could, you could even use windows without a mouse.

Re:C'mon! (1)

KillerHamster (645942) | more than 11 years ago | (#6350828)

You can't be "unfamiliar with the command line" and a programmer. Pick one.

Well, I suppose you could write VB code, but calling that programming is quite a stretch.

Re:C'mon! (1)

demon (1039) | more than 11 years ago | (#6350859)

Sure you can, if you're a VB coder or something. (Yeah, I know, contradiction in terms...)

$97.95?! (5, Funny)

yumyum (168683) | more than 11 years ago | (#6350413)

That'd put a major dent in my crack usage...

Re:$97.95?! (1, Insightful)

Anonymous Coward | more than 11 years ago | (#6350592)

I totally to agree. The one aspect that I'm interested in is the ZeroConf/Rendezvous info (albeit four pages according to their table of contents PDF).

They really should've considered three different books here: the main book that's already available and two other books (the main book split into two volumes). I'd actually buy a volume that's geared toward networking and threading even if I'm paying for unwanted info (I can let it slide to a degree). Instead, I'll likely skim the Rendezvous section without purchasing anything at all, which is a shame but sorry...I'm not *that* charitable.

Maybe I'm using iTunes too much, but I'm a bit tired of paying for unused extras in programming books.

Re:$97.95?! (0)

Anonymous Coward | more than 11 years ago | (#6350757)

It's a course book. You could publish it as three books... but for a one week course?

Haha! Nice Try! (2, Funny)

Greyfox (87712) | more than 11 years ago | (#6350865)

Thought you could pass yourself off as an Apple user did you? We all KNOW that Apple users are pot smoking hippies, not crack smoking executives! Go back to your windows desktop, poser!

$98? What?! (-1, Troll)

Roofus (15591) | more than 11 years ago | (#6350446)

Digital Shoplifting [] , here I come!

Jeezus... (-1, Flamebait)

Anonymous Coward | more than 11 years ago | (#6350452)

So, at ~$97, not only are Macs more expensive than other computers, but the books are as well!

I had a friend go to the Big Nerd Ranch, to study 4D 'programming' (4D is a Mac-specific pseudo-contact-management-account-inventory program that is extensible, but basically sucks ass all the way around. What do you expect, it was originally developed by a French guy. Gay!). So, anyway, back at the Ranch - as expected, this friend was at this ranch, and its basically just a butt-lovefest for Mac programmers. Go figure! Gay! The 2 'guys' that run that place are the worst butt-lovers there.

So, why does MacOSX have its own version of Objective-C, you might ask... have you ever seen the RAD/IDE that Mac sells for 'programming' in 'cocoa'? Its basically VisualStudio for mac-heads - drag and drop everything, no code typing necessary. Oh yeah, and the resulting apps suck sweaty nuts. Gotta love it- Mac keeps everything so 'simple' that even the programmers don't know how to actually program. Thanks Steve!

Thats probably why this book is so expensive - it actually has 'code' in it, so those Mac 'programmers' will think its really extra complicated, unlike their nice drag-n-drop chocoloate programming IDE.

Once more for the home audience:
Macintosh === GAY

mod parent UP +5 "THE FREAKING TRUTH" (-1, Troll)

Anonymous Coward | more than 11 years ago | (#6350574)

Macintosh and Apple are crap.

Why does this get modded as flamebait?

Be objective - you'll then see that Apple is for shit. Parent post just points that out very eloquently.

Re:Jeezus... (-1, Offtopic)

Anonymous Coward | more than 11 years ago | (#6350784)

Yeah... and I cant believe these fuckers are supporting stuff like Mandrake from France! We should *NUKING* france, not buying their "me-too" SHIT!!!

Grand History? (0, Funny)

VP (32928) | more than 11 years ago | (#6350456)

In the grand history of well-written technical books, it is also occasionally funny.

I hope the reviewer meant "grand tradition," although I don't see how this cliche fits here...

Aaron Hillegass as an instructor (5, Informative)

blakespot (213991) | more than 11 years ago | (#6350462)

I am approaching the end of Aaron's previous book, Cocoa Programming for Mac OS X, and can say that throughout, it's as though he is sitting there beside you, casually instructing you as you move through the work. An excellent introduction to Cocoa, it has given me a fairly solid graps of the concepts that make up Cocoa development (which began in the late 80's with NeXT) and I have made some real strides on my own, veering from the courework in the book. Goes far beyond some of Apple's cryptic guides I've encountered.

Oh...and do yourself a FAVOR and download Cocoa Browser [] before you even lay down a single line of Objective-C. The ONLY way to access the frameworks references.


Just wondering... (4, Interesting)

rampant mac (561036) | more than 11 years ago | (#6350464)

Those WWDC people who have access to Apple's upcoming OS, Panther...

How relevant will this information be with Panther merging to BSD 5.0 userland and the new Xoode environment?

I can't seem to justify the price for this book ... yet.

Dear Apple (-1, Troll)

Anonymous Coward | more than 11 years ago | (#6350478)

Dear Apple,

I am a homosexual. I bought an Apple computer because of its well earned reputation for being "the" gay computer. Since I have become an Apple owner, I have been exposed to a whole new world of gay friends. It is really a pleasure to meet and compute with other homos such as myself. I plan on using my new Apple computer as a way to entice and recruit young schoolboys into the homosexual lifestyle; it would be so helpful if you could produce more software which would appeal to young boys. Thanks in advance.

with much gayness,

Father Randy "Pudge" O'Day, S.J.

Dear Father Randy O'Day (-1, Troll)

Anonymous Coward | more than 11 years ago | (#6350518)

Dear Father O'Day:

Thanks for your letter. Being Catholic myself, I know exactly what you're talking about! It has always been our plan here at Apple Computer Inc to revolutionize personal computing with our high-quality and highly gay products.

I'm happy to answer your letter by letting you know that YES we will be releasing an entire hLife ("homo-life") software line. You'll be able to recognize it in stores by the small stylized logo depicting a large cock entering a tight anus with an Apple logo on it. ("Suddenly it all comes together" indeed!).

Anyway, I hope you and other members of our community will join us on our mission, and purchase the exciting new hLife boxed set. Only the boxed set comes with translucent cock rings!


Harry Rodman
Homosexual Liaison Services
Apple Computer, Inc.

Confused (4, Funny)

Anonymous Coward | more than 11 years ago | (#6350536)

I see Unix in the title but there is no mention of SCO. Just what in the hell is going on around here?

Re:Confused (0)

Anonymous Coward | more than 11 years ago | (#6350735)

SCO? Bah!

Good News... (4, Informative)

DoctorPepper (92269) | more than 11 years ago | (#6350619)

... If you have a Barnes & Nobel reader's advantage card:

List Price: $97.95
Our Price: $78.36
You Save: $19.59 (20%)

Readers' Advantage Price: $74.44

(OUCH!) This looks to be one book I'm going to have to skip. Bummer.

Proprietary/Design flaws (-1, Troll)

Anonymous Coward | more than 11 years ago | (#6350730)

As long as I need Apple-Unix-Programing-Books besides just Unix-Programing-Books I know that Apple-Unix has still proprietary/design flaws compared to just Unix.

I don't spend 100 bucks on a book that pollutes my brain with non-Unix thinking.

Yet another ... (0)

spiritraveller (641174) | more than 11 years ago | (#6350782)

How long till SCO sues the author for leaking trade secrets?

...SCO lawyers start your engines... (2, Funny)

the_webmaestro (570338) | more than 11 years ago | (#6350811)

will they sue these guys for having Unix as part of the Book title?

sockets? on OSX? wow!!!! (0)

kill_the_sexplayer (641412) | more than 11 years ago | (#6350851)

Why don't the other books on OSX cover topics like sockets, and pipes? Well because its all been done before. Did Apple add new functionality to the sockets API? I dont think so. Its pointless.

the price (2, Informative)

Anonymous Coward | more than 11 years ago | (#6350943)

I plan on buying this book when I get the cash, but from talking to Aaron last week at WWDC, the price is that high is because it's basically the course material for the classes they have at the Big Nerd Ranch. Of course...I can't afford the classes, so I'm going to get the book.

mac problem (-1, Troll)

Anonymous Coward | more than 11 years ago | (#6350975)

I don't want to start a holy war here, but what is the deal with you Mac fanatics? I've been sitting here at my freelance gig in front of a Mac (a 8600/300 w/64 Megs of RAM) for about 20 minutes now while it attempts to copy a 17 Meg file from one folder on the hard drive to another folder. 20 minutes. At home, on my Pentium Pro 200 running NT 4, which by all standards should be a lot slower than this Mac, the same operation would take about 2 minutes. If that.

In addition, during this file transfer, Netscape will not work. And everything else has ground to a halt. Even BBEdit Lite is straining to keep up as I type this.

I won't bore you with the laundry list of other problems that I've encountered while working on various Macs, but suffice it to say there have been many, not the least of which is I've never seen a Mac that has run faster than its Wintel counterpart, despite the Macs' faster chip architecture. My 486/66 with 8 megs of ram runs faster than this 300 mhz machine at times. From a productivity standpoint, I don't get how people can claim that the Macintosh is a superior machine.

Mac addicts, flame me if you'd like, but I'd rather hear some intelligent reasons why anyone would choose to use a Mac over other faster, cheaper, more stable systems.

Load More Comments
Slashdot Login

Need an Account?

Forgot your password?