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

Miguel de Icaza Debates Avalon with an Avalon Designer 419

Posted by CowboyNeal
from the in-yo-face dept.
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:
  • Hmmm... (Score:5, Funny)

    by NEOtaku17 (679902) on Thursday September 09, 2004 @09:48PM (#10208665) Homepage
    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. "

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

      by Anonymous Coward
      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.
  • 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!
  • What on earth is the 5% other Operating Systems in this link [ximian.com]?

    Amiga? or the "dying" BSD?

  • by FlutterVertigo(gmail (800106) on Thursday September 09, 2004 @10:05PM (#10208818)
    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
    • 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.

  • Two observations (Score:5, Interesting)

    by jvmatthe (116058) on Thursday September 09, 2004 @10:10PM (#10208847) Homepage
    • 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.
    • Re:Two observations (Score:5, Interesting)

      by SilentChris (452960) on Thursday September 09, 2004 @11:08PM (#10209270) Homepage
      "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.
      • 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.
    • Re:Two observations (Score:4, Interesting)

      by chrisan (740929) on Friday September 10, 2004 @12:26AM (#10209714) Homepage
      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.
    • I'm glad to know Miguel has at least a passing familiarity with GNOME. Otherwise he'd be much harder to take seriously. [/sarcasm]
  • by ShatteredDream (636520) on Thursday September 09, 2004 @10:26PM (#10208982) Homepage
    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.
    • 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.

    • 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

  • debate? (Score:2, Interesting)

    by Anonymous Coward
    Since when were 3 commentless blog posts considered a debate?
  • Ignoring standards (Score:5, Insightful)

    by kidlinux (2550) <duke@sp a c e b o x.net> 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 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)
      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.
    • 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 spectecjr (31235)
      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
    • by chrisan (740929) on Friday September 10, 2004 @08:54AM (#10211462) Homepage
      I tried to expand on my comments in my next post [simplegeek.com]... "First, an old post from Joe Beda about SVG and XAML [eightypercent.net]. 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. "
  • by SilentChris (452960) on Thursday September 09, 2004 @11:13PM (#10209319) Homepage
    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.
    • 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.

  • by quanta (16565) on Thursday September 09, 2004 @11:28PM (#10209412)
    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.

  • by servoled (174239)
    "My concerns stem from the fact that we do not want to waste our time with dead-end APIs as we are vastly under-resourced, so we must choose carefully."

    So? Does he expect Microsoft to change what it is doing because they don't have the budget to port everything they are releasing? If you don't feel like it is a priority then fine, but I fail to see how that should factor into a analysis/review of the software itself.

    Then again it seems to be increasingly rare for people to make unbiased decisions these
  • 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.
  • 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.
  • 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.
  • 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.
  • Listen Folks (Score:3, Interesting)

    by codepunk (167897) on Friday September 10, 2004 @09:39AM (#10211847)
    I wrote software on a windows platform for years. The problem with MS is that it is first and foremost a marketing driven company. They don't release any software unless it somehow ties you to the operating system.

    I don't want to be chasing their tails I like technically driven solutions. If you want to make me a linux developer happy give me this. Take mozilla and make it a real development platform. Put a nice clean api on it and let me use mozilla to write all of my software so it will run fast on anything. This is what I want, doing so would neutralize the platform, the only thing I care about.

Almost anything derogatory you could say about today's software design would be accurate. -- K.E. Iverson

Working...