Hi Dave, Thank you for pointing out where I might still have assumptions I've not yet recognized. My comments are in-line.
On Thu, 14 May 2009, Dave Miner wrote: > Clay Baenziger wrote: >> Hi Dave, >> My apologies, I think I did a poor job of communicating some >> assumptions in my e-mails. However, I think using AI will help the intern >> team; some of the benefits I see are: >> >> *To interface with the AI engine an XML manifest only needs be provided. >> XML can easily be verified and is a well defined format which can be >> verified by the team as they develop, allowing for an easy incremental >> development process. >> >> *Building a UI is one component required for a text installer. If >> the Slim Engine is used, then a UI and an ability to interface with the C >> based Slim Install framework will be needed. This is two components and >> thus more complexity and code the team would need to develop to reach the >> same end goal. >> > > I'm not sure I buy your comparison. I look at it as: > > - the existing GUI interfaces to the slim engine using C, so examples of > doing that are available I agree that there are examples, but I see the maintainability of C code to be inferior to that written in Python as any new functionality will need to be coded up from scratch and error handling in C must be done at a far lower level than using the OO try/except methods in Python, for example. Further, Python has what appears to be a mature curses library interface[1] which should allow them to take full advantage of Python error handling and rapid object-oriented coding practices without much effort. 1: http://www.amk.ca/python/howto/curses/ > - there is no existing code written to emit AI manifests. That'll have to be > developed from scratch. Though there is no code to emit AI manifests, there are example AI manifests which could be modified and there are XML engines in our source base which can easily be used to output XML. For example, LXML[1] has an Element Tree API which is geared explicitly to creating an XML document. (It's how the AI webserver generates XHTML.) Further, the output for the team then can be validated against the AI schema which is a very easy target to test against. 1: http://codespeak.net/lxml/api.html > I suspect you have an unstated assumption about how the team might implement > a text UI which perhaps is coloring your evaluation? I think I mainly see the team as being well versed in C++ and Java but not C, so feel Python to be a more natural fit for us to learn from their OO skills and experience, rather than fitting them into a C world and us into more C code which could be written in a higher level language. Admittedly I hold a strong insecurity about using C versus a more modern language which I suspect is a strong bias away from C solutions. > Beyond that, there's no useful progress reporting from the AI engine, while > there is well-defined functionality for that built into slim. I'd view > useful progress reporting as an essential feature of a UI. I agree! This is an drawback which I had not pondered long on. Though there is work to be undertaken here for AI -- we know it needs better progress reporting -- until that API is defined this is a problem. However, the team could define an API for receiving such information. Thus, when implemented, it will seamlessly integrate. This work could aid us in implementing better progress reporting from AI too. >> *Using the AI engine allows maximal functionality in the future, however, >> if the Slim Engine is used that limits future functionality as that >> engine was never developed to be a configurable and extensible >> installer - it serves our "one button install" use case - only. >> >> *A "one button install" straightforward and simple use case can be built >> through an AI manifest without exposing all of the features of AI, if we >> don't want to. >> > > Both of which are true, but their value depends on establishing the desired > functionality. Yes, of course, I see a wide open future as good -- but it's not always actually of use and sometimes causes problems with clarity. Still, however, I see any functionality we'd like to add above a one button type install as requiring modification to the slim install bits opposed to simply rearranging XML. Thank you for your insights on why the slim engine is a potential choice, as I had not see compelling arguments that way and I now feel I could at least defend the choice. I still don't feel it's as useful as using AI, however. Thank you, Clay > Dave >