Kotlin 1.0 Beta Candidate is Out!

We are happy to present Kotlin Beta Candidate. An official 1.0 Beta will be out soon. By now, the binary format is finalized, no major language changes are planned, and only a few changes in the standard library are coming.

In this post we describe the changes since M14, including

  • imports from objects,
  • new safer collection interfaces,
  • inlining for Java constants,
  • better support for Java statics,
  • and more. Continue reading
Posted in Releases | 71 Comments

Join Live Webinar — Functional Programming with Kotlin

Join us this Thursday, October 22nd, 14:00 – 15:00 GMT (10:00 – 11:00 AM EDT) for our free webinar, Functional Programming with Kotlin with Mike Hearn

In this talk, Mike Hearn will provide a brief introduction to programming in Kotlin via worked, practical examples, with a focus on functional programming.

Topics covered will include:

  • Use of functional transforms
  • Immutability
  • Lazyness and working with lazy infinite sequences
  • The use of funKtionale, a library that extends Kotlin with a few features known from Haskell
  • Pattern matching
  • Reactive user interfaces

Everyone is welcome!

You can ask questions to Mike and suggest themes for future webinars in comments.

Mike Hearn Mike Hearn is a Java, Kotlin and C++ developer who works on digital currency related software. Prior to that he was a senior software engineer at Google, where he spent over seven years working on a range of products including Earth, Maps, Gmail and the accounts system.

Posted in Events | Tagged , , , , , | 5 Comments

Kotlin M14 is out!

With the release approaching, we switch to shorter milestones. Meet M14 that brings the following changes:

  • Support for annotations on file classes
  • New Java API for the Standard Library
  • operator modifier for operators
  • Backing fields are now accessed through a synthetic field variable Continue reading
Posted in Releases | 31 Comments

What’s new in Standard Library M13 and M14

Standard Library continues its evolution:

  • Lazy<T> type has been introduced
  • More concise syntax for storing properties in a Map
  • Final changes in the Char arithmetics
  • Plus and minus operations on a collection now depend on its type
  • New scope functions: apply and run
  • Right-open ranges
  • Trimming indents in multiline strings literals
  • and more

Read details

Posted in Libraries | 18 Comments

Call for Feedback: Java Statics, Result Expressions and More

Thank you all for the feedback we got on the previous call! Here comes another round of changes and adjustments. Your opinions and use cases are welcome. Continue reading

Posted in Language design | 58 Comments

Kotlin Eclipse Plugin 0.3.0

We are happy to announce Kotlin Eclipse Plugin version 0.3.0. This release is loaded with new features:

  • Kotlin M13 support
  • Find references
  • Parameter hints
  • Select enclosing/next/previous element
  • Override/Implement action
  • Body conversion intention
  • Debugger: Run to cursor
  • Debugger: Step into selection
  • Better performance

Drag to your running Eclipse workspace to install Kotlin Plugin for Eclipse

Continue reading

Posted in Releases, Tools | Tagged , , , , , | Comments Off on Kotlin Eclipse Plugin 0.3.0

Webinar Recording. Quasar: Efficient and Elegant Fibers, Channels and Actors

The recording of our September 16th webinar, Quasar: Efficient and Elegant Fibers, Channels and Actors, is now available on JetBrainsTV YouTube channel.

In this webinar, Fabio Tudone shows how to use Quasar for creation of highly concurrent software. He covers basics of Kotlin syntax and shows how Quasar uses Kotlin strengths to offer concise and expressive API.

Demo project is available on GitHub.

The video includes the time stamps following the agenda announced:
00:55 – What are Quasar and Fibers?
12:22 – What are Quasar Channels?
15:50 – What are and why using Quasar Fibers?
21:15 – From Async to efficient Fiber-Sync with Quasar
27:13 – Quasar Actors and Selective Receive
37:54 – Quasar Dataflow
45:19 – Pulsar: Quasar’s idiomatic API for Clojure
45:19 – Comsat: existing APIs on steroids with Quasar Fibers
47:07 – Comsat Web Actors for HTTP, SSE and WebSockets
49:58 – Capsule: deploy Quasar and any JVM applications

About the Presenter:

Fabio Tudone works on Quasar, Pulsar and Comsat at Parallel Universe. He has been writing mostly JVM software during his entire career, and before joining Parallel Universe he led the development of a cloud-based enterprise content governance platform. His interests include Dev and DevOps practices, scalability, concurrent and functional programming as well as runtime platforms at large.

Thanks to all the attendees for the questions! If you still have some, please, contact Fabio or our team.

You are welcome to suggest themes for future webinars in comments.

Let’s kotlin!

Posted in Events, Libraries | Tagged , , , , , | 1 Comment

Call for Feedback: Upcoming Changes in Kotlin

As mentioned before, we are wrapping up with the language design, and this post is a head-up for the upcoming changes + request for your feedback. Continue reading

Posted in Language design | 91 Comments

Kotlin M13 is out!

It’s been a long summer, and we have a lot to tell you about Kotlin M13 (details below):

  • Compiler daemon for faster compilation;
  • lateinit properties to support dependency injection and other frameworks;
  • sealed classes for expressing closed hierarchies;
  • Specifying and checking annotation targets;
  • Java get/set pairs are now seen as properties in Kotlin;
  • Better type safety for Java interop: taking @NotNull annotations into account (see this blog post);
  • Modifiers and annotations have been separated syntactically (see this blog post);
  • Fully functional reflection on classes, functions and properties;
  • Access to internal is now checked outside of a module (details below);
  • New .class file layout for top-level functions and properties;
  • and more (see below) Continue reading
Posted in Releases | 70 Comments

Join Live Webinar — Quasar and Kotlin

Join us 
Wednesday, September 16th, 16:00 – 17:00 CET (10:00 – 11:00 AM EDT) for our free webinar, Quasar: Efficient and Elegant Fibers, Channels and Actors with Fabio Tudone.

Quasar fibers bring true lightweight threads to the JVM as well as Erlang-like actors, Go-like channels and Dataflow programming: this means we can efficiently use straightforward blocking APIs and regular stack-based control flow rather than submitting to cumbersome and infectious async and monadic styles.

After an introduction about fibers, their workings and Quasar’s additional abstractions we’ll explore how Quasar uses Kotlin

  • data classes
  • top-level functions
  • lambdas
  • annotated expressions
  • when-expressions
  • inline functions

to offer an extremely lean and expressive API.

Everyone is welcome!

You can ask questions to Fabio and suggest themes for future webinars in comments.

Fabio Tudone Fabio Tudone works on Quasar, Pulsar and Comsat at Parallel Universe. He has been writing mostly JVM software during his entire career, and before joining Parallel Universe he led the development of a cloud-based enterprise content governance platform. His interests include Dev and DevOps practices, scalability, concurrent and functional programming as well as runtime platforms at large.

Posted in Events, Libraries | Tagged , , , , , , | 1 Comment