Étoilé: Powerful. Beautiful. Open.

Étoilé is built from the best open source has to offer.

Overview

Étoilé intends to be an innovative GNUstep based user environment built from the ground up on highly modular and light components with project and document orientation in mind, in order to allow users to create their own workflow by reshaping or recombining provided Services (aka Applications), Components etc. Flexibility and modularity on both User Interface and code level should allow us to scale from PDA to computer environment.

In other words, we want:

  • Light, focused applications, cooperating together to provide a rich user experience, using GNUstep services and our own Services model
  • Fast, simple data sharing between tasks and documents without involving lot of context switches (between applications, windows, selection etc.)
  • Facility provided by default to composite, layout unrelated elements in first-class objects like documents, folders etc.
  • Workflow based on project inspired management (versioning, indexing, sharing etc.)
  • Easy communication/collaboration among users, where users are first-class objects in the environment
  • Assistant technology similar to the Newton's approach.

We want to work in cooperation with GNUstep project.

We will provide frameworks, UI guidelines and documentation to permit GNUstep developers to easily develop Étoilé compliant applications (we call them Services) and we plan to propose to GNUstep developers the possibility to have their applications certified Étoilé compliant by our team with an evaluation based on UI and behavior consistency (how the developers take in account Étoilé guidelines and technologies).

Étoilé 0.4 with Mélodie music jukebox

Features

CoreObject

Autosaving, universal search, tag groups, unlimited versions: just a few of the things CoreObject gives you for free. See what else CoreObject can do to make your life easier and more productive.

CoreObject is built on top of EtoileSerialise, which uses the runtime introspection features of Objective-C to give automatic persistence and versioning of arbitrary object types.

EtoileUI

EtoileUI is a high-level OOUI toolkit that provides a uniform Graphics and User Interface model to all Étoilé applications and sits atop the GNUstep or Mac OS X AppKit.

The toolkit comes with many high-level abstractions and User Interface patterns that just work out of the box without writing any code. In this way, EtoileUI reduces the gap between your mental representation of the User Interface and how it is truly implemented, and eliminates the distinction between a UI prototype and a real application.

All User Interface concerns such as layouts, controllers, styles, tools, model objects etc. are pluggable aspects that can be added or removed at runtime. An existing User Interface built with EtoileUI can easily be reshaped or tweaked based on how it will be used e.g. screen size, input devices, most common use cases etc.

Runtime

The Objective-C language continues to evolve. We are committed to supporting the evolving needs of the language through a new runtime library. We also aim to support foreign object models, such as that of Io, without resorting to bridging.

The Étoilé runtime was developed as a research prototype for a replacement runtime. It has a lot of features not found in the GNU and Apple Objective-C runtimes which will make higher-level frameworks like CoreObject significantly more efficient. Most of these improvements have since been back ported to a fork of the GNU runtime, which should be incorporated with the next version of GNUstep.

Étoilé developers are also working on the clang LLVM front end to better support Objective-C. This support now covers most of Objective-C 2.0 and includes preliminary support for optimisations like speculative inlining and polymorphic inline caching.

The new runtime also implements the new Objective-C 2 APIs introduced with Leopard and support for blocks. These features are also supported on the older GNU runtime using the ObjectiveC2 framework.

LanguageKit

LanguageKit is a framework for developing compilers for dynamic languages. It compiles code using LLVM targeting the Objective-C runtime, allowing high-level languages to be mixed with Objective-C in the same object. The CodeMonkey IDE makes heavy use of LanguageKit - and is, itself, written in a language compiled by LanguageKit - as well as the native introspection support in Objective-C for browsing the object hierarchy.

GNUstep

Étoilé is built on top of GNUstep, a Free Software implementation of the OpenStep Specification, familiar to OS X users as Cocoa. This is a mature framework, which has undergone constant refinement for almost fifteen years. OpenStep makes use of the dynamic capabilities of the Objective-C language to make many complex tasks simple.

Camaelon

Although the classic OPENSTEP look implemented by GNUstep is very clean and usable, it lacks appeal to more modern aesthetic tastes. Camaelon is the Étoilé theme engine for GNUstep. The Nesedah and Narcissus themes have been developed on top of Camaelon to provide the same degree of usability as the classic OPENSTEP look and better visual appeal.

Work is currently underway to merge Camaelon back into GNUstep.

Frameworks

Most of the existing work in Étoilé has been focused towards building a strong foundation on which to construct the rest of the environment. In OpenStep terminology a framework is a bundle containing a shared library and its header files—everything you need to start developing with it. The Étoilé tree contains a number of frameworks designed to make developers’ lives easy.

Applications

Étoilé aims to be a component-based system. Applications are services which provide some user interaction components as well as services to other components.

The tree currently contains a number of services, divided into two categories - user and private. User services are those which interact directly with the user like traditional applications, while private ones form the building blocks of the user experience.

License

Most components of Étoilé are BSD or MIT licensed. See Licensing Philosophy.