Linked by Thom Holwerda on Mon 14th Dec 2009 15:16 UTC, submitted by chully
Gnome 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.
Thread beginning with comment 399440
To view parent comment, click here.
To read all comments associated with this story, please click here.
michi
Member since:
2006-02-04

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.

Reply Parent Score: 8

google_ninja Member since:
2006-02-05

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".

Reply Parent Score: 3

cb_osn Member since:
2006-02-26

WPF also has some serious performance issues. It is not possible to directly render lines or bezier paths to a bitmap.


Really?

var dv = new DrawingVisual();
var dc = dv.RenderOpen();
dc.DrawLine(...); // Draw a line
dc.DrawGeometry(...); // Draw a path
dc.Close();
var bitmap = new RenderTargetBitmap(128, 128, 96, 96, PixelFormats.Pbgra32);
bitmap.Render(dv);

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.

Reply Parent Score: 2

YEPHENAS Member since:
2008-07-14

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.

Every serious UI toolkit uses hardware acceleration nowadays. GTK+ (Cairo) does it via XRender, Qt does it, I think even Swing (Java2D) does it now.

Reply Parent Score: 1

tuttle Member since:
2006-03-01

"WPF also has some serious performance issues. It is not possible to directly render lines or bezier paths to a bitmap.


Really?

var dv = new DrawingVisual();
var dc = dv.RenderOpen();
dc.DrawLine(...); // Draw a line
dc.DrawGeometry(...); // Draw a path
dc.Close();
var bitmap = new RenderTargetBitmap(128, 128, 96, 96, PixelFormats.Pbgra32);
bitmap.Render(dv);

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.

Reply Parent Score: 2