Skip to content
HomeVideosBooks
AllTopicsTrends
BlogsPodcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    Cover of Kotlin in Action

    Kotlin in Action

    Dmitry Jemerov, Svetlana Isakova · 2017

    Kotlin in Action guides experienced Java developers from the language basics of Kotlin all the way through building applications to run on the JVM and Android devices.

    ProgrammingComputer ScienceLisp & Functional
    Open LibraryAmazon
    Stats for nerds
    2recommend
    3mentions
    3people
    2019–2025years
    67% recommend33% critical

    Mentions per year

    2019202020212022202320242025

    What Hacker News says

    1. simon_voidJan 2025
      Kotlin backend dev of 7 years here (never done Android). Here my 50 cents to some of the "bad" points: 1) tenary operator. Apart from the "if-else is an expression" defence there's also the fact the in Kotlin the '?' is linked to nullability, not only conceptually but also in regards to parsing Kotlin code. There's a video on youtube where the first Kotlin language designer said that he once - because so many people were asking for it - actually sat down and tried to my the "a ? b : c" syntax work, but couldn't because of ambiguity (I think the issue was interaction with nullability operators, but I could be wrong). 2) return inside lambda. There is actually an option that allows for normal returns, but it's not very idiomatic (to a degree where I myself forgot that this option exists until a few months ago) and that is to instead of providing a lambda as a parameter, you can always provide an anonymous function instead (https://kotlinlang.org/docs/lambdas.html#anonymous-functions). In anonymous functions a return works like you're used to, but but the whole code gets more verbose. Here's an example: https://pl.kotl.in/4NQ4lMasf 3) Destructuring is worthless without naming. I visited the KotlinConf2024 and in one talk they said there are going to fix this (Kotlin 2.3??), probably in this one https://www.youtube.com/watch?v=tAGJ5zJXJ7w&list=PLlFc5cFwUn... 4) Coroutines. If I'm writing a Spring app, I (generally) don't use those as well. The exception was an reactive Spring with Webflux app that I converted from Java to Kotlin where the native coroutines constructs were just nicer (and more secure thanks to structured programming) than using Mono/Flux (see https://www.baeldung.com/kotlin/spring-webflux-kotlin). But I use Ktor in several of my newer apps and there coroutines are the only option. I admit that I struggled for a long time with coroutines. I read a tutorial or official documentation here and there, got the gist of it, but things got fuzzy soon enough. But I want to recommend the 3rd chapter of the 2nd edition of "Kotlin in Action". This is the best description of coroutines I've ever read and I finally got the feeling that I understood the whole thing! https://www.manning.com/books/kotlin-in-action-second-editio...
      thread
    2. M0devAug 2019

        * Introduction to Java Programming and Data Structures
        * Head First Java
        * Think Java
        * Clean Code
        * Pragmatic Programmer
        * Effective Java
        * Refactoring
        * Java Concurrency in Practice
        * Test Driven
        * Head First Design Patterns
        * Release It!
        * Kotlin in Action
        * Spring in Action
        * Spring Boot in Action
        * Cloud Native Java
        * Spring Microservices in Action
        * Learning Spring Boot 2.0
      
      Feel free to add more suggestions for the list. Also make sure to share your experience with the ones already on the list.
      thread
    3. nobleachDec 2019
      I tried writing Kotlin in Vim, I really did. Java was somewhat manageable, but Kotlin was absolutely impossible. The biggest thing those bloated Java-based IDEs offer is deep introspection into the language. You use a reference, the IDE can auto-import the package for you. When learning a new language, knowing what package to import is invaluable. Even the Kotlin in Action book from Manning Publications flat out says, "the IDE will automatically import that for you". It was quite a turn-off but.... it's a nice language, so when I write it, I have to use IntelliJ.
      thread

    Related

    Cover of Kotlin Programming
    2018–2019

    Kotlin Programming

    Matthew Mathias
    1 recommend · 2
    Cover of Programming Erlang
    2007–2026

    Programming Erlang

    Joe Armstrong
    69 recommend · 105
    Cover of How to Design Programs
    2007–2026

    How to Design Programs

    Matthias Felleisen
    277 recommend · 776
    Cover of Functional Programming In Scala
    2013–2026

    Functional Programming In Scala

    Paul Chiusano
    33 recommend · 73
    Cover of Practical Common Lisp
    2007–2026

    Practical Common Lisp

    Peter Seibel
    218 recommend · 400
    Cover of Elixir in action
    2015–2026

    Elixir in action

    Sas̄a Jurić
    48 recommend · 72
    Cover of Learn You a Haskell for Great Good!
    2009–2026

    Learn You a Haskell for Great Good!

    Miran Lipovača
    237 recommend · 456
    Cover of Land of Lisp
    2009–2026

    Land of Lisp

    Conrad Barski
    124 recommend · 256