Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
News

Feature:Introducing Ox

Well, maybe it isn't actually an introduction for everyone, but for a lot of us, Lalo Martins has written a nice article to reacquant ourselves with Ox, an Object Model for computers. Check it out if you're interested in learning about it.
The following was written by Slashdot reader Lalo Martins.

The Ox project

Shortly, Ox is a complete full object model, meaning it wishes to make possible to access anything you expect from a computer in an object-oriented interface. An object-oriented interface means everything you could want to access is an object and, as such, has a class, and benefits from inheritance and polymorphism.

To use my favourite example, in Ox you won't write a "word processor" application; instead you will write a "word-processing-document" class, and objects of this class (documents) would contain all information they need to edit and print themselves, and all other functions you would expect from a word processor, plus others that are made possible by a pure object-oriented environment.

Hovever, Ox does not want to trash all existing software; one of its minor goals is to have hooks to make possible compatibility with anything - and no, I'm not exagerating, the idea is being able to using anything from grep to perl to self (a programing language) to PNG images to old MSX games.

Context

There are many object models. There are many good object-oriented programming languages. There are many object-oriented databases. There are even many good object-oriented tools to make programs cooperate - such as CORBA and ILU. But they are not object-oriented environments.

The very phrase I used to describe CORBA and ILU shows their shortcomings; they're object-oriented tools to make programs cooperate. You still have to write programs, and not classes. Well, I'm tired of writing programs - excuse me sir, I want to write classes. I don't want a tool for cooperation between programs, but a tool for cooperation between persistant objects.

Actually, few people have realized it, but object-oriented databases come far closer to a true, full object-oriented environment than CORBA or ILU. Herectic am I? I would be honoured to be called so :-) people much better than me have. Most of them were not afraid to defenestrate dusty concepts and introduce new ones. I'm a little more of a coward; I'm not introducing a new concept, I'm just trying to explore an old one (OOP) to its full potential.

On the other hand, now I got addicted to my GNU/Linux system and I want to do it "the Unix way" - I want to be able to modify stuff by modifying files by hand, or by moving files around etc. I want to be able to clone an object with "cp" and send it to a friend attached in a MIME mail message. I grew used to knowing which file has what, and I want an object environment where I can keep working this way.

Finally, once the system is working, I don't want to wait for it to reimplement everything from malloc to the X window system before I can use it. And I sure don't want to throw away the zillions lines of working code running around. This ideal system would have to have "hooks" where I could plug compatibility with any existing piece of software. One of the early examples is the hability of writing an "audio-cd" class using the excellent "cdtool" package (cdplay, cdstop, cdpause...) as methods. Alas, instant object-oriented functionality.

These are the major reasons I'm working in Ox, and are the explanations for some of the design decisions. However, these don't say everything about Ox yet; there's another, very important factor:

I'm in the Free Software community (also referred to as Open Source Software).

The Free Software community has its own way of doing things. We do things to share; sharing is an important part of it. We are opposed to binary-only software (because we want to be able to know how something works, and fix it if it doesn't work right), to interface copyrights, API copyrights, and above all, we absolutely despise NDAs (Non-Disclosure Agreements - contracts where you will gain knowledge of something but you must promise not to tell anyone else, essentially) when applied to software. The Free Software Community believes that software has to be shared to achieve its full potential.

The idea of "open development", more formally known as "bazzar-style" development, is another important concept that was born in the Free Software community. It's about writing the code in the open, making development versions frequently available, so that people can read it, fix it, and even help write it - actually, it's about inviting people to do that. Ox doesn't do anything useful, but it has two mailing lists set up so that anyone who wants to participate may join as soon as desired.

Status

The Ox project was born about two years ago. In this period, it died twice already. In my opinion this happened because I did everything wrong in the point of view of "The Cathedral and the Bazaar" paper. I wanted to first have a good spec, then start coding. Now I want to build the two things together, so that one helps the other - the coders find a missing feature, suggest it to the specwriters, and so on. Also, with no coding going on the interest vanished quickly.

The second time I concentrated in writing a spec alone. This was even worse.

This is the third try. I'm opening up the process and inviting you to participate - either in specbuilding, coding, or both. I would have given up on Ox entirely, but in a partially-related mail RMS said he thinks Ox is a very good idea.

The result of this talk with RMS is that the Ox project is now a GNU project. Don't know if many people care, but I do, a lot. It makes me really proud to stamp in the webpages "Ox: the GNU next generation object model".

Contact

Please by all means give it a try. Help coding, help building the spec. IMHO Ox can give a fantastic advantage to the Free Software world. Draw the icons that are missing in the webpage. If you have a place for hosting lists that you think is better than makelist contact me. Or a ftp site, CVS repository... whatever. But anyway, visit the webpage and see what you think. And if this article isn't enought for an opinion, you may jump straight to the what is Ox page (this article is based on it).

Thanks,
Lalo

Copyright © 1998 Lalo Martins lalo@webcom.com http://www.webcom.com/lalo

For information on permissions to reproduce this document, consult the pertaining section in the Ox website.

Any mention to products, trademarks or copyright material of third parties does not constitute any challenge to these rights.

This discussion has been archived. No new comments can be posted.

Feature:Introducing Ox

Comments Filter:

Whenever people agree with me, I always think I must be wrong. - Oscar Wilde

Working...