Over the weekend, there has been a bit of a ruffling of the feathers over in the GNOME camp. It started with complaints received about the content on Planet GNOME, and ended with people proposing and organising a vote to split GNOME from the GNU Project.

WPF as a GUI platform is hela-cool. It is miles better then any other gui framework I have played with, allowing you flexibility and downright elegance that you don't see in GUI toolkits, at least in what I have used. I have some major problems with it, but I think it is a big step in the right direction for client side development.

I wrote a >30000 lines of code application using WPF. It has some nice concepts, but it mostly lacks MVC, which is a serious drawback. With Swing you can easily put hundreds of thousands of items in a listview or a treeview and the GUI will still be fast. Try to do this with WPF. WPF also has some serious performance issues. It is not possible to directly render lines or bezier paths to a bitmap. If you add lines or paths to a bitmap, it will build a scene graph, which is too much overhead for certain type of applications. From my experience WPF has a nice design but the lack of MVC and fast rendering to bitmaps makes it unusable for compelx applications.

Also, Miguel has been courted by MS for most of his professional career. He could have a job there any time he likes. He works in the Free software world because he believes in it, he just doesn't automatically discount everything microsoft does because they are microsoft.

From my experience with Java and .Net, .Net is worse then Java. Java has better APIs, memory mapped files, it is easier to do concurrent programming in Java, Swing is way better then Windows.Forms and still has advantages over WPF. Scala is much better then C#. The JVM optimizes much better then the .Net Runtime, the next version will support stack allocation, the garbage first collector is way better then the .Net one. I don't see the need to reproduce .Net for Linux when there is already a better solution that is OSS.

And there is also Qt which makes it easy to write cross plattform applications.

He is one of the last all star developers who is still in the public doing linux-on-the-desktop work, and I think it is really sad how much the community loves to stab people like that in the back.

There are many people working on KDE and GNOME, Firefox, GIMP, OpenOffice, Amarok etc. Icaza is certainly a great developer, but maybe he should do something original instead of just recreating MS technologies, which might be dangerous for the OSS ecosystem because of patents hold be MS.

wrote a >30000 lines of code application using WPF. It has some nice concepts, but it mostly lacks MVC, which is a serious drawback. With Swing you can easily put hundreds of thousands of items in a listview or a treeview and the GUI will still be fast. Try to do this with WPF. WPF also has some serious performance issues. It is not possible to directly render lines or bezier paths to a bitmap. If you add lines or paths to a bitmap, it will build a scene graph, which is too much overhead for certain type of applications. From my experience WPF has a nice design but the lack of MVC and fast rendering to bitmaps makes it unusable for compelx applications.

Agreed. Also, over terminal services, WPF goes from slow to unusable. Approaching this as a web developer, I also can't stand the XML. It is very verbose, and uses PascalCase, which makes the code itself very dense and hard to read. Additionally, it mixes structure, style, and behavior into one big ball of mud, and makes it difficult to pull the different bit apart.

That being said, if you are doing anything the least bit non standard, it is cake with WPF. The other things I like about it are things like bubbled events, how easy it is to do animations/eye candy, and the representation of complex object maps in XML.

From my experience with Java and .Net, .Net is worse then Java. Java has better APIs, memory mapped files, it is easier to do concurrent programming in Java, Swing is way better then Windows.Forms and still has advantages over WPF. Scala is much better then C#. The JVM optimizes much better then the .Net Runtime, the next version will support stack allocation, the garbage first collector is way better then the .Net one. I don't see the need to reproduce .Net for Linux when there is already a better solution that is OSS.

Agreed on all counts. That is pretty much what I was saying, these are the reasons not to use mono, not the whole OMFG its from M<dollar sign> thing.

There are many people working on KDE and GNOME, Firefox, GIMP, OpenOffice, Amarok etc. Icaza is certainly a great developer, but maybe he should do something original instead of just recreating MS technologies, which might be dangerous for the OSS ecosystem because of patents hold be MS.

I'm talking about guys like Havoc Pennington, Seth Nickell, etc. At least in the gnome world, there are very few charismatic guys left to stand up and say "This is the way we should do things. Listen to me based my proven programming chops, vision, and dedication".

There is no scene graph involved here. On most systems, the rendering will be done using hardware acceleration to a target in video memory, which makes it at least an order of magnitude faster than what you'll find in other UI toolkits.

There is no scene graph involved here. On most systems, the rendering will be done using hardware acceleration to a target in video memory, which makes it at least an order of magnitude faster than what you'll find in other UI toolkits. "

You obviously never tried to render some complex geometry using WPF. Where exactly do you think the information about the geometry is after you close the dc and before you render it to the bitmap? Hint: in a scene graph.

That might not be a big deal if you want to combine a few shapes or bitmaps. But if you want to draw thousands of small points or lines several times per second for a real time telemetry display (or even something more mundane like a scrolling stock ticker), it is a big performance problem.

3d acceleration does not help at all since the actual drawing takes almost no time. It is just the allocation and management of the complex data structure that holds geometry before it is rendered.

By the way: if WPF is so great for drawing complex 2D geometry, then why did microsoft come up with a high performance immediate mode drawing API called Direct2D? The only way to write serious graphics heavy applications in WPF is to let Direct2D do the heavy lifting. But the downside is that Direct2D is only available from vista upward, so in a conservative industry like banking or space operations you can not use it for the next five years.