FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Architecture and roadmap discussion

 
Post new topic   Reply to topic     Forum Index -> DXUL
View previous topic :: View next topic  
Author Message
gbatyan



Joined: 18 Jul 2005
Posts: 1

PostPosted: Fri Jul 22, 2005 9:59 am    Post subject: Architecture and roadmap discussion Reply with quote

DXUL should become the implementation of XUL GUI in D.
(http://www.mozilla.org/projects/xul/)

Disclaimer

The below is merely my point of view, some assumptions may be naive or wrong, since I don't have too much experience in the role of a GUI architect. Everyone is invited to take part in refining the concept, defining the roadmap, etc. Especially help from anyone with solid knowledge of mozilla source code is appreciated.
Whatever I say, Mozilla developers are doing a great job! Smile

Motivation

  • At the conceptual level XUL is very attractive in very many ways, one could speak for hours about it, everyone nor familiar with XUL is encouraged to at least take a look at it's concept.
  • XUL has a serious background. It has been designed by thorough collaborative effort of many professionals, which means instead of attempting to design a new XML based GUI from scratch it is a good bet to take the valuable design experience of XUL as a starting point for a new ultimate GUI library for D.
  • DMDScript provides a great and ready to use JavaScript engine.
    By the way, a few small tests, I have made in past, have shown that DMDScript outperforms the mozilla's JavaScript engine SpiderMonkey in speed by a factor of around two !!!
  • The concepts of D and XUL make me think they will perfectly interoperate in a very legant and efficient way. The code can definitely be much cleaner than mozilla's C++ source.


Goals

  • It is clear that implementation of the entire XUL standard is an enormous undertaking. I wouldn't even dare to really take this as an ultimate goal. Even the way till the first window with a button is far enough. IMO any temptation to forge the first proof of concept demo application as quickly as possible should be abandoned Smile
    It is of an ultimate importance to thoroughly elaborate the architecture before writing the first lines of D code.
  • In contrast to mozilla's implementation have a lightweight core and be truly modular from the beginning. This should not become a browser framework, but a GUI framework in first place. No half-gigabyte of sourcecode and tens of megabytes of binary distributions.
  • The library should 'fix' the drawbacks of the mozilla's development environiment. I believe it is possible to elaborate an elegant structure much simpler and maybe even better than the overbloated ridiculously complex mess like mozilla's source tree. Drop everything not directly relating to the XUL GUI and go step by step bottom-up in development. I think alone the fact that it's D and not C++ implies that simpler structure and less code for the same functionality is possible.
  • Attract more developers by elegant design and ease of getting involved. I think it is a suicide for a project like this to have a few core geeks coding in a closed manner with a postponed intention to explain how everything works some day in far future. It is not the way to achieve a more or less constant progress.
  • Not even necessary to mention that it should be cross platform so as mozilla.


Roadmap suggestions

  • Study mozilla source code in depth, decide which concepts, class structure, etc may be reused, what should be dropped/rewritten taking into account the benefits provided by D. This step must be done with extra care since it will affect anything else.
  • Make all the painful decisions such as string class vs char[], container and template philosophy, etc. This should not become another place to start flame wars about the concepts as such but concentrate on making the right decisions for this particular project.
  • define the cross-platform drawing toolkit and implement it on linux and windows platforms.
  • implement layouting and a few basic widgets with completely stripped down set of adjustable properties.
  • plug in DMDScript, implement GUI event mechanism and a few event handlers for the widgets.


Once the above is done the project may be considered to have passed the bootstrapping phase and should provide a solid well documented codebase for implementation of the rest of the XUL's bells and whistles.

Everyone is welcome to join!
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic     Forum Index -> DXUL All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group