Vista vs OS X is not important
“Vista Re-Introduced (as OSX)” vs. “Developers, Developer, Developers..”
: “But this stings a bit… Three short videos of from Bill Gates’ Windows Vista demonstration at CES. Well, it’s Bill’s voice, but the video has been replaced with demonstrations of the same features on Mac OSX, which was released back in 2002.”
Vista Could Be So Much Better:
“From reading other blogs, it seems many developers are unimpressed with the sheen of Windows Vista, the next version of the Microsoft operating system. “
I’ve seen the videos that Jon is referring too, they are pretty funny. Not all of the features shown were in the version of OS X that was released in 2002. In fact, most of them (Dashboard, Spotlight to name two) weren’t available until Tiger. The live previews and Expose have been around for a while. When you use OS X, these features get so ingrained into your workflow that you start to hit the keystrokes no matter what system you are currently working on. I’m always hitting F10 on my WinXP Pro machine at work and expecting it to do something. I know there are third-party apps out there that simulate Expose on Windows, I’ve tried them. They run like 2 legged dogs compared to the real thing. It’s just not the same.
See, it doesn’t matter what features are in OS X or in Vista. It doesn’t matter if Microsoft demoed desktop metadata search before Spotlight was ever announced. It doesn’t matter if “Aeroglass” looks better than “Quartz”.
Microsoft’s biggest enemy is itself. Even if Apple did copy Spotlight from Microsoft, Apple shipped it first. I know it’s “hard to turn the battleship”. The users don’t care. I don’t care. I know you have to test every new feature against every language in the world. I don’t care. The users don’t care. If you are second to market with a feature, you look like you are lagging. Even if internally you conceived the feature years before your competitor. You look like a copycat. Microsoft needs to change it’s shipping mindset. It needs to be able to turn around features faster. Apple users buy a new version of their OS for $129 almost every year? Why? Each version has new features in it. For both developers and end users. 10.0 brought Cocoa for devs, protected memory for the users. 10.1 (Puma) brought DVD playback as well as significant performance increases. 10.2 was a biggie. Quartz Extreme, a new Finder, Rendezvous , support for Windows networks. 10.3 had Expose, iChat AV, and Filevault to name a few. 10.4 brought several “Core” technologies to the developers. Core Data and Core Imaging. Users were treated to Spotlight, the Dashboard, Smart folders, and the Automator. In that same amount of time, Microsoft has shipped 1 version of it’s flagship OS, Windows XP, to it’s users. (I know server 2003 came out too, but is your Aunt Tilly or Uncle Jed going to run server 2003 at home?). Name the big user facing improvements to Windows between Windows 2000 and Windows XP? More stability, security (well with XP SP2 at least), and the Luna theme. All of the applets, as Jon notes, have stayed about the same. Vista will add in RSS all over the place, about a year after Tiger. Still nothing about podcasting support, either creation or consumption. While Apple is shipping updates to their iLife products that enable Aunt Tilly and Uncle Jed to put our the “how to bake a pie” podcast. How many Apple users will actually USE that stuff? Probably not many, but more than if it wasn’t present and they had to cobble together a solution from third party tools.
Sure Apple has a tiny, small percentage of the market that Microsoft does. But ask yourself, who’s users are happier with their choice? Why, because even if they just care about making money it APPEARS that Apple cares more about their users. They fan their userbase like a small flame and try to grow it. They ship features that are user facing much faster than Microsoft, or almost anyone else for that matter. It’s the one thing that has impressed me the most about Apple products. The focus on the consumer and the ability to quickly turn features out to the public. That’s something Microsoft needs to work on.
I’ll be buying from the Apple store
Looks like I’ll be making at least one purchase from the Apple store in the near future, probably within two weeks. My freakin’ battery in my iBook has decided to roll over and die. Now I get about 45 minutes worth of use out of it between charges rather than the 2.5 hours I used to get. It’s been a quick death too, just started happening over the past couple of weeks. I’ve been ripping some movies to play on my Palm during my commute and it’s required me to leave the iBook running overnight sometimes. I wonder if the heat from the processor/charger circuits has damaged my battery? With my next battery, I won’t let it run hot like that for a long time.
Macworld
Well, it looks like most of the rumors were true. They are shipping the first iMac with an Intel processor. Updates to iWork and iLife that “get” RSS, podcasting, and blogging. Pretty impressive. It’s one thing for small developer teams like Flickr, Odeo and so forth to ship products quickly. It’s another for a company like Apple or Microsoft to ship them.
update: hmm, looks like the iMactel is going for the same price as the PPC iMac. That’s pretty lame.
Interesting: Macbook Pro. Intel based Powerbooks. Wow, dual-core too. HOLY CRAP, 2 GRAND. You’re safe for another year my little iBook.
Ahhhhhh, another Macworld
It’s that time of the year again. Macworld time. Where the Apple faithful frantically hit the refresh button on their browser on the various live update sites which attempt to provide the MOST current news from the Macworld Jobs keynote. Where the flock hug their old Apple computers tightly and say, “I’ll always love you old computer. No matter what new Mac they announce.” knowing that today they will know the exact moment their computer has become obsolete. See, Apple computers have the unfortunate knowledge of the date of their death. The 2nd day of Macworld every year.
PC versus Mac lines of code
I found one interesting stat in the Phanfare blog.
The Mac version is not entirely finished yet, and is missing key features that the PC version already has. Roughly eliminating the PC code that has no Mac counterpart yet and any open source, the Mac client is 44,973 lines and the PC version is 55,736 lines.
Depending on how they did the counting, I thought it was interesting that they wrote about 11,000 fewer lines of code to port their application to Cocoa and Objective-C.
XCode and Visual Studio go head to head
Brian Goldfarb's Blog : XCode and Visual Studio go head to head: ""
I've been using Visual Studio since version 4.0 (32-bit, not 16-bit thankyouverymuch
) and I've just recently started working with XCode 2.1. So I can chime in a bit.
Up until Visual Studio 2005, I'd have to say that Interface Builder, for all of the problems that these guys are reporting with it, wins hands-down over Visual Studio for helping me design a nice UI. It was interesting to NOT have to fight the designer while laying out controls. IB provided me with rules and snap-tos that complied with the Apple UI guidelines while Visual Studio made me try to line things up using by eyeball or using the clumsy "Format" menu.
This is how they describe adding a button to your app in Visual Studio.
1. Drag a button onto the window
2. Double click the button
3. Write code
Here's how it usually goes for me.
1. Drag a button onto the window
2. Double click the button
3. Write code
4. Remember that the buttons name is set to "buttonx" where x is the number of the last button with the name "buttonx".
5. Go find and replace all instances of "buttonx" with the new name in my code.
That being said, the experience they describe when using XCode is very similar to my own. Except that I had professional Cocoa/Mac developers teach me how to use XCode. Their advice was to set up all of your classes first, IBOutlets, methods, etc... Then go into Interface Builder, create your UI, and connect the buttons.
XCode itself provides intellisense...kind of. no where near what Visual Studio has for a while. But intellisense tends to annoy me. It always seems to be covering up code I want to see.
You can't even compare the debuggers. Visual Studio wins hands-down. Has there ever been a better debugger? I haven't used one yet.
My personal favorte anecdote is just how easy it is for them to do Web Serivces from Objective C -- all it took was re-writing the compiler for an open source solution called gSoap -- you know, simple stuff
![]()
Yeah, you'd have to talk to Joe Heck about consuming SOAP services in Objective-C, I think he's done some of that. But calling and consuming an XML-RPC service in Cocoa isn't as hard as the blog makes it out to be. And consuming wild SOAP services in .NET isn't as easy and it's made out to be. Mainly due to the strict definition of SOAP that Microsoft enforces and the variations of SOAP envelopes that you'll encounter in the wild.
Here's some example code straight from Brent Simmons example. (I can't find a link to the code, I'll try emailing Brent and asking him where he put it. update: Found it here. He also has some excellent examples of parsing OPML and RSS feeds in Objective-C and Cocoa/CF)
-
WSMethodInvocationRef rpcCall;
-
NSURL *rpcURL = [NSURL URLWithString: @"http://betty.userland.com/RPC2"];
-
NSString *methodName = @"examples.getStateName";
-
NSDictionary *params = [NSDictionary dictionaryWithObject: stateNum forKey: @"foo"];
-
NSDictionary *result;
(Also via Brent's Newsgator weblog, an XML-RPC client debugger for OS X.)
As I see it now, you have to roll your own classes when calling XML-RPC from within .NET. So the two frameworks are about equal. It's my understanding that this will change once Indigo hits the streets.
Here's the bottom line for me.
XCode price: free with free upgrades. So my cost of experimenting and exploring is nothing. I've stated before, the cost is the only reason I'm playing with Cocoa at all. How much did the Phanfare developers have to invest in creating their Mac client? Just their time. They didn't have to buy an expensive development environment.
update: I found some Apple sample code for consuming a SOAP web service using Cocoa
The implementation is pretty hair, but logical. Here is the entire header file. (at least the code part)
-
#import <Foundation/Foundation.h>
-
#import "MyURLConnection.h"
-
-
// A simple abstraction of some of the work that a SOAP
-
// client would have to do.
-
@interface SOAPClient : NSObject {
-
NSURL *url;
-
}
-
-
- (id)initWithServerName:(NSString *)name;
-
-
- (NSXMLDocument *)sendMessage:(NSXMLDocument *)xml waitForReply:(BOOL)b;
-
-
@end
-
-
-
and here is the implementation of the sendMessage method.
-
-
- (NSXMLDocument *)sendMessage:(NSXMLDocument *)xml waitForReply:(BOOL)b {
-
NSData *data = [xml XMLData];
-
-
NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] initWithURL:url cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:60.0] autorelease];
-
[request setHTTPMethod:@"POST"];
-
[request setHTTPBody:data];
-
[request setValue:[NSString stringWithFormat:@"%d", [data length]] forHTTPHeaderField:@"Content-Length"];
-
MyURLConnection *conn = [[[MyURLConnection alloc] initWithRequest:request delegate:self] autorelease];
-
-
xml = nil;
-
if (b) {
-
while (![conn isFinished]) {
-
[[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate distantFuture]];
-
}
-
NSError *error = nil;
-
xml = [[[NSXMLDocument alloc] initWithData:[conn data] options:NSXMLNodeOptionsNone error:&error] autorelease];
-
}
-
-
return xml;
-
}
Still pretty hairy, but not overly complicated. I mean, Objective-C isn't BASIC. It's C. It has to be a little complicated.


