Roman Elizarov Profile picture
Project Lead for @Kotlin at @JetBrains. Language design, libraries, sports programming/ICPC, concurrency & algorithms, math/quantitative finance
Feb 17, 2023 12 tweets 2 min read
Lately, there are many popsci and philosophical articles about modern AI. Many of them describe the inner workings of Large Language Models, their statistical nature, and imply that this proves they are unlike humans. Who said the human brain is not doing essentially the same? /1 We don't really know that much about the inner working of the human brain to be sure. But we do know that people rarely use their "slow" deliberate and resource-consuming part of the brain and mostly rely on "fast" intuitive thinking and decision making. /2
Feb 13, 2023 10 tweets 2 min read
🎉 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. github.com/Kotlin/kotlinx… An interesting side story here is that this implementation required research of a new algorithm, which you can find here arxiv.org/abs/2211.04986
If it is so useful, then why it was not discovered and published in scientific literature before? That'll take a thread to explain. /1
Dec 25, 2021 10 tweets 2 min read
AdventOfCode 2021 is over. That's the first time I've participated in it every day on time. Solving all those puzzles was a lot of fun and I've learned a few things. Getting a spot on the top 100 global leaderboard is not easy. Here is a short thread of my key takeaways. 1/n First of all, I'm very pleased with Kotlin. It strikes the right balance of concision and clarity. You can directly express the algorithm you want without boilerplate and write all the straightforward computations declaratively in one line, using the standard library. 2/n
Apr 29, 2021 10 tweets 2 min read
I often get a question: When will the Kotlin programming language get support for macros? The answer has always been the same and it is very simple: never. But why? 🧵/1 To understand the reason you just need to talk to other folks at JetBrains who develop tools for programming languages with macro facilities. Supporting them in modern smart IDEs is hard. Unlike compilers, IDEs are interactive, making good macro support insurmountable. /2
Dec 14, 2020 5 tweets 1 min read
A programming language has formal scope/resolution rules for a compiler to follow, but in complex business code with lots of "things" available around those rules will trip humans in practice. For people, clear names for all the things are essential. 1/5 It is easy to obfuscate code for a human reader. Just replace all the names with gibberish or, even better, with symbols (if a language supports it). It still remains the same code for the compiler, yet becomes unintelligible for a person. 2/5
Jul 26, 2020 21 tweets 5 min read
Let's talk about the most important, yet often overlooked, factor affecting your life, how well off you are, what kind of job do you have, if any, whether you live in comfort or struggle to make a living. Let's talk about randomness and luck. /thread Your first die is rolled at the moment you are born. Where you are born is by far the most important choice you did not make, e.g. being born in a 1st-world country opens you a door to lots of opportunities that the majority of the world population cannot even dream of.
Apr 13, 2019 14 tweets 3 min read
This twitter is for programmers and we need to have a serious talk. Software engineering has a global problem that we must solve. It is the scarcity of women working in our field. You cannot ignore or deny this fact. I can even see it right in my twitter analytics /thread Our world is increasingly relying on software, virtually every business on the planet is short of software engineers, yet half of population is AWOL from this job market. This is bad in itself, let alone all the other woes it causes.
Feb 19, 2019 7 tweets 2 min read
There is a common misconception about code style. “I have ran my code through autoformat, hence it has good style”. Yet, in fact, proper spacing is one of the least important aspects of good code style. /thread What is code style? It is everything about the code that machine, executing it, does not care about. It is everything that makes the code easier to understand by people.
Nov 10, 2018 9 tweets 2 min read
It is year 2018 and people still write articles on how C++ is a good language that is better than C, so let me twitterize a piece from 1980 Turing Award lecture by C.A.R Hoare here. Keep in mind that it was written almost from 40 years ago! (thread) "Security: The principle that every syntactically incorrect program should be rejected by the compiler and that every syntactically correct program should give a result or an error message that was predictable and comprehensible in terms of the source language program itself."