swarm-modeling
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Open source? -> Need to read source to model?


From: Alex Lancaster
Subject: Re: Open source? -> Need to read source to model?
Date: 19 Jan 2000 15:16:20 -0700
User-agent: Gnus/5.070095 (Pterodactyl Gnus v0.95) Emacs/20.4

>>>>> "DS" == Darren Schreiber <address@hidden> writes:

DS> I guess I am going to now throw my $.02 in.  After learning Basic
DS> in elementary school and Pascal in high school, I returned from a
DS> ten year absence to programming in Swarm.  Last January, the Swarm
DS> class I took from Benedikt and Lars-Erik was my first inroad.
DS> And, over the course of the next ten months I went from zero to a
DS> completed model (see link in my signature line.)

DS> During that entire time, I only used the open-source aspect of
DS> Swarm once.  There was an aspect that I just wasn't getting from
DS> the ref-books and didn't even understand well enough to ask an
DS> intelligible question.  In that case, being able to read the
DS> source code was useful.  But, that was about nine-months into my
DS> experience with Swarm.

At the risk of igniting a dying thread, I think there needs to be
clarification here as regards Swarm's free software (or `open-source')
nature, as I think the issue seems to have confused a few posters.

As you rightly point out, as a modeller-programmer, you shouldn't need
(and mostly _doesn't_ need) to constantly consult the source to Swarm
itself as you write code that calls Swarm features.  The combination
of the Reference Manual/User Guide/Tutorials/demo apps should more
than sufffice for that purpose.  Swarm is open source *not* for the
reason that you need to read the Swarm source to write models, but for
three other reasons:

1) complete observability: if necessary you can always track the
   execution of the simulation right down to the operating system
   level, very important for reproducibility, and ultimately allows
   you to go about proving (in some abstract mathematical sense) a
   simulation's `correctness'.

2) hacker mind-share: more practically, Swarm is open source so that
   we can harness hacker mind-share: more technically minded users can
   identify bugs, write patches, implement new features (gee, just
   imagine that!) and generally contribute to the evolution of Swarm.
   These are all identical to the reasons that the GNU/Linux operating
   system has grown so fast (and is so robust).  The Swarm user base
   is not as generally technically savvy as the average Linux kernel
   hacker, but there are enough of them out there and as Swarm grows,
   more hackers will become involved in the project.

3) Making software free (open-source) is just The Right Thing to do
   ;-)

DS> The biggest helps in my Swarm journey were the classroom
DS> instruction (a luxury I realize most don't get), the swarm-support
DS> mail list (which I used extensively), and reading other people's
DS> code.  Next would be the notes from Benedikt & Lars-Erik's class
DS> (available on the web) and Paul Johnson's User Guide.  The
DS> refbooks rarely led me toward a solution.

That's not their purpose.  Their purpose is to document an interface,
pure and simple.  Nothing more, nothing less.

DS> The single biggest difficulty I had was in getting all the
DS> graphics to work correctly.  With regard to nodes... the
DS> documentation was sparse, the classroom instruction had been nil,
DS> the user guide didn't mention it, and only one example program I
DS> had (BankSim) made use of them.  Overcoming the difficulty came
DS> from studying the one example I had and asking lots and lots of
DS> questions...

In the graph library case, that has never been part of Swarm.  It was
written several years ago by Manor Askenazi and he remains the primary
developer.  Although it's user contributed software, I have been doing
the maintenance of the package since then, but only making
compatibility-related and/or cosmetic changes.

DS> Ideally, an agent-based modelling system would not require 10
DS> months of pretty hard work for a non-programmer to learn and
DS> implement.  This is a tremendous investment for a social sciences
DS> graduate student (I could have learned a lot of stats or formal
DS> theory with that much work) and something I would estimate that
DS> few professors could afford.

DS> Until something like MAML is ready for primetime, I think
DS> documented short sample code can be one of the best teaching
DS> tools.  Marcus has created a number of these over time and Paul
DS> has put some of them together.  But short bits of working code can
DS> often illustrate solutions to problems in ways that other
DS> resources cannot.  And, if they are explained... their value
DS> increases exponentially...

DS> Some of my next ambitions include importing empirical data into my
DS> model, automating the collection of statistics and results, and
DS> toying with genetic algorithms.  R, HDF5, and LISP are all
DS> acronyms suggesting that I'll need to expend a lot of energy to
DS> get the results I seek, and the prospect of learning additional
DS> software/interfaces is just not exciting me.

It's a given that learning new interfaces/software is not the
desirable way to go, but sometimes "there ain't no graceful way".  If
you want functionality, there's always going to be a cost to creating
that.  

Ultimately, efforts like MAML and Integrating Modelling Architecture
(IMA: http://swan.cbl.umces.edu/~villa/IMA/) should reduce the burden
of software development to the user, in a way that users can `hook'
together disparate software environments in a simulation without
having to know each intimately.  But even then, there will still be
costs and issues for using each tool, that the developer will need to
understand in order to create good working models, a modeller can
never afford to be totally naive about his or her tools.

-- 
Alex Lancaster * address@hidden * www.santafe.edu/~alex * 505 984-8800 x242
Santa Fe Institute (www.santafe.edu) & Swarm Development Group (www.swarm.org)


                  ==================================
   Swarm-Modelling is for discussion of Simulation and Modelling techniques
   esp. using Swarm.  For list administration needs (esp. [un]subscribing),
   please send a message to <address@hidden> with "help" in the
   body of the message.
                  ==================================


reply via email to

[Prev in Thread] Current Thread [Next in Thread]