|
First, I need to disclaimer this blog post by saying that I am under an NDA until Leopard releases to the public, so the details of what I saw are not available. However, I can say a few things and reveal some details (details that I have already found on public sites and from slides during the WWDC keynotes, etc).
First, let's get to the token Mac vs. Windows story. I show up there with my Windows Vista laptop (I am a .NET developer, after all...). I'm checking mail and messing around with WPF eating my breakfast when someone (carrying a Macbook Pro) walks up and says, "Cool, is that Vista?". I of course say, "Yes", and was about to say, "and it runs just fine on my laptop!" when Vista crashed!! My cursor froze, and then a few seconds later, it was dumping core and rebooting. This event was followed by a bout of riotous laughter from the other Mac people seated at the circular table. Thankfully it was well before registration so there were only a couple other people around. Thankfully I consider myself an objective third party, so I wasn't embarassed by the Vista crash.
Once the tech talk actually got started, things went a little better. I saw sessions on Objective-C 2.0, Cocoa, Xcode 3, Core Animation, and Quartz Composer. All of these things combine to make Mac OS X Leopard the most appealing version of OS X for a .NET developer. Mainly because up until Leopard, the main development language (Objective-C) has not been a garbage collected environment. .NET developers (who often tend to be ex-COM programmers) take one look at all the alloc and dealloc and reference counting and retain keywords and their faces blanch with terror and they run away screaming for mommy. Well, that issue is gone and Objective-C seems far less intimidating now than it used to. I won't go into details and break the NDA, but there are a lot of appealing syntax points that I like, and some syntax that I don't know if I'll ever get used to.
What really blew my mind was Core Animation, Quartz Composer, Core Image, and Cocoa's integration of Core Animation (all of this is public info, please don't shoot me Apple!). As a .NET developer, I couldn't help but mentally compare that suite of APIs and functionality with Microsoft's Windows Presentation Foundation (WPF). I'll save the item-by-item comparison for when Leopard becomes public and I can get into nitty-gritty detail.
However, I can tell you this: I am, and always have been, fairly objective in my opinion of programming environments. While I've written a flaming truckload of published content on C# and the .NET Framework, there are many areas that I dislike (ADO.NET for instance, is a piece of crap). I am also not affected by the "reality distortion field" that seems to be projected by Steve Jobs and many Apple evangelists. I saw a lot at the tech talks that I thought was lacking in comparison to Microsoft, and yet I saw other things that seemed years ahead of current Redmond offerings. The bottom line is that I saw enough intriguing things that I am purchasing my Apple Developer Connection membership (the one that comes with Leopard seeds), and I am purchasing a Macbook Pro. You'll have to wait until Leopard goes public before I can post item-by-item comparisons between .NET and Mac, but believe me, I intend to post my opinions there.
Sounds quite interesting. I am just starting to dig into Obj-C and Cocoa,
and look forward to the next release. Garbage collection will be a huge
benefit, though the manual aspect of it now is not completely abhorrent to
me.
Nice perspective on the Leopard Tech Talks. I attended in Boston and was
quite impressed. As were hundereds of other developers. See
http://www.red-sweater.com/blog/263/boston-leopard-tech-talk.
I went to the preview in Boston and am greatly excited. I've never been a
"real" programmer. I went from BASIC to Pascal to Perl, dabbling in
maintaining others' C code meanwhile. Then Python, a little Ruby and a
little Java ... I just couldn't stand to make myself do something that the
computer should just do for you -- like managing memory.
I'm glad you liked what you saw of Leopard! Once you have your Apple
Developer Connection account, you should also be sure to file bugs at
bugreport.apple.com for anything you think could be improved, whether
vis-a-vis .NET or in any other way. Apple really appreciates bug reports
from the field.
I was also at the Tech Talk, some amazing software coming. I have to be
honest that I haven't seen much of Vista yet but I should go take a look
since I might have to start supporting it (I.T. Manager). Did you do any
of the hands on sessions I'm wondering?
As an Apple tech professional of 20 years, it is nothing less than
ASTOUNDING to see such interest -- indeed ANY interest -- in the Apple
programming environment that is coming from the traditional Microsoft
software development community. This notion would be laughable for the past
two decades.
Just to point out, you can talk about anything detailed about leopard in
Apple's keynote, on their Leopard website and here:
http://developer.apple.com/leopard/overview/
First, I'll agree with you that ADO.NET leaves a lot to be desired. But
wait until you dive into connecting to a database using Cocoa. Core Data
only saves to SQLLite, it's own XML format, or binary format. If you want
to connect to a database, you're on your own. Import the ODBC headers for
your driver and go.
"By the way, ADC members under NDA can talk amongst themselves. Thats
allowed."
I'm a Mac user who works in an environment alongside a thorough competent
.Net Development Team. They know their stuff but are steered away from Mac
Development. Anything you can say to encourage them to look further can
only help us.them create better products for all platforms. Thats what I'm
after. I'll look forward to reading the reviews.
I'd be intrigued to see a 3-way comparison with Adobe's Flex/Apollo
framework, which allows the simple use of Flash animations in UI design,
and strikes me as the main rival for WPF on Windows and CoreAnimation on
Mac.
I used to be (but might be again) a .NET developer, and I'm producing a
series of Podcast about Apple. As with you, I was always "running for
mommy" when seeing alloc and the other guys ;) I never really made it into
Mac Development, until Leopard. I swear I start. I'd love to get in touch
with you, especially when Leopard will be out I'd love to have you in the
Podcast... 2 .NET devs talking about Cocoa ;)
Just make sure you first get your ADC membership before you get your
MacBook Pro, as the ADC gives you a discount on hardware.
As a newish .NET developer currently learning Cocoa and its associated
frameworks I'm looking forward to hearing your point by point comparison.
There's two sides to every story and it seems there are very few side by
side comparisons geared at developers out there.
I got the MBP outside of the membership because one of the things you must
agree to is that your use of the hardware purchased through the discount
would be solely for the purpose of development and testing. I plan on using
the MBP for more than just coding Apple, I hope to use it to do my .NET
coding via Bootcamp as well.
I'm glad to see a few .NET developers being swayed to the better way of
doing things ;-). I unfortunately have to do .NET development at work.
That was the impetus for me. If Objective-C is garbage collected, then
there might be a level playing field to allow me to compare "apples to
apples" various .NET Framework libraries with some OS X libraries.
Would be great to have the .NET framework on Leopard (with appropriate
Cocoa bindings), as a runtime environment it is second to none.
Cocoa is powerful framework. It is growing every year. The learning curve
could be sharp, but it has its rewards. Check my podcast
(www.cocoacast.com) we are trying to learn it...
"you must agree to is that your use of the hardware purchased through the
discount would be solely for the purpose of development and testing."
As a Mac newbie from the other side you may wish to start with:
Development tools like VS,ASP.Net
http://www.unix.com/showthread.php?t=31487
Why wait for Leopard (http://rixstep.com/2/20070130,00.shtml)?
I followed your link on 'Why wait for Leopard'. Putting down developers
who are happy about garbage collection is rediculous. To say that
developers need to go back to school because they like garbage collection
is foolish. You are really quite rude - get off your high horse.
I concur with the last comment. It's always struck me as amazing that C and
C++ (and thereby Java) have achieved the dominance they have as application
(rather than system) programming languages.