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.

Reply via email to