>>>>> "Sean" == Sean Luke <[log in to unmask]> writes:

 Sean> Full GPL?  Wouldn't that prohibit people from distributing models
 Sean> without source?  [hmmm, maybe it's not possible to do so...]

NetLogo is partly a compiler, but mainly an interpreter, so it's true
that for technical reasons models can only be distributed as source.

Regardless, an interpreter or compiler being GPL has no bearing on the
legal status of user code.  See

"The interpreted program, to the interpreter, is just data; a free
software license like the GPL, based on copyright law, cannot limit what
data you use the interpreter on. You can run it on any data (interpreted
program), any way you like, and there are no requirements about
licensing that data to anyone."

 Sean> Anyway, congratulations Seth.  Also I note a bunch of Scala in
 Sean> the NetLogo source.  How long have you guys been embedding Scala
 Sean> in the system?

We switched to Scala four years ago, in early 2008.  Since then we write
all new code in Scala, and much of the old code has been rewritten in

Our current codebase is about 50/50 Scala/Java by line count, but Scala
code is denser than Java code, so I'd say the effective ratio is more
like 2-1 or 3-1.  I'd sooner live naked in a shack in the woods than
switch back.

Nonetheless, some of the engine code is still in Java for performance
reasons.  I could probably devise equally performant Scala code, but
it'd have to be done carefully and the results measured carefully
afterwards, so it doesn't seem worth the effort.  The Scala compiler
and build tools handle mixed codebases just fine.

Seth Tisue | Northwestern University |
lead developer, NetLogo: