Part Two of our interview series finds us eavesdropping on a conversation with Ramon Chen, Product Manager for Obsydian and Adrian Slade, one of the Principal Software Engineers at Synon, during a recent flight to IBM Rochester ...
Adrian Slade has been with Synon for 2 ½ years. He is a Principal Software Engineer based in the Synon Development Lab in Larkspur California, USA. Prior to joining Synon he was an independent Synon/2 consultant. He started using Synon/2 at R2.0 around 1985 in England on a project with about 16 developers. In 1990 he started his own company, providing consulting services to several major Synon/2 users in the UK. He is integrally involved with the development of Obsydian and its class libraries. His favorite food is Shredded chili beef from the Chef Peking in Henley-on-Thames, England. He enjoys Pink Floyd and Alanis Morrisette, sports scuba diving, sailing and his favorite movie is "2001: A Space Odyssey"
Ramon Chen: So what exactly is the meta?
Adrian Slade: Oh nothing, whats the matter with you?
RC: Seriously, Im sure everyone out there is wondering what meta is.
AS: Simply put, meta is information about information. In the context of Obsydian, meta code allows a developer to define instructions which modify the generation process based on information in the Obsydian model.
RC: How and where is the meta stored?
AS: The meta code is stored in action diagrams. It is easy to spot because it always starts with a +. It operates on meta data which is just the objects and triples you see in the model editor.
RC: Can you give us a simple example of the power of some meta code?
AS: With two lines of meta code you can clear the values from all the fields on a panel. With one extra line you can then set them to a default value, if it has been defined in the model. If there are fifty fields on the panel this would take quite a few lines of normal code.
RC: Most people find meta a mystery. Its one of the more requested Obsydian education topics.
AS: I am currently working on a presentation which will be given at user conferences containing information about meta code and its uses.
RC: Ah, a sort of a meta, meta presentation . Wheres the best place in Obsydian to look for meta code?
AS: The current Abstract Business Objects Class Library (OBASE) has several examples of meta logic.
RC: Could you please explain the different types of class libraries available in Obsydian?
AS: There are three types : Base, Framework and Technology. The Base set, which includes OBASE, OBJECTS and OBDATE, have objects which are commonly used in application development projects. The frameworks are partial or complete applications that are ready to be generated and compiled. The Security framework is a good example of this type of library. The Technology libraries have objects to leverage specific features of the various deployment platforms. We are just completing the one for the new Windows NT/Backoffice generator.
RC: Can you tell us how the original Obsydian class libraries were developed?
AS: OBASE and OBJECTS were the first class libraries to be developed. We set out to provide suites of functions, similar to ones which repeatedly get created during most application development processes. Parts of the design were also taken from Synons SMA/Financial Application and then further enhanced by the contribution of experienced Obsydian customers.
RC: So the class libraries are a conglomeration of knowledge represented by many person years of development experience. Exactly how much effort goes into each subsequent class library release?
AS: Generally, about 3 to 4 weeks of dedicated work by the class library team is need to incorporate features. But of course the amount of work varies from release to release.
RC: Why do features normally get incorporated into the class libraries in the following release?
AS: Some of the new features can have wide ranging effects and so we spend a significant amount of time spent testing them on all the available deployment platforms.
RC: Whats your personal favorite class library object?
AS: I like the Enumerated Entity because it provides the biggest benefit to the developer with the most transparency.
RC: And your least favorite class library object?
AS: Probably the Entity with Tab dialog, because it is not as easy as I would like for an Obsydian developer to customize and extend.
RC: How does one go about creating a class library?
AS: You first need a clear idea of the sort of application that the new library will be used for. You then develop one of these applications for real and get it working. The application is then examined, and the abstract elements extracted into the new class library. These abstract elements are then used to replace the real parts of the developed application, using inheritance, and the objects regenerated. This process is repeated until the application performs as required. The class library can then be used to develop new real applications.
RC: What does it take to think abstractly?
AS: A good imagination, a very good understanding of Obsydian, and an ability to think laterally helps.
RC: What are you working on right this minute?
AS: An entity that allows the logical deletion of rows in the table, using a status flag.
RC: I see you are very active on the Synon CompuServe forum (Synposium after July, 1997), how often do you log on?
AS: I log on and download all the new messages every day, then I spend about an hour reading and replying to selected messages.
RC: What do you do outside of work?
AS: As you know, I am part of Software Peddlers, which is a team of Synon employees gathered together to ride in the Waves to Wine, a bike ride to raise money to combat Multiple Sclerosis. I am also very interested in photography, wine and water sports, not necessarily at the same time.
Flight Attendant: Please fasten your seat belts, ensure that your seats are upright and trays are in the locked position.
RC: Thanks for the insight Adrian. Im sure everyone will be looking forward to Obsydian having even more class than it does now.
©1995-98 Synon Corporation. All rights
reserved. |