[unrev-II] Potential funding source: $200,000 award for Python tools

From: Paul Fernhout (pdfernhout@kurtz-fernhout.com)
Date: Sun Jan 16 2000 - 11:28:35 PST

From: Paul Fernhout <pdfernhout@kurtz-fernhout.com>

Just though I'd send this to spark some discussion...

I came across the following contest, and it might fit into creating an
Comments on it posted to the list would be appreciated.

=== a contest with significant prizes to make open source tools ===

Software Carpentry Design Competition

From: http://www.software-carpentry.com/contest-rules.html
The Software Carpentry project is pleased to announce an open
competition to design a new generation of easy-to-use software
engineering tools. Individuals, teams, and companies are invited to
submit short design outlines in any of the following categories:
   1.a platform inspection tool similar to autoconf;
   2.a build management tool similar to make;
   3.an issue tracking system similar to Gnats or Bugzilla; and
   4.a unit and regression testing harness with the functionality of
XUnit, Expect, and DejaGnu.

=== my summary of the contest specifics ===

These tools must be open source, with the code and designs put under an
"X" type open source license (which basically is just a disclaimer of
warranty allowing users to do anything with the code).

Awards for each project area are around $25,000 total for each
component's design (distributed as multiple prizes for each in two
phases). After designs are selected, any interested party may bid on
these designs.

According to that page, after a design is chose for each tool, "$200,000
will be provided to support the implementation, testing, and
documentation of these tools. Preference will be given to bidders who
have demonstrated both their enthusiasm and their technical skills by
contributing software, doing testing, writing documentation, or
participating in the project in any other way of their own accord."

The tools must be (mainly) in Python. http://www.python.org
The money is coming from U.S. Department of Energy's Los Alamos National
Laboratory, who use Python to steer their numerical models.

I would think the solutions could perhaps be built on a Python web
application server like Zope http://www.zope.org and still qualify (but
I am not 100% sure yet). The solutions must work under both NT and Linux
(which both run Zope). Note their web site is also run with Zope, so
they must like it.

The deadline for initial design submissions is March 31, 2000.
The deadline for full design submissions is June 1, 2000.
The deadline for submissions for actually building the tools is not
stated, nor is there a deadline for when the tools must be finished.

=== using the contest as a vehicle for OHS/DKR work ===

Are there any Python users (besides me) in this Colloquium (or people
who would consider working in Python?). If so, would they have any
interest in teaming up somehow to win these prizes using an OHS/DKR
model? We could try to address all four areas, or if we can only have
resources for one, I'd suggest the
"SC Track: Issue Tracking" project as a good use for an OHS/DKR, since
it does not require the lower level OS/compiler integration the others

Right now I am not committing to entering anything in this contest. I am
just gauging interest and soliciting comments on how this contest could
be used to benefit the OHS/DKR project. Please respond to the list if
appropriate so we can get a public discussion going. Also, feel free to
chime in with other alternatives for funding or development directions.

=== language issues -- java, python, smalltalk, lisp, forth ===

Object-oriented languages, there sure are many of them:

Of the cross-platform languages, I myself am torn between using
Python/Zope and using Smalltalk (specifically Squeak
http://www.squeak.org) for my own contributions towards an OHS/DKR. I'm
leaning towards Python because it is already used commercially, has
proven itself reliable, and has the largest audience of a dynamic
language I can live with. Squeak is much more cross platform and much
more bootstrappable (maybe only surpassed by Forth) -- however the focus
of the Squeak project right now isn't on reliability, delivery, or
server support (that may change of course). Lisp is where I learned OO
programming, and it is flexible enough to do just about anything
efficiently, but it also just doesn't seem to have the following of

I'm not a big Java fan for several reasons I won't go into here, but
Obviously though Java is very popular and is usful for some things in
some situations (it has a big following now for servlets on web
servers). Java is currently listed as the development language for
OHS/DKR. I am curious to what extent people in the colloquium intend to
or want to work with Java. Working in Java precludes participating in
this contest's implementation phase ($200,000), although not necessarily
its design phase ($100,000).

Of course, as I believe Doug said somewhere, evolution of tools might be
best, with several direction going at once, and seeing what directions
prosper best. So there is probably room for various contributions and
experiments in whatever languages.

And obviously, these languages can all work together in various ways
they do best: like Java for browser applets or some servlets, Python for
the server glue and other servlets, Squeak for a complex multi-platform
client, Forth for some low level stuff, and Lisp for some knowledge
consolidation tools -- all mostly resting on a widespread C
implementation for parts that need to be optimized.

If the development knowledge in the OHS/DKR system is someday
represented abstractly enough, it is possible it could be "metacompiled"
into whatever base languages are available. Metacompiling is a term I
take from Forth. I use it to mean more or less that you take a
definition in one computer language or representation and translate it
to another computer language's idiom, although in Forth it means
something a little more specific. This idea is somewhat like
cross-compiling, where you compile code on a development machine for a
different target processor than the development workstation. However, in
cross-compiling you generally produce a binary executeable, whereas I
use the concept of metacompiling to include producing code and data
structures as well as possibly binaries. There is probably a better word
for this, but "translating" doesn't seem quite adequate.

For example, Squeak Smalltalk has its VM written in a subset of
Smalltalk. This representation is then used by other Smalltalk code to
generate C code. That C code is then compiled outside the Squeak system
(currently) in conjunction with a minimal amount of machine and library
dependent C code to produce a high speed VM. For more details on Squeak
metacompiling, see:
(In the last reference, search for "bootstrapping strategy").

=== summary ===

It seems likely even the people behind this Software Carpentry project
may not quite get the full implications of Doug's 1968 level of tools
integration (or bootstrapping). However, they are going in a positive
direction, so there is hope we could work with them. Their time frame is
a bit slow for what we might otherwise want to see for feedback and
turn-around, given that the Colloquium will wind up in March. However,
since this effort is intended to just start with the Colloquium, perhaps
that is not as much of an issue.

-Paul Fernhout
Kurtz-Fernhout Software
Developers of custom software and educational simulations
Creators of the GPL'd Garden with Insight(TM) garden simulator

--------------------------- ONElist Sponsor ----------------------------

Independent contractors: Find your next project gig through JobSwarm!
        You can even make money by referring friends.
<a href=" http://clickme.onelist.com/ad/jobswarm2 ">Click Here</a>


Community email addresses:
  Post message: unrev-II@onelist.com
  Subscribe: unrev-II-subscribe@onelist.com
  Unsubscribe: unrev-II-unsubscribe@onelist.com
  List owner: unrev-II-owner@onelist.com

Shortcut URL to this page:

This archive was generated by hypermail 2.0.0 : Tue Aug 21 2001 - 18:56:35 PDT