Twitter | Search | |
Roman Elizarov
Team Lead , working on coroutines and libs, sports programming/ICPC, concurrency & algorithms, math/quantitative finance; formerly
2,956
Tweets
748
Following
6,830
Followers
Tweets
Roman Elizarov Jun 18
Replying to @nimtiazm
Any idea on when we might have an actual production JVM that supports it?
Reply Retweet Like
Roman Elizarov Jun 18
PSA: You don’t need cryptocurrency, unless... actually no, you don’t need it even then.
Reply Retweet Like
Roman Elizarov Jun 17
Replying to @mangatmodi
You can replace while and var with tailrec function. You'll have no vars for this particular code.
Reply Retweet Like
Roman Elizarov Jun 17
OH (in Kotlin community chat): ?.let { it("be") }
Reply Retweet Like
Roman Elizarov Jun 17
Replying to @lehtimaeki @MiBLT and 5 others
I can understand them. There are more readers that writers, so more money. But the “reader pays” model is just a recipe for tons of low-quality copycat content. You cannot become “uber for writers” without some form of quality control.
Reply Retweet Like
Roman Elizarov Jun 17
Replying to @lehtimaeki @MiBLT and 5 others
I’ll gladly pay medium to publish my posts to avoid the hassle of self-hosting, but they don’t seem to be interested in that model. Too bad.
Reply Retweet Like
Roman Elizarov Jun 17
Replying to @IgnatLoskutov
The first link in the story gives direct access to an editable version of the code in playground:
Reply Retweet Like
Roman Elizarov Jun 17
Replying to @Edwar_D_Day
This solution pollutes the heap with extra allocations. While not important here, it might be critical in real world. However, you are on the right track. You can replace the while loop and mutable vars with tail-recursion without loosing any bit of the algorithm’s efficiency.
Reply Retweet Like
Roman Elizarov Jun 16
Replying to @Inego1981
It boils down to resources. Ideas for possible generalizations were there even before Kotlin 1.0 but they were dropped. More general features are harder to design, harder to implement, harder to test. But they might become feasible as the ecosystem, community, and team grow.
Reply Retweet Like
Roman Elizarov Jun 16
Replying to @relizarov
This story has an anonymous self-test. Try it please and share your results here (anonymously, too). I'm just curious. Don't answer please if you read the story first and saw all the spoilers.
Reply Retweet Like
Roman Elizarov Jun 16
Binary search is a simple algorithm, but can you code a straightforward and correct implementation of it? It seems that it is not quite easy to figure out unless you were taught to do it.
Reply Retweet Like
Roman Elizarov Jun 16
Replying to @Inego1981
Some features will need to be dropped in the future, others generalized and turned into application of more general features.
Reply Retweet Like
Roman Elizarov Jun 16
We have a preview version of “retry”, but no “repeat”. We are still looking for an easier to understand and more orthogonal design for them. Feel free to help by submitting your use-cases to
Reply Retweet Like
Roman Elizarov Jun 15
Replying to @relizarov
While Kotlin is a major step forward, that work is far from over. As we write Kotlin code and see its use in more and more domain areas, some new repetitive patterns in our code appear that feel like a boilerplate again. They are the seeds of future improvements.
Reply Retweet Like
Roman Elizarov Jun 15
Kotlin is designed to reduce boilerplate that developers have to write. Less ceremony, more substance. That is my personal view of Kotlin’s mission. The challenge is to design generic language features that can be safely used across various domains with different libraries.
Reply Retweet Like
Roman Elizarov Jun 15
Replying to @danieldietrich
That depends on how big your house is!
Reply Retweet Like
Roman Elizarov Jun 14
Replying to @raulraja @JakeWharton
It might end up just like Java checked exceptions. All the different libraries will declare their own incompatible dependencies, so you get a mess or tons of boilerplate when you try to combine them. How can this be prevented?
Reply Retweet Like
Roman Elizarov Jun 14
Replying to @raulraja @JakeWharton
Explicit and implicit injection of context-specific values is still a form of “shallow” DI. It is viral and thus has scaling and composition problems. You either need a global “deep” DI or a different architecture.
Reply Retweet Like
Roman Elizarov retweeted
GOTO Conferences Jun 14
Dissect scalability and reliability problems of a traditional thread-based stacks and discuss the process of mitigating those issues by introducing asynchrony with coroutines, all in this talk by
Reply Retweet Like
Roman Elizarov retweeted
KotlinConf Jun 14
Last few spots remaining for Asynchronous Programming with Kotlin Workshop by . If you want to guarantee your place, book soon!
Reply Retweet Like