Miguel de Icaza Debates Avalon with an Avalon Designer
Karma Sucks writes "In an interesting debate with a Microsoft employee, Miguel points out some crucial flaws in Microsoft's Avalon strategy. Perhaps the most shocking revelation is the absolutely horrendous inheritence hierarchy exposed by the Avalon API. Miguel himself is clearly not amused, saying 'We do not want to waste our time with dead-end APIs as we are vastly under-resourced, so we must choose carefully.'"
" I totally agree, this is a huge issue. Phishing attacks, spyware, malware, viruses, and more are out there and probably the largest problem facing computer science today. This isn't a Microsoft, Linux, or Java issue - this is a "good guys" issue. Windows XP SP2 is probably the best response to Miguel's security concerns. The integrated firewall, security center, and dozens of other security related features are really the first line of defense. After the basics are resolved there, I would say that the new enhancements to the security system in Avalon are a great step. Not only is Avalon built from the ground up to be secure, but we are enhancing the security system for better application level security, and simpler more understandable presentation of security decisions to the user (hopefully in most cases this means no decision). As to the specific issue of Phishng that Miguel brings up, that is still mostly a research level issue, which I'd love to see creative solutions to. In Windows today there is the secure desktop, but you must press Ctrl+Alt+Delete to get to it first. "
Creative Demolition
with further explanation that means it can use the 3d acceleration of your video card and interface with directx as part of the graphics api to accelerate/render your desktop.
Because you don't know what you're talking about.
1) Microsoft isn't porting anything to Linux.
2) Miguel doesn't work for Microsoft, and never has.
3) Miguel works for Ximian, a company he founded, and which is now owned by Novell.
DirectX isn't just graphics. It is also networking, realtime input, sound, etc. Have you ever tried creating a GUI with DirectX? It is hard because you don't get the standard controls. What Avalon does is bridge that gap and bring 3D to the GUI controls (eg, outside the client area). Direct3D will only render into the client area.
Btw, there is already a new graphic API, kind of a predecesor of Avalon, it's called GDI+. Notice that it is class based and supports ARGB format (like DirectX), but it can be used without having to do a bunch of DirectX setup calls. I am currently using GDI+ and it is much easier to use than the Win32 GDI functions.
That's not so weird. Everyone oohs and aahs when there's a slashdot article about OSS 3D desktops, myself included.
.
I think desktop apps flipping around in 3D and all the new ways you could work with apps would be cool.
But DirectX isn't right for the task, it's too low level. Too much DX code only works on ATi or nVidia, too many vendor specific extensions and shitty drivers. It's great for tweaking the crap out of Doom 3 so it goes as fast as it can, but it would suck if some pixel shader operation that only works on Geforces blowed up my coding session
Avalon is higher level, not trying to implement the latest hardware tweaks and gizmos, just base functionality you can count on across the board.
There's no redundancy, the way I see it. Two different tools for two different tasks.
I don't need no instructions to know how to rock!!!!
unlike the current pixel based 2d rendering system of today.
Um... say what?
Ok, to begin with Avalon doesn't support SVG, which is one of the things Miguel was blasting them for.
Secondly.. 2D rendering is not 'pixel based' today.
It's never been 'pixel based'. Windows has had device-independent 2D rendering since.. well, forever. (Windows Metafiles ring a bell?) So has just about everything else (Mac, Atari) too, (X doesn't, but the Unix platform tended to use PostScript for that stuff).
What is new here is the support of more advanced things like compositing (something you couldn't do device-independently before). OS X already has this of course in Quartz.
I've said this before, here and elsewhere: WGHIII[1] has said several times in the past (and was at conferences in the mid '90s when & where he said them): "...people do not want bug fixes - they want new features...". This is frequently borne out by the underlying architecture Microsoft presents in their products. A semi-stable underpinning, capable of supporting certain elements is put into place such that products & features can be built upon that architecture. "Patching Architectural Holes" (Security, Stability, etc.) can be fixed via patches later[2]. Unfortunately, this means users suffer frustration for a semi "feature rich", unstable product, and developers discover situations where they write "three sides around the barn" when the pieces don't fit together as the philosophy would lead one to believe.
. html
There are other companies which spend a lot of time on the architecture - almost to a fault - knowing once it is solid, they can add the users' heavily desired features without worry about the stability beneath it.
All developers know about both scenarios as they either crave and know the the outcome if they are permitted to put the architectural stability in place or they are forced to charge ahead with building on top of wet toilet paper.
[1]William Henry Gates 3rd
[2]Providing a vendor is even willing to do so. And the question begs to be answered: How unstable can an architecture be such that patches can be safely made to it (without risking screwing the pooch) to make an improvement? Remember the "three sides around the barn" development? What happens to developed code if the OS suddenly "works" correctly?
Just remember....
______________________________________
My Trunk Monkey can beat up your Trunk Monkey.
http://www.suburbanautogroup.com/ford/trunkmonkey
- Microsoft talking design and technologies out in the open with other developers who aren't Microsoft employees? Even talking with Free software advocates? Man, that's good to hear, honestly. If this were system-wide, I bet it'd be good for both sides.
- Reading Miguel mention that many APIs (Avalon, Tk, Swing, GNOME, Xview, Motif) at least gives one the impression that he might actually know what he's talking about. Let me give him the benefit of the doubt. It makes me wonder how many Microsoft employees have that much understanding of non-Microsoft APIs. Probably plenty, but the few I have encountered seem so immersed in Microsoft culture that they appear to have little understanding of what's going on outside of the Microsoft sphere.
Now, I should say that I'm no real programmer, but I've done some. The "real" programming I've done is computational code that runs in the console, with a couple of GUI front ends. So, I'm not going to claim any kind of serious perspective on this.Curmudgeon Gamer: Not happy
SVG is part of the avalon concept done through the XAML interface.
Except that Microsoft does not follow the SVG standard. So it's not SVG, it's just similar.
As for 2d rendering, it has always been pixel/bitmap fill based and not vector based.
Again, you are wrong. Although you seem to believe it, SVG isn't the first vector graphics format in existance. Not by a long shot. (PostScript is from 1984) Nor is Avalon the first device-independent 2D-graphics API.
Providing a ref to the SVG spec doesn't make it true.
Ok? Now, I've contributed fixes to Apache Batik, (an SVG library) and I've also written PostScript generators, and most recently I've contributed stuff to the Java2D library for libgcj. (another 2D library which is not 'pixel based')
I do believe I know something of vector graphics.
A number of my peers like to bitch about how "Swing is hard to learn" and I get called an elitist for laughing at them. Of course, unlike most of them I have tried to learn other toolkits and have come to the conclusion that Swing's design really is the de facto gold standard for how a GUI toolkit should be arranged for practical development. It is fast, extremely logically structured and the documentation is really straight to the point for when you need to look stuff up.
I could never get used to Windows Forms. It still amazes me that the layout manager concept isn't considered a standard part of the UI toolkit design process now. Developers shouldn't have to automatically manage most GUI layouts.
Click here or a puppy gets stomped!
Chris Anderson replied with the following in regard to ignoring standards.
Interestingly enough, we never "ignored" standards. We spent a huge amount of time understanding and evaluating the existing standards. SVG and CSS both were passed on because they weren't adaquate to meet our needs. WinFX is a platform for the next decade or longer - we can't start with a base that doesn't meet our needs.
What a load of shit. That mentality is where the "embrace and extend" came from. It might not meet Microsoft's needs, but CSS and SVG are the bloody standards that people are using! What do they know about the coming decade that we don't?
What Chris said pretty much flies in the face of the entire paragraph that Miguel wrote! Look:
I understand why someone would invent their own version of SVG or their own version of CSS: those standards can be difficult to implement, and growing your own version is a lot simpler than having to adapt an existing model to a new model.
I would have probably done the same if I had been in their position: its easy. But I would think that Microsoft has a higher responsibility towards the developer base that must create tools that interop with third party components: creating a new standard for graphics just because its `easy' is not really a good answer.
Implementing SVG might have problems and limitations, but the advantages outweight these problems: there are plenty of tools today to produce and consume it and it fits better with the rest of the industry. A benefit that Avalon users will not have and will just partition the industry again for a fairly poor reason.
Standards are there for a reason. If Microsoft doesn't like them they can see figure 1. I have a feeling that Microsoft may not dislike the standards themselves, they just don't like the fact that they're not their standards.
-kidlinux.
This is a call to arm, sent out to all sensible /.ers. PLEASE, DO NOT embed senseless links within your story submission. It goes against the ethics of every data purist out there to have to mouse over words like "interesting" and "debate", carefully examining the status bar URL, to find out WTF that link points to. Enough already.
DirectX isn't just graphics. It is also networking, realtime input, sound, etc. Have you ever tried creating a GUI with DirectX? It is hard because you don't get the standard controls. What Avalon does is bridge that gap and bring 3D to the GUI controls (eg, outside the client area). Direct3D will only render into the client area.
Qt4 will also fill this gap - any QT widget can be drawn on top of an OpenGL canvas, and it will be OpenGL accelerated.
The roots of education are bitter, but the fruit is sweet.
--Aristotle
Miguel makes a semi-interesting point, but Mr. Microsoft makes a better one: why on earth would the average programmer be rooting upwards through the class tree 10 or 11 levels?
The whole point of abstraction is that Joe Programmer knows "button" derives from the next highest object. That's it. It's nice to know the other levels when you're learning the language's abstraction model for the first time/creating it, but once you get into down and dirty practical programming, you only really need to look up and down a few levels. If you're going all the way back up to Object and reconfiguring it, you're reinventing the wheel. That was the language designer's job.
That isn't the right one.
http://slashdot.org/~miguel
Hey guys,
Just wanted to point out that the inflamatory
comments that are being made in my name are someone
else's idea of fun. Some guy decided to squatter
the login `Miguel de Icaza'.
Miguel.
I do not hate Microsoft, but I think that they will
eventually open source some interesting pieces of
software. The pieces are already in movement.
Microsoft is like any other corporation, they have
to do what is best for their shareholders. They
have had a pretty good ride but Linux and open
source have changed the plane, so they will
likely have to transform in the future in a different
kind of company.
In either case, working for Microsoft is not the
end of the world. I just happen to be a lot
happier working for Novell doing open source
software and working with many talented developers
from the Novell background, the SUSE background
and Ximian. An opportunity in a lifetime to
reshape this industry.
Miguel.
Oh, come on... when I wrote BlogX (the blog software I use) I wanted a unique ID for each post. I post more than once a day (Miguel's software doesn't have permalinks per post, only per day) and I didn't want to uniquify the titles... Radio uses monotonically increasing numbers, other software uses UTC datestamps to the millisecond, etc...
ChrisAn http://blog.simplegeek.com
In order to display onscreen, it has to be translated into pixels. Before it reaches the screen, you can describe shapes in terms of lines, curves, etc in logical coordinates without committing to a specific configuration of pixels. For example, a line one inch long might be 50 pixels long at one resoulution and 100 pixels at a higher one; the line's description says inches and you can't know how many pixels are in an inch until you have a display device in mind. The 1 inch line is device-independent because it will be 1 inch regardless of device. How a 50 pixel line looks depends on the device.