Hello Jason, 



Thank you for the answers! 




I have noticed that Tortoise is a full reimplementation, but what caught my eye 
was the org.nlogo file that was being used. While compiling teletortoise from 
source, and wanted to change it to work with NetLogo 5.2, I noticed that in the 
build.sbt you use a org.nlogo version 0.1 provided by tortoise 
(https://github.com/NetLogo/Teletortoise/blob/master/build.sbt). Trying to 
change it with the org.nlogo provided from NetLogo 5.2 (desktop) i couldn’t 
compile. I assume they differ. 

Because of that and one of the major features announced for NetLogo 6.0 - 
"Tortoise Integration” - I assumed that both desktop and web netlogo would be 
using the same org.nlogo at one point. 

This train of thought may be silly, but from what I read here: 
https://github.com/NetLogo/NetLogo/wiki/Extensions-API


org.nlogo provides the API for programming extensions. 




So, I take it that the plan is to have two APIs for building extensions - one 
for desktop and one for web ? 




Thank you for the info on NetLogo 5.3 using Scala 2.11! 


—
Sent from Mailbox

On Tue, Jul 7, 2015 at 6:54 PM, Jason Bertsche
<[email protected]> wrote:

> 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