Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Programming Operating Systems Software Windows Ximian Technology

Miguel de Icaza Debates Avalon with an Avalon Designer 419

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.'"
This discussion has been archived. No new comments can be posted.

Miguel de Icaza Debates Avalon with an Avalon Designer

Comments Filter:
  • by cybrthng ( 22291 ) on Thursday September 09, 2004 @09:55PM (#10208738) Homepage Journal
    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.
  • by Anonymous Coward on Thursday September 09, 2004 @09:55PM (#10208742)
    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.
  • by DraconPern ( 521756 ) on Thursday September 09, 2004 @09:58PM (#10208760) Homepage
    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.
  • by k98sven ( 324383 ) on Thursday September 09, 2004 @10:05PM (#10208814) Journal
    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.
  • by ryanmfw ( 774163 ) on Thursday September 09, 2004 @10:10PM (#10208849)
    They DON'T HAVE Mr. Icaza. They just don't. No matter how necessary that is for the rest of your post, it simply is not true.

    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.

  • by sebby1234 ( 798583 ) on Thursday September 09, 2004 @10:11PM (#10208860)
    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.
  • by k98sven ( 324383 ) on Thursday September 09, 2004 @10:26PM (#10208981) Journal
    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.
  • by Mitchell Mebane ( 594797 ) on Thursday September 09, 2004 @10:46PM (#10209113) Homepage Journal
    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.
  • by SilentChris ( 452960 ) on Thursday September 09, 2004 @11:05PM (#10209252) Homepage
    I don't think aspx has anything whatsoever to do with the Avalon team. Is this just an attempt at a really bad troll?
  • by Mitchell Mebane ( 594797 ) on Thursday September 09, 2004 @11:25PM (#10209392) Homepage Journal
    Gee whiz... sorry if I came across that way, but in all honesty I was just pointing out that Avalon wasn't/won't be the only thing to do this.
  • by DAldredge ( 2353 ) <SlashdotEmail@GMail.Com> on Thursday September 09, 2004 @11:43PM (#10209495) Journal
    That isn't the right one.

    http://slashdot.org/~miguel [slashdot.org]
  • by jdog1016 ( 703094 ) on Thursday September 09, 2004 @11:56PM (#10209558)
    Actually, I believe when MS flew Miguel in for his job interview, he used the opportunity to tell them how flawed their business model was and why open-source is a superior approach. You can read it here [technologyreview.com] . (registration required though) So no, from that article, my feeling is that Icaza does not have a "hardon" for microsoft but actually hates their business model and all that they represent.
  • by miguel ( 7116 ) on Friday September 10, 2004 @12:09AM (#10209631) Homepage
    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.
  • by chrisan ( 740929 ) on Friday September 10, 2004 @12:23AM (#10209706) Homepage
    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...
  • by Anonymous Coward on Friday September 10, 2004 @12:29AM (#10209725)
    What the hell are you talking about?

    90% of anything the average user does daily is RASTER. Window decorations. Pictures. Buttons, all this shit is raster (meaning that the image displayed is stored pixel for pixel in some way shape or form) The only way vector graphics are used by the average computer user is in the form of fonts. Most fonts are vector fonts. Not all, but most. Maybe this will change. I doubt it will for a while, though.

    #2) I wouldn't say that X11 dosen't have vector graphics, if I were you. X11 has a whole fucking slew of primitive objects, from squares to circles, elipses, and all that groovy stuff, by default. Yeah, maybe it dosen't have beziers, or cubics, or whatever. But loosely, it does have limited vector support. And many toolkits make use of it. (Motif, for example)
  • by Barlo_Mung_42 ( 411228 ) on Friday September 10, 2004 @12:52AM (#10209833) Homepage
    This being the first time I've heard of Miquel De Icaza or EI I clicked on your link. What I found seems to contradict your statement.
    From the site:
    Q: What principles guide your work?

    EI: EI is committed to communicating the realities of life on the ground for ordinary Palestinians and challenging myths and distortions about them in the commercial media through analysis and our own reporting. EI is independent of any political, factional, ethnic, or religious affiliation, and bases its view of the conflict on the foundation of universal human rights and international law. The Electronic Intifada condemns all attacks on civilians, regardless of the perpetrators, yet encourages people to examine the structural roots and dynamics of violence in the conflict and the imbalance of power that perpetuates these dynamics.

    EI seems to be about the spread of information not violence.

  • Re:Hmmm... (Score:1, Informative)

    by Anonymous Coward on Friday September 10, 2004 @12:55AM (#10209844)
    Plus the NT kernel is NOT a microkernel.

    It has microkernel features, but itself IS NOT A MICROKERNEL.

    MS said it was a microkernel because microkernels were considured the future and people loved the idea, even though it has had severe technical limitations. But it was never a microkernel.

    You have a similar situation with OS X's kernel design. Part of the kernel uses the Mach kernel (already obsolete years ago, btw) but combined it with aspects from the BSD kernel to create a dual natured thing.

    NT and Linux are very different, to be sure, but both are monolythic kernels, irregardless of what MS has to say on the subject.
  • by Anonymous Coward on Friday September 10, 2004 @12:59AM (#10209868)
    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
  • Re:MFC (Score:3, Informative)

    by SilentChris ( 452960 ) on Friday September 10, 2004 @01:11AM (#10209921) Homepage
    Actually, they did the learn. The result was .NET. Look at the class structure. Clean, organized. Documentation is good too (although it's sparse for the compact version of the framework).

    I think .NET and Windows 2000 are the only 2 products MS did really really well out of the box. Read up on the framework. It makes the MFC look like a piece of dung (which it essentially is).
  • Re:Hmmm... (Score:5, Informative)

    by Foolhardy ( 664051 ) <`csmith32' `at' `gmail.com'> on Friday September 10, 2004 @01:39AM (#10210071)
    The Windows NT kernel [windowsitlibrary.com] (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 [sf.net] (the Nt* functions). Tell me which functions are "directly tied into the lowest levels of the operating system".
  • Re:Hmmm... (Score:3, Informative)

    by Foolhardy ( 664051 ) <`csmith32' `at' `gmail.com'> on Friday September 10, 2004 @02:02AM (#10210161)
    Overrunning a web browser, including Internet Explorer, won't get you root access unless you are running it in a privledged account such as Administrator. IE is just another user mode program.

    There are tools available, such as runas [microsoft.com], SUD [espci.fr], and psexec [sysinternals.com] that let you run only specific programs (usually those that need admin access for no reason) as admin.
  • by Foolhardy ( 664051 ) <`csmith32' `at' `gmail.com'> on Friday September 10, 2004 @02:28AM (#10210252)
    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.
  • Re:PDF like? (Score:3, Informative)

    by tyrione ( 134248 ) on Friday September 10, 2004 @03:45AM (#10210470) Homepage
    Quartz is Display PDF.

    When I worked at NeXT and then Apple during the merger and a year afterwards, we had the big financial decisions to rip out Display Postscript which NeXT co-developed with Adobe on the basis that Adobe would not negotiate on terms regarding the licensing fees they charged to use Postscript.

    So Engineering designed Quartz to utilize all the Postscript primitives ala PDF and since Adobe already opened up PDF the financial issues were resolved. The addition of compositing and all the fancy Quartz Extreme capabilities came from years of Window Server development at NeXT and Apple.

    Hands down the most brilliant and accessible group of people to work with and learn from. If California wasn't so damn expensive I never would have left. I have not remotely been around such talent since leaving in mid 98.

  • by pkphilip ( 6861 ) on Friday September 10, 2004 @04:21AM (#10210559)
    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/ [rocklyte.com]. 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.
  • Re:Hmmm... (Score:5, Informative)

    by IamTheRealMike ( 537420 ) on Friday September 10, 2004 @05:05AM (#10210668)
    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.

  • Re:.NET (Score:3, Informative)

    by Keeper ( 56691 ) on Friday September 10, 2004 @05:25AM (#10210712)
    Calling it a wrapper really underestimates what it does. It essentially transforms UI programming on windows from a painful contorted nightmare to something enjoyable. The implementation under the hood does indeed call Win32 methods, but calling it a wrapper implies a simple 1:1 correlation between what Win32 does and objects/method calls in the forms library (which is not true).

    However, I suspect that line of thought comes from a lack of understanding of how little Win32 really does ...
  • by rikkus-x ( 526844 ) <rik@rikkus.info> on Friday September 10, 2004 @05:37AM (#10210758) Homepage
    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.

    Er, Windows Forms has layout management [microsoft.com].

    It's not as powerful as e.g. Qt's [trolltech.com] but it's easy enough to handle from the form designer and simple enough to understand.

    Rik

  • Re:Hmmm... (Score:3, Informative)

    by tesmako ( 602075 ) on Friday September 10, 2004 @06:49AM (#10210954) Homepage
    Being in the same memory space as the kernel hardly implies that it is integrated into the kernel. No matter what any application expects of you. If the kernel-space residents actually did calls into the kernels own code then it'd be one thing, but they don't, they use the regular syscalls, they just save the context-switch doing it.
  • by chiph ( 523845 ) on Friday September 10, 2004 @07:03AM (#10210999)
    With NT 4.0, they moved the display drivers into the system space, not the entire GUI subsystem. This was for performance reasons.

    I knew it was a bad idea, and I'm sure that there are those at Microsoft (Dave Cutler, probably) who thought it was a bad idea too. But it's a tradeoff, and at the time the business risk was considered acceptable because they had a driver certification program, and they were going to make sure that drivers would behave themselves.

    Chip H.
  • New reply (Score:3, Informative)

    by bonniot ( 633930 ) on Friday September 10, 2004 @07:42AM (#10211122) Homepage Journal
    New reply [simplegeek.com] from the Microsoft guy.
  • Re:same old same old (Score:3, Informative)

    by DrWhizBang ( 5333 ) on Friday September 10, 2004 @09:00AM (#10211499) Homepage Journal
    The people we talk about actually talk back.

    Yeah, except this isn't one of them. Look here [slashdot.org] for the real Miguel.
  • by FuzzieNorn ( 203503 ) <fuzzie&warpedgames,com> on Friday September 10, 2004 @09:53AM (#10211992) Homepage
    You're correct. It used to all be in CSRSS, now the window management and the GDI code is in kernelspace. Not actually 'integrated' into the kernel as you were arguing further up the thread, though; just provided as another kernel-level service.

    This [microsoft.com] talks about the transition between the NT 3.51 userspace model and the NT 4 kernelspace model for GDI and the such.
  • Re:Hmmm... (Score:3, Informative)

    by danila ( 69889 ) on Friday September 10, 2004 @10:24AM (#10212318) Homepage
    You thought wrong. Here is an image of Penguin feather [osaka-gu.ac.jp] and here is more information about Penguins [wikipedia.org] from Wikipedia.
  • by Nurgled ( 63197 ) on Friday September 10, 2004 @11:03AM (#10212733)

    To sum up: in GTk+, a "layout manager" is just a widget with other widgets contained in it, while in Java a layout manager is a special construct separate from widgets which is assigned to any widget which is a generic container.

    In practice, I generally prefer GTk's approach, but I see merits in both approaches.

  • IMG is a bad example (Score:3, Informative)

    by Nurgled ( 63197 ) on Friday September 10, 2004 @11:37AM (#10213130)

    IMG was added for Mosaic in one of the first short-sighted decisions which led to the mess that was later called HTML 3.2. When submitted for peer-review (your so-called "proper channels") people suggested that maybe it would be better to make a more general embedding element and that it should be a container so that backward-compatible content could be included inside. The ALT, element, if you think about it, is useless for this because no previous browser knew to look there! Also, it can only support plain text, so more "rich" alternatives such as a link to another document or even just a few paragraphs of text are not an option.

    Mosaic developer said "tough luck, I've already written it" and released it as it was. Since Mosaic was the biggest browser at the time people quickly sucked down this new IMG element and everyone was forced to co-operate.

    To me, this sounds like exactly what Microsoft is doing. IMG was a quick hack with little forward planning just to get images into web pages as quickly as possible. Mosaic and then later Netscape continued this trend by adding poorly-considered features such as FONT, APPLET, EMBED and framesets which are now, thankfully, deprecated in current W3C specifications in favor of better thought-out and more general features. Sadly, W3C's versions have buggy support in most current browsers. (They haven't replaced frames, but I suspect that's because it was a pretty bad idea in the first place, so the best thing to do is just to avoid it.)

No man is an island if he's on at least one mailing list.

Working...