Roman ElizarovProgramming Language EvolutionProgramming languages constantly evolve. But what drives this evolution? Let’s see some examples to discover a common pattern.5 min read·Nov 23, 2020--6--6
Roman ElizarovShared flows, broadcast channelsSee how shared flows made broadcast channels obsolete, but regular channels cover and will continue to support an important use-case.6 min read·Nov 16, 2020--11--11
Roman ElizarovImmutability we can affordA look at modern programming languages reveals a growing popularity of immutability. It is becoming affordable.6 min read·Jul 22, 2020--9--9
Roman ElizarovWith the receiver in scopeRepetition is a bane of software development. Kotlin scope functions help when they are idiomatically used.4 min read·Jul 1, 2020----
Roman ElizarovKotlin and ExceptionsWhat are Kotlin Exceptions and how should you use them?8 min read·Jun 10, 2020--23--23
Roman ElizarovPhantom of the CoroutineThere is no current “Coroutine” object that you can get hold of and manipulate. Why is it so, what does it mean, and how to live with it?4 min read·May 10, 2020--4--4
Roman ElizarovDeep recursion with coroutinesKotlin Coroutines go beyond asynchronous programming. We can use them to write deep recursive functions.6 min read·Apr 25, 2020--9--9
Roman ElizarovThe End of the Semicolon EraWe are living in the end of the semicolon era. The recipe is out there. It is only a matter of time for it to become truly ubiquitous.4 min read·Feb 9, 2020--1--1
Roman ElizarovIntentional qualitiesWe focus on functional requirements, yet quality aspects are often important. What if you are looking for something fast or easy to learn?3 min read·Oct 19, 2019--4--4
Roman ElizarovStructured Concurrency AnniversaryStructured Concurrency for Kotlin Coroutines was announced a year ago. Let’s celebrate this anniversary and see how it turned out to be.5 min read·Sep 28, 2019--4--4