In many cases, you would get warnings when accessing a var that you don't get when accessing a val. Also, IntelliJ suggests converting to val if a var is never reassigned.
Unfortunately not, since those apps are all business internal.
On Android/react-native, the Kotlin parts runs on the JVM directly. I haven't released a KotlinJS-application to the wild yet, but I don't suppose the size is a problem after running it through webpack, uglify et. al.
You are right, the runtime is rather larger though. Do you have suggestions?
I'm glad both exist for sure. My favorite thing about the chip is lipo charging built-in. But micro-sd, HDMI, and the camera connector on the Pi are useful too.
I wish some good designers would lend LibreOffice a hand. Even without reworking UX they could win over more users by being less ugly (compare MS Office start page)
Kotlin has been useful to me and easy to learn. It dovetails so well with exisiting java libraries that no Kotlin revolution (rewrite everything) is necessary. The most notable frameworks are in android land (Anvil, Bansa -- like react, redux). But on the backend, you can use stardard stuff. That's why Kotlin has been well accepted but not made a huge splash.
Or just use IntelliJ and you can reload classes while your program is running if you want. Sbt is a very powerful tool but it's not written with readability for new users in mind.
Yes, it's like they reinvent all the things that were considered but discarded in Scala and believe they found something nobody ever thought about before.
I am not sure that Kotlin competes with Scala in any way. They are trying to remove the pain from Java by providing a concise and safe language (see the quotes from their website below). What are "all the things" they reinvented that were discard in Scala?
> Kotlin is a pragmatic programming language for JVM and Android that combines OO and functional features and is focused on interoperability, safety, clarity and tooling support.
> Being a general-purpose language, Kotlin works everywhere where Java works: server-side applications, mobile applications (Android), desktop applications.
> What are "all the things" they reinvented that were discard in Scala?
Extension methods, properties, special syntax for everything, final by default, short constructor syntax, trying to put band-aid around Java's broken collection types, ...
The pattern of throwing exceptions for operations deemed "unsupported", an API that requires massive workarounds to keep alive in Java 10, no support for immutable collections, unmodifiable views are a complete clusterfuck, no persistent collections etc.
"Android Studio should currently not be used for development with sbt and Scala. Chances are, however, that it's a good fit for a Gradle + Scala setup."
Using InteliJ instead of Android Studio means not being able to use the latest tooling even from the stable version, as InteliJ is always some versions behind.
Using Gradle + Scala implies a few configuration steps that tend to break at each new Android Studio release, versus the out of the box experience from Kotlin.
I would do more things in Ceylon if it wasn't plagued by performance problems. So far the only way I've found is to avoid any of the few libraries written in Ceylon and just use Java libraries but if you're going to do that then Kotlin's interop is far more appealing.
The only thing I hate it the extra symbols. How to they justify using :
val companyName: String = "JetBrains".
Instead of string companyName = "Jetbrains" ?