The guys talk to Hadi Hariri about Kotlin, Nitra, and his NDC talk, Developing In A Decade.
Download / Listen: Herding Code 194: Hadi Hariri on Kotlin
Show Notes:
- Hello. What is Kotlin?
- (01:00) K Scott asks what Kotlin is. Hadi explains it’s a statically type programming language that targets the JVM and JavaScript, and that it was designed to serve the needs of the JetBrains development team: Let’s create a language that a language that we can use ourselves… and if other people want to use it then, awesome.
- (03:07) K. Scott asks about the source code. It’s on Github and it’s under Apache 2 license. He asks who in their right mind these days would design a closed source language *cough* Swift *cough*.
- (03:48) Jon asks about comparisons with the Swift language. Hadi comments and says both Kotlin and Swift are kind of similar to Groovy. Jon asks why not just use Groovy then, and Hadi says that they wanted a statically typed language.
- (05:32) K. Scott asks about the comparisons with Scala and Java. Hadi says that Kotlin is more restrictive than Scala in some cases, which they see as a benefit. They strive for 100% interoperability with Java, since they have 14 years of existing Java source code to work with.
- (08:15) K. Scott asks about the JavaScript story. Hadi says it was bound to happen eventually, so they just did it from the source. The benefit is that you can share source code between server and client.
- (11:44) K. Scott asks about .NET support in the roadmap. Hadi says it’s not likely soon. He says there’s a ton of activity on the JVM lately, and it runs everywhere, albeit with the Ask toolbar.
- (13:31) Jon asks about running Java code on Mono and .NET using IKVM. Hadi says he’s tried it on some prototypes and it works, but Scott K complains that it’s really slow.
- (14:33) Scott K. Asks about the use of inference. Hadi says one of the goals of Kotlin is to be very concise, so you very rarely need to declare types.
- (17:43) K Scott asks if there are any libraries that JetBrains has for Kotlin. Hadi describes Kara, a web framework which makes use of strongly-typed HTML and CSS builders. Spec is a specification framework that Hadi’s written. Kotlin is pretty popular for Android development, so there are a lot of Android helpers available.
- (21:31) Jon asks about best places to get started with Kotlin. Hadi says it’s very easy to get started with just the compiler, available from on the Kotlin site. For an IDE-centric experience, use IntelliJ (either the free OSS Community Edition Version or IntelliJ IDEA Ultimate). You can also use the browser-based Kotlin demo without downloading anything.
- Java
- (23:06) Jon mentions installing Java JDK via Chocolatey, so as not to get the Ask toolbar. Hadi agrees and says that the Ask toolbar was from back in the Sun days, it’s not an Oracle thing. Jon also asks about the Java browser plugin. There’s a silly discussion about Java applets.
- (26:44) Jon asks about Nitra. Hadi explains the difference between Nitra, Kotlin and MPS. MPS (Meta Programming System) is a language workbench to create new languages or extend existing ones running on the JVM. Kotlin is a separate language, but it’s written in a way that makes it possible to easily create DSL’s. Nitra is an open source tool built by the Nemerle team, who were hired by JetBrains. Nitra is similar to Roslyn – it’s a generic tool that allows you to create a compiler for any language with support for tooling.
- Nitra
- (30:36) Jon asks how Nitra is being used. Hadi says it’s mostly used internally by JetBrains, and it’s still really under development.
- (32:45) Jon asks about the Nitra samples and Visual Studio extensions on GitHub. Hadi says you can start using them already, and that it does include Nemerle so you can start extending the with it now, but it won’t provide tooling for the language you’re building.
- Developing In A Decade
- (33:38) K Scott asks about Hadi’s talk at NDC called Developing in a Decade, looking ahead at technology and trends ten years from now. Hadi says he’s not so much looking at how or what we’ll be doing, but why we’ll be doing it. He says that he sees an overemphasis on how many rounds of VC money a company gets as opposed to what they’re actually doing. He’s interested in things people are doing for social good, and he’s concerned that we’re being destructive without thinking about the effects.
- (39:02) K Scott says that until recently when he called tech support, when he finally got to a person they could help him. Lately he’s been finding that when he reaches a person, they’re powerless to help him because the computers are in control. Hadi talks about how emerging technology like self driving cars will eliminate jobs.
- (41:26) Jon ask Hadi if trends towards automation will have positive effects, such as creating content that wouldn’t have previously been available or giving us more time to produce things we wouldn’t have before. Hadi references Brave New World and Amusing Ourselves To Death, and says that the huge explosion of content has a negative effect. Scott K and Hadi talk about the numbing effect of news as entertainment.
- Parting Shot
- (48:25) Hadi says "I told you so" about the coming unification of Web API and MVC controllers.
Show Links:
- Hadi Hariri (blog, @hhariri)
- Project Kotlin
- Blog post: Getting Started with a Kotlin OSS Project
- Type-safe Groovy-style builders
- Blog: Nitra goes open source
- Kara Web Framework
- NDC video: Developing In A Decade
- Hadi’s post about MVC and Web API controllers: With HTTP, your application is your API
Sponsor
This show is brought to you by Runscope – find out more at http://runscope.com/herdingcode