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
We do not want to waste our time with dead-end APIs as we are vastly under-resourced, so we must choose carefully..
.NET API, he shouldn't bite the hand that feeds him!
Well well well. Isn't it easy to complain about an API when we aren't the ones responsible for creating it? Considering he is the one copying the
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
He doesn't improve their ideas anyway, he debates with M$ employees on their ideas. Also, improving the ideas of the competition is a significant part of said competition. Competitors routinely improve on another company's products to steal their customers.
Nor has Novell *recently* announced any co-operation with Microsoft, as the two right now are essentially competing in the OS wars.
Hurricane Ivan: A 17th century prison collapsed. All of the inmates escaped.
Under the hood, Avalon runs on top of DirectX. And all it's 2D rendering is actually done in 3D. So adding 3D functionality to is is no biggie. The idea is that Avalon is meant for GUI and DirectX for more low level graphics functionality.
The big benifit for at least game developers is that combining GUI with 3D graphics should be less of a pain in the butt.
"As far as I understand,"
You apparently do not understand.
"Mr. Icaza is now working for Microsoft"
Try Novell in the Ximian devision. That parent company also owns the SuSE Linux distro and tools now btw.
"and he spends his energy on porting Microsoft ideas and projects to the Linux platform"
Ya just like the blackdown project, or OpenOffice.org is doing for Sun's ideas and projects. You wrote the above as if it was a bad thing. Honestly do you want to be locked out of the potential of write one run everywhere apps? Do you feel you speak for all Linux and OSX users?
"So why he criticizes Microsoft plans in the public?"
He calls them like he sees em and even MS workers are at least paying attention to a good critic. If they did more of that, they would have less brain farts along the way. The same goes for others who can't take the heat of an honest review of their work so they just blast back.
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.
Well, yes it is complex. But it only appears complex because of a lack of abstraction. It is a matter of perception.
There has always been a big clash between the simple black box and the gazillion arugument camp
In case you haven't noticed, I favor the simple black box.
Let me just say that the reason why people don't fall over when they walk, or birds do not fall out of the sky when they fly is because of an interface which was designed with a very simple black box interface.
Enuf said. Either you get it or you don't.
What makes iD special is game play and the game engine.
If Carmack moved to DX9 or it's successors, players and developers would move with him.
That isn't the right one.
http://slashdot.org/~miguel
Wow that is insightful. No data, no facts, not even a characteristic cheesy slashdot anecdote about how, it being from MS, it almost ruined the company he worked for until OSS came to save the day. Man, this is bad for even slashdot..
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
openOffice is already a registered tradmark, buy a older office suite that never realy caught on.
They didn't realise this when they created the open source open office, and the original makers of open office contacted them on this issue and the compromise is to call the project "Open Office.org". And hence OO.org
This guy is doing good things... helping mono is awsome.
I'm not trying to be Xeno Phobic but write in the language that people can best understand your arguments. Miguel's blog is a bunch of off the cuff un-supported arguments.
Un-supported only in the sense that there are no examples and/or references. He may be right but doesn't do a very good job expressing his thoughts.
It would be nice to see a better articulation of why it is that he's so concerned with Avalon, in the section about the developer needing to know a lot of the internals to implement code, he's very short on details of why this is. If your going to go to the trouble of jotting good thougts down in a blog - make them worthwhile.
As a windows developer (thank god I haven't done that in a few month at least) I have to agree with you about the annoyance of kill in taskmanager. However, the security from ctrl+alt+delete has nothing to do with task manager. That key combination is always caught by the operating system, not a running program. This means that the user can be sure that the interface brought up by pressing ctrl+alt+delete is provided by the OS, not some application.
Think about stealing passwords. One of the easiest ways is popping up a real looking login box and then complaining that the user entered the wrong password and dumping out to the real one for the next password entry request. No user is going to be suspicious. Everyone assumes they slipped on the first try, but in a public lab situation this can be pretty effective. Can also get your ass tossed out of school these days.
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.
Considering that XAML is basically XUL, and WVG is basically SVG, I think we can safely say this is MS's answer to Mozilla (not that SVG is very integrated into Mozilla yet either, but whaterer).
Too bad they always have to make their own versions of stuff that are 90% similar to the original, but the other 10% of stuff that ties directly into MS products. See J++ and C# for other examples.
If only they knew how to play well with others.
I wonder if it is possible for Rocklyte to implement 3D rendering features like in Avalon in their Athene Desktop.
I have tried out Athene and it is very fast - they claim over 25% speed increase to X11.. This is a complete alternative to X11 but can also run X11 apps.. Try out the free version http://www.rocklyte.com/athene/. You can run games on the desktop using SDL.. they have a version of Doom and Quake available for download as well.
I was very impressed with both the desktop as well as the underlying technologies - the desktop is scripted using an XML-like language called DML..and the engine used is called Pandora.
The graphics driver technology is based on SNAP graphics from SciTech and seems very easy to manage.
My two primary gripes with the system were that the licensing seems a little restrictive.. and also, the package management software seemed very weak (if you are using the OS).
But other than that - a very polished desktop.. and underlying API. Most impressive.. Definitely the most innovative and cutting edge Linux desktop and distribution around.
Also wonder if there is a move to implement Windows Forms (for Mono) using the Pandora Engine SDK.
New reply from the Microsoft guy.
Watch great movie opening scenes!
What do you find interesting in a VMS and Java clones is beyond me, two of the worst technologies ever created in the history of software. Not to mention the most directly at odds with the Unix philosophy.
.NET and Mono, we will see but as of now, I have directly copied applications from my development windows machine running the .NET framework, onto our server running MONO and have never had to debug a single application after the move. To me this concept is not one of the worst technologies ever created, it was just Java's implementation of the concept that fell apart.
If you are going to "reshape this industry", you could at least try to do so into a less hideous new shape. (l)Unix has been dead for more than fifteen years[1], but better things have been around for almost as long.
It's funny that everyone keeps heralding how Unix and its variants are a dead end, but more and more operating systems are reinventing the wheels of Unix to provide the security and flexibility that Unix provided 10 years ago.
If you like C but are tired of doing memory allocation, why don't you use the language that the creators of C spent twenty years designing[2] to overcome C limitations: Limbo
It is simply a matter of popularity, you can design a language that does everything, but if it does not win mind share, then you have a very good dead language. I cannot comment on Limbo, as I have never used it, but the progression from C to C# is night and day. C is just old and it feels old, every time you have to touch memory allocations, or make sure everything is cleaned up. As for Java, it has become very bloated and the promise of write once run anywhere has somewhat fallen apart. As for
[1] "Not only is UNIX dead, it's starting to smell really bad." -- Rob Pike circa 1991
"Those who don't understand UNIX are doomed to reinvent it, poorly." --Henry Spencer