Herding Code 194: Hadi Hariri on Kotlin, Nitra, and Developing In A Decade

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:

Sponsor

This show is brought to you by Runscope – find out more at http://runscope.com/herdingcode

Herding Code 193: Mark Rendle on Zudio, developing with Angular and Typescript, The History of Programming, and Simple.Data

At Techorama 2014 (Belgium), Jon corners Mark Rendle for a few minutes to talk about his new startup, Zudio, "the Azure Cloud storage toolkit," his keynote on the History of Programming, and other minutia.

Download / Listen: Herding Code 193: Mark Rendle on Zudio, developing with Angular and Typescript, The History of Programming, and Simple.Data

Show Notes:

  • History of Programming
    • (00:54) Jon asks Mark what the talk was about, and some of his personal favorite periods.
    • (01:53) Jon remarks that some of the joke terrible languages weren’t much worse than the unintentionally terrible languages. Mark mentions Intercal, brainf*** and Malbolge as joke programming languages and IBM Cobol as the most unintentionally hilarious programming language.
  • Zudio: The Azure Cloud Storage Toolkit
    • (02:55) Mark talks about how Zudio got started and where it’s at. Zudio is a web based tool for managing Azure storage. It’s great for a lot of users, especially PHP / Node / Java developers and in the enterprise. It’s built with AngularJS and Typescript.
    • (04:37) Jon said he assumed it was just a simple table grid, but there are seem to be a lot more advanced features. Mark talks about the new enterprise model, which lets you control your user list through Azure Active Directory (which can be synchronized to on premises Active Directory), and you can assign different access rights to users and groups. There’s also auditing and logging to track usage.
    • (05:29) Jon asks if he’s specifically focused on storage. Mark talks about upcoming support for SQL databases, including Azure SQL, SQL VM’s, ClearDB running MySQL, Oracle VM’s, Postgres via VM, etc. that will show run queries and show results in a grid, list tables and views, etc. Jon compares it to phpMyAdmin, but Mark says it’s for any database and deployed in the same datacenters, without you needing to spin up a web server. His stretch goal is to handle data migrations between different database systems.
  • Angular and Typescript
    • (07:19) Jon says that Mark’s been a fan of Angular and Typescript for a while and asks why he likes the combination so much. Mark says it feels like the data binding framework Microsoft’s been trying to build since VB3.
    • (08:30) Jon asks why Typescript instead of just writing in JavaScript. Mark talks about the benefits of compile-time checking. Jon asks for some specific answers and Mark gives an example with services passed as parameters. Oh, and IntelliSense is handy, too. Mark uses DefinitelyTyped and some Bower packages that he maintains.
    • (10:24) Mark says that unlike most frameworks he’s worked with, he’s gotten to the end of a project using Angular and doesn’t want to throw it out, so that’s saying something.
  • Simple.Web and Simple.Data
    • (11:33) Jon asks Mark what’s going on with Simple.Web (a simple .NET web framework with attribute routing and dependency injection). Mark says that everything that had driven him to create Simple.Web has been added into ASP.NET vNext, so Simple.Web is pretty much done.
    • (14:50) Simple.Data is Mark’s simple data access layer that leverages dynamic types and can work without any code changes against a lot of different databases.
    • (15:52) Jon asks why someone would use Simple.Data instead of Entity Framework. Mark explains how Simple.Data works really well in lightweight web frameworks; it’s so simple you can code to it without IntelliSense.
    • (16:47) Mark is focused on updates to Simple.Data for use in Zudio, and will we working on more metadata, performance, and async support. He’s looking at moving to async only and is interested in listener input on that.
  • Wrap up
    • (18:13) Mark likes all the new stuff and thinks it’s a good time to be a programmer.

Show Links:

Sponsor

This show is brought to you by Runscope – find out more at http://runscope.com/herdingcode