Re: Questions about netwindows, probably a faq
Alex Russell <[email protected]> Wed, 7 Apr 2004 07:29:44 -0700
| Newsgroups | gmane.comp.windows.devel.netwindows |
|---|---|
| Organization | netWindows.org |
| Message-ID | <[email protected]> |
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hey, On Wednesday 07 April 2004 1:05 am, Austin Schutz wrote: > On Sun, Apr 04, 2004 at 01:06:47PM -0800, Alex Russell wrote: [ snip ] > > As for raw number of widgets, I don't think we're the most > > capable in that regard, but we're getting there. > > My own "pie in the sky" wish is to be able to have a toolkit to > write web applications with. This, in my mind, means replicating > (where necessary) all the lowest level objects available in > windowing toolkits and aggregating them into widget classes where > possible. Certainly you can't do everything in javascript (such as > canvas widgets), but you can get most of the way there as > netwindows demonstrates. Our intent is to provide the tools one needs to build web apps that give the user better interaction, lower interface latency, and higher usability while keeping the advantages of developing as a web app in the first place. This means that we aren't going to go ahead and give you objects that do every little thing (the DOM already does most of that for us), but we WILL give you objects and widgets that the browser doesn't intrinisically provide, as well as a straightforward way to build your own custom widgets if/when you need to. Now, as to your point about the browser not being able to do everything, it hasn't stopped people from trying. Isomorphic, domAPI, and dynAPI in particular have taken the full re-implementation route and built everything up from "canvas" ojects. I have explicitly avoided this kind of re-work as I don't think it's really valuable. What benefit do I get by ensuring that my toolkit can't take advantage of improvements in browser rendering, etc...? I guess at the end of the day, there's a difference in philosophy if toolkit design. Whereas some of the other toolkits I mentioned attempt to get everything to be pixel-perfect all the time, NW takes a more web-ish approach to DHTML widgets. That might be what you're looking for, it might not be. You have choices, though. > With a full suite of basic widget classes and a message passing > mechanism (both of which netwindows has to a great degree) it will > be possible to replicate many complex applications directly on the > web, where all the UI stuff is directly handled by the client but > application logic is done by the server, maybe in an explicit > fashion using SOAP (web services in ms parlance) as a language > independent API. You "get it". Nice to see = ) > So that's _my_ goal: to replicate a base set of widgets in a > consistent manner to form a gui application toolkit, not just a > clever set of handy widgets as some of the other libs seem to > offer. I don't care about handy widgets, I care about extensible > base widgets - handy widgets will flow from those. We aren't the only ones thinking this way about what the browser can do, but it's still rare. It doesn't help that DHTML has been pigeonholed and that most DHTML toolkit development has ceased. > Netwindows seems like it's mostly there, but there doesn't seem to > be the explicit goal of supporting a specific toolkit's set of > widgets - or did I miss it? I have no intent to look at some other toolkit and say "oh, we need X to become workable as a replacement for Y". Re-doing QT in the browser or GTK, or AWT/SWING doesn't make any sense to me. There might be some room for that when we get to an SVG port of the toolkit, but I have my doubts. We need a browser-centric toolkit, and that's what NW is trying to provide. > I noticed the signal/slot mechanism > which is similar to that used by qt, but there's no mention that > supporting qt base widgets is a goal. It's not. I work on widgets that people express a need for. > Also, unless I missed it, > there doesn't seem to be a set of geometry management tools - I > think that's what they're called - methods such as 'place' and > 'pack' as there are in other toolkits. Other toolkits require these because they don't have an environment that already gives these to them. DHTML, OTOH, exists in an environment that already has a box and bounding model, a reflowable set of containers, and a table implementation that can be used to emulate most of these constructs. Things like our split-pane widget help to fill in the gap where these don't automatically give you what you need, but we're not going to re-do a lot of work that browsers are designed to handle. That said, I've been thinking lately of doing a cross-browser xul-ish <box> thing. The building blocks are there on most of our target platforms. > I suspect that wasn't part > of the original goal since typically formatting is done in html > itself, but it would be important for an application toolkit. Well, that depends. You already have programatic control over HTML, I see no need to give that additional syntactic sugar that just increases the size of the toolkit. We assume our heavy users are DOM clued, because otherwise you wouldn't be successful in building an app in the browser anyway. > Anyway, I can't tell if that's either a really obvious idea and > basically what you're up to, or if it's just crazy and not close at > all, but it _sounds_ cool. If we could do it and have performance > not suck too horribly people would beat down our doors to get it. > > Seriously, is that nuts? No, but I think that if you bend your world view a little bit, you'll see we're closer than you think. If you consider that the browser gives you most of the things you think are missing from NW already, and that with sigslot you can "connect" up these things to NW primitives, you start to get the general idea of how you can use NW to get where you're going (in large part) already. Try thinking of NW as a plugin for the DOM and I think you'll get a better feel for how you can use our stuff to make your app happen. Now, one of the reasons we haven't done the obvious thing that you suggest here (which is to implement wrappers around what the browser can already do) is becaues of the caveat that you outline. Performance for the user in the browser is related not only to runtime speed but also to initialization time. Toolkits that have taken a more heavyweight approach (like Isomorphic) have seen their toolkit size after crunching move upwards of half a meg. At that point, I think your toolkit looses it's credability as a browser-friendly app platform, in part because it takes so damn long to just re-eval() your toolkit on multiple pages. NW tries to have it's cake and eat it too by providing a more friendly integration path for apps that aren't going to be moving to an "everything in one page" model any time soon, but also giving people who whant to do that the tools they need. So, now it's your turn to tell me: is that nuts? Regards - -- Alex Russell [email protected] BD10 7AFC 87F6 63F9 1691 83FA 9884 3A15 AFC9 61B7 [email protected] F687 1964 1EF6 453E 9BD0 5148 A15D 1D43 AB92 9A46 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (Darwin) iD8DBQFAdBBYoV0dQ6uSmkYRAh5kAJ99hG+esS+/3dvJj+zQmV30glGAkwCeLCRK k15mWMkFLrobRtn1TED+Qec= =e1YW -----END PGP SIGNATURE----- _______________________________________________ The netWindows developers list: [email protected] http://netwindows.org/mailman/listinfo/devel_netwindows.org