in Uncategorized

I’m going to AWWDC

What… you don’t know what AWWDC is? Well, make sure you’re sitting down because this may come as a shock. It’s the Apple Worldwide Developers Conference. *insert record scratching/squealing tires sound here*

Seeing as how I’m like Mr. Microsoft when it comes to software the most common reaction to this is probably “Woahhhhhhhhhhh, what the…?!?” Well… it’s for the good of the company. Basically MacOSX has become attractive to us over the past couple of years for two reasons:

First, from the server perspective, the platform has a much richer set of APIs for working with PDF content than are available for the Windows platform. Today Mimeo’s workflow is entirely PostScript today. PostScript is great for printers, but sucks for everything else we need to do. So we end up having to cobble together a bunch of third party and open source libraries to solve all kinds of problems because none of them do everything we need. Therefore we’re planning on moving to a PDF workflow instead. OSX’s native graphics API, Quartz, is fundamentally tied to PDF. We know that they have done (and will continue to do) a lot of work to make sure they support every possible facet of the PDF specification. Personally, nothing would make me happier than to move to an XPS workflow, and we are engaged with Microsoft to investigate the possibilities of that, but I just don’t think it’s going to happen because the industry support just isn’t there fore the types of hardware we’re using. Timing is everything and XPS just doesn’t seem mature enough for Mimeo to adopt at this point… I guess we’ll see.

Second, as a client platform, there’s no denying that OSX usage is growing. As a small company with limited resources we kinda had to shrug it off in the past because from a business perspective we were trying to be the best at a very specific portion of the printing business: 81/2x11″ business documents. The people using OSX usually have different printing needs because it is typically a much more creative crowd. 🙂 Well with all the growth OSX has had, clearly it’s not just the artist types anymore and we need to do what we can to give them the power of Mimeo.

What does this mean for me? Well, in the approximately 20hrs I’ve spent working with it I’ve learned…

  • … more about OSX than I’ve ever known about any Apple platform in my life – technically it’s just another *nix machine under the covers so I can use all those fundamentals, still just not a fan of the way the windowing UI works generally, but then again a lot of other facets of the UI work better than Windows
  • the basics of Objective-C – it’s a fun language, has a lot of “funkyness” to it, very similar to COM in terms of memory management, but they have this interesting concept of an auto-release pool which is a stack based automatic memory management
  • the fundamentals of Cocoa – Cocoa is basically the MFC or WinForms of OSX. I know what a NIB is, what outlets and actions are, learned some of the basic patterns used in Cocoa and I’ve put together a working application
  • how to work with XCode – this is the Apple supplied IDE for OSX development which I guess is the equivalent of Microsoft’s Visual Studio, but no where near as nice
  • how to work with Mono on OSX – I use my favorite language (C# of course ), get all the benefits of the BCL and for UI I just use Cocoa#. This has enabled me to do rapid prototyping because I avoid having to code in Objective-C right now.

In the end though I probably won’t be writing the actual software that gets delivered to the desktop, since I believe we’re going to outsource the work to an OSX specialist shop. However, as Chief Software Architect, I consider it my responsibility to understand and talk intelligently about the technologies involved and, ultimately know what is possible and what isn’t.

From what I’ve learned so far, OSX is a pretty nice platform to develop for. Granted I haven’t gotten down and dirty with lower level concepts like threading or IO yet, but, I’m impressed thus far.

Leave a comment

Comment