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.
