With thanks to Esko Luontola I now have a pet project. It’s called Dimdwarf. A direct descendant of RedDwarf but with some additional finery (the biggest difference being that managed references are invisible to the developer).
The project was written in Java (some helper scripts with Ruby) but all the new code is written in Scala. Thus, I got a perfect opportunity to hone my skills. Also, the project architecture contains almost all the things I have wanted to work with. It has Software Transactional Memory, it uses Guice for dependency injection, it is developed purely with TDD. No exceptions to that. And statics are forbidden! It is designed to be scalable, aimed for clusters and much more. See the project pages for more information.
Now, all I need is more time. Could someone add more hours to my day?
I have a positive problem. I need something to code with Scala at home. I’m kind of bored with code kata’s though practice is never bad for you. I just want to do something with a meaning, something more challenging. Maybe even something that someone could use and benefit from.
So, please suggest something! Existing open-source projects, new ideas, anything!
Four weeks. Gone.
Darn, I could have stayed for longer but it is good to notice that I’m actually happy being back at work. Good stuff going on in here so no trouble of getting back to the rhythm. Well, It might take a day or too. Lot’s of things to catch up and remember.
During my holidays Scala 2.8.0 Final was released (I already updated mine) so there are plenty of new things to check with it.
I also made a new questionable record, my Windows host started up in 13 minutes. Couple of system updates were downloaded but that’s how long it took for my laptop to be usable. For comparison, my Kubuntu laptop took less than a minute.
Anyway, I’m going to start my professional life again, so expect more stuff in the near future.
I’ve been learning Scala and during the process I have tried two different IDE setups, Eclipse and IntelliJ. They both can integrate Scala and provide syntax checking, test executions, code assistants and so forth.
I’ve been working with the Scala 2.8.0 release candidates so the environment has fluctuated a bit due to the changes between RC’s. Anyway, so far IntelliJ has been by far superior when it comes to project setup and stability. Scala IDE works pretty well but it hasn’t yet, in my opinion, reached the maturity of IntelliJ’s integration.
Writing unit tests with xUnit is simple, just drop in ScalaTest. Specs work nicely too, especially with jMock!
Scala Tools provide lots of useful stuff so grab what you need. I really loved Maven Scala Plugin since it made project creation a breeze.
The internet is full of good tutorials on Scala, one very useful entry point for Java programmers is Code Commits Scala for Java Refugees. Jonas BonĂ©r has some good articles too. And let’s not forget the main Scala site itself. Documentation, Scala downloads, tutorials, resources, code examples, you name it.
Scala is good.
For the last few weeks I’ve been reading and learning Scala. It is a new language running on top of JVM. It has almost all one can wish for ;-)
Scala feels familiar to me because its syntax and features remind me of Perl 6. You could imagine it being a hybrid of Perl6 and Java with functional programming on top. Compact syntax and ability to write scripts are broaden the usability of Scala. In addition it is a pure OO language. Everything is an object, even operators, consider
1 + 2
is equivalent to
(1).+(2) // or1 .(2)
Cool :-) I just can’t wait to learn more! This language scales with you as grow and learn more.
As Dean Wampler and Alex Payne put it in their book Programming Scala
Scalability = Functional Programming + Objects
Resources to start with Scala: