GNU EDMA

GNU EDMA is the Entorno de Desarrollo Modular y Abierto,
or in English the
Modular and Open Development Environment (named MODE by Russel
Reed in the first GNU/EDMA documentation translations). The name is
in Spanish because GNU EDMA has been developed by GPI (Grupo de
Procesado de Imagen or Image Processing Group) at Vigo University,
Spain.

GNU EDMA provides an Object Oriented Component-Based
development
environment to build modular and evolving applications as well as
highly reusable components. To achieve this, GNU EDMA shares
features of OO programming languages and component based systems in a
loosely coupled environment.

News

GNU EDMA's main features

OO Component-based Environment:

Seamlessly mixes component-based and Object Oriented
programming models. Components can be managed as classes (the same way
that in any OO programming languages), or on an interface basis, as
other component systems do.

Dynamic OO features:

All common OO features (inheritance, virtual method
override,...) that you can find in any programming language can be done
dynamically. Object's inheritance hierarchy can be changed dynamically
making it easier to build dynamically reconfigurable and evolvable
applications.

Classes or Objects:

You can choose between your preferred OO flavor for developing
your application.

Destructive Subclassing as in C++ or Java where
superclass behaviors can be completely rewritten by subclasses

Conservative Subclassing as in Beta/gBeta where
superclass behaviors can be only extended.

Prototype-Based as in Self where parents are shared
classes and object prototypes are cloned.

Loosely-Coupled Architecture:

GNU/EDMA OOP features are implemented on a loosely-coupled
basis which provides a clear separation between the analysis/design and
implementation stages.

This approach allows the implementation of OO models even using
non-OO programming languages and to use features not supported by the
underlying environment (e.g. you can use multiple implementation
inheritance in Java when working with GNU/EDMA components).

Reflection:

Full reflection API. Dynamically extract any information about
your classes and objects.

The reflection API along with the string-based object access
interface makes Object Automation and the development of Visual
tools trivial.

Fully Extendable:

Developed in C. Built-in sub-systems to extend internal
functionalities.

SIU Subsystem allows to change the default behavior
of the GNU/EDMA primitives. Its main target is integration of external
systems.

Classes to allow development of GNU/EDMA components and
applications using other languages than C.
Main target is Guile. Perl (in progress), Python
(in progress), Ruby and Java are other desired
targets.

These classes will also allow to access GNU/EDMA core from
those programming language as well as use them as scripting language on
any GNU/EDMA application.

System Integration:

One of the most important objectives of GNU/EDMA is to provide
a common reuse framework, so integration of other technologies is one
of the pursued targets.

CORBA integration. Requires a DII/DSI aware ORB in order to
exploit GNU/EDMA dynamic features

Component Models. It would be interesting to make GNU/EDMA
work with current available component models (XPCOM, Bonobo, Qt
Component Model, UNO,...) so they can be easily reused in a common
fashion.

GNU Project:

Integration with other GNU projects.

GNUStep

GNOME. Including Bonobo and ORBit

Guile as scripting language for GNU/EDMA applications

Documentation:

Project documentation requires review by native english
speakers.

Propose your project

Download

GNU EDMA is still in development. Previous stable version are now obsolete.

Documentation

Documentation is available from CVS (gnuedma/corie/doc) and most of the
texts require review by native english speakers.
They will be added to this page when corrected.

Tutorials:

Building GNU/EDMA Applications. (.texi): Describes
how to build simple applications using GNU/EDMA.

Building GNU/EDMA Components. (.texi): Describes how
to build GNU/EDMA components.

GNU/EDMA for C/C++ Developers (.txt): Easy
introduction to GNU/EDMA for C/C++ Developers explaining the simplest
uses of the system

Other

GNU/EDMA User Reference Manual (.txt): Still incomplete

GNU/EDMA FAQ (.html)

Mailing Lists

There are three mailing lists about GNU EDMA. Visit Savannah
for information about them.

Acknowledgements

Danny Yee helped me with the first version of this page.
Laura Rodríguez González made some other comments.
Richard Stallman for pointing me to Danny Yee
Russel Reed for the first translations of the GNU/EDMA documentation.
Bev Corwin, Randal Shepard, Sabrina Mix for translating the old Installation
Guide to English.
David Currie helped me with this current page.