Hi Marin,
I'm moving this conversation to the public development mailing list,
since I think others might find these questions and answers helpful.
What is the plan with the API offered by Tortoise?
NetLogo Web (née Tortoise) does not currently have an extensions API.
It's certainly something that we plan to add at some point, but
definitely *don't* expect it in the next month or two.
I noticed that Galapagos uses Scala 2.11
Galapagos, Tortoise, and NetLogo-Headless use 2.11 because they are on
an entirely separate line of development from desktop NetLogo, and
therefore do not have to deal with the same constraints that desktop
NetLogo does (e.g. trying to retain binary compatibility with of all the
NetLogo ecosystem's extensions).
and the Tortoise API
To talk about a "Tortoise API" suggests to me a misunderstanding as to
what Tortoise is, and I think that clarifying this point might help to
better make sense of how Tortoise fits into all of this. When you say
"Tortoise API", I assume that you are referring to this project
<https://github.com/NetLogo/Tortoise>, which is not so much an API as it
is a full-fledged reimplementation of NetLogo. The original NetLogo
application takes NetLogo code and converts it into Java code/Java
Virtual Machine bytecode that calls into a simulation engine written in
Java and Scala. The Tortoise project takes NetLogo code and converts it
into JavaScript code that calls into a simulation engine that's written
in JavaScript/CoffeeScript. Aside from both projects implementing the
NetLogo language and aiming to have the same core features, they live
very independently from one another.
Will future extensions of NetLogo be written using Tortoises API?
I don't expect so. The plan for the near future is that the two NetLogo
implementations (NetLogo and NetLogo Web) will continue to exist
separately from one another. I've thought about the idea of somehow
being able to have a shared ecosystem of extensions, but I've concluded
that such a thing is largely impractical. In some ways, I'm not even
sure it's desirable. Having simulations running in the browser, on the
web, opens up new doors for extensions that don't make as much sense
when you're using a desktop application (e.g. embedding a model within a
personal web page). Conversely, the JVM offers sane solutions for
concurrency and dealing with the machine's file system, unlike the
browser. The two environments have their own strengths and weaknesses,
so what an extension is capable of will vary between those two
environments. Surely there are some extensions that people would find
useful in both environments, but I'm pessimistic that there would be
many overlapping extensions that it could be written once and runnable
in both the browser and the JVM while still being /well-implemented/ for
both environments.
Can I start developing extensions for the current release (NetLogo
5.2) using the Tortoise API?
It probably goes without saying, at this point, but no. If you want to
build an extension will run in NetLogo 5.2, it needs to be written
against the NetLogo Extensions API in some language that works with the
Java 6 runtime. If you're going to use Scala, the most-recent version
you can use with NetLogo 5.2 is Scala 2.9.3. However, the NetLogo 5.3
branch looks like
<https://github.com/NetLogo/NetLogo/blob/5.3/build.sbt#L1> it supports
Scala 2.11.
On 7/6/2015 10:44 AM, marin aglic wrote:
Greetings,
I was wondering about starting to build extensions for NetLogo with
Scala 2.11. However, I noticed that the API doesn’t support Scala 2.10
and 2.11.
What is the plan with the API offered by Tortoise?
I noticed that Galapagos uses Scala 2.11 and the Tortoise API, so I
was wondering: Will future extensions of NetLogo be written using
Tortoises API?
Can I start developing extensions for the current release (NetLogo
5.2) using the Tortoise API?
P.S. I apologize for any spelling or grammatical mistakes.
Thank you,
Marin Aglić Čuvić
—
Sent from Mailbox <https://www.dropbox.com/mailbox>
--
You received this message because you are subscribed to the Google Groups
"netlogo-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.