In today's findings: vaguely menacing graph
In today's findings: vaguely menacing graph
Todayβs the last day to submit a talk for @kotlinconf.com. Go submit one!
Teaching something is a great way to deepen your understanding of it.
Additionally, GraalJIT consistently yields higher throughput than the stock JDK, with a similar warmup time
Native Image is an *amazing* technology!
Having a 150mb+ JAR full of weird compiler stuff (from jrtfs to Swing!) in kotlinc quite easily built with Native Image, and immediately yielding this kind of improvement is outstanding.
Looking forward to what's next π
Dima is a brilliant engineer, and the way he structures any discussion (be it internal or external) is always thoughtful and insightful. Every time I read his musings or talk to him, I learn something new or connect new dots
\\Special\acknowledgement\goes\to\Windows\path handling\
New Kotlin Language Server goodies are out: github.com/Kotlin/kotli...!
A lot of work ahead, but it starts getting its shape π
Random quote of the day: income taxes 'required an element of understanding as to why they were needed on the part of the individuals subject to said taxes and this understanding was usually widely lacking'
My *by far* the most favourite talk this year.
@Sellmair did an amazing job -- explaining dynamic classloading, DCEVM, continuous builds, Compose internals, anonymous classes naming policy, and more in a deeply technical yet engaging manner
Such things rarely can happen individually, often they cannot even happen within a single team or a product.
I am eternally grateful to have @stukalov.bsky.social
on my side. Congrats! That's your achievement as much as it's Kotlin's π
We poured the real effort, broke really thick walls, had heated debates and pitches, stretched IntelliJ limits (sometimes as far as using test infra to make it work in the LSP), and damn we did it! And there is still more to come :)
Not only was that a hell of a team effort, pushing the IJ codebase to its limits, but it is also a great step forward for Kotlin and a huge shift within JetBrains that we made happen.
There is plenty of amazing stuff announced at KotlinConf.
But the thing I am most proud of is our release of Kotlin LSP along with VSC support: github.com/Kotlin/kotli...
Damn that was some action!
Futurama was definitely released ahead of its time
If you want to participate in a naming battle, here's your chance!
I'd even say it might have an effect similar to deprecating String.capitalize(), but this time with a (hopefully) properly-named replacement
gist.github.com/qwwdfsad/eb3...
Something like that can do the trick (for less trivial chains still, similar to streams).
By the way, beware of benchmarks not consuming (returning) the result from the @Benchmark function, maybe it's worth remeasuring the original bench (especially the small one)
Thinking about it more, we can potentially provide a push-based sequence almost seamlessly, but it will require quite some tweaks.
And for trivial use cases (small collections, trivial transformations) unlikely to be *much* faster
Iterator-based protocol (which sequence is) is really unfortunate, the constant field-spilling and hasNext-next pair (which is strict with its contract) absorbs all the CPU :(
Also, a nice showcase of why we picked the push-based Flow model!
totally deserved!
Is it going to deadlock because of the clinit "deadlock" where lambda body (private static fun) cannot be invoked from another thread ("parallel") unless clinit is completed which in turn awaits parallel operator to complete?
Not all notes are that useful though
...and today is one of these days. Thank you, Seva from the past, I guess
When dealing with concurrency problems, I leave comments with my findings even if they aren't really that meaningful (e.g. "don't do X, X leads to logical races" What races? Why?). I used to feel uneasy about that, but damn, every now and then, they save me hours of debugging
By the way, @volebamor.bsky.social suggested a really beautiful solution -- count all the junctions (i.e. β’β’ has two junctions: β₯ and β€) and subtract the number from the perimeter. I am still mad that it actually works!
Damn these modern business practices! Who on earth counts discounts LIKE THAT?!
you can probably guess what the section is about :)
Came up with this one when writing an internal blogpost about performance work
Sorry for that, I promise I'll switch back to technical content
An update to the posting: www.jetbrains.com/careers/jobs...
Now with Germany and Netherlands on the table!
Also, the job description is supposed to be that :) There is, of course, regular maintenance, OSS, and compatibility work, things like that one cannot escape %)