Wednesday, December 17, 2008

Software that Keeps On Ticking

I like the attitude of Erlang, at least as I understand it. You should be able to update software without shutting it down. I guess many dynamic languages have a similar attitude. Software should be able to run for weeks, months, or years on end. That Firefox or Eclipse wants me to restart for updates bothers me.

If Erlang comes from telephony and server perspectives, I think the attitude still matters elsewhere.

I'm into robotics. I think that it should be possible to update robot software components without shutting the software down. I see three main directions: (1) use Erlang or some other such system that won't require restarts, (2) use separate OS processes and IPC so that individual processes can restart without the whole system coming down, or (3) since individual processes are still heavyweight in Java, I think OSGi might work instead, if done right. Erlang seems to claim the lightest weight multithreading of them all, but I don't have experience to know if it's true. I also like the idea of abstracting local vs. remote actors.

Concerning Eclipse, they should build "update while running" into the expectations. If an extension can't be correctly installed, updated, or uninstalled while Eclipse is running then it should be considered broken. However, since it gives me the warning every time, I presume people haven't done a good job, and I just tell it to restart.

No comments:

Post a Comment