Kotlin Goes Open Source!

We are happy to announce that Kotlin, a modern programming language for Java and JavaScript platforms developed by JetBrains since 2010, has just gone Open Source!

In addition to Kotlin Web Demo, a web-based environment for editing, running and sharing Kotlin programs, we’ve opened access to snapshot builds and source code (under the Apache 2 License) of the following:

  • The Kompiler — Kotlin compiler,
  • Enhancements to basic Java libraries — convenient utilities for JDK collections and more,
  • Build tools — Ant and Maven integration, and
  • IntelliJ IDEA plugin — Kotlin’s native IDE.

We invite you to try Kotlin and give us your feedback, ideas and suggestions. Solve problems proposed on Web Demo and share your solutions with the world.

We are also looking for Kontributors, i.e. Kotlin contributors — brave souls eager to make this world a better place together with us. All Kontributions, from compiler to IDE patches to libraries and examples, are welcome and appreciated. You can start by reading our issue tracker or by just picking your favorite library and making it Kotlin-friendly.

Read more on http://jetbrains.com/kotlin
Our issue tracker: http://youtrack.jetbrains.com/issues/KT
The source code is available at http://github.com/JetBrains/Kotlin

Note that Kotlin is still under development. You can download snapshot builds here: https://github.com/JetBrains/Kotlin/downloads.
Attention: Latest builds of IntelliJ IDEA are required for running the plugin.

This entry was posted in General and tagged . Bookmark the permalink.

56 Responses to Kotlin Goes Open Source!

  1. Zuhaerr Mansiv says:

    Congratulations on releasing Kotlin! I’ve downloaded kotlin-plugin-0.1.1358.zip and installed it in IntelliJ IDEA 11.0.2 build IC-111.277, but there is no mention of Kotlin that I can find anywhere in the new project/module dialogs or project/module settings. How can I create a new Kotlin project?

  2. pron says:

    Kongratulations!

  3. tom says:

    This is great news, but please do not adopt the habit of prefixing/starting words with a K (Kompiler, Kontributors). This has proven to be annoying by the Linux desktop project KDE (same with J* for Java and G* for GNU projects).

  4. Ingo says:

    Really amazing stuff, seems to work quite well so far.

    There’s a problem with the kotlin plugin that everyone will face immediately when opening the example projects in IDEA: The kotlin runtime is set up with the JAR file

    kotlin-0.1.429\dist\kotlinc\lib\kotlin-runtime.jar

    That directory does not exist, after changing it to

    kotlin-0.1.429\kotlinc\lib\kotlin-runtime.jar

    it works correctly.

  5. Dirk Möbius says:

    What a nice Valentine’s Day present! Thanks, and congrats!

  6. guest says:

    Is there any tutorial, how compile something simple like
    fun add(x: Int, y: Int): Int{ return x + y; }
    to javascript
    function add(x,y) {return x + y;}
    ?

  7. guest says:

    Is there any forum or community there I can ask some questions about kotlin?

  8. fn says:

    pairless with one access only?
    The hint states “there’s a solution that looks at each element only once and uses no data structures like collections or trees.”

    This is a fact I doubt. If the array is not sorted, I have to search for each “partner”. Technically, “contains()” is also touching elements inside the array.

    This is my shortest solution – any hints or clarifications to the comment?

    fun findPairless(a : IntArray) : Int {
    a.sort()
    for(i in 0..(a.size/2)-1)
    if(a[2*i] != a[2*i+1]) return a[2*i]
    return a[a.size-1]
    }

  9. Throwable says:

    Ofigenno! :)
    And is there a planned date for the 1.0 release?

  10. Ilmari Vacklin says:

    You mention Maven. What does that mean here, exactly? Can I use Kotlin in my Maven-based Java projects right now?

  11. Congrats! Looking forward to try it out.

  12. Buster says:

    I have not used the IDE before. I tried to install the Kotlin plugin by using the “Install Plugin from Disk” option and pointing it to the Kotlin plugin zip file. I get “Fail to load plugin descriptor from file kotlin-0.1.429.zip” error. I am using the latest IU-114.98 IDE.

  13. MuppetGate says:

    Can’t seem to get it to set up the Kotlin runtime. If I click on the link, it just puts up a dialog box saying, ‘kotlin-runtime.jar’ is not found’. Where is the runtime supposed to go?

    • Buster says:

      Message “Kotlin runtime library is not configured for module ‘guice-kotlin’”
      When I click on the Setup Kotlin Runtime link, nothing happens.

      • Jake Mitchell says:

        You probably need to add the KotlinRuntime library to the project’s External Libraries list. Do this by opening the Project Structure dialogue and provide the path to kotlinc/lib.

    • MuppetGate says:

      Fixed!

      Wrong version

      :-)

      I’m still not liking the ‘fun’ keyword though.

  14. Koder says:

    Ok, I give up. How do you make this work:

    class Data(vararg elements: String) {
    fun toString(): String = els.join(“,”)

    var els:Array = elements.sort() // doesn’t work
    }

    Also tried Arrays.sort, Collections.sort, etc. Nothing works.

    • Also tried Arrays.sort, Collections.sort, etc. Nothing works.

      They return void instead of Array, so it shouldn’t work.

      It seems that an extension for Array.sort() is missing in the standard library for now. Please, file a request about it, and feel free to contribute a fix.
      Issue tracker: http://youtrack.jetbrains.com/issues/KT
      GitHub: http://github.com/jetbrains/kotlin

      • Koder says:

        I know, that Arrays.sort returns void. I also tried:


        fun sort(v: ArrayList):ArrayList {
        Collections.sort(v); // error
        Collections.sort(v, {(a:String, b:String):Int -> a.compareTo(b) }); // error, too
        return v;
        }

        inline fun <T: Comparable> Array.sort():Array {
        Arrays.sort(this); // also an error
        Arrays.sort(this, {(a:String, b:String):Int -> a.compareTo(b) }); // here too
        return this;
        }

        • Koder says:

          The blog removed all angle brackets, so with []:

          fun sort(v: ArrayList[String]):ArrayList[String] {
          Collections.sort(v);
          Collections.sort(v, {(a:String, b:String):Int -> a.compareTo(b) });
          return v;
          }

          inline fun [T: Comparable[T]] Array[T].sort():Array[T] {
          Arrays.sort(this);
          Arrays.sort(this, {(a:String, b:String):Int -> a.compareTo(b) });
          return this;
          }

  15. guangyu says:

    Waiting for IDEA 11.1……

  16. Chris Kent says:

    Is there going to be a Kotlin mailing list or forum? At the moment it’s not clear where the best place is to post questions. There is this blog, Confluence and the bug tracker.

  17. Curtis Stanford says:

    Does the module feature work in Kotlin? The documentation on modules is fairly sparse.

    Thanks and congratulations! Can’t wait to use Kotlin for real.

  18. MuppetGate says:

    Can you pattern match an array of strings? If so, how do you do it?

  19. Fabian says:

    How can we build the stand-alone compiler? The Readme.md on Github only produces the plugin, and the build.xml does not include a target to pack up the stand-alone version of the compiler. I’d really like to fiddle around with Kotlin without having to run IntelliJ.

  20. Rien says:

    Forum doesn’t seem to be up yet, so I’ll ask here.

    Under ubuntu (IC-144.145) the plugin doesn’t seem to work. I get the following error when trying to compile an example:

    “Cannot find kotlinc home. Make sure plugin is properly installed”

    Plugin seems to be installed fine, can I edit the location of “kotlinc home” manually somewhere?

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">