While compiling teletortoise from source, and wanted to change it to work with NetLogo 5.2 [...] Trying to change it with the org.nlogo provided from NetLogo 5.2 (desktop) i couldn’t compile. I assume they differ.

Yes, massively. |org.nlogo| is just our organization identifier; there are many, many wildly different projects that are associated with the |org.nlogo| identifier. They are not interchangeable. Galapagos/Teletortoise requires a version of NetLogo-Headless <https://github.com/NetLogo/NetLogo-Headless> (which is significantly different from normal NetLogo <https://github.com/NetLogo/NetLogo>).

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.

I don’t know what was meant by that on the wiki page—perhaps Frank could comment on that—but my suspicion is that it’s referring to being able to do “Save as NetLogo Web” from within desktop NetLogo (just like you currently can do “Save as Applet”). If that’s the case, it’s something much different from what you’re imagining. Instead, “Save as NetLogo Web” would simply be about taking the NetLogo model that you currently have open in your desktop NetLogo application and sending it up to the NetLogo Web server to convert it into a NetLogo Web page.

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.

Right, that document is talking specifically about the extensions API available in the desktop NetLogo project <https://github.com/NetLogo/NetLogo>. It does not apply to any other project.

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

Correct. This seems logical, as the two APIs would deal with two different simulation engine implementations that each target a different runtime environment.

On 7/7/2015 1:39 PM, marin aglic wrote:

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 <https://www.dropbox.com/mailbox>


On Tue, Jul 7, 2015 at 6:54 PM, Jason Bertsche <[email protected] <mailto:[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