Slashdot is powered by your submissions, so send in your scoop

 



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 Anonymous Coward on Thursday September 09, 2004 @09:52PM (#10208694)
    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!
  • MFC (Score:1, Insightful)

    by TheRealMindChild ( 743925 ) on Thursday September 09, 2004 @09:53PM (#10208709) Homepage Journal
    The obviously didnt learn with MFC.
  • Ad Nauseum (Score:1, Insightful)

    by Metallic Matty ( 579124 ) on Thursday September 09, 2004 @09:54PM (#10208724)
    New news, same story:

    - Icaza insults Microsoft policies.
    - Nerds rally behind Icaza, he's just so smart to stand up to Microsoft and point out things we already knew.
    - Other, more cynical nerds point out flaws in what Icaza said, possibly contradictions to previous comments or connections with MS.
    - Mods find this comment flamebait, mod it down.
    - No one cares.

    ?????

    - Profit!

    Mod this insightful, you insensitive clod.
  • by stratjakt ( 596332 ) on Thursday September 09, 2004 @10:00PM (#10208776) Journal
    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.
  • by melgeroth ( 726004 ) on Thursday September 09, 2004 @10:04PM (#10208805)
    Actually, I think that's the *point*. He isn't just blindly grabbing and/all APIs Microsoft decides to procure. He is questioning this for a reason.

    That said, I hate .NET/Mono *and* Java, so my opinion is moot here.
  • by stratjakt ( 596332 ) on Thursday September 09, 2004 @10:09PM (#10208844) Journal
    Well explain the point of the "if your APIs are gonna be dum then I'm just not going to copy them so nyah nyah" stuff?

    that's like, wacky
  • by Anonymous Coward on Thursday September 09, 2004 @10:16PM (#10208902)
    "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.
  • by PeterPumpkin ( 777678 ) on Thursday September 09, 2004 @10:21PM (#10208953) Journal
    Mostly cellphones and pocket PC's. And then the BSD's, Amigas, HP-UXes, etc.
  • Re:Hmmm... (Score:2, Insightful)

    by Anonymous Coward on Thursday September 09, 2004 @10:29PM (#10209005)
    Sample XP SP2 Firewall rule:

    netsh firewall set portopening TCP 445 SUBNET

    OR

    netsh firewall set portopening TCP 445 ALL

    OR

    accept the XP SP2 default and live with a machine ye can't remotely admin on yer win2k network.

    XP secutiry.
  • Ignoring standards (Score:5, Insightful)

    by kidlinux ( 2550 ) <<ten.xobecaps> <ta> <ekud>> on Thursday September 09, 2004 @10:40PM (#10209071) Homepage
    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 [falstad.com]. 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.
  • by sporty ( 27564 ) on Thursday September 09, 2004 @10:50PM (#10209145) Homepage
    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.

  • by Anonymous Coward on Thursday September 09, 2004 @11:22PM (#10209380)
    How does the date in the url give you any indication that it is insightful commentary as opposed to a gaping anus?

    Both URLs are equally opaque as to their content.
  • by westlake ( 615356 ) on Thursday September 09, 2004 @11:32PM (#10209432)
    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.

  • by Tumbleweed ( 3706 ) * on Thursday September 09, 2004 @11:42PM (#10209493)
    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. :)
  • by Trelane ( 16124 ) on Thursday September 09, 2004 @11:45PM (#10209508) Journal
    What do they know about the coming decade that we don't?


    They know that they have a monpoly and a disinterested userbase and thus they know that they can push anything down our throats that they want and most people won't care.

    We (anyone who's not part of Microsoft) have no such knowledge nor power.
  • Re:MFC (Score:3, Insightful)

    by MasterDater ( 810357 ) on Thursday September 09, 2004 @11:59PM (#10209573)
    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..
  • by Isomer ( 48061 ) on Friday September 10, 2004 @12:07AM (#10209620) Homepage
    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.
  • by BawbBitchen ( 456931 ) on Friday September 10, 2004 @12:18AM (#10209677) Homepage
    so I will....

    after years of programing I have come to the following:

    1. Object-C rules. NeXT was the best.
    2. Aqua is better thought out then any of this crap!

    Just my 2 cents.

    Oh, yes I am an Apple Fan Boy and proud of it!

  • Re:Hmmm... (Score:5, Insightful)

    by alienw ( 585907 ) <alienw.slashdot@ ... inus threevowels> on Friday September 10, 2004 @12:20AM (#10209691)
    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?
  • by asr_man ( 620632 ) on Friday September 10, 2004 @12:41AM (#10209784)

    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.

  • English Please (Score:4, Insightful)

    by Zebra_X ( 13249 ) on Friday September 10, 2004 @01:13AM (#10209930)
    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.
  • Re:Hmmm... (Score:2, Insightful)

    by DunbarTheInept ( 764 ) on Friday September 10, 2004 @01:33AM (#10210037) Homepage
    Monolithic kernel != monolithic OS.

  • by IrresponsibleUseOfFr ( 779706 ) on Friday September 10, 2004 @01:37AM (#10210055) Homepage Journal

    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 [fnal.gov] that I heard Stroustrup [att.com] 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 [eclipse.org], you'll see a good example of this design in action.

  • Re:So? (Score:3, Insightful)

    by jjohnson ( 62583 ) on Friday September 10, 2004 @01:43AM (#10210088) Homepage
    Do you mean there was a time when people *were* making unbiased decisions?
  • by jdunn14 ( 455930 ) <jdunn&iguanaworks,net> on Friday September 10, 2004 @02:11AM (#10210197) Homepage
    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.
  • by spectecjr ( 31235 ) on Friday September 10, 2004 @02:20AM (#10210234) Homepage
    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?


    Would you care to explain to the crowd what you think CSS and SVG are "standards" for?

    From what I've seen, they're standards used on web pages.

    Avalon is not a HTML-based UI. You don't write web pages for the UI for Longhorn. So which bit of CSS and SVG do you think would be sufficient without modification to be used for generic client-side API use?

    HTML, by the way, was never meant to have an IMG tag. By your logic, it still wouldn't have one today. Similarly, we'd only ever use 7-bit ASCII and not Unicode.
  • by killjoe ( 766577 ) on Friday September 10, 2004 @02:54AM (#10210327)
    "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.
  • object model (Score:2, Insightful)

    by smallguy78 ( 775828 ) on Friday September 10, 2004 @04:45AM (#10210614) Homepage
    The object hierachy does look horendous for buttons compared to .net 1.1/2.0 which has System.Object System.MarshalByRefObject System.ComponentModel.Component System.Windows.Forms.Control System.Windows.Forms.ButtonBase System.Windows.Forms.Button I hope .net doesn't go the way of the java framework - complex and unintuitive - as this is what attracted me to .net from java in the first place, the excellent hierachy of the classes, the extra functionality and also the extra bit c# has. Having said that, Chris Powell does point out that it's not even beta yet...
  • Re:Hmmm... (Score:5, Insightful)

    by IamTheRealMike ( 537420 ) on Friday September 10, 2004 @04:57AM (#10210646)
    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?

  • Comment removed (Score:2, Insightful)

    by account_deleted ( 4530225 ) on Friday September 10, 2004 @07:06AM (#10211011)
    Comment removed based on user account deletion
  • by FecesFlingingRhesus ( 806117 ) on Friday September 10, 2004 @10:20AM (#10212265)
    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
  • Re:Hmmm... (Score:3, Insightful)

    by Foolhardy ( 664051 ) <`csmith32' `at' `gmail.com'> on Friday September 10, 2004 @12:52PM (#10213877)
    Wine deals with the shell and user mode libraries at most. Windows is more than the shell. The shell is hardly a deep level. Yes, Internet Explorer is integrated with the shell. Yes, many third party apps depend on shell libraries. Microsoft promises that those shell libraries will always be available so developers use 'em.

    The Windows shell is basically equivalent to Gnome or KDE. If you remove KDE, many KDE applications break; when you remove a library, the things that depend on it break. Internet Explorer is as much integrated into the OS as KDE or Gnome are integrated into a Linux distro. Isn't Konqueror (espescially the shared libs that implement it) integrated into KDE?

He has not acquired a fortune; the fortune has acquired him. -- Bion

Working...