\\Special\acknowledgement\goes\to\Windows\path handling\
06.08.2025 15:35 β π 4 π 0 π¬ 0 π 0@qwwdfsad.bsky.social
Doing stuff in Kotlin @ JetBrains. API design, concurrency, performance,
\\Special\acknowledgement\goes\to\Windows\path handling\
06.08.2025 15:35 β π 4 π 0 π¬ 0 π 0New 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'
01.07.2025 20:24 β π 1 π 0 π¬ 0 π 0My *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 :)
23.05.2025 07:35 β π 1 π 0 π¬ 1 π 0Not 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.
23.05.2025 07:35 β π 0 π 0 π¬ 1 π 0There 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
20.02.2025 18:03 β π 2 π 0 π¬ 0 π 0If 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!
07.02.2025 13:02 β π 1 π 0 π¬ 0 π 0Is 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?
05.02.2025 17:59 β π 6 π 0 π¬ 1 π 0Not all notes are that useful though
19.12.2024 10:52 β π 3 π 0 π¬ 0 π 0...and today is one of these days. Thank you, Seva from the past, I guess
18.12.2024 19:04 β π 7 π 0 π¬ 1 π 0When 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
18.12.2024 19:04 β π 11 π 0 π¬ 1 π 0By 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!
12.12.2024 23:07 β π 1 π 0 π¬ 0 π 0Damn these modern business practices! Who on earth counts discounts LIKE THAT?!
12.12.2024 19:18 β π 1 π 0 π¬ 1 π 0you can probably guess what the section is about :)
12.12.2024 17:21 β π 1 π 0 π¬ 0 π 0Came up with this one when writing an internal blogpost about performance work
12.12.2024 17:20 β π 4 π 0 π¬ 1 π 0Sorry for that, I promise I'll switch back to technical content
12.12.2024 14:08 β π 1 π 0 π¬ 1 π 0An 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 %)
09.12.2024 18:01 β π 0 π 0 π¬ 0 π 0That's up to you for sure. Usually, what we care about (apart from the usual stuff) is the broad understanding of the JVM ecosystem and the taste for DX/ergonomics. Quite a few Kotlin developers (me included :)) were not really savvy with Kotlin beforehand
09.12.2024 17:59 β π 0 π 0 π¬ 1 π 0(I assumed you are in the UK, for some reason I remember it. Sorry if that's incorrect)
09.12.2024 12:14 β π 0 π 0 π¬ 1 π 0I think we can hire in the UK (under the umbrella company) in some specific circumstances (i.e. it's obligatory to already have a residence there), and _maybe_ we are in the process of opening a legal entity there.
So it is up to you, you might as well consider applying without moving anywhere π
And we are also trying to fix or report things when it is possible mail.openjdk.org/pipermail/ho...
09.12.2024 09:40 β π 3 π 0 π¬ 0 π 0...updates to UUID RFC after 19 goddamn years of radiosilience but right after we finished our design work on it, the word 'digit' in 'isDigit' including 'Ω©' and JIT not able to inline the trivial thing that makes our parser 20% slower
09.12.2024 09:38 β π 4 π 0 π¬ 1 π 0