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