Twitter | Search | |
Roman Elizarov
Team Lead , working on coroutines and libs, sports programming/ICPC, concurrency & algorithms, math/quantitative finance; formerly
2,740
Tweets
718
Following
5,749
Followers
Tweets
Roman Elizarov Apr 18
Replying to @ErikHellman @rallat
I agree that Rx is a cool and powerful, but I do not agree that Rx is easy-to-use
Reply Retweet Like
Roman Elizarov Apr 18
Replying to @lehtimaeki
Twitter's "like" button cannot really express my frustration with all kinds of geoblocks that modern services are stuffed with. You have this "take my money" moment only to find out that "this service is not available in your location". WTF!?
Reply Retweet Like
Roman Elizarov Apr 18
Replying to @lukaseder
You can actually do in Kotlin if you define showAdminBar with boolean result and you don't even need a semicolon in Kotlin, but I've never seen anyone actually doing it, that is, nor had any desire to do it myself
Reply Retweet Like
Roman Elizarov Apr 17
Replying to @ErikHellman @rallat
Coroutines make it trivial to wrap blocking no async API into an async non blocking function using withContex(IO). It was never that easy to do before.
Reply Retweet Like
Roman Elizarov Apr 17
Replying to @CoreFloDev @rallat
Design of Kotlin Coroutines is not related to Kotlin/JS in any way nor was constrained by it, but they are indeed multiplatform.
Reply Retweet Like
Roman Elizarov Apr 17
Replying to @ErikHellman @rallat
Please, don't mark functions that are supposed to perform fast, local operations with suspend modifier. You'll thank me later, when your code base grows.
Reply Retweet Like
Roman Elizarov Apr 17
Replying to @philipto @trisha_gee
On a serious note, I’ve found twitter analytics generally to be almost totally broken piece of crap.
Reply Retweet Like
Roman Elizarov Apr 17
is the Mr. Seriousness of Internet!
Reply Retweet Like
Roman Elizarov Apr 17
Replying to @trisha_gee
Same for me. 100% follower interest in dogs, NO cats. I’m shocked. This is way more severe discrimination than men vs women in tech. Dog lovers conspiracy!
Reply Retweet Like
Roman Elizarov Apr 17
Working with multiple elements is essential for a language. Collection/list/vector/array/sequence/etc are always in a standard library. Kotlin Flow provides an async way to work with multiple elements, so it must be a part of a “Kotlin async standard library”.
Reply Retweet Like
Roman Elizarov Apr 17
It depends on how you define “reactive extension”. In my mind Flow design is so different and so much simpler than your typical reactive extension, that I would not call it as such under any circumstance. Kotlin Flow is simply a cold asynchronous stream.
Reply Retweet Like
Roman Elizarov Apr 17
There are three additional reactive integration modules: kotlinx-coroutines-reactive, kotlinx-coroutines-rx2, and kotlinx-coroutines-reactor
Reply Retweet Like
Roman Elizarov Apr 17
Reactive integrations are provided in a separate artifact. The core flow has nothing to do with reactive programming -- it is just an async sequence (which is in stdlib) and provides for efficient execution on async data streams.
Reply Retweet Like
Roman Elizarov Apr 17
Replying to @sdeleuze @rallat
They also augment each other nicely. For example, flowOn operator uses channel internally to switch to a different dispatcher, but you don’t even have to know what a channel is to use it.
Reply Retweet Like
Roman Elizarov Apr 17
Replying to @sdeleuze @rallat
That's why channels and flows live is separate non-top-level packages. You don't need them at all go get started with coroutines basics, and in many cases you'd need to learn just one concept (either channel or flow) to get your job done (depending on your domain)
Reply Retweet Like
Roman Elizarov Apr 17
Replying to @rallat
Growing complexity is inevitable as you can do more with coroutines, yet we also focus on flattening learning curve and minimizing the number of concepts you need to understand to get simple things done.
Reply Retweet Like
Roman Elizarov Apr 17
Replying to @rallat
If and only if coroutines start doing a lot more than Rx. So far the plan is to catch up with Rx in term of covered use-cases and that's it. Fortunately, due to language support for suspension, supporting all Rx use-cases needs much simpler design and less code.
Reply Retweet Like
Roman Elizarov Apr 16
In a sense that they have precendence and you use symbols, not a a name, to call them.
Reply Retweet Like
Roman Elizarov retweeted
Patricia Aas Feb 7
Interesting that hiring a woman immediately is thought of as possible gender favoritism, but having a workplace devoid of women is not... 🤔
Reply Retweet Like
Roman Elizarov Apr 15
Replying to @pati_gallardo
Other JVM languages like Kotlin and Scala have them, but allow widely different level of freedom. Scala lets you define operators of almost arbitrary chars, while Kotlin allows overload of only limited set of arithmetics operators, in a quite restricted way.
Reply Retweet Like