How do you generally test private methods in Scala? Would an inner class work? Path-dependent types in Scala seem to make this approach more elegant than in Java.
In the beginning, I wrote Scala "the Java way", sans semi-colons. Then I omit dots and parenthesis whenever possible (foo.do(bar) -> foo do bar). Then I learn to use immutable declaration (var -> val) and learn that expressions like this:
var i = 0
if (something) {
// Additional logic
i = 1
}
Can be made immutable like this: val i = {
if (something) {
// Additional logic
1
} else 0
}
Then I try to make use its functional goodies like map and fold, and so on. I use IntelliJ with Scala and JRebel (free for Scala!) plugin. JRebel allows you to "hot reload" Scala classes to avoid server restarts.I admit I'm a frequent lurker in SO when using Scala, as its API doc sucks, and I also dislike its integration with Java, although it's not Scala's fault. For API doc, I think it'd be better if it has examples, which reminds me of ActionScript API docs.
final int i;
if (condition) {
// logic
i = 1;
} else {
i = 0;
}
and javac will produce an error if you forget the second branch of the conditional as this would allow an uninitialized `i`.Although for clarity's sake I'd probably invert the condition so the "default" case is easier to see.
That also works for instance members, javac will allow setting them in a constructor or an initialization block, and will verify that they are set (and not set twice so you can't set the member in a constructor and an initialization block)
And yes, the F# compiler is around 1/8th the speed of the C# compiler, at best - possibly much worse.
For beginners http://dcsobral.blogspot.com/2011/12/using-scala-api-documen... may be helpful in learning how to navigate the docs buuut what really helps are examples especially with scala's sometimes long and hard to parse type signatures.
In general I think a site for language docs where people can add comments/examples/content would be extremely useful. Like the php docs but for all languages in the same place. I never use php but comment-able docs are a win.
I wrote a lengthy email describing a year's worth of experience to scala, and here is an excerpt:
If we think that one of the goals of our developers (jr, mid and even sr) is to fully understand as much of their execution environment and stack as possible, the sheer bulk of the language and its standard libraries becomes worrysome. I could probably re-write java.util.concurrent and java collections from whole cloth if necessary, but I could NOT re-write the Scala collection libraries.