Summer Of Code 2009
Summer Of Code 2009
The Summer Of Code is a Google program that offers student developers stipends to create new freely available programs or to help currently established projects. It would be an excellent opportunity for GNUstep to fund some developments.
The idea of a joint application for GNUstep, Étoilé, GAP and OpenGroupware.org has been brought up. A lot of the projects that were accepted last year were joint applications (e.g. GNU, GNOME, KDE), so it might improve our chances. Please discuss!
Here are some ideas -- Feel free to add more
- Porting WebKit (using GCC 4.x with ObjC++ support) should be a lot easier by now (see http://lwat.blogspot.com/2008/11/redistributable-webkit.html and http://lwat.blogspot.com/2009/02/opencflite-476171-release.html)
- helping to improve Simple WebKit which does not require gcc 4.xx and Obj-C++ and has less dependencies and a much smaller footprint than full WebKit
- General Improvements
- Windows support
- Compare current API with Leopard's (Mac OS X 10.5) API, indicate which classes are missing, and summarize the current status of the existing ones, then work to complete them... ;) The best would be to have a tool which parses all headers (both from Cocoa and GNUstep) and outputs differences in HTML (XML probably too by the way). This would summarize missing classes, missing or partially implementated methods in existing classes and GNUstep-specific extensions. Eventually we should include links to the related documentation on both GNUstep and Cocoa web sites.
- Garbage Collection ... get this working reliably for all classes in the base library (mostly done already) and then make the gui and back libraries support garbage collection too.
- Craft a system which allows to distribute GNUstep to the various packaging systems (rpm, debian, ports, etc.) on various distributions (Ubuntu, Red Hat, FreeBSD, etc.) with a snap and without knowledge of the specific packaging system. This system should be able to distribute GNUstep libraries, and existing or new applications written with it. The user should be able to choose how often this is done: on request, on each release, on in regular intervals, tracking a source code repository. Ideally, changes to the library/app's sources are minimized and/or calculated at runtime.
- Update the main class/API coverage to match OSX 10.5 by implementing the missing NSXML classes (for tree-based XML processing and XSLT etc) and the NSOperation class (leave the scripting classes as a separate task).
- CoreFoundation ... implement the CoreFoundation API as an extension of the base library so that Apple code which uses it can easily be ported.
- Implement the apple scripting classes and produce example/test programs and utilities/tools for scripting using those classes from applescript and/or an objective-c like scripting language. Supporting applescript would be good for OSX compatibility. Supporting objective-c scripting would be great for GNUstepWeb.
- Implement a version of distributed objects binary compatible with the Apple implementation by using keyed archiving (work on NIB support means that the keyed archiving is now basically binary compatible) and my using Nicolas' work on NSSocketPort etc in mySTEP (he says that his port implementation is binary compatible with OSX). This would let GNUstep applications communicate directly with cocoa applications.
- Themes for GNUstep. This includes coming up with a general concept for the handling of AppKit subclasses in themes, the moving of all drawing code from the GUI classes into theme methods, replacing all hard coded panels with Gorm/NIB files and as the proof of the concept a native Windows theme (Or at least one theme that looks sufficiently different from standard GNUstep).
Take a look at Étoilé Open Projects page.
Feel to add ideas…
Feel free to add ideas…
- Quentin Mathé
- David Chisnall
- Richard Frith-Macdonald