« Box.Net Explorer | Main | Windows Vista Win Tab, Alt Tab »

Native Frameworks - The Death of Java?

When Apple released OS X, they described a native framework called Cocoa within the operating system that would make developing on it so much easier than before. As most OS X programmers will tell you - it's either Cocoa or nothing when it comes to programming desktop applications on the Mac now.
Apple go to great lengths to ensure we use their native framework because it's more powerful and safer. And I couldn't agree more - why use anything else when you have powerful, well constructed, regularly updated, tailor made set of libraries at your disposal. Not to mention the tools that accompany such a framework - after all, Apple wrote the framework and Apple want to promote the framework. It's what they say is best for their operating system - and it would seem the world agrees.

Enter MS Windows Vista and the WinFX/.Net framework.
(It's now thought that WinFX will become .Net 3.0 - but this doesn't make too much sense with the current array of 2.0 tools inside WinFX (C# 2.0 being one), so I guess we'll have to wait and see for now).

In the past .Net developers have spent many an hour trying to 'hack' together some kind of bootstrapper for their apps in the vain hope that their end users will be able to run their apps without too much hassle. Those that wish to use the powerful libraries within .Net 2.0 - or simply prefer Visual Studio 2005's feature set - must face the unfortunate reality that .Net 2.0 is far from being 'fully deployed'.

Developing for Vista, however, will be a different story. WinFX is a part of Vista.

Nick Weinholt argues that .Net isn't native in Vista, but I wonder if perhaps we're getting caught up in terminolgy here? .Net is to Windows what Cocoa is to OS X.

Which brings me back to '3rd party' frameworks such as the Java libraries. Even now, using just the Java language (with the cocoa framework) is somewhat frowned upon:

You can write Cocoa applications with Java, but I don't recommend it. After all, the major benefit to Java is portability. If you use Cocoa, you lose that portability. The tools and frameworks were written in Objective-C for Objective-C ... Almost no one is developing Cocoa applications with Java.
Aaron Hillegass, Cocoa Programming for Mac OS X / Big Nerd Ranch

With the way things are going I can see the same being said for Java on Windows as well. There's no place for it in a WinFX/Cocoa world. I don't think it's unreasonable to say that the future of desktop development will look something like this:

OS X
Objective-C with Cocoa framework

Windows
C++ with .Net/WinFX framework
C# with .Net/WinFX framework

with VB.Net and J# being phased out by dropping support for them in the popular Visual Studio IDE.
VB.Net was important for those migrating from ASP to ASP.NET, but is struggling to justify itself in such a heavy OO enviroment.
J#, well, if you're a J# developer and you haven't migrated to C# yet - I'd give it a go now.

But remember I'm only covering desktop applications here. There's a whole other world of development for system level applications (where we touch on 'real' native interfactions with the OS, which is where C/C++ really shine (or assembler if you're really hardcore!))- and then of course web development.

Contact Me

If you'd like to get in touch, contact me on +447944 353544 or matt@mattbrindley.com

products

Litmus

Litmus makes compatibility testing easier for web pages and email newsletters.

ThinkFold

Online outlining, for groups. Collaborate in realtime with colleagues!

Delicious Presentation Creator

20 slides from your Delicious feed, 20 seconds each.

Flare

A site-specific browser for 37Signals' Campfire chat app, bring Campfire to your desktop.

CSSVista

Edit your CSS code live in both Internet Explorer and Firefox simultaneously.