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

54 of 419 comments (clear)

  1. Hmmm... by NEOtaku17 · · Score: 5, Funny
    The Microsoft employee's take on security:

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

    1. Re:Hmmm... by savagedome · · Score: 5, Funny

      Slashdotters could pull their heads out of Tux's feathery ass and look around for a minute and see that for themselves

      *Pulls head out of Tux's feathery ass*

      *looks around*

      Nah. Nothing to like here.

      *goes back into Tux's feathery ass*

    2. Re:Hmmm... by suckmysav · · Score: 5, Interesting

      "MSFT has been pretty honest about their past designs and it's security flaws as of late."

      If by "honest" you mean they have admitted there is a problem and have offered up some near useless hand-waving gestures (XP-SP2) as a solution then you would be correct.

      The real problem they have, a problem that they have been decidedly dishonest about (or pig-ignorant of, take your pick) is that their OS is insecure by design. This is all due to the monolithic design philosophy that their Windows OS is built around. The way they have enginneered it to have every goddamned bell and whistle tied directly into the base OS is just asking for trouble. All you need is a flaw in one of your applications, IE being the classic example, and the entire OS is compromised.

      Cosnider this paragraph taken from an article at The Register, which was written by an engineer involved in the creation and deployment of Combat Management Systems for use in Royal Navy Warships. I think we can assume he has some clue about what he is talking about. He said this;

      "In April 2002, Bill Gates, acting as Microsoft's Chief Software Architect, gave extensive testimony under oath to the US Courts. Gates's testimony included description of the current structure of Microsoft Windows. Snubbing fifty years of progress in computer science, the current structure of Windows abandoned the accepted principles of modular design and reverted instead to the, much deprecated, entangled monolithic approach. Paragraphs 207 to 223 are particularly revealing about Microsoft's chosen approach (paragraph 216 is difficult to believe!).* Anyone with elementary knowledge of computer science can see that Microsoft Windows, as described here by Gates, is inherently insecure by design. If this is a flagship Operating System, then Dijkstra's life was in vain."

      For Microsoft to get truly serious (and honest) about security, they will have to totally change their design philosophy, a philosophy that was chosen not based on it's technical mereits, but on its ability to stop the DoJ from breaking Windows up into it's seperate components.

      This is the Great Lie that Microsoft is telling the world.

      --
      "You can't fight in here, this is the war room!"
    3. Re:Hmmm... by 808140 · · Score: 3, Interesting

      Interestingly, this criticism of Gates' OS design is reminiscent of one Dr. Andrew S. Tanenbaum's criticism of Linus Torvalds' fledgling kernel, once upon a time.

      Criticism, which, frankly, is absolutely on the money. Monolithic operating systems are easy. Writing them that way is the same reason that when you write a program the sloppy way, you write it all in one big file, and when you write it the right way, you seperate the backend from the UI, break the code up into logical segments, put the relevant APIs into their own libraries and link them, etc.

      Linux works ok because a) there aren't many binary drivers, yet and b) UNIX like OSs are by design far more modular than VMS-based ones hacked to death with a dull shovel (NT), and so while the kernel may be monolithic, the rest of the system isn't. But ultimately, with computational power where it is right now, the complaint that "microkernels are slower" no longer holds much water for me. Especially when you consider that modern microkernels like L4 really aren't that much slower.

      L4-Hurd, baby! Yeah!

    4. Re:Hmmm... by jericho4.0 · · Score: 4, Interesting
      I think it's more apples and oranges than that. Windows is much more than a kernel, it's a kernel intergrated with a huge mess of applications (like explorer), APIs (like D3D), and god knows what else. Linux is simply a kernel.

      If MS needs to add a feature _now_, they just stick hooks into right into the kernel to support it. Linux doesn't work that way. Linux might be 'monolithic' in a CS sense, but windows is something else altogether.

      --
      "A language that doesn't affect the way you think about programming, is not worth knowing" - Alan Perlis
    5. Re:Hmmm... by alienw · · Score: 4, Insightful

      Excuse me, but a monolithic kernel is nothing remotely similar to Microsoft's abomination. Linux and other UNIX systems are modular operating systems that are built in layers. You have the raw kernel, you have some userspace daemons that are close to the kernel, then come the userspace programs (which are completely separate). If you find a hole in Mozilla, that won't let you hijack the system.

      On windows, many of the key userland APIs are directly tied into the lowest levels of the operating system. This is great for Microsoft, who can just tell the FTC that "no, we can't remove Internet Explorer/Media Player/Instant Messenger from Windows". This isn't so great for its users, since a hole in one of those applications often yields control of the system in unpredictable ways.

      The microkernel versus monolithic kernel is a pretty old debate. The main problem with microkernels, as far as I understand, is that they are much more difficult to develop. Yes, the complexity is encapsulated, but the message passing stuff can get very hairy. My opinion: if both approaches work well, who cares?

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

    7. Re:Hmmm... by Foolhardy · · Score: 4, Interesting
      IE is built in to windows at deep levels.
      No it's not. See XPLite to remove all traces of IE.
      The GDI is set up such that a crash in the video routines kills the whole kernel.
      This is because win32 got moved into kernel mode in NT4. Before NT4, GDI ran entirely in user mode; if it crashed, noone in kernel mode even noticed. Win32 is still not, however, integrated with anything in kernel mode. All of kernel mode win32 is in win32k.sys.
      By contrast, it is possible to run Linux without a single line of browser code anywhere on the system, or without any gui of any kind if you like.
      Linux is a kernel only. The Windows NT kernel will happily run with no GUI. Setup (phase 2 in 80x50 text mode) and the recovery console run with the same kernel and the same drivers as IE does, but without any win32. The problem is that Win32 depends on having a GUI and there are almost no applications that can use the kernel's native API without win32.
    8. Re:Hmmm... by rsidd · · Score: 5, Funny
      If this is a flagship Operating System, then Dijkstra's life was in vain.

      It was, anyway.

      Dijkstra: "It is practically impossible to teach good programming style to students that have had prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."

      Microsoft: Visual BASIC.

    9. Re:Hmmm... by 808140 · · Score: 5, Interesting

      Wow, and out come the slashbots.

      If you actually took the time to reread what I wrote, you would realize (it seems none of my sibling posts have) that I am in fact not comparing Linux to Windows at all.

      Instead, what I am doing is making an analogy regarding modular design. It is common sense that a system designed to be stable should minimize the number of components that are so essential that, if they were to crash, would cause the whole system to come down.

      In MS Windows, this unfortunately includes the Windows GDI -- for some illuminating reading on some of the core design decisions Microsoft made with NT/XP, check out the ReactOS FAQ and mailing list. In trying to reimplement Windows they've really dug some interesting stuff up (none of it was secret, but now it's all in one place.)

      My point is that when someone says, "The reason Windows is fundamentally insecure is because it was designed in a kludgy, non-modular way, where non-essential things like the GDI can crash the whole system," all the Slashdrones immediately understand the insightful nature of the observation. Having the GDI in ring 0 is just braindead.

      However, due to their fanatical devotion to Linus -- let me say that I greatly admire the man and consider him one of the best, if not the best, OSS dev out there today -- they take his opinions on the macro/microkernel debate without so much as a critical thought. But as Bob Dylan said, "Even the President of the United States must sometimes have to stand naked."

      The truth is, the logic that makes "putting the Windows GDI in the kernel" stupid is the same logic that ought to damn macrokernel-based designs. Here's something interesting for you to contemplate: most Windows cashes happen in drivers, not in the GDI. Actually, the Win32 GDI is quite mature and while a) it probably has caused its share of crashes and b) putting it in the kernel was one of the stupidest design decisions ever, most crashes do not happen because of faults in the GDI these days. They've had a lot of time to iron these bugs out.

      The problem is, simply put, drivers. These are mostly written by third parties and due to NT's monolithic kernel design, they are running in kernel space. So a crash in a driver means the whole system comes down.

      A microkernel sandboxes things like drivers and has them run in something more like user space; as a result, just as process on Linux can't crash the kernel, a driver on L4 can't crash the kernel.

      Now, when Linus started developing Linux, he had a number of very good reasons to go with a monolithic design. One: it was easier, from a design perspective, both for developing and hacking. Two: the major microkernel, CMU Mach (and similarly, GNU Mach) were a) very slow, much too slow to be practical on the 386s that were state of the art in 1991 and b) actually not really all that micro-. Not to mention that GNU Mach, at least, didn't solve the driver problem because it actually ran most drivers in kernel space.

      Furthermore, at the time, Linus didn't expect Linux to become what it is today; reading his early posts, he fully expected Hurd to be released RSN and he was just providing something for hackers to mess around with until that happened. And it never happened.

      Don't think that by pointing out a problem with Linux that I am in any way against it. I run only Linux, and I'm a zealot by any stretch of the imagination. I just worry about its future -- in the old days, Linux was a Free Software only kind of beast, with all its drivers open source because they were reverse engineered by the community. But look at how fast Linux is gaining popularity: how long will it be before it really does begin to compete with MS on the desktop, and IP-happy hardware vendors start releasing binary drivers en masse?

      And then we're back to square one: normal users running non-free blackbox kernel modules written by corps that care nothing f

    10. Re:Hmmm... by IamTheRealMike · · Score: 4, Insightful
      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.

      I have to take exception to that. The GUI subsystem most certainly is integrated into the kernel - not only does it run in kernel mode but its location there basically makes objects like menus, windows, images ... even metafiles (!) kernel level objects which can be created in one process and then passed to another and used there. Applications rely on this ability.

      Don't forget crap like the registry running in kernel mode as well.

      I mean, how on earth do you define integrated into the kernel if not by applications expecting it to be there?

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

  2. Don't look a gift horse in the mouth by Anonymous Coward · · Score: 3, Insightful

    We do not want to waste our time with dead-end APIs as we are vastly under-resourced, so we must choose carefully..

    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 .NET API, he shouldn't bite the hand that feeds him!

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

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

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

  6. Re:Joe Beda talks the talk.... by stratjakt · · Score: 5, Insightful

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

  8. Architecture Philosophy by FlutterVertigo(gmail · · Score: 5, Interesting

    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.

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

    1. Re:Architecture Philosophy by asr_man · · Score: 4, Insightful

      There are other companies which spend a lot of time on the architecture - almost to a fault...

      As in FSF Gnu Hurd?

      In the limit of taking your sweet time getting the architecture right, you risk something else coming along and getting enough of it right to scratch the feature itch before you do; from that point your market irrelevance is proportional to the difference in delivery dates.

      No one is in a hurry to get on the wrong track, but assuming your competitors aren't totally stupid there is an equally unpleasant consequence for being the last one out of the station.

  9. Two observations by jvmatthe · · Score: 5, Interesting
    • 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.
    1. Re:Two observations by SilentChris · · Score: 4, Interesting

      "Microsoft talking design and technologies out in the open with other developers who aren't Microsoft employees?"

      Microsoft doesn't. Microsoft's developers do. Check out the MS Research site and the stuff they have released (like that project on Sourceforge).

      I've always said there's a big difference between the "large scary corporation" and the employees. The employees are humans like everyone else. It's only the company as a whole that's done anything truly wrong.

    2. Re:Two observations by chrisan · · Score: 4, Interesting

      I'm glad you like that we are listening. As for outside the cathedral thinking, I wish I spent more time on technologies that weren't MSFT based, but I keep pretty busy. I have used Java, Cocca (a little), and KDE (a tiny bit)... I totally agree that broad base of understanding is key to actually creating good software.

      --
      ChrisAn http://blog.simplegeek.com
    3. Re:Two observations by killjoe · · Score: 4, Insightful

      "It's only the company as a whole that's done anything truly wrong."

      Huh? How did the company do the wrong things without the humans that work for the company?

      Everybody who works for MS has to shoulder the blame/credit for everything MS does. They all help whether directly or indirectly. You don't get a pass just because you are nice guy, your salary is what it is because your company is an asshole and the people who run your company are immoral bastards.

      --
      evil is as evil does
  10. Re:As far as I understand... by ryanmfw · · Score: 3, Informative
    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.

    --
    Hurricane Ivan: A 17th century prison collapsed. All of the inmates escaped.
  11. Re:Joe Beda talks the talk.... by sebby1234 · · Score: 3, Informative

    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.

  12. Re:As far as I understand... by Anonymous Coward · · Score: 3, Insightful

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

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

  14. Ease of use and elegence with GUI toolkits by ShatteredDream · · Score: 5, Interesting

    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.

    1. Re:Ease of use and elegence with GUI toolkits by sporty · · Score: 5, Insightful
      Amen! The idea that a widget is an object, that can listen for events, such as being clicked, or scrolled or something, is what OOP is all about. Something can have attributes and do something.


      More-so, the "most difficult" layout manager is actually the simpler. GridBag. Even if I assign the constraints and add widgets in haphazard order, so long as i set the x and y right, they go in the right place. It is almost like html in how it works, except html requires ordering of the statements.


      So please, tell me.. why is swing difficult? It's overwhelming because people don't do graphical stuff from the getgo, just like tk and what not. The difference is, swing just makes sense. Now it's not to say others DON'T make sense. perl/tk makes a lot of sense too, but the oop in perl is weak, so it's easier to make tpyos and screw things up once in a blue moon... especially sans strict.

      --

      -
      ping -f 255.255.255.255 # if only

  15. Ignoring standards by kidlinux · · Score: 4, Insightful

    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.
    1. Re:Ignoring standards by Tumbleweed · · Score: 4, Insightful

      SVG and CSS both were passed on because they weren't adaquate to meet our needs.

      Well, if one were to use Microsoft's implementations of SVG & CSS, I totally agree. :)

    2. Re:Ignoring standards by Isomer · · Score: 5, Insightful

      I remember reading something by some ex-microsoftie. One of the comments he said stuck in my mind. he said that it's not that microsoft doesn't like standards, it's more that if you follow a standard, then you're admitting that you can't do better than the standard. Why use opengl when you could change a whole heap of things to make it "better" and have directx instead?

      Which seems to me to miss the point of having standards. The value in standards isn't in whatever the standard specifies, it's the fact that everyone else is implementing the same standard.

    3. Re:Ignoring standards by chrisan · · Score: 5, Interesting

      I tried to expand on my comments in my next post... "First, an old post from Joe Beda about SVG and XAML. Second, dismissing the CSS debate isn't really fair. A critical part of our design is unification. We didn't want one markup model for vector graphics, one for styling, one for 3D, one for data, etc. Another part of the unification was "Markup == OM", that is, we didn't want a separate markup programming model from code. HTML is this way, the markup and the code have a loose relationship. If we ignore the unification debate, I can understand how it seems simple to say "you should have used SVG". Avalon is a developer platform. We want to enable an entirely new breed of applications that span UI, graphics, and media. Integration of typography with imaging with video with controls with styling is a core part of our value proposition. We aren't trying to create a new 3D system or animation system, we are creating a new developer platform. "

      --
      ChrisAn http://blog.simplegeek.com
  16. 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
  17. About inheritance and the API by SilentChris · · Score: 4, Interesting

    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.

    1. Re:About inheritance and the API by IrresponsibleUseOfFr · · Score: 5, Insightful

      The average programmer doesn't care the the hierarchy is 10 or 11 levels deep (well at least until the next avalon release comes out). But Microsoft should care, and Ximian also cares. Very deep inheritance hierarchies are tough to maintain. Inheritance is a pretty intimate binding of two classes and changes higher up in the hierarchy sometimes have disasterous changes down the line. From a talk that I heard Stroustrup give, he doesn't care for them much either. (I didn't attend this one, but I imagine it is the same based on the slides.)

      In this day and age, the commonly accepted wisdom is that you break functionality into interfaces and you write shallow helper classes to degalate to for common implementations of those interfaces. (C# is quite possibly the best language there is for supporting this architecture.) This way you don't force the user to use implementations they don't want when they want to program to a particular interface in your system.

      If you look at the code for eclipse, you'll see a good example of this design in action.

      --
      Facts are meaningless. You could use facts to prove anything that's even remotely true! -Homer Simpson
  18. They just don't get it by quanta · · Score: 3, Interesting
    I do not think I could have solved a problem of this magnitude, am sure the complexity is huge and the Microsoft folks are doing their best, but maybe a change in the way that features are interlocked and how those are delivered to users must be rethought.

    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.

  19. Re:Joe Beda talks the talk.... by westlake · · Score: 3, Insightful
    Doom 3 also does not use Direct X. It uses OpenGL. All id games use OpenGL. That's what makes them special. ;0

    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.

  20. Re:Joe Beda talks the talk.... by DAldredge · · Score: 5, Informative

    That isn't the right one.

    http://slashdot.org/~miguel

  21. Re:MFC by MasterDater · · Score: 3, Insightful

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

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

    1. Re:The fake Miguel de Icaza posts. by don.g · · Score: 5, Funny

      Wow, I never realised I was Miguel.

      I must tell all my friends. They will be confused.

      --
      Pretend that something especially witty is here. Thanks.
  23. Re:As far as I understand... by miguel · · Score: 5, Interesting

    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.

  24. 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
  25. Re:Joe Beda talks the talk.... by Anonymous Coward · · Score: 3, Informative

    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

  26. English Please by Zebra_X · · Score: 3, Insightful

    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.

  27. Re: Ctrl+Alt+Delete makes my M$ Secure?? by jdunn14 · · Score: 3, Insightful

    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.

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

  29. Re:Ad Nauseum by codemachine · · Score: 3, Interesting

    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.

  30. Has anyone tried out Athene desktop by pkphilip · · Score: 3, Informative

    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.

  31. New reply by bonniot · · Score: 3, Informative

    New reply from the Microsoft guy.

  32. Re:As far as I understand... by FecesFlingingRhesus · · Score: 3, Insightful

    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.

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

    [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