I heard of the language several times, but didn’t have chance to look at it. This time, I made up mind to investigate more.

The Getting Started with Kotlin in 2 minutes is a good introductory video for understanding its syntax and behaviors. Kotlin works on JVM and its concept and syntax are mainly coming from Java, but also good parts of Scala or Groovy is incorporated and making it modern language.

Scala has powerful extension of type-safety and functional-programming, but it’s a little too complex. Groovy has concise syntax and good productivity on small programs, but it’s a little too loose to cause dynamic exceptions like NullPointerException. Kotlin seems going between the two, and if the balance is good, it may be worthwhile to dig in deeper.

This session talks about the testing in Facebook. This kind of insights-talk from the actual engineers are pretty much useful. I don’t have much experience on the mobile development, but testing framework would be crutial factor for verifying on various devices. I didn’t know the Robolectric, and it seems interesting testing library. When I played around Ruboto, slow testing was a little tough.

At facebook,

Team is structured on features, rather than platforms like android or iOS for maintaining consistency.

Basic structure of git is “master” and “stable” branches. The master is the latest, and the stable is the one test-passing is confirmed.

Own building system called BUCK is used. It supports parallel and incremental building. If you want to encourage developer to use the system, it needs to be fast, ideally instant.

There’s no testing-specific department. It works on “some people are passionate about testing and some people are passionate about database” type of roles.