May 23, 2007
This article was contributed by Joseph Quigley
Imagine taking a Ford engine, a Chevrolet chassis, and a Toyota transmission, bolting them together, and discovering that they fit perfectly.
In the programming world, Rodrigo Barreto de Oliveira created such a vehicle. Around the year 2003, de Oliveira was unhappy with some of the
.Net/Mono languages at the time because none of the stable ones were Python-like.
De Oliveira said that he missed the "wrist-friendly" Python syntax. He created his own language,
Boo, and explains in the
Boo Manifesto
[pdf]: "I wanted a language I could extend with my own constructs. I wanted a compiler system that could be taught new things, taught how to automagically [sic] generate common code for me." The language caught on, and several sites hosted Boo projects or created communities around it.
Boo is an object-oriented, statically-typed programming language that makes use of the .Net Common Language Infrastructure. It is licensed under an open-source MIT/BSD-style license, and because it is built upon the Mono or Microsoft .Net framework, it is cross-platform and can be extended significantly. Boo supports Unicode, internationalization, and web-style applications while its language's syntax is Python-inspired. Focusing on both language and compiler extensibility, it features type inference, optional duck typing, currying, first class functions, multimethods, and generators.
The language is quite flexible and adapts to many genres of programming.
It can be used in or written for games, GUI applications and web frameworks
(see the
Boo Applications).
It can interact with most Mono libraries, every CLS-compliant library and most generics. In short, it works with pretty much everything, every library, and every framework for .Net or Mono. In the game world,
BooGame
(a 2D, OpenGL-accelerated,
game engine framework) is similar, if not almost equivalent, to
PyGame.
The commercial Mac OS X Unity game engine has very good support for Boo scripting for both 2D and 3D games.
With Unity, Boo games can even be played from a browser.
Unity is not the only 3D framework that supports Boo.
The open source
Tao framework
supplies OpenGL, Ogre, and
OpenAl
bindings for Boo on both .Net and Mono.
Although not too many web frameworks have been written for Boo, Apache's
mod_mono
makes web development possible. A popular framework is
Webbness, which delivers
functionality similar to
Ruby on Rails
and it generates code in either Boo or C#.
There are several reasons to use Boo over other languages, even though many others (such as Lua)
may have a larger community, have a larger software base, or may be in the news more often. Boo stands out from the crowd since it is appealing to developers due to its simple syntax and well implemented OOP functionality on the .Net/Mono platform. It differs from
IronPython
in several ways because it can provide features and tools that IronPython might never support (due it its very good compatibility with standard CPython).
Unlike some languages, Boo is not designed to replace or be used exclusively as an alternative to C#. Instead it was designed to be extended and to interact with those languages. This allows the programmer to write once in a different languages, and use his code with Boo. In the Boo Manifesto, de Oliveira explains why he created the language. "When I was programming in full Python mode I missed some of the things I'd normally get from a more statically typed environment." He goes on to say, "what I missed the most was the well thought out .net architecture and its great support for Unicode, globalization and web style applications."
Just recently Boo 0.7.7
was released, touting new features primarily involving support for consuming generic methods.
For example, in Boo 0.7.6 one could only use generics with external types. Boo 0.7.7 improved generics support, allowing the programmer to use generics with internal types (which are defined in the Boo assemblies that are to be compiled). It also improved the verify pipeline, making it available on Mono (the pipeline in 0.7.6 only worked well in .Net) and optimized string handling (allowing the coder to generate Gendarme/FXcop-compliant assemblies). Type inference (which is a work in progress) was improved and the release fixed a handful of bugs, mostly inconsistencies in the Boo compiler.
Boo releases come frequently (see the
Boo Release Schedule). The team uploads a new sub-release every month to fix bugs and add a few features. The next major version, Boo 0.8, is in active development and the team is working on improving the compiler even more. Although there isn't much information on the upcoming 0.8 release, the bug tracker has some reported issues with the improved lexical and method syntax as well as some interpreter and duck typing improvements.
Boo was created to fill gaps in Python in order to make a programmer's
job even easier.
Its syntax makes programming a breeze and it can be extended to work in dozens of scenarios.
Whether one wants to create a game, a web site or a GUI application, Boo can lighten the load. The programmer can concentrate on nitty-gritty programing in a different language, while Boo effortlessly interacts with that language.
Almost every other module can be found in the .Net/Mono framework.
Resources
Comments (5 posted)
System Applications
Database Software
The May 20, 2007 edition of the PostgreSQL Weekly News
is online with the latest PostgreSQL DBMS articles and resources.
Full Story (comments: none)
Embedded Systems
Stable version 1.5.1 of
BusyBox,
a collection of command line utilities for embedded systems, is out with
the following changes:
"
This is a bugfix-only release, with fixes to hdparm, hush, ifupdown, ps and sed."
Comments (none posted)
Telecom
Nokia has released eds-sync as open-source software.
"
Eds-sync is the component that synchronizes remote Telepathy
rosters (= instant messaging contact list stored on server) to a
local evolution-data-server. After initial synchronization, it keeps
the rosters in sync with the local addressbook. It currently will
only work correctly with the Nokia specific eds-dbus, and it
requires the addressbook UI components to do some special actions
too."
Full Story (comments: none)
Web Site Development
Release 0.6.1 of Chandler Server is out with new capabilities.
"
Chandler Server is a database, server, and web UI for storing and
managing personal information such as events and tasks. It implements
standards such as CalDAV, WebDAV, Atom, and Atom Publishing Protocol."
Full Story (comments: none)
Version 2.0 of the Silva content management system has been announced.
"
This architectural release targets Zope 2.10 and
higher and takes advantage of much of the new technology. Infrae has
striven to keep Silva 2.0 almost feature identical to Silva 1.6, while
refactoring and rebuilding large parts of the system under the hood,
using advances in Zope and Five infrastructure. This major reworking
should especially help extension developers by expanding the set of
tools available to them."
Full Story (comments: none)
Desktop Applications
Audio Applications
Beta version 1.3.3 of the
Audacity audio editor
has been released.
"
The Audacity Team is pleased to announce the release of Audacity 1.3.3 (beta), which contains numerous new features and capabilities beyond the 1.3.2 (beta) release. Because it is a work in progress and does not yet come with complete documentation or translations into foreign languages, it is recommended for more advanced users."
Comments (none posted)
Version 1.25 of
eSpeak,
a text to speech synthesis converter, is out with improvements to
the French, Czech, Slovak, Norwegian, Croatian, and Portuguese
language support.
Comments (none posted)
Version 5 of jack_mixer has been announced.
"
jack_mixer is GTK (2.x) JACK audio mixer with look similar to it`s
hardware counterparts. It has lot of useful features, apart from being
able to mix multiple JACK audio streams.
Changes since version 4:
fix building against older jack versions (i.e. not latest svn)"
Full Story (comments: none)
Version pre 0.3 of JackMixDesk is out with the following changes:
"
The nasty bug that maximum volume wasn't reachable after moving the
slider is gone. Made it useless. Didn't see that...
The interface is prepared for knob resizing. If you use phat svn sources
change the KNOB_SIZE in mixdesk_gtk.c to maybe 32. You'll also get
scroll support."
Full Story (comments: none)
The DrJekyll release of XMMS2, the rewrite of the XMMS music player, is
out.
"
This has been one of the
longest release periods in the history of XMMS2. A lot of big changes
has been merged, including the long awaited Collections API. We have
also switched to a new build-system.
The XMMS2 Team would like to extend a big THANK YOU to all who have
helped out with this release, a lot of bug testing and bug fixing by
new faces has been seen. Hope to you all around for the next release!"
Full Story (comments: none)
Desktop Environments
Version 2.19.2 of the GNOME desktop environment has been released.
"
This is our second development release on our road towards GNOME
2.20.0, which will be released in September 2007. New features are still
arriving, so your mission is simple : Go download it. Go compile it. Go test it.
And go hack on it, document it, translate it, fix it."
Full Story (comments: none)
Version 2.19.2 of GARNOME, the bleeding edge GNOME distribution, is out.
"
This release includes all of GNOME 2.19.2 plus a
bunch of updates that were released after the GNOME freeze date.
This is the second release in the unstable cycle, with more features,
more fixes and yet more madness added. It is for anyone who wants to get
his hands dirty on the development branch, or who'd like to get a peek
at future features. If you want to help spot issues in GARNOME, (or,
better yet, fix 'em ;-) this release is for you as well."
Full Story (comments: none)
The following new GNOME software has been announced this week:
You can find more new GNOME software releases at
gnomefiles.org.
Comments (none posted)
Maintenance release version 3.5.7 of the K Desktop Environment (KDE) is out.
"
This release has a renewed focus on KDE PIM applications. KAddressBook,
KOrganizer and KAlarm received attention with bugfixes, while KMail
additionally witnessed new features and improvements with both interface work
and IMAP handling: it can manage IMAP quota and copy and move all folders."
Full Story (comments: none)
KDE.News
reports that HIG
hunting continues, with a focus on spelling and font settings. "
The
HIG Hunting Season for KDE 4 continues. This week we focus is on the
written word with a new checklist on text and fonts. Are you impatiently
waiting for KDE 4? Would you like to help KDE make this release a full
success? Then get involved! Read on for more details."
Comments (2 posted)
The May 20, 2007 edition of the
KDE Commit-Digest has been
announced.
The content summary says:
"
User-visible functionality added in Plasma.
Support for animated SVG images in SuperKaramba. Kanagram becomes the latest
application to adopt a scalable, SVG-based interface. Initial code imported,
as a statement of intention, to support interaction with Exchange servers and
the Akonadi PIM data store. Small, incremental improvements in KTorrent. A
new round of Coverity fixes, particularly in KOffice and Amarok. Work on
loading ODF shapes through Flake in KOffice. KDevelop gets improved support
for .ui (user interface layout) files. Branches of KMail, KPPP, Konversation
and Kopete created to enable the integration of Solid-based connection
management and notification. KDE 3.5.7 is tagged for release early next week."
Comments (none posted)
The following new KDE software has been announced this week:
You can find more new KDE software releases at
kde-apps.org.
Comments (none posted)
The following new Xorg software has been announced this week:
More information can be found on the
X.Org Foundation wiki.
Comments (none posted)
Desktop Publishing
Version 1.5.0 beta 3 of LyX, a GUI front-end to the TeX typesetting
system, is out.
"
Compared with the previous beta release we have fixed several bugs
and added some improvements, namely a new inset to support code listings.
We have enabled the converter file cache by default.
Internally we have renamed files to follow a consistent name pattern,
this will allow an easier navigation of the source code thus simplifying
bug fixing.
Compared with the latest stable release, this is the culmination of
one year of hard work, and we sincerely hope you will enjoy the
results."
Full Story (comments: none)
Version 3.6.4 of WIKINDX
has been released, this release includes Focus Feature enhancements
and minor bug fixes.
"
WIKINDX is a free single or multi-user research environment storing searchable bibliographies, notes and citations and integrated with a WYSIWYG word processor for the authoring of publication-ready articles automatically formatted to chosen citation styles."
Comments (none posted)
Games
The WorldForge virtual world project presents a
progress report
on Ember, which is projected to have an 0.5.0 release soon.
"
The main focus of 0.5.0 is on providing better authoring tools. The goal is to allow players to edit the whole world within Ember. One major component that has been missing so far has been a working entity editor. This has now been added to Ember."
Comments (none posted)
GUI Packages
Version 2.8.4 of wxWidgets, a cross-platform GUI toolkit,
has been announced.
"
This is mainly a bug fix release".
Comments (none posted)
Interoperability
GnomeDesktop.org
looks at the 0.1 pre 1 release of Wine-doors.
"
Wine-doors is an application designed to make installing windows software on Linux, Solaris or other Unix systems easier. Wine-doors is essentially a package management tool for windows software on Linux systems. Most Linux desktop users are familiar with package management style application delivery, so it made sense to apply this model to windows software."
Comments (none posted)
Medical Applications
LinuxMedNews
has announced
the availability of Developer Preview 2.0 of the ClearHealth 2.0 electronic
medical record system.
"
After more than a year of active design and development ClearHealth 2.0 is about to lift off. A developer preview demonstration is available at demo.clear-health.com but please note that it is a BETA pre-release edition of CH 2.0 undoubtedly with some rough edges remaining to be fixed."
Comments (none posted)
LinuxMedNews
has announced the release of FreeMED 0.8.4 and REMITT 0.3.3.
"
FreeMED version 0.8.4 and REMITT version 0.3.3 have been formally released on Tuesday, May 22, 2007. They include support for CMS's mandated NPI standard, as well as many other improvements and community contributed bugfixes and features. FreeMED is an GPL-licensed opensource EMR/PM suite ..."
Comments (none posted)
Music Applications
Version 0.97.5 of Free Music Instrument Tuner is out
with some small updates and bug fixes.
Full Story (comments: none)
The LV2 Simple Sine Generator plugin project has been announced.
"
LV2 Simple Sine Generator is very simple plugin, generating sine when
feed with notes. It should load in any host supporting midi port LV2
extension, i.e. elven, ingen, lv2_jack_host and zynjacku. Plugin should
be usable for testing basic synth functionality and as simple example
synth plugin to start with if you want to code your own LV2 synth
plugin."
Full Story (comments: none)
Version 0.10.2 of PHASEX, the [P]hase [H]armonic [A]dvanced [S]ynthesis [EX]periment software synthesizer is out.
"
This release contains many fixes, most notably better support for
older GTK versions. PHASEX now works with GTK2 versions as low as
2.4.x, which should help most of the build issues on older distros."
Full Story (comments: none)
Version 0.6 of pyliblo is out with a number of new features.
"
pyliblo is a Python wrapper for the liblo OSC library. It supports almost
the complete functionality of liblo, allowing you to send and receive OSC
messages using a nice and simple Python API."
Full Story (comments: none)
Office Suites
The first release of unoconv has been announced.
"
Unoconv converts between any document format that
OpenOffice understands. It uses OpenOffice's UNO
bindings for non-interactive conversion of
documents.
Supported document formats include Open
Document Format (.odf), MS Word (.doc), MS Office
Open/MS OOXML (.xml), Portable Document Format
(.pdf), HTML, XHTML, RTF, Docbook (.xml), and
more. (24 document formats in total)".
Full Story (comments: 1)
RSS Software
Version 0.9 of LeafRSS, a simple RSS aggregator that learns to filter
out unwanted articles from multiple feeds automatically,
has been announced.
"
We are proud to announce the release of version 0.9 or LeafRSS! This version includes full smarty template integration, as well as options to embed the articles in another web page, or even to allow the output of the filter as an RSS feed."
Comments (none posted)
Web Browsers
Release candidate 3 of Mozilla Firefox 2.0.0.4 has been
announced.
"
A third set of release candidate builds for the forthcoming Mozilla Firefox
2.0.0.4 release are now available for testing. Testers can obtain these
builds from the rc3 directory on ftp.mozilla.org. Any problems discovered by
users can be posted to Firefox 2.0.0.4 Release Candidate 3 announcement on
quality.mozilla.org. Currently in a pre-alpha state, the QMO site was
launched last week to improve the community-based Mozilla quality assurance
effort.
Firefox 2.0.0.4 is likely to be released simultaneously with Firefox
1.5.0.12, which will be the final release of the 1.5.0.x line before the
Mozilla Corporation ends official support."
Comments (none posted)
Languages and Tools
Caml
The May 22, 2007 edition of the Caml Weekly News
is out with new Caml language articles.
Full Story (comments: none)
Python
The May 21, 2007 edition of the Python-URL! is online with
a new collection of Python article links.
Full Story (comments: none)
Tcl/Tk
The May 21, 2007 edition of the Tcl-URL! is online with new
Tcl/Tk articles and resources.
Full Story (comments: none)
XML
Matthias Farwick and Michael Hafner
compare XML parsers in part two of an O'Reilly article series.
"
In part 1 of this series we showed you the results of our event-driven parser benchmarks. The outcome of these benchmarks showed that the LIBXML2 SAX-like parser in C is superior over the other tested parsers. In second place followed the two Java pull-parser implementations Javolution and Woodstox.
In this part of the series we will show you how the object model parser performed in our tests."
Comments (1 posted)
Libraries
Version 0.0.75 of libnfnetlink_conntrack, it features a lot of bug
fixes and new capabilities.
"
libnetfilter_conntrack is a userspace library providing a programming
interface (API) to the in-kernel connection tracking state table."
Full Story (comments: none)
Version Control
Version 1.5.2 of GIT has been announced, it adds many new capabilities and
bug fixes.
Full Story (comments: none)
Page editor: Forrest Cook
Next page: Linux in the news>>