OSX is the beneficiary of more than NeXTStep core technology. Apple’s new OS also inherited considerable expertise and terrific developers like the OmniGroup. These longtime developers for NeXTStep have been swept into the Apple world along with their preferred OS. In this significantly larger market, the Omnigroup has the advantage of exceptional depth of experience with OSX. OSNews spoke to Manny from the Omnigroup about their experiences so far.1. Can you tell us a little bit about your company?
Manny: The Omni Group was started by Wil Shipley in 1991 when he began working as a consulting programmer for NeXT, Steve Jobs’ company after he left Apple. Within a year he brought in his college buddies Ken Case and Tim Wood, and the three of them decided to form a real company doing NEXTSTEP consulting, as they always believed in the technology and wanted to see it used by everyone.
2. You’ve grown from being few consultants to having your own NEXTSTEP products and now OSX products. How did that happen?
Manny: Over the years Omni did contract work for large clients and wrote a number of applications for NEXTSTEP, including what is now our calling card, OmniWeb. OmniWeb was started in 1994 as a lark by Ken Case, and it was immediately so popular we kept improving it.
When Apple bought NeXT they took the NEXTSTEP technologies and turned them into Mac OS X, and that’s how we find ourselves the most experienced Mac OS X programmers in the business.
Right now, Omni currently employs 11 developers, 2 tech support people, 1 marketing person, and 1 office manager.
3. What features of OSX are you most impressed with?
Manny: Mac OS X offers customers a rock solid BSD foundation with a really cool user interface. It’s totally advanced, yet easy to use and learn.
Everything just looks and feels better with Aqua and integration with the Internet is easier with Mac OS X than with any other OS.
Additionally, Mac OS X’s protected memory architecture really works. You can run your system for months without ever crashing the OS.
4. Is OSX the ideal developer platform?
Manny: OS X is the operating system Omni has dedicated itself to bringing to fruition for 12 years. It has always been our goal to take the amazing object oriented frameworks in NEXTSTEP and get them into a popular operating system, so programmers everywhere can see what programming SHOULD be like.
Once a programmer has used Cocoa (what NEXTSTEP has become), there’s never any question about what the future of programming will be. It’s always just been a question of getting a large enough audience that the revolution can’t be squelched.
5. Can you describe the development experience for OSX?
Manny: Cocoa is not just an amazing toolkit, it offers a new way of approaching programming. It’s so easy to create the basic shell of a program you can literally do it in a couple minutes, and then you can take that shell and just start painting in features. It’s every programmer’s dream: the combination of rapid application development with the speed and reliability of a mature toolkit.
Essentially, what’s great about the environment is you can “mock up” your app in just a couple hours to see if it’s really what you wanted, and then you don’t have to rewrite it to start coding you just start filling in the gaps in your mock up, and pretty soon you are done.
Cocoa is, to us, the best of all worlds: it’s a high level toolkit that encourages beautiful, maintainable, tight code. We’ve found that when porting code to Cocoa it usually gets much faster as well as getting way smaller. One game we ported had its I/O code go from 18,000 lines of code to 800. Obviously, 800 lines of code are easier to maintain and debug.
We find it makes programming at LEAST 10x faster.
6. What can you tell us about your success with developing for OSX? How are your products being received?
Manny: All of The Omni Group’s applications are written in Cocoa, and not only does it make writing them 10x faster, it also makes maintaining and improving them 10x easier, because less code is always simpler to deal with. With a team of only about a dozen programmers, we’ve ported numerous games to Cocoa and written several of our own full featured applications, including OmniGraffle, OmniOutliner, and OmniWeb (which won two Apple Design Awards ).
We’ve programmed in Cocoa and its predecessors for 12 years; we have literally dedicated our company to it, and we’ve never regretted this decision.
7. What has the reception been like from the Apple market?
Manny: Our products have been incredibly well received in the market place. In the short time that Mac OS X has been around, we have already sold over 5000 licenses of OmniWeb. That’s for an application that our competition is giving away for free!
Buy MacOSX Software Cheaper |
Disapointingly fluffy interview. I would have loved to get some examples so I could judge for myself. As is however, ‘it’s the greatest’ just ain’t evidence (not that I doubt it).
Especially when one interviews our marketing weasel. Actually, I was supposed to add more technical content, but I’ve been too darn busy with OmniWeb 4.1.
Anyways, if you’d like to discuss OS X technically, our mailing lists are monitored by a bunch of our engineers, other OS X lovers, and Apple engineers.
http://www.omnigroup.com/developer/mailinglists/macosx-dev/
Yours,
-Wil Shipley
President, The Omni Group
How does Cocoa compare to BeAPI and Qt? Anyone willing to comment (based on experience, of course ๐
Thanks for doing the interview, I enjoy reading about developers, and Omni in particular. Omniweb works great on my g4, keep up the good work!
– Chris
Be API and Qt both are quite well designed object framework. But, they’re written in C++. So, a little bit complicated and difficult to understand and use. Objective-C is very simple and dynamic as well as powerful. Also Cocoa is.
I can’t talk of QT, has I never used it, never seen it.
The APIs are different. Firts Be’s are only available trought C++, Cocoa’s are available trought Java (That really good for the enterprise market) and trhouht Objective C. Objective C has one problem it’s used by Apple and by the GnuStep <a href=”http://www.gnustep.org/information/mission.html“>project</a&…, So you need to learn a specific language to code with Cocoa has you’ll find loads of docs for the OC approcha rather then the Java one. With Objective C porting is an issue, that’s why Apple has worked so hard these last month to bring back Objective-C++ into a useable state.
Objective-c is message based so everyobjet send messages to other object.
Building the Gui of an Application is really easy and speedy with Cocoa, supporting another language in the gui is easy too, something be never did.
hasd for the rest I’ve not played enough with cocoa yet to say something.
I’ve dabbled with Openstep on NT a few years ago. Sure, it’s a nice framework, but in the end it’s just Objective-C with its biggest drawback: No garbage collection (or is there ?). This is the biggest productivity argument for any programming language, so the interview seems to be just marketing bluff to me.
It doesn’t really matter what language you use. Most of the better engineers I’ve known have been able to pick up a new language in a few days, maybe a week. There are some languages that people prefer, but once you understand how to write decent software, you can do it in any language. (I personally prefer Java at the moment.)
Will, I had a look around your site. I get the feeling that your a great bunch of guys and gals and that you truely like writing useful software. Once I can get my old PowerComputing machine to die, and I can upgrade to a Mac that will run OSX, I’ll be buying licenses for OmniWeb and OmniOutliner. Keep up the good work.
Oh, I have a small question about the Omni Source License. (I should email you directly, but someone else here might be interested in the answer.) It isn’t clear if you can use the the code under the Omni Source License in commercial software. In other words, can I write some software using the OmniFramework and include binaries of the OmniFramwork libraries with my application?
Thanks,
geoff
I’m considering purchasing a “blueberry” ibook, 300Mhz w/160Megs of RAM. However, if I *do* buy a mac, I would want to run OSX. Is the little ole’ blueberry capable of that? Or should I hold out for a faster/different one? I’m asking because I can get it for less than $500, which seems to be a pretty good deal.
Thanks ๐
The problem with the ibook won’t be the processor, I run OsX on a G3 350 imac and it works fine. Maybe you need a little bit more memory but it’s so cheap. The real problem is the screen resolution. From what I know, it is only 800×600 on a ibook (firsty generation). I think it’s not enough. You need at least 1024×768 because everithing is big on osX (Font, icons, Dock…).
Otherwise OsX is really cool…
Francois
Cool interview… btw, I like how you did the price grabber link… could you do something like that for pricewatch?
We did not do it, PriceGrabber made it for us (the price comparison shop lives in their servers), when they made us ‘partners’ just 3 days ago (so please click-through to a merchant to support OSNews). ๐
If PriceWatch makes us ‘partners’ too, we will see…
>Disapointingly fluffy interview. I would have loved to get some examples
>so I could judge for myself. As is however, ‘it’s the greatest’ just ain’t
> evidence (not that I doubt it).
the developer tools are free. buy the two cocoa books and prove it to yourself.
-James
Cool!
< I’m considering purchasing a “blueberry” ibook, 300Mhz w/160Megs of <RAM. However, if I *do* buy a mac, I would want to run OSX. Is the little <<ole’ blueberry capable of that? Or should I hold out for a faster/different <<one? I’m asking because I can get it for less than $500, which seems to <be a pretty good deal.
OSX does run acceptably well on an old-style iBook.,but it runs noticably smoother on a G4 processor.If you can get one in good shape for less than $500,that’s a pretty good deal.The problem with the old iBook is in running high-end graphics apps,because of the limited screen size,and the video card.Photoshop does run at acceptable speeds,but if you are using your computer for 3d modelling you definitely need a faster machine.That said in my opinion the old iBooks have the best keyboard of any device of any type that I have ever used.
>Objective C has one problem it’s used by Apple and by the GnuStep >>project, So you need to learn a specific language to code with Cocoa has >you’ll find loads of docs for the OC approcha rather then the Java one.
Objectve C is very easy to learn,if you are already familiar with OO programming it takes about 2 hours,it is a very simple language,and therein lies the beauty,you can spend your time thinking about what you are doing rather than how you are doing it.
> No garbage collection (or is there ?).
No,there is no garbage collection in Objective C,nor is there in C.
I’d just like to make a few quick points:
1. Java is more like Objective-C than C++. True, Java’s syntax is similar to C++, but its functionality is far different:
a. Neither Java nor Objective-C has multiple inheritance, rather, they both have the concept of an interface (multiple inheritance, by the way, takes away from the OO concept, “is a”).
c. Java and Objective-C have dynamic method binding (dynamic method binding, by the way, is another OO concept that C++ missed the boat on).
d. OpenStep (NeXTSTEP v 4) was an attempt at platform-independent development — write your app on OpenStep for sparc, compile it “fat,” and run it on Winders. Well, they never got quite that far with it (b/c Winders didn’t have a “fat binary” concept), but that is where they were heading. I certainly hope I don’t have to make the point that Java is platform independent.
2. It is true that Objective-C doesn’t have Garbage Collection (moment of silence …); however, by using the Foundation Kit, you can use this nifty little class called NSAutoreleasePool. When you have one of these in place, you can send the autorelease method to any object. When the pool gets cleaned up, all objects that were sent the autorelease message are also cleaned up. Not quite the safety net that is Garbage Collection (moment of silence … ), but it does give a little protection. Besides, is Garbage Collection (moment of silence … ) all that it’s cracked up to be? I’ve written Java code up to my eyeballs that avoids Garbage Collection (moment of silence … ) as much as possible b/c it causes quite a performance hit in a realtime application (“what are you doing writing a REALTIME APPLICATION in Java??? — the answer comes from the folks I work for: “Hardward is cheaper than developers” … I HATE that answer …)
As for the OmniGroup — you all rock. I’ve been using OmniWeb for (eegad) more than 5 years, now. When Mac OS X came out I was absolutely STOKED that OmniWeb had been ported (step 1: click on “Applications.” step 2: drag the folder “Internet Explorer” to the trash).
I kinda wish you all were in Denver … I’d love to get a job doing NeXT (IMHO, Mac OS X == NeXT v. 5.0) development again
Argh, I immediately guessed that Manny was a marketing person, and verified it. No one really says you get a 10X coding improvement (over what, MIX?) unless he’s a deadly trained hypemachine.
It’s really sad, since I’ve occasionally pointed out OmniWeb’s OS X install as an example of really good installation. I just started using the Mac to port something, and tried out different software to get the hang of it; OmniWeb’s install was great (if not easily-automated with my level of OS X knowledge), so I emulated it.
Manny did a good job as a marketer, but his claims just lose credibility. Windows users use VB to gain huge amounts of productivity; Unix users use Perl/Python/Lisp. So while the different platforms are asymmetrical, each has high-productivity options if you’re willing to accept lock-in.
As mentioned above, the NSAutoreleasePool offers a sort of garbage collection in the Cocoa API. It is worth noting, however, that an NSAutoreleasePool is automatically created for each run loop when you perform some action so, as long as you use the autoreleased class methods (the ones starting with “+” usually) for most work and manually initialized (read “retained”) objects for the information that needs to be preserved between actions you never have a problem and you get a sort of garbage collection. It is a very logical way of handling this and, since the OS doesn’t have to devine when to deallocate an object, you probably are left with much less system overhead (all the program does is release every object in the pool once a run loop concludes instead of trying to guess what is needed and what isn’t like a Java VM does).
OmniWeb is great, though! I have used it almost exclusively since I got the OS X beta last fall and bought a license a few months ago. Really looking forward to 4.1!
Jeff Disher