Saturday, December 1, 2007

Announcing Jiva, a Genetic Algorithms Toolkit written in Scala

Earlier this week, I put out an initial release (version 0.1.5) of Jiva, a Genetic Algorithms (GA) toolkit that I have been working on.

Jiva is hosted on Google Code:
http://code.google.com/p/jiva-ng/

Jiva is written in Scala, a very powerful OO/Functional hybrid language that runs on the Java Platform:
http://www.scala-lang.org/

Jiva started out life earlier this year as a GA toolkit written in Java. I decided to port it to Scala because I figured that this might be a good way for me to (a) learn Scala, and (b) have some fun in the process. And I think this has turned out to be mostly true (especially the fun part!).

I should point out that despite its early-release status, Jiva is pretty functional (http://code.google.com/p/jiva-ng/wiki/FeatureSet ). If you are interested in playing with Genetic Algorthms, I encourage you to give Jiva a try. If you run into problems or have questions, please let me know.

Some quick links:
Download, Build and Run Jiva: http://code.google.com/p/jiva-ng/wiki/JivaQuickStart
Defining and Running GA Problems: http://code.google.com/p/jiva-ng/wiki/DefiningAndRunningGAProblems
Samples: http://code.google.com/p/jiva-ng/wiki/SampleProblems

Other tools used by Jiva:
Sant: for builds (http://code.google.com/p/sant/).
JMock: for testing of Scala code (http://www.jmock.org/).
New Scala Eclipse Plugin (http://lamp.epfl.ch/~mcdirmid/scala.update).
Much4.us: for Backlog/Task Management (http://much4.us/much4/).

Many thanks to the authors of these fine tools! I used them pretty heavily while working on Jiva, and they all held up very well and provided extremely useful functionality.

7 comments:

Nat Pryce said...

Could you post something about your experiences using jMock with Scala? That sounds an interesting combination, especially as the jMock API plays such tricks with the Java 5 syntax.

Lalit Pant said...

Will do, Nat.

And thanks for all the great work that you've done with JMock! I have been using it for the past 2-3 years, and it has served me and the teams I have worked with really well during this time.

Harshad said...

I have always been wanting to experiment with GA, and jiva finally pushed me into it. Thanks for giving a new "life" to my efforts ;)

I am trying to implement a graph-layout program using jiva.

Is there a mailing-list to which I can post queries? I have a lot of them :)

Lalit Pant said...

Harshad, it is good to know that Jiva has got you going with GAs.

You can post your queries at:
http://groups.google.com/group/jiva-ng

Nick said...

Hi Lalit,

I can't seem to find where to change the build config so it no longer looks for the scala compiler javadoc?

Where do I change this?
The build fails because

http://repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.7.2/scala-compiler-2.7.2-javadoc.jar

No longer exists.

cheers

Nick

Lalit Pant said...

Hi Nick,

Thanks for catching this.

I took a quick look at the issue. Tweaking the repo search order in ivysettings.xml, so that the scala-tools repo is earlier in the search path than ibiblio, seems to fix things (I need to dig deeper to figure out why).

While I was at it, I also upgraded the build to use scala 2.7.3.

Nick said...

Hi Lalit,

Thanks for the update.
And thank you for creating Jiva.
I am just starting out with Scala and am already excited by my (albeit limited) understanding of the potential of this language.

cheers

Nick