Are the robots we create alive?
Very tough question. I mulled it around for awhile. But I would have to say. No. But only just.
They are not free to reproduce within their environment. Even a virus can do that by interacting with its host. A virus has been hotly debated for years if it is a living thing. Since our robots cannot even do something so simple, I would have to say no.
But robots in some other programming games I would consider as alive (they can do most of what a robocode robot can, but also reproduce and possibly mutate/evolve). But again only to a point, we completely control their environment. If they could do what they do in our environment (outside our complete control), they would definitely be considered living.
So, a fish in an aquarium is not completely alive since we control its environment?
And the bit about not being able to reproduce is really more of an issue with Robocode itself than the robots. If it had some way of actually creating a robot in mid-game, I'm confident many would use it.
I said complete control. With say a fish tank, we can't say what the gravity is at a flick of the switch. But the main point is with a fish, you can easily move it to a different environment not under our control (perhaps at all, like say the ocean).
If we could control everything about the fish tank, the fish and everything else in it, to the point of where every atom, as well as have fine control over each of those things. I might say that the fish is only alive to a point, since we control so much about it. It ceases to be so much as fish as a toy. As we change its color and remove it from existence whenever we care to.
You're talking about external forces affecting the fish (robot) itself. In Robocode, sample.Interactive and sample.Interactive v2 are really the only instances of that happening. The robot can decide to change its colors when certain variables reach certain thresholds, and change the thresholds when it needs to. The few robots that have the ability to edit their own code can even decide to get rid of the color-changing code altogether.
I still don't understand why it matters whether the environment is controlled by us or not. Take a minnow from a stream, put it in a heavily controlled environment, it's still a minnow. Take minnow DNA from a wild minnow, grow one in a lab, release it, it's still a minnow.
Mind you, we are not even talking about robocode robots here anymore, in case you missed that. I decided those were not alive.
But by saying "to a point", I am not saying, "No, it's not alive". There isn't a really deep meaning behind "to a point" either. It just doesn't exist some of the time.
I am saying, for a entity with zero control over its very existence one second to the next. There is no real point to the question. Since at the end of the day it just isn't going to exist. It doesn't know that it doesn't exist. Since when it does exist it doesn't remember that it didn't exist, or that it had previously existed. But even if it did know that it had previously existed, that doesn't really effect it much either.
So sure, alive. But only to a point. Since when it no longer exists, it is no longer alive. It isn't even dead. It just 'isn't'.
(Now come up with a fish metaphor where we can remove said fish from existence.)