swarm-support
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Swarm-Support] EZBin in Java


From: Marcus G. Daniels
Subject: Re: [Swarm-Support] EZBin in Java
Date: Mon, 07 Nov 2005 16:03:25 -0700
User-agent: Thunderbird 1.0+ (Windows/20050803)

Steve Railsback wrote:
(Why does this make me miss Objective-C??!)
If you like Objective C, and want to use Swarm, please do. It was the intent that Swarm would support both Objective C and Java. Java support was never intended to be a migration target, nor was Java in any sense a second class language for Swarm.

But, realizing that your question may be rhetorical, I'll speculate that you find the explicit phase switching of Java/Swarm complicated. I would argue in return that it is not a flaw of Java, nor a flaw of Java/Swarm, it is simply not textually obvious in an Objective C Swarm program. It is, however, something that is (for better or worse), a part of the design of Swarm, and if you can't follow what is happening in Java/Swarm, you may not really understand it in Objective C either. The Java way of doing things comes with some benefits, such as that misuse of create time calls in an object in `use' phase, will be caught by the compiler, as will other mistakes that are easy to have persist in a largely typeless language like Objective C.

The purpose of a agent simulator is to make calls on objects in a systematic way, and provide features to track the consequences of those calls. Most programming languages have some notion of both `calls' and `objects', and so it was not necessary to make Swarm, as some like to say, `pure'. Kind of like calling a person pure: Some find the impulse satisfying, but it is probably not the best way to appreciate or cope with diversity of the world.

As Swarm was already written in C, and it was well-known that C compilers are good for making high performance and portable programs, we opted to not have N implementations, but instead just one. It was not even the intention of the SDG to keep the original engine. In fact the goal was to completely separate the interface and implementation, so that new libraries for Swarm could be written in a preferred language of a given author and, if it proved useful, the core libraries of Swarm could be replaced.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]