Slashdot Mirror


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

12 of 419 comments (clear)

  1. Re:Avalon is SVG based so its rendered in 3d by cybrthng · · Score: 5, Informative

    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.

  2. Re:As far as I understand... by Anonymous Coward · · Score: 5, Informative

    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.

  3. Re:Joe Beda talks the talk.... by DraconPern · · Score: 4, Informative

    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.

  4. Re:Avalon is SVG based so its rendered in 3d by k98sven · · Score: 5, Informative

    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.

  5. Re:Avalon is SVG based so its rendered in 3d by k98sven · · Score: 5, Informative

    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.

  6. Re:Joe Beda talks the talk.... by Mitchell+Mebane · · Score: 4, Informative

    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
  7. Re:Joe Beda talks the talk.... by DAldredge · · Score: 5, Informative

    That isn't the right one.

    http://slashdot.org/~miguel

  8. The fake Miguel de Icaza posts. by miguel · · Score: 5, Informative

    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.

  9. Re:look at those URLs... by chrisan · · Score: 5, Informative

    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
  10. Re:Hmmm... by Foolhardy · · Score: 5, Informative

    The Windows NT kernel (same one in 2000/xp) has nothing to do with "Internet Explorer/Media Player/Instant Messenger". Microsoft whined that they couldn't be removed not because it is technically infeasable but because it is part of an 'indispensible user expierence'.

    NT design 101: On the bottom, there is the kernel, then the executive, which includes the object, configuration, process, VM, I/O managers, the security ref monitor (a runtime to create tokens, check ACLs) and the local procedure call provider. After that, device drivers. After that, everything is in user mode with one exception. Then there are the intrinsic subsystems: the session manager (the init process, aka smss), the local security authority (lsass), the security accounts manager (SAM), winlogon, and the service control manager. Then the environment subsystems, namely win32. The entire syscall interface is exported to user mode by the Nt* functions in ntdll.dll. Environment subsystems translate calls from their API into native calls. Win32's environment server is hosted in csrss.exe. With NT4, the meat of win32 was moved into kernel mode (win32k.sys) to reduce context switching overhead; win32 was not then and still isn't integrated into the kernel itself. The kernel doesn't care what environment subsystems are running. After that, you have the shell components; these all run in the security context of the logged on user (subsystem components run as SYSTEM). The shell includes Internet Explorer and the start menu. On top of that (usually) are applications.

    Each layer only cares about the one immediately above and below it at most. To the kernel, Internet Explorer is just another user mode program. A hole in IE cannot escilate beyond the user's privledges in the process's security context. Your machine be hosed by a hole in IE if you are running it as Admin (just as a hole in Mozilla if it was running as root), but not if it is running as a normal user. You need to exploit a local vuln in the kernel first, just like any other OS.

    Look at the entire syscall interface (the Nt* functions). Tell me which functions are "directly tied into the lowest levels of the operating system".

  11. Re:Avalon is SVG based so its rendered in 3d by Foolhardy · · Score: 4, Informative

    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.

  12. Re:Hmmm... by IamTheRealMike · · Score: 4, Informative
    No it's not. See XPLite to remove all traces of IE.

    Yes it is. If you remove "all traces" of IE then presumably you are also removing things like wininet, urlmon, hhhelp and the other million and one components of the OS that are shipped and developed as part of IE and on which applications depend.

    Believe me, you pull IE and all kinds of random stuff breaks. I've spent the last two years working on Wine and one thing it's taught me is that there is no way IE can be disentangled from the OS (unless you could deleting iexplore.exe, which achieves nothing). Too many programs expect it to be there and will break if it's not.