user avatar
Roman Elizarov
@relizarov
Software infrastructure & libs, language design, sports programming/ICPC, concurrency & algorithms, math & quantitative finance. ex-project lead for @Kotlin
Joined September 2010
Posts
  • user avatar
    I am heartbroken to share the news that I’ll be leaving JetBrains next week for personal reasons. Working on Kotlin was the best job I’ve had. The greatest asset that Kotlin has is you, the Kotlin community. Interacting with you was the highlight of my life all those years. /1
  • user avatar
    Protip: Reduce code nesting. Don't bury essential logic like this: if (a) { return fast1 } else { if (b) { // the usual path } else { return fast2 } } Use early return, write this: if (a) return fast1 if (!b) return fast2 // usual path follows
  • user avatar
    You cannot become a good writer without a lot of reading; You cannot learn to write good code without reading a lot of code.
  • user avatar
    I am delighted to see so much love for Kotlin ❤️ This great community is what makes Kotlin tick. Thanks a lot to @abreslav for creating and growing this beautiful and fun programming language.
  • user avatar
    The most important quality a software developer should have is being a good, caring, respectful person. True for other professions as well.
  • user avatar
    The JVM Exception class is not the superclass of all exceptions that can be thrown. Throwable is. A common mistake is to write catch(e: Exception) and think that it catches all failures. It does not. If you need error logging/handling (usually at the top level), catch Throwable.
  • user avatar
    Unpopular opinion: the defacto standard src/main/java boilerplate directory structure is one of the worst things that ever happened to the JVM ecosystem. It raises the barrier for small projects, entrenching the perception of JVM heavy-weightiness.
  • user avatar
    No one wants to program in a dynamically typed language. No one says, "I want this string variable to hold a string an integer now". Hold your defense of Python and JS — read on. I'll explain why dynamically typed languages exist, what they're good for, and why they're still here
  • user avatar
    Current status: debugging the debugger in a debugger, with a breakpoint at a place that is called when a breakpoint is hit.
  • user avatar
    🎉 The fast and scalable channels for Kotlin Coroutines have been merged! As the author of the original channels implementation who knows their shortcomings from insides, I'm delighted to see this multi-year effort finally coming to a conclusion.
  • user avatar
    The beginning of a new era in Kotlin development. Kotlin/Native sources are now in the same Git repo, together with the compiler frontend and all the other Kotlin backends (K/JVM, and K/JS). Kudos to the team for making it happen
  • user avatar
    My daughter is studying Java in university. She consults with me a lot, often confused on why she has to do this and that, like why ints compare with ==, but Strings with equals, why int -x, but BigInteger x.negate(), why extends vs implements, why arrays[] but List.get(), etc.
  • user avatar
    Apparently, the art of writing code to efficiently search large problem domains is rarely taught nowadays, so lot of people struggle on problems like AdventOfCode Day 24 part 2. Let me try to explain how you should approach a programming task like this one 🧵
  • user avatar
    Kotlin Coroutines are designed to be easy to integrate, easy to use, safe with resources, high-performance. But there was always one gripe. It was hard to visualize and see what's going on when you debug a piece code with several coroutines. Finally fixed!